Salome HOME
This commit was generated by cvs2git to create tag 'TG-Start-D5-38-2003'. TG-Start-D5-38-2003
authoradmin <salome-admin@opencascade.com>
Tue, 18 Oct 2005 14:52:48 +0000 (14:52 +0000)
committeradmin <salome-admin@opencascade.com>
Tue, 18 Oct 2005 14:52:48 +0000 (14:52 +0000)
Sprout from master 2005-08-29 08:05:24 UTC mzn <mzn@opencascade.com> 'Fix for problem: SIGSEGV appears if to select group after opening "Edit Group" dialog box.'
Cherrypick from master 2005-10-18 14:52:45 UTC smh <smh@opencascade.com> 'Preparation of 3.1.0a2: version ID. compilation with new HEAD and new MED (with polyhedres)':
    src/OBJECT/SMESH_Actor.cxx
    src/SMESH_I/Makefile.in
Cherrypick from master 2005-09-07 06:22:45 UTC mzn <mzn@opencascade.com> 'Fix for problem: Preferences-Mesh-General tab: Display modes ?Nodes? and ?Shrink? are permuted.':
    src/SMESHGUI/SMESHGUI.cxx
Delete:
    ChangeLog
    INSTALL
    LICENCE
    Makefile.in
    adm_local/unix/config_files/check_Geom.m4
    adm_local/unix/config_files/check_Med.m4
    adm_local/unix/make_commence.in
    adm_local/unix/make_conclude.in
    adm_local/unix/make_omniorb.in
    bin/VERSION
    build_configure
    configure.in.base
    cvs-tags
    doc/Makefile.in
    doc/salome/AddNetgenInSalome2.pdf
    doc/salome/AddNetgenInSalome2.ps
    doc/salome/AddNetgenInSalome2.sxw
    doc/salome/Makefile.in
    doc/salome/PluginMeshers.txt
    doc/salome/SMESH_index.html
    doc/salome/gui/Makefile.in
    doc/salome/gui/SMESH/SMESH.log
    doc/salome/gui/SMESH/cshdat_robohelp.htm
    doc/salome/gui/SMESH/cshdat_webhelp.htm
    doc/salome/gui/SMESH/default.css
    doc/salome/gui/SMESH/default.skn
    doc/salome/gui/SMESH/default_ns.css
    doc/salome/gui/SMESH/ehlpdhtm.js
    doc/salome/gui/SMESH/extrusion.htm
    doc/salome/gui/SMESH/files/1d_meshing_algorithm.htm
    doc/salome/gui/SMESH/files/2d_(quadrangle)_meshing_algorithm.htm
    doc/salome/gui/SMESH/files/2d_meshing_algorithm.htm
    doc/salome/gui/SMESH/files/3d_meshing_algorithm.htm
    doc/salome/gui/SMESH/files/about_hypotheses.htm
    doc/salome/gui/SMESH/files/about_meshes.htm
    doc/salome/gui/SMESH/files/about_meshing_algorithms.htm
    doc/salome/gui/SMESH/files/about_modification_of_meshes.htm
    doc/salome/gui/SMESH/files/about_quality_controls.htm
    doc/salome/gui/SMESH/files/adding_nodes_and_elements.htm
    doc/salome/gui/SMESH/files/area_of_elements.htm
    doc/salome/gui/SMESH/files/arithmetic_1d.htm
    doc/salome/gui/SMESH/files/aspect_ratio.htm
    doc/salome/gui/SMESH/files/changing_orientation_of_elements.htm
    doc/salome/gui/SMESH/files/computing_meshes.htm
    doc/salome/gui/SMESH/files/connectivity.htm
    doc/salome/gui/SMESH/files/constructing_groups_of_specific_elements.htm
    doc/salome/gui/SMESH/files/constructing_meshes.htm
    doc/salome/gui/SMESH/files/constructing_submeshes.htm
    doc/salome/gui/SMESH/files/creating_groups.htm
    doc/salome/gui/SMESH/files/cutting_quadrangles.htm
    doc/salome/gui/SMESH/files/deflection_1d.htm
    doc/salome/gui/SMESH/files/diagonal_iversion_of_elements.htm
    doc/salome/gui/SMESH/files/displacing_nodes.htm
    doc/salome/gui/SMESH/files/displaying_elements_numbers.htm
    doc/salome/gui/SMESH/files/displaying_nodes_numbers.htm
    doc/salome/gui/SMESH/files/editing_groups.htm
    doc/salome/gui/SMESH/files/editing_hypotheses.htm
    doc/salome/gui/SMESH/files/importing_and_exporting_meshes.htm
    doc/salome/gui/SMESH/files/introduction_to_smesh.htm
    doc/salome/gui/SMESH/files/length_from_edges.htm
    doc/salome/gui/SMESH/files/length_of_edges.htm
    doc/salome/gui/SMESH/files/local_length_hypothesis.htm
    doc/salome/gui/SMESH/files/max._element_area_hypothesis.htm
    doc/salome/gui/SMESH/files/max._element_volume_hypothsis.htm
    doc/salome/gui/SMESH/files/merging_nodes.htm
    doc/salome/gui/SMESH/files/minimum_angle.htm
    doc/salome/gui/SMESH/files/non_conform_mesh_allowed_hypothesis.htm
    doc/salome/gui/SMESH/files/number_of_segments_hypothesis.htm
    doc/salome/gui/SMESH/files/propagation_of_1d_hypothesis_on_opposite_edges.htm
    doc/salome/gui/SMESH/files/reassigning_hypotheses_and_algorithms.htm
    doc/salome/gui/SMESH/files/removing_nodes_and_elements.htm
    doc/salome/gui/SMESH/files/renumbering_nodes_and_elements.htm
    doc/salome/gui/SMESH/files/rotation.htm
    doc/salome/gui/SMESH/files/running_smesh_module.htm
    doc/salome/gui/SMESH/files/scalar_bar_properties.htm
    doc/salome/gui/SMESH/files/sewing_meshes.htm
    doc/salome/gui/SMESH/files/shading.htm
    doc/salome/gui/SMESH/files/shrink.htm
    doc/salome/gui/SMESH/files/skew.htm
    doc/salome/gui/SMESH/files/smoothing.htm
    doc/salome/gui/SMESH/files/start_and_end_length_hypothesis.htm
    doc/salome/gui/SMESH/files/symmetry.htm
    doc/salome/gui/SMESH/files/taper.htm
    doc/salome/gui/SMESH/files/tetrahedron_(ghs3d)_meshing_algorithm.htm
    doc/salome/gui/SMESH/files/tetrahedron_(netgen)_meshing_algorithm.htm
    doc/salome/gui/SMESH/files/translation.htm
    doc/salome/gui/SMESH/files/uniting_a_set_of_triangles.htm
    doc/salome/gui/SMESH/files/uniting_two_triangles.htm
    doc/salome/gui/SMESH/files/using_operations_on_groups.htm
    doc/salome/gui/SMESH/files/using_smesh_module.htm
    doc/salome/gui/SMESH/files/view_update.htm
    doc/salome/gui/SMESH/files/viewing_mesh_info.htm
    doc/salome/gui/SMESH/files/visualization_modes.htm
    doc/salome/gui/SMESH/files/visualization_properties.htm
    doc/salome/gui/SMESH/files/warp.htm
    doc/salome/gui/SMESH/files/wireframe.htm
    doc/salome/gui/SMESH/i_blue.jpg
    doc/salome/gui/SMESH/image10.jpg
    doc/salome/gui/SMESH/image11.jpg
    doc/salome/gui/SMESH/image12.gif
    doc/salome/gui/SMESH/image12.jpg
    doc/salome/gui/SMESH/image13.gif
    doc/salome/gui/SMESH/image14.gif
    doc/salome/gui/SMESH/image15.gif
    doc/salome/gui/SMESH/image16.gif
    doc/salome/gui/SMESH/image16.jpg
    doc/salome/gui/SMESH/image17.jpg
    doc/salome/gui/SMESH/image18.jpg
    doc/salome/gui/SMESH/image2.gif
    doc/salome/gui/SMESH/image20.jpg
    doc/salome/gui/SMESH/image21.jpg
    doc/salome/gui/SMESH/image22.gif
    doc/salome/gui/SMESH/image22.jpg
    doc/salome/gui/SMESH/image23.jpg
    doc/salome/gui/SMESH/image24.gif
    doc/salome/gui/SMESH/image24.jpg
    doc/salome/gui/SMESH/image25.gif
    doc/salome/gui/SMESH/image25.jpg
    doc/salome/gui/SMESH/image26.gif
    doc/salome/gui/SMESH/image26.jpg
    doc/salome/gui/SMESH/image27.gif
    doc/salome/gui/SMESH/image27.jpg
    doc/salome/gui/SMESH/image28.gif
    doc/salome/gui/SMESH/image28.jpg
    doc/salome/gui/SMESH/image29.gif
    doc/salome/gui/SMESH/image29.jpg
    doc/salome/gui/SMESH/image3.jpg
    doc/salome/gui/SMESH/image30.jpg
    doc/salome/gui/SMESH/image31.gif
    doc/salome/gui/SMESH/image31.jpg
    doc/salome/gui/SMESH/image32.gif
    doc/salome/gui/SMESH/image32.jpg
    doc/salome/gui/SMESH/image33.gif
    doc/salome/gui/SMESH/image34.gif
    doc/salome/gui/SMESH/image34.jpg
    doc/salome/gui/SMESH/image35.gif
    doc/salome/gui/SMESH/image35.jpg
    doc/salome/gui/SMESH/image36.gif
    doc/salome/gui/SMESH/image36.jpg
    doc/salome/gui/SMESH/image37.gif
    doc/salome/gui/SMESH/image38.gif
    doc/salome/gui/SMESH/image38.jpg
    doc/salome/gui/SMESH/image39.gif
    doc/salome/gui/SMESH/image39.jpg
    doc/salome/gui/SMESH/image4.gif
    doc/salome/gui/SMESH/image4.jpg
    doc/salome/gui/SMESH/image40.gif
    doc/salome/gui/SMESH/image40.jpg
    doc/salome/gui/SMESH/image41.gif
    doc/salome/gui/SMESH/image41.jpg
    doc/salome/gui/SMESH/image42.gif
    doc/salome/gui/SMESH/image42.jpg
    doc/salome/gui/SMESH/image43.gif
    doc/salome/gui/SMESH/image43.jpg
    doc/salome/gui/SMESH/image44.gif
    doc/salome/gui/SMESH/image44.jpg
    doc/salome/gui/SMESH/image45.gif
    doc/salome/gui/SMESH/image45.jpg
    doc/salome/gui/SMESH/image46.gif
    doc/salome/gui/SMESH/image46.jpg
    doc/salome/gui/SMESH/image47.gif
    doc/salome/gui/SMESH/image47.jpg
    doc/salome/gui/SMESH/image48.gif
    doc/salome/gui/SMESH/image48.jpg
    doc/salome/gui/SMESH/image49.gif
    doc/salome/gui/SMESH/image49.jpg
    doc/salome/gui/SMESH/image50.gif
    doc/salome/gui/SMESH/image50.jpg
    doc/salome/gui/SMESH/image51.gif
    doc/salome/gui/SMESH/image51.jpg
    doc/salome/gui/SMESH/image52.gif
    doc/salome/gui/SMESH/image52.jpg
    doc/salome/gui/SMESH/image53.gif
    doc/salome/gui/SMESH/image53.jpg
    doc/salome/gui/SMESH/image54.jpg
    doc/salome/gui/SMESH/image55.gif
    doc/salome/gui/SMESH/image55.jpg
    doc/salome/gui/SMESH/image56.gif
    doc/salome/gui/SMESH/image57.gif
    doc/salome/gui/SMESH/image57.jpg
    doc/salome/gui/SMESH/image58.jpg
    doc/salome/gui/SMESH/image59.jpg
    doc/salome/gui/SMESH/image6.gif
    doc/salome/gui/SMESH/image6.jpg
    doc/salome/gui/SMESH/image60.jpg
    doc/salome/gui/SMESH/image61.gif
    doc/salome/gui/SMESH/image61.jpg
    doc/salome/gui/SMESH/image62.jpg
    doc/salome/gui/SMESH/image63.gif
    doc/salome/gui/SMESH/image63.jpg
    doc/salome/gui/SMESH/image64.gif
    doc/salome/gui/SMESH/image64.jpg
    doc/salome/gui/SMESH/image65.gif
    doc/salome/gui/SMESH/image65.jpg
    doc/salome/gui/SMESH/image66.gif
    doc/salome/gui/SMESH/image66.jpg
    doc/salome/gui/SMESH/image67.gif
    doc/salome/gui/SMESH/image67.jpg
    doc/salome/gui/SMESH/image68.gif
    doc/salome/gui/SMESH/image68.jpg
    doc/salome/gui/SMESH/image69.gif
    doc/salome/gui/SMESH/image69.jpg
    doc/salome/gui/SMESH/image7.gif
    doc/salome/gui/SMESH/image7.jpg
    doc/salome/gui/SMESH/image70.gif
    doc/salome/gui/SMESH/image70.jpg
    doc/salome/gui/SMESH/image71.gif
    doc/salome/gui/SMESH/image71.jpg
    doc/salome/gui/SMESH/image72.gif
    doc/salome/gui/SMESH/image72.jpg
    doc/salome/gui/SMESH/image73.gif
    doc/salome/gui/SMESH/image73.jpg
    doc/salome/gui/SMESH/image74.gif
    doc/salome/gui/SMESH/image74.jpg
    doc/salome/gui/SMESH/image75.gif
    doc/salome/gui/SMESH/image75.jpg
    doc/salome/gui/SMESH/image76.gif
    doc/salome/gui/SMESH/image76.jpg
    doc/salome/gui/SMESH/image77.gif
    doc/salome/gui/SMESH/image77.jpg
    doc/salome/gui/SMESH/image78.gif
    doc/salome/gui/SMESH/image78.jpg
    doc/salome/gui/SMESH/image79.gif
    doc/salome/gui/SMESH/image8.gif
    doc/salome/gui/SMESH/image8.jpg
    doc/salome/gui/SMESH/image80.gif
    doc/salome/gui/SMESH/image80.jpg
    doc/salome/gui/SMESH/image81.gif
    doc/salome/gui/SMESH/image81.jpg
    doc/salome/gui/SMESH/image82.gif
    doc/salome/gui/SMESH/image82.jpg
    doc/salome/gui/SMESH/image83.gif
    doc/salome/gui/SMESH/image84.gif
    doc/salome/gui/SMESH/image85.gif
    doc/salome/gui/SMESH/image87.gif
    doc/salome/gui/SMESH/image88.gif
    doc/salome/gui/SMESH/image89.gif
    doc/salome/gui/SMESH/image9.gif
    doc/salome/gui/SMESH/image9.jpg
    doc/salome/gui/SMESH/image90.gif
    doc/salome/gui/SMESH/image91.gif
    doc/salome/gui/SMESH/image92.gif
    doc/salome/gui/SMESH/image93.gif
    doc/salome/gui/SMESH/image94.gif
    doc/salome/gui/SMESH/image95.gif
    doc/salome/gui/SMESH/image96.gif
    doc/salome/gui/SMESH/image97.gif
    doc/salome/gui/SMESH/image98.gif
    doc/salome/gui/SMESH/note1.gif
    doc/salome/gui/SMESH/pattern_mapping.htm
    doc/salome/gui/SMESH/pics/exemple.gif
    doc/salome/gui/SMESH/pics/new.jpg
    doc/salome/gui/SMESH/revolution.htm
    doc/salome/gui/SMESH/smesh.htm
    doc/salome/gui/SMESH/smesh.html
    doc/salome/gui/SMESH/smesh_csh.htm
    doc/salome/gui/SMESH/smesh_csh.html
    doc/salome/gui/SMESH/smesh_rhc.htm
    doc/salome/gui/SMESH/smesh_rhc.html
    doc/salome/gui/SMESH/tetrahedron_(ghs3d)_meshing_algorithm.htm
    doc/salome/gui/SMESH/texture_horiz_ltbluebubbles.jpg
    doc/salome/gui/SMESH/webhelp.cab
    doc/salome/gui/SMESH/webhelp.jar
    doc/salome/gui/SMESH/whdata/whftdata.js
    doc/salome/gui/SMESH/whdata/whftdata0.htm
    doc/salome/gui/SMESH/whdata/whftdata0.xml
    doc/salome/gui/SMESH/whdata/whfts.htm
    doc/salome/gui/SMESH/whdata/whfts.js
    doc/salome/gui/SMESH/whdata/whfts.xml
    doc/salome/gui/SMESH/whdata/whfwdata.js
    doc/salome/gui/SMESH/whdata/whfwdata0.htm
    doc/salome/gui/SMESH/whdata/whfwdata0.xml
    doc/salome/gui/SMESH/whdata/whgdata.js
    doc/salome/gui/SMESH/whdata/whgdata0.htm
    doc/salome/gui/SMESH/whdata/whgdata0.xml
    doc/salome/gui/SMESH/whdata/whglo.htm
    doc/salome/gui/SMESH/whdata/whglo.js
    doc/salome/gui/SMESH/whdata/whglo.xml
    doc/salome/gui/SMESH/whdata/whidata.js
    doc/salome/gui/SMESH/whdata/whidx.htm
    doc/salome/gui/SMESH/whdata/whidx.js
    doc/salome/gui/SMESH/whdata/whidx.xml
    doc/salome/gui/SMESH/whdata/whtdata.js
    doc/salome/gui/SMESH/whdata/whtdata0.htm
    doc/salome/gui/SMESH/whdata/whtdata0.xml
    doc/salome/gui/SMESH/whdata/whtoc.htm
    doc/salome/gui/SMESH/whdata/whtoc.js
    doc/salome/gui/SMESH/whdata/whtoc.xml
    doc/salome/gui/SMESH/whestart.ico
    doc/salome/gui/SMESH/whfbody.htm
    doc/salome/gui/SMESH/whfdhtml.htm
    doc/salome/gui/SMESH/whfform.htm
    doc/salome/gui/SMESH/whfhost.js
    doc/salome/gui/SMESH/whform.js
    doc/salome/gui/SMESH/whframes.js
    doc/salome/gui/SMESH/whgbody.htm
    doc/salome/gui/SMESH/whgdata/whexpbar.gif
    doc/salome/gui/SMESH/whgdata/whlstf0.htm
    doc/salome/gui/SMESH/whgdata/whlstf1.htm
    doc/salome/gui/SMESH/whgdata/whlstf2.htm
    doc/salome/gui/SMESH/whgdata/whlstf3.htm
    doc/salome/gui/SMESH/whgdata/whlstf4.htm
    doc/salome/gui/SMESH/whgdata/whlstf5.htm
    doc/salome/gui/SMESH/whgdata/whlstf6.htm
    doc/salome/gui/SMESH/whgdata/whlstf7.htm
    doc/salome/gui/SMESH/whgdata/whlstfl0.htm
    doc/salome/gui/SMESH/whgdata/whlstfl1.htm
    doc/salome/gui/SMESH/whgdata/whlstfl10.htm
    doc/salome/gui/SMESH/whgdata/whlstfl11.htm
    doc/salome/gui/SMESH/whgdata/whlstfl12.htm
    doc/salome/gui/SMESH/whgdata/whlstfl13.htm
    doc/salome/gui/SMESH/whgdata/whlstfl14.htm
    doc/salome/gui/SMESH/whgdata/whlstfl15.htm
    doc/salome/gui/SMESH/whgdata/whlstfl16.htm
    doc/salome/gui/SMESH/whgdata/whlstfl17.htm
    doc/salome/gui/SMESH/whgdata/whlstfl18.htm
    doc/salome/gui/SMESH/whgdata/whlstfl19.htm
    doc/salome/gui/SMESH/whgdata/whlstfl2.htm
    doc/salome/gui/SMESH/whgdata/whlstfl20.htm
    doc/salome/gui/SMESH/whgdata/whlstfl21.htm
    doc/salome/gui/SMESH/whgdata/whlstfl22.htm
    doc/salome/gui/SMESH/whgdata/whlstfl23.htm
    doc/salome/gui/SMESH/whgdata/whlstfl3.htm
    doc/salome/gui/SMESH/whgdata/whlstfl4.htm
    doc/salome/gui/SMESH/whgdata/whlstfl5.htm
    doc/salome/gui/SMESH/whgdata/whlstfl6.htm
    doc/salome/gui/SMESH/whgdata/whlstfl7.htm
    doc/salome/gui/SMESH/whgdata/whlstfl8.htm
    doc/salome/gui/SMESH/whgdata/whlstfl9.htm
    doc/salome/gui/SMESH/whgdata/whlstg0.htm
    doc/salome/gui/SMESH/whgdata/whlsti0.htm
    doc/salome/gui/SMESH/whgdata/whlstt0.htm
    doc/salome/gui/SMESH/whgdata/whlstt1.htm
    doc/salome/gui/SMESH/whgdata/whlstt10.htm
    doc/salome/gui/SMESH/whgdata/whlstt11.htm
    doc/salome/gui/SMESH/whgdata/whlstt12.htm
    doc/salome/gui/SMESH/whgdata/whlstt13.htm
    doc/salome/gui/SMESH/whgdata/whlstt2.htm
    doc/salome/gui/SMESH/whgdata/whlstt3.htm
    doc/salome/gui/SMESH/whgdata/whlstt4.htm
    doc/salome/gui/SMESH/whgdata/whlstt5.htm
    doc/salome/gui/SMESH/whgdata/whlstt6.htm
    doc/salome/gui/SMESH/whgdata/whlstt7.htm
    doc/salome/gui/SMESH/whgdata/whlstt8.htm
    doc/salome/gui/SMESH/whgdata/whlstt9.htm
    doc/salome/gui/SMESH/whgdata/whnvf30.htm
    doc/salome/gui/SMESH/whgdata/whnvf31.htm
    doc/salome/gui/SMESH/whgdata/whnvf32.htm
    doc/salome/gui/SMESH/whgdata/whnvf33.htm
    doc/salome/gui/SMESH/whgdata/whnvl31.htm
    doc/salome/gui/SMESH/whgdata/whnvl32.htm
    doc/salome/gui/SMESH/whgdata/whnvl33.htm
    doc/salome/gui/SMESH/whgdata/whnvp30.htm
    doc/salome/gui/SMESH/whgdata/whnvp31.htm
    doc/salome/gui/SMESH/whgdata/whnvp32.htm
    doc/salome/gui/SMESH/whgdata/whnvp33.htm
    doc/salome/gui/SMESH/whgdata/whnvt30.htm
    doc/salome/gui/SMESH/whgdata/whnvt31.htm
    doc/salome/gui/SMESH/whgdata/whnvt32.htm
    doc/salome/gui/SMESH/whgdata/whnvt33.htm
    doc/salome/gui/SMESH/whgdef.htm
    doc/salome/gui/SMESH/whgdhtml.htm
    doc/salome/gui/SMESH/whghost.js
    doc/salome/gui/SMESH/whhost.js
    doc/salome/gui/SMESH/whibody.htm
    doc/salome/gui/SMESH/whidhtml.htm
    doc/salome/gui/SMESH/whiform.htm
    doc/salome/gui/SMESH/whihost.js
    doc/salome/gui/SMESH/whlang.js
    doc/salome/gui/SMESH/whmozemu.js
    doc/salome/gui/SMESH/whmsg.js
    doc/salome/gui/SMESH/whnjs.htm
    doc/salome/gui/SMESH/whphost.js
    doc/salome/gui/SMESH/whproj.htm
    doc/salome/gui/SMESH/whproj.js
    doc/salome/gui/SMESH/whproj.xml
    doc/salome/gui/SMESH/whproxy.js
    doc/salome/gui/SMESH/whres.xml
    doc/salome/gui/SMESH/whrstart.ico
    doc/salome/gui/SMESH/whskin_banner.htm
    doc/salome/gui/SMESH/whskin_blank.htm
    doc/salome/gui/SMESH/whskin_frmset01.htm
    doc/salome/gui/SMESH/whskin_frmset010.htm
    doc/salome/gui/SMESH/whskin_info.htm
    doc/salome/gui/SMESH/whskin_mbars.htm
    doc/salome/gui/SMESH/whskin_papplet.htm
    doc/salome/gui/SMESH/whskin_pdhtml.htm
    doc/salome/gui/SMESH/whskin_plist.htm
    doc/salome/gui/SMESH/whskin_tbars.htm
    doc/salome/gui/SMESH/whst_topics.xml
    doc/salome/gui/SMESH/whstart.ico
    doc/salome/gui/SMESH/whstart.js
    doc/salome/gui/SMESH/whstub.js
    doc/salome/gui/SMESH/wht_abge.jpg
    doc/salome/gui/SMESH/wht_abgi.jpg
    doc/salome/gui/SMESH/wht_abgw.jpg
    doc/salome/gui/SMESH/wht_abte.jpg
    doc/salome/gui/SMESH/wht_abti.jpg
    doc/salome/gui/SMESH/wht_abtw.jpg
    doc/salome/gui/SMESH/wht_fts_h.gif
    doc/salome/gui/SMESH/wht_fts_n.gif
    doc/salome/gui/SMESH/wht_glo_h.gif
    doc/salome/gui/SMESH/wht_glo_n.gif
    doc/salome/gui/SMESH/wht_go.gif
    doc/salome/gui/SMESH/wht_hide.gif
    doc/salome/gui/SMESH/wht_idx_h.gif
    doc/salome/gui/SMESH/wht_idx_n.gif
    doc/salome/gui/SMESH/wht_logo1.gif
    doc/salome/gui/SMESH/wht_logo2.gif
    doc/salome/gui/SMESH/wht_next.gif
    doc/salome/gui/SMESH/wht_next_g.gif
    doc/salome/gui/SMESH/wht_prev.gif
    doc/salome/gui/SMESH/wht_prev_g.gif
    doc/salome/gui/SMESH/wht_spac.gif
    doc/salome/gui/SMESH/wht_sync.gif
    doc/salome/gui/SMESH/wht_tab0.gif
    doc/salome/gui/SMESH/wht_tab1.gif
    doc/salome/gui/SMESH/wht_tab2.gif
    doc/salome/gui/SMESH/wht_tab3.gif
    doc/salome/gui/SMESH/wht_tab4.gif
    doc/salome/gui/SMESH/wht_tab5.gif
    doc/salome/gui/SMESH/wht_tab6.gif
    doc/salome/gui/SMESH/wht_tab7.gif
    doc/salome/gui/SMESH/wht_tab8.gif
    doc/salome/gui/SMESH/wht_toc1.gif
    doc/salome/gui/SMESH/wht_toc2.gif
    doc/salome/gui/SMESH/wht_toc3.gif
    doc/salome/gui/SMESH/wht_toc4.gif
    doc/salome/gui/SMESH/wht_toc_h.gif
    doc/salome/gui/SMESH/wht_toc_n.gif
    doc/salome/gui/SMESH/wht_ws.gif
    doc/salome/gui/SMESH/wht_ws_g.gif
    doc/salome/gui/SMESH/whtbar.js
    doc/salome/gui/SMESH/whtdhtml.htm
    doc/salome/gui/SMESH/whthost.js
    doc/salome/gui/SMESH/whtopic.js
    doc/salome/gui/SMESH/whutils.js
    doc/salome/gui/SMESH/whver.js
    doc/salome/tui/Makefile.in
    doc/salome/tui/SMESH/HTML/SMESH_BasicHypothesis.html
    doc/salome/tui/SMESH/HTML/SMESH_Gen.html
    doc/salome/tui/SMESH/HTML/SMESH_Hypothesis.html
    doc/salome/tui/SMESH/HTML/SMESH_Mesh.html
    doc/salome/tui/SMESH/doxyfile
    doc/salome/tui/SMESH/doxyfile_py
    doc/salome/tui/SMESH/sources/Application-About.png
    doc/salome/tui/SMESH/sources/Application-About1.jpg
    doc/salome/tui/SMESH/sources/application.gif
    doc/salome/tui/SMESH/sources/application.jpg
    doc/salome/tui/SMESH/sources/bg_salome.gif
    doc/salome/tui/SMESH/sources/logocorp.gif
    doc/salome/tui/SMESH/sources/myheader.html
    doc/salome/tui/SMESH/sources/myheader_py2.html
    doc/salome/tui/SMESH/sources/occ.gif
    doc/salome/tui/SMESH/sources/static/PluginMeshers.html
    doc/salome/tui/SMESH/sources/static/doxygen.css
    doc/salome/tui/SMESH/sources/static/page2.html
    doc/salome/tui/SMESH/sources/static/tree.js
    doc/salome/tui/SMESH/sources/static/treeview.js
    idl/Makefile.in
    idl/SMESH_BasicHypothesis.idl
    idl/SMESH_Filter.idl
    idl/SMESH_Gen.idl
    idl/SMESH_Group.idl
    idl/SMESH_Hypothesis.idl
    idl/SMESH_Mesh.idl
    idl/SMESH_Pattern.idl
    resources/ModuleMesh.png
    resources/SMESH.config
    resources/SMESHCatalog.xml
    resources/SMESH_en.xml
    resources/SMESH_fr.xml
    resources/StdMeshers.xml
    resources/advanced_mesh_info.png
    resources/delete.png
    resources/flight_solid.brep
    resources/mesh.png
    resources/mesh_add.png
    resources/mesh_add_sub.png
    resources/mesh_algo_hexa.png
    resources/mesh_algo_mefisto.png
    resources/mesh_algo_netgen.png
    resources/mesh_algo_quad.png
    resources/mesh_algo_regular.png
    resources/mesh_algo_tetra.png
    resources/mesh_angle.png
    resources/mesh_area.png
    resources/mesh_aspect.png
    resources/mesh_aspect_3d.png
    resources/mesh_compute.png
    resources/mesh_connectivity.png
    resources/mesh_cutGroups.png
    resources/mesh_cutquad.png
    resources/mesh_deleteGroups.png
    resources/mesh_diagonal.png
    resources/mesh_edit.png
    resources/mesh_edit_group.png
    resources/mesh_extrusion.png
    resources/mesh_extrusionpath.png
    resources/mesh_free_edges.png
    resources/mesh_free_edges_2d.png
    resources/mesh_hexa.png
    resources/mesh_hexa_n.png
    resources/mesh_hypo_area.png
    resources/mesh_hypo_edit.png
    resources/mesh_hypo_length.png
    resources/mesh_hypo_segment.png
    resources/mesh_hypo_volume.png
    resources/mesh_info.png
    resources/mesh_init.png
    resources/mesh_intersectGroups.png
    resources/mesh_length.png
    resources/mesh_length_2d.png
    resources/mesh_line.png
    resources/mesh_line_n.png
    resources/mesh_make_group.png
    resources/mesh_merge_elements.png
    resources/mesh_merge_nodes.png
    resources/mesh_move_node.png
    resources/mesh_multi_edges.png
    resources/mesh_multi_edges_2d.png
    resources/mesh_orientation.png
    resources/mesh_pattern.png
    resources/mesh_points.png
    resources/mesh_polygon.png
    resources/mesh_polyhedron.png
    resources/mesh_pyramid.png
    resources/mesh_pyramid_n.png
    resources/mesh_quad.png
    resources/mesh_quad_n.png
    resources/mesh_rem_element.png
    resources/mesh_rem_node.png
    resources/mesh_remove.png
    resources/mesh_renumbering_elements.png
    resources/mesh_renumbering_nodes.png
    resources/mesh_revolution.png
    resources/mesh_rotation.png
    resources/mesh_set_algo.png
    resources/mesh_set_hypo.png
    resources/mesh_sew_bordertoside.png
    resources/mesh_sew_conform_freeborders.png
    resources/mesh_sew_freeborders.png
    resources/mesh_sew_sideelements.png
    resources/mesh_shading.png
    resources/mesh_shrink.png
    resources/mesh_skew.png
    resources/mesh_smoothing.png
    resources/mesh_symmetry_axis.png
    resources/mesh_symmetry_plane.png
    resources/mesh_symmetry_point.png
    resources/mesh_taper.png
    resources/mesh_tetra.png
    resources/mesh_tetra_n.png
    resources/mesh_translation_points.png
    resources/mesh_translation_vector.png
    resources/mesh_tree_algo.png
    resources/mesh_tree_algo_hexa.png
    resources/mesh_tree_algo_mefisto.png
    resources/mesh_tree_algo_netgen.png
    resources/mesh_tree_algo_quad.png
    resources/mesh_tree_algo_regular.png
    resources/mesh_tree_algo_tetra.png
    resources/mesh_tree_group.png
    resources/mesh_tree_hypo.png
    resources/mesh_tree_hypo_area.png
    resources/mesh_tree_hypo_length.png
    resources/mesh_tree_hypo_segment.png
    resources/mesh_tree_hypo_volume.png
    resources/mesh_tree_importedmesh.png
    resources/mesh_tree_mesh.png
    resources/mesh_tree_mesh_warn.png
    resources/mesh_triangle.png
    resources/mesh_triangle_n.png
    resources/mesh_union2tri.png
    resources/mesh_unionGroups.png
    resources/mesh_uniontri.png
    resources/mesh_update.png
    resources/mesh_vertex.png
    resources/mesh_vertex_n.png
    resources/mesh_wireframe.png
    resources/mesh_wrap.png
    resources/pattern_sample_2d.png
    resources/pattern_sample_3D.png
    resources/select1.png
    resources/standard_mesh_info.png
    src/Controls/Makefile.in
    src/Controls/SMESHControls.cxx
    src/Controls/SMESH_Controls.cxx
    src/Controls/SMESH_Controls.hxx
    src/Controls/SMESH_ControlsDef.hxx
    src/Driver/Driver_Document.cxx
    src/Driver/Driver_Document.h
    src/Driver/Driver_Mesh.cxx
    src/Driver/Driver_Mesh.h
    src/Driver/Driver_SMDS_Mesh.cxx
    src/Driver/Driver_SMDS_Mesh.h
    src/Driver/Driver_SMESHDS_Mesh.cxx
    src/Driver/Driver_SMESHDS_Mesh.h
    src/Driver/Makefile.in
    src/DriverDAT/DAT_Test.cxx
    src/DriverDAT/DriverDAT_R_SMDS_Mesh.cxx
    src/DriverDAT/DriverDAT_R_SMDS_Mesh.h
    src/DriverDAT/DriverDAT_R_SMESHDS_Document.cxx
    src/DriverDAT/DriverDAT_R_SMESHDS_Document.h
    src/DriverDAT/DriverDAT_R_SMESHDS_Mesh.cxx
    src/DriverDAT/DriverDAT_R_SMESHDS_Mesh.h
    src/DriverDAT/DriverDAT_W_SMDS_Mesh.cxx
    src/DriverDAT/DriverDAT_W_SMDS_Mesh.h
    src/DriverDAT/DriverDAT_W_SMESHDS_Document.cxx
    src/DriverDAT/DriverDAT_W_SMESHDS_Document.h
    src/DriverDAT/DriverDAT_W_SMESHDS_Mesh.cxx
    src/DriverDAT/DriverDAT_W_SMESHDS_Mesh.h
    src/DriverDAT/Makefile.in
    src/DriverMED/DriverMED_Family.cxx
    src/DriverMED/DriverMED_Family.h
    src/DriverMED/DriverMED_R_SMDS_Mesh.cxx
    src/DriverMED/DriverMED_R_SMDS_Mesh.h
    src/DriverMED/DriverMED_R_SMESHDS_Document.cxx
    src/DriverMED/DriverMED_R_SMESHDS_Document.h
    src/DriverMED/DriverMED_R_SMESHDS_Mesh.h
    src/DriverMED/DriverMED_W_SMDS_Mesh.cxx
    src/DriverMED/DriverMED_W_SMDS_Mesh.h
    src/DriverMED/DriverMED_W_SMESHDS_Document.cxx
    src/DriverMED/DriverMED_W_SMESHDS_Document.h
    src/DriverMED/DriverMED_W_SMESHDS_Mesh.h
    src/DriverMED/MED_Test.cxx
    src/DriverMED/Makefile.in
    src/DriverSTL/DriverSTL_R_SMDS_Mesh.cxx
    src/DriverSTL/DriverSTL_R_SMDS_Mesh.h
    src/DriverSTL/DriverSTL_W_SMDS_Mesh.cxx
    src/DriverSTL/DriverSTL_W_SMDS_Mesh.h
    src/DriverSTL/Makefile.in
    src/DriverSTL/STL_Test.cxx
    src/DriverUNV/DriverUNV_R_SMDS_Mesh.cxx
    src/DriverUNV/DriverUNV_R_SMDS_Mesh.h
    src/DriverUNV/DriverUNV_R_SMESHDS_Document.cxx
    src/DriverUNV/DriverUNV_R_SMESHDS_Document.h
    src/DriverUNV/DriverUNV_R_SMESHDS_Mesh.cxx
    src/DriverUNV/DriverUNV_R_SMESHDS_Mesh.h
    src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx
    src/DriverUNV/DriverUNV_W_SMDS_Mesh.h
    src/DriverUNV/DriverUNV_W_SMESHDS_Document.cxx
    src/DriverUNV/DriverUNV_W_SMESHDS_Document.h
    src/DriverUNV/DriverUNV_W_SMESHDS_Mesh.cxx
    src/DriverUNV/DriverUNV_W_SMESHDS_Mesh.h
    src/DriverUNV/Makefile.in
    src/DriverUNV/UNV2411_Structure.cxx
    src/DriverUNV/UNV2411_Structure.hxx
    src/DriverUNV/UNV2412_Structure.cxx
    src/DriverUNV/UNV2412_Structure.hxx
    src/DriverUNV/UNV_Test.cxx
    src/DriverUNV/UNV_Utilities.cxx
    src/DriverUNV/UNV_Utilities.hxx
    src/MEFISTO2/Makefile.in
    src/MEFISTO2/Rn.h
    src/MEFISTO2/aptrte.cxx
    src/MEFISTO2/aptrte.h
    src/MEFISTO2/areteideale.f
    src/MEFISTO2/trte.f
    src/Makefile.in
    src/NETGEN/Makefile.in
    src/NETGEN/ReadMeForNgUsers
    src/NETGEN/netgen43ForSalome.patch
    src/NETGENPlugin/Makefile.in
    src/NETGENPlugin/NETGENPlugin_NETGEN_3D.cxx
    src/NETGENPlugin/NETGENPlugin_NETGEN_3D.hxx
    src/NETGENPlugin/NETGENPlugin_NETGEN_3D_i.cxx
    src/NETGENPlugin/NETGENPlugin_NETGEN_3D_i.hxx
    src/NETGENPlugin/NETGENPlugin_i.cxx
    src/NETGENPlugin/NETGENPlugin_icons.po
    src/OBJECT/Makefile.in
    src/OBJECT/SMESH_Actor.h
    src/OBJECT/SMESH_ActorDef.h
    src/OBJECT/SMESH_ActorUtils.cxx
    src/OBJECT/SMESH_ActorUtils.h
    src/OBJECT/SMESH_DeviceActor.cxx
    src/OBJECT/SMESH_DeviceActor.h
    src/OBJECT/SMESH_ExtractGeometry.cxx
    src/OBJECT/SMESH_ExtractGeometry.h
    src/OBJECT/SMESH_Object.cxx
    src/OBJECT/SMESH_Object.h
    src/OBJECT/SMESH_ObjectDef.h
    src/SMDS/Makefile.in
    src/SMDS/SMDSAbs_ElementType.hxx
    src/SMDS/SMDS_EdgePosition.cxx
    src/SMDS/SMDS_EdgePosition.hxx
    src/SMDS/SMDS_ElemIterator.hxx
    src/SMDS/SMDS_FaceOfEdges.cxx
    src/SMDS/SMDS_FaceOfEdges.hxx
    src/SMDS/SMDS_FaceOfNodes.cxx
    src/SMDS/SMDS_FaceOfNodes.hxx
    src/SMDS/SMDS_FacePosition.cxx
    src/SMDS/SMDS_FacePosition.hxx
    src/SMDS/SMDS_Iterator.hxx
    src/SMDS/SMDS_IteratorOfElements.cxx
    src/SMDS/SMDS_IteratorOfElements.hxx
    src/SMDS/SMDS_Mesh.cxx
    src/SMDS/SMDS_Mesh.hxx
    src/SMDS/SMDS_MeshEdge.cxx
    src/SMDS/SMDS_MeshEdge.hxx
    src/SMDS/SMDS_MeshElement.cxx
    src/SMDS/SMDS_MeshElement.hxx
    src/SMDS/SMDS_MeshElementIDFactory.cxx
    src/SMDS/SMDS_MeshElementIDFactory.hxx
    src/SMDS/SMDS_MeshFace.cxx
    src/SMDS/SMDS_MeshFace.hxx
    src/SMDS/SMDS_MeshGroup.cxx
    src/SMDS/SMDS_MeshGroup.hxx
    src/SMDS/SMDS_MeshIDFactory.cxx
    src/SMDS/SMDS_MeshIDFactory.hxx
    src/SMDS/SMDS_MeshNode.cxx
    src/SMDS/SMDS_MeshNode.hxx
    src/SMDS/SMDS_MeshObject.cxx
    src/SMDS/SMDS_MeshObject.hxx
    src/SMDS/SMDS_MeshVolume.cxx
    src/SMDS/SMDS_MeshVolume.hxx
    src/SMDS/SMDS_PolygonalFaceOfNodes.cxx
    src/SMDS/SMDS_PolygonalFaceOfNodes.hxx
    src/SMDS/SMDS_PolyhedralVolumeOfNodes.cxx
    src/SMDS/SMDS_PolyhedralVolumeOfNodes.hxx
    src/SMDS/SMDS_Position.cxx
    src/SMDS/SMDS_Position.hxx
    src/SMDS/SMDS_SpacePosition.cxx
    src/SMDS/SMDS_SpacePosition.hxx
    src/SMDS/SMDS_TypeOfPosition.hxx
    src/SMDS/SMDS_VertexPosition.cxx
    src/SMDS/SMDS_VertexPosition.hxx
    src/SMDS/SMDS_VolumeOfFaces.cxx
    src/SMDS/SMDS_VolumeOfFaces.hxx
    src/SMDS/SMDS_VolumeOfNodes.cxx
    src/SMDS/SMDS_VolumeOfNodes.hxx
    src/SMDS/SMDS_VolumeTool.cxx
    src/SMDS/SMDS_VolumeTool.hxx
    src/SMESH/Makefile.in
    src/SMESH/SMESH_1D_Algo.cxx
    src/SMESH/SMESH_1D_Algo.hxx
    src/SMESH/SMESH_2D_Algo.cxx
    src/SMESH/SMESH_2D_Algo.hxx
    src/SMESH/SMESH_3D_Algo.cxx
    src/SMESH/SMESH_3D_Algo.hxx
    src/SMESH/SMESH_Algo.cxx
    src/SMESH/SMESH_Algo.hxx
    src/SMESH/SMESH_Block.cxx
    src/SMESH/SMESH_Block.hxx
    src/SMESH/SMESH_Gen.cxx
    src/SMESH/SMESH_Gen.hxx
    src/SMESH/SMESH_Group.cxx
    src/SMESH/SMESH_Group.hxx
    src/SMESH/SMESH_HypoFilter.cxx
    src/SMESH/SMESH_HypoFilter.hxx
    src/SMESH/SMESH_Hypothesis.cxx
    src/SMESH/SMESH_Hypothesis.hxx
    src/SMESH/SMESH_Mesh.cxx
    src/SMESH/SMESH_Mesh.hxx
    src/SMESH/SMESH_MeshEditor.cxx
    src/SMESH/SMESH_MeshEditor.hxx
    src/SMESH/SMESH_Pattern.cxx
    src/SMESH/SMESH_Pattern.hxx
    src/SMESH/SMESH_subMesh.cxx
    src/SMESH/SMESH_subMesh.hxx
    src/SMESHDS/Makefile.in
    src/SMESHDS/SMESHDS_Command.cxx
    src/SMESHDS/SMESHDS_Command.hxx
    src/SMESHDS/SMESHDS_CommandType.hxx
    src/SMESHDS/SMESHDS_Document.cxx
    src/SMESHDS/SMESHDS_Document.hxx
    src/SMESHDS/SMESHDS_Group.cxx
    src/SMESHDS/SMESHDS_Group.hxx
    src/SMESHDS/SMESHDS_GroupBase.cxx
    src/SMESHDS/SMESHDS_GroupBase.hxx
    src/SMESHDS/SMESHDS_GroupOnGeom.cxx
    src/SMESHDS/SMESHDS_GroupOnGeom.hxx
    src/SMESHDS/SMESHDS_Hypothesis.cxx
    src/SMESHDS/SMESHDS_Hypothesis.hxx
    src/SMESHDS/SMESHDS_Mesh.cxx
    src/SMESHDS/SMESHDS_Mesh.hxx
    src/SMESHDS/SMESHDS_Script.cxx
    src/SMESHDS/SMESHDS_Script.hxx
    src/SMESHDS/SMESHDS_SubMesh.cxx
    src/SMESHDS/SMESHDS_SubMesh.hxx
    src/SMESHFiltersSelection/Handle_SMESH_TypeFilter.hxx
    src/SMESHFiltersSelection/SMESH_LogicalFilter.cxx
    src/SMESHFiltersSelection/SMESH_LogicalFilter.hxx
    src/SMESHFiltersSelection/SMESH_NumberFilter.cxx
    src/SMESHFiltersSelection/SMESH_NumberFilter.hxx
    src/SMESHFiltersSelection/SMESH_Type.h
    src/SMESHFiltersSelection/SMESH_TypeFilter.cxx
    src/SMESHFiltersSelection/SMESH_TypeFilter.hxx
    src/SMESHFiltersSelection/SMESH_TypeFilter.ixx
    src/SMESHFiltersSelection/SMESH_TypeFilter.jxx
    src/SMESHGUI/Makefile.in
    src/SMESHGUI/SMESHBin.cxx
    src/SMESHGUI/SMESHGUI.h
    src/SMESHGUI/SMESHGUI_AddMeshElementDlg.cxx
    src/SMESHGUI/SMESHGUI_AddMeshElementDlg.h
    src/SMESHGUI/SMESHGUI_AddSubMeshDlg.cxx
    src/SMESHGUI/SMESHGUI_AddSubMeshDlg.h
    src/SMESHGUI/SMESHGUI_ClippingDlg.cxx
    src/SMESHGUI/SMESHGUI_ClippingDlg.h
    src/SMESHGUI/SMESHGUI_CreateHypothesesDlg.cxx
    src/SMESHGUI/SMESHGUI_CreateHypothesesDlg.h
    src/SMESHGUI/SMESHGUI_CreatePatternDlg.cxx
    src/SMESHGUI/SMESHGUI_CreatePatternDlg.h
    src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.cxx
    src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.h
    src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx
    src/SMESHGUI/SMESHGUI_DeleteGroupDlg.h
    src/SMESHGUI/SMESHGUI_Dialog.cxx
    src/SMESHGUI/SMESHGUI_Dialog.h
    src/SMESHGUI/SMESHGUI_EditHypothesesDlg.cxx
    src/SMESHGUI/SMESHGUI_EditHypothesesDlg.h
    src/SMESHGUI/SMESHGUI_EditMeshDlg.cxx
    src/SMESHGUI/SMESHGUI_EditMeshDlg.h
    src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.cxx
    src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.h
    src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx
    src/SMESHGUI/SMESHGUI_ExtrusionDlg.h
    src/SMESHGUI/SMESHGUI_Filter.cxx
    src/SMESHGUI/SMESHGUI_Filter.h
    src/SMESHGUI/SMESHGUI_FilterDlg.h
    src/SMESHGUI/SMESHGUI_FilterLibraryDlg.cxx
    src/SMESHGUI/SMESHGUI_FilterLibraryDlg.h
    src/SMESHGUI/SMESHGUI_FilterUtils.cxx
    src/SMESHGUI/SMESHGUI_FilterUtils.h
    src/SMESHGUI/SMESHGUI_GEOMGenUtils.cxx
    src/SMESHGUI/SMESHGUI_GEOMGenUtils.h
    src/SMESHGUI/SMESHGUI_GroupDlg.h
    src/SMESHGUI/SMESHGUI_GroupOpDlg.cxx
    src/SMESHGUI/SMESHGUI_GroupOpDlg.h
    src/SMESHGUI/SMESHGUI_GroupUtils.cxx
    src/SMESHGUI/SMESHGUI_GroupUtils.h
    src/SMESHGUI/SMESHGUI_Hypotheses.h
    src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx
    src/SMESHGUI/SMESHGUI_HypothesesUtils.h
    src/SMESHGUI/SMESHGUI_IdValidator.h
    src/SMESHGUI/SMESHGUI_InitMeshDlg.cxx
    src/SMESHGUI/SMESHGUI_InitMeshDlg.h
    src/SMESHGUI/SMESHGUI_MergeNodesDlg.cxx
    src/SMESHGUI/SMESHGUI_MergeNodesDlg.h
    src/SMESHGUI/SMESHGUI_MeshDlg.cxx
    src/SMESHGUI/SMESHGUI_MeshDlg.h
    src/SMESHGUI/SMESHGUI_MeshInfosDlg.cxx
    src/SMESHGUI/SMESHGUI_MeshInfosDlg.h
    src/SMESHGUI/SMESHGUI_MeshOp.cxx
    src/SMESHGUI/SMESHGUI_MeshOp.h
    src/SMESHGUI/SMESHGUI_MeshPatternDlg.cxx
    src/SMESHGUI/SMESHGUI_MeshPatternDlg.h
    src/SMESHGUI/SMESHGUI_MeshUtils.cxx
    src/SMESHGUI/SMESHGUI_MeshUtils.h
    src/SMESHGUI/SMESHGUI_MoveNodesDlg.cxx
    src/SMESHGUI/SMESHGUI_MoveNodesDlg.h
    src/SMESHGUI/SMESHGUI_MultiEditDlg.h
    src/SMESHGUI/SMESHGUI_NodesDlg.cxx
    src/SMESHGUI/SMESHGUI_NodesDlg.h
    src/SMESHGUI/SMESHGUI_Operation.cxx
    src/SMESHGUI/SMESHGUI_Operation.h
    src/SMESHGUI/SMESHGUI_PatternUtils.cxx
    src/SMESHGUI/SMESHGUI_PatternUtils.h
    src/SMESHGUI/SMESHGUI_PatternWidget.cxx
    src/SMESHGUI/SMESHGUI_PatternWidget.h
    src/SMESHGUI/SMESHGUI_PrecisionDlg.cxx
    src/SMESHGUI/SMESHGUI_PrecisionDlg.h
    src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.cxx
    src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.h
    src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.cxx
    src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.h
    src/SMESHGUI/SMESHGUI_Preferences_SelectionDlg.cxx
    src/SMESHGUI/SMESHGUI_Preferences_SelectionDlg.h
    src/SMESHGUI/SMESHGUI_RemoveElementsDlg.h
    src/SMESHGUI/SMESHGUI_RemoveNodesDlg.h
    src/SMESHGUI/SMESHGUI_RenumberingDlg.cxx
    src/SMESHGUI/SMESHGUI_RenumberingDlg.h
    src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx
    src/SMESHGUI/SMESHGUI_RevolutionDlg.h
    src/SMESHGUI/SMESHGUI_RotationDlg.cxx
    src/SMESHGUI/SMESHGUI_RotationDlg.h
    src/SMESHGUI/SMESHGUI_SMESHGenUtils.cxx
    src/SMESHGUI/SMESHGUI_SMESHGenUtils.h
    src/SMESHGUI/SMESHGUI_Selection.h
    src/SMESHGUI/SMESHGUI_SelectionOp.cxx
    src/SMESHGUI/SMESHGUI_SelectionOp.h
    src/SMESHGUI/SMESHGUI_SewingDlg.cxx
    src/SMESHGUI/SMESHGUI_SewingDlg.h
    src/SMESHGUI/SMESHGUI_SingleEditDlg.cxx
    src/SMESHGUI/SMESHGUI_SingleEditDlg.h
    src/SMESHGUI/SMESHGUI_SmoothingDlg.cxx
    src/SMESHGUI/SMESHGUI_SmoothingDlg.h
    src/SMESHGUI/SMESHGUI_SpinBox.cxx
    src/SMESHGUI/SMESHGUI_SpinBox.h
    src/SMESHGUI/SMESHGUI_StandardMeshInfosDlg.cxx
    src/SMESHGUI/SMESHGUI_StandardMeshInfosDlg.h
    src/SMESHGUI/SMESHGUI_Swig.cxx
    src/SMESHGUI/SMESHGUI_Swig.hxx
    src/SMESHGUI/SMESHGUI_Swig.i
    src/SMESHGUI/SMESHGUI_SymmetryDlg.cxx
    src/SMESHGUI/SMESHGUI_SymmetryDlg.h
    src/SMESHGUI/SMESHGUI_TranslationDlg.cxx
    src/SMESHGUI/SMESHGUI_TranslationDlg.h
    src/SMESHGUI/SMESHGUI_TransparencyDlg.cxx
    src/SMESHGUI/SMESHGUI_TransparencyDlg.h
    src/SMESHGUI/SMESHGUI_Utils.cxx
    src/SMESHGUI/SMESHGUI_Utils.h
    src/SMESHGUI/SMESHGUI_XmlHandler.cxx
    src/SMESHGUI/SMESHGUI_XmlHandler.h
    src/SMESHGUI/SMESHGUI_aParameter.cxx
    src/SMESHGUI/SMESHGUI_aParameter.h
    src/SMESHGUI/SMESHGUI_aParameterDlg.cxx
    src/SMESHGUI/SMESHGUI_aParameterDlg.h
    src/SMESHGUI/SMESH_icons.po
    src/SMESHGUI/SMESH_images.po
    src/SMESHGUI/SMESH_msg_en.po
    src/SMESH_I/SMESH.hxx
    src/SMESH_I/SMESHEngine.cxx
    src/SMESH_I/SMESH_1D_Algo_i.cxx
    src/SMESH_I/SMESH_1D_Algo_i.hxx
    src/SMESH_I/SMESH_2D_Algo_i.cxx
    src/SMESH_I/SMESH_2D_Algo_i.hxx
    src/SMESH_I/SMESH_3D_Algo_i.cxx
    src/SMESH_I/SMESH_3D_Algo_i.hxx
    src/SMESH_I/SMESH_Algo_i.cxx
    src/SMESH_I/SMESH_Algo_i.hxx
    src/SMESH_I/SMESH_DumpPython.cxx
    src/SMESH_I/SMESH_Filter_i.cxx
    src/SMESH_I/SMESH_Filter_i.hxx
    src/SMESH_I/SMESH_Gen_i.cxx
    src/SMESH_I/SMESH_Gen_i.hxx
    src/SMESH_I/SMESH_Gen_i_1.cxx
    src/SMESH_I/SMESH_Group_i.cxx
    src/SMESH_I/SMESH_Group_i.hxx
    src/SMESH_I/SMESH_Hypothesis_i.cxx
    src/SMESH_I/SMESH_Hypothesis_i.hxx
    src/SMESH_I/SMESH_MEDFamily_i.cxx
    src/SMESH_I/SMESH_MEDFamily_i.hxx
    src/SMESH_I/SMESH_MEDMesh_i.cxx
    src/SMESH_I/SMESH_MEDMesh_i.hxx
    src/SMESH_I/SMESH_MEDSupport_i.cxx
    src/SMESH_I/SMESH_MEDSupport_i.hxx
    src/SMESH_I/SMESH_MeshEditor_i.cxx
    src/SMESH_I/SMESH_MeshEditor_i.hxx
    src/SMESH_I/SMESH_Mesh_i.cxx
    src/SMESH_I/SMESH_Mesh_i.hxx
    src/SMESH_I/SMESH_Pattern_i.cxx
    src/SMESH_I/SMESH_Pattern_i.hxx
    src/SMESH_I/SMESH_PythonDump.hxx
    src/SMESH_I/SMESH_subMesh_i.cxx
    src/SMESH_I/SMESH_subMesh_i.hxx
    src/SMESH_I/smeshpy.py
    src/SMESH_SWIG/Makefile.in
    src/SMESH_SWIG/PAL_MESH_041_mesh.py
    src/SMESH_SWIG/PAL_MESH_043_2D.py
    src/SMESH_SWIG/PAL_MESH_043_3D.py
    src/SMESH_SWIG/SMESH_BelongToGeom.py
    src/SMESH_SWIG/SMESH_GroupFromGeom.py
    src/SMESH_SWIG/SMESH_GroupFromGeom2.py
    src/SMESH_SWIG/SMESH_GroupLyingOnGeom.py
    src/SMESH_SWIG/SMESH_Nut.py
    src/SMESH_SWIG/SMESH_Partition1_tetra.py
    src/SMESH_SWIG/SMESH_Sphere.py
    src/SMESH_SWIG/SMESH_blocks.py
    src/SMESH_SWIG/SMESH_box.py
    src/SMESH_SWIG/SMESH_box2_tetra.py
    src/SMESH_SWIG/SMESH_box3_tetra.py
    src/SMESH_SWIG/SMESH_box_tetra.py
    src/SMESH_SWIG/SMESH_controls.py
    src/SMESH_SWIG/SMESH_demo_hexa2_upd.py
    src/SMESH_SWIG/SMESH_fixation.py
    src/SMESH_SWIG/SMESH_fixation_hexa.py
    src/SMESH_SWIG/SMESH_fixation_tetra.py
    src/SMESH_SWIG/SMESH_flight_skin.py
    src/SMESH_SWIG/SMESH_freebord.py
    src/SMESH_SWIG/SMESH_hexaedre.py
    src/SMESH_SWIG/SMESH_mechanic.py
    src/SMESH_SWIG/SMESH_mechanic_editor.py
    src/SMESH_SWIG/SMESH_mechanic_tetra.py
    src/SMESH_SWIG/SMESH_reg.py
    src/SMESH_SWIG/SMESH_shared_modules.py
    src/SMESH_SWIG/SMESH_test.py
    src/SMESH_SWIG/SMESH_test0.py
    src/SMESH_SWIG/SMESH_test1.py
    src/SMESH_SWIG/SMESH_test2.py
    src/SMESH_SWIG/SMESH_test3.py
    src/SMESH_SWIG/SMESH_test4.py
    src/SMESH_SWIG/SMESH_test5.py
    src/SMESH_SWIG/batchmode_mefisto.py
    src/SMESH_SWIG/batchmode_smesh.py
    src/SMESH_SWIG/ex00_all.py
    src/SMESH_SWIG/ex01_cube2build.py
    src/SMESH_SWIG/ex02_cube2primitive.py
    src/SMESH_SWIG/ex03_cube2partition.py
    src/SMESH_SWIG/ex04_cube5tetraHexa.py
    src/SMESH_SWIG/ex05_hole1build.py
    src/SMESH_SWIG/ex06_hole1boolean.py
    src/SMESH_SWIG/ex07_hole1partition.py
    src/SMESH_SWIG/ex08_hole2build.py
    src/SMESH_SWIG/ex09_grid4build.py
    src/SMESH_SWIG/ex10_grid4geometry.py
    src/SMESH_SWIG/ex11_grid3partition.py
    src/SMESH_SWIG/ex12_grid17partition.py
    src/SMESH_SWIG/ex13_hole1partial.py
    src/SMESH_SWIG/ex14_cyl1holed.py
    src/SMESH_SWIG/ex15_cyl2geometry.py
    src/SMESH_SWIG/ex16_cyl2complementary.py
    src/SMESH_SWIG/ex17_dome1.py
    src/SMESH_SWIG/ex18_dome2.py
    src/SMESH_SWIG/ex19_sphereINcube.py
    src/SMESH_SWIG/libSMESH_Swig.i
    src/SMESH_SWIG/smesh.py
    src/StdMeshers/Makefile.in
    src/StdMeshers/StdMeshers_Arithmetic1D.cxx
    src/StdMeshers/StdMeshers_Arithmetic1D.hxx
    src/StdMeshers/StdMeshers_Deflection1D.cxx
    src/StdMeshers/StdMeshers_Deflection1D.hxx
    src/StdMeshers/StdMeshers_Hexa_3D.cxx
    src/StdMeshers/StdMeshers_Hexa_3D.hxx
    src/StdMeshers/StdMeshers_LengthFromEdges.cxx
    src/StdMeshers/StdMeshers_LengthFromEdges.hxx
    src/StdMeshers/StdMeshers_LocalLength.cxx
    src/StdMeshers/StdMeshers_LocalLength.hxx
    src/StdMeshers/StdMeshers_MEFISTO_2D.cxx
    src/StdMeshers/StdMeshers_MEFISTO_2D.hxx
    src/StdMeshers/StdMeshers_MaxElementArea.cxx
    src/StdMeshers/StdMeshers_MaxElementArea.hxx
    src/StdMeshers/StdMeshers_MaxElementVolume.cxx
    src/StdMeshers/StdMeshers_MaxElementVolume.hxx
    src/StdMeshers/StdMeshers_NotConformAllowed.cxx
    src/StdMeshers/StdMeshers_NotConformAllowed.hxx
    src/StdMeshers/StdMeshers_NumberOfSegments.cxx
    src/StdMeshers/StdMeshers_NumberOfSegments.hxx
    src/StdMeshers/StdMeshers_Penta_3D.cxx
    src/StdMeshers/StdMeshers_Penta_3D.hxx
    src/StdMeshers/StdMeshers_Propagation.cxx
    src/StdMeshers/StdMeshers_Propagation.hxx
    src/StdMeshers/StdMeshers_Quadrangle_2D.cxx
    src/StdMeshers/StdMeshers_Quadrangle_2D.hxx
    src/StdMeshers/StdMeshers_Regular_1D.cxx
    src/StdMeshers/StdMeshers_Regular_1D.hxx
    src/StdMeshers/StdMeshers_StartEndLength.cxx
    src/StdMeshers/StdMeshers_StartEndLength.hxx
    src/StdMeshersGUI/Makefile.in
    src/StdMeshersGUI/StdMeshersGUI.cxx
    src/StdMeshersGUI/StdMeshersGUI_CreateHypothesisDlg.cxx
    src/StdMeshersGUI/StdMeshersGUI_CreateHypothesisDlg.h
    src/StdMeshersGUI/StdMeshersGUI_CreateStdHypothesisDlg.cxx
    src/StdMeshersGUI/StdMeshersGUI_CreateStdHypothesisDlg.h
    src/StdMeshersGUI/StdMeshersGUI_Parameters.cxx
    src/StdMeshersGUI/StdMeshersGUI_Parameters.h
    src/StdMeshersGUI/StdMeshers_icons.po
    src/StdMeshersGUI/StdMeshers_images.po
    src/StdMeshersGUI/StdMeshers_msg_en.po
    src/StdMeshers_I/Makefile.in
    src/StdMeshers_I/StdMeshers_Arithmetic1D_i.cxx
    src/StdMeshers_I/StdMeshers_Arithmetic1D_i.hxx
    src/StdMeshers_I/StdMeshers_Deflection1D_i.cxx
    src/StdMeshers_I/StdMeshers_Deflection1D_i.hxx
    src/StdMeshers_I/StdMeshers_Hexa_3D_i.cxx
    src/StdMeshers_I/StdMeshers_Hexa_3D_i.hxx
    src/StdMeshers_I/StdMeshers_LengthFromEdges_i.cxx
    src/StdMeshers_I/StdMeshers_LengthFromEdges_i.hxx
    src/StdMeshers_I/StdMeshers_LocalLength_i.cxx
    src/StdMeshers_I/StdMeshers_LocalLength_i.hxx
    src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.cxx
    src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.hxx
    src/StdMeshers_I/StdMeshers_MaxElementArea_i.cxx
    src/StdMeshers_I/StdMeshers_MaxElementArea_i.hxx
    src/StdMeshers_I/StdMeshers_MaxElementVolume_i.cxx
    src/StdMeshers_I/StdMeshers_MaxElementVolume_i.hxx
    src/StdMeshers_I/StdMeshers_NotConformAllowed_i.cxx
    src/StdMeshers_I/StdMeshers_NotConformAllowed_i.hxx
    src/StdMeshers_I/StdMeshers_NumberOfSegments_i.cxx
    src/StdMeshers_I/StdMeshers_NumberOfSegments_i.hxx
    src/StdMeshers_I/StdMeshers_Propagation_i.cxx
    src/StdMeshers_I/StdMeshers_Propagation_i.hxx
    src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.cxx
    src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.hxx
    src/StdMeshers_I/StdMeshers_Regular_1D_i.cxx
    src/StdMeshers_I/StdMeshers_Regular_1D_i.hxx
    src/StdMeshers_I/StdMeshers_StartEndLength_i.cxx
    src/StdMeshers_I/StdMeshers_StartEndLength_i.hxx
    src/StdMeshers_I/StdMeshers_i.cxx

1082 files changed:
ChangeLog [deleted file]
INSTALL [deleted file]
LICENCE [deleted file]
Makefile.in [deleted file]
adm_local/unix/config_files/check_Geom.m4 [deleted file]
adm_local/unix/config_files/check_Med.m4 [deleted file]
adm_local/unix/make_commence.in [deleted file]
adm_local/unix/make_conclude.in [deleted file]
adm_local/unix/make_omniorb.in [deleted file]
bin/VERSION [deleted file]
build_configure [deleted file]
configure.in.base [deleted file]
cvs-tags [deleted file]
doc/Makefile.in [deleted file]
doc/salome/AddNetgenInSalome2.pdf [deleted file]
doc/salome/AddNetgenInSalome2.ps [deleted file]
doc/salome/AddNetgenInSalome2.sxw [deleted file]
doc/salome/Makefile.in [deleted file]
doc/salome/PluginMeshers.txt [deleted file]
doc/salome/SMESH_index.html [deleted file]
doc/salome/gui/Makefile.in [deleted file]
doc/salome/gui/SMESH/SMESH.log [deleted file]
doc/salome/gui/SMESH/cshdat_robohelp.htm [deleted file]
doc/salome/gui/SMESH/cshdat_webhelp.htm [deleted file]
doc/salome/gui/SMESH/default.css [deleted file]
doc/salome/gui/SMESH/default.skn [deleted file]
doc/salome/gui/SMESH/default_ns.css [deleted file]
doc/salome/gui/SMESH/ehlpdhtm.js [deleted file]
doc/salome/gui/SMESH/extrusion.htm [deleted file]
doc/salome/gui/SMESH/files/1d_meshing_algorithm.htm [deleted file]
doc/salome/gui/SMESH/files/2d_(quadrangle)_meshing_algorithm.htm [deleted file]
doc/salome/gui/SMESH/files/2d_meshing_algorithm.htm [deleted file]
doc/salome/gui/SMESH/files/3d_meshing_algorithm.htm [deleted file]
doc/salome/gui/SMESH/files/about_hypotheses.htm [deleted file]
doc/salome/gui/SMESH/files/about_meshes.htm [deleted file]
doc/salome/gui/SMESH/files/about_meshing_algorithms.htm [deleted file]
doc/salome/gui/SMESH/files/about_modification_of_meshes.htm [deleted file]
doc/salome/gui/SMESH/files/about_quality_controls.htm [deleted file]
doc/salome/gui/SMESH/files/adding_nodes_and_elements.htm [deleted file]
doc/salome/gui/SMESH/files/area_of_elements.htm [deleted file]
doc/salome/gui/SMESH/files/arithmetic_1d.htm [deleted file]
doc/salome/gui/SMESH/files/aspect_ratio.htm [deleted file]
doc/salome/gui/SMESH/files/changing_orientation_of_elements.htm [deleted file]
doc/salome/gui/SMESH/files/computing_meshes.htm [deleted file]
doc/salome/gui/SMESH/files/connectivity.htm [deleted file]
doc/salome/gui/SMESH/files/constructing_groups_of_specific_elements.htm [deleted file]
doc/salome/gui/SMESH/files/constructing_meshes.htm [deleted file]
doc/salome/gui/SMESH/files/constructing_submeshes.htm [deleted file]
doc/salome/gui/SMESH/files/creating_groups.htm [deleted file]
doc/salome/gui/SMESH/files/cutting_quadrangles.htm [deleted file]
doc/salome/gui/SMESH/files/deflection_1d.htm [deleted file]
doc/salome/gui/SMESH/files/diagonal_iversion_of_elements.htm [deleted file]
doc/salome/gui/SMESH/files/displacing_nodes.htm [deleted file]
doc/salome/gui/SMESH/files/displaying_elements_numbers.htm [deleted file]
doc/salome/gui/SMESH/files/displaying_nodes_numbers.htm [deleted file]
doc/salome/gui/SMESH/files/editing_groups.htm [deleted file]
doc/salome/gui/SMESH/files/editing_hypotheses.htm [deleted file]
doc/salome/gui/SMESH/files/importing_and_exporting_meshes.htm [deleted file]
doc/salome/gui/SMESH/files/introduction_to_smesh.htm [deleted file]
doc/salome/gui/SMESH/files/length_from_edges.htm [deleted file]
doc/salome/gui/SMESH/files/length_of_edges.htm [deleted file]
doc/salome/gui/SMESH/files/local_length_hypothesis.htm [deleted file]
doc/salome/gui/SMESH/files/max._element_area_hypothesis.htm [deleted file]
doc/salome/gui/SMESH/files/max._element_volume_hypothsis.htm [deleted file]
doc/salome/gui/SMESH/files/merging_nodes.htm [deleted file]
doc/salome/gui/SMESH/files/minimum_angle.htm [deleted file]
doc/salome/gui/SMESH/files/non_conform_mesh_allowed_hypothesis.htm [deleted file]
doc/salome/gui/SMESH/files/number_of_segments_hypothesis.htm [deleted file]
doc/salome/gui/SMESH/files/propagation_of_1d_hypothesis_on_opposite_edges.htm [deleted file]
doc/salome/gui/SMESH/files/reassigning_hypotheses_and_algorithms.htm [deleted file]
doc/salome/gui/SMESH/files/removing_nodes_and_elements.htm [deleted file]
doc/salome/gui/SMESH/files/renumbering_nodes_and_elements.htm [deleted file]
doc/salome/gui/SMESH/files/rotation.htm [deleted file]
doc/salome/gui/SMESH/files/running_smesh_module.htm [deleted file]
doc/salome/gui/SMESH/files/scalar_bar_properties.htm [deleted file]
doc/salome/gui/SMESH/files/sewing_meshes.htm [deleted file]
doc/salome/gui/SMESH/files/shading.htm [deleted file]
doc/salome/gui/SMESH/files/shrink.htm [deleted file]
doc/salome/gui/SMESH/files/skew.htm [deleted file]
doc/salome/gui/SMESH/files/smoothing.htm [deleted file]
doc/salome/gui/SMESH/files/start_and_end_length_hypothesis.htm [deleted file]
doc/salome/gui/SMESH/files/symmetry.htm [deleted file]
doc/salome/gui/SMESH/files/taper.htm [deleted file]
doc/salome/gui/SMESH/files/tetrahedron_(ghs3d)_meshing_algorithm.htm [deleted file]
doc/salome/gui/SMESH/files/tetrahedron_(netgen)_meshing_algorithm.htm [deleted file]
doc/salome/gui/SMESH/files/translation.htm [deleted file]
doc/salome/gui/SMESH/files/uniting_a_set_of_triangles.htm [deleted file]
doc/salome/gui/SMESH/files/uniting_two_triangles.htm [deleted file]
doc/salome/gui/SMESH/files/using_operations_on_groups.htm [deleted file]
doc/salome/gui/SMESH/files/using_smesh_module.htm [deleted file]
doc/salome/gui/SMESH/files/view_update.htm [deleted file]
doc/salome/gui/SMESH/files/viewing_mesh_info.htm [deleted file]
doc/salome/gui/SMESH/files/visualization_modes.htm [deleted file]
doc/salome/gui/SMESH/files/visualization_properties.htm [deleted file]
doc/salome/gui/SMESH/files/warp.htm [deleted file]
doc/salome/gui/SMESH/files/wireframe.htm [deleted file]
doc/salome/gui/SMESH/i_blue.jpg [deleted file]
doc/salome/gui/SMESH/image10.jpg [deleted file]
doc/salome/gui/SMESH/image11.jpg [deleted file]
doc/salome/gui/SMESH/image12.gif [deleted file]
doc/salome/gui/SMESH/image12.jpg [deleted file]
doc/salome/gui/SMESH/image13.gif [deleted file]
doc/salome/gui/SMESH/image14.gif [deleted file]
doc/salome/gui/SMESH/image15.gif [deleted file]
doc/salome/gui/SMESH/image16.gif [deleted file]
doc/salome/gui/SMESH/image16.jpg [deleted file]
doc/salome/gui/SMESH/image17.jpg [deleted file]
doc/salome/gui/SMESH/image18.jpg [deleted file]
doc/salome/gui/SMESH/image2.gif [deleted file]
doc/salome/gui/SMESH/image20.jpg [deleted file]
doc/salome/gui/SMESH/image21.jpg [deleted file]
doc/salome/gui/SMESH/image22.gif [deleted file]
doc/salome/gui/SMESH/image22.jpg [deleted file]
doc/salome/gui/SMESH/image23.jpg [deleted file]
doc/salome/gui/SMESH/image24.gif [deleted file]
doc/salome/gui/SMESH/image24.jpg [deleted file]
doc/salome/gui/SMESH/image25.gif [deleted file]
doc/salome/gui/SMESH/image25.jpg [deleted file]
doc/salome/gui/SMESH/image26.gif [deleted file]
doc/salome/gui/SMESH/image26.jpg [deleted file]
doc/salome/gui/SMESH/image27.gif [deleted file]
doc/salome/gui/SMESH/image27.jpg [deleted file]
doc/salome/gui/SMESH/image28.gif [deleted file]
doc/salome/gui/SMESH/image28.jpg [deleted file]
doc/salome/gui/SMESH/image29.gif [deleted file]
doc/salome/gui/SMESH/image29.jpg [deleted file]
doc/salome/gui/SMESH/image3.jpg [deleted file]
doc/salome/gui/SMESH/image30.jpg [deleted file]
doc/salome/gui/SMESH/image31.gif [deleted file]
doc/salome/gui/SMESH/image31.jpg [deleted file]
doc/salome/gui/SMESH/image32.gif [deleted file]
doc/salome/gui/SMESH/image32.jpg [deleted file]
doc/salome/gui/SMESH/image33.gif [deleted file]
doc/salome/gui/SMESH/image34.gif [deleted file]
doc/salome/gui/SMESH/image34.jpg [deleted file]
doc/salome/gui/SMESH/image35.gif [deleted file]
doc/salome/gui/SMESH/image35.jpg [deleted file]
doc/salome/gui/SMESH/image36.gif [deleted file]
doc/salome/gui/SMESH/image36.jpg [deleted file]
doc/salome/gui/SMESH/image37.gif [deleted file]
doc/salome/gui/SMESH/image38.gif [deleted file]
doc/salome/gui/SMESH/image38.jpg [deleted file]
doc/salome/gui/SMESH/image39.gif [deleted file]
doc/salome/gui/SMESH/image39.jpg [deleted file]
doc/salome/gui/SMESH/image4.gif [deleted file]
doc/salome/gui/SMESH/image4.jpg [deleted file]
doc/salome/gui/SMESH/image40.gif [deleted file]
doc/salome/gui/SMESH/image40.jpg [deleted file]
doc/salome/gui/SMESH/image41.gif [deleted file]
doc/salome/gui/SMESH/image41.jpg [deleted file]
doc/salome/gui/SMESH/image42.gif [deleted file]
doc/salome/gui/SMESH/image42.jpg [deleted file]
doc/salome/gui/SMESH/image43.gif [deleted file]
doc/salome/gui/SMESH/image43.jpg [deleted file]
doc/salome/gui/SMESH/image44.gif [deleted file]
doc/salome/gui/SMESH/image44.jpg [deleted file]
doc/salome/gui/SMESH/image45.gif [deleted file]
doc/salome/gui/SMESH/image45.jpg [deleted file]
doc/salome/gui/SMESH/image46.gif [deleted file]
doc/salome/gui/SMESH/image46.jpg [deleted file]
doc/salome/gui/SMESH/image47.gif [deleted file]
doc/salome/gui/SMESH/image47.jpg [deleted file]
doc/salome/gui/SMESH/image48.gif [deleted file]
doc/salome/gui/SMESH/image48.jpg [deleted file]
doc/salome/gui/SMESH/image49.gif [deleted file]
doc/salome/gui/SMESH/image49.jpg [deleted file]
doc/salome/gui/SMESH/image50.gif [deleted file]
doc/salome/gui/SMESH/image50.jpg [deleted file]
doc/salome/gui/SMESH/image51.gif [deleted file]
doc/salome/gui/SMESH/image51.jpg [deleted file]
doc/salome/gui/SMESH/image52.gif [deleted file]
doc/salome/gui/SMESH/image52.jpg [deleted file]
doc/salome/gui/SMESH/image53.gif [deleted file]
doc/salome/gui/SMESH/image53.jpg [deleted file]
doc/salome/gui/SMESH/image54.jpg [deleted file]
doc/salome/gui/SMESH/image55.gif [deleted file]
doc/salome/gui/SMESH/image55.jpg [deleted file]
doc/salome/gui/SMESH/image56.gif [deleted file]
doc/salome/gui/SMESH/image57.gif [deleted file]
doc/salome/gui/SMESH/image57.jpg [deleted file]
doc/salome/gui/SMESH/image58.jpg [deleted file]
doc/salome/gui/SMESH/image59.jpg [deleted file]
doc/salome/gui/SMESH/image6.gif [deleted file]
doc/salome/gui/SMESH/image6.jpg [deleted file]
doc/salome/gui/SMESH/image60.jpg [deleted file]
doc/salome/gui/SMESH/image61.gif [deleted file]
doc/salome/gui/SMESH/image61.jpg [deleted file]
doc/salome/gui/SMESH/image62.jpg [deleted file]
doc/salome/gui/SMESH/image63.gif [deleted file]
doc/salome/gui/SMESH/image63.jpg [deleted file]
doc/salome/gui/SMESH/image64.gif [deleted file]
doc/salome/gui/SMESH/image64.jpg [deleted file]
doc/salome/gui/SMESH/image65.gif [deleted file]
doc/salome/gui/SMESH/image65.jpg [deleted file]
doc/salome/gui/SMESH/image66.gif [deleted file]
doc/salome/gui/SMESH/image66.jpg [deleted file]
doc/salome/gui/SMESH/image67.gif [deleted file]
doc/salome/gui/SMESH/image67.jpg [deleted file]
doc/salome/gui/SMESH/image68.gif [deleted file]
doc/salome/gui/SMESH/image68.jpg [deleted file]
doc/salome/gui/SMESH/image69.gif [deleted file]
doc/salome/gui/SMESH/image69.jpg [deleted file]
doc/salome/gui/SMESH/image7.gif [deleted file]
doc/salome/gui/SMESH/image7.jpg [deleted file]
doc/salome/gui/SMESH/image70.gif [deleted file]
doc/salome/gui/SMESH/image70.jpg [deleted file]
doc/salome/gui/SMESH/image71.gif [deleted file]
doc/salome/gui/SMESH/image71.jpg [deleted file]
doc/salome/gui/SMESH/image72.gif [deleted file]
doc/salome/gui/SMESH/image72.jpg [deleted file]
doc/salome/gui/SMESH/image73.gif [deleted file]
doc/salome/gui/SMESH/image73.jpg [deleted file]
doc/salome/gui/SMESH/image74.gif [deleted file]
doc/salome/gui/SMESH/image74.jpg [deleted file]
doc/salome/gui/SMESH/image75.gif [deleted file]
doc/salome/gui/SMESH/image75.jpg [deleted file]
doc/salome/gui/SMESH/image76.gif [deleted file]
doc/salome/gui/SMESH/image76.jpg [deleted file]
doc/salome/gui/SMESH/image77.gif [deleted file]
doc/salome/gui/SMESH/image77.jpg [deleted file]
doc/salome/gui/SMESH/image78.gif [deleted file]
doc/salome/gui/SMESH/image78.jpg [deleted file]
doc/salome/gui/SMESH/image79.gif [deleted file]
doc/salome/gui/SMESH/image8.gif [deleted file]
doc/salome/gui/SMESH/image8.jpg [deleted file]
doc/salome/gui/SMESH/image80.gif [deleted file]
doc/salome/gui/SMESH/image80.jpg [deleted file]
doc/salome/gui/SMESH/image81.gif [deleted file]
doc/salome/gui/SMESH/image81.jpg [deleted file]
doc/salome/gui/SMESH/image82.gif [deleted file]
doc/salome/gui/SMESH/image82.jpg [deleted file]
doc/salome/gui/SMESH/image83.gif [deleted file]
doc/salome/gui/SMESH/image84.gif [deleted file]
doc/salome/gui/SMESH/image85.gif [deleted file]
doc/salome/gui/SMESH/image87.gif [deleted file]
doc/salome/gui/SMESH/image88.gif [deleted file]
doc/salome/gui/SMESH/image89.gif [deleted file]
doc/salome/gui/SMESH/image9.gif [deleted file]
doc/salome/gui/SMESH/image9.jpg [deleted file]
doc/salome/gui/SMESH/image90.gif [deleted file]
doc/salome/gui/SMESH/image91.gif [deleted file]
doc/salome/gui/SMESH/image92.gif [deleted file]
doc/salome/gui/SMESH/image93.gif [deleted file]
doc/salome/gui/SMESH/image94.gif [deleted file]
doc/salome/gui/SMESH/image95.gif [deleted file]
doc/salome/gui/SMESH/image96.gif [deleted file]
doc/salome/gui/SMESH/image97.gif [deleted file]
doc/salome/gui/SMESH/image98.gif [deleted file]
doc/salome/gui/SMESH/note1.gif [deleted file]
doc/salome/gui/SMESH/pattern_mapping.htm [deleted file]
doc/salome/gui/SMESH/pics/exemple.gif [deleted file]
doc/salome/gui/SMESH/pics/new.jpg [deleted file]
doc/salome/gui/SMESH/revolution.htm [deleted file]
doc/salome/gui/SMESH/smesh.htm [deleted file]
doc/salome/gui/SMESH/smesh.html [deleted file]
doc/salome/gui/SMESH/smesh_csh.htm [deleted file]
doc/salome/gui/SMESH/smesh_csh.html [deleted file]
doc/salome/gui/SMESH/smesh_rhc.htm [deleted file]
doc/salome/gui/SMESH/smesh_rhc.html [deleted file]
doc/salome/gui/SMESH/tetrahedron_(ghs3d)_meshing_algorithm.htm [deleted file]
doc/salome/gui/SMESH/texture_horiz_ltbluebubbles.jpg [deleted file]
doc/salome/gui/SMESH/webhelp.cab [deleted file]
doc/salome/gui/SMESH/webhelp.jar [deleted file]
doc/salome/gui/SMESH/whdata/whftdata.js [deleted file]
doc/salome/gui/SMESH/whdata/whftdata0.htm [deleted file]
doc/salome/gui/SMESH/whdata/whftdata0.xml [deleted file]
doc/salome/gui/SMESH/whdata/whfts.htm [deleted file]
doc/salome/gui/SMESH/whdata/whfts.js [deleted file]
doc/salome/gui/SMESH/whdata/whfts.xml [deleted file]
doc/salome/gui/SMESH/whdata/whfwdata.js [deleted file]
doc/salome/gui/SMESH/whdata/whfwdata0.htm [deleted file]
doc/salome/gui/SMESH/whdata/whfwdata0.xml [deleted file]
doc/salome/gui/SMESH/whdata/whgdata.js [deleted file]
doc/salome/gui/SMESH/whdata/whgdata0.htm [deleted file]
doc/salome/gui/SMESH/whdata/whgdata0.xml [deleted file]
doc/salome/gui/SMESH/whdata/whglo.htm [deleted file]
doc/salome/gui/SMESH/whdata/whglo.js [deleted file]
doc/salome/gui/SMESH/whdata/whglo.xml [deleted file]
doc/salome/gui/SMESH/whdata/whidata.js [deleted file]
doc/salome/gui/SMESH/whdata/whidx.htm [deleted file]
doc/salome/gui/SMESH/whdata/whidx.js [deleted file]
doc/salome/gui/SMESH/whdata/whidx.xml [deleted file]
doc/salome/gui/SMESH/whdata/whtdata.js [deleted file]
doc/salome/gui/SMESH/whdata/whtdata0.htm [deleted file]
doc/salome/gui/SMESH/whdata/whtdata0.xml [deleted file]
doc/salome/gui/SMESH/whdata/whtoc.htm [deleted file]
doc/salome/gui/SMESH/whdata/whtoc.js [deleted file]
doc/salome/gui/SMESH/whdata/whtoc.xml [deleted file]
doc/salome/gui/SMESH/whestart.ico [deleted file]
doc/salome/gui/SMESH/whfbody.htm [deleted file]
doc/salome/gui/SMESH/whfdhtml.htm [deleted file]
doc/salome/gui/SMESH/whfform.htm [deleted file]
doc/salome/gui/SMESH/whfhost.js [deleted file]
doc/salome/gui/SMESH/whform.js [deleted file]
doc/salome/gui/SMESH/whframes.js [deleted file]
doc/salome/gui/SMESH/whgbody.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whexpbar.gif [deleted file]
doc/salome/gui/SMESH/whgdata/whlstf0.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstf1.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstf2.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstf3.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstf4.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstf5.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstf6.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstf7.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl0.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl1.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl10.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl11.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl12.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl13.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl14.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl15.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl16.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl17.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl18.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl19.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl2.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl20.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl21.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl22.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl23.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl3.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl4.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl5.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl6.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl7.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl8.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstfl9.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstg0.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlsti0.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstt0.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstt1.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstt10.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstt11.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstt12.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstt13.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstt2.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstt3.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstt4.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstt5.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstt6.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstt7.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstt8.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whlstt9.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whnvf30.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whnvf31.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whnvf32.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whnvf33.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whnvl31.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whnvl32.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whnvl33.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whnvp30.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whnvp31.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whnvp32.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whnvp33.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whnvt30.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whnvt31.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whnvt32.htm [deleted file]
doc/salome/gui/SMESH/whgdata/whnvt33.htm [deleted file]
doc/salome/gui/SMESH/whgdef.htm [deleted file]
doc/salome/gui/SMESH/whgdhtml.htm [deleted file]
doc/salome/gui/SMESH/whghost.js [deleted file]
doc/salome/gui/SMESH/whhost.js [deleted file]
doc/salome/gui/SMESH/whibody.htm [deleted file]
doc/salome/gui/SMESH/whidhtml.htm [deleted file]
doc/salome/gui/SMESH/whiform.htm [deleted file]
doc/salome/gui/SMESH/whihost.js [deleted file]
doc/salome/gui/SMESH/whlang.js [deleted file]
doc/salome/gui/SMESH/whmozemu.js [deleted file]
doc/salome/gui/SMESH/whmsg.js [deleted file]
doc/salome/gui/SMESH/whnjs.htm [deleted file]
doc/salome/gui/SMESH/whphost.js [deleted file]
doc/salome/gui/SMESH/whproj.htm [deleted file]
doc/salome/gui/SMESH/whproj.js [deleted file]
doc/salome/gui/SMESH/whproj.xml [deleted file]
doc/salome/gui/SMESH/whproxy.js [deleted file]
doc/salome/gui/SMESH/whres.xml [deleted file]
doc/salome/gui/SMESH/whrstart.ico [deleted file]
doc/salome/gui/SMESH/whskin_banner.htm [deleted file]
doc/salome/gui/SMESH/whskin_blank.htm [deleted file]
doc/salome/gui/SMESH/whskin_frmset01.htm [deleted file]
doc/salome/gui/SMESH/whskin_frmset010.htm [deleted file]
doc/salome/gui/SMESH/whskin_info.htm [deleted file]
doc/salome/gui/SMESH/whskin_mbars.htm [deleted file]
doc/salome/gui/SMESH/whskin_papplet.htm [deleted file]
doc/salome/gui/SMESH/whskin_pdhtml.htm [deleted file]
doc/salome/gui/SMESH/whskin_plist.htm [deleted file]
doc/salome/gui/SMESH/whskin_tbars.htm [deleted file]
doc/salome/gui/SMESH/whst_topics.xml [deleted file]
doc/salome/gui/SMESH/whstart.ico [deleted file]
doc/salome/gui/SMESH/whstart.js [deleted file]
doc/salome/gui/SMESH/whstub.js [deleted file]
doc/salome/gui/SMESH/wht_abge.jpg [deleted file]
doc/salome/gui/SMESH/wht_abgi.jpg [deleted file]
doc/salome/gui/SMESH/wht_abgw.jpg [deleted file]
doc/salome/gui/SMESH/wht_abte.jpg [deleted file]
doc/salome/gui/SMESH/wht_abti.jpg [deleted file]
doc/salome/gui/SMESH/wht_abtw.jpg [deleted file]
doc/salome/gui/SMESH/wht_fts_h.gif [deleted file]
doc/salome/gui/SMESH/wht_fts_n.gif [deleted file]
doc/salome/gui/SMESH/wht_glo_h.gif [deleted file]
doc/salome/gui/SMESH/wht_glo_n.gif [deleted file]
doc/salome/gui/SMESH/wht_go.gif [deleted file]
doc/salome/gui/SMESH/wht_hide.gif [deleted file]
doc/salome/gui/SMESH/wht_idx_h.gif [deleted file]
doc/salome/gui/SMESH/wht_idx_n.gif [deleted file]
doc/salome/gui/SMESH/wht_logo1.gif [deleted file]
doc/salome/gui/SMESH/wht_logo2.gif [deleted file]
doc/salome/gui/SMESH/wht_next.gif [deleted file]
doc/salome/gui/SMESH/wht_next_g.gif [deleted file]
doc/salome/gui/SMESH/wht_prev.gif [deleted file]
doc/salome/gui/SMESH/wht_prev_g.gif [deleted file]
doc/salome/gui/SMESH/wht_spac.gif [deleted file]
doc/salome/gui/SMESH/wht_sync.gif [deleted file]
doc/salome/gui/SMESH/wht_tab0.gif [deleted file]
doc/salome/gui/SMESH/wht_tab1.gif [deleted file]
doc/salome/gui/SMESH/wht_tab2.gif [deleted file]
doc/salome/gui/SMESH/wht_tab3.gif [deleted file]
doc/salome/gui/SMESH/wht_tab4.gif [deleted file]
doc/salome/gui/SMESH/wht_tab5.gif [deleted file]
doc/salome/gui/SMESH/wht_tab6.gif [deleted file]
doc/salome/gui/SMESH/wht_tab7.gif [deleted file]
doc/salome/gui/SMESH/wht_tab8.gif [deleted file]
doc/salome/gui/SMESH/wht_toc1.gif [deleted file]
doc/salome/gui/SMESH/wht_toc2.gif [deleted file]
doc/salome/gui/SMESH/wht_toc3.gif [deleted file]
doc/salome/gui/SMESH/wht_toc4.gif [deleted file]
doc/salome/gui/SMESH/wht_toc_h.gif [deleted file]
doc/salome/gui/SMESH/wht_toc_n.gif [deleted file]
doc/salome/gui/SMESH/wht_ws.gif [deleted file]
doc/salome/gui/SMESH/wht_ws_g.gif [deleted file]
doc/salome/gui/SMESH/whtbar.js [deleted file]
doc/salome/gui/SMESH/whtdhtml.htm [deleted file]
doc/salome/gui/SMESH/whthost.js [deleted file]
doc/salome/gui/SMESH/whtopic.js [deleted file]
doc/salome/gui/SMESH/whutils.js [deleted file]
doc/salome/gui/SMESH/whver.js [deleted file]
doc/salome/tui/Makefile.in [deleted file]
doc/salome/tui/SMESH/HTML/SMESH_BasicHypothesis.html [deleted file]
doc/salome/tui/SMESH/HTML/SMESH_Gen.html [deleted file]
doc/salome/tui/SMESH/HTML/SMESH_Hypothesis.html [deleted file]
doc/salome/tui/SMESH/HTML/SMESH_Mesh.html [deleted file]
doc/salome/tui/SMESH/doxyfile [deleted file]
doc/salome/tui/SMESH/doxyfile_py [deleted file]
doc/salome/tui/SMESH/sources/Application-About.png [deleted file]
doc/salome/tui/SMESH/sources/Application-About1.jpg [deleted file]
doc/salome/tui/SMESH/sources/application.gif [deleted file]
doc/salome/tui/SMESH/sources/application.jpg [deleted file]
doc/salome/tui/SMESH/sources/bg_salome.gif [deleted file]
doc/salome/tui/SMESH/sources/logocorp.gif [deleted file]
doc/salome/tui/SMESH/sources/myheader.html [deleted file]
doc/salome/tui/SMESH/sources/myheader_py2.html [deleted file]
doc/salome/tui/SMESH/sources/occ.gif [deleted file]
doc/salome/tui/SMESH/sources/static/PluginMeshers.html [deleted file]
doc/salome/tui/SMESH/sources/static/doxygen.css [deleted file]
doc/salome/tui/SMESH/sources/static/page2.html [deleted file]
doc/salome/tui/SMESH/sources/static/tree.js [deleted file]
doc/salome/tui/SMESH/sources/static/treeview.js [deleted file]
idl/Makefile.in [deleted file]
idl/SMESH_BasicHypothesis.idl [deleted file]
idl/SMESH_Filter.idl [deleted file]
idl/SMESH_Gen.idl [deleted file]
idl/SMESH_Group.idl [deleted file]
idl/SMESH_Hypothesis.idl [deleted file]
idl/SMESH_Mesh.idl [deleted file]
idl/SMESH_Pattern.idl [deleted file]
resources/ModuleMesh.png [deleted file]
resources/SMESH.config [deleted file]
resources/SMESHCatalog.xml [deleted file]
resources/SMESH_en.xml [deleted file]
resources/SMESH_fr.xml [deleted file]
resources/StdMeshers.xml [deleted file]
resources/advanced_mesh_info.png [deleted file]
resources/delete.png [deleted file]
resources/flight_solid.brep [deleted file]
resources/mesh.png [deleted file]
resources/mesh_add.png [deleted file]
resources/mesh_add_sub.png [deleted file]
resources/mesh_algo_hexa.png [deleted file]
resources/mesh_algo_mefisto.png [deleted file]
resources/mesh_algo_netgen.png [deleted file]
resources/mesh_algo_quad.png [deleted file]
resources/mesh_algo_regular.png [deleted file]
resources/mesh_algo_tetra.png [deleted file]
resources/mesh_angle.png [deleted file]
resources/mesh_area.png [deleted file]
resources/mesh_aspect.png [deleted file]
resources/mesh_aspect_3d.png [deleted file]
resources/mesh_compute.png [deleted file]
resources/mesh_connectivity.png [deleted file]
resources/mesh_cutGroups.png [deleted file]
resources/mesh_cutquad.png [deleted file]
resources/mesh_deleteGroups.png [deleted file]
resources/mesh_diagonal.png [deleted file]
resources/mesh_edit.png [deleted file]
resources/mesh_edit_group.png [deleted file]
resources/mesh_extrusion.png [deleted file]
resources/mesh_extrusionpath.png [deleted file]
resources/mesh_free_edges.png [deleted file]
resources/mesh_free_edges_2d.png [deleted file]
resources/mesh_hexa.png [deleted file]
resources/mesh_hexa_n.png [deleted file]
resources/mesh_hypo_area.png [deleted file]
resources/mesh_hypo_edit.png [deleted file]
resources/mesh_hypo_length.png [deleted file]
resources/mesh_hypo_segment.png [deleted file]
resources/mesh_hypo_volume.png [deleted file]
resources/mesh_info.png [deleted file]
resources/mesh_init.png [deleted file]
resources/mesh_intersectGroups.png [deleted file]
resources/mesh_length.png [deleted file]
resources/mesh_length_2d.png [deleted file]
resources/mesh_line.png [deleted file]
resources/mesh_line_n.png [deleted file]
resources/mesh_make_group.png [deleted file]
resources/mesh_merge_elements.png [deleted file]
resources/mesh_merge_nodes.png [deleted file]
resources/mesh_move_node.png [deleted file]
resources/mesh_multi_edges.png [deleted file]
resources/mesh_multi_edges_2d.png [deleted file]
resources/mesh_orientation.png [deleted file]
resources/mesh_pattern.png [deleted file]
resources/mesh_points.png [deleted file]
resources/mesh_polygon.png [deleted file]
resources/mesh_polyhedron.png [deleted file]
resources/mesh_pyramid.png [deleted file]
resources/mesh_pyramid_n.png [deleted file]
resources/mesh_quad.png [deleted file]
resources/mesh_quad_n.png [deleted file]
resources/mesh_rem_element.png [deleted file]
resources/mesh_rem_node.png [deleted file]
resources/mesh_remove.png [deleted file]
resources/mesh_renumbering_elements.png [deleted file]
resources/mesh_renumbering_nodes.png [deleted file]
resources/mesh_revolution.png [deleted file]
resources/mesh_rotation.png [deleted file]
resources/mesh_set_algo.png [deleted file]
resources/mesh_set_hypo.png [deleted file]
resources/mesh_sew_bordertoside.png [deleted file]
resources/mesh_sew_conform_freeborders.png [deleted file]
resources/mesh_sew_freeborders.png [deleted file]
resources/mesh_sew_sideelements.png [deleted file]
resources/mesh_shading.png [deleted file]
resources/mesh_shrink.png [deleted file]
resources/mesh_skew.png [deleted file]
resources/mesh_smoothing.png [deleted file]
resources/mesh_symmetry_axis.png [deleted file]
resources/mesh_symmetry_plane.png [deleted file]
resources/mesh_symmetry_point.png [deleted file]
resources/mesh_taper.png [deleted file]
resources/mesh_tetra.png [deleted file]
resources/mesh_tetra_n.png [deleted file]
resources/mesh_translation_points.png [deleted file]
resources/mesh_translation_vector.png [deleted file]
resources/mesh_tree_algo.png [deleted file]
resources/mesh_tree_algo_hexa.png [deleted file]
resources/mesh_tree_algo_mefisto.png [deleted file]
resources/mesh_tree_algo_netgen.png [deleted file]
resources/mesh_tree_algo_quad.png [deleted file]
resources/mesh_tree_algo_regular.png [deleted file]
resources/mesh_tree_algo_tetra.png [deleted file]
resources/mesh_tree_group.png [deleted file]
resources/mesh_tree_hypo.png [deleted file]
resources/mesh_tree_hypo_area.png [deleted file]
resources/mesh_tree_hypo_length.png [deleted file]
resources/mesh_tree_hypo_segment.png [deleted file]
resources/mesh_tree_hypo_volume.png [deleted file]
resources/mesh_tree_importedmesh.png [deleted file]
resources/mesh_tree_mesh.png [deleted file]
resources/mesh_tree_mesh_warn.png [deleted file]
resources/mesh_triangle.png [deleted file]
resources/mesh_triangle_n.png [deleted file]
resources/mesh_union2tri.png [deleted file]
resources/mesh_unionGroups.png [deleted file]
resources/mesh_uniontri.png [deleted file]
resources/mesh_update.png [deleted file]
resources/mesh_vertex.png [deleted file]
resources/mesh_vertex_n.png [deleted file]
resources/mesh_wireframe.png [deleted file]
resources/mesh_wrap.png [deleted file]
resources/pattern_sample_2d.png [deleted file]
resources/pattern_sample_3D.png [deleted file]
resources/select1.png [deleted file]
resources/standard_mesh_info.png [deleted file]
src/Controls/Makefile.in [deleted file]
src/Controls/SMESHControls.cxx [deleted file]
src/Controls/SMESH_Controls.cxx [deleted file]
src/Controls/SMESH_Controls.hxx [deleted file]
src/Controls/SMESH_ControlsDef.hxx [deleted file]
src/Driver/Driver_Document.cxx [deleted file]
src/Driver/Driver_Document.h [deleted file]
src/Driver/Driver_Mesh.cxx [deleted file]
src/Driver/Driver_Mesh.h [deleted file]
src/Driver/Driver_SMDS_Mesh.cxx [deleted file]
src/Driver/Driver_SMDS_Mesh.h [deleted file]
src/Driver/Driver_SMESHDS_Mesh.cxx [deleted file]
src/Driver/Driver_SMESHDS_Mesh.h [deleted file]
src/Driver/Makefile.in [deleted file]
src/DriverDAT/DAT_Test.cxx [deleted file]
src/DriverDAT/DriverDAT_R_SMDS_Mesh.cxx [deleted file]
src/DriverDAT/DriverDAT_R_SMDS_Mesh.h [deleted file]
src/DriverDAT/DriverDAT_R_SMESHDS_Document.cxx [deleted file]
src/DriverDAT/DriverDAT_R_SMESHDS_Document.h [deleted file]
src/DriverDAT/DriverDAT_R_SMESHDS_Mesh.cxx [deleted file]
src/DriverDAT/DriverDAT_R_SMESHDS_Mesh.h [deleted file]
src/DriverDAT/DriverDAT_W_SMDS_Mesh.cxx [deleted file]
src/DriverDAT/DriverDAT_W_SMDS_Mesh.h [deleted file]
src/DriverDAT/DriverDAT_W_SMESHDS_Document.cxx [deleted file]
src/DriverDAT/DriverDAT_W_SMESHDS_Document.h [deleted file]
src/DriverDAT/DriverDAT_W_SMESHDS_Mesh.cxx [deleted file]
src/DriverDAT/DriverDAT_W_SMESHDS_Mesh.h [deleted file]
src/DriverDAT/Makefile.in [deleted file]
src/DriverMED/DriverMED_Family.cxx [deleted file]
src/DriverMED/DriverMED_Family.h [deleted file]
src/DriverMED/DriverMED_R_SMDS_Mesh.cxx [deleted file]
src/DriverMED/DriverMED_R_SMDS_Mesh.h [deleted file]
src/DriverMED/DriverMED_R_SMESHDS_Document.cxx [deleted file]
src/DriverMED/DriverMED_R_SMESHDS_Document.h [deleted file]
src/DriverMED/DriverMED_R_SMESHDS_Mesh.h [deleted file]
src/DriverMED/DriverMED_W_SMDS_Mesh.cxx [deleted file]
src/DriverMED/DriverMED_W_SMDS_Mesh.h [deleted file]
src/DriverMED/DriverMED_W_SMESHDS_Document.cxx [deleted file]
src/DriverMED/DriverMED_W_SMESHDS_Document.h [deleted file]
src/DriverMED/DriverMED_W_SMESHDS_Mesh.h [deleted file]
src/DriverMED/MED_Test.cxx [deleted file]
src/DriverMED/Makefile.in [deleted file]
src/DriverSTL/DriverSTL_R_SMDS_Mesh.cxx [deleted file]
src/DriverSTL/DriverSTL_R_SMDS_Mesh.h [deleted file]
src/DriverSTL/DriverSTL_W_SMDS_Mesh.cxx [deleted file]
src/DriverSTL/DriverSTL_W_SMDS_Mesh.h [deleted file]
src/DriverSTL/Makefile.in [deleted file]
src/DriverSTL/STL_Test.cxx [deleted file]
src/DriverUNV/DriverUNV_R_SMDS_Mesh.cxx [deleted file]
src/DriverUNV/DriverUNV_R_SMDS_Mesh.h [deleted file]
src/DriverUNV/DriverUNV_R_SMESHDS_Document.cxx [deleted file]
src/DriverUNV/DriverUNV_R_SMESHDS_Document.h [deleted file]
src/DriverUNV/DriverUNV_R_SMESHDS_Mesh.cxx [deleted file]
src/DriverUNV/DriverUNV_R_SMESHDS_Mesh.h [deleted file]
src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx [deleted file]
src/DriverUNV/DriverUNV_W_SMDS_Mesh.h [deleted file]
src/DriverUNV/DriverUNV_W_SMESHDS_Document.cxx [deleted file]
src/DriverUNV/DriverUNV_W_SMESHDS_Document.h [deleted file]
src/DriverUNV/DriverUNV_W_SMESHDS_Mesh.cxx [deleted file]
src/DriverUNV/DriverUNV_W_SMESHDS_Mesh.h [deleted file]
src/DriverUNV/Makefile.in [deleted file]
src/DriverUNV/UNV2411_Structure.cxx [deleted file]
src/DriverUNV/UNV2411_Structure.hxx [deleted file]
src/DriverUNV/UNV2412_Structure.cxx [deleted file]
src/DriverUNV/UNV2412_Structure.hxx [deleted file]
src/DriverUNV/UNV_Test.cxx [deleted file]
src/DriverUNV/UNV_Utilities.cxx [deleted file]
src/DriverUNV/UNV_Utilities.hxx [deleted file]
src/MEFISTO2/Makefile.in [deleted file]
src/MEFISTO2/Rn.h [deleted file]
src/MEFISTO2/aptrte.cxx [deleted file]
src/MEFISTO2/aptrte.h [deleted file]
src/MEFISTO2/areteideale.f [deleted file]
src/MEFISTO2/trte.f [deleted file]
src/Makefile.in [deleted file]
src/NETGEN/Makefile.in [deleted file]
src/NETGEN/ReadMeForNgUsers [deleted file]
src/NETGEN/netgen43ForSalome.patch [deleted file]
src/NETGENPlugin/Makefile.in [deleted file]
src/NETGENPlugin/NETGENPlugin_NETGEN_3D.cxx [deleted file]
src/NETGENPlugin/NETGENPlugin_NETGEN_3D.hxx [deleted file]
src/NETGENPlugin/NETGENPlugin_NETGEN_3D_i.cxx [deleted file]
src/NETGENPlugin/NETGENPlugin_NETGEN_3D_i.hxx [deleted file]
src/NETGENPlugin/NETGENPlugin_i.cxx [deleted file]
src/NETGENPlugin/NETGENPlugin_icons.po [deleted file]
src/OBJECT/Makefile.in [deleted file]
src/OBJECT/SMESH_Actor.cxx
src/OBJECT/SMESH_Actor.h [deleted file]
src/OBJECT/SMESH_ActorDef.h [deleted file]
src/OBJECT/SMESH_ActorUtils.cxx [deleted file]
src/OBJECT/SMESH_ActorUtils.h [deleted file]
src/OBJECT/SMESH_DeviceActor.cxx [deleted file]
src/OBJECT/SMESH_DeviceActor.h [deleted file]
src/OBJECT/SMESH_ExtractGeometry.cxx [deleted file]
src/OBJECT/SMESH_ExtractGeometry.h [deleted file]
src/OBJECT/SMESH_Object.cxx [deleted file]
src/OBJECT/SMESH_Object.h [deleted file]
src/OBJECT/SMESH_ObjectDef.h [deleted file]
src/SMDS/Makefile.in [deleted file]
src/SMDS/SMDSAbs_ElementType.hxx [deleted file]
src/SMDS/SMDS_EdgePosition.cxx [deleted file]
src/SMDS/SMDS_EdgePosition.hxx [deleted file]
src/SMDS/SMDS_ElemIterator.hxx [deleted file]
src/SMDS/SMDS_FaceOfEdges.cxx [deleted file]
src/SMDS/SMDS_FaceOfEdges.hxx [deleted file]
src/SMDS/SMDS_FaceOfNodes.cxx [deleted file]
src/SMDS/SMDS_FaceOfNodes.hxx [deleted file]
src/SMDS/SMDS_FacePosition.cxx [deleted file]
src/SMDS/SMDS_FacePosition.hxx [deleted file]
src/SMDS/SMDS_Iterator.hxx [deleted file]
src/SMDS/SMDS_IteratorOfElements.cxx [deleted file]
src/SMDS/SMDS_IteratorOfElements.hxx [deleted file]
src/SMDS/SMDS_Mesh.cxx [deleted file]
src/SMDS/SMDS_Mesh.hxx [deleted file]
src/SMDS/SMDS_MeshEdge.cxx [deleted file]
src/SMDS/SMDS_MeshEdge.hxx [deleted file]
src/SMDS/SMDS_MeshElement.cxx [deleted file]
src/SMDS/SMDS_MeshElement.hxx [deleted file]
src/SMDS/SMDS_MeshElementIDFactory.cxx [deleted file]
src/SMDS/SMDS_MeshElementIDFactory.hxx [deleted file]
src/SMDS/SMDS_MeshFace.cxx [deleted file]
src/SMDS/SMDS_MeshFace.hxx [deleted file]
src/SMDS/SMDS_MeshGroup.cxx [deleted file]
src/SMDS/SMDS_MeshGroup.hxx [deleted file]
src/SMDS/SMDS_MeshIDFactory.cxx [deleted file]
src/SMDS/SMDS_MeshIDFactory.hxx [deleted file]
src/SMDS/SMDS_MeshNode.cxx [deleted file]
src/SMDS/SMDS_MeshNode.hxx [deleted file]
src/SMDS/SMDS_MeshObject.cxx [deleted file]
src/SMDS/SMDS_MeshObject.hxx [deleted file]
src/SMDS/SMDS_MeshVolume.cxx [deleted file]
src/SMDS/SMDS_MeshVolume.hxx [deleted file]
src/SMDS/SMDS_PolygonalFaceOfNodes.cxx [deleted file]
src/SMDS/SMDS_PolygonalFaceOfNodes.hxx [deleted file]
src/SMDS/SMDS_PolyhedralVolumeOfNodes.cxx [deleted file]
src/SMDS/SMDS_PolyhedralVolumeOfNodes.hxx [deleted file]
src/SMDS/SMDS_Position.cxx [deleted file]
src/SMDS/SMDS_Position.hxx [deleted file]
src/SMDS/SMDS_SpacePosition.cxx [deleted file]
src/SMDS/SMDS_SpacePosition.hxx [deleted file]
src/SMDS/SMDS_TypeOfPosition.hxx [deleted file]
src/SMDS/SMDS_VertexPosition.cxx [deleted file]
src/SMDS/SMDS_VertexPosition.hxx [deleted file]
src/SMDS/SMDS_VolumeOfFaces.cxx [deleted file]
src/SMDS/SMDS_VolumeOfFaces.hxx [deleted file]
src/SMDS/SMDS_VolumeOfNodes.cxx [deleted file]
src/SMDS/SMDS_VolumeOfNodes.hxx [deleted file]
src/SMDS/SMDS_VolumeTool.cxx [deleted file]
src/SMDS/SMDS_VolumeTool.hxx [deleted file]
src/SMESH/Makefile.in [deleted file]
src/SMESH/SMESH_1D_Algo.cxx [deleted file]
src/SMESH/SMESH_1D_Algo.hxx [deleted file]
src/SMESH/SMESH_2D_Algo.cxx [deleted file]
src/SMESH/SMESH_2D_Algo.hxx [deleted file]
src/SMESH/SMESH_3D_Algo.cxx [deleted file]
src/SMESH/SMESH_3D_Algo.hxx [deleted file]
src/SMESH/SMESH_Algo.cxx [deleted file]
src/SMESH/SMESH_Algo.hxx [deleted file]
src/SMESH/SMESH_Block.cxx [deleted file]
src/SMESH/SMESH_Block.hxx [deleted file]
src/SMESH/SMESH_Gen.cxx [deleted file]
src/SMESH/SMESH_Gen.hxx [deleted file]
src/SMESH/SMESH_Group.cxx [deleted file]
src/SMESH/SMESH_Group.hxx [deleted file]
src/SMESH/SMESH_HypoFilter.cxx [deleted file]
src/SMESH/SMESH_HypoFilter.hxx [deleted file]
src/SMESH/SMESH_Hypothesis.cxx [deleted file]
src/SMESH/SMESH_Hypothesis.hxx [deleted file]
src/SMESH/SMESH_Mesh.cxx [deleted file]
src/SMESH/SMESH_Mesh.hxx [deleted file]
src/SMESH/SMESH_MeshEditor.cxx [deleted file]
src/SMESH/SMESH_MeshEditor.hxx [deleted file]
src/SMESH/SMESH_Pattern.cxx [deleted file]
src/SMESH/SMESH_Pattern.hxx [deleted file]
src/SMESH/SMESH_subMesh.cxx [deleted file]
src/SMESH/SMESH_subMesh.hxx [deleted file]
src/SMESHDS/Makefile.in [deleted file]
src/SMESHDS/SMESHDS_Command.cxx [deleted file]
src/SMESHDS/SMESHDS_Command.hxx [deleted file]
src/SMESHDS/SMESHDS_CommandType.hxx [deleted file]
src/SMESHDS/SMESHDS_Document.cxx [deleted file]
src/SMESHDS/SMESHDS_Document.hxx [deleted file]
src/SMESHDS/SMESHDS_Group.cxx [deleted file]
src/SMESHDS/SMESHDS_Group.hxx [deleted file]
src/SMESHDS/SMESHDS_GroupBase.cxx [deleted file]
src/SMESHDS/SMESHDS_GroupBase.hxx [deleted file]
src/SMESHDS/SMESHDS_GroupOnGeom.cxx [deleted file]
src/SMESHDS/SMESHDS_GroupOnGeom.hxx [deleted file]
src/SMESHDS/SMESHDS_Hypothesis.cxx [deleted file]
src/SMESHDS/SMESHDS_Hypothesis.hxx [deleted file]
src/SMESHDS/SMESHDS_Mesh.cxx [deleted file]
src/SMESHDS/SMESHDS_Mesh.hxx [deleted file]
src/SMESHDS/SMESHDS_Script.cxx [deleted file]
src/SMESHDS/SMESHDS_Script.hxx [deleted file]
src/SMESHDS/SMESHDS_SubMesh.cxx [deleted file]
src/SMESHDS/SMESHDS_SubMesh.hxx [deleted file]
src/SMESHFiltersSelection/Handle_SMESH_TypeFilter.hxx [deleted file]
src/SMESHFiltersSelection/SMESH_LogicalFilter.cxx [deleted file]
src/SMESHFiltersSelection/SMESH_LogicalFilter.hxx [deleted file]
src/SMESHFiltersSelection/SMESH_NumberFilter.cxx [deleted file]
src/SMESHFiltersSelection/SMESH_NumberFilter.hxx [deleted file]
src/SMESHFiltersSelection/SMESH_Type.h [deleted file]
src/SMESHFiltersSelection/SMESH_TypeFilter.cxx [deleted file]
src/SMESHFiltersSelection/SMESH_TypeFilter.hxx [deleted file]
src/SMESHFiltersSelection/SMESH_TypeFilter.ixx [deleted file]
src/SMESHFiltersSelection/SMESH_TypeFilter.jxx [deleted file]
src/SMESHGUI/Makefile.in [deleted file]
src/SMESHGUI/SMESHBin.cxx [deleted file]
src/SMESHGUI/SMESHGUI.cxx
src/SMESHGUI/SMESHGUI.h [deleted file]
src/SMESHGUI/SMESHGUI_AddMeshElementDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_AddMeshElementDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_AddSubMeshDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_AddSubMeshDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_ClippingDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_ClippingDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_CreateHypothesesDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_CreateHypothesesDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_CreatePatternDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_CreatePatternDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_DeleteGroupDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_Dialog.cxx [deleted file]
src/SMESHGUI/SMESHGUI_Dialog.h [deleted file]
src/SMESHGUI/SMESHGUI_EditHypothesesDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_EditHypothesesDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_EditMeshDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_EditMeshDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_ExtrusionDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_Filter.cxx [deleted file]
src/SMESHGUI/SMESHGUI_Filter.h [deleted file]
src/SMESHGUI/SMESHGUI_FilterDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_FilterLibraryDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_FilterLibraryDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_FilterUtils.cxx [deleted file]
src/SMESHGUI/SMESHGUI_FilterUtils.h [deleted file]
src/SMESHGUI/SMESHGUI_GEOMGenUtils.cxx [deleted file]
src/SMESHGUI/SMESHGUI_GEOMGenUtils.h [deleted file]
src/SMESHGUI/SMESHGUI_GroupDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_GroupOpDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_GroupOpDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_GroupUtils.cxx [deleted file]
src/SMESHGUI/SMESHGUI_GroupUtils.h [deleted file]
src/SMESHGUI/SMESHGUI_Hypotheses.h [deleted file]
src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx [deleted file]
src/SMESHGUI/SMESHGUI_HypothesesUtils.h [deleted file]
src/SMESHGUI/SMESHGUI_IdValidator.h [deleted file]
src/SMESHGUI/SMESHGUI_InitMeshDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_InitMeshDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_MergeNodesDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_MergeNodesDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_MeshDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_MeshDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_MeshInfosDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_MeshInfosDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_MeshOp.cxx [deleted file]
src/SMESHGUI/SMESHGUI_MeshOp.h [deleted file]
src/SMESHGUI/SMESHGUI_MeshPatternDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_MeshPatternDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_MeshUtils.cxx [deleted file]
src/SMESHGUI/SMESHGUI_MeshUtils.h [deleted file]
src/SMESHGUI/SMESHGUI_MoveNodesDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_MoveNodesDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_MultiEditDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_NodesDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_NodesDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_Operation.cxx [deleted file]
src/SMESHGUI/SMESHGUI_Operation.h [deleted file]
src/SMESHGUI/SMESHGUI_PatternUtils.cxx [deleted file]
src/SMESHGUI/SMESHGUI_PatternUtils.h [deleted file]
src/SMESHGUI/SMESHGUI_PatternWidget.cxx [deleted file]
src/SMESHGUI/SMESHGUI_PatternWidget.h [deleted file]
src/SMESHGUI/SMESHGUI_PrecisionDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_PrecisionDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_Preferences_SelectionDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_Preferences_SelectionDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_RemoveElementsDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_RemoveNodesDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_RenumberingDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_RenumberingDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_RevolutionDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_RotationDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_RotationDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_SMESHGenUtils.cxx [deleted file]
src/SMESHGUI/SMESHGUI_SMESHGenUtils.h [deleted file]
src/SMESHGUI/SMESHGUI_Selection.h [deleted file]
src/SMESHGUI/SMESHGUI_SelectionOp.cxx [deleted file]
src/SMESHGUI/SMESHGUI_SelectionOp.h [deleted file]
src/SMESHGUI/SMESHGUI_SewingDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_SewingDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_SingleEditDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_SingleEditDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_SmoothingDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_SmoothingDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_SpinBox.cxx [deleted file]
src/SMESHGUI/SMESHGUI_SpinBox.h [deleted file]
src/SMESHGUI/SMESHGUI_StandardMeshInfosDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_StandardMeshInfosDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_Swig.cxx [deleted file]
src/SMESHGUI/SMESHGUI_Swig.hxx [deleted file]
src/SMESHGUI/SMESHGUI_Swig.i [deleted file]
src/SMESHGUI/SMESHGUI_SymmetryDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_SymmetryDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_TranslationDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_TranslationDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_TransparencyDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_TransparencyDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_Utils.cxx [deleted file]
src/SMESHGUI/SMESHGUI_Utils.h [deleted file]
src/SMESHGUI/SMESHGUI_XmlHandler.cxx [deleted file]
src/SMESHGUI/SMESHGUI_XmlHandler.h [deleted file]
src/SMESHGUI/SMESHGUI_aParameter.cxx [deleted file]
src/SMESHGUI/SMESHGUI_aParameter.h [deleted file]
src/SMESHGUI/SMESHGUI_aParameterDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_aParameterDlg.h [deleted file]
src/SMESHGUI/SMESH_icons.po [deleted file]
src/SMESHGUI/SMESH_images.po [deleted file]
src/SMESHGUI/SMESH_msg_en.po [deleted file]
src/SMESH_I/Makefile.in
src/SMESH_I/SMESH.hxx [deleted file]
src/SMESH_I/SMESHEngine.cxx [deleted file]
src/SMESH_I/SMESH_1D_Algo_i.cxx [deleted file]
src/SMESH_I/SMESH_1D_Algo_i.hxx [deleted file]
src/SMESH_I/SMESH_2D_Algo_i.cxx [deleted file]
src/SMESH_I/SMESH_2D_Algo_i.hxx [deleted file]
src/SMESH_I/SMESH_3D_Algo_i.cxx [deleted file]
src/SMESH_I/SMESH_3D_Algo_i.hxx [deleted file]
src/SMESH_I/SMESH_Algo_i.cxx [deleted file]
src/SMESH_I/SMESH_Algo_i.hxx [deleted file]
src/SMESH_I/SMESH_DumpPython.cxx [deleted file]
src/SMESH_I/SMESH_Filter_i.cxx [deleted file]
src/SMESH_I/SMESH_Filter_i.hxx [deleted file]
src/SMESH_I/SMESH_Gen_i.cxx [deleted file]
src/SMESH_I/SMESH_Gen_i.hxx [deleted file]
src/SMESH_I/SMESH_Gen_i_1.cxx [deleted file]
src/SMESH_I/SMESH_Group_i.cxx [deleted file]
src/SMESH_I/SMESH_Group_i.hxx [deleted file]
src/SMESH_I/SMESH_Hypothesis_i.cxx [deleted file]
src/SMESH_I/SMESH_Hypothesis_i.hxx [deleted file]
src/SMESH_I/SMESH_MEDFamily_i.cxx [deleted file]
src/SMESH_I/SMESH_MEDFamily_i.hxx [deleted file]
src/SMESH_I/SMESH_MEDMesh_i.cxx [deleted file]
src/SMESH_I/SMESH_MEDMesh_i.hxx [deleted file]
src/SMESH_I/SMESH_MEDSupport_i.cxx [deleted file]
src/SMESH_I/SMESH_MEDSupport_i.hxx [deleted file]
src/SMESH_I/SMESH_MeshEditor_i.cxx [deleted file]
src/SMESH_I/SMESH_MeshEditor_i.hxx [deleted file]
src/SMESH_I/SMESH_Mesh_i.cxx [deleted file]
src/SMESH_I/SMESH_Mesh_i.hxx [deleted file]
src/SMESH_I/SMESH_Pattern_i.cxx [deleted file]
src/SMESH_I/SMESH_Pattern_i.hxx [deleted file]
src/SMESH_I/SMESH_PythonDump.hxx [deleted file]
src/SMESH_I/SMESH_subMesh_i.cxx [deleted file]
src/SMESH_I/SMESH_subMesh_i.hxx [deleted file]
src/SMESH_I/smeshpy.py [deleted file]
src/SMESH_SWIG/Makefile.in [deleted file]
src/SMESH_SWIG/PAL_MESH_041_mesh.py [deleted file]
src/SMESH_SWIG/PAL_MESH_043_2D.py [deleted file]
src/SMESH_SWIG/PAL_MESH_043_3D.py [deleted file]
src/SMESH_SWIG/SMESH_BelongToGeom.py [deleted file]
src/SMESH_SWIG/SMESH_GroupFromGeom.py [deleted file]
src/SMESH_SWIG/SMESH_GroupFromGeom2.py [deleted file]
src/SMESH_SWIG/SMESH_GroupLyingOnGeom.py [deleted file]
src/SMESH_SWIG/SMESH_Nut.py [deleted file]
src/SMESH_SWIG/SMESH_Partition1_tetra.py [deleted file]
src/SMESH_SWIG/SMESH_Sphere.py [deleted file]
src/SMESH_SWIG/SMESH_blocks.py [deleted file]
src/SMESH_SWIG/SMESH_box.py [deleted file]
src/SMESH_SWIG/SMESH_box2_tetra.py [deleted file]
src/SMESH_SWIG/SMESH_box3_tetra.py [deleted file]
src/SMESH_SWIG/SMESH_box_tetra.py [deleted file]
src/SMESH_SWIG/SMESH_controls.py [deleted file]
src/SMESH_SWIG/SMESH_demo_hexa2_upd.py [deleted file]
src/SMESH_SWIG/SMESH_fixation.py [deleted file]
src/SMESH_SWIG/SMESH_fixation_hexa.py [deleted file]
src/SMESH_SWIG/SMESH_fixation_tetra.py [deleted file]
src/SMESH_SWIG/SMESH_flight_skin.py [deleted file]
src/SMESH_SWIG/SMESH_freebord.py [deleted file]
src/SMESH_SWIG/SMESH_hexaedre.py [deleted file]
src/SMESH_SWIG/SMESH_mechanic.py [deleted file]
src/SMESH_SWIG/SMESH_mechanic_editor.py [deleted file]
src/SMESH_SWIG/SMESH_mechanic_tetra.py [deleted file]
src/SMESH_SWIG/SMESH_reg.py [deleted file]
src/SMESH_SWIG/SMESH_shared_modules.py [deleted file]
src/SMESH_SWIG/SMESH_test.py [deleted file]
src/SMESH_SWIG/SMESH_test0.py [deleted file]
src/SMESH_SWIG/SMESH_test1.py [deleted file]
src/SMESH_SWIG/SMESH_test2.py [deleted file]
src/SMESH_SWIG/SMESH_test3.py [deleted file]
src/SMESH_SWIG/SMESH_test4.py [deleted file]
src/SMESH_SWIG/SMESH_test5.py [deleted file]
src/SMESH_SWIG/batchmode_mefisto.py [deleted file]
src/SMESH_SWIG/batchmode_smesh.py [deleted file]
src/SMESH_SWIG/ex00_all.py [deleted file]
src/SMESH_SWIG/ex01_cube2build.py [deleted file]
src/SMESH_SWIG/ex02_cube2primitive.py [deleted file]
src/SMESH_SWIG/ex03_cube2partition.py [deleted file]
src/SMESH_SWIG/ex04_cube5tetraHexa.py [deleted file]
src/SMESH_SWIG/ex05_hole1build.py [deleted file]
src/SMESH_SWIG/ex06_hole1boolean.py [deleted file]
src/SMESH_SWIG/ex07_hole1partition.py [deleted file]
src/SMESH_SWIG/ex08_hole2build.py [deleted file]
src/SMESH_SWIG/ex09_grid4build.py [deleted file]
src/SMESH_SWIG/ex10_grid4geometry.py [deleted file]
src/SMESH_SWIG/ex11_grid3partition.py [deleted file]
src/SMESH_SWIG/ex12_grid17partition.py [deleted file]
src/SMESH_SWIG/ex13_hole1partial.py [deleted file]
src/SMESH_SWIG/ex14_cyl1holed.py [deleted file]
src/SMESH_SWIG/ex15_cyl2geometry.py [deleted file]
src/SMESH_SWIG/ex16_cyl2complementary.py [deleted file]
src/SMESH_SWIG/ex17_dome1.py [deleted file]
src/SMESH_SWIG/ex18_dome2.py [deleted file]
src/SMESH_SWIG/ex19_sphereINcube.py [deleted file]
src/SMESH_SWIG/libSMESH_Swig.i [deleted file]
src/SMESH_SWIG/smesh.py [deleted file]
src/StdMeshers/Makefile.in [deleted file]
src/StdMeshers/StdMeshers_Arithmetic1D.cxx [deleted file]
src/StdMeshers/StdMeshers_Arithmetic1D.hxx [deleted file]
src/StdMeshers/StdMeshers_Deflection1D.cxx [deleted file]
src/StdMeshers/StdMeshers_Deflection1D.hxx [deleted file]
src/StdMeshers/StdMeshers_Hexa_3D.cxx [deleted file]
src/StdMeshers/StdMeshers_Hexa_3D.hxx [deleted file]
src/StdMeshers/StdMeshers_LengthFromEdges.cxx [deleted file]
src/StdMeshers/StdMeshers_LengthFromEdges.hxx [deleted file]
src/StdMeshers/StdMeshers_LocalLength.cxx [deleted file]
src/StdMeshers/StdMeshers_LocalLength.hxx [deleted file]
src/StdMeshers/StdMeshers_MEFISTO_2D.cxx [deleted file]
src/StdMeshers/StdMeshers_MEFISTO_2D.hxx [deleted file]
src/StdMeshers/StdMeshers_MaxElementArea.cxx [deleted file]
src/StdMeshers/StdMeshers_MaxElementArea.hxx [deleted file]
src/StdMeshers/StdMeshers_MaxElementVolume.cxx [deleted file]
src/StdMeshers/StdMeshers_MaxElementVolume.hxx [deleted file]
src/StdMeshers/StdMeshers_NotConformAllowed.cxx [deleted file]
src/StdMeshers/StdMeshers_NotConformAllowed.hxx [deleted file]
src/StdMeshers/StdMeshers_NumberOfSegments.cxx [deleted file]
src/StdMeshers/StdMeshers_NumberOfSegments.hxx [deleted file]
src/StdMeshers/StdMeshers_Penta_3D.cxx [deleted file]
src/StdMeshers/StdMeshers_Penta_3D.hxx [deleted file]
src/StdMeshers/StdMeshers_Propagation.cxx [deleted file]
src/StdMeshers/StdMeshers_Propagation.hxx [deleted file]
src/StdMeshers/StdMeshers_Quadrangle_2D.cxx [deleted file]
src/StdMeshers/StdMeshers_Quadrangle_2D.hxx [deleted file]
src/StdMeshers/StdMeshers_Regular_1D.cxx [deleted file]
src/StdMeshers/StdMeshers_Regular_1D.hxx [deleted file]
src/StdMeshers/StdMeshers_StartEndLength.cxx [deleted file]
src/StdMeshers/StdMeshers_StartEndLength.hxx [deleted file]
src/StdMeshersGUI/Makefile.in [deleted file]
src/StdMeshersGUI/StdMeshersGUI.cxx [deleted file]
src/StdMeshersGUI/StdMeshersGUI_CreateHypothesisDlg.cxx [deleted file]
src/StdMeshersGUI/StdMeshersGUI_CreateHypothesisDlg.h [deleted file]
src/StdMeshersGUI/StdMeshersGUI_CreateStdHypothesisDlg.cxx [deleted file]
src/StdMeshersGUI/StdMeshersGUI_CreateStdHypothesisDlg.h [deleted file]
src/StdMeshersGUI/StdMeshersGUI_Parameters.cxx [deleted file]
src/StdMeshersGUI/StdMeshersGUI_Parameters.h [deleted file]
src/StdMeshersGUI/StdMeshers_icons.po [deleted file]
src/StdMeshersGUI/StdMeshers_images.po [deleted file]
src/StdMeshersGUI/StdMeshers_msg_en.po [deleted file]
src/StdMeshers_I/Makefile.in [deleted file]
src/StdMeshers_I/StdMeshers_Arithmetic1D_i.cxx [deleted file]
src/StdMeshers_I/StdMeshers_Arithmetic1D_i.hxx [deleted file]
src/StdMeshers_I/StdMeshers_Deflection1D_i.cxx [deleted file]
src/StdMeshers_I/StdMeshers_Deflection1D_i.hxx [deleted file]
src/StdMeshers_I/StdMeshers_Hexa_3D_i.cxx [deleted file]
src/StdMeshers_I/StdMeshers_Hexa_3D_i.hxx [deleted file]
src/StdMeshers_I/StdMeshers_LengthFromEdges_i.cxx [deleted file]
src/StdMeshers_I/StdMeshers_LengthFromEdges_i.hxx [deleted file]
src/StdMeshers_I/StdMeshers_LocalLength_i.cxx [deleted file]
src/StdMeshers_I/StdMeshers_LocalLength_i.hxx [deleted file]
src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.cxx [deleted file]
src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.hxx [deleted file]
src/StdMeshers_I/StdMeshers_MaxElementArea_i.cxx [deleted file]
src/StdMeshers_I/StdMeshers_MaxElementArea_i.hxx [deleted file]
src/StdMeshers_I/StdMeshers_MaxElementVolume_i.cxx [deleted file]
src/StdMeshers_I/StdMeshers_MaxElementVolume_i.hxx [deleted file]
src/StdMeshers_I/StdMeshers_NotConformAllowed_i.cxx [deleted file]
src/StdMeshers_I/StdMeshers_NotConformAllowed_i.hxx [deleted file]
src/StdMeshers_I/StdMeshers_NumberOfSegments_i.cxx [deleted file]
src/StdMeshers_I/StdMeshers_NumberOfSegments_i.hxx [deleted file]
src/StdMeshers_I/StdMeshers_Propagation_i.cxx [deleted file]
src/StdMeshers_I/StdMeshers_Propagation_i.hxx [deleted file]
src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.cxx [deleted file]
src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.hxx [deleted file]
src/StdMeshers_I/StdMeshers_Regular_1D_i.cxx [deleted file]
src/StdMeshers_I/StdMeshers_Regular_1D_i.hxx [deleted file]
src/StdMeshers_I/StdMeshers_StartEndLength_i.cxx [deleted file]
src/StdMeshers_I/StdMeshers_StartEndLength_i.hxx [deleted file]
src/StdMeshers_I/StdMeshers_i.cxx [deleted file]

diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644 (file)
index 46cf0c9..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,1811 +0,0 @@
-###############################################################################
-#This is the SMESH change log. Do not modify because it is automatically
-#created with :
-#cvs2cl.pl -l "-b" -U users.cvs2cl --header header.cvs2cl -T -b --utc
-###############################################################################
-
-2004-01-30 13:18  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * doc/html/INPUT/: doxyfile, sources/static/tree.js: NRI : 1.4.0
-         version
-
-2004-01-29 17:52  Jerome Robert <jerome.robert@eads.net>
-
-       * INSTALL, bin/VERSION: Upgrade to version 1.4.0.
-
-2004-01-29 17:33  Jerome Robert <jerome.robert@eads.net>
-
-       * src/: SMESHGUI/SMESHGUI_StudyAPI.cxx, SMESHGUI/SMESHGUI_Swig.cxx,
-         SMESH_I/SMESH_Gen_i.cxx: Merge branch merge_1_2_d
-
-2004-01-14 09:24  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * doc/html/Makefile.in: NRI : bug KERNEL5014 fixed.
-
-2004-01-06 15:19  Nadir Bouhamou <nadir.bouhamou@cea.fr>
-
-       * src/SMESH_SWIG/SMESH_flight_skin.py: removing the call to the
-         tetrahedron generator NETGEN, because I did not yet manage to
-         make NETGEN running on the flight geometry.
-
-2004-01-06 15:16  Nadir Bouhamou <nadir.bouhamou@cea.fr>
-
-       * resources/SMESH_en.xml, resources/SMESH_fr.xml,
-         src/SMESHGUI/SMESHGUI.cxx: Mounting the hypothesis
-         LengthFromEdges in th GUI of SMESH. This functionality was only
-         in the C++ API, and in the CORBA API.
-
-2004-01-05 16:14  Jerome Robert <jerome.robert@eads.net>
-
-       * adm_local/unix/config_files/check_Netgen.m4: Fix a mispelled
-         environment variable for idl python
-
-2004-01-05 14:28  tag V1_3_1
-
-2004-01-05 13:53  Jerome Robert <jerome.robert@eads.net>
-
-       * src/NETGEN/: ReadMeForNgUsers, netgen43ForSalome.patch: Add a
-         patch to make the build of netgen more user-friendly
-
-2004-01-05 13:52  Jerome Robert <jerome.robert@eads.net>
-
-       * src/NETGEN/Makefile.in: We do not need OCAF in Netgen
-
-2004-01-05 13:38  Jerome Robert <jerome.robert@eads.net>
-
-       * adm_local/unix/config_files/check_Netgen.m4: Fix some quotes
-         problems.
-
-2004-01-05 09:05  Jerome Robert <jerome.robert@eads.net>
-
-       * src/: SMDS/SMDS_Mesh.cxx, SMESHDS/SMESHDS_Document.cxx: [Bug
-         SMESH4830] bug in instal with gcc 2.95. Bug fixed.  Note: SGI say
-         that <algorithm> is requiered to use set_intersection (see
-         http://www.sgi.com/tech/stl/set_intersection.html).
-
-2003-12-16 15:27  Nadir Bouhamou <nadir.bouhamou@cea.fr>
-
-       * adm_local/unix/config_files/check_Netgen.m4: Since there is an
-         idl precompilation directive in SMESH_BasicHypothesis.idl file, a
-         -DHAVE_NETGEN idl has to be added when compiling SMESH with
-         netgen to the idl c++ flags as well as to the idl python flags.
-
-2003-12-15 13:15  Nadir Bouhamou <nadir.bouhamou@cea.fr>
-
-       * src/SMESHDS/SMESHDS_Script.cxx: correct a small bug found by the
-         EDF developpement team (PN and AT) : AddVolume in the case of a
-         Tetrahedron.
-
-2003-12-11 09:51  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMESHGUI/SMESHGUI.cxx: [Bug SMESH4598] Crash of the session
-         when compute and update are not done in the same view. Bug fixed.
-
-2003-12-11 09:49  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMESH/SMESH_HypothesisFactory.cxx: HAVE_NETGEN (#define) to
-         remove an unresolved symbol when building without netgen
-
-2003-12-10 17:23  Jerome Robert <jerome.robert@eads.net>
-
-       * adm_local/unix/config_files/check_Netgen.m4,
-         idl/SMESH_BasicHypothesis.idl,
-         src/SMESH_I/SMESH_HypothesisFactory_i.cxx: Create and use
-         HAVE_NETGEN (#define) to avoid unresolved symbols in libraries.
-
-2003-12-10 16:05  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMESHGUI/SMESHGUI.cxx: Cosmetics
-
-2003-12-09 14:13  Nadir Bouhamou <nadir.bouhamou@cea.fr>
-
-       * src/SMESH/Makefile.in: Correcting a problem araising when
-         building the SMESH module whithout Netgen.
-
-2003-12-09 10:00  Nadir Bouhamou <nadir.bouhamou@cea.fr>
-
-       * doc/: AddNetgenInSalome2.pdf, AddNetgenInSalome2.ps,
-         AddNetgenInSalome2.sxw: updating or adding when merging in the
-         main trunk with the version in the branch nadir_1_2_2 !! Here a
-         document related to the integration of NETGEN in the SMESH module
-         has been added for future work in the integration of other
-         mesher.
-
-2003-12-08 15:30  Nadir Bouhamou <nadir.bouhamou@cea.fr>
-
-       * INSTALL, Makefile.in, configure.in.base,
-         adm_local/unix/make_commence.in,
-         adm_local/unix/config_files/check_Netgen.m4, bin/VERSION,
-         idl/SMESH_BasicHypothesis.idl, resources/SMESH_en.xml,
-         resources/SMESH_fr.xml, resources/flight_solid.brep,
-         resources/mesh_algo_netgen.png, resources/mesh_algo_tetra.png,
-         resources/mesh_tree_algo_netgen.png,
-         resources/mesh_tree_algo_tetra.png, src/Makefile.in,
-         src/DriverMED/DriverMED_R_SMDS_Mesh.cxx,
-         src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx,
-         src/DriverMED/DriverMED_W_SMDS_Mesh.cxx,
-         src/DriverMED/DriverMED_W_SMESHDS_Mesh.cxx,
-         src/NETGEN/Makefile.in, src/NETGEN/ReadMeForNgUsers,
-         src/SMESH/Makefile.in, src/SMESH/SMESH_HypothesisFactory.cxx,
-         src/SMESH/SMESH_MEFISTO_2D.cxx,
-         src/SMESH/SMESH_MaxElementVolume.cxx,
-         src/SMESH/SMESH_MaxElementVolume.hxx,
-         src/SMESH/SMESH_NETGEN_3D.cxx, src/SMESH/SMESH_NETGEN_3D.hxx,
-         src/SMESH/SMESH_subMesh.cxx, src/SMESHGUI/SMESHGUI.cxx,
-         src/SMESHGUI/SMESHGUI.h, src/SMESHGUI/SMESHGUI_NbSegmentsDlg.cxx,
-         src/SMESHGUI/SMESHGUI_icons.po, src/SMESH_I/Makefile.in,
-         src/SMESH_I/SMESH_Gen_i.cxx,
-         src/SMESH_I/SMESH_HypothesisFactory_i.cxx,
-         src/SMESH_I/SMESH_LengthFromEdges_i.cxx,
-         src/SMESH_I/SMESH_LengthFromEdges_i.hxx,
-         src/SMESH_I/SMESH_MEDMesh_i.cxx,
-         src/SMESH_I/SMESH_MEDSupport_i.cxx,
-         src/SMESH_I/SMESH_MaxElementVolume_i.cxx,
-         src/SMESH_I/SMESH_MaxElementVolume_i.hxx,
-         src/SMESH_I/SMESH_NETGEN_3D_i.cxx,
-         src/SMESH_I/SMESH_NETGEN_3D_i.hxx, src/SMESH_SWIG/Makefile.in,
-         src/SMESH_SWIG/SMESH_Partition1_tetra.py,
-         src/SMESH_SWIG/SMESH_box2_tetra.py,
-         src/SMESH_SWIG/SMESH_box3_tetra.py,
-         src/SMESH_SWIG/SMESH_box_tetra.py,
-         src/SMESH_SWIG/SMESH_fixation_hexa.py,
-         src/SMESH_SWIG/SMESH_fixation_tetra.py,
-         src/SMESH_SWIG/SMESH_flight_skin.py,
-         src/SMESH_SWIG/SMESH_mechanic_tetra.py: updating or adding when
-         merging in the main trunk with the version in the branch
-         nadir_1_2_2 !!
-
-2003-12-05 14:49  Jerome Robert <jerome.robert@eads.net>
-
-       * src/MEFISTO2/trte.f: Remove "pause" primitive call.
-
-2003-11-27 11:45  Jerome Robert <jerome.robert@eads.net>
-
-       * resources/SMESH_en.xml, resources/SMESH_fr.xml,
-         src/SMESHGUI/SMESHGUI.cxx: [Bug SMESH839] Spelling: Hypotheses -
-         Hexa?edron (i,j,k). Bug Fixed.
-
-2003-11-25 08:52  tag V1_3_0
-
-2003-11-25 08:52  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * bin/VERSION, INSTALL: NRI: 1.3.0 version.
-
-2003-11-20 12:45  tag V1_3_0_b3
-
-2003-11-20 12:45  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * doc/html/INPUT/sources/static/: doxygen.css, page2.html, tree.js,
-         treeview.js: NRI : Add static documentation.
-
-2003-11-20 12:45  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * doc/html/INPUT/sources/: Application-About.png,
-         Application-About1.jpg, application.gif, application.jpg,
-         bg_salome.gif, bg_salomepro.gif, doxygen.css: NRI : Update
-         images.
-
-2003-11-20 12:44  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * doc/html/INPUT/doxyfile: NRI : Generate TreeView.
-
-2003-11-20 12:43  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * doc/html/Makefile.in: NRI : Add static directory.
-
-2003-11-18 15:01  tag V1_3_0b2
-
-2003-11-18 15:01  Jerome Robert <jerome.robert@eads.net>
-
-       * ChangeLog, INSTALL, cvs-tags: update for V1_3_0_b2
-
-2003-11-18 09:19  Nadir Bouhamou <nadir.bouhamou@cea.fr>
-
-       * src/SMESH_I/: SMESH_MEDFamily_i.cxx, SMESH_MEDFamily_i.hxx,
-         SMESH_MEDMesh_i.cxx, SMESH_MEDMesh_i.hxx, SMESH_MEDSupport_i.cxx,
-         SMESH_MEDSupport_i.hxx: merge with the branch
-         nadir_update_MED_v1_3_0 (branch to build the V1_3_0 version of
-         the module.
-
-2003-11-12 13:20  tag V1_3_0_b1
-
-2003-11-12 13:20  Jerome Robert <jerome.robert@eads.net>
-
-       * ChangeLog, INSTALL, cvs-tags, bin/VERSION: Update for V1.3.0b1
-
-2003-11-12 11:40  Jerome Robert <jerome.robert@eads.net>
-
-       * src/OBJECT/SMESH_Actor.cxx: MergeV1_2c-1
-
-2003-11-06 14:43  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/SMESHGUI/SMESHGUI.cxx: NRI : MergeV1_2c-1.
-
-2003-11-06 14:34  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/MEFISTO2/: areteideale.f, trte.f: NRI : Add licence header.
-
-2003-11-06 11:34  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * LICENCE: NRI : add LICENCE file
-
-2003-11-03 15:50  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * doc/html/Makefile.in: NRI : Relative path !!!!
-
-2003-10-22 15:28  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMDS/: SMDS_Mesh.cxx, SMDS_Mesh.hxx: Fix/implement
-         removeNode, removeEdge, removeFace, removeVolume and
-         removeElement
-
-2003-10-20 16:26  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMESHGUI/SMESHGUI.cxx: When the main window was maximized
-         some dialogs were cropped at the bottom of the screen. It's now
-         fixed.
-
-2003-10-17 16:31  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMDS/SMDS_Mesh.cxx: Fix a bug. Quadrangles were added as
-         triangles.
-
-2003-10-06 10:50  tag MergeV1_2c-1
-
-2003-10-06 10:50  Jerome Robert <jerome.robert@eads.net>
-
-       * cvs-tags: Update. Created a new branch for user nadir.
-
-2003-10-02 16:16  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * build_configure: NRI : RedHat 9 compatibility (M. Tajchman).
-
-2003-09-26 15:14  tag V1_2_2
-
-2003-09-26 15:14  Jerome Robert <jerome.robert@eads.net>
-
-       * INSTALL, cvs-tags: Add a tag file to track branch and tag. Update
-         INSTALL to prepare V1_2_2 tag.
-
-2003-09-26 14:21  tag V1_2_1
-
-2003-09-26 14:21  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * INSTALL: NRI : INSTALL file defined into SALOME2_PRODUCTION_CYCLE
-         document.
-
-2003-09-23 14:33  Jerome Robert <jerome.robert@eads.net>
-
-       * src/: SMDS/SMDS_FaceOfEdges.hxx, SMESHDS/SMESHDS_Mesh.hxx,
-         SMDS/SMDS_FaceOfNodes.hxx, SMDS/SMDS_MeshEdge.hxx,
-         SMDS/SMDS_MeshElement.hxx, SMDS/SMDS_Tria3OfNodes.hxx,
-         SMDS/SMDS_VolumeOfFaces.hxx: Keep compatible with gcc 2
-
-2003-09-23 11:52  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/SMESHGUI/SMESHGUI_StudyAPI.cxx: NRI : Display Component
-         UserName and Icon.
-
-2003-09-22 12:23  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMDS/SMDS_IteratorOfArray.hxx: Freshly added file
-
-2003-09-12 15:12  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMDS/: Makefile.in, SMDS_HexahedronOfNodes.cxx,
-         SMDS_HexahedronOfNodes.hxx, SMDS_Mesh.cxx, SMDS_Tria3OfNodes.cxx,
-         SMDS_Tria3OfNodes.hxx: Add HexahedronOfNodes and Tria3OfNodes to
-         improve performance
-
-2003-09-12 15:11  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMDS/SMDS_VolumeOfNodes.cxx: Fix bug. Was always printing 8
-         nodes
-
-2003-09-08 15:04  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMDS/: SMDS_Mesh.cxx, SMDS_VolumeOfNodes.cxx,
-         SMDS_VolumeOfNodes.hxx: Add support for tetra, pyramid and prism
-
-2003-09-08 13:41  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMDS/: SMDS_Mesh.cxx, SMDS_MeshElement.cxx: Add some comments
-
-2003-09-05 12:19  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMDS/SMDS_MeshNode.cxx: Some forgotten return statments
-
-2003-09-05 11:45  Jerome Robert <jerome.robert@eads.net>
-
-       * src/: DriverDAT/DriverDAT_W_SMESHDS_Mesh.cxx,
-         DriverMED/DriverMED_W_SMESHDS_Mesh.cxx, SMESH/SMESH_Hexa_3D.cxx:
-         Correct some memory leaks
-
-2003-09-05 10:31  Jerome Robert <jerome.robert@eads.net>
-
-       * src/: DriverMED/DriverMED_W_SMESHDS_Mesh.cxx,
-         SMESH/SMESH_Hexa_3D.cxx, SMESH/SMESH_Hexa_3D.hxx,
-         SMESH/SMESH_MEFISTO_2D.cxx, SMESH/SMESH_MEFISTO_2D.hxx,
-         SMESH/SMESH_Quadrangle_2D.cxx, SMESH/SMESH_Quadrangle_2D.hxx,
-         SMESH/SMESH_Regular_1D.cxx, SMESH/SMESH_subMesh.cxx,
-         SMESHDS/SMESHDS_Mesh.cxx, SMESHDS/SMESHDS_Mesh.hxx,
-         SMESHDS/SMESHDS_SubMesh.cxx, SMESHDS/SMESHDS_SubMesh.hxx,
-         SMESH_I/SMESH_MEDSupport_i.cxx, SMESH_I/SMESH_MeshEditor_i.cxx:
-         Use nodes and elements pointer instead on IDs
-
-2003-09-05 10:20  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMDS/: SMDS_Mesh.cxx, SMDS_Mesh.hxx: Change API to use
-         pointer on elements and no longer ID of elements
-
-2003-09-04 15:04  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMESHDS/: Handle_SMESHDS_Command.hxx,
-         Handle_SMESHDS_DataMapNodeOfDataMapOfIntegerMesh.hxx,
-         Handle_SMESHDS_DataMapNodeOfDataMapOfIntegerPtrHypothesis.hxx,
-         Handle_SMESHDS_DataMapNodeOfDataMapOfIntegerSubMesh.hxx,
-         Handle_SMESHDS_DataMapNodeOfDataMapOfShapeListOfPtrHypothesis.hxx,
-         Handle_SMESHDS_DataMapNodeOfDataMapOfShapeSubMesh.hxx,
-         Handle_SMESHDS_Document.hxx,
-         Handle_SMESHDS_ListNodeOfListOfAsciiString.hxx,
-         Handle_SMESHDS_ListNodeOfListOfCommand.hxx,
-         Handle_SMESHDS_ListNodeOfListOfPtrHypothesis.hxx,
-         Handle_SMESHDS_Mesh.hxx, Handle_SMESHDS_Script.hxx,
-         Handle_SMESHDS_SubMesh.hxx, SMESHDS.cdl, SMESHDS_Command.cdl,
-         SMESHDS_Command.ixx, SMESHDS_Command.jxx,
-         SMESHDS_DataMapIteratorOfDataMapOfIntegerMesh.hxx,
-         SMESHDS_DataMapIteratorOfDataMapOfIntegerMesh_0.cxx,
-         SMESHDS_DataMapIteratorOfDataMapOfIntegerPtrHypothesis.hxx,
-         SMESHDS_DataMapIteratorOfDataMapOfIntegerPtrHypothesis_0.cxx,
-         SMESHDS_DataMapIteratorOfDataMapOfIntegerSubMesh.hxx,
-         SMESHDS_DataMapIteratorOfDataMapOfIntegerSubMesh_0.cxx,
-         SMESHDS_DataMapIteratorOfDataMapOfShapeListOfPtrHypothesis.hxx,
-         SMESHDS_DataMapIteratorOfDataMapOfShapeListOfPtrHypothesis_0.cxx,
-         SMESHDS_DataMapIteratorOfDataMapOfShapeSubMesh.hxx,
-         SMESHDS_DataMapIteratorOfDataMapOfShapeSubMesh_0.cxx,
-         SMESHDS_DataMapNodeOfDataMapOfIntegerMesh.hxx,
-         SMESHDS_DataMapNodeOfDataMapOfIntegerMesh_0.cxx,
-         SMESHDS_DataMapNodeOfDataMapOfIntegerPtrHypothesis.hxx,
-         SMESHDS_DataMapNodeOfDataMapOfIntegerPtrHypothesis_0.cxx,
-         SMESHDS_DataMapNodeOfDataMapOfIntegerSubMesh.hxx,
-         SMESHDS_DataMapNodeOfDataMapOfIntegerSubMesh_0.cxx,
-         SMESHDS_DataMapNodeOfDataMapOfShapeListOfPtrHypothesis.hxx,
-         SMESHDS_DataMapNodeOfDataMapOfShapeListOfPtrHypothesis_0.cxx,
-         SMESHDS_DataMapNodeOfDataMapOfShapeSubMesh.hxx,
-         SMESHDS_DataMapNodeOfDataMapOfShapeSubMesh_0.cxx,
-         SMESHDS_DataMapOfIntegerMesh.hxx,
-         SMESHDS_DataMapOfIntegerMesh_0.cxx,
-         SMESHDS_DataMapOfIntegerPtrHypothesis.hxx,
-         SMESHDS_DataMapOfIntegerPtrHypothesis_0.cxx,
-         SMESHDS_DataMapOfIntegerSubMesh.hxx,
-         SMESHDS_DataMapOfIntegerSubMesh_0.cxx,
-         SMESHDS_DataMapOfShapeListOfPtrHypothesis.hxx,
-         SMESHDS_DataMapOfShapeListOfPtrHypothesis_0.cxx,
-         SMESHDS_DataMapOfShapeSubMesh.hxx,
-         SMESHDS_DataMapOfShapeSubMesh_0.cxx, SMESHDS_Document.cdl,
-         SMESHDS_Document.ixx, SMESHDS_Document.jxx,
-         SMESHDS_ListIteratorOfListOfAsciiString.hxx,
-         SMESHDS_ListIteratorOfListOfAsciiString_0.cxx,
-         SMESHDS_ListIteratorOfListOfCommand.hxx,
-         SMESHDS_ListIteratorOfListOfCommand_0.cxx,
-         SMESHDS_ListIteratorOfListOfPtrHypothesis.hxx,
-         SMESHDS_ListIteratorOfListOfPtrHypothesis_0.cxx,
-         SMESHDS_ListNodeOfListOfAsciiString.hxx,
-         SMESHDS_ListNodeOfListOfAsciiString_0.cxx,
-         SMESHDS_ListNodeOfListOfCommand.hxx,
-         SMESHDS_ListNodeOfListOfCommand_0.cxx,
-         SMESHDS_ListNodeOfListOfPtrHypothesis.hxx,
-         SMESHDS_ListNodeOfListOfPtrHypothesis_0.cxx,
-         SMESHDS_ListOfAsciiString.hxx, SMESHDS_ListOfAsciiString_0.cxx,
-         SMESHDS_ListOfCommand.hxx, SMESHDS_ListOfCommand_0.cxx,
-         SMESHDS_ListOfPtrHypothesis.hxx,
-         SMESHDS_ListOfPtrHypothesis_0.cxx, SMESHDS_Mesh.cdl,
-         SMESHDS_Mesh.ixx, SMESHDS_Mesh.jxx, SMESHDS_PtrHypothesis.hxx,
-         SMESHDS_Script.cdl, SMESHDS_Script.ixx, SMESHDS_Script.jxx,
-         SMESHDS_SubMesh.cdl, SMESHDS_SubMesh.ixx, SMESHDS_SubMesh.jxx:
-         Remove no longer needed files
-
-2003-09-04 14:50  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMDS/: Handle_SMDSControl_BoundaryEdges.hxx,
-         Handle_SMDSControl_BoundaryFaces.hxx,
-         Handle_SMDSControl_MeshBoundary.hxx,
-         Handle_SMDS_DataMapNodeOfDataMapOfIntegerMeshElement.hxx,
-         Handle_SMDS_DataMapNodeOfDataMapOfPntInteger.hxx,
-         Handle_SMDS_EdgePosition.hxx, Handle_SMDS_FacePosition.hxx,
-         Handle_SMDS_HSequenceOfMesh.hxx,
-         Handle_SMDS_ListNodeOfListOfMesh.hxx,
-         Handle_SMDS_ListNodeOfListOfMeshElement.hxx,
-         Handle_SMDS_ListNodeOfListOfMeshGroup.hxx, Handle_SMDS_Mesh.hxx,
-         Handle_SMDS_MeshEdge.hxx, Handle_SMDS_MeshElement.hxx,
-         Handle_SMDS_MeshElementIDFactory.hxx, Handle_SMDS_MeshFace.hxx,
-         Handle_SMDS_MeshGroup.hxx, Handle_SMDS_MeshHexahedron.hxx,
-         Handle_SMDS_MeshIDFactory.hxx, Handle_SMDS_MeshNode.hxx,
-         Handle_SMDS_MeshNodeIDFactory.hxx, Handle_SMDS_MeshObject.hxx,
-         Handle_SMDS_MeshPrism.hxx, Handle_SMDS_MeshPyramid.hxx,
-         Handle_SMDS_MeshQuadrangle.hxx, Handle_SMDS_MeshTetrahedron.hxx,
-         Handle_SMDS_MeshTriangle.hxx, Handle_SMDS_MeshVolume.hxx,
-         Handle_SMDS_Position.hxx,
-         Handle_SMDS_SequenceNodeOfSequenceOfMesh.hxx,
-         Handle_SMDS_SpacePosition.hxx,
-         Handle_SMDS_StdMapNodeOfExtendedMap.hxx,
-         Handle_SMDS_StdMapNodeOfExtendedOrientedMap.hxx,
-         Handle_SMDS_VertexPosition.hxx, SMDS.cdl, SMDSAbs.cdl,
-         SMDSControl.cdl, SMDSControl.ixx, SMDSControl.jxx,
-         SMDSControl_BoundaryEdges.cdl, SMDSControl_BoundaryEdges.ixx,
-         SMDSControl_BoundaryEdges.jxx, SMDSControl_BoundaryFaces.cdl,
-         SMDSControl_BoundaryFaces.ixx, SMDSControl_BoundaryFaces.jxx,
-         SMDSControl_MeshBoundary.cdl, SMDSControl_MeshBoundary.ixx,
-         SMDSControl_MeshBoundary.jxx, SMDSEdit.cdl,
-         SMDSEdit_Transform.cdl, SMDSEdit_Transform.ixx,
-         SMDSEdit_Transform.jxx, SMDS_BasicMap.lxx,
-         SMDS_BasicMapIterator.lxx,
-         SMDS_DataMapIteratorOfDataMapOfIntegerMeshElement.hxx,
-         SMDS_DataMapIteratorOfDataMapOfIntegerMeshElement_0.cxx,
-         SMDS_DataMapIteratorOfDataMapOfPntInteger.hxx,
-         SMDS_DataMapIteratorOfDataMapOfPntInteger_0.cxx,
-         SMDS_DataMapNodeOfDataMapOfIntegerMeshElement.hxx,
-         SMDS_DataMapNodeOfDataMapOfIntegerMeshElement_0.cxx,
-         SMDS_DataMapNodeOfDataMapOfPntInteger.hxx,
-         SMDS_DataMapNodeOfDataMapOfPntInteger_0.cxx,
-         SMDS_DataMapOfIntegerMeshElement.hxx,
-         SMDS_DataMapOfIntegerMeshElement_0.cxx,
-         SMDS_DataMapOfPntInteger.hxx, SMDS_DataMapOfPntInteger_0.cxx,
-         SMDS_EdgePosition.cdl, SMDS_EdgePosition.ixx,
-         SMDS_EdgePosition.jxx, SMDS_EdgePosition.lxx,
-         SMDS_ExtendedMap.hxx, SMDS_ExtendedMap_0.cxx,
-         SMDS_ExtendedOrientedMap.hxx, SMDS_ExtendedOrientedMap_0.cxx,
-         SMDS_FacePosition.cdl, SMDS_FacePosition.ixx,
-         SMDS_FacePosition.jxx, SMDS_FacePosition.lxx,
-         SMDS_HSequenceOfMesh.hxx, SMDS_HSequenceOfMesh_0.cxx,
-         SMDS_ListIteratorOfListOfMesh.hxx,
-         SMDS_ListIteratorOfListOfMeshElement.hxx,
-         SMDS_ListIteratorOfListOfMeshElement_0.cxx,
-         SMDS_ListIteratorOfListOfMeshGroup.hxx,
-         SMDS_ListIteratorOfListOfMeshGroup_0.cxx,
-         SMDS_ListIteratorOfListOfMesh_0.cxx,
-         SMDS_ListNodeOfListOfMesh.hxx,
-         SMDS_ListNodeOfListOfMeshElement.hxx,
-         SMDS_ListNodeOfListOfMeshElement_0.cxx,
-         SMDS_ListNodeOfListOfMeshGroup.hxx,
-         SMDS_ListNodeOfListOfMeshGroup_0.cxx,
-         SMDS_ListNodeOfListOfMesh_0.cxx, SMDS_ListOfMesh.hxx,
-         SMDS_ListOfMeshElement.hxx, SMDS_ListOfMeshElement_0.cxx,
-         SMDS_ListOfMeshGroup.hxx, SMDS_ListOfMeshGroup_0.cxx,
-         SMDS_ListOfMesh_0.cxx, SMDS_Map.gxx, SMDS_MapHasher.gxx,
-         SMDS_MapIterator.gxx, SMDS_MapIteratorOfExtendedMap.hxx,
-         SMDS_MapIteratorOfExtendedMap_0.cxx,
-         SMDS_MapIteratorOfExtendedOrientedMap.hxx,
-         SMDS_MapIteratorOfExtendedOrientedMap_0.cxx, SMDS_MapNode.lxx,
-         SMDS_MapOfMeshElement.cdl, SMDS_MapOfMeshElement.cxx,
-         SMDS_MapOfMeshElement.hxx, SMDS_MapOfMeshElement.ixx,
-         SMDS_MapOfMeshElement.jxx, SMDS_MapOfMeshElement.lxx,
-         SMDS_MapOfMeshOrientedElement.cdl,
-         SMDS_MapOfMeshOrientedElement.cxx,
-         SMDS_MapOfMeshOrientedElement.hxx,
-         SMDS_MapOfMeshOrientedElement.ixx,
-         SMDS_MapOfMeshOrientedElement.jxx,
-         SMDS_MapOfMeshOrientedElement.lxx, SMDS_Mesh.cdl, SMDS_Mesh.ixx,
-         SMDS_Mesh.jxx, SMDS_Mesh.lxx, SMDS_MeshEdge.cdl,
-         SMDS_MeshEdge.ixx, SMDS_MeshEdge.jxx, SMDS_MeshEdge.lxx,
-         SMDS_MeshEdgesIterator.cdl, SMDS_MeshEdgesIterator.cxx,
-         SMDS_MeshEdgesIterator.hxx, SMDS_MeshEdgesIterator.ixx,
-         SMDS_MeshEdgesIterator.jxx, SMDS_MeshElement.cdl,
-         SMDS_MeshElement.ixx, SMDS_MeshElement.jxx, SMDS_MeshElement.lxx,
-         SMDS_MeshElementIDFactory.cdl, SMDS_MeshElementIDFactory.ixx,
-         SMDS_MeshElementIDFactory.jxx, SMDS_MeshElementIDFactory.lxx,
-         SMDS_MeshElementMapHasher.cdl, SMDS_MeshElementMapHasher.cxx,
-         SMDS_MeshElementMapHasher.hxx, SMDS_MeshElementMapHasher.ixx,
-         SMDS_MeshElementMapHasher.jxx, SMDS_MeshElementMapHasher.lxx,
-         SMDS_MeshElementsIterator.cdl, SMDS_MeshElementsIterator.cxx,
-         SMDS_MeshElementsIterator.hxx, SMDS_MeshElementsIterator.ixx,
-         SMDS_MeshElementsIterator.jxx, SMDS_MeshElementsIterator.lxx,
-         SMDS_MeshFace.cdl, SMDS_MeshFace.ixx, SMDS_MeshFace.jxx,
-         SMDS_MeshFace.lxx, SMDS_MeshFacesIterator.cdl,
-         SMDS_MeshFacesIterator.cxx, SMDS_MeshFacesIterator.hxx,
-         SMDS_MeshFacesIterator.ixx, SMDS_MeshFacesIterator.jxx,
-         SMDS_MeshGroup.cdl, SMDS_MeshGroup.ixx, SMDS_MeshGroup.jxx,
-         SMDS_MeshGroup.lxx, SMDS_MeshHexahedron.cdl,
-         SMDS_MeshHexahedron.ixx, SMDS_MeshHexahedron.jxx,
-         SMDS_MeshHexahedron.lxx, SMDS_MeshIDFactory.cdl,
-         SMDS_MeshIDFactory.ixx, SMDS_MeshIDFactory.jxx,
-         SMDS_MeshIDFactory.lxx, SMDS_MeshNode.cdl, SMDS_MeshNode.ixx,
-         SMDS_MeshNode.jxx, SMDS_MeshNode.lxx, SMDS_MeshNodeIDFactory.cdl,
-         SMDS_MeshNodeIDFactory.ixx, SMDS_MeshNodeIDFactory.jxx,
-         SMDS_MeshNodeIDFactory.lxx, SMDS_MeshNodesIterator.cdl,
-         SMDS_MeshNodesIterator.cxx, SMDS_MeshNodesIterator.hxx,
-         SMDS_MeshNodesIterator.ixx, SMDS_MeshNodesIterator.jxx,
-         SMDS_MeshObject.cdl, SMDS_MeshObject.ixx, SMDS_MeshObject.jxx,
-         SMDS_MeshOrientedElementMapHasher.cdl,
-         SMDS_MeshOrientedElementMapHasher.cxx,
-         SMDS_MeshOrientedElementMapHasher.hxx,
-         SMDS_MeshOrientedElementMapHasher.ixx,
-         SMDS_MeshOrientedElementMapHasher.jxx,
-         SMDS_MeshOrientedElementMapHasher.lxx, SMDS_MeshPrism.cdl,
-         SMDS_MeshPrism.ixx, SMDS_MeshPrism.jxx, SMDS_MeshPrism.lxx,
-         SMDS_MeshPyramid.cdl, SMDS_MeshPyramid.ixx, SMDS_MeshPyramid.jxx,
-         SMDS_MeshPyramid.lxx, SMDS_MeshQuadrangle.cdl,
-         SMDS_MeshQuadrangle.ixx, SMDS_MeshQuadrangle.jxx,
-         SMDS_MeshQuadrangle.lxx, SMDS_MeshTetrahedron.cdl,
-         SMDS_MeshTetrahedron.ixx, SMDS_MeshTetrahedron.jxx,
-         SMDS_MeshTetrahedron.lxx, SMDS_MeshTriangle.cdl,
-         SMDS_MeshTriangle.ixx, SMDS_MeshTriangle.jxx,
-         SMDS_MeshTriangle.lxx, SMDS_MeshVolume.cdl, SMDS_MeshVolume.ixx,
-         SMDS_MeshVolume.jxx, SMDS_MeshVolume.lxx,
-         SMDS_MeshVolumesIterator.cdl, SMDS_MeshVolumesIterator.cxx,
-         SMDS_MeshVolumesIterator.hxx, SMDS_MeshVolumesIterator.ixx,
-         SMDS_MeshVolumesIterator.jxx, SMDS_PntHasher.cdl,
-         SMDS_PntHasher.cxx, SMDS_PntHasher.hxx, SMDS_PntHasher.ixx,
-         SMDS_PntHasher.jxx, SMDS_PntHasher.lxx, SMDS_Position.cdl,
-         SMDS_Position.ixx, SMDS_Position.jxx, SMDS_Position.lxx,
-         SMDS_SequenceNodeOfSequenceOfMesh.hxx,
-         SMDS_SequenceNodeOfSequenceOfMesh_0.cxx, SMDS_SequenceOfMesh.hxx,
-         SMDS_SequenceOfMesh_0.cxx, SMDS_SpacePosition.cdl,
-         SMDS_SpacePosition.ixx, SMDS_SpacePosition.jxx,
-         SMDS_SpacePosition.lxx, SMDS_StdMapNode.gxx, SMDS_StdMapNode.lxx,
-         SMDS_StdMapNodeOfExtendedMap.hxx,
-         SMDS_StdMapNodeOfExtendedMap_0.cxx,
-         SMDS_StdMapNodeOfExtendedOrientedMap.hxx,
-         SMDS_StdMapNodeOfExtendedOrientedMap_0.cxx,
-         SMDS_VertexPosition.cdl, SMDS_VertexPosition.ixx,
-         SMDS_VertexPosition.jxx: Remove no longer needed files
-
-2003-09-04 13:28  Jerome Robert <jerome.robert@eads.net>
-
-       * build_configure: It seems "make_omniorb" and "make_commence" need
-         to be before and after "envScript"
-
-2003-09-04 12:57  Jerome Robert <jerome.robert@eads.net>
-
-       * build_configure: make_commence and make_omniorb were detected
-         twice. Only one is requiered in AC_OUTPUT
-
-2003-09-04 12:03  Jerome Robert <jerome.robert@eads.net>
-
-       * src/: DriverDAT/DriverDAT_R_SMDS_Mesh.cxx,
-         DriverDAT/DriverDAT_R_SMDS_Mesh.h,
-         DriverDAT/DriverDAT_R_SMESHDS_Document.cxx,
-         DriverDAT/DriverDAT_R_SMESHDS_Mesh.cxx,
-         DriverDAT/DriverDAT_R_SMESHDS_Mesh.h,
-         DriverDAT/DriverDAT_W_SMDS_Mesh.cxx,
-         DriverDAT/DriverDAT_W_SMDS_Mesh.h,
-         DriverDAT/DriverDAT_W_SMESHDS_Document.cxx,
-         DriverDAT/DriverDAT_W_SMESHDS_Mesh.cxx,
-         DriverDAT/DriverDAT_W_SMESHDS_Mesh.h,
-         DriverMED/DriverMED_R_SMDS_Mesh.cxx,
-         DriverMED/DriverMED_R_SMDS_Mesh.h,
-         DriverMED/DriverMED_R_SMESHDS_Document.cxx,
-         DriverMED/DriverMED_R_SMESHDS_Mesh.cxx,
-         DriverMED/DriverMED_R_SMESHDS_Mesh.h,
-         DriverMED/DriverMED_W_SMDS_Mesh.cxx,
-         DriverMED/DriverMED_W_SMDS_Mesh.h,
-         DriverMED/DriverMED_W_SMESHDS_Document.cxx,
-         DriverMED/DriverMED_W_SMESHDS_Mesh.cxx,
-         DriverMED/DriverMED_W_SMESHDS_Mesh.h,
-         DriverUNV/DriverUNV_R_SMDS_Mesh.cxx,
-         DriverUNV/DriverUNV_R_SMDS_Mesh.h,
-         DriverUNV/DriverUNV_R_SMESHDS_Document.cxx,
-         DriverUNV/DriverUNV_R_SMESHDS_Mesh.cxx,
-         DriverUNV/DriverUNV_R_SMESHDS_Mesh.h,
-         DriverUNV/DriverUNV_W_SMDS_Mesh.cxx,
-         DriverUNV/DriverUNV_W_SMDS_Mesh.h,
-         DriverUNV/DriverUNV_W_SMESHDS_Document.cxx,
-         DriverUNV/DriverUNV_W_SMESHDS_Mesh.cxx,
-         DriverUNV/DriverUNV_W_SMESHDS_Mesh.h: Update to match the changes
-         in SMDS
-
-2003-09-04 11:03  Jerome Robert <jerome.robert@eads.net>
-
-       * src/: DriverDAT/Makefile.in, DriverMED/Makefile.in,
-         DriverUNV/Makefile.in: Remove OCC_LIBS from LDFLAGS
-
-2003-09-04 10:56  Jerome Robert <jerome.robert@eads.net>
-
-       * src/Driver/: Document_Reader.cxx, Document_Reader.h,
-         Document_Writer.cxx, Document_Writer.h, Mesh_Reader.h,
-         Mesh_Writer.h: Update to mach the changes in SMDS
-
-2003-09-04 10:44  Jerome Robert <jerome.robert@eads.net>
-
-       * src/Driver/Makefile.in: Remove OCC_LIBS from LDFLAGS
-
-2003-09-04 10:41  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMESH_I/: SMESH_Gen_i.cxx, SMESH_MEDMesh_i.cxx,
-         SMESH_MEDMesh_i.hxx, SMESH_MEDSupport_i.cxx,
-         SMESH_MEDSupport_i.hxx, SMESH_MeshEditor_i.cxx,
-         SMESH_MeshEditor_i.hxx, SMESH_Mesh_i.cxx: Update to match the new
-         implementation of SMDS
-
-2003-09-04 10:10  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMESH/SMESH_MaxElementArea.cxx: make GetMaxArea const
-
-2003-09-04 10:10  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMESH/: SMESH_MEFISTO_2D.hxx, SMESH_Regular_1D.hxx: make
-         hypothesis const
-
-2003-09-04 09:55  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMESH/SMESH_Hexa_3D.hxx: Update to match the change of SMDS
-         (new DS).
-
-2003-09-04 09:51  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMESH_I/sstream: Use the file include in gcc instead of this
-         one
-
-2003-09-04 09:21  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMESH/: SMESH_Algo.cxx, SMESH_Algo.hxx, SMESH_Gen.cxx,
-         SMESH_Gen.hxx, SMESH_Hexa_3D.cxx, SMESH_MEFISTO_2D.cxx,
-         SMESH_MaxElementArea.hxx, SMESH_Mesh.cxx, SMESH_Mesh.hxx,
-         SMESH_Quadrangle_2D.cxx, SMESH_Regular_1D.cxx, SMESH_subMesh.cxx,
-         SMESH_subMesh.hxx: Update to match the change of SMDS (new DS).
-
-2003-09-04 09:13  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMESH/: SMESH_NumberOfSegments.cxx,
-         SMESH_NumberOfSegments.hxx: make GetNumberOfSegments and
-         GetScaleFactor const
-
-2003-09-04 09:10  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMESH/: SMESH_LocalLength.cxx, SMESH_LocalLength.hxx: make
-         GetLength const
-
-2003-09-04 08:09  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMESHFiltersSelection/Makefile.in: Change OCC_LIBS to
-         OCC_KERNEL_LIBS
-
-2003-09-04 07:55  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMESHGUI/Makefile.in: Change OCC_LIBS to OCC_KERNEL_LIBS
-
-2003-09-04 07:39  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMESHGUI/: SMESHGUI.cxx, SMESHGUI.h: Change
-         Handle(SMESHDS_Document) to SMESHDS_Document*
-
-2003-09-04 07:21  Jerome Robert <jerome.robert@eads.net>
-
-       * src/MEFISTO2/Makefile.in: Remove OCC_LIBS from LDFLAGS
-
-2003-09-04 07:14  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMESHDS/: Makefile.in, SMESHDS_Command.cxx,
-         SMESHDS_Command.hxx, SMESHDS_Document.cxx, SMESHDS_Document.hxx,
-         SMESHDS_Hypothesis.cxx, SMESHDS_Hypothesis.hxx, SMESHDS_Mesh.cxx,
-         SMESHDS_Mesh.hxx, SMESHDS_Script.cxx, SMESHDS_Script.hxx,
-         SMESHDS_SubMesh.cxx, SMESHDS_SubMesh.hxx: Remove Opencascade
-         dependencies. Change to STL.
-
-2003-09-03 17:31  Jerome Robert <jerome.robert@eads.net>
-
-       * src/OBJECT/Makefile.in: Change OCC_LIBS to OCC_KERNEL_LIBS
-
-2003-09-03 17:30  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMDS/: SMDS_Mesh.cxx, SMDS_Mesh.hxx, SMDS_MeshEdge.cxx,
-         SMDS_MeshEdge.hxx, SMDS_MeshElement.cxx, SMDS_MeshElement.hxx,
-         SMDS_MeshNode.cxx, SMDS_MeshNode.hxx, SMDS_MeshVolume.cxx,
-         SMDS_MeshVolume.hxx, SMDS_MeshFace.cxx, SMDS_MeshFace.hxx: New DS
-         implementation
-
-2003-09-03 17:29  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMDS/: SMDS_EdgePosition.cxx, SMDS_EdgePosition.hxx,
-         SMDS_FacePosition.cxx, SMDS_FacePosition.hxx,
-         SMDS_MeshElementIDFactory.cxx, SMDS_MeshElementIDFactory.hxx,
-         SMDS_MeshGroup.cxx, SMDS_MeshGroup.hxx, SMDS_MeshIDFactory.cxx,
-         SMDS_MeshIDFactory.hxx, SMDS_MeshObject.cxx, SMDS_MeshObject.hxx,
-         SMDS_Position.cxx, SMDS_Position.hxx, SMDS_SpacePosition.cxx,
-         SMDS_SpacePosition.hxx, SMDS_TypeOfPosition.hxx,
-         SMDS_VertexPosition.cxx, SMDS_VertexPosition.hxx: Remove
-         Opencascade dependencies
-
-2003-09-03 17:21  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMDS/SMDSAbs_ElementType.hxx: comments
-
-2003-09-03 17:21  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMDS/: SMDS_Iterator.hxx, SMDS_IteratorOfElements.cxx,
-         SMDS_IteratorOfElements.hxx: Add iterator classes
-
-2003-09-03 17:16  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMDS/Makefile.in: Remove wok files. Comment no longer needed
-         files
-
-2003-09-03 17:09  Jerome Robert <jerome.robert@eads.net>
-
-       * src/SMDS/: SMDS_FaceOfEdges.cxx, SMDS_FaceOfEdges.hxx,
-         SMDS_FaceOfNodes.cxx, SMDS_FaceOfNodes.hxx,
-         SMDS_VolumeOfFaces.cxx, SMDS_VolumeOfFaces.hxx,
-         SMDS_VolumeOfNodes.cxx, SMDS_VolumeOfNodes.hxx: Add needed class
-         for the new DS
-
-2003-07-18 12:19  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/SMESHGUI/SMESHGUI_StudyAPI.cxx: NRI : correction wrong merge.
-
-2003-07-11 07:32  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * bin/VERSION, doc/html/Makefile.in, doc/html/INPUT/doxyfile: NRI :
-         Merge from V1_2.
-
-2003-07-10 17:51  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * configure.in.base: NRI : Merge from V1_2.
-
-2003-07-10 16:31  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/SMESHGUI/: SMESHGUI_Swig.cxx, SMESHGUI_Swig.i: NRI : Merge
-         from V1_2.
-
-2003-07-10 16:06  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/SMESHGUI/SMESHGUI_Swig.cxx: NRI : Merge from V1_2.
-
-2003-07-10 15:36  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/Driver/Makefile.in: NRI : Merge from V1_2.
-
-2003-07-10 15:03  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/SMESH/Makefile.in, src/SMESH_I/Makefile.in,
-         idl/SMESH_BasicHypothesis.idl, idl/SMESH_Gen.idl,
-         idl/SMESH_Hypothesis.idl, idl/SMESH_Mesh.idl,
-         adm_local/unix/make_commence.in: NRI : Merge from V1_2.
-
-2003-07-10 14:47  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * configure.in.base: NRI : Merge from V1_2.
-
-2003-07-10 14:31  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/Driver/Makefile.in: NRI : Merge from V1_2.
-
-2003-07-10 13:35  Yves Fricaud <yves.fricaud@opencascade.com>
-
-       * src/: SMESH_I/Makefile.in, SMESH_I/SMESH_1D_Algo_i.cxx,
-         SMESH_I/SMESH_1D_Algo_i.hxx, SMESH_I/SMESH_2D_Algo_i.cxx,
-         SMESH_I/SMESH_2D_Algo_i.hxx, SMESH_I/SMESH_3D_Algo_i.cxx,
-         SMESH_I/SMESH_3D_Algo_i.hxx, SMESH_I/SMESH_Algo_i.cxx,
-         SMESH_I/SMESH_Algo_i.hxx, SMESH_I/SMESH_Gen_i.cxx,
-         SMESH_I/SMESH_Gen_i.hxx, SMESH_I/SMESH_Hexa_3D_i.cxx,
-         SMESH_I/SMESH_Hexa_3D_i.hxx,
-         SMESH_I/SMESH_HypothesisFactory_i.cxx,
-         SMESH_I/SMESH_HypothesisFactory_i.hxx,
-         SMESH_I/SMESH_Hypothesis_i.cxx, SMESH_I/SMESH_Hypothesis_i.hxx,
-         SMESH_I/SMESH_LocalLength_i.cxx, SMESH_I/SMESH_LocalLength_i.hxx,
-         SMESH_I/SMESH_MEDFamily_i.cxx, SMESH_I/SMESH_MEDFamily_i.hxx,
-         SMESH_I/SMESH_MEDMesh_i.cxx, SMESH_I/SMESH_MEDMesh_i.hxx,
-         SMESH_I/SMESH_MEDSupport_i.cxx, SMESH_I/SMESH_MEDSupport_i.hxx,
-         SMESH_I/SMESH_MEFISTO_2D_i.cxx, SMESH_I/SMESH_MEFISTO_2D_i.hxx,
-         SMESH_I/SMESH_MaxElementArea_i.cxx,
-         SMESH_I/SMESH_MaxElementArea_i.hxx,
-         SMESH_I/SMESH_MaxElementVolume_i.cxx,
-         SMESH_I/SMESH_MaxElementVolume_i.hxx,
-         SMESH_I/SMESH_MeshEditor_i.cxx, SMESH_I/SMESH_MeshEditor_i.hxx,
-         SMESH_I/SMESH_Mesh_i.cxx, SMESH_I/SMESH_Mesh_i.hxx,
-         SMESH_I/SMESH_NumberOfSegments_i.cxx,
-         SMESH_I/SMESH_NumberOfSegments_i.hxx,
-         SMESH_I/SMESH_Quadrangle_2D_i.cxx,
-         SMESH_I/SMESH_Quadrangle_2D_i.hxx,
-         SMESH_I/SMESH_Regular_1D_i.cxx, SMESH_I/SMESH_Regular_1D_i.hxx,
-         SMESH_I/SMESH_subMesh_i.cxx, SMESH_I/SMESH_subMesh_i.hxx,
-         SMESH_I/SMESH_test.py, SMESH_I/SMESH_topo.cxx,
-         SMESH_I/SMESH_topo.hxx, SMESH_I/smeshpy.py,
-         SMESH_SWIG/Makefile.in, SMESH_SWIG/SMESH_fixation.py,
-         SMESH_SWIG/SMESH_mechanic.py, SMESH_SWIG/SMESH_test0.py,
-         SMESH_SWIG/SMESH_test1.py, SMESH_SWIG/SMESH_test2.py,
-         SMESH_SWIG/SMESH_test3.py, SMESH_SWIG/batchmode_smesh.py,
-         SMESH_SWIG/libSMESH_Swig.i: yfr : merge 1.2
-
-2003-07-10 13:18  Yves Fricaud <yves.fricaud@opencascade.com>
-
-       * src/SMESHGUI/: SMESHGUI.h, SMESHGUI_AddAlgorithmDlg.cxx,
-         SMESHGUI_AddAlgorithmDlg.h, SMESHGUI_AddEdgeDlg.cxx,
-         SMESHGUI_AddEdgeDlg.h, SMESHGUI_AddFaceDlg.cxx,
-         SMESHGUI_AddFaceDlg.h, SMESHGUI_AddHypothesisDlg.cxx,
-         SMESHGUI_AddHypothesisDlg.h, SMESHGUI_AddSubMeshDlg.cxx,
-         SMESHGUI_AddSubMeshDlg.h, SMESHGUI_AddVolumeDlg.cxx,
-         SMESHGUI_AddVolumeDlg.h, SMESHGUI_ComputeScalarValue.cxx,
-         SMESHGUI_ComputeScalarValue.h, SMESHGUI_DiagonalInversionDlg.cxx,
-         SMESHGUI_DiagonalInversionDlg.h,
-         SMESHGUI_EdgesConnectivityDlg.cxx,
-         SMESHGUI_EdgesConnectivityDlg.h, SMESHGUI_EditHypothesesDlg.cxx,
-         SMESHGUI_EditHypothesesDlg.h, SMESHGUI_EditScalarBarDlg.cxx,
-         SMESHGUI_EditScalarBarDlg.h, SMESHGUI_InitMeshDlg.cxx,
-         SMESHGUI_InitMeshDlg.h, SMESHGUI_LocalLengthDlg.cxx,
-         SMESHGUI_LocalLengthDlg.h, SMESHGUI_MaxElementAreaDlg.cxx,
-         SMESHGUI_MaxElementAreaDlg.h, SMESHGUI_MaxElementVolumeDlg.cxx,
-         SMESHGUI_MaxElementVolumeDlg.h, SMESHGUI_MeshInfosDlg.cxx,
-         SMESHGUI_MeshInfosDlg.h, SMESHGUI_MoveNodesDlg.cxx,
-         SMESHGUI_MoveNodesDlg.h, SMESHGUI_NbSegmentsDlg.cxx,
-         SMESHGUI_NbSegmentsDlg.h, SMESHGUI_NodesDlg.cxx,
-         SMESHGUI_NodesDlg.h, SMESHGUI_OrientationElementsDlg.cxx,
-         SMESHGUI_OrientationElementsDlg.h,
-         SMESHGUI_Preferences_ColorDlg.cxx,
-         SMESHGUI_Preferences_ColorDlg.h,
-         SMESHGUI_Preferences_ScalarBarDlg.cxx,
-         SMESHGUI_Preferences_ScalarBarDlg.h,
-         SMESHGUI_RemoveElementsDlg.cxx, SMESHGUI_RemoveElementsDlg.h,
-         SMESHGUI_RemoveNodesDlg.cxx, SMESHGUI_RemoveNodesDlg.h,
-         SMESHGUI_SpinBox.cxx, SMESHGUI_SpinBox.h, SMESHGUI_StudyAPI.cxx,
-         SMESHGUI_StudyAPI.h, SMESHGUI_Swig.cxx, SMESHGUI_Swig.hxx,
-         SMESHGUI_Swig.i, SMESHGUI_TransparencyDlg.cxx,
-         SMESHGUI_TransparencyDlg.h, SMESHGUI_aParameterDlg.cxx,
-         SMESHGUI_aParameterDlg.h: yfr : merge 1.2
-
-2003-07-10 12:18  Yves Fricaud <yves.fricaud@opencascade.com>
-
-       * src/SMESHGUI/: Makefile.in, SMESHGUI.cxx: yfr : Merge V1.2
-
-2003-07-10 11:35  Yves Fricaud <yves.fricaud@opencascade.com>
-
-       * src/SMESHFiltersSelection/Makefile.in: yfr : Merge with v1.2
-
-2003-07-10 10:04  Yves Fricaud <yves.fricaud@opencascade.com>
-
-       * src/: SMESHDS/Handle_SMESHDS_Command.hxx,
-         SMESHDS/Handle_SMESHDS_DataMapNodeOfDataMapOfIntegerMesh.hxx,
-         SMESHDS/Handle_SMESHDS_DataMapNodeOfDataMapOfIntegerPtrHypothesis.hxx,
-         SMESHDS/Handle_SMESHDS_DataMapNodeOfDataMapOfIntegerSubMesh.hxx,
-         SMESHDS/Handle_SMESHDS_DataMapNodeOfDataMapOfShapeListOfPtrHypothesis.hxx,
-         SMESHDS/Handle_SMESHDS_DataMapNodeOfDataMapOfShapeSubMesh.hxx,
-         SMESHDS/Handle_SMESHDS_Document.hxx,
-         SMESHDS/Handle_SMESHDS_ListNodeOfListOfAsciiString.hxx,
-         SMESHDS/Handle_SMESHDS_ListNodeOfListOfCommand.hxx,
-         SMESHDS/Handle_SMESHDS_ListNodeOfListOfPtrHypothesis.hxx,
-         SMESHDS/Handle_SMESHDS_Mesh.hxx,
-         SMESHDS/Handle_SMESHDS_Script.hxx,
-         SMESHDS/Handle_SMESHDS_SubMesh.hxx, SMESHDS/Makefile.in,
-         SMESHDS/SMESHDS.cdl, SMESHDS/SMESHDS_Command.cdl,
-         SMESHDS/SMESHDS_Command.cxx, SMESHDS/SMESHDS_Command.hxx,
-         SMESHDS/SMESHDS_Command.ixx, SMESHDS/SMESHDS_Command.jxx,
-         SMESHDS/SMESHDS_CommandType.hxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfIntegerMesh.hxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfIntegerMesh_0.cxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfIntegerPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfIntegerPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfIntegerSubMesh.hxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfIntegerSubMesh_0.cxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfShapeListOfPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfShapeListOfPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfShapeSubMesh.hxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfShapeSubMesh_0.cxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfIntegerMesh.hxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfIntegerMesh_0.cxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfIntegerPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfIntegerPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfIntegerSubMesh.hxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfIntegerSubMesh_0.cxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfShapeListOfPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfShapeListOfPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfShapeSubMesh.hxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfShapeSubMesh_0.cxx,
-         SMESHDS/SMESHDS_DataMapOfIntegerMesh.hxx,
-         SMESHDS/SMESHDS_DataMapOfIntegerMesh_0.cxx,
-         SMESHDS/SMESHDS_DataMapOfIntegerPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_DataMapOfIntegerPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_DataMapOfIntegerSubMesh.hxx,
-         SMESHDS/SMESHDS_DataMapOfIntegerSubMesh_0.cxx,
-         SMESHDS/SMESHDS_DataMapOfShapeListOfPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_DataMapOfShapeListOfPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_DataMapOfShapeSubMesh.hxx,
-         SMESHDS/SMESHDS_DataMapOfShapeSubMesh_0.cxx,
-         SMESHDS/SMESHDS_Document.cdl, SMESHDS/SMESHDS_Document.cxx,
-         SMESHDS/SMESHDS_Document.hxx, SMESHDS/SMESHDS_Document.ixx,
-         SMESHDS/SMESHDS_Document.jxx, SMESHDS/SMESHDS_Hypothesis.cxx,
-         SMESHDS/SMESHDS_Hypothesis.hxx,
-         SMESHDS/SMESHDS_ListIteratorOfListOfAsciiString.hxx,
-         SMESHDS/SMESHDS_ListIteratorOfListOfAsciiString_0.cxx,
-         SMESHDS/SMESHDS_ListIteratorOfListOfCommand.hxx,
-         SMESHDS/SMESHDS_ListIteratorOfListOfCommand_0.cxx,
-         SMESHDS/SMESHDS_ListIteratorOfListOfPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_ListIteratorOfListOfPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_ListNodeOfListOfAsciiString.hxx,
-         SMESHDS/SMESHDS_ListNodeOfListOfAsciiString_0.cxx,
-         SMESHDS/SMESHDS_ListNodeOfListOfCommand.hxx,
-         SMESHDS/SMESHDS_ListNodeOfListOfCommand_0.cxx,
-         SMESHDS/SMESHDS_ListNodeOfListOfPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_ListNodeOfListOfPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_ListOfAsciiString.hxx,
-         SMESHDS/SMESHDS_ListOfAsciiString_0.cxx,
-         SMESHDS/SMESHDS_ListOfCommand.hxx,
-         SMESHDS/SMESHDS_ListOfCommand_0.cxx,
-         SMESHDS/SMESHDS_ListOfPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_ListOfPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_Mesh.cdl, SMESHDS/SMESHDS_Mesh.cxx,
-         SMESHDS/SMESHDS_Mesh.hxx, SMESHDS/SMESHDS_Mesh.ixx,
-         SMESHDS/SMESHDS_Mesh.jxx, SMESHDS/SMESHDS_PtrHypothesis.hxx,
-         SMESHDS/SMESHDS_Script.cdl, SMESHDS/SMESHDS_Script.cxx,
-         SMESHDS/SMESHDS_Script.hxx, SMESHDS/SMESHDS_Script.ixx,
-         SMESHDS/SMESHDS_Script.jxx, SMESHDS/SMESHDS_SubMesh.cdl,
-         SMESHDS/SMESHDS_SubMesh.cxx, SMESHDS/SMESHDS_SubMesh.hxx,
-         SMESHDS/SMESHDS_SubMesh.ixx, SMESHDS/SMESHDS_SubMesh.jxx,
-         SMESH/Makefile.in, SMESH/SMESH_1D_Algo.cxx,
-         SMESH/SMESH_1D_Algo.hxx, SMESH/SMESH_2D_Algo.cxx,
-         SMESH/SMESH_2D_Algo.hxx, SMESH/SMESH_3D_Algo.cxx,
-         SMESH/SMESH_3D_Algo.hxx, SMESH/SMESH_Algo.cxx,
-         SMESH/SMESH_Algo.hxx, SMESH/SMESH_Gen.cxx, SMESH/SMESH_Gen.hxx,
-         SMESH/SMESH_Hexa_3D.cxx, SMESH/SMESH_Hexa_3D.hxx,
-         SMESH/SMESH_Hypothesis.cxx, SMESH/SMESH_Hypothesis.hxx,
-         SMESH/SMESH_HypothesisCreator.hxx,
-         SMESH/SMESH_HypothesisFactory.cxx,
-         SMESH/SMESH_HypothesisFactory.hxx,
-         SMESH/SMESH_LengthFromEdges.cxx, SMESH/SMESH_LengthFromEdges.hxx,
-         SMESH/SMESH_LocalLength.cxx, SMESH/SMESH_LocalLength.hxx,
-         SMESH/SMESH_MEFISTO_2D.cxx, SMESH/SMESH_MEFISTO_2D.hxx,
-         SMESH/SMESH_MaxElementArea.cxx, SMESH/SMESH_MaxElementArea.hxx,
-         SMESH/SMESH_MaxElementVolume.cxx,
-         SMESH/SMESH_MaxElementVolume.hxx, SMESH/SMESH_Mesh.cxx,
-         SMESH/SMESH_Mesh.hxx, SMESH/SMESH_NumberOfSegments.cxx,
-         SMESH/SMESH_NumberOfSegments.hxx, SMESH/SMESH_Quadrangle_2D.cxx,
-         SMESH/SMESH_Quadrangle_2D.hxx, SMESH/SMESH_Regular_1D.cxx,
-         SMESH/SMESH_Regular_1D.hxx, SMESH/SMESH_subMesh.cxx,
-         SMESH/SMESH_subMesh.hxx: yfr : Merge with v1.2
-
-2003-07-10 09:49  Yves Fricaud <yves.fricaud@opencascade.com>
-
-       * src/SMDS/: Handle_SMDSControl_BoundaryEdges.hxx,
-         Handle_SMDSControl_BoundaryFaces.hxx,
-         Handle_SMDSControl_MeshBoundary.hxx,
-         Handle_SMDS_DataMapNodeOfDataMapOfIntegerMeshElement.hxx,
-         Handle_SMDS_DataMapNodeOfDataMapOfPntInteger.hxx,
-         Handle_SMDS_EdgePosition.hxx, Handle_SMDS_FacePosition.hxx,
-         Handle_SMDS_HSequenceOfMesh.hxx,
-         Handle_SMDS_ListNodeOfListOfMesh.hxx,
-         Handle_SMDS_ListNodeOfListOfMeshElement.hxx,
-         Handle_SMDS_ListNodeOfListOfMeshGroup.hxx, Handle_SMDS_Mesh.hxx,
-         Handle_SMDS_MeshEdge.hxx, Handle_SMDS_MeshElement.hxx,
-         Handle_SMDS_MeshElementIDFactory.hxx, Handle_SMDS_MeshFace.hxx,
-         Handle_SMDS_MeshGroup.hxx, Handle_SMDS_MeshHexahedron.hxx,
-         Handle_SMDS_MeshIDFactory.hxx, Handle_SMDS_MeshNode.hxx,
-         Handle_SMDS_MeshNodeIDFactory.hxx, Handle_SMDS_MeshObject.hxx,
-         Handle_SMDS_MeshPrism.hxx, Handle_SMDS_MeshPyramid.hxx,
-         Handle_SMDS_MeshQuadrangle.hxx, Handle_SMDS_MeshTetrahedron.hxx,
-         Handle_SMDS_MeshTriangle.hxx, Handle_SMDS_MeshVolume.hxx,
-         Handle_SMDS_Position.hxx,
-         Handle_SMDS_SequenceNodeOfSequenceOfMesh.hxx,
-         Handle_SMDS_SpacePosition.hxx,
-         Handle_SMDS_StdMapNodeOfExtendedMap.hxx,
-         Handle_SMDS_StdMapNodeOfExtendedOrientedMap.hxx,
-         Handle_SMDS_VertexPosition.hxx, Makefile.in, SMDS.cdl,
-         SMDSAbs.cdl, SMDSAbs_ElementType.hxx, SMDSControl.cdl,
-         SMDSControl.cxx, SMDSControl.hxx, SMDSControl.ixx,
-         SMDSControl.jxx, SMDSControl_BoundaryEdges.cdl,
-         SMDSControl_BoundaryEdges.cxx, SMDSControl_BoundaryEdges.hxx,
-         SMDSControl_BoundaryEdges.ixx, SMDSControl_BoundaryEdges.jxx,
-         SMDSControl_BoundaryFaces.cdl, SMDSControl_BoundaryFaces.cxx,
-         SMDSControl_BoundaryFaces.hxx, SMDSControl_BoundaryFaces.ixx,
-         SMDSControl_BoundaryFaces.jxx, SMDSControl_MeshBoundary.cdl,
-         SMDSControl_MeshBoundary.cxx, SMDSControl_MeshBoundary.hxx,
-         SMDSControl_MeshBoundary.ixx, SMDSControl_MeshBoundary.jxx,
-         SMDSEdit.cdl, SMDSEdit_Transform.cdl, SMDSEdit_Transform.cxx,
-         SMDSEdit_Transform.hxx, SMDSEdit_Transform.ixx,
-         SMDSEdit_Transform.jxx, SMDS_BasicMap.lxx,
-         SMDS_BasicMapIterator.lxx,
-         SMDS_DataMapIteratorOfDataMapOfIntegerMeshElement.hxx,
-         SMDS_DataMapIteratorOfDataMapOfIntegerMeshElement_0.cxx,
-         SMDS_DataMapIteratorOfDataMapOfPntInteger.hxx,
-         SMDS_DataMapIteratorOfDataMapOfPntInteger_0.cxx,
-         SMDS_DataMapNodeOfDataMapOfIntegerMeshElement.hxx,
-         SMDS_DataMapNodeOfDataMapOfIntegerMeshElement_0.cxx,
-         SMDS_DataMapNodeOfDataMapOfPntInteger.hxx,
-         SMDS_DataMapNodeOfDataMapOfPntInteger_0.cxx,
-         SMDS_DataMapOfIntegerMeshElement.hxx,
-         SMDS_DataMapOfIntegerMeshElement_0.cxx,
-         SMDS_DataMapOfPntInteger.hxx, SMDS_DataMapOfPntInteger_0.cxx,
-         SMDS_EdgePosition.cdl, SMDS_EdgePosition.cxx,
-         SMDS_EdgePosition.hxx, SMDS_EdgePosition.ixx,
-         SMDS_EdgePosition.jxx, SMDS_EdgePosition.lxx,
-         SMDS_ExtendedMap.hxx, SMDS_ExtendedMap_0.cxx,
-         SMDS_ExtendedOrientedMap.hxx, SMDS_ExtendedOrientedMap_0.cxx,
-         SMDS_FacePosition.cdl, SMDS_FacePosition.cxx,
-         SMDS_FacePosition.hxx, SMDS_FacePosition.ixx,
-         SMDS_FacePosition.jxx, SMDS_FacePosition.lxx,
-         SMDS_HSequenceOfMesh.hxx, SMDS_HSequenceOfMesh_0.cxx,
-         SMDS_ListIteratorOfListOfMesh.hxx,
-         SMDS_ListIteratorOfListOfMeshElement.hxx,
-         SMDS_ListIteratorOfListOfMeshElement_0.cxx,
-         SMDS_ListIteratorOfListOfMeshGroup.hxx,
-         SMDS_ListIteratorOfListOfMeshGroup_0.cxx,
-         SMDS_ListIteratorOfListOfMesh_0.cxx,
-         SMDS_ListNodeOfListOfMesh.hxx,
-         SMDS_ListNodeOfListOfMeshElement.hxx,
-         SMDS_ListNodeOfListOfMeshElement_0.cxx,
-         SMDS_ListNodeOfListOfMeshGroup.hxx,
-         SMDS_ListNodeOfListOfMeshGroup_0.cxx,
-         SMDS_ListNodeOfListOfMesh_0.cxx, SMDS_ListOfMesh.hxx,
-         SMDS_ListOfMeshElement.hxx, SMDS_ListOfMeshElement_0.cxx,
-         SMDS_ListOfMeshGroup.hxx, SMDS_ListOfMeshGroup_0.cxx,
-         SMDS_ListOfMesh_0.cxx, SMDS_MapIteratorOfExtendedMap.hxx,
-         SMDS_MapIteratorOfExtendedMap_0.cxx,
-         SMDS_MapIteratorOfExtendedOrientedMap.hxx,
-         SMDS_MapIteratorOfExtendedOrientedMap_0.cxx, SMDS_MapNode.lxx,
-         SMDS_MapOfMeshElement.cdl, SMDS_MapOfMeshElement.cxx,
-         SMDS_MapOfMeshElement.hxx, SMDS_MapOfMeshElement.ixx,
-         SMDS_MapOfMeshElement.jxx, SMDS_MapOfMeshElement.lxx,
-         SMDS_MapOfMeshOrientedElement.cdl,
-         SMDS_MapOfMeshOrientedElement.cxx,
-         SMDS_MapOfMeshOrientedElement.hxx,
-         SMDS_MapOfMeshOrientedElement.ixx,
-         SMDS_MapOfMeshOrientedElement.jxx,
-         SMDS_MapOfMeshOrientedElement.lxx, SMDS_Mesh.cdl, SMDS_Mesh.cxx,
-         SMDS_Mesh.hxx, SMDS_Mesh.ixx, SMDS_Mesh.jxx, SMDS_Mesh.lxx,
-         SMDS_MeshEdge.cdl, SMDS_MeshEdge.cxx, SMDS_MeshEdge.hxx,
-         SMDS_MeshEdge.ixx, SMDS_MeshEdge.jxx, SMDS_MeshEdge.lxx,
-         SMDS_MeshEdgesIterator.cdl, SMDS_MeshEdgesIterator.cxx,
-         SMDS_MeshEdgesIterator.hxx, SMDS_MeshEdgesIterator.ixx,
-         SMDS_MeshEdgesIterator.jxx, SMDS_MeshElement.cdl,
-         SMDS_MeshElement.cxx, SMDS_MeshElement.hxx, SMDS_MeshElement.ixx,
-         SMDS_MeshElement.jxx, SMDS_MeshElement.lxx,
-         SMDS_MeshElementIDFactory.cdl, SMDS_MeshElementIDFactory.cxx,
-         SMDS_MeshElementIDFactory.hxx, SMDS_MeshElementIDFactory.ixx,
-         SMDS_MeshElementIDFactory.jxx, SMDS_MeshElementIDFactory.lxx,
-         SMDS_MeshElementMapHasher.cdl, SMDS_MeshElementMapHasher.cxx,
-         SMDS_MeshElementMapHasher.hxx, SMDS_MeshElementMapHasher.ixx,
-         SMDS_MeshElementMapHasher.jxx, SMDS_MeshElementMapHasher.lxx,
-         SMDS_MeshElementsIterator.cdl, SMDS_MeshElementsIterator.cxx,
-         SMDS_MeshElementsIterator.hxx, SMDS_MeshElementsIterator.ixx,
-         SMDS_MeshElementsIterator.jxx, SMDS_MeshElementsIterator.lxx,
-         SMDS_MeshFace.cdl, SMDS_MeshFace.cxx, SMDS_MeshFace.hxx,
-         SMDS_MeshFace.ixx, SMDS_MeshFace.jxx, SMDS_MeshFace.lxx,
-         SMDS_MeshFacesIterator.cdl, SMDS_MeshFacesIterator.cxx,
-         SMDS_MeshFacesIterator.hxx, SMDS_MeshFacesIterator.ixx,
-         SMDS_MeshFacesIterator.jxx, SMDS_MeshGroup.cdl,
-         SMDS_MeshGroup.cxx, SMDS_MeshGroup.hxx, SMDS_MeshGroup.ixx,
-         SMDS_MeshGroup.jxx, SMDS_MeshGroup.lxx, SMDS_MeshHexahedron.cdl,
-         SMDS_MeshHexahedron.cxx, SMDS_MeshHexahedron.hxx,
-         SMDS_MeshHexahedron.ixx, SMDS_MeshHexahedron.jxx,
-         SMDS_MeshHexahedron.lxx, SMDS_MeshIDFactory.cdl,
-         SMDS_MeshIDFactory.cxx, SMDS_MeshIDFactory.hxx,
-         SMDS_MeshIDFactory.ixx, SMDS_MeshIDFactory.jxx,
-         SMDS_MeshIDFactory.lxx, SMDS_MeshNode.cdl, SMDS_MeshNode.cxx,
-         SMDS_MeshNode.hxx, SMDS_MeshNode.ixx, SMDS_MeshNode.jxx,
-         SMDS_MeshNode.lxx, SMDS_MeshNodeIDFactory.cdl,
-         SMDS_MeshNodeIDFactory.cxx, SMDS_MeshNodeIDFactory.hxx,
-         SMDS_MeshNodeIDFactory.ixx, SMDS_MeshNodeIDFactory.jxx,
-         SMDS_MeshNodeIDFactory.lxx, SMDS_MeshNodesIterator.cdl,
-         SMDS_MeshNodesIterator.cxx, SMDS_MeshNodesIterator.hxx,
-         SMDS_MeshNodesIterator.ixx, SMDS_MeshNodesIterator.jxx,
-         SMDS_MeshObject.cdl, SMDS_MeshObject.cxx, SMDS_MeshObject.hxx,
-         SMDS_MeshObject.ixx, SMDS_MeshObject.jxx,
-         SMDS_MeshOrientedElementMapHasher.cdl,
-         SMDS_MeshOrientedElementMapHasher.cxx,
-         SMDS_MeshOrientedElementMapHasher.hxx,
-         SMDS_MeshOrientedElementMapHasher.ixx,
-         SMDS_MeshOrientedElementMapHasher.jxx,
-         SMDS_MeshOrientedElementMapHasher.lxx, SMDS_MeshPrism.cdl,
-         SMDS_MeshPrism.cxx, SMDS_MeshPrism.hxx, SMDS_MeshPrism.ixx,
-         SMDS_MeshPrism.jxx, SMDS_MeshPrism.lxx, SMDS_MeshPyramid.cdl,
-         SMDS_MeshPyramid.cxx, SMDS_MeshPyramid.hxx, SMDS_MeshPyramid.ixx,
-         SMDS_MeshPyramid.jxx, SMDS_MeshPyramid.lxx,
-         SMDS_MeshQuadrangle.cdl, SMDS_MeshQuadrangle.cxx,
-         SMDS_MeshQuadrangle.hxx, SMDS_MeshQuadrangle.ixx,
-         SMDS_MeshQuadrangle.jxx, SMDS_MeshQuadrangle.lxx,
-         SMDS_MeshTetrahedron.cdl, SMDS_MeshTetrahedron.cxx,
-         SMDS_MeshTetrahedron.hxx, SMDS_MeshTetrahedron.ixx,
-         SMDS_MeshTetrahedron.jxx, SMDS_MeshTetrahedron.lxx,
-         SMDS_MeshTriangle.cdl, SMDS_MeshTriangle.cxx,
-         SMDS_MeshTriangle.hxx, SMDS_MeshTriangle.ixx,
-         SMDS_MeshTriangle.jxx, SMDS_MeshTriangle.lxx,
-         SMDS_MeshVolume.cdl, SMDS_MeshVolume.cxx, SMDS_MeshVolume.hxx,
-         SMDS_MeshVolume.ixx, SMDS_MeshVolume.jxx, SMDS_MeshVolume.lxx,
-         SMDS_MeshVolumesIterator.cdl, SMDS_MeshVolumesIterator.cxx,
-         SMDS_MeshVolumesIterator.hxx, SMDS_MeshVolumesIterator.ixx,
-         SMDS_MeshVolumesIterator.jxx, SMDS_PntHasher.cdl,
-         SMDS_PntHasher.cxx, SMDS_PntHasher.hxx, SMDS_PntHasher.ixx,
-         SMDS_PntHasher.jxx, SMDS_PntHasher.lxx, SMDS_Position.cdl,
-         SMDS_Position.cxx, SMDS_Position.hxx, SMDS_Position.ixx,
-         SMDS_Position.jxx, SMDS_Position.lxx,
-         SMDS_SequenceNodeOfSequenceOfMesh.hxx,
-         SMDS_SequenceNodeOfSequenceOfMesh_0.cxx, SMDS_SequenceOfMesh.hxx,
-         SMDS_SequenceOfMesh_0.cxx, SMDS_SpacePosition.cdl,
-         SMDS_SpacePosition.cxx, SMDS_SpacePosition.hxx,
-         SMDS_SpacePosition.ixx, SMDS_SpacePosition.jxx,
-         SMDS_SpacePosition.lxx, SMDS_StdMapNode.lxx,
-         SMDS_StdMapNodeOfExtendedMap.hxx,
-         SMDS_StdMapNodeOfExtendedMap_0.cxx,
-         SMDS_StdMapNodeOfExtendedOrientedMap.hxx,
-         SMDS_StdMapNodeOfExtendedOrientedMap_0.cxx,
-         SMDS_TypeOfPosition.hxx, SMDS_VertexPosition.cdl,
-         SMDS_VertexPosition.cxx, SMDS_VertexPosition.hxx,
-         SMDS_VertexPosition.ixx, SMDS_VertexPosition.jxx: yfr : Merge
-         with v1.2
-
-2003-07-10 09:32  Yves Fricaud <yves.fricaud@opencascade.com>
-
-       * src/: DriverDAT/Makefile.in, DriverUNV/Makefile.in,
-         MEFISTO2/Makefile.in, OBJECT/Makefile.in, OBJECT/SMESH_Actor.cxx,
-         OBJECT/SMESH_Actor.h, OBJECT/SMESH_Grid.cxx, OBJECT/SMESH_Grid.h:
-         yfr : Merge with v1.2
-
-2003-07-10 09:14  Yves Fricaud <yves.fricaud@opencascade.com>
-
-       * src/Makefile.in: yfr : Merge with v1.2
-
-2003-07-10 09:00  Yves Fricaud <yves.fricaud@opencascade.com>
-
-       * src/: Driver/Document_Reader.cxx, Driver/Document_Reader.h,
-         Driver/Document_Writer.cxx, Driver/Document_Writer.h,
-         Driver/Driver_dl.cxx, Driver/Makefile.in, Driver/Mesh_Reader.cxx,
-         Driver/Mesh_Reader.h, Driver/Mesh_Writer.cxx,
-         Driver/Mesh_Writer.h, Driver/SMESHDriver.cxx,
-         Driver/SMESHDriver.h, DriverDAT/DriverDAT_R_SMDS_Mesh.cxx,
-         DriverDAT/DriverDAT_R_SMDS_Mesh.h,
-         DriverDAT/DriverDAT_R_SMESHDS_Document.cxx,
-         DriverDAT/DriverDAT_R_SMESHDS_Document.h,
-         DriverDAT/DriverDAT_R_SMESHDS_Mesh.cxx,
-         DriverDAT/DriverDAT_R_SMESHDS_Mesh.h,
-         DriverDAT/DriverDAT_W_SMDS_Mesh.cxx,
-         DriverDAT/DriverDAT_W_SMDS_Mesh.h,
-         DriverDAT/DriverDAT_W_SMESHDS_Document.cxx,
-         DriverDAT/DriverDAT_W_SMESHDS_Document.h,
-         DriverDAT/DriverDAT_W_SMESHDS_Mesh.cxx,
-         DriverDAT/DriverDAT_W_SMESHDS_Mesh.h, DriverDAT/Makefile.in,
-         DriverMED/DriverMED_R_SMDS_Mesh.cxx,
-         DriverMED/DriverMED_R_SMESHDS_Document.cxx,
-         DriverMED/DriverMED_R_SMESHDS_Mesh.cxx,
-         DriverMED/DriverMED_W_SMDS_Mesh.cxx,
-         DriverMED/DriverMED_W_SMESHDS_Document.cxx,
-         DriverMED/DriverMED_W_SMESHDS_Mesh.cxx, DriverMED/Makefile.in,
-         MEFISTO2/Makefile.in, MEFISTO2/Rn.h, MEFISTO2/aptrte.cxx,
-         MEFISTO2/aptrte.h: yfr : Merge with v1.2
-
-2003-07-10 08:12  Yves Fricaud <yves.fricaud@opencascade.com>
-
-       * src/SMESHGUI/SMESHGUI_icons.po: Initial revision
-
-2003-07-10 08:09  tag V1_2
-
-2003-07-10 08:09  Yves Fricaud <yves.fricaud@opencascade.com>
-
-       * src/: DriverMED/DriverMED_R_SMESHDS_Document.h,
-         DriverMED/DriverMED_W_SMESHDS_Document.h,
-         SMESHGUI/SMESHGUI_msg_en.po: sources v1.2
-
-2003-06-29 13:17  Paul Rascle <paul.rascle@edf.fr>
-
-       * src/SMESH_SWIG/: Makefile.in, SMESH_shared_modules.py: PR: needed
-         by merge C. CAREMOLI branch CCAR_br1
-
-2003-06-12 10:37  Paul Rascle <paul.rascle@edf.fr>
-
-       * Makefile.in: PR: avoids unnecessary compilation after
-         regeneration of SALOMEconfig.h, with gcc3.2
-
-2003-06-12 10:34  Paul Rascle <paul.rascle@edf.fr>
-
-       * src/SMESH_SWIG/SMESH_fixation.py: PR: bug on subshapes not sorted
-
-2003-05-28 16:42  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * adm_local/unix/make_commence.in: NRI : Add path fro GEOM and MED
-         idls.
-
-2003-05-28 16:26  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * idl/Makefile.in, adm_local/unix/make_commence.in,
-         adm_local/unix/make_omniorb.in, build_configure,
-         configure.in.base: NRI : Update IDL Dependancies.
-
-2003-05-28 07:20  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * bin/VERSION, Makefile.in: NRI : Add MODULE version info.
-
-2003-05-28 07:16  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * configure.in.base, adm_local/unix/config_files/check_Med.m4: NRI
-         : Add Check of MED.
-
-2003-05-26 14:21  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * adm_local/unix/config_files/check_Geom.m4, configure.in.base: NRI
-         : Add GEOM check local.
-
-2003-05-26 14:00  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * build_configure: NRI : updated aclocal.
-
-2003-05-23 11:40  tag Start-v1_1a
-
-2003-05-23 11:40  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/SMESHGUI/: SMESHGUI_AddAlgorithmDlg.cxx,
-         SMESHGUI_AddEdgeDlg.cxx, SMESHGUI_AddFaceDlg.cxx,
-         SMESHGUI_AddHypothesisDlg.cxx, SMESHGUI_AddSubMeshDlg.cxx,
-         SMESHGUI_AddVolumeDlg.cxx, SMESHGUI_DiagonalInversionDlg.cxx,
-         SMESHGUI_EdgesConnectivityDlg.cxx,
-         SMESHGUI_EditHypothesesDlg.cxx, SMESHGUI_InitMeshDlg.cxx,
-         SMESHGUI_LocalLengthDlg.cxx, SMESHGUI_MaxElementAreaDlg.cxx,
-         SMESHGUI_MaxElementVolumeDlg.cxx, SMESHGUI_MoveNodesDlg.cxx,
-         SMESHGUI_NbSegmentsDlg.cxx, SMESHGUI_NodesDlg.cxx,
-         SMESHGUI_OrientationElementsDlg.cxx,
-         SMESHGUI_RemoveElementsDlg.cxx, SMESHGUI_RemoveNodesDlg.cxx: NRI
-         : loadPixmap( "SMESH", ...) instead of "SMESHGUI".
-
-2003-05-22 09:52  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * doc/: Makefile.in, html/Makefile.in, html/INPUT/doxyfile,
-         html/INPUT/sources/Application-About.png,
-         html/INPUT/sources/Application-About1.jpg,
-         html/INPUT/sources/application.gif,
-         html/INPUT/sources/application.jpg,
-         html/INPUT/sources/bg_salomepro.gif,
-         html/INPUT/sources/doxygen.css, html/INPUT/sources/logocorp.gif,
-         html/INPUT/sources/myheader.html, html/INPUT/sources/occ.gif,
-         html/INPUT/HTML/SMESH_BasicHypothesis.html,
-         html/INPUT/HTML/SMESH_Gen.html,
-         html/INPUT/HTML/SMESH_Hypothesis.html,
-         html/INPUT/HTML/SMESH_Mesh.html: NRI : Add documentation.
-
-2003-05-22 09:51  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * configure.in.base: NRI : Add check HTML generators.
-
-2003-05-20 07:17  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/: SMESH_I/SMESH_Gen_i.cxx, SMESH_I/SMESH_test.py,
-         SMESH_I/smeshpy.py, SMESH_SWIG/SMESH_fixation.py,
-         SMESH_SWIG/SMESH_mechanic.py, SMESH_SWIG/SMESH_test0.py,
-         SMESH_SWIG/SMESH_test1.py, SMESH_SWIG/SMESH_test3.py,
-         SMESHGUI/SMESHGUI.cxx: NRI : Use GEOM instead of Geometry.
-
-2003-05-20 07:16  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * resources/SMESHCatalog.xml: NRI : Add component-username tag.
-
-2003-05-20 07:15  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * Makefile.in: NRI : Add SMESHCatalog.xml
-
-2003-05-19 14:50  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/SMESHGUI/SMESHGUI_StudyAPI.cxx: NRI : Add QAD_Desktop.h.
-
-2003-05-19 14:49  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/SMESHGUI/Makefile.in: NRI : Add GEOM includes and libs.
-
-2003-05-19 14:38  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/SMESHFiltersSelection/Makefile.in: NRI : Add KERNEL includes.
-
-2003-05-19 14:34  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/SMESH_I/Makefile.in: NRI : Change lGeometryClient by
-         lGEOMClient.
-
-2003-05-19 14:32  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/SMESH_I/Makefile.in: NRI : Add GEOM includes and libs.
-
-2003-05-19 14:11  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/: SMESH/Makefile.in, SMESHDS/Makefile.in: NRI : Add KERNEL
-         includes and libs.
-
-2003-05-19 14:09  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/: DriverDAT/Makefile.in, DriverMED/Makefile.in,
-         DriverUNV/Makefile.in: NRI : Add KERNEL includes.
-
-2003-05-19 14:08  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * idl/Makefile.in: NRI : Add MED.idl
-
-2003-05-19 14:01  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/: SMESH_SWIG/Makefile.in, SMESH_SWIG/SMESH_fixation.py,
-         SMESH_SWIG/SMESH_mechanic.py, SMESH_SWIG/SMESH_test0.py,
-         SMESH_SWIG/SMESH_test1.py, SMESH_SWIG/SMESH_test2.py,
-         SMESH_SWIG/SMESH_test3.py, SMESH_SWIG/batchmode_smesh.py,
-         SMESH_SWIG/libSMESH_Swig.i, Makefile.in,
-         SMESHFiltersSelection/Handle_SMESH_TypeFilter.hxx,
-         SMESHFiltersSelection/Makefile.in,
-         SMESHFiltersSelection/SMESH_Type.h,
-         SMESHFiltersSelection/SMESH_TypeFilter.cxx,
-         SMESHFiltersSelection/SMESH_TypeFilter.hxx,
-         SMESHFiltersSelection/SMESH_TypeFilter.ixx,
-         SMESHFiltersSelection/SMESH_TypeFilter.jxx, MEFISTO2/Makefile.in,
-         MEFISTO2/Rn.h, MEFISTO2/aptrte.cxx, MEFISTO2/aptrte.h,
-         MEFISTO2/areteideale.f, MEFISTO2/trte.f, OBJECT/Makefile.in,
-         OBJECT/SMESH_Actor.cxx, OBJECT/SMESH_Actor.h,
-         OBJECT/SMESH_Grid.cxx, OBJECT/SMESH_Grid.h,
-         Driver/Document_Reader.cxx, Driver/Document_Reader.h,
-         Driver/Document_Writer.cxx, Driver/Document_Writer.h,
-         Driver/Driver_dl.cxx, Driver/Makefile.in, Driver/Mesh_Reader.cxx,
-         Driver/Mesh_Reader.h, Driver/Mesh_Writer.cxx,
-         Driver/Mesh_Writer.h, Driver/SMESHDriver.cxx,
-         Driver/SMESHDriver.h: NRI : First integration.
-
-2003-05-19 13:48  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/: SMDS/Handle_SMDSControl_BoundaryEdges.hxx,
-         SMDS/Handle_SMDSControl_BoundaryFaces.hxx,
-         SMDS/Handle_SMDSControl_MeshBoundary.hxx,
-         SMDS/Handle_SMDS_DataMapNodeOfDataMapOfIntegerMeshElement.hxx,
-         SMDS/Handle_SMDS_DataMapNodeOfDataMapOfPntInteger.hxx,
-         SMDS/Handle_SMDS_EdgePosition.hxx,
-         SMDS/Handle_SMDS_FacePosition.hxx,
-         SMDS/Handle_SMDS_HSequenceOfMesh.hxx,
-         SMDS/Handle_SMDS_ListNodeOfListOfMesh.hxx,
-         SMDS/Handle_SMDS_ListNodeOfListOfMeshElement.hxx,
-         SMDS/Handle_SMDS_ListNodeOfListOfMeshGroup.hxx,
-         SMDS/Handle_SMDS_Mesh.hxx, SMDS/Handle_SMDS_MeshEdge.hxx,
-         SMDS/Handle_SMDS_MeshElement.hxx,
-         SMDS/Handle_SMDS_MeshElementIDFactory.hxx,
-         SMDS/Handle_SMDS_MeshFace.hxx, SMDS/Handle_SMDS_MeshGroup.hxx,
-         SMDS/Handle_SMDS_MeshHexahedron.hxx,
-         SMDS/Handle_SMDS_MeshIDFactory.hxx,
-         SMDS/Handle_SMDS_MeshNode.hxx,
-         SMDS/Handle_SMDS_MeshNodeIDFactory.hxx,
-         SMDS/Handle_SMDS_MeshObject.hxx, SMDS/Handle_SMDS_MeshPrism.hxx,
-         SMDS/Handle_SMDS_MeshPyramid.hxx,
-         SMDS/Handle_SMDS_MeshQuadrangle.hxx,
-         SMDS/Handle_SMDS_MeshTetrahedron.hxx,
-         SMDS/Handle_SMDS_MeshTriangle.hxx,
-         SMDS/Handle_SMDS_MeshVolume.hxx, SMDS/Handle_SMDS_Position.hxx,
-         SMDS/Handle_SMDS_SequenceNodeOfSequenceOfMesh.hxx,
-         SMDS/Handle_SMDS_SpacePosition.hxx,
-         SMDS/Handle_SMDS_StdMapNodeOfExtendedMap.hxx,
-         SMDS/Handle_SMDS_StdMapNodeOfExtendedOrientedMap.hxx,
-         SMDS/Handle_SMDS_VertexPosition.hxx, SMDS/Makefile.in,
-         SMDS/SMDS.cdl, SMDS/SMDSAbs.cdl, SMDS/SMDSAbs_ElementType.hxx,
-         SMDS/SMDSControl.cdl, SMDS/SMDSControl.cxx, SMDS/SMDSControl.hxx,
-         SMDS/SMDSControl.ixx, SMDS/SMDSControl.jxx,
-         SMDS/SMDSControl_BoundaryEdges.cdl,
-         SMDS/SMDSControl_BoundaryEdges.cxx,
-         SMDS/SMDSControl_BoundaryEdges.hxx,
-         SMDS/SMDSControl_BoundaryEdges.ixx,
-         SMDS/SMDSControl_BoundaryEdges.jxx,
-         SMDS/SMDSControl_BoundaryFaces.cdl,
-         SMDS/SMDSControl_BoundaryFaces.cxx,
-         SMDS/SMDSControl_BoundaryFaces.hxx,
-         SMDS/SMDSControl_BoundaryFaces.ixx,
-         SMDS/SMDSControl_BoundaryFaces.jxx,
-         SMDS/SMDSControl_MeshBoundary.cdl,
-         SMDS/SMDSControl_MeshBoundary.cxx,
-         SMDS/SMDSControl_MeshBoundary.hxx,
-         SMDS/SMDSControl_MeshBoundary.ixx,
-         SMDS/SMDSControl_MeshBoundary.jxx, SMDS/SMDSEdit.cdl,
-         SMDS/SMDSEdit_Transform.cdl, SMDS/SMDSEdit_Transform.cxx,
-         SMDS/SMDSEdit_Transform.hxx, SMDS/SMDSEdit_Transform.ixx,
-         SMDS/SMDSEdit_Transform.jxx, SMDS/SMDS_BasicMap.lxx,
-         SMDS/SMDS_BasicMapIterator.lxx,
-         SMDS/SMDS_DataMapIteratorOfDataMapOfIntegerMeshElement.hxx,
-         SMDS/SMDS_DataMapIteratorOfDataMapOfIntegerMeshElement_0.cxx,
-         SMDS/SMDS_DataMapIteratorOfDataMapOfPntInteger.hxx,
-         SMDS/SMDS_DataMapIteratorOfDataMapOfPntInteger_0.cxx,
-         SMDS/SMDS_DataMapNodeOfDataMapOfIntegerMeshElement.hxx,
-         SMDS/SMDS_DataMapNodeOfDataMapOfIntegerMeshElement_0.cxx,
-         SMDS/SMDS_DataMapNodeOfDataMapOfPntInteger.hxx,
-         SMDS/SMDS_DataMapNodeOfDataMapOfPntInteger_0.cxx,
-         SMDS/SMDS_DataMapOfIntegerMeshElement.hxx,
-         SMDS/SMDS_DataMapOfIntegerMeshElement_0.cxx,
-         SMDS/SMDS_DataMapOfPntInteger.hxx,
-         SMDS/SMDS_DataMapOfPntInteger_0.cxx, SMDS/SMDS_EdgePosition.cdl,
-         SMDS/SMDS_EdgePosition.cxx, SMDS/SMDS_EdgePosition.hxx,
-         SMDS/SMDS_EdgePosition.ixx, SMDS/SMDS_EdgePosition.jxx,
-         SMDS/SMDS_EdgePosition.lxx, SMDS/SMDS_ExtendedMap.hxx,
-         SMDS/SMDS_ExtendedMap_0.cxx, SMDS/SMDS_ExtendedOrientedMap.hxx,
-         SMDS/SMDS_ExtendedOrientedMap_0.cxx, SMDS/SMDS_FacePosition.cdl,
-         SMDS/SMDS_FacePosition.cxx, SMDS/SMDS_FacePosition.hxx,
-         SMDS/SMDS_FacePosition.ixx, SMDS/SMDS_FacePosition.jxx,
-         SMDS/SMDS_FacePosition.lxx, SMDS/SMDS_HSequenceOfMesh.hxx,
-         SMDS/SMDS_HSequenceOfMesh_0.cxx,
-         SMDS/SMDS_ListIteratorOfListOfMesh.hxx,
-         SMDS/SMDS_ListIteratorOfListOfMeshElement.hxx,
-         SMDS/SMDS_ListIteratorOfListOfMeshElement_0.cxx,
-         SMDS/SMDS_ListIteratorOfListOfMeshGroup.hxx,
-         SMDS/SMDS_ListIteratorOfListOfMeshGroup_0.cxx,
-         SMDS/SMDS_ListIteratorOfListOfMesh_0.cxx,
-         SMDS/SMDS_ListNodeOfListOfMesh.hxx,
-         SMDS/SMDS_ListNodeOfListOfMeshElement.hxx,
-         SMDS/SMDS_ListNodeOfListOfMeshElement_0.cxx,
-         SMDS/SMDS_ListNodeOfListOfMeshGroup.hxx,
-         SMDS/SMDS_ListNodeOfListOfMeshGroup_0.cxx,
-         SMDS/SMDS_ListNodeOfListOfMesh_0.cxx, SMDS/SMDS_ListOfMesh.hxx,
-         SMDS/SMDS_ListOfMeshElement.hxx,
-         SMDS/SMDS_ListOfMeshElement_0.cxx, SMDS/SMDS_ListOfMeshGroup.hxx,
-         SMDS/SMDS_ListOfMeshGroup_0.cxx, SMDS/SMDS_ListOfMesh_0.cxx,
-         SMDS/SMDS_Map.gxx, SMDS/SMDS_MapHasher.gxx,
-         SMDS/SMDS_MapIterator.gxx,
-         SMDS/SMDS_MapIteratorOfExtendedMap.hxx,
-         SMDS/SMDS_MapIteratorOfExtendedMap_0.cxx,
-         SMDS/SMDS_MapIteratorOfExtendedOrientedMap.hxx,
-         SMDS/SMDS_MapIteratorOfExtendedOrientedMap_0.cxx,
-         SMDS/SMDS_MapNode.lxx, SMDS/SMDS_MapOfMeshElement.cdl,
-         SMDS/SMDS_MapOfMeshElement.cxx, SMDS/SMDS_MapOfMeshElement.hxx,
-         SMDS/SMDS_MapOfMeshElement.ixx, SMDS/SMDS_MapOfMeshElement.jxx,
-         SMDS/SMDS_MapOfMeshElement.lxx,
-         SMDS/SMDS_MapOfMeshOrientedElement.cdl,
-         SMDS/SMDS_MapOfMeshOrientedElement.cxx,
-         SMDS/SMDS_MapOfMeshOrientedElement.hxx,
-         SMDS/SMDS_MapOfMeshOrientedElement.ixx,
-         SMDS/SMDS_MapOfMeshOrientedElement.jxx,
-         SMDS/SMDS_MapOfMeshOrientedElement.lxx, SMDS/SMDS_Mesh.cdl,
-         SMDS/SMDS_Mesh.cxx, SMDS/SMDS_Mesh.hxx, SMDS/SMDS_Mesh.ixx,
-         SMDS/SMDS_Mesh.jxx, SMDS/SMDS_Mesh.lxx, SMDS/SMDS_MeshEdge.cdl,
-         SMDS/SMDS_MeshEdge.cxx, SMDS/SMDS_MeshEdge.hxx,
-         SMDS/SMDS_MeshEdge.ixx, SMDS/SMDS_MeshEdge.jxx,
-         SMDS/SMDS_MeshEdge.lxx, SMDS/SMDS_MeshEdgesIterator.cdl,
-         SMDS/SMDS_MeshEdgesIterator.cxx, SMDS/SMDS_MeshEdgesIterator.hxx,
-         SMDS/SMDS_MeshEdgesIterator.ixx, SMDS/SMDS_MeshEdgesIterator.jxx,
-         SMDS/SMDS_MeshElement.cdl, SMDS/SMDS_MeshElement.cxx,
-         SMDS/SMDS_MeshElement.hxx, SMDS/SMDS_MeshElement.ixx,
-         SMDS/SMDS_MeshElement.jxx, SMDS/SMDS_MeshElement.lxx,
-         SMDS/SMDS_MeshElementIDFactory.cdl,
-         SMDS/SMDS_MeshElementIDFactory.cxx,
-         SMDS/SMDS_MeshElementIDFactory.hxx,
-         SMDS/SMDS_MeshElementIDFactory.ixx,
-         SMDS/SMDS_MeshElementIDFactory.jxx,
-         SMDS/SMDS_MeshElementIDFactory.lxx,
-         SMDS/SMDS_MeshElementMapHasher.cdl,
-         SMDS/SMDS_MeshElementMapHasher.cxx,
-         SMDS/SMDS_MeshElementMapHasher.hxx,
-         SMDS/SMDS_MeshElementMapHasher.ixx,
-         SMDS/SMDS_MeshElementMapHasher.jxx,
-         SMDS/SMDS_MeshElementMapHasher.lxx,
-         SMDS/SMDS_MeshElementsIterator.cdl,
-         SMDS/SMDS_MeshElementsIterator.cxx,
-         SMDS/SMDS_MeshElementsIterator.hxx,
-         SMDS/SMDS_MeshElementsIterator.ixx,
-         SMDS/SMDS_MeshElementsIterator.jxx,
-         SMDS/SMDS_MeshElementsIterator.lxx, SMDS/SMDS_MeshFace.cdl,
-         SMDS/SMDS_MeshFace.cxx, SMDS/SMDS_MeshFace.hxx,
-         SMDS/SMDS_MeshFace.ixx, SMDS/SMDS_MeshFace.jxx,
-         SMDS/SMDS_MeshFace.lxx, SMDS/SMDS_MeshFacesIterator.cdl,
-         SMDS/SMDS_MeshFacesIterator.cxx, SMDS/SMDS_MeshFacesIterator.hxx,
-         SMDS/SMDS_MeshFacesIterator.ixx, SMDS/SMDS_MeshFacesIterator.jxx,
-         SMDS/SMDS_MeshGroup.cdl, SMDS/SMDS_MeshGroup.cxx,
-         SMDS/SMDS_MeshGroup.hxx, SMDS/SMDS_MeshGroup.ixx,
-         SMDS/SMDS_MeshGroup.jxx, SMDS/SMDS_MeshGroup.lxx,
-         SMDS/SMDS_MeshHexahedron.cdl, SMDS/SMDS_MeshHexahedron.cxx,
-         SMDS/SMDS_MeshHexahedron.hxx, SMDS/SMDS_MeshHexahedron.ixx,
-         SMDS/SMDS_MeshHexahedron.jxx, SMDS/SMDS_MeshHexahedron.lxx,
-         SMDS/SMDS_MeshIDFactory.cdl, SMDS/SMDS_MeshIDFactory.cxx,
-         SMDS/SMDS_MeshIDFactory.ixx, SMDS/SMDS_MeshIDFactory.jxx,
-         SMDS/SMDS_MeshIDFactory.lxx, SMDS/SMDS_MeshNode.cdl,
-         SMDS/SMDS_MeshNode.cxx, SMDS/SMDS_MeshNode.hxx,
-         SMDS/SMDS_MeshNode.ixx, SMDS/SMDS_MeshNode.jxx,
-         SMDS/SMDS_MeshNode.lxx, SMDS/SMDS_MeshNodeIDFactory.cdl,
-         SMDS/SMDS_MeshNodeIDFactory.cxx, SMDS/SMDS_MeshNodeIDFactory.hxx,
-         SMDS/SMDS_MeshNodeIDFactory.ixx, SMDS/SMDS_MeshNodeIDFactory.jxx,
-         SMDS/SMDS_MeshNodeIDFactory.lxx, SMDS/SMDS_MeshNodesIterator.cdl,
-         SMDS/SMDS_MeshNodesIterator.cxx, SMDS/SMDS_MeshNodesIterator.hxx,
-         SMDS/SMDS_MeshNodesIterator.ixx, SMDS/SMDS_MeshNodesIterator.jxx,
-         SMDS/SMDS_MeshObject.cdl, SMDS/SMDS_MeshObject.cxx,
-         SMDS/SMDS_MeshObject.hxx, SMDS/SMDS_MeshObject.ixx,
-         SMDS/SMDS_MeshObject.jxx,
-         SMDS/SMDS_MeshOrientedElementMapHasher.cdl,
-         SMDS/SMDS_MeshOrientedElementMapHasher.cxx,
-         SMDS/SMDS_MeshOrientedElementMapHasher.hxx,
-         SMDS/SMDS_MeshOrientedElementMapHasher.ixx,
-         SMDS/SMDS_MeshOrientedElementMapHasher.jxx,
-         SMDS/SMDS_MeshOrientedElementMapHasher.lxx,
-         SMDS/SMDS_MeshPrism.cdl, SMDS/SMDS_MeshPrism.cxx,
-         SMDS/SMDS_MeshPrism.hxx, SMDS/SMDS_MeshPrism.ixx,
-         SMDS/SMDS_MeshPrism.jxx, SMDS/SMDS_MeshPrism.lxx,
-         SMDS/SMDS_MeshPyramid.cdl, SMDS/SMDS_MeshPyramid.cxx,
-         SMDS/SMDS_MeshPyramid.hxx, SMDS/SMDS_MeshPyramid.ixx,
-         SMDS/SMDS_MeshPyramid.jxx, SMDS/SMDS_MeshPyramid.lxx,
-         SMDS/SMDS_MeshQuadrangle.cdl, SMDS/SMDS_MeshQuadrangle.cxx,
-         SMDS/SMDS_MeshQuadrangle.hxx, SMDS/SMDS_MeshQuadrangle.ixx,
-         SMDS/SMDS_MeshQuadrangle.jxx, SMDS/SMDS_MeshQuadrangle.lxx,
-         SMDS/SMDS_MeshTetrahedron.cdl, SMDS/SMDS_MeshTetrahedron.cxx,
-         SMDS/SMDS_MeshTetrahedron.hxx, SMDS/SMDS_MeshTetrahedron.ixx,
-         SMDS/SMDS_MeshTetrahedron.jxx, SMDS/SMDS_MeshTetrahedron.lxx,
-         SMDS/SMDS_MeshTriangle.cdl, SMDS/SMDS_MeshTriangle.cxx,
-         SMDS/SMDS_MeshTriangle.hxx, SMDS/SMDS_MeshTriangle.ixx,
-         SMDS/SMDS_MeshTriangle.jxx, SMDS/SMDS_MeshTriangle.lxx,
-         SMDS/SMDS_MeshVolume.cdl, SMDS/SMDS_MeshVolume.cxx,
-         SMDS/SMDS_MeshVolume.hxx, SMDS/SMDS_MeshVolume.ixx,
-         SMDS/SMDS_MeshVolume.jxx, SMDS/SMDS_MeshVolume.lxx,
-         SMDS/SMDS_MeshVolumesIterator.cdl,
-         SMDS/SMDS_MeshVolumesIterator.cxx,
-         SMDS/SMDS_MeshVolumesIterator.hxx,
-         SMDS/SMDS_MeshVolumesIterator.ixx,
-         SMDS/SMDS_MeshVolumesIterator.jxx, SMDS/SMDS_PntHasher.cdl,
-         SMDS/SMDS_PntHasher.cxx, SMDS/SMDS_PntHasher.hxx,
-         SMDS/SMDS_PntHasher.ixx, SMDS/SMDS_PntHasher.jxx,
-         SMDS/SMDS_PntHasher.lxx, SMDS/SMDS_Position.cdl,
-         SMDS/SMDS_Position.cxx, SMDS/SMDS_Position.hxx,
-         SMDS/SMDS_Position.ixx, SMDS/SMDS_Position.jxx,
-         SMDS/SMDS_Position.lxx,
-         SMDS/SMDS_SequenceNodeOfSequenceOfMesh.hxx,
-         SMDS/SMDS_SequenceNodeOfSequenceOfMesh_0.cxx,
-         SMDS/SMDS_SequenceOfMesh.hxx, SMDS/SMDS_SequenceOfMesh_0.cxx,
-         SMDS/SMDS_SpacePosition.cdl, SMDS/SMDS_SpacePosition.cxx,
-         SMDS/SMDS_SpacePosition.hxx, SMDS/SMDS_SpacePosition.ixx,
-         SMDS/SMDS_SpacePosition.jxx, SMDS/SMDS_SpacePosition.lxx,
-         SMDS/SMDS_StdMapNode.gxx, SMDS/SMDS_StdMapNode.lxx,
-         SMDS/SMDS_StdMapNodeOfExtendedMap.hxx,
-         SMDS/SMDS_StdMapNodeOfExtendedMap_0.cxx,
-         SMDS/SMDS_StdMapNodeOfExtendedOrientedMap.hxx,
-         SMDS/SMDS_StdMapNodeOfExtendedOrientedMap_0.cxx,
-         SMDS/SMDS_TypeOfPosition.hxx, SMDS/SMDS_VertexPosition.cdl,
-         SMDS/SMDS_VertexPosition.cxx, SMDS/SMDS_VertexPosition.hxx,
-         SMDS/SMDS_VertexPosition.ixx, SMDS/SMDS_VertexPosition.jxx,
-         SMDS/SMDS_MeshIDFactory.hxx, SMESH_I/Makefile.in,
-         SMESH_I/SMESH_1D_Algo_i.cxx, SMESH_I/SMESH_1D_Algo_i.hxx,
-         SMESH_I/SMESH_2D_Algo_i.cxx, SMESH_I/SMESH_2D_Algo_i.hxx,
-         SMESH_I/SMESH_3D_Algo_i.cxx, SMESH_I/SMESH_3D_Algo_i.hxx,
-         SMESH_I/SMESH_Algo_i.cxx, SMESH_I/SMESH_Algo_i.hxx,
-         SMESH_I/SMESH_Gen_i.cxx, SMESH_I/SMESH_Gen_i.hxx,
-         SMESH_I/SMESH_Hexa_3D_i.cxx, SMESH_I/SMESH_Hexa_3D_i.hxx,
-         SMESH_I/SMESH_HypothesisFactory_i.cxx,
-         SMESH_I/SMESH_HypothesisFactory_i.hxx,
-         SMESH_I/SMESH_Hypothesis_i.cxx, SMESH_I/SMESH_Hypothesis_i.hxx,
-         SMESH_I/SMESH_LocalLength_i.cxx, SMESH_I/SMESH_LocalLength_i.hxx,
-         SMESH_I/SMESH_MEDFamily_i.cxx, SMESH_I/SMESH_MEDFamily_i.hxx,
-         SMESH_I/SMESH_MEDMesh_i.cxx, SMESH_I/SMESH_MEDMesh_i.hxx,
-         SMESH_I/SMESH_MEDSupport_i.cxx, SMESH_I/SMESH_MEDSupport_i.hxx,
-         SMESH_I/SMESH_MEFISTO_2D_i.cxx, SMESH_I/SMESH_MEFISTO_2D_i.hxx,
-         SMESH_I/SMESH_MaxElementArea_i.cxx,
-         SMESH_I/SMESH_MaxElementArea_i.hxx,
-         SMESH_I/SMESH_MaxElementVolume_i.cxx,
-         SMESH_I/SMESH_MaxElementVolume_i.hxx,
-         SMESH_I/SMESH_MeshEditor_i.cxx, SMESH_I/SMESH_MeshEditor_i.hxx,
-         SMESH_I/SMESH_Mesh_i.cxx, SMESH_I/SMESH_Mesh_i.hxx,
-         SMESH_I/SMESH_NumberOfSegments_i.cxx,
-         SMESH_I/SMESH_NumberOfSegments_i.hxx,
-         SMESH_I/SMESH_Quadrangle_2D_i.cxx,
-         SMESH_I/SMESH_Quadrangle_2D_i.hxx,
-         SMESH_I/SMESH_Regular_1D_i.cxx, SMESH_I/SMESH_Regular_1D_i.hxx,
-         SMESH_I/SMESH_subMesh_i.cxx, SMESH_I/SMESH_subMesh_i.hxx,
-         SMESH_I/SMESH_test.py, SMESH_I/SMESH_topo.cxx,
-         SMESH_I/SMESH_topo.hxx, SMESH_I/smeshpy.py, SMESH_I/sstream,
-         SMESHGUI/Makefile.in, SMESHGUI/SMESHGUI.cxx, SMESHGUI/SMESHGUI.h,
-         SMESHGUI/SMESHGUI_AddAlgorithmDlg.cxx,
-         SMESHGUI/SMESHGUI_AddAlgorithmDlg.h,
-         SMESHGUI/SMESHGUI_AddEdgeDlg.cxx, SMESHGUI/SMESHGUI_AddEdgeDlg.h,
-         SMESHGUI/SMESHGUI_AddFaceDlg.cxx, SMESHGUI/SMESHGUI_AddFaceDlg.h,
-         SMESHGUI/SMESHGUI_AddHypothesisDlg.cxx,
-         SMESHGUI/SMESHGUI_AddHypothesisDlg.h,
-         SMESHGUI/SMESHGUI_AddSubMeshDlg.cxx,
-         SMESHGUI/SMESHGUI_AddSubMeshDlg.h,
-         SMESHGUI/SMESHGUI_AddVolumeDlg.cxx,
-         SMESHGUI/SMESHGUI_AddVolumeDlg.h,
-         SMESHGUI/SMESHGUI_ComputeScalarValue.cxx,
-         SMESHGUI/SMESHGUI_ComputeScalarValue.h,
-         SMESHGUI/SMESHGUI_DiagonalInversionDlg.cxx,
-         SMESHGUI/SMESHGUI_DiagonalInversionDlg.h,
-         SMESHGUI/SMESHGUI_EdgesConnectivityDlg.cxx,
-         SMESHGUI/SMESHGUI_EdgesConnectivityDlg.h,
-         SMESHGUI/SMESHGUI_EditHypothesesDlg.cxx,
-         SMESHGUI/SMESHGUI_EditHypothesesDlg.h,
-         SMESHGUI/SMESHGUI_EditScalarBarDlg.cxx,
-         SMESHGUI/SMESHGUI_EditScalarBarDlg.h,
-         SMESHGUI/SMESHGUI_InitMeshDlg.cxx,
-         SMESHGUI/SMESHGUI_InitMeshDlg.h,
-         SMESHGUI/SMESHGUI_LocalLengthDlg.cxx,
-         SMESHGUI/SMESHGUI_LocalLengthDlg.h,
-         SMESHGUI/SMESHGUI_MaxElementAreaDlg.cxx,
-         SMESHGUI/SMESHGUI_MaxElementAreaDlg.h,
-         SMESHGUI/SMESHGUI_MaxElementVolumeDlg.cxx,
-         SMESHGUI/SMESHGUI_MaxElementVolumeDlg.h,
-         SMESHGUI/SMESHGUI_MeshInfosDlg.cxx,
-         SMESHGUI/SMESHGUI_MeshInfosDlg.h,
-         SMESHGUI/SMESHGUI_MoveNodesDlg.cxx,
-         SMESHGUI/SMESHGUI_MoveNodesDlg.h,
-         SMESHGUI/SMESHGUI_NbSegmentsDlg.cxx,
-         SMESHGUI/SMESHGUI_NbSegmentsDlg.h,
-         SMESHGUI/SMESHGUI_NodesDlg.cxx, SMESHGUI/SMESHGUI_NodesDlg.h,
-         SMESHGUI/SMESHGUI_OrientationElementsDlg.cxx,
-         SMESHGUI/SMESHGUI_OrientationElementsDlg.h,
-         SMESHGUI/SMESHGUI_Preferences_ColorDlg.cxx,
-         SMESHGUI/SMESHGUI_Preferences_ColorDlg.h,
-         SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.cxx,
-         SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.h,
-         SMESHGUI/SMESHGUI_RemoveElementsDlg.cxx,
-         SMESHGUI/SMESHGUI_RemoveElementsDlg.h,
-         SMESHGUI/SMESHGUI_RemoveNodesDlg.cxx,
-         SMESHGUI/SMESHGUI_RemoveNodesDlg.h,
-         SMESHGUI/SMESHGUI_SpinBox.cxx, SMESHGUI/SMESHGUI_SpinBox.h,
-         SMESHGUI/SMESHGUI_StudyAPI.cxx, SMESHGUI/SMESHGUI_StudyAPI.h,
-         SMESHGUI/SMESHGUI_Swig.cxx, SMESHGUI/SMESHGUI_Swig.hxx,
-         SMESHGUI/SMESHGUI_Swig.i, SMESHGUI/SMESHGUI_TransparencyDlg.cxx,
-         SMESHGUI/SMESHGUI_TransparencyDlg.h,
-         SMESHGUI/SMESHGUI_aParameterDlg.cxx,
-         SMESHGUI/SMESHGUI_aParameterDlg.h, SMESHGUI/SMESH_icons.po,
-         SMESHGUI/SMESH_msg_en.po: NRI : First integration.
-
-2003-05-19 13:18  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * src/: SMESH/Makefile.in, SMESH/SMESH_1D_Algo.cxx,
-         SMESH/SMESH_1D_Algo.hxx, SMESH/SMESH_2D_Algo.cxx,
-         SMESH/SMESH_2D_Algo.hxx, SMESH/SMESH_3D_Algo.cxx,
-         SMESH/SMESH_3D_Algo.hxx, SMESH/SMESH_Algo.cxx,
-         SMESH/SMESH_Algo.hxx, SMESH/SMESH_Gen.cxx, SMESH/SMESH_Gen.hxx,
-         SMESH/SMESH_Hexa_3D.cxx, SMESH/SMESH_Hexa_3D.hxx,
-         SMESH/SMESH_Hypothesis.cxx, SMESH/SMESH_Hypothesis.hxx,
-         SMESH/SMESH_HypothesisCreator.hxx,
-         SMESH/SMESH_HypothesisFactory.cxx,
-         SMESH/SMESH_HypothesisFactory.hxx,
-         SMESH/SMESH_LengthFromEdges.cxx, SMESH/SMESH_LengthFromEdges.hxx,
-         SMESH/SMESH_LocalLength.cxx, SMESH/SMESH_LocalLength.hxx,
-         SMESH/SMESH_MEFISTO_2D.cxx, SMESH/SMESH_MEFISTO_2D.hxx,
-         SMESH/SMESH_MaxElementArea.cxx, SMESH/SMESH_MaxElementArea.hxx,
-         SMESH/SMESH_MaxElementVolume.cxx,
-         SMESH/SMESH_MaxElementVolume.hxx, SMESH/SMESH_Mesh.cxx,
-         SMESH/SMESH_Mesh.hxx, SMESH/SMESH_NumberOfSegments.cxx,
-         SMESH/SMESH_NumberOfSegments.hxx, SMESH/SMESH_Quadrangle_2D.cxx,
-         SMESH/SMESH_Quadrangle_2D.hxx, SMESH/SMESH_Regular_1D.cxx,
-         SMESH/SMESH_Regular_1D.hxx, SMESH/SMESH_subMesh.cxx,
-         SMESH/SMESH_subMesh.hxx, SMESHDS/Handle_SMESHDS_Command.hxx,
-         SMESHDS/Handle_SMESHDS_DataMapNodeOfDataMapOfIntegerMesh.hxx,
-         SMESHDS/Handle_SMESHDS_DataMapNodeOfDataMapOfIntegerPtrHypothesis.hxx,
-         SMESHDS/Handle_SMESHDS_DataMapNodeOfDataMapOfIntegerSubMesh.hxx,
-         SMESHDS/Handle_SMESHDS_ListNodeOfListOfCommand.hxx,
-         SMESHDS/Handle_SMESHDS_Mesh.hxx,
-         SMESHDS/Handle_SMESHDS_Script.hxx, SMESHDS/Makefile.in,
-         SMESHDS/SMESHDS_Command.cdl, SMESHDS/SMESHDS_Command.cxx,
-         SMESHDS/SMESHDS_Command.ixx, SMESHDS/SMESHDS_Command.jxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfIntegerMesh_0.cxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfIntegerPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfIntegerSubMesh.hxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfIntegerSubMesh_0.cxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfShapeListOfPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfShapeSubMesh.hxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfIntegerMesh.hxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfIntegerPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfIntegerSubMesh.hxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfIntegerSubMesh_0.cxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfShapeListOfPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfShapeListOfPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfShapeSubMesh.hxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfShapeSubMesh_0.cxx,
-         SMESHDS/SMESHDS_DataMapOfIntegerMesh.hxx,
-         SMESHDS/SMESHDS_DataMapOfIntegerMesh_0.cxx,
-         SMESHDS/SMESHDS_DataMapOfIntegerPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_DataMapOfIntegerPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_DataMapOfIntegerSubMesh.hxx,
-         SMESHDS/SMESHDS_DataMapOfIntegerSubMesh_0.cxx,
-         SMESHDS/SMESHDS_DataMapOfShapeSubMesh.hxx,
-         SMESHDS/SMESHDS_DataMapOfShapeSubMesh_0.cxx,
-         SMESHDS/SMESHDS_Document.cdl, SMESHDS/SMESHDS_Document.hxx,
-         SMESHDS/SMESHDS_Document.ixx, SMESHDS/SMESHDS_Hypothesis.hxx,
-         SMESHDS/SMESHDS_ListIteratorOfListOfAsciiString_0.cxx,
-         SMESHDS/SMESHDS_ListIteratorOfListOfCommand.hxx,
-         SMESHDS/SMESHDS_ListIteratorOfListOfCommand_0.cxx,
-         SMESHDS/SMESHDS_ListIteratorOfListOfPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_ListNodeOfListOfAsciiString.hxx,
-         SMESHDS/SMESHDS_ListNodeOfListOfAsciiString_0.cxx,
-         SMESHDS/SMESHDS_ListNodeOfListOfCommand.hxx,
-         SMESHDS/SMESHDS_ListNodeOfListOfCommand_0.cxx,
-         SMESHDS/SMESHDS_ListNodeOfListOfPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_ListOfCommand.hxx,
-         SMESHDS/SMESHDS_ListOfPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_ListOfPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_Mesh.cdl, SMESHDS/SMESHDS_Mesh.hxx,
-         SMESHDS/SMESHDS_Script.cdl, SMESHDS/SMESHDS_Script.cxx,
-         SMESHDS/SMESHDS_Script.hxx, SMESHDS/SMESHDS_Script.ixx,
-         SMESHDS/SMESHDS_Script.jxx, SMESHDS/SMESHDS_SubMesh.cdl,
-         SMESHDS/SMESHDS_SubMesh.cxx, SMESHDS/SMESHDS_SubMesh.hxx,
-         SMESHDS/SMESHDS_SubMesh.ixx, SMESHDS/SMESHDS_SubMesh.jxx,
-         SMESHDS/Handle_SMESHDS_DataMapNodeOfDataMapOfShapeListOfPtrHypothesis.hxx,
-         SMESHDS/Handle_SMESHDS_DataMapNodeOfDataMapOfShapeSubMesh.hxx,
-         SMESHDS/Handle_SMESHDS_Document.hxx,
-         SMESHDS/Handle_SMESHDS_ListNodeOfListOfAsciiString.hxx,
-         SMESHDS/Handle_SMESHDS_ListNodeOfListOfPtrHypothesis.hxx,
-         SMESHDS/Handle_SMESHDS_SubMesh.hxx, SMESHDS/SMESHDS.cdl,
-         SMESHDS/SMESHDS_Command.hxx, SMESHDS/SMESHDS_CommandType.hxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfIntegerMesh.hxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfIntegerPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfShapeListOfPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_DataMapIteratorOfDataMapOfShapeSubMesh_0.cxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfIntegerMesh_0.cxx,
-         SMESHDS/SMESHDS_DataMapNodeOfDataMapOfIntegerPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_DataMapOfShapeListOfPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_DataMapOfShapeListOfPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_Document.cxx, SMESHDS/SMESHDS_Document.jxx,
-         SMESHDS/SMESHDS_Hypothesis.cxx,
-         SMESHDS/SMESHDS_ListIteratorOfListOfAsciiString.hxx,
-         SMESHDS/SMESHDS_ListIteratorOfListOfPtrHypothesis.hxx,
-         SMESHDS/SMESHDS_ListNodeOfListOfPtrHypothesis_0.cxx,
-         SMESHDS/SMESHDS_ListOfAsciiString.hxx,
-         SMESHDS/SMESHDS_ListOfAsciiString_0.cxx,
-         SMESHDS/SMESHDS_ListOfCommand_0.cxx, SMESHDS/SMESHDS_Mesh.cxx,
-         SMESHDS/SMESHDS_Mesh.ixx, SMESHDS/SMESHDS_Mesh.jxx,
-         SMESHDS/SMESHDS_PtrHypothesis.hxx: NRI : First integration.
-
-2003-05-19 13:03  Nicolas Rejneri <nicolas.rejneri@opencascade.com>
-
-       * Makefile.in, build_configure, configure.in.base,
-         resources/ModuleMesh.png, resources/SMESHCatalog.xml,
-         resources/SMESH_en.xml, resources/SMESH_fr.xml,
-         resources/delete.png, resources/mesh.png,
-         resources/mesh_add_sub.png, resources/mesh_algo_hexa.png,
-         resources/mesh_algo_mefisto.png, resources/mesh_algo_quad.png,
-         resources/mesh_algo_regular.png, resources/mesh_angle.png,
-         resources/mesh_area.png, resources/mesh_aspect.png,
-         resources/mesh_compute.png, resources/mesh_connectivity.png,
-         resources/mesh_diagonal.png, resources/mesh_edit.png,
-         resources/mesh_hexa.png, resources/mesh_hexa_n.png,
-         resources/mesh_hypo_area.png, resources/mesh_hypo_length.png,
-         resources/mesh_hypo_segment.png, resources/mesh_hypo_volume.png,
-         resources/mesh_info.png, resources/mesh_init.png,
-         resources/mesh_length.png, resources/mesh_line.png,
-         resources/mesh_line_n.png, resources/mesh_move_node.png,
-         resources/mesh_orientation.png, resources/mesh_pyramid.png,
-         resources/mesh_pyramid_n.png, resources/mesh_quad.png,
-         resources/mesh_quad_n.png, resources/mesh_rem_element.png,
-         resources/mesh_rem_node.png, resources/mesh_set_algo.png,
-         resources/mesh_set_hypo.png, resources/mesh_shading.png,
-         resources/mesh_shrink.png, resources/mesh_skew.png,
-         resources/mesh_taper.png, resources/mesh_tetra.png,
-         resources/mesh_tetra_n.png, resources/mesh_tree_algo.png,
-         resources/mesh_tree_algo_hexa.png,
-         resources/mesh_tree_algo_mefisto.png,
-         resources/mesh_tree_algo_quad.png,
-         resources/mesh_tree_algo_regular.png,
-         resources/mesh_tree_hypo.png, resources/mesh_tree_hypo_area.png,
-         resources/mesh_tree_hypo_length.png,
-         resources/mesh_tree_hypo_segment.png,
-         resources/mesh_tree_hypo_volume.png,
-         resources/mesh_tree_mesh.png, resources/mesh_tree_mesh_warn.png,
-         resources/mesh_triangle.png, resources/mesh_triangle_n.png,
-         resources/mesh_update.png, resources/mesh_vertex.png,
-         resources/mesh_vertex_n.png, resources/mesh_wireframe.png,
-         resources/mesh_wrap.png, resources/select1.png, idl/Makefile.in,
-         idl/SMESH_BasicHypothesis.idl, idl/SMESH_Gen.idl,
-         idl/SMESH_Hypothesis.idl, idl/SMESH_Mesh.idl,
-         src/DriverDAT/DriverDAT_R_SMDS_Mesh.cxx,
-         src/DriverDAT/DriverDAT_R_SMDS_Mesh.h,
-         src/DriverDAT/DriverDAT_R_SMESHDS_Document.cxx,
-         src/DriverDAT/DriverDAT_R_SMESHDS_Document.h,
-         src/DriverDAT/DriverDAT_R_SMESHDS_Mesh.cxx,
-         src/DriverDAT/DriverDAT_R_SMESHDS_Mesh.h,
-         src/DriverDAT/DriverDAT_W_SMDS_Mesh.cxx,
-         src/DriverDAT/DriverDAT_W_SMDS_Mesh.h,
-         src/DriverDAT/DriverDAT_W_SMESHDS_Document.cxx,
-         src/DriverDAT/DriverDAT_W_SMESHDS_Document.h,
-         src/DriverDAT/DriverDAT_W_SMESHDS_Mesh.cxx,
-         src/DriverDAT/DriverDAT_W_SMESHDS_Mesh.h,
-         src/DriverDAT/Makefile.in,
-         src/DriverMED/DriverMED_R_SMDS_Mesh.cxx,
-         src/DriverMED/DriverMED_R_SMESHDS_Document.cxx,
-         src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx,
-         src/DriverMED/DriverMED_W_SMDS_Mesh.cxx,
-         src/DriverMED/DriverMED_W_SMESHDS_Document.cxx,
-         src/DriverMED/DriverMED_W_SMESHDS_Mesh.cxx,
-         src/DriverMED/Makefile.in,
-         src/DriverUNV/DriverUNV_R_SMDS_Mesh.cxx,
-         src/DriverUNV/DriverUNV_R_SMDS_Mesh.h,
-         src/DriverUNV/DriverUNV_R_SMESHDS_Document.cxx,
-         src/DriverUNV/DriverUNV_R_SMESHDS_Document.h,
-         src/DriverUNV/DriverUNV_R_SMESHDS_Mesh.cxx,
-         src/DriverUNV/DriverUNV_R_SMESHDS_Mesh.h,
-         src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx,
-         src/DriverUNV/DriverUNV_W_SMDS_Mesh.h,
-         src/DriverUNV/DriverUNV_W_SMESHDS_Document.cxx,
-         src/DriverUNV/DriverUNV_W_SMESHDS_Document.h,
-         src/DriverUNV/DriverUNV_W_SMESHDS_Mesh.cxx,
-         src/DriverUNV/DriverUNV_W_SMESHDS_Mesh.h,
-         src/DriverUNV/Makefile.in: NRI : First integration.
-
-2003-03-07 14:55  tag V1
-
-2003-03-07 14:55  cvsadmin
-
-       * src/DriverMED/: DriverMED_R_SMESHDS_Document.h,
-         DriverMED_W_SMESHDS_Document.h:
-         Initialisation module SMESH_SRC de la base SMESH
-
-2003-03-07 14:55  cvsadmin
-
-       * src/DriverMED/: DriverMED_R_SMDS_Mesh.cxx,
-         DriverMED_R_SMDS_Mesh.h, DriverMED_R_SMESHDS_Document.cxx,
-         DriverMED_R_SMESHDS_Mesh.cxx, DriverMED_R_SMESHDS_Mesh.h,
-         DriverMED_W_SMDS_Mesh.cxx, DriverMED_W_SMDS_Mesh.h,
-         DriverMED_W_SMESHDS_Document.cxx, DriverMED_W_SMESHDS_Mesh.cxx,
-         DriverMED_W_SMESHDS_Mesh.h, Makefile.in: Initial revision
-
diff --git a/INSTALL b/INSTALL
deleted file mode 100644 (file)
index 6427893..0000000
--- a/INSTALL
+++ /dev/null
@@ -1,6 +0,0 @@
-This is the version 3.0.0 of SMESH
-Compatible with :
-        - KERNEL 3.0.0
-       - SALOMEGUI 3.0.0
-       - GEOM 3.0.0
-       - MED 3.0.0
diff --git a/LICENCE b/LICENCE
deleted file mode 100644 (file)
index b1e3f5a..0000000
--- a/LICENCE
+++ /dev/null
@@ -1,504 +0,0 @@
-                 GNU LESSER GENERAL PUBLIC LICENSE
-                      Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-\f
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-\f
-                 GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-\f
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-\f
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-\f
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-\f
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-\f
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-\f
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-                           NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-\f
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/Makefile.in b/Makefile.in
deleted file mode 100644 (file)
index 26c7358..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-# -* Makefile *- 
-#
-# Author : Patrick GOLDBRONN (CEA)
-# Date : 28/06/2001
-# $Header$
-#
-
-# source path
-top_srcdir=@top_srcdir@
-top_builddir=.
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@top_srcdir@/bin:@top_srcdir@/resources:./bin:@top_srcdir@/idl
-
-
-@COMMENCE@
-
-SUBDIRS = idl src doc
-
-RESOURCES_FILES = \
-delete.png  \
-mesh_add_sub.png \
-mesh_algo_hexa.png \
-mesh_algo_mefisto.png \
-mesh_algo_quad.png \
-mesh_algo_regular.png \
-mesh_algo_tetra.png \
-mesh_angle.png \
-mesh_area.png \
-mesh_aspect.png \
-mesh_aspect_3d.png \
-mesh_compute.png \
-mesh_connectivity.png \
-mesh_diagonal.png \
-mesh_edit.png \
-mesh_hexa_n.png \
-mesh_hexa.png \
-mesh_hypo_area.png \
-mesh_hypo_length.png \
-mesh_hypo_segment.png \
-mesh_hypo_volume.png \
-mesh_hypo_edit.png \
-mesh_info.png \
-advanced_mesh_info.png \
-standard_mesh_info.png \
-mesh_init.png \
-mesh_length.png \
-mesh_length_2d.png \
-mesh_free_edges.png \
-mesh_free_edges_2d.png \
-mesh_multi_edges.png \
-mesh_multi_edges_2d.png \
-mesh_line_n.png \
-mesh_line.png \
-mesh_move_node.png \
-mesh_orientation.png \
-mesh.png \
-mesh_polygon.png \
-mesh_polyhedron.png \
-mesh_pyramid_n.png \
-mesh_pyramid.png \
-mesh_quad_n.png \
-mesh_quad.png \
-mesh_rem_element.png \
-mesh_rem_node.png \
-mesh_set_algo.png \
-mesh_set_hypo.png \
-mesh_shading.png \
-mesh_shrink.png \
-mesh_skew.png \
-mesh_taper.png \
-mesh_tetra_n.png \
-mesh_tetra.png \
-mesh_tree_algo_hexa.png \
-mesh_tree_algo_mefisto.png \
-mesh_tree_algo.png \
-mesh_tree_algo_quad.png \
-mesh_tree_algo_regular.png \
-mesh_tree_algo_tetra.png \
-mesh_tree_hypo_area.png \
-mesh_tree_hypo_length.png \
-mesh_tree_hypo.png \
-mesh_tree_hypo_segment.png \
-mesh_tree_hypo_volume.png \
-mesh_tree_mesh.png \
-mesh_tree_importedmesh.png \
-mesh_tree_mesh_warn.png \
-mesh_triangle_n.png \
-mesh_triangle.png \
-mesh_update.png \
-mesh_vertex_n.png \
-mesh_vertex.png \
-mesh_wireframe.png \
-mesh_points.png \
-mesh_wrap.png \
-mesh_tree_group.png \
-mesh_edit_group.png \
-mesh_make_group.png \
-mesh_union2tri.png \
-mesh_uniontri.png \
-mesh_cutquad.png \
-mesh_smoothing.png \
-mesh_renumbering_nodes.png \
-mesh_renumbering_elements.png \
-mesh_extrusion.png \
-mesh_extrusionpath.png \
-mesh_revolution.png \
-ModuleMesh.png \
-mesh_unionGroups.png \
-mesh_intersectGroups.png \
-mesh_cutGroups.png \
-mesh_deleteGroups.png \
-mesh_translation_vector.png \
-mesh_translation_points.png \
-mesh_rotation.png \
-mesh_symmetry_point.png \
-mesh_symmetry_axis.png \
-mesh_symmetry_plane.png \
-mesh_sew_freeborders.png \
-mesh_sew_conform_freeborders.png \
-mesh_sew_bordertoside.png \
-mesh_sew_sideelements.png \
-mesh_merge_nodes.png \
-mesh_merge_elements.png \
-select1.png \
-SMESH_en.xml \
-SMESH.config \
-StdMeshers.xml \
-SMESHCatalog.xml \
-flight_solid.brep \
-mesh_pattern.png \
-pattern_sample_2d.png \
-pattern_sample_3D.png \
-mesh_add.png \
-mesh_remove.png
-
-BIN_SCRIPT= \
-VERSION
-
-# copy header files in common directory
-ifeq ($(HAVE_SSTREAM),yes)
-  include_list=include/salome/SALOMEconfig.h
-else
-  include_list=include/salome/SALOMEconfig.h include/salome/sstream
-endif
-
-inc: idl $(include_list)
-
-include/salome/SALOMEconfig.h: salome_adm/unix/SALOMEconfig.ref
-       -$(RM) $@
-       $(LN_S) ../../$< $@
-
-# test if SALOMEconfig.h has changed (contents)
-salome_adm/unix/SALOMEconfig.ref: salome_adm/unix/SALOMEconfig.h
-       @if ! [ -a $@ ]; then \
-         cp -p -f $< $@;        \
-       fi;                   \
-       if ! cmp $< $@; then  \
-         cp -p -f $< $@;        \
-       fi;                   \
-
-include/salome/sstream: salome_adm/unix/sstream
-       -$(RM) $@
-       $(LN_S) ../../$< $@
-
-depend: depend_idl
-
-depend_idl:
-       (cd idl ; $(MAKE) $@) || exit 1
-
-# doc is already build : if you want to had documents, go manually to doc and run 'make doc'
-#doc:
-#      (cd doc && $(MAKE) $@) || exit 1
-
-install-end:
-# finish libtool install
-#      @$(LT) --mode=finish $(libdir)
-
-install-include: $(include_list)
-       $(INSTALL) -d  $(includedir)
-       @for f in X $(include_list); do                         \
-          if test $$f != X; then                               \
-            ($(INSTALL_DATA) -p $$f $(includedir)/. || exit 1);        \
-          fi;                                                  \
-       done
-
-# install script in $(bindir) :
-install-bin: $(BIN_SCRIPT)
-       $(INSTALL) -d  $(bindir)
-       if test $(BIN_SCRIPT)X != X; then                       \
-               $(INSTALL_PROGRAM) $^ $(bindir);                \
-       fi
-
-uninstall: uninstall-idl
-
-uninstall-idl:
-       $(RM) $(idldir)/*.idl
-
-distclean: distclean-other
-
-distclean-other:
-       -$(RM) salome_adm/unix/*~ salome_adm/unix/*% salome_adm/unix/*.bak salome_adm/unix/*.new salome_adm/unix/*.old
-       -$(RM) salome_adm/unix/make_* 
-       -$(RM) salome_adm/unix/depend salome_adm/unix/SALOMEconfig.h 
-       -$(RM) config.cache config.log config.status 
-
-@MODULE@
-
-install: install-bin install-include install-end
-
diff --git a/adm_local/unix/config_files/check_Geom.m4 b/adm_local/unix/config_files/check_Geom.m4
deleted file mode 100644 (file)
index 13f3be4..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-# Check availability of Geom binary distribution
-#
-# Author : Nicolas REJNERI (OPEN CASCADE, 2003)
-#
-
-AC_DEFUN([CHECK_GEOM],[
-
-AC_CHECKING(for Geom)
-
-Geom_ok=no
-
-AC_ARG_WITH(geom,
-           [  --with-geom=DIR root directory path of GEOM installation ],
-           GEOM_DIR="$withval",GEOM_DIR="")
-
-if test "x$GEOM_DIR" == "x" ; then
-
-# no --with-geom-dir option used
-
-   if test "x$GEOM_ROOT_DIR" != "x" ; then
-
-    # GEOM_ROOT_DIR environment variable defined
-      GEOM_DIR=$GEOM_ROOT_DIR
-
-   fi
-# 
-fi
-
-if test -f ${GEOM_DIR}/lib/salome/libGEOMClient.so ; then
-   Geom_ok=yes
-   AC_MSG_RESULT(Using Geom module distribution in ${GEOM_DIR})
-
-   if test "x$GEOM_ROOT_DIR" == "x" ; then
-      GEOM_ROOT_DIR=${GEOM_DIR}
-   fi
-   AC_SUBST(GEOM_ROOT_DIR)
-
-else
-   AC_MSG_WARN("Cannot find compiled Geom module distribution")
-fi
-
-AC_MSG_RESULT(for Geom: $Geom_ok)
-])dnl
diff --git a/adm_local/unix/config_files/check_Med.m4 b/adm_local/unix/config_files/check_Med.m4
deleted file mode 100644 (file)
index 727bf43..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-# Check availability of Med binary distribution
-#
-# Author : Nicolas REJNERI (OPEN CASCADE, 2003)
-#
-
-AC_DEFUN([CHECK_MED],[
-
-AC_CHECKING(for Med)
-
-Med_ok=no
-
-AC_ARG_WITH(med,
-           [  --with-med=DIR root directory path of MED installation ],
-           MED_DIR="$withval",MED_DIR="")
-
-if test "x$MED_DIR" == "x" ; then
-
-# no --with-med-dir option used
-
-   if test "x$MED_ROOT_DIR" != "x" ; then
-
-    # MED_ROOT_DIR environment variable defined
-      MED_DIR=$MED_ROOT_DIR
-
-   fi
-# 
-fi
-
-if test -f ${MED_DIR}/idl/salome/MED.idl ; then
-   Med_ok=yes
-   AC_MSG_RESULT(Using Med module distribution in ${MED_DIR})
-
-   if test "x$MED_ROOT_DIR" == "x" ; then
-      MED_ROOT_DIR=${MED_DIR}
-   fi
-   AC_SUBST(MED_ROOT_DIR)
-
-else
-   AC_MSG_WARN("Cannot find Med module sources")
-fi
-  
-AC_MSG_RESULT(for Med: $Med_ok)
-])dnl
diff --git a/adm_local/unix/make_commence.in b/adm_local/unix/make_commence.in
deleted file mode 100644 (file)
index e7e10c9..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-# common directories to put headerfiles
-inc_builddir=$(top_builddir)/include/salome
-
-@SET_MAKE@
-SHELL=/bin/sh
-
-# header missing
-
-HAVE_SSTREAM=@HAVE_SSTREAM@
-
-
-LIBS=@LIBS@ 
-LIBSFORBIN=@LIBS@
-LDFLAGS=@LDFLAGS@ -L$(top_builddir)/lib/salome -Xlinker -rpath-link -Xlinker $(top_builddir)/lib/salome
-LDFLAGSFORBIN=@LDFLAGS@ -L$(top_builddir)/lib/salome -Xlinker -rpath-link -Xlinker $(top_builddir)/lib/salome
-# add libstdc++ to link c++ library with libtool !
-LDFLAGS+= -lstdc++
-LDFLAGSFORBIN+= -lstdc++
-
-CP=@CP@
-
-# CPP
-
-CPP=@CPP@
-CXXCPP=@CXXCPP@
-CPPFLAGS=@CPPFLAGS@ -I$(inc_builddir) -I$(srcdir) -I.
-
-# C
-
-CC = @CC@
-CFLAGS = @CFLAGS@
-C_DEPEND_FLAG = @C_DEPEND_FLAG@
-
-# C++
-
-CXX = @CXX@
-CXXFLAGS = @CXXFLAGS@
-CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@
-
-# BOOST Library
-
-BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
-
-# JAVA
-
-JAVA_INCLUDES = @JAVA_INCLUDES@
-JAVA_LIBS = @JAVA_LIBS@
-JAVA_LDPATH = @JAVA_LDPATH@
-
-# PYTHON
-
-PYTHON = @PYTHON@
-PYTHONHOME = @PYTHONHOME@
-PYTHON_INCLUDES = @PYTHON_INCLUDES@
-PYTHON_LIBS = @PYTHON_LIBS@
-PYTHON_VERSION = @PYTHON_VERSION@
-PYTHON_SITE = @PYTHON_SITE@
-PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@
-
-# QT
-
-QT_ROOT = @QT_ROOT@
-QT_INCLUDES = @QT_INCLUDES@
-QT_MT_INCLUDES = @QT_INCLUDES@ -DQT_THREAD_SUPPORT
-QT_LIBS = @QT_LIBS@
-QT_MT_LIBS = @QT_MT_LIBS@
-
-MOC = @MOC@
-UIC = @UIC@
-MSG2QM = @MSG2QM@
-
-#QWT
-
-QWT_INCLUDES=@QWT_INCLUDES@
-QWT_LIBS=@QWT_LIBS@
-
-# SIP
-SIP = @SIP@
-SIP_INCLUDES = @SIP_INCLUDES@
-SIP_LIBS = @SIP_LIBS@
-
-# PYQT
-PYQT_SIPS = @PYQT_SIPS@
-PYQT_LIBS = @PYQT_LIBS@
-
-# openGL
-OGL_INCLUDES=@OGL_INCLUDES@
-OGL_LIBS=@OGL_LIBS@
-
-# VTK
-VTK_INCLUDES=@VTK_INCLUDES@
-VTK_LIBS=@VTK_LIBS@
-
-# HDF5
-
-HDF5_INCLUDES=@HDF5_INCLUDES@
-HDF5_LIBS=@HDF5_LIBS@
-HDF5_MT_LIBS=@HDF5_MT_LIBS@
-
-# OpenCasCade
-
-OCC_INCLUDES=@CAS_CPPFLAGS@
-OCC_CXXFLAGS=@CAS_CXXFLAGS@
-
-OCC_KERNEL_LIBS=@CAS_KERNEL@
-OCC_OCAF_LIBS=@CAS_OCAF@
-OCC_VIEWER_LIBS=@CAS_VIEWER@
-OCC_MODELER_LIBS=@CAS_MODELER@
-OCC_DATAEXCHANGE_LIBS=@CAS_DATAEXCHANGE@
-OCC_LIBS=@CAS_LDFLAGS@
-
-# MPICH
-
-MPICH_INCLUDES=@MPICH_INCLUDES@
-MPICH_LIBS=@MPICH_LIBS@
-
-# Swig C++ Python
-
-SWIG       = @SWIG@
-SWIG_FLAGS = @SWIG_FLAGS@ -I$(inc_builddir) -I$(srcdir) -I.
-
-# OMNIORB
-
-OMNIORB_ROOT        = @OMNIORB_ROOT@
-OMNIORB_INCLUDES    = @OMNIORB_INCLUDES@
-OMNIORB_LIBS        = @OMNIORB_LIBS@
-OMNIORB_CXXFLAGS    = @OMNIORB_CXXFLAGS@
-
-OMNIORB_IDL         = @OMNIORB_IDL@
-OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@
-OMNIORB_IDLPYFLAGS  = @OMNIORB_IDLPYFLAGS@ -I$(top_srcdir)/idl -I$(top_builddir)/idl/salome \
-       -I$(KERNEL_ROOT_DIR)/idl/salome -I$(GEOM_ROOT_DIR)/idl/salome -I$(MED_ROOT_DIR)/idl/salome
-
-OMNIORB_IDL_CLN_H   = @OMNIORB_IDL_CLN_H@
-OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@
-OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@
-
-OMNIORB_IDL_SRV_H   = @OMNIORB_IDL_SRV_H@
-OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@
-OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@
-
-# Default ORB
-
-CORBA_ROOT        = @CORBA_ROOT@
-CORBA_INCLUDES    = @CORBA_INCLUDES@
-CORBA_LIBS        = @CORBA_LIBS@
-CORBA_CXXFLAGS    = @CORBA_CXXFLAGS@
-
-IDLCXXFLAGS = -bcxx @IDLCXXFLAGS@ -I$(top_srcdir)/idl -I$(top_builddir)/idl/salome \
-       -I$(KERNEL_ROOT_DIR)/idl/salome -I$(GEOM_ROOT_DIR)/idl/salome -I$(MED_ROOT_DIR)/idl/salome
-IDLPYFLAGS  = @IDLPYFLAGS@
-
-IDL = @IDL@
-
-IDL_CLN_H   = @IDL_CLN_H@
-IDL_CLN_CXX = @IDL_CLN_CXX@
-IDL_CLN_OBJ = @IDL_CLN_OBJ@
-
-IDL_SRV_H   = @IDL_SRV_H@
-IDL_SRV_CXX = @IDL_SRV_CXX@
-IDL_SRV_OBJ = @IDL_SRV_OBJ@
-
-CPPFLAGS+= $(CORBA_INCLUDES) 
-CXXFLAGS+= $(CORBA_CXXFLAGS)
-
-# add corba libs when link salome application ! 
-#LDFLAGS+= $(CORBA_LIBS)
-LIBS+=$(CORBA_LIBS)
-
-## Shared libraries
-LT_STATIC_EXEC=@LT_STATIC_EXEC@
-DYNAMIC_DIRS=@DYNAMIC_DIRS@
-LT_LIB=libtool
-LT=$(top_builddir)/libtool
-LT_COMPILE=$(LT) --mode=compile $(CC)
-LT_LINK_LIB=$(LT_LIB) --mode=link $(CC) -rpath $(libdir)
-LT_LINK_EXE=$(LT) --mode=link $(CC) $(LT_STATIC_EXEC) -dlopen self -rpath $(bindir) $(DYNAMIC_DIRS)
-LT_RUN=$(LT) --mode=execute
-LT_INSTALL_PROG=$(LT) --mode=install $(INSTALL_PROGRAM)
-LT_INSTALL_LIB=$(LT) --mode=install $(INSTALL_DATA)
-LT_UNINSTALL=$(LT) --mode=uninstall $(RM)
-
-INSTALL=@INSTALL@
-INSTALL_PROGRAM=@INSTALL_PROGRAM@
-INSTALL_DATA=@INSTALL_DATA@
-
-# create a symbolic link (or a copie ?)
-LN_S=@LN_S@
-
-## Installation points
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-bindir=@bindir@/salome
-libdir=@libdir@/salome
-# warning : if user give this path in configure we could have salome/salome :-(
-includedir=@includedir@/salome
-datadir=@datadir@/salome
-idldir=$(prefix)/idl/salome
-sharedpydir=@libdir@/python$(PYTHON_VERSION)/site-packages/salome/shared_modules
-
-docdir=${prefix}/doc/salome
-
-#
-# begin of package rules
-#
-
-.PHONY: all lib bin inc resources docs tests install uninstall dep depend depend_idl cleandep mostlyclean clean distclean
-
-.SUFFIXES: .cxx .cc .c .f .o .lo .idl .py .i .ui .po .qm
-
-all:
-       $(MAKE) inc
-       $(MAKE) depend_idl
-       $(MAKE) depend
-       $(MAKE) lib
-       $(MAKE) bin
-       $(MAKE) resources
-
-#
-# add target to build administrative files
-#
-
-Makefile: $(top_builddir)/config.status $(srcdir)/Makefile.in
-       cd $(top_builddir) ; ./config.status
-
-$(top_builddir)/config.status: $(top_srcdir)/configure
-       cd $(top_builddir) ; ./config.status --recheck
-
-# VPATH contain $(srcdir), so make configure is good in top_srcdir and we must add target configure otherwise :-)
-ifneq ($(top_srcdir),$(srcdir))
-configure: $(top_srcdir)/configure
-endif
-
-$(top_srcdir)/configure: $(top_srcdir)/configure.in $(top_srcdir)/aclocal.m4
-       cd $(top_srcdir) ; autoconf
-
-$(top_srcdir)/configure.in: $(top_srcdir)/configure.in.base
-       cd $(top_srcdir) && ./build_configure
-
-
-ACLOCAL_SRC = \
-ac_cxx_bool.m4                    check_corba.m4     check_vtk.m4      \
-ac_cxx_depend_flag.m4             check_hdf5.m4      enable_pthreads.m4        \
-ac_cxx_mutable.m4                 check_mico.m4      libtool.m4                \
-ac_cxx_namespaces.m4              check_omniorb.m4   pyembed.m4                \
-ac_cxx_partial_specialization.m4  check_opengl.m4    python.m4         \
-ac_cxx_typename.m4                check_pthreads.m4  check_cas.m4      \
-ac_cc_warnings.m4                 check_qt.m4        check_boost.m4     \
-check_swig.m4                      
-
-$(top_srcdir)/aclocal.m4: $(ACLOCAL_SRC:%=@KERNEL_ROOT_DIR@/salome_adm/unix/config_files/%)
-       cd $(top_srcdir) ; aclocal --acdir=adm_local/unix/config_files -I @KERNEL_ROOT_DIR@/salome_adm/unix/config_files
diff --git a/adm_local/unix/make_conclude.in b/adm_local/unix/make_conclude.in
deleted file mode 100644 (file)
index f4827fd..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-#=======================================================================
-# This section of this makefile comes from the file 
-# 'adm/unix/make_conclude' which was generated with config.status
-# from file adm/unix/make_conclude.in
-#=======================================================================
-# -* Makefile *- 
-#
-# Authors : Patrick GOLDBRONN (CEA) - Marc Tajchman (CEA)
-# Date : 6/07/2001
-# $Header$
-#
-
-# ORB Specifics rules
-@CORBA@
-
-# transform idl reference in appropriate obj file
-LIB_CLIENT_SRC = $(LIB_CLIENT_IDL:%.idl=%$(IDL_CLN_CXX))
-LIB_SERVER_SRC = $(LIB_SERVER_IDL:%.idl=%$(IDL_SRV_CXX))
-LIB_MOC_SRC = $(LIB_MOC:%.h=%_moc.cxx)
-LIB_SRC+=$(LIB_MOC_SRC)
-LIB_SWIG_SRC = $(SWIG_DEF:%.i=%_wrap.cxx)
-LIB_DEP= $(LIB_SRC) $(LIB_CLIENT_SRC) $(LIB_SERVER_SRC) $(LIB_SWIG_SRC)
-LIB_CLIENT_OBJ = $(LIB_CLIENT_IDL:%.idl=%$(IDL_CLN_OBJ))
-LIB_SERVER_OBJ = $(LIB_SERVER_IDL:%.idl=%$(IDL_SRV_OBJ))
-
-# transform c file in appropriate libtool obj file (.c, .cc and .cxx)
-LIB_OBJ_C   = $(patsubst %.c,   %.lo, $(filter %.c, $(LIB_SRC))) 
-LIB_OBJ_CC  = $(patsubst %.cc,  %.lo, $(filter %.cc, $(LIB_SRC))) 
-LIB_OBJ_CXX = $(patsubst %.cxx, %.lo, $(filter %.cxx, $(LIB_SRC))) 
-LIB_SWIG_OBJ = $(LIB_SWIG_SRC:%.cxx=%.lo)
-LIB_OBJ_F    = $(patsubst %.f,   %.lo, $(filter %.f, $(LIB_SRC))) 
-
-# all libtool obj file in library
-LIB_OBJ = $(LIB_OBJ_CXX) $(LIB_OBJ_CC) $(LIB_OBJ_C) $(LIB_CLIENT_OBJ:%.o=%.lo) $(LIB_SERVER_OBJ:%.o=%.lo) $(LIB_SWIG_OBJ) $(LIB_OBJ_F)
-
-# LIB_BUILD = $(LIB:%.la=$(top_builddir)/lib/salome/%.la)
-LIB_BUILD = $(patsubst %.la, $(top_builddir)/lib/salome/%.la, $(filter %.la, $(LIB)))
-LIB_BUILD_A = $(patsubst %.a, $(top_builddir)/lib/salome/%.a, $(filter %.a, $(LIB)))
-
-ifneq ($(findstring cmodule.la,$(filter %.la, $(LIB))),)
-LIB_SWIG = $(patsubst %cmodule.la,%.so, $(filter %.la, $(LIB)))
-else
-LIB_SWIG = 
-endif
-
-lib: $(LIB_BUILD) $(LIB_CLIENT_PY)
-# we don't build static library !
-
-$(LIB_BUILD): $(top_builddir)/lib/salome/%.la: %.la
-       -$(RM) $@
-       -$(RM) $(patsubst %.la, %.so, $@)
-       -$(RM) $(patsubst %.la, %.a, $@)
-       ln -sf $(CURDIR)/$< $@ || true
-       ln -sf $(patsubst %.la, %.so, $(CURDIR)/.libs/$<) \
-             $(patsubst %.la, %.so, $@) || true
-       ln -sf $(patsubst %.la, %.so, $(CURDIR)/.libs/$<).0 \
-             $(patsubst %.la, %.so, $@).0 || true
-
-       if ! test -z $(LIB_SWIG) ; then \
-          ln -sf $(patsubst %.la,%.so, $(CURDIR)/.libs/$<) $(top_builddir)/lib/salome/_$(LIB_SWIG) || true;\
-       fi;
-
-$(LIB_BUILD_A): $(top_builddir)/lib/salome/%.a: %.a
-       -$(RM) $@
-       ln -sf $(CURDIR)/$< $@ || true
-
-$(LIB): $(LIB_OBJ)
-       @$(LT) --mode=link $(CXX) -rpath $(libdir) -o $@ $(CXXFLAGS) $(LIB_OBJ) $(LDFLAGS) $(LIBS)
-
-# transform idl reference in appropriate obj file
-BIN_CLIENT_SRC = $(BIN_CLIENT_IDL:%.idl=%$(IDL_CLN_CXX))
-BIN_SERVER_SRC = $(BIN_SERVER_IDL:%.idl=%$(IDL_SRV_CXX))
-BIN_MOC_SRC = $(BIN_MOC:%.h=%_moc.cxx)
-BIN_SRC+=$(BIN_MOC_SRC)
-BIN_DEP=$(BIN:%=%.cxx) $(BIN_SRC) $(BIN_CLIENT_SRC) $(BIN_SERVER_SRC)
-
-BIN_CLIENT_OBJ = $(BIN_CLIENT_IDL:%.idl=%$(IDL_CLN_OBJ))
-BIN_SERVER_OBJ = $(BIN_SERVER_IDL:%.idl=%$(IDL_SRV_OBJ)) 
-# transform c file in appropriate libtool obj file (.c)
-BIN_OBJ_C =  $(patsubst %.c,  %.o, $(filter %.c, $(BIN_SRC)))
-# transform c++ file in appropriate libtool obj file (.cc and .cxx)
-BIN_OBJ_CC = $(patsubst %.cc,  %.o, $(filter %.cc, $(BIN_SRC)))
-BIN_OBJ_CXX = $(patsubst %.cxx,  %.o, $(filter %.cxx, $(BIN_SRC)))
-# all obj file in bin target
-BIN_OBJ = $(BIN_OBJ_CC) $(BIN_OBJ_CXX) $(BIN_OBJ_C) $(BIN_CLIENT_OBJ) $(BIN_SERVER_OBJ) 
-
-bin: $(BIN:%=$(top_builddir)/bin/salome/%) $(BIN) $(LIB) pyscripts sharedpyscripts
-
-BIN_LIB=$(LIB:lib%.la=-l%)
-
-$(BIN:%=$(top_builddir)/bin/salome/%) $(TEST_PROGS:%=$(top_builddir)/bin/salome/%): $(top_builddir)/bin/salome/%: %
-       -$(RM) $@
-       ln -sf $(CURDIR)/$< $@
-
-$(BIN) $(TEST_PROGS): %: %.lo $(BIN_OBJ)
-       $(CXX) $(CXXFLAGS) -o $@ $^ $(BIN_LIB) $(LDFLAGSFORBIN) $(LIBSFORBIN)
-
-# copy python scripts in $(top_builddir)/bin/salome
-#
-DEST_PYSCRIPTS = $(EXPORT_PYSCRIPTS:%=$(top_builddir)/bin/salome/%)
-pyscripts: $(DEST_PYSCRIPTS)
-$(DEST_PYSCRIPTS): $(top_builddir)/bin/salome/%: %
-       cp -f $< $@
-
-# copy pyqt files in $(PYTHON_SHARED_SITE)
-#
-PYTHON_SHARED_SITE=$(top_builddir)/lib/python$(PYTHON_VERSION)/site-packages/salome/shared_modules
-
-$(PYTHON_SHARED_SITE):
-       $(INSTALL) -d  $@
-
-DEST_SHAREDPYSCRIPTS = $(EXPORT_SHAREDPYSCRIPTS:%=$(PYTHON_SHARED_SITE)/%)
-sharedpyscripts: $(PYTHON_SHARED_SITE) $(DEST_SHAREDPYSCRIPTS)
-$(DEST_SHAREDPYSCRIPTS): $(PYTHON_SHARED_SITE)/%: %
-       cp -f $< $@
-
-check: test
-
-tests: test
-
-test: $(LIB) $(TEST_PROGS:%=$(top_builddir)/bin/salome/%) 
-
-
-# copy header file in $(inc_builddir)
-#
-DEST_HEADERS = $(EXPORT_HEADERS:%=$(inc_builddir)/%)
-inc: $(DEST_HEADERS)
-$(DEST_HEADERS): $(inc_builddir)/%: %
-       cp -f $< $@
-
-# build resources file (icons and messages) : .qm file from .po file
-resources: $(PO_FILES:%.po=$(top_builddir)/share/salome/resources/%.qm)
-
-# Make installation directories if they don't exist.
-$(libdir) $(includedir) $(bindir) $(datadir) $(idldir) $(sharedpydir):
-       $(INSTALL) -d $@ && chmod 755 $@
-
-# Install the library, the public header files, and programs.
-install: $(LIB) $(BIN) $(TEST_PROGS) $(libdir) $(includedir) $(bindir) $(datadir) $(idldir) install-python install-sharedpyqt install-qm
-       @for f in X $(LIB); do                                                \
-          if test $$f != X; then                                             \
-             ($(LT_INSTALL_LIB) $$f $(libdir)/. || exit 1);                  \
-          fi;                                                                \
-       done
-       @if ! test -z $(LIB_SWIG) ; then                                      \
-         (cd $(libdir); ln -sf $(patsubst %.so, %cmodule.so, $(LIB_SWIG)) _$(LIB_SWIG)  || true); \
-        fi;                                                                  
-       @for f in X $(BIN); do                                                \
-          if test $$f != X; then                                             \
-            ($(LT_INSTALL_PROG) $$f $(bindir)/. || exit 1);                  \
-          fi;                                                                \
-       done
-# Install tests programmes in bindir
-       @for f in X $(TEST_PROGS); do                                         \
-          if test $$f != X; then                                             \
-            ($(LT_INSTALL_PROG) $$f $(bindir)/. || exit 1);                  \
-          fi;                                                                \
-       done
-# Install exported includes in includedir
-       @for f in X $(EXPORT_HEADERS:%=$(srcdir)/%); do                       \
-          if test $$f != X; then                                             \
-            (cp -p -f $$f $(includedir) || exit 1);                          \
-          fi;                                                                \
-       done
-
-# Install python script in $(bindir)
-install-python: $(bindir) $(EXPORT_PYSCRIPTS:%=install-%)
-
-$(EXPORT_PYSCRIPTS:%=install-%): install-%: %
-       $(INSTALL_PROGRAM) $< $(bindir)/.
-
-#install-python: $(bindir) $(EXPORT_PYSCRIPTS)
-#      @for f in X $(EXPORT_PYSCRIPTS); do                           \
-#         if test $$f != X; then                                     \
-#           ($(INSTALL_PROGRAM) $$f $(bindir)/. || exit 1);          \
-#         fi;                                                        \
-#      done
-
-# Install pyqt script in $(install-sharedpyqt)
-install-sharedpyqt: $(sharedpydir) $(EXPORT_SHAREDPYSCRIPTS:%=install-%) 
-
-$(EXPORT_SHAREDPYSCRIPTS:%=install-%): install-%: %
-       $(INSTALL_PROGRAM) $< $(sharedpydir)/.
-
-
-# generic rule to install .qm files :
-install-qm: resources
-       $(INSTALL) -d $(datadir)/resources
-       @for f in X $(PO_FILES:%.po=$(top_builddir)/share/salome/resources/%.qm); do \
-          if test $$f != X; then                                                        \
-            ($(INSTALL_DATA) $$f $(datadir)/resources/. || exit 1);                     \
-          fi;                                                                           \
-       done
-
-# Removes those things that `make install' (would have) installed.
-uninstall:
-       @if test "X$(LIB)" != X; then                                         \
-          for f in $(LIB); do                                                \
-             $(LT_UNINSTALL) $(libdir)/$$f;                                  \
-          done;                                                              \
-       fi
-       @if test "X$(BIN)" != X; then                                         \
-          for f in $(BIN); do                                                \
-             $(LT_UNINSTALL) $(bindir)/$$f;                                  \
-          done;                                                              \
-       fi
-       @for f in X $(TEST_PROGS); do                                         \
-          if test $$f != X; then                                             \
-            $(LT_UNINSTALL) $(bindir)/$$f;                                   \
-          fi;                                                                \
-       done
-# Uninstall exported includes in includedir
-       @for f in X $(EXPORT_HEADERS); do                                     \
-          if test $$f != X; then                                             \
-            $(LT_UNINSTALL) $(includedir)/$$f;                               \
-          fi;                                                                \
-       done
-# Uninstall python script in $(bindir)
-       @for f in X $(EXPORT_PYSCRIPTS); do                                   \
-          if test $$f != X; then                                             \
-            $(LT_UNINSTALL) $(bindir)/$$f ;                  \
-          fi;                                                                \
-       done
-
-# Uninstall pyqt script in $(sharedpydir)
-       @for f in X $(EXPORT_SHAREDPYSCRIPTS); do                                     \
-          if test $$f != X; then                                             \
-            $(LT_UNINSTALL) $(sharedpydir)/$$f ;                     \
-          fi;                                                                \
-       done
-
-# Uninstall qm files
-       @for f in X $(PO_FILES:%.po=%.qm); do         \
-          if test $$f != X; then                                             \
-            $(LT_UNINSTALL) $(datadir)/resources/$$f ;                       \
-          fi;                                                                \
-       done
-
-# remove all dependencies files
-#
-cleandep:
-       -$(RM) .dep*
-
-# Removes temporary files without removing the final target files.  That is,
-# remove things like object files but not libraries or executables.
-#
-mostlyclean: cleandep
-       -$(RM) $(LIB_OBJ) $(LIB_OBJ:.lo=.o)
-       -$(RM) $(BIN_OBJ) $(BIN:%=%.o)
-       -$(RM) $(TEST_OBJ) $(TEST_OBJ:.lo=.o)
-       -$(RM) $(PROG_OBJ) $(PROG_OBJ:.lo=.o) $(MOSTLYCLEAN)
-
-# Like `mostlyclean' except it also removes the final targets: things like
-# libraries and executables.  This target doesn't remove any file that
-# is part of the SALOME distribution.
-#
-clean: mostlyclean
-       -$(RM) $(LIB) $(TEST_PROGS) $(BIN) $(CLEAN)
-       -$(RM) TAGS *~ *# core *.core 
-       -$(RM) -r .libs
-       -$(RM) $(top_builddir)/lib/salome/$(LIB)
-       -$(RM) $(patsubst %,$(top_builddir)/bin/salome/%, $(BIN))
-       -$(RM) $(patsubst %.la, %.so, $(top_builddir)/lib/salome/$(LIB))
-       -$(RM) $(patsubst %.la, %.a, $(top_builddir)/lib/salome/$(LIB))
-# remove idl generated files (sources)
-       -$(RM) $(LIB_CLIENT_SRC) $(LIB_SERVER_SRC) $(BIN_CLIENT_SRC) $(BIN_SERVER_SRC)
-# remove idl generated files (headers)
-       -$(RM)  $(LIB_CLIENT_IDL:%.idl=%$(IDL_CLN_H)) $(LIB_SERVER_IDL:%.idl=%$(IDL_SRV_H))
-       -$(RM)  $(BIN_CLIENT_IDL:%.idl=%$(IDL_CLN_H)) $(BIN_SERVER_IDL:%.idl=%$(IDL_SRV_H))
-       -$(RM) $(LIB_MOC_SRC) $(BIN_MOC_SRC)
-       -$(RM) $(LIB_SWIG_SRC)
-
-# Like `clean' except it also removes files that were created by running
-# configure.  If you've unpacked the source and built without creating
-# any other files, then `make distclean' will leave only the files that were
-# in the distribution.
-#
-distclean: clean
-       #remove qm file !
-       -$(RM) $(PO_FILES:%.po=%.qm) $(PO_FILES:%.po=$(top_builddir)/share/salome/resources/%.qm)
-       #remove include files
-       -$(RM) $(DEST_HEADERS)
-       -$(RM) $(DISTCLEAN) *.bak *.old *.new .dep*
-       @if test -f $(srcdir)/Makefile.in; then                               \
-          (@SETX@; $(RM) Makefile);                                          \
-       fi
-
-
-#implicits rules
-.cc.o:
-       $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $<
-
-.cc.lo:
-       $(LT) --mode=compile $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $<
-
-.cxx.o:
-       $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $<
-
-.cxx.lo:
-       $(LT) --mode=compile $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $<
-
-.c.o:
-       $(CC) $(CFLAGS) $(CPPFLAGS) -c $<
-
-.c.lo:
-       $(LT_COMPILE) $(CFLAGS) $(CPPFLAGS) -c $<
-
-.f.o:
-       $(FC) $(FFLAGS) -c $< -o $@
-
-.f.lo:
-       $(LT) --mode=compile $(FC) $(FFLAGS) -c $<
-
-.ui.h:
-       $(UIC) -o $@  $<
-
-.ui.cxx:
-       $(UIC) -o $@ -i $*.h $<
-
-#pattern rules
-%_moc.cxx : %.h
-       $(MOC) $< -o $@
-
-%_wrap.cxx : %.i
-       $(SWIG) $(SWIG_FLAGS) -o $@ $<
-
-$(top_builddir)/share/salome/resources/%.qm: %.po
-               $(MSG2QM) $< $@ ; \
-
-#------------------------------------------------------------------------------
-# The following section of this makefile contains dependencies between the
-# source files and the header files.  If GNU make and GCC are being used then
-# the dependencies are in the form of rules that cause the information to
-# be kept updated automatically.  Otherwise the dependencies are listed
-# explicitly and come from the `.distdep' files in the various directories.
-# These files are part of the distribution and are generated automatically on
-# GNU/GCC systems.
-#------------------------------------------------------------------------------
-
-@DEPEND@
diff --git a/adm_local/unix/make_omniorb.in b/adm_local/unix/make_omniorb.in
deleted file mode 100644 (file)
index 1299082..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#=======================================================================
-# Begin specific part to omniorb 
-# (include from file adm/unix/make_omniorb generated by 
-# adm/unix/make_omniorb.in)
-#=======================================================================
-# -* Makefile *- 
-#
-# Author : Patrick GOLDBRONN (CEA)
-# Date : 29/06/2001
-# $Header$
-#
-
-# Client and server object are the same with omniorb
-# There are one header file and one source file generate
-
-#IDLOBJ=$(IDLSRC:%.idl=%$(IDL_CLN_OBJ))
-
-# dependancies between idl and it's generated files
-%$(OMNIORB_IDL_CLN_CXX) %$(OMNIORB_IDL_CLN_H): ${KERNEL_ROOT_DIR}/idl/salome/%.idl
-       $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
-
-%$(OMNIORB_IDL_CLN_CXX) %$(OMNIORB_IDL_CLN_H): ${GEOM_ROOT_DIR}/idl/salome/%.idl
-       $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
-
-%$(OMNIORB_IDL_CLN_CXX) %$(OMNIORB_IDL_CLN_H): ${MED_ROOT_DIR}/idl/salome/%.idl
-       $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
-
-%$(OMNIORB_IDL_CLN_CXX) %$(OMNIORB_IDL_CLN_H): ${top_srcdir}/idl/%.idl
-       $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
-
-# dependncies between idl files
-depend_idl: .depidl
-
-# we use cpp to generate dependencies between idl files.
-# we change cpp output to keep only idl file and transform it to get a suitable rule
-.depidl: $(IDL_FILES)
-       @touch $@
-       @for dep in $? dummy; do \
-         if [ $$dep != "dummy" ]; then \
-           echo Building dependencies for $$dep; \
-           basedep=`basename $$dep .idl`; \
-           header="$$basedep"$(IDL_CLN_H); \
-           sed '\%^'"$$header"':%,\%[^\\]$$%d' <$@ >$@- && mv $@- $@; \
-           $(CPP) $(C_DEPEND_FLAG) -I$(srcdir) $$dep 2>/dev/null | \
-           sed `echo "s%$$basedep\\.idl%$$header:%g"` | \
-           sed 's% $(srcdir)/% %g' | \
-           sed 's% $(top_srcdir)/% %g' | \
-           sed 's% $(top_builddir)/% %g' | \
-           sed 's%^.*:\.o: *%%' | sed 's%^ *\\ *%%'| sed 's%^ *\(.*\):%\1:%' | \
-           sed 's/\.idl/$(IDL_CLN_H)/' >>$@; \
-           echo ''  >>$@; \
-         fi; \
-       done ;
-
--include .depidl
-
-#=======================================================================
-# End specific part to omniorb 
-#=======================================================================
diff --git a/bin/VERSION b/bin/VERSION
deleted file mode 100755 (executable)
index 2b1989d..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-THIS IS SALOME - SMESH VERSION: 3.0.1
-
diff --git a/build_configure b/build_configure
deleted file mode 100755 (executable)
index a0dda39..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-#!/bin/bash
-
-#
-# Tool for updating list of .in file for the SALOME project 
-# and regenerating configure script
-#
-# Author : Marc Tajchman - CEA
-# Date : 10/10/2002
-# $Header$
-#
-
-ORIG_DIR=`pwd`
-CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"`
-
-########################################################################
-# Test if the KERNEL_ROOT_DIR is set correctly
-
-if test ! -d "${KERNEL_ROOT_DIR}"; then
-    echo "failed : KERNEL_ROOT_DIR variable is not correct !"
-    exit
-fi
-
-# Test if the KERNEL_SRC is set correctly
-
-#if test ! -d "${KERNEL_SRC}"; then
-#    echo "failed : KERNEL_SRC variable is not correct !"
-#    exit
-#fi
-########################################################################
-# find_in - utility function
-#
-# usage :  
-#    find_in directory filename 
-#
-# Finds files following the *.in pattern, recursively in the
-# directory (first argument).
-# Results are appended into the file (second argument)
-#
-# Difference from the standard unix find is that files are tested
-# before directories
-# 
-
-find_in()
-{
-  local i
-  local f=$2
-
-# if the first argument is not a directory, returns
-
-  if [ ! -d "$1" ] ; then 
-     return 
-  fi
-
-# dont look in the CVS directories
-
-  case $1 in
-    */CVS) return ;;
-       */adm_local/*) return ;;
-    *) ;;
-  esac
-
-# for each regular file contained in the directory
-# test if it's a .in file
-
-  for i in "$1"/*
-  do
-     if [ -f "$i" ] ; then
-       case $i in 
-         *.in) echo "  "$i" \\" >> $f;;
-         *) ;;
-        esac
-     fi
-  done
-
-# for each subdirectory of the first argument, proceeds recursively
-
-  for i in "$1"/*
-  do
-     if [ -d "$i" ] ; then
-        find_in "$i" "$f"
-     fi
-  done
-}
-
-
-#######################################################################
-# Generate list of .in files (Makefile.in, config.h.in, etc)
-# appending it in file configure.in
-
-cd ${CONF_DIR}
-ABS_CONF_DIR=`pwd`
-
-#
-# Common part of the configure.in file
-#
-chmod u+w configure.in.base
-if ! \cp -f configure.in.base configure.in_tmp1 
-then
-       echo
-       echo "error : can't create files in" ${CONF_DIR}
-       echo "aborting ..."
-        chmod u-w configure.in.base 
-       exit
-fi
-chmod u-w configure.in.base 
-
-if [ -e "${CONF_DIR}/salome_adm" ] ; then
-    \rm -f ${CONF_DIR}/salome_adm
-fi
-
-# make a link allowing AC_OUTPUT to find the salome_adm/.../*.in  files
-echo "" >> configure.in_tmp1
-echo 'ln -fs ${KERNEL_ROOT_DIR}/salome_adm ${ROOT_SRCDIR}/salome_adm' >> configure.in_tmp1
-
-echo  "" >> configure.in_tmp1
-echo "AC_OUTPUT([ \\" >> configure.in_tmp1
-
-#
-# List of .in files in the adm/unix directory
-# These files MUST be on top of AC_OUTPUT list so we
-# put them "manually"
-#
-
-echo " ./salome_adm/unix/SALOMEconfig.h \\" >> configure.in_tmp1
-echo " ./salome_adm/unix/F77config.h \\" >> configure.in_tmp1
-echo " ./salome_adm/unix/sstream \\" >> configure.in_tmp1
-echo " ./salome_adm/unix/depend \\" >> configure.in_tmp1
-echo " ./adm_local/unix/make_omniorb \\" >> configure.in_tmp1
-echo " ./salome_adm/unix/envScript \\" >> configure.in_tmp1
-echo " ./adm_local/unix/make_commence \\" >> configure.in_tmp1
-echo " ./adm_local/unix/make_conclude \\" >> configure.in_tmp1
-echo " ./salome_adm/unix/make_module \\" >> configure.in_tmp1
-
-\rm -f configure.in_tmp2 configure.in_tmp3
-touch configure.in_tmp2
-find_in . configure.in_tmp2
-sed -e '/^...salome_adm/d' configure.in_tmp2 >  configure.in_tmp3
-sed -e '/^...adm_local.unix.make_omniorb/d' configure.in_tmp3 configure.in_tmp2
-sed -e '/^...adm_local.unix.make_commence/d' configure.in_tmp2 > configure.in_tmp3
-sed -e '/configure.in/d' configure.in_tmp3 >  configure.in_tmp2
-sed -e 's/.in / /' configure.in_tmp2 >>  configure.in_tmp1
-#sed '/^.salome_adm/d' configure.in_tmp2 >  configure.in_tmp3
-#sed '/configure.in/d' configure.in_tmp3 >  configure.in_tmp2
-#sed 's/.in / /' configure.in_tmp2 >> configure.in_tmp1
-
-echo  "])" >> configure.in_tmp1
-
-# delete the link created for AC_OUTPUT
-echo "" >> configure.in_tmp1
-#echo 'rm -f ${ROOT_SRCDIR}/salome_adm' >> configure.in_tmp1
-\mv configure.in_tmp1 configure.in_new
-\rm  -f configure.in_tmp2 configure.in_tmp3
-
-
-########################################################################
-# Create new (or replace old) configure.in file
-# Print a message if the file is write protected
-#
-
-echo
-if test ! -f configure.in
-then
-       echo -n "Creating new file 'configure.in' ... "
-       if \mv configure.in_new configure.in >& /dev/null
-       then
-               echo "done"
-       else
-               echo "error, check your file permissions"
-       fi
-else
-       echo -n "Updating 'configure.in' file ... "
-       if ! \cp configure.in configure.in_old >& /dev/null
-       then
-               echo
-               echo
-               echo "Can't backup previous configure.in"
-               echo -n "Continue (you will not be able to revert) - (Y/N) ? "
-               read R
-                case "x$R" in
-                   xn*) exit;;
-                   xN*) exit;;
-               esac
-               echo
-               echo -n "                                 "
-       fi
-       if \cp configure.in_new configure.in >& /dev/null
-       then
-               echo "done"
-       else
-               echo
-               echo "error, can't update previous configure.in"
-       fi
-fi
-
-########################################################################
-# Use autoconf to rebuild the configure script
-#
-
-if test -f configure
-then
-       echo -n "Updating 'configure' script ...  "
-else
-       echo -n "Creating 'configure' script ...  "
-fi
-
-aclocal --acdir=adm_local/unix/config_files -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files
-if autoconf
-then
-       echo "done"
-else
-       echo "failed (check file permissions and/or user quotas ...)"
-fi
-
-cd ${ORIG_DIR}
-
-echo
diff --git a/configure.in.base b/configure.in.base
deleted file mode 100644 (file)
index 71cdbb9..0000000
+++ /dev/null
@@ -1,391 +0,0 @@
-#
-#  PLEASE DO NOT MODIFY configure.in FILE
-#
-#  ALL CHANGES WILL BE DISCARDED BY THE NEXT
-#  build_configure COMMAND
-#
-#  CHANGES MUST BE MADE IN configure.in.base FILE
-#
-#
-# Author : Marc Tajchman (CEA)
-# Date : 28/06/2001
-# Modified by : Patrick GOLDBRONN (CEA)
-# Modified by : Marc Tajchman (CEA)
-#
-# Created from configure.in.base
-#
-
-AC_INIT(src)
-AC_CONFIG_AUX_DIR(${KERNEL_ROOT_DIR}/salome_adm/unix/config_files)
-AC_CANONICAL_HOST
-
-PACKAGE=salome
-AC_SUBST(PACKAGE)
-
-VERSION=0.0.1
-AC_SUBST(VERSION)
-
-dnl
-dnl Initialize source and build root directories
-dnl
-
-ROOT_BUILDDIR=`pwd`
-ROOT_SRCDIR=`echo $0 | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
-cd $ROOT_SRCDIR
-ROOT_SRCDIR=`pwd`
-cd $ROOT_BUILDDIR
-
-AC_SUBST(ROOT_SRCDIR)
-AC_SUBST(ROOT_BUILDDIR)
-
-echo
-echo Source root directory : $ROOT_SRCDIR
-echo Build  root directory : $ROOT_BUILDDIR
-echo
-echo
-
-if test -z "$AR"; then
-   AC_CHECK_PROGS(AR,ar xar,:,$PATH)
-fi
-AC_SUBST(AR)
-
-dnl Export the AR macro so that it will be placed in the libtool file
-dnl correctly.
-export AR
-
-echo
-echo ---------------------------------------------
-echo testing make
-echo ---------------------------------------------
-echo
-
-AC_PROG_MAKE_SET
-AC_PROG_INSTALL
-dnl 
-dnl libtool macro check for CC, LD, NM, LN_S, RANLIB, STRIP + pour les librairies dynamiques !
-
-AC_ENABLE_DEBUG(yes)
-AC_DISABLE_PRODUCTION
-
-echo ---------------------------------------------
-echo testing libtool
-echo ---------------------------------------------
-
-dnl first, we set static to no!
-dnl if we want it, use --enable-static
-AC_ENABLE_STATIC(no)
-
-AC_LIBTOOL_DLOPEN
-AC_PROG_LIBTOOL
-
-dnl Fix up the INSTALL macro if it s a relative path. We want the
-dnl full-path to the binary instead.
-case "$INSTALL" in
-   *install-sh*)
-      INSTALL='\${KERNEL_ROOT_DIR}'/salome_adm/unix/config_files/install-sh
-      ;;
-esac
-
-echo
-echo ---------------------------------------------
-echo testing C/C++
-echo ---------------------------------------------
-echo
-
-cc_ok=no
-dnl inutil car libtool
-dnl AC_PROG_CC
-AC_PROG_CXX
-AC_DEPEND_FLAG
-# AC_CC_WARNINGS([ansi])
-cc_ok=yes
-
-dnl Library libdl :
-AC_CHECK_LIB(dl,dlopen)
-
-dnl add library libm :
-AC_CHECK_LIB(m,ceil)
-
-dnl 
-dnl Well we use sstream which is not in gcc pre-2.95.3
-dnl We must test if it exists. If not, add it in include !
-dnl
-
-AC_CXX_HAVE_SSTREAM
-
-echo
-echo ---------------------------------------------
-echo BOOST Library
-echo ---------------------------------------------
-echo
-
-CHECK_BOOST
-
-dnl
-dnl ---------------------------------------------
-dnl testing MPICH
-dnl ---------------------------------------------
-dnl
-
-CHECK_MPICH
-
-echo
-echo ---------------------------------------------
-echo testing LEX \& YACC
-echo ---------------------------------------------
-echo
-
-lex_yacc_ok=no
-AC_PROG_YACC
-AC_PROG_LEX
-lex_yacc_ok=yes
-
-echo
-echo ---------------------------------------------
-echo testing python
-echo ---------------------------------------------
-echo
-
-CHECK_PYTHON
-
-dnl echo
-dnl echo ---------------------------------------------
-dnl echo testing java
-dnl echo ---------------------------------------------
-dnl echo
-
-dnl CHECK_JAVA
-
-echo
-echo ---------------------------------------------
-echo testing swig
-echo ---------------------------------------------
-echo
-
-CHECK_SWIG
-
-echo
-echo ---------------------------------------------
-echo testing threads
-echo ---------------------------------------------
-echo
-
-ENABLE_PTHREADS
-
-echo
-echo ---------------------------------------------
-echo testing omniORB
-echo ---------------------------------------------
-echo
-
-CHECK_OMNIORB
-
-dnl echo
-dnl echo ---------------------------------------------
-dnl echo testing mico
-dnl echo ---------------------------------------------
-dnl echo
-
-dnl CHECK_MICO
-
-echo
-echo ---------------------------------------------
-echo default ORB : omniORB
-echo ---------------------------------------------
-echo
-
-DEFAULT_ORB=omniORB
-CHECK_CORBA
-
-AC_SUBST_FILE(CORBA)
-corba=make_$ORB
-CORBA=adm_local/unix/$corba
-
-echo
-echo ---------------------------------------------
-echo testing openGL
-echo ---------------------------------------------
-echo
-
-CHECK_OPENGL
-
-echo
-echo ---------------------------------------------
-echo testing QT
-echo ---------------------------------------------
-echo
-
-CHECK_QT
-
-echo
-echo ---------------------------------------------
-echo testing MSG2QM
-echo ---------------------------------------------
-echo
-
-CHECK_MSG2QM
-
-echo
-echo ---------------------------------------------
-echo testing VTK
-echo ---------------------------------------------
-echo
-
-CHECK_VTK
-
-echo
-echo ---------------------------------------------
-echo testing HDF5
-echo ---------------------------------------------
-echo
-
-CHECK_HDF5
-
-echo
-echo ---------------------------------------------
-echo Testing OpenCascade
-echo ---------------------------------------------
-echo
-
-CHECK_CAS
-
-echo
-echo ---------------------------------------------
-echo Testing html generators
-echo ---------------------------------------------
-echo
-
-CHECK_HTML_GENERATORS
-
-echo
-echo ---------------------------------------------
-echo Testing Kernel
-echo ---------------------------------------------
-echo
-
-CHECK_KERNEL
-
-echo
-echo ---------------------------------------------
-echo Testing Geom
-echo ---------------------------------------------
-echo
-
-CHECK_GEOM
-
-echo
-echo ---------------------------------------------
-echo Testing Med
-echo ---------------------------------------------
-echo
-
-CHECK_MED
-
-echo
-echo ---------------------------------------------
-echo Summary
-echo ---------------------------------------------
-echo
-
-echo Configure
-variables="cc_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok vtk_ok hdf5_ok omniORB_ok occ_ok doxygen_ok graphviz_ok Kernel_ok Geom_ok Med_ok"
-
-for var in $variables
-do
-   printf "   %10s : " `echo \$var | sed -e "s,_ok,,"`
-   eval echo \$$var
-done
-
-echo
-echo "Default ORB   : $DEFAULT_ORB"
-echo
-
-dnl generals files which could be included in every makefile
-
-AC_SUBST_FILE(COMMENCE) COMMENCE=adm_local/unix/make_commence
-AC_SUBST_FILE(CONCLUDE) CONCLUDE=adm_local/unix/make_conclude
-AC_SUBST_FILE(MODULE) MODULE=salome_adm/unix/make_module
-
-dnl les dependences
-AC_SUBST_FILE(DEPEND) DEPEND=salome_adm/unix/depend
-
-dnl We don t need to say when we re entering directories if we re using
-dnl GNU make becuase make does it for us.
-if test "X$GMAKE" = "Xyes"; then
-   AC_SUBST(SETX) SETX=":"
-else
-   AC_SUBST(SETX) SETX="set -x"
-fi
-
-# make other build directories
-for rep in salome_adm adm_local doc bin/salome include/salome lib/salome share/salome/resources idl
-do
-#   if test ! -d $rep ; then
-#      eval mkdir $rep
-#   fi
-    $INSTALL -d $rep
-done
-
-echo 
-echo ---------------------------------------------
-echo copying resource files, shell scripts, and 
-echo xml files
-echo ---------------------------------------------
-echo
-
-
-dnl copy resources directories
-
-#for i in `find $ROOT_SRCDIR -name 'resources' -print`
-#do
-#  local_res=`echo $i | sed -e "s,$ROOT_SRCDIR,.,"`
-#  local_res_dir=`echo $local_res | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
-#  mkdir -p $local_res_dir
-#  cd $local_res_dir
-#  ln -fs $i
-#  echo $local_res
-#  cd $ROOT_BUILDDIR
-#done
-
-dnl copy shells and utilities contained in the bin directory
-dnl excluding .in files (treated in AC-OUTPUT below) and CVS 
-dnl directory
-
-mkdir -p bin/salome
-cd bin/salome
-for i in $ROOT_SRCDIR/bin/*
-do
-  local_bin=`echo $i | sed -e "s,$ROOT_SRCDIR,.,"`
-  case "$local_bin" in
-        *.in | *~)                    ;;
-        ./bin/CVS | ./bin/salome)                    ;;
-        *) /usr/bin/install $i .; echo $local_bin ;;
-  esac
-done
-cd $ROOT_BUILDDIR
-
-AC_SUBST_FILE(ENVSCRIPT) ENVSCRIPT=salome_adm/unix/envScript
-
-dnl copy xml files to the build tree (lib directory)
-dnl pourquoi ????
-
-#cd lib
-#for i in `find $ROOT_SRCDIR -name "*.xml" -print`
-#do
-#  ln -fs $i
-#  echo `echo $i | sed -e "s,$ROOT_SRCDIR,.,"`
-#done
-#cd $ROOT_BUILDDIR
-
-
-echo
-echo ---------------------------------------------
-echo generating Makefiles and configure files
-echo ---------------------------------------------
-echo
-
-AC_OUTPUT_COMMANDS([ \
-       chmod +x ./bin/* \
-])
-
-## do not delete this line
diff --git a/cvs-tags b/cvs-tags
deleted file mode 100644 (file)
index 6991d06..0000000
--- a/cvs-tags
+++ /dev/null
@@ -1,35 +0,0 @@
-Start-v1_1a: ?
-       ?
-       
-V1_2_1:        ?
-       ?
-
-V1_2_2:        2003-09-26 17:00
-       New data structure in SMDS.
-
-nadir_1_2_2: 2003-10-06 12:50
-       Branch after V1_2_2. Developpement branch for user nadir
-
-merge_1_2_c__1_2_2: 2003-10-17 14:35
-       Branch after V1_2_2. Branch to merge Salome 1.2c. Initiated by Paul Rascle.
-
-MergeV1_2c-1: 2003-10-19 13:49
-       End of merge_1_2_c__1_2_2 branch. This branch is ready to be merge with the head.
-
-V1_3_0b1: 2003-11-12
-       First pre-release of 1.3.0. Include the merge of 1.2c branch.
-
-nadir_update_MED_v1_3_0: 2003-11-17 10:22
-       New branch for user nadir. Synchronization of API with MED 1.3.
-
-V1_3_0b2: 2003-11-18
-       Second pre-release of 1.3.0. Synchronization of API with MED 1.3.
-
-V1_3_0: 2003-11-25 08:52
-       Release 1.3.0.
-
-V1_3_1: 2004-01-05 14:28
-       Release 1.3.1. Added Netgen.
-
-merge_1_2_d: 2003-01-20 11:25
-       Branch to merge Release 1.2d of Salome Pro.
diff --git a/doc/Makefile.in b/doc/Makefile.in
deleted file mode 100644 (file)
index 7295ede..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-
-# -* Makefile *- 
-#
-# Author : Patrick GOLDBRONN (CEA)
-# Date : 30/11/2001
-# $Header$
-#
-# source path
-top_srcdir=@top_srcdir@
-top_builddir=..
-srcdir=@srcdir@
-VPATH=.:@srcdir@
-
-SUBDIRS= salome
-
-@COMMENCE@
-
-docs:
-       @@SETX@; for d in $(SUBDIRS); do        \
-          (cd $$d && $(MAKE) $@) || exit 1;    \
-       done
-clean:
-       @@SETX@; for d in $(SUBDIRS); do        \
-          (cd $$d && $(MAKE) $@) || exit 1;    \
-       done
-
-distclean: clean
-       @@SETX@; for d in $(SUBDIRS); do        \
-          (cd $$d && $(MAKE) $@) || exit 1;    \
-       done
-
-install:
-       @@SETX@; for d in $(SUBDIRS); do        \
-          (cd $$d && $(MAKE) $@) || exit 1;    \
-       done
-
-uninstall:
-       @@SETX@; for d in $(SUBDIRS); do        \
-          (cd $$d && $(MAKE) $@) || exit 1;    \
-       done
diff --git a/doc/salome/AddNetgenInSalome2.pdf b/doc/salome/AddNetgenInSalome2.pdf
deleted file mode 100644 (file)
index 34fd252..0000000
Binary files a/doc/salome/AddNetgenInSalome2.pdf and /dev/null differ
diff --git a/doc/salome/AddNetgenInSalome2.ps b/doc/salome/AddNetgenInSalome2.ps
deleted file mode 100644 (file)
index a81aa96..0000000
+++ /dev/null
@@ -1,13935 +0,0 @@
-%!PS-Adobe-3.0
-%%BoundingBox: 0 0 595 842
-%%Creator: OpenOffice.org 1.0.2 
-%%For: nadir
-%%CreationDate: Tue Dec  9 10:49:18 2003
-%%Title: Proc?dure de rajout de DATA dans le produit SalomePro
-%%LanguageLevel: 2
-%%DocumentData: Clean7Bit
-%%Pages: (atend)
-%%PageOrder: Ascend
-%%EndComments
-%%BeginProlog
-/ISO1252Encoding [
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
-/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
-/zero /one /two /three /four /five /six /seven
-/eight /nine /colon /semicolon /less /equal /greater /question
-/at /A /B /C /D /E /F /G
-/H /I /J /K /L /M /N /O
-/P /Q /R /S /T /U /V /W
-/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
-/grave /a /b /c /d /e /f /g
-/h /i /j /k /l /m /n /o
-/p /q /r /s /t /u /v /w
-/x /y /z /braceleft /bar /braceright /asciitilde /unused
-/Euro /unused /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl
-/circumflex /perthousand /Scaron /guilsinglleft /OE /unused /Zcaron /unused
-/unused /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
-/tilde /trademark /scaron /guilsinglright /oe /unused /zcaron /Ydieresis
-/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
-/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
-/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
-/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
-/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
-/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
-/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
-/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
-/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
-/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
-/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
-/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
-
-/psp_definefont { exch dup findfont dup length dict begin { 1 index /FID ne
-{ def } { pop pop } ifelse } forall /Encoding 3 -1 roll def
-currentdict end exch pop definefont pop } def
-
-/pathdict dup 8 dict def load begin
-/rcmd { { currentfile 1 string readstring pop 0 get dup 32 gt { exit }
-{ pop } ifelse } loop dup 126 eq { pop exit } if 65 sub dup 16#3 and 1
-add exch dup 16#C and -2 bitshift 16#3 and 1 add exch 16#10 and 16#10
-eq 3 1 roll exch } def
-/rhex { dup 1 sub exch currentfile exch string readhexstring pop dup 0
-get dup 16#80 and 16#80 eq dup 3 1 roll { 16#7f and } if 2 index 0 3
--1 roll put 3 1 roll 0 0 1 5 -1 roll { 2 index exch get add 256 mul }
-for 256 div exch pop exch { neg } if } def
-/xcmd { rcmd exch rhex exch rhex exch 5 -1 roll add exch 4 -1 roll add
-1 index 1 index 5 -1 roll { moveto } { lineto } ifelse } def end
-/readpath { 0 0 pathdict begin { xcmd } loop end pop pop } def
-
-systemdict /languagelevel known not {
-/xshow { exch dup length 0 1 3 -1 roll 1 sub { dup 3 index exch get
-exch 2 index exch get 1 string dup 0 4 -1 roll put currentpoint 3 -1
-roll show moveto 0 rmoveto } for pop pop } def
-/rectangle { 4 -2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0
-rlineto closepath } def
-/rectfill { rectangle fill } def
-/rectstroke { rectangle stroke } def } if
-
-/psp_lzwfilter { currentfile /ASCII85Decode filter /LZWDecode filter } def
-/psp_ascii85filter { currentfile /ASCII85Decode filter } def
-/psp_lzwstring { psp_lzwfilter 1024 string readstring } def
-/psp_ascii85string { psp_ascii85filter 1024 string readstring } def
-/psp_imagedict {
-/psp_bitspercomponent { 3 eq { 1 }{ 8 } ifelse } def
-/psp_decodearray { [ [0 1 0 1 0 1] [0 255] [0 1] [0 255] ] exch get }
-def 7 dict dup
-/ImageType 1 put dup
-/Width 7 -1 roll put dup
-/Height 5 index put dup
-/BitsPerComponent 4 index psp_bitspercomponent put dup
-/Decode 5 -1 roll psp_decodearray put dup
-/ImageMatrix [1 0 0 1 0 0] dup 5 8 -1 roll put put dup
-/DataSource 4 -1 roll 1 eq { psp_lzwfilter } { psp_ascii85filter } ifelse put
-} def
-%%EndProlog
-%%Page: 0 0
-%%PageBoundingBox: 18 18 577 824
-%%BeginSetup
-%
-%%BeginFeature: *PageSize A4
-<</PageSize [595 842] /ImagingBBox null>> setpagedevice
-%%EndFeature
-%%EndSetup
-%%BeginPageSetup
-%
-gsave
-[0.24 0 0 -0.24 18 824] concat
-gsave
-%%EndPageSetup
-%%BeginResource: font NimbusMonL-Regu
-%!PS-AdobeFont-1.0: NimbusMonL-Regu 1.05
-%%CreationDate: Wed Dec 22 1999
-% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-% (URW)++,Copyright 1999 by (URW)++ Design & Development
-% See the file PUBLIC (Aladdin Free Public License) for license conditions.
-% As a special exception, permission is granted to include this font
-% program in a Postscript or PDF file that consists of a document that
-% contains text to be displayed or printed using this font, regardless
-% of the conditions or license applying to the document itself.
-12 dict begin
-/FontInfo 10 dict dup begin
-/version (1.05) readonly def
-/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file PUBLIC (Aladdin Free Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
-/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
-/FullName (Nimbus Mono L Regular) readonly def
-/FamilyName (Nimbus Mono L) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0.0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/FontName /NimbusMonL-Regu def
-/PaintType 0 def
-/WMode 0 def
-/FontBBox {-12 -237 650 811} readonly def
-/FontType 1 def
-/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
-/Encoding StandardEncoding def
-/UniqueID 5020945 def
-currentdict end
-currentfile eexec
-E98D09D760A3C22CF119F9DC699A22C35B5B35ED6AA23593C76D54CABB5E942BF7D6DD84F1664B89
-699C74B472DE9F8E6DF925F6C4F204E9F1C639B4DBA988ED2AC419FF2B2BDE605B8EE3264EDD6641
-2D4F21C64AC522BDFC7C5502F9C3F3E5592B3B2093D33C9BFAEDD2D49E89AABAA832E23F062E91A2
-5032519D1868816E44B4E0747795003D7930299D6E1E2A5BFE0D595DC97E140989CE81D8D7F852FF
-9CDC7A1B1B598C69131DEE005B415805A16D8A123E6A2261C63C769D2F4B60FA2C438AD7D199D8E4
-5F7E7C9A605C8CA14E21FCD81C9A515FB8DB6F99604534D06EA9D87FE0FAA852899C9D0595C7A97E
-6C55F79FAC45CD38E87B10D210CE7501E88C8FCD3444354365FB893A12F596AE2C1E70D5819EE0D0
-87D10BF8DA96F3DABD5405D28C4228C6C31BA4052464859640933FEEFD8071C0C84CDD829A9B1D0B
-A01F25A4D50EE2EA2B45160CA6333B2D2800306ED2BEFDFE155E9D9F9342EB8D5B0ADBF2460CCC98
-643FB1287CCD28ABA7B5CAB92EC39EE2E918990372B16F8487EBA30EAE88708B6CF33B6C015D8096
-C7CFE2F139F52052E3925C0D50FD64CE68236D59CB83EF56BFC584150EC38065059F3308AD6F9A99
-F83EF4E6CB13855C8175E31417D190D036B387D3952344A950F4D8C7781B307A094DF1ECAEE4D2C2
-FD747BC6F7F9C6BD0E90C19294F96C8C5CFE88FB34C477574A1B1630B8CC591529E59B20794DA32E
-61DECDA8ABBD1AE956CF74012AA01D42EE01E861B0AA6897C864788AE59DEF43C493246FDB1ACA55
-4C12594BC7B33657A9ECC9E3D1472EF826073F632BE540C35FF6FB40566773F3BB2204D3A579A08C
-CBC844C14B18C350F003B9DA23A570C362D6003893CA32F86F59B829C78EE3188B6E3F7FA81D7F62
-2825C639638DFB78B7AF1F500F5B450FA54DBFA5CBA277C794ECE93275A3DE0B452FDC8DDC2993BA
-A42F28A636008CDCB03EBF71BDCAF35019778993443F88412AD2AD0D7155A3944606463266322DBC
-0244B07DA1E9C27A27B59664E8566D7A54CC03E995AAD008B0A17E2C3EF61F720CE7F7788599C4E4
-4C709CD5C31B11107F16AD70B17B9AFE2E8CD922A7428DAC171427FFAF51067307FAB0ADB530E701
-FD22DA22C4CD3064067BD4F6089C4B2C87937DD426E4E9D2F60E608288BAC9056554D04947E69200
-61E379CF5E81BFD32FD37EFAC1F61CEBEE551B0851516471A7472C60DF89DAA9EB1DC5A67E479745
-3E69B9E22BAF4E3CCA4192D603295B018C4AB69D18DE52DFDF15E96B557F290A4B8C5B1E7A6CACA8
-1F2351B97ADFC36995ABA43803A6E5AC04A3C93495F6D38106B8B144449C07D1358210F9176E1565
-72363CFBDE576BFDF99FA329DD1346E83F79E06CF68250CA57A68931BC7F342AD295D0CBA17AA95B
-B8EEB53EA6E8E660B814E9F857CECB14F44A43288B69A9E7908D55BF19E844359879D28CAEF1C38A
-36420185D20DFB32C2E002202800E8EF3D67C5D50E919657CA958B538D537D503444865331D79BFC
-40312068D72364503BD0CC84B5F30A74D8B5B6A26AF2DB764564FB65A6BA8F9051AE2B4EA458D46A
-4569F30C6E77DC097356770362E6CF3F1661074778EBB44FF7D1E3B64FF75E77E11FE525BB121C65
-46CFD13300CA1F02D571B82A5825E6226D14FDCF27F06D87452A8B6C5DCA658535CEE2A795E58137
-D48E566B69D53A0C3B766E84C51EAA221C46999CC8065ADB2F129D5B630FAB1814C0C33B5AEA0EFB
-B6E994D80941B53079AF96D90A0B924F9B0E319BED9836B8F9053F868363D3CA554CBB181863301F
-8CB940872ED5FA7BD18CE39218B5AD8AC57D0F752D941076B1C64D99BE0DB86D7A6D96510D772EB2
-4C587F11779BD21CFE5BDE1F29C1EF9022B2B8BCD7F91153C845906722477829C40111D810480F3C
-F62DE8DBA7FD86CD236E656618CAF6FC46827FBC4898EA7672F8C9971AFE43E0E01EC8B77D4AF48C
-BF1210E98C1DB15C16D149BFF58AB0270CF015B107A3A50F5DC8F37FFB92EEC8CB6778DDB7CE4AAB
-C464C4AFF654223006A550EB52485A23D2B4AA7198D3CD54418102F1E9A4FBDE37B841E56F5C2C53
-966DB9B66B000E4588282E3FB80C2C519339F0002D2F83C979EDC5827A3B3C8EF8810A0F9DACB6B9
-998E9AF6551F56313DC4011904CB979AA2D32B11A811BC248141E4B9734D9FB7982A5671002D8279
-CAB93ABE057474628DEFC95D43890DB1ED34CFA8A20BDC3D874E7679A396158E522ED0AB969A4E3E
-C7E4474E192590504D54DEB7B260B7935C4E56548A7D121AC1F741F8CDF259EA1B5813175A77A1D2
-D30BA26F65EB765A04C09ED51F69F41551ADF399E6AA2FC09788137BEA4913F17B8EB838C38FB272
-1FDCB55FD65697FF0B850E7D3D1CE266BF90F7EC06A9A0876BDFE767D3A918B092FC78C775F945CF
-1F96E859C03DBF630D9A940939654C3549D8F7921CB94EE23D5A0535DE9DF31EA0F937F860B4F220
-A99ADDFC343D7CF7BFA0B803C12C26403F0DCFFC8EA786D0D8A8D9C367419CA8AE41190CE93A8086
-583A1E6C9D70B612C84D87D2EEAA71EC2DC12F4CDE6A821303D5F6A9BBDB7EEDCD289E80FA3B75F4
-7F481B50719DCF4A142069393593B9AF9CCEEAEC56A35B8787193D7C88113E9E1E221D151E093B01
-9EF89F6118BEC4735103CC8003CC5AD1B6727B3226CD44C497DA7052DD681695DBEC3397F9598C91
-77701C73BF0594CE93F23D50EC5BEE2FB9DA1FC966DF148B27B28EE3C89526DD6625E2887F9FA076
-7C127C609EE315626BC14D274FBEA56528DC06A27B2D476D46E9E7916590B156A5DF04A6CB15E362
-45D77021767B6E5BDFCC679670263FD891446C3371B11BB6E1DF60F960AAB4149D7753E6A5C33810
-C42C8BFF4E935003388506F8278BD7CB672F132E065AE684DCA0B9064D01DD620E7FFDFE04F14277
-EFE8E60159BA0FCA3FE2F28B902D4AC275D19F0AC6971EBE827C4A232D87650D2688345BCA78F879
-077114F0463C5F058107B669566F8171E4E284D278405580F04BFFC9902784216E0C9A17AA9B2935
-E66E18A783F723BE044389B7E9D62AA36818FF2EA406C3C1A9D2F3436F3EE7DB8BE86AFA8DAA6A4B
-1B84611350D8D27605509612B515E16AA843164D5D0805E36A2B9EF74C5F6A0B9D59A04B55697123
-27F4B1B30E9587CD103337639967CBDC655AA46E80D2CFD24BEB50815B5338E522B3A7AFE8362AB4
-F05D8BC52BBA9C5089ADA8C89529B0275AF422EB540D31A938B8740860756325B966B36817115213
-FAAF92DE63F6BAE1E0064BFBC5588098B61EB83C71F1C2082436D37DAF1ACBE186FEDC4BE7C1233B
-6F18BEC5F99002D21CB7864E4811F7AB3C03003E1E4490AD1AC793BD28FCD5EF0E6CC30EF39A08C5
-2F71939B0CEF620DC69E31E39D6DB969049031B0C92EF2DB653D97F370141456A52985076B268652
-FA2648C792780BAD637C4D7581FB2D62011D57E293719487CF2D1F013CFAA532E1C2D39178D51272
-A6AF041440BCA174B5CC902BD7390C7D3695056CB4BD7791F9FB6D88E7A70DEF2C97869F5DBC5BD8
-23C517C7B7C39D624DF627DC9653EA5347BFDA80B723F05F6DBB4C9EA501D862ACE05B9DBDF21B70
-56FBCD8C6D4B85873DCEE6166C8B5ADC0316CA12D9639F361B15A42F00E1D62EDBCA1111972FA0F4
-5758BECB31DB38316F3CDFE1B41748C93ED58B67E9B57ABBED5924A6D53E99FBC9A994A6489A8BDF
-13EB685548B4DC6D62DA7426C22227D4D43B6FFC7B5EA91C896730253E8941AFEE588359C2BECF6F
-FC415B9EB6D31CCB0F6C7F85853E6449FA6D627A97A3CE8303F148393ADCCCDFA2FE085C6908BE5C
-3C05AF00A6F02840206C3253A559AC5C049BDDFD11AD9B118403B84DA10AE3C470CB9A9A2D1D7B73
-2F59F5FE146DEDA60AE750F551AAC934621B4470E1BC324C436303E25F81D0DC3188BE0D6FEC5414
-C20E4CB18952E12CB6423DF7124627ACDE145500D77A97A8BFD9CB50D1FAA008E2CE2B2505A4749F
-1EBBB092C347023714055A9B63353AF9E7FEE05BB54C9843698101F79888A91531773830C2C967B5
-88D3ACD2192883D5CE3962D51084FC653EAE2C5FB2DA41DACEFB5C76812D2EDB5B109677289CD199
-8D457FB1023A19AC67295BBC1A9A20A426B06A368DF3C5DD083CB1180D287F5500F2C635EDE157EE
-FCEEC5503447382D15C748C1E35F68753992E5C90F900DE54D18F8E1B355D1076ADFB1F3590135FA
-D1A36F028E44F48ABB149B80CA9A54614D467F8D71CB310BBC7AC7100261092DB8C5BFD39E0AC6BC
-2C9D6CBC3A8C05FF8A74CB21608EC4A4CFE4CBAA2D056DBA14206106044DECF59F957EF8A9CADE4C
-9B19D8D30DD4FDE6A9548E50DB51ACA73330142153FC36B69C1C8D5B26D0C689B7040E81AC2C864F
-D7C097C99BE5953843E172C97AB5684F35FB03A725A89DBF371F08DDF40A1531FC1B676DB0E1543A
-EC6E97D3D2E4AA3D5831D8B3C952ABBFA112352814FB6FAB61A0D680E6640F6AEC8426200CF61286
-F7422CB2F78C61EBAA36D47EC16D7FAF8B4AF31D090CDFA255D9D7C61D46CFB22A7D6E1758E71ED5
-67E00CBD8E8F468DDFB477F091A2F915627F22FF47B876544BC1F03B6BBB98385F009C20BB1AA2A7
-A78674692B8EAC2E3C8069B79E679338DA57F72976810F845BEB6B9ADD32B95D78E5E60F16DD1668
-9C05FD82D36A3115BE8ED494A74DD211D58A2CDF983FCB9CDC29BF7F0E29988FA23560EDF514BC1D
-183F3B2A22C09FB179B47E05ADEF48DF02F31C29875D1915037B19407764A4292FE44E741651A8E3
-BEB5F0D972B6327090F664417C84F84FFBF0AFFF8B1D85C822D90730AB4140C42A51AA8B1DBE4398
-4EA8566040EB8B341CCE23FD3F69DD235A080BA5C69AECB9BC732BC2D7D40617DDA6B79FB6EE40C3
-556C7DF9B23DAD89E94054B1345DB8402AE679FC4655A4A776C0150463F8DB2BFC0608EA1F124E22
-1DDAE6026B5E5D007A7E4A0D6B3B0CF3A2669E67C5E4F01551966A7BC48F2F4B6A87E740D8095E63
-F77C7A027F26B52F2299DE5B8A2F6209BCF3D31CB0235F998F781E5CC81E31DC424E008D46EC0920
-2951E5684804A0592EA47D6C788A20487BEA2EC8F2E6C1D7F378B62DB43CA43C4B366F8B4319631C
-FE9854F0E10321CFA3B01C873584863BBEFC23C72C05E695B56E8A52E89AA2DAB543834D34DCAC5F
-ED08DC51825C5257AE59850D101D84F4CAA1D29FC932F9E0EFFBF7A9A7F3685F61F0490CD3CC8988
-2DB52A757A6AF4C4E67B407BD2316B1C0FFE7DC54E43C87B874F57E4903334E2140B011484863CDC
-ACA331175F2CF3D72E0042855983AAF8853D3015E870FF0807014C31D55060DF3FE1FCE157324481
-2744AB51322444632F9AFDA6706E320FFE82B8CBE242A19DF00CE73EE48E25FF49D5871BD3E60652
-298FE3E8D400609E232E0DDC794C0579ACEF89E841B2EDCA50D51151F65E8C1CC3B01EF1870558F0
-BF5743718C3E068617E81BFE120C6CA16E0924BFC2541177D53671CAA3AB641C41557DCDAE1A3461
-47B5E999C4541B08B4AFCBC187AFD653D5B5F8386DF6AD8FE69E21BD0567DF494F736C6A184FA4DE
-48DC9F347787CA96E2E00A296C2DA05C2AD9BC423E9CA428D7F1FA12DC9353A302FB8C529AF8688C
-BB543B45B2717EBF8F6C497935F4F3BFFD285E0402AB7544B3CA4643AE5A8B5250ED987A95FC1F27
-5B9707ACD0641BD0EE2AE9758494F8D8A51DCE408A38AC20EAF0852D72D84D0C6BE973326793AEB9
-55EAC6FE0A2813A355DCD22F6F2CE56588D1C055CDDFA98878BCEB6A018DB22922D2B600A20F8184
-2E665DF41013CA0947C4237C2BD60A75E2FD1A3FB8C8FA19485730B87461AD466ACB02DF8CA24091
-4FB090B3D2B41EB6B8FF05E1A59D9FD668AF70BA5BB72778953BA55FC5F9F626043450E1D09BC83D
-8605098ABEF884639A37809A32565CBEFB3FF39EE53D6C18C58C272BB928E4410E361E59A50F242D
-69747A032617C52DEBBF62364AB5A96EFAF642D9D82BA679B1D70FAC10A4EB62FA5CFC308E86368A
-AAD7E75948F43598CD1C544A0D4091374D7E88D4522CBE902391641327E888E7748FA889DCE67ADE
-61699E7D77763681CAEE9B1CA8837B2F7EF9C18CBCC538C465C8E2DD34616953CCB6030A222C728B
-834911C1A179E2C770289407AB28B303E724D97F747D6134B425216A64C6E0B60F633E2B85300047
-E4C90339CE030A0FAE31E830C8ABA5AB3386A3B69267351A7BFDD66356AE5E57FB2994452993E90D
-E7C4E260ABAB93C37831856A650D56E44172FECA01D6C7C380F250B82473960D2A2A5FB6B4DA668F
-46E624ACF7FA0FD4490F485D640A3ADFC9F8652E7A38CE5799F770C3606DB4B8B947F93967F779E3
-A3C0572F13A5A187D31D7BD12A5C7BE23CB6ED6192086241B76C5BA6983DB9C93E4B208D707D3760
-F03CD6272EF3A4CE89B8E52E6AC5871A3D03EB975759AB4BE239E5EC7842CBB333E692CC607C722E
-185D3C39164DD320C6945629C70FF66A5237C0A9520A1FAD6EB9816069351AB0F135D90CC0982B14
-7D2294AE4A38A527EE40BE9CDE2512AAEBB590E134388BB171D0956A7C4566D65A9A041BE6C4F883
-6B3EC3D2ED1B48B566A783292B15B6127920D247D494F070BB20BEFF60640B11B276DDEEE49706E8
-B2B21BB40B7F00AAFC594C492C25DCA774E0B80D82E927448DE2E74A9D0DC7AC9260096EAF187B6C
-D6AEAA6D1DC4205B4411122751A5B22688404EA7C5861730371FFAC10F5AFD4727A0E402AB5EA757
-606B75EB86A05E8F774D6E430A1A3FE2A37EBB06700474239FB1CFA05EE44B91B82244C575B52E7F
-AF934B04EEB0D933FEB57EBE326D75821C8B23EAA85B583AED4320B7F04B9F2DC591091216FDE52E
-064BAAA9C2C9D9714B95A4558C21F3CEBE624B5403B31508F178581AF6863083ED762F1E2E34A45C
-FDD71660D626FF8648F5D6C5E580D4765A67FB6159EC8077A9F0A88038C8D3D7C77FF0926E2123BE
-874F7BCAF129D55A5B5960F824BD1728ABCFCC51D23936DE9A25C408D786E44C3A2BAFA4423177AD
-060D21D38E15E23EB6FFC0B4120E814695D423EEFC2744A1FC81B4DF89D76F0A6803D8B14E75538C
-AAD03A72517B86514F6952F6FD619D9E910D980F00964DB325318C045BDF79647F453D4A5CF4E61D
-D5359782827229310405FBCF6107C3AD9DDEF9A9A339D5D5A6EB2E7838A0A43221BD62CBDF732DB0
-A638A52016FB35BA7761AEC846A023D3BF2D1BB183543E81EB7CAC1E5970CDC6F068C5EA118C7AAE
-528D1396E6DC939112DA4460C890EAD5C01BDC438F5BB734218BA6270ADD0DC1778FD8AB16831D6A
-302B814A1A44B07EDC65956C9E6CF4875DF521F3CE5B422F71081B6D69BD270F739095C9E81C0377
-934A8BC6390C420C4E4CDD9CF7E32544C68D884E15ACA3BCC07FC8C132D8FB9D752C15D75C52C288
-57E2EA461A6FCAD90C56843513F74461F18D7164BC597A28AE4BA7C86EE1703535A9B9ED50122627
-71FC12F102E800E0E1AF7BB46681BD2B14B614CEA91B7B2AAA35235DE76C0E113C92688F8EC81277
-D58C3406778E1EC1CC15F1CD9A137C8FFDAAB99ACE3BFC782916F1A877170589A92DC921E6740A22
-B84DC6BACDABCC76E64C79E3A588D80F8F4D376E1B426F15751CF7391102102F0AFAFD8B22DFDEB5
-48AEB5F30B1673023D22054A13391A0EC08DE6E7B685A0D031AABF20B7C62187C0284892D5EAADF1
-21BA28263EB863D5E36EA9C06A77CCFC0E17F593961591F84D82AF823EFE41044C8D606FEF83CCC7
-B0E961E7994DF8A3CC36B209D953E250ADAB8D22D7F2B4E2C9CA39EFA2D93E56195C1560E30A5190
-CC5B17FAEFCF250DF79F6B624A4B917E11C332222FCCFEC4F6A47BD9E75DA9854FC3F7AE554E91ED
-DE144D7AEF38A0E3EDB5E5A5626374DB94F022C8CF549093041DE00D7269B7CE544E748439BA2870
-718C08E58FB4A77D93EBC04B7957D272AE1601D41BF85A2BADAA0DF73B0D3841D4839C85677FB2E1
-5F1D6CE592669FF4BBC9C69DBA334DC37706F2F6BE83D5863E8CD6A30C08640AAC4C233684E66B4F
-E6B62D4A8BE9D531E47BEF5640D9B5C27D990092BE1597F6995C8A77BE9C18AAE6C1CF130775DDAC
-41D34438FC7AD8E042CB56CBF2944932EBA7D053E9376FF398367450E35A1945FE23E05C921096A1
-5454721FFD0F429A3E06DC3ED36F1C170BE79C66996EF8337AFF85B90C5D3A4A94455AE9FA32E211
-7A63E59001F052D5F6223125BFAFA40901E98960ADF7BB886729DCA82FC3B8CC52B37FF2517299E1
-D769057F8154FB95582F02CB0BECC873A9C71796ADBD3E91324FAA94F2C41CF57C30B5897D031C02
-D256C909E080E70BFD1F32E69EF67031138C2DDCD1A8E4B65E485C23C3E450ABDD9815512D6F34A8
-4B9DB715DB2C7A93BFB424316E1AA44397749CB01088428F149A3B4324737ED9957FD388248462AC
-1B2610D72BF5C073ECA567E7385CC959E37CAC7E05470160FFA5A9F63B8E9B082937E911586EA165
-374938F492EDF28CE6020953A5B5CCEC7737F9D9CC8538C4339567AAED3794ABA3B9F4EAE65466E8
-E326F6C399B36355935FBDCB9972F10B13494DC25097FCEC5A6398F275C8C151558E74C5175F7BAF
-4155E36B733F75CF9D5C5979B0764F14D8306E06BA24BF791141E404C69F3F8FCCD91B9C58C2C671
-AAE7D4F9E5D6414E46ED633A5F78AA5BF04E652246A066EAD9E582B181CC196EA2D3CFAA383B5D0E
-4CAC9336E119C08CC6AC55CBFBAE147C623B400453BBF447E96DE036FC025624384359EED7C7D5F7
-858DC0521377CF647A157FC3F188DE5EEF094DBA125510FDE34C570D7BE76AB5DF0A28BF45DDAADB
-EA7EEEDB936332DFE93081E0AFD3FDD46BED08D6914B2EFCFDC41662A33B90B03D76D34F48D30FC6
-BBBB600E90E6AC7243FDF026762A44B4D6E4ECBEF48C9D7B696AF29EEE063E557D8FCF0F09E0136F
-45D17E608DA36E59F2AECF8493F8D62536119B5F7E1554DFE3F6E8D7C9A2C6F557D18B4AF92C9F6E
-050975C3B5C54F9B5F4E39D600B6FA2CD6DE203A174028CBB2A201AF126D1013C229BB82CFD013ED
-199D01E51EE2780FE896E01C63C655087A3E61A7F1029FA5E97EA1872F1B45F22282DDC317E17926
-7368CB52DA9444F6055A3C653659CAD2A1D8712BC2B1B32C1DC6906D957FB88524EE066156ED6BDE
-B8D832F9338F9912E29A250A8C4674E667C1C278B677AEC9972BE83CBA3FB779893FCB8F81A323AC
-91474BA2A2334A07BB5628E905C518E634F6761A3289056F83D5DD7B3890987EEE1C18FB2D379CC1
-905F1AEB3B3D2AD578F0D6C845D2D40C4BCEE3F71C90E68E5417BB8CDDD878D83BA80AD8485F4067
-E5C3CABF28AB56CBB219C0AAB8FFC6C7E192BEC8CBCA1459AE4450AFCC81B9548F40CE2622E5A7C2
-81F74DCC02DAD57EFD92D072318DDF05BF42F1EA8163071E23949B0179CF7DE64677CA99B23CB926
-B3E294194EC13397EA1DC9A5E1CDCD828156CD71F81B64167D4FB01E6002713BD8AC6F82B20CD369
-9C6CA4704DC5C65A2D66EB155B7AF1C9BB46469416FB49C1C7E17A30A5F045271D7DF3FFF2F42C6B
-470701C381E3456A500C6BB3D0E47B4D91C5F34B49BB6272F1F8698B307D89EDA3A1565DAD1C0864
-627560CF922DCF5B34C67860352390B282F95394AA2CDE0E97CE3ED39546A6AF1C52BFCF81A29BE8
-2C47C99E8050E4889E4575B75F39E662F2DB7420673797E2ED3D67CDA7AE2C15D0A0A794D57D168E
-BE13214E89E0209AB2C0EB7784E9491AEFA3C02D0DF3AE5365A0FC4AE023CAB528162C7A1B173664
-9DFADDACA8DA5FA18B7D6489E4229E9E24D38A620464A744A5C60F6F9D334B908706B738AED18669
-8A8B278341FA4D65A0A88680BA484694921512F7DE93337FC1C02BBE6E64AF2DAD07603279D87329
-1D1F4D39C1DD6D89C90F65240F4808F6F1115CA55B88E242565E59F3BBF1F10EC7B88872E9AE61D4
-4CAE185463EDFAF7DF63DE4D2207D307AFB61501892965170D2945846FCF5973A1D458607F50C15E
-06E5BEC715E0C156259AAA6C735593E5564F65F443B78CC7512EC35A56F126DF9D30974A40872E42
-65E1AE5FD483CFCBBBA26DEE426CDC4721F19C3FDA86ED7AD4FA1120F63669BEFE7002B128CEAFD8
-C63E8AC09943B6CBDFB3D2476A026C00A8FF81B1F651B97F310C82ABA5F388CC1DB5AFCFF5996D52
-52A6A42FA4D972E41EE56088F78CB966F9051171C472C774879AECFFF08BFD9CEA40D7C298922ACE
-64F28C14E0B81F4DCADE81D71DE3983D87D905192EF13CEE71B2D3FF1A88AEC671EC318917DF98A3
-C9054E372D22A3CEC82FCC217F47319A40900312F6E32B536B9E7A7FA0837EC65CCDB5FB0D414371
-17596CB39D9382262DE6E65379D3A9709B2CFBABF5FC5D5B352425F06F88CD31012A2A4147B112F0
-C1C0ACCC808CD625E0228EEF66661F70AF96D3DCFECD402700E4F6522AC9A856DA466D55C84F65BE
-2810A1565163872D62EB81333A698ED7B68352CACCA2D7AD38AB55C19E4F5582F75818302F5FDADF
-1DCED09D94872F2D48FB636C8E38C7563C72C771A08C6B1F041F3532BDB39006C89A33C09BE1E3E6
-03622D891F98010BF1DE5355F557A1E09448D486ADEF565705277B31B8BF2B86761E32631E3435B6
-88B79D566F1747BA456DDB43CD239FB47FF7B425EAA4C657C8EEC26EE01AED07CF916E77D53634C1
-37AEEA009C6B515B6342C54BE2C7B95955B1A9DA277A0ABCDA2346E88018C726F481F71D6011AA42
-F8852F2E5749518FE3B3AB668213FE1A05C10A1C53953D75312631D6BBBA01D418199DFEFF8CF548
-6109B099FE8E2F606165FE30F532C03567785D5362AA873C9D3EECEB20F1945D55F49B0CCAC84967
-59FCC7292E46938943C262D78F3212D3F9D0F7B103157F423D71B1ED54B2A603F4C269029918F238
-EC6828FFCEC66009DB9C9E59534EABB183F31D7AD4C57B1BDF0BD2CE5A421882BC10CC1BCE6A970E
-2B586BB221567CCA483989DD0B8DEC424C1D1FF042DCB7834423CF244EDA28D2D969B17440CAEAF0
-24A6119DB010CE366821AFA424D1B8299609C04148275AE6E5257A7ACB3C766C747CE99CBA2D703C
-F19B7CF301B634D8B613DDC4AFE4633A4D77BFF8E00CFB5E289EBBCAC90A24307E7941EC1685CBAE
-400CADD876FCEF7F6557EEE167D2035A05120293527700DC510B038A496BE1D5CBAEF24ED39F7421
-1A93AADF22214ED606A80582485AFE358E3A46D0671148998A3B3BE209467009B43400870359D418
-9A8CEB4D5866AB52D16D9CEB1EAB71C07E6CAA34B70E3096BF7604C22C40D5FBFEEA616DA3BABD59
-DCDB97D883FC8742B8267A16A99B7953225F7144568D566E64542C92E538AC140C851E5D295528EB
-7CBB49909B1CAF6409C9BCCEB325468FA0B5F7CB2987382616B477CCFE4F4AC79E4A6F7165363543
-F04DE5B6F6E1C2E910CDC3CDD6C4C92737198F892337DCB6647BD226C820AC99C65D8E7772BBB74F
-E65DCAA8A22C33BC168BF48E40A82700A3A7668C5A9A71E397ACDFEE7D556C5C19467B7AA69C260B
-727407AC837BDB7D67DEC055C1F45D8BAC61048C45BC9FB3CEFE7549EAA2992D2EDC126FF7A05EAE
-58613332A2BC1465B2BC0429162B907D65F793D236EDDD8D35405866D71B25F62DC4A7E06D4DEE82
-840ACCAABC0774F8A63E9C0F7FC980B3583E7A8B01C46590E3BC04EBA565C2EA94F057D964A78A90
-EA9F52ABFD70F84E44E434BD10A42E98C794065724341F907E35D3CB257161E01C7084E3A0166D15
-CED65DA7BA87DBB2EA33D39BD99AFB93D3548358D08330E807F8552CECF63C84F805205491BA3A1A
-622E70C232FADF3BF2DCFD6F0539158D3306506F150B0518371912A25EB96163D73E9EEED42EDC84
-D688BC7F7708D9DCA348FAB4DF62E5809BD094842D0A31DBB7C4B41F94D946810C5EC10B69AABC2C
-91A59500B2E5D37F4755DDFB7AE4ABF757F4C5BCF77C7F95E6A616646456FE8F18407080BCABBFA5
-7704287AD26222DF91AB2613951E2D679472F8ADF06EA2A20205EC19972299A78BAC52114334470C
-5F5890C2F846B4C6042D73945127F2E3910ECA1C4CD7A16EFE4B4BE38A15AAA710682C3836A8CA83
-FD384970139D8B46FB0AEBB002DD224199672FFA02250FBCFA4E649E335428FC71F50F45E498419E
-DB0E970F46894A48F65580881C9C4250FCEF65C9B28699408E18B26FE6DB7F1CBDB767564E73CB59
-54C6D639CE33220C894F36E70F71C9F9AA3FE2AE0AA0E3F2E304EC5ABC661675CDE2E70519E4220A
-E26FBACBD01D5169EB844750753E6CED53E3678FDCD08AB93E10067E9C64F38B40B76D99B6CD92BD
-F4155A1EA5CC824998B59AAD06E09E5F15EBB2288D66EA71B296616734FEF2796F07FF0D8B047074
-A1111D68B99C2B70FC56E74A51B062F4998ACC85B1943C9477E436E5CD7AB18DBC898D21BB93475A
-623BDDA71D7B895BA2D4C10F4B90BF335126F4FD57D73AFA50170F6B3C364922E551D40E35DA75FA
-891762FA23401D39260F2E92C7807C746F13BB35CEF9DBF2E76E66A72FEFF095DA482A4DE8A42091
-7065736CF4DE904FB52E649A32255E2030A7B31B686353492F31C064A3C4B0448C4BFD44B8E15384
-FD809B8761EE26A7DFA1758D57CE4F0BC376EB2B3833534B15A83436BA553955ACB5A7A66796AC5B
-92DB5388BC53EFA27508B08E82821E5CF669BCE52BB860780F749B4F38ACDF5FF12726BF3EC2743F
-01014CDE96FE6B4C40A034E9EAFCA2A35CCC776C2669E6AD138070A40F48ED79136D7FF57E993E09
-B81C543FBADD350FF5B5F7A46F060F88E30FE2D8233832D18B6C323EE017EBC1DF5C838321CDC8A8
-4CABCAB20B60A1A3AA028F36EA6E87C850AF8AF7CD50AA6359038BFA8818821D02CEE8F51DAB8C05
-F7AE9797814D97F3DB8CCDDE45B21DBB15CEE292FAA534A5F317B357F4091F3DA357325B8B9F5EDB
-45865415973C143E5E5BAA483FBF2D06CDD4246675EC58B84C6AE65CA743117FF00F229243772561
-31A7F2BA26A9115AFD96C18216CFDF41B7220ED0CB3FCC26C36380007B382A02AEAE428887DC8BE5
-FDD630AC57EE3DC156C7B8B29E687F24442E35CE10BA4087295A641F7139C831F7CCDA6CCEB5DAFE
-537CC1A97C5A337D3C48A6AE947F58A30DC08CC7B58DBBB4737AD52783C573FC1E9408F55495A80E
-7FDA61F0B9C4F090158F1A416249EBBA936C27BEFDEF19D1BFB839EB70576A010706D8B95657B218
-9C2AE04C11EF9E57FE09880273761FB4302C388BD608FA0C7F00F033C9C00F4E3D5CE2D903E0DA52
-E69C7745EE9FA75E2AD93DC6CB5CCFCD3782A699B807AFC36AD1F62B05856D5DFD6F88831B90EB3D
-CD523582A49732E3FD7253126D39E8AFB8458B5F7AD7F94A8DAC13365F433C857AF4A42C0A08C4DB
-9887C4957259ED22D13CFDF5995DA957EA5A0F620B0214FBFE08AB6D552DBF048D62CEF6EFF12F15
-3511ECA7833E0E3E95F85E6AC0F95438AC4C126E1F1ECF336ED31CCA7EB216D279877123FD9FCD8F
-B5E52B587CFFC4428456DDCA816819A8A4A211D8F1629E5D42BA4C5C356E580C8A22C61D987552FA
-A97893816DA73D423686E4EBD44375C257F031318865A20F22115E72BF1EB9F93AAA169C140A33A0
-6C35BD4526A38BE79CF40AD1EFA10411E8F3300A8A8B97AB140EE6734E1BEE6C8EE443D698D34159
-97649C6F10F20ACD80236422E215E146D744A262DA3FC88DC0D86FF66512F49D3F957D3C5CFFEB42
-4823509F33F155057A4C6F37B52F4667767BA94F6B8B62856B553F307E5D230C44CBFDC9A97A45B1
-39FFB2F2565EB0E22026972FAD0FB7B9576FB6F368B61979943A398773600E7EE1DFEFBF26D45D40
-BDA66EBB96A56EE9CAE0B2420C5DD83E24DBA9FF885BB844BF3D2BF93B07325DFF60C0CB5FDCCA0A
-C8FB5A2E119D5AF26E53AB8E3B428481C2871DDA26EF0B621CD8572B3C664BC7AAC01A1D05B98F79
-1A7080D294BE81099BDA7982432F3DFF4775C44D23F4F1B2E0162B61A8B2CB5EE8564BF98E2ED403
-2219085FE6194C19DAC98A421826CAED7F1AB1477AB327506010217283894235D7DBFC1153D5ECC4
-8AA7293F19592B4D7E95FE55151889BCD1D7FA7DC2370D2DFE11D7E4EA34B5C7A8E73BD3A348FD38
-9EF45B6167FB90BA44C23E912F9A4F2FC0427ED070592F7110183BFDB2C400393BA7569058227926
-351F07FED4F33633BA03A72AA2DC6B598E49B96021DD868DAD0F352E5722FB714F667C15C68D49C0
-3D822D82677EDFE86FE9668E537DA284068C9B0AED83074C92A5B939296D505B837E6A9DDAB1AEAB
-7455A08A114C2222B339284674B74BF4CA9EE0C020BF2A148B439C71C6BE51A94CB64FBE4A7EB295
-5A455047CF5CB348B062ED4F6471CBC3E9ADD9BE9B96879AC7BC71BCE02FD02F17C6063985A5E898
-3D205AA1489DA13C408990ABA1C54F2F501AA172F530480D789C848118C0A74EF98D5F607A067BAF
-F6030D887AC6A6497F9A0B38F9705F328AAD4BFBB634F739386177B07F22D5771282444E5EE17335
-B4D0EC86117C697E79A5F4F65FDC08E4904DAEDAB20067EAE2448FD4301849E456D085F392DD1316
-7ADF75CCFDB723E2904A9C0C976D6B84DDEF9D92B0E15FB246C3ECC2D0BF314CFB957757B3A3E8E5
-801F520644E4601D291DA0F7507C06F3B9BB36FC1C70EAA444E14E56C0CFF06C7F853DF36DA9D8B6
-AF2544B853DFFF535A7E5C6FC145250CDDA229956019659D0D253A19A7B51A4E538BDC01F74D7704
-9949C2C97C7EC6392C2E61CCC0992B66DAF1AB08551063E53180D2A67DE496716CCBAA45462D9F91
-B66A22545962DDAB120511FF08627131B95E5DEEB8B4DD9643E7B2AF65C0FDCE11F5F1E8DD468DA1
-8D41C8C4F00EA73836F4F70EC50FC3EC6D358C0658A4261C6D15A582A2C7C994E7882E661855B352
-014576858A265FFBC425160669CE159D07EDAC04D060B44E5800A7AAE8E339C29B929AA81D2F515C
-46229D2080D5917AB20AB6B34FDCA8E4AF64ED660A3173786FB1A1D005D575C2A5187D3F7CFDC94C
-CC44A38C5CD523E9DA726D8EFA6DA7B6131DFF3435FEE838B2C7D6B97934295F06202D307FF78D90
-6699CB9C5BBB10D1D4DEA5FDA5BFB094E704607083B646D37F5DA1FC7AD21B813F44D8C1AFEAB666
-55AAA19703BEA2E77DF3BF350E17C74B3447A452235919452B5175570A006C7680AC05E8950A62E1
-1D7E3ACA35A397D1E19630D094A86807593C97F4C484E4E06BCFF708B6DCA972E3A0009E1CAC0EA4
-141530F5C1B8AEF5E1B933F37FDDBC4BE22B74FE346D1A3F5FEC0818F8E61765568A2AC04713E828
-F98C449D9A1CCE52D10D61DD8BFD084C8D099A75D89DEA64D5A7CC68BD5B0593D97953DADA976383
-F5015915618AEC56D71D1DCD55B89736395C609B315A3F1E1255432FDBD37F38CC43C354FB4B7C44
-F1A7318B0B7E99C3C08C33B953727B6A6328051783A0A33E3CD9E498346A3CA6A77B517096EDD52A
-E443B87643A646C3A7BB97F742888D33F9B3127E61942F4103C1DBDCD8EAC8F9E259773066736CA6
-53CE57E8822651261D847C131321BB9D6626A1AC50D047C0BA47B411DF2A995545BD68EC0287CC9B
-31D5DDCA8755EBEB10ACCB3903AB0FD5788E984220443B8459E7C078DA4289F1350905881AD6DFDE
-C47302B0ACB0D4AF8CAED02B4B70DF3CF8FEC118F0FC2D3DDE3E494CD160E676E300BC464BD4400D
-B50EE43B314E0517037BF971ACD7CD327CB2134893B8A0410E68DDC518F5DEC966C7884CF5FDFE74
-723177F20DEDC039D879056CAAB4BF045062D3904F615C5CFE109AC7A35599C94024B41019B9AFD4
-04A80ACAA4837929F5C9317680A13D157A03B59A5588DF79D2E113F5F51021D6F6F90E8BBBA2C252
-FD10651BE80BAFD59C53A3367BA3C28DB6EB9DABF1EA99F47B503F627E15DCF3FD645FC52C5D5D0F
-2F07DB4C25C0D1E1C00146E1C4D973E613CCDBD3F9450CC0F5343D79F05E9492E86A1BB889ADF405
-03BD7F3E7543436859184A5B20BD8A172F350D846B7570803990ADAA48D4B9155A2B4C4BFBEF1E1A
-065C08E03928559735BDD442FF1E83E1FA20A5DA57D8BDB2FF5427C034CF0128AF111E6E73099E04
-6E0C240E80A73D7BE72B87834E45898D475521CA3306707631F5C6136199F354632D1A085F12A1C7
-C473868B62E534D15F5484323E63D0574196A19EF175214EB35A90873EFCFB92D6CF68761D45E37E
-AA61E1A1979A82009507CA193E44B36A806486665CEDBCF387053ACEAB979BD35D30978FC7659ABB
-E844F4ECAB3303318ECE80777A5FA5A9DD91B3D06804C4B4E9B4EFCF07EB89866D0DD8CA390CFD15
-98651417114D78776B1A1D36B4BA17746D6BE7FC123D473EF1EFED1C3BC1D555F914536869FD5B0C
-35F9C83F65B0E6BF7A627B9202D787D72C600DDB6BCCE613D88492E13CA0AAAB196E8A49928C62CE
-A4FFE2D0208EDA334ACF47F20BD793124D2C5546C03F4A364369A76A0425262F9D9118AF54E37D32
-E33AB25DD533A49DF5FBF1BAF4CEAC2D9D378CDCD13B00FDA432D9042F623DA41AFB80699B5538A2
-5403B0B3EABEC9E8EFCF42FEF3EA9F91766902CD206B0787C187D5370B60AD6DCD002DE2DE8DCDC0
-B4719A797C5E26BAA67665016DA0D967FA1346F9588AEDA174CA001B31213617FE19EA218EC23597
-79D979E2663166489C06993230B0D07973A117C4E3F4A4C93CF8428248DD5389414D679C69644142
-67C7FEA17E35B0CEE456667A9B1875C81B2302BDDEA2818D6019FC1622A82051F60584ABC904CD91
-8676305DC03FFBCC64FDDAC8D8AA9CE2EA00D6C97BC63C8A617DEDFC0E40775649438E9F61AFD179
-5E3B20560B01BE5E0983F136CF48AB206954E41DEE0D9DDD953DFD01CAEB569151D6BC0DFEF29D70
-FAE3E198E7EDD8922C0E0BCB8BCCF1C016142C1A8B337AFA7A05A9D7534B184BF3BF827F371E9BD1
-9A71244ECA1BA73D484CD2FAD54DB2F0EEFBD54B536EBCB5094E6BC2F5B2AAE41F05B4B311115876
-ED42C34F8E643B53372E3F6350DB8A38445822EA9A33E27FB0CC42CEDCD1FE2FDF723FC47C996EE3
-56C402112F24D0AF899B2D00BEA1CFD427998BD22B2A09046D6737814448ACFB10D387547D7009FB
-384AF0562C85694C071584236D0F1F3D3FCD0CFB38B77C81889061E668BA7AB37AA60F58A3967DE2
-6F939B79CBF10A9DCC42852561D8D6754F1B660D216AAB1E133FBAA321C56E2584BE5C9BAE20CCF0
-0E8DBE6D9C2FCEBEBAD945C3C04101D2387351F132628786F6D9D4CAB83419288D31F9BC600D9664
-12E6AA457CE6CAD26A4C0671097B98C2384C81DD8B9A3222D4F4BBDA7017895C3EDC26662779AEE7
-40D9D7E24185FB821970B0A3A94041A69E4805EC88EE1EE521981536F2844FB8F5EF645F67D42CE5
-148E2DDE43AD5AEF200EDB3A2C7866C98458A92666E5F9E070178BCC39F65A893102A10564AF4E8C
-AAA5075D2F8CD7FAB0401C03AF299EA3515CC93066744EB5AF7CF0ED06675BF049A6E3C211A89E16
-DE5BF0445A7CCA6EE8EB0347454950485D884606651E5887FE8B24323E2AA16DE22FC1FC8C4F06A8
-2A1FDE5758976024068197E1F4506E4D3D8A16D40461A4586338B374A592DC60334402F76388AD6A
-457DC3F54E6169CF7AE3959676E966A45609621055EC3AF80E182633300A4418E34A66DDFA6B569E
-5A13C9115B5FD3EC1CEBE50FBA247F60803AA83976F00117536342DC3D9890C49B2AC701D370E43A
-955118967827760F7091469C5406F08F18D7E3548148CF0E312B1DC71DF67A5E7A1656CF2F47F3AF
-F3DD50FFC2FCDAB7177285B29C17CA43019F62AC6FBA52D1493ED7C427526470ACC8389BAE827759
-4958908F517B2863B83292EB5AB3F57FFFB08393CA610FB1FE905D88A0A16AC395E2A2A6DD033D6A
-0D68992F830B2E1B95FE357BF672716E88FFB92FFC3D62945D1EAD22BC68C51EE0E10A43011DB94C
-44685A5C4576F6EF44CBFB45F2A4BF110A01657DB51FD499767E78058199B31DFD60813F1A344F86
-289F9378231D5B151C92385E3650B4FEB1DC91018EAB8474CBF69FDC1496A4D078D2C351C8196451
-247A9DCF8117E5B637371D8E22E248C64D999015C3FD2311E9950B8EE0922FBDD3D7BFF766BFE9E7
-CE0BE12F318FF2A7B5A9C6D00A54401609304ED2C55F5C1EAC3D4B38355BBD85D66D61636FA6E30C
-2E82829376BEC979A6FEEE040E452359768ECF90CC539A546F17AE906C76F14F86FF697797322B05
-1EB311A759FE260C1EEE5DACF383816AAF1294CFFA7BF87A4D9BC595EE8F2C2F86FEEE11AD959D86
-F22FDAF4CEC098942A57E57813A0FA99239E994FFF353C1E781D666B8928CFC648FCF0869FC68468
-BDBDA7D280DFAB8B0B3A4CA35B074B686DE8D372C61FB32305169A1A9912F6541DA16CD6316A6EA4
-51524757BE5CF6E820011BE3859FB8B8578C100FF029680E05F0E0BF11D33FE19460C85EA5E4C0EF
-28E29407C8AE6BE01CFA0D5022BF9FB01416FFF722A784DFC8FCE330EC95737A854471D334FDC58F
-AB42867A7B62836A8B56466E9A6C1247D46EBAFFB905CD4321970F59FB8D6FF65FDDD34BF913AD32
-2E68455C5FF2D23C1A5EAE687F259BC982B6A384D35440F7C693CF50B9ECAC0B5578CAEE87588B56
-2EB6B7F42034C9F2E545EC866316552354EB3728C7D26527ED75174EAF635E048B08DC5D23E88981
-070AD5641A652F2344956E9CF4C16E652A99F4A644D1787D6D36537489DA4D74E61B2FC4DFDF1D1D
-9D58F9C26C5EB63200526AFD168AC57D5611ADE4D4A382FC28BB60F9E7D626A6C67AFBCCD1183C5E
-3CF2EF210D0BF5CFA7BB10FA3887BDD4CD96EEEAA8F9219AA2F10ABC0A960C3B57C0EC0313AE10CC
-FF1F522124CFC8D2D49BFBB0C193EAFFC5B48FB3FF30B21CB76F0A4C0F1377C9223145BB0468A5D7
-1B9BC25873EA12E1C60334571C67385C00D0B570D3FFC6C7FF0DE62C183C76AEEB12DFFEE1459E0F
-C818C621B8D12FA1357E2B55D48935D70BF140B4CFFE8813DEFD479350B20DC2EB1D3CBB1A2D3DC6
-EE975D58C89D61FC50E6A0197DA9A586B72255023DE47DABEFB11E8AA02414C2FF6258A281219B9D
-DDFE41BA7D7977D0D6F18224FE22F7D4E9355FDB35BF7ED3418F4F68D093AC48F7D8FE4194FEB6C8
-0B9DC1F74E023C604DEA27089F98C3973FF9F4AD7BF7BAE601DB89B08D5D8139B95EDCF6C885FFA8
-B3E4B0477E7040225733826BACFD1EC4A0DD72DC41734856AB9FB700DF83CA2CE812913BD142D84C
-5C83C0B2583768198AF9E885F2BA74877A414233207234AA5F18840557CA11682AABDE8993533887
-7C6D404BDE4153C9827EB16D66C1D73A8143C8A2D3604FF72CE579FAA3C5224BAC48EA83BA848429
-9472007DE96466B5B29ACC7C03B05DCAA38A48BFF9F214DE43146AE4E04FA705421917F99BC54533
-F0EBC01849E396216B9F0794E6F6C6B61B52EF1B1950C0FB609895C3C55FF574163FC8B6B09E66AB
-AED1810E698FF37CC1F926B2CDA3B48C7D77790EBD2D514B6F385D397F713EC3AD3954EA9C846158
-6031D369E8B99E53408A79D64C34EB5A56DE8A67DE91837960E98A66FC04DFA0EBDE21DB003234BB
-78665B039D0A469A0221BD541AF7149A2A659C300132C14581EF766FFFBECBA8B58A5EB3F95446DE
-F49AF863A8113D17B2E7E6ECDEAFC3834D4DF900E3475596E86FBB4E2974C090DB4AD61A737D611D
-92B4535AC291C56AD8B1C031D2F9B505BB77517B737D70AB3723DB52AE2ACCD5DD2F617423ED3CC3
-9CA882EF41757BF7151806A9B8B0F312808863E3673FB54DE939B35CDECA7FBC4DC3BDF5A5F47D35
-E345916C39366C8B4F439CE1C6F1835C320BD1E67375B03B5DE18C93256F251761A4C8CEC01019C0
-68E34447BCC503B9571FE8000627A6B3DAD5854CBC0A2D69E5A8F46BC78F6A7B1422334EC7A98ABE
-FE9B83E01DCF3C6C9273B346F3240EA225AE4A4083CC7B0EA141A0773FDE940768358EB4B13D82AA
-304A1386D450C1C0C6A7D5A8FD2BD313F78F85248B5196241E31E5595F3BC01F37700A2DD3D4A0EE
-2DD01A36569CD507130E8F5B1E96CB560BB7DA15560CCADF3B2C9804A11D9E8055C9EC70E48C1D21
-3EB756A1376F2EDCB7189D78CD3D6CA5865537EEC31C17D801605EFD860B0B629472690588D02575
-02C6F7A75B9A1C1B397781329832CF3EC43C09F1559CD562C48FA9500295CD3B0A790DD3FCD4684A
-7C7AC49AC9BFFF36B39A9FB148BC28D37907433943CBBF0CBDAB46D3EA86DC8F81C859C52D15302B
-94A9B51C199B7104DEEC9D769C2634CECF8B700CE9C04152CC59C9326BDACBEC4312DEED92DD087A
-1C4840868D9F97CAC046581F762F75E8D24D6445370A3F1E0AE74A6478D9DAC37E7FA5BEBEC0A1E0
-81AF89C1BBF7F51E3E2E22C8C405E8671BA85F1BF0DF79A465DAC7EC07F731E00632E017D190A99D
-83E27E5C2E63D7DABBA23B2E88334C63721AC5A4CBC5D45F4C177259F34C2EADE01FA008AF65EBC6
-01D8DD16436D86AA94C99F3CC0A2F87134E73BF22F108B825A8963B49C6C685474AFE4A542C8641D
-C0375D7EFE9AC1168D9700459BE52D0DA399023E141969F25C0DAC4668534B6647EC85454BE945E8
-26B26DE6E3C4584B97A38E2B40A0D23481BCA78084FE80E00A71A790BF31DF468A435ECC88E60A57
-860BBCA3D65930186E9917CBD209C230E8F8255A7ABC7D3F043AE4D7AD63D9980BEDF062B7D5C298
-C40225B6D03F29A0339E0FCA02138E526F06B9EF47F5E7A8068A846CFDE2BFDEBD24F5A73A66C079
-18662AEC80B43246284FA4E2EE0D9AAB172B1E59A6CC46B801149D8C0DF6DEC9A55D8E1B0EFD9D30
-2FF618075944CCCB6831D336B11617107B0530D09885E5CA11A5F1FCC8D69D603DA16BEA51116D42
-CAB1AA1E4D7B9B4D79993F2BFE53EAC904FEB70B2D330A89780EAC10D12CC0C35B8399F218AC2976
-E57A26BAD20CE2FA2AE2363D3FD2A8A971747556F2959DA74A8963C20B504711AE1CB0D0C02457FF
-2E9BF696B159AF031DD5155F21C0F5549B0471A3C5DC8918B675CEBCB23E29322B959ABC05283A70
-2E878DE8EF25EA760F3C5C7B7B49D398283DE2ED837FD59F7C22D62C58FE4448B1049FDEBFC8787E
-67D7DAFE9774979BB3802254DA59BCC0219F98C219F84D995CA768B8B5D9D4A32525DFECE003675E
-E4BD5D8DFFC11025AF2B468F9207B5B2B42349B98232BAC0759758C1F4A283405815BD7145C93FA0
-8F3ED2826655053A3C2559073D8ACD199DEA2C5BA5F616A2E48548B4370EC73493BA07E197165DCA
-774438B0766867819C1154D1959FE6E01E6312E0AB91FC2E2BD240FC8652A2D456A1DE7F34EF372A
-53794D4C4E050BF3CA5B7BD2F1B8DE93B4C8002485CB219AD2D029739FD3C81CC6E78EDF38723576
-1A57143EEDE5CC887F282FECD261F6A25D0A7E154ECDF5DC38E426811BE86AAA458577E5E0C5F0F7
-5AAFA9C41E5D1DC9D91ECD79B514F8CDF7A5F1A189470D35FDF4F9B8788879CCBD91B427822ED658
-389E981E0EE5F7FB87692A3E3E931DF8A1D1573E3B0166204240B7080089A09EF7487C9AEE2D665F
-5A82F94C877FB5B0DC531CEBF1E71C6592CEA2401E4B5122E5091DF03D203DF979B9A6EFBA12E2F6
-B422FDF15D49AC0914D372D21E871DE65CBECD105FD4A3E4714B9CCA5C6803FA39DBB015EA8A88BE
-7913502E562E5B170B87BFC8572DC9DF49AD63694311EF1334444BDF0B4CA3245271C1F7A4D7FAF1
-703E3AA0E1EA8D5C6E821B28707EE0C9B4F22F23796FE87356C58AE2CADC191F4C58E1FB58DA03B4
-5A25AC95DBAE13A293474217BDB214742B9D9D6AF35F70FED2891942EACE3E625E55FFB820543FBB
-250A062D3D395BC0F219ECFE0D76686AC148BC41476A887BC494DDBD396BE200FD3E03CFA12EC9AF
-6B934A283C42AA05589AA6B4A8D16946BB51F50419CABECEAEC5AEF9085C9989289E9B46BAFB6FB2
-782D84DE2B068F91A9744AAB237CEB1BA513E57E4C307108E993C972A3E0A898D5A8D27833155031
-FDB98863C3BE7FEF3004CBAA5CB60A1F2E3EB4D7290FF5FAFA088B1CECCB6CF51A58DAAD998F0839
-6CDFD68F5ABC9C1CCB8F6514107773C69C26873E889D1F79D10E866910E4684186FCD71C965ADF62
-39BA3418B313A27AD632300969B6F284519366ED85E7CD968D64823F8C59B5911A72D0A20EB72B60
-3A61E36F52F256FFCDF706B4560B4DFA5D918FBC530D83A4B3C01BDD3CB4572E24242D141BF9E775
-36693A0407D002E09CDA5B195BF1CCF430AE9824C07928A050D0B460F2704BE8F9E647A4884C4567
-0A81EACF7CC038643EB0FF18A376FF6F32B6FE4F197273327FBBDEC6443A299CAD4B26F7778A99F6
-5A11BDE047153E764039EDB251936AA43DEE50DDFDF8856519056AAFC4C5AE6F2051AF0579A9ACD4
-1D00775D7DBE70022CC263DCA5E0A25B9C7C4F5C418587666B2FE24816B1E0EC92F9074F1403BB83
-AFC3F1D52CA79C387BDEF864366E34C90BE52F7AA09935373A07E4E026224E76F9EC3CB9E7EDE50D
-EFDA48248D61F3CEC880A3B8843306375D9711E58645F3625BDB8E87052DA67F9794EF4AF8DB0BCF
-E00677C3A26907DC651BC838C40EC39E2B5A5DC0DBD345944A6C32226089D63C52490FA10B215AE7
-03CFB663EB8A47793B84CE7364DA1C4E7FCE32DFEF09490121222774915BA59C78C2275F829D15CF
-4D8686B095C38C731B83D48738C25F40B8ADD487C350A2EBE846C3916AE384CB1050F9F5DFE09FCB
-D9129C6270FD86D55A459618FDFA4F907E6B4746196BB717865AB378414029017551161A52E9D24B
-E4F7EED553A927933D4ABC8F25DF607779A717909CB4D810DE8F5762581900E224E4B91598149BA4
-71CF8068ABE8744356B261600BFCC57FB8BE45036CF6571D9B2A95304933BD4F17215F8EF53F8E08
-1AF61FA7F9583C34EB5655CB0ECB82246959F09091F36989EBDD646BEDCA614B9A61AB7696B3FF18
-1058A150FA6EC1BE2EBC7F64357A3FF2A2B0491D2F4E0B970DE5B7788B467CA678039B5EF55C88A3
-84578D427FD2CB16C87B0BF0A3D37CE8ED43E0F049AF2436344D5F47C948C632C94A287509282561
-6C64C5D262FE5B24916FFEE982A69A6CCF888BD01D62EA591EEC51F4B7DDFAFFBEEA93FE08D736C2
-0129E345D06B10246A5F57151C198D407730713F32299638EFBDC01367E23EB59AAD42A83AB41B43
-2DB462652E29813740F4680A5D4BD47B18328FAE6BDF4200CFA4CE3773809B45E8887C9B2E423698
-9F6C48D64F5986F563D9A7538A8716082F81936AEBD0461E6F4BD470436D8B7656F0FDF89108E6DD
-02ABDEF907731D458D690BC608EA9CED09EB1E6E64C0790C7A2378201CE997FFE0317679EE1D4EE9
-F91157449323E53B4ADA8096CD628B5861BF794543A98F2FA2AB54FF0F25A13DAD43DAF9394329B9
-5AA53CA32749FECB0B2BC035DD1EBD53FF9FB5AD8BCE06CD89E5568091C1CC314CFB1D9821D7F9AC
-7C55F55E0A16E39A87D43148201B928F3C42B110FC056189DEF183745F3B637441DE8BD4C3C7EF12
-F4258E306B2877ADAEC63441010750DB4E6269A4C78A0AC01BB3603C386651FE814031CB5D8C1F14
-9EEAFF652A53E57BBD4C8C0CE36A84A319A53BC1E5FD3F1ED1EE72F4C1A9BF264B594062FCAFB22C
-C1FDE3F2E3D3C17DD3F7FE0E15EBD812D550227C06D01127385374A11438ABD50048E17255FCD2BB
-85122A6FB9B7DA9D5E9DE8A747FAE0DA45A1FCEFE92B9E70A5B2CAC668D4D07527A5C1403267D823
-048BE671F725CFC7474B44FC5AAA348420B2D7C23C6CA066666FD6F2208E329878D90CEF1C2E77ED
-22D3BEBB9D547810B189F08920A27E7107F208591A84D463CE2576C70C3DFE6643E4EA93F4E1DAEB
-41D46F0E2F56FC10C69AD5034FC9859D31CF27A3A1EE256C93111F81C11ACF1FC0CE20B90BAC9AA3
-27A5C85A7985B951519FD4B03C40BE637162AF41B2FDA68F0D1E9B7602FE2659D3D75955C579AC51
-DF6A552EB9581AC3F712F083F19B52A6C4F560F36C59CEEB0C996AAF1728A2AA45DCAD79BD7B23AB
-388D5B0B64A2B95154B6259B730B0F4A72C8C7F7CC93C7D64D9D8810D1F63FF8ABD4DB89824E2D26
-4FDEE916C41E299211DB1A53256E1DB5CDD04862F034D9404B73183A99D3D13D642A663F129B6D16
-7095BEB4EAEFD03DF2FF2F0B6B594C1EE90FDB203DA89FACEE23F1BA3901FECC75FE1811BD701259
-343011262B6A0A9707AAA6316BC3C17F787BB80AC8DA5AAC942D90F80C5A3BB59E47EC767244AA95
-C63E50BF809998957936D3BF6ABC24B0A397258F9EB4DC8F65692CB023D9091FB180C69498CD0C08
-BBEBADC84A7E0016E8F8BEA325D924EB0DF82E75D2CC2CCBF039B11934363D4332C5FBC5EC556BE8
-5EE4E707CC2753CCC43D2ED50558E51A104221C9323CDCB0199B7B83454DE3FDC810D0F362C0299F
-5DD981B31D8E3DDA284FEF9DC8F9C8DE138D3065437A7FE8C30572AD06D62E8527AD37AE39AAB0B2
-25F76A25F6C6505241ED73BA494CF923E919F688DDEBF193E188F8C4C154F21631080763B4D091E8
-AD1D2FD6649E0CD9360E8D1A67A5B5FAFC67547CA31C95A5EA8D4EB5D68B9F6D6532DB9B54584735
-9558542A2AE58C09F3BD2918EFBE1699E9C8F2C2A11EA4D224C726D2ACD4A8D8ABAEDC6588CF2AE5
-66528B94F55B823A2A1F7BE19000F3E7579D094E047075DF18C8C868760295533B26EB3ED90635B1
-29C17ACA679C3E88B06998CE5A7A2544B700229F5A6A504BD3E45B276471959C8A3F81917A534287
-39B5EF9E3D463B3BA7318448E2A3E79520D2D245A2A72F31FF7070B6E4624E3A5E216BD103640C8D
-F387E49D732529C611F8B971073F17EBD2F6EB18F9B74A67E1997926DF178D4C9EDED435B9682F1A
-279C81BB9F60DAFE125845A2FF3B02979E5481C78A45C479BEFB9FEF3CE2BA9BC46C77B50B03E48D
-A6D17B76F06F3AD118371ADC69E178C52B5FB4B261C9311874ED07DD6D5B3226A005FDD7A6D53848
-09E7063F036CDEA41619122635E835D2D74CBB6AA9B38CAA4D819C26E95115FE0DBAB4198FC5838F
-2C91B7A87B07D734C6D4F4F83444C1E90AA9BFC908A2BAC4B3DEF9157AFCA5248F2DA31CA87BD363
-AC25E9E77F741D4B2C6E02F04987A6F49D30E9038CEFC41BA172DD675AED8B392164411144E5B738
-F3210B0E66B17A13CB9631C33D44484E792A7C082DD0A5382F34C5637653261B1EB6D2035B08B4D9
-1FA9AB770CAF40A103629511F7B43F2743D7E583433DECFB19C21FD4FD0AFCC22A4119E77C87BFE6
-FE50068B22479015BE5A9F06BEAB4D37412E062A45E0CBCD7BB39FEE747E96306F79FC4F2E8942DF
-5D9DA0E55AACCDA547DA19D30B8404FA121298B44C9CCE198C708C69A8D6BF17591C5C50D3FC5BE6
-961F7ABA8F366DAE957A1C3730DA4A5B4F035A9274675EE3BBF0CA8CE9D8349F50CABB1C3EA4948A
-BE6F9F143592F1EA95404E6909A909168E3279A957AE1924245C356331A75E7008BEE92BEAA304BA
-40B7C3F48F74D9018B3247DF50EBD7CE541DA48ECCB1B0BE51A455C3C13C279D4D8676078C3EBE43
-08748D52C9B041D3E7244C745B1F2F742D010A9E60695F3EC4FDC1050AC082B905D6A57E8F407A3B
-472F731011A5798965B7B1A307E252FE02C8F79CEEDDEB6E165F1A94D7FFF18DDBDF79477F14E9E9
-3981ABD200FE7771B29D1D2D120EE79D28B9543818527039AC74085EAFF241B56D08220C958B5D9C
-87C0C04A14D52AFD475B542D391BC54FF33DEF8D9484AFF6873BEED32DDA4B371112B523B6CE22B4
-0D1B416B64C9370F1CDF2C548F4CCBE9E12E21C36CC3EA52DA232DCFB65F66B22B5E2EC04852510D
-5E264EE939BB67AEC4764B87062AEB7F680B40BCEE04AD45C7519EB3B6199C9E0E332661463647F2
-FB7EDF303EFEF84891CEBCF0FAC5F723A9D0476C3F8C092604C87FC69C7A90F4D64AE45A478EE8BA
-2DF50FB93F55A3546123F0B0E2C1C40C98EAAE9F0F26B8F80FFE6E6B94B7E27D2884D58B8A119662
-2DF6BE608C5569D7864BB756DF2EDD184B90812B44ED4A32D001C31383A40AEEE9743651F7950846
-15C48E402DBC01C818D477EAC0347795CB2792E9C11E8FD4A02E194EED1C919D4598FEC003B6D9A8
-A0BC7D456047A1C0579453FC1D7CB2D158D466939A23D7A7B8ABED7E2777EC7487973E73F2266D9C
-250CE30729E3C5223AD93B9AE8443B35711E446A3DC660123ED45CE1942A1A2AD0610467E081CE2C
-8B92A6C82F0B17B5D2429E99F1A6268072C6B5AAAA6EB6283A872C54D3694CD825EB2926E57DBBC7
-C1663075E687A144E4D61C225781D80FCAE1497B442342B4A3F1CD6BDB50E31791CC3928C30835FE
-F845B6BE5E2D7E3F2F5F085AA3FAEB45CAD0D76BCBB1ED859A9CEBB9F7457036F0BC3F195CB1A98C
-9C8648F6583CDBB23894BC719D68C2DBD8003B10D08C8CAA40BCE784D7BFB4EEC9EA5359AC056E57
-B8B0F2EBCB1F4CE40C87FC7861180133E0CB6CE2FC4FE690756D327A2B5AE063E3021C0C0BD420D0
-56F0B941E6B36088A55BA11D0C35FD0132D5F48E5D9673572347171B4328D4807B972831C0D74CFF
-A5638C145B89C989E6EC942148207D6DB82257585958034D9F9D4221C7C9F7013790DBD130F277E0
-BC88BB179DD09E27062379ED06F25EEA8B7FB33C35861A0034776E3813D2E9E5C10E227CC569AB36
-CB2D9DF2E7B7B44758F9DC4FFAD7A24AC7E9F47AA850C221048C3CB35A37CE8EA75632AE65FE3212
-175146FECD6334AE3D3C5F492F067F795E1E8FF386BA198CB74F0BB4DC0000DA383BC4CC3F070DE1
-7721431988D69C8B1A5AFDCCC83C22E16A87E01C6D3E79DC7AFA3DB0371B0866EFB8B6F88900472A
-FEF1C4A878243C52D4E02E82658979731C841C489A6B97E271C4C93800EC7D91F93EB9B9C659A554
-E1FCE42A5EC65AC39190EF4B66DEAF6FC0569A000A9E1495F42F706FBEA4D32EB7EF11A648910259
-6A65CF899C2F322F5679C6D123469192A9BF1A7F1F2C81C554ADB97BD19ADB746A4F81A4D5559E60
-AB94C483DBABF6CE2F28CDB412D50FF3FCFA3B3DAAACC6A83CFED910CCB3B8D2C19590AFF4D75303
-4A6CE7F4156896A13808E0DFEAC547E69D3C886691728E4A35ACD575B40D721E8FCC5385A2EB28D7
-08101DC50811529528F5CB0C009BA7E3C88468E37768FB0D83895AB54DB2DD5426562AF9D8AF304B
-F6EDA54E9C92643DF926F5C3578269750120302A37CB140A18BA56BA01108D4ACACE8FEAE640A6C6
-958EF156B588ADB0EA5F3B0F37BBA12B7BCB221C811415387B024B7076FA4403A3AD6EBB5D9C26EF
-EBDB7ADE7C60B444AB9F90EA493B658B7767AE2BE649BDBB3FE85F460F1ED137C61BD95F7CD3D8B0
-15CE45138538930AB62AA0E54B4CE1A5EC5FEC0A2B28B345B67089A4E4AE14D2E1F5A9C8848DA688
-CA298F93860649EC3AAFEF3E820D86988C8E3E5A4D4BB937791827994AA3E81D0BB3EE115EC36D5F
-B9A392D09E79AF514D11C7B3A03C9F9C13355CE79E119A19177FFDCA34704D38118A8976D1EE5AA0
-2D14FEB1414419F5E85244ADC5C0A765A522EEF36170064BB19FEE3B5F7B441E4DB967DAE0BAC2C4
-8FC6A836E0EF5A69F073BEE1699F55E9C757EBD6FD8B514E2B49D6333815B7DBD1E0694695FCA3D2
-1320A0C4B852D9706DADD8369A95FDD917328BE93DD33818954DBD2C212D2CA81560ED5BC284EB04
-7A5F389E24E43F4FA8C97FECF46589FA7341076555CF55B1C21B28E0C1CBB00AB8B6F67472F27BC0
-D11148F407824B0159B5188D4BB7386FBDBF1C0FAF34721B7BCB5C0FCB7C4010DCB6A1284E9D7883
-9E3C2111A05D29AB7997073B590A81C6168020F1D48951BC7D8476D5BA593F4F23CAC1F9BB0E091E
-84B4E99E5C584D1370DD12DEE8DF16AF8BC6B7B23E2FEABDB7F32779AF8E2B5094A6E9B7A7225F24
-C43A8E5D2B977E1E19E633C26771E23017ED233DBB02C64F8CF03992C6484528D0C8464B46F24F9E
-8380F385D5D01B8893C67FC103498983CF939432AA380CA576D09030CD52FD99BDC3BE16C7204CDC
-3365BF76294A83A1FC14A236F5FE5321904E779B13232A76F8FE521F425562678436359C2461BEA5
-AB27209541F557AE2AA60009C9CA0A9FC7898C14306CE35A50017BADEFDECBBF94EE2905220706DC
-806409EF87DB1D73EAB0698AD2DB72CDCDB293E7FB13C94D9FC87E74502E6927A212F0D7D2F2D194
-64F7A66AC07872E18CB1DDE8F11835DCBC5C4EF039333FFFC0FC1456DAADE7DAE3EC2EE0D3415B0C
-ABB69FC5006F4D14A4EE1A5CA99AD4D5E629C0DD1E0F097B5B93DE2DD001A8C418234C9C45E8C13D
-1AE04E9466DAB8CF1ECB88A4E059C111A6468D2DABB90DA79C7C79E94DB28F6968B1A632F8C57D9E
-565FF91C6916026FFAC0661856B9FB8DE9C81661816221B1FC159CFEF1751E7E403F5F2CE32529DD
-540792FC17A12A3DCD7C50D38EEAADBD10ADBF5D8A82442AA900CE6150EB7A4639DD9FB6E385B2FD
-093493DCCD9014B23EB172E21AA89643A6CAD1093343D85D81261972DE0ACB16A4C6B5F0BE4C978B
-FA12D3CAF0134F9EA49F6E9687C8F99A456745EA252F0BA9968C7F9586E3DD841AA92DC7705BDD68
-2DAE41518A09DF0E209F321D7FA3417202F4BA76A984DA3ADDBC58136885362F02F0A24EBC439B3D
-BBDACFFD8498EBD29F88F016B1FEABC10785438EAC860B554525F3266097A675299AA0967BD3B7A0
-EEEE3FC578D1BE99D3533BD91571AED904BFC9DA1A1451FDC5406E1CD614E0C7FBC733563CD6CE6C
-C31E9237CA153F1F0411114361D731636BCF98555ABF12848AD109371A42B63675A4130B81E97C2A
-2EE2BB5D8FAE2640156001AF0F55D9D5DF8FF23C8AEFE14F120000F14149A36E5C94CD9081DEC277
-C2C34870D05011F99D48B0875A5FF542F067F7E9880109F586BCF2B50522A1F23ECE44349E539E70
-F84E207DC9BEC7CDF856A046F1A03226AA41F541719AD1AF88FF211E57DD0C1275DD0B7B47440DA0
-89B98C6EE92A7D94700B83CEBE19EAEDD8A615F6587587BA8BBA3CE3AA5E8EAFB1FB0F486BE3609B
-169EFB178A4292F4C0378AFE5D24EED1CAAB514DDC66C696D8E37F294A6579131DDF5488E9436609
-ACD750C3DB0A940C84FE022B22ADC2676F62E91E8F891225F891FBA537679B24547BBBF35F04915D
-20B11739F620D18B5B216921D222F15044368569AA302980B9225BB839F494588481B94B0C724352
-B2DF600A22B062561D86CB8F81514FBDAA4F8A043A0265F992FAB71FC9124A45B8475E1EF3DF6B6D
-E35CF329777D45F08325E8505EC0D979F542807AE77E57E453525F23BC59A50740371EFA98678AEE
-6C425374AEB745B99DDB5D8D908FDB551FBC0DB15832107BBECC4E11A1A8DEC69358A574A2ED46CC
-31D564549EFF23102D92BFDCBB2BB985F78F36033E34F59C0EBAFA3BDD71338736464CEFDBA91398
-33995EDA4207BFD4A9867D32E867FBEB7DE60D132803EF9347CB17BD91315484EF6570892297DD8B
-7D966103339535E28A00CB1EECA4A9775F60A9F5FC9BD8B06D78FE8E6318C31DA2E847E3F9CA587C
-B01AE2BA0A2EBDE308314413F4F230A758184ED60D4F71F6CEC22A93A01B6C54E0449A3860FCA895
-4A347B7588329A80974ECBECDA1070FBC055666375229F13DD995E99265DF870BC8B8CC6347FADBC
-1A6AF64599271A475B9123493D46BEC41289BEEB67EB97A8DED7A9C9730D37C65164CFBDC22E5CA5
-89D2E7954C7136EF4E084C43A6C7F361A3E96989239BDDB9A593CC2A80BA16DE9EE90E95CD39393C
-212AB22EECB677FD36D34DEB46C4AD0D21BF7E6D7CBD0C8083842FCD87B18FEA7CECF939987E99BA
-34C214E44DD84C176C9CC5A4CEA76D380CB316BB4EF9DE73D73B4AFD4ADB54451591DEF86621D138
-D5A0A29441502BF6C2ADE671CEC3CB5CAB903A657EB2D70C943F976C110E46C5D9D29BC00A875F27
-38E5D22496A43E096E009C5D3CB724B4CABB32838DBE527F83B18CB457E57B092C302EE557FD4F00
-DB9C56E66C9FDF4EC9FFAAB85F60D02BA79694FABA476A199A0331C30A78A92E10417BA236E23364
-8174C826331DC1BAB87C5F95027846130C6A2B4027930EBF9A97BA1B039D386FC51C302648E25980
-212F6A582CDE2778C677A01FBFB3C5D1B8A374ADAF6ADBF7DC94075F25ED66D440B3922C5F255FB2
-3FD8F6E21EA65B1D93BB225684B50F11310E242B087575973345B229BA62C1E2C35BDAEC04D10148
-F5B2F3BCF7399BDFDF1F3F79119714AEA697245BC647316EA157484ECB951BE367234FD02E8B1F09
-1AAC3D29BF282DFF4011BC0CBA8E55234D943DB3017CC7A766720BBC29B2D097A956C0F1067177F0
-12D42ADCB473CDE8D1BA35B4030757FA1D8211989DF3BD22CE5D501C21EF8708FB3449DF47D88650
-9FF7B59B76C0DBAE443F336FEE2D615D7EED1C284F14335BC8A26BF4621E10DE9611FB2F1DBD52E4
-B7565D8C65B54EA36D508BCF0C578A49A2665227CDE1F9768EFE847F9D94F1BBB7DB83701C232198
-5C7283D47B2E40B27A268428AAEFE75F6B2F8764A8494E5827573758CB9CA46FA93208836BCCC8B5
-564A69F5AD882052AF1C1417C3FA7F580569528682C77080F3688B65E7FC24D2A3AEB61574B4A321
-5927281544DDD7A6EE0A3E9388F8F631CE7251724DF70726E5912DDCCC8C652DD6C9608F8462303D
-867F589DE0F2F71711B35142EE6EF93B64D6326C4DD7DC83278E057100EE772082E6BA368ED91A55
-53ECFE2293A481E42F83BC8F9148C70EACE91F7B7D9CB8A72415BDB3AF66F68EA733A17ABE9DB005
-3BF148629132969589F38D30EABFA96A01FAC72650B5A6FF3935670198A1EA33810A9B11E330EB8B
-451F24F93544263436F669AB5A90A53B16CCEEAC36B1445574EFA7E802DE73522BE725E68704822C
-B7D3912717333367895BBFBE06966A5CC653AAB5E9B3596702086BF0010085B900711932A95ACF15
-CA4DC45A754EA334E9EB84D6FC8E3FC4F897456BED64BB93B593549FF0D5352275D8E417172A6664
-C5E0ECED1019494A7ED49AB0B965BEC1A82E5873766BB38D7D856049CCE2FCA65AAF61E961B60634
-E2A69EF059754C9D8163D87F928C222772D070D83FEC6FA5AC734AF65E40BFDE521F7D9CB1650FDF
-64754BFF21EA3FF0AF7611A93D525EC9B28C51AFECB04E7FC8323DD6C9B0D8539A34FC3CD8CEB795
-8E8EBBFED4313C77ED469C199552A9FF70BA5423B03B6148D4EAAE17B71C5B39DC436AC53D6BA8A7
-AD81AA8B02335A8B2B11E9F4FA913159A725B8AB60F52F1A2EA50EAF4D56656E615BF382CC68A690
-BF83DFF24FE986570ADC0290ED1A37C1C2AD469CE789E0EA0BB5CE01020100E729721AF3B5BADD33
-A2DAA6C33EB8F9064F5292F715F820B4BBFDD56F76D42E7A1A068C1CBDCE4640082F6E7D582D1939
-990CE6EE8D270015A2C461798B37DCB5798EE9F7512168B76D26C28BE4A49A1BF96C89D235F21A1D
-B6A96E5DA474D0B19B808D13D7A11BF39EA8647499C410ED9894A1ADF33D41B6FC2E614D8087F4C8
-4E437B136F3CB32DB8393C49177A0675A0C9E7EECEF448A97AFDBE840FA01FC7E5F2E8FECEDC1884
-84C312E8635CD79195475DDBFDD4D38D5A0246DE2C7F21608F8D2C0DA1371D302E941572E5792A3C
-F4E51A33228B93A814D03FD4FC223C314CF3714BB3A34BD4F7ED6348577FEED9DEB082C4049E57B5
-D3CDB7F26629E9F3BA36893E09E3C7463D02A22D7056BE76B87763260E46E48BB832B7EE13F8DC05
-37EC8E81E9BDFEAD8C27EBDF1AD706933EFD11131E12814F236EBB01BE85B7F1B2D627413B324918
-D247604F56EC128909873FEC3857028BEF76A3494364C2A7002D104D486236C30B48E2B75D851C34
-EA50BA7FFEB4E19190898AE21768C157C0CAC628A2181A32796FBC1A7271D2473CD88E5395DDBDB1
-FC3AA8DF0F3D588637F19A8B833AFDEB5F655A8838EECD684E2315B72C75CEEFBCEF94344ACE8D6A
-DBE355008EC72FE7CEEAB01363A895F4E73F867639BE0A0BE67333848816B05B419221BE8F9066C3
-62C23FE85B7F392930BFE4C12B9526FF2FDEC38F23A159ED61A0718E7115C24597D849FA76369153
-54A40C965D4D72EC94DA61A03766AB39AAB684E134FD1407A5B1B19BFEBA52AA0DA5D99CBE5C82DB
-AA663711E6DEBA180E1D4A39C320516A4350D296BC19BF1BE054859A0889C7E9727A021F3176FE62
-0FB0C837E4141FECE531A950C03D319E3255703220B7185BD20FE5DBA673F8129AB211EFCF36EE39
-4C7E00EB0876624BC840FA86E58B2F584754CB6BFDFD76810E300741EBE4544E5AC17413ADEB21C6
-2F66CA4F075C32381796BA709782DE34A675B717A2C7F6D88104CB924FDE5DF775B4F0B68E0E2E5C
-2F788BBDEAF06D8E1FC2105CCBBD5827C0B03FD6CD64F0D073F3192D5F94839644E5EC6C5185BADC
-F04112A65F49A8C83174A9AE958E76A2F5AF469E8B76C833782C5FFB8BD7B1BBBB3EA0CB7C9786C3
-BE2ADE5E7AFA8C8F20892659A59BC421E28845A108E34EE17864042EF587A6D67DECDFB3F510EB40
-D2229585347A0035670FCC76C2837A4E4D68304FE113C539B35C1F0234B5079B8E32934546982978
-C5E4DF955A454EA263C3CA5D7101F31A318D82A3F9FCB5A8AFD7A65209663B0FC9DA400B26F285EF
-46D0E1EAF8ACB1F1CB805E3986D04BC585073FC64895E4DAE1CCB749BB439CB32EA91176D5C39C36
-50D10AFB9C9884D5FB90183424CEE67EF2175D01D2478D67511EC9F54F88763C152697B06D948BED
-49240096EEE3D06AB4575E8E8B2CB8263B5BCF4FA1608720F52B675309833071879DF52C3EC2871D
-20F398B5CAC8F8A4D41D0F1D47584DD90DCDAEA4A1CF160C4B3BF1AAB890B5CEB6CB3488672AA68F
-BD938281DBC1D8BCFE92FBF514DA5358443CB6E0147254E91B38CE6787B2BB0DEDD2D38F5938737A
-977B5EA42892520C58F8FBB53C994B57382379E9490F0D6970B980E1BDF8CF9F4C3C5E0A18F66E86
-EE93FFE7FE546DE50F41364BCB3721B637072571FA1779F1D672FAD260C16D7F13CBDF3E4376E7FF
-56D2A710AC5AC35FCBDBCE2C9C17E523BBE6218617B13C1FA6679B308979AE7C61DA6E68369324C6
-CBC7DDEC364E5A86707266C0B459EE7B2C03FE584E529BFFDCE98C90A2F3D9305AA74D3ED8430DBF
-3A49FE2ECFD9C4BC9FEFD22618FE9C8A973AD072AB6F713E4DF02DCDA7AC5359B2D652013E131B76
-B3ED6C75FD53BA58D862846264627F6B9E70D8800F6D9B32242B747A67BB2B45675840D34F852AA8
-062FA6B01E31ED24DAE02F6CF788A17F7B9368175195DB0072259CCE0FFB2C1035C1D26E1777CCA3
-D56A827C3242069E76D6DD69B653768614B9ACFF16567FEA61508D51454BC02F6C60F755AEF6AFAE
-3536BBFA1823F8E1A53C41124DE983E51CEC92AEF4F99785D554488A51C20885346D1F761DA79017
-940A0C557D93F1DB6B3D00FFD61D08E96FF3AFCE5FEDF545CC9F47A2B1BB26713431D6D1E47FD6BD
-6E3C668B0368241F0EBB5FA9C991DF79890E52E83A3675EE699B61BAF869DE91F67278F510061C6F
-E41DE2D883F48CD0E068E2A652B244128D82E5CD52F35F210DDAE3054691ED55A7D99088AAE8FB04
-F525C2084AC09F5EDF80A4EFAFE981F74C0DE9D194320709B3464F3FF2C0F6AAEA6D973D9C323F53
-DE3D741F698FBF01036716BBD62957CB32CD81D3A2674560FFBC5BDC5C6E4F547E589AD0B1CFE14F
-5E17FED1C4A8ABE4E67CCF8A49F32C4C6044F1431E1CC382E7758722A6D0DF9ED23E51F8AD14D11D
-7B6428E27443715EBA4E9C05D6F238378F9498AEF0E7EE4FE6856622CC8E6ED141EE5F109E343CB6
-695C4BE1E0F66601C27975983BF557C04ACFC19227A1AD7E6C44C00529FC7EDD7F886D24B7E029B9
-C395260088BBFB96972199A7B32796D27257DE83A7402291C14FECDF7998C5C96B1EDADE0280F856
-8A8F5007852EED303969180B3329917973C2D32C080C9765B6BAB0673BC7ECFDBBFBEA980C263843
-39B7F1052591D91667D4FEE413AFC23DE2D4B9DA742F4269C6C939F5FC32A38040730A018155AD73
-3F231E4D5B9D01C03A58EAE7B5F590CCFAF25EDC8552CFC8D95C60EBAE1837D7A97CA137E9D4A4BD
-2CD34AEFD68D64B3F4F62326AC429921D7FB3C235184FE0899690A0B775F1A566EC29D5830D32372
-6526F7E7F5AFDD71B77E07613DDC4FC63EDF49051AEB59E6337AC0A4B6DD872E776C9CD0CCB86130
-5322D816732124F5978A86C186BF0A0F88E733CE38E4D7C1BA5378C5629B1EFC97806059990ED42C
-5CD183BAD7E94070E4058569DA2E51831FFE0D080301AEAB4350BA290318AEC582C78D05DD92E5AF
-B4424EA808629BC972E68F4FF2489C245593F07555CA6A2B25964794CF31CBD3AE5C229AB9B8C298
-06C01D116EBD0FF0F159ED2D3D7DFC73EAB4910BFF5B0B0B587CD9EA6E6FC45D63C09766224D8346
-1F0588140B258B1729F70BAE7962189B1554483392988CF230AF4077193E53330519394DD99BA135
-6D4730AB221DC6A66019BFAE564893DDAD7B177DADD16ADD21D396CFA6C3DC818052E2F71149FD59
-4A16DE0C2FFDD366C99B486C55A6E991E4D22CCB15843F0C3363676AF2F5B2D1B7EF66CCF2F12DC5
-0D63776BFFB058D70A9C76DCE96C754872D72C82A0C33F90D49C935402CDD26B6D743B1F43BED5D8
-B539424849C1495DAE73044E885A7D0F307F1816DF6244A6F2D97BFD4E200E93F69B08AF39EA21E6
-E347A47CEEBF803F73B978ADBFCF056789BB8E6E2563DE87DD9A8C877157B934102DCEDAC54D487A
-1BB2694F0034093C48F10A17D32E2BDD0C723CAF59ADDD1BE373AF8C9BEB4415AA5AF36310C31F24
-354A53C0B962573148BEF91D994FE3F3D8450DD4D686725799F53C373A0A3E3C060C2E1A3E800504
-9F26D716E1F381B9F83125E4683264A07E2D8938F605978E2513DD2050B3D8A1012797CBA8961632
-BED260916338A812AE751C7B657E086A0C7DDCD3BFDDFF3E48B84751925736D1310C4910FC114387
-F3ED7FE163F91895EBF55FCB425CEF5729D99BD8F2C072E36C310523E75CD8E5DE49C031C4263410
-9D56E91A46C8C8E89FD92012A00C33D0DEC52597B5C6933291A7BDC5CEDA95DCDA5600F9AE1C8250
-54E7EE1067458CCB66610704C58E4A4FC0CB5FC933D0322A716B2CD430A3AD48DAB3D4CBE9D23F2D
-092368CFC4E1F5495C133A92942EC62118D45C17723646E69407B4A89DCDFD2AB3FFC099A21D9D29
-741D68270629AA3A414FE58658DC9170C247B6E23F35C4BC5FF83009F462F2EEF4DBAC5FD158A658
-57F9B6DC1F5192DFB169DCB65621CAB2F1B07BD22F4155A8E9E2B6388D430FDE5EC1C834D22EA035
-C52E1E34482EADC36B4CAE902AAE89A7284E62B3C84B608D6BD05F75BC31310B2DD3B2C08A00E073
-7F104F03A41989D5F6B9A2C38B22F1D1803EE5D7A4D8DE44E4ABD496A1DE0C0E12C4BC96D0122846
-3F0EA9CE9509FEE987139F3DD3F9D0DF4313F555BE85433718F6D05F197C41A9D9C7A8B0D2740196
-82D49F58DD5F66B12A6520D9F226D1DF1F1B65CDFA261F980CA25A92645B86B64606293F8BFDE364
-C47D2AF2C709BBE77A70A5712F2CC26F3D66F5BE2C307A48E6F887F681D30121E32BBD87271B5DC4
-615D28C309F15AD263FB37424E56DDA6E17B998B45BE6C7FC6C28E3394A8764C9EB2DF5C06626593
-B5C665D550D4600172791CD208AE9F37BC082B0B242B0A504B751B18F4D7495172B697EE217834A8
-A4FB7CC16D6F9E8BB400BE8AEB0850960283DCE725249FCC4DE97D9886745AB6066C3E2F64DD8AB7
-9AA11667F11188D7965DC11EB760B772E282DBF13249F31986AC6898FEBFE23E3E8B8D2C33E00EA6
-FC493850ECB2E6D831D1EFCA3C2EC8EE2E394599091ED58BEDE97D7A43B6F739EB0F845EAC1DF6B1
-EBFE876009CC5D804B15ED4B56761B3CE1AF59C07B49DC798A44532297AD73D5101ED47F36A3678F
-818297CC27F6AAA2AACCC9AA9B6F5459911D8C56CF499E390AE607F3790450B2B9C9BE0F006EDA0C
-715B5CA0481734CFB0597478E7602B0D2C1E4F78F03C68C17C70E4B42D7D2D3C95CF40F73488B371
-8E2CB05A549944D86944D78724E266C3319AF89AE430E777E95F0D792B1C654306E421F3D63A26B2
-1E74B6E8B21B2E2B9DC596D013CDA16D08E65E8F24A84B12B2BADC653E6E1110DE2E709C1C1BED13
-707B70A421B384F20CA7A9A9D20324DD383F28B2D3C7A9C53F5D4C6B7C378D26DF11CF55238BE1B2
-4FA70DCC178DAD3D35670FE4919085EB1CD905971D76A368FDFCF9D2F0A23739851A3A6D2E02D65D
-54DEE69ED5D81315D3EA5E356F94EF256DD267FD1E1A9EDC9CD63E743F299BCC4A4506233B8DD765
-2CA067F741603F93250C087D368F9E9CC4CC1A6DED567487C05BAA992B0056A77F630A72008E3946
-15A9DB24FE56A956650EC9DE90A6C2259189440247970541CA198748928215C0E132A81AA13208D8
-63C1FE817F70CA573B54577D10B73100AF8EA088208A44FB92ACA314AE5879706180788C17BB1D0B
-81B6B95A1C4E0F9EA66F9B39BFE12444A6446691A7BDB03E0F03D9F07A10A7598F2166F108529F34
-CD90E601FFED3479ABCFCBDE8F051C348E48C61D95B00C59EA1287423F05666C3D36288844067E83
-E14F6B5210842C742B89F13ACD126B9FC50ABE2CA7D7ED513D43B6AC7F41EEDA416BFFFCC5C844AB
-2D23D4DC09B2D510504CE98D02E72020D9E669DDAA344C63A1B75632F912A1C0DA3885DA4AF7E243
-E4A4C6493D6595BB6D56B0359106957259E59E336BAAF35BD1CEC5CDE735272EBCCAE8D4904AEBD2
-B32610C6FEA2B69941D6542ECB44D71092A3CF067708A3D087AE99FF29671AB7DD8758759B971A08
-AE1BAD78270D2FBEE37AA2DCB119D72F6C7B0C8509018A70D0B0BE2C6830EF8E0B24B1CE1141EF87
-3A4D7DCC501F808BFD94E4DC0F2915AA023076BCC8006490A43685EA25AAFC187302EBDE7FE1965A
-04A5A398985D29F08E085127B56B057334D88EB638A4DDE64AFD204974C3939536B1B66A54B4DB81
-151853915718F70813F096CC1B0EA25E363B49264C2AD17158A4489F91453FBEDBDE15D7B74D7F98
-E81DF23251785D58295BA297F295AA6248A912CDD4F1111E6B628EECBB5139709E76EA4AB743CEC8
-26621D08E6BC64691CC90B3C3C1778931A28D3D5B1E20E96C643316613FC487C9B604C43463FA453
-3BCA1236286E6F5A6EEB2F1D9C34BDDE4595495A365F88055D9268541CF1654ACF478D384A5496A8
-772EA1402751A093582A6625A0A44816B5FDBE166835D598644296249B92CC90AA3FD6445C9A19BF
-27F59CB0616C7306070F33C7DF4E1DE64AC8C5BB2FFAC1EF2B1B30E5A0275E6004CF64BBE2C6710E
-DCFC3AA4ADD60106334708862FFA6652825BC84842736E47AE6917180365C75B27505EED3C6108E9
-898A780E20C3F606A860229AC46D0471ACA0187D6D539A1B8820F620F72B41AD1D3BF3834BF48CA2
-AFEA8BF535AF74C4562DEADCB63D2F5C7585722B77C989342D190FF926C8A5263B4F25286F99CF6F
-C62EE6E2AD61C82B29D82468AC10FD27764278E5558CE8B41BA111CB2F040914451A480C93084237
-CAC8F66BB7C6689F340B8ABF0150E06D5B1177278A4C08742FE22F42C28680F190900344ADFA486D
-59718C25D37275BCE4DF981AAC35D2C7E85C72A0188B8953CFA516FD545AEE0BF4B8BA301CFDE214
-4241FBDF3D204E3D2823301572E23F204C97305A82401660E12926EE7BA6EA1A81FF5C007933AFC7
-3266FAC4C134ED818A48E7DA01C71A46335C845F9DA5E960B25339D551582B375814148D94CFB781
-FC56093827B78578A73D4FF67B6B87F40CFA5E3F4325D9108CDB64BD06427B88C84105187316FA29
-90B4E3E8EDB6C78ABF164F4A9717D523794B2FE772A04DABBE688CCA977090979B5F47CEB90A1DBC
-167D305EAB231C9F4260C4AD10889CB785169902FC0BED78DA15B8417453BB65856EA0BEA5245BA0
-573F623D215F6C0CF801851C305B355D26B52B0B343645FE25C78A3526841EDA480919A1BBE5F56F
-C10ABEAA3E1FCCA7C43EE560F067F1AA2AFD642F769D1ACE8E2AAAF38850F0D757CD808C921D716E
-96FBC07DA7860DFA70CEAE2888C0ED3CBF9586443532B68DAED9A926655C157A416C383A53D8F283
-2A4E67468112A09ADC837ED8EC95F70852921F50D4417239FC42EE3624CA97F682745CC5E76CC7C6
-7BD99F2180F8C0B7FB49539C8CC474C25C0DDE491671FF329E51BCFA779346D4686835A3AD6633FC
-B5E0F67E0CA9CED8F215BEF4D240453EB2EDD6ADB22278AA5B985FA140C9834D38753DF2014F8C0E
-E6DAD19E8FC54C03C1F6CB0F858986691D99592562CAD95FA0A5B2ABE4A8B54B457D42E8C33A2D19
-51C0419A72FB94FDA78ECD92BD2A1416459E9DECA9469F35E4C47DB531726DEE8F203D7042EDB32F
-025DF3D582547BB1D45F7A5B70D317DF4EBB16E36B0D798E0932FD2A85B04FD67143E4B287A50416
-2C1F5A037CCD780088C5476385AF8168E12D97D44B0630621759173C8F1E3006B5B1C6D7138B7EEF
-C3CC5F54E24B2C3CA7B41AACFD25E554880AAF406EA4C3C6E21D3B550B040FB1952598A7E8E6488F
-E38288B2AEB6C4718338598A2BFE4D2B9D14C65732DA304C16FF3E1F8F03046EF095B65FD609DA87
-EC24A69278BFE65C905CD0329F6A486B8525B7EEA4F7AE56C2633CD83543269E8ACD6D71F500D82F
-DFBDE7F7F7B1AEE67328549232E26CA55085B6E84D9E2E7F74068F93A90C4654F2F396E57C5F76F7
-E61CBBE523DBFBA6E76638BBA3064DA025A79E3A294FE7F1CC28A3B4C57DD6FDC48E541A85534B25
-E1BC11B4F78019457239EAEFD4BE9007D205F1D985F389DB22400B279C10948551A6B4A17FBDA0FF
-C9428B18B43DC76EFB15FC2182216F1B60B4E344A03AD6C00F141EF99F89F24C819C3E32877A927D
-84C2D006940F39CA8B71E5951673EA9BFD1749923219DE38929ECAA9CE43B06CFA7DA1BBEDFDA56C
-61FF6C24F40E59B13870D5FDEB82D981154FAE5D6D5152DE69339359461A41A9713B6BBE47E868C9
-33CD74C75DB71D13BAE4DEC85E02FAA14EAD6C0A253B16C79514657B15E68CCFF9EE6AA385CFF9E2
-C53D9AE40F85C793E4E8FF50B2B7420F4FE69807BC5F37C3E300E6B3C3549D1D3246A2E70F091054
-1135BDF805E0A698E236B6496702D061241687B7B8D1A0E517DF0476DA09D89667A7AB375FD2672D
-CBAB8124E511502DDBD08BA04D941DF1CEBDCCF7ED48405CBCC33774A68C5212FC6F132641FF413C
-984F8B43BDFD7B1A2A3435F15AF07EF4970D3E4A0BB947C181E9CA27CC14A35BD1BD096875B45873
-8CA244F88C28728B74E25CB8C4FC1095A56CA75E4569AD3082EF194ADD11350DB3B74B96761D4538
-596FF7243B1E1B724716A144106E080D42036444FD472998460CE9ABBD05B42AF9389AC452BDBBA3
-A13A96890025789F16B9D92251FD3B3BEB2C61EDDB370A20456E3BFE5F4039E2557C451C524F8087
-015BAF3FF05F51869FB97512968BDB2B49589C1C7AF1E085250A47657465F480B7023E24C76731AC
-0EAB6704123D77977D3A2C4C56B691346EBE589C619C04515D34F81FC6A17527D5D8319013C5D4FF
-27CC3925E24C99231AC7FB9EAF0BBA482D3B75807AC85D03CD09DE5D9AE0B07B7A813F0449786500
-0AE8A7E00080300F0AB8C399057EDDBA273DD2E1B2A0DCEFAD3B332E6D4AC1FFAD846167DFD70E03
-46DAF84AF292D4F424256ED5AC4E104F80697050D50844A708EAC9E7F7784FD01646F3BD0C595CA5
-1EE6BD607D254E78ADDC5E15C3B6AC4940EC865A5C23105B6BE09EA09F2C05D6D76960A843B81EE4
-33977FAAC3CBDA85CDD2F4DB7C28293A77825635992AF8F3B38B4480D9A139B1662345A8ABE1634A
-77496C3F57597D2985E9E54717AB2E99CA35789441BCDDEDE9A9E2106B401D9684ADBEFE40D607F0
-75C179E9CC03E59E65430DB70B441D43DF03F2AA6FF06F224B6E455B01C64FB89EEC9103E48453A9
-749B4D602808C7E408A8903091D85E06AAF635D0D529C3CDD1B8479AC0F4208C284BB678A547F2BD
-77BB17C86D4560434F7AD1937760A6AA55B614CFA9FF8C9C96561AE6C8F2121C4E20237428BC51DF
-2099B6C49E3EFA18E6D439E6E6981E746EBB1DC461259D8EA0F8099C47CCA27B2D982B72C9A07CF2
-1B3C05D6E26E6E286E348B8944078E24809F9C5F3D014B4CBA02533F5621BFBA1F0EDB776C634746
-703C9F73BA89B1960A496420C68F54E5B901A6D733D7ACC79F275FFFB253F389AA480084468BB34D
-A1E797E43B7F6E8CAF5E8C93069A3A2730E57EC39B677BB73E3F07C2055599F7062E53B37A5F0099
-907D2ED87FF7A82C95FBAEB888033BDFD67BA3A6031A4CDC56CB1E4CF5B06B46E16D988BECCEFACB
-9E1C037023D7BF5CCF5D65AA66A17AB361BE7981F132A578F3ABFB97960A6034F052D9D5AFDC0679
-782EC90F240F943A5F9A3D969ED7399254FF67D89DF668F7C56FCEA1FFDCF20481474AC8495D3AF4
-B6D7EE093E369C057F0B70858220693B398ACF8E8143558132E4391405E30A73937C53402E459F4A
-A3539CF7A99A3F51C0307D045DF8B77757E92EA2F51BF0BB4F77D3904DD355665870C2B59F1ED7F8
-4FC71FDD7F0B6C5D3182DB77827CA6A2060D2B8C83C4EA4A432EF43A4D0A952CC6CBBE52A9F0CD66
-1A538973DE41FFE9C5CF55F2506B9EFEE51FBAE5E63BDCF5528499A47C031163C88D3022606784DE
-2F46A9C9235AEE3D4F71D4959B0CFDC5B7E78C8C0A8F9DC99440C2263DBACB343C5C648577F5610B
-50EAB1CF7FD02419EF3941C7CA0B0E64EBAD4B2CB05A0793DBC38F1946D44767BD287F5E9779C611
-CA0DAAA1E7393DBE0683C8D3455CDFEBC0E64B54B737E298DDA605227C0C4BBA87AA3EC7FA6EBAEC
-39E6EF2537D5974391D31739D9FC42983D81AEE44711C823F35F8E2321AC74943871739D2DBE9748
-FE68592263E7713F27E0D49B9B5CB7A4E55DE54E6B800D15856450FFD3AE5F287B12AE4F438B20AE
-9E27E6CAA00F3EAEADBE08432684FDF9931E925544A680182602A3C1997DE5D0630BD5A010535E66
-E1C123013D23966B3545C7431C39B97295BFA4099D14461004C42C85095EEACB9B47C593BC6DB863
-533A8619BAE09095DE8ECA432D4DDD49AA600D277E75DC3F5C6631E2A05382CB007825FADB77438D
-CFA78E252D79B6A196D5164C2FEB85D75ECA25FF80B1D97FE10E87960CA0FC47C41D3A213BF141B4
-8BC3AAA93FA86245064668394665BFD52D12C3BE4CE39EFD8111754398A944C3FD1AFA98EC337BAA
-AF899D35E804CF416AD7FE45FFF13FC6354007501043F98FE8428DE8013901BA6A28711A2CA85A27
-0BB135B72F1D5026E8217581860729E94F2F1878A0E96C59E9F62714FB5F8F25003DFC7347E99007
-8A9A331CB3A6A535BC61866F02513DEB982C4A13ADBFBAC3FF70A7335F40D5489E48E5EDEDEF1619
-1973D932479C62183B0E25EE8C4F76D4F1AE45DAEA4A12AEDD9EF81D248E8D19F8C8A5BECDD1EA1E
-98783EB7A38149170851B1942C96C53DE06DEF80913BFC04E539EC67C110498D15B78268853E5C72
-F485F8A27B768569E54241F6115875E2973292CF48FF91D45EBED627AE9F0766D22201B20AFDD40E
-5B17CF337F2999E0BD15B86E46EB3C18FC12B7DCADCF9DD50C6C7E3F37E615A892DB3F57E250A072
-A49F7277DD6A2C8042698233D35A699B17ECA5DBDA6D250ED4A16FCC893BF0DC2E33FB1EBD7DEDEA
-3C1C39603C8B7E1A5A833A8FCDD5570BD088749BB232615366687962C7E56ED089CD7B092505CAFA
-5A80F503C4CF337F07ADF0D106937E25670839D491F7BFF7A523DB609D126328C16113ECBCBF9C40
-04904427A108618AE5D4ED809F8CCAF72251104C94EC5BEE21F91B179D31DBA79CEEE5EC7FF698EB
-84AB1D2D1A624F58B3622A78844CE51498B2CEF38EAFE259D22C7BA61104651A862008BC1DDDA58C
-C45F663EB26428DAA85E7785363A69D2790996EF5D9621D53042F42F794962FEA46E46F37B8AD1FB
-76FC8D5CF2146843F8CC625139C75FB42DDA71A752BAC48F294E4C0C8289FC46DA5EFD9C91BDA6D0
-27518B7E81E8B21F755A9615627D5812ACA674D1527A1185EED4E3C628196E7D0759B1CAE6B9B7E9
-01E9599A65230F1EE469CD33B9BD9C104C44E3C1AB966C9678BD0AD78111A4E0F2D07A01A038CEDE
-7036D0534D684A1562A17AD64A00F279200C0371B1CBA61747671D2A21D3F9646CA290F6B82418A9
-6FA177C6278277504B7FBA936325F5FA124AB018A15DC18D2C5E8F93CDEEA52BEEDB78A57828D81A
-3E6C38B9FAF3DC4EB7273ECE3EA4482A1C6242A335862C2C3717F9C9ED95F77B140C4E1569B2192F
-C7DCF702D0BC9A50428EC406F8BD0CAF886B4D979320D3E429816D88F7C7146D960AC12E70F2CB7A
-9F4E3E366665AB3F1B4B6440F55EEA26DC9EE0096BB7763731740A537766490C8C174723BF0EB40C
-53701AAD12B21D436ADCE22203C1053A9DC4E9F17AE617888C4B4E6F3A720E4E6366BA628221A387
-D8AB15E04AD69387C310D3528BD2FAA5B22BFF3FA494F5FBFAC4F771C9C7402B95580C5AC4BB3AF6
-92A70CB2C851FA5CF1173EEC3EC29B5A05A0B728BBBB51D3B7AD8B0AF17A1563E82FAFD93F8B7118
-1FB7AFE352874F4EC6D334AB6747519AB8E847B7BCED33EB5458A828E074E74BA621BDCD03FEA604
-7F7B6ABDA01FC7514BA1AFF0D4D0C0CB8F4E42D5A87E395D9ACDD02CCC220C157153422018725846
-009A3ACD8C8CDDB66BC6836B4026FD9F526AA275D06C813179E5924F26A25094E7BDA8BD26AFC4CE
-B41D8964D4FC4AF1DFB0595BC5D6714C32F15DC7194E9A3A73013C45D8FA55CC0550A12D9AAE8E9F
-F199FA28EFC2426D8D1DEFB93A65717AF3EA8E2D5B4AA8EF0EF38E9600F7D4E7D9F1D67A2E63ECE4
-789FA74B159BFE2F91C19B0378BA52E93DF12830D99553B6618645E26126842AB70262D96E35E5E7
-50ECA0CE3458B3E51BEE2F21191136DFDBCA39BDC07939E521E4F492F392DEBD029C1EA237BD89AF
-76BC89F618D530160AB16269FA6B693CF14BDC4EC7C630025703C5337F61458FA09104EB15C7CB20
-AA4C9BDB7CEF3A09F25BC7F3149951A7CD75372993B80CD2112F7674CEFD6AFA764AA3486730D2C1
-897A264D82A91709FEC4A21E30D812F558451804EE6F3DEE2C4C437846BCBDA07C5B6CBA1D94AF02
-9163B7383CAC6E088AB1DC14ED3743EE77E26EA7AD3119A76C0B5F925C4DE305CD7BB3A09A453947
-5B9BD79BE28FC462D8718CE05F9D94CAF3387BA55E6E447BF81A9EDDD3A34E17BE66BC52B0C0BB6F
-86F6F008829173816D205182ED2ECED319864A796AB65D4E3950288BADA94FA32B6F453AFDFC6C39
-A4FCFE60353A64627E2057D4B379D3240012B3BB0ED0C7876CB83C1BA5EFB6E2A03F340C2B576731
-F848F762A7E1CCAF267EE06D621BC33FC245D0E1547ADC12CC0EB58B26BABDB8EAE9CBFBAB93836F
-FF22BDA1831DD01B7346AD377AA298D84628BF1C07433284B0A90FC89F5AEB2651BA2CEA405D4F52
-DDC0E74B871D43F71EB4ACE0D2B401F9348EAC3A2EF0AD295036BF6CF6F870D58E00B619D50EA7DD
-77BC28DEF91D805CD527DCBCFDC16C042BF9B874E3B1567EBA4C1E70744B9E7E5BD1FDA6A5FF6E10
-1613FBE58DC46CFAC1A65ADAF65E49757E9304E2AC9A91E0588600C709A61D4231730073A36D473F
-518A145E141D0A5A494441B9EA99AC23F60F54F8127B477E1CE698BB4129B4B1DFEEDF10D9E665C2
-47A62F112F5CA30B0AE5DBF3E495FF06EB28EB438CE8AAAD84D5F50FB56A3AF002C23BCF66ABC270
-7AC233FC0F2723DB99D2CFE7D3B3667732A531F5DC315CE74EDB9050BF75D29E6430F57CB6778B2A
-CBD57DFCEF896E6766C8FC5C9F9FBD701CD62CACF33EE0FC95E78DADD205B5F42CC63024624BAA0A
-B4DD447832B4E1DBA77BDFADD223989F8E958C8D759AAA37930664C6EFEC708116248A2A7AF3D656
-DDEAFD009B7F5333854608E67E5E588A857167ADF9225CF6C641F5E19C3E08678A281199EDDAC831
-B57223B1BEEADFDCBC8F6F25D32FCA2336C808162E8F381656E847FB6CB13969572425AA05AC830C
-33DE6E030F86A3A85D2A66A77F103C7042C97205526DC882EA9A00EB8BD5519847EB424C15F808A9
-1652A6CC89B66A5731126DEBADE123C63D88A2E550FACDEB3886FF98646000C64B3A91078012CA30
-904B71737CEF6BECABD43DD702880538F5A70085E6CC6015D2163681067C3D513A8C66032C34A0FE
-17A58AD4BC97CA69BF41F11D5E910FDFE9729652D3EA21F8DD8CC19160A8FC77573B1E9CEF4E790A
-79D8AD6723B6804E9616466C935303E063DEE29CAA6C3BAEBF278B818C2EC2F13ED645AB452397BF
-00DB8B26E115026E256746CD0C78A959364FDE6DEDDCD0F441A61A1EBA32C7BC172BB09512148D1E
-BAC9E791B7D51B71CAD2DC9B83B2F99B3726607D9CBE58B499A13753CE87FCDCE21C0AD0528ED0EF
-B9B2C927F57C78C626248AA2B835A0791244C5896686A66173EC9F802C4C633A42B086334D2A4878
-0E53D00809247BE64E529F96AD2F8B3922A6097D414DDE1EC76F9552F9B8D58B8E34F359AD792B2B
-E50C26DB05035E7497162E7C49C38D3CD9B98D620AA67492BE5AFCA3A81A7080185C7F0B5105223F
-1FA77805502A2E8C5FEEA27699858D84A95842C5F2FB68686D59FE24091FCDDE139B6463BC6C7B1E
-0E90D20A83651AF00C85797BB9F53ECEC1675C7EE636D0D9E77DBD8F89670F855EE4D4800FF3F695
-0EFF09BBF8A0DAF6B8242840CFA5BA73BEB95115F4A78BCC02D85ECCE0C0F2EF6F328AD1DD6CC049
-5A3315B414A4D61DA50DA46D7ACCEFF6EE56451805D26B0359AF193531F95F6589CEAD6FA041AF15
-3067F88A0A2FECD135C56682DB2B45A71D1FA737C064EE9A4F404BB72A70B3AF0330359393247EC7
-81512482579865240A23CD8479F21C2C44A119EBC4E81B308DD8AA86E60C3DD8ADA50E0DFE8308EB
-1A7F201EDE8DCFDA405AEFB47E0E6CA7DDB376DCB21D37F7ACC4D3E9F26B03A8DE0E8940CA3A9E75
-963A389DF8038D2C486072F61C0CEAF500753C7A6352B1CD0338D9212B42A4D3DA23D5BDF44C27C9
-4B88A415A3242FFE2E1B332477A21D2B9CE075EE479C6E657A4D8874A8C53964229310E01ED4F3C6
-86FEF5258EDF3B464DD6FFD7F1CAF473BBE722D60FB14AB4918E93878A8AE4773930B8CEE110F476
-7F42A52D9304C55BE12846C911A10AB9B2E036BF9DFD597F5348D42233315FA80D0F563C388BC253
-2103F05E90DBF1923F229F980A2F4585C7A373511372D07DCBACA583099EA972C03E5AA67E663882
-6DB134564DB993CEEB6E7A6659C7C5C05C310267D5F8A24EEC2D5CC3E3F3C808E6D6068D1A57646B
-37FABD98ECB7BAF99E7D9AC4414A491A73CA34C52F394352F6B5A15F0FC4D88622DAC694699C2464
-84ADAC3B1D366AFEDE2A2CD2042C90516A666A19A91C80248B11224BEDDF1A320E230739E755D098
-B6A67315535F4C187CFA67ED817A035056353FC859BF286317996FFFB478A2248B908FF12ABDE705
-402224A3EE5F463DD3D243875C84E02DB968ECA1CC52C75171EA50D6A88CA91327A7AA5795019F36
-C0A19C093A1C9D3723C7568F9D41F2E4FFB712FD47F897703D7A620B586B81936C84AAED61D84332
-B3BEBC4F95B796B93EF7A1F565C494F8A65EDB21E2EE18DC025522EF8E599887CA2836069CDDD889
-88E5862977B7472584303198CCE97EF9F9E1446D1F1F5ED1CFC666A8A0C3A03E1792EFB60A9B4065
-49E0DEDF6ACCDBD98742568B4735A747D8E5DE21E630125AE0C691D054E42199C15B1F80CAFA6E7B
-B2005F374A9A5F9900ABB7409CCD50C3AFCCAB1214E6A856F7C7EBA89BC3291801E1343DA9DAD2C6
-ED075C8ECA1423B43E587AEC67E6145272814B3F191B3C285639F9E2D6E148A02DC2CBC0E054D629
-5CD05DBAC1950400A9189316F0265B86A732D302C5BEE8ED233768F237C62600CBAAFF3A110D5EFB
-6CC7CA3B92D965CA7C5E8D3E64ECF239FE2507FC797FDBE54C1112B28D4DA44C60AB09D994C5BA78
-D663A2591934CC052BC70CD1DCA3325C66C9CB982E2039F5DB70C848D3DCEF655B1C2CD0CEC8865F
-E8E1C0A267BE4F707ECE6F5A3DFCA3CC1EDF92C760439F51AA69A4C1801E96CA4D6EA4AD980258F3
-D15C893913ABCE09101984C61B91D603053E49A97CB82FBA707DAE8AF1D579FD69C8481CB7B712CB
-CDDB4D287BE995E32C02B399602A08B9DD849039B5673F1930BEC7BF366EB082D2CA5DB2385C8CC4
-5BE3FC0E31820191A814EBA7C4F23B1938E6C4D800732787CD2CB97F762DFC85D4B798809B5F2254
-D826CA42B32695428D120298B44CF38494E56240B75DF1E41E46E53C44DC505452256DFEC819408D
-605FF14D6C1F3F152F2FEA96EA0AB3B472D8704E06BE9F8C3E8395CAADD06D6DA033E81ADE5DC3B8
-3DAFF743C6E9E48716003D358DF63CD7FD3E2F727D1F2D0C29962F76D5C95ED44B6F08D052025A66
-5785F264A3D5F5593677B630E628B5EA81FB37CFFD7A30B7FAD226B6FDC82B0878AF4C0EC4F4243A
-807B9839EA62BCBDF7C2E9B30A623876E632E084EBF4A21EDA04FC88A1C07021D0C72EC3E969D449
-FEB08E5826EC20E55B21EA71EA59F6E3B0710B0DDAB3261B4A2029ECAB68C19ADD5174E55D5E984A
-4E5F38F592A302FEE6ECE732DDE841A28672C620CC5D687455A5C06FA9FE688394A04F96312ED025
-B7AA6FBCE2925F3AE559CC1886BEECDB70822E2E5CA3F732A87404B1536AAC469989E9610CFA440A
-CE43875A70CA51F36CB6F629D9424C1E35A88F92D5DA3CD8CBAE6E8425A36968E21F4F30349749E0
-205BFF8D552837D6FC39532525370BBAC833F75F1854C93FC533A4AA53ADF7008173A70D94A4EBF5
-38EA9E62BCDA7C20E0A073BEE2EFAC34D2EF1D03BABD5147659E50B557045B2EB89DB303749B04D3
-F54B43FED612FCC68206E001A7AFE90230D9C12F74A32C7EDB5D0241DC3A5D51481FD7C8FAE08FEE
-263FBCED7C7D911B3A303C835AF5FADFD218F61A9D6DE80485ABCA88200047B094441F7767B97A24
-E8C612590FA2407BAB1E8B56C71914EEF2355DD97CFAFCC192BC06FCE063D3D9D1A629AADC75E3BF
-207234C208E7E30663EDD691043065C9CBC473D97C6D4DD3DFF59D6A9ABCDD4412C3128F603160AA
-D8F81C6E7A4DCAF35F3A99B4EA10A34375B477C2BF846521A7EABD4D28078E9340452A198F3F5ACC
-3DB7E3908939FF6E3709C6A3FD9889439A4AE3E10B618CC92E14B68429A3AD2C80940A1079452EC2
-66F254657BE7D79A2A24084AF73F6DF71FBCD32BF6913A3FAB25F977787F7BB0C3A3E8BAB38D7A2D
-B0B4826950643DD1E03BD7DD1FB149A33862A89226B7CB454DAF613128C2075470E42E70A9444A8E
-6ECA526345AB48E6F5160BA23B5BDDFDA6049EC44ED1461C7E0DD514B16E2FB285F72039DE3C7982
-EFD40D7F6C8E8F4CF35AC71B467BFC578002E8D2239A2FD2C4BCCDD8AF3D7DB1F4AE7F2D2E0811DF
-9D0155BA6EDE50B5F052F14F6AB884FFF244D8806C07EBCB49ED22D85DF696995991A954AA97A1EC
-D86ACD76E061B7541E87997FEF0657A826BD88EF3A4A5920462C6595E7A156F453291CA044CED810
-860C3B0149BCE73BECA713040664AD0591304106129600AF71317B0D2907839CEAC99515D357E980
-B1937B6E1200AACADA205421001F1B2F91753E80D2263C56AA164A74701A8D5FD28E46480B0DD963
-A683A1F355D7FB4463C7347C94EA5E2CA40B60B56297CB22D972C5BB10E56715A955605256C1541D
-9F3BC5768A6F355CD3B863F0FA1A781EDB49368F51B29481CBB41D4AEB07AF9DBE8F52C5D0FF75F7
-FB6431D37D6AED84D78C778871CB0F715B4F07580F23B586C969C81B471FF6A6C7276F7E141E02A8
-584D4B9AB00E7BD643D2C3FAAA299B1F1E25048461952EA42D4882768A70DE46B213A287F8D31AC4
-6D5436F22A796C05D1FE50A9BC2A928066627A0D87DD57A3AD91DB446404B41557D1457873482005
-EA20916BBE46C613F456C849D46BA79D20627B446B2F49E3FA309AE14F8C420CFD94922CBC0FB9D3
-5A0F7DBEF577F1849A1A80E0011DA8AC082A8C6F61658E65AD177ABDF23EE17C8CF0D26B9FA3A6E9
-4837EB9E930336889767A8D7EA3CE980A8EA95528B004957BE6067CD9BD8E02A0F23CC1762CCA656
-D33412FF45E917FD4A03EB6E8C1F43FDB0A8965A33B4FD26BC24A20B304CA817E88495BA9B361A3E
-933717FFB0271F7F70C5D3CBA1E86D0F51BF3ABA194DAF32C35C796627D00C7B2271ACE2463E37E9
-7B3C826CF3DB60028F240F9452CBE08F7EBCC5FDB1BCBB3C327A9F450B9E5671916101D6E3E5E458
-CA31F04D12F592F83BADA2C3683D3886AA3B403963AB5DBE220FEC00037A745839F67A3635DFD3BF
-F08F367482962DED88ECF6322852D643A54D5D303EB04BFDDEE9BBA1EBCCBA7C653B3A613A8E719A
-DEBE3CE1BD7E754E5F4977E863E3C2D388A65227B451D4F3A4F94E06513CBA4AC1F2F511613FF035
-611684CCC461599000E546E4D972CA6960E095A526E4735A23421A4C9B597ECE08AFA2753592BD16
-DED93255A1E33DEECE3C5EB77B94670E8137F2A4A4B98AC193258E7DEA5DB8408A806188F2D1DDC4
-40CCF0E9A6E2F0C78FDBD7B68DD4939D2458C1965BF8BED4564B32462FFF3EC892C03B11D3EA813F
-AB4CFBE8D3016329C5B7E3DFED0F08284D44AA0B7A2F6BC96EA4503E8EF52A64C22BED6B452581AE
-8FF8917D53976471941A9116A2D878FB2541B561767ABD4E31CCD8A590CA03494C62AFFD64EA0A1B
-C779173DAD84999C7A8D844EB1259DE7BB5B25CD023537A474A524EBE4660B22568949E624D8FEA0
-AD37F4CE1EC75955EEFA49C6BF1803BE87E9C9865FF3F6B8525B8C15FE8835CA153D27E6C0FF0CA5
-1029A7A9185D25F0F14D86FC797DCC1F99EE97E2054B9C2A2E06FDBEB8DEF6CDD368BF23A858D9F8
-C1DEFDCEAF1B4A8DE5EAFC604CECCF0D285BE00AA912EAB66EFF4D37AD2EFE34853BBFD87CE09B18
-749B489943EECAE7887B006FB827D10191DAD18466CD1F86505879310A8B171F902EA0C26A388E13
-B53C700272CEE2BFB47ACB58247C13449C6BB9D01232C32517358F1A3DE064D43C18F8827D53789C
-CF3CE2EBE78949A6ABFA1A6B8414CE360A5E22AFB7D1DCE6F5A06182C3B984B4F9BB1A905A9D5A14
-83750A1DE0A857CD5C06945EB7D4A2A6BF1237F32A154FDC06D51A703D44FE052FD3C53E9E8F417B
-35D1C851F9203A8997521529F21AD8498F96930AA77EBAF82EE02A57BC77C792D9F220294B45F48E
-A8FD94E01CD25645D36D168923562F3FDC93CB79DD4760DA0C103C2675722D7A1B79FCB4245ED12F
-A0DB52492C9CCE58B333CFEE822812F7DCA68E802C451B5CFAEBAC608B950386B6C58239D1C62D62
-4DD5D15782FC552222CCA06DDF387B373E32C3C2864C63C768350C37283760F3515A5B0AFD66C48A
-B522EB3E808C061F5CD6BD96CD18C9839D30508E7D4EDB88E8F11E31E10919B16B7971F06D7877A0
-58D8A4944C84FC6CAEDF3341B48B6E0D3C7B85D710E0C35F5B5053CF4B4798B3778CC28B2DC7AE0D
-F3A49F9F3BCD8E95D746C35C3F47D68B8AA35D97AA08E711B5FBE70D1A623C82541EBDC51A827D0A
-69E6C049087AD26F256EB7577F58CCFFBCCBA5A95D093DC29464C9A38DE95BC6B1853963B2DEB0B5
-7AD1248D6F1625E115EEB9510B5772AAE4E3C866657DB0B3BF0E0AC345E116F8D4976B770876FFE3
-748C36165522991F46A36F193DD1A1C94713673C7E4C81582391B636C72DE94CE6254374F99B623E
-5686C13D8A8322E83E11BB0B0A896C6A8C2C4F756C5385CD7017F26D23F7C3EE97372C868C8C9155
-81723BB6B76B4C3CE8998E4FA6CA40B633DFDAA59BA902A4952DA90EC4FC3CF0F2676ACFA7F76F78
-236FA2DE10FD3545357215246BB7E527F277C28B353CC6D79DCEF21BCC8F77603CDD58A2CCDDBE3A
-9802F941CED8E035313875319548C41992A2BE939A17CC109426E33825AE59BCD17CB19F50D972FF
-CBE7D9B4B0BB095303D9DC9D406696C2508D6CE99E11CF00F6461147E97449ED5F486D480A86D3A7
-ACECB7E9A945984724EFC21C5079B1FD03ED803C2DEAFCE3327D2D7827715FD65D9506216C88B0FA
-26935E95C64114A51919D419038B1A7E9C1E829FBFB53275093752DF19891A97F3CBF7719C1FD6CB
-17019A6D2D25360ECA804C4B35172662CC4769D2B785C6C87E5A4ECCE31704E59F71263B7C3CAEC8
-ACB4C7426EC25F11A0042323EE6C3EEB04284DBAE2C770BC419DCE79BD4560AEA41571C3B595F525
-60191DC7A8FBF63D413A77A0905E517441B16C2B501EA2F9E99CC38D052679F288FDF1894542E3A6
-6989A0090185EB2E75134BFA3D9147C3DB8A621D9D35E37786853779E157B47F71626D6B3E633005
-9159C17596C1B87FE2B4FF47ED9D78FA4C2160077276C8B58CEF5DC030B4A5D83CF257096C047FE6
-4DE307C598B815058E72D5F57DF5C369E664E137DE29349E2F9DCD8C9F4EBA6E765B6327D7A20DFC
-B20711273FD8091CBA605C4C494248076F7E03DF65A6A50164980BBBB708741E5BF6056E6F996DC0
-7FFF408C5B8EAB8DCEC315E92873228C805D4440A6470E3EE3983758DD211C9CECDBFAA4C9300CBA
-00608A4B2404A3C7AF017A3B7E67F39F0B51ACF950D3E75CC7BC2B8D3480202FA958E8EE0B240501
-5232EE0D264C7CA02C18CA45CB3C2DE322D3EB7F00F9455DB6C5B1F4E59C3E95520EC36D7D903CBB
-625D70B54BF6F8255E412604BBB29FEE026CC660577F91DB1DB4A613EEEFB20CF7AE3CD89D565AC8
-38416B01B5DE4FFA5550D17FB51FBBEBE21CF1D56038863EE931B90DEC2E211ED42BA92EC244D4CE
-2C4EC5CA87A026992772DC2AF754FC982B94F36EA7B7BF75E0ECE90CBB2A6AA1A012E8898BD679C2
-3CB3827C35D5D02F0569C7AA82615D4AA67518ECF668D3B57D6EF1A8013424AC2268BA0D9A74D588
-79EDCF6382A89D397864940303EAEC45A38304BA8B1CB198967AE23EB81054BE74B16909A405E8A7
-799CEE3C270FE2A6DC50BD7370B6B2C8FDB9A87D88D5D40348D3984E39C693B6F4486D994778607A
-80A3122872DD65E40492107C71C3CF708A9717E9EEFAFBDDC239C53AA9645B711038E59C8B861B37
-411AB2039BEDF9CFD00F08D9C5D76154427FF5DD39878CECC5D7BFB3F1F035087185C0981F3C2139
-BE84872FFAD3408531C4EA9387B89F5E3EC779E8850D50992DFDCF9132BC551E985943B07618AC10
-D1150451F0844C0DC41D6E17EB508DC8689EC726400D5A7F6FEB3CC7BCE05F09228B7CB2C5393664
-D8DD9A4B96B1020EF25D70AA2D91CAE93AFB5F2BF0AA18CA5C599FA1A708EF35BF8F7FFEC9AFC1F2
-42870D028B2B1459063B493943EF1283829783E1010242E5CF4DA39D93D506F3892936E7D6CF1124
-70A521D397438733D053944CFF12D6FFAE8246F20618684F263715AA98E15D72A526383E05C23214
-B78338E5B476F0981D90056E6E5D0DB66B1DF2298E597B2ABE1D817E18BEB056E65EDB4234342D96
-00470B1420C9210419D834E431B82F58608C87AC361A02D0F1FE4B470A3D71E0D21BB87E1023D428
-E23D596CB9E1A2184403A16E36E644BCCF9BBDE27290485057E62827283E7380AF786BF395B3961B
-A5EA469C315763FA59E0F176EF81985F38B882DE56A74D128E256D1B89939728E55A92ABA21A6B78
-44FAC1BA7BBDD8B34A18194A2984B000380FE9F672E83EFDBF276FE797A325815B0F25CC95C97A9D
-ACF56D583486305D7C9E51A7E337D14E3B900333EB38FD93A99587DA2341B10C059C71CE080FE753
-3C0F059FA40E560AF9C4A41A4BE6FB45846FF8F78165E10B4AD40F264BCF5596A1E8EF8CB6EA4B1A
-3A5C69059AB1563843679ECB2511A90E8898F54295649CB73D277760D8D04ABACC7BCC6E777A0530
-E2067CCBC08673F9C8C178F9D672AC8A15E5367F0C5651B53E75E0CFA57C931746AE1A679C246D7C
-9417F1CD89DDDBD1173C2F880B7B3847CBCCEBF99F7122E832D7C9BAFE2B54CBAA1ED48158DE3F36
-238B76B0E67644A28AEA996DDC006F6AC0242E4B667639E7523CBC90A0561193C1AF34481C2EF402
-EE43A82E1EBF4E3D601BB36B2D95CD93550D61CEE7A94E72F6D30C32C8F91A61E964B1F66ACFC398
-7F95D4028F116E9A9A8474AA29C1C1A984BE0E393BDC41DCEF6A6F1018DB60D52024899D8EB5D55D
-324D73F39BFA47377B9E15B3B06A7585589FCF52A54684173E5183367E7B0952DC4BC2767C4C6247
-B1D6103E52BC7B7EA6298F454C5D97AC575F19C10ACDFF4E10C7D3755CFAB4200CAC545269FF1D8D
-B0D607C7AD47F40DDF257AB4E7D0750577003C13E4941960C3DD7B0774DDAC18E8ABAF8F53E03CBE
-F6D57B44F24CF821014C064278FD51B3427593D17694B4ABCE81F49CBB984C5878CDF0C38D1ED7FD
-99B0B9A3BD8D8FF6219588B3B8FA59D0CDD1D9B2F65122AB45E48F1757467B9204926140E3C350C5
-A927A2E700173053EC35D3F1DA2D7258714C97FAA857F0898917BD94625C6D1E2D77138EFCAAAF51
-7B17FE187A2212C24A881A2C6A647DEF6376ED80AE4175C5EE80921F001995B44E49F0D33DD9075A
-CF33BB03671C0BCC34AD5784AD1CDFED3A6D9BA103B3DDC1CC2DE74DBB576A0277715275218CD19C
-A8899209125266D8BF1286F881DCC2C383749D1E768D670F4099F7DE959EDFE852583183C9111601
-2881A56A24AAF020EA45CD5F39660DEBCE30AC1C7B8CFC60387B1B0C3E361BE612FDFA9F01B7E4B4
-A18839A2C7E0E393EBC5AD9A8A4EBC316A740C1C295D9EF5F4DFFA0667F9582C0BB837B142C4CFC6
-B1798E9476D0631111033B8BA75A10FDC800E2AB1E0E829632F869CFE4737BE9E2800759EE0831DC
-7D1195EAF80555771981DD6DC6606812D92CB8EF86447F5F6C6F626D0E265C67E52A6319189EE349
-D48E49DFE6A9E98F76C414A1E3217AE0A215A17E54AA498F4ECDC50242ACC7E2322F63BB2FF2189D
-057E7354E32A3ED1803116176B9B9D0129930F919E2FEC280B2C8924E49E7BB75768A2EE1DA8ADBE
-D4E3589906DF1B923AEF84C1BD327438B731012E69BB0D43A1842CB88BB54EA4516477F704CFEB28
-6E3EA483445AD4D74586FCF32E96D366901084365F693A53C5FB532FBFE7BC0CADC404C4985042D6
-8DBB90A6DCDA3531EE324D558A214F935CD9FCC9A0CEBE9B5FB0323F4B3820529599EF48EE068B5A
-CE85004FEA2984F0A86F5AC9D56163BBFE1142B774148F1EB0A4DC89C3349052533A7DE66729DB24
-41B82F8F7360111DACF69293C9B281A0534F3E9E9224A75C49A832F28B2E497262475507B6DDFA9F
-01CA0A6696E3F5AC7EA68595EBA0C2EB8A47813FF936D84AC1B23ECA7AA2862B793CCBB0DF9FDD49
-31BEF354CEC12FBF478559FEC29F81ADF4452E83963E56541D31F3691C93A50F0BBA5E9552C4F2A2
-3A6E53060729854A3DD71CC4308B91957DB19E66AAA18FA67055A950F1C2CFF78A03BC1A588CF624
-696068068719AFB1001C4581EE072113882D9052B21E355D401ED8CD24D067B99E616BDA5A0A5A93
-36FC499632B79FF2FD0DEFB096EF46B75E2D4E0F48DAEA239719FEC4D9A29818F5875FC5041A9EDB
-D26CAF0ACE14CC80BA49BBA59E918EB3D8F1E541AA16026585A2F72DF7D83541816DE46981FB3EFD
-0C30E458CFAD04C79421AB7C4925E23AEA07F9F018431C790002596D26BD9663B51B699DF53E4882
-CBC34EDE88EB55045B889B6062E35FD1E018BCE785157B85EC3B9CA6C85D4B16238275385B8285DB
-012D8FB7C9F5B946A41D7A0FB878FF72C39683144D8A007CFF631B43748F2D5FC690300F9BC0C837
-006B92ECEBE0605E8C3A4A400E18AE8997D1B45FEE10068E247C647CF82C6DFBE5E881D511FFA687
-B7AEB78546BFD07D5F7EC242DCEF4930D8AAAD8C6152B6642AAC325963FD147F236BB850A9966573
-9D06CDBD7CA79A527DCF461E33F22BC9C5DB00DA2BD3DDDD8C99D99793BC98282AA8872FF96C3942
-85D82D9419EB78B6AE37A5F519397700F75D624A09BD255B576E955A323E784E8FC31131F003B0E3
-024A4F58FEF2A6C043796201FC425482E1155E229D1B2D43EF7B0D22322B22EF5C9A1BE026A1C3D3
-75EDAFF99597E1E5477952A4E8D2ACF5D014BC00DC2A272FA62B6983E27D228881E2EF2B8B95A681
-CBE90C5FDE16331C85222FE2A16F0A3C3000A63E2E21666C0C119F8AF89A543D37977069A5ACF155
-6324F05204CE8CAD50FF4FB630D9CBBFC324DEDA584AA56A99D3A76FF55BDC2C2EA3A021361CCD4A
-83C7A5E2768D210FA6DE889FD48A39D679C94EC3C99A8D33FF11377DA7F6F1B71A2A05B302ECDE95
-4F26773F39AC881542F0D0969C3995C3519A8EF70B4220D86BF01BEECC6462855E7B686E1AFF1CA9
-1FB8FD8B4A69E10EE0C2AD94ADD44449506F9B6EF43641F2026EFF6E605C670560C2B74706FB949A
-A7E8CC6A2D0D6207E457E7FD87EC1B9092DC68B9143947CC8ED14AFDDCBF8FDDA228A76847F96802
-E561F67CEEFDE45AE587673983FC04C96744DBAA83F2DC838D633943C75DCB9E6410474EB27B348F
-26E505F0AB90878940E846C5E9F3C5FE8C3558C3236B1B88C405716949B8506841CABE1717474BB7
-C30DB91CDEE33B0F844811762FAEC535BDCF84C1C747CEF9B1FA61D2AFB5A81335BC42C06A94D7D5
-9B7EDE55BCF6F9867AEE107555CDD084B7684C2C87087475A39A9DA6347BE281CE5635A4D07865BA
-98CE26C1465B1AB0343F49FF37B4D0CA9F3BB693D78DC3B21925CB996A038DCC172527FE57C07460
-EF39C07D4396E7FA970D9F22ABD21A9C794B64AD96762C7428F59A8757C36D6C4FFB23216195A04C
-2A2C2E7B10EF7193931544D782FEE4B91E01119C5553BBC6252270A8D8C56DD62D448F5AD8DC69CC
-B45E1F17F0AA1E445129DD00F000005B23D38DE93A3BE55A4C041947F36B4E4536E307D0180553F9
-2E46B743881CB5D5386C48C7D5F84C2BCD06B9C501F78C7EE61FA23516791FCF4DB278AF688A2E60
-10A56692AD92008497487EDFE4BD5FA083FA544138B20D6940020887E35D46E093B71F7A04A67460
-DC8116B4D4839625D7CA6959D6831CD93F81AC4EA2709036DD738364FDE71113BF22EBF13DFE1642
-E564701E6F0FFE7511EDF03FE448C2B28C64FB7D54B94CA576E481FA56B2B18AF10C71F699B6BFD4
-7459CDE1869D0FD306BF489A6F42E5B2F05CCF55BB6B9526973D19CB134CA7F13F1DB3716F8CC217
-73A832568C16250B5CDB16DF24BF81D49F5B37018BD310262EA7078107868AB0216CEC83CEFCAB1E
-9F2C665A31585CA04DC01879CAA79AAA5AB201B516F7052B01B16BEE5606098393B0E5D9F9E5E3F4
-EB20F63C958E796DF41CF28839F5C62A0431648745D7837B519F3AA36BC6C08EF040CCF53D9B6D8C
-0C7D1A84D707EC57A3C6AC9A62AB37251A01A5ED40FDEC6F5BE6E34C6A91D058319439778A2EE5D0
-363E2E1F33463C33327D05FFC0CBF08D5BC457C7230448972FB9B4D0D782BA7DBF10D3FFEF8BF523
-6EC16D4DD6D0D870D9D5EB5C64C9A46A4F583D4F831FEE74B0E5B33A09ABFD4444929BD8F638CD72
-EAB99CF2E9551DF427683964A592E49D186F285258C5D5F62196A98532421D73E3495F82695FEEC6
-E1952C562D546B28618FFAEEBEFF03A57F4D855021F85B0C7BC37FCC6DA9AECA099B646B99D41896
-09D3FF2D56422F8C37E97640293EC7C90E3380887836F4938FBF495CAC14FBA5648D89282D8D49D9
-1AF73ED36581139D8BD42551E263E830EA3C6EB381D85C42D74C50DB0CCAEC03F535ADE92128A016
-0E811C34748309AF7604919B66CD43EB5CA975302DCB6076FEB6BDD6FF55976FE990FB0CE9ABB11B
-195403FB26E3D6C6A0DE1C5BE79E171A61E21F79EE8DBE7A832519813EF6B33EA098C2C32ADEA219
-AB2AAC8B093F40000995539D1276D5F2EF84CCD099B71FE4269BDBDB6A8D59C86F7D2E3FBCCF8773
-D0FAE97640BC1AD43CB4B992BFADFB09DBD0CAAEB8CD9DA264187C4F97300E9A6C9DEED5525479E6
-05C65AE336CBBDF4E5D7F79AD098F977285E065579B748FEAA97F2A753E1F962FCAB68D72BAA8EE4
-FF6691C23E31BC0F3E981A96FB440404856AE1AB32A7205B17D411D8F21C8C93B704D07EC594422A
-BC368CDA2B1610CE6A973F4474E12B78B532666797F5755D269772C9F5400B3BFC6C58395D38527E
-2CCCF29B56123F7DCEF3BDE5DC1DFC5B0293BB125085B1D2D929BC3EE84F4FAD571A4991C3DEE03F
-2DB3A3097E52B1A7D5C73CCB6148EAC62E8E36DE9A71C57638C6E4D5D9DED18174E8C390E50B4A5B
-913C074EEAEBE390B214B3A68F02862B9A296DB4B409769649E51D738CBBDFB7702E15C73C2AFC6B
-C37CE15171F4E822CF20EFE55D9F061AA43E648989628FF79E65932390CBB15D8E621333B18B11C3
-BDF96F841D7434E01AD501FEA964A75B248A35CD9DF9A37E48A1E5A09C624B93CE44F0042FA00D7F
-9EE89B9F7AB785E9C718CF6E7228F743271C2C9BBA17E5208B920E44E765D99D86650EB454B0FAAA
-112753AA1BD3A24239E9C5FC47EEB1547AC9D23731B8DC48B9707830DAEC60C8D3790BBA1120F776
-4EFAC542CFFBCD5C05F9510B27B2534B704ECD36C8B041FD49A96881302FFF5B0163A2DD09C751D6
-D6AFEA9170A4F4C4AB8D46E62F763FE1BDA51DD1CE4A27E772F3A2869155F762FF26B7AA6FCFA4F1
-292E56F03AAB6322BF867E7710C34D43B5D85B45AA68014AD7879EED051B1933E491496E3E26D9AA
-8B80A07BF2B94F1077E84A9726F08199887D66DE7A307BF33C30DD9CF3DA188088C03B2BAD09A217
-6B110DB2C868B53DA9A66C85737BA66C93C58A259860E294AD0191E3A72C73F40B0BD98699AA08DA
-F03587B78F391F3A4313C58D9F29B53C70785637BD0C58310109C54091AB0A34CBB0C478613A7AC0
-FB8F0A8B4645AC966395D8BA775262CD291136AFFDDF01C1D83DD4EB3B59CCAD18057FE7D92A8CD4
-A58F22508D9FD7CF356571F701BBB23E749BDDCBF8A317FDA0AEFD952BB18545610FFAD3AC143D35
-1B8DB3F66293375E0E50235F0D0466932181D377EDD32A5F0FFA4E22B5A0CB4F343D9A7E4A342E9D
-09DFF6C697630CD3971802C277A5590B8CA94BDE6B38446C794D072BBCCB724D5BC208EEF1B018D7
-39373BB910D668882CAA779C2D686081DE6A2606417B54D7C20E0E7F722648D893E4EDBAE8F00D6A
-6DA3712F91AE860C756D1127D133AB828E9D80023B50B162C5A1C5CDF70CCB3FDD7EA060ED20838B
-E1E50C4094C9E79E1A0187CDF780CAF45A725964F004253E034C5BE46BBF89D94631F1A33BAA35B8
-4FA2A9D08481C6674126CD96ED05DCE48BDA069D902D6836D5DFBA701DC0F98A863E64F0E312145D
-8DC0B77F25B43AEC729A1243B45B08CA228DD6101CAA2AC5ADCC8EFF84A4CA3F254176C2CC711EE6
-C273835D0FD3528ECA2A976B88E51FE347FDB60F32370B66D338931D6581630ED586F349C638960C
-31AE4204E89521A96E1219E696B913DEB2AAB7A3B022D06F34FDFCB810A04E60A4FEBE284C2F063E
-0AE9EDF87704921CCFA193BDC912B747E13570066223A49F1F6E2AF0D4D65DA04CA876FF7A462FFC
-9C0BA2CC545C3BD36DBE762F32B2D6BE5867C59F479195C92440DC165098B74EA5C3AD93CDF2D410
-B04C16BC7801E7956F4E5107450787AA592493171C3628E6B8F49D4F8429EB98DC52EF025F001387
-BC1A7093F7A99F10B5D2D7DD8BBB393BF6E56F08F4F7FA1A343F220D5A1EAE7168C74D41BE1DC1A8
-3BD65B72B982F4F7B34F24F97F9EC9A91011064031FACFF2A14921A32024385F4E061CD07D152E74
-1BF97156D951A342488FA7F5EF934CCAD13E2753A0AB7A1F565C2F7F6B349DF03BBC25BBD972A9AD
-F809BB5C5048A8CCEF9297B2ED3324D18867F293CC66E88B3A39D107B610DFE79A3B4E83A96D3D52
-A17FE8A62C9FDD271130148366942C9CE57558D023DA5F7501319EBFA33DE9E6D1E76D7C20DB8A09
-B657839DA99F3D8143F1EE6253A3295C9651FA4366547893C2DC7ABCBF4BB7609DE5D001E0A36D9F
-FBE01F7D0903B3208AE8547E2E5F14EC1AF4C2535CA8F4EA37E3F3CE172C7A1E8308995B1CC23E6E
-81190246BCAB6E755BF868D449BB02A2AA87C44C9CC0F571ADC72547CEECBE104BB274B8AC16DCB7
-5D5F458D356466B921ACDEEAE384E2EB1DF6EF393B41B9747F0A4FAEB4AF1928D9AD6FB7E06FDC62
-1E4C6FC98CFB43F88584BD55D9B97CC9549093EDE586912161931162B1B1D52D0443260DABA02AF2
-B4432100D5506546013DA703573FA8013685CC798CE501960093DED713FFCCF89CA2B9106390198C
-29A00864108CDCC1984A8BAB53919028C01B26ECC7925E38CBE6CCA8978EE21C2B06E7B3E48FBA97
-8E2A7D186E563C088F84AA23178B60E4729EE87D67B1091F3B6973676C1CBFE6530EB773C62E2C24
-97014AB0E8B71A1F4E86A378AA26591511BEE3CF3D64C94848582E1354E1605B6457823F2C5E640A
-D3802946BB2E7E8E594E8C04B430C2385DD40746CE8534F50842E74D7115F3DB0C72D1C9C607C657
-3B094AEB73B7A79876CFFC3E2F8C9FEAAA07D3BFCE05B61F7749A8793BE90CCCECA2D7077F25E899
-D3331FE161A7E86C842495D584C6E4A0880B2951D8A13B88C4672080A0B1BE36BF47C3ACE7288CFE
-41A8C1BAA6F0814A947FBD6B3AA72B6C73A8C578CA51CCC96F2352316C467BB960E981F2B6485BFB
-44B577E71EFDA16E7405954BC7C9F0759F5A9F1EBCD2FA9CC9648D5831A68887F41B15081A204C24
-B4B992A231DEF9E698D4C3A25B6F5474F5BE6A601F2D337A58A0D21FF37FD91EB86D1D738893A03A
-69F0CD743F611CDFFE69DB2C6ED0E4611D56F803BB0DC06E7FE85A303839612707647B1BE9FAF8D6
-84122CA9E5CB8BDE2936D3F4FF254D31529D7538BBD4D35539489F9E7316F24214B996BCDCF1818E
-749A71CF0E8845AA1E2A58AA62A48E02BA4564625D20AA220EE719608521D7D7A7FCA0BD8904A401
-9819D371F3F59D46C1354E5FC1A6E5F79B20CF4ACA2BF0F2DE73DA193A6F9ACBFE0B4731C4BCEBE6
-D96FE822965DE965232282A3A130361F188B3AABDA95A8A2790D9240BE008B6A6DE4BBFCADA05B67
-86B9BB8E0DFA0C30043A3B07ED46277E07B9808422C8ED16758B9C396F4EA929D769785B2C9568E5
-70A83B989B25CE200F1727D41E2B702E7F88F1784F4C83FA60A74EB26B2DA95126E508ED519A61CC
-151DB6804F61826C5F86D8FA89D06E526FED97A0DB88EDB432FF32C1ACC9B622EEDF601081AF7B96
-3C9CFC1D13E4A9C74FEA0A1C8E3D8653CD92A944D4CA6B0D306619AFD503506D77732D6514F604BE
-4610C2560931BDE0B40939BC1D126B0E97F72AE1B4A9252123B54F7A27E0CFA4425B4546526FD741
-CA77952B10D13E0AC2E32006A903808FF0CD013F936238C74CC75FD915244C56A8412F37F0134840
-347699508D6F3D7F3203A25B7C70100719582CD588590EE34B3AB13E255B613A6D00386A0104CC5E
-D2C646F09A88888D3751651D5646C5227A3C80E8DA1B0A331121DD2429F1F4775D30564DFF47D01B
-BE2C6C72CE4D1FD9A2077C04D2B0274B8916F6A9D1A4A6964A534F47CF241D5A8E34B23F85BE9ACF
-FC2FEA961F277539F215F8728D6788F67BEAF45502839BCF23D8763C3949352F00C579A9A4FC408E
-C625E310DAE61512DFE6844E82D36A2F81709E1F05B38AE9C222ED62C961EE63593CED7AAF73CE2E
-D3667740C77B309B93EEFE1B4BA65D48575A66BE86743DC9E5D3C2FF418D11F7F211B86E827EE1DF
-C3613E7498030F07050524536D1F8A94DDB6698BE7B963C55CB3F74B676CD815A7B3DF4B1A0EA2BE
-1B0B9A11FFBFD5B1FA49668AEE14629316AF436A0821C20BEEF7B3480847934A99F6D85B68F4DDF8
-859A754E009428AF89A90D1852C220A607FF0806E8080726EDC94D691D214B4521C147C4273AEBDD
-BB4A697EF16448CD9B2FC95293305858DECFD406B89B9F3FDAE2AC579E80CF321EBAE5701FB2F7CA
-D8ED04B4A63115886D45D6120F69AEF1A21D80AD3C2D35D2899F1902242B96CD349E0AAADA40F7A1
-1282B6B52BDD97708E58DC5E2D22D1153E5FA3F3B300BCDFAF98DEC2F4E3C82A1C85F985735F3987
-4F557579F422664E07CBE19DA680EFB0FC82C323EC5C4644C51709AC8D674608A8043C91E6C7988D
-430F10BA6CE1FC7FC0604FCD8F723895250AEC36CC35B3FA14FE2A0D24095DCC30B2093F2298F5F0
-A97676A0BE66C3DC9ADACFE2FC0F721A20E945AFC1096A619075D5E9A264C796EC6C90EF1AEEA8DC
-089B44FFC13D27CB2370070A52D4416C53F364393E46EDD7EDE00799960CE6E0D57E4909E88ADD64
-BDD2B0EBE2D73FA6ACF8B40280DAA0637E705C65AABD523B8815F22F23E9FF81E7829C7E4BC980C9
-143AEBE1A04DC0D253396BBB7268BD5AEEA356B610D5DCEE03135E00AE34388251F31714A1C40E18
-2652C48CDA2211A22CB6F02490E69A44CECB169754C53B16028D352E0119F5D5FAE0BD7EA1CDA647
-12A6147374B64244E21E9EC9F0D1381AD22D5B6212B26C3F9AA5F6045F25DD9F5EB4489EA39B1945
-331AC70510C5752557DE21D0A6CFC1EB10A98FA867B76DA6E4249469F591FD154D39E89364A43DB0
-07AA0D7A911CFAE6CE2B557997FBC44F55A27F622BD7B8B10EC9F5D10F2649A646FD964AE1B111B3
-5B46A252C4DEE44E7426EB5739F24E8A390694597DB3A1FE7800C97E59558322F0E49A0CCE2AD94B
-1E2D1026AFA771723E3F523916F55ED866C9FB4A2F759651C613A2CFF362028CDF9D38F05D4C7C60
-24C533E930B64B099FB1AF04B01F5FB9CA6867E6EFF55A772C5391831059987E10CBF987E3F378E0
-1329F73D54DC0484177D3C3C06F67397955FF1CA4EF8AD1606B70455255D631A7D6EB92BFDBA14A0
-FF28B2ACE7E81AD666EA9B3A0F5A6BA3B5DFE35044FA4B3D8ED956009C60E98CC132F2E84967F4A9
-8A67B336D5EE7CAF7DD1F74D1FA08619941361FA7312CF225D89CEF97E864C8369EAFAB94D97F056
-5505D825972B754F6729596EEA91210B75DD8F645382ACE36DE60819A02B3B48DD00F5485F9264F9
-FA926D732E2C267B0BE8CA98526F124F97EFDB86132C5EF16B103908172FC51F286FFE45FF253512
-E0033F037FF182BA536A9EB2DF2D1DB257D9C86C46E1B002FB32AC70CA9462E6EB48994752CEBCE3
-9F08ABD4F4B0889283E55500702185A841E328
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndResource
-/Times-Bold-iso1252 /Times-Bold ISO1252Encoding psp_definefont
-/Times-Roman-iso1252 /Times-Roman ISO1252Encoding psp_definefont
-/NimbusMonL-Regu-iso1252 /NimbusMonL-Regu ISO1252Encoding psp_definefont
-253 283 moveto
-0 0 0 setrgbcolor
-/Times-Bold-iso1252  findfont 67 -67 matrix scale makefont setfont
-<50726F63E9647572652064652072616A6F75742065742064652074657374206475206D61696C6C
-6575722074E974726168E9647269717565204E657467656E>
-show
-403 361 moveto
-<64616E73206C65206D6F64756C6520534D455348206465206C27656E7669726F6E6E656D656E74
-2053616C6F6D652032>
-show
-220 439 moveto
-<202020202020>
-show
-220 508 moveto
-/Times-Bold-iso1252  findfont 58 -58 matrix scale makefont setfont
-<20202020205072E9616C61626C65733A>
-show
-295 566 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4F6E20737570706F736520717565204E657467656E206120E974E920696E7374616C6CE9206461
-6E73206C6120636F6E66696775726174696F6E2073756976616E7465>
-show
-1647 566 moveto
-<20>
-show
-1659 566 moveto
-<3A>
-show
-312 683 moveto
-<6C732020206E657467656E5F696E7374616C6C6174696F6E5F706174682F696E636C756465>
-show
-312 739 moveto
-<6E676C69622E68>
-show
-312 795 moveto
-<6C73206E657467656E5F696E7374616C6C6174696F6E5F706174682F6C69622F4C494E5558>
-show
-312 851 moveto
-<6C69626373672E61202020206C6962677072696D2E61202020206C69626D6573682E6120202020
-202020202020202020206C69626F7074692E61202020202020202020206C69627669732E61>
-show
-312 907 moveto
-<6C696267656E2E61202020206C69626C612E61202020202020202020206C69626E67696E746572
-666163652E61202020206C696273746C67656F6D2E61>
-show
-312 963 moveto
-<6C73206E657467656E5F696E7374616C6C6174696F6E5F706174682F62696E2F4C494E5558>
-show
-312 1019 moveto
-<6469616C6F672E74636C20202020202020206D656E75737461742E74636C202020206E6768656C
-702E74636C202020206E672E74636C2020202020202020202020202020706172616D65746572732E
-74636C202020207661726961626C65732E74636C>
-show
-312 1075 moveto
-<64726177696E672E74636C202020206E6720202020202020202020202020202020202020206E67
-69636F6E2E74636C202020206E6776697375616C2E74636C20202020737461727475702E74636C>
-show
-295 1191 moveto
-<6FF9206E657467656E5F696E7374616C6C6174696F6E5F7061746820657374206C612064697265
-63746F7279206427696E7374616C6C6174696F6E206465204E657467656E2E204C65732066696368
-69657273>
-show
-295 1247 moveto
-<6E657467656E5F696E7374616C6C6174696F6E5F706174682F62696E2F4C494E55582F2A2E7463
-6C20736F6E74206C657320666963686965727320646520636F6D6D616E642074636C20706F757220
-70696C6F746572206C65>
-show
-295 1303 moveto
-<6D61696C6C657572204E657467656E20E0207472617665727320736F6E2049484D2E206E657467
-656E5F696E7374616C6C6174696F6E5F706174682F62696E2F4C494E55582F6E6720657374>
-show
-295 1359 moveto
-<6C276578E963757461626C65206465204E657467656E206176656320736F6E2049484D20656D62
-61727175E9652E204C6573206C696272616972696573202A2E612064616E73>
-show
-295 1415 moveto
-<6E657467656E5F696E7374616C6C6174696F6E5F706174682F6C69622F4C494E55582F20646F69
-76656E7420EA74726520636F6D70696CE97320656E20656E6C6576616E74206C276F7074696F6E>
-show
-295 1471 moveto
-<2D444F50454E474C20717569206E27657374207574696C652071756520706F7572206C27484D20
-6465204E657467656E2E204C61206C6962726169726965206C69626E67696E746572666163652E61
-20646F6974>
-show
-295 1528 moveto
-<636F6E74656E6972206C276F626A6574206E676C69622E6F206574206E6520646F697420706173
-20636F6E74656E6972206E676E657764656C6574652E6F2E>
-show
-295 1640 moveto
-<4C612070726F63E96475726520E02061646F707465722065737420746F757420642761626F7264
-20646520636F6D70696C6572204E657467656E2028766F6972206C6520524541444D452E494E5354
-414C4C>
-show
-295 1696 moveto
-<76656E616E742061766563206C6120646973747269627574696F6E293B20636520717569207072
-6F6475697261206C276578E963757461626C65206E6720206C696E6BE92073746174697175656D65
-6E742061766563206C6573>
-show
-295 1752 moveto
-<6C696272616972696573202A2E612E205075697320617072E87320696C20666175647261697420
-6D6F646966696572206C657320646966666572656E7473204D616B6566696C6520706F757220656E
-6C65766572206C276F7074696F6E20>
-show
-295 1808 moveto
-<2D444F50454E474C2C202072616A6F75746572206C276F626A6574206E676C69622E6F2C206578
-636C757265206C276F626A657420206E676E657764656C6574652E6F20E0206C61206C6962726169
-726965>
-show
-295 1864 moveto
-<6C69626E67696E746572666163652E6120657420656E66696E207265636F6D70696C6572207365
-756C656D656E74206C6573206C6962726169726965732E>
-show
-343 1984 moveto
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-418 1984 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4F6E206120E0206E6F74726520646973706F736974696F6E20286465206C612070617274206465
-204E616469722920756E652061726368697665204E657467656E2E74677A20636F6E74656E616E74
-206C6573>
-show
-295 2044 moveto
-<2020202020202020202020736F757263657320646520534D45534820717569207772617070656E
-74206C657320617070656C732061757820726F7574696E6573206465204E657467656E>
-show
-1779 2044 moveto
-<20>
-show
-1791 2044 moveto
-<706F7572206C65>
-show
-295 2100 moveto
-<20202020202020202020206D61696C6C6575722074E974726168E96472697175653A>
-show
-294 2201 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<63642053414C4F4D45325F524F4F54>
-show
-294 2245 moveto
-<746172207A787666204E657467656E2E74677A>
-show
-294 2289 moveto
-<2E2F534D4553485F5352432F7372632F4E455447454E2F4D616B6566696C652E696E>
-show
-294 2333 moveto
-<2E2F534D4553485F5352432F7372632F534D4553482F534D4553485F4E455447454E5F33442E63
-7878>
-show
-294 2377 moveto
-<2E2F534D4553485F5352432F7372632F534D4553482F534D4553485F4E455447454E5F33442E68
-7878>
-show
-294 2421 moveto
-<2E2F534D4553485F5352432F7372632F534D4553482F534D4553485F4D6178456C656D656E7456
-6F6C756D652E637878>
-show
-294 2465 moveto
-<2E2F534D4553485F5352432F7372632F534D4553482F534D4553485F4D6178456C656D656E7456
-6F6C756D652E687878>
-show
-294 2509 moveto
-<2E2F534D4553485F5352432F7372632F534D4553485F492F534D4553485F4E455447454E5F3344
-5F692E637878>
-show
-294 2553 moveto
-<2E2F534D4553485F5352432F7372632F534D4553485F492F534D4553485F4E455447454E5F3344
-5F692E687878>
-show
-294 2597 moveto
-<2E2F534D4553485F5352432F7372632F534D4553485F492F534D4553485F4D6178456C656D656E
-74566F6C756D655F692E637878>
-show
-294 2641 moveto
-<2E2F534D4553485F5352432F7372632F534D4553485F492F534D4553485F4D6178456C656D656E
-74566F6C756D655F692E687878>
-show
-294 2685 moveto
-<2E2F534D4553485F5352432F7372632F534D4553485F492F534D4553485F4C656E67746846726F
-6D45646765735F692E637878>
-show
-294 2729 moveto
-<2E2F534D4553485F5352432F7372632F534D4553485F492F534D4553485F4C656E67746846726F
-6D45646765735F692E687878>
-show
-294 2773 moveto
-<2E2F534D4553485F5352432F7372632F534D4553485F535749472F534D4553485F626F785F7465
-7472612E7079>
-show
-294 2816 moveto
-<2E2F534D4553485F5352432F7372632F534D4553485F535749472F534D4553485F626F78325F74
-657472612E7079>
-show
-294 2860 moveto
-<2E2F534D4553485F5352432F7372632F534D4553485F535749472F534D4553485F626F78335F74
-657472612E7079>
-show
-294 2904 moveto
-<2E2F534D4553485F5352432F7372632F534D4553485F535749472F534D4553485F666978617469
-6F6E5F74657472612E7079>
-show
-294 2948 moveto
-<2E2F534D4553485F5352432F7372632F534D4553485F535749472F534D4553485F666978617469
-6F6E5F686578612E7079>
-show
-294 2992 moveto
-<2E2F534D4553485F5352432F7372632F534D4553485F535749472F534D4553485F506172746974
-696F6E315F74657472612E7079>
-show
-294 3036 moveto
-<2E2F534D4553485F5352432F7372632F534D4553485F535749472F534D4553485F666C69676874
-5F736B696E2E7079>
-show
-294 3080 moveto
-<2E2F>
-show
-344 3080 moveto
-<534D4553485F5352432F>
-show
-596 3080 moveto
-<61646D5F6C6F63616C2F756E69782F636F6E6669675F66696C65732F636865636B5F4E65746765
-6E2E6D34>
-show
-296 634 1 457 rectfill
-2109 634 1 457 rectfill
-296 634 1814 1 rectfill
-296 1090 1814 1 rectfill
-280 2167 1 924 rectfill
-2125 2167 1 924 rectfill
-280 2167 1846 1 rectfill
-280 3090 1846 1 rectfill
-showpage
-grestore grestore
-%%PageTrailer
-
-%%Page: 1 1
-%%PageBoundingBox: 18 18 577 824
-%%BeginSetup
-%
-%%EndSetup
-%%BeginPageSetup
-%
-gsave
-[0.24 0 0 -0.24 18 824] concat
-gsave
-%%EndPageSetup
-%%BeginResource: font NimbusMonL-ReguObli
-%!PS-AdobeFont-1.0: NimbusMonL-ReguObli 1.05
-%%CreationDate: Wed Dec 22 1999
-% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-% (URW)++,Copyright 1999 by (URW)++ Design & Development
-% See the file PUBLIC (Aladdin Free Public License) for license conditions.
-% As a special exception, permission is granted to include this font
-% program in a Postscript or PDF file that consists of a document that
-% contains text to be displayed or printed using this font, regardless
-% of the conditions or license applying to the document itself.
-12 dict begin
-/FontInfo 10 dict dup begin
-/version (1.05) readonly def
-/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file PUBLIC (Aladdin Free Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
-/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
-/FullName (Nimbus Mono L Regular Oblique) readonly def
-/FamilyName (Nimbus Mono L) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle -12.0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/FontName /NimbusMonL-ReguObli def
-/PaintType 0 def
-/WMode 0 def
-/FontBBox {-61 -237 774 811} readonly def
-/FontType 1 def
-/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
-/Encoding StandardEncoding def
-/UniqueID 5020947 def
-currentdict end
-currentfile eexec
-E98D09D760A3C22CF119F9DC699A22C35B5B35ED6AA23593C76D54CABB5E942BF7D6DD84F1664B89
-699C74B472DE9F8E6DF925F6C4F204E9F1C639B4DBA988ED2AC419FF2B2BDE605B8EE3264EDD6641
-2D4F21C64AC522BDFC7C5502F9C3F3E5592B3B2093D33C9BFAEDD2D49E89AABAA832E23F062E91A2
-5032519D1868816E44B4E0747795003D7930299D6E1E2A5BFE0D595DC97E140989CE81D8D7F852FF
-9CDC7A1B1B598C69131DEE005B415805A16D8A123E6A208511C6D0C255B9A5BB2FDEDB4D399C6CF1
-94FFAC236883767C0F68F4EF84EE696B677DE704EC3B097384F2E673A1F51692B7B260693738C211
-9F7D90FFDB21EB715FD5B8134FC87DBA320EE54C2CEC6A4D6BB350555EAFF2EC4F84365CCC0802DB
-B3BD0E3F0D9F858647DD637725C2CAF9557FDF842A0DA6A0CA0F1B442EF8EE6CBF2B03858468A466
-AC5883CBBD3815B283343B39205803C02C917D06825C09E2BB14609FA32C28D720C0E14A4B12D4F1
-25FF6281FF324DA33A56FC49987AC7D3AA206540F8127273FFE9A3DACFFE2B1C269D3DB9A811578A
-C7D532C2EFC18376F473FBB2B32EF642B19CDEC1D6DE83643723E3C6DFC87F97A7007B6081894BBC
-45C955B7001EB36211B26AD7A3D07459CFB33F9C54A40A360CB802FD202C8E93D4DB888B325CE246
-D02D1220ABF55CE646DFB45F07CB848406E470362F80CE4C02D98DD845189877732744CC16C7F566
-9F77EF096EA55AFF98AA103EEAEFB971731EBF3782E6AB725D4E9E35B2968689E8007C038CF25B6A
-E69451A4731E79AC22BD268F56942A233E52D71873E83E00A1874E04D3B22E72FB2D0671AF81C698
-53C389B51F4A257373AEBF4DE2DA1E4DA5E2CA88941F81EAE0E32D982064C8AFDD7A9A600D56D736
-05B9463C6240606B3361BAF22AF74EF89AC804A5793BD512DA2D13F4BB1B73EFCA1E621ED2A65D66
-5AAD0AD228B3B7E3D90DBDB6061E172B686E92355A7C7459D83199040A368B5697DDC3B81DDAD341
-6FF4405E1096B1240EDC18A0E9985CA55A0D697972BB11E9F1BC30765D6775BB68C69704BE200EEF
-4E11B78ADDB6229D8FA49A6B1525ADADF17122C0FFF51A08AA7AED158724AC4352EBB91ED0C157E2
-4281BDC1FD610195F495E87062A8C38E0D046DA4067EE16E81BC5F87E583315B973184E474064482
-9B2A52E0D37E249BAB31988B906F891AC904D1BB8901F0673AECE60ACEDE97B8DB7935C6488ADE8D
-FD898027424AA85A11A3DA494498B084133B857017A6D507D70A3421235486EB3CF7613C59139FD4
-DCB92EADC60BB6225D9CD0599779217BDAF4813A453989B2E56903F4DBB83D83DF4837C86BB4C3D3
-CCF98F07A23EBBF7AB5687C3E1E6792E40F92A7A466DE352294064537505EEF3F9C308C9EB94506D
-B02CFAE289F10005A6E42D2DCE43731A7AE368564B2983038DAD6987F67062199018395BC0FCAF28
-7A2B040C71F7325FA1E9A9808979B2FEF19096B98B8A0A728EB98F2BA3D33B49E3C20BE992822C7A
-1BCCA5B4E4D1099D456D8D7D83C57ECBA0FF21428024F7572A1470317CB8CBC8679A974E13D88C68
-1338C68C9AC9557F97784F4E1C8C2E61F26023ACF46232CBBDF3C0BCC5583B935FE9FA09A562129A
-8927AE73988DB0F7E733C6561CA7C9716DCA9B88208A715166F2FAE6D5EFF289A9B2EDCE813403A4
-16F243F1B57EEDE7D81E10C2DA4065A3082BC92A38B2457368EEC9C3C17296CB09819E9E642D7365
-F9A6EF430FC7DD611EA5FDBDEDFA72634AB599EB666A5DC178B0A0BD1FAB042792115EF3B6222C12
-41DCE36CB38B738F68B1B3CB489FED9E53315553F3C5C3BBCE40451E47B7EA53FD3D3ABA6CE0AD22
-5DAEE734BDFA3BF1D81C1B42C6D856A05D0924E03F7627C5EB24D7FBEA3BD85716207F961B56803D
-BE046E81ED5FDC378F9CA52C14FD8544CA7C539201BEE06487EBDC30FF3B28E8264EC7FD5DA7E080
-65B0A9147344CE28DA5182335875E9F8B2347A44E33DFAA167232A5C3E69E8C5B58B7C7216537827
-C936F5741B87FC68753EB0D4A466961D0050DB59DF3195BD3379F5647F8CFED35DA952D7CF2DED45
-EB442DBFE992711D22EB228BDDF36B8D7DBA27062D60D2271EA8E8412F4290B58F5BE26FF06F0559
-872F9DE4DEAABA015EAB4904BA1F509F6D517C6E897312DDD571D769BC474FD378AF4360E8B1F103
-AA75F48721B9E0BA589319E15D74AC0B03D730C3EF708C7C504787483F134EA6297097B46D2680FF
-8AA50B7A255563C88D594B912F5574564A1371463674793E4834AF11D14C7991E7FDB3A6ABF8529E
-1A4F10CAE79C60D37429579093DBD041ECAF03824DF9C007E96F45595A524B27EF8774A83AEEBD3A
-7134AB4435C80944DEFF5C1CBA921B0A41B9651968581DA4834B3C0E6D4DE13C1E792FCEED26A72A
-DC4D9E3903661D8803DDB58EB2B929CE31FC9F50A694116B00AC9F3EEF53FFDB1ACA3394BF111610
-38F39917B022394C75A0D467D64B89A44E5505DED7D9C6B8BA6BA098F140C9C00E09200EB4828356
-A2D6BE9EC1D5524B09C06D9C6FCB5E2808050A339B5E5FD4DD6C2035A48FE9674520901EDCAD107F
-67AC8C8E508E6003011978D77ED225F361BC0F86A98B6120EEAFB73F7377DB1E7213E02D12C330F5
-492511B4DDE08558D75D5B8AA2D56A3111DCCD257EE96E3446EF1C76F000C8916C4CE261425ED9D1
-5B58CED128DAA6C1300466E7B152BCFB5E6FAAB2519B8A98F26B29F98133AF886A0AA7E586A090BD
-A1DC6120DBB5640885C609A8BDADEEFE5DE0DA5B75A8A29E92515E86E7E66BB29581E5AFF8CB6551
-D8D1103DF60D558E7987E6F56126A13DB2C9A04886C655064E68A0A20D1B7DE24DAD22BBFEE1B7C3
-C208D4FD6A58DE78D6A0A6126EFDEE3B1A9713DEE94069A9F0A2B392A2F391C4C75327803B53F252
-CC9EF0323F84929BA4716C50385681FF5B4ED54929821594F9026B7C1297941B178C3F8A704CE097
-60533DBC6CF4B18AFBCBAD039ECB2EBDC7838A9410E7B227924BED7123944675A5DBCA388B710F8A
-F6048B03DFB713F881EA0F3B191A5CD989EA150B979059C8AADE403855815D8F7980CE6288F47EAA
-37C1097D33F13776F08779063C5217D7408D9835AACBE5C071EA40C9AE6DF685F4A9827B828815D8
-F3A672E73A418E5CB15684EB6C6FE0998A386E124D76620446907F993BE16FE5AFCEC681F585601E
-18182EDCFD3024062A3082AF97E803C47D32229D0A24596CF7E03F18229FA631175699E2F0D60FC0
-9C4F1954C5D12D03BFB4395F0E5EB6C6877083807D91D93CA4177A6B5A8D2AA500131FCB670E7118
-73F8A3C77575EC93A3ACBA37EA117DB268CF10D04AD0F079484DB124F6DC14A50AD3B0294F7157D0
-837D8F9A6060FBCB385606066401708C041594E0396A0BE4B8B66FEA141CCE4BD29366A986ADB98D
-9A6935C49C57F8CD415E93FF8AE0DF75E463E02AAC68DF064C1B789B685F84E15E512404E065A39E
-9E8F5568A7D97671AE1602605FC7E4933975189837586FB1A55007FBB0E91382A629277C36A190BC
-85AF49EF3F0F38D4ADD2B5DEE09916B79690EC83473C63E92CF617617A66DF472A49641DA10654E3
-AD3880D060B02A4A6C75B51E4E9917A2B6D8EFDA12D59DE5A8E222DC7E82F02F23A9D3DBF637154F
-719B14114DBB102BE5EB76B441D7E9990EF6420C2E80942C8AED5A1D0B19BCE115B5929AB9E145F1
-496753DD6B1798324F5EC1D0C7F26FC3045D7BB46A14110C99BA07A45EC16002CB754C0BAE7A1A88
-EB387BB345FA70B0A38AB4D532C2DE49274D4F86F2582728A2CC54B4C09D26C0CDEB8FEE6A42885C
-6207D74953CFCC583ED82DD7C0F29D35BDAE5BB251B8A2D4B1DC97E2264DCE035E359DFBADDE84F7
-37EA6A59C23D1A64D963E635769233624F7682EA34636B595CCD064AAFF3887D916867475731BFCB
-F7F96D5E5E1FBE6AABF454C2F504EA4E8EB382911560195295C87793D5F7739AD7EC7176E126413C
-D4D1058EBD7D6EBEE14BB94A1ECF28B686411D91E07373E891F78C4C0A05D2E8D90A8AE2614F7FC2
-63A762D0F43485473A54C31726F8547701D4A38D20565ED1707847AED9C805780F062B847E668E15
-565CBA07A72B0BA99F03FB57D26FA26FF579C30EED0AAB6FEC1B5DBEA81AA88F16F0C9BE869505BE
-18C1CB79657D91D6706E2A3F0BE9920655B93EBBAE2B4D0B5DF6BE622C951F2CFA42AEDBF7AE649E
-2150FE87CDBF5C2685EF36051080BF39D864573A45AE2648AD97662B1F69787031B9BC43511FB841
-55ECDC3D91E2475D072BDE6A5207ACEA1E0D2ECB1DA8A1BC4BEEC335A5C7102963E84B97BE741C44
-58ACC3D72A7E53B1F08C955F33EDC3A0DC3E7308270C0F7FF814B111459985733C62E8863625A551
-837952F3CBF32ADCFD9F345E14B585B23ECC440775310654DAF7F41E56FF45F89701292019A94BF3
-0EB2D65E14B1A1D6BF89D4CC43187ADADF3F6E03A90ED01E5D876BD3AA56E5EE84DBAA4DAD9824DE
-9984BD45AF96FB8A56C010B3C3A3C6139D58E9D69D9109DB18561B55EAD6452497840B9AE90C749C
-155B6329716F0152A7AD52DBD0B8A25B9995E1416681F38FDBDFA443879B5C4C25AA29E0DCC07DE8
-BB161C36D76EF286EC88D57C74BF44DBCB4FEFF771D3BD82C8F4E233357C48E516EFE3DB9E60EF16
-8E2C45B54651DF9A5ACB5F1790F7929BCB16CE5E9F6A43919AD287DBC8E12D9F9E97E5DBAA592879
-1A5A02D39D259F3CE273A870906A643CC18D86E23F115D2A35DE6926053D8C84B940B362E7DB183C
-4905060316B269223DAD309EB5AC96DEBA757BEA45FA3100F77F4765334EDF3D659E09BD1A5552DA
-492BE9174DD406F8353A059ECFEE3709422940A8C369919EE1F22F7C02412C995FE93DC4559D32A3
-155DD22D3526D89B16D9ADDC30CB7ADA6E52D62C5F2DFD142D4D7B6E066671EBAD08F54917E31704
-1F410CFD8A3243F8B39459C418B7B7C6494551C6F6753A94072D09E0D812351D62916383C6E061F3
-5ED864923002007E626089772D269B298DCA2CC1F25D9BE43FD8AD62D554C16AFEB7EF6E5DDA66D0
-5A810F003CDDCFD2C02FFF02BB61344968091F67D3862C1499409ECCA137B9A2A9BE314995B818AC
-CDAE27ED4AD583BE29DDE4E8C2400C5F8152C85709AD2A4737BAC768FEB70CE81A92C9657DDDB2D0
-BCF9169D272A063C75C150ADDFCBC2F5F2503DE3D13231AA8CFB396DB38E80197A605F6BC20EFA1E
-DE40CF424CF221218D51BEACE64A3DC88377E4F3EFE43DB4F4FC0803BF61764104CFF0B618C90311
-98B094E20B0FACFB94240B438B67BA298E31D3F4E31FD190E48BFCE27B1BE29D36E765E7D295E96E
-DCE09094FAC43B87E294818FDE9363FC7DC5EA36A1497EE25762D02DFA00A9BE53F87ABE62E52ED6
-F59818FDFCA643042EC13D670DED1980413950EE43372D31AE2694B83DDA42E1FBB049F7E7B7E69C
-93FFA3195A2462423DD2C022E5141783FFA07E192AEBC5070F08B23AEC9142EED56DA74F93BDB504
-78DA55DDD0A9987FEA131E4CCA0EFC51064E4B37632728261369C3FEDACA100F1AA78FB718ECE7A9
-F56296C5FB43781E63F36B0E1D34BB748EFF35E1953941F94D1A9B0FA474FD68B47183F2AC53A63F
-9F1D30B9B89C5FE54C3765B43DB403D57994701C133E42B950D9BB1CA202F15B5E590EE75598FAE4
-3D5CF1546572770BBA9A6373F100CDC61DB4E5EBBE0A93E0E51C86005E333F69110B1C8E492F2BF2
-52CADD5B73E7D3EBB53E759353F1EF3C9B8B39C230D13AB7158A5D92EE4C452F81F6DFC18803280A
-A023832FD0DCB482CE5AF615C952BC3F7E58F6417D69775FC7C0D5B405AAC632857736ACF32B2EE0
-F2A2C0F3B3CAD483C614505BE94706322F2A2830FC5AB592907D0291ED1873377E7A6158140C2CDB
-1B0E27EEC9CA50176102200992308045CCB5A169B61EA0546778B8D280737319046716604945A21F
-2A1CB9E15E3A5DB31E0FB5A3B0AFDFDF6F3424B7536D473F9756CA3694DEE4301FB1AB1AE47128F8
-D2B461C051C1B999DBB010E78DD13AFCBBA6F7D5226D540527F17881A18F551B3EEF76A7E28B4FDD
-879381A2217EF2FF9F9982E9EA70AD2003B862D7C36D57C5FF9FBEAAB56040FEE973EFC3B34D8319
-1960010110BA10694C17B7635AE03CC1CD087C0B05522A7A791F0CA34022A3F5860B536D9551BDFD
-BF560A07F63AA4E687407E5E48584E689591F1B52671213E430A708C06A34D2E1D51CFA6B328A122
-007C81B5EB263B967746961BCFC8772F8502DD95898724ABF369B0877F3313A167F3F714023C229C
-5757D4D46FCD9B4AFECD093DCABE52B78132CE9AB6225C9A344C4BF8D96F2C50C4272CB9AA0D606F
-013B2642F8C880E08EA2822C8CF5097D2CDB64932FE195ABD5FDF36D3BE123AEDD8BA2F82A8A628D
-BE3ED6129DC0FDC4BE50D5574AE4FECC65062E70F4703BFECB35EADE196294FE173EA57938679DBA
-6D15448FF44C0D1A903B202439DA93C0B0E612110068F8079219AA89F435E44D0464F54833BEB338
-670BD820D941DF4B31F51B895BEDF833F9C43CB7616DB80F988CE72FD3C12C7D49F740CF85B4766C
-0ED398EB837695D102DEC16E24B7475A0F5DDE88FBF2D6B94F126417C811E8362B9CCC52D8891C13
-C10937AACC228D621D4712CB9DE0BAB60EDE2A97E9292BE04E42E6D3425594DF56931A61E1F96172
-6AF6E6891D63B240E6E79E5BF30C052091D681BA1102409874CFD8EDC3EE2BE331676E31AC00F807
-91D1019BB789CA4F5907F4823B002AF3581448C352BB67D80FDFFCD1C5BEEF60523330AA2C045600
-8F62DEB55E69AC2F86369FAB1ECC90D2487954E61117A90D9269A65DFBDF297EBD29C3DD1F62755F
-8F289C42A534F59650685F8576EA2FC5D26B99B8E3DCD3F1FEEC73131000F99AA9868EA9BAC0B56D
-AE2CF46DA6CC1D18C0AB8D77BECFF7B89992175CBA2E22779C13DB9DF53FF5B1C8FE95E164997D94
-202C37175E562C8622989B075CDCDE173452C064274354D5DB8F7D5A78D48AD4A103B9E47500D08E
-DC7C51C1F3CFA7F43C3686A3C24A7EB5018B0F419961564F87E212CE0A0741AC68D6822C7AB9FD68
-85F5D0B2AC249CB7F50E2353CC4B0A6A24562F564FBBC7090C3FDF1284AB0EC615E0B3FBE132F315
-70C8A65C814F93910AA4BB80D516CB70D2E1D11969238E6F022D628FA2F33A0A15C4EF0CE7F753DF
-80A8AD9494885A1B9ADAE6C38AC9DA6FB0A61696AD3A502630252AD7B574C841117D34BD20BD6581
-217D977B35F5D04E02B933E1E84F5C090F6615AF484D63265D28517BA74BEA8876FDA332A84AEA12
-E6CD82B94AE10A778CD3A216ABC08495EF319F06AD6FF8ADD237D911F846A514FDBFAA8A1EC8E0AA
-9F80F11F1CE615519A4B044F3D1CF1A17D7F3D2174222A5FFA8B39F20197FF6CAF250B6ADBDBF519
-1C525070C8D38220FB501C223F493D80F498621A02EBCCD6EFE914F16B2A435D60C0A1A453E288A5
-3D818FE1EDCA7D55A26A017F2EE47A816E90D6C3FCDF0035EEA307DFB06D2BCCE43458A67354A4ED
-B6E5C57233DE4FBE41ED07EE5EC77A5DFADC4032138DA9E1B74428CAD02A913E40152F8063A774D4
-FDD4070E4B8A6C089F199AF7C529C277E902195DB760D81EC655DFFD1BB283F3C5AA8BB58F2476BC
-797B2892E94414ABBE96D4DB93E280CF7DE23EB852E7CA954D6682A6F1A4BE0507884C2A05AC863D
-2BA73F3B54668397B6C54DC2F4183130AB414875F3C3D8792BF7E5FC4D228DF87748BF0B14178DB7
-E3FFB7891D700A1E9520D778B095DA80E4801F53442D5C073EDEB706A5DB8466FFE7E701ABA9C364
-A37169F585C883A83713A61C9C3BD9336A667EA4E3DB5F4DF6BC6A552BE8D3EF093639EC67E5FF71
-8959F9902477F5AA894ED2D1CD312ED82EE417D95C49C96671B23FB0E1738E892ADFFE62EC1C3D4C
-BEB6CD089C98DE8D247DF7ED17DFA2959D3662F105E8386D75AD308480536959F8E6CF8F2C6937B0
-9F2E8137C811327D6B165ABE46C51834A955FE8306D10033F8C2A34667F13A8BA831CCF52C7A21C1
-3DB92F3E77B55CE291F6190BB1D194A33FD73151C3F61ABD2D8A0C9BDE90E796BD996D2D0094DB2B
-E98657E751BDEEFE8A43EE4501B98F0CC6D80805189438872A60047A8CAA9039893530A3E5F6BD75
-BB466B25165737C939AFF3EA59BFF4A7DB09C2A5B36B8A1F0C6C5E5870C7C9412589877EF44F8428
-4B8A53B5B74315CE72D2EAFC631BC4CC2E5B71DC958B5A6350CB5F615C3A4502E973622E3E18193B
-69572DEF1D02303A375ED60ABA1BC8A179FAA0F221A49078FE15AE13383585FB45FF4D5F3BB3D0F6
-D8BF62E9BD6BAB3C9A7D38C8A5AB0BE57ACDADCBD02B1DC7952D73AEF702D406F62719922BEA96B8
-FDC9B879708E794891C7A0A42F2CCD6812C3F4DB030B5178E3A627C3E77621D312CE4EBE815CD387
-7208FAD92761A5396B67E835222609F823728B1C987857CFEAAE21F2AD5EA9D841212993508091A4
-A2C268BF1D8DA1C650F6AB93995E7C13A3F84DB55748C626FD09C0DA1E3325CCB0BF091E996245BF
-51EB486680162BAE63B6513C74CE83B92359938439921950D713C69324A87BCE67B45A030C9CF10A
-DFA0A82781D49FF224AC57A23C6CB321F95915C5E14E41FA852F66E1E2044A9E7B1DC3BE9E818515
-D28B2C4D2F2210098C39557067062BA4239F2AAE28816D999955910298A450741947A9A1AABCBD8A
-FF3530626089978C87DFC73618C044731B6DB8007739A9699ABC354A6F985E03C11D750B8B9E9AE0
-5436205FAAD1B895B159E2C90562B82A62EA1A7FFB501767DCE2B11C51D55A17529EF5ADF0A0EE9A
-96D0E7E89F68E50EED813836531B4B46E9071E84AA413F4135CC882CE832BF78ECFA7CAB0C9F64EB
-92C86DFCD1152BB7D4AB33831AA0C139B555967F6346068D5C3351A7A4368EEBD2933E6B9F789DAF
-37EF536FCF965C397AF1B7F98AF864B301F3F440B7ACF704B59540453678FD6C1504519481893812
-3E2F47B265EC4F5CF2172D394543D84CD4281165CBEB11349B315A85DEB2D1699507B0C8C110C726
-62EA2959C4962FF093AA5EE6F21F89B3CCB0149CEFEF1855B9A48D28BB363416C015A1F4EA1975C3
-D8807F616C5817C8162536176F464A198EBEE6C97029F15F414275A39B8219128B8C8542E9483550
-7FC2D3908BB0EC375771280B9EBE87E827811418EF93E52EF70546891BFC0FB34969FD7DEA4CE752
-4D9EEFF2B46BED908C0FB2E02EFC1D1624642EAEA1CAC1EB4841E020532E88E59AC890E6C3F44734
-B99722E9816402D1D0FDF8045C5481EC055100836EBFB48E9FBC392143032C909853C9BA38A19363
-141BED09DAF02FDF4E7CC9808321CD0708A1B45270BFFCC3A0D7C27F7E781713D5DECE82C72ED303
-86B02D14575A1A6447547ECC7FAAC1BDFF332C92984758E242256C054656CDD2C45D46E67AEC6F83
-9F95D74E222A6EAE12EFAAB723A7C816D4E42D4ED2725A794743F67597F3DB8CCDDE45BAABC25726
-B851E02E56341EBE69E4D91F2A233583EC816F18A1DECBDA4AB69320F55E730617360FCFB8AC2D2B
-737675B406297F7F8C4BC370CB084C22BFEC5FEF02E9AB290282F7B153F0A4B1AE569F1E52371A43
-46A748DDE09336CAD1F5337FC3D7CF0677091E59480AB15021E023E356B0E1BAC6C6471AD53625C7
-0206C338536F4D0D40733AB217E2297F86B593717C61458B6C93A16027CC886A8CFDC01EF19C34C9
-A608B95A84B6A2E31454BC03C10FA55CDCB7B1EB7DC16AC1E93981A46DECD7E7F00638DCAC568744
-69A2D9B45CBC81398727E4ED3DB5DB31965F358D8179CBF934EE2C4D652C9CC211807F070C80E3A8
-222B4C31FFEC8DFB9EE07A94C973462254BC1B1581903EE6F9AD91524A787129A63FCE048B45BBE6
-855826750C586B6B23B805FEC3E7AAAC079576949A06F422FC2C826BDB78AE96135E9E2C20C2B2EF
-F6171D610B2EB8635ACAB7C5C5ED9C9FFC26CD54D2FD4CB9E4294E178CECA1E16CC8E3FC06518BD1
-6F4D63AE2B435753538834CDD9D8AE7DE624006CE688938031336351A6578C304C2E5480A3FCB43A
-8BEE4953DABC30558B7790C6E7A6F0F9FFA557C50417407AC6A0DDA1E736F7070BC89455FC293453
-3DB004AA9070734C8C2608A07330E421A0220DAB99F8A77489132F6413ADB9EA637F3B75948050E6
-67276A55BEB09D4153DC126BBDBE0DB9298AC799A943D72AFB769BFA1488D311BEB86A907EC9385A
-AE4F77835DFFE4389E3D9ADED1B08BBC2B1ED6084B3D1074A326CCBF38E06BD026919107BD03BD9C
-30470DB779508DFE0DC82DFFD2DED749E872EB7EB9DDF509D5319865070DD76846C34E4E43691AF4
-29AA40DB4BF2CDD50B275589987D8081F7C5A0461AA5D1455A660178A94A0BA0DCB69C3CEBF5EE04
-26D6534F6F919D9795AD6A0E1A1F452AF3B4CB2EA54D6011FA809132421D111EFC51174E223AB6A1
-3596411A9723079231B050CEDAE7659CF168C39AEA9C6902C2CD37D25492CEE00096EDD63DC7643B
-667FDFDE5B595DC54F0A72C2650E1E46990584C78A5CEF9BFC3C5F88CFB0C49CD6CADD9DBA675177
-D601927D75C6902B55AAED0E9E3CB52A577C887D581B3CE6201A1C77C9546CEE5A13B92963337F17
-070E2BF9F5C5E86B84225863874618AA50F4DE855DE567BF2AB7163944ED43DBD7F4BBC0E1623180
-7C43DCB47B2EB694E6FEDCFBE26194D2D9943A1BFE32AA1E5305F5E341EA021F91532162978DD1B8
-C5295A5E7551E2DEE46DC2347C6B32197AF430AF3BB676A53BCA9BD1EA88678377DC0A9A86E2AB6D
-E29E3E261BFD5573C66FB5687BA9C0544D894A759866B066E1DB5C66E60AE071CC3A1C4AE40197CD
-E4EC723F7B80137619DEDC99AF57A5497D6E03C1C9E672E74F48F6C213A3CFACF2699CAE72345A51
-C71C1D69348DE5BC5F443EC0EADE1E76A8A33066922CF3869E3C1D26A3B34E540DC08EA4DA2DDE3E
-EB17C16790DA4EF1A3A76D71D34B788A87838BF2A5A3DB8176F9C097D2320050A79EA6C4A94926DA
-11ABCDCD26DBA09FD33F30AEED977E8B5AD928F3967F607628859429DCB4ECEC7DA3411BE35A0385
-1017B535985632639D378CDCD13B00FE537A49FD9EB6DF1E3AAF5C41EBE35721FA6833C2FE08AA3C
-FFC3477E7FCEBF9EF9F4DAE62FF78F319481C3F1E72999C8A493EC6EE295316B58A5CD62FFAB62C8
-96E521B678342F04BCE1613CF7F6778CBF5227BA20504500D743270771953ACBD5C6586432F3FA6C
-0987BAD33B88BC6C15D29C4B3CC54A9DD72A2357AA5BAEB2CB057CDCE72DC80CC98C62B16AC50B4C
-6A7641379B766CDDF990DBB2FC7F9CDBBA755B6E3DEA438FD6699C30A99A8B3178E6D613AA938120
-835E517431D28114BCA1AB745C11FE6E52ADB82B9D3D53A33BCC49740C93017D9531ECF43831359C
-5C93CB0E926DB440B139E3125CC2E069B1CF6D96EF68407F32DB517242C3AE0BC6723E560B0F45FC
-7F87A5E44E1751C8B7F9F669C24AD5CF16F84FB03BA121B86B0694234D8F2C9C947269AF96FCA08A
-78F736E4E04ACEA44C5BAAFDE360FCD8BA6A59724CA86160A5527FD564468123D302DB45173C1B21
-6B01DC5B6D3415B13FBDBBD3121A5493374B3357EFB131CABFE5087AA1D2C7472B0377066B3632C8
-2073C6A846285CC953A8F28E131CF587B35217EE498D9A1DB57B063CE068DAF55D8CC1771C0C3099
-9CA4FDC5D67BE4E7E69418F6334BC6149000821B89A7437CCDF9A6A0ED702D5968F1E04F7E4FE9FE
-C9D1E994885CB624035BBC5426CB8EDF0456828F8EEE75BE491B45FAC192A405EBA25CAA4F4C66C0
-DC234D7B417628DA5276C08260BE512B2432256C401A66E3B583E69D23E9FD278CD5F2178544D054
-16B9B4F61A88A4728AF2CEED07C08E207F31D644E8E3BA1E4E2F9D8E30936BCB9C6AEB54E37DB46B
-D64F2ECC1021336D0564DF0F18E5A6B6BA470233D8D41FDD9D1079706EA685B6D8A740570BFB78E3
-984BB155C3155C69BCCCB41CB51975EEA1C1B4294CB546CFB03DC31BF86EC3BCB1977E8F94A771CA
-B09DE12A82F1D6C791FA7800E5A21DF81C9C8FCDA78622ABE75B54AEEA747AA4F26D563200992E33
-7231A430137C720A17D44F3AD6CFFE63B2DE12D3184BD3E151F955786B8DDCCCB290C42718F3A219
-1759DF76371C2FC177544A6C425CAB14AAAB31628A9CF9D71B5257AFF0D59843989CF0D747375A26
-DC9ED29B66AC2147DA0168306C48C2484C70CA92F33C0C138F92F276F5EAF5EA3082A8A1CB12DB66
-1633C2F71E3B69918F509060AC949FCD52C36498A2ABB77D139DF1EB33E3B846A7C1BBDCEF5DEECA
-4EF0AD250CEA9C2751E13EF7681E8FAE0491CFA6C144DBAC1FC39D39E76EB12D3EE9CA159AA77D27
-94F0C433345B135BA632F544082BBDC9471E9FA3AED3A7D465AB7158E8AC97F68B1FBC8D368E2350
-45C18EFCCADEE98778D894D96301F903283C5AE355A863BB0DC5809158F7E108662D04A5C1234915
-E7BD5B4C30F9EFA55E702E54F87FCA06FB321507BC57A1E55CC117E21AA4E3A4DFB77C1A949EFE36
-6D93F2BD827EF8CC16D387CA82AC039F77FE995BE6D9AEFC87F8D809E90C1017803BCFA1C737DAD5
-F1A631EBE6894AD20C70791665E7BC71F21C2C3F4462F60FDE75C8A377CF49BE99314663C6ECB538
-B1BF021B2F2174D2B22CF6FAD115EB0ECE8A2E64097A5FB0A2AF666E1EE13276AEC59FD0C9D4BFF2
-3F71E835984E5EEEE36490C54E077AD7355DBC98BDD37DF29B3DDF8C55480B7349C4D17322418705
-796A8C521FFF920DD11773FC44FC631C7D6E9B420D7965D7F62EC7385F2BE30A51E2D796483134F8
-40AEC71FA19ED1272C27F98F2CDC9C7E54DAB585AC1703ED08F5F9E825564902EFD08EDF99DFD494
-44C21FA6BE16CB8A1B6D0C8A5ABF80A50BB8D055483176FD0AA07EBAEAD88FD694F96FEBD60751E5
-C4D8F9BC747D4F4030BCDF9B0370B7A5E0A6923FF60DEA16EF47F886F10CCEE6956ECF41A21F7C59
-6F3BC78299A9657266807E01762B2B2878E551914CA312C2A68D34CD91E4F5115EA1FBE801346E14
-AE529049089B6B0273E258785773A9CE8E4B6C4211CB7C2767319576758F811CBAF3A3FFB41B3130
-6C49F3798B698A47BFA2E3CA0251C4D90C0B02ACA28C611744526906791D9E157E54CE4E1BCF5B68
-6990BA8AB7897D624EF00EAB92CBAC255AE9177DA9F0D86447D35B452CD2F337147B5D3EBBF2B952
-35778A72914EB3707EA78294B3A3BC4ACB19FE87C72AA1D982E4B822F07B115CADF4D3E7EE3D1BA7
-08653BEC6F0A352A0C33252ED0630E7274961896D461EE8BF523D5911BAC1C8AC763E5FB11FDD217
-4E1F129675969C195476C7A5E18A81BF9A11ED9F2336D5301E3BD32174ED5C933E8C85D6272EA218
-52A6F7E2AAB174E0965F73E0EF89E906BAFB181DBCF8B1F5AA0C12D12C6272753C016AFEC2EC9F95
-41B8757874D6F2E061ABBE8B29281677246305B3C41E90418426C575BAA216CEE3C5EC29B2FDEE1C
-77C14FDF940792F48A56AE80AA33E370B037CB28A7373F882022AF378F26B6006A049FD3B35074A8
-65C97D153352ACC156992C00DE26AD21C982C71F0EDCFEB61593BB40FA5F2CEBF23C4FF34A4F4BDB
-73CA273C269242D1C6117262B7C47771F2619FE5710855134A80FA8F92BB2425CF88940CA3450F81
-234ABF2B11775929B12CFF86442B2AA0F4243D324A5983E5D1829775B3C7A111D5622D1C4E2B2A2F
-982FC8A95F789881416DCB34950A393F4F1720D2212F3D343A17683060182355DE9E4718506D76C9
-184F8DAC55788D7E603CFAF4907DDE965A49C323DFF425FE88C09AA4A4D16283F9B14AB9EF1BB885
-A954034710B4A9DA4C88A8A0932B18D139A687303EE562EC9F656F12F3E8F27DAA9C75DB0FA946FD
-0E1A982BB58E040BFC0A49A4AD8CD668493FCB573C849EC5474049A693CBEBD4D79AC7515047CC34
-7A9A7570C90861F3ECFB57B9F53AB9C0D6B05C8C570A8F3C04D58555A45524C98FF091B8F8A422F2
-E0E9E5A7B7FF69F1CEFC13E42F1CA276BCD584516D266BA6838D5E9CA9E9854F50C7D92CAED61AAC
-AF758A7C7BE59C3BAA82BF32B691ACA3E8EB171E08AD22C39FBE586A54E6E4DE2CD86B31138546BB
-8DA5834B2C6E4838547A1B67E651964E43988C8036931088904BBB589CA901E7EBBC094C0DA81E09
-1915D9E46828AD8596FD0FCA39FF12A6C27A359337F973809E81B2E9E3D43B3146F2516667E607FF
-EB9AC80FC95A7B7D4DED551FEE0F3561C70DB2D69ABA96673E39E3397F1C3F8FE5F48BAB8AD6E0ED
-8901F90F6CFF24E80CB5DCAC498506C4D01033E497C1241E413B022227A3264DA68BC3F91B35781F
-A2D018475C199F43CBA7D3A0D5697B45321BAD2C394B207136E1E16B41794975E8903EF2B2E1C33F
-87CF72C325C11EC0B92FD3890ACDF60B521DA32596763BDFCDCA837ADC6F26F129B23CA32F9CD39B
-33E64576970DF3C05B8DCA4BFE2F17E6C5678B84D69494F1DBA9FE0446AE6AFEAA1FF245C07916C7
-B7569E6267C42B459435A1D116CEC665B311E404171774C0ACC8DDE96B0D9167C8CC7D99C4240559
-2D745C4428755500EB4719340D2FC6BC215B67823F69FA949C08B5EC985D7AA87C9AC1F9BCC8994C
-6CBCE6027B7D1E0C22A83A5DE61DBA05D4AF6884C95F46BA7F253E0B2337E312916E163CAF9DB2EC
-56C5425990FE73EE53E42B3BCCA1CF642F02B0C5ABD529B568E9ADFF865B9DC190240AD78AD226ED
-884BED3C285B4CB0E3929E805C67F1318D186504D92085764B70DE6AB5AB6990F181BDA50FC31262
-348D980EC76608CF08176C2502E065AC2D8EA5CF9E2D44E2B70A7DDC7B922047C471DF8A0B2087D1
-106B5BD8A830EC0E53223CE3C96EF56E5541191167860EEA58D696EC357EC55799438C90156BBF2B
-13A0D5C9EE93227746654ED73EA5B9CAB61DAC5BC690F89C87FECAF9AD03BD39E438F43B81D39E07
-E0422F94E8B096AB38C88BC2E1A043811D8141C1A35DD3A6DBE41620E83C8ED3A379CD80D4F9BC30
-41BB44B933DACA7C5D4427AE94A176829F24B5968B713431CB8BD9F53080832C6B784CEA9B515687
-F121983EB9D9C9CE8BD4FA3BEC48AFE64E643B7BD86D8383D07521FE5D091392BE124CCC91113604
-3824B686988E7C83AEBF406D2DA88FD952D0FA9327F4AD04C55FEDBFBFA76ECAE8A176C516479AE1
-467125B7EB3C9E7C5B103BC0C470946346DF271F8EE19DF7E3FF7478C35EE059297F4BF21A5C7B95
-993BE6202E897776952A7ED0613A5CACAFA731FFC633CAB62963150E86EDAC796026CE02EB235B9F
-7A54E0B0C5281567138A612BAFE409A818C216DA8EAC5EDF9D1E3A1E3514AE50735A111B4D2AA083
-4EC6C11E290D58FF340F82F0E079F1C7B3566F2336EAA45BF72BCF88569988DB5F65D4C1E59B50F3
-41E45A899656A0B522847ED567B49CD5284FE50E5F8652CDAC1C076804F2B2185F6A51ED19DD4941
-2E65A0D2DBC844B75E2DF71B009776D9F97A4C6F786EFFEB87A307FB6B912BB659DC2BCC6D509A9F
-BDE87DE8D716040A8551B6CCFB7743978AD992D14D2B85CA052E87326138DB196C24593F8F7ECD6F
-486F85D1666B9DE2ACA6C7900044EE369D223524664A2790B773F9EA26E0A4CDFD709942A44298B8
-249506EB9B77BC887DC0EF947DDDC7CB3CFC6B48F060DBF032A11884E6C226D9D447A5A458CBA325
-D57E144C6DC295262763E7BB8FF6A0CA473EB7661C12E0E8E23EA37E8AB3387B9E54686F3E57765D
-4067E521BC1AFAE52394227793C737C19208803F2F2DA920B553E2AAF94EB992AB17E31B58C15CC4
-AA8A1B444DF5B3E7CD937CF03E1F7FAC63342731B4589F16939D16E8E497A74CDE5686F529E9495E
-1603D74875288CF53271DB9313A4511B104F80B179FCF213558970A002E945281BF3AE51E668DD6D
-13D9E85152747F562CA0B75DDEC8FE9FE31F8D05B0F59E802888A7A4F19B29954A31108D2F041367
-DEBD6AA1CAD856BDD1427E9EFE89956FE28D500CDC6A0CB80A76902A08D0BC6705583243F1DD8020
-749B257EDF4803BCAA653F7FD6D8B91690995BA5EA3EE92FCD367C11601C6B8ADCEDCE67B16C596C
-5D200693AC5FA15D4CC6CE9DF7A71C8A925E99F5085313D60FAD25C1BBAAD28D4AC2B69062D68F39
-0530A976319A3904CEE44DC9451E441AAB4780425440F8C499B81460B5D3E268974145117ED843B1
-71BB14AA84C3A084A7D8E07B9979260675D5CE6534DC176DDB60DDE90F6A3674F67462EF78195F8D
-FF74FB5882B079DEE31FE92816F16CE1A70D07752EA25FAF5000ADF79BBE7D17EB1BD2F9BF6CDBB6
-F078CAF97986442680A8FC4121866F9CE86C385DE34E30D8B9768A0136D9EEF79A4B38EE99CBB9A4
-D32316564C9D56996E2595753EA71BEF684834FD030D38BB100E2332B026B046316A53270A96DAB2
-182E994E91262FB03D1AFFBAD623F1689228409884F91DBA153030870A7BEB2C7EE2DEC51875B137
-33B7929041F8D23A94904BD54DD4BC9B432DD0C78DD81639F46D686FFAD39AAFBD1B6C1A37E248CE
-48F23E12464D5379B4AED0D50B5A41577E6ECB75270E9AD3EA7D0FC09DAB271FB18B51DCFC0069F1
-5D72546E6C51049F3425AD005F88FD7F02042DABE9F097F9D6A076B30D8CD777B1EC12BD163FDABA
-5972EAA61E3C87E9AC007A052B1A3FFE14D7D43C7A0ADC89B1DD4CB4F9C762A84A6C0701494B2D8C
-4E4E1A9245738BE4111805C2F153A20ED9FECF2DCF4C8F7C3BAF84D60454A7403D4F5F81C6404173
-A7BA81BB0CEAECFD493D877465DC5735D43E3102CEC57B8A589182FC65A4704661A9E351FCCBC731
-5A87E62F65D24EEB9CEE979C6E10DBCF5C162ADB926EC8CC9BFFE381F6B8A3AC0A19D1631BEA2938
-731AFC99E8EAA39BC75DDB3A39D01AD8F0BC1838F4D674B9BEE9F6F7BE4D9C8BD97E8D171EFF330C
-15B76614A1FFD25B3BE19E4A201BCC850F926ED51616318C965AD2F0E56F9433B1247C6D5B72EDF3
-D408A3E0674A509BF30BE813A5E669D72B978794683CA8B85E3469EACB167C30F7666DB5E081B81E
-E99ECFBC1704B9646B1A29E4A4CE5654CA8409ADD60145DFC54225BDB8485E39CC98CBC3F38FD0A7
-97E5DFC2099452A2418C6636BD2D5F6B24345ACFA65F4E7DBD2D0AA0C1776A4920B4466C509BB5BC
-7D6627946C4DCB38A27098B7B5BEEDC2B3BA18F927077F71E38644597719652037621BB350BB5369
-DCCC073954026E6438FD8393DDB3630C4473F06D9FB9E422E435566C396B12FDCD5605DFEA232171
-CD8EF298786806E9159B84599C26D4C7D8C3BB064665CDD072E2083190372AA808B2268B3FEC8878
-B6420CA829BCF995DC20E067EE6B8E44D2869D51BA3AEDD1763F7F8D2CFB8EC41E6E9E0129DE5343
-1457960CC51D546B10B8B6CE08A1C2B79FBA448DF9783D815608A16C55E589DCD8EF6B04C66232F4
-7A473973A35618000D79B8173258B7365C9691DDFE47B16EEB08B28F881828B946FB5D6FE10ECC6A
-FC4EA1F762E90B3320403382E42AF4885B183AA48DB5E4DFC9A54E0B4FFBF7C26EB17A4F13B4BB93
-12234434FFF05549E7587BA0373ACB3E31418BFAF400D8938FC6466B94273D1735306AB912AAB13E
-31DA3541C1733E2A7E4DA5B82767D37F3084AA7A7C488CDCA7ABEF77D19E42B4448ABBD346E9BC28
-8ABC4540C0A1CFD0BF46C5BC7454B25E27E9906A3E6CBF678BFECAD1B19B4E42398A210CD567EC35
-FB115D5C0DF0EEECE593982056B0E1D14C292F70B3E049984F8881C8B477956AD3140B4AA22256DA
-AC0D11C4126808B5B9F922BCC5F24A77FF352E2C621A3941AC07A20E550A69C49B1B87D116EE6F2F
-970918F0F1A501166AC4423FC212E4EC8039AC7F9C212D864F418CBB92948FBD588228108FAC1AD1
-837070512305C110F0FC3FAFE6E1529C2BD0DDE868A9EBE5137DFDFC5C12A3D08014BF0EE27B1080
-02AAD6B607F5C5C0F1B1EED3C552919C9A2E97204A8127F97B1066607ECFB47BA95EF2B51F007C29
-3B2F6A63041A9C1120D9CFCD5357222E5B02DFC73CF94CF9B5CB00EAF073E9BF253E30E09B50341E
-57BF245A746EA31BFFD0B00201C34CF0881BBD1006BC9BA7D420A48E53686B598BEDB3449924EBA5
-8D5DB1B1B01AE2BA281D5758C99EFE38ADCE18F7B182FBD0D0622A6EA497A4E7C00C7D17299A2765
-EFD8DE376C214D01A21819451FC04A0277EC84A151FF93903D61C78AB7886911E36E12526ED855AB
-43F6289C1890222602B8EFBF15782B374AC1E580B6E963403D6D15A051DB8558F2E61C0B9476C6DE
-5D4861585CF515CE951732F20D32969F39192FBF1690D242AC04D47E0C53D467D0FE4656B9526C0F
-7F852348B0437737CB0F29ECF9B54A5E17185236DD0C16349C3496F3ABA569EA20E343F6D771210C
-39DC932DC65ECEF94575C6E76902CDF6C8C8361F9C757A2577DA535187FD526699917CFE0AD438C2
-A758727B306BC7979547E68B94E87ED820614BDBC649D469EF6B4E4E3DD2EAEB5F80B22FE576CED2
-56495467C76A75F589460061E03F3A1B065121A5ABE3E2C51148B3DDC9F624C97889AAF7FB84B158
-C015EDA5670746C6359D27B0C2BD65144F2B88A64331816DA904572BE398E015A9924218B3EEF951
-23AABFC3AC8217B7B4F691219A1C9DD0A3EDD5C04E63ACBDE71B423522532561F4B71B7028415C34
-37E346BE728A415596AB749015C1D59BD8328E39A850CB98085B34B57FB52DD1D154F98FEC49B3AE
-BFCB1672762E4D2A1ECF02787F59DF1EBF2625C3631BED849B298C6D226BE4E6EA2AB66A287D2BA9
-2A6C9C612A5F849B3CB3C25F17164BE286F6E4F5E7E4C9EB17BC68AA5EF0190B64696A570442E1D9
-BDD1A30E7692524E30E4B4C3DF84481DCEC6E10E7308E65DE9D90099F3FABB3F4F766BB86CC98594
-6D2003E21287761A7386CD8461615B570BDA015F5EFA23D18E83C325EE444EC166A1A32D9818C2A6
-5A092D44156C06D3FD079B92450B8A491CBB3529DDAC7D95AFE8EAF33777FBB265FEB8A4B9AFF2CE
-CEFFF49AFBDCF6C4197497D3B448866D70EF28D8E4B17E7CE95F43F64BB48C4A73EB84B26650F62D
-3E5199D64DB0B5B87702650ED0B850FD5D16C848D096E4C7E61BC63B2A3ECFC099CD713E12C91A65
-77A88D6F55D348617C7A49890A86EA8FE2045704B5ED529DB128C9B19EE129E5FE6498CC97087F6B
-DE96007C9D01CE9CAF75646E5A5B32BFEAD9362A52223D746943A2D09C536CFAF78E601BC2D2F0B7
-63AD722E3A7AE7069D65F9F2BDED7278511D0120F5EA071D41A69F8C2A2D720D3B24B4BE61C83FFB
-EFFAE21B0560A6FD1A44E53E42E0D10E0E93F421A8A7E167BB65F0D7F1DDE2809FA3CDFD931CCC69
-B119C83238C1C00EC100D8E7AB1C7FB02EDE97073C8A5860371A8132BE391EB1C397B61F93876FEB
-438C288EF2E38DDCD182A5CFBBA994A94A1BF818312CD8234215FCCD7C240A15AC01A885E1179E5D
-7D6305DC2F534BAA141F25EA6A5F356486E5FA0AE3C6980A9F5E8E99E7AE5B95AC42977510970245
-4FC951E4319AE4B1DDC9B07D0998372C0A95ABA6985A4DBE6DC633154FAA30ACE689D36A7F17011B
-F29CEDC58A6692A8B3B0A5742E6CEC2F69B255BCEDA762DEE72F125EBA98891CFF4D88AAC14188A1
-8D81424979C9079E44890D94EE094D4CADDC1C7AC5F6791FAB8849CC0240A579ABD800EFE3AA4EE2
-F78119A3C2806C05C2B1F17940BE73984982D1C0065433A9BD658EA31AC819DA9A11B87475BB565C
-C294B6F302FE3F7752ED9B963C5279B5F1196762D0E12E6DA46FF9A0CADE3876D7DF695D8965CB4B
-47B351FA3F759811269376B2C3134403633FDE27C9B024F6BA81F3E1699CF64A426618428BA6C326
-6BF016C5DAA5FA4CC82FB6DC23FF2D742160518CD3A65ADB38E53F1067076CA1625466E0C64670A1
-564A54CE14DC5C57D24A12283FBCBFFD0FD594AC2A56EE58B552F7586825E4FB1EC23F8221711692
-C8C56F42272B87EBFF3865191F1C11943BB76D8C0CFC53ED452AE49404D2C8193ECC2A7BB8CFBF24
-870ABA38D2CCF7869E9363DC0AD94FACAED5922B324DC3B6FE83E7B34FE29ABC1EAD62B49FFBCB81
-1ADBB5148D5AC2743E3A058386036FADAB6FF071BC1C3B8023F908B6FF48DB0AB1C9C67487C35211
-D40995E1892C8B66AD6C9C6203F6F8B513B11117B10DA8725AB45B4437B5A88A96AF3178D856D601
-196E8162868A83DA64E408FDDEBD14D6591881EA652032CF2F88B3FD6C0479C8F89AC68D14D01AF0
-CEAFD95AD146E68FAE01A07F39E7A0C5E4FFA6D6A91D710827CA5ACFE7D1F946A8D7B67621D60F53
-41F32C12A6EFB03AE5AC5373A382C044A276F6B41C173D0AAAAE0C1DE4C3CC71EC2637225CCBFBD4
-5EAB92BF39357C57195B410F74283585B12B926438AC72AFADAAD2D0FA2CCA728C8E86BD3FE75D47
-B8BEB96AB13B5480F7A3D5741EB51E3E40C21FF2ED7D9221D9877C7D1A8CECF394E4023FCF8C4EFD
-B38B839499FF5CD96A46AB4FDB46F35D3B48B91757C0159328120E93CF1F2739E936E28908FB1947
-1D3AD7F6F1AD2BD1EC364986A411CC1B547D0CA104FBC10B1CA7B638A60E75485574034561DB345D
-DA68415146AAC632DFA34769B6ED7D7D4694E92CBFF4EFB16B55495908102E85E827FC623CF1BBE6
-A13CBF64E878E1A2A159948B5529B75E071744A5F0E50DF18C110B0AF117CE7F33F8C959D4C98CED
-5A9D492AE6F56DA57B0F17495DACB130660BCEFB064FD8309D965ABE8D2BE98F6898C1B7A39CBBE3
-E75DA0FFEF6CC3945CE76DA3BE915546FE8A5310130AE0ACAA9AB73C7E041C00533B4BC7724657AA
-649B9388B791AAC5EABFCDDDEA2CC67A0FD0AE9BE37DF9AD40636538EE55A83F60E9E026C64FBD8B
-220CEB46E67410144A520FCEACA252E8165448F84D8EA083C793AD09B90B3EE83B73FEFC3365C729
-E3C738894B8C01C2F8AEE0CC8B114E1175EFB44CC4C6CEF5C8754B1CC7CEC200AD8BF1189D741CB7
-5BCA4E88BE959E32216AD33F674F49AB20A354CF3969F1611A95D3934E148831AE7C81A7EBE3C524
-4F743E66A82E10D16CC09F8194EA7A596BC5981D833318AB4F7DBF2ABCE543E410B649D18D146F01
-486159683DF61A3F880F9B21EBFAB77E908C6CFC79F89BA5F51114F0BF7C3CCEC7BF0F3B057C3195
-CFBA6908E31E0DF10DF69163C9DA7BABC00E9A580FA7FAC202910615BD479BBF76FB8068630D1EC2
-1CD2926D351E869E16C2CF1E023CF04D4FC61607DAEFEEEDFF5593E6023492F00029E2AE4B4A2C14
-50954EFA2792F32B4934A768F892171245A1E2F034E2B9F39833F1B331A19A386BAACFEC8C929BA6
-B67CD8922BBC9DC005EC3976575D5B0508D0717C6BF11123EA36D8FD37FA77A6F1F5AA84D4AD8D25
-B2C11D1877A6E2F9B74F3B5829FAEFD4F7209CE9785AA6FDE68672554A6F29D8BF03FE108ED90A7F
-58690FAC399A8AD3A26899072B832874DDB629581A51B3325CD9EDFD49E890EA8959DB937DAB83C7
-77F2A426B967AF5888C33A3635B78D647AD6BA441E222C958EA58D61945F781D7EF409771B89B202
-42AD7D07C2EF592CBF413C5FC89EC30FC9EBEE4BC63709AE33B65EE3091CECBE610B847E12C556A2
-79C8B114C3E460822D3330ADFD72BD69F54C08A81848C2002A08326CF3B09B1305490D35AEE59179
-08E1604ECE75BBE811A715AE8AF7EA9C371B322D0428EDF4C893FDEA607E70E1B6F6614947326101
-EAEF18E29BE0557D2A92CF1FC1505E8B434BC368CE07CCAABC0774F8A63E1073FBBCEB3F4052462A
-A9008A1E53F188C9EAE339FABA74AFD6D60F47282CD9FF721F64BD51787F3C13B5A6C5A5F7861171
-0111F5E0471E206D72520F1DFA465F4A23C71DCF99A04CEEF11B0E3BDFC35B7461A60753D3AC26DC
-50A5956C9195A4F5226388E0953DDD03AF128A98F03BDFA0602CBBAA20AB9ECCDF7255962A332E16
-D4380762E498FDA4885C64FF5F9B480DA487C58E78943DF62616E6E2C69EEC8836DFCFA9EBF58938
-A878F3E792E8BD8C5D6DF557A5D82018DBAE1CA9C64BA5AF8E21BE1B6680FC5DB22422220B776E9B
-A0BF1ED2B7212F8BF111EC8C8C77B223C05EB5E5F1CFABD2D037F4BA0F9503E2CD83F4519D180476
-63F09E308883F5DA5228F83045FF41214D2273B2FE0A9017D5E0557BC2A198C35D1E7E81F7965444
-5760CBA1D3F05EA4B90658E53FDF0823BDB1501ED51DA75C47395073D8980D1E3504E3F67DB3259E
-4EE73A87CFD96F84E221796573958D364A51E635FC55478C9CBF9AEA16B7D8C25F2115CFE4B7F598
-54E24968833BA0D64D1D332A666DFA2A3FD71B05A26BAB7DA382907B13DE0B80871DF184D3622B62
-3D7E09BC32A4F6EA2E6DA450A906EAD36D53FDEC7F83E101FEF32F4FAEC581B000686D86A0D3861C
-1E67F18A4C4647F51F978484D9E3100B37BE9D20AE84C085461C1FBF929C669E936659050C2627AC
-1B019837BAA75757F5B0A82E8AE9CF2111931A38BFC94744E2FDE3F8710342AC615286E4ACE7F269
-743AA05463AF537D9416230ECCA859D8C99B7C6E70BE7FE11DB698589BE9E11900C8E9582A4EF5EA
-94B5F62820C90DBC022A620EC536E06CB8BE7526A789996D0E741AAD980880A33800A6FE92286CCD
-02C9CB407EB31FB95D9C9F4AFF38B37087AC582C1F7B64A7C3D2202BDD62E9AEB31BCA85C4CF323F
-03DA9D318B91F78FDC0D266630F7444ED068B55C05461C97552366A82C2E743CEC353D51028FDCF5
-403B3B74D379B82EB69C4380ED40239E15A86B2E5C860891E26781CC111FB5705E3B7C7AF1946006
-54B5FA1B5FC54FD0BA43666E7BABD2C91C859F393ED49F7123EDFB648A3D6152F2C17F7E438C0A63
-8968AC06B4FB3F77F64F358AE063820BD33F0213C85C40E4D97ED100EC2DA1C2E1EA258BF107AF67
-5A9D995F60BFA37222B9C2B325C0052BB8537D2B27DD43A129C7E8FF42757B3AC9B447703D382108
-DA520B8B3BB3E8C7295B776B44ED28F863B8E1F81B0BD1DAEE8A171525D09D2620C04DD3219D880C
-2ECC79282DD7B1772A9CBBCA706909AE8BC7798E6EC7375189B6CFCE8A875849176E5913B85A18FB
-197A33CA4B5B4058603CF1FA79A56856B43D538E9ECE117D99AFA73B57E307364F553644DE01EDB4
-6234EFAC13046B6E047ECC8F63942F20097AD7ACF0A45C0501A95263DE9439A880D6B5C5214D2918
-0A54D7FE9B2E627EF49E189B59FCC78745E878E45B46C0A648955D3EA8C935113D94F92EC963F66C
-F3CF3A526BA71CDF3CD4CA69EFAB08B7389E3390716892A4872BD29DC1E0889A42D7FFB4190E9A8D
-05D84EB9C5741BE6B02716BC75E0106F5F94BD3778BE985E03860D27E44088C3CB2A059DEBC420DC
-E3A8F4087A9548485E616C409AC400DD1C411CE4B6A229D091B253EB68F06E43511EC5AA6ECA4D6E
-4818D6AA2068DA1AEFCA377611BFA816B5215182432D5683294D67A7C1FD76C52233087CA44943EC
-7280005E93145F5E7AE50100C18364E1B36741E9647C4DC1F68A58EC44095920FDCF05532F603717
-80F78420077EF5C24D63E26040CDDFF8DFD65D871DB943F50CDE84900C1372EF33FD8AB9889C82F9
-4F61A0E6842219A0F39EC7B232CBF802C4A744F33159432E827006C7CA77E480A48A9B0E6A876158
-8A3102E3F98A77BBD62A3A23150FD140D3941773BF7CBBA2338FF37B9EB640558A2313E8824E8E62
-0331568A9B76F4897198A709F9313F4AC40827D8C3A71F2ABFF02BFD57D30D0B14012FB5C39B85AF
-540DDA0ADC27A85B31694E8D7B61F9D9B476571022D98F2D768246550A877293F3FF6ED918A498D6
-A600223E1A61890C49ACFB60265867CE9464F9C32C59E94F7641C3873FB4FA6EB237F8ED94579957
-270D6FD640BD9543E683F2372CCD7B60AAD269E03A72C5CDB732B128818D41A6DDD2BC139F7D3911
-F48E1B1D263DD4AE8E4CE1A686F3A00A2CBF48978631CD243566E22E68F8D7397134A3530EA3745E
-4F1EACB4D6A5FD84C3011094F37573F7F9902305020C53926716D4780C6B0A257BF711AD94C83F1D
-41A02C1C7DD203A3E6E4B14EDA2FDBB36B063A3E074495F626B0EEA146D22AC33457F44F41675967
-6D2A0566EC2B726D2F0540ABF225339F02F406D4E7A62E5233DDF20AE7C86CA0CDD561F33C422654
-BF2DC3685CA91BB9D4B09AC8B15A24A99FF56E2894F11F7BB4728FE8F0F5B799F74F475D2D01F61B
-7E9E0E541F7FEB8A557486D7DF2CE50927515D833BCAA1CD9BF7A650BEE9E003A5951C98ED147C4C
-52F64F692AB281984EE65A47E44A4A5FA93D6F18D276D3B01C5E5F6135AC6940524CD713DF4077FB
-4943E8AC927A68489EA52ACF7A854393CD027EB52EA2DC6234EF034F3DC742D6DB5A67FC21D22B97
-146B9C268BA97C30161CE01EDC69A6A1F05EFB0E06F22644E1A368F0E2C0C6C1C832878E0614B74B
-D645F5CB293CFDB7618B837FFF14A1210AA061C8C81867244305B80DAA73CB25A417228E9559E7BD
-52C119B0CCDB7C4DCE7E1B9F7E8EBBCB575E5BD213BDD6DB88769DACB05E5870232F0EF82F448559
-187423409EEF756BA6247493BE24CB1879B5DD822E03D0ADEA1EDBDD83D3FC46759C679B921F0616
-F27212903F728AB44C1784E8A7DCED0DF5625A7D3F48A20FCA34008184CECD145CCD98E31B79E174
-CF107E8F35C40C19D86B40BAEE6164353408801EDF75A619FFC5B6FAF3F3A95F64795CC40C1F8963
-4FD8C13852D265FBCEF834C800AB46E3E8167476B23CDD8AFF6E2F997C99A86A9CB30EF8C853154D
-0D89EEE9B9CDC1B4F27BDA32432A4173B55CA8D9FB50ACB2D886AD8E5862FFD5DFF224BA13C8B8A5
-4A7F1A9F987FBBDBC5A3C3D762A5BE309D5D926AE5093C40AA47B3B1BD828797CBB9BC9FEC9D19EE
-A73D2A39764816113A8EDC6CFA6E605AD578FC8E30ABD600658A49ABCD5AC54655D29C50FDB72070
-169D1B389F114B7C71EF95A80D82AB537AC8C165D47371FC142A51625029A990A577EB1618480D72
-6DA93C98E5C5F24F622A850CDD94BADAEA91D4BC32CD50CE69E9F00E77DEA8EC1D37916398FB7092
-402605359DF08AFE7B99C76C2A7C70383F28A7C000C696F45291BB8F074791798197CAFF1544C76C
-EEA8C9E6D76EDCBD92A86DF889481F3BBFF0865442264F0EA40D3CAA69AE467A08003F9C30FF7F2B
-77E767580575398462D5B1171DD441D8986F33BC7BDA17D413EBB6B7A32642E33F20B284BF3EDED0
-02352FC66C6F7741A542155F4A159CD778BE56B9492CD95115C1A06189A216CFD2E6725965A13DE9
-73765A05114D9A5A4BE0615AF8BF6A5EAFF84468B849954D15BEAE1CDD57C435788B331905C01421
-B50F20B184506A0BEF746330BC98E9C89AAA8F9D102F158043BEB6A682059A1C8B8CF67B2F3D7AF4
-D8BBE086254CDE53765E3226BA2F95AE8063649F9F94BD9519411DAF8A0287307335668190638806
-E29484A4FFBC1E46B1800E03B162C23B1DC0B4C0DD3C7ABED2F00762972EF06EEB9BCDC7B3F39C70
-BE32789D366F073AC3280C273DFF2979507671B3E1E7685A9A4F0FD3867F96DD675BF05F25ED986A
-79249B75F182FD73CDA2A6A66D693E4CC5AFE3402431B2C816DA1486C34BC9DCA4E2D51C868688A7
-787CD10ABB9ACA14B7181369DE89913CD8FAB58FC84519EA2AA14E54B7A8CE474F213E07CF2DE2E8
-88093DEEC937526816B71C96ED75FA9E2EDC0F9E6E84569C12BB8E39AAEDBF546630745553D6084F
-F9524FEC6A7264F88CEB7EC3358E923B392474E3A48865564431662988FEA768CE555AB0DA48BD52
-6A84B0CB17B4584066C1640C1023D91F7869EF0C4D701BE121A6E3C832010427490758AED7A2B30D
-6028F2215AA44E86D852FDC67DA5CCBA79EEA863BAC9EDC2535B66AB0E54EC4D4411390FDEB8D1FB
-C1743F15C3B68DC92A8659E7A892D5E53872EA51EE8CA7EF51103E87C29A2714E907C79DB9CF3744
-1785D2F73A1EE58550111A4D9BCCBEBF2E39CD3B93DCA300FAC3ED1ADD8215301E5766C30C8CF296
-75746C5A77BF1FE3CD75D25CF193DE8D9AF02AF8F7A6E8F84B548058CDD3C6998ED13463FADE7391
-26D83D3CE2C7201F955382832E32C10DCBCCA35835985B9A93F8E3B0208BE6E92428787C47D3808A
-0F77B8F1D76E6BF6A17FF81CDB065180E03809D03638307BD7BF5CEDBF64904E918FC805AC905379
-928B816480F6E3BDEE47042CBA98539DA0E113B1A5F23EAF1A3210BD18561985E6436EAB90395DA4
-77C7A6D7888D2377B3FC4169368357D880CE041E1F7C875E956600DB7D9B35D1EE66BE476E9DD806
-4CC02230276829C2C0A098F051502E828A0CC505AFD8C3DF293DA1508AC4D25866BEEE6BBD5A230E
-9C2DCDD4F06883936381F476DDCD86CCFE15C2CE3C3243E148CBE603B8513A7CE7A6910A66A90B70
-89E5CCD4368BEFFF2BCF8E918BFE0A1B069AB2A914CA7BB91A0AC3B3C0B060FA1A0316F6135E890E
-E549315897C8464496CC6DEA0F7E3AF43FFA4C3281156067582CA255B1D2E80F999A3AC0402BBD17
-01824C3BB524130F5B82A45275807BC2F3A0655EA208F968B297F98C369192C8ACA26BEBA7DC4506
-FBD1305E2EFA4DBE5375281A88EE2D6FC88FC0A755E72934B4B58F6DD3BDAF7171A4A3C776576735
-2492BFA9A7758504750AB7F38754683B70E9E293CB1CD7B23BA62BD7397ABB84D7EDB22EF6C3F58B
-3EEAF656E361747ED04020163253D1CF3F905B5E85F83FFF30AB2778CAE43781667C0F65C8FD404D
-6B9202A99EA76AF9AE1236631550B66B063847180B6DCA832EA8DC4A6EFDB674B5A26552A7C7D54C
-2799C7D4E03C24F661A91103086DE3A90A774A6988347656344CFBA06065AB22476BB09FB68F9928
-C0045F2764AF643CFEF0516D87FDE6DBF93BAE2829B176CB507BB99835E01BAD5E55C2F8798C93FA
-35EB3FEF02CFA31D3D21B030547F86D27B9448D68E2B155A65C742BD2999DAA0C3AED64447B9CC67
-F7AF33B63AFAF25F3CF7EF86657FE8F952288CA4B691D369E8F1935CDA44A180A6767560C2ED3F2F
-CC38B6BD7991D4170C7C566D690A8A25BE03212A80871108D18CCEFF246623E653107631F29227D6
-4754B2208D19F84E547799E691CA473780DDD56AE620CD953D5133D135E3D51F237078FEEBB73714
-54EE633CFE238AEA63F9999E32850E6C197687A0EC4E5908D2A18C5349627E336AB5E3185B218228
-603A4B1852069F5EE849D571B8387DCE1F8F8E9FE94FADEF128BA83BDD245F8C1C27C11F2ED1A8AB
-2D6D601726842CEE744EE7AAC6B6FA16CCAA39DBF5B3B1D47339F31DFA562671A9CF7DDE6915FEF9
-F19B3E068A464DD350A3AD146D1A241673B5112A4A8768F976723E6E184790C0604506C46591BEF2
-106C40789B733331A80740D59ABED39868F80BECC2AA21C400A0BD0CC326D186FFF9EB37680F1EDC
-32AC78F9059280D07B5FF2E354FED545129FA5FA8F3D4317FF21E027602FDB2522F049BB545FF4DA
-60248130F81F4E348373142F3148DED038AFBA818F26D5B49FC02DE9800D894E9239C88EE0EDE431
-F8083697CB0BE3B497473473E5714717C914A1A926730C249413FEA2615EF72BDB0906933387A892
-370F77EEBF62D26CD583EE643B02E323821379C0DC966407D36AE3CDF646B95DEDC7D7FD0F28E950
-78F12DFC0D6400B327B743C548A0A3517A175A7ED963ED756B1E107AE7087E2446BA702CD4E26E2D
-CDC1A8B697108B5B5E81E9F03105F220C72D4AEBC57665887C8C7964089FBE9424120EFDB14D76EE
-F8C6F7A30B13E1AE90CB9D93D2E14BDE47F4A1D05ED5B18D32AA39911B92D24C93976ACEB7EF597A
-75161923A73B2CC761785493D0EEDC08B5AFE95F3C006B41438A0785C962B070DE2BD096CB63B847
-C87539880AA3D3FC5C345E0992D7BE77C6CFF4948617FDDA784CC55652192B0ED775129C4EA4245A
-41BCF3875BE319DA0EE2DAFEFAE920CD2B6C6C2001762F88C0C5C05053025C0349DB17104360FCE1
-5D7F3A8E30ED13155A74FAF91DC77B8AABDD6FBD5A1EAF255DB209D7F2B90822296B5603FB5E2CC9
-5CBC5F7A6044058B8044ADCE73ACFD896177F1F70EAD2F6534DC3AD755AB2BA87126D63CA2E9C441
-DF0965BDDD6BE494E58D6B5057A561D1E31BD38E92CB73C1465AF6B9C001F7229059BCA4104847D1
-639E124E082F7364B56548BF8112D0EB461B316B2449049F6A476D36D6B7C0C1126C08F2E9A1246A
-3B5B21E7C8FAC6E23B82E33A7783E4F31F0240E96E69C9444E7D7A928636CFD086475DF1E0A28464
-81387BB2010655B9F81A0744121699B4905AAEDCC84BC5D5AB3674601DBBB651EDE7B5DF05C8A463
-DAB41F79706D285C4F9063997F7AC8CEF35CAD51FBE5F5BB1B3FA6DA2C3ABF2B3E925581349728D6
-DA0D59C1EF6444539742EE9A23A5727F20CF9377F4F84DEA420607015A30FB14632D084A2DD181BB
-02FC3A84FC499B318156B675B9CA3CCABD87FDB2497C6705FA70EBA43ADDB6CF961B30E8F6AB9F84
-E1DD8D6DB3314B34B7F7AA3BBE19D5BDC75ECADFD8EAE19E07B387A1FC586F0F30DB695926764B54
-0D89F1D854B0FF86528AD9523CAF56371E29498C11AFB2F4D5202670C834E930103F039D13348824
-16A49BF93B84FD3CF1209EEF7D4994C8302436C0794497461C11F5B8BA152BACBCC08AF8A15F4A4D
-F3EFFB7227CA97FC21D2D0356C93390C749CBE9750B821F1A7BCFAE2C8BC6D9A27F844D8AD088320
-79ABF0EAD8ECD4EA72846DFEED021857F33C1ACE4C07BEC90398B629814C498D33BEB375B9A53DA0
-F926FE6E89E70322C72CB2DDBFB16B13EF7A4F50DF783316584C6AC2BD7D9029124933133B2229BF
-74A228868AB30EA5C3E87C78C3F0962199480DBCADBEF53BDDE45849DA857A4FD85B96682F1EDEB8
-5384929DEE4AFAF84C51A09F5D572705673D885070303FDB47DC898F874E103A9E7C1E894115DFDD
-AD81549C7375D4AEDCCE2E52C13E5130B47F206F7C5AFAF1F9EE83DA8188D70B473269CA280A6A02
-DE85300B93D8A4F6B402FB5DF58F1327470CE11CC63ECEF2EFAA396A6680A6746A20382D9529B58E
-7CE684B39AC00F7086BCB47C2230DF0343BED9B9152A61C9826AEF9E00A1452D91305CF05490D4BC
-0BADC9C6FCBFA93FAD52C3A80705A1956890497557C0873EBDCF61CCDD2219354A4F5621AB33B119
-32065C1D990A9B68858331EE7875CAC855F98563B14EF9E1060BEA90F195AFFF94728AE935453438
-DAB35123D0E2699475884DDAFC7307A5CC06920F35341728D85965F5BA86F261CFFCB1E29B429F97
-6970D42D10E6AF6C4B792B4384122AEF2448E22A58D3AA007743C71324EA08D06819FED14AC1F22A
-4F0BE4787BC8738E1CEF240677571C65804ED3E748D72E89C94B6F310BE748FAEA31EE246859CAF7
-A1EA17CCB5B246C87EAB771E2AC5D378650191081514DDC2C66878E3766CB20DC49F630F2743A7FA
-ECBE9DBE9E815A3CB57DADF2BFF5EF2FCE23A56298A30A2E052FEAEFBD698101F9DB992613706693
-CB0EFAF6F60C8BB5E7D0A50B3392B9831EF3A304A846CD4AF431E9F018FCD3A5B16387552D55DAEA
-683D36257418AAA0E7BF8A03ED7BAB114D7C15119E6C71C1946BD7903C1C42E115E954619051B853
-BF05AE316E15E619A7DEE498F771E809D9435969C1056402725EF40C0200E083F3EC6E0EC27B8ED3
-8DFE32EA0E5E156AC36C4BB9AC5ED111A11678339703F1B9299345AEB1F251FCEFA11FB3101CC499
-907DC862B4463D5523B9B25C5B69F70AB6B29CFC1DF1ECAB8227EB3ED1F882E90B12080EE003714D
-403EC43B7B54491446B6A3DD6EB641EFBFEF060C45E873E7398025B1CB7065441F1753028F6F8C49
-A96801C0D598E098EADC96A21117F817B6FD6E6947642F93E22425A00E8F6B592AD50B317B69C0F9
-4047386A45E5EBC9504FE55451A01EB29DDF9A41D4BAD85FC84CE280971E834F06CEF49C8C20ED2C
-EAC889F158CB14A8C070900478804CFF1D1637CC880C81AA287D8382837FFA8F41FF3C9DF2F22CB2
-0044C171E4815D0D0F6C22D19A52114E780CECD71DAF63427782E85E463DCB333789F496340E8CFF
-885A9D9A4250118B439C71C6BE51A9338BE29251AA794EDC67DEEC6337FA63CA9B03C1C9F75E733A
-4A918646E7BC9792486CB5A4BCC5F84FBABDFE338C3792254A3EEA3D88903C2C47B91E076259DCCC
-8BD3DCA90ECCC832C09C45141C6242026BFE309029A562C3EE0FCCDCD40E5CF265ED9C3DE582884E
-0E14819DB98B3AF734B1B3276AC41D43384EBE73003D15CE39FFCC04109583390E470F431B4407F9
-8550E138F96C4564B494E5480F47C853BDD237E27301F55E42A3BED18FADA152572B7B465A581DBF
-E7DB2619365CF16D71BF8F091862B9FCF04BF8D0859A76F46E7B5712F2757EDCE332D3213B8A30AC
-2CE7D7797EEF6F30904906B0805DFA7CA36D32A20D989858497A66CE72491393DD79332003D55C09
-5A5AB5DF761C4BE5C041FA8407263D604E53091F7B6B15496245DBBEE96A63F10FC2978D99E65731
-28689366FE8B0BADA48B50185B861BAD03E3600F22BAD4274F2542B635F6C7944BEFC3BC741BDEF1
-1A8DD659038CB40FEF2E16AD1AE7EBEDB7D9BA15FDCF26355331505A386DD7399FB999535D6061EA
-BC61DD76EF3EB457446F29D0BB6EC2FC0AABAC20B27A3C123C27BC27A76336D0A0A6D456DA070367
-4D959A4AFE428E2206A511BFC80039ECD56E75F69786DA0A8084D81A66644DD98B6018681F1D70AD
-E09BD9BF3D16D68DD5D0A03AE26DCF1552549E459FE190B310A8776B2C8468C14CA8B1B9A7AF2956
-507A3B705AD75A17A0EEA7FE089273353CECD07BB8563465EC8DECA0EB42F43FE3664EB5F31E1D13
-24185539B28D508BCD065ED576D8814ED3FD637D576F027927162344AFB0255A91FFC616948E4E35
-8867E9FC76A9AFFACAEBFFE110808C1532A2BBB0DBEF3F010E45FFC73F228D28F12E98478B27397D
-8F456781ED9E19711DF2E9EECBC3FE61F7493FDF1A59124668A91BE51F122F93DCA4BBD22DEEA339
-E6EDA3D6EBEE03DF958113E1CA49C8398D2C59DA6764882EE3663F62A55AE50A7E91B4FEAD1B11FE
-0D50ACCC5D75F1A515F0C53616A500F1491381DFD0E2477E402AB0CF9F67D501A442629C8593ED5D
-25A72EDB9746B02F2B0F0759CC9CDCB4C9D8B4519C8C617E569B432F0CF6890372AA879CA7DE46E1
-10D95E230A4F0E52CF65811C54365DF4A3E40D819E2FD379B47DA3233D0DEF0EFBCE04AD8BAA3888
-4F6A69FE5C373E38AE0FD0241480F2BE7CCD18AF85916D2703A049779FE7398FC47D348454CF03F2
-2EB3FECC064606957898B5643464845445C25C0C7D685C8DB042AF5D5882174374ACE90081C68678
-9BCA96AC602EB41D317BD652293EE628951875641661EC86A2C40A42E8F0813A861D41A0F5178E55
-43651CA0E99150462DB5EE0010F00DE6D55B0D7FD7EC5BAEA24ED3E90A7D6A0589761922B91A6A91
-3A7FEDDD3B68254D89ECF767CE8E27F966426A8B4FB1B4085384FD09D63E288405B78A646F44C87E
-EE22C8596B13188085479F75F63D3D97A28F9C8306FD207DBFD38DEDF0FFEB7DD80B2A3292DFBF1E
-D605ADF1B33E85B010309E3EC058FCD922B1325FEE71EFF2DBBC2E68DB52D513E024C01D47CF657B
-B61C9734649A4AB63C0AF4720EC3EFCD82DD3CA6E80BB63BCF1B8DE810A0C6C517C63B76FE68C0B2
-86867BE102424FC31C4937048B6F323D039618586FC21731005D949E7D802A430DF8D2F0CE99F2A2
-376C2953EFC4184355E4D12F422C9E1E25C4DF38DEA334DBC89B540E14C61A7769D77115CE8968FB
-76B27D0863CEA2496783114C24D4CC816DA884D953DA3F9B9D3AF8938BC607BF26A071956CA07E6A
-5509EA2F5D80E5CBEB98041B197FAC760976EE75B470DC20AA023BA3F63C2876EB281FF5173BB490
-D6815604517AA1B1FA0631401B3C1A04CA103E2CA4ECCD83874D9CFC8ABC134CC0F9141D9AFA5684
-8BF222342016C556C14B3482482DCE5D0B6EF1AB522AA1812BDD8DD3397E05327EC12748FC480842
-9B97202E24E1DE0C7C0D272C046BA73B37D30930C5DE5A47D96955CB0F5DED8F3AD929A8B42D2839
-0458F5910A0F93610F79EDDB27078943DFE17C716D65F96589769349F3B66AB7B8C004CCC59EF688
-1F745EC7129865A76F9C2D029D4660CCFB4D5F9D412BA3372A27CB175E9D65F759575CF14A5899A8
-D31FF039AC02DBD8391C3397428AC0D5717C005200790785354813C8859BE90E0E17914F6CB9C674
-F1E9A9648657B54E5E1F52756C4F982DF74E73F6E4D40718C71D1D0E2420FB7462FEC9E457C0414A
-96E475C6BE2C10437096FCA0C942E995A9ADA789AB637B648781D32DFB68E62E91C2CE7E13680F8D
-31ECF8C824885FA7618981CD05FB335AA111B409C59EE337DF4E5F9DCC920A5FC0D620DC07F20DAD
-63F4FF5E0EE5A2F390AF1C32122BA7780F210229E5A5E3ED97BC1C3CDDDD456E739CA782EDBF4B81
-0552368E9C734B0C78B0B8E3F8B2DD782862B74318871BB1EF087828CC173D7B049811FCF598B8EF
-DE4D9BC5447F4848C98029C854F3AE461B9D46DDAD8CE67A521F3C811A81A396CB0F80F3C8D8EC88
-30532FB7F9624F7CAE0F8C6DF875073333DEB28AAA90AAF486AB8C932553CE697B885E71EC8E40C7
-835CD5D59A2C695DB9E51216FF9B77A15B0DA63717FF25B05B939E45CF7FBE490E51E9344213B32E
-115C2DE14D76DFD5845088DE645B0E75042A61D82FB1753C445AD0A956A1263E5A096B681D3BC51A
-9FF32EBAFFF7ECA8B59D40F0937EEFF38312AE57462C7BF3B1FE24D2BA8DFE84515270E09063CE3C
-80DF4935E409F62EB4F54AF16A186D4329972B9BDF15FB08461B688ED49928429226CAD9F67C9D63
-6D1375CBB7B08A5631956B7FE29CC9EFA8D75C9E4919C8C2C54F401D2E0D7BFBA40C50CAE214D210
-C6F3EA5802339F63FC4C1C1995787617F3EC2C806CE44CF8E29F76606CD5836F6E5A2E423CD791BE
-CD3F112F25657DFED9366FC4ADF90B685CCE4A5698E5FE16D7542B913FBC01B288DD13F43DB2B1ED
-8CCB80159DBDC90A8132125DF8DF547C4851CA609D1F6F4D647741260E845B457937787827A89E37
-CDA06BB191669AC84B8608EAE132D10177F3FC384980F3A6E439B048A38D0D6B9CEF09F3F2D732AA
-71BD058169D6D0F8C9D146D9DA046774027559A8B3843F6116B418427E78476AD8F0F81E8A6B1209
-8060FF7DD686503F972D6C42FD6CC29C083AC3D72E3751F21D2E44A572EEC80E81EE44C90FAA7AFA
-BCD3ECEB98FD4068F6C3A4DED0E6CEC523C9A0054D1FC2A8D61A4A26F9BC250B8F302416924AB22E
-722297888B85B9C12F8DFD2A744CBD143F9B2514C1CBE988D9CB4E77D90B2EFD5C2A528355A35F7C
-4AF039C7D1D756305967B847D4ACBB81263D4992C001E2A262B9FEE2D1F5022BE5B15E1D8F1D67BC
-52227344EE912C018CB73E5F47CED54FD202627777BB77AACF3EE6B22706FB2FA9062BEE87E22CD2
-802E7706322648DAA0C624EA885430175F746E1F536F9A8E1C610C4A761D07248426DB63C9319A88
-A3FA449C3FB8AC94C6003C745E6BAD717A3B2EA3862D1E08512A98E57772A62F85F1E2FFBA40E2EE
-43AEC11203DA9CE5AFBF673436F2DB6AF85BBE89D802F7A9E5FA25A408DB69E51F0577DD26F94CF2
-BA2FC53EDDD6FBEB534AF15F74F66EF8D14E7FF77D8A5D284C8202DD5A6053CEAA606BF925992382
-5EF4EFFAA8D878652A4CAF2EE43ED26BF3590402686C876F86C1AE95046E527617CDD3C429BD4CC3
-F9654D2C76DD4102471FF746FA9FA379B16DF96BFE3836D43FCC0B8E95120C27370049ACA4AC313E
-1D50D72D1814F2566B8B29FA9C9C20D0488743722A766436776783B939171FFFA00E04805A8B5821
-4D4F114F7B9C3C17CE7486AEA2BCC895ECDE809502BDE57981318A93F23016F056A421B733C4590E
-34AB08BB348DA4A48F19B6BEFAA1DDD2A49A6C440443028333CDD48C85CD698ADAF3FD8676739E44
-400A98B575BE02350576F96CFA54D4184BA47555B8D12374B86D038D085F7FA51FF4BE2FF5981408
-999B48B2FAF305212ED54B2E371F5A0074CF68D1B0E5CD279BBC8BBAEF694A89A6C43F518D01BB4E
-8402AADF34E96E9B3FCCAB4CBEA2741D3FD9ADF7AF32388F7771845AF99965A6078F4DA335EFA436
-BE36903E33A743C112C0267309F266DD44FA998C9A139704E400B89DAB952EECFE2AC09C82D9F497
-5371CCC27DA37890EC84123193314D8A7A707C217FFC951A547EE5B6D1B7C8ED85BEBD9D3F4B9B09
-6A78E5F7DF88C931E3F396973974454E59340CA51DBFEA1A00DE084B64630E26C6D6A3593B828814
-E27DB0186BF2A87EEF268AA1B135AC09B52CFE53051CBCC88CEC5657BD47F603C8E1A6249161684F
-D9084AC279F57A4F9BBD0A546A87E147B62AC860911969A29B8AA20E3AAAD0079D64E6BF1B0F2CE8
-F0C54C9019207E1B403358253C2FA93A662F63B9380B65C5173C198D86A3D0DC1800D1F5378DA39C
-E8523EB62C6AFAD8A0D7AD1629F2CECAD82B8FDE38975303768C7D3A08B91478EDB3C45A8C6B7725
-EA8596A8ED50B8355FB852FB8966479D12E1086223B1E6523A65FBA81DD106FE254F7309718768AB
-009FF7714A8C363B09DDA73CD3F81BF9C0CD3B0C806CF3B7BBFAB73E46FACAD2480EEBA97AE68EC9
-4D3D79AA01ECC22067858EFFA9D7B7F997ABD2CE5AAA8781E5499E8580C405681CC63EEA53BB47E5
-5ECC5BA2A7A3C5472DF034B022F455C60FFF971B01583A29E211A87F7163187B190B0C1083D696B5
-86E9438FD8BAA45101A5EDCD1BE5AB9A585511089DDAC8DF1B1FDBE582ABD945E67F99ADC4452988
-A9859E39C90EF794C5C4E62997085B7A16A0D90107D08610BA175AD66377345662DA7DA4D8FEF847
-EE5D57E3AC54B928A0957CC1C944E7FF14658FE4A641CD26C61105C0F136A75950764B69CA17509E
-3C19351D456B22C87C55E8DCC4ACD3E150D936333FF36499AD6B02B6403DE0F12901301ECB2EBA10
-324BA72B58206A13B8F37B0AEB12115D0C12879C8EA8A2EB70E85C95434564BA3DFF481C8972587E
-FF74EEBBBAB14FB32B8A84B8FC42EBECA65D25E8C32C19CA5962832BF45DFDA4E871508AEC318495
-0D6DBE89019CEA29E40484C36E33D76B756255531ADD1DB24C03B2A64A47BD8FBA3FDCB1F5B96F8E
-ECB60D5834AB001A70740498720AFB6EC03445CC35B51F7987109618C6C78CBE3041BEDC69B6FB12
-8142CEC5C8683B558AFE3024EFF7A12D04EF59A72E156DF11D33ABA08A8EEB16259DD9529CD003AD
-4EF4137B6FF1654236473DFB93F597331A5E26C7796F528F65C94FE07B3B4F4DD49034FA0CC189DF
-CDFF70C2F1C6D3DF30AE103E2AC5CFF20664AB934CE5C19693292071C93BD590383E0A1931E04D1D
-DD18071DAFB628F5D7472E457BF81D6064EDFA8DEBFF91701C5038CB30865D6122076A336732DBCD
-B0A625548773D0013648A76F07BBDC9C16284D158EC7A105AE37A62279419C3A2F360D0C7A74D6FD
-D0E36DCA2A8BD59945A4196598F690878F84C894852C1811AFEA4BE3B9F6A5219E6628C66669DBD8
-FA9A0CFC2DDE7716A356FC4FB271D8A2CDDC8D4684DE447355BC7A287DC56852A638C5777826EB6E
-B72FACCC86F80BEDDD0D649A883CFEEF4D74750172A90B5DD8252592FCFE19FFAAD868E99562DAEA
-E70514F5DE296EF7B57E6F193737ABB6AA317956584423817E11664A67389197AD9F8F771EA59551
-98C9EE40A0761639E638CE9D890DF468642670235F1373D3AC6B1F43B5777FC0A91A96E095E89BB9
-FD62614DE456CE7AFD6B855112367573FD9FCBBD4A4F9C676E672D62DDD34A9BFE8311B6175A003C
-D143C0DF15E4C0B48C735404086E48AEED6B6FA21FD9F40B84215DFF287F0677904E2DDFDA774A40
-19DF45CC877F553E95A1C65DF1D67BC0C60E0BBA4D205C0DA3DA80229FDD71859F65AD04506B308C
-2B783839F31CFE4425263224F08C5C7E98A2C9D3DC8EA5AC1920F4E395413262E0836BC019A092A0
-DECA104EB2DF6B63392AE8E2136379140DE5FC98B0B69860FE8E31DAB5C5DF7807D19BEA34AC14E0
-ABC6F6519C51247B104DE7D912C5BF6EF11B48FC6DF84512E9F5FEBB48F72FF1B722BDC3BB2E835B
-2E7CC6324BEE84893996B8DC2D4DC2793A4F69C18E63DAF04A7BB5C0A9076E2D5A343E134CC3C89C
-4712900656FFC202E1988526D80C7FD9281FE47FBA8AB5D025E63A84051F6B13167BEC15B346212C
-BD051AFE7A98BE3A2491F3C469718A58E783ED91F90E274FB4978F8719E92A99A1E8F142EA7E1F2C
-46AFF0A2FB50F4D105130CE8EA309B0E480DC8F80D506172B609EA4BB4E2BBAE98D8882814FB273E
-690DA990B60A9CDA20A2418246BD10AE67D846A0FA815AC25858145ADDA106A6778A11877FE59A2A
-BE300D7DB9BBAB31CB5B960B7E4EF91D4600886D8795DC361CBDDDDE05EBD54B1941F426F7FA8399
-270D2F54C998BE92D146227270A8E89AF90C48BAFC4ECCCA01E6322AFC165743475E752F39BDAEC4
-9297290510FFA264342A0AFE2985F85DEEC66C36EB4A1D46683EE7C591A89B81569A8566AFBCA268
-10DDB0970577A76EC8A066622606B08315DB0F2E6C671F3259C73637D773D1A180AAD66ADADA2A65
-95B5F481E5F59E51CBA876FA06D21E1D674CFAB46A02D267E20234324D0891E7847C13C69BFCEEA3
-AC55F2EAF753726BCEB0DE1EECF42ADA964BF9E475953302C2FCA804B70B779482DC9319B40381E0
-9C0096460AE113C19A2DC9157FA138CF0E7758F71008E71D0F7599744D647B09B16E3C795C56EE5B
-D14D8D63E7A512900D67487975EC9CEAEF69572FC3C2342AC5D365E8A4BCF462006B5268ECC15754
-94CAD9A9E7A9E8D9AFFE49AF647C017743EC7CFD5E66F4E4D845A6BBC836849274FBD270CBF263F1
-67DF7E26BA91F21C60F96257C07523AC37A2193010E976965CBD75751E312817C0564E1C5AE0CBA8
-BD12B01122D07020A0852120680985A8AC987BC33BE863EEC52AF13435B6E4048D951F5BCE36526E
-07A8661CF2538F69D1F223BC53BF5896437D1BD46F57D9698F642F0E99C7392D8EE47134E34DCE94
-D392949B418D9821E12CAFA8337323E8469DAC24DADC6AAD4A0DADD7FF65694BA3A27964D28D8EB4
-1179458F91CD3F83B8F119BF5E76184DD29CC4C0718CF7945DCECC993A7A78739363136CEC7F2FB4
-95EEA8CEDB3EBF14373A058758C442939D36774435554851E9519B6F09C31EF26B6CD997DAFA11DA
-91FA9759F17B7079164C5B47B99CCB7A876FBAB1D0D5D1E1A2683CD6914E6B3B755939CEF1C9168D
-30B2738C4349650CF86C90D2542FC9B90F36A494C035A1C86DD716014AA16E6B9EC7AA03B16554BE
-C436511DD3097FAB1FD0CD49EDAB96F74E8FD26400FC748CBD9EE1EEAEE24DA30DB6F8734B52818B
-3A5E510AA5C14E42060898033E7E36CBA9A64042CF94A74E4B52E37AC027C0DC69BAC4944CCE12E7
-AD81AEDCE642EC34CA23E3FF07B8CD35DFF19F33C8D4DBB56A52534F8A827BE47AD4AEDCAD83B273
-38409FD1101C4DFF3F12D3DF79AD1FCE65B2F419451DD059C88BF066413E23DE27D3621DAC2DCC8F
-9F3620DAD0F4B1A6E8C9E6E8ADB552E1EB2C4B2A3B73986AD53ED9ED8911F82F750DF05CD2EBA3E1
-B0DF208A87FB5ED44C3296B803881C1D9776D13350CD29C3F716F0B5A8B8557812024BA70069BE65
-89AA579EADB1F657712DF2570843D7C5FF7F4009D4D232D3547DC8B92ED5C4DB77B76255E661FF8B
-163C6F3856DE5651B597EC7C78B84F0C6C1D6EA3A82286F1D3BB45F708D564E139E81F473C705AB2
-56346328DAA64D1EA8645DC10FD449092E0634D9D7344B2AEC3C75F6B6CD8B3F3867FF3CBB0F556B
-186EE9A7C26BD2D17C8A773055D9D5013BD2F937D697A770C57BDB36D922CB911CD14E7FA14160BE
-19C1A052E297B1A2D682D4BBC9F1D2493BCD7CAD2FA75D904C5F5479179DAF7DC6A4E0D269BACA2C
-4F2430B4C8CF1572FBDC750A05DCD5B09FA3A9CD6F2F2A386E2B3D4D8E257BD43A783B38E63BCEE5
-03EA96FF2C373181744A607F0CB8D281D7DB1A6F4076AA3E2C61914BD796EF8A0873F79F964FDE28
-B792BA99A20C3F1F5ED1FD189FB1867C84DCD6AF43D49420C8B1F3DCE7DBAE71DEB17FE45644DB24
-4F44B1011C7C768EBB7254F4DACA64E9BA87AA7CD0F0C4B2228FFB9EBDCF3DDE4DCED39399FFEB34
-8811547D025320A88B480943A339E2CD2FA3605AAAE87939B1D7901465A1879BCB4C5BE1A179E7E3
-71F1BA2E0844F88AFBAE9B78DCCA47AE8AEDF5BD3D458C7D4A7A08ACCBF880D1F1DC69C636628DF1
-EBDC5C42FF88FF8B66351F3F72D703E52F3CE91E4E00759753A599FDD863788E99858498B66B93E5
-083BC3501C39A9BA928B0D763C28826FD237E949EF0BA85CCA9AA20C405DB6D5612DB718F7B4AD31
-D253AE306E4D7CB615C59AE668D347A4E60FFF7B103F8BD0E7CBDB142A763BE88AB40EEF6B8FC200
-458D728930AD0F94FE52ACBF0657C4907CC7942710AB1FD8BD149A9C9DEF6B8DCA7DB9062AA7B1B0
-11ABB5AAE8B77893A023F9EEEED4A20FBC30F922282A7AE2F1ACFF64151013D6B8AC2EAAE58171A1
-0F80BC18C3BBB5DE1E22EBE6033BF83040629023D74CCBAB3F1923CFA4A6735E1DFA8A1B261FBF1C
-397E26F3BA9C2629CFDA84DFA3D1087EBB19DDA7E2D76E30DC2E15B8821D5291DA1DFD73940E5560
-A8A6DC91BE0075E3ED8D9E8CAC85AC20768D868CD2DC45DEADCC8B59AABE6EE5B2F891E0D7CBAE82
-0F83479332BF9707486698FE196C72EF72B52F54314329FC498171782BF160E1110A19B8208FC591
-EF0F0DA71AF657B43A7CC649A8488B759F7B69134B4F9DCF79DAEBC1CE52CC8015F324C9D46320F4
-4E1551EDA6D86139DFD1DB814CF38A22A89FABB4F75FB896B00E769820F763486E86668253CC466C
-1529A5A924CC337C48448851A381DCEF63A0A302B65203D6571A1DD1FB9DC0C3BD6AEF4891497033
-109CEB5A481BFE442249940EC54096F1D0F2436D9E60495D0ACFF967A741B30467D24AC6B0032213
-18666B951EFD45324987B10BEF4AAA0FF1DF6887377A7F70F555DFB9FF1001C67438A167A00B05D2
-C37065655173A7ED9AE342DFA1497FB1F2FED6098901249A085D31B66DBB6AC25EF16C106B0A6FF3
-47CDF66434DC3F0012DAADE80B942D522CD59AF4C31C1C062157B3D000B9CB86E2AA7B4A5BF31605
-8A0D5A148EAA2C67977FAA0966E4C3454E08DF14C2498AD76E389AF65D2C139A6D8675298C46ACEB
-7DBE6904C373C06E5F71399B2EDA0B40AB96E8BE991DDC39F92F1D24797F9EC9F2FAE25669B43754
-E2498E8EA5C44B176C3FB3E8F7A7A1481275A461F2549AFC4CC73E28417BD8C5212C13105EAB967D
-AA679AE822B9B75B372A99C7E82D6BD83AA2BA00314DA4AC51B9CAA30D80507505BE24BAD0A87C5D
-5D7336EDF60CCA4CEC8201D243C3932F74D171E2409D789AAD0D04A7BB22FB6DC3AB92AE33FFEA89
-7C484D741039F38C317EA396A0FBB9F15A27D87FCBE007558799BAB73212B6E5FAF2080BA074724E
-AC87D88166DBC1464CF5D41B99428851FF1D99246944511CF42C3F9248513E9E51593F253D89C604
-388AD7132D6A169E9DD888E020AC1F8BA606F2E1EBB97977E505D8C40853653D8F398F71CC9F8F9C
-540C22A1E6195BA578AE7262FC845FCCF77B33F33EEF266489AF8B81A615D6A13464BCA58BEC16C2
-3F31D678F14A938BEC31272DAC3CCB1B2DAE577A26BED852FC59843176A5FCFCFA0AB7FB00D2309D
-E55C82CB9049F44FA61F1E313205A76317C4CF529A4456019D970624129681F46A9CD7950B8B5C40
-61853040113C8115319E68B37F88D864C6957DF813B305D09E6A1716B10F26F2EF5C727FC77AABBA
-73E12B5AE6416AB19F6563CE14046B715BD4CB2B1E4D315F42D10F74CDEDE82BCDD524A1A5460921
-9084CF1CDABFE72CC8375478B41614BC18A914903596D6FC2F361EE519F875385F4ECB50F7053127
-4EBDEB14A5DBD906A60817246042E3799BB3AC647CDA7244B7998AE4F3BFBE5C767FD2142E48518A
-4217599E0EC2CF5E86C8C270FF8B02F949EE001D6A439BCB4BC7D7F7C8167C3AE0A7E59687FB8BF6
-F37BEAA164541B8EAFD92E9D152E3FD0F413C99CCC34FCD8AA455A0B55DEC846A5874B94FC95CFF1
-BB386B2A1E22CD1C3914264B6D5BD1746972857C9235052D77A6C0DD3019F8A307FBEE63A3EF12B0
-39B224108276FFA84021F1AC5B745C54690B3FF587B4B1710AC3533A67BCEFC503ADF1F4B62B2910
-B31965E364EEC9CC437CC40181A7320CD52BE9C546B8F1DC824312216C2FD8232E2BB8D40EE2E314
-54C09772A387F9520E331456C269F51A078E6ABD9FB6A68BFD5F557215B0BBD2227B8959CBD1BD4A
-EEAB094DD18E891C61FB00933C0A0D76174D169C0B6445D34C00DC9E06D85EB086C18F3BE27DF734
-EBB9CF078AFF6514438549CBE92A0C0D25EFE4A527D86F158B4E9D8870C7AC5D6C059643A3298079
-CC20398324CA87273B86ED801057D797D91BC3CF2F96C650EE1566CD3CF8656CC577D38B830201BE
-718DC9A494268177A5019546EEEDBF101996BE593631654B638C75A6BAA648CD1E7AA9AC1EA60F4C
-D604071C89DCCFF8B3E430A57ED6DE11C5837E78956ED991058F3646219BEAE94E4D9381A33D48CA
-9B8FF12B54A73FF869D0EEED7E098D80152295E6016CDD809173C57D1F5FCE908A37010AD4C4471A
-53451DE9B4363B63437C374C598F548F145D3D288F42531FCF36A9CDF72521F1C0868FCEEEB1857E
-A983F6B75CE245D875BEAD1BCB8819E5464518E04717B78BD6E335F0AD77B832AF5682062A1E2AC7
-7CD5EDD5DC372EE456C96D38BF8BF348DAC2B4EBBB2440F2CE97B4B337F2E23247E3E8423BFA9237
-CA6CEB6FB93F960CAD894A96F0371168A33222052DE9B3BE04B022AB95C0C243486E35197721FC55
-311DC55F87BC72D09B6C940CA36E6640AEB66C394A5949A604E7F15DCE3A008BB41B0EEF2840A357
-F348443B4DCE064B4C15E5EC52E448C985FAA1C3D6526270B1CC691009959A7620C9A6202619A19B
-E410FF7BD535A8B2640AAA459DFDCB8F2BB35112626497E8A397D4F9E04788322A738DC8907CB643
-15CF63C95809E90D06EF02F72AB04AA61FE02ECCF7E9049FF9F3EF2258A75656178AAAC9F3C2A26C
-001341862D526CC14E92A81BD63502F959066E0BCD659CB9B5A45606153DD77039B8C5D5B13565F0
-0D95A41937CF97089F3938E39659A64DC3D6046D0E9EF66544CAF8A206635DF49926A3EEF3FDBC9D
-CCEA2886EC855F1821C4B9CE1D02A19A11BBBEF43A7D4D536715548A62802F64AF30BBCBEA8C7E55
-AD56C801D8A569C8183615A78CD393CA42C103F155941E845712C335F4ACFC7807202B92A983111A
-ED241BBB8501F15560E8F2157C29752BDCDB274008137277920053D6D7DCDC626A574A82A8A34F1E
-77B2FC8CF7C1A7322F22DFCB450259EB450C52B70DF3584A7C54C813DB41E3DD81253A03B02BC252
-346AF0160716355797B6F8210C453DD7E1E756FF08C7E6A5F4F87605E1DFF35A130D79148A57B7AD
-12D94A129FE3F055CF974EBA09A2B13DEECA2E02EA818A58B81E8743004646C7746110BC61B86ADF
-2D5D8C45A6A5461EB34497FCCD09E711F47BFA742C73F87B257B53F30CB68D151424DC3C210D3E8A
-C67C2495A8236EA2D7985A5E1DEAC699D7B700E6D38EEE2E93B191BAA5A8A2C916D206C63FE63427
-AAAFED2B5784276FC21EEFF2D70E47C8540DCCC3E00134642B703795CD3702631AE2A90E063A218B
-61E5B89BBCFFF84F567E37A31A9B349717A8CDB9C9377215BA838FF7469BC486B64EF2B6D92519C0
-BF0826E3652903F40E400689F5749DF86FE3DE178E21E20EDF9053081F6510D8F19ACD021CBA481C
-484D30EAD3B84ED0190087EE478A17154B243346C3938FDD5340CF6E47B185E64ABDF44F8CBCDB82
-94492B91929BFEB9DA2B033C3ACEE554F0F1A7F8A56DF7C06A3583C1E9C5CA458D40E550FDF3E2F2
-E7BE8312D5FEE98543388EDC8A04CA29F1B82B7AB4ADABBA3F2C331EFF3521B2B92F99C4377AB827
-A989B423750D36ADDD2E286E7F3B694E29B8BC403693C6F7CAB5FE34F1E48C8D41B47831E8C3F5BE
-5ED5142E3C44ACF5180CD41FDA149B1F4AED36812E42BC184227F5034220F74F67830255E1CAEC12
-66DEFA358A87D2E3B4B4E7EF30181570D0B2B43072EE0311C2C157D32EE2BEA8EA4251B59F6B61D2
-B4FDEB654DEB67AA3DFF4AD65B727F0D6B7D61523E4B44D99BA5CD33540F340A35DDD466ABEA4E72
-E504FC9BAAE51D231C33A8CE7DC2970DE4C1FB5B096A3D9C641EF77DC9039886831DDD01C4F21E6E
-168E38BBDDA5F4308C959C7BBF36A42D042DA6862937EB20D4FA2E5927741A58DA5CBFFD9553BEFF
-BD92E6D64871D8B25D9049F4E71970A8FF5557D1DE83DD24286D6C3E4770EE00F9A1A0B0063C9999
-4AEC75E84D6F9C488434D1F3DCFD0A8BEE9ED8257CA97E75E8B1285747184D6D2228EF95D4A0B8DA
-252318ABD35C8398FC6568B294D90AB308A7675F9F160140F0A08C88AD0CA1CA2CF85E4D031CFA3B
-87635F1398EB7DBC666A259F02DB6741D13E11B230025DD6DD64C438409AF109090058151E4DFB8C
-0E9CD65935C4CC063CC6100FDE70896E23E3661C7FC1B8228B26A55903E997F80207EDD8863FA074
-EE4FF23BE585BAF708040C9F8CFDEB42FB8EB71D4CB6D7757E973E4D8C9DDD082712C23F868E1135
-ECD91250BB4335958B07C12FDA75EEB56BE19D1644C1F76A8811C021122619F751CBBFEB1D3DC912
-999017FA163672A1EF754C5CB78962BAAB76EC48461B492FA88F9897170DE857CC8374C8BAE417D4
-C78A56047024731F4A45145F0393A27CAB614A7FF747BBC28E6880D4D01C0A6CF317A1DE5BB5ADFA
-4B5FBFE0C57598C79F25AE57BB797A489D51F85A9B9CF8BEA64293F8FCC43B0D5484DF99DBE19152
-692CE756F6FBE8CE5831CF4B8A5AF47524E272C45C62ACBFBDFE7E60B05BB1A1A6AF0E9210012014
-69B3DBB49EC7B23A363FA68417B7118DCEA71D4ACA2E36F88C6DDEFB70205DF3AB7C74CF65CFD01F
-F85FAF99F172689737331D4C6CFF7A29029772F487FBF625F17BDAD89B4AC076948277B4ED687840
-301016C2B7AD4C6D02F81E88C75B7A04D724E234E38A38269351582245E361A42C75B8256AFD5624
-B558ADA2190F960A896BBAE7A8C57E76DA10DC29E69BBF3AA86214C001A27B39C1D17C548DA5601E
-86A5CF53E7B1896BF003AAE9387ABA9B102EB1E9002DD3754A378F3E49F2C6EECF47EB1BAC2CFCE1
-1AC0C5CB063672D32733563F3E1E891B6073739BC53AAA0043FC45E90E413DFBD4548DD320B681ED
-70A7443A233D79E3F038D26975586E5CDD2115AA614727B1F6DD4024B85CCCFC79D10B7B6AFA789D
-B37BD0E8C423C1A4A8681B5FF3A9FA1F61A46E46C4B1836D1AA41A89264A7F4B1C259E4B10ECDF37
-5BD26A1F412FE01FBDC03368FCAF48AA0EC28B1BD603A6A0D0DADE66D14C9B7285569230FAB76803
-35BE104305E4B748FA99FA31F23991608DFDD2097DA292551136F255051C9F7EEF3FB7C7FDB4E651
-C3D03A4CA357B587245236F4FF3252563F6BE08EF8A3EC09BE2BF27B9120F7D37801F6999EFB1C8A
-D1A08698CC59CEAE2CFCDBF6BD8F94DEC94F7EBF33AF05F52C85760C63950B455510C6AB9398D09A
-C288EFA09E8F631A59B03FBBC75BBDAFD675FFACCCF8ADF71E815A4A49F14BF70E42DB0B7347B528
-4E234C24010E2177DBBD57648E398FA6B54571A37BA8C989503594D03C6E60871A7F964599022154
-02BA168B8D1D2685F5CF8645D5E11A1769473027F42564C2966C10C0DEE1EE1B6975852A4870D492
-83A470E623337544A7CDA5C16FE2855BA2A548511FB4D4FF2E3E78D108E4C734F64EE2F12CC9562C
-BDF363EFAF5201B673AD00583FF108AFF6B68055A5F299452D176EAAFB92C84F114C8C22A05EAD65
-64A3371420EA9E646308DE97D40705E1638DF08704FC90249CBC0D2D3E884A4562CC27370B1A9738
-9D8EFD237E644A7370B8B38ED1C377F522C75F981D878A5E87101E621DF9D85C7207BBE5A87CCB60
-7F93A2E52F660E05C83A7A6CE6D01AB4B62A1EF8DA47CF97D4BBA0FA8EFFA9C0F61A325A97ADA694
-45F23AB1FE27A66C271639F839203040D44B11ECC6E805FBE88843B34C4FD52D1D3C6C70FFED433F
-C04501FC20536ABDFFA429B8DC8192B2D45DD9D646049CBF40719C3D674773F9676F9FCF32817DCB
-55402A72C56D74AA4CE4035687C730B6B44A9CC614BCA5A3FD17C170ED949E588EE45E89E18B0766
-2A6327FB9E8475C43E5DA1B0AF07C23774B19C9EF59281F5D884990D6194170D8293A86DB52A0FE1
-7E88DA82209A00A16BD29B8B2F13FD60AA25FCFA9745F57C8216283C1D6EA1C119CB9B8D57C00419
-5210FFBD56395A3EC2D3098ED38F389EFC0324FD0E55EA339B3892568229D8D3E205A821E8219FCB
-1A7713FCF3450F8BEF976CA0BECA47376A8CA73DF85B340C67EFE4534D459617996526B5E5D3D19E
-17CC5449E5EF2B82B2C4C2131FF8A19FCFE6A186A9840D872D85C40665A7A04E67EE26B8BC9206C3
-5B44C8F8A1AFC3867D96DC6D48BD45063BE25B882E9BC0D0948C18DC870E6925818E1FE17D336217
-F174EB4481F5C0ED37A3BEAFAF4D46F857811B6728BEC461AE6468D87A736572F4FF95B58B04564A
-9D3C22754587DF15495A319D822B838461764B73483C1F7CB930EECC6F7424841EE10E4087E95120
-2FE88A391375C96BEC4480328A54740213F741105B12A39F19808F3823507B88115D468C61B212A8
-ABAE7480E39BA52390A1892C7EC50271156B4E8076FC3ADA222695DF372385DA7B117A29E04CD2B8
-0A320F186D61C963FBDAFE9224E537057C49E82E405196AAB621B5FE4011E1782A747EF935ED8BB1
-1BDA39A141CC0BA42D04AE123383BC95A1D03A85A9440010C3B9613064FFECA76197E10919BA5006
-F35837ED9BCD7DE5E6D968AACB6FC91178091FA467EF6FDEB728E17293DC89DDE5A5261FAA95A2B0
-000FC750E7073900D4D88247DA464613ADC2B3903A6132D96AC0E1C564385FFBF6249DEA76BEA2A9
-9160632DD2FC2B99133E9F2F470F72B45D6F18B45020F604B06CD9174BA3805DB60EB9C5E6A9C789
-ACE76AE9C79C1BD34434E95E501BC968633AF93FF4883C6A596776254C0C74993710327086B2886B
-02FD3E42A725A03459CB36EE34A094139AF5FCF487D3DFE63FAD20BF0DFB60DEEDA2ACCA3510E963
-189D1256EABD81253F7FF9D11263FDBC1DCFDA3D1EA2E52005CE3C605C993231258A717423F64BFE
-EBC34684EFA676358B9B543C2042BEF954829FE3246A879845B30EBACB43D8DD7A20FCFEDF763AD2
-C5D20A798B69E08722DCE6A5762E249ACE3055B650D9E110599EA30DE5C4FE7200D5A8DA9E1FE268
-6350D0DF334877D0B9F6524C552D0B6DFFAE125EC4C18F7547BD51C14288E4ABB7F8A1A00458596C
-390AEEE6FA308AC1F788FAE30D7F8928AFC91D4DE6352D20B19D8D8AB122B7378CB379C5BE7E3CE2
-922FE667EA057B5D7B3F0B51C7BF0C85F87AC2F360D82C38964F4DABCC9104B32F0FB8802235E8E8
-D9A5997D392259074C00AF2CE1D2BF7B8E90E2E2AC34185C68A03BAB8B267778292B227245D7FF86
-70786E3F746F86B9D4D17190DB859A0E144B2A61E6AC9254DE5DBAEF20E2E9DB0B2FF654B996E962
-F55E465DD238BD1643CE59DC2B5A58B1E6E4AE2DDC2D74D79AFF3C34E4E593E051FDA236B79CC0DB
-268D2A89B1878051223BB8F33FF99BA87A4811C0B3BCC01171D0A731EB732ECD8749D27952C27886
-B252F9C3D190419FD2900987A0A255B9753FB7AA70C37462134C467A2C4B7920BED9F9E86F8F98B9
-6D00AF8B05A4BD5F14C2A0D914A9A84160D554FD0718F50ECB5DF5E76623065852DAA74C9AD6DA07
-A119DF12C3577FE276AE551D48B1C5CD8A50E84DEC9CB0840520D78FA7F9A7C2071E28CD20EC7649
-B991F3818CDE295CDB6085F24FCF93147E9F4DD084FBD32525326D2EA147ECD5B6C9D9F4A7166663
-AD18BF234E9CB92FF72138A8A49E73E527E9A6488A4CA808AECABC94D693CD2C0C357D285F65006F
-A2F9197F61FBCA6EF07B013E2B558AB531D2FD270CEE7FA8E467FAB885E90C5884843AA08E2BBFEA
-0AA575643727BA18ACC499FF34E3438645BE2AA71EA491E54687CD305E12BBC94FAEC848311AE816
-495B013BC5075A2D2AE54A7AD7C9105B64356CB51F18C2C28E3A83B9D81A4554DBEC9BEA9A660CF7
-E1BA89E6D4DFB3EEC6A3DE3FCDED9B2D614156EDAE8CFDAD5FF0EFEE31DA3E6A54D94CE9453A1CAA
-D9756D91BE85315F6514BAFBC821EE810BB5D8E1B8F05F64F3F72C4B35D424F7E4DC3AB581B74ADE
-B6D6297CDE7AA8278909F269FED79B7DFD39B1C0338E01D556C4DB9CA3A8578ACE3EC3D743ED4B9C
-0145E4525E8C315F7A1B98584B975C70F0D415708C8CCC13F848B1D36AC8249B73638F95DE0CD27C
-7EFB52BED4339EBDA4812564D7A77416DDF4CC88CFB52D07A252D89353C6826CA1832A153242979B
-6CEE783ABDE65C8B40CF4EA7B42B8DBCC0E02423DD693108006F6A4AEBF053B666C3CB63D1861F86
-EAACD43BB9BB6F2C3A17293C189331D253B447757EE7CBF4518BABB73A1D44874D7F0625E6A013C6
-08E991B4AD17A9ADB36740D25E3E35B459B422F7370B134CDFFF3F3BCC4C32B4E9EBF6A2478013F6
-6933A1FA9403A2F1161EC632F1F04EDF95ED0F33DAD9665D54DD9DB2564E51DA7B65978CAB50D6DC
-1568976E83B056EB0E3A6758518B6E17E9EBFE49B72EB148B472BA144BDC2AC95744C9BF1258F0A2
-E47470AB0EFF90E190A41108914AB8C1ED6B11E0681778521870E80C16AF2AFC723CAD8719ADB62D
-3939D3BC8CC1D8A4E07E9D734F54ECA33D936D2C39D5C8055739C33E53359BD40E576C11E93B4B4C
-122BDBC9B1BBF44243AF4F0BCDBDFADE68C526B5CD74E29CE3F70D62BA83C489034111FE8E4DAEA2
-F01F9D938ABB532DEEAC0E329F42453FF5C15DEC2AEA8C198323C9E8FEA55B3F5DC4751D2E2E16B6
-154E7F2ADD46860E9CA71DC114C99D80E7EA1DAB51E925DE161CEDD678EE6282AFF38E3CD0E65954
-9C970613209955A3F581E1ABE485E56402A3DB0D1E9B8A9DFD05C4B0B7F97FC6D0EED0B69AD6F182
-B1D028ADD2F24463834B13F5C1307F91D363891824E81108E57CFD5211F86400D3E96B107F3B1FE8
-9C4908649D04A46DC3CEE0DE66AF03A7FF9F4DAFECDD6DF4D93784CC899B527784DBE0718050FCE1
-85BDE3F39DEBCDD660B2488D23AB1CFF87B0546D02B48E7B7724C9E87B71BF34B5D6640E0F6ECE47
-B182D41C89461F712849C6CFDB7E3F5EBC1ACDD12D65A422BA362A8FD6CAAC5104CCC5AB5FC04A46
-E4309ACAC83D659DDDA256CCDDD1BFF9AB3622450C4FBC89C82214F00C42FB0311BCB1B722A691ED
-839CAF9024FB1671F18E4639C96D84718C663A4341DEC037175C6BBD288BBF5A0478298CA726567A
-9B74C32A527339C666A294A17F6821CBF243D13EA4B1603C292953308B566653423E7301A032E5D5
-E2B93F1C1434893633DD19501AD12728B5A1D9D36635B589FA2E151140B543D7C5E469AFAE8E80C4
-FC1D9CB6C3823CC1BB7EE40AECB58CBC1465792226B19E0FE79235115F6A3AFE19F98C5DB63D372D
-D7C041CD940F4F79F2474D9CEEA0334FA04A97DC9773064895CF11CF73F11B4684F06E48F4469F6A
-1AEB2CBBC52994DFAB3319DCE3A0C8C2EFA9627496F8CC84D3DF3BDC4FFCB61672780F294F453278
-AEB9262E66486856D37B7647141A82E049364ED3D03F925284A3F1FA3DDF4C0B48B3FE22E7DF9ABA
-239D33CD300FFA8FD4B96192BD568FB18D325CAA8E1F1FD4B27527417B034841FD49E4A77F217062
-3CC8B22101166D80361EB15FA9020D24F61007B0A8274DF9DFCD8E97C85568E76D34AD5DB1779B02
-F034A69CCF9D4EBAA188EB3017EEF5B22A0A552696A574907F695098BD8A4849D5C8311F129447CD
-7A3CF88B8191AEC0AFF30A38A9AB8135608A7829207A7D242F6E1FA7DDA19F5E4C28560D42DB4405
-77CC0C5F5803EEE897103ECA0BD944E320AC26553BEE7852EAA733BD13DF760056B2F5BD1243BEDA
-BC3C1EA0531017D74B47E18F801A60074D6DF849FD0532234545E5B5E112D1E7385341D39A89551C
-80DC2DEAED5D5DA2A4BE5015D297324E92BE64C68428132E6EC654DD4BDCC6640C68835FF8A05E09
-9604B8CD43D3AF2B2FE10C8AFEDEC5A70AF8509D12F662338CBF166D9452CD36331758AC4F4CBD7E
-DD52139AD27DC52569877FE709F297444C4F31899D1945C81B14ABDECBF31DC463A4148F04EC4FB9
-703C158216C0FBE65CCD450043ABFD4E65BF8B28CC148252E9F3E797EA0B57B8721C94CBC2EA602D
-F2C57E87938C887A382D2659226463BC7D6A1DA87F4A341A59BEA458177D3F18D1213539DC0E301F
-6EFE0111FCF6921368BE17CCBB7428127E0C059C2C5ADB2A3F0197F0CEAB77FF7F3C027A8EC3EE76
-CF5C986EB47CB60561C773B3A2DA47B5A35394E29373DBD5C3FF4C9213A89AED77CC4F3FCFC49EF6
-EC7557C521979A546983C106B3627B5FD2D71CC5F08A32BF49332A89C5DA71AFBFB94C949A91220A
-B1F885C981423AF93F73BC1CA4D92D9DBAE3EFE6A76E2DE3D0F74FD3255820636E3F1A6B7C185306
-23C12AF90CDCD2C0A728521E9B639EB6345D1DE8FFFC3B19C72E7A93823DFE3115E9E7BBBEB28CB7
-3DB121AED8920D47D8CC08EA2E472E39A4CAD5881B5C4204F2B732AF9D5189D25ABF413CC78714CB
-01B1D8CA5565169A919DC481F6D2E67F1D490AEBC5CC62A8F62C1A323EBB55ED35AA5C8D6F8B970E
-93205C2701CF4817BDA994FC16197B469ECC5F5E9DDF0FA05640C2E571849571CBD26402B1EB1E80
-3FCF423345007B9B52B13E3B034E8CB3984B925EBFFE719ED4F39F3D0E3343316A6FDC26BDBEA88C
-4366D3B2F851D2B244CC4408251AE2C77348CCE9DD8BB9C89800B572D38C5D1CC34C740BEEBB5DDB
-0A8BB251655FB989840D23205D16311A9FCCF7C85F6DFFEA9704492A4E7A8F6C0BDC29745AAC2ABF
-AEBA02B0E7AEFEB92BA63AB0DF844EB09D505C3DFC1058CE42CDD8043B76398401E1DB862FF9F76C
-05E8BC6260A4443CF494BC1755913D51745BF45ADF2F8C7A9546D7EF4FB11E9D94E4539632C2A396
-06D04480EE459408D7A2A869807A4C01881C1BB21C296A402B5E6E07093D833C3DFF075F4DD426EB
-87B1B8DE16C146DE79F52F5943015331EEB852809CBB8E1D6460AC4D176FE96F8D19F6CCB22ABBBA
-A27C4497D91312C3CFB5BB913B314E43D2EC6AB6897BA7C34CF2CAA6DB4BD69EB5DFCEE0AA917D69
-50E36A68A4C22A60DCC69379D47544A58D640EB10DFE120FCA843B588CA8B94F7869F97609A6FE03
-AC86EC1F7CEAD2EC8E81977D1B946E459DFCFEFE65A7BFF67E66F5F78A45D8DF65AF0146DF74E024
-FC042328886CC1DD7779F49CDBB750345CF83CD678A6A8897577299DEB38AD665DC4F21CE1892A18
-C256F318107DD3E9245C1AD3BC93CEF7B7BF057E33EC9A3F953251261AA3D1A8347261E70A46F777
-3A84F3D4D1A0DF6DD22A96429349DE0D180310E17955B10FBF53220EF6483D03C650A8D5C16D63DA
-F65C21ADCD6C2D0B5D4ADEB2F5526AACF7CF42F9A8BF4832FB2D4F73F3D5FFD984B572232F87BD3E
-59133ED3D2FA19F7856AD812515C74F7D851574019C532C25F8E163E595FC9C83E3E820C3CBF690D
-A62578A980FC0803EB6DB9B1E90E3256BD4650816ABE5EA86CE65C2EB418D0ADDA5F3EA04E17AA8C
-4536CC471AC20236E66ECA3619F161DFEFA485386C30EBB86A7AD930FD0AADF2DA69DCAF26C0F677
-206E2030E3B15B3662C0AD03DBC1636EBFAD1F2F2C37F5FA9856B0198C5B1D80B69C5EFFD94CE071
-5135C649C26B9BA1266B0A5B270CD08A706166C0B320915C87B27DE21DEB5D7E4806F6E700B7A06A
-4E29B629CB40761983E9CA8E34E869ABD04DDA190BFE5A6EE8B22D7E511B84EA584A84211F27AF89
-18DC5AF8A1FF2D360B6BE3CA8E66BA4CD2CE6A25E7E89406684DA83FFBCCCCBFD0844FE3BECD7DE6
-7764C59C022DB1168D585FE25073FE00E30218D1DFE115CA1FC606AFCB04F2A082EF91788B6BD096
-84DEA31F20034A91AB9D971366F97B5009FEFBF1EF0AD941654081B1E8F0B2EA495069A1DDF11DC5
-6857D29533DC857958B49D1A0779732819FD22E437084BD9F3C4F2CDA4D12CA14431937AB63A03F9
-C040AF1D801F367ABDCA7302E18A9050D6026FBA5A5A7FAD44E31593173CDF277CD737D1CEF59FE9
-684252BC0DDD00A80E023B88222494C1C8C0884230AB11D1083225AFDCDBC1E24D4AD5FAB396D2E3
-70E44A7571B230660D510A5076D8E35F7DB72C0566DFC119EE1B8AC3C0406950A3C4A4DA36BDE297
-040A27F70753A87E6CD593DC6BE9962261A99AE5949340C5D45C94A9AA3DD636CE8B497BBB812345
-7C824F443A53B3EE595C38983FE3E07DBDC6ACD55CAE8BE1081AFD4857A5F52A3C925143507A3C37
-F1992CF72ED0D4C48D94AE6CADDC3BC87AC3A3EF035E02181F78449E4B063B0835E827644051551C
-1603E2EAB5875F28FC77BEBA6923428D5521C698C6B7F133B0F689F105FDBAC30A8ED2F29F0255DD
-F8A037B81F04EDF004CBE639C8DB0F94D0C5DB92D34D66C2FED66CF8B895AFC4E659D08388EA44EA
-E83CE459E5BE306750A682B627802990037157339BF142BCB9C08FAFDC3C3FB16DC3544F62C6C7E3
-3E20CC4FC7CA21E2C3F6C546CD78DEE348F1A4C8CB548EF20C049678916771D83ACC9B7B22784AD8
-580134471A3C79BC86B5D6D0D305C32E6204274351C94F9DF45D9B2AD5B5087A89F90D6AA033E4B1
-D1BED022F36147C7ABD2B73134DFFD50907258E610C3B20949E141172B1C6A76DB238C375021CBA6
-645CDC26B717428B5A9B4D3F32A4B1E22FEFF3BB93FD889E1DEF8087718D5E3E650FE4A3330DA9C3
-7E9EB499DF5A342D8BA4C0A033C3347CB25A31BE143ECBF91384F2381E323E7FD3A82A3197C18905
-3200AE2C86B9D01AB0B289841EA7E9E9A26966E0DEF54DE0B85D8DF084B8C590081E444BAF1E1F60
-670FA12AB97159318624F2AF1B5EC7DD83C1073A99398D2143A52D10A13C201FB356BC9E90C63BB0
-BC2D4C42AF4A8B9C8C4D58A1B32E0597C63B3F8B3E893BD3BE8C60231838F1BC78E73A6C8CDD5E7F
-2907F897FC8EE99BFFDA7338BCEFB5AEF950E5549ADFD207AEB15846B509FC57989883642498A381
-1B8E5CDE69C05924EFAEC232FA4CEF302EE3251366ECAEF57D25CFA3B4A9E6397D996F421C900BEB
-CF73B038FE7B16FD0A1172AC2F40D19CE0B02FCEB8BC47DA5344CB933C7FEC950184F78ACB32D3E5
-E290E84BE753B9E7A7BFC4416CCF29D023760C06CDDEF2505806A65E1508990529245059AFD301DB
-669D41BD72BF7A80A9DF66B876B3553FDF4DD38D15289AF7A1AFBC53FFFF135A6348DD784AB42A6C
-0D6AA330B069607E2DF3CBEFCE79D6F63E274C9E73A33EB85246D5EBB986BFA923DF68B2B8CF82AF
-6C33E785F35B25B1D1D614DE85A4F4510ADFE42D75B5FA5408A59ABE53859E28B3D000EB9C6A7D2F
-67C91DD14C895BA87B9CB57B851E5193FCC2A443AF85FE28DF6F39537F23A058BCF81DD8C04CB2C2
-5040300F4C55975E856DCB4E21E2B5481BDCC05601942FB25BB8A6B6F93E2C2A33CD478B44655657
-C557EBB080179EE5D98C5CEBE0B25BFDD952FFEB258014D7A5BC4BCA4F1A23BBA73C454B12960451
-CE1752401B0151CB2E01D5C72595095EAE91D8D3BD55A54A2AEA89239FA176FA7CD6F16BB0733EF6
-CE6E77763A23AAC77DA88C8EFA7BBB2991E472FF2075FB25A75ACFA70A04C28764F4AE4C12051B25
-B120CAD2E3044DA35C1F94135DBD69B10DE147321CBBDC814CE99982AC1D76CE3D3330E41AB31F3C
-76BF89B95EAB81AF3464C732D5B1411D97DB36C9063537F64756F205B16ED7058E2CB1D6946C00A1
-A0CDA9EBBE924BDA6C7D7B605C514A98133907B793C74CA858E82DA3519188CD974B34DAA74265DB
-5BC8550D5F0B1173ACEB87458BCE2AB1F96996C811699A0FE4A9B849D39023725E2B1EE7E426D30A
-6C5C75AE6BCEA6DB41E4EB2035F7F924E6B9F0DCD00EB2BB014222E55FE387FBF5B9B7C04F4688D5
-AE3529FDACB38B5EB0AF5C3A874C1AA6B17CDA8D1E22EEE05A3DA88449200D3D0D002DB86F6C51B3
-37C8E19F338E7BFA01E1202612D50E210140947D5F350E84F790286C3F679A5D7E43BCDC337265C2
-631527FD62D598B7CA1F5835C0441881B97F5197901ECDC4F195BC665A846823D2E41417373F8639
-567B228FE7B73D781F07A361AA49C3E9D80FE5B2A32C4C1E575D194E841967B08D10405FA44EEE28
-47DB9372C5CC931E50469532F1BAF577F680BAB4E30B7E1CFFA8574ABB679789F69A8A1BAC07B7C6
-4EF5CE5EB00E97B36FBEACA9BBA4A13B0293D34BDBC77AD1FF88E5744AF009823BC262511C4724DD
-585E7E17D90F230F7A5861B0DFC42F0B4E49A04EE0EE4DADB908479DEF8372F334C53D2BA5D855CB
-39DC7C9550F9D0F7F77E82D5A59FBBF34BFFE92DC9E6668B68FEEAA4F20053433D6749162BBAC5D0
-D428DCF2D58D49B127FA2E674EDC7D3613B1342F4D0ABD7F4C5B049FBF78E804D5F16505AE7EDCBF
-4D6FA08D72890F5D55199034572AB4B0C9A7E7F6F5A403198864ADF113CAFF5BF9D4AB5B16F81D0F
-C2188FC80875E10034D12E30C0364F8F72797F1AED525A2712A40D44210B813DF5A29C84E9F6D51B
-1D60A5F6F938FAABF878D29E6AB252D95D05FC1ADF5D4CE1C9E585219112112BC6CD5C766411FBD2
-2731794B5DE0A27AC57D3C57926807469C360372BE529098C350EFE2154B87F1205A57A0B04C5206
-CC4FA66B8793BBBE492CC3271FB4F90A28D0066E0D7F63B8DD01549A05AFA5482C29560ABD628568
-75CAC16100087540162473498C14087B29B86B7BFAD693E81765CEC781F3FC80E9C7B410E9B55B88
-114191A1703C638DFBB469ED1DD8254B1407003A319CE74AD419B077F17047A01F0BC0AC8507191B
-F72D77D9333C9DA8C9DA733EFB5305F49CB8C7BC451321ADD7D896395D269DCDFDD084EB3AA70338
-6C0697E962929651164135C094D9BB1C9B949D5EEBD3BB17F02C98C813CCBFB23C2C26218A2F4C63
-9A8B9DFF2C29406037F91938A5E1227310728428B56F48108CDEB33BD3191ECA89F947271983DB77
-6B2BC897A30EECF2601EE3B2A6F0E135397622AAC1F2DF523CE6E6BC720E13CB530CEF4AB9C8273B
-D3D81563AC8A8E6C44A195112DAF824BC7A72FCDC4E129A480717BEB01085DEE65EE4344D0B41EC0
-BCDF842566B1D9F5353B1F6A063FFA6CDB06EF634C8BD5A7A63F991D178F56EACA653DD67685CE49
-E98C7554745A4AC533217662D23E1D6937135D13BC2208EB8D50560A2BAAC319DFAE478B6BA4CA5E
-DA20222F0E9BDB0806320ED1665B54A347DE0C42E9F77842DE4D188E7E824EB2F0D7AD163F05480A
-7FA99C5A603BBC5DBC843774CA66E889B945054C0ED0B1A4BB14324EF901B023C208CB95DFCE9284
-89789690CC45BAB97BE449F8E2F5AA9276C0571303E9788C46E7F789555BFCDC3FA9ED8DA8AD9BA4
-8B3AE09404664391E63A989EF1E24BB464043AA099E4F2D796E352EB277106D8D81BAF2F8562EF46
-BCFD1E0047E8018CBD973021DC1C1D821AF03F083F0B088A62EBCF2BF6C5B0FCFA441AAD1625FDB8
-34F943DD47A5A42EB3E9A5B49641F797C288B799A64897F1346070461B6D535E0C4ED099199C387A
-3176AEDC7DA7E7D9E118E55565092A36F7C74ABF281720C0147F4E4F37D49436466C61FF12764E30
-43D8A6D027E70537164F0E7942F4ACA42BB2CB136177EF7197E76F49AB403F741C0EF902FEBC471A
-D6C627424320A8C3A1F04C310C511B3F91C3937D9ACF459999C18A33F2C852EC38CA806599C728C5
-43714018C65E2C5F430F6270AF52AD71ED38813B60440779455F9529A4A1623CB9F5422B9216F9CD
-BA913B9A1CD95DA225E254E8101216085020660509D03A034B5D7E32E3DB5E5962A9A27711D4C3E2
-9CD84057F7D0D7E8000947AFE896F8523253391D2E11FFFE523366B05C532D5629A90741EAB3D4A7
-31D3F6D4F03FF93233DDF88BB1913ABA22EB9AA6311E3144381DAE29BCC8639958EEE59ACCFA06F3
-5DCCC63E0609F542F3EE5DFB1CF718CA3F328455726F8F65E23ACD970E4049225998371B63E35AE9
-8DC54D8329B8DB0901FAA63129EDE21B158776981D4D094013C096E9CD020315D123C03DEBA21E97
-E4B584B4BC0AF25F5DCE53C2DC0F3E61F99BECAB40799478BE7F5AFD7F68E23EF50AD6645C967EE1
-1206B6E791769428ACDC370D64E4F2B3972E0E4F442297199350663D6E772FC6777A9B9DE215273D
-082CCE4E8678FE9948DC8D5B0E459CD02F1645AC5620F3571A40B4D5A17DF5CFF48B6C843DDEAB5E
-BF58FE13D7DA08E8AA7902119248B3B151DA583101CF80853B0150FE05BDEDBFB50A7FB0F65728C9
-3B9DF48CE8AF1DF1FAC25C1D58E1AD30274A00EB54CF2F16029E1AC0A0919C0655474B9A6936AEE0
-FB74BD185FE7D70BB84786997D34A40326A74356A4AFAEE67B6B26D1C1A7BCFF8697B55C816CCD77
-312C332A55315DC54F9BC0A0F12500E0A76B3936292A3DA2DDF5AA8CBB9B5DC32EDACC4827D684D2
-74E65B8B76FB2C2B19F7D5607523FA953E34BB39032C05B1C1244304606C55660D3CA8607E764EA5
-B03DB7FCAB5CF7788C6E60EC8C449BCAFD90BCABA4132B6CBCCFF16784FB59B36B77CF0A9EA572E4
-CA0A01C725A6CF2E4500CDDF5BACCB9094D48925434F044118CFDC2696AF5FC0CAB3884107ED17B9
-BDE0C0104B1292A1F8C99B06FC4A6360B24480BD59DF0488641899B0F42B1311B582717BA7ECFEE1
-4143654B5371C8B9B2D80685AD38D897AD1E64875C28C7020A84FBB3A3BBEE16617DCB9BC822B7C5
-9C5A18C0CF7E80163ADFB7AA03B7CDE8497C1697D90F2ED90F813095C5B91657FC294EF0E341DB33
-92ED860CB2E0AA09293D0F99AE9EB54C761CA2DB1E51E1CEAEAB276C7BD916C68510D72D9A67468B
-09B3C39A7815628FB126CDFD5EFF59CC8184C0D35A5B5960F824BD175495DD3EB12A4E96008CB13B
-8C5745303E66CF8608FF27C4709C1D854EB79608E52F068FEC0151A74C125EDEAEA555C198FC0802
-7BBBB802835E1D435077AE4B1CCDBF722354F6C572BEB1376D3E342195FA80AC9722EB2F46E44DE0
-5F5A227B731B8D4A4B6EDEF04AF2C5DEC2EEF8FF48C5B18710ADE3DBFA0C956505B6DA9CCB7CBB83
-4DB6CC754948855D833670FF0AC42A4773FEA8322BECEE04CA74AC2D66855132D11A51524488C547
-71B5B7A512796D7D7AE0F9C1FBC9CBDBA0831074F4D200349D0CA40537B92496692766F020AC43AC
-01DB8B2AA2EFA9D21732BE3A315F6CAA402BB2E61D40DDEBDE11276D90C2C601A935C168BE600464
-76ADED15087D54A14C68EECBBBB590927C1E10D291C9285334CB0C80EDBD392BDE4D535EB61F8E76
-41F58AC1DF5B1C5A5D91E3E27E05CAF7EC97ECF0C85B6425197AA856521ED701E5AEB82A7F52A8BD
-7DC97D5B3FB5C99A5DF84D1BAFF89072922509D76BC6EDB15CE5F9EB8F4154BEE1E82020240283BD
-C83A8E49AA9A2649B7955D5C058F2818A63BD0BFE7EACED4A49063C489A626277AE1246F721C9926
-E2A2B6C31045FBCD235F3CC58BC4DD6C57FE998EBD1E9FA5154652BE3A1685BCD2EFAA079A3293F7
-8142A6473822FAB627927EACCD61B3E99C3077103D2D19382BC7EE15BAD0FDE489602D055A01DBBC
-F91A566974559D1B477C209416887053169C3F8F59955BE4DE82B60558CC9AE15602A93F029F6B43
-29E0E62A03982DB32F5229714EFA1491A7B24AEFE18FEBC2C93DFE50B3F641B51BDD33DA38871BF5
-243C17502D00AEA2D9E9734E80A96788D4CF5BC12A42BC386162FC88A7435EE13200C1C2C6CCC5D2
-1A03941007B4C4291BDB711446CEAF27148104BB240357D5EDA0EA5A5CE27D4A83909D75BFC05D75
-F10AA74A6DE37D7DE15C1DDA3AC3045DA6CD48323D904E716B445E5E096FCB379353ED70CF4B6FAC
-102C762711079EFAF13FB74C9B47AF75F3F6BDA2A4647D2AB47ECAB64DA6CC01479F618E8D2D0A36
-45445E8744683CBBC560D47C98078B84206E90EB839B02D37C852B8E284463D4E4D890203C3D5B20
-352110034EAD6BD7F41456B807E1DB1631A9D499E52E9D9853D86728B1A2E511F40F8CA1E4724A0D
-17ECD640B52FF6C66E28693D89765FC391612E5889E77423EC85CBD0A038B6BA98B607701DC0C4B6
-6B3B28C7790A1F1EB8D051DC98276DD9CFEFAB3F65C1C928E48A060C992B392A43E56EAA6DED896D
-EBCE71F8245BE4687F2F1B8FC0F43ECE8DB0BD0AB0811C5CE73CBE336023A0D66168B34A95B4B0A7
-50B3BF1D197E3C042C7914FA731D7831AF798E9429571CBB977E6258244E84701E5FF91D608F98FC
-3D68A4EE5B81D5FF38B6C184F6118B875F022B4CE207DC7B37E1452DFDC591A3E506AE82C7E7BFF0
-011B0A3DBD616A993FBF878FB03B6C9F2055A2B095D29361F8253C2623653687FE0AB98078F6AEE5
-FC2C2BDE0405EABEDB3A33EB7F04CB6837176245F190C6BBBCD64522B12FE7F9CDCF201A1AA8A19A
-7BBC4AC064B4958F44AA0F8DDA23835AD28A1FD0EA105DE2F395385DCCFBE2261DC5A89A23AF606A
-3985E5038706B1FE0910400E16BF008F250F3BDE3AD806C735495D499F16F99275010478FD2127BF
-7CEDD6B5BD505FBE9BD0065B4A7090C9D27CD5B36C3AD33E1B31EB6D44E375003B51B909DA50BD18
-218418B3CD22B43278B144BE78406EAF16C7DF6B6C1C6238004AAB73736B38E168441DC16F9A5CF6
-0793A18633BC43D78674D12D38CC979F7CAADA6EFE807CEA499CB9FE616496682A66E04BBDACE1DC
-112B2156B9B0B20A58A8CB43FF0EEDB99805234B9A5789762AC7D65F5A319C33F4F7438CD15E06BB
-80A7A97E976E8CEC23F4C646A5821880A82B2F1DC27767F090997E91488BFA15064B702F864FCE65
-05D6CEF87D2A0A12B55BA189AF269811E3B8B850C8401F3906C080D32618D9698A766732A40A9FC5
-A94E5BDDA3D028D823D6B603B6D17DD046DE181FD989EA0F80B4CA62F7973E4DF5E032A31FE6BC8F
-5CDA678D4A72787EB8253EA5882C337CDF9AA3E1E7D9536DD09B047CD8962E773F72F6418A3AEF5A
-289B3406C152A50CE7BD4B493FFFC27F6AA52F79EA67E362FD92559AA4F94A2F787F6C735DFADCF2
-F08AAF98B80C53CA5607A94F25F04AA65A70A75937840E73055B3D65FB054C63E2E48E68488C9315
-A13EE949E03E46723C11CC759D222CBFAD2E1A87CAD779B23D38F7E2F660DE1388EAF1CF4D18994D
-75C6CC63F187FDB949940C18B537A0AFB12AC5F67B0283CA5EFE2E764C4369104B9D3B06490D1244
-C41D6085C85F1106082EC9DB84586230511C05C82412D2CDF3DAFBF4759A775628878F997415296B
-C416AC8352A6C6988691FCB831CF95C10BAE691ADB3BA2918B35924BD5C3ACAD8B137397B10AF82B
-479800FE16D472CD0CDBDAAB4F882A0649CF561004B8CB7CA32EC129D0A415BE6CB91DA2B65F44E8
-0D138808A127E851A7FCF927E99DAA0EA2D626B77A16C72E37F058A3B882FC4955DC8CB6312434BD
-3BCED75780B13590BF4FE8D64ACF0371F9FB1D361B05025852AAB9EDA1A0C997CFA58052C454FD45
-1E6C1F194F4D363114E312F6DC35BBAF357A32CD200A3DD9654155134259887D677ACC44F89AA401
-CA27282DF7DC3F2F04A108CBEF2558DCCE28BAC2D87B8D5B7181EA927F61977764F882626D4AB338
-D95C9477C54E9C36012A3CFFBE199EC8120A99D2D70A21F9D9A0354E4EAC7947990E8A6E0601796A
-AF6F14E758CABCABDFBD8204A8E748A3E5FEBA570D36E2BF474C0083229A63F96114182321B2EBE1
-BC76DD193724C4588C1D39D184C332FAEAF4C629F2B3B2F49996E46AA6C9F497428BEA52D58876B0
-DC07B460248BC85CC16773A5DAC36CDE8B152D96057F4EFAAF8B1DC10022038577368057699B3A37
-178A9F1F6C6CC60BAE820B7ADD0717911BD23A6DCDADAFA32473491AA80CFE90F2A77E24CE2826FF
-77B18B869C33FA292FE01D6477765044C7D14A548B28B1360125C6933F05C58B0889390537CDD16F
-8E967E0B38579449DFC1E07389B7069AA8594C5103465D5041CC929268DE863FADB6925B350AA94A
-27D421FB7FCC81C6B35F906F12246B7A5140511A97211BA9BD6831A508E963FE8BE961332F557808
-488F06EAD75E86D60DE3FA2425AE8439ECB9112BC3E4D73747C1C8E87A649919827049832DB0BF6D
-A8C85C9A2592AC002809070900ECAD52A56F1BFD456AFE066509694EAC075788456B0B0BDD7C192D
-321E9FB6AADCAEF00F570F22CD4A5322FBCE8FA98FAEB681940895426270BB4319C11DA67D88552A
-7373398AEC5DA7C9CAA9F3B34581C6E968DAAAB2751CC012199DD897B448986CFFBAE4D412BF9ECB
-F46742715A9569932516259D3B3A5431CD7028E42FC751C434E2B714C718202BF02CAF9B8A2075DE
-922322EA7CFA605C8376FA958B8FBE43031E1026FBE6126A3775F643EA67EBBD97F239FB3C435526
-75CD08B19CA5EBF53B40D728556B4481C7F73EC71CAB0F89E34D60C69B272FADC22E8E7BDC6210DB
-09FDD913E209F49FD28E8712B8508904620250746CA3B21B026EDAE60A2822F59E912E626B93E0D2
-BFB3230DFD0E54E91A1DBA25A609B64D41ABD897A5D21764C351E85F9E87BEAB9E645149AD32AEEB
-B3B1161032C701647115F98C1C2AAECE871862D91D321AB90F3E923B1FDEE00D927F897AA9812373
-6536E2E0700F10053D7E6C589BF66029D794883EAE4C8228941CE96565B50D48887B5314A2E55379
-59638222A6CA54C77CBABD460DAC11B063519AE4F50D93DE41763BA7CFBF4C7724360E750478EB62
-8921DAA065858341958E4F3EB5966C6DD77C05EEECDF4B5F6CF19AB507589B4219377959BD258EC9
-21C34FE1DB003F7D0FEA3E2FD6F5DDB0A2D62CA5A2CD3C7AB457DFF25094EFE04A9E1B9CE7AE3F30
-026B1CB039228D309A22899F6E9B9BFF922E117123347967D7C62C670E2C74579C35989925603022
-C17B1DCE378031ABC9B4B437C7B6E64620932E93189754C01D4B280B8B08699B2CA953AE4823BB9E
-E34133C5C95B3290E1BF010705AD852C72BE87291E1034B09F44A95B6A2F83FEE8841DCF661770AF
-44D0AC7F9CDB280939FC5D953D525E0B41B7BE188D5C794687330CD770D24D9CD53B895A253004E1
-8A31BE4E82B384
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndResource
-%%BeginResource: font NimbusMonL-Regu
-%!PS-AdobeFont-1.0: NimbusMonL-Regu 1.05
-%%CreationDate: Wed Dec 22 1999
-% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-% (URW)++,Copyright 1999 by (URW)++ Design & Development
-% See the file PUBLIC (Aladdin Free Public License) for license conditions.
-% As a special exception, permission is granted to include this font
-% program in a Postscript or PDF file that consists of a document that
-% contains text to be displayed or printed using this font, regardless
-% of the conditions or license applying to the document itself.
-12 dict begin
-/FontInfo 10 dict dup begin
-/version (1.05) readonly def
-/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file PUBLIC (Aladdin Free Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
-/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
-/FullName (Nimbus Mono L Regular) readonly def
-/FamilyName (Nimbus Mono L) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0.0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/FontName /NimbusMonL-Regu def
-/PaintType 0 def
-/WMode 0 def
-/FontBBox {-12 -237 650 811} readonly def
-/FontType 1 def
-/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
-/Encoding StandardEncoding def
-/UniqueID 5020945 def
-currentdict end
-currentfile eexec
-E98D09D760A3C22CF119F9DC699A22C35B5B35ED6AA23593C76D54CABB5E942BF7D6DD84F1664B89
-699C74B472DE9F8E6DF925F6C4F204E9F1C639B4DBA988ED2AC419FF2B2BDE605B8EE3264EDD6641
-2D4F21C64AC522BDFC7C5502F9C3F3E5592B3B2093D33C9BFAEDD2D49E89AABAA832E23F062E91A2
-5032519D1868816E44B4E0747795003D7930299D6E1E2A5BFE0D595DC97E140989CE81D8D7F852FF
-9CDC7A1B1B598C69131DEE005B415805A16D8A123E6A2261C63C769D2F4B60FA2C438AD7D199D8E4
-5F7E7C9A605C8CA14E21FCD81C9A515FB8DB6F99604534D06EA9D87FE0FAA852899C9D0595C7A97E
-6C55F79FAC45CD38E87B10D210CE7501E88C8FCD3444354365FB893A12F596AE2C1E70D5819EE0D0
-87D10BF8DA96F3DABD5405D28C4228C6C31BA4052464859640933FEEFD8071C0C84CDD829A9B1D0B
-A01F25A4D50EE2EA2B45160CA6333B2D2800306ED2BEFDFE155E9D9F9342EB8D5B0ADBF2460CCC98
-643FB1287CCD28ABA7B5CAB92EC39EE2E918990372B16F8487EBA30EAE88708B6CF33B6C015D8096
-C7CFE2F139F52052E3925C0D50FD64CE68236D59CB83EF56BFC584150EC38065059F3308AD6F9A99
-F83EF4E6CB13855C8175E31417D190D036B387D3952344A950F4D8C7781B307A094DF1ECAEE4D2C2
-FD747BC6F7F9C6BD0E90C19294F96C8C5CFE88FB34C477574A1B1630B8CC591529E59B20794DA32E
-61DECDA8ABBD1AE956CF74012AA01D42EE01E861B0AA6897C864788AE59DEF43C493246FDB1ACA55
-4C12594BC7B33657A9ECC9E3D1472EF826073F632BE540C35FF6FB40566773F3BB2204D3A579A08C
-CBC844C14B18C350F003B9DA23A570C362D6003893CA32F86F59B829C78EE3188B6E3F7FA81D7F62
-2825C639638DFB78B7AF1F500F5B450FA54DBFA5CBA277C794ECE93275A3DE0B452FDC8DDC2993BA
-A42F28A636008CDCB03EBF71BDCAF35019778993443F88412AD2AD0D7155A3944606463266322DBC
-0244B07DA1E9C27A27B59664E8566D7A54CC03E995AAD008B0A17E2C3EF61F720CE7F7788599C4E4
-4C709CD5C31B11107F16AD70B17B9AFE2E8CD922A7428DAC171427FFAF51067307FAB0ADB530E701
-FD22DA22C4CD3064067BD4F6089C4B2C87937DD426E4E9D2F60E608288BAC9056554D04947E69200
-61E379CF5E81BFD32FD37EFAC1F61CEBEE551B0851516471A7472C60DF89DAA9EB1DC5A67E479745
-3E69B9E22BAF4E3CCA4192D603295B018C4AB69D18DE52DFDF15E96B557F290A4B8C5B1E7A6CACA8
-1F2351B97ADFC36995ABA43803A6E5AC04A3C93495F6D38106B8B144449C07D1358210F9176E1565
-72363CFBDE576BFDF99FA329DD1346E83F79E06CF68250CA57A68931BC7F342AD295D0CBA17AA95B
-B8EEB53EA6E8E660B814E9F857CECB14F44A43288B69A9E7908D55BF19E844359879D28CAEF1C38A
-36420185D20DFB32C2E002202800E8EF3D67C5D50E919657CA958B538D537D503444865331D79BFC
-40312068D72364503BD0CC84B5F30A74D8B5B6A26AF2DB764564FB65A6BA8F9051AE2B4EA458D46A
-4569F30C6E77DC097356770362E6CF3F1661074778EBB44FF7D1E3B64FF75E77E11FE525BB121C65
-46CFD13300CA1F02D571B82A5825E6226D14FDCF27F06D87452A8B6C5DCA658535CEE2A795E58137
-D48E566B69D53A0C3B766E84C51EAA221C46999CC8065ADB2F129D5B630FAB1814C0C33B5AEA0EFB
-B6E994D80941B53079AF96D90A0B924F9B0E319BED9836B8F9053F868363D3CA554CBB181863301F
-8CB940872ED5FA7BD18CE39218B5AD8AC57D0F752D941076B1C64D99BE0DB86D7A6D96510D772EB2
-4C587F11779BD21CFE5BDE1F29C1EF9022B2B8BCD7F91153C845906722477829C40111D810480F3C
-F62DE8DBA7FD86CD236E656618CAF6FC46827FBC4898EA7672F8C9971AFE43E0E01EC8B77D4AF48C
-BF1210E98C1DB15C16D149BFF58AB0270CF015B107A3A50F5DC8F37FFB92EEC8CB6778DDB7CE4AAB
-C464C4AFF654223006A550EB52485A23D2B4AA7198D3CD54418102F1E9A4FBDE37B841E56F5C2C53
-966DB9B66B000E4588282E3FB80C2C519339F0002D2F83C979EDC5827A3B3C8EF8810A0F9DACB6B9
-998E9AF6551F56313DC4011904CB979AA2D32B11A811BC248141E4B9734D9FB7982A5671002D8279
-CAB93ABE057474628DEFC95D43890DB1ED34CFA8A20BDC3D874E7679A396158E522ED0AB969A4E3E
-C7E4474E192590504D54DEB7B260B7935C4E56548A7D121AC1F741F8CDF259EA1B5813175A77A1D2
-D30BA26F65EB765A04C09ED51F69F41551ADF399E6AA2FC09788137BEA4913F17B8EB838C38FB272
-1FDCB55FD65697FF0B850E7D3D1CE266BF90F7EC06A9A0876BDFE767D3A918B092FC78C775F945CF
-1F96E859C03DBF630D9A940939654C3549D8F7921CB94EE23D5A0535DE9DF31EA0F937F860B4F220
-A99ADDFC343D7CF7BFA0B803C12C26403F0DCFFC8EA786D0D8A8D9C367419CA8AE41190CE93A8086
-583A1E6C9D70B612C84D87D2EEAA71EC2DC12F4CDE6A821303D5F6A9BBDB7EEDCD289E80FA3B75F4
-7F481B50719DCF4A142069393593B9AF9CCEEAEC56A35B8787193D7C88113E9E1E221D151E093B01
-9EF89F6118BEC4735103CC8003CC5AD1B6727B3226CD44C497DA7052DD681695DBEC3397F9598C91
-77701C73BF0594CE93F23D50EC5BEE2FB9DA1FC966DF148B27B28EE3C89526DD6625E2887F9FA076
-7C127C609EE315626BC14D274FBEA56528DC06A27B2D476D46E9E7916590B156A5DF04A6CB15E362
-45D77021767B6E5BDFCC679670263FD891446C3371B11BB6E1DF60F960AAB4149D7753E6A5C33810
-C42C8BFF4E935003388506F8278BD7CB672F132E065AE684DCA0B9064D01DD620E7FFDFE04F14277
-EFE8E60159BA0FCA3FE2F28B902D4AC275D19F0AC6971EBE827C4A232D87650D2688345BCA78F879
-077114F0463C5F058107B669566F8171E4E284D278405580F04BFFC9902784216E0C9A17AA9B2935
-E66E18A783F723BE044389B7E9D62AA36818FF2EA406C3C1A9D2F3436F3EE7DB8BE86AFA8DAA6A4B
-1B84611350D8D27605509612B515E16AA843164D5D0805E36A2B9EF74C5F6A0B9D59A04B55697123
-27F4B1B30E9587CD103337639967CBDC655AA46E80D2CFD24BEB50815B5338E522B3A7AFE8362AB4
-F05D8BC52BBA9C5089ADA8C89529B0275AF422EB540D31A938B8740860756325B966B36817115213
-FAAF92DE63F6BAE1E0064BFBC5588098B61EB83C71F1C2082436D37DAF1ACBE186FEDC4BE7C1233B
-6F18BEC5F99002D21CB7864E4811F7AB3C03003E1E4490AD1AC793BD28FCD5EF0E6CC30EF39A08C5
-2F71939B0CEF620DC69E31E39D6DB969049031B0C92EF2DB653D97F370141456A52985076B268652
-FA2648C792780BAD637C4D7581FB2D62011D57E293719487CF2D1F013CFAA532E1C2D39178D51272
-A6AF041440BCA174B5CC902BD7390C7D3695056CB4BD7791F9FB6D88E7A70DEF2C97869F5DBC5BD8
-23C517C7B7C39D624DF627DC9653EA5347BFDA80B723F05F6DBB4C9EA501D862ACE05B9DBDF21B70
-56FBCD8C6D4B85873DCEE6166C8B5ADC0316CA12D9639F361B15A42F00E1D62EDBCA1111972FA0F4
-5758BECB31DB38316F3CDFE1B41748C93ED58B67E9B57ABBED5924A6D53E99FBC9A994A6489A8BDF
-13EB685548B4DC6D62DA7426C22227D4D43B6FFC7B5EA91C896730253E8941AFEE588359C2BECF6F
-FC415B9EB6D31CCB0F6C7F85853E6449FA6D627A97A3CE8303F148393ADCCCDFA2FE085C6908BE5C
-3C05AF00A6F02840206C3253A559AC5C049BDDFD11AD9B118403B84DA10AE3C470CB9A9A2D1D7B73
-2F59F5FE146DEDA60AE750F551AAC934621B4470E1BC324C436303E25F81D0DC3188BE0D6FEC5414
-C20E4CB18952E12CB6423DF7124627ACDE145500D77A97A8BFD9CB50D1FAA008E2CE2B2505A4749F
-1EBBB092C347023714055A9B63353AF9E7FEE05BB54C9843698101F79888A91531773830C2C967B5
-88D3ACD2192883D5CE3962D51084FC653EAE2C5FB2DA41DACEFB5C76812D2EDB5B109677289CD199
-8D457FB1023A19AC67295BBC1A9A20A426B06A368DF3C5DD083CB1180D287F5500F2C635EDE157EE
-FCEEC5503447382D15C748C1E35F68753992E5C90F900DE54D18F8E1B355D1076ADFB1F3590135FA
-D1A36F028E44F48ABB149B80CA9A54614D467F8D71CB310BBC7AC7100261092DB8C5BFD39E0AC6BC
-2C9D6CBC3A8C05FF8A74CB21608EC4A4CFE4CBAA2D056DBA14206106044DECF59F957EF8A9CADE4C
-9B19D8D30DD4FDE6A9548E50DB51ACA73330142153FC36B69C1C8D5B26D0C689B7040E81AC2C864F
-D7C097C99BE5953843E172C97AB5684F35FB03A725A89DBF371F08DDF40A1531FC1B676DB0E1543A
-EC6E97D3D2E4AA3D5831D8B3C952ABBFA112352814FB6FAB61A0D680E6640F6AEC8426200CF61286
-F7422CB2F78C61EBAA36D47EC16D7FAF8B4AF31D090CDFA255D9D7C61D46CFB22A7D6E1758E71ED5
-67E00CBD8E8F468DDFB477F091A2F915627F22FF47B876544BC1F03B6BBB98385F009C20BB1AA2A7
-A78674692B8EAC2E3C8069B79E679338DA57F72976810F845BEB6B9ADD32B95D78E5E60F16DD1668
-9C05FD82D36A3115BE8ED494A74DD211D58A2CDF983FCB9CDC29BF7F0E29988FA23560EDF514BC1D
-183F3B2A22C09FB179B47E05ADEF48DF02F31C29875D1915037B19407764A4292FE44E741651A8E3
-BEB5F0D972B6327090F664417C84F84FFBF0AFFF8B1D85C822D90730AB4140C42A51AA8B1DBE4398
-4EA8566040EB8B341CCE23FD3F69DD235A080BA5C69AECB9BC732BC2D7D40617DDA6B79FB6EE40C3
-556C7DF9B23DAD89E94054B1345DB8402AE679FC4655A4A776C0150463F8DB2BFC0608EA1F124E22
-1DDAE6026B5E5D007A7E4A0D6B3B0CF3A2669E67C5E4F01551966A7BC48F2F4B6A87E740D8095E63
-F77C7A027F26B52F2299DE5B8A2F6209BCF3D31CB0235F998F781E5CC81E31DC424E008D46EC0920
-2951E5684804A0592EA47D6C788A20487BEA2EC8F2E6C1D7F378B62DB43CA43C4B366F8B4319631C
-FE9854F0E10321CFA3B01C873584863BBEFC23C72C05E695B56E8A52E89AA2DAB543834D34DCAC5F
-ED08DC51825C5257AE59850D101D84F4CAA1D29FC932F9E0EFFBF7A9A7F3685F61F0490CD3CC8988
-2DB52A757A6AF4C4E67B407BD2316B1C0FFE7DC54E43C87B874F57E4903334E2140B011484863CDC
-ACA331175F2CF3D72E0042855983AAF8853D3015E870FF0807014C31D55060DF3FE1FCE157324481
-2744AB51322444632F9AFDA6706E320FFE82B8CBE242A19DF00CE73EE48E25FF49D5871BD3E60652
-298FE3E8D400609E232E0DDC794C0579ACEF89E841B2EDCA50D51151F65E8C1CC3B01EF1870558F0
-BF5743718C3E068617E81BFE120C6CA16E0924BFC2541177D53671CAA3AB641C41557DCDAE1A3461
-47B5E999C4541B08B4AFCBC187AFD653D5B5F8386DF6AD8FE69E21BD0567DF494F736C6A184FA4DE
-48DC9F347787CA96E2E00A296C2DA05C2AD9BC423E9CA428D7F1FA12DC9353A302FB8C529AF8688C
-BB543B45B2717EBF8F6C497935F4F3BFFD285E0402AB7544B3CA4643AE5A8B5250ED987A95FC1F27
-5B9707ACD0641BD0EE2AE9758494F8D8A51DCE408A38AC20EAF0852D72D84D0C6BE973326793AEB9
-55EAC6FE0A2813A355DCD22F6F2CE56588D1C055CDDFA98878BCEB6A018DB22922D2B600A20F8184
-2E665DF41013CA0947C4237C2BD60A75E2FD1A3FB8C8FA19485730B87461AD466ACB02DF8CA24091
-4FB090B3D2B41EB6B8FF05E1A59D9FD668AF70BA5BB72778953BA55FC5F9F626043450E1D09BC83D
-8605098ABEF884639A37809A32565CBEFB3FF39EE53D6C18C58C272BB928E4410E361E59A50F242D
-69747A032617C52DEBBF62364AB5A96EFAF642D9D82BA679B1D70FAC10A4EB62FA5CFC308E86368A
-AAD7E75948F43598CD1C544A0D4091374D7E88D4522CBE902391641327E888E7748FA889DCE67ADE
-61699E7D77763681CAEE9B1CA8837B2F7EF9C18CBCC538C465C8E2DD34616953CCB6030A222C728B
-834911C1A179E2C770289407AB28B303E724D97F747D6134B425216A64C6E0B60F633E2B85300047
-E4C90339CE030A0FAE31E830C8ABA5AB3386A3B69267351A7BFDD66356AE5E57FB2994452993E90D
-E7C4E260ABAB93C37831856A650D56E44172FECA01D6C7C380F250B82473960D2A2A5FB6B4DA668F
-46E624ACF7FA0FD4490F485D640A3ADFC9F8652E7A38CE5799F770C3606DB4B8B947F93967F779E3
-A3C0572F13A5A187D31D7BD12A5C7BE23CB6ED6192086241B76C5BA6983DB9C93E4B208D707D3760
-F03CD6272EF3A4CE89B8E52E6AC5871A3D03EB975759AB4BE239E5EC7842CBB333E692CC607C722E
-185D3C39164DD320C6945629C70FF66A5237C0A9520A1FAD6EB9816069351AB0F135D90CC0982B14
-7D2294AE4A38A527EE40BE9CDE2512AAEBB590E134388BB171D0956A7C4566D65A9A041BE6C4F883
-6B3EC3D2ED1B48B566A783292B15B6127920D247D494F070BB20BEFF60640B11B276DDEEE49706E8
-B2B21BB40B7F00AAFC594C492C25DCA774E0B80D82E927448DE2E74A9D0DC7AC9260096EAF187B6C
-D6AEAA6D1DC4205B4411122751A5B22688404EA7C5861730371FFAC10F5AFD4727A0E402AB5EA757
-606B75EB86A05E8F774D6E430A1A3FE2A37EBB06700474239FB1CFA05EE44B91B82244C575B52E7F
-AF934B04EEB0D933FEB57EBE326D75821C8B23EAA85B583AED4320B7F04B9F2DC591091216FDE52E
-064BAAA9C2C9D9714B95A4558C21F3CEBE624B5403B31508F178581AF6863083ED762F1E2E34A45C
-FDD71660D626FF8648F5D6C5E580D4765A67FB6159EC8077A9F0A88038C8D3D7C77FF0926E2123BE
-874F7BCAF129D55A5B5960F824BD1728ABCFCC51D23936DE9A25C408D786E44C3A2BAFA4423177AD
-060D21D38E15E23EB6FFC0B4120E814695D423EEFC2744A1FC81B4DF89D76F0A6803D8B14E75538C
-AAD03A72517B86514F6952F6FD619D9E910D980F00964DB325318C045BDF79647F453D4A5CF4E61D
-D5359782827229310405FBCF6107C3AD9DDEF9A9A339D5D5A6EB2E7838A0A43221BD62CBDF732DB0
-A638A52016FB35BA7761AEC846A023D3BF2D1BB183543E81EB7CAC1E5970CDC6F068C5EA118C7AAE
-528D1396E6DC939112DA4460C890EAD5C01BDC438F5BB734218BA6270ADD0DC1778FD8AB16831D6A
-302B814A1A44B07EDC65956C9E6CF4875DF521F3CE5B422F71081B6D69BD270F739095C9E81C0377
-934A8BC6390C420C4E4CDD9CF7E32544C68D884E15ACA3BCC07FC8C132D8FB9D752C15D75C52C288
-57E2EA461A6FCAD90C56843513F74461F18D7164BC597A28AE4BA7C86EE1703535A9B9ED50122627
-71FC12F102E800E0E1AF7BB46681BD2B14B614CEA91B7B2AAA35235DE76C0E113C92688F8EC81277
-D58C3406778E1EC1CC15F1CD9A137C8FFDAAB99ACE3BFC782916F1A877170589A92DC921E6740A22
-B84DC6BACDABCC76E64C79E3A588D80F8F4D376E1B426F15751CF7391102102F0AFAFD8B22DFDEB5
-48AEB5F30B1673023D22054A13391A0EC08DE6E7B685A0D031AABF20B7C62187C0284892D5EAADF1
-21BA28263EB863D5E36EA9C06A77CCFC0E17F593961591F84D82AF823EFE41044C8D606FEF83CCC7
-B0E961E7994DF8A3CC36B209D953E250ADAB8D22D7F2B4E2C9CA39EFA2D93E56195C1560E30A5190
-CC5B17FAEFCF250DF79F6B624A4B917E11C332222FCCFEC4F6A47BD9E75DA9854FC3F7AE554E91ED
-DE144D7AEF38A0E3EDB5E5A5626374DB94F022C8CF549093041DE00D7269B7CE544E748439BA2870
-718C08E58FB4A77D93EBC04B7957D272AE1601D41BF85A2BADAA0DF73B0D3841D4839C85677FB2E1
-5F1D6CE592669FF4BBC9C69DBA334DC37706F2F6BE83D5863E8CD6A30C08640AAC4C233684E66B4F
-E6B62D4A8BE9D531E47BEF5640D9B5C27D990092BE1597F6995C8A77BE9C18AAE6C1CF130775DDAC
-41D34438FC7AD8E042CB56CBF2944932EBA7D053E9376FF398367450E35A1945FE23E05C921096A1
-5454721FFD0F429A3E06DC3ED36F1C170BE79C66996EF8337AFF85B90C5D3A4A94455AE9FA32E211
-7A63E59001F052D5F6223125BFAFA40901E98960ADF7BB886729DCA82FC3B8CC52B37FF2517299E1
-D769057F8154FB95582F02CB0BECC873A9C71796ADBD3E91324FAA94F2C41CF57C30B5897D031C02
-D256C909E080E70BFD1F32E69EF67031138C2DDCD1A8E4B65E485C23C3E450ABDD9815512D6F34A8
-4B9DB715DB2C7A93BFB424316E1AA44397749CB01088428F149A3B4324737ED9957FD388248462AC
-1B2610D72BF5C073ECA567E7385CC959E37CAC7E05470160FFA5A9F63B8E9B082937E911586EA165
-374938F492EDF28CE6020953A5B5CCEC7737F9D9CC8538C4339567AAED3794ABA3B9F4EAE65466E8
-E326F6C399B36355935FBDCB9972F10B13494DC25097FCEC5A6398F275C8C151558E74C5175F7BAF
-4155E36B733F75CF9D5C5979B0764F14D8306E06BA24BF791141E404C69F3F8FCCD91B9C58C2C671
-AAE7D4F9E5D6414E46ED633A5F78AA5BF04E652246A066EAD9E582B181CC196EA2D3CFAA383B5D0E
-4CAC9336E119C08CC6AC55CBFBAE147C623B400453BBF447E96DE036FC025624384359EED7C7D5F7
-858DC0521377CF647A157FC3F188DE5EEF094DBA125510FDE34C570D7BE76AB5DF0A28BF45DDAADB
-EA7EEEDB936332DFE93081E0AFD3FDD46BED08D6914B2EFCFDC41662A33B90B03D76D34F48D30FC6
-BBBB600E90E6AC7243FDF026762A44B4D6E4ECBEF48C9D7B696AF29EEE063E557D8FCF0F09E0136F
-45D17E608DA36E59F2AECF8493F8D62536119B5F7E1554DFE3F6E8D7C9A2C6F557D18B4AF92C9F6E
-050975C3B5C54F9B5F4E39D600B6FA2CD6DE203A174028CBB2A201AF126D1013C229BB82CFD013ED
-199D01E51EE2780FE896E01C63C655087A3E61A7F1029FA5E97EA1872F1B45F22282DDC317E17926
-7368CB52DA9444F6055A3C653659CAD2A1D8712BC2B1B32C1DC6906D957FB88524EE066156ED6BDE
-B8D832F9338F9912E29A250A8C4674E667C1C278B677AEC9972BE83CBA3FB779893FCB8F81A323AC
-91474BA2A2334A07BB5628E905C518E634F6761A3289056F83D5DD7B3890987EEE1C18FB2D379CC1
-905F1AEB3B3D2AD578F0D6C845D2D40C4BCEE3F71C90E68E5417BB8CDDD878D83BA80AD8485F4067
-E5C3CABF28AB56CBB219C0AAB8FFC6C7E192BEC8CBCA1459AE4450AFCC81B9548F40CE2622E5A7C2
-81F74DCC02DAD57EFD92D072318DDF05BF42F1EA8163071E23949B0179CF7DE64677CA99B23CB926
-B3E294194EC13397EA1DC9A5E1CDCD828156CD71F81B64167D4FB01E6002713BD8AC6F82B20CD369
-9C6CA4704DC5C65A2D66EB155B7AF1C9BB46469416FB49C1C7E17A30A5F045271D7DF3FFF2F42C6B
-470701C381E3456A500C6BB3D0E47B4D91C5F34B49BB6272F1F8698B307D89EDA3A1565DAD1C0864
-627560CF922DCF5B34C67860352390B282F95394AA2CDE0E97CE3ED39546A6AF1C52BFCF81A29BE8
-2C47C99E8050E4889E4575B75F39E662F2DB7420673797E2ED3D67CDA7AE2C15D0A0A794D57D168E
-BE13214E89E0209AB2C0EB7784E9491AEFA3C02D0DF3AE5365A0FC4AE023CAB528162C7A1B173664
-9DFADDACA8DA5FA18B7D6489E4229E9E24D38A620464A744A5C60F6F9D334B908706B738AED18669
-8A8B278341FA4D65A0A88680BA484694921512F7DE93337FC1C02BBE6E64AF2DAD07603279D87329
-1D1F4D39C1DD6D89C90F65240F4808F6F1115CA55B88E242565E59F3BBF1F10EC7B88872E9AE61D4
-4CAE185463EDFAF7DF63DE4D2207D307AFB61501892965170D2945846FCF5973A1D458607F50C15E
-06E5BEC715E0C156259AAA6C735593E5564F65F443B78CC7512EC35A56F126DF9D30974A40872E42
-65E1AE5FD483CFCBBBA26DEE426CDC4721F19C3FDA86ED7AD4FA1120F63669BEFE7002B128CEAFD8
-C63E8AC09943B6CBDFB3D2476A026C00A8FF81B1F651B97F310C82ABA5F388CC1DB5AFCFF5996D52
-52A6A42FA4D972E41EE56088F78CB966F9051171C472C774879AECFFF08BFD9CEA40D7C298922ACE
-64F28C14E0B81F4DCADE81D71DE3983D87D905192EF13CEE71B2D3FF1A88AEC671EC318917DF98A3
-C9054E372D22A3CEC82FCC217F47319A40900312F6E32B536B9E7A7FA0837EC65CCDB5FB0D414371
-17596CB39D9382262DE6E65379D3A9709B2CFBABF5FC5D5B352425F06F88CD31012A2A4147B112F0
-C1C0ACCC808CD625E0228EEF66661F70AF96D3DCFECD402700E4F6522AC9A856DA466D55C84F65BE
-2810A1565163872D62EB81333A698ED7B68352CACCA2D7AD38AB55C19E4F5582F75818302F5FDADF
-1DCED09D94872F2D48FB636C8E38C7563C72C771A08C6B1F041F3532BDB39006C89A33C09BE1E3E6
-03622D891F98010BF1DE5355F557A1E09448D486ADEF565705277B31B8BF2B86761E32631E3435B6
-88B79D566F1747BA456DDB43CD239FB47FF7B425EAA4C657C8EEC26EE01AED07CF916E77D53634C1
-37AEEA009C6B515B6342C54BE2C7B95955B1A9DA277A0ABCDA2346E88018C726F481F71D6011AA42
-F8852F2E5749518FE3B3AB668213FE1A05C10A1C53953D75312631D6BBBA01D418199DFEFF8CF548
-6109B099FE8E2F606165FE30F532C03567785D5362AA873C9D3EECEB20F1945D55F49B0CCAC84967
-59FCC7292E46938943C262D78F3212D3F9D0F7B103157F423D71B1ED54B2A603F4C269029918F238
-EC6828FFCEC66009DB9C9E59534EABB183F31D7AD4C57B1BDF0BD2CE5A421882BC10CC1BCE6A970E
-2B586BB221567CCA483989DD0B8DEC424C1D1FF042DCB7834423CF244EDA28D2D969B17440CAEAF0
-24A6119DB010CE366821AFA424D1B8299609C04148275AE6E5257A7ACB3C766C747CE99CBA2D703C
-F19B7CF301B634D8B613DDC4AFE4633A4D77BFF8E00CFB5E289EBBCAC90A24307E7941EC1685CBAE
-400CADD876FCEF7F6557EEE167D2035A05120293527700DC510B038A496BE1D5CBAEF24ED39F7421
-1A93AADF22214ED606A80582485AFE358E3A46D0671148998A3B3BE209467009B43400870359D418
-9A8CEB4D5866AB52D16D9CEB1EAB71C07E6CAA34B70E3096BF7604C22C40D5FBFEEA616DA3BABD59
-DCDB97D883FC8742B8267A16A99B7953225F7144568D566E64542C92E538AC140C851E5D295528EB
-7CBB49909B1CAF6409C9BCCEB325468FA0B5F7CB2987382616B477CCFE4F4AC79E4A6F7165363543
-F04DE5B6F6E1C2E910CDC3CDD6C4C92737198F892337DCB6647BD226C820AC99C65D8E7772BBB74F
-E65DCAA8A22C33BC168BF48E40A82700A3A7668C5A9A71E397ACDFEE7D556C5C19467B7AA69C260B
-727407AC837BDB7D67DEC055C1F45D8BAC61048C45BC9FB3CEFE7549EAA2992D2EDC126FF7A05EAE
-58613332A2BC1465B2BC0429162B907D65F793D236EDDD8D35405866D71B25F62DC4A7E06D4DEE82
-840ACCAABC0774F8A63E9C0F7FC980B3583E7A8B01C46590E3BC04EBA565C2EA94F057D964A78A90
-EA9F52ABFD70F84E44E434BD10A42E98C794065724341F907E35D3CB257161E01C7084E3A0166D15
-CED65DA7BA87DBB2EA33D39BD99AFB93D3548358D08330E807F8552CECF63C84F805205491BA3A1A
-622E70C232FADF3BF2DCFD6F0539158D3306506F150B0518371912A25EB96163D73E9EEED42EDC84
-D688BC7F7708D9DCA348FAB4DF62E5809BD094842D0A31DBB7C4B41F94D946810C5EC10B69AABC2C
-91A59500B2E5D37F4755DDFB7AE4ABF757F4C5BCF77C7F95E6A616646456FE8F18407080BCABBFA5
-7704287AD26222DF91AB2613951E2D679472F8ADF06EA2A20205EC19972299A78BAC52114334470C
-5F5890C2F846B4C6042D73945127F2E3910ECA1C4CD7A16EFE4B4BE38A15AAA710682C3836A8CA83
-FD384970139D8B46FB0AEBB002DD224199672FFA02250FBCFA4E649E335428FC71F50F45E498419E
-DB0E970F46894A48F65580881C9C4250FCEF65C9B28699408E18B26FE6DB7F1CBDB767564E73CB59
-54C6D639CE33220C894F36E70F71C9F9AA3FE2AE0AA0E3F2E304EC5ABC661675CDE2E70519E4220A
-E26FBACBD01D5169EB844750753E6CED53E3678FDCD08AB93E10067E9C64F38B40B76D99B6CD92BD
-F4155A1EA5CC824998B59AAD06E09E5F15EBB2288D66EA71B296616734FEF2796F07FF0D8B047074
-A1111D68B99C2B70FC56E74A51B062F4998ACC85B1943C9477E436E5CD7AB18DBC898D21BB93475A
-623BDDA71D7B895BA2D4C10F4B90BF335126F4FD57D73AFA50170F6B3C364922E551D40E35DA75FA
-891762FA23401D39260F2E92C7807C746F13BB35CEF9DBF2E76E66A72FEFF095DA482A4DE8A42091
-7065736CF4DE904FB52E649A32255E2030A7B31B686353492F31C064A3C4B0448C4BFD44B8E15384
-FD809B8761EE26A7DFA1758D57CE4F0BC376EB2B3833534B15A83436BA553955ACB5A7A66796AC5B
-92DB5388BC53EFA27508B08E82821E5CF669BCE52BB860780F749B4F38ACDF5FF12726BF3EC2743F
-01014CDE96FE6B4C40A034E9EAFCA2A35CCC776C2669E6AD138070A40F48ED79136D7FF57E993E09
-B81C543FBADD350FF5B5F7A46F060F88E30FE2D8233832D18B6C323EE017EBC1DF5C838321CDC8A8
-4CABCAB20B60A1A3AA028F36EA6E87C850AF8AF7CD50AA6359038BFA8818821D02CEE8F51DAB8C05
-F7AE9797814D97F3DB8CCDDE45B21DBB15CEE292FAA534A5F317B357F4091F3DA357325B8B9F5EDB
-45865415973C143E5E5BAA483FBF2D06CDD4246675EC58B84C6AE65CA743117FF00F229243772561
-31A7F2BA26A9115AFD96C18216CFDF41B7220ED0CB3FCC26C36380007B382A02AEAE428887DC8BE5
-FDD630AC57EE3DC156C7B8B29E687F24442E35CE10BA4087295A641F7139C831F7CCDA6CCEB5DAFE
-537CC1A97C5A337D3C48A6AE947F58A30DC08CC7B58DBBB4737AD52783C573FC1E9408F55495A80E
-7FDA61F0B9C4F090158F1A416249EBBA936C27BEFDEF19D1BFB839EB70576A010706D8B95657B218
-9C2AE04C11EF9E57FE09880273761FB4302C388BD608FA0C7F00F033C9C00F4E3D5CE2D903E0DA52
-E69C7745EE9FA75E2AD93DC6CB5CCFCD3782A699B807AFC36AD1F62B05856D5DFD6F88831B90EB3D
-CD523582A49732E3FD7253126D39E8AFB8458B5F7AD7F94A8DAC13365F433C857AF4A42C0A08C4DB
-9887C4957259ED22D13CFDF5995DA957EA5A0F620B0214FBFE08AB6D552DBF048D62CEF6EFF12F15
-3511ECA7833E0E3E95F85E6AC0F95438AC4C126E1F1ECF336ED31CCA7EB216D279877123FD9FCD8F
-B5E52B587CFFC4428456DDCA816819A8A4A211D8F1629E5D42BA4C5C356E580C8A22C61D987552FA
-A97893816DA73D423686E4EBD44375C257F031318865A20F22115E72BF1EB9F93AAA169C140A33A0
-6C35BD4526A38BE79CF40AD1EFA10411E8F3300A8A8B97AB140EE6734E1BEE6C8EE443D698D34159
-97649C6F10F20ACD80236422E215E146D744A262DA3FC88DC0D86FF66512F49D3F957D3C5CFFEB42
-4823509F33F155057A4C6F37B52F4667767BA94F6B8B62856B553F307E5D230C44CBFDC9A97A45B1
-39FFB2F2565EB0E22026972FAD0FB7B9576FB6F368B61979943A398773600E7EE1DFEFBF26D45D40
-BDA66EBB96A56EE9CAE0B2420C5DD83E24DBA9FF885BB844BF3D2BF93B07325DFF60C0CB5FDCCA0A
-C8FB5A2E119D5AF26E53AB8E3B428481C2871DDA26EF0B621CD8572B3C664BC7AAC01A1D05B98F79
-1A7080D294BE81099BDA7982432F3DFF4775C44D23F4F1B2E0162B61A8B2CB5EE8564BF98E2ED403
-2219085FE6194C19DAC98A421826CAED7F1AB1477AB327506010217283894235D7DBFC1153D5ECC4
-8AA7293F19592B4D7E95FE55151889BCD1D7FA7DC2370D2DFE11D7E4EA34B5C7A8E73BD3A348FD38
-9EF45B6167FB90BA44C23E912F9A4F2FC0427ED070592F7110183BFDB2C400393BA7569058227926
-351F07FED4F33633BA03A72AA2DC6B598E49B96021DD868DAD0F352E5722FB714F667C15C68D49C0
-3D822D82677EDFE86FE9668E537DA284068C9B0AED83074C92A5B939296D505B837E6A9DDAB1AEAB
-7455A08A114C2222B339284674B74BF4CA9EE0C020BF2A148B439C71C6BE51A94CB64FBE4A7EB295
-5A455047CF5CB348B062ED4F6471CBC3E9ADD9BE9B96879AC7BC71BCE02FD02F17C6063985A5E898
-3D205AA1489DA13C408990ABA1C54F2F501AA172F530480D789C848118C0A74EF98D5F607A067BAF
-F6030D887AC6A6497F9A0B38F9705F328AAD4BFBB634F739386177B07F22D5771282444E5EE17335
-B4D0EC86117C697E79A5F4F65FDC08E4904DAEDAB20067EAE2448FD4301849E456D085F392DD1316
-7ADF75CCFDB723E2904A9C0C976D6B84DDEF9D92B0E15FB246C3ECC2D0BF314CFB957757B3A3E8E5
-801F520644E4601D291DA0F7507C06F3B9BB36FC1C70EAA444E14E56C0CFF06C7F853DF36DA9D8B6
-AF2544B853DFFF535A7E5C6FC145250CDDA229956019659D0D253A19A7B51A4E538BDC01F74D7704
-9949C2C97C7EC6392C2E61CCC0992B66DAF1AB08551063E53180D2A67DE496716CCBAA45462D9F91
-B66A22545962DDAB120511FF08627131B95E5DEEB8B4DD9643E7B2AF65C0FDCE11F5F1E8DD468DA1
-8D41C8C4F00EA73836F4F70EC50FC3EC6D358C0658A4261C6D15A582A2C7C994E7882E661855B352
-014576858A265FFBC425160669CE159D07EDAC04D060B44E5800A7AAE8E339C29B929AA81D2F515C
-46229D2080D5917AB20AB6B34FDCA8E4AF64ED660A3173786FB1A1D005D575C2A5187D3F7CFDC94C
-CC44A38C5CD523E9DA726D8EFA6DA7B6131DFF3435FEE838B2C7D6B97934295F06202D307FF78D90
-6699CB9C5BBB10D1D4DEA5FDA5BFB094E704607083B646D37F5DA1FC7AD21B813F44D8C1AFEAB666
-55AAA19703BEA2E77DF3BF350E17C74B3447A452235919452B5175570A006C7680AC05E8950A62E1
-1D7E3ACA35A397D1E19630D094A86807593C97F4C484E4E06BCFF708B6DCA972E3A0009E1CAC0EA4
-141530F5C1B8AEF5E1B933F37FDDBC4BE22B74FE346D1A3F5FEC0818F8E61765568A2AC04713E828
-F98C449D9A1CCE52D10D61DD8BFD084C8D099A75D89DEA64D5A7CC68BD5B0593D97953DADA976383
-F5015915618AEC56D71D1DCD55B89736395C609B315A3F1E1255432FDBD37F38CC43C354FB4B7C44
-F1A7318B0B7E99C3C08C33B953727B6A6328051783A0A33E3CD9E498346A3CA6A77B517096EDD52A
-E443B87643A646C3A7BB97F742888D33F9B3127E61942F4103C1DBDCD8EAC8F9E259773066736CA6
-53CE57E8822651261D847C131321BB9D6626A1AC50D047C0BA47B411DF2A995545BD68EC0287CC9B
-31D5DDCA8755EBEB10ACCB3903AB0FD5788E984220443B8459E7C078DA4289F1350905881AD6DFDE
-C47302B0ACB0D4AF8CAED02B4B70DF3CF8FEC118F0FC2D3DDE3E494CD160E676E300BC464BD4400D
-B50EE43B314E0517037BF971ACD7CD327CB2134893B8A0410E68DDC518F5DEC966C7884CF5FDFE74
-723177F20DEDC039D879056CAAB4BF045062D3904F615C5CFE109AC7A35599C94024B41019B9AFD4
-04A80ACAA4837929F5C9317680A13D157A03B59A5588DF79D2E113F5F51021D6F6F90E8BBBA2C252
-FD10651BE80BAFD59C53A3367BA3C28DB6EB9DABF1EA99F47B503F627E15DCF3FD645FC52C5D5D0F
-2F07DB4C25C0D1E1C00146E1C4D973E613CCDBD3F9450CC0F5343D79F05E9492E86A1BB889ADF405
-03BD7F3E7543436859184A5B20BD8A172F350D846B7570803990ADAA48D4B9155A2B4C4BFBEF1E1A
-065C08E03928559735BDD442FF1E83E1FA20A5DA57D8BDB2FF5427C034CF0128AF111E6E73099E04
-6E0C240E80A73D7BE72B87834E45898D475521CA3306707631F5C6136199F354632D1A085F12A1C7
-C473868B62E534D15F5484323E63D0574196A19EF175214EB35A90873EFCFB92D6CF68761D45E37E
-AA61E1A1979A82009507CA193E44B36A806486665CEDBCF387053ACEAB979BD35D30978FC7659ABB
-E844F4ECAB3303318ECE80777A5FA5A9DD91B3D06804C4B4E9B4EFCF07EB89866D0DD8CA390CFD15
-98651417114D78776B1A1D36B4BA17746D6BE7FC123D473EF1EFED1C3BC1D555F914536869FD5B0C
-35F9C83F65B0E6BF7A627B9202D787D72C600DDB6BCCE613D88492E13CA0AAAB196E8A49928C62CE
-A4FFE2D0208EDA334ACF47F20BD793124D2C5546C03F4A364369A76A0425262F9D9118AF54E37D32
-E33AB25DD533A49DF5FBF1BAF4CEAC2D9D378CDCD13B00FDA432D9042F623DA41AFB80699B5538A2
-5403B0B3EABEC9E8EFCF42FEF3EA9F91766902CD206B0787C187D5370B60AD6DCD002DE2DE8DCDC0
-B4719A797C5E26BAA67665016DA0D967FA1346F9588AEDA174CA001B31213617FE19EA218EC23597
-79D979E2663166489C06993230B0D07973A117C4E3F4A4C93CF8428248DD5389414D679C69644142
-67C7FEA17E35B0CEE456667A9B1875C81B2302BDDEA2818D6019FC1622A82051F60584ABC904CD91
-8676305DC03FFBCC64FDDAC8D8AA9CE2EA00D6C97BC63C8A617DEDFC0E40775649438E9F61AFD179
-5E3B20560B01BE5E0983F136CF48AB206954E41DEE0D9DDD953DFD01CAEB569151D6BC0DFEF29D70
-FAE3E198E7EDD8922C0E0BCB8BCCF1C016142C1A8B337AFA7A05A9D7534B184BF3BF827F371E9BD1
-9A71244ECA1BA73D484CD2FAD54DB2F0EEFBD54B536EBCB5094E6BC2F5B2AAE41F05B4B311115876
-ED42C34F8E643B53372E3F6350DB8A38445822EA9A33E27FB0CC42CEDCD1FE2FDF723FC47C996EE3
-56C402112F24D0AF899B2D00BEA1CFD427998BD22B2A09046D6737814448ACFB10D387547D7009FB
-384AF0562C85694C071584236D0F1F3D3FCD0CFB38B77C81889061E668BA7AB37AA60F58A3967DE2
-6F939B79CBF10A9DCC42852561D8D6754F1B660D216AAB1E133FBAA321C56E2584BE5C9BAE20CCF0
-0E8DBE6D9C2FCEBEBAD945C3C04101D2387351F132628786F6D9D4CAB83419288D31F9BC600D9664
-12E6AA457CE6CAD26A4C0671097B98C2384C81DD8B9A3222D4F4BBDA7017895C3EDC26662779AEE7
-40D9D7E24185FB821970B0A3A94041A69E4805EC88EE1EE521981536F2844FB8F5EF645F67D42CE5
-148E2DDE43AD5AEF200EDB3A2C7866C98458A92666E5F9E070178BCC39F65A893102A10564AF4E8C
-AAA5075D2F8CD7FAB0401C03AF299EA3515CC93066744EB5AF7CF0ED06675BF049A6E3C211A89E16
-DE5BF0445A7CCA6EE8EB0347454950485D884606651E5887FE8B24323E2AA16DE22FC1FC8C4F06A8
-2A1FDE5758976024068197E1F4506E4D3D8A16D40461A4586338B374A592DC60334402F76388AD6A
-457DC3F54E6169CF7AE3959676E966A45609621055EC3AF80E182633300A4418E34A66DDFA6B569E
-5A13C9115B5FD3EC1CEBE50FBA247F60803AA83976F00117536342DC3D9890C49B2AC701D370E43A
-955118967827760F7091469C5406F08F18D7E3548148CF0E312B1DC71DF67A5E7A1656CF2F47F3AF
-F3DD50FFC2FCDAB7177285B29C17CA43019F62AC6FBA52D1493ED7C427526470ACC8389BAE827759
-4958908F517B2863B83292EB5AB3F57FFFB08393CA610FB1FE905D88A0A16AC395E2A2A6DD033D6A
-0D68992F830B2E1B95FE357BF672716E88FFB92FFC3D62945D1EAD22BC68C51EE0E10A43011DB94C
-44685A5C4576F6EF44CBFB45F2A4BF110A01657DB51FD499767E78058199B31DFD60813F1A344F86
-289F9378231D5B151C92385E3650B4FEB1DC91018EAB8474CBF69FDC1496A4D078D2C351C8196451
-247A9DCF8117E5B637371D8E22E248C64D999015C3FD2311E9950B8EE0922FBDD3D7BFF766BFE9E7
-CE0BE12F318FF2A7B5A9C6D00A54401609304ED2C55F5C1EAC3D4B38355BBD85D66D61636FA6E30C
-2E82829376BEC979A6FEEE040E452359768ECF90CC539A546F17AE906C76F14F86FF697797322B05
-1EB311A759FE260C1EEE5DACF383816AAF1294CFFA7BF87A4D9BC595EE8F2C2F86FEEE11AD959D86
-F22FDAF4CEC098942A57E57813A0FA99239E994FFF353C1E781D666B8928CFC648FCF0869FC68468
-BDBDA7D280DFAB8B0B3A4CA35B074B686DE8D372C61FB32305169A1A9912F6541DA16CD6316A6EA4
-51524757BE5CF6E820011BE3859FB8B8578C100FF029680E05F0E0BF11D33FE19460C85EA5E4C0EF
-28E29407C8AE6BE01CFA0D5022BF9FB01416FFF722A784DFC8FCE330EC95737A854471D334FDC58F
-AB42867A7B62836A8B56466E9A6C1247D46EBAFFB905CD4321970F59FB8D6FF65FDDD34BF913AD32
-2E68455C5FF2D23C1A5EAE687F259BC982B6A384D35440F7C693CF50B9ECAC0B5578CAEE87588B56
-2EB6B7F42034C9F2E545EC866316552354EB3728C7D26527ED75174EAF635E048B08DC5D23E88981
-070AD5641A652F2344956E9CF4C16E652A99F4A644D1787D6D36537489DA4D74E61B2FC4DFDF1D1D
-9D58F9C26C5EB63200526AFD168AC57D5611ADE4D4A382FC28BB60F9E7D626A6C67AFBCCD1183C5E
-3CF2EF210D0BF5CFA7BB10FA3887BDD4CD96EEEAA8F9219AA2F10ABC0A960C3B57C0EC0313AE10CC
-FF1F522124CFC8D2D49BFBB0C193EAFFC5B48FB3FF30B21CB76F0A4C0F1377C9223145BB0468A5D7
-1B9BC25873EA12E1C60334571C67385C00D0B570D3FFC6C7FF0DE62C183C76AEEB12DFFEE1459E0F
-C818C621B8D12FA1357E2B55D48935D70BF140B4CFFE8813DEFD479350B20DC2EB1D3CBB1A2D3DC6
-EE975D58C89D61FC50E6A0197DA9A586B72255023DE47DABEFB11E8AA02414C2FF6258A281219B9D
-DDFE41BA7D7977D0D6F18224FE22F7D4E9355FDB35BF7ED3418F4F68D093AC48F7D8FE4194FEB6C8
-0B9DC1F74E023C604DEA27089F98C3973FF9F4AD7BF7BAE601DB89B08D5D8139B95EDCF6C885FFA8
-B3E4B0477E7040225733826BACFD1EC4A0DD72DC41734856AB9FB700DF83CA2CE812913BD142D84C
-5C83C0B2583768198AF9E885F2BA74877A414233207234AA5F18840557CA11682AABDE8993533887
-7C6D404BDE4153C9827EB16D66C1D73A8143C8A2D3604FF72CE579FAA3C5224BAC48EA83BA848429
-9472007DE96466B5B29ACC7C03B05DCAA38A48BFF9F214DE43146AE4E04FA705421917F99BC54533
-F0EBC01849E396216B9F0794E6F6C6B61B52EF1B1950C0FB609895C3C55FF574163FC8B6B09E66AB
-AED1810E698FF37CC1F926B2CDA3B48C7D77790EBD2D514B6F385D397F713EC3AD3954EA9C846158
-6031D369E8B99E53408A79D64C34EB5A56DE8A67DE91837960E98A66FC04DFA0EBDE21DB003234BB
-78665B039D0A469A0221BD541AF7149A2A659C300132C14581EF766FFFBECBA8B58A5EB3F95446DE
-F49AF863A8113D17B2E7E6ECDEAFC3834D4DF900E3475596E86FBB4E2974C090DB4AD61A737D611D
-92B4535AC291C56AD8B1C031D2F9B505BB77517B737D70AB3723DB52AE2ACCD5DD2F617423ED3CC3
-9CA882EF41757BF7151806A9B8B0F312808863E3673FB54DE939B35CDECA7FBC4DC3BDF5A5F47D35
-E345916C39366C8B4F439CE1C6F1835C320BD1E67375B03B5DE18C93256F251761A4C8CEC01019C0
-68E34447BCC503B9571FE8000627A6B3DAD5854CBC0A2D69E5A8F46BC78F6A7B1422334EC7A98ABE
-FE9B83E01DCF3C6C9273B346F3240EA225AE4A4083CC7B0EA141A0773FDE940768358EB4B13D82AA
-304A1386D450C1C0C6A7D5A8FD2BD313F78F85248B5196241E31E5595F3BC01F37700A2DD3D4A0EE
-2DD01A36569CD507130E8F5B1E96CB560BB7DA15560CCADF3B2C9804A11D9E8055C9EC70E48C1D21
-3EB756A1376F2EDCB7189D78CD3D6CA5865537EEC31C17D801605EFD860B0B629472690588D02575
-02C6F7A75B9A1C1B397781329832CF3EC43C09F1559CD562C48FA9500295CD3B0A790DD3FCD4684A
-7C7AC49AC9BFFF36B39A9FB148BC28D37907433943CBBF0CBDAB46D3EA86DC8F81C859C52D15302B
-94A9B51C199B7104DEEC9D769C2634CECF8B700CE9C04152CC59C9326BDACBEC4312DEED92DD087A
-1C4840868D9F97CAC046581F762F75E8D24D6445370A3F1E0AE74A6478D9DAC37E7FA5BEBEC0A1E0
-81AF89C1BBF7F51E3E2E22C8C405E8671BA85F1BF0DF79A465DAC7EC07F731E00632E017D190A99D
-83E27E5C2E63D7DABBA23B2E88334C63721AC5A4CBC5D45F4C177259F34C2EADE01FA008AF65EBC6
-01D8DD16436D86AA94C99F3CC0A2F87134E73BF22F108B825A8963B49C6C685474AFE4A542C8641D
-C0375D7EFE9AC1168D9700459BE52D0DA399023E141969F25C0DAC4668534B6647EC85454BE945E8
-26B26DE6E3C4584B97A38E2B40A0D23481BCA78084FE80E00A71A790BF31DF468A435ECC88E60A57
-860BBCA3D65930186E9917CBD209C230E8F8255A7ABC7D3F043AE4D7AD63D9980BEDF062B7D5C298
-C40225B6D03F29A0339E0FCA02138E526F06B9EF47F5E7A8068A846CFDE2BFDEBD24F5A73A66C079
-18662AEC80B43246284FA4E2EE0D9AAB172B1E59A6CC46B801149D8C0DF6DEC9A55D8E1B0EFD9D30
-2FF618075944CCCB6831D336B11617107B0530D09885E5CA11A5F1FCC8D69D603DA16BEA51116D42
-CAB1AA1E4D7B9B4D79993F2BFE53EAC904FEB70B2D330A89780EAC10D12CC0C35B8399F218AC2976
-E57A26BAD20CE2FA2AE2363D3FD2A8A971747556F2959DA74A8963C20B504711AE1CB0D0C02457FF
-2E9BF696B159AF031DD5155F21C0F5549B0471A3C5DC8918B675CEBCB23E29322B959ABC05283A70
-2E878DE8EF25EA760F3C5C7B7B49D398283DE2ED837FD59F7C22D62C58FE4448B1049FDEBFC8787E
-67D7DAFE9774979BB3802254DA59BCC0219F98C219F84D995CA768B8B5D9D4A32525DFECE003675E
-E4BD5D8DFFC11025AF2B468F9207B5B2B42349B98232BAC0759758C1F4A283405815BD7145C93FA0
-8F3ED2826655053A3C2559073D8ACD199DEA2C5BA5F616A2E48548B4370EC73493BA07E197165DCA
-774438B0766867819C1154D1959FE6E01E6312E0AB91FC2E2BD240FC8652A2D456A1DE7F34EF372A
-53794D4C4E050BF3CA5B7BD2F1B8DE93B4C8002485CB219AD2D029739FD3C81CC6E78EDF38723576
-1A57143EEDE5CC887F282FECD261F6A25D0A7E154ECDF5DC38E426811BE86AAA458577E5E0C5F0F7
-5AAFA9C41E5D1DC9D91ECD79B514F8CDF7A5F1A189470D35FDF4F9B8788879CCBD91B427822ED658
-389E981E0EE5F7FB87692A3E3E931DF8A1D1573E3B0166204240B7080089A09EF7487C9AEE2D665F
-5A82F94C877FB5B0DC531CEBF1E71C6592CEA2401E4B5122E5091DF03D203DF979B9A6EFBA12E2F6
-B422FDF15D49AC0914D372D21E871DE65CBECD105FD4A3E4714B9CCA5C6803FA39DBB015EA8A88BE
-7913502E562E5B170B87BFC8572DC9DF49AD63694311EF1334444BDF0B4CA3245271C1F7A4D7FAF1
-703E3AA0E1EA8D5C6E821B28707EE0C9B4F22F23796FE87356C58AE2CADC191F4C58E1FB58DA03B4
-5A25AC95DBAE13A293474217BDB214742B9D9D6AF35F70FED2891942EACE3E625E55FFB820543FBB
-250A062D3D395BC0F219ECFE0D76686AC148BC41476A887BC494DDBD396BE200FD3E03CFA12EC9AF
-6B934A283C42AA05589AA6B4A8D16946BB51F50419CABECEAEC5AEF9085C9989289E9B46BAFB6FB2
-782D84DE2B068F91A9744AAB237CEB1BA513E57E4C307108E993C972A3E0A898D5A8D27833155031
-FDB98863C3BE7FEF3004CBAA5CB60A1F2E3EB4D7290FF5FAFA088B1CECCB6CF51A58DAAD998F0839
-6CDFD68F5ABC9C1CCB8F6514107773C69C26873E889D1F79D10E866910E4684186FCD71C965ADF62
-39BA3418B313A27AD632300969B6F284519366ED85E7CD968D64823F8C59B5911A72D0A20EB72B60
-3A61E36F52F256FFCDF706B4560B4DFA5D918FBC530D83A4B3C01BDD3CB4572E24242D141BF9E775
-36693A0407D002E09CDA5B195BF1CCF430AE9824C07928A050D0B460F2704BE8F9E647A4884C4567
-0A81EACF7CC038643EB0FF18A376FF6F32B6FE4F197273327FBBDEC6443A299CAD4B26F7778A99F6
-5A11BDE047153E764039EDB251936AA43DEE50DDFDF8856519056AAFC4C5AE6F2051AF0579A9ACD4
-1D00775D7DBE70022CC263DCA5E0A25B9C7C4F5C418587666B2FE24816B1E0EC92F9074F1403BB83
-AFC3F1D52CA79C387BDEF864366E34C90BE52F7AA09935373A07E4E026224E76F9EC3CB9E7EDE50D
-EFDA48248D61F3CEC880A3B8843306375D9711E58645F3625BDB8E87052DA67F9794EF4AF8DB0BCF
-E00677C3A26907DC651BC838C40EC39E2B5A5DC0DBD345944A6C32226089D63C52490FA10B215AE7
-03CFB663EB8A47793B84CE7364DA1C4E7FCE32DFEF09490121222774915BA59C78C2275F829D15CF
-4D8686B095C38C731B83D48738C25F40B8ADD487C350A2EBE846C3916AE384CB1050F9F5DFE09FCB
-D9129C6270FD86D55A459618FDFA4F907E6B4746196BB717865AB378414029017551161A52E9D24B
-E4F7EED553A927933D4ABC8F25DF607779A717909CB4D810DE8F5762581900E224E4B91598149BA4
-71CF8068ABE8744356B261600BFCC57FB8BE45036CF6571D9B2A95304933BD4F17215F8EF53F8E08
-1AF61FA7F9583C34EB5655CB0ECB82246959F09091F36989EBDD646BEDCA614B9A61AB7696B3FF18
-1058A150FA6EC1BE2EBC7F64357A3FF2A2B0491D2F4E0B970DE5B7788B467CA678039B5EF55C88A3
-84578D427FD2CB16C87B0BF0A3D37CE8ED43E0F049AF2436344D5F47C948C632C94A287509282561
-6C64C5D262FE5B24916FFEE982A69A6CCF888BD01D62EA591EEC51F4B7DDFAFFBEEA93FE08D736C2
-0129E345D06B10246A5F57151C198D407730713F32299638EFBDC01367E23EB59AAD42A83AB41B43
-2DB462652E29813740F4680A5D4BD47B18328FAE6BDF4200CFA4CE3773809B45E8887C9B2E423698
-9F6C48D64F5986F563D9A7538A8716082F81936AEBD0461E6F4BD470436D8B7656F0FDF89108E6DD
-02ABDEF907731D458D690BC608EA9CED09EB1E6E64C0790C7A2378201CE997FFE0317679EE1D4EE9
-F91157449323E53B4ADA8096CD628B5861BF794543A98F2FA2AB54FF0F25A13DAD43DAF9394329B9
-5AA53CA32749FECB0B2BC035DD1EBD53FF9FB5AD8BCE06CD89E5568091C1CC314CFB1D9821D7F9AC
-7C55F55E0A16E39A87D43148201B928F3C42B110FC056189DEF183745F3B637441DE8BD4C3C7EF12
-F4258E306B2877ADAEC63441010750DB4E6269A4C78A0AC01BB3603C386651FE814031CB5D8C1F14
-9EEAFF652A53E57BBD4C8C0CE36A84A319A53BC1E5FD3F1ED1EE72F4C1A9BF264B594062FCAFB22C
-C1FDE3F2E3D3C17DD3F7FE0E15EBD812D550227C06D01127385374A11438ABD50048E17255FCD2BB
-85122A6FB9B7DA9D5E9DE8A747FAE0DA45A1FCEFE92B9E70A5B2CAC668D4D07527A5C1403267D823
-048BE671F725CFC7474B44FC5AAA348420B2D7C23C6CA066666FD6F2208E329878D90CEF1C2E77ED
-22D3BEBB9D547810B189F08920A27E7107F208591A84D463CE2576C70C3DFE6643E4EA93F4E1DAEB
-41D46F0E2F56FC10C69AD5034FC9859D31CF27A3A1EE256C93111F81C11ACF1FC0CE20B90BAC9AA3
-27A5C85A7985B951519FD4B03C40BE637162AF41B2FDA68F0D1E9B7602FE2659D3D75955C579AC51
-DF6A552EB9581AC3F712F083F19B52A6C4F560F36C59CEEB0C996AAF1728A2AA45DCAD79BD7B23AB
-388D5B0B64A2B95154B6259B730B0F4A72C8C7F7CC93C7D64D9D8810D1F63FF8ABD4DB89824E2D26
-4FDEE916C41E299211DB1A53256E1DB5CDD04862F034D9404B73183A99D3D13D642A663F129B6D16
-7095BEB4EAEFD03DF2FF2F0B6B594C1EE90FDB203DA89FACEE23F1BA3901FECC75FE1811BD701259
-343011262B6A0A9707AAA6316BC3C17F787BB80AC8DA5AAC942D90F80C5A3BB59E47EC767244AA95
-C63E50BF809998957936D3BF6ABC24B0A397258F9EB4DC8F65692CB023D9091FB180C69498CD0C08
-BBEBADC84A7E0016E8F8BEA325D924EB0DF82E75D2CC2CCBF039B11934363D4332C5FBC5EC556BE8
-5EE4E707CC2753CCC43D2ED50558E51A104221C9323CDCB0199B7B83454DE3FDC810D0F362C0299F
-5DD981B31D8E3DDA284FEF9DC8F9C8DE138D3065437A7FE8C30572AD06D62E8527AD37AE39AAB0B2
-25F76A25F6C6505241ED73BA494CF923E919F688DDEBF193E188F8C4C154F21631080763B4D091E8
-AD1D2FD6649E0CD9360E8D1A67A5B5FAFC67547CA31C95A5EA8D4EB5D68B9F6D6532DB9B54584735
-9558542A2AE58C09F3BD2918EFBE1699E9C8F2C2A11EA4D224C726D2ACD4A8D8ABAEDC6588CF2AE5
-66528B94F55B823A2A1F7BE19000F3E7579D094E047075DF18C8C868760295533B26EB3ED90635B1
-29C17ACA679C3E88B06998CE5A7A2544B700229F5A6A504BD3E45B276471959C8A3F81917A534287
-39B5EF9E3D463B3BA7318448E2A3E79520D2D245A2A72F31FF7070B6E4624E3A5E216BD103640C8D
-F387E49D732529C611F8B971073F17EBD2F6EB18F9B74A67E1997926DF178D4C9EDED435B9682F1A
-279C81BB9F60DAFE125845A2FF3B02979E5481C78A45C479BEFB9FEF3CE2BA9BC46C77B50B03E48D
-A6D17B76F06F3AD118371ADC69E178C52B5FB4B261C9311874ED07DD6D5B3226A005FDD7A6D53848
-09E7063F036CDEA41619122635E835D2D74CBB6AA9B38CAA4D819C26E95115FE0DBAB4198FC5838F
-2C91B7A87B07D734C6D4F4F83444C1E90AA9BFC908A2BAC4B3DEF9157AFCA5248F2DA31CA87BD363
-AC25E9E77F741D4B2C6E02F04987A6F49D30E9038CEFC41BA172DD675AED8B392164411144E5B738
-F3210B0E66B17A13CB9631C33D44484E792A7C082DD0A5382F34C5637653261B1EB6D2035B08B4D9
-1FA9AB770CAF40A103629511F7B43F2743D7E583433DECFB19C21FD4FD0AFCC22A4119E77C87BFE6
-FE50068B22479015BE5A9F06BEAB4D37412E062A45E0CBCD7BB39FEE747E96306F79FC4F2E8942DF
-5D9DA0E55AACCDA547DA19D30B8404FA121298B44C9CCE198C708C69A8D6BF17591C5C50D3FC5BE6
-961F7ABA8F366DAE957A1C3730DA4A5B4F035A9274675EE3BBF0CA8CE9D8349F50CABB1C3EA4948A
-BE6F9F143592F1EA95404E6909A909168E3279A957AE1924245C356331A75E7008BEE92BEAA304BA
-40B7C3F48F74D9018B3247DF50EBD7CE541DA48ECCB1B0BE51A455C3C13C279D4D8676078C3EBE43
-08748D52C9B041D3E7244C745B1F2F742D010A9E60695F3EC4FDC1050AC082B905D6A57E8F407A3B
-472F731011A5798965B7B1A307E252FE02C8F79CEEDDEB6E165F1A94D7FFF18DDBDF79477F14E9E9
-3981ABD200FE7771B29D1D2D120EE79D28B9543818527039AC74085EAFF241B56D08220C958B5D9C
-87C0C04A14D52AFD475B542D391BC54FF33DEF8D9484AFF6873BEED32DDA4B371112B523B6CE22B4
-0D1B416B64C9370F1CDF2C548F4CCBE9E12E21C36CC3EA52DA232DCFB65F66B22B5E2EC04852510D
-5E264EE939BB67AEC4764B87062AEB7F680B40BCEE04AD45C7519EB3B6199C9E0E332661463647F2
-FB7EDF303EFEF84891CEBCF0FAC5F723A9D0476C3F8C092604C87FC69C7A90F4D64AE45A478EE8BA
-2DF50FB93F55A3546123F0B0E2C1C40C98EAAE9F0F26B8F80FFE6E6B94B7E27D2884D58B8A119662
-2DF6BE608C5569D7864BB756DF2EDD184B90812B44ED4A32D001C31383A40AEEE9743651F7950846
-15C48E402DBC01C818D477EAC0347795CB2792E9C11E8FD4A02E194EED1C919D4598FEC003B6D9A8
-A0BC7D456047A1C0579453FC1D7CB2D158D466939A23D7A7B8ABED7E2777EC7487973E73F2266D9C
-250CE30729E3C5223AD93B9AE8443B35711E446A3DC660123ED45CE1942A1A2AD0610467E081CE2C
-8B92A6C82F0B17B5D2429E99F1A6268072C6B5AAAA6EB6283A872C54D3694CD825EB2926E57DBBC7
-C1663075E687A144E4D61C225781D80FCAE1497B442342B4A3F1CD6BDB50E31791CC3928C30835FE
-F845B6BE5E2D7E3F2F5F085AA3FAEB45CAD0D76BCBB1ED859A9CEBB9F7457036F0BC3F195CB1A98C
-9C8648F6583CDBB23894BC719D68C2DBD8003B10D08C8CAA40BCE784D7BFB4EEC9EA5359AC056E57
-B8B0F2EBCB1F4CE40C87FC7861180133E0CB6CE2FC4FE690756D327A2B5AE063E3021C0C0BD420D0
-56F0B941E6B36088A55BA11D0C35FD0132D5F48E5D9673572347171B4328D4807B972831C0D74CFF
-A5638C145B89C989E6EC942148207D6DB82257585958034D9F9D4221C7C9F7013790DBD130F277E0
-BC88BB179DD09E27062379ED06F25EEA8B7FB33C35861A0034776E3813D2E9E5C10E227CC569AB36
-CB2D9DF2E7B7B44758F9DC4FFAD7A24AC7E9F47AA850C221048C3CB35A37CE8EA75632AE65FE3212
-175146FECD6334AE3D3C5F492F067F795E1E8FF386BA198CB74F0BB4DC0000DA383BC4CC3F070DE1
-7721431988D69C8B1A5AFDCCC83C22E16A87E01C6D3E79DC7AFA3DB0371B0866EFB8B6F88900472A
-FEF1C4A878243C52D4E02E82658979731C841C489A6B97E271C4C93800EC7D91F93EB9B9C659A554
-E1FCE42A5EC65AC39190EF4B66DEAF6FC0569A000A9E1495F42F706FBEA4D32EB7EF11A648910259
-6A65CF899C2F322F5679C6D123469192A9BF1A7F1F2C81C554ADB97BD19ADB746A4F81A4D5559E60
-AB94C483DBABF6CE2F28CDB412D50FF3FCFA3B3DAAACC6A83CFED910CCB3B8D2C19590AFF4D75303
-4A6CE7F4156896A13808E0DFEAC547E69D3C886691728E4A35ACD575B40D721E8FCC5385A2EB28D7
-08101DC50811529528F5CB0C009BA7E3C88468E37768FB0D83895AB54DB2DD5426562AF9D8AF304B
-F6EDA54E9C92643DF926F5C3578269750120302A37CB140A18BA56BA01108D4ACACE8FEAE640A6C6
-958EF156B588ADB0EA5F3B0F37BBA12B7BCB221C811415387B024B7076FA4403A3AD6EBB5D9C26EF
-EBDB7ADE7C60B444AB9F90EA493B658B7767AE2BE649BDBB3FE85F460F1ED137C61BD95F7CD3D8B0
-15CE45138538930AB62AA0E54B4CE1A5EC5FEC0A2B28B345B67089A4E4AE14D2E1F5A9C8848DA688
-CA298F93860649EC3AAFEF3E820D86988C8E3E5A4D4BB937791827994AA3E81D0BB3EE115EC36D5F
-B9A392D09E79AF514D11C7B3A03C9F9C13355CE79E119A19177FFDCA34704D38118A8976D1EE5AA0
-2D14FEB1414419F5E85244ADC5C0A765A522EEF36170064BB19FEE3B5F7B441E4DB967DAE0BAC2C4
-8FC6A836E0EF5A69F073BEE1699F55E9C757EBD6FD8B514E2B49D6333815B7DBD1E0694695FCA3D2
-1320A0C4B852D9706DADD8369A95FDD917328BE93DD33818954DBD2C212D2CA81560ED5BC284EB04
-7A5F389E24E43F4FA8C97FECF46589FA7341076555CF55B1C21B28E0C1CBB00AB8B6F67472F27BC0
-D11148F407824B0159B5188D4BB7386FBDBF1C0FAF34721B7BCB5C0FCB7C4010DCB6A1284E9D7883
-9E3C2111A05D29AB7997073B590A81C6168020F1D48951BC7D8476D5BA593F4F23CAC1F9BB0E091E
-84B4E99E5C584D1370DD12DEE8DF16AF8BC6B7B23E2FEABDB7F32779AF8E2B5094A6E9B7A7225F24
-C43A8E5D2B977E1E19E633C26771E23017ED233DBB02C64F8CF03992C6484528D0C8464B46F24F9E
-8380F385D5D01B8893C67FC103498983CF939432AA380CA576D09030CD52FD99BDC3BE16C7204CDC
-3365BF76294A83A1FC14A236F5FE5321904E779B13232A76F8FE521F425562678436359C2461BEA5
-AB27209541F557AE2AA60009C9CA0A9FC7898C14306CE35A50017BADEFDECBBF94EE2905220706DC
-806409EF87DB1D73EAB0698AD2DB72CDCDB293E7FB13C94D9FC87E74502E6927A212F0D7D2F2D194
-64F7A66AC07872E18CB1DDE8F11835DCBC5C4EF039333FFFC0FC1456DAADE7DAE3EC2EE0D3415B0C
-ABB69FC5006F4D14A4EE1A5CA99AD4D5E629C0DD1E0F097B5B93DE2DD001A8C418234C9C45E8C13D
-1AE04E9466DAB8CF1ECB88A4E059C111A6468D2DABB90DA79C7C79E94DB28F6968B1A632F8C57D9E
-565FF91C6916026FFAC0661856B9FB8DE9C81661816221B1FC159CFEF1751E7E403F5F2CE32529DD
-540792FC17A12A3DCD7C50D38EEAADBD10ADBF5D8A82442AA900CE6150EB7A4639DD9FB6E385B2FD
-093493DCCD9014B23EB172E21AA89643A6CAD1093343D85D81261972DE0ACB16A4C6B5F0BE4C978B
-FA12D3CAF0134F9EA49F6E9687C8F99A456745EA252F0BA9968C7F9586E3DD841AA92DC7705BDD68
-2DAE41518A09DF0E209F321D7FA3417202F4BA76A984DA3ADDBC58136885362F02F0A24EBC439B3D
-BBDACFFD8498EBD29F88F016B1FEABC10785438EAC860B554525F3266097A675299AA0967BD3B7A0
-EEEE3FC578D1BE99D3533BD91571AED904BFC9DA1A1451FDC5406E1CD614E0C7FBC733563CD6CE6C
-C31E9237CA153F1F0411114361D731636BCF98555ABF12848AD109371A42B63675A4130B81E97C2A
-2EE2BB5D8FAE2640156001AF0F55D9D5DF8FF23C8AEFE14F120000F14149A36E5C94CD9081DEC277
-C2C34870D05011F99D48B0875A5FF542F067F7E9880109F586BCF2B50522A1F23ECE44349E539E70
-F84E207DC9BEC7CDF856A046F1A03226AA41F541719AD1AF88FF211E57DD0C1275DD0B7B47440DA0
-89B98C6EE92A7D94700B83CEBE19EAEDD8A615F6587587BA8BBA3CE3AA5E8EAFB1FB0F486BE3609B
-169EFB178A4292F4C0378AFE5D24EED1CAAB514DDC66C696D8E37F294A6579131DDF5488E9436609
-ACD750C3DB0A940C84FE022B22ADC2676F62E91E8F891225F891FBA537679B24547BBBF35F04915D
-20B11739F620D18B5B216921D222F15044368569AA302980B9225BB839F494588481B94B0C724352
-B2DF600A22B062561D86CB8F81514FBDAA4F8A043A0265F992FAB71FC9124A45B8475E1EF3DF6B6D
-E35CF329777D45F08325E8505EC0D979F542807AE77E57E453525F23BC59A50740371EFA98678AEE
-6C425374AEB745B99DDB5D8D908FDB551FBC0DB15832107BBECC4E11A1A8DEC69358A574A2ED46CC
-31D564549EFF23102D92BFDCBB2BB985F78F36033E34F59C0EBAFA3BDD71338736464CEFDBA91398
-33995EDA4207BFD4A9867D32E867FBEB7DE60D132803EF9347CB17BD91315484EF6570892297DD8B
-7D966103339535E28A00CB1EECA4A9775F60A9F5FC9BD8B06D78FE8E6318C31DA2E847E3F9CA587C
-B01AE2BA0A2EBDE308314413F4F230A758184ED60D4F71F6CEC22A93A01B6C54E0449A3860FCA895
-4A347B7588329A80974ECBECDA1070FBC055666375229F13DD995E99265DF870BC8B8CC6347FADBC
-1A6AF64599271A475B9123493D46BEC41289BEEB67EB97A8DED7A9C9730D37C65164CFBDC22E5CA5
-89D2E7954C7136EF4E084C43A6C7F361A3E96989239BDDB9A593CC2A80BA16DE9EE90E95CD39393C
-212AB22EECB677FD36D34DEB46C4AD0D21BF7E6D7CBD0C8083842FCD87B18FEA7CECF939987E99BA
-34C214E44DD84C176C9CC5A4CEA76D380CB316BB4EF9DE73D73B4AFD4ADB54451591DEF86621D138
-D5A0A29441502BF6C2ADE671CEC3CB5CAB903A657EB2D70C943F976C110E46C5D9D29BC00A875F27
-38E5D22496A43E096E009C5D3CB724B4CABB32838DBE527F83B18CB457E57B092C302EE557FD4F00
-DB9C56E66C9FDF4EC9FFAAB85F60D02BA79694FABA476A199A0331C30A78A92E10417BA236E23364
-8174C826331DC1BAB87C5F95027846130C6A2B4027930EBF9A97BA1B039D386FC51C302648E25980
-212F6A582CDE2778C677A01FBFB3C5D1B8A374ADAF6ADBF7DC94075F25ED66D440B3922C5F255FB2
-3FD8F6E21EA65B1D93BB225684B50F11310E242B087575973345B229BA62C1E2C35BDAEC04D10148
-F5B2F3BCF7399BDFDF1F3F79119714AEA697245BC647316EA157484ECB951BE367234FD02E8B1F09
-1AAC3D29BF282DFF4011BC0CBA8E55234D943DB3017CC7A766720BBC29B2D097A956C0F1067177F0
-12D42ADCB473CDE8D1BA35B4030757FA1D8211989DF3BD22CE5D501C21EF8708FB3449DF47D88650
-9FF7B59B76C0DBAE443F336FEE2D615D7EED1C284F14335BC8A26BF4621E10DE9611FB2F1DBD52E4
-B7565D8C65B54EA36D508BCF0C578A49A2665227CDE1F9768EFE847F9D94F1BBB7DB83701C232198
-5C7283D47B2E40B27A268428AAEFE75F6B2F8764A8494E5827573758CB9CA46FA93208836BCCC8B5
-564A69F5AD882052AF1C1417C3FA7F580569528682C77080F3688B65E7FC24D2A3AEB61574B4A321
-5927281544DDD7A6EE0A3E9388F8F631CE7251724DF70726E5912DDCCC8C652DD6C9608F8462303D
-867F589DE0F2F71711B35142EE6EF93B64D6326C4DD7DC83278E057100EE772082E6BA368ED91A55
-53ECFE2293A481E42F83BC8F9148C70EACE91F7B7D9CB8A72415BDB3AF66F68EA733A17ABE9DB005
-3BF148629132969589F38D30EABFA96A01FAC72650B5A6FF3935670198A1EA33810A9B11E330EB8B
-451F24F93544263436F669AB5A90A53B16CCEEAC36B1445574EFA7E802DE73522BE725E68704822C
-B7D3912717333367895BBFBE06966A5CC653AAB5E9B3596702086BF0010085B900711932A95ACF15
-CA4DC45A754EA334E9EB84D6FC8E3FC4F897456BED64BB93B593549FF0D5352275D8E417172A6664
-C5E0ECED1019494A7ED49AB0B965BEC1A82E5873766BB38D7D856049CCE2FCA65AAF61E961B60634
-E2A69EF059754C9D8163D87F928C222772D070D83FEC6FA5AC734AF65E40BFDE521F7D9CB1650FDF
-64754BFF21EA3FF0AF7611A93D525EC9B28C51AFECB04E7FC8323DD6C9B0D8539A34FC3CD8CEB795
-8E8EBBFED4313C77ED469C199552A9FF70BA5423B03B6148D4EAAE17B71C5B39DC436AC53D6BA8A7
-AD81AA8B02335A8B2B11E9F4FA913159A725B8AB60F52F1A2EA50EAF4D56656E615BF382CC68A690
-BF83DFF24FE986570ADC0290ED1A37C1C2AD469CE789E0EA0BB5CE01020100E729721AF3B5BADD33
-A2DAA6C33EB8F9064F5292F715F820B4BBFDD56F76D42E7A1A068C1CBDCE4640082F6E7D582D1939
-990CE6EE8D270015A2C461798B37DCB5798EE9F7512168B76D26C28BE4A49A1BF96C89D235F21A1D
-B6A96E5DA474D0B19B808D13D7A11BF39EA8647499C410ED9894A1ADF33D41B6FC2E614D8087F4C8
-4E437B136F3CB32DB8393C49177A0675A0C9E7EECEF448A97AFDBE840FA01FC7E5F2E8FECEDC1884
-84C312E8635CD79195475DDBFDD4D38D5A0246DE2C7F21608F8D2C0DA1371D302E941572E5792A3C
-F4E51A33228B93A814D03FD4FC223C314CF3714BB3A34BD4F7ED6348577FEED9DEB082C4049E57B5
-D3CDB7F26629E9F3BA36893E09E3C7463D02A22D7056BE76B87763260E46E48BB832B7EE13F8DC05
-37EC8E81E9BDFEAD8C27EBDF1AD706933EFD11131E12814F236EBB01BE85B7F1B2D627413B324918
-D247604F56EC128909873FEC3857028BEF76A3494364C2A7002D104D486236C30B48E2B75D851C34
-EA50BA7FFEB4E19190898AE21768C157C0CAC628A2181A32796FBC1A7271D2473CD88E5395DDBDB1
-FC3AA8DF0F3D588637F19A8B833AFDEB5F655A8838EECD684E2315B72C75CEEFBCEF94344ACE8D6A
-DBE355008EC72FE7CEEAB01363A895F4E73F867639BE0A0BE67333848816B05B419221BE8F9066C3
-62C23FE85B7F392930BFE4C12B9526FF2FDEC38F23A159ED61A0718E7115C24597D849FA76369153
-54A40C965D4D72EC94DA61A03766AB39AAB684E134FD1407A5B1B19BFEBA52AA0DA5D99CBE5C82DB
-AA663711E6DEBA180E1D4A39C320516A4350D296BC19BF1BE054859A0889C7E9727A021F3176FE62
-0FB0C837E4141FECE531A950C03D319E3255703220B7185BD20FE5DBA673F8129AB211EFCF36EE39
-4C7E00EB0876624BC840FA86E58B2F584754CB6BFDFD76810E300741EBE4544E5AC17413ADEB21C6
-2F66CA4F075C32381796BA709782DE34A675B717A2C7F6D88104CB924FDE5DF775B4F0B68E0E2E5C
-2F788BBDEAF06D8E1FC2105CCBBD5827C0B03FD6CD64F0D073F3192D5F94839644E5EC6C5185BADC
-F04112A65F49A8C83174A9AE958E76A2F5AF469E8B76C833782C5FFB8BD7B1BBBB3EA0CB7C9786C3
-BE2ADE5E7AFA8C8F20892659A59BC421E28845A108E34EE17864042EF587A6D67DECDFB3F510EB40
-D2229585347A0035670FCC76C2837A4E4D68304FE113C539B35C1F0234B5079B8E32934546982978
-C5E4DF955A454EA263C3CA5D7101F31A318D82A3F9FCB5A8AFD7A65209663B0FC9DA400B26F285EF
-46D0E1EAF8ACB1F1CB805E3986D04BC585073FC64895E4DAE1CCB749BB439CB32EA91176D5C39C36
-50D10AFB9C9884D5FB90183424CEE67EF2175D01D2478D67511EC9F54F88763C152697B06D948BED
-49240096EEE3D06AB4575E8E8B2CB8263B5BCF4FA1608720F52B675309833071879DF52C3EC2871D
-20F398B5CAC8F8A4D41D0F1D47584DD90DCDAEA4A1CF160C4B3BF1AAB890B5CEB6CB3488672AA68F
-BD938281DBC1D8BCFE92FBF514DA5358443CB6E0147254E91B38CE6787B2BB0DEDD2D38F5938737A
-977B5EA42892520C58F8FBB53C994B57382379E9490F0D6970B980E1BDF8CF9F4C3C5E0A18F66E86
-EE93FFE7FE546DE50F41364BCB3721B637072571FA1779F1D672FAD260C16D7F13CBDF3E4376E7FF
-56D2A710AC5AC35FCBDBCE2C9C17E523BBE6218617B13C1FA6679B308979AE7C61DA6E68369324C6
-CBC7DDEC364E5A86707266C0B459EE7B2C03FE584E529BFFDCE98C90A2F3D9305AA74D3ED8430DBF
-3A49FE2ECFD9C4BC9FEFD22618FE9C8A973AD072AB6F713E4DF02DCDA7AC5359B2D652013E131B76
-B3ED6C75FD53BA58D862846264627F6B9E70D8800F6D9B32242B747A67BB2B45675840D34F852AA8
-062FA6B01E31ED24DAE02F6CF788A17F7B9368175195DB0072259CCE0FFB2C1035C1D26E1777CCA3
-D56A827C3242069E76D6DD69B653768614B9ACFF16567FEA61508D51454BC02F6C60F755AEF6AFAE
-3536BBFA1823F8E1A53C41124DE983E51CEC92AEF4F99785D554488A51C20885346D1F761DA79017
-940A0C557D93F1DB6B3D00FFD61D08E96FF3AFCE5FEDF545CC9F47A2B1BB26713431D6D1E47FD6BD
-6E3C668B0368241F0EBB5FA9C991DF79890E52E83A3675EE699B61BAF869DE91F67278F510061C6F
-E41DE2D883F48CD0E068E2A652B244128D82E5CD52F35F210DDAE3054691ED55A7D99088AAE8FB04
-F525C2084AC09F5EDF80A4EFAFE981F74C0DE9D194320709B3464F3FF2C0F6AAEA6D973D9C323F53
-DE3D741F698FBF01036716BBD62957CB32CD81D3A2674560FFBC5BDC5C6E4F547E589AD0B1CFE14F
-5E17FED1C4A8ABE4E67CCF8A49F32C4C6044F1431E1CC382E7758722A6D0DF9ED23E51F8AD14D11D
-7B6428E27443715EBA4E9C05D6F238378F9498AEF0E7EE4FE6856622CC8E6ED141EE5F109E343CB6
-695C4BE1E0F66601C27975983BF557C04ACFC19227A1AD7E6C44C00529FC7EDD7F886D24B7E029B9
-C395260088BBFB96972199A7B32796D27257DE83A7402291C14FECDF7998C5C96B1EDADE0280F856
-8A8F5007852EED303969180B3329917973C2D32C080C9765B6BAB0673BC7ECFDBBFBEA980C263843
-39B7F1052591D91667D4FEE413AFC23DE2D4B9DA742F4269C6C939F5FC32A38040730A018155AD73
-3F231E4D5B9D01C03A58EAE7B5F590CCFAF25EDC8552CFC8D95C60EBAE1837D7A97CA137E9D4A4BD
-2CD34AEFD68D64B3F4F62326AC429921D7FB3C235184FE0899690A0B775F1A566EC29D5830D32372
-6526F7E7F5AFDD71B77E07613DDC4FC63EDF49051AEB59E6337AC0A4B6DD872E776C9CD0CCB86130
-5322D816732124F5978A86C186BF0A0F88E733CE38E4D7C1BA5378C5629B1EFC97806059990ED42C
-5CD183BAD7E94070E4058569DA2E51831FFE0D080301AEAB4350BA290318AEC582C78D05DD92E5AF
-B4424EA808629BC972E68F4FF2489C245593F07555CA6A2B25964794CF31CBD3AE5C229AB9B8C298
-06C01D116EBD0FF0F159ED2D3D7DFC73EAB4910BFF5B0B0B587CD9EA6E6FC45D63C09766224D8346
-1F0588140B258B1729F70BAE7962189B1554483392988CF230AF4077193E53330519394DD99BA135
-6D4730AB221DC6A66019BFAE564893DDAD7B177DADD16ADD21D396CFA6C3DC818052E2F71149FD59
-4A16DE0C2FFDD366C99B486C55A6E991E4D22CCB15843F0C3363676AF2F5B2D1B7EF66CCF2F12DC5
-0D63776BFFB058D70A9C76DCE96C754872D72C82A0C33F90D49C935402CDD26B6D743B1F43BED5D8
-B539424849C1495DAE73044E885A7D0F307F1816DF6244A6F2D97BFD4E200E93F69B08AF39EA21E6
-E347A47CEEBF803F73B978ADBFCF056789BB8E6E2563DE87DD9A8C877157B934102DCEDAC54D487A
-1BB2694F0034093C48F10A17D32E2BDD0C723CAF59ADDD1BE373AF8C9BEB4415AA5AF36310C31F24
-354A53C0B962573148BEF91D994FE3F3D8450DD4D686725799F53C373A0A3E3C060C2E1A3E800504
-9F26D716E1F381B9F83125E4683264A07E2D8938F605978E2513DD2050B3D8A1012797CBA8961632
-BED260916338A812AE751C7B657E086A0C7DDCD3BFDDFF3E48B84751925736D1310C4910FC114387
-F3ED7FE163F91895EBF55FCB425CEF5729D99BD8F2C072E36C310523E75CD8E5DE49C031C4263410
-9D56E91A46C8C8E89FD92012A00C33D0DEC52597B5C6933291A7BDC5CEDA95DCDA5600F9AE1C8250
-54E7EE1067458CCB66610704C58E4A4FC0CB5FC933D0322A716B2CD430A3AD48DAB3D4CBE9D23F2D
-092368CFC4E1F5495C133A92942EC62118D45C17723646E69407B4A89DCDFD2AB3FFC099A21D9D29
-741D68270629AA3A414FE58658DC9170C247B6E23F35C4BC5FF83009F462F2EEF4DBAC5FD158A658
-57F9B6DC1F5192DFB169DCB65621CAB2F1B07BD22F4155A8E9E2B6388D430FDE5EC1C834D22EA035
-C52E1E34482EADC36B4CAE902AAE89A7284E62B3C84B608D6BD05F75BC31310B2DD3B2C08A00E073
-7F104F03A41989D5F6B9A2C38B22F1D1803EE5D7A4D8DE44E4ABD496A1DE0C0E12C4BC96D0122846
-3F0EA9CE9509FEE987139F3DD3F9D0DF4313F555BE85433718F6D05F197C41A9D9C7A8B0D2740196
-82D49F58DD5F66B12A6520D9F226D1DF1F1B65CDFA261F980CA25A92645B86B64606293F8BFDE364
-C47D2AF2C709BBE77A70A5712F2CC26F3D66F5BE2C307A48E6F887F681D30121E32BBD87271B5DC4
-615D28C309F15AD263FB37424E56DDA6E17B998B45BE6C7FC6C28E3394A8764C9EB2DF5C06626593
-B5C665D550D4600172791CD208AE9F37BC082B0B242B0A504B751B18F4D7495172B697EE217834A8
-A4FB7CC16D6F9E8BB400BE8AEB0850960283DCE725249FCC4DE97D9886745AB6066C3E2F64DD8AB7
-9AA11667F11188D7965DC11EB760B772E282DBF13249F31986AC6898FEBFE23E3E8B8D2C33E00EA6
-FC493850ECB2E6D831D1EFCA3C2EC8EE2E394599091ED58BEDE97D7A43B6F739EB0F845EAC1DF6B1
-EBFE876009CC5D804B15ED4B56761B3CE1AF59C07B49DC798A44532297AD73D5101ED47F36A3678F
-818297CC27F6AAA2AACCC9AA9B6F5459911D8C56CF499E390AE607F3790450B2B9C9BE0F006EDA0C
-715B5CA0481734CFB0597478E7602B0D2C1E4F78F03C68C17C70E4B42D7D2D3C95CF40F73488B371
-8E2CB05A549944D86944D78724E266C3319AF89AE430E777E95F0D792B1C654306E421F3D63A26B2
-1E74B6E8B21B2E2B9DC596D013CDA16D08E65E8F24A84B12B2BADC653E6E1110DE2E709C1C1BED13
-707B70A421B384F20CA7A9A9D20324DD383F28B2D3C7A9C53F5D4C6B7C378D26DF11CF55238BE1B2
-4FA70DCC178DAD3D35670FE4919085EB1CD905971D76A368FDFCF9D2F0A23739851A3A6D2E02D65D
-54DEE69ED5D81315D3EA5E356F94EF256DD267FD1E1A9EDC9CD63E743F299BCC4A4506233B8DD765
-2CA067F741603F93250C087D368F9E9CC4CC1A6DED567487C05BAA992B0056A77F630A72008E3946
-15A9DB24FE56A956650EC9DE90A6C2259189440247970541CA198748928215C0E132A81AA13208D8
-63C1FE817F70CA573B54577D10B73100AF8EA088208A44FB92ACA314AE5879706180788C17BB1D0B
-81B6B95A1C4E0F9EA66F9B39BFE12444A6446691A7BDB03E0F03D9F07A10A7598F2166F108529F34
-CD90E601FFED3479ABCFCBDE8F051C348E48C61D95B00C59EA1287423F05666C3D36288844067E83
-E14F6B5210842C742B89F13ACD126B9FC50ABE2CA7D7ED513D43B6AC7F41EEDA416BFFFCC5C844AB
-2D23D4DC09B2D510504CE98D02E72020D9E669DDAA344C63A1B75632F912A1C0DA3885DA4AF7E243
-E4A4C6493D6595BB6D56B0359106957259E59E336BAAF35BD1CEC5CDE735272EBCCAE8D4904AEBD2
-B32610C6FEA2B69941D6542ECB44D71092A3CF067708A3D087AE99FF29671AB7DD8758759B971A08
-AE1BAD78270D2FBEE37AA2DCB119D72F6C7B0C8509018A70D0B0BE2C6830EF8E0B24B1CE1141EF87
-3A4D7DCC501F808BFD94E4DC0F2915AA023076BCC8006490A43685EA25AAFC187302EBDE7FE1965A
-04A5A398985D29F08E085127B56B057334D88EB638A4DDE64AFD204974C3939536B1B66A54B4DB81
-151853915718F70813F096CC1B0EA25E363B49264C2AD17158A4489F91453FBEDBDE15D7B74D7F98
-E81DF23251785D58295BA297F295AA6248A912CDD4F1111E6B628EECBB5139709E76EA4AB743CEC8
-26621D08E6BC64691CC90B3C3C1778931A28D3D5B1E20E96C643316613FC487C9B604C43463FA453
-3BCA1236286E6F5A6EEB2F1D9C34BDDE4595495A365F88055D9268541CF1654ACF478D384A5496A8
-772EA1402751A093582A6625A0A44816B5FDBE166835D598644296249B92CC90AA3FD6445C9A19BF
-27F59CB0616C7306070F33C7DF4E1DE64AC8C5BB2FFAC1EF2B1B30E5A0275E6004CF64BBE2C6710E
-DCFC3AA4ADD60106334708862FFA6652825BC84842736E47AE6917180365C75B27505EED3C6108E9
-898A780E20C3F606A860229AC46D0471ACA0187D6D539A1B8820F620F72B41AD1D3BF3834BF48CA2
-AFEA8BF535AF74C4562DEADCB63D2F5C7585722B77C989342D190FF926C8A5263B4F25286F99CF6F
-C62EE6E2AD61C82B29D82468AC10FD27764278E5558CE8B41BA111CB2F040914451A480C93084237
-CAC8F66BB7C6689F340B8ABF0150E06D5B1177278A4C08742FE22F42C28680F190900344ADFA486D
-59718C25D37275BCE4DF981AAC35D2C7E85C72A0188B8953CFA516FD545AEE0BF4B8BA301CFDE214
-4241FBDF3D204E3D2823301572E23F204C97305A82401660E12926EE7BA6EA1A81FF5C007933AFC7
-3266FAC4C134ED818A48E7DA01C71A46335C845F9DA5E960B25339D551582B375814148D94CFB781
-FC56093827B78578A73D4FF67B6B87F40CFA5E3F4325D9108CDB64BD06427B88C84105187316FA29
-90B4E3E8EDB6C78ABF164F4A9717D523794B2FE772A04DABBE688CCA977090979B5F47CEB90A1DBC
-167D305EAB231C9F4260C4AD10889CB785169902FC0BED78DA15B8417453BB65856EA0BEA5245BA0
-573F623D215F6C0CF801851C305B355D26B52B0B343645FE25C78A3526841EDA480919A1BBE5F56F
-C10ABEAA3E1FCCA7C43EE560F067F1AA2AFD642F769D1ACE8E2AAAF38850F0D757CD808C921D716E
-96FBC07DA7860DFA70CEAE2888C0ED3CBF9586443532B68DAED9A926655C157A416C383A53D8F283
-2A4E67468112A09ADC837ED8EC95F70852921F50D4417239FC42EE3624CA97F682745CC5E76CC7C6
-7BD99F2180F8C0B7FB49539C8CC474C25C0DDE491671FF329E51BCFA779346D4686835A3AD6633FC
-B5E0F67E0CA9CED8F215BEF4D240453EB2EDD6ADB22278AA5B985FA140C9834D38753DF2014F8C0E
-E6DAD19E8FC54C03C1F6CB0F858986691D99592562CAD95FA0A5B2ABE4A8B54B457D42E8C33A2D19
-51C0419A72FB94FDA78ECD92BD2A1416459E9DECA9469F35E4C47DB531726DEE8F203D7042EDB32F
-025DF3D582547BB1D45F7A5B70D317DF4EBB16E36B0D798E0932FD2A85B04FD67143E4B287A50416
-2C1F5A037CCD780088C5476385AF8168E12D97D44B0630621759173C8F1E3006B5B1C6D7138B7EEF
-C3CC5F54E24B2C3CA7B41AACFD25E554880AAF406EA4C3C6E21D3B550B040FB1952598A7E8E6488F
-E38288B2AEB6C4718338598A2BFE4D2B9D14C65732DA304C16FF3E1F8F03046EF095B65FD609DA87
-EC24A69278BFE65C905CD0329F6A486B8525B7EEA4F7AE56C2633CD83543269E8ACD6D71F500D82F
-DFBDE7F7F7B1AEE67328549232E26CA55085B6E84D9E2E7F74068F93A90C4654F2F396E57C5F76F7
-E61CBBE523DBFBA6E76638BBA3064DA025A79E3A294FE7F1CC28A3B4C57DD6FDC48E541A85534B25
-E1BC11B4F78019457239EAEFD4BE9007D205F1D985F389DB22400B279C10948551A6B4A17FBDA0FF
-C9428B18B43DC76EFB15FC2182216F1B60B4E344A03AD6C00F141EF99F89F24C819C3E32877A927D
-84C2D006940F39CA8B71E5951673EA9BFD1749923219DE38929ECAA9CE43B06CFA7DA1BBEDFDA56C
-61FF6C24F40E59B13870D5FDEB82D981154FAE5D6D5152DE69339359461A41A9713B6BBE47E868C9
-33CD74C75DB71D13BAE4DEC85E02FAA14EAD6C0A253B16C79514657B15E68CCFF9EE6AA385CFF9E2
-C53D9AE40F85C793E4E8FF50B2B7420F4FE69807BC5F37C3E300E6B3C3549D1D3246A2E70F091054
-1135BDF805E0A698E236B6496702D061241687B7B8D1A0E517DF0476DA09D89667A7AB375FD2672D
-CBAB8124E511502DDBD08BA04D941DF1CEBDCCF7ED48405CBCC33774A68C5212FC6F132641FF413C
-984F8B43BDFD7B1A2A3435F15AF07EF4970D3E4A0BB947C181E9CA27CC14A35BD1BD096875B45873
-8CA244F88C28728B74E25CB8C4FC1095A56CA75E4569AD3082EF194ADD11350DB3B74B96761D4538
-596FF7243B1E1B724716A144106E080D42036444FD472998460CE9ABBD05B42AF9389AC452BDBBA3
-A13A96890025789F16B9D92251FD3B3BEB2C61EDDB370A20456E3BFE5F4039E2557C451C524F8087
-015BAF3FF05F51869FB97512968BDB2B49589C1C7AF1E085250A47657465F480B7023E24C76731AC
-0EAB6704123D77977D3A2C4C56B691346EBE589C619C04515D34F81FC6A17527D5D8319013C5D4FF
-27CC3925E24C99231AC7FB9EAF0BBA482D3B75807AC85D03CD09DE5D9AE0B07B7A813F0449786500
-0AE8A7E00080300F0AB8C399057EDDBA273DD2E1B2A0DCEFAD3B332E6D4AC1FFAD846167DFD70E03
-46DAF84AF292D4F424256ED5AC4E104F80697050D50844A708EAC9E7F7784FD01646F3BD0C595CA5
-1EE6BD607D254E78ADDC5E15C3B6AC4940EC865A5C23105B6BE09EA09F2C05D6D76960A843B81EE4
-33977FAAC3CBDA85CDD2F4DB7C28293A77825635992AF8F3B38B4480D9A139B1662345A8ABE1634A
-77496C3F57597D2985E9E54717AB2E99CA35789441BCDDEDE9A9E2106B401D9684ADBEFE40D607F0
-75C179E9CC03E59E65430DB70B441D43DF03F2AA6FF06F224B6E455B01C64FB89EEC9103E48453A9
-749B4D602808C7E408A8903091D85E06AAF635D0D529C3CDD1B8479AC0F4208C284BB678A547F2BD
-77BB17C86D4560434F7AD1937760A6AA55B614CFA9FF8C9C96561AE6C8F2121C4E20237428BC51DF
-2099B6C49E3EFA18E6D439E6E6981E746EBB1DC461259D8EA0F8099C47CCA27B2D982B72C9A07CF2
-1B3C05D6E26E6E286E348B8944078E24809F9C5F3D014B4CBA02533F5621BFBA1F0EDB776C634746
-703C9F73BA89B1960A496420C68F54E5B901A6D733D7ACC79F275FFFB253F389AA480084468BB34D
-A1E797E43B7F6E8CAF5E8C93069A3A2730E57EC39B677BB73E3F07C2055599F7062E53B37A5F0099
-907D2ED87FF7A82C95FBAEB888033BDFD67BA3A6031A4CDC56CB1E4CF5B06B46E16D988BECCEFACB
-9E1C037023D7BF5CCF5D65AA66A17AB361BE7981F132A578F3ABFB97960A6034F052D9D5AFDC0679
-782EC90F240F943A5F9A3D969ED7399254FF67D89DF668F7C56FCEA1FFDCF20481474AC8495D3AF4
-B6D7EE093E369C057F0B70858220693B398ACF8E8143558132E4391405E30A73937C53402E459F4A
-A3539CF7A99A3F51C0307D045DF8B77757E92EA2F51BF0BB4F77D3904DD355665870C2B59F1ED7F8
-4FC71FDD7F0B6C5D3182DB77827CA6A2060D2B8C83C4EA4A432EF43A4D0A952CC6CBBE52A9F0CD66
-1A538973DE41FFE9C5CF55F2506B9EFEE51FBAE5E63BDCF5528499A47C031163C88D3022606784DE
-2F46A9C9235AEE3D4F71D4959B0CFDC5B7E78C8C0A8F9DC99440C2263DBACB343C5C648577F5610B
-50EAB1CF7FD02419EF3941C7CA0B0E64EBAD4B2CB05A0793DBC38F1946D44767BD287F5E9779C611
-CA0DAAA1E7393DBE0683C8D3455CDFEBC0E64B54B737E298DDA605227C0C4BBA87AA3EC7FA6EBAEC
-39E6EF2537D5974391D31739D9FC42983D81AEE44711C823F35F8E2321AC74943871739D2DBE9748
-FE68592263E7713F27E0D49B9B5CB7A4E55DE54E6B800D15856450FFD3AE5F287B12AE4F438B20AE
-9E27E6CAA00F3EAEADBE08432684FDF9931E925544A680182602A3C1997DE5D0630BD5A010535E66
-E1C123013D23966B3545C7431C39B97295BFA4099D14461004C42C85095EEACB9B47C593BC6DB863
-533A8619BAE09095DE8ECA432D4DDD49AA600D277E75DC3F5C6631E2A05382CB007825FADB77438D
-CFA78E252D79B6A196D5164C2FEB85D75ECA25FF80B1D97FE10E87960CA0FC47C41D3A213BF141B4
-8BC3AAA93FA86245064668394665BFD52D12C3BE4CE39EFD8111754398A944C3FD1AFA98EC337BAA
-AF899D35E804CF416AD7FE45FFF13FC6354007501043F98FE8428DE8013901BA6A28711A2CA85A27
-0BB135B72F1D5026E8217581860729E94F2F1878A0E96C59E9F62714FB5F8F25003DFC7347E99007
-8A9A331CB3A6A535BC61866F02513DEB982C4A13ADBFBAC3FF70A7335F40D5489E48E5EDEDEF1619
-1973D932479C62183B0E25EE8C4F76D4F1AE45DAEA4A12AEDD9EF81D248E8D19F8C8A5BECDD1EA1E
-98783EB7A38149170851B1942C96C53DE06DEF80913BFC04E539EC67C110498D15B78268853E5C72
-F485F8A27B768569E54241F6115875E2973292CF48FF91D45EBED627AE9F0766D22201B20AFDD40E
-5B17CF337F2999E0BD15B86E46EB3C18FC12B7DCADCF9DD50C6C7E3F37E615A892DB3F57E250A072
-A49F7277DD6A2C8042698233D35A699B17ECA5DBDA6D250ED4A16FCC893BF0DC2E33FB1EBD7DEDEA
-3C1C39603C8B7E1A5A833A8FCDD5570BD088749BB232615366687962C7E56ED089CD7B092505CAFA
-5A80F503C4CF337F07ADF0D106937E25670839D491F7BFF7A523DB609D126328C16113ECBCBF9C40
-04904427A108618AE5D4ED809F8CCAF72251104C94EC5BEE21F91B179D31DBA79CEEE5EC7FF698EB
-84AB1D2D1A624F58B3622A78844CE51498B2CEF38EAFE259D22C7BA61104651A862008BC1DDDA58C
-C45F663EB26428DAA85E7785363A69D2790996EF5D9621D53042F42F794962FEA46E46F37B8AD1FB
-76FC8D5CF2146843F8CC625139C75FB42DDA71A752BAC48F294E4C0C8289FC46DA5EFD9C91BDA6D0
-27518B7E81E8B21F755A9615627D5812ACA674D1527A1185EED4E3C628196E7D0759B1CAE6B9B7E9
-01E9599A65230F1EE469CD33B9BD9C104C44E3C1AB966C9678BD0AD78111A4E0F2D07A01A038CEDE
-7036D0534D684A1562A17AD64A00F279200C0371B1CBA61747671D2A21D3F9646CA290F6B82418A9
-6FA177C6278277504B7FBA936325F5FA124AB018A15DC18D2C5E8F93CDEEA52BEEDB78A57828D81A
-3E6C38B9FAF3DC4EB7273ECE3EA4482A1C6242A335862C2C3717F9C9ED95F77B140C4E1569B2192F
-C7DCF702D0BC9A50428EC406F8BD0CAF886B4D979320D3E429816D88F7C7146D960AC12E70F2CB7A
-9F4E3E366665AB3F1B4B6440F55EEA26DC9EE0096BB7763731740A537766490C8C174723BF0EB40C
-53701AAD12B21D436ADCE22203C1053A9DC4E9F17AE617888C4B4E6F3A720E4E6366BA628221A387
-D8AB15E04AD69387C310D3528BD2FAA5B22BFF3FA494F5FBFAC4F771C9C7402B95580C5AC4BB3AF6
-92A70CB2C851FA5CF1173EEC3EC29B5A05A0B728BBBB51D3B7AD8B0AF17A1563E82FAFD93F8B7118
-1FB7AFE352874F4EC6D334AB6747519AB8E847B7BCED33EB5458A828E074E74BA621BDCD03FEA604
-7F7B6ABDA01FC7514BA1AFF0D4D0C0CB8F4E42D5A87E395D9ACDD02CCC220C157153422018725846
-009A3ACD8C8CDDB66BC6836B4026FD9F526AA275D06C813179E5924F26A25094E7BDA8BD26AFC4CE
-B41D8964D4FC4AF1DFB0595BC5D6714C32F15DC7194E9A3A73013C45D8FA55CC0550A12D9AAE8E9F
-F199FA28EFC2426D8D1DEFB93A65717AF3EA8E2D5B4AA8EF0EF38E9600F7D4E7D9F1D67A2E63ECE4
-789FA74B159BFE2F91C19B0378BA52E93DF12830D99553B6618645E26126842AB70262D96E35E5E7
-50ECA0CE3458B3E51BEE2F21191136DFDBCA39BDC07939E521E4F492F392DEBD029C1EA237BD89AF
-76BC89F618D530160AB16269FA6B693CF14BDC4EC7C630025703C5337F61458FA09104EB15C7CB20
-AA4C9BDB7CEF3A09F25BC7F3149951A7CD75372993B80CD2112F7674CEFD6AFA764AA3486730D2C1
-897A264D82A91709FEC4A21E30D812F558451804EE6F3DEE2C4C437846BCBDA07C5B6CBA1D94AF02
-9163B7383CAC6E088AB1DC14ED3743EE77E26EA7AD3119A76C0B5F925C4DE305CD7BB3A09A453947
-5B9BD79BE28FC462D8718CE05F9D94CAF3387BA55E6E447BF81A9EDDD3A34E17BE66BC52B0C0BB6F
-86F6F008829173816D205182ED2ECED319864A796AB65D4E3950288BADA94FA32B6F453AFDFC6C39
-A4FCFE60353A64627E2057D4B379D3240012B3BB0ED0C7876CB83C1BA5EFB6E2A03F340C2B576731
-F848F762A7E1CCAF267EE06D621BC33FC245D0E1547ADC12CC0EB58B26BABDB8EAE9CBFBAB93836F
-FF22BDA1831DD01B7346AD377AA298D84628BF1C07433284B0A90FC89F5AEB2651BA2CEA405D4F52
-DDC0E74B871D43F71EB4ACE0D2B401F9348EAC3A2EF0AD295036BF6CF6F870D58E00B619D50EA7DD
-77BC28DEF91D805CD527DCBCFDC16C042BF9B874E3B1567EBA4C1E70744B9E7E5BD1FDA6A5FF6E10
-1613FBE58DC46CFAC1A65ADAF65E49757E9304E2AC9A91E0588600C709A61D4231730073A36D473F
-518A145E141D0A5A494441B9EA99AC23F60F54F8127B477E1CE698BB4129B4B1DFEEDF10D9E665C2
-47A62F112F5CA30B0AE5DBF3E495FF06EB28EB438CE8AAAD84D5F50FB56A3AF002C23BCF66ABC270
-7AC233FC0F2723DB99D2CFE7D3B3667732A531F5DC315CE74EDB9050BF75D29E6430F57CB6778B2A
-CBD57DFCEF896E6766C8FC5C9F9FBD701CD62CACF33EE0FC95E78DADD205B5F42CC63024624BAA0A
-B4DD447832B4E1DBA77BDFADD223989F8E958C8D759AAA37930664C6EFEC708116248A2A7AF3D656
-DDEAFD009B7F5333854608E67E5E588A857167ADF9225CF6C641F5E19C3E08678A281199EDDAC831
-B57223B1BEEADFDCBC8F6F25D32FCA2336C808162E8F381656E847FB6CB13969572425AA05AC830C
-33DE6E030F86A3A85D2A66A77F103C7042C97205526DC882EA9A00EB8BD5519847EB424C15F808A9
-1652A6CC89B66A5731126DEBADE123C63D88A2E550FACDEB3886FF98646000C64B3A91078012CA30
-904B71737CEF6BECABD43DD702880538F5A70085E6CC6015D2163681067C3D513A8C66032C34A0FE
-17A58AD4BC97CA69BF41F11D5E910FDFE9729652D3EA21F8DD8CC19160A8FC77573B1E9CEF4E790A
-79D8AD6723B6804E9616466C935303E063DEE29CAA6C3BAEBF278B818C2EC2F13ED645AB452397BF
-00DB8B26E115026E256746CD0C78A959364FDE6DEDDCD0F441A61A1EBA32C7BC172BB09512148D1E
-BAC9E791B7D51B71CAD2DC9B83B2F99B3726607D9CBE58B499A13753CE87FCDCE21C0AD0528ED0EF
-B9B2C927F57C78C626248AA2B835A0791244C5896686A66173EC9F802C4C633A42B086334D2A4878
-0E53D00809247BE64E529F96AD2F8B3922A6097D414DDE1EC76F9552F9B8D58B8E34F359AD792B2B
-E50C26DB05035E7497162E7C49C38D3CD9B98D620AA67492BE5AFCA3A81A7080185C7F0B5105223F
-1FA77805502A2E8C5FEEA27699858D84A95842C5F2FB68686D59FE24091FCDDE139B6463BC6C7B1E
-0E90D20A83651AF00C85797BB9F53ECEC1675C7EE636D0D9E77DBD8F89670F855EE4D4800FF3F695
-0EFF09BBF8A0DAF6B8242840CFA5BA73BEB95115F4A78BCC02D85ECCE0C0F2EF6F328AD1DD6CC049
-5A3315B414A4D61DA50DA46D7ACCEFF6EE56451805D26B0359AF193531F95F6589CEAD6FA041AF15
-3067F88A0A2FECD135C56682DB2B45A71D1FA737C064EE9A4F404BB72A70B3AF0330359393247EC7
-81512482579865240A23CD8479F21C2C44A119EBC4E81B308DD8AA86E60C3DD8ADA50E0DFE8308EB
-1A7F201EDE8DCFDA405AEFB47E0E6CA7DDB376DCB21D37F7ACC4D3E9F26B03A8DE0E8940CA3A9E75
-963A389DF8038D2C486072F61C0CEAF500753C7A6352B1CD0338D9212B42A4D3DA23D5BDF44C27C9
-4B88A415A3242FFE2E1B332477A21D2B9CE075EE479C6E657A4D8874A8C53964229310E01ED4F3C6
-86FEF5258EDF3B464DD6FFD7F1CAF473BBE722D60FB14AB4918E93878A8AE4773930B8CEE110F476
-7F42A52D9304C55BE12846C911A10AB9B2E036BF9DFD597F5348D42233315FA80D0F563C388BC253
-2103F05E90DBF1923F229F980A2F4585C7A373511372D07DCBACA583099EA972C03E5AA67E663882
-6DB134564DB993CEEB6E7A6659C7C5C05C310267D5F8A24EEC2D5CC3E3F3C808E6D6068D1A57646B
-37FABD98ECB7BAF99E7D9AC4414A491A73CA34C52F394352F6B5A15F0FC4D88622DAC694699C2464
-84ADAC3B1D366AFEDE2A2CD2042C90516A666A19A91C80248B11224BEDDF1A320E230739E755D098
-B6A67315535F4C187CFA67ED817A035056353FC859BF286317996FFFB478A2248B908FF12ABDE705
-402224A3EE5F463DD3D243875C84E02DB968ECA1CC52C75171EA50D6A88CA91327A7AA5795019F36
-C0A19C093A1C9D3723C7568F9D41F2E4FFB712FD47F897703D7A620B586B81936C84AAED61D84332
-B3BEBC4F95B796B93EF7A1F565C494F8A65EDB21E2EE18DC025522EF8E599887CA2836069CDDD889
-88E5862977B7472584303198CCE97EF9F9E1446D1F1F5ED1CFC666A8A0C3A03E1792EFB60A9B4065
-49E0DEDF6ACCDBD98742568B4735A747D8E5DE21E630125AE0C691D054E42199C15B1F80CAFA6E7B
-B2005F374A9A5F9900ABB7409CCD50C3AFCCAB1214E6A856F7C7EBA89BC3291801E1343DA9DAD2C6
-ED075C8ECA1423B43E587AEC67E6145272814B3F191B3C285639F9E2D6E148A02DC2CBC0E054D629
-5CD05DBAC1950400A9189316F0265B86A732D302C5BEE8ED233768F237C62600CBAAFF3A110D5EFB
-6CC7CA3B92D965CA7C5E8D3E64ECF239FE2507FC797FDBE54C1112B28D4DA44C60AB09D994C5BA78
-D663A2591934CC052BC70CD1DCA3325C66C9CB982E2039F5DB70C848D3DCEF655B1C2CD0CEC8865F
-E8E1C0A267BE4F707ECE6F5A3DFCA3CC1EDF92C760439F51AA69A4C1801E96CA4D6EA4AD980258F3
-D15C893913ABCE09101984C61B91D603053E49A97CB82FBA707DAE8AF1D579FD69C8481CB7B712CB
-CDDB4D287BE995E32C02B399602A08B9DD849039B5673F1930BEC7BF366EB082D2CA5DB2385C8CC4
-5BE3FC0E31820191A814EBA7C4F23B1938E6C4D800732787CD2CB97F762DFC85D4B798809B5F2254
-D826CA42B32695428D120298B44CF38494E56240B75DF1E41E46E53C44DC505452256DFEC819408D
-605FF14D6C1F3F152F2FEA96EA0AB3B472D8704E06BE9F8C3E8395CAADD06D6DA033E81ADE5DC3B8
-3DAFF743C6E9E48716003D358DF63CD7FD3E2F727D1F2D0C29962F76D5C95ED44B6F08D052025A66
-5785F264A3D5F5593677B630E628B5EA81FB37CFFD7A30B7FAD226B6FDC82B0878AF4C0EC4F4243A
-807B9839EA62BCBDF7C2E9B30A623876E632E084EBF4A21EDA04FC88A1C07021D0C72EC3E969D449
-FEB08E5826EC20E55B21EA71EA59F6E3B0710B0DDAB3261B4A2029ECAB68C19ADD5174E55D5E984A
-4E5F38F592A302FEE6ECE732DDE841A28672C620CC5D687455A5C06FA9FE688394A04F96312ED025
-B7AA6FBCE2925F3AE559CC1886BEECDB70822E2E5CA3F732A87404B1536AAC469989E9610CFA440A
-CE43875A70CA51F36CB6F629D9424C1E35A88F92D5DA3CD8CBAE6E8425A36968E21F4F30349749E0
-205BFF8D552837D6FC39532525370BBAC833F75F1854C93FC533A4AA53ADF7008173A70D94A4EBF5
-38EA9E62BCDA7C20E0A073BEE2EFAC34D2EF1D03BABD5147659E50B557045B2EB89DB303749B04D3
-F54B43FED612FCC68206E001A7AFE90230D9C12F74A32C7EDB5D0241DC3A5D51481FD7C8FAE08FEE
-263FBCED7C7D911B3A303C835AF5FADFD218F61A9D6DE80485ABCA88200047B094441F7767B97A24
-E8C612590FA2407BAB1E8B56C71914EEF2355DD97CFAFCC192BC06FCE063D3D9D1A629AADC75E3BF
-207234C208E7E30663EDD691043065C9CBC473D97C6D4DD3DFF59D6A9ABCDD4412C3128F603160AA
-D8F81C6E7A4DCAF35F3A99B4EA10A34375B477C2BF846521A7EABD4D28078E9340452A198F3F5ACC
-3DB7E3908939FF6E3709C6A3FD9889439A4AE3E10B618CC92E14B68429A3AD2C80940A1079452EC2
-66F254657BE7D79A2A24084AF73F6DF71FBCD32BF6913A3FAB25F977787F7BB0C3A3E8BAB38D7A2D
-B0B4826950643DD1E03BD7DD1FB149A33862A89226B7CB454DAF613128C2075470E42E70A9444A8E
-6ECA526345AB48E6F5160BA23B5BDDFDA6049EC44ED1461C7E0DD514B16E2FB285F72039DE3C7982
-EFD40D7F6C8E8F4CF35AC71B467BFC578002E8D2239A2FD2C4BCCDD8AF3D7DB1F4AE7F2D2E0811DF
-9D0155BA6EDE50B5F052F14F6AB884FFF244D8806C07EBCB49ED22D85DF696995991A954AA97A1EC
-D86ACD76E061B7541E87997FEF0657A826BD88EF3A4A5920462C6595E7A156F453291CA044CED810
-860C3B0149BCE73BECA713040664AD0591304106129600AF71317B0D2907839CEAC99515D357E980
-B1937B6E1200AACADA205421001F1B2F91753E80D2263C56AA164A74701A8D5FD28E46480B0DD963
-A683A1F355D7FB4463C7347C94EA5E2CA40B60B56297CB22D972C5BB10E56715A955605256C1541D
-9F3BC5768A6F355CD3B863F0FA1A781EDB49368F51B29481CBB41D4AEB07AF9DBE8F52C5D0FF75F7
-FB6431D37D6AED84D78C778871CB0F715B4F07580F23B586C969C81B471FF6A6C7276F7E141E02A8
-584D4B9AB00E7BD643D2C3FAAA299B1F1E25048461952EA42D4882768A70DE46B213A287F8D31AC4
-6D5436F22A796C05D1FE50A9BC2A928066627A0D87DD57A3AD91DB446404B41557D1457873482005
-EA20916BBE46C613F456C849D46BA79D20627B446B2F49E3FA309AE14F8C420CFD94922CBC0FB9D3
-5A0F7DBEF577F1849A1A80E0011DA8AC082A8C6F61658E65AD177ABDF23EE17C8CF0D26B9FA3A6E9
-4837EB9E930336889767A8D7EA3CE980A8EA95528B004957BE6067CD9BD8E02A0F23CC1762CCA656
-D33412FF45E917FD4A03EB6E8C1F43FDB0A8965A33B4FD26BC24A20B304CA817E88495BA9B361A3E
-933717FFB0271F7F70C5D3CBA1E86D0F51BF3ABA194DAF32C35C796627D00C7B2271ACE2463E37E9
-7B3C826CF3DB60028F240F9452CBE08F7EBCC5FDB1BCBB3C327A9F450B9E5671916101D6E3E5E458
-CA31F04D12F592F83BADA2C3683D3886AA3B403963AB5DBE220FEC00037A745839F67A3635DFD3BF
-F08F367482962DED88ECF6322852D643A54D5D303EB04BFDDEE9BBA1EBCCBA7C653B3A613A8E719A
-DEBE3CE1BD7E754E5F4977E863E3C2D388A65227B451D4F3A4F94E06513CBA4AC1F2F511613FF035
-611684CCC461599000E546E4D972CA6960E095A526E4735A23421A4C9B597ECE08AFA2753592BD16
-DED93255A1E33DEECE3C5EB77B94670E8137F2A4A4B98AC193258E7DEA5DB8408A806188F2D1DDC4
-40CCF0E9A6E2F0C78FDBD7B68DD4939D2458C1965BF8BED4564B32462FFF3EC892C03B11D3EA813F
-AB4CFBE8D3016329C5B7E3DFED0F08284D44AA0B7A2F6BC96EA4503E8EF52A64C22BED6B452581AE
-8FF8917D53976471941A9116A2D878FB2541B561767ABD4E31CCD8A590CA03494C62AFFD64EA0A1B
-C779173DAD84999C7A8D844EB1259DE7BB5B25CD023537A474A524EBE4660B22568949E624D8FEA0
-AD37F4CE1EC75955EEFA49C6BF1803BE87E9C9865FF3F6B8525B8C15FE8835CA153D27E6C0FF0CA5
-1029A7A9185D25F0F14D86FC797DCC1F99EE97E2054B9C2A2E06FDBEB8DEF6CDD368BF23A858D9F8
-C1DEFDCEAF1B4A8DE5EAFC604CECCF0D285BE00AA912EAB66EFF4D37AD2EFE34853BBFD87CE09B18
-749B489943EECAE7887B006FB827D10191DAD18466CD1F86505879310A8B171F902EA0C26A388E13
-B53C700272CEE2BFB47ACB58247C13449C6BB9D01232C32517358F1A3DE064D43C18F8827D53789C
-CF3CE2EBE78949A6ABFA1A6B8414CE360A5E22AFB7D1DCE6F5A06182C3B984B4F9BB1A905A9D5A14
-83750A1DE0A857CD5C06945EB7D4A2A6BF1237F32A154FDC06D51A703D44FE052FD3C53E9E8F417B
-35D1C851F9203A8997521529F21AD8498F96930AA77EBAF82EE02A57BC77C792D9F220294B45F48E
-A8FD94E01CD25645D36D168923562F3FDC93CB79DD4760DA0C103C2675722D7A1B79FCB4245ED12F
-A0DB52492C9CCE58B333CFEE822812F7DCA68E802C451B5CFAEBAC608B950386B6C58239D1C62D62
-4DD5D15782FC552222CCA06DDF387B373E32C3C2864C63C768350C37283760F3515A5B0AFD66C48A
-B522EB3E808C061F5CD6BD96CD18C9839D30508E7D4EDB88E8F11E31E10919B16B7971F06D7877A0
-58D8A4944C84FC6CAEDF3341B48B6E0D3C7B85D710E0C35F5B5053CF4B4798B3778CC28B2DC7AE0D
-F3A49F9F3BCD8E95D746C35C3F47D68B8AA35D97AA08E711B5FBE70D1A623C82541EBDC51A827D0A
-69E6C049087AD26F256EB7577F58CCFFBCCBA5A95D093DC29464C9A38DE95BC6B1853963B2DEB0B5
-7AD1248D6F1625E115EEB9510B5772AAE4E3C866657DB0B3BF0E0AC345E116F8D4976B770876FFE3
-748C36165522991F46A36F193DD1A1C94713673C7E4C81582391B636C72DE94CE6254374F99B623E
-5686C13D8A8322E83E11BB0B0A896C6A8C2C4F756C5385CD7017F26D23F7C3EE97372C868C8C9155
-81723BB6B76B4C3CE8998E4FA6CA40B633DFDAA59BA902A4952DA90EC4FC3CF0F2676ACFA7F76F78
-236FA2DE10FD3545357215246BB7E527F277C28B353CC6D79DCEF21BCC8F77603CDD58A2CCDDBE3A
-9802F941CED8E035313875319548C41992A2BE939A17CC109426E33825AE59BCD17CB19F50D972FF
-CBE7D9B4B0BB095303D9DC9D406696C2508D6CE99E11CF00F6461147E97449ED5F486D480A86D3A7
-ACECB7E9A945984724EFC21C5079B1FD03ED803C2DEAFCE3327D2D7827715FD65D9506216C88B0FA
-26935E95C64114A51919D419038B1A7E9C1E829FBFB53275093752DF19891A97F3CBF7719C1FD6CB
-17019A6D2D25360ECA804C4B35172662CC4769D2B785C6C87E5A4ECCE31704E59F71263B7C3CAEC8
-ACB4C7426EC25F11A0042323EE6C3EEB04284DBAE2C770BC419DCE79BD4560AEA41571C3B595F525
-60191DC7A8FBF63D413A77A0905E517441B16C2B501EA2F9E99CC38D052679F288FDF1894542E3A6
-6989A0090185EB2E75134BFA3D9147C3DB8A621D9D35E37786853779E157B47F71626D6B3E633005
-9159C17596C1B87FE2B4FF47ED9D78FA4C2160077276C8B58CEF5DC030B4A5D83CF257096C047FE6
-4DE307C598B815058E72D5F57DF5C369E664E137DE29349E2F9DCD8C9F4EBA6E765B6327D7A20DFC
-B20711273FD8091CBA605C4C494248076F7E03DF65A6A50164980BBBB708741E5BF6056E6F996DC0
-7FFF408C5B8EAB8DCEC315E92873228C805D4440A6470E3EE3983758DD211C9CECDBFAA4C9300CBA
-00608A4B2404A3C7AF017A3B7E67F39F0B51ACF950D3E75CC7BC2B8D3480202FA958E8EE0B240501
-5232EE0D264C7CA02C18CA45CB3C2DE322D3EB7F00F9455DB6C5B1F4E59C3E95520EC36D7D903CBB
-625D70B54BF6F8255E412604BBB29FEE026CC660577F91DB1DB4A613EEEFB20CF7AE3CD89D565AC8
-38416B01B5DE4FFA5550D17FB51FBBEBE21CF1D56038863EE931B90DEC2E211ED42BA92EC244D4CE
-2C4EC5CA87A026992772DC2AF754FC982B94F36EA7B7BF75E0ECE90CBB2A6AA1A012E8898BD679C2
-3CB3827C35D5D02F0569C7AA82615D4AA67518ECF668D3B57D6EF1A8013424AC2268BA0D9A74D588
-79EDCF6382A89D397864940303EAEC45A38304BA8B1CB198967AE23EB81054BE74B16909A405E8A7
-799CEE3C270FE2A6DC50BD7370B6B2C8FDB9A87D88D5D40348D3984E39C693B6F4486D994778607A
-80A3122872DD65E40492107C71C3CF708A9717E9EEFAFBDDC239C53AA9645B711038E59C8B861B37
-411AB2039BEDF9CFD00F08D9C5D76154427FF5DD39878CECC5D7BFB3F1F035087185C0981F3C2139
-BE84872FFAD3408531C4EA9387B89F5E3EC779E8850D50992DFDCF9132BC551E985943B07618AC10
-D1150451F0844C0DC41D6E17EB508DC8689EC726400D5A7F6FEB3CC7BCE05F09228B7CB2C5393664
-D8DD9A4B96B1020EF25D70AA2D91CAE93AFB5F2BF0AA18CA5C599FA1A708EF35BF8F7FFEC9AFC1F2
-42870D028B2B1459063B493943EF1283829783E1010242E5CF4DA39D93D506F3892936E7D6CF1124
-70A521D397438733D053944CFF12D6FFAE8246F20618684F263715AA98E15D72A526383E05C23214
-B78338E5B476F0981D90056E6E5D0DB66B1DF2298E597B2ABE1D817E18BEB056E65EDB4234342D96
-00470B1420C9210419D834E431B82F58608C87AC361A02D0F1FE4B470A3D71E0D21BB87E1023D428
-E23D596CB9E1A2184403A16E36E644BCCF9BBDE27290485057E62827283E7380AF786BF395B3961B
-A5EA469C315763FA59E0F176EF81985F38B882DE56A74D128E256D1B89939728E55A92ABA21A6B78
-44FAC1BA7BBDD8B34A18194A2984B000380FE9F672E83EFDBF276FE797A325815B0F25CC95C97A9D
-ACF56D583486305D7C9E51A7E337D14E3B900333EB38FD93A99587DA2341B10C059C71CE080FE753
-3C0F059FA40E560AF9C4A41A4BE6FB45846FF8F78165E10B4AD40F264BCF5596A1E8EF8CB6EA4B1A
-3A5C69059AB1563843679ECB2511A90E8898F54295649CB73D277760D8D04ABACC7BCC6E777A0530
-E2067CCBC08673F9C8C178F9D672AC8A15E5367F0C5651B53E75E0CFA57C931746AE1A679C246D7C
-9417F1CD89DDDBD1173C2F880B7B3847CBCCEBF99F7122E832D7C9BAFE2B54CBAA1ED48158DE3F36
-238B76B0E67644A28AEA996DDC006F6AC0242E4B667639E7523CBC90A0561193C1AF34481C2EF402
-EE43A82E1EBF4E3D601BB36B2D95CD93550D61CEE7A94E72F6D30C32C8F91A61E964B1F66ACFC398
-7F95D4028F116E9A9A8474AA29C1C1A984BE0E393BDC41DCEF6A6F1018DB60D52024899D8EB5D55D
-324D73F39BFA47377B9E15B3B06A7585589FCF52A54684173E5183367E7B0952DC4BC2767C4C6247
-B1D6103E52BC7B7EA6298F454C5D97AC575F19C10ACDFF4E10C7D3755CFAB4200CAC545269FF1D8D
-B0D607C7AD47F40DDF257AB4E7D0750577003C13E4941960C3DD7B0774DDAC18E8ABAF8F53E03CBE
-F6D57B44F24CF821014C064278FD51B3427593D17694B4ABCE81F49CBB984C5878CDF0C38D1ED7FD
-99B0B9A3BD8D8FF6219588B3B8FA59D0CDD1D9B2F65122AB45E48F1757467B9204926140E3C350C5
-A927A2E700173053EC35D3F1DA2D7258714C97FAA857F0898917BD94625C6D1E2D77138EFCAAAF51
-7B17FE187A2212C24A881A2C6A647DEF6376ED80AE4175C5EE80921F001995B44E49F0D33DD9075A
-CF33BB03671C0BCC34AD5784AD1CDFED3A6D9BA103B3DDC1CC2DE74DBB576A0277715275218CD19C
-A8899209125266D8BF1286F881DCC2C383749D1E768D670F4099F7DE959EDFE852583183C9111601
-2881A56A24AAF020EA45CD5F39660DEBCE30AC1C7B8CFC60387B1B0C3E361BE612FDFA9F01B7E4B4
-A18839A2C7E0E393EBC5AD9A8A4EBC316A740C1C295D9EF5F4DFFA0667F9582C0BB837B142C4CFC6
-B1798E9476D0631111033B8BA75A10FDC800E2AB1E0E829632F869CFE4737BE9E2800759EE0831DC
-7D1195EAF80555771981DD6DC6606812D92CB8EF86447F5F6C6F626D0E265C67E52A6319189EE349
-D48E49DFE6A9E98F76C414A1E3217AE0A215A17E54AA498F4ECDC50242ACC7E2322F63BB2FF2189D
-057E7354E32A3ED1803116176B9B9D0129930F919E2FEC280B2C8924E49E7BB75768A2EE1DA8ADBE
-D4E3589906DF1B923AEF84C1BD327438B731012E69BB0D43A1842CB88BB54EA4516477F704CFEB28
-6E3EA483445AD4D74586FCF32E96D366901084365F693A53C5FB532FBFE7BC0CADC404C4985042D6
-8DBB90A6DCDA3531EE324D558A214F935CD9FCC9A0CEBE9B5FB0323F4B3820529599EF48EE068B5A
-CE85004FEA2984F0A86F5AC9D56163BBFE1142B774148F1EB0A4DC89C3349052533A7DE66729DB24
-41B82F8F7360111DACF69293C9B281A0534F3E9E9224A75C49A832F28B2E497262475507B6DDFA9F
-01CA0A6696E3F5AC7EA68595EBA0C2EB8A47813FF936D84AC1B23ECA7AA2862B793CCBB0DF9FDD49
-31BEF354CEC12FBF478559FEC29F81ADF4452E83963E56541D31F3691C93A50F0BBA5E9552C4F2A2
-3A6E53060729854A3DD71CC4308B91957DB19E66AAA18FA67055A950F1C2CFF78A03BC1A588CF624
-696068068719AFB1001C4581EE072113882D9052B21E355D401ED8CD24D067B99E616BDA5A0A5A93
-36FC499632B79FF2FD0DEFB096EF46B75E2D4E0F48DAEA239719FEC4D9A29818F5875FC5041A9EDB
-D26CAF0ACE14CC80BA49BBA59E918EB3D8F1E541AA16026585A2F72DF7D83541816DE46981FB3EFD
-0C30E458CFAD04C79421AB7C4925E23AEA07F9F018431C790002596D26BD9663B51B699DF53E4882
-CBC34EDE88EB55045B889B6062E35FD1E018BCE785157B85EC3B9CA6C85D4B16238275385B8285DB
-012D8FB7C9F5B946A41D7A0FB878FF72C39683144D8A007CFF631B43748F2D5FC690300F9BC0C837
-006B92ECEBE0605E8C3A4A400E18AE8997D1B45FEE10068E247C647CF82C6DFBE5E881D511FFA687
-B7AEB78546BFD07D5F7EC242DCEF4930D8AAAD8C6152B6642AAC325963FD147F236BB850A9966573
-9D06CDBD7CA79A527DCF461E33F22BC9C5DB00DA2BD3DDDD8C99D99793BC98282AA8872FF96C3942
-85D82D9419EB78B6AE37A5F519397700F75D624A09BD255B576E955A323E784E8FC31131F003B0E3
-024A4F58FEF2A6C043796201FC425482E1155E229D1B2D43EF7B0D22322B22EF5C9A1BE026A1C3D3
-75EDAFF99597E1E5477952A4E8D2ACF5D014BC00DC2A272FA62B6983E27D228881E2EF2B8B95A681
-CBE90C5FDE16331C85222FE2A16F0A3C3000A63E2E21666C0C119F8AF89A543D37977069A5ACF155
-6324F05204CE8CAD50FF4FB630D9CBBFC324DEDA584AA56A99D3A76FF55BDC2C2EA3A021361CCD4A
-83C7A5E2768D210FA6DE889FD48A39D679C94EC3C99A8D33FF11377DA7F6F1B71A2A05B302ECDE95
-4F26773F39AC881542F0D0969C3995C3519A8EF70B4220D86BF01BEECC6462855E7B686E1AFF1CA9
-1FB8FD8B4A69E10EE0C2AD94ADD44449506F9B6EF43641F2026EFF6E605C670560C2B74706FB949A
-A7E8CC6A2D0D6207E457E7FD87EC1B9092DC68B9143947CC8ED14AFDDCBF8FDDA228A76847F96802
-E561F67CEEFDE45AE587673983FC04C96744DBAA83F2DC838D633943C75DCB9E6410474EB27B348F
-26E505F0AB90878940E846C5E9F3C5FE8C3558C3236B1B88C405716949B8506841CABE1717474BB7
-C30DB91CDEE33B0F844811762FAEC535BDCF84C1C747CEF9B1FA61D2AFB5A81335BC42C06A94D7D5
-9B7EDE55BCF6F9867AEE107555CDD084B7684C2C87087475A39A9DA6347BE281CE5635A4D07865BA
-98CE26C1465B1AB0343F49FF37B4D0CA9F3BB693D78DC3B21925CB996A038DCC172527FE57C07460
-EF39C07D4396E7FA970D9F22ABD21A9C794B64AD96762C7428F59A8757C36D6C4FFB23216195A04C
-2A2C2E7B10EF7193931544D782FEE4B91E01119C5553BBC6252270A8D8C56DD62D448F5AD8DC69CC
-B45E1F17F0AA1E445129DD00F000005B23D38DE93A3BE55A4C041947F36B4E4536E307D0180553F9
-2E46B743881CB5D5386C48C7D5F84C2BCD06B9C501F78C7EE61FA23516791FCF4DB278AF688A2E60
-10A56692AD92008497487EDFE4BD5FA083FA544138B20D6940020887E35D46E093B71F7A04A67460
-DC8116B4D4839625D7CA6959D6831CD93F81AC4EA2709036DD738364FDE71113BF22EBF13DFE1642
-E564701E6F0FFE7511EDF03FE448C2B28C64FB7D54B94CA576E481FA56B2B18AF10C71F699B6BFD4
-7459CDE1869D0FD306BF489A6F42E5B2F05CCF55BB6B9526973D19CB134CA7F13F1DB3716F8CC217
-73A832568C16250B5CDB16DF24BF81D49F5B37018BD310262EA7078107868AB0216CEC83CEFCAB1E
-9F2C665A31585CA04DC01879CAA79AAA5AB201B516F7052B01B16BEE5606098393B0E5D9F9E5E3F4
-EB20F63C958E796DF41CF28839F5C62A0431648745D7837B519F3AA36BC6C08EF040CCF53D9B6D8C
-0C7D1A84D707EC57A3C6AC9A62AB37251A01A5ED40FDEC6F5BE6E34C6A91D058319439778A2EE5D0
-363E2E1F33463C33327D05FFC0CBF08D5BC457C7230448972FB9B4D0D782BA7DBF10D3FFEF8BF523
-6EC16D4DD6D0D870D9D5EB5C64C9A46A4F583D4F831FEE74B0E5B33A09ABFD4444929BD8F638CD72
-EAB99CF2E9551DF427683964A592E49D186F285258C5D5F62196A98532421D73E3495F82695FEEC6
-E1952C562D546B28618FFAEEBEFF03A57F4D855021F85B0C7BC37FCC6DA9AECA099B646B99D41896
-09D3FF2D56422F8C37E97640293EC7C90E3380887836F4938FBF495CAC14FBA5648D89282D8D49D9
-1AF73ED36581139D8BD42551E263E830EA3C6EB381D85C42D74C50DB0CCAEC03F535ADE92128A016
-0E811C34748309AF7604919B66CD43EB5CA975302DCB6076FEB6BDD6FF55976FE990FB0CE9ABB11B
-195403FB26E3D6C6A0DE1C5BE79E171A61E21F79EE8DBE7A832519813EF6B33EA098C2C32ADEA219
-AB2AAC8B093F40000995539D1276D5F2EF84CCD099B71FE4269BDBDB6A8D59C86F7D2E3FBCCF8773
-D0FAE97640BC1AD43CB4B992BFADFB09DBD0CAAEB8CD9DA264187C4F97300E9A6C9DEED5525479E6
-05C65AE336CBBDF4E5D7F79AD098F977285E065579B748FEAA97F2A753E1F962FCAB68D72BAA8EE4
-FF6691C23E31BC0F3E981A96FB440404856AE1AB32A7205B17D411D8F21C8C93B704D07EC594422A
-BC368CDA2B1610CE6A973F4474E12B78B532666797F5755D269772C9F5400B3BFC6C58395D38527E
-2CCCF29B56123F7DCEF3BDE5DC1DFC5B0293BB125085B1D2D929BC3EE84F4FAD571A4991C3DEE03F
-2DB3A3097E52B1A7D5C73CCB6148EAC62E8E36DE9A71C57638C6E4D5D9DED18174E8C390E50B4A5B
-913C074EEAEBE390B214B3A68F02862B9A296DB4B409769649E51D738CBBDFB7702E15C73C2AFC6B
-C37CE15171F4E822CF20EFE55D9F061AA43E648989628FF79E65932390CBB15D8E621333B18B11C3
-BDF96F841D7434E01AD501FEA964A75B248A35CD9DF9A37E48A1E5A09C624B93CE44F0042FA00D7F
-9EE89B9F7AB785E9C718CF6E7228F743271C2C9BBA17E5208B920E44E765D99D86650EB454B0FAAA
-112753AA1BD3A24239E9C5FC47EEB1547AC9D23731B8DC48B9707830DAEC60C8D3790BBA1120F776
-4EFAC542CFFBCD5C05F9510B27B2534B704ECD36C8B041FD49A96881302FFF5B0163A2DD09C751D6
-D6AFEA9170A4F4C4AB8D46E62F763FE1BDA51DD1CE4A27E772F3A2869155F762FF26B7AA6FCFA4F1
-292E56F03AAB6322BF867E7710C34D43B5D85B45AA68014AD7879EED051B1933E491496E3E26D9AA
-8B80A07BF2B94F1077E84A9726F08199887D66DE7A307BF33C30DD9CF3DA188088C03B2BAD09A217
-6B110DB2C868B53DA9A66C85737BA66C93C58A259860E294AD0191E3A72C73F40B0BD98699AA08DA
-F03587B78F391F3A4313C58D9F29B53C70785637BD0C58310109C54091AB0A34CBB0C478613A7AC0
-FB8F0A8B4645AC966395D8BA775262CD291136AFFDDF01C1D83DD4EB3B59CCAD18057FE7D92A8CD4
-A58F22508D9FD7CF356571F701BBB23E749BDDCBF8A317FDA0AEFD952BB18545610FFAD3AC143D35
-1B8DB3F66293375E0E50235F0D0466932181D377EDD32A5F0FFA4E22B5A0CB4F343D9A7E4A342E9D
-09DFF6C697630CD3971802C277A5590B8CA94BDE6B38446C794D072BBCCB724D5BC208EEF1B018D7
-39373BB910D668882CAA779C2D686081DE6A2606417B54D7C20E0E7F722648D893E4EDBAE8F00D6A
-6DA3712F91AE860C756D1127D133AB828E9D80023B50B162C5A1C5CDF70CCB3FDD7EA060ED20838B
-E1E50C4094C9E79E1A0187CDF780CAF45A725964F004253E034C5BE46BBF89D94631F1A33BAA35B8
-4FA2A9D08481C6674126CD96ED05DCE48BDA069D902D6836D5DFBA701DC0F98A863E64F0E312145D
-8DC0B77F25B43AEC729A1243B45B08CA228DD6101CAA2AC5ADCC8EFF84A4CA3F254176C2CC711EE6
-C273835D0FD3528ECA2A976B88E51FE347FDB60F32370B66D338931D6581630ED586F349C638960C
-31AE4204E89521A96E1219E696B913DEB2AAB7A3B022D06F34FDFCB810A04E60A4FEBE284C2F063E
-0AE9EDF87704921CCFA193BDC912B747E13570066223A49F1F6E2AF0D4D65DA04CA876FF7A462FFC
-9C0BA2CC545C3BD36DBE762F32B2D6BE5867C59F479195C92440DC165098B74EA5C3AD93CDF2D410
-B04C16BC7801E7956F4E5107450787AA592493171C3628E6B8F49D4F8429EB98DC52EF025F001387
-BC1A7093F7A99F10B5D2D7DD8BBB393BF6E56F08F4F7FA1A343F220D5A1EAE7168C74D41BE1DC1A8
-3BD65B72B982F4F7B34F24F97F9EC9A91011064031FACFF2A14921A32024385F4E061CD07D152E74
-1BF97156D951A342488FA7F5EF934CCAD13E2753A0AB7A1F565C2F7F6B349DF03BBC25BBD972A9AD
-F809BB5C5048A8CCEF9297B2ED3324D18867F293CC66E88B3A39D107B610DFE79A3B4E83A96D3D52
-A17FE8A62C9FDD271130148366942C9CE57558D023DA5F7501319EBFA33DE9E6D1E76D7C20DB8A09
-B657839DA99F3D8143F1EE6253A3295C9651FA4366547893C2DC7ABCBF4BB7609DE5D001E0A36D9F
-FBE01F7D0903B3208AE8547E2E5F14EC1AF4C2535CA8F4EA37E3F3CE172C7A1E8308995B1CC23E6E
-81190246BCAB6E755BF868D449BB02A2AA87C44C9CC0F571ADC72547CEECBE104BB274B8AC16DCB7
-5D5F458D356466B921ACDEEAE384E2EB1DF6EF393B41B9747F0A4FAEB4AF1928D9AD6FB7E06FDC62
-1E4C6FC98CFB43F88584BD55D9B97CC9549093EDE586912161931162B1B1D52D0443260DABA02AF2
-B4432100D5506546013DA703573FA8013685CC798CE501960093DED713FFCCF89CA2B9106390198C
-29A00864108CDCC1984A8BAB53919028C01B26ECC7925E38CBE6CCA8978EE21C2B06E7B3E48FBA97
-8E2A7D186E563C088F84AA23178B60E4729EE87D67B1091F3B6973676C1CBFE6530EB773C62E2C24
-97014AB0E8B71A1F4E86A378AA26591511BEE3CF3D64C94848582E1354E1605B6457823F2C5E640A
-D3802946BB2E7E8E594E8C04B430C2385DD40746CE8534F50842E74D7115F3DB0C72D1C9C607C657
-3B094AEB73B7A79876CFFC3E2F8C9FEAAA07D3BFCE05B61F7749A8793BE90CCCECA2D7077F25E899
-D3331FE161A7E86C842495D584C6E4A0880B2951D8A13B88C4672080A0B1BE36BF47C3ACE7288CFE
-41A8C1BAA6F0814A947FBD6B3AA72B6C73A8C578CA51CCC96F2352316C467BB960E981F2B6485BFB
-44B577E71EFDA16E7405954BC7C9F0759F5A9F1EBCD2FA9CC9648D5831A68887F41B15081A204C24
-B4B992A231DEF9E698D4C3A25B6F5474F5BE6A601F2D337A58A0D21FF37FD91EB86D1D738893A03A
-69F0CD743F611CDFFE69DB2C6ED0E4611D56F803BB0DC06E7FE85A303839612707647B1BE9FAF8D6
-84122CA9E5CB8BDE2936D3F4FF254D31529D7538BBD4D35539489F9E7316F24214B996BCDCF1818E
-749A71CF0E8845AA1E2A58AA62A48E02BA4564625D20AA220EE719608521D7D7A7FCA0BD8904A401
-9819D371F3F59D46C1354E5FC1A6E5F79B20CF4ACA2BF0F2DE73DA193A6F9ACBFE0B4731C4BCEBE6
-D96FE822965DE965232282A3A130361F188B3AABDA95A8A2790D9240BE008B6A6DE4BBFCADA05B67
-86B9BB8E0DFA0C30043A3B07ED46277E07B9808422C8ED16758B9C396F4EA929D769785B2C9568E5
-70A83B989B25CE200F1727D41E2B702E7F88F1784F4C83FA60A74EB26B2DA95126E508ED519A61CC
-151DB6804F61826C5F86D8FA89D06E526FED97A0DB88EDB432FF32C1ACC9B622EEDF601081AF7B96
-3C9CFC1D13E4A9C74FEA0A1C8E3D8653CD92A944D4CA6B0D306619AFD503506D77732D6514F604BE
-4610C2560931BDE0B40939BC1D126B0E97F72AE1B4A9252123B54F7A27E0CFA4425B4546526FD741
-CA77952B10D13E0AC2E32006A903808FF0CD013F936238C74CC75FD915244C56A8412F37F0134840
-347699508D6F3D7F3203A25B7C70100719582CD588590EE34B3AB13E255B613A6D00386A0104CC5E
-D2C646F09A88888D3751651D5646C5227A3C80E8DA1B0A331121DD2429F1F4775D30564DFF47D01B
-BE2C6C72CE4D1FD9A2077C04D2B0274B8916F6A9D1A4A6964A534F47CF241D5A8E34B23F85BE9ACF
-FC2FEA961F277539F215F8728D6788F67BEAF45502839BCF23D8763C3949352F00C579A9A4FC408E
-C625E310DAE61512DFE6844E82D36A2F81709E1F05B38AE9C222ED62C961EE63593CED7AAF73CE2E
-D3667740C77B309B93EEFE1B4BA65D48575A66BE86743DC9E5D3C2FF418D11F7F211B86E827EE1DF
-C3613E7498030F07050524536D1F8A94DDB6698BE7B963C55CB3F74B676CD815A7B3DF4B1A0EA2BE
-1B0B9A11FFBFD5B1FA49668AEE14629316AF436A0821C20BEEF7B3480847934A99F6D85B68F4DDF8
-859A754E009428AF89A90D1852C220A607FF0806E8080726EDC94D691D214B4521C147C4273AEBDD
-BB4A697EF16448CD9B2FC95293305858DECFD406B89B9F3FDAE2AC579E80CF321EBAE5701FB2F7CA
-D8ED04B4A63115886D45D6120F69AEF1A21D80AD3C2D35D2899F1902242B96CD349E0AAADA40F7A1
-1282B6B52BDD97708E58DC5E2D22D1153E5FA3F3B300BCDFAF98DEC2F4E3C82A1C85F985735F3987
-4F557579F422664E07CBE19DA680EFB0FC82C323EC5C4644C51709AC8D674608A8043C91E6C7988D
-430F10BA6CE1FC7FC0604FCD8F723895250AEC36CC35B3FA14FE2A0D24095DCC30B2093F2298F5F0
-A97676A0BE66C3DC9ADACFE2FC0F721A20E945AFC1096A619075D5E9A264C796EC6C90EF1AEEA8DC
-089B44FFC13D27CB2370070A52D4416C53F364393E46EDD7EDE00799960CE6E0D57E4909E88ADD64
-BDD2B0EBE2D73FA6ACF8B40280DAA0637E705C65AABD523B8815F22F23E9FF81E7829C7E4BC980C9
-143AEBE1A04DC0D253396BBB7268BD5AEEA356B610D5DCEE03135E00AE34388251F31714A1C40E18
-2652C48CDA2211A22CB6F02490E69A44CECB169754C53B16028D352E0119F5D5FAE0BD7EA1CDA647
-12A6147374B64244E21E9EC9F0D1381AD22D5B6212B26C3F9AA5F6045F25DD9F5EB4489EA39B1945
-331AC70510C5752557DE21D0A6CFC1EB10A98FA867B76DA6E4249469F591FD154D39E89364A43DB0
-07AA0D7A911CFAE6CE2B557997FBC44F55A27F622BD7B8B10EC9F5D10F2649A646FD964AE1B111B3
-5B46A252C4DEE44E7426EB5739F24E8A390694597DB3A1FE7800C97E59558322F0E49A0CCE2AD94B
-1E2D1026AFA771723E3F523916F55ED866C9FB4A2F759651C613A2CFF362028CDF9D38F05D4C7C60
-24C533E930B64B099FB1AF04B01F5FB9CA6867E6EFF55A772C5391831059987E10CBF987E3F378E0
-1329F73D54DC0484177D3C3C06F67397955FF1CA4EF8AD1606B70455255D631A7D6EB92BFDBA14A0
-FF28B2ACE7E81AD666EA9B3A0F5A6BA3B5DFE35044FA4B3D8ED956009C60E98CC132F2E84967F4A9
-8A67B336D5EE7CAF7DD1F74D1FA08619941361FA7312CF225D89CEF97E864C8369EAFAB94D97F056
-5505D825972B754F6729596EEA91210B75DD8F645382ACE36DE60819A02B3B48DD00F5485F9264F9
-FA926D732E2C267B0BE8CA98526F124F97EFDB86132C5EF16B103908172FC51F286FFE45FF253512
-E0033F037FF182BA536A9EB2DF2D1DB257D9C86C46E1B002FB32AC70CA9462E6EB48994752CEBCE3
-9F08ABD4F4B0889283E55500702185A841E328
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndResource
-/Times-Roman-iso1252 /Times-Roman ISO1252Encoding psp_definefont
-/NimbusMonL-ReguObli-iso1252 /NimbusMonL-ReguObli ISO1252Encoding psp_definefont
-/NimbusMonL-Regu-iso1252 /NimbusMonL-Regu ISO1252Encoding psp_definefont
-/Times-Italic-iso1252 /Times-Italic ISO1252Encoding psp_definefont
-295 321 moveto
-0 0 0 setrgbcolor
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4C61>
-show
-362 321 moveto
-<6469726563746F7279>
-show
-556 321 moveto
-<53414C4F4D45325F524F4F54>
-show
-962 321 moveto
-<657374>
-show
-1032 321 moveto
-<737570706F73E965>
-show
-1230 321 moveto
-<EA747265>
-show
-1318 321 moveto
-<6C61>
-show
-1369 321 moveto
-<6469726563746F7279>
-show
-1564 321 moveto
-<636F6E74656E616E74>
-show
-1772 321 moveto
-<746F7573>
-show
-1870 321 moveto
-<6C6573>
-show
-1940 321 moveto
-<6D6F64756C6573>
-show
-295 377 moveto
-<6465>
-show
-358 377 moveto
-<6C61>
-show
-411 377 moveto
-<706C617465666F726D65>
-show
-644 377 moveto
-<53414C4F4D45>
-show
-866 377 moveto
-<322E>
-show
-920 377 moveto
-<4C6573>
-show
-1009 377 moveto
-<6669636869657273>
-show
-1175 377 moveto
-<2A4D6178456C656D656E74566F6C756D652A>
-show
-1661 377 moveto
-<736F6E74>
-show
-1761 377 moveto
-<64E96AE0>
-show
-1861 377 moveto
-<64616E73>
-show
-1969 377 moveto
-<6C61>
-show
-2021 377 moveto
-<62617365>
-show
-295 433 moveto
-<6D616973206E6520636F6E7469656E6E656E74207269656E206465207369676E696669616E742E>
-show
-295 551 moveto
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-370 551 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D6F64696669636174696F6E>
-show
-659 551 moveto
-<6475>
-show
-738 551 moveto
-<66696368696572>
-show
-896 551 moveto
-1 0 0 setrgbcolor
-/NimbusMonL-ReguObli-iso1252  findfont 50 -50 matrix scale makefont setfont
-<636F6E6669677572652E696E2E62617365>
-show
-1434 551 moveto
-0 0 0 setrgbcolor
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<706F7572>
-show
-1553 551 moveto
-<72616A6F75746572>
-show
-1737 551 moveto
-<6C61>
-show
-1801 551 moveto
-<76E972696669636174696F6E>
-show
-2060 551 moveto
-<6475>
-show
-370 611 moveto
-<66696368696572>
-show
-535 611 moveto
-<696E636C756465>
-show
-716 611 moveto
-<6E676C69622E68>
-show
-891 611 moveto
-<6574>
-show
-962 611 moveto
-<646573>
-show
-1063 611 moveto
-<64696666E972656E746573>
-show
-1310 611 moveto
-<6C696272616972696573>
-show
-1522 611 moveto
-<4E657467656E2C>
-show
-1714 611 moveto
-<766961>
-show
-1809 611 moveto
-<6C65>
-show
-1880 611 moveto
-<66696368696572>
-show
-2045 611 moveto
-<6D34>
-show
-370 668 moveto
-<636865636B5F4E657467656E2E6D342E>
-show
-309 769 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<6563686F2074657374696E67206E657467656E>
-show
-309 813 moveto
-<6563686F202D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
-2D2D2D2D2D2D2D2D2D>
-show
-309 857 moveto
-<6563686F>
-show
-309 901 moveto
-<434845434B5F4E455447454E>
-show
-309 945 moveto
-<6563686F>
-show
-309 989 moveto
-<6563686F202D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
-2D2D2D2D2D2D2D2D2D>
-show
-295 1106 moveto
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-370 1106 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D6F64696669636174696F6E206475206669636869657220>
-show
-849 1106 moveto
-1 0 0 setrgbcolor
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D616B6566696C652E696E20>
-show
-1087 1106 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<20>
-show
-1099 1106 moveto
-0 0 0 setrgbcolor
-<706F757220706F75766F6972207574696C69736572206C652064657373696E>
-show
-370 1166 moveto
-<6D6573685F747265655F616C676F5F74657472612E706E672064616E73206C2749484D20646520
-534D4553482028766F6972206C61206D6F64696620E020666169726520737572>
-show
-370 1222 moveto
-<20534D45534847554929206574206C61204272657020666C696768745F736F6C69642E62726570
-206461616E73206C65207465737420534D4553485F666C696768745F736B696E2E70792E>
-show
-294 1323 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<5245534F55524345535F46494C4553203D205C>
-show
-294 1367 moveto
-<20202020202E>
-show
-294 1411 moveto
-<20202020202E>
-show
-294 1455 moveto
-<20202020202E>
-show
-294 1499 moveto
-<6D6573685F747265655F616C676F5F74657472612E706E67205C>
-show
-294 1543 moveto
-<666C696768745F736F6C69642E62726570>
-show
-295 1660 moveto
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-370 1660 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4C65206669636869657220>
-show
-578 1660 moveto
-1 0 0 setrgbcolor
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<61646D>
-show
-664 1660 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<2F>
-show
-677 1660 moveto
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<756E69782F6D616B655F636F6D6D656E63652E696E202020>
-show
-1207 1660 moveto
-0 0 0 setrgbcolor
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<646F697420617573736920EA747265206D6F64696669E920E02063657474652066696E>
-show
-1862 1660 moveto
-<20>
-show
-1874 1660 moveto
-<3A>
-show
-309 1765 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<69666571202840574954484E455447454E402C79657329>
-show
-309 1809 moveto
-<202041434C4F43414C5F535243202B3D20636865636B5F6E657467656E2E6D34>
-show
-309 1853 moveto
-<656E646966>
-show
-295 1971 moveto
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-370 1971 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D6F64696669636174696F6E>
-show
-662 1971 moveto
-<6475>
-show
-744 1971 moveto
-<66696368696572>
-show
-905 1971 moveto
-1 0 0 setrgbcolor
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<534D4553485F535243>
-show
-1178 1971 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<2F>
-show
-1190 1971 moveto
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<737263>
-show
-1251 1971 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<2F>
-show
-1264 1971 moveto
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D616B6566696C652E696E>
-show
-1552 1971 moveto
-0 0 0 setrgbcolor
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<706F7572>
-show
-1675 1971 moveto
-<72616A6F75746572>
-show
-1861 1971 moveto
-<6C61>
-show
-1928 1971 moveto
-<6469726563746F7279>
-show
-370 2031 moveto
-<4E455447454E>
-show
-592 2031 moveto
-<6FF9>
-show
-664 2031 moveto
-<6C61>
-show
-723 2031 moveto
-<6C6962726169726965>
-show
-904 2031 moveto
-<64796E616D69717565>
-show
-1149 2031 moveto
-<6C69624E455447454E2E736F>
-show
-1481 2031 moveto
-<7661>
-show
-1550 2031 moveto
-<EA747265>
-show
-1648 2031 moveto
-<636F6E73747275697465>
-show
-1868 2031 moveto
-<E0>
-show
-1912 2031 moveto
-<706172746972>
-show
-2043 2031 moveto
-<646573>
-show
-370 2087 moveto
-<6C69627261697269657320737461746963206465204E657467656E2E>
-show
-294 2188 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<69666571202840574954484E455447454E402C79657329>
-show
-294 2232 moveto
-<2020534244495253203D204F424A45435420534D445320534D4553484453204472697665722044
-72697665724D45442044726976657244415420447269766572554E56205C>
-show
-294 2276 moveto
-<20202020202020202020204D45464953544F204E455447454E20534D45534820534D4553485F49
-20534D45534846696C7465727353656C656374696F6E20534D455348475549205C>
-show
-294 2320 moveto
-<2020202020202020202020534D4553485F53574947>
-show
-294 2364 moveto
-<656E646966>
-show
-295 2481 moveto
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-370 2481 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D6F64696669636174696F6E>
-show
-665 2481 moveto
-<6475>
-show
-750 2481 moveto
-<66696368696572>
-show
-915 2481 moveto
-1 0 0 setrgbcolor
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<534D4553485F535243>
-show
-1187 2481 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<2F>
-show
-1200 2481 moveto
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<737263>
-show
-1261 2481 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<2F>
-show
-1274 2481 moveto
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<534D455348>
-show
-1432 2481 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<2F>
-show
-1445 2481 moveto
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D616B6566696C652E696E>
-show
-1738 2481 moveto
-0 0 0 setrgbcolor
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<706F7572>
-show
-1864 2481 moveto
-<72616A6F75746572>
-show
-2054 2481 moveto
-<6C6573>
-show
-370 2541 moveto
-<6669636869657273>
-show
-541 2541 moveto
-<717569>
-show
-626 2541 moveto
-<7772617070656E74>
-show
-834 2541 moveto
-<6C6573>
-show
-910 2541 moveto
-<617070656C73>
-show
-1059 2541 moveto
-<6175>
-show
-1128 2541 moveto
-<6D61696C6C657572>
-show
-1315 2541 moveto
-<74E974726168E9647269717565>
-show
-1600 2541 moveto
-<6465>
-show
-1669 2541 moveto
-<4E657467656E>
-show
-1835 2541 moveto
-<6574>
-show
-1893 2541 moveto
-<6C6573>
-show
-1969 2541 moveto
-<626F6E6E6573>
-show
-370 2597 moveto
-<6F7074696F6E7320646520636F6D70696C6174696F6E2F6C696E6B6167652E>
-show
-294 2698 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<69666571202840574954484E455447454E402C79657329>
-show
-294 2742 moveto
-<20204558504F52545F48454144455253202B3D20534D4553485F4E455447454E5F33442E687878>
-show
-294 2786 moveto
-<20204C49425F535243202B3D20534D4553485F4E455447454E5F33442E637878>
-show
-294 2830 moveto
-<20204E455447454E5F494E434C554445533D404E455447454E5F494E434C5544455340>
-show
-294 2874 moveto
-<2020435050464C414753202B3D2024284E455447454E5F494E434C5544455329>
-show
-294 2918 moveto
-<2020435858464C414753202B3D2024284E455447454E5F494E434C5544455329>
-show
-294 2962 moveto
-<20204C44464C414753202B3D202D6C4E455447454E>
-show
-294 3006 moveto
-<656E646966>
-show
-295 735 1 264 rectfill
-2125 735 1 264 rectfill
-295 735 1831 1 rectfill
-295 998 1831 1 rectfill
-280 1289 1 265 rectfill
-2125 1289 1 265 rectfill
-280 1289 1846 1 rectfill
-280 1553 1846 1 rectfill
-295 1732 1 132 rectfill
-2125 1732 1 132 rectfill
-295 1732 1831 1 rectfill
-295 1863 1831 1 rectfill
-280 2154 1 220 rectfill
-2125 2154 1 220 rectfill
-280 2154 1846 1 rectfill
-280 2373 1846 1 rectfill
-280 2665 1 352 rectfill
-2125 2665 1 352 rectfill
-280 2665 1846 1 rectfill
-280 3016 1846 1 rectfill
-showpage
-grestore grestore
-%%PageTrailer
-
-%%Page: 2 2
-%%PageBoundingBox: 18 18 577 824
-%%BeginSetup
-%
-%%EndSetup
-%%BeginPageSetup
-%
-gsave
-[0.24 0 0 -0.24 18 824] concat
-gsave
-%%EndPageSetup
-%%BeginResource: font NimbusMonL-Regu
-%!PS-AdobeFont-1.0: NimbusMonL-Regu 1.05
-%%CreationDate: Wed Dec 22 1999
-% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-% (URW)++,Copyright 1999 by (URW)++ Design & Development
-% See the file PUBLIC (Aladdin Free Public License) for license conditions.
-% As a special exception, permission is granted to include this font
-% program in a Postscript or PDF file that consists of a document that
-% contains text to be displayed or printed using this font, regardless
-% of the conditions or license applying to the document itself.
-12 dict begin
-/FontInfo 10 dict dup begin
-/version (1.05) readonly def
-/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file PUBLIC (Aladdin Free Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
-/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
-/FullName (Nimbus Mono L Regular) readonly def
-/FamilyName (Nimbus Mono L) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0.0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/FontName /NimbusMonL-Regu def
-/PaintType 0 def
-/WMode 0 def
-/FontBBox {-12 -237 650 811} readonly def
-/FontType 1 def
-/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
-/Encoding StandardEncoding def
-/UniqueID 5020945 def
-currentdict end
-currentfile eexec
-E98D09D760A3C22CF119F9DC699A22C35B5B35ED6AA23593C76D54CABB5E942BF7D6DD84F1664B89
-699C74B472DE9F8E6DF925F6C4F204E9F1C639B4DBA988ED2AC419FF2B2BDE605B8EE3264EDD6641
-2D4F21C64AC522BDFC7C5502F9C3F3E5592B3B2093D33C9BFAEDD2D49E89AABAA832E23F062E91A2
-5032519D1868816E44B4E0747795003D7930299D6E1E2A5BFE0D595DC97E140989CE81D8D7F852FF
-9CDC7A1B1B598C69131DEE005B415805A16D8A123E6A2261C63C769D2F4B60FA2C438AD7D199D8E4
-5F7E7C9A605C8CA14E21FCD81C9A515FB8DB6F99604534D06EA9D87FE0FAA852899C9D0595C7A97E
-6C55F79FAC45CD38E87B10D210CE7501E88C8FCD3444354365FB893A12F596AE2C1E70D5819EE0D0
-87D10BF8DA96F3DABD5405D28C4228C6C31BA4052464859640933FEEFD8071C0C84CDD829A9B1D0B
-A01F25A4D50EE2EA2B45160CA6333B2D2800306ED2BEFDFE155E9D9F9342EB8D5B0ADBF2460CCC98
-643FB1287CCD28ABA7B5CAB92EC39EE2E918990372B16F8487EBA30EAE88708B6CF33B6C015D8096
-C7CFE2F139F52052E3925C0D50FD64CE68236D59CB83EF56BFC584150EC38065059F3308AD6F9A99
-F83EF4E6CB13855C8175E31417D190D036B387D3952344A950F4D8C7781B307A094DF1ECAEE4D2C2
-FD747BC6F7F9C6BD0E90C19294F96C8C5CFE88FB34C477574A1B1630B8CC591529E59B20794DA32E
-61DECDA8ABBD1AE956CF74012AA01D42EE01E861B0AA6897C864788AE59DEF43C493246FDB1ACA55
-4C12594BC7B33657A9ECC9E3D1472EF826073F632BE540C35FF6FB40566773F3BB2204D3A579A08C
-CBC844C14B18C350F003B9DA23A570C362D6003893CA32F86F59B829C78EE3188B6E3F7FA81D7F62
-2825C639638DFB78B7AF1F500F5B450FA54DBFA5CBA277C794ECE93275A3DE0B452FDC8DDC2993BA
-A42F28A636008CDCB03EBF71BDCAF35019778993443F88412AD2AD0D7155A3944606463266322DBC
-0244B07DA1E9C27A27B59664E8566D7A54CC03E995AAD008B0A17E2C3EF61F720CE7F7788599C4E4
-4C709CD5C31B11107F16AD70B17B9AFE2E8CD922A7428DAC171427FFAF51067307FAB0ADB530E701
-FD22DA22C4CD3064067BD4F6089C4B2C87937DD426E4E9D2F60E608288BAC9056554D04947E69200
-61E379CF5E81BFD32FD37EFAC1F61CEBEE551B0851516471A7472C60DF89DAA9EB1DC5A67E479745
-3E69B9E22BAF4E3CCA4192D603295B018C4AB69D18DE52DFDF15E96B557F290A4B8C5B1E7A6CACA8
-1F2351B97ADFC36995ABA43803A6E5AC04A3C93495F6D38106B8B144449C07D1358210F9176E1565
-72363CFBDE576BFDF99FA329DD1346E83F79E06CF68250CA57A68931BC7F342AD295D0CBA17AA95B
-B8EEB53EA6E8E660B814E9F857CECB14F44A43288B69A9E7908D55BF19E844359879D28CAEF1C38A
-36420185D20DFB32C2E002202800E8EF3D67C5D50E919657CA958B538D537D503444865331D79BFC
-40312068D72364503BD0CC84B5F30A74D8B5B6A26AF2DB764564FB65A6BA8F9051AE2B4EA458D46A
-4569F30C6E77DC097356770362E6CF3F1661074778EBB44FF7D1E3B64FF75E77E11FE525BB121C65
-46CFD13300CA1F02D571B82A5825E6226D14FDCF27F06D87452A8B6C5DCA658535CEE2A795E58137
-D48E566B69D53A0C3B766E84C51EAA221C46999CC8065ADB2F129D5B630FAB1814C0C33B5AEA0EFB
-B6E994D80941B53079AF96D90A0B924F9B0E319BED9836B8F9053F868363D3CA554CBB181863301F
-8CB940872ED5FA7BD18CE39218B5AD8AC57D0F752D941076B1C64D99BE0DB86D7A6D96510D772EB2
-4C587F11779BD21CFE5BDE1F29C1EF9022B2B8BCD7F91153C845906722477829C40111D810480F3C
-F62DE8DBA7FD86CD236E656618CAF6FC46827FBC4898EA7672F8C9971AFE43E0E01EC8B77D4AF48C
-BF1210E98C1DB15C16D149BFF58AB0270CF015B107A3A50F5DC8F37FFB92EEC8CB6778DDB7CE4AAB
-C464C4AFF654223006A550EB52485A23D2B4AA7198D3CD54418102F1E9A4FBDE37B841E56F5C2C53
-966DB9B66B000E4588282E3FB80C2C519339F0002D2F83C979EDC5827A3B3C8EF8810A0F9DACB6B9
-998E9AF6551F56313DC4011904CB979AA2D32B11A811BC248141E4B9734D9FB7982A5671002D8279
-CAB93ABE057474628DEFC95D43890DB1ED34CFA8A20BDC3D874E7679A396158E522ED0AB969A4E3E
-C7E4474E192590504D54DEB7B260B7935C4E56548A7D121AC1F741F8CDF259EA1B5813175A77A1D2
-D30BA26F65EB765A04C09ED51F69F41551ADF399E6AA2FC09788137BEA4913F17B8EB838C38FB272
-1FDCB55FD65697FF0B850E7D3D1CE266BF90F7EC06A9A0876BDFE767D3A918B092FC78C775F945CF
-1F96E859C03DBF630D9A940939654C3549D8F7921CB94EE23D5A0535DE9DF31EA0F937F860B4F220
-A99ADDFC343D7CF7BFA0B803C12C26403F0DCFFC8EA786D0D8A8D9C367419CA8AE41190CE93A8086
-583A1E6C9D70B612C84D87D2EEAA71EC2DC12F4CDE6A821303D5F6A9BBDB7EEDCD289E80FA3B75F4
-7F481B50719DCF4A142069393593B9AF9CCEEAEC56A35B8787193D7C88113E9E1E221D151E093B01
-9EF89F6118BEC4735103CC8003CC5AD1B6727B3226CD44C497DA7052DD681695DBEC3397F9598C91
-77701C73BF0594CE93F23D50EC5BEE2FB9DA1FC966DF148B27B28EE3C89526DD6625E2887F9FA076
-7C127C609EE315626BC14D274FBEA56528DC06A27B2D476D46E9E7916590B156A5DF04A6CB15E362
-45D77021767B6E5BDFCC679670263FD891446C3371B11BB6E1DF60F960AAB4149D7753E6A5C33810
-C42C8BFF4E935003388506F8278BD7CB672F132E065AE684DCA0B9064D01DD620E7FFDFE04F14277
-EFE8E60159BA0FCA3FE2F28B902D4AC275D19F0AC6971EBE827C4A232D87650D2688345BCA78F879
-077114F0463C5F058107B669566F8171E4E284D278405580F04BFFC9902784216E0C9A17AA9B2935
-E66E18A783F723BE044389B7E9D62AA36818FF2EA406C3C1A9D2F3436F3EE7DB8BE86AFA8DAA6A4B
-1B84611350D8D27605509612B515E16AA843164D5D0805E36A2B9EF74C5F6A0B9D59A04B55697123
-27F4B1B30E9587CD103337639967CBDC655AA46E80D2CFD24BEB50815B5338E522B3A7AFE8362AB4
-F05D8BC52BBA9C5089ADA8C89529B0275AF422EB540D31A938B8740860756325B966B36817115213
-FAAF92DE63F6BAE1E0064BFBC5588098B61EB83C71F1C2082436D37DAF1ACBE186FEDC4BE7C1233B
-6F18BEC5F99002D21CB7864E4811F7AB3C03003E1E4490AD1AC793BD28FCD5EF0E6CC30EF39A08C5
-2F71939B0CEF620DC69E31E39D6DB969049031B0C92EF2DB653D97F370141456A52985076B268652
-FA2648C792780BAD637C4D7581FB2D62011D57E293719487CF2D1F013CFAA532E1C2D39178D51272
-A6AF041440BCA174B5CC902BD7390C7D3695056CB4BD7791F9FB6D88E7A70DEF2C97869F5DBC5BD8
-23C517C7B7C39D624DF627DC9653EA5347BFDA80B723F05F6DBB4C9EA501D862ACE05B9DBDF21B70
-56FBCD8C6D4B85873DCEE6166C8B5ADC0316CA12D9639F361B15A42F00E1D62EDBCA1111972FA0F4
-5758BECB31DB38316F3CDFE1B41748C93ED58B67E9B57ABBED5924A6D53E99FBC9A994A6489A8BDF
-13EB685548B4DC6D62DA7426C22227D4D43B6FFC7B5EA91C896730253E8941AFEE588359C2BECF6F
-FC415B9EB6D31CCB0F6C7F85853E6449FA6D627A97A3CE8303F148393ADCCCDFA2FE085C6908BE5C
-3C05AF00A6F02840206C3253A559AC5C049BDDFD11AD9B118403B84DA10AE3C470CB9A9A2D1D7B73
-2F59F5FE146DEDA60AE750F551AAC934621B4470E1BC324C436303E25F81D0DC3188BE0D6FEC5414
-C20E4CB18952E12CB6423DF7124627ACDE145500D77A97A8BFD9CB50D1FAA008E2CE2B2505A4749F
-1EBBB092C347023714055A9B63353AF9E7FEE05BB54C9843698101F79888A91531773830C2C967B5
-88D3ACD2192883D5CE3962D51084FC653EAE2C5FB2DA41DACEFB5C76812D2EDB5B109677289CD199
-8D457FB1023A19AC67295BBC1A9A20A426B06A368DF3C5DD083CB1180D287F5500F2C635EDE157EE
-FCEEC5503447382D15C748C1E35F68753992E5C90F900DE54D18F8E1B355D1076ADFB1F3590135FA
-D1A36F028E44F48ABB149B80CA9A54614D467F8D71CB310BBC7AC7100261092DB8C5BFD39E0AC6BC
-2C9D6CBC3A8C05FF8A74CB21608EC4A4CFE4CBAA2D056DBA14206106044DECF59F957EF8A9CADE4C
-9B19D8D30DD4FDE6A9548E50DB51ACA73330142153FC36B69C1C8D5B26D0C689B7040E81AC2C864F
-D7C097C99BE5953843E172C97AB5684F35FB03A725A89DBF371F08DDF40A1531FC1B676DB0E1543A
-EC6E97D3D2E4AA3D5831D8B3C952ABBFA112352814FB6FAB61A0D680E6640F6AEC8426200CF61286
-F7422CB2F78C61EBAA36D47EC16D7FAF8B4AF31D090CDFA255D9D7C61D46CFB22A7D6E1758E71ED5
-67E00CBD8E8F468DDFB477F091A2F915627F22FF47B876544BC1F03B6BBB98385F009C20BB1AA2A7
-A78674692B8EAC2E3C8069B79E679338DA57F72976810F845BEB6B9ADD32B95D78E5E60F16DD1668
-9C05FD82D36A3115BE8ED494A74DD211D58A2CDF983FCB9CDC29BF7F0E29988FA23560EDF514BC1D
-183F3B2A22C09FB179B47E05ADEF48DF02F31C29875D1915037B19407764A4292FE44E741651A8E3
-BEB5F0D972B6327090F664417C84F84FFBF0AFFF8B1D85C822D90730AB4140C42A51AA8B1DBE4398
-4EA8566040EB8B341CCE23FD3F69DD235A080BA5C69AECB9BC732BC2D7D40617DDA6B79FB6EE40C3
-556C7DF9B23DAD89E94054B1345DB8402AE679FC4655A4A776C0150463F8DB2BFC0608EA1F124E22
-1DDAE6026B5E5D007A7E4A0D6B3B0CF3A2669E67C5E4F01551966A7BC48F2F4B6A87E740D8095E63
-F77C7A027F26B52F2299DE5B8A2F6209BCF3D31CB0235F998F781E5CC81E31DC424E008D46EC0920
-2951E5684804A0592EA47D6C788A20487BEA2EC8F2E6C1D7F378B62DB43CA43C4B366F8B4319631C
-FE9854F0E10321CFA3B01C873584863BBEFC23C72C05E695B56E8A52E89AA2DAB543834D34DCAC5F
-ED08DC51825C5257AE59850D101D84F4CAA1D29FC932F9E0EFFBF7A9A7F3685F61F0490CD3CC8988
-2DB52A757A6AF4C4E67B407BD2316B1C0FFE7DC54E43C87B874F57E4903334E2140B011484863CDC
-ACA331175F2CF3D72E0042855983AAF8853D3015E870FF0807014C31D55060DF3FE1FCE157324481
-2744AB51322444632F9AFDA6706E320FFE82B8CBE242A19DF00CE73EE48E25FF49D5871BD3E60652
-298FE3E8D400609E232E0DDC794C0579ACEF89E841B2EDCA50D51151F65E8C1CC3B01EF1870558F0
-BF5743718C3E068617E81BFE120C6CA16E0924BFC2541177D53671CAA3AB641C41557DCDAE1A3461
-47B5E999C4541B08B4AFCBC187AFD653D5B5F8386DF6AD8FE69E21BD0567DF494F736C6A184FA4DE
-48DC9F347787CA96E2E00A296C2DA05C2AD9BC423E9CA428D7F1FA12DC9353A302FB8C529AF8688C
-BB543B45B2717EBF8F6C497935F4F3BFFD285E0402AB7544B3CA4643AE5A8B5250ED987A95FC1F27
-5B9707ACD0641BD0EE2AE9758494F8D8A51DCE408A38AC20EAF0852D72D84D0C6BE973326793AEB9
-55EAC6FE0A2813A355DCD22F6F2CE56588D1C055CDDFA98878BCEB6A018DB22922D2B600A20F8184
-2E665DF41013CA0947C4237C2BD60A75E2FD1A3FB8C8FA19485730B87461AD466ACB02DF8CA24091
-4FB090B3D2B41EB6B8FF05E1A59D9FD668AF70BA5BB72778953BA55FC5F9F626043450E1D09BC83D
-8605098ABEF884639A37809A32565CBEFB3FF39EE53D6C18C58C272BB928E4410E361E59A50F242D
-69747A032617C52DEBBF62364AB5A96EFAF642D9D82BA679B1D70FAC10A4EB62FA5CFC308E86368A
-AAD7E75948F43598CD1C544A0D4091374D7E88D4522CBE902391641327E888E7748FA889DCE67ADE
-61699E7D77763681CAEE9B1CA8837B2F7EF9C18CBCC538C465C8E2DD34616953CCB6030A222C728B
-834911C1A179E2C770289407AB28B303E724D97F747D6134B425216A64C6E0B60F633E2B85300047
-E4C90339CE030A0FAE31E830C8ABA5AB3386A3B69267351A7BFDD66356AE5E57FB2994452993E90D
-E7C4E260ABAB93C37831856A650D56E44172FECA01D6C7C380F250B82473960D2A2A5FB6B4DA668F
-46E624ACF7FA0FD4490F485D640A3ADFC9F8652E7A38CE5799F770C3606DB4B8B947F93967F779E3
-A3C0572F13A5A187D31D7BD12A5C7BE23CB6ED6192086241B76C5BA6983DB9C93E4B208D707D3760
-F03CD6272EF3A4CE89B8E52E6AC5871A3D03EB975759AB4BE239E5EC7842CBB333E692CC607C722E
-185D3C39164DD320C6945629C70FF66A5237C0A9520A1FAD6EB9816069351AB0F135D90CC0982B14
-7D2294AE4A38A527EE40BE9CDE2512AAEBB590E134388BB171D0956A7C4566D65A9A041BE6C4F883
-6B3EC3D2ED1B48B566A783292B15B6127920D247D494F070BB20BEFF60640B11B276DDEEE49706E8
-B2B21BB40B7F00AAFC594C492C25DCA774E0B80D82E927448DE2E74A9D0DC7AC9260096EAF187B6C
-D6AEAA6D1DC4205B4411122751A5B22688404EA7C5861730371FFAC10F5AFD4727A0E402AB5EA757
-606B75EB86A05E8F774D6E430A1A3FE2A37EBB06700474239FB1CFA05EE44B91B82244C575B52E7F
-AF934B04EEB0D933FEB57EBE326D75821C8B23EAA85B583AED4320B7F04B9F2DC591091216FDE52E
-064BAAA9C2C9D9714B95A4558C21F3CEBE624B5403B31508F178581AF6863083ED762F1E2E34A45C
-FDD71660D626FF8648F5D6C5E580D4765A67FB6159EC8077A9F0A88038C8D3D7C77FF0926E2123BE
-874F7BCAF129D55A5B5960F824BD1728ABCFCC51D23936DE9A25C408D786E44C3A2BAFA4423177AD
-060D21D38E15E23EB6FFC0B4120E814695D423EEFC2744A1FC81B4DF89D76F0A6803D8B14E75538C
-AAD03A72517B86514F6952F6FD619D9E910D980F00964DB325318C045BDF79647F453D4A5CF4E61D
-D5359782827229310405FBCF6107C3AD9DDEF9A9A339D5D5A6EB2E7838A0A43221BD62CBDF732DB0
-A638A52016FB35BA7761AEC846A023D3BF2D1BB183543E81EB7CAC1E5970CDC6F068C5EA118C7AAE
-528D1396E6DC939112DA4460C890EAD5C01BDC438F5BB734218BA6270ADD0DC1778FD8AB16831D6A
-302B814A1A44B07EDC65956C9E6CF4875DF521F3CE5B422F71081B6D69BD270F739095C9E81C0377
-934A8BC6390C420C4E4CDD9CF7E32544C68D884E15ACA3BCC07FC8C132D8FB9D752C15D75C52C288
-57E2EA461A6FCAD90C56843513F74461F18D7164BC597A28AE4BA7C86EE1703535A9B9ED50122627
-71FC12F102E800E0E1AF7BB46681BD2B14B614CEA91B7B2AAA35235DE76C0E113C92688F8EC81277
-D58C3406778E1EC1CC15F1CD9A137C8FFDAAB99ACE3BFC782916F1A877170589A92DC921E6740A22
-B84DC6BACDABCC76E64C79E3A588D80F8F4D376E1B426F15751CF7391102102F0AFAFD8B22DFDEB5
-48AEB5F30B1673023D22054A13391A0EC08DE6E7B685A0D031AABF20B7C62187C0284892D5EAADF1
-21BA28263EB863D5E36EA9C06A77CCFC0E17F593961591F84D82AF823EFE41044C8D606FEF83CCC7
-B0E961E7994DF8A3CC36B209D953E250ADAB8D22D7F2B4E2C9CA39EFA2D93E56195C1560E30A5190
-CC5B17FAEFCF250DF79F6B624A4B917E11C332222FCCFEC4F6A47BD9E75DA9854FC3F7AE554E91ED
-DE144D7AEF38A0E3EDB5E5A5626374DB94F022C8CF549093041DE00D7269B7CE544E748439BA2870
-718C08E58FB4A77D93EBC04B7957D272AE1601D41BF85A2BADAA0DF73B0D3841D4839C85677FB2E1
-5F1D6CE592669FF4BBC9C69DBA334DC37706F2F6BE83D5863E8CD6A30C08640AAC4C233684E66B4F
-E6B62D4A8BE9D531E47BEF5640D9B5C27D990092BE1597F6995C8A77BE9C18AAE6C1CF130775DDAC
-41D34438FC7AD8E042CB56CBF2944932EBA7D053E9376FF398367450E35A1945FE23E05C921096A1
-5454721FFD0F429A3E06DC3ED36F1C170BE79C66996EF8337AFF85B90C5D3A4A94455AE9FA32E211
-7A63E59001F052D5F6223125BFAFA40901E98960ADF7BB886729DCA82FC3B8CC52B37FF2517299E1
-D769057F8154FB95582F02CB0BECC873A9C71796ADBD3E91324FAA94F2C41CF57C30B5897D031C02
-D256C909E080E70BFD1F32E69EF67031138C2DDCD1A8E4B65E485C23C3E450ABDD9815512D6F34A8
-4B9DB715DB2C7A93BFB424316E1AA44397749CB01088428F149A3B4324737ED9957FD388248462AC
-1B2610D72BF5C073ECA567E7385CC959E37CAC7E05470160FFA5A9F63B8E9B082937E911586EA165
-374938F492EDF28CE6020953A5B5CCEC7737F9D9CC8538C4339567AAED3794ABA3B9F4EAE65466E8
-E326F6C399B36355935FBDCB9972F10B13494DC25097FCEC5A6398F275C8C151558E74C5175F7BAF
-4155E36B733F75CF9D5C5979B0764F14D8306E06BA24BF791141E404C69F3F8FCCD91B9C58C2C671
-AAE7D4F9E5D6414E46ED633A5F78AA5BF04E652246A066EAD9E582B181CC196EA2D3CFAA383B5D0E
-4CAC9336E119C08CC6AC55CBFBAE147C623B400453BBF447E96DE036FC025624384359EED7C7D5F7
-858DC0521377CF647A157FC3F188DE5EEF094DBA125510FDE34C570D7BE76AB5DF0A28BF45DDAADB
-EA7EEEDB936332DFE93081E0AFD3FDD46BED08D6914B2EFCFDC41662A33B90B03D76D34F48D30FC6
-BBBB600E90E6AC7243FDF026762A44B4D6E4ECBEF48C9D7B696AF29EEE063E557D8FCF0F09E0136F
-45D17E608DA36E59F2AECF8493F8D62536119B5F7E1554DFE3F6E8D7C9A2C6F557D18B4AF92C9F6E
-050975C3B5C54F9B5F4E39D600B6FA2CD6DE203A174028CBB2A201AF126D1013C229BB82CFD013ED
-199D01E51EE2780FE896E01C63C655087A3E61A7F1029FA5E97EA1872F1B45F22282DDC317E17926
-7368CB52DA9444F6055A3C653659CAD2A1D8712BC2B1B32C1DC6906D957FB88524EE066156ED6BDE
-B8D832F9338F9912E29A250A8C4674E667C1C278B677AEC9972BE83CBA3FB779893FCB8F81A323AC
-91474BA2A2334A07BB5628E905C518E634F6761A3289056F83D5DD7B3890987EEE1C18FB2D379CC1
-905F1AEB3B3D2AD578F0D6C845D2D40C4BCEE3F71C90E68E5417BB8CDDD878D83BA80AD8485F4067
-E5C3CABF28AB56CBB219C0AAB8FFC6C7E192BEC8CBCA1459AE4450AFCC81B9548F40CE2622E5A7C2
-81F74DCC02DAD57EFD92D072318DDF05BF42F1EA8163071E23949B0179CF7DE64677CA99B23CB926
-B3E294194EC13397EA1DC9A5E1CDCD828156CD71F81B64167D4FB01E6002713BD8AC6F82B20CD369
-9C6CA4704DC5C65A2D66EB155B7AF1C9BB46469416FB49C1C7E17A30A5F045271D7DF3FFF2F42C6B
-470701C381E3456A500C6BB3D0E47B4D91C5F34B49BB6272F1F8698B307D89EDA3A1565DAD1C0864
-627560CF922DCF5B34C67860352390B282F95394AA2CDE0E97CE3ED39546A6AF1C52BFCF81A29BE8
-2C47C99E8050E4889E4575B75F39E662F2DB7420673797E2ED3D67CDA7AE2C15D0A0A794D57D168E
-BE13214E89E0209AB2C0EB7784E9491AEFA3C02D0DF3AE5365A0FC4AE023CAB528162C7A1B173664
-9DFADDACA8DA5FA18B7D6489E4229E9E24D38A620464A744A5C60F6F9D334B908706B738AED18669
-8A8B278341FA4D65A0A88680BA484694921512F7DE93337FC1C02BBE6E64AF2DAD07603279D87329
-1D1F4D39C1DD6D89C90F65240F4808F6F1115CA55B88E242565E59F3BBF1F10EC7B88872E9AE61D4
-4CAE185463EDFAF7DF63DE4D2207D307AFB61501892965170D2945846FCF5973A1D458607F50C15E
-06E5BEC715E0C156259AAA6C735593E5564F65F443B78CC7512EC35A56F126DF9D30974A40872E42
-65E1AE5FD483CFCBBBA26DEE426CDC4721F19C3FDA86ED7AD4FA1120F63669BEFE7002B128CEAFD8
-C63E8AC09943B6CBDFB3D2476A026C00A8FF81B1F651B97F310C82ABA5F388CC1DB5AFCFF5996D52
-52A6A42FA4D972E41EE56088F78CB966F9051171C472C774879AECFFF08BFD9CEA40D7C298922ACE
-64F28C14E0B81F4DCADE81D71DE3983D87D905192EF13CEE71B2D3FF1A88AEC671EC318917DF98A3
-C9054E372D22A3CEC82FCC217F47319A40900312F6E32B536B9E7A7FA0837EC65CCDB5FB0D414371
-17596CB39D9382262DE6E65379D3A9709B2CFBABF5FC5D5B352425F06F88CD31012A2A4147B112F0
-C1C0ACCC808CD625E0228EEF66661F70AF96D3DCFECD402700E4F6522AC9A856DA466D55C84F65BE
-2810A1565163872D62EB81333A698ED7B68352CACCA2D7AD38AB55C19E4F5582F75818302F5FDADF
-1DCED09D94872F2D48FB636C8E38C7563C72C771A08C6B1F041F3532BDB39006C89A33C09BE1E3E6
-03622D891F98010BF1DE5355F557A1E09448D486ADEF565705277B31B8BF2B86761E32631E3435B6
-88B79D566F1747BA456DDB43CD239FB47FF7B425EAA4C657C8EEC26EE01AED07CF916E77D53634C1
-37AEEA009C6B515B6342C54BE2C7B95955B1A9DA277A0ABCDA2346E88018C726F481F71D6011AA42
-F8852F2E5749518FE3B3AB668213FE1A05C10A1C53953D75312631D6BBBA01D418199DFEFF8CF548
-6109B099FE8E2F606165FE30F532C03567785D5362AA873C9D3EECEB20F1945D55F49B0CCAC84967
-59FCC7292E46938943C262D78F3212D3F9D0F7B103157F423D71B1ED54B2A603F4C269029918F238
-EC6828FFCEC66009DB9C9E59534EABB183F31D7AD4C57B1BDF0BD2CE5A421882BC10CC1BCE6A970E
-2B586BB221567CCA483989DD0B8DEC424C1D1FF042DCB7834423CF244EDA28D2D969B17440CAEAF0
-24A6119DB010CE366821AFA424D1B8299609C04148275AE6E5257A7ACB3C766C747CE99CBA2D703C
-F19B7CF301B634D8B613DDC4AFE4633A4D77BFF8E00CFB5E289EBBCAC90A24307E7941EC1685CBAE
-400CADD876FCEF7F6557EEE167D2035A05120293527700DC510B038A496BE1D5CBAEF24ED39F7421
-1A93AADF22214ED606A80582485AFE358E3A46D0671148998A3B3BE209467009B43400870359D418
-9A8CEB4D5866AB52D16D9CEB1EAB71C07E6CAA34B70E3096BF7604C22C40D5FBFEEA616DA3BABD59
-DCDB97D883FC8742B8267A16A99B7953225F7144568D566E64542C92E538AC140C851E5D295528EB
-7CBB49909B1CAF6409C9BCCEB325468FA0B5F7CB2987382616B477CCFE4F4AC79E4A6F7165363543
-F04DE5B6F6E1C2E910CDC3CDD6C4C92737198F892337DCB6647BD226C820AC99C65D8E7772BBB74F
-E65DCAA8A22C33BC168BF48E40A82700A3A7668C5A9A71E397ACDFEE7D556C5C19467B7AA69C260B
-727407AC837BDB7D67DEC055C1F45D8BAC61048C45BC9FB3CEFE7549EAA2992D2EDC126FF7A05EAE
-58613332A2BC1465B2BC0429162B907D65F793D236EDDD8D35405866D71B25F62DC4A7E06D4DEE82
-840ACCAABC0774F8A63E9C0F7FC980B3583E7A8B01C46590E3BC04EBA565C2EA94F057D964A78A90
-EA9F52ABFD70F84E44E434BD10A42E98C794065724341F907E35D3CB257161E01C7084E3A0166D15
-CED65DA7BA87DBB2EA33D39BD99AFB93D3548358D08330E807F8552CECF63C84F805205491BA3A1A
-622E70C232FADF3BF2DCFD6F0539158D3306506F150B0518371912A25EB96163D73E9EEED42EDC84
-D688BC7F7708D9DCA348FAB4DF62E5809BD094842D0A31DBB7C4B41F94D946810C5EC10B69AABC2C
-91A59500B2E5D37F4755DDFB7AE4ABF757F4C5BCF77C7F95E6A616646456FE8F18407080BCABBFA5
-7704287AD26222DF91AB2613951E2D679472F8ADF06EA2A20205EC19972299A78BAC52114334470C
-5F5890C2F846B4C6042D73945127F2E3910ECA1C4CD7A16EFE4B4BE38A15AAA710682C3836A8CA83
-FD384970139D8B46FB0AEBB002DD224199672FFA02250FBCFA4E649E335428FC71F50F45E498419E
-DB0E970F46894A48F65580881C9C4250FCEF65C9B28699408E18B26FE6DB7F1CBDB767564E73CB59
-54C6D639CE33220C894F36E70F71C9F9AA3FE2AE0AA0E3F2E304EC5ABC661675CDE2E70519E4220A
-E26FBACBD01D5169EB844750753E6CED53E3678FDCD08AB93E10067E9C64F38B40B76D99B6CD92BD
-F4155A1EA5CC824998B59AAD06E09E5F15EBB2288D66EA71B296616734FEF2796F07FF0D8B047074
-A1111D68B99C2B70FC56E74A51B062F4998ACC85B1943C9477E436E5CD7AB18DBC898D21BB93475A
-623BDDA71D7B895BA2D4C10F4B90BF335126F4FD57D73AFA50170F6B3C364922E551D40E35DA75FA
-891762FA23401D39260F2E92C7807C746F13BB35CEF9DBF2E76E66A72FEFF095DA482A4DE8A42091
-7065736CF4DE904FB52E649A32255E2030A7B31B686353492F31C064A3C4B0448C4BFD44B8E15384
-FD809B8761EE26A7DFA1758D57CE4F0BC376EB2B3833534B15A83436BA553955ACB5A7A66796AC5B
-92DB5388BC53EFA27508B08E82821E5CF669BCE52BB860780F749B4F38ACDF5FF12726BF3EC2743F
-01014CDE96FE6B4C40A034E9EAFCA2A35CCC776C2669E6AD138070A40F48ED79136D7FF57E993E09
-B81C543FBADD350FF5B5F7A46F060F88E30FE2D8233832D18B6C323EE017EBC1DF5C838321CDC8A8
-4CABCAB20B60A1A3AA028F36EA6E87C850AF8AF7CD50AA6359038BFA8818821D02CEE8F51DAB8C05
-F7AE9797814D97F3DB8CCDDE45B21DBB15CEE292FAA534A5F317B357F4091F3DA357325B8B9F5EDB
-45865415973C143E5E5BAA483FBF2D06CDD4246675EC58B84C6AE65CA743117FF00F229243772561
-31A7F2BA26A9115AFD96C18216CFDF41B7220ED0CB3FCC26C36380007B382A02AEAE428887DC8BE5
-FDD630AC57EE3DC156C7B8B29E687F24442E35CE10BA4087295A641F7139C831F7CCDA6CCEB5DAFE
-537CC1A97C5A337D3C48A6AE947F58A30DC08CC7B58DBBB4737AD52783C573FC1E9408F55495A80E
-7FDA61F0B9C4F090158F1A416249EBBA936C27BEFDEF19D1BFB839EB70576A010706D8B95657B218
-9C2AE04C11EF9E57FE09880273761FB4302C388BD608FA0C7F00F033C9C00F4E3D5CE2D903E0DA52
-E69C7745EE9FA75E2AD93DC6CB5CCFCD3782A699B807AFC36AD1F62B05856D5DFD6F88831B90EB3D
-CD523582A49732E3FD7253126D39E8AFB8458B5F7AD7F94A8DAC13365F433C857AF4A42C0A08C4DB
-9887C4957259ED22D13CFDF5995DA957EA5A0F620B0214FBFE08AB6D552DBF048D62CEF6EFF12F15
-3511ECA7833E0E3E95F85E6AC0F95438AC4C126E1F1ECF336ED31CCA7EB216D279877123FD9FCD8F
-B5E52B587CFFC4428456DDCA816819A8A4A211D8F1629E5D42BA4C5C356E580C8A22C61D987552FA
-A97893816DA73D423686E4EBD44375C257F031318865A20F22115E72BF1EB9F93AAA169C140A33A0
-6C35BD4526A38BE79CF40AD1EFA10411E8F3300A8A8B97AB140EE6734E1BEE6C8EE443D698D34159
-97649C6F10F20ACD80236422E215E146D744A262DA3FC88DC0D86FF66512F49D3F957D3C5CFFEB42
-4823509F33F155057A4C6F37B52F4667767BA94F6B8B62856B553F307E5D230C44CBFDC9A97A45B1
-39FFB2F2565EB0E22026972FAD0FB7B9576FB6F368B61979943A398773600E7EE1DFEFBF26D45D40
-BDA66EBB96A56EE9CAE0B2420C5DD83E24DBA9FF885BB844BF3D2BF93B07325DFF60C0CB5FDCCA0A
-C8FB5A2E119D5AF26E53AB8E3B428481C2871DDA26EF0B621CD8572B3C664BC7AAC01A1D05B98F79
-1A7080D294BE81099BDA7982432F3DFF4775C44D23F4F1B2E0162B61A8B2CB5EE8564BF98E2ED403
-2219085FE6194C19DAC98A421826CAED7F1AB1477AB327506010217283894235D7DBFC1153D5ECC4
-8AA7293F19592B4D7E95FE55151889BCD1D7FA7DC2370D2DFE11D7E4EA34B5C7A8E73BD3A348FD38
-9EF45B6167FB90BA44C23E912F9A4F2FC0427ED070592F7110183BFDB2C400393BA7569058227926
-351F07FED4F33633BA03A72AA2DC6B598E49B96021DD868DAD0F352E5722FB714F667C15C68D49C0
-3D822D82677EDFE86FE9668E537DA284068C9B0AED83074C92A5B939296D505B837E6A9DDAB1AEAB
-7455A08A114C2222B339284674B74BF4CA9EE0C020BF2A148B439C71C6BE51A94CB64FBE4A7EB295
-5A455047CF5CB348B062ED4F6471CBC3E9ADD9BE9B96879AC7BC71BCE02FD02F17C6063985A5E898
-3D205AA1489DA13C408990ABA1C54F2F501AA172F530480D789C848118C0A74EF98D5F607A067BAF
-F6030D887AC6A6497F9A0B38F9705F328AAD4BFBB634F739386177B07F22D5771282444E5EE17335
-B4D0EC86117C697E79A5F4F65FDC08E4904DAEDAB20067EAE2448FD4301849E456D085F392DD1316
-7ADF75CCFDB723E2904A9C0C976D6B84DDEF9D92B0E15FB246C3ECC2D0BF314CFB957757B3A3E8E5
-801F520644E4601D291DA0F7507C06F3B9BB36FC1C70EAA444E14E56C0CFF06C7F853DF36DA9D8B6
-AF2544B853DFFF535A7E5C6FC145250CDDA229956019659D0D253A19A7B51A4E538BDC01F74D7704
-9949C2C97C7EC6392C2E61CCC0992B66DAF1AB08551063E53180D2A67DE496716CCBAA45462D9F91
-B66A22545962DDAB120511FF08627131B95E5DEEB8B4DD9643E7B2AF65C0FDCE11F5F1E8DD468DA1
-8D41C8C4F00EA73836F4F70EC50FC3EC6D358C0658A4261C6D15A582A2C7C994E7882E661855B352
-014576858A265FFBC425160669CE159D07EDAC04D060B44E5800A7AAE8E339C29B929AA81D2F515C
-46229D2080D5917AB20AB6B34FDCA8E4AF64ED660A3173786FB1A1D005D575C2A5187D3F7CFDC94C
-CC44A38C5CD523E9DA726D8EFA6DA7B6131DFF3435FEE838B2C7D6B97934295F06202D307FF78D90
-6699CB9C5BBB10D1D4DEA5FDA5BFB094E704607083B646D37F5DA1FC7AD21B813F44D8C1AFEAB666
-55AAA19703BEA2E77DF3BF350E17C74B3447A452235919452B5175570A006C7680AC05E8950A62E1
-1D7E3ACA35A397D1E19630D094A86807593C97F4C484E4E06BCFF708B6DCA972E3A0009E1CAC0EA4
-141530F5C1B8AEF5E1B933F37FDDBC4BE22B74FE346D1A3F5FEC0818F8E61765568A2AC04713E828
-F98C449D9A1CCE52D10D61DD8BFD084C8D099A75D89DEA64D5A7CC68BD5B0593D97953DADA976383
-F5015915618AEC56D71D1DCD55B89736395C609B315A3F1E1255432FDBD37F38CC43C354FB4B7C44
-F1A7318B0B7E99C3C08C33B953727B6A6328051783A0A33E3CD9E498346A3CA6A77B517096EDD52A
-E443B87643A646C3A7BB97F742888D33F9B3127E61942F4103C1DBDCD8EAC8F9E259773066736CA6
-53CE57E8822651261D847C131321BB9D6626A1AC50D047C0BA47B411DF2A995545BD68EC0287CC9B
-31D5DDCA8755EBEB10ACCB3903AB0FD5788E984220443B8459E7C078DA4289F1350905881AD6DFDE
-C47302B0ACB0D4AF8CAED02B4B70DF3CF8FEC118F0FC2D3DDE3E494CD160E676E300BC464BD4400D
-B50EE43B314E0517037BF971ACD7CD327CB2134893B8A0410E68DDC518F5DEC966C7884CF5FDFE74
-723177F20DEDC039D879056CAAB4BF045062D3904F615C5CFE109AC7A35599C94024B41019B9AFD4
-04A80ACAA4837929F5C9317680A13D157A03B59A5588DF79D2E113F5F51021D6F6F90E8BBBA2C252
-FD10651BE80BAFD59C53A3367BA3C28DB6EB9DABF1EA99F47B503F627E15DCF3FD645FC52C5D5D0F
-2F07DB4C25C0D1E1C00146E1C4D973E613CCDBD3F9450CC0F5343D79F05E9492E86A1BB889ADF405
-03BD7F3E7543436859184A5B20BD8A172F350D846B7570803990ADAA48D4B9155A2B4C4BFBEF1E1A
-065C08E03928559735BDD442FF1E83E1FA20A5DA57D8BDB2FF5427C034CF0128AF111E6E73099E04
-6E0C240E80A73D7BE72B87834E45898D475521CA3306707631F5C6136199F354632D1A085F12A1C7
-C473868B62E534D15F5484323E63D0574196A19EF175214EB35A90873EFCFB92D6CF68761D45E37E
-AA61E1A1979A82009507CA193E44B36A806486665CEDBCF387053ACEAB979BD35D30978FC7659ABB
-E844F4ECAB3303318ECE80777A5FA5A9DD91B3D06804C4B4E9B4EFCF07EB89866D0DD8CA390CFD15
-98651417114D78776B1A1D36B4BA17746D6BE7FC123D473EF1EFED1C3BC1D555F914536869FD5B0C
-35F9C83F65B0E6BF7A627B9202D787D72C600DDB6BCCE613D88492E13CA0AAAB196E8A49928C62CE
-A4FFE2D0208EDA334ACF47F20BD793124D2C5546C03F4A364369A76A0425262F9D9118AF54E37D32
-E33AB25DD533A49DF5FBF1BAF4CEAC2D9D378CDCD13B00FDA432D9042F623DA41AFB80699B5538A2
-5403B0B3EABEC9E8EFCF42FEF3EA9F91766902CD206B0787C187D5370B60AD6DCD002DE2DE8DCDC0
-B4719A797C5E26BAA67665016DA0D967FA1346F9588AEDA174CA001B31213617FE19EA218EC23597
-79D979E2663166489C06993230B0D07973A117C4E3F4A4C93CF8428248DD5389414D679C69644142
-67C7FEA17E35B0CEE456667A9B1875C81B2302BDDEA2818D6019FC1622A82051F60584ABC904CD91
-8676305DC03FFBCC64FDDAC8D8AA9CE2EA00D6C97BC63C8A617DEDFC0E40775649438E9F61AFD179
-5E3B20560B01BE5E0983F136CF48AB206954E41DEE0D9DDD953DFD01CAEB569151D6BC0DFEF29D70
-FAE3E198E7EDD8922C0E0BCB8BCCF1C016142C1A8B337AFA7A05A9D7534B184BF3BF827F371E9BD1
-9A71244ECA1BA73D484CD2FAD54DB2F0EEFBD54B536EBCB5094E6BC2F5B2AAE41F05B4B311115876
-ED42C34F8E643B53372E3F6350DB8A38445822EA9A33E27FB0CC42CEDCD1FE2FDF723FC47C996EE3
-56C402112F24D0AF899B2D00BEA1CFD427998BD22B2A09046D6737814448ACFB10D387547D7009FB
-384AF0562C85694C071584236D0F1F3D3FCD0CFB38B77C81889061E668BA7AB37AA60F58A3967DE2
-6F939B79CBF10A9DCC42852561D8D6754F1B660D216AAB1E133FBAA321C56E2584BE5C9BAE20CCF0
-0E8DBE6D9C2FCEBEBAD945C3C04101D2387351F132628786F6D9D4CAB83419288D31F9BC600D9664
-12E6AA457CE6CAD26A4C0671097B98C2384C81DD8B9A3222D4F4BBDA7017895C3EDC26662779AEE7
-40D9D7E24185FB821970B0A3A94041A69E4805EC88EE1EE521981536F2844FB8F5EF645F67D42CE5
-148E2DDE43AD5AEF200EDB3A2C7866C98458A92666E5F9E070178BCC39F65A893102A10564AF4E8C
-AAA5075D2F8CD7FAB0401C03AF299EA3515CC93066744EB5AF7CF0ED06675BF049A6E3C211A89E16
-DE5BF0445A7CCA6EE8EB0347454950485D884606651E5887FE8B24323E2AA16DE22FC1FC8C4F06A8
-2A1FDE5758976024068197E1F4506E4D3D8A16D40461A4586338B374A592DC60334402F76388AD6A
-457DC3F54E6169CF7AE3959676E966A45609621055EC3AF80E182633300A4418E34A66DDFA6B569E
-5A13C9115B5FD3EC1CEBE50FBA247F60803AA83976F00117536342DC3D9890C49B2AC701D370E43A
-955118967827760F7091469C5406F08F18D7E3548148CF0E312B1DC71DF67A5E7A1656CF2F47F3AF
-F3DD50FFC2FCDAB7177285B29C17CA43019F62AC6FBA52D1493ED7C427526470ACC8389BAE827759
-4958908F517B2863B83292EB5AB3F57FFFB08393CA610FB1FE905D88A0A16AC395E2A2A6DD033D6A
-0D68992F830B2E1B95FE357BF672716E88FFB92FFC3D62945D1EAD22BC68C51EE0E10A43011DB94C
-44685A5C4576F6EF44CBFB45F2A4BF110A01657DB51FD499767E78058199B31DFD60813F1A344F86
-289F9378231D5B151C92385E3650B4FEB1DC91018EAB8474CBF69FDC1496A4D078D2C351C8196451
-247A9DCF8117E5B637371D8E22E248C64D999015C3FD2311E9950B8EE0922FBDD3D7BFF766BFE9E7
-CE0BE12F318FF2A7B5A9C6D00A54401609304ED2C55F5C1EAC3D4B38355BBD85D66D61636FA6E30C
-2E82829376BEC979A6FEEE040E452359768ECF90CC539A546F17AE906C76F14F86FF697797322B05
-1EB311A759FE260C1EEE5DACF383816AAF1294CFFA7BF87A4D9BC595EE8F2C2F86FEEE11AD959D86
-F22FDAF4CEC098942A57E57813A0FA99239E994FFF353C1E781D666B8928CFC648FCF0869FC68468
-BDBDA7D280DFAB8B0B3A4CA35B074B686DE8D372C61FB32305169A1A9912F6541DA16CD6316A6EA4
-51524757BE5CF6E820011BE3859FB8B8578C100FF029680E05F0E0BF11D33FE19460C85EA5E4C0EF
-28E29407C8AE6BE01CFA0D5022BF9FB01416FFF722A784DFC8FCE330EC95737A854471D334FDC58F
-AB42867A7B62836A8B56466E9A6C1247D46EBAFFB905CD4321970F59FB8D6FF65FDDD34BF913AD32
-2E68455C5FF2D23C1A5EAE687F259BC982B6A384D35440F7C693CF50B9ECAC0B5578CAEE87588B56
-2EB6B7F42034C9F2E545EC866316552354EB3728C7D26527ED75174EAF635E048B08DC5D23E88981
-070AD5641A652F2344956E9CF4C16E652A99F4A644D1787D6D36537489DA4D74E61B2FC4DFDF1D1D
-9D58F9C26C5EB63200526AFD168AC57D5611ADE4D4A382FC28BB60F9E7D626A6C67AFBCCD1183C5E
-3CF2EF210D0BF5CFA7BB10FA3887BDD4CD96EEEAA8F9219AA2F10ABC0A960C3B57C0EC0313AE10CC
-FF1F522124CFC8D2D49BFBB0C193EAFFC5B48FB3FF30B21CB76F0A4C0F1377C9223145BB0468A5D7
-1B9BC25873EA12E1C60334571C67385C00D0B570D3FFC6C7FF0DE62C183C76AEEB12DFFEE1459E0F
-C818C621B8D12FA1357E2B55D48935D70BF140B4CFFE8813DEFD479350B20DC2EB1D3CBB1A2D3DC6
-EE975D58C89D61FC50E6A0197DA9A586B72255023DE47DABEFB11E8AA02414C2FF6258A281219B9D
-DDFE41BA7D7977D0D6F18224FE22F7D4E9355FDB35BF7ED3418F4F68D093AC48F7D8FE4194FEB6C8
-0B9DC1F74E023C604DEA27089F98C3973FF9F4AD7BF7BAE601DB89B08D5D8139B95EDCF6C885FFA8
-B3E4B0477E7040225733826BACFD1EC4A0DD72DC41734856AB9FB700DF83CA2CE812913BD142D84C
-5C83C0B2583768198AF9E885F2BA74877A414233207234AA5F18840557CA11682AABDE8993533887
-7C6D404BDE4153C9827EB16D66C1D73A8143C8A2D3604FF72CE579FAA3C5224BAC48EA83BA848429
-9472007DE96466B5B29ACC7C03B05DCAA38A48BFF9F214DE43146AE4E04FA705421917F99BC54533
-F0EBC01849E396216B9F0794E6F6C6B61B52EF1B1950C0FB609895C3C55FF574163FC8B6B09E66AB
-AED1810E698FF37CC1F926B2CDA3B48C7D77790EBD2D514B6F385D397F713EC3AD3954EA9C846158
-6031D369E8B99E53408A79D64C34EB5A56DE8A67DE91837960E98A66FC04DFA0EBDE21DB003234BB
-78665B039D0A469A0221BD541AF7149A2A659C300132C14581EF766FFFBECBA8B58A5EB3F95446DE
-F49AF863A8113D17B2E7E6ECDEAFC3834D4DF900E3475596E86FBB4E2974C090DB4AD61A737D611D
-92B4535AC291C56AD8B1C031D2F9B505BB77517B737D70AB3723DB52AE2ACCD5DD2F617423ED3CC3
-9CA882EF41757BF7151806A9B8B0F312808863E3673FB54DE939B35CDECA7FBC4DC3BDF5A5F47D35
-E345916C39366C8B4F439CE1C6F1835C320BD1E67375B03B5DE18C93256F251761A4C8CEC01019C0
-68E34447BCC503B9571FE8000627A6B3DAD5854CBC0A2D69E5A8F46BC78F6A7B1422334EC7A98ABE
-FE9B83E01DCF3C6C9273B346F3240EA225AE4A4083CC7B0EA141A0773FDE940768358EB4B13D82AA
-304A1386D450C1C0C6A7D5A8FD2BD313F78F85248B5196241E31E5595F3BC01F37700A2DD3D4A0EE
-2DD01A36569CD507130E8F5B1E96CB560BB7DA15560CCADF3B2C9804A11D9E8055C9EC70E48C1D21
-3EB756A1376F2EDCB7189D78CD3D6CA5865537EEC31C17D801605EFD860B0B629472690588D02575
-02C6F7A75B9A1C1B397781329832CF3EC43C09F1559CD562C48FA9500295CD3B0A790DD3FCD4684A
-7C7AC49AC9BFFF36B39A9FB148BC28D37907433943CBBF0CBDAB46D3EA86DC8F81C859C52D15302B
-94A9B51C199B7104DEEC9D769C2634CECF8B700CE9C04152CC59C9326BDACBEC4312DEED92DD087A
-1C4840868D9F97CAC046581F762F75E8D24D6445370A3F1E0AE74A6478D9DAC37E7FA5BEBEC0A1E0
-81AF89C1BBF7F51E3E2E22C8C405E8671BA85F1BF0DF79A465DAC7EC07F731E00632E017D190A99D
-83E27E5C2E63D7DABBA23B2E88334C63721AC5A4CBC5D45F4C177259F34C2EADE01FA008AF65EBC6
-01D8DD16436D86AA94C99F3CC0A2F87134E73BF22F108B825A8963B49C6C685474AFE4A542C8641D
-C0375D7EFE9AC1168D9700459BE52D0DA399023E141969F25C0DAC4668534B6647EC85454BE945E8
-26B26DE6E3C4584B97A38E2B40A0D23481BCA78084FE80E00A71A790BF31DF468A435ECC88E60A57
-860BBCA3D65930186E9917CBD209C230E8F8255A7ABC7D3F043AE4D7AD63D9980BEDF062B7D5C298
-C40225B6D03F29A0339E0FCA02138E526F06B9EF47F5E7A8068A846CFDE2BFDEBD24F5A73A66C079
-18662AEC80B43246284FA4E2EE0D9AAB172B1E59A6CC46B801149D8C0DF6DEC9A55D8E1B0EFD9D30
-2FF618075944CCCB6831D336B11617107B0530D09885E5CA11A5F1FCC8D69D603DA16BEA51116D42
-CAB1AA1E4D7B9B4D79993F2BFE53EAC904FEB70B2D330A89780EAC10D12CC0C35B8399F218AC2976
-E57A26BAD20CE2FA2AE2363D3FD2A8A971747556F2959DA74A8963C20B504711AE1CB0D0C02457FF
-2E9BF696B159AF031DD5155F21C0F5549B0471A3C5DC8918B675CEBCB23E29322B959ABC05283A70
-2E878DE8EF25EA760F3C5C7B7B49D398283DE2ED837FD59F7C22D62C58FE4448B1049FDEBFC8787E
-67D7DAFE9774979BB3802254DA59BCC0219F98C219F84D995CA768B8B5D9D4A32525DFECE003675E
-E4BD5D8DFFC11025AF2B468F9207B5B2B42349B98232BAC0759758C1F4A283405815BD7145C93FA0
-8F3ED2826655053A3C2559073D8ACD199DEA2C5BA5F616A2E48548B4370EC73493BA07E197165DCA
-774438B0766867819C1154D1959FE6E01E6312E0AB91FC2E2BD240FC8652A2D456A1DE7F34EF372A
-53794D4C4E050BF3CA5B7BD2F1B8DE93B4C8002485CB219AD2D029739FD3C81CC6E78EDF38723576
-1A57143EEDE5CC887F282FECD261F6A25D0A7E154ECDF5DC38E426811BE86AAA458577E5E0C5F0F7
-5AAFA9C41E5D1DC9D91ECD79B514F8CDF7A5F1A189470D35FDF4F9B8788879CCBD91B427822ED658
-389E981E0EE5F7FB87692A3E3E931DF8A1D1573E3B0166204240B7080089A09EF7487C9AEE2D665F
-5A82F94C877FB5B0DC531CEBF1E71C6592CEA2401E4B5122E5091DF03D203DF979B9A6EFBA12E2F6
-B422FDF15D49AC0914D372D21E871DE65CBECD105FD4A3E4714B9CCA5C6803FA39DBB015EA8A88BE
-7913502E562E5B170B87BFC8572DC9DF49AD63694311EF1334444BDF0B4CA3245271C1F7A4D7FAF1
-703E3AA0E1EA8D5C6E821B28707EE0C9B4F22F23796FE87356C58AE2CADC191F4C58E1FB58DA03B4
-5A25AC95DBAE13A293474217BDB214742B9D9D6AF35F70FED2891942EACE3E625E55FFB820543FBB
-250A062D3D395BC0F219ECFE0D76686AC148BC41476A887BC494DDBD396BE200FD3E03CFA12EC9AF
-6B934A283C42AA05589AA6B4A8D16946BB51F50419CABECEAEC5AEF9085C9989289E9B46BAFB6FB2
-782D84DE2B068F91A9744AAB237CEB1BA513E57E4C307108E993C972A3E0A898D5A8D27833155031
-FDB98863C3BE7FEF3004CBAA5CB60A1F2E3EB4D7290FF5FAFA088B1CECCB6CF51A58DAAD998F0839
-6CDFD68F5ABC9C1CCB8F6514107773C69C26873E889D1F79D10E866910E4684186FCD71C965ADF62
-39BA3418B313A27AD632300969B6F284519366ED85E7CD968D64823F8C59B5911A72D0A20EB72B60
-3A61E36F52F256FFCDF706B4560B4DFA5D918FBC530D83A4B3C01BDD3CB4572E24242D141BF9E775
-36693A0407D002E09CDA5B195BF1CCF430AE9824C07928A050D0B460F2704BE8F9E647A4884C4567
-0A81EACF7CC038643EB0FF18A376FF6F32B6FE4F197273327FBBDEC6443A299CAD4B26F7778A99F6
-5A11BDE047153E764039EDB251936AA43DEE50DDFDF8856519056AAFC4C5AE6F2051AF0579A9ACD4
-1D00775D7DBE70022CC263DCA5E0A25B9C7C4F5C418587666B2FE24816B1E0EC92F9074F1403BB83
-AFC3F1D52CA79C387BDEF864366E34C90BE52F7AA09935373A07E4E026224E76F9EC3CB9E7EDE50D
-EFDA48248D61F3CEC880A3B8843306375D9711E58645F3625BDB8E87052DA67F9794EF4AF8DB0BCF
-E00677C3A26907DC651BC838C40EC39E2B5A5DC0DBD345944A6C32226089D63C52490FA10B215AE7
-03CFB663EB8A47793B84CE7364DA1C4E7FCE32DFEF09490121222774915BA59C78C2275F829D15CF
-4D8686B095C38C731B83D48738C25F40B8ADD487C350A2EBE846C3916AE384CB1050F9F5DFE09FCB
-D9129C6270FD86D55A459618FDFA4F907E6B4746196BB717865AB378414029017551161A52E9D24B
-E4F7EED553A927933D4ABC8F25DF607779A717909CB4D810DE8F5762581900E224E4B91598149BA4
-71CF8068ABE8744356B261600BFCC57FB8BE45036CF6571D9B2A95304933BD4F17215F8EF53F8E08
-1AF61FA7F9583C34EB5655CB0ECB82246959F09091F36989EBDD646BEDCA614B9A61AB7696B3FF18
-1058A150FA6EC1BE2EBC7F64357A3FF2A2B0491D2F4E0B970DE5B7788B467CA678039B5EF55C88A3
-84578D427FD2CB16C87B0BF0A3D37CE8ED43E0F049AF2436344D5F47C948C632C94A287509282561
-6C64C5D262FE5B24916FFEE982A69A6CCF888BD01D62EA591EEC51F4B7DDFAFFBEEA93FE08D736C2
-0129E345D06B10246A5F57151C198D407730713F32299638EFBDC01367E23EB59AAD42A83AB41B43
-2DB462652E29813740F4680A5D4BD47B18328FAE6BDF4200CFA4CE3773809B45E8887C9B2E423698
-9F6C48D64F5986F563D9A7538A8716082F81936AEBD0461E6F4BD470436D8B7656F0FDF89108E6DD
-02ABDEF907731D458D690BC608EA9CED09EB1E6E64C0790C7A2378201CE997FFE0317679EE1D4EE9
-F91157449323E53B4ADA8096CD628B5861BF794543A98F2FA2AB54FF0F25A13DAD43DAF9394329B9
-5AA53CA32749FECB0B2BC035DD1EBD53FF9FB5AD8BCE06CD89E5568091C1CC314CFB1D9821D7F9AC
-7C55F55E0A16E39A87D43148201B928F3C42B110FC056189DEF183745F3B637441DE8BD4C3C7EF12
-F4258E306B2877ADAEC63441010750DB4E6269A4C78A0AC01BB3603C386651FE814031CB5D8C1F14
-9EEAFF652A53E57BBD4C8C0CE36A84A319A53BC1E5FD3F1ED1EE72F4C1A9BF264B594062FCAFB22C
-C1FDE3F2E3D3C17DD3F7FE0E15EBD812D550227C06D01127385374A11438ABD50048E17255FCD2BB
-85122A6FB9B7DA9D5E9DE8A747FAE0DA45A1FCEFE92B9E70A5B2CAC668D4D07527A5C1403267D823
-048BE671F725CFC7474B44FC5AAA348420B2D7C23C6CA066666FD6F2208E329878D90CEF1C2E77ED
-22D3BEBB9D547810B189F08920A27E7107F208591A84D463CE2576C70C3DFE6643E4EA93F4E1DAEB
-41D46F0E2F56FC10C69AD5034FC9859D31CF27A3A1EE256C93111F81C11ACF1FC0CE20B90BAC9AA3
-27A5C85A7985B951519FD4B03C40BE637162AF41B2FDA68F0D1E9B7602FE2659D3D75955C579AC51
-DF6A552EB9581AC3F712F083F19B52A6C4F560F36C59CEEB0C996AAF1728A2AA45DCAD79BD7B23AB
-388D5B0B64A2B95154B6259B730B0F4A72C8C7F7CC93C7D64D9D8810D1F63FF8ABD4DB89824E2D26
-4FDEE916C41E299211DB1A53256E1DB5CDD04862F034D9404B73183A99D3D13D642A663F129B6D16
-7095BEB4EAEFD03DF2FF2F0B6B594C1EE90FDB203DA89FACEE23F1BA3901FECC75FE1811BD701259
-343011262B6A0A9707AAA6316BC3C17F787BB80AC8DA5AAC942D90F80C5A3BB59E47EC767244AA95
-C63E50BF809998957936D3BF6ABC24B0A397258F9EB4DC8F65692CB023D9091FB180C69498CD0C08
-BBEBADC84A7E0016E8F8BEA325D924EB0DF82E75D2CC2CCBF039B11934363D4332C5FBC5EC556BE8
-5EE4E707CC2753CCC43D2ED50558E51A104221C9323CDCB0199B7B83454DE3FDC810D0F362C0299F
-5DD981B31D8E3DDA284FEF9DC8F9C8DE138D3065437A7FE8C30572AD06D62E8527AD37AE39AAB0B2
-25F76A25F6C6505241ED73BA494CF923E919F688DDEBF193E188F8C4C154F21631080763B4D091E8
-AD1D2FD6649E0CD9360E8D1A67A5B5FAFC67547CA31C95A5EA8D4EB5D68B9F6D6532DB9B54584735
-9558542A2AE58C09F3BD2918EFBE1699E9C8F2C2A11EA4D224C726D2ACD4A8D8ABAEDC6588CF2AE5
-66528B94F55B823A2A1F7BE19000F3E7579D094E047075DF18C8C868760295533B26EB3ED90635B1
-29C17ACA679C3E88B06998CE5A7A2544B700229F5A6A504BD3E45B276471959C8A3F81917A534287
-39B5EF9E3D463B3BA7318448E2A3E79520D2D245A2A72F31FF7070B6E4624E3A5E216BD103640C8D
-F387E49D732529C611F8B971073F17EBD2F6EB18F9B74A67E1997926DF178D4C9EDED435B9682F1A
-279C81BB9F60DAFE125845A2FF3B02979E5481C78A45C479BEFB9FEF3CE2BA9BC46C77B50B03E48D
-A6D17B76F06F3AD118371ADC69E178C52B5FB4B261C9311874ED07DD6D5B3226A005FDD7A6D53848
-09E7063F036CDEA41619122635E835D2D74CBB6AA9B38CAA4D819C26E95115FE0DBAB4198FC5838F
-2C91B7A87B07D734C6D4F4F83444C1E90AA9BFC908A2BAC4B3DEF9157AFCA5248F2DA31CA87BD363
-AC25E9E77F741D4B2C6E02F04987A6F49D30E9038CEFC41BA172DD675AED8B392164411144E5B738
-F3210B0E66B17A13CB9631C33D44484E792A7C082DD0A5382F34C5637653261B1EB6D2035B08B4D9
-1FA9AB770CAF40A103629511F7B43F2743D7E583433DECFB19C21FD4FD0AFCC22A4119E77C87BFE6
-FE50068B22479015BE5A9F06BEAB4D37412E062A45E0CBCD7BB39FEE747E96306F79FC4F2E8942DF
-5D9DA0E55AACCDA547DA19D30B8404FA121298B44C9CCE198C708C69A8D6BF17591C5C50D3FC5BE6
-961F7ABA8F366DAE957A1C3730DA4A5B4F035A9274675EE3BBF0CA8CE9D8349F50CABB1C3EA4948A
-BE6F9F143592F1EA95404E6909A909168E3279A957AE1924245C356331A75E7008BEE92BEAA304BA
-40B7C3F48F74D9018B3247DF50EBD7CE541DA48ECCB1B0BE51A455C3C13C279D4D8676078C3EBE43
-08748D52C9B041D3E7244C745B1F2F742D010A9E60695F3EC4FDC1050AC082B905D6A57E8F407A3B
-472F731011A5798965B7B1A307E252FE02C8F79CEEDDEB6E165F1A94D7FFF18DDBDF79477F14E9E9
-3981ABD200FE7771B29D1D2D120EE79D28B9543818527039AC74085EAFF241B56D08220C958B5D9C
-87C0C04A14D52AFD475B542D391BC54FF33DEF8D9484AFF6873BEED32DDA4B371112B523B6CE22B4
-0D1B416B64C9370F1CDF2C548F4CCBE9E12E21C36CC3EA52DA232DCFB65F66B22B5E2EC04852510D
-5E264EE939BB67AEC4764B87062AEB7F680B40BCEE04AD45C7519EB3B6199C9E0E332661463647F2
-FB7EDF303EFEF84891CEBCF0FAC5F723A9D0476C3F8C092604C87FC69C7A90F4D64AE45A478EE8BA
-2DF50FB93F55A3546123F0B0E2C1C40C98EAAE9F0F26B8F80FFE6E6B94B7E27D2884D58B8A119662
-2DF6BE608C5569D7864BB756DF2EDD184B90812B44ED4A32D001C31383A40AEEE9743651F7950846
-15C48E402DBC01C818D477EAC0347795CB2792E9C11E8FD4A02E194EED1C919D4598FEC003B6D9A8
-A0BC7D456047A1C0579453FC1D7CB2D158D466939A23D7A7B8ABED7E2777EC7487973E73F2266D9C
-250CE30729E3C5223AD93B9AE8443B35711E446A3DC660123ED45CE1942A1A2AD0610467E081CE2C
-8B92A6C82F0B17B5D2429E99F1A6268072C6B5AAAA6EB6283A872C54D3694CD825EB2926E57DBBC7
-C1663075E687A144E4D61C225781D80FCAE1497B442342B4A3F1CD6BDB50E31791CC3928C30835FE
-F845B6BE5E2D7E3F2F5F085AA3FAEB45CAD0D76BCBB1ED859A9CEBB9F7457036F0BC3F195CB1A98C
-9C8648F6583CDBB23894BC719D68C2DBD8003B10D08C8CAA40BCE784D7BFB4EEC9EA5359AC056E57
-B8B0F2EBCB1F4CE40C87FC7861180133E0CB6CE2FC4FE690756D327A2B5AE063E3021C0C0BD420D0
-56F0B941E6B36088A55BA11D0C35FD0132D5F48E5D9673572347171B4328D4807B972831C0D74CFF
-A5638C145B89C989E6EC942148207D6DB82257585958034D9F9D4221C7C9F7013790DBD130F277E0
-BC88BB179DD09E27062379ED06F25EEA8B7FB33C35861A0034776E3813D2E9E5C10E227CC569AB36
-CB2D9DF2E7B7B44758F9DC4FFAD7A24AC7E9F47AA850C221048C3CB35A37CE8EA75632AE65FE3212
-175146FECD6334AE3D3C5F492F067F795E1E8FF386BA198CB74F0BB4DC0000DA383BC4CC3F070DE1
-7721431988D69C8B1A5AFDCCC83C22E16A87E01C6D3E79DC7AFA3DB0371B0866EFB8B6F88900472A
-FEF1C4A878243C52D4E02E82658979731C841C489A6B97E271C4C93800EC7D91F93EB9B9C659A554
-E1FCE42A5EC65AC39190EF4B66DEAF6FC0569A000A9E1495F42F706FBEA4D32EB7EF11A648910259
-6A65CF899C2F322F5679C6D123469192A9BF1A7F1F2C81C554ADB97BD19ADB746A4F81A4D5559E60
-AB94C483DBABF6CE2F28CDB412D50FF3FCFA3B3DAAACC6A83CFED910CCB3B8D2C19590AFF4D75303
-4A6CE7F4156896A13808E0DFEAC547E69D3C886691728E4A35ACD575B40D721E8FCC5385A2EB28D7
-08101DC50811529528F5CB0C009BA7E3C88468E37768FB0D83895AB54DB2DD5426562AF9D8AF304B
-F6EDA54E9C92643DF926F5C3578269750120302A37CB140A18BA56BA01108D4ACACE8FEAE640A6C6
-958EF156B588ADB0EA5F3B0F37BBA12B7BCB221C811415387B024B7076FA4403A3AD6EBB5D9C26EF
-EBDB7ADE7C60B444AB9F90EA493B658B7767AE2BE649BDBB3FE85F460F1ED137C61BD95F7CD3D8B0
-15CE45138538930AB62AA0E54B4CE1A5EC5FEC0A2B28B345B67089A4E4AE14D2E1F5A9C8848DA688
-CA298F93860649EC3AAFEF3E820D86988C8E3E5A4D4BB937791827994AA3E81D0BB3EE115EC36D5F
-B9A392D09E79AF514D11C7B3A03C9F9C13355CE79E119A19177FFDCA34704D38118A8976D1EE5AA0
-2D14FEB1414419F5E85244ADC5C0A765A522EEF36170064BB19FEE3B5F7B441E4DB967DAE0BAC2C4
-8FC6A836E0EF5A69F073BEE1699F55E9C757EBD6FD8B514E2B49D6333815B7DBD1E0694695FCA3D2
-1320A0C4B852D9706DADD8369A95FDD917328BE93DD33818954DBD2C212D2CA81560ED5BC284EB04
-7A5F389E24E43F4FA8C97FECF46589FA7341076555CF55B1C21B28E0C1CBB00AB8B6F67472F27BC0
-D11148F407824B0159B5188D4BB7386FBDBF1C0FAF34721B7BCB5C0FCB7C4010DCB6A1284E9D7883
-9E3C2111A05D29AB7997073B590A81C6168020F1D48951BC7D8476D5BA593F4F23CAC1F9BB0E091E
-84B4E99E5C584D1370DD12DEE8DF16AF8BC6B7B23E2FEABDB7F32779AF8E2B5094A6E9B7A7225F24
-C43A8E5D2B977E1E19E633C26771E23017ED233DBB02C64F8CF03992C6484528D0C8464B46F24F9E
-8380F385D5D01B8893C67FC103498983CF939432AA380CA576D09030CD52FD99BDC3BE16C7204CDC
-3365BF76294A83A1FC14A236F5FE5321904E779B13232A76F8FE521F425562678436359C2461BEA5
-AB27209541F557AE2AA60009C9CA0A9FC7898C14306CE35A50017BADEFDECBBF94EE2905220706DC
-806409EF87DB1D73EAB0698AD2DB72CDCDB293E7FB13C94D9FC87E74502E6927A212F0D7D2F2D194
-64F7A66AC07872E18CB1DDE8F11835DCBC5C4EF039333FFFC0FC1456DAADE7DAE3EC2EE0D3415B0C
-ABB69FC5006F4D14A4EE1A5CA99AD4D5E629C0DD1E0F097B5B93DE2DD001A8C418234C9C45E8C13D
-1AE04E9466DAB8CF1ECB88A4E059C111A6468D2DABB90DA79C7C79E94DB28F6968B1A632F8C57D9E
-565FF91C6916026FFAC0661856B9FB8DE9C81661816221B1FC159CFEF1751E7E403F5F2CE32529DD
-540792FC17A12A3DCD7C50D38EEAADBD10ADBF5D8A82442AA900CE6150EB7A4639DD9FB6E385B2FD
-093493DCCD9014B23EB172E21AA89643A6CAD1093343D85D81261972DE0ACB16A4C6B5F0BE4C978B
-FA12D3CAF0134F9EA49F6E9687C8F99A456745EA252F0BA9968C7F9586E3DD841AA92DC7705BDD68
-2DAE41518A09DF0E209F321D7FA3417202F4BA76A984DA3ADDBC58136885362F02F0A24EBC439B3D
-BBDACFFD8498EBD29F88F016B1FEABC10785438EAC860B554525F3266097A675299AA0967BD3B7A0
-EEEE3FC578D1BE99D3533BD91571AED904BFC9DA1A1451FDC5406E1CD614E0C7FBC733563CD6CE6C
-C31E9237CA153F1F0411114361D731636BCF98555ABF12848AD109371A42B63675A4130B81E97C2A
-2EE2BB5D8FAE2640156001AF0F55D9D5DF8FF23C8AEFE14F120000F14149A36E5C94CD9081DEC277
-C2C34870D05011F99D48B0875A5FF542F067F7E9880109F586BCF2B50522A1F23ECE44349E539E70
-F84E207DC9BEC7CDF856A046F1A03226AA41F541719AD1AF88FF211E57DD0C1275DD0B7B47440DA0
-89B98C6EE92A7D94700B83CEBE19EAEDD8A615F6587587BA8BBA3CE3AA5E8EAFB1FB0F486BE3609B
-169EFB178A4292F4C0378AFE5D24EED1CAAB514DDC66C696D8E37F294A6579131DDF5488E9436609
-ACD750C3DB0A940C84FE022B22ADC2676F62E91E8F891225F891FBA537679B24547BBBF35F04915D
-20B11739F620D18B5B216921D222F15044368569AA302980B9225BB839F494588481B94B0C724352
-B2DF600A22B062561D86CB8F81514FBDAA4F8A043A0265F992FAB71FC9124A45B8475E1EF3DF6B6D
-E35CF329777D45F08325E8505EC0D979F542807AE77E57E453525F23BC59A50740371EFA98678AEE
-6C425374AEB745B99DDB5D8D908FDB551FBC0DB15832107BBECC4E11A1A8DEC69358A574A2ED46CC
-31D564549EFF23102D92BFDCBB2BB985F78F36033E34F59C0EBAFA3BDD71338736464CEFDBA91398
-33995EDA4207BFD4A9867D32E867FBEB7DE60D132803EF9347CB17BD91315484EF6570892297DD8B
-7D966103339535E28A00CB1EECA4A9775F60A9F5FC9BD8B06D78FE8E6318C31DA2E847E3F9CA587C
-B01AE2BA0A2EBDE308314413F4F230A758184ED60D4F71F6CEC22A93A01B6C54E0449A3860FCA895
-4A347B7588329A80974ECBECDA1070FBC055666375229F13DD995E99265DF870BC8B8CC6347FADBC
-1A6AF64599271A475B9123493D46BEC41289BEEB67EB97A8DED7A9C9730D37C65164CFBDC22E5CA5
-89D2E7954C7136EF4E084C43A6C7F361A3E96989239BDDB9A593CC2A80BA16DE9EE90E95CD39393C
-212AB22EECB677FD36D34DEB46C4AD0D21BF7E6D7CBD0C8083842FCD87B18FEA7CECF939987E99BA
-34C214E44DD84C176C9CC5A4CEA76D380CB316BB4EF9DE73D73B4AFD4ADB54451591DEF86621D138
-D5A0A29441502BF6C2ADE671CEC3CB5CAB903A657EB2D70C943F976C110E46C5D9D29BC00A875F27
-38E5D22496A43E096E009C5D3CB724B4CABB32838DBE527F83B18CB457E57B092C302EE557FD4F00
-DB9C56E66C9FDF4EC9FFAAB85F60D02BA79694FABA476A199A0331C30A78A92E10417BA236E23364
-8174C826331DC1BAB87C5F95027846130C6A2B4027930EBF9A97BA1B039D386FC51C302648E25980
-212F6A582CDE2778C677A01FBFB3C5D1B8A374ADAF6ADBF7DC94075F25ED66D440B3922C5F255FB2
-3FD8F6E21EA65B1D93BB225684B50F11310E242B087575973345B229BA62C1E2C35BDAEC04D10148
-F5B2F3BCF7399BDFDF1F3F79119714AEA697245BC647316EA157484ECB951BE367234FD02E8B1F09
-1AAC3D29BF282DFF4011BC0CBA8E55234D943DB3017CC7A766720BBC29B2D097A956C0F1067177F0
-12D42ADCB473CDE8D1BA35B4030757FA1D8211989DF3BD22CE5D501C21EF8708FB3449DF47D88650
-9FF7B59B76C0DBAE443F336FEE2D615D7EED1C284F14335BC8A26BF4621E10DE9611FB2F1DBD52E4
-B7565D8C65B54EA36D508BCF0C578A49A2665227CDE1F9768EFE847F9D94F1BBB7DB83701C232198
-5C7283D47B2E40B27A268428AAEFE75F6B2F8764A8494E5827573758CB9CA46FA93208836BCCC8B5
-564A69F5AD882052AF1C1417C3FA7F580569528682C77080F3688B65E7FC24D2A3AEB61574B4A321
-5927281544DDD7A6EE0A3E9388F8F631CE7251724DF70726E5912DDCCC8C652DD6C9608F8462303D
-867F589DE0F2F71711B35142EE6EF93B64D6326C4DD7DC83278E057100EE772082E6BA368ED91A55
-53ECFE2293A481E42F83BC8F9148C70EACE91F7B7D9CB8A72415BDB3AF66F68EA733A17ABE9DB005
-3BF148629132969589F38D30EABFA96A01FAC72650B5A6FF3935670198A1EA33810A9B11E330EB8B
-451F24F93544263436F669AB5A90A53B16CCEEAC36B1445574EFA7E802DE73522BE725E68704822C
-B7D3912717333367895BBFBE06966A5CC653AAB5E9B3596702086BF0010085B900711932A95ACF15
-CA4DC45A754EA334E9EB84D6FC8E3FC4F897456BED64BB93B593549FF0D5352275D8E417172A6664
-C5E0ECED1019494A7ED49AB0B965BEC1A82E5873766BB38D7D856049CCE2FCA65AAF61E961B60634
-E2A69EF059754C9D8163D87F928C222772D070D83FEC6FA5AC734AF65E40BFDE521F7D9CB1650FDF
-64754BFF21EA3FF0AF7611A93D525EC9B28C51AFECB04E7FC8323DD6C9B0D8539A34FC3CD8CEB795
-8E8EBBFED4313C77ED469C199552A9FF70BA5423B03B6148D4EAAE17B71C5B39DC436AC53D6BA8A7
-AD81AA8B02335A8B2B11E9F4FA913159A725B8AB60F52F1A2EA50EAF4D56656E615BF382CC68A690
-BF83DFF24FE986570ADC0290ED1A37C1C2AD469CE789E0EA0BB5CE01020100E729721AF3B5BADD33
-A2DAA6C33EB8F9064F5292F715F820B4BBFDD56F76D42E7A1A068C1CBDCE4640082F6E7D582D1939
-990CE6EE8D270015A2C461798B37DCB5798EE9F7512168B76D26C28BE4A49A1BF96C89D235F21A1D
-B6A96E5DA474D0B19B808D13D7A11BF39EA8647499C410ED9894A1ADF33D41B6FC2E614D8087F4C8
-4E437B136F3CB32DB8393C49177A0675A0C9E7EECEF448A97AFDBE840FA01FC7E5F2E8FECEDC1884
-84C312E8635CD79195475DDBFDD4D38D5A0246DE2C7F21608F8D2C0DA1371D302E941572E5792A3C
-F4E51A33228B93A814D03FD4FC223C314CF3714BB3A34BD4F7ED6348577FEED9DEB082C4049E57B5
-D3CDB7F26629E9F3BA36893E09E3C7463D02A22D7056BE76B87763260E46E48BB832B7EE13F8DC05
-37EC8E81E9BDFEAD8C27EBDF1AD706933EFD11131E12814F236EBB01BE85B7F1B2D627413B324918
-D247604F56EC128909873FEC3857028BEF76A3494364C2A7002D104D486236C30B48E2B75D851C34
-EA50BA7FFEB4E19190898AE21768C157C0CAC628A2181A32796FBC1A7271D2473CD88E5395DDBDB1
-FC3AA8DF0F3D588637F19A8B833AFDEB5F655A8838EECD684E2315B72C75CEEFBCEF94344ACE8D6A
-DBE355008EC72FE7CEEAB01363A895F4E73F867639BE0A0BE67333848816B05B419221BE8F9066C3
-62C23FE85B7F392930BFE4C12B9526FF2FDEC38F23A159ED61A0718E7115C24597D849FA76369153
-54A40C965D4D72EC94DA61A03766AB39AAB684E134FD1407A5B1B19BFEBA52AA0DA5D99CBE5C82DB
-AA663711E6DEBA180E1D4A39C320516A4350D296BC19BF1BE054859A0889C7E9727A021F3176FE62
-0FB0C837E4141FECE531A950C03D319E3255703220B7185BD20FE5DBA673F8129AB211EFCF36EE39
-4C7E00EB0876624BC840FA86E58B2F584754CB6BFDFD76810E300741EBE4544E5AC17413ADEB21C6
-2F66CA4F075C32381796BA709782DE34A675B717A2C7F6D88104CB924FDE5DF775B4F0B68E0E2E5C
-2F788BBDEAF06D8E1FC2105CCBBD5827C0B03FD6CD64F0D073F3192D5F94839644E5EC6C5185BADC
-F04112A65F49A8C83174A9AE958E76A2F5AF469E8B76C833782C5FFB8BD7B1BBBB3EA0CB7C9786C3
-BE2ADE5E7AFA8C8F20892659A59BC421E28845A108E34EE17864042EF587A6D67DECDFB3F510EB40
-D2229585347A0035670FCC76C2837A4E4D68304FE113C539B35C1F0234B5079B8E32934546982978
-C5E4DF955A454EA263C3CA5D7101F31A318D82A3F9FCB5A8AFD7A65209663B0FC9DA400B26F285EF
-46D0E1EAF8ACB1F1CB805E3986D04BC585073FC64895E4DAE1CCB749BB439CB32EA91176D5C39C36
-50D10AFB9C9884D5FB90183424CEE67EF2175D01D2478D67511EC9F54F88763C152697B06D948BED
-49240096EEE3D06AB4575E8E8B2CB8263B5BCF4FA1608720F52B675309833071879DF52C3EC2871D
-20F398B5CAC8F8A4D41D0F1D47584DD90DCDAEA4A1CF160C4B3BF1AAB890B5CEB6CB3488672AA68F
-BD938281DBC1D8BCFE92FBF514DA5358443CB6E0147254E91B38CE6787B2BB0DEDD2D38F5938737A
-977B5EA42892520C58F8FBB53C994B57382379E9490F0D6970B980E1BDF8CF9F4C3C5E0A18F66E86
-EE93FFE7FE546DE50F41364BCB3721B637072571FA1779F1D672FAD260C16D7F13CBDF3E4376E7FF
-56D2A710AC5AC35FCBDBCE2C9C17E523BBE6218617B13C1FA6679B308979AE7C61DA6E68369324C6
-CBC7DDEC364E5A86707266C0B459EE7B2C03FE584E529BFFDCE98C90A2F3D9305AA74D3ED8430DBF
-3A49FE2ECFD9C4BC9FEFD22618FE9C8A973AD072AB6F713E4DF02DCDA7AC5359B2D652013E131B76
-B3ED6C75FD53BA58D862846264627F6B9E70D8800F6D9B32242B747A67BB2B45675840D34F852AA8
-062FA6B01E31ED24DAE02F6CF788A17F7B9368175195DB0072259CCE0FFB2C1035C1D26E1777CCA3
-D56A827C3242069E76D6DD69B653768614B9ACFF16567FEA61508D51454BC02F6C60F755AEF6AFAE
-3536BBFA1823F8E1A53C41124DE983E51CEC92AEF4F99785D554488A51C20885346D1F761DA79017
-940A0C557D93F1DB6B3D00FFD61D08E96FF3AFCE5FEDF545CC9F47A2B1BB26713431D6D1E47FD6BD
-6E3C668B0368241F0EBB5FA9C991DF79890E52E83A3675EE699B61BAF869DE91F67278F510061C6F
-E41DE2D883F48CD0E068E2A652B244128D82E5CD52F35F210DDAE3054691ED55A7D99088AAE8FB04
-F525C2084AC09F5EDF80A4EFAFE981F74C0DE9D194320709B3464F3FF2C0F6AAEA6D973D9C323F53
-DE3D741F698FBF01036716BBD62957CB32CD81D3A2674560FFBC5BDC5C6E4F547E589AD0B1CFE14F
-5E17FED1C4A8ABE4E67CCF8A49F32C4C6044F1431E1CC382E7758722A6D0DF9ED23E51F8AD14D11D
-7B6428E27443715EBA4E9C05D6F238378F9498AEF0E7EE4FE6856622CC8E6ED141EE5F109E343CB6
-695C4BE1E0F66601C27975983BF557C04ACFC19227A1AD7E6C44C00529FC7EDD7F886D24B7E029B9
-C395260088BBFB96972199A7B32796D27257DE83A7402291C14FECDF7998C5C96B1EDADE0280F856
-8A8F5007852EED303969180B3329917973C2D32C080C9765B6BAB0673BC7ECFDBBFBEA980C263843
-39B7F1052591D91667D4FEE413AFC23DE2D4B9DA742F4269C6C939F5FC32A38040730A018155AD73
-3F231E4D5B9D01C03A58EAE7B5F590CCFAF25EDC8552CFC8D95C60EBAE1837D7A97CA137E9D4A4BD
-2CD34AEFD68D64B3F4F62326AC429921D7FB3C235184FE0899690A0B775F1A566EC29D5830D32372
-6526F7E7F5AFDD71B77E07613DDC4FC63EDF49051AEB59E6337AC0A4B6DD872E776C9CD0CCB86130
-5322D816732124F5978A86C186BF0A0F88E733CE38E4D7C1BA5378C5629B1EFC97806059990ED42C
-5CD183BAD7E94070E4058569DA2E51831FFE0D080301AEAB4350BA290318AEC582C78D05DD92E5AF
-B4424EA808629BC972E68F4FF2489C245593F07555CA6A2B25964794CF31CBD3AE5C229AB9B8C298
-06C01D116EBD0FF0F159ED2D3D7DFC73EAB4910BFF5B0B0B587CD9EA6E6FC45D63C09766224D8346
-1F0588140B258B1729F70BAE7962189B1554483392988CF230AF4077193E53330519394DD99BA135
-6D4730AB221DC6A66019BFAE564893DDAD7B177DADD16ADD21D396CFA6C3DC818052E2F71149FD59
-4A16DE0C2FFDD366C99B486C55A6E991E4D22CCB15843F0C3363676AF2F5B2D1B7EF66CCF2F12DC5
-0D63776BFFB058D70A9C76DCE96C754872D72C82A0C33F90D49C935402CDD26B6D743B1F43BED5D8
-B539424849C1495DAE73044E885A7D0F307F1816DF6244A6F2D97BFD4E200E93F69B08AF39EA21E6
-E347A47CEEBF803F73B978ADBFCF056789BB8E6E2563DE87DD9A8C877157B934102DCEDAC54D487A
-1BB2694F0034093C48F10A17D32E2BDD0C723CAF59ADDD1BE373AF8C9BEB4415AA5AF36310C31F24
-354A53C0B962573148BEF91D994FE3F3D8450DD4D686725799F53C373A0A3E3C060C2E1A3E800504
-9F26D716E1F381B9F83125E4683264A07E2D8938F605978E2513DD2050B3D8A1012797CBA8961632
-BED260916338A812AE751C7B657E086A0C7DDCD3BFDDFF3E48B84751925736D1310C4910FC114387
-F3ED7FE163F91895EBF55FCB425CEF5729D99BD8F2C072E36C310523E75CD8E5DE49C031C4263410
-9D56E91A46C8C8E89FD92012A00C33D0DEC52597B5C6933291A7BDC5CEDA95DCDA5600F9AE1C8250
-54E7EE1067458CCB66610704C58E4A4FC0CB5FC933D0322A716B2CD430A3AD48DAB3D4CBE9D23F2D
-092368CFC4E1F5495C133A92942EC62118D45C17723646E69407B4A89DCDFD2AB3FFC099A21D9D29
-741D68270629AA3A414FE58658DC9170C247B6E23F35C4BC5FF83009F462F2EEF4DBAC5FD158A658
-57F9B6DC1F5192DFB169DCB65621CAB2F1B07BD22F4155A8E9E2B6388D430FDE5EC1C834D22EA035
-C52E1E34482EADC36B4CAE902AAE89A7284E62B3C84B608D6BD05F75BC31310B2DD3B2C08A00E073
-7F104F03A41989D5F6B9A2C38B22F1D1803EE5D7A4D8DE44E4ABD496A1DE0C0E12C4BC96D0122846
-3F0EA9CE9509FEE987139F3DD3F9D0DF4313F555BE85433718F6D05F197C41A9D9C7A8B0D2740196
-82D49F58DD5F66B12A6520D9F226D1DF1F1B65CDFA261F980CA25A92645B86B64606293F8BFDE364
-C47D2AF2C709BBE77A70A5712F2CC26F3D66F5BE2C307A48E6F887F681D30121E32BBD87271B5DC4
-615D28C309F15AD263FB37424E56DDA6E17B998B45BE6C7FC6C28E3394A8764C9EB2DF5C06626593
-B5C665D550D4600172791CD208AE9F37BC082B0B242B0A504B751B18F4D7495172B697EE217834A8
-A4FB7CC16D6F9E8BB400BE8AEB0850960283DCE725249FCC4DE97D9886745AB6066C3E2F64DD8AB7
-9AA11667F11188D7965DC11EB760B772E282DBF13249F31986AC6898FEBFE23E3E8B8D2C33E00EA6
-FC493850ECB2E6D831D1EFCA3C2EC8EE2E394599091ED58BEDE97D7A43B6F739EB0F845EAC1DF6B1
-EBFE876009CC5D804B15ED4B56761B3CE1AF59C07B49DC798A44532297AD73D5101ED47F36A3678F
-818297CC27F6AAA2AACCC9AA9B6F5459911D8C56CF499E390AE607F3790450B2B9C9BE0F006EDA0C
-715B5CA0481734CFB0597478E7602B0D2C1E4F78F03C68C17C70E4B42D7D2D3C95CF40F73488B371
-8E2CB05A549944D86944D78724E266C3319AF89AE430E777E95F0D792B1C654306E421F3D63A26B2
-1E74B6E8B21B2E2B9DC596D013CDA16D08E65E8F24A84B12B2BADC653E6E1110DE2E709C1C1BED13
-707B70A421B384F20CA7A9A9D20324DD383F28B2D3C7A9C53F5D4C6B7C378D26DF11CF55238BE1B2
-4FA70DCC178DAD3D35670FE4919085EB1CD905971D76A368FDFCF9D2F0A23739851A3A6D2E02D65D
-54DEE69ED5D81315D3EA5E356F94EF256DD267FD1E1A9EDC9CD63E743F299BCC4A4506233B8DD765
-2CA067F741603F93250C087D368F9E9CC4CC1A6DED567487C05BAA992B0056A77F630A72008E3946
-15A9DB24FE56A956650EC9DE90A6C2259189440247970541CA198748928215C0E132A81AA13208D8
-63C1FE817F70CA573B54577D10B73100AF8EA088208A44FB92ACA314AE5879706180788C17BB1D0B
-81B6B95A1C4E0F9EA66F9B39BFE12444A6446691A7BDB03E0F03D9F07A10A7598F2166F108529F34
-CD90E601FFED3479ABCFCBDE8F051C348E48C61D95B00C59EA1287423F05666C3D36288844067E83
-E14F6B5210842C742B89F13ACD126B9FC50ABE2CA7D7ED513D43B6AC7F41EEDA416BFFFCC5C844AB
-2D23D4DC09B2D510504CE98D02E72020D9E669DDAA344C63A1B75632F912A1C0DA3885DA4AF7E243
-E4A4C6493D6595BB6D56B0359106957259E59E336BAAF35BD1CEC5CDE735272EBCCAE8D4904AEBD2
-B32610C6FEA2B69941D6542ECB44D71092A3CF067708A3D087AE99FF29671AB7DD8758759B971A08
-AE1BAD78270D2FBEE37AA2DCB119D72F6C7B0C8509018A70D0B0BE2C6830EF8E0B24B1CE1141EF87
-3A4D7DCC501F808BFD94E4DC0F2915AA023076BCC8006490A43685EA25AAFC187302EBDE7FE1965A
-04A5A398985D29F08E085127B56B057334D88EB638A4DDE64AFD204974C3939536B1B66A54B4DB81
-151853915718F70813F096CC1B0EA25E363B49264C2AD17158A4489F91453FBEDBDE15D7B74D7F98
-E81DF23251785D58295BA297F295AA6248A912CDD4F1111E6B628EECBB5139709E76EA4AB743CEC8
-26621D08E6BC64691CC90B3C3C1778931A28D3D5B1E20E96C643316613FC487C9B604C43463FA453
-3BCA1236286E6F5A6EEB2F1D9C34BDDE4595495A365F88055D9268541CF1654ACF478D384A5496A8
-772EA1402751A093582A6625A0A44816B5FDBE166835D598644296249B92CC90AA3FD6445C9A19BF
-27F59CB0616C7306070F33C7DF4E1DE64AC8C5BB2FFAC1EF2B1B30E5A0275E6004CF64BBE2C6710E
-DCFC3AA4ADD60106334708862FFA6652825BC84842736E47AE6917180365C75B27505EED3C6108E9
-898A780E20C3F606A860229AC46D0471ACA0187D6D539A1B8820F620F72B41AD1D3BF3834BF48CA2
-AFEA8BF535AF74C4562DEADCB63D2F5C7585722B77C989342D190FF926C8A5263B4F25286F99CF6F
-C62EE6E2AD61C82B29D82468AC10FD27764278E5558CE8B41BA111CB2F040914451A480C93084237
-CAC8F66BB7C6689F340B8ABF0150E06D5B1177278A4C08742FE22F42C28680F190900344ADFA486D
-59718C25D37275BCE4DF981AAC35D2C7E85C72A0188B8953CFA516FD545AEE0BF4B8BA301CFDE214
-4241FBDF3D204E3D2823301572E23F204C97305A82401660E12926EE7BA6EA1A81FF5C007933AFC7
-3266FAC4C134ED818A48E7DA01C71A46335C845F9DA5E960B25339D551582B375814148D94CFB781
-FC56093827B78578A73D4FF67B6B87F40CFA5E3F4325D9108CDB64BD06427B88C84105187316FA29
-90B4E3E8EDB6C78ABF164F4A9717D523794B2FE772A04DABBE688CCA977090979B5F47CEB90A1DBC
-167D305EAB231C9F4260C4AD10889CB785169902FC0BED78DA15B8417453BB65856EA0BEA5245BA0
-573F623D215F6C0CF801851C305B355D26B52B0B343645FE25C78A3526841EDA480919A1BBE5F56F
-C10ABEAA3E1FCCA7C43EE560F067F1AA2AFD642F769D1ACE8E2AAAF38850F0D757CD808C921D716E
-96FBC07DA7860DFA70CEAE2888C0ED3CBF9586443532B68DAED9A926655C157A416C383A53D8F283
-2A4E67468112A09ADC837ED8EC95F70852921F50D4417239FC42EE3624CA97F682745CC5E76CC7C6
-7BD99F2180F8C0B7FB49539C8CC474C25C0DDE491671FF329E51BCFA779346D4686835A3AD6633FC
-B5E0F67E0CA9CED8F215BEF4D240453EB2EDD6ADB22278AA5B985FA140C9834D38753DF2014F8C0E
-E6DAD19E8FC54C03C1F6CB0F858986691D99592562CAD95FA0A5B2ABE4A8B54B457D42E8C33A2D19
-51C0419A72FB94FDA78ECD92BD2A1416459E9DECA9469F35E4C47DB531726DEE8F203D7042EDB32F
-025DF3D582547BB1D45F7A5B70D317DF4EBB16E36B0D798E0932FD2A85B04FD67143E4B287A50416
-2C1F5A037CCD780088C5476385AF8168E12D97D44B0630621759173C8F1E3006B5B1C6D7138B7EEF
-C3CC5F54E24B2C3CA7B41AACFD25E554880AAF406EA4C3C6E21D3B550B040FB1952598A7E8E6488F
-E38288B2AEB6C4718338598A2BFE4D2B9D14C65732DA304C16FF3E1F8F03046EF095B65FD609DA87
-EC24A69278BFE65C905CD0329F6A486B8525B7EEA4F7AE56C2633CD83543269E8ACD6D71F500D82F
-DFBDE7F7F7B1AEE67328549232E26CA55085B6E84D9E2E7F74068F93A90C4654F2F396E57C5F76F7
-E61CBBE523DBFBA6E76638BBA3064DA025A79E3A294FE7F1CC28A3B4C57DD6FDC48E541A85534B25
-E1BC11B4F78019457239EAEFD4BE9007D205F1D985F389DB22400B279C10948551A6B4A17FBDA0FF
-C9428B18B43DC76EFB15FC2182216F1B60B4E344A03AD6C00F141EF99F89F24C819C3E32877A927D
-84C2D006940F39CA8B71E5951673EA9BFD1749923219DE38929ECAA9CE43B06CFA7DA1BBEDFDA56C
-61FF6C24F40E59B13870D5FDEB82D981154FAE5D6D5152DE69339359461A41A9713B6BBE47E868C9
-33CD74C75DB71D13BAE4DEC85E02FAA14EAD6C0A253B16C79514657B15E68CCFF9EE6AA385CFF9E2
-C53D9AE40F85C793E4E8FF50B2B7420F4FE69807BC5F37C3E300E6B3C3549D1D3246A2E70F091054
-1135BDF805E0A698E236B6496702D061241687B7B8D1A0E517DF0476DA09D89667A7AB375FD2672D
-CBAB8124E511502DDBD08BA04D941DF1CEBDCCF7ED48405CBCC33774A68C5212FC6F132641FF413C
-984F8B43BDFD7B1A2A3435F15AF07EF4970D3E4A0BB947C181E9CA27CC14A35BD1BD096875B45873
-8CA244F88C28728B74E25CB8C4FC1095A56CA75E4569AD3082EF194ADD11350DB3B74B96761D4538
-596FF7243B1E1B724716A144106E080D42036444FD472998460CE9ABBD05B42AF9389AC452BDBBA3
-A13A96890025789F16B9D92251FD3B3BEB2C61EDDB370A20456E3BFE5F4039E2557C451C524F8087
-015BAF3FF05F51869FB97512968BDB2B49589C1C7AF1E085250A47657465F480B7023E24C76731AC
-0EAB6704123D77977D3A2C4C56B691346EBE589C619C04515D34F81FC6A17527D5D8319013C5D4FF
-27CC3925E24C99231AC7FB9EAF0BBA482D3B75807AC85D03CD09DE5D9AE0B07B7A813F0449786500
-0AE8A7E00080300F0AB8C399057EDDBA273DD2E1B2A0DCEFAD3B332E6D4AC1FFAD846167DFD70E03
-46DAF84AF292D4F424256ED5AC4E104F80697050D50844A708EAC9E7F7784FD01646F3BD0C595CA5
-1EE6BD607D254E78ADDC5E15C3B6AC4940EC865A5C23105B6BE09EA09F2C05D6D76960A843B81EE4
-33977FAAC3CBDA85CDD2F4DB7C28293A77825635992AF8F3B38B4480D9A139B1662345A8ABE1634A
-77496C3F57597D2985E9E54717AB2E99CA35789441BCDDEDE9A9E2106B401D9684ADBEFE40D607F0
-75C179E9CC03E59E65430DB70B441D43DF03F2AA6FF06F224B6E455B01C64FB89EEC9103E48453A9
-749B4D602808C7E408A8903091D85E06AAF635D0D529C3CDD1B8479AC0F4208C284BB678A547F2BD
-77BB17C86D4560434F7AD1937760A6AA55B614CFA9FF8C9C96561AE6C8F2121C4E20237428BC51DF
-2099B6C49E3EFA18E6D439E6E6981E746EBB1DC461259D8EA0F8099C47CCA27B2D982B72C9A07CF2
-1B3C05D6E26E6E286E348B8944078E24809F9C5F3D014B4CBA02533F5621BFBA1F0EDB776C634746
-703C9F73BA89B1960A496420C68F54E5B901A6D733D7ACC79F275FFFB253F389AA480084468BB34D
-A1E797E43B7F6E8CAF5E8C93069A3A2730E57EC39B677BB73E3F07C2055599F7062E53B37A5F0099
-907D2ED87FF7A82C95FBAEB888033BDFD67BA3A6031A4CDC56CB1E4CF5B06B46E16D988BECCEFACB
-9E1C037023D7BF5CCF5D65AA66A17AB361BE7981F132A578F3ABFB97960A6034F052D9D5AFDC0679
-782EC90F240F943A5F9A3D969ED7399254FF67D89DF668F7C56FCEA1FFDCF20481474AC8495D3AF4
-B6D7EE093E369C057F0B70858220693B398ACF8E8143558132E4391405E30A73937C53402E459F4A
-A3539CF7A99A3F51C0307D045DF8B77757E92EA2F51BF0BB4F77D3904DD355665870C2B59F1ED7F8
-4FC71FDD7F0B6C5D3182DB77827CA6A2060D2B8C83C4EA4A432EF43A4D0A952CC6CBBE52A9F0CD66
-1A538973DE41FFE9C5CF55F2506B9EFEE51FBAE5E63BDCF5528499A47C031163C88D3022606784DE
-2F46A9C9235AEE3D4F71D4959B0CFDC5B7E78C8C0A8F9DC99440C2263DBACB343C5C648577F5610B
-50EAB1CF7FD02419EF3941C7CA0B0E64EBAD4B2CB05A0793DBC38F1946D44767BD287F5E9779C611
-CA0DAAA1E7393DBE0683C8D3455CDFEBC0E64B54B737E298DDA605227C0C4BBA87AA3EC7FA6EBAEC
-39E6EF2537D5974391D31739D9FC42983D81AEE44711C823F35F8E2321AC74943871739D2DBE9748
-FE68592263E7713F27E0D49B9B5CB7A4E55DE54E6B800D15856450FFD3AE5F287B12AE4F438B20AE
-9E27E6CAA00F3EAEADBE08432684FDF9931E925544A680182602A3C1997DE5D0630BD5A010535E66
-E1C123013D23966B3545C7431C39B97295BFA4099D14461004C42C85095EEACB9B47C593BC6DB863
-533A8619BAE09095DE8ECA432D4DDD49AA600D277E75DC3F5C6631E2A05382CB007825FADB77438D
-CFA78E252D79B6A196D5164C2FEB85D75ECA25FF80B1D97FE10E87960CA0FC47C41D3A213BF141B4
-8BC3AAA93FA86245064668394665BFD52D12C3BE4CE39EFD8111754398A944C3FD1AFA98EC337BAA
-AF899D35E804CF416AD7FE45FFF13FC6354007501043F98FE8428DE8013901BA6A28711A2CA85A27
-0BB135B72F1D5026E8217581860729E94F2F1878A0E96C59E9F62714FB5F8F25003DFC7347E99007
-8A9A331CB3A6A535BC61866F02513DEB982C4A13ADBFBAC3FF70A7335F40D5489E48E5EDEDEF1619
-1973D932479C62183B0E25EE8C4F76D4F1AE45DAEA4A12AEDD9EF81D248E8D19F8C8A5BECDD1EA1E
-98783EB7A38149170851B1942C96C53DE06DEF80913BFC04E539EC67C110498D15B78268853E5C72
-F485F8A27B768569E54241F6115875E2973292CF48FF91D45EBED627AE9F0766D22201B20AFDD40E
-5B17CF337F2999E0BD15B86E46EB3C18FC12B7DCADCF9DD50C6C7E3F37E615A892DB3F57E250A072
-A49F7277DD6A2C8042698233D35A699B17ECA5DBDA6D250ED4A16FCC893BF0DC2E33FB1EBD7DEDEA
-3C1C39603C8B7E1A5A833A8FCDD5570BD088749BB232615366687962C7E56ED089CD7B092505CAFA
-5A80F503C4CF337F07ADF0D106937E25670839D491F7BFF7A523DB609D126328C16113ECBCBF9C40
-04904427A108618AE5D4ED809F8CCAF72251104C94EC5BEE21F91B179D31DBA79CEEE5EC7FF698EB
-84AB1D2D1A624F58B3622A78844CE51498B2CEF38EAFE259D22C7BA61104651A862008BC1DDDA58C
-C45F663EB26428DAA85E7785363A69D2790996EF5D9621D53042F42F794962FEA46E46F37B8AD1FB
-76FC8D5CF2146843F8CC625139C75FB42DDA71A752BAC48F294E4C0C8289FC46DA5EFD9C91BDA6D0
-27518B7E81E8B21F755A9615627D5812ACA674D1527A1185EED4E3C628196E7D0759B1CAE6B9B7E9
-01E9599A65230F1EE469CD33B9BD9C104C44E3C1AB966C9678BD0AD78111A4E0F2D07A01A038CEDE
-7036D0534D684A1562A17AD64A00F279200C0371B1CBA61747671D2A21D3F9646CA290F6B82418A9
-6FA177C6278277504B7FBA936325F5FA124AB018A15DC18D2C5E8F93CDEEA52BEEDB78A57828D81A
-3E6C38B9FAF3DC4EB7273ECE3EA4482A1C6242A335862C2C3717F9C9ED95F77B140C4E1569B2192F
-C7DCF702D0BC9A50428EC406F8BD0CAF886B4D979320D3E429816D88F7C7146D960AC12E70F2CB7A
-9F4E3E366665AB3F1B4B6440F55EEA26DC9EE0096BB7763731740A537766490C8C174723BF0EB40C
-53701AAD12B21D436ADCE22203C1053A9DC4E9F17AE617888C4B4E6F3A720E4E6366BA628221A387
-D8AB15E04AD69387C310D3528BD2FAA5B22BFF3FA494F5FBFAC4F771C9C7402B95580C5AC4BB3AF6
-92A70CB2C851FA5CF1173EEC3EC29B5A05A0B728BBBB51D3B7AD8B0AF17A1563E82FAFD93F8B7118
-1FB7AFE352874F4EC6D334AB6747519AB8E847B7BCED33EB5458A828E074E74BA621BDCD03FEA604
-7F7B6ABDA01FC7514BA1AFF0D4D0C0CB8F4E42D5A87E395D9ACDD02CCC220C157153422018725846
-009A3ACD8C8CDDB66BC6836B4026FD9F526AA275D06C813179E5924F26A25094E7BDA8BD26AFC4CE
-B41D8964D4FC4AF1DFB0595BC5D6714C32F15DC7194E9A3A73013C45D8FA55CC0550A12D9AAE8E9F
-F199FA28EFC2426D8D1DEFB93A65717AF3EA8E2D5B4AA8EF0EF38E9600F7D4E7D9F1D67A2E63ECE4
-789FA74B159BFE2F91C19B0378BA52E93DF12830D99553B6618645E26126842AB70262D96E35E5E7
-50ECA0CE3458B3E51BEE2F21191136DFDBCA39BDC07939E521E4F492F392DEBD029C1EA237BD89AF
-76BC89F618D530160AB16269FA6B693CF14BDC4EC7C630025703C5337F61458FA09104EB15C7CB20
-AA4C9BDB7CEF3A09F25BC7F3149951A7CD75372993B80CD2112F7674CEFD6AFA764AA3486730D2C1
-897A264D82A91709FEC4A21E30D812F558451804EE6F3DEE2C4C437846BCBDA07C5B6CBA1D94AF02
-9163B7383CAC6E088AB1DC14ED3743EE77E26EA7AD3119A76C0B5F925C4DE305CD7BB3A09A453947
-5B9BD79BE28FC462D8718CE05F9D94CAF3387BA55E6E447BF81A9EDDD3A34E17BE66BC52B0C0BB6F
-86F6F008829173816D205182ED2ECED319864A796AB65D4E3950288BADA94FA32B6F453AFDFC6C39
-A4FCFE60353A64627E2057D4B379D3240012B3BB0ED0C7876CB83C1BA5EFB6E2A03F340C2B576731
-F848F762A7E1CCAF267EE06D621BC33FC245D0E1547ADC12CC0EB58B26BABDB8EAE9CBFBAB93836F
-FF22BDA1831DD01B7346AD377AA298D84628BF1C07433284B0A90FC89F5AEB2651BA2CEA405D4F52
-DDC0E74B871D43F71EB4ACE0D2B401F9348EAC3A2EF0AD295036BF6CF6F870D58E00B619D50EA7DD
-77BC28DEF91D805CD527DCBCFDC16C042BF9B874E3B1567EBA4C1E70744B9E7E5BD1FDA6A5FF6E10
-1613FBE58DC46CFAC1A65ADAF65E49757E9304E2AC9A91E0588600C709A61D4231730073A36D473F
-518A145E141D0A5A494441B9EA99AC23F60F54F8127B477E1CE698BB4129B4B1DFEEDF10D9E665C2
-47A62F112F5CA30B0AE5DBF3E495FF06EB28EB438CE8AAAD84D5F50FB56A3AF002C23BCF66ABC270
-7AC233FC0F2723DB99D2CFE7D3B3667732A531F5DC315CE74EDB9050BF75D29E6430F57CB6778B2A
-CBD57DFCEF896E6766C8FC5C9F9FBD701CD62CACF33EE0FC95E78DADD205B5F42CC63024624BAA0A
-B4DD447832B4E1DBA77BDFADD223989F8E958C8D759AAA37930664C6EFEC708116248A2A7AF3D656
-DDEAFD009B7F5333854608E67E5E588A857167ADF9225CF6C641F5E19C3E08678A281199EDDAC831
-B57223B1BEEADFDCBC8F6F25D32FCA2336C808162E8F381656E847FB6CB13969572425AA05AC830C
-33DE6E030F86A3A85D2A66A77F103C7042C97205526DC882EA9A00EB8BD5519847EB424C15F808A9
-1652A6CC89B66A5731126DEBADE123C63D88A2E550FACDEB3886FF98646000C64B3A91078012CA30
-904B71737CEF6BECABD43DD702880538F5A70085E6CC6015D2163681067C3D513A8C66032C34A0FE
-17A58AD4BC97CA69BF41F11D5E910FDFE9729652D3EA21F8DD8CC19160A8FC77573B1E9CEF4E790A
-79D8AD6723B6804E9616466C935303E063DEE29CAA6C3BAEBF278B818C2EC2F13ED645AB452397BF
-00DB8B26E115026E256746CD0C78A959364FDE6DEDDCD0F441A61A1EBA32C7BC172BB09512148D1E
-BAC9E791B7D51B71CAD2DC9B83B2F99B3726607D9CBE58B499A13753CE87FCDCE21C0AD0528ED0EF
-B9B2C927F57C78C626248AA2B835A0791244C5896686A66173EC9F802C4C633A42B086334D2A4878
-0E53D00809247BE64E529F96AD2F8B3922A6097D414DDE1EC76F9552F9B8D58B8E34F359AD792B2B
-E50C26DB05035E7497162E7C49C38D3CD9B98D620AA67492BE5AFCA3A81A7080185C7F0B5105223F
-1FA77805502A2E8C5FEEA27699858D84A95842C5F2FB68686D59FE24091FCDDE139B6463BC6C7B1E
-0E90D20A83651AF00C85797BB9F53ECEC1675C7EE636D0D9E77DBD8F89670F855EE4D4800FF3F695
-0EFF09BBF8A0DAF6B8242840CFA5BA73BEB95115F4A78BCC02D85ECCE0C0F2EF6F328AD1DD6CC049
-5A3315B414A4D61DA50DA46D7ACCEFF6EE56451805D26B0359AF193531F95F6589CEAD6FA041AF15
-3067F88A0A2FECD135C56682DB2B45A71D1FA737C064EE9A4F404BB72A70B3AF0330359393247EC7
-81512482579865240A23CD8479F21C2C44A119EBC4E81B308DD8AA86E60C3DD8ADA50E0DFE8308EB
-1A7F201EDE8DCFDA405AEFB47E0E6CA7DDB376DCB21D37F7ACC4D3E9F26B03A8DE0E8940CA3A9E75
-963A389DF8038D2C486072F61C0CEAF500753C7A6352B1CD0338D9212B42A4D3DA23D5BDF44C27C9
-4B88A415A3242FFE2E1B332477A21D2B9CE075EE479C6E657A4D8874A8C53964229310E01ED4F3C6
-86FEF5258EDF3B464DD6FFD7F1CAF473BBE722D60FB14AB4918E93878A8AE4773930B8CEE110F476
-7F42A52D9304C55BE12846C911A10AB9B2E036BF9DFD597F5348D42233315FA80D0F563C388BC253
-2103F05E90DBF1923F229F980A2F4585C7A373511372D07DCBACA583099EA972C03E5AA67E663882
-6DB134564DB993CEEB6E7A6659C7C5C05C310267D5F8A24EEC2D5CC3E3F3C808E6D6068D1A57646B
-37FABD98ECB7BAF99E7D9AC4414A491A73CA34C52F394352F6B5A15F0FC4D88622DAC694699C2464
-84ADAC3B1D366AFEDE2A2CD2042C90516A666A19A91C80248B11224BEDDF1A320E230739E755D098
-B6A67315535F4C187CFA67ED817A035056353FC859BF286317996FFFB478A2248B908FF12ABDE705
-402224A3EE5F463DD3D243875C84E02DB968ECA1CC52C75171EA50D6A88CA91327A7AA5795019F36
-C0A19C093A1C9D3723C7568F9D41F2E4FFB712FD47F897703D7A620B586B81936C84AAED61D84332
-B3BEBC4F95B796B93EF7A1F565C494F8A65EDB21E2EE18DC025522EF8E599887CA2836069CDDD889
-88E5862977B7472584303198CCE97EF9F9E1446D1F1F5ED1CFC666A8A0C3A03E1792EFB60A9B4065
-49E0DEDF6ACCDBD98742568B4735A747D8E5DE21E630125AE0C691D054E42199C15B1F80CAFA6E7B
-B2005F374A9A5F9900ABB7409CCD50C3AFCCAB1214E6A856F7C7EBA89BC3291801E1343DA9DAD2C6
-ED075C8ECA1423B43E587AEC67E6145272814B3F191B3C285639F9E2D6E148A02DC2CBC0E054D629
-5CD05DBAC1950400A9189316F0265B86A732D302C5BEE8ED233768F237C62600CBAAFF3A110D5EFB
-6CC7CA3B92D965CA7C5E8D3E64ECF239FE2507FC797FDBE54C1112B28D4DA44C60AB09D994C5BA78
-D663A2591934CC052BC70CD1DCA3325C66C9CB982E2039F5DB70C848D3DCEF655B1C2CD0CEC8865F
-E8E1C0A267BE4F707ECE6F5A3DFCA3CC1EDF92C760439F51AA69A4C1801E96CA4D6EA4AD980258F3
-D15C893913ABCE09101984C61B91D603053E49A97CB82FBA707DAE8AF1D579FD69C8481CB7B712CB
-CDDB4D287BE995E32C02B399602A08B9DD849039B5673F1930BEC7BF366EB082D2CA5DB2385C8CC4
-5BE3FC0E31820191A814EBA7C4F23B1938E6C4D800732787CD2CB97F762DFC85D4B798809B5F2254
-D826CA42B32695428D120298B44CF38494E56240B75DF1E41E46E53C44DC505452256DFEC819408D
-605FF14D6C1F3F152F2FEA96EA0AB3B472D8704E06BE9F8C3E8395CAADD06D6DA033E81ADE5DC3B8
-3DAFF743C6E9E48716003D358DF63CD7FD3E2F727D1F2D0C29962F76D5C95ED44B6F08D052025A66
-5785F264A3D5F5593677B630E628B5EA81FB37CFFD7A30B7FAD226B6FDC82B0878AF4C0EC4F4243A
-807B9839EA62BCBDF7C2E9B30A623876E632E084EBF4A21EDA04FC88A1C07021D0C72EC3E969D449
-FEB08E5826EC20E55B21EA71EA59F6E3B0710B0DDAB3261B4A2029ECAB68C19ADD5174E55D5E984A
-4E5F38F592A302FEE6ECE732DDE841A28672C620CC5D687455A5C06FA9FE688394A04F96312ED025
-B7AA6FBCE2925F3AE559CC1886BEECDB70822E2E5CA3F732A87404B1536AAC469989E9610CFA440A
-CE43875A70CA51F36CB6F629D9424C1E35A88F92D5DA3CD8CBAE6E8425A36968E21F4F30349749E0
-205BFF8D552837D6FC39532525370BBAC833F75F1854C93FC533A4AA53ADF7008173A70D94A4EBF5
-38EA9E62BCDA7C20E0A073BEE2EFAC34D2EF1D03BABD5147659E50B557045B2EB89DB303749B04D3
-F54B43FED612FCC68206E001A7AFE90230D9C12F74A32C7EDB5D0241DC3A5D51481FD7C8FAE08FEE
-263FBCED7C7D911B3A303C835AF5FADFD218F61A9D6DE80485ABCA88200047B094441F7767B97A24
-E8C612590FA2407BAB1E8B56C71914EEF2355DD97CFAFCC192BC06FCE063D3D9D1A629AADC75E3BF
-207234C208E7E30663EDD691043065C9CBC473D97C6D4DD3DFF59D6A9ABCDD4412C3128F603160AA
-D8F81C6E7A4DCAF35F3A99B4EA10A34375B477C2BF846521A7EABD4D28078E9340452A198F3F5ACC
-3DB7E3908939FF6E3709C6A3FD9889439A4AE3E10B618CC92E14B68429A3AD2C80940A1079452EC2
-66F254657BE7D79A2A24084AF73F6DF71FBCD32BF6913A3FAB25F977787F7BB0C3A3E8BAB38D7A2D
-B0B4826950643DD1E03BD7DD1FB149A33862A89226B7CB454DAF613128C2075470E42E70A9444A8E
-6ECA526345AB48E6F5160BA23B5BDDFDA6049EC44ED1461C7E0DD514B16E2FB285F72039DE3C7982
-EFD40D7F6C8E8F4CF35AC71B467BFC578002E8D2239A2FD2C4BCCDD8AF3D7DB1F4AE7F2D2E0811DF
-9D0155BA6EDE50B5F052F14F6AB884FFF244D8806C07EBCB49ED22D85DF696995991A954AA97A1EC
-D86ACD76E061B7541E87997FEF0657A826BD88EF3A4A5920462C6595E7A156F453291CA044CED810
-860C3B0149BCE73BECA713040664AD0591304106129600AF71317B0D2907839CEAC99515D357E980
-B1937B6E1200AACADA205421001F1B2F91753E80D2263C56AA164A74701A8D5FD28E46480B0DD963
-A683A1F355D7FB4463C7347C94EA5E2CA40B60B56297CB22D972C5BB10E56715A955605256C1541D
-9F3BC5768A6F355CD3B863F0FA1A781EDB49368F51B29481CBB41D4AEB07AF9DBE8F52C5D0FF75F7
-FB6431D37D6AED84D78C778871CB0F715B4F07580F23B586C969C81B471FF6A6C7276F7E141E02A8
-584D4B9AB00E7BD643D2C3FAAA299B1F1E25048461952EA42D4882768A70DE46B213A287F8D31AC4
-6D5436F22A796C05D1FE50A9BC2A928066627A0D87DD57A3AD91DB446404B41557D1457873482005
-EA20916BBE46C613F456C849D46BA79D20627B446B2F49E3FA309AE14F8C420CFD94922CBC0FB9D3
-5A0F7DBEF577F1849A1A80E0011DA8AC082A8C6F61658E65AD177ABDF23EE17C8CF0D26B9FA3A6E9
-4837EB9E930336889767A8D7EA3CE980A8EA95528B004957BE6067CD9BD8E02A0F23CC1762CCA656
-D33412FF45E917FD4A03EB6E8C1F43FDB0A8965A33B4FD26BC24A20B304CA817E88495BA9B361A3E
-933717FFB0271F7F70C5D3CBA1E86D0F51BF3ABA194DAF32C35C796627D00C7B2271ACE2463E37E9
-7B3C826CF3DB60028F240F9452CBE08F7EBCC5FDB1BCBB3C327A9F450B9E5671916101D6E3E5E458
-CA31F04D12F592F83BADA2C3683D3886AA3B403963AB5DBE220FEC00037A745839F67A3635DFD3BF
-F08F367482962DED88ECF6322852D643A54D5D303EB04BFDDEE9BBA1EBCCBA7C653B3A613A8E719A
-DEBE3CE1BD7E754E5F4977E863E3C2D388A65227B451D4F3A4F94E06513CBA4AC1F2F511613FF035
-611684CCC461599000E546E4D972CA6960E095A526E4735A23421A4C9B597ECE08AFA2753592BD16
-DED93255A1E33DEECE3C5EB77B94670E8137F2A4A4B98AC193258E7DEA5DB8408A806188F2D1DDC4
-40CCF0E9A6E2F0C78FDBD7B68DD4939D2458C1965BF8BED4564B32462FFF3EC892C03B11D3EA813F
-AB4CFBE8D3016329C5B7E3DFED0F08284D44AA0B7A2F6BC96EA4503E8EF52A64C22BED6B452581AE
-8FF8917D53976471941A9116A2D878FB2541B561767ABD4E31CCD8A590CA03494C62AFFD64EA0A1B
-C779173DAD84999C7A8D844EB1259DE7BB5B25CD023537A474A524EBE4660B22568949E624D8FEA0
-AD37F4CE1EC75955EEFA49C6BF1803BE87E9C9865FF3F6B8525B8C15FE8835CA153D27E6C0FF0CA5
-1029A7A9185D25F0F14D86FC797DCC1F99EE97E2054B9C2A2E06FDBEB8DEF6CDD368BF23A858D9F8
-C1DEFDCEAF1B4A8DE5EAFC604CECCF0D285BE00AA912EAB66EFF4D37AD2EFE34853BBFD87CE09B18
-749B489943EECAE7887B006FB827D10191DAD18466CD1F86505879310A8B171F902EA0C26A388E13
-B53C700272CEE2BFB47ACB58247C13449C6BB9D01232C32517358F1A3DE064D43C18F8827D53789C
-CF3CE2EBE78949A6ABFA1A6B8414CE360A5E22AFB7D1DCE6F5A06182C3B984B4F9BB1A905A9D5A14
-83750A1DE0A857CD5C06945EB7D4A2A6BF1237F32A154FDC06D51A703D44FE052FD3C53E9E8F417B
-35D1C851F9203A8997521529F21AD8498F96930AA77EBAF82EE02A57BC77C792D9F220294B45F48E
-A8FD94E01CD25645D36D168923562F3FDC93CB79DD4760DA0C103C2675722D7A1B79FCB4245ED12F
-A0DB52492C9CCE58B333CFEE822812F7DCA68E802C451B5CFAEBAC608B950386B6C58239D1C62D62
-4DD5D15782FC552222CCA06DDF387B373E32C3C2864C63C768350C37283760F3515A5B0AFD66C48A
-B522EB3E808C061F5CD6BD96CD18C9839D30508E7D4EDB88E8F11E31E10919B16B7971F06D7877A0
-58D8A4944C84FC6CAEDF3341B48B6E0D3C7B85D710E0C35F5B5053CF4B4798B3778CC28B2DC7AE0D
-F3A49F9F3BCD8E95D746C35C3F47D68B8AA35D97AA08E711B5FBE70D1A623C82541EBDC51A827D0A
-69E6C049087AD26F256EB7577F58CCFFBCCBA5A95D093DC29464C9A38DE95BC6B1853963B2DEB0B5
-7AD1248D6F1625E115EEB9510B5772AAE4E3C866657DB0B3BF0E0AC345E116F8D4976B770876FFE3
-748C36165522991F46A36F193DD1A1C94713673C7E4C81582391B636C72DE94CE6254374F99B623E
-5686C13D8A8322E83E11BB0B0A896C6A8C2C4F756C5385CD7017F26D23F7C3EE97372C868C8C9155
-81723BB6B76B4C3CE8998E4FA6CA40B633DFDAA59BA902A4952DA90EC4FC3CF0F2676ACFA7F76F78
-236FA2DE10FD3545357215246BB7E527F277C28B353CC6D79DCEF21BCC8F77603CDD58A2CCDDBE3A
-9802F941CED8E035313875319548C41992A2BE939A17CC109426E33825AE59BCD17CB19F50D972FF
-CBE7D9B4B0BB095303D9DC9D406696C2508D6CE99E11CF00F6461147E97449ED5F486D480A86D3A7
-ACECB7E9A945984724EFC21C5079B1FD03ED803C2DEAFCE3327D2D7827715FD65D9506216C88B0FA
-26935E95C64114A51919D419038B1A7E9C1E829FBFB53275093752DF19891A97F3CBF7719C1FD6CB
-17019A6D2D25360ECA804C4B35172662CC4769D2B785C6C87E5A4ECCE31704E59F71263B7C3CAEC8
-ACB4C7426EC25F11A0042323EE6C3EEB04284DBAE2C770BC419DCE79BD4560AEA41571C3B595F525
-60191DC7A8FBF63D413A77A0905E517441B16C2B501EA2F9E99CC38D052679F288FDF1894542E3A6
-6989A0090185EB2E75134BFA3D9147C3DB8A621D9D35E37786853779E157B47F71626D6B3E633005
-9159C17596C1B87FE2B4FF47ED9D78FA4C2160077276C8B58CEF5DC030B4A5D83CF257096C047FE6
-4DE307C598B815058E72D5F57DF5C369E664E137DE29349E2F9DCD8C9F4EBA6E765B6327D7A20DFC
-B20711273FD8091CBA605C4C494248076F7E03DF65A6A50164980BBBB708741E5BF6056E6F996DC0
-7FFF408C5B8EAB8DCEC315E92873228C805D4440A6470E3EE3983758DD211C9CECDBFAA4C9300CBA
-00608A4B2404A3C7AF017A3B7E67F39F0B51ACF950D3E75CC7BC2B8D3480202FA958E8EE0B240501
-5232EE0D264C7CA02C18CA45CB3C2DE322D3EB7F00F9455DB6C5B1F4E59C3E95520EC36D7D903CBB
-625D70B54BF6F8255E412604BBB29FEE026CC660577F91DB1DB4A613EEEFB20CF7AE3CD89D565AC8
-38416B01B5DE4FFA5550D17FB51FBBEBE21CF1D56038863EE931B90DEC2E211ED42BA92EC244D4CE
-2C4EC5CA87A026992772DC2AF754FC982B94F36EA7B7BF75E0ECE90CBB2A6AA1A012E8898BD679C2
-3CB3827C35D5D02F0569C7AA82615D4AA67518ECF668D3B57D6EF1A8013424AC2268BA0D9A74D588
-79EDCF6382A89D397864940303EAEC45A38304BA8B1CB198967AE23EB81054BE74B16909A405E8A7
-799CEE3C270FE2A6DC50BD7370B6B2C8FDB9A87D88D5D40348D3984E39C693B6F4486D994778607A
-80A3122872DD65E40492107C71C3CF708A9717E9EEFAFBDDC239C53AA9645B711038E59C8B861B37
-411AB2039BEDF9CFD00F08D9C5D76154427FF5DD39878CECC5D7BFB3F1F035087185C0981F3C2139
-BE84872FFAD3408531C4EA9387B89F5E3EC779E8850D50992DFDCF9132BC551E985943B07618AC10
-D1150451F0844C0DC41D6E17EB508DC8689EC726400D5A7F6FEB3CC7BCE05F09228B7CB2C5393664
-D8DD9A4B96B1020EF25D70AA2D91CAE93AFB5F2BF0AA18CA5C599FA1A708EF35BF8F7FFEC9AFC1F2
-42870D028B2B1459063B493943EF1283829783E1010242E5CF4DA39D93D506F3892936E7D6CF1124
-70A521D397438733D053944CFF12D6FFAE8246F20618684F263715AA98E15D72A526383E05C23214
-B78338E5B476F0981D90056E6E5D0DB66B1DF2298E597B2ABE1D817E18BEB056E65EDB4234342D96
-00470B1420C9210419D834E431B82F58608C87AC361A02D0F1FE4B470A3D71E0D21BB87E1023D428
-E23D596CB9E1A2184403A16E36E644BCCF9BBDE27290485057E62827283E7380AF786BF395B3961B
-A5EA469C315763FA59E0F176EF81985F38B882DE56A74D128E256D1B89939728E55A92ABA21A6B78
-44FAC1BA7BBDD8B34A18194A2984B000380FE9F672E83EFDBF276FE797A325815B0F25CC95C97A9D
-ACF56D583486305D7C9E51A7E337D14E3B900333EB38FD93A99587DA2341B10C059C71CE080FE753
-3C0F059FA40E560AF9C4A41A4BE6FB45846FF8F78165E10B4AD40F264BCF5596A1E8EF8CB6EA4B1A
-3A5C69059AB1563843679ECB2511A90E8898F54295649CB73D277760D8D04ABACC7BCC6E777A0530
-E2067CCBC08673F9C8C178F9D672AC8A15E5367F0C5651B53E75E0CFA57C931746AE1A679C246D7C
-9417F1CD89DDDBD1173C2F880B7B3847CBCCEBF99F7122E832D7C9BAFE2B54CBAA1ED48158DE3F36
-238B76B0E67644A28AEA996DDC006F6AC0242E4B667639E7523CBC90A0561193C1AF34481C2EF402
-EE43A82E1EBF4E3D601BB36B2D95CD93550D61CEE7A94E72F6D30C32C8F91A61E964B1F66ACFC398
-7F95D4028F116E9A9A8474AA29C1C1A984BE0E393BDC41DCEF6A6F1018DB60D52024899D8EB5D55D
-324D73F39BFA47377B9E15B3B06A7585589FCF52A54684173E5183367E7B0952DC4BC2767C4C6247
-B1D6103E52BC7B7EA6298F454C5D97AC575F19C10ACDFF4E10C7D3755CFAB4200CAC545269FF1D8D
-B0D607C7AD47F40DDF257AB4E7D0750577003C13E4941960C3DD7B0774DDAC18E8ABAF8F53E03CBE
-F6D57B44F24CF821014C064278FD51B3427593D17694B4ABCE81F49CBB984C5878CDF0C38D1ED7FD
-99B0B9A3BD8D8FF6219588B3B8FA59D0CDD1D9B2F65122AB45E48F1757467B9204926140E3C350C5
-A927A2E700173053EC35D3F1DA2D7258714C97FAA857F0898917BD94625C6D1E2D77138EFCAAAF51
-7B17FE187A2212C24A881A2C6A647DEF6376ED80AE4175C5EE80921F001995B44E49F0D33DD9075A
-CF33BB03671C0BCC34AD5784AD1CDFED3A6D9BA103B3DDC1CC2DE74DBB576A0277715275218CD19C
-A8899209125266D8BF1286F881DCC2C383749D1E768D670F4099F7DE959EDFE852583183C9111601
-2881A56A24AAF020EA45CD5F39660DEBCE30AC1C7B8CFC60387B1B0C3E361BE612FDFA9F01B7E4B4
-A18839A2C7E0E393EBC5AD9A8A4EBC316A740C1C295D9EF5F4DFFA0667F9582C0BB837B142C4CFC6
-B1798E9476D0631111033B8BA75A10FDC800E2AB1E0E829632F869CFE4737BE9E2800759EE0831DC
-7D1195EAF80555771981DD6DC6606812D92CB8EF86447F5F6C6F626D0E265C67E52A6319189EE349
-D48E49DFE6A9E98F76C414A1E3217AE0A215A17E54AA498F4ECDC50242ACC7E2322F63BB2FF2189D
-057E7354E32A3ED1803116176B9B9D0129930F919E2FEC280B2C8924E49E7BB75768A2EE1DA8ADBE
-D4E3589906DF1B923AEF84C1BD327438B731012E69BB0D43A1842CB88BB54EA4516477F704CFEB28
-6E3EA483445AD4D74586FCF32E96D366901084365F693A53C5FB532FBFE7BC0CADC404C4985042D6
-8DBB90A6DCDA3531EE324D558A214F935CD9FCC9A0CEBE9B5FB0323F4B3820529599EF48EE068B5A
-CE85004FEA2984F0A86F5AC9D56163BBFE1142B774148F1EB0A4DC89C3349052533A7DE66729DB24
-41B82F8F7360111DACF69293C9B281A0534F3E9E9224A75C49A832F28B2E497262475507B6DDFA9F
-01CA0A6696E3F5AC7EA68595EBA0C2EB8A47813FF936D84AC1B23ECA7AA2862B793CCBB0DF9FDD49
-31BEF354CEC12FBF478559FEC29F81ADF4452E83963E56541D31F3691C93A50F0BBA5E9552C4F2A2
-3A6E53060729854A3DD71CC4308B91957DB19E66AAA18FA67055A950F1C2CFF78A03BC1A588CF624
-696068068719AFB1001C4581EE072113882D9052B21E355D401ED8CD24D067B99E616BDA5A0A5A93
-36FC499632B79FF2FD0DEFB096EF46B75E2D4E0F48DAEA239719FEC4D9A29818F5875FC5041A9EDB
-D26CAF0ACE14CC80BA49BBA59E918EB3D8F1E541AA16026585A2F72DF7D83541816DE46981FB3EFD
-0C30E458CFAD04C79421AB7C4925E23AEA07F9F018431C790002596D26BD9663B51B699DF53E4882
-CBC34EDE88EB55045B889B6062E35FD1E018BCE785157B85EC3B9CA6C85D4B16238275385B8285DB
-012D8FB7C9F5B946A41D7A0FB878FF72C39683144D8A007CFF631B43748F2D5FC690300F9BC0C837
-006B92ECEBE0605E8C3A4A400E18AE8997D1B45FEE10068E247C647CF82C6DFBE5E881D511FFA687
-B7AEB78546BFD07D5F7EC242DCEF4930D8AAAD8C6152B6642AAC325963FD147F236BB850A9966573
-9D06CDBD7CA79A527DCF461E33F22BC9C5DB00DA2BD3DDDD8C99D99793BC98282AA8872FF96C3942
-85D82D9419EB78B6AE37A5F519397700F75D624A09BD255B576E955A323E784E8FC31131F003B0E3
-024A4F58FEF2A6C043796201FC425482E1155E229D1B2D43EF7B0D22322B22EF5C9A1BE026A1C3D3
-75EDAFF99597E1E5477952A4E8D2ACF5D014BC00DC2A272FA62B6983E27D228881E2EF2B8B95A681
-CBE90C5FDE16331C85222FE2A16F0A3C3000A63E2E21666C0C119F8AF89A543D37977069A5ACF155
-6324F05204CE8CAD50FF4FB630D9CBBFC324DEDA584AA56A99D3A76FF55BDC2C2EA3A021361CCD4A
-83C7A5E2768D210FA6DE889FD48A39D679C94EC3C99A8D33FF11377DA7F6F1B71A2A05B302ECDE95
-4F26773F39AC881542F0D0969C3995C3519A8EF70B4220D86BF01BEECC6462855E7B686E1AFF1CA9
-1FB8FD8B4A69E10EE0C2AD94ADD44449506F9B6EF43641F2026EFF6E605C670560C2B74706FB949A
-A7E8CC6A2D0D6207E457E7FD87EC1B9092DC68B9143947CC8ED14AFDDCBF8FDDA228A76847F96802
-E561F67CEEFDE45AE587673983FC04C96744DBAA83F2DC838D633943C75DCB9E6410474EB27B348F
-26E505F0AB90878940E846C5E9F3C5FE8C3558C3236B1B88C405716949B8506841CABE1717474BB7
-C30DB91CDEE33B0F844811762FAEC535BDCF84C1C747CEF9B1FA61D2AFB5A81335BC42C06A94D7D5
-9B7EDE55BCF6F9867AEE107555CDD084B7684C2C87087475A39A9DA6347BE281CE5635A4D07865BA
-98CE26C1465B1AB0343F49FF37B4D0CA9F3BB693D78DC3B21925CB996A038DCC172527FE57C07460
-EF39C07D4396E7FA970D9F22ABD21A9C794B64AD96762C7428F59A8757C36D6C4FFB23216195A04C
-2A2C2E7B10EF7193931544D782FEE4B91E01119C5553BBC6252270A8D8C56DD62D448F5AD8DC69CC
-B45E1F17F0AA1E445129DD00F000005B23D38DE93A3BE55A4C041947F36B4E4536E307D0180553F9
-2E46B743881CB5D5386C48C7D5F84C2BCD06B9C501F78C7EE61FA23516791FCF4DB278AF688A2E60
-10A56692AD92008497487EDFE4BD5FA083FA544138B20D6940020887E35D46E093B71F7A04A67460
-DC8116B4D4839625D7CA6959D6831CD93F81AC4EA2709036DD738364FDE71113BF22EBF13DFE1642
-E564701E6F0FFE7511EDF03FE448C2B28C64FB7D54B94CA576E481FA56B2B18AF10C71F699B6BFD4
-7459CDE1869D0FD306BF489A6F42E5B2F05CCF55BB6B9526973D19CB134CA7F13F1DB3716F8CC217
-73A832568C16250B5CDB16DF24BF81D49F5B37018BD310262EA7078107868AB0216CEC83CEFCAB1E
-9F2C665A31585CA04DC01879CAA79AAA5AB201B516F7052B01B16BEE5606098393B0E5D9F9E5E3F4
-EB20F63C958E796DF41CF28839F5C62A0431648745D7837B519F3AA36BC6C08EF040CCF53D9B6D8C
-0C7D1A84D707EC57A3C6AC9A62AB37251A01A5ED40FDEC6F5BE6E34C6A91D058319439778A2EE5D0
-363E2E1F33463C33327D05FFC0CBF08D5BC457C7230448972FB9B4D0D782BA7DBF10D3FFEF8BF523
-6EC16D4DD6D0D870D9D5EB5C64C9A46A4F583D4F831FEE74B0E5B33A09ABFD4444929BD8F638CD72
-EAB99CF2E9551DF427683964A592E49D186F285258C5D5F62196A98532421D73E3495F82695FEEC6
-E1952C562D546B28618FFAEEBEFF03A57F4D855021F85B0C7BC37FCC6DA9AECA099B646B99D41896
-09D3FF2D56422F8C37E97640293EC7C90E3380887836F4938FBF495CAC14FBA5648D89282D8D49D9
-1AF73ED36581139D8BD42551E263E830EA3C6EB381D85C42D74C50DB0CCAEC03F535ADE92128A016
-0E811C34748309AF7604919B66CD43EB5CA975302DCB6076FEB6BDD6FF55976FE990FB0CE9ABB11B
-195403FB26E3D6C6A0DE1C5BE79E171A61E21F79EE8DBE7A832519813EF6B33EA098C2C32ADEA219
-AB2AAC8B093F40000995539D1276D5F2EF84CCD099B71FE4269BDBDB6A8D59C86F7D2E3FBCCF8773
-D0FAE97640BC1AD43CB4B992BFADFB09DBD0CAAEB8CD9DA264187C4F97300E9A6C9DEED5525479E6
-05C65AE336CBBDF4E5D7F79AD098F977285E065579B748FEAA97F2A753E1F962FCAB68D72BAA8EE4
-FF6691C23E31BC0F3E981A96FB440404856AE1AB32A7205B17D411D8F21C8C93B704D07EC594422A
-BC368CDA2B1610CE6A973F4474E12B78B532666797F5755D269772C9F5400B3BFC6C58395D38527E
-2CCCF29B56123F7DCEF3BDE5DC1DFC5B0293BB125085B1D2D929BC3EE84F4FAD571A4991C3DEE03F
-2DB3A3097E52B1A7D5C73CCB6148EAC62E8E36DE9A71C57638C6E4D5D9DED18174E8C390E50B4A5B
-913C074EEAEBE390B214B3A68F02862B9A296DB4B409769649E51D738CBBDFB7702E15C73C2AFC6B
-C37CE15171F4E822CF20EFE55D9F061AA43E648989628FF79E65932390CBB15D8E621333B18B11C3
-BDF96F841D7434E01AD501FEA964A75B248A35CD9DF9A37E48A1E5A09C624B93CE44F0042FA00D7F
-9EE89B9F7AB785E9C718CF6E7228F743271C2C9BBA17E5208B920E44E765D99D86650EB454B0FAAA
-112753AA1BD3A24239E9C5FC47EEB1547AC9D23731B8DC48B9707830DAEC60C8D3790BBA1120F776
-4EFAC542CFFBCD5C05F9510B27B2534B704ECD36C8B041FD49A96881302FFF5B0163A2DD09C751D6
-D6AFEA9170A4F4C4AB8D46E62F763FE1BDA51DD1CE4A27E772F3A2869155F762FF26B7AA6FCFA4F1
-292E56F03AAB6322BF867E7710C34D43B5D85B45AA68014AD7879EED051B1933E491496E3E26D9AA
-8B80A07BF2B94F1077E84A9726F08199887D66DE7A307BF33C30DD9CF3DA188088C03B2BAD09A217
-6B110DB2C868B53DA9A66C85737BA66C93C58A259860E294AD0191E3A72C73F40B0BD98699AA08DA
-F03587B78F391F3A4313C58D9F29B53C70785637BD0C58310109C54091AB0A34CBB0C478613A7AC0
-FB8F0A8B4645AC966395D8BA775262CD291136AFFDDF01C1D83DD4EB3B59CCAD18057FE7D92A8CD4
-A58F22508D9FD7CF356571F701BBB23E749BDDCBF8A317FDA0AEFD952BB18545610FFAD3AC143D35
-1B8DB3F66293375E0E50235F0D0466932181D377EDD32A5F0FFA4E22B5A0CB4F343D9A7E4A342E9D
-09DFF6C697630CD3971802C277A5590B8CA94BDE6B38446C794D072BBCCB724D5BC208EEF1B018D7
-39373BB910D668882CAA779C2D686081DE6A2606417B54D7C20E0E7F722648D893E4EDBAE8F00D6A
-6DA3712F91AE860C756D1127D133AB828E9D80023B50B162C5A1C5CDF70CCB3FDD7EA060ED20838B
-E1E50C4094C9E79E1A0187CDF780CAF45A725964F004253E034C5BE46BBF89D94631F1A33BAA35B8
-4FA2A9D08481C6674126CD96ED05DCE48BDA069D902D6836D5DFBA701DC0F98A863E64F0E312145D
-8DC0B77F25B43AEC729A1243B45B08CA228DD6101CAA2AC5ADCC8EFF84A4CA3F254176C2CC711EE6
-C273835D0FD3528ECA2A976B88E51FE347FDB60F32370B66D338931D6581630ED586F349C638960C
-31AE4204E89521A96E1219E696B913DEB2AAB7A3B022D06F34FDFCB810A04E60A4FEBE284C2F063E
-0AE9EDF87704921CCFA193BDC912B747E13570066223A49F1F6E2AF0D4D65DA04CA876FF7A462FFC
-9C0BA2CC545C3BD36DBE762F32B2D6BE5867C59F479195C92440DC165098B74EA5C3AD93CDF2D410
-B04C16BC7801E7956F4E5107450787AA592493171C3628E6B8F49D4F8429EB98DC52EF025F001387
-BC1A7093F7A99F10B5D2D7DD8BBB393BF6E56F08F4F7FA1A343F220D5A1EAE7168C74D41BE1DC1A8
-3BD65B72B982F4F7B34F24F97F9EC9A91011064031FACFF2A14921A32024385F4E061CD07D152E74
-1BF97156D951A342488FA7F5EF934CCAD13E2753A0AB7A1F565C2F7F6B349DF03BBC25BBD972A9AD
-F809BB5C5048A8CCEF9297B2ED3324D18867F293CC66E88B3A39D107B610DFE79A3B4E83A96D3D52
-A17FE8A62C9FDD271130148366942C9CE57558D023DA5F7501319EBFA33DE9E6D1E76D7C20DB8A09
-B657839DA99F3D8143F1EE6253A3295C9651FA4366547893C2DC7ABCBF4BB7609DE5D001E0A36D9F
-FBE01F7D0903B3208AE8547E2E5F14EC1AF4C2535CA8F4EA37E3F3CE172C7A1E8308995B1CC23E6E
-81190246BCAB6E755BF868D449BB02A2AA87C44C9CC0F571ADC72547CEECBE104BB274B8AC16DCB7
-5D5F458D356466B921ACDEEAE384E2EB1DF6EF393B41B9747F0A4FAEB4AF1928D9AD6FB7E06FDC62
-1E4C6FC98CFB43F88584BD55D9B97CC9549093EDE586912161931162B1B1D52D0443260DABA02AF2
-B4432100D5506546013DA703573FA8013685CC798CE501960093DED713FFCCF89CA2B9106390198C
-29A00864108CDCC1984A8BAB53919028C01B26ECC7925E38CBE6CCA8978EE21C2B06E7B3E48FBA97
-8E2A7D186E563C088F84AA23178B60E4729EE87D67B1091F3B6973676C1CBFE6530EB773C62E2C24
-97014AB0E8B71A1F4E86A378AA26591511BEE3CF3D64C94848582E1354E1605B6457823F2C5E640A
-D3802946BB2E7E8E594E8C04B430C2385DD40746CE8534F50842E74D7115F3DB0C72D1C9C607C657
-3B094AEB73B7A79876CFFC3E2F8C9FEAAA07D3BFCE05B61F7749A8793BE90CCCECA2D7077F25E899
-D3331FE161A7E86C842495D584C6E4A0880B2951D8A13B88C4672080A0B1BE36BF47C3ACE7288CFE
-41A8C1BAA6F0814A947FBD6B3AA72B6C73A8C578CA51CCC96F2352316C467BB960E981F2B6485BFB
-44B577E71EFDA16E7405954BC7C9F0759F5A9F1EBCD2FA9CC9648D5831A68887F41B15081A204C24
-B4B992A231DEF9E698D4C3A25B6F5474F5BE6A601F2D337A58A0D21FF37FD91EB86D1D738893A03A
-69F0CD743F611CDFFE69DB2C6ED0E4611D56F803BB0DC06E7FE85A303839612707647B1BE9FAF8D6
-84122CA9E5CB8BDE2936D3F4FF254D31529D7538BBD4D35539489F9E7316F24214B996BCDCF1818E
-749A71CF0E8845AA1E2A58AA62A48E02BA4564625D20AA220EE719608521D7D7A7FCA0BD8904A401
-9819D371F3F59D46C1354E5FC1A6E5F79B20CF4ACA2BF0F2DE73DA193A6F9ACBFE0B4731C4BCEBE6
-D96FE822965DE965232282A3A130361F188B3AABDA95A8A2790D9240BE008B6A6DE4BBFCADA05B67
-86B9BB8E0DFA0C30043A3B07ED46277E07B9808422C8ED16758B9C396F4EA929D769785B2C9568E5
-70A83B989B25CE200F1727D41E2B702E7F88F1784F4C83FA60A74EB26B2DA95126E508ED519A61CC
-151DB6804F61826C5F86D8FA89D06E526FED97A0DB88EDB432FF32C1ACC9B622EEDF601081AF7B96
-3C9CFC1D13E4A9C74FEA0A1C8E3D8653CD92A944D4CA6B0D306619AFD503506D77732D6514F604BE
-4610C2560931BDE0B40939BC1D126B0E97F72AE1B4A9252123B54F7A27E0CFA4425B4546526FD741
-CA77952B10D13E0AC2E32006A903808FF0CD013F936238C74CC75FD915244C56A8412F37F0134840
-347699508D6F3D7F3203A25B7C70100719582CD588590EE34B3AB13E255B613A6D00386A0104CC5E
-D2C646F09A88888D3751651D5646C5227A3C80E8DA1B0A331121DD2429F1F4775D30564DFF47D01B
-BE2C6C72CE4D1FD9A2077C04D2B0274B8916F6A9D1A4A6964A534F47CF241D5A8E34B23F85BE9ACF
-FC2FEA961F277539F215F8728D6788F67BEAF45502839BCF23D8763C3949352F00C579A9A4FC408E
-C625E310DAE61512DFE6844E82D36A2F81709E1F05B38AE9C222ED62C961EE63593CED7AAF73CE2E
-D3667740C77B309B93EEFE1B4BA65D48575A66BE86743DC9E5D3C2FF418D11F7F211B86E827EE1DF
-C3613E7498030F07050524536D1F8A94DDB6698BE7B963C55CB3F74B676CD815A7B3DF4B1A0EA2BE
-1B0B9A11FFBFD5B1FA49668AEE14629316AF436A0821C20BEEF7B3480847934A99F6D85B68F4DDF8
-859A754E009428AF89A90D1852C220A607FF0806E8080726EDC94D691D214B4521C147C4273AEBDD
-BB4A697EF16448CD9B2FC95293305858DECFD406B89B9F3FDAE2AC579E80CF321EBAE5701FB2F7CA
-D8ED04B4A63115886D45D6120F69AEF1A21D80AD3C2D35D2899F1902242B96CD349E0AAADA40F7A1
-1282B6B52BDD97708E58DC5E2D22D1153E5FA3F3B300BCDFAF98DEC2F4E3C82A1C85F985735F3987
-4F557579F422664E07CBE19DA680EFB0FC82C323EC5C4644C51709AC8D674608A8043C91E6C7988D
-430F10BA6CE1FC7FC0604FCD8F723895250AEC36CC35B3FA14FE2A0D24095DCC30B2093F2298F5F0
-A97676A0BE66C3DC9ADACFE2FC0F721A20E945AFC1096A619075D5E9A264C796EC6C90EF1AEEA8DC
-089B44FFC13D27CB2370070A52D4416C53F364393E46EDD7EDE00799960CE6E0D57E4909E88ADD64
-BDD2B0EBE2D73FA6ACF8B40280DAA0637E705C65AABD523B8815F22F23E9FF81E7829C7E4BC980C9
-143AEBE1A04DC0D253396BBB7268BD5AEEA356B610D5DCEE03135E00AE34388251F31714A1C40E18
-2652C48CDA2211A22CB6F02490E69A44CECB169754C53B16028D352E0119F5D5FAE0BD7EA1CDA647
-12A6147374B64244E21E9EC9F0D1381AD22D5B6212B26C3F9AA5F6045F25DD9F5EB4489EA39B1945
-331AC70510C5752557DE21D0A6CFC1EB10A98FA867B76DA6E4249469F591FD154D39E89364A43DB0
-07AA0D7A911CFAE6CE2B557997FBC44F55A27F622BD7B8B10EC9F5D10F2649A646FD964AE1B111B3
-5B46A252C4DEE44E7426EB5739F24E8A390694597DB3A1FE7800C97E59558322F0E49A0CCE2AD94B
-1E2D1026AFA771723E3F523916F55ED866C9FB4A2F759651C613A2CFF362028CDF9D38F05D4C7C60
-24C533E930B64B099FB1AF04B01F5FB9CA6867E6EFF55A772C5391831059987E10CBF987E3F378E0
-1329F73D54DC0484177D3C3C06F67397955FF1CA4EF8AD1606B70455255D631A7D6EB92BFDBA14A0
-FF28B2ACE7E81AD666EA9B3A0F5A6BA3B5DFE35044FA4B3D8ED956009C60E98CC132F2E84967F4A9
-8A67B336D5EE7CAF7DD1F74D1FA08619941361FA7312CF225D89CEF97E864C8369EAFAB94D97F056
-5505D825972B754F6729596EEA91210B75DD8F645382ACE36DE60819A02B3B48DD00F5485F9264F9
-FA926D732E2C267B0BE8CA98526F124F97EFDB86132C5EF16B103908172FC51F286FFE45FF253512
-E0033F037FF182BA536A9EB2DF2D1DB257D9C86C46E1B002FB32AC70CA9462E6EB48994752CEBCE3
-9F08ABD4F4B0889283E55500702185A841E328
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndResource
-/Times-Roman-iso1252 /Times-Roman ISO1252Encoding psp_definefont
-/Times-Italic-iso1252 /Times-Italic ISO1252Encoding psp_definefont
-/NimbusMonL-Regu-iso1252 /NimbusMonL-Regu ISO1252Encoding psp_definefont
-295 271 moveto
-0 0 0 setrgbcolor
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-370 271 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D6F64696669636174696F6E>
-show
-653 271 moveto
-<6475>
-show
-725 271 moveto
-<66696368696572>
-show
-877 271 moveto
-1 0 0 setrgbcolor
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<534D4553485F535243>
-show
-1149 271 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<2F>
-show
-1162 271 moveto
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<737263>
-show
-1223 271 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<2F>
-show
-1236 271 moveto
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<534D4553485F49>
-show
-1435 271 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<2F>
-show
-1448 271 moveto
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D616B6566696C652E696E2C>
-show
-1708 271 moveto
-0 0 0 setrgbcolor
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<E971756976616C656E74>
-show
-1938 271 moveto
-<434F524241>
-show
-370 331 moveto
-<6465206C61207072E963E964656E7465206D6F64696669636174696F6E2E>
-show
-294 433 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<69666571202840574954484E455447454E402C79657329>
-show
-294 476 moveto
-<20204C49425F535243202B3D20534D4553485F4E455447454E5F33445F692E637878>
-show
-294 520 moveto
-<2020>
-show
-344 520 moveto
-<4C44464C414753202B3D202D6C4E455447454E>
-show
-294 564 moveto
-<656E646966>
-show
-295 682 moveto
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-370 682 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D6F64696669636174696F6E>
-show
-657 682 moveto
-<6475>
-show
-733 682 moveto
-<66696368696572>
-show
-890 682 moveto
-1 0 0 setrgbcolor
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<69646C2F534D4553485F42617369634879706F7468657369732E69646C>
-show
-1563 682 moveto
-0 0 0 setrgbcolor
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<706F7572>
-show
-1681 682 moveto
-<72616A6F75746572>
-show
-1863 682 moveto
-<6C92616C676F726974686D65>
-show
-370 742 moveto
-<4E455447454E5F33442071756920636F72726573706F6E64206175206D61696C6C6575722074E9
-74726168E9647269717565206465204E657467656E2E>
-show
-294 887 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<2020>
-show
-344 887 moveto
-<696E7465726661636520534D4553485F4E455447454E5F3344>
-show
-974 887 moveto
-<20>
-show
-999 887 moveto
-<3A20534D4553485F33445F416C676F>
-show
-294 931 moveto
-<20207B>
-show
-294 975 moveto
-<20207D3B>
-show
-295 1092 moveto
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-370 1092 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D6F64696669636174696F6E>
-show
-667 1092 moveto
-<6475>
-show
-754 1092 moveto
-<66696368696572>
-show
-921 1092 moveto
-1 0 0 setrgbcolor
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<534D4553485F5352432F7372632F534D4553484755492F534D4553484755495F69636F6E732E70
-6F>
-show
-2019 1092 moveto
-0 0 0 setrgbcolor
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<706F7572>
-show
-370 1152 moveto
-<72616A6F75746572>
-show
-556 1152 moveto
-<6C92616C676F726974686D65>
-show
-832 1152 moveto
-<4E455447454E5F3344>
-show
-1149 1152 moveto
-<717569>
-show
-1242 1152 moveto
-<636F72726573706F6E64>
-show
-1495 1152 moveto
-<6175>
-show
-1572 1152 moveto
-<6D61696C6C657572>
-show
-1769 1152 moveto
-<74E974726168E9647269717565>
-show
-2062 1152 moveto
-<6465>
-show
-370 1208 moveto
-<4E657467656E2064616E73206C612047554920646520534D4553482028626F75746F6E20646520
-73E96C656374696F6E292E>
-show
-294 1309 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<236D6573685F747265655F616C676F5F7465747261>
-show
-294 1353 moveto
-<6D736769642049434F4E5F534D4553485F545245455F414C474F5F54657472615F3344>
-show
-294 1397 moveto
-<6D7367737472206D6573685F747265655F616C676F5F74657472612E706E67>
-show
-295 1515 moveto
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-370 1515 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D6F64696669636174696F6E>
-show
-651 1515 moveto
-<646573>
-show
-739 1515 moveto
-<6669636869657273>
-show
-910 1515 moveto
-1 0 0 setrgbcolor
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<534D4553485F5352432F726573736F75726365732F534D4553485F5B656E2C66725D2E786D6C>
-show
-1843 1515 moveto
-0 0 0 setrgbcolor
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<706F7572>
-show
-1955 1515 moveto
-<72616A6F75746572>
-show
-370 1575 moveto
-<6C6573>
-show
-445 1575 moveto
-<636F6D6D656E746169726573>
-show
-744 1575 moveto
-<737572>
-show
-824 1575 moveto
-<6C6573>
-show
-898 1575 moveto
-<626F75746F6E73>
-show
-1075 1575 moveto
-<6465>
-show
-1142 1575 moveto
-<6C61>
-show
-1196 1575 moveto
-<475549>
-show
-1305 1575 moveto
-<6465>
-show
-1370 1575 moveto
-<534D4553482E>
-show
-1569 1575 moveto
-<436573>
-show
-1663 1575 moveto
-<626F75746F6E73>
-show
-1840 1575 moveto
-<7065726D657474656E74>
-show
-2073 1575 moveto
-<6C65>
-show
-370 1631 moveto
-<63686F6978206475206D61696C6C6575722074E974726168E9647269717565206465204E657467
-656E206574206465206C61207461696C6C652064657320E96CE96D656E747320766F6C756D697175
-65732E>
-show
-294 1732 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<20202020>
-show
-394 1732 moveto
-<3C>
-show
-419 1732 moveto
-<706F7075702D6974656D206974656D2D69643D93353033339420706F732D69643D9494206C6162
-656C2D69643D944D61782E2048657861686564726F6E206F72>
-show
-294 1776 moveto
-<5465747261686564726F6E20566F6C756D65942069636F6E2D69643D946D6573685F6879706F5F
-766F6C756D652E706E679420746F6F6C7469702D69643D949420616363656C2D>
-show
-294 1820 moveto
-<69643D949420746F67676C652D69643D949420657865637574652D616374696F6E3D9494202F>
-show
-1251 1820 moveto
-<3E>
-show
-294 1864 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1908 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1952 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1996 moveto
-<202020203C>
-show
-420 1996 moveto
-<706F7075702D6974656D206974656D2D69643D93353032309420706F732D69643D9494206C6162
-656C2D69643D9448657861686564726F6E2028692C6A2C6B2994>
-show
-294 2040 moveto
-<69636F6E2D69643D946D6573685F616C676F5F686578612E706E679420746F6F6C7469702D6964
-3D949420616363656C2D69643D949420746F67676C652D69643D9494>
-show
-294 2084 moveto
-<657865637574652D616374696F6E3D9494202F>
-show
-772 2084 moveto
-<3E>
-show
-294 2128 moveto
-<202020203C>
-show
-420 2128 moveto
-<706F7075702D6974656D206974656D2D69643D93353032319420706F732D69643D9494206C6162
-656C2D69643D945465747261686564726F6E20284E657467656E2994>
-show
-294 2171 moveto
-<69636F6E2D69643D946D6573685F616C676F5F686578612E706E679420746F6F6C7469702D6964
-3D949420616363656C2D69643D949420746F67676C652D69643D9494>
-show
-294 2215 moveto
-<657865637574652D616374696F6E3D9494202F>
-show
-772 2215 moveto
-<3E>
-show
-294 2259 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 2303 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 2347 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 2391 moveto
-<202020203C746F6F6C627574746F6E>
-show
-672 2391 moveto
-<2D6974656D206974656D2D69643D933530333394206C6162656C2D69643D944D61782E20486578
-61686564726F6E206F72>
-show
-294 2435 moveto
-<5465747261686564726F6E20566F6C756D65942069636F6E2D69643D946D6573685F6879706F5F
-766F6C756D652E706E679420746F6F6C7469702D69643D94204D61782E>
-show
-294 2479 moveto
-<48657861686564726F6E206F72205465747261686564726F6E20566F6C756D65204879706F7468
-657369739420616363656C2D69643D949420746F67676C652D69643D9494>
-show
-294 2523 moveto
-<657865637574652D616374696F6E3D9494202F>
-show
-772 2523 moveto
-<3E>
-show
-294 2567 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 2611 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 2655 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 2699 moveto
-<202020203C>
-show
-420 2699 moveto
-<746F6F6C627574746F6E2D6974656D206974656D2D69643D93353032309420706F732D69643D94
-94206C6162656C2D69643D9448657861686564726F6E>
-show
-294 2743 moveto
-<28692C6A2C6B29942069636F6E2D69643D946D6573685F616C676F5F686578612E706E67942074
-6F6F6C7469702D69643D942048657861686564726F6E2028692C6A2C6B29>
-show
-294 2787 moveto
-<416C676F726974686D9420616363656C2D69643D949420746F67676C652D69643D949420657865
-637574652D616374696F6E3D9494202F>
-show
-1680 2787 moveto
-<3E>
-show
-294 2831 moveto
-<202020203C746F6F6C627574746F6E>
-show
-672 2831 moveto
-<2D6974656D206974656D2D69643D93353032319420706F732D69643D9494206C6162656C2D6964
-3D945465747261686564726F6E>
-show
-294 2875 moveto
-<284E657467656E29942069636F6E2D69643D946D6573685F616C676F5F686578612E706E679420
-746F6F6C7469702D69643D94205465747261686564726F6E20284E657467656E29>
-show
-294 2919 moveto
-<416C676F726974686D9420616363656C2D69643D949420746F67676C652D69643D949420657865
-637574652D616374696F6E3D9494202F>
-show
-1680 2919 moveto
-<3E>
-show
-220 3030 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<417474656E74696F6E>
-show
-220 3035 188 3 rectfill
-408 3030 moveto
-<3A20756E2066696368696572202E706E6720206D6573685F616C676F5F74657472612E706E6720
-646F697420EA7472652070726F6475697420706F75722064697374696E67756572206C276963F46E
-65206475>
-show
-220 3086 moveto
-<6D61696C6C657572206865786168E96472697175652064652063656C7569206475206D61696C6C
-6575722074E974726168E9647269717565202861637475656C6C656D656E7420632765737420756E
-652073696D706C65>
-show
-280 399 1 176 rectfill
-2125 399 1 176 rectfill
-280 399 1846 1 rectfill
-280 574 1846 1 rectfill
-280 809 1 176 rectfill
-2125 809 1 176 rectfill
-280 809 1846 1 rectfill
-280 984 1846 1 rectfill
-280 1276 1 132 rectfill
-2125 1276 1 132 rectfill
-280 1276 1846 1 rectfill
-280 1407 1846 1 rectfill
-280 1698 1 1231 rectfill
-2125 1698 1 1231 rectfill
-280 1698 1846 1 rectfill
-280 2928 1846 1 rectfill
-showpage
-grestore grestore
-%%PageTrailer
-
-%%Page: 3 3
-%%PageBoundingBox: 18 18 577 824
-%%BeginSetup
-%
-%%EndSetup
-%%BeginPageSetup
-%
-gsave
-[0.24 0 0 -0.24 18 824] concat
-gsave
-%%EndPageSetup
-%%BeginResource: font NimbusMonL-Regu
-%!PS-AdobeFont-1.0: NimbusMonL-Regu 1.05
-%%CreationDate: Wed Dec 22 1999
-% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-% (URW)++,Copyright 1999 by (URW)++ Design & Development
-% See the file PUBLIC (Aladdin Free Public License) for license conditions.
-% As a special exception, permission is granted to include this font
-% program in a Postscript or PDF file that consists of a document that
-% contains text to be displayed or printed using this font, regardless
-% of the conditions or license applying to the document itself.
-12 dict begin
-/FontInfo 10 dict dup begin
-/version (1.05) readonly def
-/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file PUBLIC (Aladdin Free Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
-/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
-/FullName (Nimbus Mono L Regular) readonly def
-/FamilyName (Nimbus Mono L) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0.0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/FontName /NimbusMonL-Regu def
-/PaintType 0 def
-/WMode 0 def
-/FontBBox {-12 -237 650 811} readonly def
-/FontType 1 def
-/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
-/Encoding StandardEncoding def
-/UniqueID 5020945 def
-currentdict end
-currentfile eexec
-E98D09D760A3C22CF119F9DC699A22C35B5B35ED6AA23593C76D54CABB5E942BF7D6DD84F1664B89
-699C74B472DE9F8E6DF925F6C4F204E9F1C639B4DBA988ED2AC419FF2B2BDE605B8EE3264EDD6641
-2D4F21C64AC522BDFC7C5502F9C3F3E5592B3B2093D33C9BFAEDD2D49E89AABAA832E23F062E91A2
-5032519D1868816E44B4E0747795003D7930299D6E1E2A5BFE0D595DC97E140989CE81D8D7F852FF
-9CDC7A1B1B598C69131DEE005B415805A16D8A123E6A2261C63C769D2F4B60FA2C438AD7D199D8E4
-5F7E7C9A605C8CA14E21FCD81C9A515FB8DB6F99604534D06EA9D87FE0FAA852899C9D0595C7A97E
-6C55F79FAC45CD38E87B10D210CE7501E88C8FCD3444354365FB893A12F596AE2C1E70D5819EE0D0
-87D10BF8DA96F3DABD5405D28C4228C6C31BA4052464859640933FEEFD8071C0C84CDD829A9B1D0B
-A01F25A4D50EE2EA2B45160CA6333B2D2800306ED2BEFDFE155E9D9F9342EB8D5B0ADBF2460CCC98
-643FB1287CCD28ABA7B5CAB92EC39EE2E918990372B16F8487EBA30EAE88708B6CF33B6C015D8096
-C7CFE2F139F52052E3925C0D50FD64CE68236D59CB83EF56BFC584150EC38065059F3308AD6F9A99
-F83EF4E6CB13855C8175E31417D190D036B387D3952344A950F4D8C7781B307A094DF1ECAEE4D2C2
-FD747BC6F7F9C6BD0E90C19294F96C8C5CFE88FB34C477574A1B1630B8CC591529E59B20794DA32E
-61DECDA8ABBD1AE956CF74012AA01D42EE01E861B0AA6897C864788AE59DEF43C493246FDB1ACA55
-4C12594BC7B33657A9ECC9E3D1472EF826073F632BE540C35FF6FB40566773F3BB2204D3A579A08C
-CBC844C14B18C350F003B9DA23A570C362D6003893CA32F86F59B829C78EE3188B6E3F7FA81D7F62
-2825C639638DFB78B7AF1F500F5B450FA54DBFA5CBA277C794ECE93275A3DE0B452FDC8DDC2993BA
-A42F28A636008CDCB03EBF71BDCAF35019778993443F88412AD2AD0D7155A3944606463266322DBC
-0244B07DA1E9C27A27B59664E8566D7A54CC03E995AAD008B0A17E2C3EF61F720CE7F7788599C4E4
-4C709CD5C31B11107F16AD70B17B9AFE2E8CD922A7428DAC171427FFAF51067307FAB0ADB530E701
-FD22DA22C4CD3064067BD4F6089C4B2C87937DD426E4E9D2F60E608288BAC9056554D04947E69200
-61E379CF5E81BFD32FD37EFAC1F61CEBEE551B0851516471A7472C60DF89DAA9EB1DC5A67E479745
-3E69B9E22BAF4E3CCA4192D603295B018C4AB69D18DE52DFDF15E96B557F290A4B8C5B1E7A6CACA8
-1F2351B97ADFC36995ABA43803A6E5AC04A3C93495F6D38106B8B144449C07D1358210F9176E1565
-72363CFBDE576BFDF99FA329DD1346E83F79E06CF68250CA57A68931BC7F342AD295D0CBA17AA95B
-B8EEB53EA6E8E660B814E9F857CECB14F44A43288B69A9E7908D55BF19E844359879D28CAEF1C38A
-36420185D20DFB32C2E002202800E8EF3D67C5D50E919657CA958B538D537D503444865331D79BFC
-40312068D72364503BD0CC84B5F30A74D8B5B6A26AF2DB764564FB65A6BA8F9051AE2B4EA458D46A
-4569F30C6E77DC097356770362E6CF3F1661074778EBB44FF7D1E3B64FF75E77E11FE525BB121C65
-46CFD13300CA1F02D571B82A5825E6226D14FDCF27F06D87452A8B6C5DCA658535CEE2A795E58137
-D48E566B69D53A0C3B766E84C51EAA221C46999CC8065ADB2F129D5B630FAB1814C0C33B5AEA0EFB
-B6E994D80941B53079AF96D90A0B924F9B0E319BED9836B8F9053F868363D3CA554CBB181863301F
-8CB940872ED5FA7BD18CE39218B5AD8AC57D0F752D941076B1C64D99BE0DB86D7A6D96510D772EB2
-4C587F11779BD21CFE5BDE1F29C1EF9022B2B8BCD7F91153C845906722477829C40111D810480F3C
-F62DE8DBA7FD86CD236E656618CAF6FC46827FBC4898EA7672F8C9971AFE43E0E01EC8B77D4AF48C
-BF1210E98C1DB15C16D149BFF58AB0270CF015B107A3A50F5DC8F37FFB92EEC8CB6778DDB7CE4AAB
-C464C4AFF654223006A550EB52485A23D2B4AA7198D3CD54418102F1E9A4FBDE37B841E56F5C2C53
-966DB9B66B000E4588282E3FB80C2C519339F0002D2F83C979EDC5827A3B3C8EF8810A0F9DACB6B9
-998E9AF6551F56313DC4011904CB979AA2D32B11A811BC248141E4B9734D9FB7982A5671002D8279
-CAB93ABE057474628DEFC95D43890DB1ED34CFA8A20BDC3D874E7679A396158E522ED0AB969A4E3E
-C7E4474E192590504D54DEB7B260B7935C4E56548A7D121AC1F741F8CDF259EA1B5813175A77A1D2
-D30BA26F65EB765A04C09ED51F69F41551ADF399E6AA2FC09788137BEA4913F17B8EB838C38FB272
-1FDCB55FD65697FF0B850E7D3D1CE266BF90F7EC06A9A0876BDFE767D3A918B092FC78C775F945CF
-1F96E859C03DBF630D9A940939654C3549D8F7921CB94EE23D5A0535DE9DF31EA0F937F860B4F220
-A99ADDFC343D7CF7BFA0B803C12C26403F0DCFFC8EA786D0D8A8D9C367419CA8AE41190CE93A8086
-583A1E6C9D70B612C84D87D2EEAA71EC2DC12F4CDE6A821303D5F6A9BBDB7EEDCD289E80FA3B75F4
-7F481B50719DCF4A142069393593B9AF9CCEEAEC56A35B8787193D7C88113E9E1E221D151E093B01
-9EF89F6118BEC4735103CC8003CC5AD1B6727B3226CD44C497DA7052DD681695DBEC3397F9598C91
-77701C73BF0594CE93F23D50EC5BEE2FB9DA1FC966DF148B27B28EE3C89526DD6625E2887F9FA076
-7C127C609EE315626BC14D274FBEA56528DC06A27B2D476D46E9E7916590B156A5DF04A6CB15E362
-45D77021767B6E5BDFCC679670263FD891446C3371B11BB6E1DF60F960AAB4149D7753E6A5C33810
-C42C8BFF4E935003388506F8278BD7CB672F132E065AE684DCA0B9064D01DD620E7FFDFE04F14277
-EFE8E60159BA0FCA3FE2F28B902D4AC275D19F0AC6971EBE827C4A232D87650D2688345BCA78F879
-077114F0463C5F058107B669566F8171E4E284D278405580F04BFFC9902784216E0C9A17AA9B2935
-E66E18A783F723BE044389B7E9D62AA36818FF2EA406C3C1A9D2F3436F3EE7DB8BE86AFA8DAA6A4B
-1B84611350D8D27605509612B515E16AA843164D5D0805E36A2B9EF74C5F6A0B9D59A04B55697123
-27F4B1B30E9587CD103337639967CBDC655AA46E80D2CFD24BEB50815B5338E522B3A7AFE8362AB4
-F05D8BC52BBA9C5089ADA8C89529B0275AF422EB540D31A938B8740860756325B966B36817115213
-FAAF92DE63F6BAE1E0064BFBC5588098B61EB83C71F1C2082436D37DAF1ACBE186FEDC4BE7C1233B
-6F18BEC5F99002D21CB7864E4811F7AB3C03003E1E4490AD1AC793BD28FCD5EF0E6CC30EF39A08C5
-2F71939B0CEF620DC69E31E39D6DB969049031B0C92EF2DB653D97F370141456A52985076B268652
-FA2648C792780BAD637C4D7581FB2D62011D57E293719487CF2D1F013CFAA532E1C2D39178D51272
-A6AF041440BCA174B5CC902BD7390C7D3695056CB4BD7791F9FB6D88E7A70DEF2C97869F5DBC5BD8
-23C517C7B7C39D624DF627DC9653EA5347BFDA80B723F05F6DBB4C9EA501D862ACE05B9DBDF21B70
-56FBCD8C6D4B85873DCEE6166C8B5ADC0316CA12D9639F361B15A42F00E1D62EDBCA1111972FA0F4
-5758BECB31DB38316F3CDFE1B41748C93ED58B67E9B57ABBED5924A6D53E99FBC9A994A6489A8BDF
-13EB685548B4DC6D62DA7426C22227D4D43B6FFC7B5EA91C896730253E8941AFEE588359C2BECF6F
-FC415B9EB6D31CCB0F6C7F85853E6449FA6D627A97A3CE8303F148393ADCCCDFA2FE085C6908BE5C
-3C05AF00A6F02840206C3253A559AC5C049BDDFD11AD9B118403B84DA10AE3C470CB9A9A2D1D7B73
-2F59F5FE146DEDA60AE750F551AAC934621B4470E1BC324C436303E25F81D0DC3188BE0D6FEC5414
-C20E4CB18952E12CB6423DF7124627ACDE145500D77A97A8BFD9CB50D1FAA008E2CE2B2505A4749F
-1EBBB092C347023714055A9B63353AF9E7FEE05BB54C9843698101F79888A91531773830C2C967B5
-88D3ACD2192883D5CE3962D51084FC653EAE2C5FB2DA41DACEFB5C76812D2EDB5B109677289CD199
-8D457FB1023A19AC67295BBC1A9A20A426B06A368DF3C5DD083CB1180D287F5500F2C635EDE157EE
-FCEEC5503447382D15C748C1E35F68753992E5C90F900DE54D18F8E1B355D1076ADFB1F3590135FA
-D1A36F028E44F48ABB149B80CA9A54614D467F8D71CB310BBC7AC7100261092DB8C5BFD39E0AC6BC
-2C9D6CBC3A8C05FF8A74CB21608EC4A4CFE4CBAA2D056DBA14206106044DECF59F957EF8A9CADE4C
-9B19D8D30DD4FDE6A9548E50DB51ACA73330142153FC36B69C1C8D5B26D0C689B7040E81AC2C864F
-D7C097C99BE5953843E172C97AB5684F35FB03A725A89DBF371F08DDF40A1531FC1B676DB0E1543A
-EC6E97D3D2E4AA3D5831D8B3C952ABBFA112352814FB6FAB61A0D680E6640F6AEC8426200CF61286
-F7422CB2F78C61EBAA36D47EC16D7FAF8B4AF31D090CDFA255D9D7C61D46CFB22A7D6E1758E71ED5
-67E00CBD8E8F468DDFB477F091A2F915627F22FF47B876544BC1F03B6BBB98385F009C20BB1AA2A7
-A78674692B8EAC2E3C8069B79E679338DA57F72976810F845BEB6B9ADD32B95D78E5E60F16DD1668
-9C05FD82D36A3115BE8ED494A74DD211D58A2CDF983FCB9CDC29BF7F0E29988FA23560EDF514BC1D
-183F3B2A22C09FB179B47E05ADEF48DF02F31C29875D1915037B19407764A4292FE44E741651A8E3
-BEB5F0D972B6327090F664417C84F84FFBF0AFFF8B1D85C822D90730AB4140C42A51AA8B1DBE4398
-4EA8566040EB8B341CCE23FD3F69DD235A080BA5C69AECB9BC732BC2D7D40617DDA6B79FB6EE40C3
-556C7DF9B23DAD89E94054B1345DB8402AE679FC4655A4A776C0150463F8DB2BFC0608EA1F124E22
-1DDAE6026B5E5D007A7E4A0D6B3B0CF3A2669E67C5E4F01551966A7BC48F2F4B6A87E740D8095E63
-F77C7A027F26B52F2299DE5B8A2F6209BCF3D31CB0235F998F781E5CC81E31DC424E008D46EC0920
-2951E5684804A0592EA47D6C788A20487BEA2EC8F2E6C1D7F378B62DB43CA43C4B366F8B4319631C
-FE9854F0E10321CFA3B01C873584863BBEFC23C72C05E695B56E8A52E89AA2DAB543834D34DCAC5F
-ED08DC51825C5257AE59850D101D84F4CAA1D29FC932F9E0EFFBF7A9A7F3685F61F0490CD3CC8988
-2DB52A757A6AF4C4E67B407BD2316B1C0FFE7DC54E43C87B874F57E4903334E2140B011484863CDC
-ACA331175F2CF3D72E0042855983AAF8853D3015E870FF0807014C31D55060DF3FE1FCE157324481
-2744AB51322444632F9AFDA6706E320FFE82B8CBE242A19DF00CE73EE48E25FF49D5871BD3E60652
-298FE3E8D400609E232E0DDC794C0579ACEF89E841B2EDCA50D51151F65E8C1CC3B01EF1870558F0
-BF5743718C3E068617E81BFE120C6CA16E0924BFC2541177D53671CAA3AB641C41557DCDAE1A3461
-47B5E999C4541B08B4AFCBC187AFD653D5B5F8386DF6AD8FE69E21BD0567DF494F736C6A184FA4DE
-48DC9F347787CA96E2E00A296C2DA05C2AD9BC423E9CA428D7F1FA12DC9353A302FB8C529AF8688C
-BB543B45B2717EBF8F6C497935F4F3BFFD285E0402AB7544B3CA4643AE5A8B5250ED987A95FC1F27
-5B9707ACD0641BD0EE2AE9758494F8D8A51DCE408A38AC20EAF0852D72D84D0C6BE973326793AEB9
-55EAC6FE0A2813A355DCD22F6F2CE56588D1C055CDDFA98878BCEB6A018DB22922D2B600A20F8184
-2E665DF41013CA0947C4237C2BD60A75E2FD1A3FB8C8FA19485730B87461AD466ACB02DF8CA24091
-4FB090B3D2B41EB6B8FF05E1A59D9FD668AF70BA5BB72778953BA55FC5F9F626043450E1D09BC83D
-8605098ABEF884639A37809A32565CBEFB3FF39EE53D6C18C58C272BB928E4410E361E59A50F242D
-69747A032617C52DEBBF62364AB5A96EFAF642D9D82BA679B1D70FAC10A4EB62FA5CFC308E86368A
-AAD7E75948F43598CD1C544A0D4091374D7E88D4522CBE902391641327E888E7748FA889DCE67ADE
-61699E7D77763681CAEE9B1CA8837B2F7EF9C18CBCC538C465C8E2DD34616953CCB6030A222C728B
-834911C1A179E2C770289407AB28B303E724D97F747D6134B425216A64C6E0B60F633E2B85300047
-E4C90339CE030A0FAE31E830C8ABA5AB3386A3B69267351A7BFDD66356AE5E57FB2994452993E90D
-E7C4E260ABAB93C37831856A650D56E44172FECA01D6C7C380F250B82473960D2A2A5FB6B4DA668F
-46E624ACF7FA0FD4490F485D640A3ADFC9F8652E7A38CE5799F770C3606DB4B8B947F93967F779E3
-A3C0572F13A5A187D31D7BD12A5C7BE23CB6ED6192086241B76C5BA6983DB9C93E4B208D707D3760
-F03CD6272EF3A4CE89B8E52E6AC5871A3D03EB975759AB4BE239E5EC7842CBB333E692CC607C722E
-185D3C39164DD320C6945629C70FF66A5237C0A9520A1FAD6EB9816069351AB0F135D90CC0982B14
-7D2294AE4A38A527EE40BE9CDE2512AAEBB590E134388BB171D0956A7C4566D65A9A041BE6C4F883
-6B3EC3D2ED1B48B566A783292B15B6127920D247D494F070BB20BEFF60640B11B276DDEEE49706E8
-B2B21BB40B7F00AAFC594C492C25DCA774E0B80D82E927448DE2E74A9D0DC7AC9260096EAF187B6C
-D6AEAA6D1DC4205B4411122751A5B22688404EA7C5861730371FFAC10F5AFD4727A0E402AB5EA757
-606B75EB86A05E8F774D6E430A1A3FE2A37EBB06700474239FB1CFA05EE44B91B82244C575B52E7F
-AF934B04EEB0D933FEB57EBE326D75821C8B23EAA85B583AED4320B7F04B9F2DC591091216FDE52E
-064BAAA9C2C9D9714B95A4558C21F3CEBE624B5403B31508F178581AF6863083ED762F1E2E34A45C
-FDD71660D626FF8648F5D6C5E580D4765A67FB6159EC8077A9F0A88038C8D3D7C77FF0926E2123BE
-874F7BCAF129D55A5B5960F824BD1728ABCFCC51D23936DE9A25C408D786E44C3A2BAFA4423177AD
-060D21D38E15E23EB6FFC0B4120E814695D423EEFC2744A1FC81B4DF89D76F0A6803D8B14E75538C
-AAD03A72517B86514F6952F6FD619D9E910D980F00964DB325318C045BDF79647F453D4A5CF4E61D
-D5359782827229310405FBCF6107C3AD9DDEF9A9A339D5D5A6EB2E7838A0A43221BD62CBDF732DB0
-A638A52016FB35BA7761AEC846A023D3BF2D1BB183543E81EB7CAC1E5970CDC6F068C5EA118C7AAE
-528D1396E6DC939112DA4460C890EAD5C01BDC438F5BB734218BA6270ADD0DC1778FD8AB16831D6A
-302B814A1A44B07EDC65956C9E6CF4875DF521F3CE5B422F71081B6D69BD270F739095C9E81C0377
-934A8BC6390C420C4E4CDD9CF7E32544C68D884E15ACA3BCC07FC8C132D8FB9D752C15D75C52C288
-57E2EA461A6FCAD90C56843513F74461F18D7164BC597A28AE4BA7C86EE1703535A9B9ED50122627
-71FC12F102E800E0E1AF7BB46681BD2B14B614CEA91B7B2AAA35235DE76C0E113C92688F8EC81277
-D58C3406778E1EC1CC15F1CD9A137C8FFDAAB99ACE3BFC782916F1A877170589A92DC921E6740A22
-B84DC6BACDABCC76E64C79E3A588D80F8F4D376E1B426F15751CF7391102102F0AFAFD8B22DFDEB5
-48AEB5F30B1673023D22054A13391A0EC08DE6E7B685A0D031AABF20B7C62187C0284892D5EAADF1
-21BA28263EB863D5E36EA9C06A77CCFC0E17F593961591F84D82AF823EFE41044C8D606FEF83CCC7
-B0E961E7994DF8A3CC36B209D953E250ADAB8D22D7F2B4E2C9CA39EFA2D93E56195C1560E30A5190
-CC5B17FAEFCF250DF79F6B624A4B917E11C332222FCCFEC4F6A47BD9E75DA9854FC3F7AE554E91ED
-DE144D7AEF38A0E3EDB5E5A5626374DB94F022C8CF549093041DE00D7269B7CE544E748439BA2870
-718C08E58FB4A77D93EBC04B7957D272AE1601D41BF85A2BADAA0DF73B0D3841D4839C85677FB2E1
-5F1D6CE592669FF4BBC9C69DBA334DC37706F2F6BE83D5863E8CD6A30C08640AAC4C233684E66B4F
-E6B62D4A8BE9D531E47BEF5640D9B5C27D990092BE1597F6995C8A77BE9C18AAE6C1CF130775DDAC
-41D34438FC7AD8E042CB56CBF2944932EBA7D053E9376FF398367450E35A1945FE23E05C921096A1
-5454721FFD0F429A3E06DC3ED36F1C170BE79C66996EF8337AFF85B90C5D3A4A94455AE9FA32E211
-7A63E59001F052D5F6223125BFAFA40901E98960ADF7BB886729DCA82FC3B8CC52B37FF2517299E1
-D769057F8154FB95582F02CB0BECC873A9C71796ADBD3E91324FAA94F2C41CF57C30B5897D031C02
-D256C909E080E70BFD1F32E69EF67031138C2DDCD1A8E4B65E485C23C3E450ABDD9815512D6F34A8
-4B9DB715DB2C7A93BFB424316E1AA44397749CB01088428F149A3B4324737ED9957FD388248462AC
-1B2610D72BF5C073ECA567E7385CC959E37CAC7E05470160FFA5A9F63B8E9B082937E911586EA165
-374938F492EDF28CE6020953A5B5CCEC7737F9D9CC8538C4339567AAED3794ABA3B9F4EAE65466E8
-E326F6C399B36355935FBDCB9972F10B13494DC25097FCEC5A6398F275C8C151558E74C5175F7BAF
-4155E36B733F75CF9D5C5979B0764F14D8306E06BA24BF791141E404C69F3F8FCCD91B9C58C2C671
-AAE7D4F9E5D6414E46ED633A5F78AA5BF04E652246A066EAD9E582B181CC196EA2D3CFAA383B5D0E
-4CAC9336E119C08CC6AC55CBFBAE147C623B400453BBF447E96DE036FC025624384359EED7C7D5F7
-858DC0521377CF647A157FC3F188DE5EEF094DBA125510FDE34C570D7BE76AB5DF0A28BF45DDAADB
-EA7EEEDB936332DFE93081E0AFD3FDD46BED08D6914B2EFCFDC41662A33B90B03D76D34F48D30FC6
-BBBB600E90E6AC7243FDF026762A44B4D6E4ECBEF48C9D7B696AF29EEE063E557D8FCF0F09E0136F
-45D17E608DA36E59F2AECF8493F8D62536119B5F7E1554DFE3F6E8D7C9A2C6F557D18B4AF92C9F6E
-050975C3B5C54F9B5F4E39D600B6FA2CD6DE203A174028CBB2A201AF126D1013C229BB82CFD013ED
-199D01E51EE2780FE896E01C63C655087A3E61A7F1029FA5E97EA1872F1B45F22282DDC317E17926
-7368CB52DA9444F6055A3C653659CAD2A1D8712BC2B1B32C1DC6906D957FB88524EE066156ED6BDE
-B8D832F9338F9912E29A250A8C4674E667C1C278B677AEC9972BE83CBA3FB779893FCB8F81A323AC
-91474BA2A2334A07BB5628E905C518E634F6761A3289056F83D5DD7B3890987EEE1C18FB2D379CC1
-905F1AEB3B3D2AD578F0D6C845D2D40C4BCEE3F71C90E68E5417BB8CDDD878D83BA80AD8485F4067
-E5C3CABF28AB56CBB219C0AAB8FFC6C7E192BEC8CBCA1459AE4450AFCC81B9548F40CE2622E5A7C2
-81F74DCC02DAD57EFD92D072318DDF05BF42F1EA8163071E23949B0179CF7DE64677CA99B23CB926
-B3E294194EC13397EA1DC9A5E1CDCD828156CD71F81B64167D4FB01E6002713BD8AC6F82B20CD369
-9C6CA4704DC5C65A2D66EB155B7AF1C9BB46469416FB49C1C7E17A30A5F045271D7DF3FFF2F42C6B
-470701C381E3456A500C6BB3D0E47B4D91C5F34B49BB6272F1F8698B307D89EDA3A1565DAD1C0864
-627560CF922DCF5B34C67860352390B282F95394AA2CDE0E97CE3ED39546A6AF1C52BFCF81A29BE8
-2C47C99E8050E4889E4575B75F39E662F2DB7420673797E2ED3D67CDA7AE2C15D0A0A794D57D168E
-BE13214E89E0209AB2C0EB7784E9491AEFA3C02D0DF3AE5365A0FC4AE023CAB528162C7A1B173664
-9DFADDACA8DA5FA18B7D6489E4229E9E24D38A620464A744A5C60F6F9D334B908706B738AED18669
-8A8B278341FA4D65A0A88680BA484694921512F7DE93337FC1C02BBE6E64AF2DAD07603279D87329
-1D1F4D39C1DD6D89C90F65240F4808F6F1115CA55B88E242565E59F3BBF1F10EC7B88872E9AE61D4
-4CAE185463EDFAF7DF63DE4D2207D307AFB61501892965170D2945846FCF5973A1D458607F50C15E
-06E5BEC715E0C156259AAA6C735593E5564F65F443B78CC7512EC35A56F126DF9D30974A40872E42
-65E1AE5FD483CFCBBBA26DEE426CDC4721F19C3FDA86ED7AD4FA1120F63669BEFE7002B128CEAFD8
-C63E8AC09943B6CBDFB3D2476A026C00A8FF81B1F651B97F310C82ABA5F388CC1DB5AFCFF5996D52
-52A6A42FA4D972E41EE56088F78CB966F9051171C472C774879AECFFF08BFD9CEA40D7C298922ACE
-64F28C14E0B81F4DCADE81D71DE3983D87D905192EF13CEE71B2D3FF1A88AEC671EC318917DF98A3
-C9054E372D22A3CEC82FCC217F47319A40900312F6E32B536B9E7A7FA0837EC65CCDB5FB0D414371
-17596CB39D9382262DE6E65379D3A9709B2CFBABF5FC5D5B352425F06F88CD31012A2A4147B112F0
-C1C0ACCC808CD625E0228EEF66661F70AF96D3DCFECD402700E4F6522AC9A856DA466D55C84F65BE
-2810A1565163872D62EB81333A698ED7B68352CACCA2D7AD38AB55C19E4F5582F75818302F5FDADF
-1DCED09D94872F2D48FB636C8E38C7563C72C771A08C6B1F041F3532BDB39006C89A33C09BE1E3E6
-03622D891F98010BF1DE5355F557A1E09448D486ADEF565705277B31B8BF2B86761E32631E3435B6
-88B79D566F1747BA456DDB43CD239FB47FF7B425EAA4C657C8EEC26EE01AED07CF916E77D53634C1
-37AEEA009C6B515B6342C54BE2C7B95955B1A9DA277A0ABCDA2346E88018C726F481F71D6011AA42
-F8852F2E5749518FE3B3AB668213FE1A05C10A1C53953D75312631D6BBBA01D418199DFEFF8CF548
-6109B099FE8E2F606165FE30F532C03567785D5362AA873C9D3EECEB20F1945D55F49B0CCAC84967
-59FCC7292E46938943C262D78F3212D3F9D0F7B103157F423D71B1ED54B2A603F4C269029918F238
-EC6828FFCEC66009DB9C9E59534EABB183F31D7AD4C57B1BDF0BD2CE5A421882BC10CC1BCE6A970E
-2B586BB221567CCA483989DD0B8DEC424C1D1FF042DCB7834423CF244EDA28D2D969B17440CAEAF0
-24A6119DB010CE366821AFA424D1B8299609C04148275AE6E5257A7ACB3C766C747CE99CBA2D703C
-F19B7CF301B634D8B613DDC4AFE4633A4D77BFF8E00CFB5E289EBBCAC90A24307E7941EC1685CBAE
-400CADD876FCEF7F6557EEE167D2035A05120293527700DC510B038A496BE1D5CBAEF24ED39F7421
-1A93AADF22214ED606A80582485AFE358E3A46D0671148998A3B3BE209467009B43400870359D418
-9A8CEB4D5866AB52D16D9CEB1EAB71C07E6CAA34B70E3096BF7604C22C40D5FBFEEA616DA3BABD59
-DCDB97D883FC8742B8267A16A99B7953225F7144568D566E64542C92E538AC140C851E5D295528EB
-7CBB49909B1CAF6409C9BCCEB325468FA0B5F7CB2987382616B477CCFE4F4AC79E4A6F7165363543
-F04DE5B6F6E1C2E910CDC3CDD6C4C92737198F892337DCB6647BD226C820AC99C65D8E7772BBB74F
-E65DCAA8A22C33BC168BF48E40A82700A3A7668C5A9A71E397ACDFEE7D556C5C19467B7AA69C260B
-727407AC837BDB7D67DEC055C1F45D8BAC61048C45BC9FB3CEFE7549EAA2992D2EDC126FF7A05EAE
-58613332A2BC1465B2BC0429162B907D65F793D236EDDD8D35405866D71B25F62DC4A7E06D4DEE82
-840ACCAABC0774F8A63E9C0F7FC980B3583E7A8B01C46590E3BC04EBA565C2EA94F057D964A78A90
-EA9F52ABFD70F84E44E434BD10A42E98C794065724341F907E35D3CB257161E01C7084E3A0166D15
-CED65DA7BA87DBB2EA33D39BD99AFB93D3548358D08330E807F8552CECF63C84F805205491BA3A1A
-622E70C232FADF3BF2DCFD6F0539158D3306506F150B0518371912A25EB96163D73E9EEED42EDC84
-D688BC7F7708D9DCA348FAB4DF62E5809BD094842D0A31DBB7C4B41F94D946810C5EC10B69AABC2C
-91A59500B2E5D37F4755DDFB7AE4ABF757F4C5BCF77C7F95E6A616646456FE8F18407080BCABBFA5
-7704287AD26222DF91AB2613951E2D679472F8ADF06EA2A20205EC19972299A78BAC52114334470C
-5F5890C2F846B4C6042D73945127F2E3910ECA1C4CD7A16EFE4B4BE38A15AAA710682C3836A8CA83
-FD384970139D8B46FB0AEBB002DD224199672FFA02250FBCFA4E649E335428FC71F50F45E498419E
-DB0E970F46894A48F65580881C9C4250FCEF65C9B28699408E18B26FE6DB7F1CBDB767564E73CB59
-54C6D639CE33220C894F36E70F71C9F9AA3FE2AE0AA0E3F2E304EC5ABC661675CDE2E70519E4220A
-E26FBACBD01D5169EB844750753E6CED53E3678FDCD08AB93E10067E9C64F38B40B76D99B6CD92BD
-F4155A1EA5CC824998B59AAD06E09E5F15EBB2288D66EA71B296616734FEF2796F07FF0D8B047074
-A1111D68B99C2B70FC56E74A51B062F4998ACC85B1943C9477E436E5CD7AB18DBC898D21BB93475A
-623BDDA71D7B895BA2D4C10F4B90BF335126F4FD57D73AFA50170F6B3C364922E551D40E35DA75FA
-891762FA23401D39260F2E92C7807C746F13BB35CEF9DBF2E76E66A72FEFF095DA482A4DE8A42091
-7065736CF4DE904FB52E649A32255E2030A7B31B686353492F31C064A3C4B0448C4BFD44B8E15384
-FD809B8761EE26A7DFA1758D57CE4F0BC376EB2B3833534B15A83436BA553955ACB5A7A66796AC5B
-92DB5388BC53EFA27508B08E82821E5CF669BCE52BB860780F749B4F38ACDF5FF12726BF3EC2743F
-01014CDE96FE6B4C40A034E9EAFCA2A35CCC776C2669E6AD138070A40F48ED79136D7FF57E993E09
-B81C543FBADD350FF5B5F7A46F060F88E30FE2D8233832D18B6C323EE017EBC1DF5C838321CDC8A8
-4CABCAB20B60A1A3AA028F36EA6E87C850AF8AF7CD50AA6359038BFA8818821D02CEE8F51DAB8C05
-F7AE9797814D97F3DB8CCDDE45B21DBB15CEE292FAA534A5F317B357F4091F3DA357325B8B9F5EDB
-45865415973C143E5E5BAA483FBF2D06CDD4246675EC58B84C6AE65CA743117FF00F229243772561
-31A7F2BA26A9115AFD96C18216CFDF41B7220ED0CB3FCC26C36380007B382A02AEAE428887DC8BE5
-FDD630AC57EE3DC156C7B8B29E687F24442E35CE10BA4087295A641F7139C831F7CCDA6CCEB5DAFE
-537CC1A97C5A337D3C48A6AE947F58A30DC08CC7B58DBBB4737AD52783C573FC1E9408F55495A80E
-7FDA61F0B9C4F090158F1A416249EBBA936C27BEFDEF19D1BFB839EB70576A010706D8B95657B218
-9C2AE04C11EF9E57FE09880273761FB4302C388BD608FA0C7F00F033C9C00F4E3D5CE2D903E0DA52
-E69C7745EE9FA75E2AD93DC6CB5CCFCD3782A699B807AFC36AD1F62B05856D5DFD6F88831B90EB3D
-CD523582A49732E3FD7253126D39E8AFB8458B5F7AD7F94A8DAC13365F433C857AF4A42C0A08C4DB
-9887C4957259ED22D13CFDF5995DA957EA5A0F620B0214FBFE08AB6D552DBF048D62CEF6EFF12F15
-3511ECA7833E0E3E95F85E6AC0F95438AC4C126E1F1ECF336ED31CCA7EB216D279877123FD9FCD8F
-B5E52B587CFFC4428456DDCA816819A8A4A211D8F1629E5D42BA4C5C356E580C8A22C61D987552FA
-A97893816DA73D423686E4EBD44375C257F031318865A20F22115E72BF1EB9F93AAA169C140A33A0
-6C35BD4526A38BE79CF40AD1EFA10411E8F3300A8A8B97AB140EE6734E1BEE6C8EE443D698D34159
-97649C6F10F20ACD80236422E215E146D744A262DA3FC88DC0D86FF66512F49D3F957D3C5CFFEB42
-4823509F33F155057A4C6F37B52F4667767BA94F6B8B62856B553F307E5D230C44CBFDC9A97A45B1
-39FFB2F2565EB0E22026972FAD0FB7B9576FB6F368B61979943A398773600E7EE1DFEFBF26D45D40
-BDA66EBB96A56EE9CAE0B2420C5DD83E24DBA9FF885BB844BF3D2BF93B07325DFF60C0CB5FDCCA0A
-C8FB5A2E119D5AF26E53AB8E3B428481C2871DDA26EF0B621CD8572B3C664BC7AAC01A1D05B98F79
-1A7080D294BE81099BDA7982432F3DFF4775C44D23F4F1B2E0162B61A8B2CB5EE8564BF98E2ED403
-2219085FE6194C19DAC98A421826CAED7F1AB1477AB327506010217283894235D7DBFC1153D5ECC4
-8AA7293F19592B4D7E95FE55151889BCD1D7FA7DC2370D2DFE11D7E4EA34B5C7A8E73BD3A348FD38
-9EF45B6167FB90BA44C23E912F9A4F2FC0427ED070592F7110183BFDB2C400393BA7569058227926
-351F07FED4F33633BA03A72AA2DC6B598E49B96021DD868DAD0F352E5722FB714F667C15C68D49C0
-3D822D82677EDFE86FE9668E537DA284068C9B0AED83074C92A5B939296D505B837E6A9DDAB1AEAB
-7455A08A114C2222B339284674B74BF4CA9EE0C020BF2A148B439C71C6BE51A94CB64FBE4A7EB295
-5A455047CF5CB348B062ED4F6471CBC3E9ADD9BE9B96879AC7BC71BCE02FD02F17C6063985A5E898
-3D205AA1489DA13C408990ABA1C54F2F501AA172F530480D789C848118C0A74EF98D5F607A067BAF
-F6030D887AC6A6497F9A0B38F9705F328AAD4BFBB634F739386177B07F22D5771282444E5EE17335
-B4D0EC86117C697E79A5F4F65FDC08E4904DAEDAB20067EAE2448FD4301849E456D085F392DD1316
-7ADF75CCFDB723E2904A9C0C976D6B84DDEF9D92B0E15FB246C3ECC2D0BF314CFB957757B3A3E8E5
-801F520644E4601D291DA0F7507C06F3B9BB36FC1C70EAA444E14E56C0CFF06C7F853DF36DA9D8B6
-AF2544B853DFFF535A7E5C6FC145250CDDA229956019659D0D253A19A7B51A4E538BDC01F74D7704
-9949C2C97C7EC6392C2E61CCC0992B66DAF1AB08551063E53180D2A67DE496716CCBAA45462D9F91
-B66A22545962DDAB120511FF08627131B95E5DEEB8B4DD9643E7B2AF65C0FDCE11F5F1E8DD468DA1
-8D41C8C4F00EA73836F4F70EC50FC3EC6D358C0658A4261C6D15A582A2C7C994E7882E661855B352
-014576858A265FFBC425160669CE159D07EDAC04D060B44E5800A7AAE8E339C29B929AA81D2F515C
-46229D2080D5917AB20AB6B34FDCA8E4AF64ED660A3173786FB1A1D005D575C2A5187D3F7CFDC94C
-CC44A38C5CD523E9DA726D8EFA6DA7B6131DFF3435FEE838B2C7D6B97934295F06202D307FF78D90
-6699CB9C5BBB10D1D4DEA5FDA5BFB094E704607083B646D37F5DA1FC7AD21B813F44D8C1AFEAB666
-55AAA19703BEA2E77DF3BF350E17C74B3447A452235919452B5175570A006C7680AC05E8950A62E1
-1D7E3ACA35A397D1E19630D094A86807593C97F4C484E4E06BCFF708B6DCA972E3A0009E1CAC0EA4
-141530F5C1B8AEF5E1B933F37FDDBC4BE22B74FE346D1A3F5FEC0818F8E61765568A2AC04713E828
-F98C449D9A1CCE52D10D61DD8BFD084C8D099A75D89DEA64D5A7CC68BD5B0593D97953DADA976383
-F5015915618AEC56D71D1DCD55B89736395C609B315A3F1E1255432FDBD37F38CC43C354FB4B7C44
-F1A7318B0B7E99C3C08C33B953727B6A6328051783A0A33E3CD9E498346A3CA6A77B517096EDD52A
-E443B87643A646C3A7BB97F742888D33F9B3127E61942F4103C1DBDCD8EAC8F9E259773066736CA6
-53CE57E8822651261D847C131321BB9D6626A1AC50D047C0BA47B411DF2A995545BD68EC0287CC9B
-31D5DDCA8755EBEB10ACCB3903AB0FD5788E984220443B8459E7C078DA4289F1350905881AD6DFDE
-C47302B0ACB0D4AF8CAED02B4B70DF3CF8FEC118F0FC2D3DDE3E494CD160E676E300BC464BD4400D
-B50EE43B314E0517037BF971ACD7CD327CB2134893B8A0410E68DDC518F5DEC966C7884CF5FDFE74
-723177F20DEDC039D879056CAAB4BF045062D3904F615C5CFE109AC7A35599C94024B41019B9AFD4
-04A80ACAA4837929F5C9317680A13D157A03B59A5588DF79D2E113F5F51021D6F6F90E8BBBA2C252
-FD10651BE80BAFD59C53A3367BA3C28DB6EB9DABF1EA99F47B503F627E15DCF3FD645FC52C5D5D0F
-2F07DB4C25C0D1E1C00146E1C4D973E613CCDBD3F9450CC0F5343D79F05E9492E86A1BB889ADF405
-03BD7F3E7543436859184A5B20BD8A172F350D846B7570803990ADAA48D4B9155A2B4C4BFBEF1E1A
-065C08E03928559735BDD442FF1E83E1FA20A5DA57D8BDB2FF5427C034CF0128AF111E6E73099E04
-6E0C240E80A73D7BE72B87834E45898D475521CA3306707631F5C6136199F354632D1A085F12A1C7
-C473868B62E534D15F5484323E63D0574196A19EF175214EB35A90873EFCFB92D6CF68761D45E37E
-AA61E1A1979A82009507CA193E44B36A806486665CEDBCF387053ACEAB979BD35D30978FC7659ABB
-E844F4ECAB3303318ECE80777A5FA5A9DD91B3D06804C4B4E9B4EFCF07EB89866D0DD8CA390CFD15
-98651417114D78776B1A1D36B4BA17746D6BE7FC123D473EF1EFED1C3BC1D555F914536869FD5B0C
-35F9C83F65B0E6BF7A627B9202D787D72C600DDB6BCCE613D88492E13CA0AAAB196E8A49928C62CE
-A4FFE2D0208EDA334ACF47F20BD793124D2C5546C03F4A364369A76A0425262F9D9118AF54E37D32
-E33AB25DD533A49DF5FBF1BAF4CEAC2D9D378CDCD13B00FDA432D9042F623DA41AFB80699B5538A2
-5403B0B3EABEC9E8EFCF42FEF3EA9F91766902CD206B0787C187D5370B60AD6DCD002DE2DE8DCDC0
-B4719A797C5E26BAA67665016DA0D967FA1346F9588AEDA174CA001B31213617FE19EA218EC23597
-79D979E2663166489C06993230B0D07973A117C4E3F4A4C93CF8428248DD5389414D679C69644142
-67C7FEA17E35B0CEE456667A9B1875C81B2302BDDEA2818D6019FC1622A82051F60584ABC904CD91
-8676305DC03FFBCC64FDDAC8D8AA9CE2EA00D6C97BC63C8A617DEDFC0E40775649438E9F61AFD179
-5E3B20560B01BE5E0983F136CF48AB206954E41DEE0D9DDD953DFD01CAEB569151D6BC0DFEF29D70
-FAE3E198E7EDD8922C0E0BCB8BCCF1C016142C1A8B337AFA7A05A9D7534B184BF3BF827F371E9BD1
-9A71244ECA1BA73D484CD2FAD54DB2F0EEFBD54B536EBCB5094E6BC2F5B2AAE41F05B4B311115876
-ED42C34F8E643B53372E3F6350DB8A38445822EA9A33E27FB0CC42CEDCD1FE2FDF723FC47C996EE3
-56C402112F24D0AF899B2D00BEA1CFD427998BD22B2A09046D6737814448ACFB10D387547D7009FB
-384AF0562C85694C071584236D0F1F3D3FCD0CFB38B77C81889061E668BA7AB37AA60F58A3967DE2
-6F939B79CBF10A9DCC42852561D8D6754F1B660D216AAB1E133FBAA321C56E2584BE5C9BAE20CCF0
-0E8DBE6D9C2FCEBEBAD945C3C04101D2387351F132628786F6D9D4CAB83419288D31F9BC600D9664
-12E6AA457CE6CAD26A4C0671097B98C2384C81DD8B9A3222D4F4BBDA7017895C3EDC26662779AEE7
-40D9D7E24185FB821970B0A3A94041A69E4805EC88EE1EE521981536F2844FB8F5EF645F67D42CE5
-148E2DDE43AD5AEF200EDB3A2C7866C98458A92666E5F9E070178BCC39F65A893102A10564AF4E8C
-AAA5075D2F8CD7FAB0401C03AF299EA3515CC93066744EB5AF7CF0ED06675BF049A6E3C211A89E16
-DE5BF0445A7CCA6EE8EB0347454950485D884606651E5887FE8B24323E2AA16DE22FC1FC8C4F06A8
-2A1FDE5758976024068197E1F4506E4D3D8A16D40461A4586338B374A592DC60334402F76388AD6A
-457DC3F54E6169CF7AE3959676E966A45609621055EC3AF80E182633300A4418E34A66DDFA6B569E
-5A13C9115B5FD3EC1CEBE50FBA247F60803AA83976F00117536342DC3D9890C49B2AC701D370E43A
-955118967827760F7091469C5406F08F18D7E3548148CF0E312B1DC71DF67A5E7A1656CF2F47F3AF
-F3DD50FFC2FCDAB7177285B29C17CA43019F62AC6FBA52D1493ED7C427526470ACC8389BAE827759
-4958908F517B2863B83292EB5AB3F57FFFB08393CA610FB1FE905D88A0A16AC395E2A2A6DD033D6A
-0D68992F830B2E1B95FE357BF672716E88FFB92FFC3D62945D1EAD22BC68C51EE0E10A43011DB94C
-44685A5C4576F6EF44CBFB45F2A4BF110A01657DB51FD499767E78058199B31DFD60813F1A344F86
-289F9378231D5B151C92385E3650B4FEB1DC91018EAB8474CBF69FDC1496A4D078D2C351C8196451
-247A9DCF8117E5B637371D8E22E248C64D999015C3FD2311E9950B8EE0922FBDD3D7BFF766BFE9E7
-CE0BE12F318FF2A7B5A9C6D00A54401609304ED2C55F5C1EAC3D4B38355BBD85D66D61636FA6E30C
-2E82829376BEC979A6FEEE040E452359768ECF90CC539A546F17AE906C76F14F86FF697797322B05
-1EB311A759FE260C1EEE5DACF383816AAF1294CFFA7BF87A4D9BC595EE8F2C2F86FEEE11AD959D86
-F22FDAF4CEC098942A57E57813A0FA99239E994FFF353C1E781D666B8928CFC648FCF0869FC68468
-BDBDA7D280DFAB8B0B3A4CA35B074B686DE8D372C61FB32305169A1A9912F6541DA16CD6316A6EA4
-51524757BE5CF6E820011BE3859FB8B8578C100FF029680E05F0E0BF11D33FE19460C85EA5E4C0EF
-28E29407C8AE6BE01CFA0D5022BF9FB01416FFF722A784DFC8FCE330EC95737A854471D334FDC58F
-AB42867A7B62836A8B56466E9A6C1247D46EBAFFB905CD4321970F59FB8D6FF65FDDD34BF913AD32
-2E68455C5FF2D23C1A5EAE687F259BC982B6A384D35440F7C693CF50B9ECAC0B5578CAEE87588B56
-2EB6B7F42034C9F2E545EC866316552354EB3728C7D26527ED75174EAF635E048B08DC5D23E88981
-070AD5641A652F2344956E9CF4C16E652A99F4A644D1787D6D36537489DA4D74E61B2FC4DFDF1D1D
-9D58F9C26C5EB63200526AFD168AC57D5611ADE4D4A382FC28BB60F9E7D626A6C67AFBCCD1183C5E
-3CF2EF210D0BF5CFA7BB10FA3887BDD4CD96EEEAA8F9219AA2F10ABC0A960C3B57C0EC0313AE10CC
-FF1F522124CFC8D2D49BFBB0C193EAFFC5B48FB3FF30B21CB76F0A4C0F1377C9223145BB0468A5D7
-1B9BC25873EA12E1C60334571C67385C00D0B570D3FFC6C7FF0DE62C183C76AEEB12DFFEE1459E0F
-C818C621B8D12FA1357E2B55D48935D70BF140B4CFFE8813DEFD479350B20DC2EB1D3CBB1A2D3DC6
-EE975D58C89D61FC50E6A0197DA9A586B72255023DE47DABEFB11E8AA02414C2FF6258A281219B9D
-DDFE41BA7D7977D0D6F18224FE22F7D4E9355FDB35BF7ED3418F4F68D093AC48F7D8FE4194FEB6C8
-0B9DC1F74E023C604DEA27089F98C3973FF9F4AD7BF7BAE601DB89B08D5D8139B95EDCF6C885FFA8
-B3E4B0477E7040225733826BACFD1EC4A0DD72DC41734856AB9FB700DF83CA2CE812913BD142D84C
-5C83C0B2583768198AF9E885F2BA74877A414233207234AA5F18840557CA11682AABDE8993533887
-7C6D404BDE4153C9827EB16D66C1D73A8143C8A2D3604FF72CE579FAA3C5224BAC48EA83BA848429
-9472007DE96466B5B29ACC7C03B05DCAA38A48BFF9F214DE43146AE4E04FA705421917F99BC54533
-F0EBC01849E396216B9F0794E6F6C6B61B52EF1B1950C0FB609895C3C55FF574163FC8B6B09E66AB
-AED1810E698FF37CC1F926B2CDA3B48C7D77790EBD2D514B6F385D397F713EC3AD3954EA9C846158
-6031D369E8B99E53408A79D64C34EB5A56DE8A67DE91837960E98A66FC04DFA0EBDE21DB003234BB
-78665B039D0A469A0221BD541AF7149A2A659C300132C14581EF766FFFBECBA8B58A5EB3F95446DE
-F49AF863A8113D17B2E7E6ECDEAFC3834D4DF900E3475596E86FBB4E2974C090DB4AD61A737D611D
-92B4535AC291C56AD8B1C031D2F9B505BB77517B737D70AB3723DB52AE2ACCD5DD2F617423ED3CC3
-9CA882EF41757BF7151806A9B8B0F312808863E3673FB54DE939B35CDECA7FBC4DC3BDF5A5F47D35
-E345916C39366C8B4F439CE1C6F1835C320BD1E67375B03B5DE18C93256F251761A4C8CEC01019C0
-68E34447BCC503B9571FE8000627A6B3DAD5854CBC0A2D69E5A8F46BC78F6A7B1422334EC7A98ABE
-FE9B83E01DCF3C6C9273B346F3240EA225AE4A4083CC7B0EA141A0773FDE940768358EB4B13D82AA
-304A1386D450C1C0C6A7D5A8FD2BD313F78F85248B5196241E31E5595F3BC01F37700A2DD3D4A0EE
-2DD01A36569CD507130E8F5B1E96CB560BB7DA15560CCADF3B2C9804A11D9E8055C9EC70E48C1D21
-3EB756A1376F2EDCB7189D78CD3D6CA5865537EEC31C17D801605EFD860B0B629472690588D02575
-02C6F7A75B9A1C1B397781329832CF3EC43C09F1559CD562C48FA9500295CD3B0A790DD3FCD4684A
-7C7AC49AC9BFFF36B39A9FB148BC28D37907433943CBBF0CBDAB46D3EA86DC8F81C859C52D15302B
-94A9B51C199B7104DEEC9D769C2634CECF8B700CE9C04152CC59C9326BDACBEC4312DEED92DD087A
-1C4840868D9F97CAC046581F762F75E8D24D6445370A3F1E0AE74A6478D9DAC37E7FA5BEBEC0A1E0
-81AF89C1BBF7F51E3E2E22C8C405E8671BA85F1BF0DF79A465DAC7EC07F731E00632E017D190A99D
-83E27E5C2E63D7DABBA23B2E88334C63721AC5A4CBC5D45F4C177259F34C2EADE01FA008AF65EBC6
-01D8DD16436D86AA94C99F3CC0A2F87134E73BF22F108B825A8963B49C6C685474AFE4A542C8641D
-C0375D7EFE9AC1168D9700459BE52D0DA399023E141969F25C0DAC4668534B6647EC85454BE945E8
-26B26DE6E3C4584B97A38E2B40A0D23481BCA78084FE80E00A71A790BF31DF468A435ECC88E60A57
-860BBCA3D65930186E9917CBD209C230E8F8255A7ABC7D3F043AE4D7AD63D9980BEDF062B7D5C298
-C40225B6D03F29A0339E0FCA02138E526F06B9EF47F5E7A8068A846CFDE2BFDEBD24F5A73A66C079
-18662AEC80B43246284FA4E2EE0D9AAB172B1E59A6CC46B801149D8C0DF6DEC9A55D8E1B0EFD9D30
-2FF618075944CCCB6831D336B11617107B0530D09885E5CA11A5F1FCC8D69D603DA16BEA51116D42
-CAB1AA1E4D7B9B4D79993F2BFE53EAC904FEB70B2D330A89780EAC10D12CC0C35B8399F218AC2976
-E57A26BAD20CE2FA2AE2363D3FD2A8A971747556F2959DA74A8963C20B504711AE1CB0D0C02457FF
-2E9BF696B159AF031DD5155F21C0F5549B0471A3C5DC8918B675CEBCB23E29322B959ABC05283A70
-2E878DE8EF25EA760F3C5C7B7B49D398283DE2ED837FD59F7C22D62C58FE4448B1049FDEBFC8787E
-67D7DAFE9774979BB3802254DA59BCC0219F98C219F84D995CA768B8B5D9D4A32525DFECE003675E
-E4BD5D8DFFC11025AF2B468F9207B5B2B42349B98232BAC0759758C1F4A283405815BD7145C93FA0
-8F3ED2826655053A3C2559073D8ACD199DEA2C5BA5F616A2E48548B4370EC73493BA07E197165DCA
-774438B0766867819C1154D1959FE6E01E6312E0AB91FC2E2BD240FC8652A2D456A1DE7F34EF372A
-53794D4C4E050BF3CA5B7BD2F1B8DE93B4C8002485CB219AD2D029739FD3C81CC6E78EDF38723576
-1A57143EEDE5CC887F282FECD261F6A25D0A7E154ECDF5DC38E426811BE86AAA458577E5E0C5F0F7
-5AAFA9C41E5D1DC9D91ECD79B514F8CDF7A5F1A189470D35FDF4F9B8788879CCBD91B427822ED658
-389E981E0EE5F7FB87692A3E3E931DF8A1D1573E3B0166204240B7080089A09EF7487C9AEE2D665F
-5A82F94C877FB5B0DC531CEBF1E71C6592CEA2401E4B5122E5091DF03D203DF979B9A6EFBA12E2F6
-B422FDF15D49AC0914D372D21E871DE65CBECD105FD4A3E4714B9CCA5C6803FA39DBB015EA8A88BE
-7913502E562E5B170B87BFC8572DC9DF49AD63694311EF1334444BDF0B4CA3245271C1F7A4D7FAF1
-703E3AA0E1EA8D5C6E821B28707EE0C9B4F22F23796FE87356C58AE2CADC191F4C58E1FB58DA03B4
-5A25AC95DBAE13A293474217BDB214742B9D9D6AF35F70FED2891942EACE3E625E55FFB820543FBB
-250A062D3D395BC0F219ECFE0D76686AC148BC41476A887BC494DDBD396BE200FD3E03CFA12EC9AF
-6B934A283C42AA05589AA6B4A8D16946BB51F50419CABECEAEC5AEF9085C9989289E9B46BAFB6FB2
-782D84DE2B068F91A9744AAB237CEB1BA513E57E4C307108E993C972A3E0A898D5A8D27833155031
-FDB98863C3BE7FEF3004CBAA5CB60A1F2E3EB4D7290FF5FAFA088B1CECCB6CF51A58DAAD998F0839
-6CDFD68F5ABC9C1CCB8F6514107773C69C26873E889D1F79D10E866910E4684186FCD71C965ADF62
-39BA3418B313A27AD632300969B6F284519366ED85E7CD968D64823F8C59B5911A72D0A20EB72B60
-3A61E36F52F256FFCDF706B4560B4DFA5D918FBC530D83A4B3C01BDD3CB4572E24242D141BF9E775
-36693A0407D002E09CDA5B195BF1CCF430AE9824C07928A050D0B460F2704BE8F9E647A4884C4567
-0A81EACF7CC038643EB0FF18A376FF6F32B6FE4F197273327FBBDEC6443A299CAD4B26F7778A99F6
-5A11BDE047153E764039EDB251936AA43DEE50DDFDF8856519056AAFC4C5AE6F2051AF0579A9ACD4
-1D00775D7DBE70022CC263DCA5E0A25B9C7C4F5C418587666B2FE24816B1E0EC92F9074F1403BB83
-AFC3F1D52CA79C387BDEF864366E34C90BE52F7AA09935373A07E4E026224E76F9EC3CB9E7EDE50D
-EFDA48248D61F3CEC880A3B8843306375D9711E58645F3625BDB8E87052DA67F9794EF4AF8DB0BCF
-E00677C3A26907DC651BC838C40EC39E2B5A5DC0DBD345944A6C32226089D63C52490FA10B215AE7
-03CFB663EB8A47793B84CE7364DA1C4E7FCE32DFEF09490121222774915BA59C78C2275F829D15CF
-4D8686B095C38C731B83D48738C25F40B8ADD487C350A2EBE846C3916AE384CB1050F9F5DFE09FCB
-D9129C6270FD86D55A459618FDFA4F907E6B4746196BB717865AB378414029017551161A52E9D24B
-E4F7EED553A927933D4ABC8F25DF607779A717909CB4D810DE8F5762581900E224E4B91598149BA4
-71CF8068ABE8744356B261600BFCC57FB8BE45036CF6571D9B2A95304933BD4F17215F8EF53F8E08
-1AF61FA7F9583C34EB5655CB0ECB82246959F09091F36989EBDD646BEDCA614B9A61AB7696B3FF18
-1058A150FA6EC1BE2EBC7F64357A3FF2A2B0491D2F4E0B970DE5B7788B467CA678039B5EF55C88A3
-84578D427FD2CB16C87B0BF0A3D37CE8ED43E0F049AF2436344D5F47C948C632C94A287509282561
-6C64C5D262FE5B24916FFEE982A69A6CCF888BD01D62EA591EEC51F4B7DDFAFFBEEA93FE08D736C2
-0129E345D06B10246A5F57151C198D407730713F32299638EFBDC01367E23EB59AAD42A83AB41B43
-2DB462652E29813740F4680A5D4BD47B18328FAE6BDF4200CFA4CE3773809B45E8887C9B2E423698
-9F6C48D64F5986F563D9A7538A8716082F81936AEBD0461E6F4BD470436D8B7656F0FDF89108E6DD
-02ABDEF907731D458D690BC608EA9CED09EB1E6E64C0790C7A2378201CE997FFE0317679EE1D4EE9
-F91157449323E53B4ADA8096CD628B5861BF794543A98F2FA2AB54FF0F25A13DAD43DAF9394329B9
-5AA53CA32749FECB0B2BC035DD1EBD53FF9FB5AD8BCE06CD89E5568091C1CC314CFB1D9821D7F9AC
-7C55F55E0A16E39A87D43148201B928F3C42B110FC056189DEF183745F3B637441DE8BD4C3C7EF12
-F4258E306B2877ADAEC63441010750DB4E6269A4C78A0AC01BB3603C386651FE814031CB5D8C1F14
-9EEAFF652A53E57BBD4C8C0CE36A84A319A53BC1E5FD3F1ED1EE72F4C1A9BF264B594062FCAFB22C
-C1FDE3F2E3D3C17DD3F7FE0E15EBD812D550227C06D01127385374A11438ABD50048E17255FCD2BB
-85122A6FB9B7DA9D5E9DE8A747FAE0DA45A1FCEFE92B9E70A5B2CAC668D4D07527A5C1403267D823
-048BE671F725CFC7474B44FC5AAA348420B2D7C23C6CA066666FD6F2208E329878D90CEF1C2E77ED
-22D3BEBB9D547810B189F08920A27E7107F208591A84D463CE2576C70C3DFE6643E4EA93F4E1DAEB
-41D46F0E2F56FC10C69AD5034FC9859D31CF27A3A1EE256C93111F81C11ACF1FC0CE20B90BAC9AA3
-27A5C85A7985B951519FD4B03C40BE637162AF41B2FDA68F0D1E9B7602FE2659D3D75955C579AC51
-DF6A552EB9581AC3F712F083F19B52A6C4F560F36C59CEEB0C996AAF1728A2AA45DCAD79BD7B23AB
-388D5B0B64A2B95154B6259B730B0F4A72C8C7F7CC93C7D64D9D8810D1F63FF8ABD4DB89824E2D26
-4FDEE916C41E299211DB1A53256E1DB5CDD04862F034D9404B73183A99D3D13D642A663F129B6D16
-7095BEB4EAEFD03DF2FF2F0B6B594C1EE90FDB203DA89FACEE23F1BA3901FECC75FE1811BD701259
-343011262B6A0A9707AAA6316BC3C17F787BB80AC8DA5AAC942D90F80C5A3BB59E47EC767244AA95
-C63E50BF809998957936D3BF6ABC24B0A397258F9EB4DC8F65692CB023D9091FB180C69498CD0C08
-BBEBADC84A7E0016E8F8BEA325D924EB0DF82E75D2CC2CCBF039B11934363D4332C5FBC5EC556BE8
-5EE4E707CC2753CCC43D2ED50558E51A104221C9323CDCB0199B7B83454DE3FDC810D0F362C0299F
-5DD981B31D8E3DDA284FEF9DC8F9C8DE138D3065437A7FE8C30572AD06D62E8527AD37AE39AAB0B2
-25F76A25F6C6505241ED73BA494CF923E919F688DDEBF193E188F8C4C154F21631080763B4D091E8
-AD1D2FD6649E0CD9360E8D1A67A5B5FAFC67547CA31C95A5EA8D4EB5D68B9F6D6532DB9B54584735
-9558542A2AE58C09F3BD2918EFBE1699E9C8F2C2A11EA4D224C726D2ACD4A8D8ABAEDC6588CF2AE5
-66528B94F55B823A2A1F7BE19000F3E7579D094E047075DF18C8C868760295533B26EB3ED90635B1
-29C17ACA679C3E88B06998CE5A7A2544B700229F5A6A504BD3E45B276471959C8A3F81917A534287
-39B5EF9E3D463B3BA7318448E2A3E79520D2D245A2A72F31FF7070B6E4624E3A5E216BD103640C8D
-F387E49D732529C611F8B971073F17EBD2F6EB18F9B74A67E1997926DF178D4C9EDED435B9682F1A
-279C81BB9F60DAFE125845A2FF3B02979E5481C78A45C479BEFB9FEF3CE2BA9BC46C77B50B03E48D
-A6D17B76F06F3AD118371ADC69E178C52B5FB4B261C9311874ED07DD6D5B3226A005FDD7A6D53848
-09E7063F036CDEA41619122635E835D2D74CBB6AA9B38CAA4D819C26E95115FE0DBAB4198FC5838F
-2C91B7A87B07D734C6D4F4F83444C1E90AA9BFC908A2BAC4B3DEF9157AFCA5248F2DA31CA87BD363
-AC25E9E77F741D4B2C6E02F04987A6F49D30E9038CEFC41BA172DD675AED8B392164411144E5B738
-F3210B0E66B17A13CB9631C33D44484E792A7C082DD0A5382F34C5637653261B1EB6D2035B08B4D9
-1FA9AB770CAF40A103629511F7B43F2743D7E583433DECFB19C21FD4FD0AFCC22A4119E77C87BFE6
-FE50068B22479015BE5A9F06BEAB4D37412E062A45E0CBCD7BB39FEE747E96306F79FC4F2E8942DF
-5D9DA0E55AACCDA547DA19D30B8404FA121298B44C9CCE198C708C69A8D6BF17591C5C50D3FC5BE6
-961F7ABA8F366DAE957A1C3730DA4A5B4F035A9274675EE3BBF0CA8CE9D8349F50CABB1C3EA4948A
-BE6F9F143592F1EA95404E6909A909168E3279A957AE1924245C356331A75E7008BEE92BEAA304BA
-40B7C3F48F74D9018B3247DF50EBD7CE541DA48ECCB1B0BE51A455C3C13C279D4D8676078C3EBE43
-08748D52C9B041D3E7244C745B1F2F742D010A9E60695F3EC4FDC1050AC082B905D6A57E8F407A3B
-472F731011A5798965B7B1A307E252FE02C8F79CEEDDEB6E165F1A94D7FFF18DDBDF79477F14E9E9
-3981ABD200FE7771B29D1D2D120EE79D28B9543818527039AC74085EAFF241B56D08220C958B5D9C
-87C0C04A14D52AFD475B542D391BC54FF33DEF8D9484AFF6873BEED32DDA4B371112B523B6CE22B4
-0D1B416B64C9370F1CDF2C548F4CCBE9E12E21C36CC3EA52DA232DCFB65F66B22B5E2EC04852510D
-5E264EE939BB67AEC4764B87062AEB7F680B40BCEE04AD45C7519EB3B6199C9E0E332661463647F2
-FB7EDF303EFEF84891CEBCF0FAC5F723A9D0476C3F8C092604C87FC69C7A90F4D64AE45A478EE8BA
-2DF50FB93F55A3546123F0B0E2C1C40C98EAAE9F0F26B8F80FFE6E6B94B7E27D2884D58B8A119662
-2DF6BE608C5569D7864BB756DF2EDD184B90812B44ED4A32D001C31383A40AEEE9743651F7950846
-15C48E402DBC01C818D477EAC0347795CB2792E9C11E8FD4A02E194EED1C919D4598FEC003B6D9A8
-A0BC7D456047A1C0579453FC1D7CB2D158D466939A23D7A7B8ABED7E2777EC7487973E73F2266D9C
-250CE30729E3C5223AD93B9AE8443B35711E446A3DC660123ED45CE1942A1A2AD0610467E081CE2C
-8B92A6C82F0B17B5D2429E99F1A6268072C6B5AAAA6EB6283A872C54D3694CD825EB2926E57DBBC7
-C1663075E687A144E4D61C225781D80FCAE1497B442342B4A3F1CD6BDB50E31791CC3928C30835FE
-F845B6BE5E2D7E3F2F5F085AA3FAEB45CAD0D76BCBB1ED859A9CEBB9F7457036F0BC3F195CB1A98C
-9C8648F6583CDBB23894BC719D68C2DBD8003B10D08C8CAA40BCE784D7BFB4EEC9EA5359AC056E57
-B8B0F2EBCB1F4CE40C87FC7861180133E0CB6CE2FC4FE690756D327A2B5AE063E3021C0C0BD420D0
-56F0B941E6B36088A55BA11D0C35FD0132D5F48E5D9673572347171B4328D4807B972831C0D74CFF
-A5638C145B89C989E6EC942148207D6DB82257585958034D9F9D4221C7C9F7013790DBD130F277E0
-BC88BB179DD09E27062379ED06F25EEA8B7FB33C35861A0034776E3813D2E9E5C10E227CC569AB36
-CB2D9DF2E7B7B44758F9DC4FFAD7A24AC7E9F47AA850C221048C3CB35A37CE8EA75632AE65FE3212
-175146FECD6334AE3D3C5F492F067F795E1E8FF386BA198CB74F0BB4DC0000DA383BC4CC3F070DE1
-7721431988D69C8B1A5AFDCCC83C22E16A87E01C6D3E79DC7AFA3DB0371B0866EFB8B6F88900472A
-FEF1C4A878243C52D4E02E82658979731C841C489A6B97E271C4C93800EC7D91F93EB9B9C659A554
-E1FCE42A5EC65AC39190EF4B66DEAF6FC0569A000A9E1495F42F706FBEA4D32EB7EF11A648910259
-6A65CF899C2F322F5679C6D123469192A9BF1A7F1F2C81C554ADB97BD19ADB746A4F81A4D5559E60
-AB94C483DBABF6CE2F28CDB412D50FF3FCFA3B3DAAACC6A83CFED910CCB3B8D2C19590AFF4D75303
-4A6CE7F4156896A13808E0DFEAC547E69D3C886691728E4A35ACD575B40D721E8FCC5385A2EB28D7
-08101DC50811529528F5CB0C009BA7E3C88468E37768FB0D83895AB54DB2DD5426562AF9D8AF304B
-F6EDA54E9C92643DF926F5C3578269750120302A37CB140A18BA56BA01108D4ACACE8FEAE640A6C6
-958EF156B588ADB0EA5F3B0F37BBA12B7BCB221C811415387B024B7076FA4403A3AD6EBB5D9C26EF
-EBDB7ADE7C60B444AB9F90EA493B658B7767AE2BE649BDBB3FE85F460F1ED137C61BD95F7CD3D8B0
-15CE45138538930AB62AA0E54B4CE1A5EC5FEC0A2B28B345B67089A4E4AE14D2E1F5A9C8848DA688
-CA298F93860649EC3AAFEF3E820D86988C8E3E5A4D4BB937791827994AA3E81D0BB3EE115EC36D5F
-B9A392D09E79AF514D11C7B3A03C9F9C13355CE79E119A19177FFDCA34704D38118A8976D1EE5AA0
-2D14FEB1414419F5E85244ADC5C0A765A522EEF36170064BB19FEE3B5F7B441E4DB967DAE0BAC2C4
-8FC6A836E0EF5A69F073BEE1699F55E9C757EBD6FD8B514E2B49D6333815B7DBD1E0694695FCA3D2
-1320A0C4B852D9706DADD8369A95FDD917328BE93DD33818954DBD2C212D2CA81560ED5BC284EB04
-7A5F389E24E43F4FA8C97FECF46589FA7341076555CF55B1C21B28E0C1CBB00AB8B6F67472F27BC0
-D11148F407824B0159B5188D4BB7386FBDBF1C0FAF34721B7BCB5C0FCB7C4010DCB6A1284E9D7883
-9E3C2111A05D29AB7997073B590A81C6168020F1D48951BC7D8476D5BA593F4F23CAC1F9BB0E091E
-84B4E99E5C584D1370DD12DEE8DF16AF8BC6B7B23E2FEABDB7F32779AF8E2B5094A6E9B7A7225F24
-C43A8E5D2B977E1E19E633C26771E23017ED233DBB02C64F8CF03992C6484528D0C8464B46F24F9E
-8380F385D5D01B8893C67FC103498983CF939432AA380CA576D09030CD52FD99BDC3BE16C7204CDC
-3365BF76294A83A1FC14A236F5FE5321904E779B13232A76F8FE521F425562678436359C2461BEA5
-AB27209541F557AE2AA60009C9CA0A9FC7898C14306CE35A50017BADEFDECBBF94EE2905220706DC
-806409EF87DB1D73EAB0698AD2DB72CDCDB293E7FB13C94D9FC87E74502E6927A212F0D7D2F2D194
-64F7A66AC07872E18CB1DDE8F11835DCBC5C4EF039333FFFC0FC1456DAADE7DAE3EC2EE0D3415B0C
-ABB69FC5006F4D14A4EE1A5CA99AD4D5E629C0DD1E0F097B5B93DE2DD001A8C418234C9C45E8C13D
-1AE04E9466DAB8CF1ECB88A4E059C111A6468D2DABB90DA79C7C79E94DB28F6968B1A632F8C57D9E
-565FF91C6916026FFAC0661856B9FB8DE9C81661816221B1FC159CFEF1751E7E403F5F2CE32529DD
-540792FC17A12A3DCD7C50D38EEAADBD10ADBF5D8A82442AA900CE6150EB7A4639DD9FB6E385B2FD
-093493DCCD9014B23EB172E21AA89643A6CAD1093343D85D81261972DE0ACB16A4C6B5F0BE4C978B
-FA12D3CAF0134F9EA49F6E9687C8F99A456745EA252F0BA9968C7F9586E3DD841AA92DC7705BDD68
-2DAE41518A09DF0E209F321D7FA3417202F4BA76A984DA3ADDBC58136885362F02F0A24EBC439B3D
-BBDACFFD8498EBD29F88F016B1FEABC10785438EAC860B554525F3266097A675299AA0967BD3B7A0
-EEEE3FC578D1BE99D3533BD91571AED904BFC9DA1A1451FDC5406E1CD614E0C7FBC733563CD6CE6C
-C31E9237CA153F1F0411114361D731636BCF98555ABF12848AD109371A42B63675A4130B81E97C2A
-2EE2BB5D8FAE2640156001AF0F55D9D5DF8FF23C8AEFE14F120000F14149A36E5C94CD9081DEC277
-C2C34870D05011F99D48B0875A5FF542F067F7E9880109F586BCF2B50522A1F23ECE44349E539E70
-F84E207DC9BEC7CDF856A046F1A03226AA41F541719AD1AF88FF211E57DD0C1275DD0B7B47440DA0
-89B98C6EE92A7D94700B83CEBE19EAEDD8A615F6587587BA8BBA3CE3AA5E8EAFB1FB0F486BE3609B
-169EFB178A4292F4C0378AFE5D24EED1CAAB514DDC66C696D8E37F294A6579131DDF5488E9436609
-ACD750C3DB0A940C84FE022B22ADC2676F62E91E8F891225F891FBA537679B24547BBBF35F04915D
-20B11739F620D18B5B216921D222F15044368569AA302980B9225BB839F494588481B94B0C724352
-B2DF600A22B062561D86CB8F81514FBDAA4F8A043A0265F992FAB71FC9124A45B8475E1EF3DF6B6D
-E35CF329777D45F08325E8505EC0D979F542807AE77E57E453525F23BC59A50740371EFA98678AEE
-6C425374AEB745B99DDB5D8D908FDB551FBC0DB15832107BBECC4E11A1A8DEC69358A574A2ED46CC
-31D564549EFF23102D92BFDCBB2BB985F78F36033E34F59C0EBAFA3BDD71338736464CEFDBA91398
-33995EDA4207BFD4A9867D32E867FBEB7DE60D132803EF9347CB17BD91315484EF6570892297DD8B
-7D966103339535E28A00CB1EECA4A9775F60A9F5FC9BD8B06D78FE8E6318C31DA2E847E3F9CA587C
-B01AE2BA0A2EBDE308314413F4F230A758184ED60D4F71F6CEC22A93A01B6C54E0449A3860FCA895
-4A347B7588329A80974ECBECDA1070FBC055666375229F13DD995E99265DF870BC8B8CC6347FADBC
-1A6AF64599271A475B9123493D46BEC41289BEEB67EB97A8DED7A9C9730D37C65164CFBDC22E5CA5
-89D2E7954C7136EF4E084C43A6C7F361A3E96989239BDDB9A593CC2A80BA16DE9EE90E95CD39393C
-212AB22EECB677FD36D34DEB46C4AD0D21BF7E6D7CBD0C8083842FCD87B18FEA7CECF939987E99BA
-34C214E44DD84C176C9CC5A4CEA76D380CB316BB4EF9DE73D73B4AFD4ADB54451591DEF86621D138
-D5A0A29441502BF6C2ADE671CEC3CB5CAB903A657EB2D70C943F976C110E46C5D9D29BC00A875F27
-38E5D22496A43E096E009C5D3CB724B4CABB32838DBE527F83B18CB457E57B092C302EE557FD4F00
-DB9C56E66C9FDF4EC9FFAAB85F60D02BA79694FABA476A199A0331C30A78A92E10417BA236E23364
-8174C826331DC1BAB87C5F95027846130C6A2B4027930EBF9A97BA1B039D386FC51C302648E25980
-212F6A582CDE2778C677A01FBFB3C5D1B8A374ADAF6ADBF7DC94075F25ED66D440B3922C5F255FB2
-3FD8F6E21EA65B1D93BB225684B50F11310E242B087575973345B229BA62C1E2C35BDAEC04D10148
-F5B2F3BCF7399BDFDF1F3F79119714AEA697245BC647316EA157484ECB951BE367234FD02E8B1F09
-1AAC3D29BF282DFF4011BC0CBA8E55234D943DB3017CC7A766720BBC29B2D097A956C0F1067177F0
-12D42ADCB473CDE8D1BA35B4030757FA1D8211989DF3BD22CE5D501C21EF8708FB3449DF47D88650
-9FF7B59B76C0DBAE443F336FEE2D615D7EED1C284F14335BC8A26BF4621E10DE9611FB2F1DBD52E4
-B7565D8C65B54EA36D508BCF0C578A49A2665227CDE1F9768EFE847F9D94F1BBB7DB83701C232198
-5C7283D47B2E40B27A268428AAEFE75F6B2F8764A8494E5827573758CB9CA46FA93208836BCCC8B5
-564A69F5AD882052AF1C1417C3FA7F580569528682C77080F3688B65E7FC24D2A3AEB61574B4A321
-5927281544DDD7A6EE0A3E9388F8F631CE7251724DF70726E5912DDCCC8C652DD6C9608F8462303D
-867F589DE0F2F71711B35142EE6EF93B64D6326C4DD7DC83278E057100EE772082E6BA368ED91A55
-53ECFE2293A481E42F83BC8F9148C70EACE91F7B7D9CB8A72415BDB3AF66F68EA733A17ABE9DB005
-3BF148629132969589F38D30EABFA96A01FAC72650B5A6FF3935670198A1EA33810A9B11E330EB8B
-451F24F93544263436F669AB5A90A53B16CCEEAC36B1445574EFA7E802DE73522BE725E68704822C
-B7D3912717333367895BBFBE06966A5CC653AAB5E9B3596702086BF0010085B900711932A95ACF15
-CA4DC45A754EA334E9EB84D6FC8E3FC4F897456BED64BB93B593549FF0D5352275D8E417172A6664
-C5E0ECED1019494A7ED49AB0B965BEC1A82E5873766BB38D7D856049CCE2FCA65AAF61E961B60634
-E2A69EF059754C9D8163D87F928C222772D070D83FEC6FA5AC734AF65E40BFDE521F7D9CB1650FDF
-64754BFF21EA3FF0AF7611A93D525EC9B28C51AFECB04E7FC8323DD6C9B0D8539A34FC3CD8CEB795
-8E8EBBFED4313C77ED469C199552A9FF70BA5423B03B6148D4EAAE17B71C5B39DC436AC53D6BA8A7
-AD81AA8B02335A8B2B11E9F4FA913159A725B8AB60F52F1A2EA50EAF4D56656E615BF382CC68A690
-BF83DFF24FE986570ADC0290ED1A37C1C2AD469CE789E0EA0BB5CE01020100E729721AF3B5BADD33
-A2DAA6C33EB8F9064F5292F715F820B4BBFDD56F76D42E7A1A068C1CBDCE4640082F6E7D582D1939
-990CE6EE8D270015A2C461798B37DCB5798EE9F7512168B76D26C28BE4A49A1BF96C89D235F21A1D
-B6A96E5DA474D0B19B808D13D7A11BF39EA8647499C410ED9894A1ADF33D41B6FC2E614D8087F4C8
-4E437B136F3CB32DB8393C49177A0675A0C9E7EECEF448A97AFDBE840FA01FC7E5F2E8FECEDC1884
-84C312E8635CD79195475DDBFDD4D38D5A0246DE2C7F21608F8D2C0DA1371D302E941572E5792A3C
-F4E51A33228B93A814D03FD4FC223C314CF3714BB3A34BD4F7ED6348577FEED9DEB082C4049E57B5
-D3CDB7F26629E9F3BA36893E09E3C7463D02A22D7056BE76B87763260E46E48BB832B7EE13F8DC05
-37EC8E81E9BDFEAD8C27EBDF1AD706933EFD11131E12814F236EBB01BE85B7F1B2D627413B324918
-D247604F56EC128909873FEC3857028BEF76A3494364C2A7002D104D486236C30B48E2B75D851C34
-EA50BA7FFEB4E19190898AE21768C157C0CAC628A2181A32796FBC1A7271D2473CD88E5395DDBDB1
-FC3AA8DF0F3D588637F19A8B833AFDEB5F655A8838EECD684E2315B72C75CEEFBCEF94344ACE8D6A
-DBE355008EC72FE7CEEAB01363A895F4E73F867639BE0A0BE67333848816B05B419221BE8F9066C3
-62C23FE85B7F392930BFE4C12B9526FF2FDEC38F23A159ED61A0718E7115C24597D849FA76369153
-54A40C965D4D72EC94DA61A03766AB39AAB684E134FD1407A5B1B19BFEBA52AA0DA5D99CBE5C82DB
-AA663711E6DEBA180E1D4A39C320516A4350D296BC19BF1BE054859A0889C7E9727A021F3176FE62
-0FB0C837E4141FECE531A950C03D319E3255703220B7185BD20FE5DBA673F8129AB211EFCF36EE39
-4C7E00EB0876624BC840FA86E58B2F584754CB6BFDFD76810E300741EBE4544E5AC17413ADEB21C6
-2F66CA4F075C32381796BA709782DE34A675B717A2C7F6D88104CB924FDE5DF775B4F0B68E0E2E5C
-2F788BBDEAF06D8E1FC2105CCBBD5827C0B03FD6CD64F0D073F3192D5F94839644E5EC6C5185BADC
-F04112A65F49A8C83174A9AE958E76A2F5AF469E8B76C833782C5FFB8BD7B1BBBB3EA0CB7C9786C3
-BE2ADE5E7AFA8C8F20892659A59BC421E28845A108E34EE17864042EF587A6D67DECDFB3F510EB40
-D2229585347A0035670FCC76C2837A4E4D68304FE113C539B35C1F0234B5079B8E32934546982978
-C5E4DF955A454EA263C3CA5D7101F31A318D82A3F9FCB5A8AFD7A65209663B0FC9DA400B26F285EF
-46D0E1EAF8ACB1F1CB805E3986D04BC585073FC64895E4DAE1CCB749BB439CB32EA91176D5C39C36
-50D10AFB9C9884D5FB90183424CEE67EF2175D01D2478D67511EC9F54F88763C152697B06D948BED
-49240096EEE3D06AB4575E8E8B2CB8263B5BCF4FA1608720F52B675309833071879DF52C3EC2871D
-20F398B5CAC8F8A4D41D0F1D47584DD90DCDAEA4A1CF160C4B3BF1AAB890B5CEB6CB3488672AA68F
-BD938281DBC1D8BCFE92FBF514DA5358443CB6E0147254E91B38CE6787B2BB0DEDD2D38F5938737A
-977B5EA42892520C58F8FBB53C994B57382379E9490F0D6970B980E1BDF8CF9F4C3C5E0A18F66E86
-EE93FFE7FE546DE50F41364BCB3721B637072571FA1779F1D672FAD260C16D7F13CBDF3E4376E7FF
-56D2A710AC5AC35FCBDBCE2C9C17E523BBE6218617B13C1FA6679B308979AE7C61DA6E68369324C6
-CBC7DDEC364E5A86707266C0B459EE7B2C03FE584E529BFFDCE98C90A2F3D9305AA74D3ED8430DBF
-3A49FE2ECFD9C4BC9FEFD22618FE9C8A973AD072AB6F713E4DF02DCDA7AC5359B2D652013E131B76
-B3ED6C75FD53BA58D862846264627F6B9E70D8800F6D9B32242B747A67BB2B45675840D34F852AA8
-062FA6B01E31ED24DAE02F6CF788A17F7B9368175195DB0072259CCE0FFB2C1035C1D26E1777CCA3
-D56A827C3242069E76D6DD69B653768614B9ACFF16567FEA61508D51454BC02F6C60F755AEF6AFAE
-3536BBFA1823F8E1A53C41124DE983E51CEC92AEF4F99785D554488A51C20885346D1F761DA79017
-940A0C557D93F1DB6B3D00FFD61D08E96FF3AFCE5FEDF545CC9F47A2B1BB26713431D6D1E47FD6BD
-6E3C668B0368241F0EBB5FA9C991DF79890E52E83A3675EE699B61BAF869DE91F67278F510061C6F
-E41DE2D883F48CD0E068E2A652B244128D82E5CD52F35F210DDAE3054691ED55A7D99088AAE8FB04
-F525C2084AC09F5EDF80A4EFAFE981F74C0DE9D194320709B3464F3FF2C0F6AAEA6D973D9C323F53
-DE3D741F698FBF01036716BBD62957CB32CD81D3A2674560FFBC5BDC5C6E4F547E589AD0B1CFE14F
-5E17FED1C4A8ABE4E67CCF8A49F32C4C6044F1431E1CC382E7758722A6D0DF9ED23E51F8AD14D11D
-7B6428E27443715EBA4E9C05D6F238378F9498AEF0E7EE4FE6856622CC8E6ED141EE5F109E343CB6
-695C4BE1E0F66601C27975983BF557C04ACFC19227A1AD7E6C44C00529FC7EDD7F886D24B7E029B9
-C395260088BBFB96972199A7B32796D27257DE83A7402291C14FECDF7998C5C96B1EDADE0280F856
-8A8F5007852EED303969180B3329917973C2D32C080C9765B6BAB0673BC7ECFDBBFBEA980C263843
-39B7F1052591D91667D4FEE413AFC23DE2D4B9DA742F4269C6C939F5FC32A38040730A018155AD73
-3F231E4D5B9D01C03A58EAE7B5F590CCFAF25EDC8552CFC8D95C60EBAE1837D7A97CA137E9D4A4BD
-2CD34AEFD68D64B3F4F62326AC429921D7FB3C235184FE0899690A0B775F1A566EC29D5830D32372
-6526F7E7F5AFDD71B77E07613DDC4FC63EDF49051AEB59E6337AC0A4B6DD872E776C9CD0CCB86130
-5322D816732124F5978A86C186BF0A0F88E733CE38E4D7C1BA5378C5629B1EFC97806059990ED42C
-5CD183BAD7E94070E4058569DA2E51831FFE0D080301AEAB4350BA290318AEC582C78D05DD92E5AF
-B4424EA808629BC972E68F4FF2489C245593F07555CA6A2B25964794CF31CBD3AE5C229AB9B8C298
-06C01D116EBD0FF0F159ED2D3D7DFC73EAB4910BFF5B0B0B587CD9EA6E6FC45D63C09766224D8346
-1F0588140B258B1729F70BAE7962189B1554483392988CF230AF4077193E53330519394DD99BA135
-6D4730AB221DC6A66019BFAE564893DDAD7B177DADD16ADD21D396CFA6C3DC818052E2F71149FD59
-4A16DE0C2FFDD366C99B486C55A6E991E4D22CCB15843F0C3363676AF2F5B2D1B7EF66CCF2F12DC5
-0D63776BFFB058D70A9C76DCE96C754872D72C82A0C33F90D49C935402CDD26B6D743B1F43BED5D8
-B539424849C1495DAE73044E885A7D0F307F1816DF6244A6F2D97BFD4E200E93F69B08AF39EA21E6
-E347A47CEEBF803F73B978ADBFCF056789BB8E6E2563DE87DD9A8C877157B934102DCEDAC54D487A
-1BB2694F0034093C48F10A17D32E2BDD0C723CAF59ADDD1BE373AF8C9BEB4415AA5AF36310C31F24
-354A53C0B962573148BEF91D994FE3F3D8450DD4D686725799F53C373A0A3E3C060C2E1A3E800504
-9F26D716E1F381B9F83125E4683264A07E2D8938F605978E2513DD2050B3D8A1012797CBA8961632
-BED260916338A812AE751C7B657E086A0C7DDCD3BFDDFF3E48B84751925736D1310C4910FC114387
-F3ED7FE163F91895EBF55FCB425CEF5729D99BD8F2C072E36C310523E75CD8E5DE49C031C4263410
-9D56E91A46C8C8E89FD92012A00C33D0DEC52597B5C6933291A7BDC5CEDA95DCDA5600F9AE1C8250
-54E7EE1067458CCB66610704C58E4A4FC0CB5FC933D0322A716B2CD430A3AD48DAB3D4CBE9D23F2D
-092368CFC4E1F5495C133A92942EC62118D45C17723646E69407B4A89DCDFD2AB3FFC099A21D9D29
-741D68270629AA3A414FE58658DC9170C247B6E23F35C4BC5FF83009F462F2EEF4DBAC5FD158A658
-57F9B6DC1F5192DFB169DCB65621CAB2F1B07BD22F4155A8E9E2B6388D430FDE5EC1C834D22EA035
-C52E1E34482EADC36B4CAE902AAE89A7284E62B3C84B608D6BD05F75BC31310B2DD3B2C08A00E073
-7F104F03A41989D5F6B9A2C38B22F1D1803EE5D7A4D8DE44E4ABD496A1DE0C0E12C4BC96D0122846
-3F0EA9CE9509FEE987139F3DD3F9D0DF4313F555BE85433718F6D05F197C41A9D9C7A8B0D2740196
-82D49F58DD5F66B12A6520D9F226D1DF1F1B65CDFA261F980CA25A92645B86B64606293F8BFDE364
-C47D2AF2C709BBE77A70A5712F2CC26F3D66F5BE2C307A48E6F887F681D30121E32BBD87271B5DC4
-615D28C309F15AD263FB37424E56DDA6E17B998B45BE6C7FC6C28E3394A8764C9EB2DF5C06626593
-B5C665D550D4600172791CD208AE9F37BC082B0B242B0A504B751B18F4D7495172B697EE217834A8
-A4FB7CC16D6F9E8BB400BE8AEB0850960283DCE725249FCC4DE97D9886745AB6066C3E2F64DD8AB7
-9AA11667F11188D7965DC11EB760B772E282DBF13249F31986AC6898FEBFE23E3E8B8D2C33E00EA6
-FC493850ECB2E6D831D1EFCA3C2EC8EE2E394599091ED58BEDE97D7A43B6F739EB0F845EAC1DF6B1
-EBFE876009CC5D804B15ED4B56761B3CE1AF59C07B49DC798A44532297AD73D5101ED47F36A3678F
-818297CC27F6AAA2AACCC9AA9B6F5459911D8C56CF499E390AE607F3790450B2B9C9BE0F006EDA0C
-715B5CA0481734CFB0597478E7602B0D2C1E4F78F03C68C17C70E4B42D7D2D3C95CF40F73488B371
-8E2CB05A549944D86944D78724E266C3319AF89AE430E777E95F0D792B1C654306E421F3D63A26B2
-1E74B6E8B21B2E2B9DC596D013CDA16D08E65E8F24A84B12B2BADC653E6E1110DE2E709C1C1BED13
-707B70A421B384F20CA7A9A9D20324DD383F28B2D3C7A9C53F5D4C6B7C378D26DF11CF55238BE1B2
-4FA70DCC178DAD3D35670FE4919085EB1CD905971D76A368FDFCF9D2F0A23739851A3A6D2E02D65D
-54DEE69ED5D81315D3EA5E356F94EF256DD267FD1E1A9EDC9CD63E743F299BCC4A4506233B8DD765
-2CA067F741603F93250C087D368F9E9CC4CC1A6DED567487C05BAA992B0056A77F630A72008E3946
-15A9DB24FE56A956650EC9DE90A6C2259189440247970541CA198748928215C0E132A81AA13208D8
-63C1FE817F70CA573B54577D10B73100AF8EA088208A44FB92ACA314AE5879706180788C17BB1D0B
-81B6B95A1C4E0F9EA66F9B39BFE12444A6446691A7BDB03E0F03D9F07A10A7598F2166F108529F34
-CD90E601FFED3479ABCFCBDE8F051C348E48C61D95B00C59EA1287423F05666C3D36288844067E83
-E14F6B5210842C742B89F13ACD126B9FC50ABE2CA7D7ED513D43B6AC7F41EEDA416BFFFCC5C844AB
-2D23D4DC09B2D510504CE98D02E72020D9E669DDAA344C63A1B75632F912A1C0DA3885DA4AF7E243
-E4A4C6493D6595BB6D56B0359106957259E59E336BAAF35BD1CEC5CDE735272EBCCAE8D4904AEBD2
-B32610C6FEA2B69941D6542ECB44D71092A3CF067708A3D087AE99FF29671AB7DD8758759B971A08
-AE1BAD78270D2FBEE37AA2DCB119D72F6C7B0C8509018A70D0B0BE2C6830EF8E0B24B1CE1141EF87
-3A4D7DCC501F808BFD94E4DC0F2915AA023076BCC8006490A43685EA25AAFC187302EBDE7FE1965A
-04A5A398985D29F08E085127B56B057334D88EB638A4DDE64AFD204974C3939536B1B66A54B4DB81
-151853915718F70813F096CC1B0EA25E363B49264C2AD17158A4489F91453FBEDBDE15D7B74D7F98
-E81DF23251785D58295BA297F295AA6248A912CDD4F1111E6B628EECBB5139709E76EA4AB743CEC8
-26621D08E6BC64691CC90B3C3C1778931A28D3D5B1E20E96C643316613FC487C9B604C43463FA453
-3BCA1236286E6F5A6EEB2F1D9C34BDDE4595495A365F88055D9268541CF1654ACF478D384A5496A8
-772EA1402751A093582A6625A0A44816B5FDBE166835D598644296249B92CC90AA3FD6445C9A19BF
-27F59CB0616C7306070F33C7DF4E1DE64AC8C5BB2FFAC1EF2B1B30E5A0275E6004CF64BBE2C6710E
-DCFC3AA4ADD60106334708862FFA6652825BC84842736E47AE6917180365C75B27505EED3C6108E9
-898A780E20C3F606A860229AC46D0471ACA0187D6D539A1B8820F620F72B41AD1D3BF3834BF48CA2
-AFEA8BF535AF74C4562DEADCB63D2F5C7585722B77C989342D190FF926C8A5263B4F25286F99CF6F
-C62EE6E2AD61C82B29D82468AC10FD27764278E5558CE8B41BA111CB2F040914451A480C93084237
-CAC8F66BB7C6689F340B8ABF0150E06D5B1177278A4C08742FE22F42C28680F190900344ADFA486D
-59718C25D37275BCE4DF981AAC35D2C7E85C72A0188B8953CFA516FD545AEE0BF4B8BA301CFDE214
-4241FBDF3D204E3D2823301572E23F204C97305A82401660E12926EE7BA6EA1A81FF5C007933AFC7
-3266FAC4C134ED818A48E7DA01C71A46335C845F9DA5E960B25339D551582B375814148D94CFB781
-FC56093827B78578A73D4FF67B6B87F40CFA5E3F4325D9108CDB64BD06427B88C84105187316FA29
-90B4E3E8EDB6C78ABF164F4A9717D523794B2FE772A04DABBE688CCA977090979B5F47CEB90A1DBC
-167D305EAB231C9F4260C4AD10889CB785169902FC0BED78DA15B8417453BB65856EA0BEA5245BA0
-573F623D215F6C0CF801851C305B355D26B52B0B343645FE25C78A3526841EDA480919A1BBE5F56F
-C10ABEAA3E1FCCA7C43EE560F067F1AA2AFD642F769D1ACE8E2AAAF38850F0D757CD808C921D716E
-96FBC07DA7860DFA70CEAE2888C0ED3CBF9586443532B68DAED9A926655C157A416C383A53D8F283
-2A4E67468112A09ADC837ED8EC95F70852921F50D4417239FC42EE3624CA97F682745CC5E76CC7C6
-7BD99F2180F8C0B7FB49539C8CC474C25C0DDE491671FF329E51BCFA779346D4686835A3AD6633FC
-B5E0F67E0CA9CED8F215BEF4D240453EB2EDD6ADB22278AA5B985FA140C9834D38753DF2014F8C0E
-E6DAD19E8FC54C03C1F6CB0F858986691D99592562CAD95FA0A5B2ABE4A8B54B457D42E8C33A2D19
-51C0419A72FB94FDA78ECD92BD2A1416459E9DECA9469F35E4C47DB531726DEE8F203D7042EDB32F
-025DF3D582547BB1D45F7A5B70D317DF4EBB16E36B0D798E0932FD2A85B04FD67143E4B287A50416
-2C1F5A037CCD780088C5476385AF8168E12D97D44B0630621759173C8F1E3006B5B1C6D7138B7EEF
-C3CC5F54E24B2C3CA7B41AACFD25E554880AAF406EA4C3C6E21D3B550B040FB1952598A7E8E6488F
-E38288B2AEB6C4718338598A2BFE4D2B9D14C65732DA304C16FF3E1F8F03046EF095B65FD609DA87
-EC24A69278BFE65C905CD0329F6A486B8525B7EEA4F7AE56C2633CD83543269E8ACD6D71F500D82F
-DFBDE7F7F7B1AEE67328549232E26CA55085B6E84D9E2E7F74068F93A90C4654F2F396E57C5F76F7
-E61CBBE523DBFBA6E76638BBA3064DA025A79E3A294FE7F1CC28A3B4C57DD6FDC48E541A85534B25
-E1BC11B4F78019457239EAEFD4BE9007D205F1D985F389DB22400B279C10948551A6B4A17FBDA0FF
-C9428B18B43DC76EFB15FC2182216F1B60B4E344A03AD6C00F141EF99F89F24C819C3E32877A927D
-84C2D006940F39CA8B71E5951673EA9BFD1749923219DE38929ECAA9CE43B06CFA7DA1BBEDFDA56C
-61FF6C24F40E59B13870D5FDEB82D981154FAE5D6D5152DE69339359461A41A9713B6BBE47E868C9
-33CD74C75DB71D13BAE4DEC85E02FAA14EAD6C0A253B16C79514657B15E68CCFF9EE6AA385CFF9E2
-C53D9AE40F85C793E4E8FF50B2B7420F4FE69807BC5F37C3E300E6B3C3549D1D3246A2E70F091054
-1135BDF805E0A698E236B6496702D061241687B7B8D1A0E517DF0476DA09D89667A7AB375FD2672D
-CBAB8124E511502DDBD08BA04D941DF1CEBDCCF7ED48405CBCC33774A68C5212FC6F132641FF413C
-984F8B43BDFD7B1A2A3435F15AF07EF4970D3E4A0BB947C181E9CA27CC14A35BD1BD096875B45873
-8CA244F88C28728B74E25CB8C4FC1095A56CA75E4569AD3082EF194ADD11350DB3B74B96761D4538
-596FF7243B1E1B724716A144106E080D42036444FD472998460CE9ABBD05B42AF9389AC452BDBBA3
-A13A96890025789F16B9D92251FD3B3BEB2C61EDDB370A20456E3BFE5F4039E2557C451C524F8087
-015BAF3FF05F51869FB97512968BDB2B49589C1C7AF1E085250A47657465F480B7023E24C76731AC
-0EAB6704123D77977D3A2C4C56B691346EBE589C619C04515D34F81FC6A17527D5D8319013C5D4FF
-27CC3925E24C99231AC7FB9EAF0BBA482D3B75807AC85D03CD09DE5D9AE0B07B7A813F0449786500
-0AE8A7E00080300F0AB8C399057EDDBA273DD2E1B2A0DCEFAD3B332E6D4AC1FFAD846167DFD70E03
-46DAF84AF292D4F424256ED5AC4E104F80697050D50844A708EAC9E7F7784FD01646F3BD0C595CA5
-1EE6BD607D254E78ADDC5E15C3B6AC4940EC865A5C23105B6BE09EA09F2C05D6D76960A843B81EE4
-33977FAAC3CBDA85CDD2F4DB7C28293A77825635992AF8F3B38B4480D9A139B1662345A8ABE1634A
-77496C3F57597D2985E9E54717AB2E99CA35789441BCDDEDE9A9E2106B401D9684ADBEFE40D607F0
-75C179E9CC03E59E65430DB70B441D43DF03F2AA6FF06F224B6E455B01C64FB89EEC9103E48453A9
-749B4D602808C7E408A8903091D85E06AAF635D0D529C3CDD1B8479AC0F4208C284BB678A547F2BD
-77BB17C86D4560434F7AD1937760A6AA55B614CFA9FF8C9C96561AE6C8F2121C4E20237428BC51DF
-2099B6C49E3EFA18E6D439E6E6981E746EBB1DC461259D8EA0F8099C47CCA27B2D982B72C9A07CF2
-1B3C05D6E26E6E286E348B8944078E24809F9C5F3D014B4CBA02533F5621BFBA1F0EDB776C634746
-703C9F73BA89B1960A496420C68F54E5B901A6D733D7ACC79F275FFFB253F389AA480084468BB34D
-A1E797E43B7F6E8CAF5E8C93069A3A2730E57EC39B677BB73E3F07C2055599F7062E53B37A5F0099
-907D2ED87FF7A82C95FBAEB888033BDFD67BA3A6031A4CDC56CB1E4CF5B06B46E16D988BECCEFACB
-9E1C037023D7BF5CCF5D65AA66A17AB361BE7981F132A578F3ABFB97960A6034F052D9D5AFDC0679
-782EC90F240F943A5F9A3D969ED7399254FF67D89DF668F7C56FCEA1FFDCF20481474AC8495D3AF4
-B6D7EE093E369C057F0B70858220693B398ACF8E8143558132E4391405E30A73937C53402E459F4A
-A3539CF7A99A3F51C0307D045DF8B77757E92EA2F51BF0BB4F77D3904DD355665870C2B59F1ED7F8
-4FC71FDD7F0B6C5D3182DB77827CA6A2060D2B8C83C4EA4A432EF43A4D0A952CC6CBBE52A9F0CD66
-1A538973DE41FFE9C5CF55F2506B9EFEE51FBAE5E63BDCF5528499A47C031163C88D3022606784DE
-2F46A9C9235AEE3D4F71D4959B0CFDC5B7E78C8C0A8F9DC99440C2263DBACB343C5C648577F5610B
-50EAB1CF7FD02419EF3941C7CA0B0E64EBAD4B2CB05A0793DBC38F1946D44767BD287F5E9779C611
-CA0DAAA1E7393DBE0683C8D3455CDFEBC0E64B54B737E298DDA605227C0C4BBA87AA3EC7FA6EBAEC
-39E6EF2537D5974391D31739D9FC42983D81AEE44711C823F35F8E2321AC74943871739D2DBE9748
-FE68592263E7713F27E0D49B9B5CB7A4E55DE54E6B800D15856450FFD3AE5F287B12AE4F438B20AE
-9E27E6CAA00F3EAEADBE08432684FDF9931E925544A680182602A3C1997DE5D0630BD5A010535E66
-E1C123013D23966B3545C7431C39B97295BFA4099D14461004C42C85095EEACB9B47C593BC6DB863
-533A8619BAE09095DE8ECA432D4DDD49AA600D277E75DC3F5C6631E2A05382CB007825FADB77438D
-CFA78E252D79B6A196D5164C2FEB85D75ECA25FF80B1D97FE10E87960CA0FC47C41D3A213BF141B4
-8BC3AAA93FA86245064668394665BFD52D12C3BE4CE39EFD8111754398A944C3FD1AFA98EC337BAA
-AF899D35E804CF416AD7FE45FFF13FC6354007501043F98FE8428DE8013901BA6A28711A2CA85A27
-0BB135B72F1D5026E8217581860729E94F2F1878A0E96C59E9F62714FB5F8F25003DFC7347E99007
-8A9A331CB3A6A535BC61866F02513DEB982C4A13ADBFBAC3FF70A7335F40D5489E48E5EDEDEF1619
-1973D932479C62183B0E25EE8C4F76D4F1AE45DAEA4A12AEDD9EF81D248E8D19F8C8A5BECDD1EA1E
-98783EB7A38149170851B1942C96C53DE06DEF80913BFC04E539EC67C110498D15B78268853E5C72
-F485F8A27B768569E54241F6115875E2973292CF48FF91D45EBED627AE9F0766D22201B20AFDD40E
-5B17CF337F2999E0BD15B86E46EB3C18FC12B7DCADCF9DD50C6C7E3F37E615A892DB3F57E250A072
-A49F7277DD6A2C8042698233D35A699B17ECA5DBDA6D250ED4A16FCC893BF0DC2E33FB1EBD7DEDEA
-3C1C39603C8B7E1A5A833A8FCDD5570BD088749BB232615366687962C7E56ED089CD7B092505CAFA
-5A80F503C4CF337F07ADF0D106937E25670839D491F7BFF7A523DB609D126328C16113ECBCBF9C40
-04904427A108618AE5D4ED809F8CCAF72251104C94EC5BEE21F91B179D31DBA79CEEE5EC7FF698EB
-84AB1D2D1A624F58B3622A78844CE51498B2CEF38EAFE259D22C7BA61104651A862008BC1DDDA58C
-C45F663EB26428DAA85E7785363A69D2790996EF5D9621D53042F42F794962FEA46E46F37B8AD1FB
-76FC8D5CF2146843F8CC625139C75FB42DDA71A752BAC48F294E4C0C8289FC46DA5EFD9C91BDA6D0
-27518B7E81E8B21F755A9615627D5812ACA674D1527A1185EED4E3C628196E7D0759B1CAE6B9B7E9
-01E9599A65230F1EE469CD33B9BD9C104C44E3C1AB966C9678BD0AD78111A4E0F2D07A01A038CEDE
-7036D0534D684A1562A17AD64A00F279200C0371B1CBA61747671D2A21D3F9646CA290F6B82418A9
-6FA177C6278277504B7FBA936325F5FA124AB018A15DC18D2C5E8F93CDEEA52BEEDB78A57828D81A
-3E6C38B9FAF3DC4EB7273ECE3EA4482A1C6242A335862C2C3717F9C9ED95F77B140C4E1569B2192F
-C7DCF702D0BC9A50428EC406F8BD0CAF886B4D979320D3E429816D88F7C7146D960AC12E70F2CB7A
-9F4E3E366665AB3F1B4B6440F55EEA26DC9EE0096BB7763731740A537766490C8C174723BF0EB40C
-53701AAD12B21D436ADCE22203C1053A9DC4E9F17AE617888C4B4E6F3A720E4E6366BA628221A387
-D8AB15E04AD69387C310D3528BD2FAA5B22BFF3FA494F5FBFAC4F771C9C7402B95580C5AC4BB3AF6
-92A70CB2C851FA5CF1173EEC3EC29B5A05A0B728BBBB51D3B7AD8B0AF17A1563E82FAFD93F8B7118
-1FB7AFE352874F4EC6D334AB6747519AB8E847B7BCED33EB5458A828E074E74BA621BDCD03FEA604
-7F7B6ABDA01FC7514BA1AFF0D4D0C0CB8F4E42D5A87E395D9ACDD02CCC220C157153422018725846
-009A3ACD8C8CDDB66BC6836B4026FD9F526AA275D06C813179E5924F26A25094E7BDA8BD26AFC4CE
-B41D8964D4FC4AF1DFB0595BC5D6714C32F15DC7194E9A3A73013C45D8FA55CC0550A12D9AAE8E9F
-F199FA28EFC2426D8D1DEFB93A65717AF3EA8E2D5B4AA8EF0EF38E9600F7D4E7D9F1D67A2E63ECE4
-789FA74B159BFE2F91C19B0378BA52E93DF12830D99553B6618645E26126842AB70262D96E35E5E7
-50ECA0CE3458B3E51BEE2F21191136DFDBCA39BDC07939E521E4F492F392DEBD029C1EA237BD89AF
-76BC89F618D530160AB16269FA6B693CF14BDC4EC7C630025703C5337F61458FA09104EB15C7CB20
-AA4C9BDB7CEF3A09F25BC7F3149951A7CD75372993B80CD2112F7674CEFD6AFA764AA3486730D2C1
-897A264D82A91709FEC4A21E30D812F558451804EE6F3DEE2C4C437846BCBDA07C5B6CBA1D94AF02
-9163B7383CAC6E088AB1DC14ED3743EE77E26EA7AD3119A76C0B5F925C4DE305CD7BB3A09A453947
-5B9BD79BE28FC462D8718CE05F9D94CAF3387BA55E6E447BF81A9EDDD3A34E17BE66BC52B0C0BB6F
-86F6F008829173816D205182ED2ECED319864A796AB65D4E3950288BADA94FA32B6F453AFDFC6C39
-A4FCFE60353A64627E2057D4B379D3240012B3BB0ED0C7876CB83C1BA5EFB6E2A03F340C2B576731
-F848F762A7E1CCAF267EE06D621BC33FC245D0E1547ADC12CC0EB58B26BABDB8EAE9CBFBAB93836F
-FF22BDA1831DD01B7346AD377AA298D84628BF1C07433284B0A90FC89F5AEB2651BA2CEA405D4F52
-DDC0E74B871D43F71EB4ACE0D2B401F9348EAC3A2EF0AD295036BF6CF6F870D58E00B619D50EA7DD
-77BC28DEF91D805CD527DCBCFDC16C042BF9B874E3B1567EBA4C1E70744B9E7E5BD1FDA6A5FF6E10
-1613FBE58DC46CFAC1A65ADAF65E49757E9304E2AC9A91E0588600C709A61D4231730073A36D473F
-518A145E141D0A5A494441B9EA99AC23F60F54F8127B477E1CE698BB4129B4B1DFEEDF10D9E665C2
-47A62F112F5CA30B0AE5DBF3E495FF06EB28EB438CE8AAAD84D5F50FB56A3AF002C23BCF66ABC270
-7AC233FC0F2723DB99D2CFE7D3B3667732A531F5DC315CE74EDB9050BF75D29E6430F57CB6778B2A
-CBD57DFCEF896E6766C8FC5C9F9FBD701CD62CACF33EE0FC95E78DADD205B5F42CC63024624BAA0A
-B4DD447832B4E1DBA77BDFADD223989F8E958C8D759AAA37930664C6EFEC708116248A2A7AF3D656
-DDEAFD009B7F5333854608E67E5E588A857167ADF9225CF6C641F5E19C3E08678A281199EDDAC831
-B57223B1BEEADFDCBC8F6F25D32FCA2336C808162E8F381656E847FB6CB13969572425AA05AC830C
-33DE6E030F86A3A85D2A66A77F103C7042C97205526DC882EA9A00EB8BD5519847EB424C15F808A9
-1652A6CC89B66A5731126DEBADE123C63D88A2E550FACDEB3886FF98646000C64B3A91078012CA30
-904B71737CEF6BECABD43DD702880538F5A70085E6CC6015D2163681067C3D513A8C66032C34A0FE
-17A58AD4BC97CA69BF41F11D5E910FDFE9729652D3EA21F8DD8CC19160A8FC77573B1E9CEF4E790A
-79D8AD6723B6804E9616466C935303E063DEE29CAA6C3BAEBF278B818C2EC2F13ED645AB452397BF
-00DB8B26E115026E256746CD0C78A959364FDE6DEDDCD0F441A61A1EBA32C7BC172BB09512148D1E
-BAC9E791B7D51B71CAD2DC9B83B2F99B3726607D9CBE58B499A13753CE87FCDCE21C0AD0528ED0EF
-B9B2C927F57C78C626248AA2B835A0791244C5896686A66173EC9F802C4C633A42B086334D2A4878
-0E53D00809247BE64E529F96AD2F8B3922A6097D414DDE1EC76F9552F9B8D58B8E34F359AD792B2B
-E50C26DB05035E7497162E7C49C38D3CD9B98D620AA67492BE5AFCA3A81A7080185C7F0B5105223F
-1FA77805502A2E8C5FEEA27699858D84A95842C5F2FB68686D59FE24091FCDDE139B6463BC6C7B1E
-0E90D20A83651AF00C85797BB9F53ECEC1675C7EE636D0D9E77DBD8F89670F855EE4D4800FF3F695
-0EFF09BBF8A0DAF6B8242840CFA5BA73BEB95115F4A78BCC02D85ECCE0C0F2EF6F328AD1DD6CC049
-5A3315B414A4D61DA50DA46D7ACCEFF6EE56451805D26B0359AF193531F95F6589CEAD6FA041AF15
-3067F88A0A2FECD135C56682DB2B45A71D1FA737C064EE9A4F404BB72A70B3AF0330359393247EC7
-81512482579865240A23CD8479F21C2C44A119EBC4E81B308DD8AA86E60C3DD8ADA50E0DFE8308EB
-1A7F201EDE8DCFDA405AEFB47E0E6CA7DDB376DCB21D37F7ACC4D3E9F26B03A8DE0E8940CA3A9E75
-963A389DF8038D2C486072F61C0CEAF500753C7A6352B1CD0338D9212B42A4D3DA23D5BDF44C27C9
-4B88A415A3242FFE2E1B332477A21D2B9CE075EE479C6E657A4D8874A8C53964229310E01ED4F3C6
-86FEF5258EDF3B464DD6FFD7F1CAF473BBE722D60FB14AB4918E93878A8AE4773930B8CEE110F476
-7F42A52D9304C55BE12846C911A10AB9B2E036BF9DFD597F5348D42233315FA80D0F563C388BC253
-2103F05E90DBF1923F229F980A2F4585C7A373511372D07DCBACA583099EA972C03E5AA67E663882
-6DB134564DB993CEEB6E7A6659C7C5C05C310267D5F8A24EEC2D5CC3E3F3C808E6D6068D1A57646B
-37FABD98ECB7BAF99E7D9AC4414A491A73CA34C52F394352F6B5A15F0FC4D88622DAC694699C2464
-84ADAC3B1D366AFEDE2A2CD2042C90516A666A19A91C80248B11224BEDDF1A320E230739E755D098
-B6A67315535F4C187CFA67ED817A035056353FC859BF286317996FFFB478A2248B908FF12ABDE705
-402224A3EE5F463DD3D243875C84E02DB968ECA1CC52C75171EA50D6A88CA91327A7AA5795019F36
-C0A19C093A1C9D3723C7568F9D41F2E4FFB712FD47F897703D7A620B586B81936C84AAED61D84332
-B3BEBC4F95B796B93EF7A1F565C494F8A65EDB21E2EE18DC025522EF8E599887CA2836069CDDD889
-88E5862977B7472584303198CCE97EF9F9E1446D1F1F5ED1CFC666A8A0C3A03E1792EFB60A9B4065
-49E0DEDF6ACCDBD98742568B4735A747D8E5DE21E630125AE0C691D054E42199C15B1F80CAFA6E7B
-B2005F374A9A5F9900ABB7409CCD50C3AFCCAB1214E6A856F7C7EBA89BC3291801E1343DA9DAD2C6
-ED075C8ECA1423B43E587AEC67E6145272814B3F191B3C285639F9E2D6E148A02DC2CBC0E054D629
-5CD05DBAC1950400A9189316F0265B86A732D302C5BEE8ED233768F237C62600CBAAFF3A110D5EFB
-6CC7CA3B92D965CA7C5E8D3E64ECF239FE2507FC797FDBE54C1112B28D4DA44C60AB09D994C5BA78
-D663A2591934CC052BC70CD1DCA3325C66C9CB982E2039F5DB70C848D3DCEF655B1C2CD0CEC8865F
-E8E1C0A267BE4F707ECE6F5A3DFCA3CC1EDF92C760439F51AA69A4C1801E96CA4D6EA4AD980258F3
-D15C893913ABCE09101984C61B91D603053E49A97CB82FBA707DAE8AF1D579FD69C8481CB7B712CB
-CDDB4D287BE995E32C02B399602A08B9DD849039B5673F1930BEC7BF366EB082D2CA5DB2385C8CC4
-5BE3FC0E31820191A814EBA7C4F23B1938E6C4D800732787CD2CB97F762DFC85D4B798809B5F2254
-D826CA42B32695428D120298B44CF38494E56240B75DF1E41E46E53C44DC505452256DFEC819408D
-605FF14D6C1F3F152F2FEA96EA0AB3B472D8704E06BE9F8C3E8395CAADD06D6DA033E81ADE5DC3B8
-3DAFF743C6E9E48716003D358DF63CD7FD3E2F727D1F2D0C29962F76D5C95ED44B6F08D052025A66
-5785F264A3D5F5593677B630E628B5EA81FB37CFFD7A30B7FAD226B6FDC82B0878AF4C0EC4F4243A
-807B9839EA62BCBDF7C2E9B30A623876E632E084EBF4A21EDA04FC88A1C07021D0C72EC3E969D449
-FEB08E5826EC20E55B21EA71EA59F6E3B0710B0DDAB3261B4A2029ECAB68C19ADD5174E55D5E984A
-4E5F38F592A302FEE6ECE732DDE841A28672C620CC5D687455A5C06FA9FE688394A04F96312ED025
-B7AA6FBCE2925F3AE559CC1886BEECDB70822E2E5CA3F732A87404B1536AAC469989E9610CFA440A
-CE43875A70CA51F36CB6F629D9424C1E35A88F92D5DA3CD8CBAE6E8425A36968E21F4F30349749E0
-205BFF8D552837D6FC39532525370BBAC833F75F1854C93FC533A4AA53ADF7008173A70D94A4EBF5
-38EA9E62BCDA7C20E0A073BEE2EFAC34D2EF1D03BABD5147659E50B557045B2EB89DB303749B04D3
-F54B43FED612FCC68206E001A7AFE90230D9C12F74A32C7EDB5D0241DC3A5D51481FD7C8FAE08FEE
-263FBCED7C7D911B3A303C835AF5FADFD218F61A9D6DE80485ABCA88200047B094441F7767B97A24
-E8C612590FA2407BAB1E8B56C71914EEF2355DD97CFAFCC192BC06FCE063D3D9D1A629AADC75E3BF
-207234C208E7E30663EDD691043065C9CBC473D97C6D4DD3DFF59D6A9ABCDD4412C3128F603160AA
-D8F81C6E7A4DCAF35F3A99B4EA10A34375B477C2BF846521A7EABD4D28078E9340452A198F3F5ACC
-3DB7E3908939FF6E3709C6A3FD9889439A4AE3E10B618CC92E14B68429A3AD2C80940A1079452EC2
-66F254657BE7D79A2A24084AF73F6DF71FBCD32BF6913A3FAB25F977787F7BB0C3A3E8BAB38D7A2D
-B0B4826950643DD1E03BD7DD1FB149A33862A89226B7CB454DAF613128C2075470E42E70A9444A8E
-6ECA526345AB48E6F5160BA23B5BDDFDA6049EC44ED1461C7E0DD514B16E2FB285F72039DE3C7982
-EFD40D7F6C8E8F4CF35AC71B467BFC578002E8D2239A2FD2C4BCCDD8AF3D7DB1F4AE7F2D2E0811DF
-9D0155BA6EDE50B5F052F14F6AB884FFF244D8806C07EBCB49ED22D85DF696995991A954AA97A1EC
-D86ACD76E061B7541E87997FEF0657A826BD88EF3A4A5920462C6595E7A156F453291CA044CED810
-860C3B0149BCE73BECA713040664AD0591304106129600AF71317B0D2907839CEAC99515D357E980
-B1937B6E1200AACADA205421001F1B2F91753E80D2263C56AA164A74701A8D5FD28E46480B0DD963
-A683A1F355D7FB4463C7347C94EA5E2CA40B60B56297CB22D972C5BB10E56715A955605256C1541D
-9F3BC5768A6F355CD3B863F0FA1A781EDB49368F51B29481CBB41D4AEB07AF9DBE8F52C5D0FF75F7
-FB6431D37D6AED84D78C778871CB0F715B4F07580F23B586C969C81B471FF6A6C7276F7E141E02A8
-584D4B9AB00E7BD643D2C3FAAA299B1F1E25048461952EA42D4882768A70DE46B213A287F8D31AC4
-6D5436F22A796C05D1FE50A9BC2A928066627A0D87DD57A3AD91DB446404B41557D1457873482005
-EA20916BBE46C613F456C849D46BA79D20627B446B2F49E3FA309AE14F8C420CFD94922CBC0FB9D3
-5A0F7DBEF577F1849A1A80E0011DA8AC082A8C6F61658E65AD177ABDF23EE17C8CF0D26B9FA3A6E9
-4837EB9E930336889767A8D7EA3CE980A8EA95528B004957BE6067CD9BD8E02A0F23CC1762CCA656
-D33412FF45E917FD4A03EB6E8C1F43FDB0A8965A33B4FD26BC24A20B304CA817E88495BA9B361A3E
-933717FFB0271F7F70C5D3CBA1E86D0F51BF3ABA194DAF32C35C796627D00C7B2271ACE2463E37E9
-7B3C826CF3DB60028F240F9452CBE08F7EBCC5FDB1BCBB3C327A9F450B9E5671916101D6E3E5E458
-CA31F04D12F592F83BADA2C3683D3886AA3B403963AB5DBE220FEC00037A745839F67A3635DFD3BF
-F08F367482962DED88ECF6322852D643A54D5D303EB04BFDDEE9BBA1EBCCBA7C653B3A613A8E719A
-DEBE3CE1BD7E754E5F4977E863E3C2D388A65227B451D4F3A4F94E06513CBA4AC1F2F511613FF035
-611684CCC461599000E546E4D972CA6960E095A526E4735A23421A4C9B597ECE08AFA2753592BD16
-DED93255A1E33DEECE3C5EB77B94670E8137F2A4A4B98AC193258E7DEA5DB8408A806188F2D1DDC4
-40CCF0E9A6E2F0C78FDBD7B68DD4939D2458C1965BF8BED4564B32462FFF3EC892C03B11D3EA813F
-AB4CFBE8D3016329C5B7E3DFED0F08284D44AA0B7A2F6BC96EA4503E8EF52A64C22BED6B452581AE
-8FF8917D53976471941A9116A2D878FB2541B561767ABD4E31CCD8A590CA03494C62AFFD64EA0A1B
-C779173DAD84999C7A8D844EB1259DE7BB5B25CD023537A474A524EBE4660B22568949E624D8FEA0
-AD37F4CE1EC75955EEFA49C6BF1803BE87E9C9865FF3F6B8525B8C15FE8835CA153D27E6C0FF0CA5
-1029A7A9185D25F0F14D86FC797DCC1F99EE97E2054B9C2A2E06FDBEB8DEF6CDD368BF23A858D9F8
-C1DEFDCEAF1B4A8DE5EAFC604CECCF0D285BE00AA912EAB66EFF4D37AD2EFE34853BBFD87CE09B18
-749B489943EECAE7887B006FB827D10191DAD18466CD1F86505879310A8B171F902EA0C26A388E13
-B53C700272CEE2BFB47ACB58247C13449C6BB9D01232C32517358F1A3DE064D43C18F8827D53789C
-CF3CE2EBE78949A6ABFA1A6B8414CE360A5E22AFB7D1DCE6F5A06182C3B984B4F9BB1A905A9D5A14
-83750A1DE0A857CD5C06945EB7D4A2A6BF1237F32A154FDC06D51A703D44FE052FD3C53E9E8F417B
-35D1C851F9203A8997521529F21AD8498F96930AA77EBAF82EE02A57BC77C792D9F220294B45F48E
-A8FD94E01CD25645D36D168923562F3FDC93CB79DD4760DA0C103C2675722D7A1B79FCB4245ED12F
-A0DB52492C9CCE58B333CFEE822812F7DCA68E802C451B5CFAEBAC608B950386B6C58239D1C62D62
-4DD5D15782FC552222CCA06DDF387B373E32C3C2864C63C768350C37283760F3515A5B0AFD66C48A
-B522EB3E808C061F5CD6BD96CD18C9839D30508E7D4EDB88E8F11E31E10919B16B7971F06D7877A0
-58D8A4944C84FC6CAEDF3341B48B6E0D3C7B85D710E0C35F5B5053CF4B4798B3778CC28B2DC7AE0D
-F3A49F9F3BCD8E95D746C35C3F47D68B8AA35D97AA08E711B5FBE70D1A623C82541EBDC51A827D0A
-69E6C049087AD26F256EB7577F58CCFFBCCBA5A95D093DC29464C9A38DE95BC6B1853963B2DEB0B5
-7AD1248D6F1625E115EEB9510B5772AAE4E3C866657DB0B3BF0E0AC345E116F8D4976B770876FFE3
-748C36165522991F46A36F193DD1A1C94713673C7E4C81582391B636C72DE94CE6254374F99B623E
-5686C13D8A8322E83E11BB0B0A896C6A8C2C4F756C5385CD7017F26D23F7C3EE97372C868C8C9155
-81723BB6B76B4C3CE8998E4FA6CA40B633DFDAA59BA902A4952DA90EC4FC3CF0F2676ACFA7F76F78
-236FA2DE10FD3545357215246BB7E527F277C28B353CC6D79DCEF21BCC8F77603CDD58A2CCDDBE3A
-9802F941CED8E035313875319548C41992A2BE939A17CC109426E33825AE59BCD17CB19F50D972FF
-CBE7D9B4B0BB095303D9DC9D406696C2508D6CE99E11CF00F6461147E97449ED5F486D480A86D3A7
-ACECB7E9A945984724EFC21C5079B1FD03ED803C2DEAFCE3327D2D7827715FD65D9506216C88B0FA
-26935E95C64114A51919D419038B1A7E9C1E829FBFB53275093752DF19891A97F3CBF7719C1FD6CB
-17019A6D2D25360ECA804C4B35172662CC4769D2B785C6C87E5A4ECCE31704E59F71263B7C3CAEC8
-ACB4C7426EC25F11A0042323EE6C3EEB04284DBAE2C770BC419DCE79BD4560AEA41571C3B595F525
-60191DC7A8FBF63D413A77A0905E517441B16C2B501EA2F9E99CC38D052679F288FDF1894542E3A6
-6989A0090185EB2E75134BFA3D9147C3DB8A621D9D35E37786853779E157B47F71626D6B3E633005
-9159C17596C1B87FE2B4FF47ED9D78FA4C2160077276C8B58CEF5DC030B4A5D83CF257096C047FE6
-4DE307C598B815058E72D5F57DF5C369E664E137DE29349E2F9DCD8C9F4EBA6E765B6327D7A20DFC
-B20711273FD8091CBA605C4C494248076F7E03DF65A6A50164980BBBB708741E5BF6056E6F996DC0
-7FFF408C5B8EAB8DCEC315E92873228C805D4440A6470E3EE3983758DD211C9CECDBFAA4C9300CBA
-00608A4B2404A3C7AF017A3B7E67F39F0B51ACF950D3E75CC7BC2B8D3480202FA958E8EE0B240501
-5232EE0D264C7CA02C18CA45CB3C2DE322D3EB7F00F9455DB6C5B1F4E59C3E95520EC36D7D903CBB
-625D70B54BF6F8255E412604BBB29FEE026CC660577F91DB1DB4A613EEEFB20CF7AE3CD89D565AC8
-38416B01B5DE4FFA5550D17FB51FBBEBE21CF1D56038863EE931B90DEC2E211ED42BA92EC244D4CE
-2C4EC5CA87A026992772DC2AF754FC982B94F36EA7B7BF75E0ECE90CBB2A6AA1A012E8898BD679C2
-3CB3827C35D5D02F0569C7AA82615D4AA67518ECF668D3B57D6EF1A8013424AC2268BA0D9A74D588
-79EDCF6382A89D397864940303EAEC45A38304BA8B1CB198967AE23EB81054BE74B16909A405E8A7
-799CEE3C270FE2A6DC50BD7370B6B2C8FDB9A87D88D5D40348D3984E39C693B6F4486D994778607A
-80A3122872DD65E40492107C71C3CF708A9717E9EEFAFBDDC239C53AA9645B711038E59C8B861B37
-411AB2039BEDF9CFD00F08D9C5D76154427FF5DD39878CECC5D7BFB3F1F035087185C0981F3C2139
-BE84872FFAD3408531C4EA9387B89F5E3EC779E8850D50992DFDCF9132BC551E985943B07618AC10
-D1150451F0844C0DC41D6E17EB508DC8689EC726400D5A7F6FEB3CC7BCE05F09228B7CB2C5393664
-D8DD9A4B96B1020EF25D70AA2D91CAE93AFB5F2BF0AA18CA5C599FA1A708EF35BF8F7FFEC9AFC1F2
-42870D028B2B1459063B493943EF1283829783E1010242E5CF4DA39D93D506F3892936E7D6CF1124
-70A521D397438733D053944CFF12D6FFAE8246F20618684F263715AA98E15D72A526383E05C23214
-B78338E5B476F0981D90056E6E5D0DB66B1DF2298E597B2ABE1D817E18BEB056E65EDB4234342D96
-00470B1420C9210419D834E431B82F58608C87AC361A02D0F1FE4B470A3D71E0D21BB87E1023D428
-E23D596CB9E1A2184403A16E36E644BCCF9BBDE27290485057E62827283E7380AF786BF395B3961B
-A5EA469C315763FA59E0F176EF81985F38B882DE56A74D128E256D1B89939728E55A92ABA21A6B78
-44FAC1BA7BBDD8B34A18194A2984B000380FE9F672E83EFDBF276FE797A325815B0F25CC95C97A9D
-ACF56D583486305D7C9E51A7E337D14E3B900333EB38FD93A99587DA2341B10C059C71CE080FE753
-3C0F059FA40E560AF9C4A41A4BE6FB45846FF8F78165E10B4AD40F264BCF5596A1E8EF8CB6EA4B1A
-3A5C69059AB1563843679ECB2511A90E8898F54295649CB73D277760D8D04ABACC7BCC6E777A0530
-E2067CCBC08673F9C8C178F9D672AC8A15E5367F0C5651B53E75E0CFA57C931746AE1A679C246D7C
-9417F1CD89DDDBD1173C2F880B7B3847CBCCEBF99F7122E832D7C9BAFE2B54CBAA1ED48158DE3F36
-238B76B0E67644A28AEA996DDC006F6AC0242E4B667639E7523CBC90A0561193C1AF34481C2EF402
-EE43A82E1EBF4E3D601BB36B2D95CD93550D61CEE7A94E72F6D30C32C8F91A61E964B1F66ACFC398
-7F95D4028F116E9A9A8474AA29C1C1A984BE0E393BDC41DCEF6A6F1018DB60D52024899D8EB5D55D
-324D73F39BFA47377B9E15B3B06A7585589FCF52A54684173E5183367E7B0952DC4BC2767C4C6247
-B1D6103E52BC7B7EA6298F454C5D97AC575F19C10ACDFF4E10C7D3755CFAB4200CAC545269FF1D8D
-B0D607C7AD47F40DDF257AB4E7D0750577003C13E4941960C3DD7B0774DDAC18E8ABAF8F53E03CBE
-F6D57B44F24CF821014C064278FD51B3427593D17694B4ABCE81F49CBB984C5878CDF0C38D1ED7FD
-99B0B9A3BD8D8FF6219588B3B8FA59D0CDD1D9B2F65122AB45E48F1757467B9204926140E3C350C5
-A927A2E700173053EC35D3F1DA2D7258714C97FAA857F0898917BD94625C6D1E2D77138EFCAAAF51
-7B17FE187A2212C24A881A2C6A647DEF6376ED80AE4175C5EE80921F001995B44E49F0D33DD9075A
-CF33BB03671C0BCC34AD5784AD1CDFED3A6D9BA103B3DDC1CC2DE74DBB576A0277715275218CD19C
-A8899209125266D8BF1286F881DCC2C383749D1E768D670F4099F7DE959EDFE852583183C9111601
-2881A56A24AAF020EA45CD5F39660DEBCE30AC1C7B8CFC60387B1B0C3E361BE612FDFA9F01B7E4B4
-A18839A2C7E0E393EBC5AD9A8A4EBC316A740C1C295D9EF5F4DFFA0667F9582C0BB837B142C4CFC6
-B1798E9476D0631111033B8BA75A10FDC800E2AB1E0E829632F869CFE4737BE9E2800759EE0831DC
-7D1195EAF80555771981DD6DC6606812D92CB8EF86447F5F6C6F626D0E265C67E52A6319189EE349
-D48E49DFE6A9E98F76C414A1E3217AE0A215A17E54AA498F4ECDC50242ACC7E2322F63BB2FF2189D
-057E7354E32A3ED1803116176B9B9D0129930F919E2FEC280B2C8924E49E7BB75768A2EE1DA8ADBE
-D4E3589906DF1B923AEF84C1BD327438B731012E69BB0D43A1842CB88BB54EA4516477F704CFEB28
-6E3EA483445AD4D74586FCF32E96D366901084365F693A53C5FB532FBFE7BC0CADC404C4985042D6
-8DBB90A6DCDA3531EE324D558A214F935CD9FCC9A0CEBE9B5FB0323F4B3820529599EF48EE068B5A
-CE85004FEA2984F0A86F5AC9D56163BBFE1142B774148F1EB0A4DC89C3349052533A7DE66729DB24
-41B82F8F7360111DACF69293C9B281A0534F3E9E9224A75C49A832F28B2E497262475507B6DDFA9F
-01CA0A6696E3F5AC7EA68595EBA0C2EB8A47813FF936D84AC1B23ECA7AA2862B793CCBB0DF9FDD49
-31BEF354CEC12FBF478559FEC29F81ADF4452E83963E56541D31F3691C93A50F0BBA5E9552C4F2A2
-3A6E53060729854A3DD71CC4308B91957DB19E66AAA18FA67055A950F1C2CFF78A03BC1A588CF624
-696068068719AFB1001C4581EE072113882D9052B21E355D401ED8CD24D067B99E616BDA5A0A5A93
-36FC499632B79FF2FD0DEFB096EF46B75E2D4E0F48DAEA239719FEC4D9A29818F5875FC5041A9EDB
-D26CAF0ACE14CC80BA49BBA59E918EB3D8F1E541AA16026585A2F72DF7D83541816DE46981FB3EFD
-0C30E458CFAD04C79421AB7C4925E23AEA07F9F018431C790002596D26BD9663B51B699DF53E4882
-CBC34EDE88EB55045B889B6062E35FD1E018BCE785157B85EC3B9CA6C85D4B16238275385B8285DB
-012D8FB7C9F5B946A41D7A0FB878FF72C39683144D8A007CFF631B43748F2D5FC690300F9BC0C837
-006B92ECEBE0605E8C3A4A400E18AE8997D1B45FEE10068E247C647CF82C6DFBE5E881D511FFA687
-B7AEB78546BFD07D5F7EC242DCEF4930D8AAAD8C6152B6642AAC325963FD147F236BB850A9966573
-9D06CDBD7CA79A527DCF461E33F22BC9C5DB00DA2BD3DDDD8C99D99793BC98282AA8872FF96C3942
-85D82D9419EB78B6AE37A5F519397700F75D624A09BD255B576E955A323E784E8FC31131F003B0E3
-024A4F58FEF2A6C043796201FC425482E1155E229D1B2D43EF7B0D22322B22EF5C9A1BE026A1C3D3
-75EDAFF99597E1E5477952A4E8D2ACF5D014BC00DC2A272FA62B6983E27D228881E2EF2B8B95A681
-CBE90C5FDE16331C85222FE2A16F0A3C3000A63E2E21666C0C119F8AF89A543D37977069A5ACF155
-6324F05204CE8CAD50FF4FB630D9CBBFC324DEDA584AA56A99D3A76FF55BDC2C2EA3A021361CCD4A
-83C7A5E2768D210FA6DE889FD48A39D679C94EC3C99A8D33FF11377DA7F6F1B71A2A05B302ECDE95
-4F26773F39AC881542F0D0969C3995C3519A8EF70B4220D86BF01BEECC6462855E7B686E1AFF1CA9
-1FB8FD8B4A69E10EE0C2AD94ADD44449506F9B6EF43641F2026EFF6E605C670560C2B74706FB949A
-A7E8CC6A2D0D6207E457E7FD87EC1B9092DC68B9143947CC8ED14AFDDCBF8FDDA228A76847F96802
-E561F67CEEFDE45AE587673983FC04C96744DBAA83F2DC838D633943C75DCB9E6410474EB27B348F
-26E505F0AB90878940E846C5E9F3C5FE8C3558C3236B1B88C405716949B8506841CABE1717474BB7
-C30DB91CDEE33B0F844811762FAEC535BDCF84C1C747CEF9B1FA61D2AFB5A81335BC42C06A94D7D5
-9B7EDE55BCF6F9867AEE107555CDD084B7684C2C87087475A39A9DA6347BE281CE5635A4D07865BA
-98CE26C1465B1AB0343F49FF37B4D0CA9F3BB693D78DC3B21925CB996A038DCC172527FE57C07460
-EF39C07D4396E7FA970D9F22ABD21A9C794B64AD96762C7428F59A8757C36D6C4FFB23216195A04C
-2A2C2E7B10EF7193931544D782FEE4B91E01119C5553BBC6252270A8D8C56DD62D448F5AD8DC69CC
-B45E1F17F0AA1E445129DD00F000005B23D38DE93A3BE55A4C041947F36B4E4536E307D0180553F9
-2E46B743881CB5D5386C48C7D5F84C2BCD06B9C501F78C7EE61FA23516791FCF4DB278AF688A2E60
-10A56692AD92008497487EDFE4BD5FA083FA544138B20D6940020887E35D46E093B71F7A04A67460
-DC8116B4D4839625D7CA6959D6831CD93F81AC4EA2709036DD738364FDE71113BF22EBF13DFE1642
-E564701E6F0FFE7511EDF03FE448C2B28C64FB7D54B94CA576E481FA56B2B18AF10C71F699B6BFD4
-7459CDE1869D0FD306BF489A6F42E5B2F05CCF55BB6B9526973D19CB134CA7F13F1DB3716F8CC217
-73A832568C16250B5CDB16DF24BF81D49F5B37018BD310262EA7078107868AB0216CEC83CEFCAB1E
-9F2C665A31585CA04DC01879CAA79AAA5AB201B516F7052B01B16BEE5606098393B0E5D9F9E5E3F4
-EB20F63C958E796DF41CF28839F5C62A0431648745D7837B519F3AA36BC6C08EF040CCF53D9B6D8C
-0C7D1A84D707EC57A3C6AC9A62AB37251A01A5ED40FDEC6F5BE6E34C6A91D058319439778A2EE5D0
-363E2E1F33463C33327D05FFC0CBF08D5BC457C7230448972FB9B4D0D782BA7DBF10D3FFEF8BF523
-6EC16D4DD6D0D870D9D5EB5C64C9A46A4F583D4F831FEE74B0E5B33A09ABFD4444929BD8F638CD72
-EAB99CF2E9551DF427683964A592E49D186F285258C5D5F62196A98532421D73E3495F82695FEEC6
-E1952C562D546B28618FFAEEBEFF03A57F4D855021F85B0C7BC37FCC6DA9AECA099B646B99D41896
-09D3FF2D56422F8C37E97640293EC7C90E3380887836F4938FBF495CAC14FBA5648D89282D8D49D9
-1AF73ED36581139D8BD42551E263E830EA3C6EB381D85C42D74C50DB0CCAEC03F535ADE92128A016
-0E811C34748309AF7604919B66CD43EB5CA975302DCB6076FEB6BDD6FF55976FE990FB0CE9ABB11B
-195403FB26E3D6C6A0DE1C5BE79E171A61E21F79EE8DBE7A832519813EF6B33EA098C2C32ADEA219
-AB2AAC8B093F40000995539D1276D5F2EF84CCD099B71FE4269BDBDB6A8D59C86F7D2E3FBCCF8773
-D0FAE97640BC1AD43CB4B992BFADFB09DBD0CAAEB8CD9DA264187C4F97300E9A6C9DEED5525479E6
-05C65AE336CBBDF4E5D7F79AD098F977285E065579B748FEAA97F2A753E1F962FCAB68D72BAA8EE4
-FF6691C23E31BC0F3E981A96FB440404856AE1AB32A7205B17D411D8F21C8C93B704D07EC594422A
-BC368CDA2B1610CE6A973F4474E12B78B532666797F5755D269772C9F5400B3BFC6C58395D38527E
-2CCCF29B56123F7DCEF3BDE5DC1DFC5B0293BB125085B1D2D929BC3EE84F4FAD571A4991C3DEE03F
-2DB3A3097E52B1A7D5C73CCB6148EAC62E8E36DE9A71C57638C6E4D5D9DED18174E8C390E50B4A5B
-913C074EEAEBE390B214B3A68F02862B9A296DB4B409769649E51D738CBBDFB7702E15C73C2AFC6B
-C37CE15171F4E822CF20EFE55D9F061AA43E648989628FF79E65932390CBB15D8E621333B18B11C3
-BDF96F841D7434E01AD501FEA964A75B248A35CD9DF9A37E48A1E5A09C624B93CE44F0042FA00D7F
-9EE89B9F7AB785E9C718CF6E7228F743271C2C9BBA17E5208B920E44E765D99D86650EB454B0FAAA
-112753AA1BD3A24239E9C5FC47EEB1547AC9D23731B8DC48B9707830DAEC60C8D3790BBA1120F776
-4EFAC542CFFBCD5C05F9510B27B2534B704ECD36C8B041FD49A96881302FFF5B0163A2DD09C751D6
-D6AFEA9170A4F4C4AB8D46E62F763FE1BDA51DD1CE4A27E772F3A2869155F762FF26B7AA6FCFA4F1
-292E56F03AAB6322BF867E7710C34D43B5D85B45AA68014AD7879EED051B1933E491496E3E26D9AA
-8B80A07BF2B94F1077E84A9726F08199887D66DE7A307BF33C30DD9CF3DA188088C03B2BAD09A217
-6B110DB2C868B53DA9A66C85737BA66C93C58A259860E294AD0191E3A72C73F40B0BD98699AA08DA
-F03587B78F391F3A4313C58D9F29B53C70785637BD0C58310109C54091AB0A34CBB0C478613A7AC0
-FB8F0A8B4645AC966395D8BA775262CD291136AFFDDF01C1D83DD4EB3B59CCAD18057FE7D92A8CD4
-A58F22508D9FD7CF356571F701BBB23E749BDDCBF8A317FDA0AEFD952BB18545610FFAD3AC143D35
-1B8DB3F66293375E0E50235F0D0466932181D377EDD32A5F0FFA4E22B5A0CB4F343D9A7E4A342E9D
-09DFF6C697630CD3971802C277A5590B8CA94BDE6B38446C794D072BBCCB724D5BC208EEF1B018D7
-39373BB910D668882CAA779C2D686081DE6A2606417B54D7C20E0E7F722648D893E4EDBAE8F00D6A
-6DA3712F91AE860C756D1127D133AB828E9D80023B50B162C5A1C5CDF70CCB3FDD7EA060ED20838B
-E1E50C4094C9E79E1A0187CDF780CAF45A725964F004253E034C5BE46BBF89D94631F1A33BAA35B8
-4FA2A9D08481C6674126CD96ED05DCE48BDA069D902D6836D5DFBA701DC0F98A863E64F0E312145D
-8DC0B77F25B43AEC729A1243B45B08CA228DD6101CAA2AC5ADCC8EFF84A4CA3F254176C2CC711EE6
-C273835D0FD3528ECA2A976B88E51FE347FDB60F32370B66D338931D6581630ED586F349C638960C
-31AE4204E89521A96E1219E696B913DEB2AAB7A3B022D06F34FDFCB810A04E60A4FEBE284C2F063E
-0AE9EDF87704921CCFA193BDC912B747E13570066223A49F1F6E2AF0D4D65DA04CA876FF7A462FFC
-9C0BA2CC545C3BD36DBE762F32B2D6BE5867C59F479195C92440DC165098B74EA5C3AD93CDF2D410
-B04C16BC7801E7956F4E5107450787AA592493171C3628E6B8F49D4F8429EB98DC52EF025F001387
-BC1A7093F7A99F10B5D2D7DD8BBB393BF6E56F08F4F7FA1A343F220D5A1EAE7168C74D41BE1DC1A8
-3BD65B72B982F4F7B34F24F97F9EC9A91011064031FACFF2A14921A32024385F4E061CD07D152E74
-1BF97156D951A342488FA7F5EF934CCAD13E2753A0AB7A1F565C2F7F6B349DF03BBC25BBD972A9AD
-F809BB5C5048A8CCEF9297B2ED3324D18867F293CC66E88B3A39D107B610DFE79A3B4E83A96D3D52
-A17FE8A62C9FDD271130148366942C9CE57558D023DA5F7501319EBFA33DE9E6D1E76D7C20DB8A09
-B657839DA99F3D8143F1EE6253A3295C9651FA4366547893C2DC7ABCBF4BB7609DE5D001E0A36D9F
-FBE01F7D0903B3208AE8547E2E5F14EC1AF4C2535CA8F4EA37E3F3CE172C7A1E8308995B1CC23E6E
-81190246BCAB6E755BF868D449BB02A2AA87C44C9CC0F571ADC72547CEECBE104BB274B8AC16DCB7
-5D5F458D356466B921ACDEEAE384E2EB1DF6EF393B41B9747F0A4FAEB4AF1928D9AD6FB7E06FDC62
-1E4C6FC98CFB43F88584BD55D9B97CC9549093EDE586912161931162B1B1D52D0443260DABA02AF2
-B4432100D5506546013DA703573FA8013685CC798CE501960093DED713FFCCF89CA2B9106390198C
-29A00864108CDCC1984A8BAB53919028C01B26ECC7925E38CBE6CCA8978EE21C2B06E7B3E48FBA97
-8E2A7D186E563C088F84AA23178B60E4729EE87D67B1091F3B6973676C1CBFE6530EB773C62E2C24
-97014AB0E8B71A1F4E86A378AA26591511BEE3CF3D64C94848582E1354E1605B6457823F2C5E640A
-D3802946BB2E7E8E594E8C04B430C2385DD40746CE8534F50842E74D7115F3DB0C72D1C9C607C657
-3B094AEB73B7A79876CFFC3E2F8C9FEAAA07D3BFCE05B61F7749A8793BE90CCCECA2D7077F25E899
-D3331FE161A7E86C842495D584C6E4A0880B2951D8A13B88C4672080A0B1BE36BF47C3ACE7288CFE
-41A8C1BAA6F0814A947FBD6B3AA72B6C73A8C578CA51CCC96F2352316C467BB960E981F2B6485BFB
-44B577E71EFDA16E7405954BC7C9F0759F5A9F1EBCD2FA9CC9648D5831A68887F41B15081A204C24
-B4B992A231DEF9E698D4C3A25B6F5474F5BE6A601F2D337A58A0D21FF37FD91EB86D1D738893A03A
-69F0CD743F611CDFFE69DB2C6ED0E4611D56F803BB0DC06E7FE85A303839612707647B1BE9FAF8D6
-84122CA9E5CB8BDE2936D3F4FF254D31529D7538BBD4D35539489F9E7316F24214B996BCDCF1818E
-749A71CF0E8845AA1E2A58AA62A48E02BA4564625D20AA220EE719608521D7D7A7FCA0BD8904A401
-9819D371F3F59D46C1354E5FC1A6E5F79B20CF4ACA2BF0F2DE73DA193A6F9ACBFE0B4731C4BCEBE6
-D96FE822965DE965232282A3A130361F188B3AABDA95A8A2790D9240BE008B6A6DE4BBFCADA05B67
-86B9BB8E0DFA0C30043A3B07ED46277E07B9808422C8ED16758B9C396F4EA929D769785B2C9568E5
-70A83B989B25CE200F1727D41E2B702E7F88F1784F4C83FA60A74EB26B2DA95126E508ED519A61CC
-151DB6804F61826C5F86D8FA89D06E526FED97A0DB88EDB432FF32C1ACC9B622EEDF601081AF7B96
-3C9CFC1D13E4A9C74FEA0A1C8E3D8653CD92A944D4CA6B0D306619AFD503506D77732D6514F604BE
-4610C2560931BDE0B40939BC1D126B0E97F72AE1B4A9252123B54F7A27E0CFA4425B4546526FD741
-CA77952B10D13E0AC2E32006A903808FF0CD013F936238C74CC75FD915244C56A8412F37F0134840
-347699508D6F3D7F3203A25B7C70100719582CD588590EE34B3AB13E255B613A6D00386A0104CC5E
-D2C646F09A88888D3751651D5646C5227A3C80E8DA1B0A331121DD2429F1F4775D30564DFF47D01B
-BE2C6C72CE4D1FD9A2077C04D2B0274B8916F6A9D1A4A6964A534F47CF241D5A8E34B23F85BE9ACF
-FC2FEA961F277539F215F8728D6788F67BEAF45502839BCF23D8763C3949352F00C579A9A4FC408E
-C625E310DAE61512DFE6844E82D36A2F81709E1F05B38AE9C222ED62C961EE63593CED7AAF73CE2E
-D3667740C77B309B93EEFE1B4BA65D48575A66BE86743DC9E5D3C2FF418D11F7F211B86E827EE1DF
-C3613E7498030F07050524536D1F8A94DDB6698BE7B963C55CB3F74B676CD815A7B3DF4B1A0EA2BE
-1B0B9A11FFBFD5B1FA49668AEE14629316AF436A0821C20BEEF7B3480847934A99F6D85B68F4DDF8
-859A754E009428AF89A90D1852C220A607FF0806E8080726EDC94D691D214B4521C147C4273AEBDD
-BB4A697EF16448CD9B2FC95293305858DECFD406B89B9F3FDAE2AC579E80CF321EBAE5701FB2F7CA
-D8ED04B4A63115886D45D6120F69AEF1A21D80AD3C2D35D2899F1902242B96CD349E0AAADA40F7A1
-1282B6B52BDD97708E58DC5E2D22D1153E5FA3F3B300BCDFAF98DEC2F4E3C82A1C85F985735F3987
-4F557579F422664E07CBE19DA680EFB0FC82C323EC5C4644C51709AC8D674608A8043C91E6C7988D
-430F10BA6CE1FC7FC0604FCD8F723895250AEC36CC35B3FA14FE2A0D24095DCC30B2093F2298F5F0
-A97676A0BE66C3DC9ADACFE2FC0F721A20E945AFC1096A619075D5E9A264C796EC6C90EF1AEEA8DC
-089B44FFC13D27CB2370070A52D4416C53F364393E46EDD7EDE00799960CE6E0D57E4909E88ADD64
-BDD2B0EBE2D73FA6ACF8B40280DAA0637E705C65AABD523B8815F22F23E9FF81E7829C7E4BC980C9
-143AEBE1A04DC0D253396BBB7268BD5AEEA356B610D5DCEE03135E00AE34388251F31714A1C40E18
-2652C48CDA2211A22CB6F02490E69A44CECB169754C53B16028D352E0119F5D5FAE0BD7EA1CDA647
-12A6147374B64244E21E9EC9F0D1381AD22D5B6212B26C3F9AA5F6045F25DD9F5EB4489EA39B1945
-331AC70510C5752557DE21D0A6CFC1EB10A98FA867B76DA6E4249469F591FD154D39E89364A43DB0
-07AA0D7A911CFAE6CE2B557997FBC44F55A27F622BD7B8B10EC9F5D10F2649A646FD964AE1B111B3
-5B46A252C4DEE44E7426EB5739F24E8A390694597DB3A1FE7800C97E59558322F0E49A0CCE2AD94B
-1E2D1026AFA771723E3F523916F55ED866C9FB4A2F759651C613A2CFF362028CDF9D38F05D4C7C60
-24C533E930B64B099FB1AF04B01F5FB9CA6867E6EFF55A772C5391831059987E10CBF987E3F378E0
-1329F73D54DC0484177D3C3C06F67397955FF1CA4EF8AD1606B70455255D631A7D6EB92BFDBA14A0
-FF28B2ACE7E81AD666EA9B3A0F5A6BA3B5DFE35044FA4B3D8ED956009C60E98CC132F2E84967F4A9
-8A67B336D5EE7CAF7DD1F74D1FA08619941361FA7312CF225D89CEF97E864C8369EAFAB94D97F056
-5505D825972B754F6729596EEA91210B75DD8F645382ACE36DE60819A02B3B48DD00F5485F9264F9
-FA926D732E2C267B0BE8CA98526F124F97EFDB86132C5EF16B103908172FC51F286FFE45FF253512
-E0033F037FF182BA536A9EB2DF2D1DB257D9C86C46E1B002FB32AC70CA9462E6EB48994752CEBCE3
-9F08ABD4F4B0889283E55500702185A841E328
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndResource
-%%BeginResource: font NimbusMonL-ReguObli
-%!PS-AdobeFont-1.0: NimbusMonL-ReguObli 1.05
-%%CreationDate: Wed Dec 22 1999
-% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-% (URW)++,Copyright 1999 by (URW)++ Design & Development
-% See the file PUBLIC (Aladdin Free Public License) for license conditions.
-% As a special exception, permission is granted to include this font
-% program in a Postscript or PDF file that consists of a document that
-% contains text to be displayed or printed using this font, regardless
-% of the conditions or license applying to the document itself.
-12 dict begin
-/FontInfo 10 dict dup begin
-/version (1.05) readonly def
-/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file PUBLIC (Aladdin Free Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
-/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
-/FullName (Nimbus Mono L Regular Oblique) readonly def
-/FamilyName (Nimbus Mono L) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle -12.0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/FontName /NimbusMonL-ReguObli def
-/PaintType 0 def
-/WMode 0 def
-/FontBBox {-61 -237 774 811} readonly def
-/FontType 1 def
-/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
-/Encoding StandardEncoding def
-/UniqueID 5020947 def
-currentdict end
-currentfile eexec
-E98D09D760A3C22CF119F9DC699A22C35B5B35ED6AA23593C76D54CABB5E942BF7D6DD84F1664B89
-699C74B472DE9F8E6DF925F6C4F204E9F1C639B4DBA988ED2AC419FF2B2BDE605B8EE3264EDD6641
-2D4F21C64AC522BDFC7C5502F9C3F3E5592B3B2093D33C9BFAEDD2D49E89AABAA832E23F062E91A2
-5032519D1868816E44B4E0747795003D7930299D6E1E2A5BFE0D595DC97E140989CE81D8D7F852FF
-9CDC7A1B1B598C69131DEE005B415805A16D8A123E6A208511C6D0C255B9A5BB2FDEDB4D399C6CF1
-94FFAC236883767C0F68F4EF84EE696B677DE704EC3B097384F2E673A1F51692B7B260693738C211
-9F7D90FFDB21EB715FD5B8134FC87DBA320EE54C2CEC6A4D6BB350555EAFF2EC4F84365CCC0802DB
-B3BD0E3F0D9F858647DD637725C2CAF9557FDF842A0DA6A0CA0F1B442EF8EE6CBF2B03858468A466
-AC5883CBBD3815B283343B39205803C02C917D06825C09E2BB14609FA32C28D720C0E14A4B12D4F1
-25FF6281FF324DA33A56FC49987AC7D3AA206540F8127273FFE9A3DACFFE2B1C269D3DB9A811578A
-C7D532C2EFC18376F473FBB2B32EF642B19CDEC1D6DE83643723E3C6DFC87F97A7007B6081894BBC
-45C955B7001EB36211B26AD7A3D07459CFB33F9C54A40A360CB802FD202C8E93D4DB888B325CE246
-D02D1220ABF55CE646DFB45F07CB848406E470362F80CE4C02D98DD845189877732744CC16C7F566
-9F77EF096EA55AFF98AA103EEAEFB971731EBF3782E6AB725D4E9E35B2968689E8007C038CF25B6A
-E69451A4731E79AC22BD268F56942A233E52D71873E83E00A1874E04D3B22E72FB2D0671AF81C698
-53C389B51F4A257373AEBF4DE2DA1E4DA5E2CA88941F81EAE0E32D982064C8AFDD7A9A600D56D736
-05B9463C6240606B3361BAF22AF74EF89AC804A5793BD512DA2D13F4BB1B73EFCA1E621ED2A65D66
-5AAD0AD228B3B7E3D90DBDB6061E172B686E92355A7C7459D83199040A368B5697DDC3B81DDAD341
-6FF4405E1096B1240EDC18A0E9985CA55A0D697972BB11E9F1BC30765D6775BB68C69704BE200EEF
-4E11B78ADDB6229D8FA49A6B1525ADADF17122C0FFF51A08AA7AED158724AC4352EBB91ED0C157E2
-4281BDC1FD610195F495E87062A8C38E0D046DA4067EE16E81BC5F87E583315B973184E474064482
-9B2A52E0D37E249BAB31988B906F891AC904D1BB8901F0673AECE60ACEDE97B8DB7935C6488ADE8D
-FD898027424AA85A11A3DA494498B084133B857017A6D507D70A3421235486EB3CF7613C59139FD4
-DCB92EADC60BB6225D9CD0599779217BDAF4813A453989B2E56903F4DBB83D83DF4837C86BB4C3D3
-CCF98F07A23EBBF7AB5687C3E1E6792E40F92A7A466DE352294064537505EEF3F9C308C9EB94506D
-B02CFAE289F10005A6E42D2DCE43731A7AE368564B2983038DAD6987F67062199018395BC0FCAF28
-7A2B040C71F7325FA1E9A9808979B2FEF19096B98B8A0A728EB98F2BA3D33B49E3C20BE992822C7A
-1BCCA5B4E4D1099D456D8D7D83C57ECBA0FF21428024F7572A1470317CB8CBC8679A974E13D88C68
-1338C68C9AC9557F97784F4E1C8C2E61F26023ACF46232CBBDF3C0BCC5583B935FE9FA09A562129A
-8927AE73988DB0F7E733C6561CA7C9716DCA9B88208A715166F2FAE6D5EFF289A9B2EDCE813403A4
-16F243F1B57EEDE7D81E10C2DA4065A3082BC92A38B2457368EEC9C3C17296CB09819E9E642D7365
-F9A6EF430FC7DD611EA5FDBDEDFA72634AB599EB666A5DC178B0A0BD1FAB042792115EF3B6222C12
-41DCE36CB38B738F68B1B3CB489FED9E53315553F3C5C3BBCE40451E47B7EA53FD3D3ABA6CE0AD22
-5DAEE734BDFA3BF1D81C1B42C6D856A05D0924E03F7627C5EB24D7FBEA3BD85716207F961B56803D
-BE046E81ED5FDC378F9CA52C14FD8544CA7C539201BEE06487EBDC30FF3B28E8264EC7FD5DA7E080
-65B0A9147344CE28DA5182335875E9F8B2347A44E33DFAA167232A5C3E69E8C5B58B7C7216537827
-C936F5741B87FC68753EB0D4A466961D0050DB59DF3195BD3379F5647F8CFED35DA952D7CF2DED45
-EB442DBFE992711D22EB228BDDF36B8D7DBA27062D60D2271EA8E8412F4290B58F5BE26FF06F0559
-872F9DE4DEAABA015EAB4904BA1F509F6D517C6E897312DDD571D769BC474FD378AF4360E8B1F103
-AA75F48721B9E0BA589319E15D74AC0B03D730C3EF708C7C504787483F134EA6297097B46D2680FF
-8AA50B7A255563C88D594B912F5574564A1371463674793E4834AF11D14C7991E7FDB3A6ABF8529E
-1A4F10CAE79C60D37429579093DBD041ECAF03824DF9C007E96F45595A524B27EF8774A83AEEBD3A
-7134AB4435C80944DEFF5C1CBA921B0A41B9651968581DA4834B3C0E6D4DE13C1E792FCEED26A72A
-DC4D9E3903661D8803DDB58EB2B929CE31FC9F50A694116B00AC9F3EEF53FFDB1ACA3394BF111610
-38F39917B022394C75A0D467D64B89A44E5505DED7D9C6B8BA6BA098F140C9C00E09200EB4828356
-A2D6BE9EC1D5524B09C06D9C6FCB5E2808050A339B5E5FD4DD6C2035A48FE9674520901EDCAD107F
-67AC8C8E508E6003011978D77ED225F361BC0F86A98B6120EEAFB73F7377DB1E7213E02D12C330F5
-492511B4DDE08558D75D5B8AA2D56A3111DCCD257EE96E3446EF1C76F000C8916C4CE261425ED9D1
-5B58CED128DAA6C1300466E7B152BCFB5E6FAAB2519B8A98F26B29F98133AF886A0AA7E586A090BD
-A1DC6120DBB5640885C609A8BDADEEFE5DE0DA5B75A8A29E92515E86E7E66BB29581E5AFF8CB6551
-D8D1103DF60D558E7987E6F56126A13DB2C9A04886C655064E68A0A20D1B7DE24DAD22BBFEE1B7C3
-C208D4FD6A58DE78D6A0A6126EFDEE3B1A9713DEE94069A9F0A2B392A2F391C4C75327803B53F252
-CC9EF0323F84929BA4716C50385681FF5B4ED54929821594F9026B7C1297941B178C3F8A704CE097
-60533DBC6CF4B18AFBCBAD039ECB2EBDC7838A9410E7B227924BED7123944675A5DBCA388B710F8A
-F6048B03DFB713F881EA0F3B191A5CD989EA150B979059C8AADE403855815D8F7980CE6288F47EAA
-37C1097D33F13776F08779063C5217D7408D9835AACBE5C071EA40C9AE6DF685F4A9827B828815D8
-F3A672E73A418E5CB15684EB6C6FE0998A386E124D76620446907F993BE16FE5AFCEC681F585601E
-18182EDCFD3024062A3082AF97E803C47D32229D0A24596CF7E03F18229FA631175699E2F0D60FC0
-9C4F1954C5D12D03BFB4395F0E5EB6C6877083807D91D93CA4177A6B5A8D2AA500131FCB670E7118
-73F8A3C77575EC93A3ACBA37EA117DB268CF10D04AD0F079484DB124F6DC14A50AD3B0294F7157D0
-837D8F9A6060FBCB385606066401708C041594E0396A0BE4B8B66FEA141CCE4BD29366A986ADB98D
-9A6935C49C57F8CD415E93FF8AE0DF75E463E02AAC68DF064C1B789B685F84E15E512404E065A39E
-9E8F5568A7D97671AE1602605FC7E4933975189837586FB1A55007FBB0E91382A629277C36A190BC
-85AF49EF3F0F38D4ADD2B5DEE09916B79690EC83473C63E92CF617617A66DF472A49641DA10654E3
-AD3880D060B02A4A6C75B51E4E9917A2B6D8EFDA12D59DE5A8E222DC7E82F02F23A9D3DBF637154F
-719B14114DBB102BE5EB76B441D7E9990EF6420C2E80942C8AED5A1D0B19BCE115B5929AB9E145F1
-496753DD6B1798324F5EC1D0C7F26FC3045D7BB46A14110C99BA07A45EC16002CB754C0BAE7A1A88
-EB387BB345FA70B0A38AB4D532C2DE49274D4F86F2582728A2CC54B4C09D26C0CDEB8FEE6A42885C
-6207D74953CFCC583ED82DD7C0F29D35BDAE5BB251B8A2D4B1DC97E2264DCE035E359DFBADDE84F7
-37EA6A59C23D1A64D963E635769233624F7682EA34636B595CCD064AAFF3887D916867475731BFCB
-F7F96D5E5E1FBE6AABF454C2F504EA4E8EB382911560195295C87793D5F7739AD7EC7176E126413C
-D4D1058EBD7D6EBEE14BB94A1ECF28B686411D91E07373E891F78C4C0A05D2E8D90A8AE2614F7FC2
-63A762D0F43485473A54C31726F8547701D4A38D20565ED1707847AED9C805780F062B847E668E15
-565CBA07A72B0BA99F03FB57D26FA26FF579C30EED0AAB6FEC1B5DBEA81AA88F16F0C9BE869505BE
-18C1CB79657D91D6706E2A3F0BE9920655B93EBBAE2B4D0B5DF6BE622C951F2CFA42AEDBF7AE649E
-2150FE87CDBF5C2685EF36051080BF39D864573A45AE2648AD97662B1F69787031B9BC43511FB841
-55ECDC3D91E2475D072BDE6A5207ACEA1E0D2ECB1DA8A1BC4BEEC335A5C7102963E84B97BE741C44
-58ACC3D72A7E53B1F08C955F33EDC3A0DC3E7308270C0F7FF814B111459985733C62E8863625A551
-837952F3CBF32ADCFD9F345E14B585B23ECC440775310654DAF7F41E56FF45F89701292019A94BF3
-0EB2D65E14B1A1D6BF89D4CC43187ADADF3F6E03A90ED01E5D876BD3AA56E5EE84DBAA4DAD9824DE
-9984BD45AF96FB8A56C010B3C3A3C6139D58E9D69D9109DB18561B55EAD6452497840B9AE90C749C
-155B6329716F0152A7AD52DBD0B8A25B9995E1416681F38FDBDFA443879B5C4C25AA29E0DCC07DE8
-BB161C36D76EF286EC88D57C74BF44DBCB4FEFF771D3BD82C8F4E233357C48E516EFE3DB9E60EF16
-8E2C45B54651DF9A5ACB5F1790F7929BCB16CE5E9F6A43919AD287DBC8E12D9F9E97E5DBAA592879
-1A5A02D39D259F3CE273A870906A643CC18D86E23F115D2A35DE6926053D8C84B940B362E7DB183C
-4905060316B269223DAD309EB5AC96DEBA757BEA45FA3100F77F4765334EDF3D659E09BD1A5552DA
-492BE9174DD406F8353A059ECFEE3709422940A8C369919EE1F22F7C02412C995FE93DC4559D32A3
-155DD22D3526D89B16D9ADDC30CB7ADA6E52D62C5F2DFD142D4D7B6E066671EBAD08F54917E31704
-1F410CFD8A3243F8B39459C418B7B7C6494551C6F6753A94072D09E0D812351D62916383C6E061F3
-5ED864923002007E626089772D269B298DCA2CC1F25D9BE43FD8AD62D554C16AFEB7EF6E5DDA66D0
-5A810F003CDDCFD2C02FFF02BB61344968091F67D3862C1499409ECCA137B9A2A9BE314995B818AC
-CDAE27ED4AD583BE29DDE4E8C2400C5F8152C85709AD2A4737BAC768FEB70CE81A92C9657DDDB2D0
-BCF9169D272A063C75C150ADDFCBC2F5F2503DE3D13231AA8CFB396DB38E80197A605F6BC20EFA1E
-DE40CF424CF221218D51BEACE64A3DC88377E4F3EFE43DB4F4FC0803BF61764104CFF0B618C90311
-98B094E20B0FACFB94240B438B67BA298E31D3F4E31FD190E48BFCE27B1BE29D36E765E7D295E96E
-DCE09094FAC43B87E294818FDE9363FC7DC5EA36A1497EE25762D02DFA00A9BE53F87ABE62E52ED6
-F59818FDFCA643042EC13D670DED1980413950EE43372D31AE2694B83DDA42E1FBB049F7E7B7E69C
-93FFA3195A2462423DD2C022E5141783FFA07E192AEBC5070F08B23AEC9142EED56DA74F93BDB504
-78DA55DDD0A9987FEA131E4CCA0EFC51064E4B37632728261369C3FEDACA100F1AA78FB718ECE7A9
-F56296C5FB43781E63F36B0E1D34BB748EFF35E1953941F94D1A9B0FA474FD68B47183F2AC53A63F
-9F1D30B9B89C5FE54C3765B43DB403D57994701C133E42B950D9BB1CA202F15B5E590EE75598FAE4
-3D5CF1546572770BBA9A6373F100CDC61DB4E5EBBE0A93E0E51C86005E333F69110B1C8E492F2BF2
-52CADD5B73E7D3EBB53E759353F1EF3C9B8B39C230D13AB7158A5D92EE4C452F81F6DFC18803280A
-A023832FD0DCB482CE5AF615C952BC3F7E58F6417D69775FC7C0D5B405AAC632857736ACF32B2EE0
-F2A2C0F3B3CAD483C614505BE94706322F2A2830FC5AB592907D0291ED1873377E7A6158140C2CDB
-1B0E27EEC9CA50176102200992308045CCB5A169B61EA0546778B8D280737319046716604945A21F
-2A1CB9E15E3A5DB31E0FB5A3B0AFDFDF6F3424B7536D473F9756CA3694DEE4301FB1AB1AE47128F8
-D2B461C051C1B999DBB010E78DD13AFCBBA6F7D5226D540527F17881A18F551B3EEF76A7E28B4FDD
-879381A2217EF2FF9F9982E9EA70AD2003B862D7C36D57C5FF9FBEAAB56040FEE973EFC3B34D8319
-1960010110BA10694C17B7635AE03CC1CD087C0B05522A7A791F0CA34022A3F5860B536D9551BDFD
-BF560A07F63AA4E687407E5E48584E689591F1B52671213E430A708C06A34D2E1D51CFA6B328A122
-007C81B5EB263B967746961BCFC8772F8502DD95898724ABF369B0877F3313A167F3F714023C229C
-5757D4D46FCD9B4AFECD093DCABE52B78132CE9AB6225C9A344C4BF8D96F2C50C4272CB9AA0D606F
-013B2642F8C880E08EA2822C8CF5097D2CDB64932FE195ABD5FDF36D3BE123AEDD8BA2F82A8A628D
-BE3ED6129DC0FDC4BE50D5574AE4FECC65062E70F4703BFECB35EADE196294FE173EA57938679DBA
-6D15448FF44C0D1A903B202439DA93C0B0E612110068F8079219AA89F435E44D0464F54833BEB338
-670BD820D941DF4B31F51B895BEDF833F9C43CB7616DB80F988CE72FD3C12C7D49F740CF85B4766C
-0ED398EB837695D102DEC16E24B7475A0F5DDE88FBF2D6B94F126417C811E8362B9CCC52D8891C13
-C10937AACC228D621D4712CB9DE0BAB60EDE2A97E9292BE04E42E6D3425594DF56931A61E1F96172
-6AF6E6891D63B240E6E79E5BF30C052091D681BA1102409874CFD8EDC3EE2BE331676E31AC00F807
-91D1019BB789CA4F5907F4823B002AF3581448C352BB67D80FDFFCD1C5BEEF60523330AA2C045600
-8F62DEB55E69AC2F86369FAB1ECC90D2487954E61117A90D9269A65DFBDF297EBD29C3DD1F62755F
-8F289C42A534F59650685F8576EA2FC5D26B99B8E3DCD3F1FEEC73131000F99AA9868EA9BAC0B56D
-AE2CF46DA6CC1D18C0AB8D77BECFF7B89992175CBA2E22779C13DB9DF53FF5B1C8FE95E164997D94
-202C37175E562C8622989B075CDCDE173452C064274354D5DB8F7D5A78D48AD4A103B9E47500D08E
-DC7C51C1F3CFA7F43C3686A3C24A7EB5018B0F419961564F87E212CE0A0741AC68D6822C7AB9FD68
-85F5D0B2AC249CB7F50E2353CC4B0A6A24562F564FBBC7090C3FDF1284AB0EC615E0B3FBE132F315
-70C8A65C814F93910AA4BB80D516CB70D2E1D11969238E6F022D628FA2F33A0A15C4EF0CE7F753DF
-80A8AD9494885A1B9ADAE6C38AC9DA6FB0A61696AD3A502630252AD7B574C841117D34BD20BD6581
-217D977B35F5D04E02B933E1E84F5C090F6615AF484D63265D28517BA74BEA8876FDA332A84AEA12
-E6CD82B94AE10A778CD3A216ABC08495EF319F06AD6FF8ADD237D911F846A514FDBFAA8A1EC8E0AA
-9F80F11F1CE615519A4B044F3D1CF1A17D7F3D2174222A5FFA8B39F20197FF6CAF250B6ADBDBF519
-1C525070C8D38220FB501C223F493D80F498621A02EBCCD6EFE914F16B2A435D60C0A1A453E288A5
-3D818FE1EDCA7D55A26A017F2EE47A816E90D6C3FCDF0035EEA307DFB06D2BCCE43458A67354A4ED
-B6E5C57233DE4FBE41ED07EE5EC77A5DFADC4032138DA9E1B74428CAD02A913E40152F8063A774D4
-FDD4070E4B8A6C089F199AF7C529C277E902195DB760D81EC655DFFD1BB283F3C5AA8BB58F2476BC
-797B2892E94414ABBE96D4DB93E280CF7DE23EB852E7CA954D6682A6F1A4BE0507884C2A05AC863D
-2BA73F3B54668397B6C54DC2F4183130AB414875F3C3D8792BF7E5FC4D228DF87748BF0B14178DB7
-E3FFB7891D700A1E9520D778B095DA80E4801F53442D5C073EDEB706A5DB8466FFE7E701ABA9C364
-A37169F585C883A83713A61C9C3BD9336A667EA4E3DB5F4DF6BC6A552BE8D3EF093639EC67E5FF71
-8959F9902477F5AA894ED2D1CD312ED82EE417D95C49C96671B23FB0E1738E892ADFFE62EC1C3D4C
-BEB6CD089C98DE8D247DF7ED17DFA2959D3662F105E8386D75AD308480536959F8E6CF8F2C6937B0
-9F2E8137C811327D6B165ABE46C51834A955FE8306D10033F8C2A34667F13A8BA831CCF52C7A21C1
-3DB92F3E77B55CE291F6190BB1D194A33FD73151C3F61ABD2D8A0C9BDE90E796BD996D2D0094DB2B
-E98657E751BDEEFE8A43EE4501B98F0CC6D80805189438872A60047A8CAA9039893530A3E5F6BD75
-BB466B25165737C939AFF3EA59BFF4A7DB09C2A5B36B8A1F0C6C5E5870C7C9412589877EF44F8428
-4B8A53B5B74315CE72D2EAFC631BC4CC2E5B71DC958B5A6350CB5F615C3A4502E973622E3E18193B
-69572DEF1D02303A375ED60ABA1BC8A179FAA0F221A49078FE15AE13383585FB45FF4D5F3BB3D0F6
-D8BF62E9BD6BAB3C9A7D38C8A5AB0BE57ACDADCBD02B1DC7952D73AEF702D406F62719922BEA96B8
-FDC9B879708E794891C7A0A42F2CCD6812C3F4DB030B5178E3A627C3E77621D312CE4EBE815CD387
-7208FAD92761A5396B67E835222609F823728B1C987857CFEAAE21F2AD5EA9D841212993508091A4
-A2C268BF1D8DA1C650F6AB93995E7C13A3F84DB55748C626FD09C0DA1E3325CCB0BF091E996245BF
-51EB486680162BAE63B6513C74CE83B92359938439921950D713C69324A87BCE67B45A030C9CF10A
-DFA0A82781D49FF224AC57A23C6CB321F95915C5E14E41FA852F66E1E2044A9E7B1DC3BE9E818515
-D28B2C4D2F2210098C39557067062BA4239F2AAE28816D999955910298A450741947A9A1AABCBD8A
-FF3530626089978C87DFC73618C044731B6DB8007739A9699ABC354A6F985E03C11D750B8B9E9AE0
-5436205FAAD1B895B159E2C90562B82A62EA1A7FFB501767DCE2B11C51D55A17529EF5ADF0A0EE9A
-96D0E7E89F68E50EED813836531B4B46E9071E84AA413F4135CC882CE832BF78ECFA7CAB0C9F64EB
-92C86DFCD1152BB7D4AB33831AA0C139B555967F6346068D5C3351A7A4368EEBD2933E6B9F789DAF
-37EF536FCF965C397AF1B7F98AF864B301F3F440B7ACF704B59540453678FD6C1504519481893812
-3E2F47B265EC4F5CF2172D394543D84CD4281165CBEB11349B315A85DEB2D1699507B0C8C110C726
-62EA2959C4962FF093AA5EE6F21F89B3CCB0149CEFEF1855B9A48D28BB363416C015A1F4EA1975C3
-D8807F616C5817C8162536176F464A198EBEE6C97029F15F414275A39B8219128B8C8542E9483550
-7FC2D3908BB0EC375771280B9EBE87E827811418EF93E52EF70546891BFC0FB34969FD7DEA4CE752
-4D9EEFF2B46BED908C0FB2E02EFC1D1624642EAEA1CAC1EB4841E020532E88E59AC890E6C3F44734
-B99722E9816402D1D0FDF8045C5481EC055100836EBFB48E9FBC392143032C909853C9BA38A19363
-141BED09DAF02FDF4E7CC9808321CD0708A1B45270BFFCC3A0D7C27F7E781713D5DECE82C72ED303
-86B02D14575A1A6447547ECC7FAAC1BDFF332C92984758E242256C054656CDD2C45D46E67AEC6F83
-9F95D74E222A6EAE12EFAAB723A7C816D4E42D4ED2725A794743F67597F3DB8CCDDE45BAABC25726
-B851E02E56341EBE69E4D91F2A233583EC816F18A1DECBDA4AB69320F55E730617360FCFB8AC2D2B
-737675B406297F7F8C4BC370CB084C22BFEC5FEF02E9AB290282F7B153F0A4B1AE569F1E52371A43
-46A748DDE09336CAD1F5337FC3D7CF0677091E59480AB15021E023E356B0E1BAC6C6471AD53625C7
-0206C338536F4D0D40733AB217E2297F86B593717C61458B6C93A16027CC886A8CFDC01EF19C34C9
-A608B95A84B6A2E31454BC03C10FA55CDCB7B1EB7DC16AC1E93981A46DECD7E7F00638DCAC568744
-69A2D9B45CBC81398727E4ED3DB5DB31965F358D8179CBF934EE2C4D652C9CC211807F070C80E3A8
-222B4C31FFEC8DFB9EE07A94C973462254BC1B1581903EE6F9AD91524A787129A63FCE048B45BBE6
-855826750C586B6B23B805FEC3E7AAAC079576949A06F422FC2C826BDB78AE96135E9E2C20C2B2EF
-F6171D610B2EB8635ACAB7C5C5ED9C9FFC26CD54D2FD4CB9E4294E178CECA1E16CC8E3FC06518BD1
-6F4D63AE2B435753538834CDD9D8AE7DE624006CE688938031336351A6578C304C2E5480A3FCB43A
-8BEE4953DABC30558B7790C6E7A6F0F9FFA557C50417407AC6A0DDA1E736F7070BC89455FC293453
-3DB004AA9070734C8C2608A07330E421A0220DAB99F8A77489132F6413ADB9EA637F3B75948050E6
-67276A55BEB09D4153DC126BBDBE0DB9298AC799A943D72AFB769BFA1488D311BEB86A907EC9385A
-AE4F77835DFFE4389E3D9ADED1B08BBC2B1ED6084B3D1074A326CCBF38E06BD026919107BD03BD9C
-30470DB779508DFE0DC82DFFD2DED749E872EB7EB9DDF509D5319865070DD76846C34E4E43691AF4
-29AA40DB4BF2CDD50B275589987D8081F7C5A0461AA5D1455A660178A94A0BA0DCB69C3CEBF5EE04
-26D6534F6F919D9795AD6A0E1A1F452AF3B4CB2EA54D6011FA809132421D111EFC51174E223AB6A1
-3596411A9723079231B050CEDAE7659CF168C39AEA9C6902C2CD37D25492CEE00096EDD63DC7643B
-667FDFDE5B595DC54F0A72C2650E1E46990584C78A5CEF9BFC3C5F88CFB0C49CD6CADD9DBA675177
-D601927D75C6902B55AAED0E9E3CB52A577C887D581B3CE6201A1C77C9546CEE5A13B92963337F17
-070E2BF9F5C5E86B84225863874618AA50F4DE855DE567BF2AB7163944ED43DBD7F4BBC0E1623180
-7C43DCB47B2EB694E6FEDCFBE26194D2D9943A1BFE32AA1E5305F5E341EA021F91532162978DD1B8
-C5295A5E7551E2DEE46DC2347C6B32197AF430AF3BB676A53BCA9BD1EA88678377DC0A9A86E2AB6D
-E29E3E261BFD5573C66FB5687BA9C0544D894A759866B066E1DB5C66E60AE071CC3A1C4AE40197CD
-E4EC723F7B80137619DEDC99AF57A5497D6E03C1C9E672E74F48F6C213A3CFACF2699CAE72345A51
-C71C1D69348DE5BC5F443EC0EADE1E76A8A33066922CF3869E3C1D26A3B34E540DC08EA4DA2DDE3E
-EB17C16790DA4EF1A3A76D71D34B788A87838BF2A5A3DB8176F9C097D2320050A79EA6C4A94926DA
-11ABCDCD26DBA09FD33F30AEED977E8B5AD928F3967F607628859429DCB4ECEC7DA3411BE35A0385
-1017B535985632639D378CDCD13B00FE537A49FD9EB6DF1E3AAF5C41EBE35721FA6833C2FE08AA3C
-FFC3477E7FCEBF9EF9F4DAE62FF78F319481C3F1E72999C8A493EC6EE295316B58A5CD62FFAB62C8
-96E521B678342F04BCE1613CF7F6778CBF5227BA20504500D743270771953ACBD5C6586432F3FA6C
-0987BAD33B88BC6C15D29C4B3CC54A9DD72A2357AA5BAEB2CB057CDCE72DC80CC98C62B16AC50B4C
-6A7641379B766CDDF990DBB2FC7F9CDBBA755B6E3DEA438FD6699C30A99A8B3178E6D613AA938120
-835E517431D28114BCA1AB745C11FE6E52ADB82B9D3D53A33BCC49740C93017D9531ECF43831359C
-5C93CB0E926DB440B139E3125CC2E069B1CF6D96EF68407F32DB517242C3AE0BC6723E560B0F45FC
-7F87A5E44E1751C8B7F9F669C24AD5CF16F84FB03BA121B86B0694234D8F2C9C947269AF96FCA08A
-78F736E4E04ACEA44C5BAAFDE360FCD8BA6A59724CA86160A5527FD564468123D302DB45173C1B21
-6B01DC5B6D3415B13FBDBBD3121A5493374B3357EFB131CABFE5087AA1D2C7472B0377066B3632C8
-2073C6A846285CC953A8F28E131CF587B35217EE498D9A1DB57B063CE068DAF55D8CC1771C0C3099
-9CA4FDC5D67BE4E7E69418F6334BC6149000821B89A7437CCDF9A6A0ED702D5968F1E04F7E4FE9FE
-C9D1E994885CB624035BBC5426CB8EDF0456828F8EEE75BE491B45FAC192A405EBA25CAA4F4C66C0
-DC234D7B417628DA5276C08260BE512B2432256C401A66E3B583E69D23E9FD278CD5F2178544D054
-16B9B4F61A88A4728AF2CEED07C08E207F31D644E8E3BA1E4E2F9D8E30936BCB9C6AEB54E37DB46B
-D64F2ECC1021336D0564DF0F18E5A6B6BA470233D8D41FDD9D1079706EA685B6D8A740570BFB78E3
-984BB155C3155C69BCCCB41CB51975EEA1C1B4294CB546CFB03DC31BF86EC3BCB1977E8F94A771CA
-B09DE12A82F1D6C791FA7800E5A21DF81C9C8FCDA78622ABE75B54AEEA747AA4F26D563200992E33
-7231A430137C720A17D44F3AD6CFFE63B2DE12D3184BD3E151F955786B8DDCCCB290C42718F3A219
-1759DF76371C2FC177544A6C425CAB14AAAB31628A9CF9D71B5257AFF0D59843989CF0D747375A26
-DC9ED29B66AC2147DA0168306C48C2484C70CA92F33C0C138F92F276F5EAF5EA3082A8A1CB12DB66
-1633C2F71E3B69918F509060AC949FCD52C36498A2ABB77D139DF1EB33E3B846A7C1BBDCEF5DEECA
-4EF0AD250CEA9C2751E13EF7681E8FAE0491CFA6C144DBAC1FC39D39E76EB12D3EE9CA159AA77D27
-94F0C433345B135BA632F544082BBDC9471E9FA3AED3A7D465AB7158E8AC97F68B1FBC8D368E2350
-45C18EFCCADEE98778D894D96301F903283C5AE355A863BB0DC5809158F7E108662D04A5C1234915
-E7BD5B4C30F9EFA55E702E54F87FCA06FB321507BC57A1E55CC117E21AA4E3A4DFB77C1A949EFE36
-6D93F2BD827EF8CC16D387CA82AC039F77FE995BE6D9AEFC87F8D809E90C1017803BCFA1C737DAD5
-F1A631EBE6894AD20C70791665E7BC71F21C2C3F4462F60FDE75C8A377CF49BE99314663C6ECB538
-B1BF021B2F2174D2B22CF6FAD115EB0ECE8A2E64097A5FB0A2AF666E1EE13276AEC59FD0C9D4BFF2
-3F71E835984E5EEEE36490C54E077AD7355DBC98BDD37DF29B3DDF8C55480B7349C4D17322418705
-796A8C521FFF920DD11773FC44FC631C7D6E9B420D7965D7F62EC7385F2BE30A51E2D796483134F8
-40AEC71FA19ED1272C27F98F2CDC9C7E54DAB585AC1703ED08F5F9E825564902EFD08EDF99DFD494
-44C21FA6BE16CB8A1B6D0C8A5ABF80A50BB8D055483176FD0AA07EBAEAD88FD694F96FEBD60751E5
-C4D8F9BC747D4F4030BCDF9B0370B7A5E0A6923FF60DEA16EF47F886F10CCEE6956ECF41A21F7C59
-6F3BC78299A9657266807E01762B2B2878E551914CA312C2A68D34CD91E4F5115EA1FBE801346E14
-AE529049089B6B0273E258785773A9CE8E4B6C4211CB7C2767319576758F811CBAF3A3FFB41B3130
-6C49F3798B698A47BFA2E3CA0251C4D90C0B02ACA28C611744526906791D9E157E54CE4E1BCF5B68
-6990BA8AB7897D624EF00EAB92CBAC255AE9177DA9F0D86447D35B452CD2F337147B5D3EBBF2B952
-35778A72914EB3707EA78294B3A3BC4ACB19FE87C72AA1D982E4B822F07B115CADF4D3E7EE3D1BA7
-08653BEC6F0A352A0C33252ED0630E7274961896D461EE8BF523D5911BAC1C8AC763E5FB11FDD217
-4E1F129675969C195476C7A5E18A81BF9A11ED9F2336D5301E3BD32174ED5C933E8C85D6272EA218
-52A6F7E2AAB174E0965F73E0EF89E906BAFB181DBCF8B1F5AA0C12D12C6272753C016AFEC2EC9F95
-41B8757874D6F2E061ABBE8B29281677246305B3C41E90418426C575BAA216CEE3C5EC29B2FDEE1C
-77C14FDF940792F48A56AE80AA33E370B037CB28A7373F882022AF378F26B6006A049FD3B35074A8
-65C97D153352ACC156992C00DE26AD21C982C71F0EDCFEB61593BB40FA5F2CEBF23C4FF34A4F4BDB
-73CA273C269242D1C6117262B7C47771F2619FE5710855134A80FA8F92BB2425CF88940CA3450F81
-234ABF2B11775929B12CFF86442B2AA0F4243D324A5983E5D1829775B3C7A111D5622D1C4E2B2A2F
-982FC8A95F789881416DCB34950A393F4F1720D2212F3D343A17683060182355DE9E4718506D76C9
-184F8DAC55788D7E603CFAF4907DDE965A49C323DFF425FE88C09AA4A4D16283F9B14AB9EF1BB885
-A954034710B4A9DA4C88A8A0932B18D139A687303EE562EC9F656F12F3E8F27DAA9C75DB0FA946FD
-0E1A982BB58E040BFC0A49A4AD8CD668493FCB573C849EC5474049A693CBEBD4D79AC7515047CC34
-7A9A7570C90861F3ECFB57B9F53AB9C0D6B05C8C570A8F3C04D58555A45524C98FF091B8F8A422F2
-E0E9E5A7B7FF69F1CEFC13E42F1CA276BCD584516D266BA6838D5E9CA9E9854F50C7D92CAED61AAC
-AF758A7C7BE59C3BAA82BF32B691ACA3E8EB171E08AD22C39FBE586A54E6E4DE2CD86B31138546BB
-8DA5834B2C6E4838547A1B67E651964E43988C8036931088904BBB589CA901E7EBBC094C0DA81E09
-1915D9E46828AD8596FD0FCA39FF12A6C27A359337F973809E81B2E9E3D43B3146F2516667E607FF
-EB9AC80FC95A7B7D4DED551FEE0F3561C70DB2D69ABA96673E39E3397F1C3F8FE5F48BAB8AD6E0ED
-8901F90F6CFF24E80CB5DCAC498506C4D01033E497C1241E413B022227A3264DA68BC3F91B35781F
-A2D018475C199F43CBA7D3A0D5697B45321BAD2C394B207136E1E16B41794975E8903EF2B2E1C33F
-87CF72C325C11EC0B92FD3890ACDF60B521DA32596763BDFCDCA837ADC6F26F129B23CA32F9CD39B
-33E64576970DF3C05B8DCA4BFE2F17E6C5678B84D69494F1DBA9FE0446AE6AFEAA1FF245C07916C7
-B7569E6267C42B459435A1D116CEC665B311E404171774C0ACC8DDE96B0D9167C8CC7D99C4240559
-2D745C4428755500EB4719340D2FC6BC215B67823F69FA949C08B5EC985D7AA87C9AC1F9BCC8994C
-6CBCE6027B7D1E0C22A83A5DE61DBA05D4AF6884C95F46BA7F253E0B2337E312916E163CAF9DB2EC
-56C5425990FE73EE53E42B3BCCA1CF642F02B0C5ABD529B568E9ADFF865B9DC190240AD78AD226ED
-884BED3C285B4CB0E3929E805C67F1318D186504D92085764B70DE6AB5AB6990F181BDA50FC31262
-348D980EC76608CF08176C2502E065AC2D8EA5CF9E2D44E2B70A7DDC7B922047C471DF8A0B2087D1
-106B5BD8A830EC0E53223CE3C96EF56E5541191167860EEA58D696EC357EC55799438C90156BBF2B
-13A0D5C9EE93227746654ED73EA5B9CAB61DAC5BC690F89C87FECAF9AD03BD39E438F43B81D39E07
-E0422F94E8B096AB38C88BC2E1A043811D8141C1A35DD3A6DBE41620E83C8ED3A379CD80D4F9BC30
-41BB44B933DACA7C5D4427AE94A176829F24B5968B713431CB8BD9F53080832C6B784CEA9B515687
-F121983EB9D9C9CE8BD4FA3BEC48AFE64E643B7BD86D8383D07521FE5D091392BE124CCC91113604
-3824B686988E7C83AEBF406D2DA88FD952D0FA9327F4AD04C55FEDBFBFA76ECAE8A176C516479AE1
-467125B7EB3C9E7C5B103BC0C470946346DF271F8EE19DF7E3FF7478C35EE059297F4BF21A5C7B95
-993BE6202E897776952A7ED0613A5CACAFA731FFC633CAB62963150E86EDAC796026CE02EB235B9F
-7A54E0B0C5281567138A612BAFE409A818C216DA8EAC5EDF9D1E3A1E3514AE50735A111B4D2AA083
-4EC6C11E290D58FF340F82F0E079F1C7B3566F2336EAA45BF72BCF88569988DB5F65D4C1E59B50F3
-41E45A899656A0B522847ED567B49CD5284FE50E5F8652CDAC1C076804F2B2185F6A51ED19DD4941
-2E65A0D2DBC844B75E2DF71B009776D9F97A4C6F786EFFEB87A307FB6B912BB659DC2BCC6D509A9F
-BDE87DE8D716040A8551B6CCFB7743978AD992D14D2B85CA052E87326138DB196C24593F8F7ECD6F
-486F85D1666B9DE2ACA6C7900044EE369D223524664A2790B773F9EA26E0A4CDFD709942A44298B8
-249506EB9B77BC887DC0EF947DDDC7CB3CFC6B48F060DBF032A11884E6C226D9D447A5A458CBA325
-D57E144C6DC295262763E7BB8FF6A0CA473EB7661C12E0E8E23EA37E8AB3387B9E54686F3E57765D
-4067E521BC1AFAE52394227793C737C19208803F2F2DA920B553E2AAF94EB992AB17E31B58C15CC4
-AA8A1B444DF5B3E7CD937CF03E1F7FAC63342731B4589F16939D16E8E497A74CDE5686F529E9495E
-1603D74875288CF53271DB9313A4511B104F80B179FCF213558970A002E945281BF3AE51E668DD6D
-13D9E85152747F562CA0B75DDEC8FE9FE31F8D05B0F59E802888A7A4F19B29954A31108D2F041367
-DEBD6AA1CAD856BDD1427E9EFE89956FE28D500CDC6A0CB80A76902A08D0BC6705583243F1DD8020
-749B257EDF4803BCAA653F7FD6D8B91690995BA5EA3EE92FCD367C11601C6B8ADCEDCE67B16C596C
-5D200693AC5FA15D4CC6CE9DF7A71C8A925E99F5085313D60FAD25C1BBAAD28D4AC2B69062D68F39
-0530A976319A3904CEE44DC9451E441AAB4780425440F8C499B81460B5D3E268974145117ED843B1
-71BB14AA84C3A084A7D8E07B9979260675D5CE6534DC176DDB60DDE90F6A3674F67462EF78195F8D
-FF74FB5882B079DEE31FE92816F16CE1A70D07752EA25FAF5000ADF79BBE7D17EB1BD2F9BF6CDBB6
-F078CAF97986442680A8FC4121866F9CE86C385DE34E30D8B9768A0136D9EEF79A4B38EE99CBB9A4
-D32316564C9D56996E2595753EA71BEF684834FD030D38BB100E2332B026B046316A53270A96DAB2
-182E994E91262FB03D1AFFBAD623F1689228409884F91DBA153030870A7BEB2C7EE2DEC51875B137
-33B7929041F8D23A94904BD54DD4BC9B432DD0C78DD81639F46D686FFAD39AAFBD1B6C1A37E248CE
-48F23E12464D5379B4AED0D50B5A41577E6ECB75270E9AD3EA7D0FC09DAB271FB18B51DCFC0069F1
-5D72546E6C51049F3425AD005F88FD7F02042DABE9F097F9D6A076B30D8CD777B1EC12BD163FDABA
-5972EAA61E3C87E9AC007A052B1A3FFE14D7D43C7A0ADC89B1DD4CB4F9C762A84A6C0701494B2D8C
-4E4E1A9245738BE4111805C2F153A20ED9FECF2DCF4C8F7C3BAF84D60454A7403D4F5F81C6404173
-A7BA81BB0CEAECFD493D877465DC5735D43E3102CEC57B8A589182FC65A4704661A9E351FCCBC731
-5A87E62F65D24EEB9CEE979C6E10DBCF5C162ADB926EC8CC9BFFE381F6B8A3AC0A19D1631BEA2938
-731AFC99E8EAA39BC75DDB3A39D01AD8F0BC1838F4D674B9BEE9F6F7BE4D9C8BD97E8D171EFF330C
-15B76614A1FFD25B3BE19E4A201BCC850F926ED51616318C965AD2F0E56F9433B1247C6D5B72EDF3
-D408A3E0674A509BF30BE813A5E669D72B978794683CA8B85E3469EACB167C30F7666DB5E081B81E
-E99ECFBC1704B9646B1A29E4A4CE5654CA8409ADD60145DFC54225BDB8485E39CC98CBC3F38FD0A7
-97E5DFC2099452A2418C6636BD2D5F6B24345ACFA65F4E7DBD2D0AA0C1776A4920B4466C509BB5BC
-7D6627946C4DCB38A27098B7B5BEEDC2B3BA18F927077F71E38644597719652037621BB350BB5369
-DCCC073954026E6438FD8393DDB3630C4473F06D9FB9E422E435566C396B12FDCD5605DFEA232171
-CD8EF298786806E9159B84599C26D4C7D8C3BB064665CDD072E2083190372AA808B2268B3FEC8878
-B6420CA829BCF995DC20E067EE6B8E44D2869D51BA3AEDD1763F7F8D2CFB8EC41E6E9E0129DE5343
-1457960CC51D546B10B8B6CE08A1C2B79FBA448DF9783D815608A16C55E589DCD8EF6B04C66232F4
-7A473973A35618000D79B8173258B7365C9691DDFE47B16EEB08B28F881828B946FB5D6FE10ECC6A
-FC4EA1F762E90B3320403382E42AF4885B183AA48DB5E4DFC9A54E0B4FFBF7C26EB17A4F13B4BB93
-12234434FFF05549E7587BA0373ACB3E31418BFAF400D8938FC6466B94273D1735306AB912AAB13E
-31DA3541C1733E2A7E4DA5B82767D37F3084AA7A7C488CDCA7ABEF77D19E42B4448ABBD346E9BC28
-8ABC4540C0A1CFD0BF46C5BC7454B25E27E9906A3E6CBF678BFECAD1B19B4E42398A210CD567EC35
-FB115D5C0DF0EEECE593982056B0E1D14C292F70B3E049984F8881C8B477956AD3140B4AA22256DA
-AC0D11C4126808B5B9F922BCC5F24A77FF352E2C621A3941AC07A20E550A69C49B1B87D116EE6F2F
-970918F0F1A501166AC4423FC212E4EC8039AC7F9C212D864F418CBB92948FBD588228108FAC1AD1
-837070512305C110F0FC3FAFE6E1529C2BD0DDE868A9EBE5137DFDFC5C12A3D08014BF0EE27B1080
-02AAD6B607F5C5C0F1B1EED3C552919C9A2E97204A8127F97B1066607ECFB47BA95EF2B51F007C29
-3B2F6A63041A9C1120D9CFCD5357222E5B02DFC73CF94CF9B5CB00EAF073E9BF253E30E09B50341E
-57BF245A746EA31BFFD0B00201C34CF0881BBD1006BC9BA7D420A48E53686B598BEDB3449924EBA5
-8D5DB1B1B01AE2BA281D5758C99EFE38ADCE18F7B182FBD0D0622A6EA497A4E7C00C7D17299A2765
-EFD8DE376C214D01A21819451FC04A0277EC84A151FF93903D61C78AB7886911E36E12526ED855AB
-43F6289C1890222602B8EFBF15782B374AC1E580B6E963403D6D15A051DB8558F2E61C0B9476C6DE
-5D4861585CF515CE951732F20D32969F39192FBF1690D242AC04D47E0C53D467D0FE4656B9526C0F
-7F852348B0437737CB0F29ECF9B54A5E17185236DD0C16349C3496F3ABA569EA20E343F6D771210C
-39DC932DC65ECEF94575C6E76902CDF6C8C8361F9C757A2577DA535187FD526699917CFE0AD438C2
-A758727B306BC7979547E68B94E87ED820614BDBC649D469EF6B4E4E3DD2EAEB5F80B22FE576CED2
-56495467C76A75F589460061E03F3A1B065121A5ABE3E2C51148B3DDC9F624C97889AAF7FB84B158
-C015EDA5670746C6359D27B0C2BD65144F2B88A64331816DA904572BE398E015A9924218B3EEF951
-23AABFC3AC8217B7B4F691219A1C9DD0A3EDD5C04E63ACBDE71B423522532561F4B71B7028415C34
-37E346BE728A415596AB749015C1D59BD8328E39A850CB98085B34B57FB52DD1D154F98FEC49B3AE
-BFCB1672762E4D2A1ECF02787F59DF1EBF2625C3631BED849B298C6D226BE4E6EA2AB66A287D2BA9
-2A6C9C612A5F849B3CB3C25F17164BE286F6E4F5E7E4C9EB17BC68AA5EF0190B64696A570442E1D9
-BDD1A30E7692524E30E4B4C3DF84481DCEC6E10E7308E65DE9D90099F3FABB3F4F766BB86CC98594
-6D2003E21287761A7386CD8461615B570BDA015F5EFA23D18E83C325EE444EC166A1A32D9818C2A6
-5A092D44156C06D3FD079B92450B8A491CBB3529DDAC7D95AFE8EAF33777FBB265FEB8A4B9AFF2CE
-CEFFF49AFBDCF6C4197497D3B448866D70EF28D8E4B17E7CE95F43F64BB48C4A73EB84B26650F62D
-3E5199D64DB0B5B87702650ED0B850FD5D16C848D096E4C7E61BC63B2A3ECFC099CD713E12C91A65
-77A88D6F55D348617C7A49890A86EA8FE2045704B5ED529DB128C9B19EE129E5FE6498CC97087F6B
-DE96007C9D01CE9CAF75646E5A5B32BFEAD9362A52223D746943A2D09C536CFAF78E601BC2D2F0B7
-63AD722E3A7AE7069D65F9F2BDED7278511D0120F5EA071D41A69F8C2A2D720D3B24B4BE61C83FFB
-EFFAE21B0560A6FD1A44E53E42E0D10E0E93F421A8A7E167BB65F0D7F1DDE2809FA3CDFD931CCC69
-B119C83238C1C00EC100D8E7AB1C7FB02EDE97073C8A5860371A8132BE391EB1C397B61F93876FEB
-438C288EF2E38DDCD182A5CFBBA994A94A1BF818312CD8234215FCCD7C240A15AC01A885E1179E5D
-7D6305DC2F534BAA141F25EA6A5F356486E5FA0AE3C6980A9F5E8E99E7AE5B95AC42977510970245
-4FC951E4319AE4B1DDC9B07D0998372C0A95ABA6985A4DBE6DC633154FAA30ACE689D36A7F17011B
-F29CEDC58A6692A8B3B0A5742E6CEC2F69B255BCEDA762DEE72F125EBA98891CFF4D88AAC14188A1
-8D81424979C9079E44890D94EE094D4CADDC1C7AC5F6791FAB8849CC0240A579ABD800EFE3AA4EE2
-F78119A3C2806C05C2B1F17940BE73984982D1C0065433A9BD658EA31AC819DA9A11B87475BB565C
-C294B6F302FE3F7752ED9B963C5279B5F1196762D0E12E6DA46FF9A0CADE3876D7DF695D8965CB4B
-47B351FA3F759811269376B2C3134403633FDE27C9B024F6BA81F3E1699CF64A426618428BA6C326
-6BF016C5DAA5FA4CC82FB6DC23FF2D742160518CD3A65ADB38E53F1067076CA1625466E0C64670A1
-564A54CE14DC5C57D24A12283FBCBFFD0FD594AC2A56EE58B552F7586825E4FB1EC23F8221711692
-C8C56F42272B87EBFF3865191F1C11943BB76D8C0CFC53ED452AE49404D2C8193ECC2A7BB8CFBF24
-870ABA38D2CCF7869E9363DC0AD94FACAED5922B324DC3B6FE83E7B34FE29ABC1EAD62B49FFBCB81
-1ADBB5148D5AC2743E3A058386036FADAB6FF071BC1C3B8023F908B6FF48DB0AB1C9C67487C35211
-D40995E1892C8B66AD6C9C6203F6F8B513B11117B10DA8725AB45B4437B5A88A96AF3178D856D601
-196E8162868A83DA64E408FDDEBD14D6591881EA652032CF2F88B3FD6C0479C8F89AC68D14D01AF0
-CEAFD95AD146E68FAE01A07F39E7A0C5E4FFA6D6A91D710827CA5ACFE7D1F946A8D7B67621D60F53
-41F32C12A6EFB03AE5AC5373A382C044A276F6B41C173D0AAAAE0C1DE4C3CC71EC2637225CCBFBD4
-5EAB92BF39357C57195B410F74283585B12B926438AC72AFADAAD2D0FA2CCA728C8E86BD3FE75D47
-B8BEB96AB13B5480F7A3D5741EB51E3E40C21FF2ED7D9221D9877C7D1A8CECF394E4023FCF8C4EFD
-B38B839499FF5CD96A46AB4FDB46F35D3B48B91757C0159328120E93CF1F2739E936E28908FB1947
-1D3AD7F6F1AD2BD1EC364986A411CC1B547D0CA104FBC10B1CA7B638A60E75485574034561DB345D
-DA68415146AAC632DFA34769B6ED7D7D4694E92CBFF4EFB16B55495908102E85E827FC623CF1BBE6
-A13CBF64E878E1A2A159948B5529B75E071744A5F0E50DF18C110B0AF117CE7F33F8C959D4C98CED
-5A9D492AE6F56DA57B0F17495DACB130660BCEFB064FD8309D965ABE8D2BE98F6898C1B7A39CBBE3
-E75DA0FFEF6CC3945CE76DA3BE915546FE8A5310130AE0ACAA9AB73C7E041C00533B4BC7724657AA
-649B9388B791AAC5EABFCDDDEA2CC67A0FD0AE9BE37DF9AD40636538EE55A83F60E9E026C64FBD8B
-220CEB46E67410144A520FCEACA252E8165448F84D8EA083C793AD09B90B3EE83B73FEFC3365C729
-E3C738894B8C01C2F8AEE0CC8B114E1175EFB44CC4C6CEF5C8754B1CC7CEC200AD8BF1189D741CB7
-5BCA4E88BE959E32216AD33F674F49AB20A354CF3969F1611A95D3934E148831AE7C81A7EBE3C524
-4F743E66A82E10D16CC09F8194EA7A596BC5981D833318AB4F7DBF2ABCE543E410B649D18D146F01
-486159683DF61A3F880F9B21EBFAB77E908C6CFC79F89BA5F51114F0BF7C3CCEC7BF0F3B057C3195
-CFBA6908E31E0DF10DF69163C9DA7BABC00E9A580FA7FAC202910615BD479BBF76FB8068630D1EC2
-1CD2926D351E869E16C2CF1E023CF04D4FC61607DAEFEEEDFF5593E6023492F00029E2AE4B4A2C14
-50954EFA2792F32B4934A768F892171245A1E2F034E2B9F39833F1B331A19A386BAACFEC8C929BA6
-B67CD8922BBC9DC005EC3976575D5B0508D0717C6BF11123EA36D8FD37FA77A6F1F5AA84D4AD8D25
-B2C11D1877A6E2F9B74F3B5829FAEFD4F7209CE9785AA6FDE68672554A6F29D8BF03FE108ED90A7F
-58690FAC399A8AD3A26899072B832874DDB629581A51B3325CD9EDFD49E890EA8959DB937DAB83C7
-77F2A426B967AF5888C33A3635B78D647AD6BA441E222C958EA58D61945F781D7EF409771B89B202
-42AD7D07C2EF592CBF413C5FC89EC30FC9EBEE4BC63709AE33B65EE3091CECBE610B847E12C556A2
-79C8B114C3E460822D3330ADFD72BD69F54C08A81848C2002A08326CF3B09B1305490D35AEE59179
-08E1604ECE75BBE811A715AE8AF7EA9C371B322D0428EDF4C893FDEA607E70E1B6F6614947326101
-EAEF18E29BE0557D2A92CF1FC1505E8B434BC368CE07CCAABC0774F8A63E1073FBBCEB3F4052462A
-A9008A1E53F188C9EAE339FABA74AFD6D60F47282CD9FF721F64BD51787F3C13B5A6C5A5F7861171
-0111F5E0471E206D72520F1DFA465F4A23C71DCF99A04CEEF11B0E3BDFC35B7461A60753D3AC26DC
-50A5956C9195A4F5226388E0953DDD03AF128A98F03BDFA0602CBBAA20AB9ECCDF7255962A332E16
-D4380762E498FDA4885C64FF5F9B480DA487C58E78943DF62616E6E2C69EEC8836DFCFA9EBF58938
-A878F3E792E8BD8C5D6DF557A5D82018DBAE1CA9C64BA5AF8E21BE1B6680FC5DB22422220B776E9B
-A0BF1ED2B7212F8BF111EC8C8C77B223C05EB5E5F1CFABD2D037F4BA0F9503E2CD83F4519D180476
-63F09E308883F5DA5228F83045FF41214D2273B2FE0A9017D5E0557BC2A198C35D1E7E81F7965444
-5760CBA1D3F05EA4B90658E53FDF0823BDB1501ED51DA75C47395073D8980D1E3504E3F67DB3259E
-4EE73A87CFD96F84E221796573958D364A51E635FC55478C9CBF9AEA16B7D8C25F2115CFE4B7F598
-54E24968833BA0D64D1D332A666DFA2A3FD71B05A26BAB7DA382907B13DE0B80871DF184D3622B62
-3D7E09BC32A4F6EA2E6DA450A906EAD36D53FDEC7F83E101FEF32F4FAEC581B000686D86A0D3861C
-1E67F18A4C4647F51F978484D9E3100B37BE9D20AE84C085461C1FBF929C669E936659050C2627AC
-1B019837BAA75757F5B0A82E8AE9CF2111931A38BFC94744E2FDE3F8710342AC615286E4ACE7F269
-743AA05463AF537D9416230ECCA859D8C99B7C6E70BE7FE11DB698589BE9E11900C8E9582A4EF5EA
-94B5F62820C90DBC022A620EC536E06CB8BE7526A789996D0E741AAD980880A33800A6FE92286CCD
-02C9CB407EB31FB95D9C9F4AFF38B37087AC582C1F7B64A7C3D2202BDD62E9AEB31BCA85C4CF323F
-03DA9D318B91F78FDC0D266630F7444ED068B55C05461C97552366A82C2E743CEC353D51028FDCF5
-403B3B74D379B82EB69C4380ED40239E15A86B2E5C860891E26781CC111FB5705E3B7C7AF1946006
-54B5FA1B5FC54FD0BA43666E7BABD2C91C859F393ED49F7123EDFB648A3D6152F2C17F7E438C0A63
-8968AC06B4FB3F77F64F358AE063820BD33F0213C85C40E4D97ED100EC2DA1C2E1EA258BF107AF67
-5A9D995F60BFA37222B9C2B325C0052BB8537D2B27DD43A129C7E8FF42757B3AC9B447703D382108
-DA520B8B3BB3E8C7295B776B44ED28F863B8E1F81B0BD1DAEE8A171525D09D2620C04DD3219D880C
-2ECC79282DD7B1772A9CBBCA706909AE8BC7798E6EC7375189B6CFCE8A875849176E5913B85A18FB
-197A33CA4B5B4058603CF1FA79A56856B43D538E9ECE117D99AFA73B57E307364F553644DE01EDB4
-6234EFAC13046B6E047ECC8F63942F20097AD7ACF0A45C0501A95263DE9439A880D6B5C5214D2918
-0A54D7FE9B2E627EF49E189B59FCC78745E878E45B46C0A648955D3EA8C935113D94F92EC963F66C
-F3CF3A526BA71CDF3CD4CA69EFAB08B7389E3390716892A4872BD29DC1E0889A42D7FFB4190E9A8D
-05D84EB9C5741BE6B02716BC75E0106F5F94BD3778BE985E03860D27E44088C3CB2A059DEBC420DC
-E3A8F4087A9548485E616C409AC400DD1C411CE4B6A229D091B253EB68F06E43511EC5AA6ECA4D6E
-4818D6AA2068DA1AEFCA377611BFA816B5215182432D5683294D67A7C1FD76C52233087CA44943EC
-7280005E93145F5E7AE50100C18364E1B36741E9647C4DC1F68A58EC44095920FDCF05532F603717
-80F78420077EF5C24D63E26040CDDFF8DFD65D871DB943F50CDE84900C1372EF33FD8AB9889C82F9
-4F61A0E6842219A0F39EC7B232CBF802C4A744F33159432E827006C7CA77E480A48A9B0E6A876158
-8A3102E3F98A77BBD62A3A23150FD140D3941773BF7CBBA2338FF37B9EB640558A2313E8824E8E62
-0331568A9B76F4897198A709F9313F4AC40827D8C3A71F2ABFF02BFD57D30D0B14012FB5C39B85AF
-540DDA0ADC27A85B31694E8D7B61F9D9B476571022D98F2D768246550A877293F3FF6ED918A498D6
-A600223E1A61890C49ACFB60265867CE9464F9C32C59E94F7641C3873FB4FA6EB237F8ED94579957
-270D6FD640BD9543E683F2372CCD7B60AAD269E03A72C5CDB732B128818D41A6DDD2BC139F7D3911
-F48E1B1D263DD4AE8E4CE1A686F3A00A2CBF48978631CD243566E22E68F8D7397134A3530EA3745E
-4F1EACB4D6A5FD84C3011094F37573F7F9902305020C53926716D4780C6B0A257BF711AD94C83F1D
-41A02C1C7DD203A3E6E4B14EDA2FDBB36B063A3E074495F626B0EEA146D22AC33457F44F41675967
-6D2A0566EC2B726D2F0540ABF225339F02F406D4E7A62E5233DDF20AE7C86CA0CDD561F33C422654
-BF2DC3685CA91BB9D4B09AC8B15A24A99FF56E2894F11F7BB4728FE8F0F5B799F74F475D2D01F61B
-7E9E0E541F7FEB8A557486D7DF2CE50927515D833BCAA1CD9BF7A650BEE9E003A5951C98ED147C4C
-52F64F692AB281984EE65A47E44A4A5FA93D6F18D276D3B01C5E5F6135AC6940524CD713DF4077FB
-4943E8AC927A68489EA52ACF7A854393CD027EB52EA2DC6234EF034F3DC742D6DB5A67FC21D22B97
-146B9C268BA97C30161CE01EDC69A6A1F05EFB0E06F22644E1A368F0E2C0C6C1C832878E0614B74B
-D645F5CB293CFDB7618B837FFF14A1210AA061C8C81867244305B80DAA73CB25A417228E9559E7BD
-52C119B0CCDB7C4DCE7E1B9F7E8EBBCB575E5BD213BDD6DB88769DACB05E5870232F0EF82F448559
-187423409EEF756BA6247493BE24CB1879B5DD822E03D0ADEA1EDBDD83D3FC46759C679B921F0616
-F27212903F728AB44C1784E8A7DCED0DF5625A7D3F48A20FCA34008184CECD145CCD98E31B79E174
-CF107E8F35C40C19D86B40BAEE6164353408801EDF75A619FFC5B6FAF3F3A95F64795CC40C1F8963
-4FD8C13852D265FBCEF834C800AB46E3E8167476B23CDD8AFF6E2F997C99A86A9CB30EF8C853154D
-0D89EEE9B9CDC1B4F27BDA32432A4173B55CA8D9FB50ACB2D886AD8E5862FFD5DFF224BA13C8B8A5
-4A7F1A9F987FBBDBC5A3C3D762A5BE309D5D926AE5093C40AA47B3B1BD828797CBB9BC9FEC9D19EE
-A73D2A39764816113A8EDC6CFA6E605AD578FC8E30ABD600658A49ABCD5AC54655D29C50FDB72070
-169D1B389F114B7C71EF95A80D82AB537AC8C165D47371FC142A51625029A990A577EB1618480D72
-6DA93C98E5C5F24F622A850CDD94BADAEA91D4BC32CD50CE69E9F00E77DEA8EC1D37916398FB7092
-402605359DF08AFE7B99C76C2A7C70383F28A7C000C696F45291BB8F074791798197CAFF1544C76C
-EEA8C9E6D76EDCBD92A86DF889481F3BBFF0865442264F0EA40D3CAA69AE467A08003F9C30FF7F2B
-77E767580575398462D5B1171DD441D8986F33BC7BDA17D413EBB6B7A32642E33F20B284BF3EDED0
-02352FC66C6F7741A542155F4A159CD778BE56B9492CD95115C1A06189A216CFD2E6725965A13DE9
-73765A05114D9A5A4BE0615AF8BF6A5EAFF84468B849954D15BEAE1CDD57C435788B331905C01421
-B50F20B184506A0BEF746330BC98E9C89AAA8F9D102F158043BEB6A682059A1C8B8CF67B2F3D7AF4
-D8BBE086254CDE53765E3226BA2F95AE8063649F9F94BD9519411DAF8A0287307335668190638806
-E29484A4FFBC1E46B1800E03B162C23B1DC0B4C0DD3C7ABED2F00762972EF06EEB9BCDC7B3F39C70
-BE32789D366F073AC3280C273DFF2979507671B3E1E7685A9A4F0FD3867F96DD675BF05F25ED986A
-79249B75F182FD73CDA2A6A66D693E4CC5AFE3402431B2C816DA1486C34BC9DCA4E2D51C868688A7
-787CD10ABB9ACA14B7181369DE89913CD8FAB58FC84519EA2AA14E54B7A8CE474F213E07CF2DE2E8
-88093DEEC937526816B71C96ED75FA9E2EDC0F9E6E84569C12BB8E39AAEDBF546630745553D6084F
-F9524FEC6A7264F88CEB7EC3358E923B392474E3A48865564431662988FEA768CE555AB0DA48BD52
-6A84B0CB17B4584066C1640C1023D91F7869EF0C4D701BE121A6E3C832010427490758AED7A2B30D
-6028F2215AA44E86D852FDC67DA5CCBA79EEA863BAC9EDC2535B66AB0E54EC4D4411390FDEB8D1FB
-C1743F15C3B68DC92A8659E7A892D5E53872EA51EE8CA7EF51103E87C29A2714E907C79DB9CF3744
-1785D2F73A1EE58550111A4D9BCCBEBF2E39CD3B93DCA300FAC3ED1ADD8215301E5766C30C8CF296
-75746C5A77BF1FE3CD75D25CF193DE8D9AF02AF8F7A6E8F84B548058CDD3C6998ED13463FADE7391
-26D83D3CE2C7201F955382832E32C10DCBCCA35835985B9A93F8E3B0208BE6E92428787C47D3808A
-0F77B8F1D76E6BF6A17FF81CDB065180E03809D03638307BD7BF5CEDBF64904E918FC805AC905379
-928B816480F6E3BDEE47042CBA98539DA0E113B1A5F23EAF1A3210BD18561985E6436EAB90395DA4
-77C7A6D7888D2377B3FC4169368357D880CE041E1F7C875E956600DB7D9B35D1EE66BE476E9DD806
-4CC02230276829C2C0A098F051502E828A0CC505AFD8C3DF293DA1508AC4D25866BEEE6BBD5A230E
-9C2DCDD4F06883936381F476DDCD86CCFE15C2CE3C3243E148CBE603B8513A7CE7A6910A66A90B70
-89E5CCD4368BEFFF2BCF8E918BFE0A1B069AB2A914CA7BB91A0AC3B3C0B060FA1A0316F6135E890E
-E549315897C8464496CC6DEA0F7E3AF43FFA4C3281156067582CA255B1D2E80F999A3AC0402BBD17
-01824C3BB524130F5B82A45275807BC2F3A0655EA208F968B297F98C369192C8ACA26BEBA7DC4506
-FBD1305E2EFA4DBE5375281A88EE2D6FC88FC0A755E72934B4B58F6DD3BDAF7171A4A3C776576735
-2492BFA9A7758504750AB7F38754683B70E9E293CB1CD7B23BA62BD7397ABB84D7EDB22EF6C3F58B
-3EEAF656E361747ED04020163253D1CF3F905B5E85F83FFF30AB2778CAE43781667C0F65C8FD404D
-6B9202A99EA76AF9AE1236631550B66B063847180B6DCA832EA8DC4A6EFDB674B5A26552A7C7D54C
-2799C7D4E03C24F661A91103086DE3A90A774A6988347656344CFBA06065AB22476BB09FB68F9928
-C0045F2764AF643CFEF0516D87FDE6DBF93BAE2829B176CB507BB99835E01BAD5E55C2F8798C93FA
-35EB3FEF02CFA31D3D21B030547F86D27B9448D68E2B155A65C742BD2999DAA0C3AED64447B9CC67
-F7AF33B63AFAF25F3CF7EF86657FE8F952288CA4B691D369E8F1935CDA44A180A6767560C2ED3F2F
-CC38B6BD7991D4170C7C566D690A8A25BE03212A80871108D18CCEFF246623E653107631F29227D6
-4754B2208D19F84E547799E691CA473780DDD56AE620CD953D5133D135E3D51F237078FEEBB73714
-54EE633CFE238AEA63F9999E32850E6C197687A0EC4E5908D2A18C5349627E336AB5E3185B218228
-603A4B1852069F5EE849D571B8387DCE1F8F8E9FE94FADEF128BA83BDD245F8C1C27C11F2ED1A8AB
-2D6D601726842CEE744EE7AAC6B6FA16CCAA39DBF5B3B1D47339F31DFA562671A9CF7DDE6915FEF9
-F19B3E068A464DD350A3AD146D1A241673B5112A4A8768F976723E6E184790C0604506C46591BEF2
-106C40789B733331A80740D59ABED39868F80BECC2AA21C400A0BD0CC326D186FFF9EB37680F1EDC
-32AC78F9059280D07B5FF2E354FED545129FA5FA8F3D4317FF21E027602FDB2522F049BB545FF4DA
-60248130F81F4E348373142F3148DED038AFBA818F26D5B49FC02DE9800D894E9239C88EE0EDE431
-F8083697CB0BE3B497473473E5714717C914A1A926730C249413FEA2615EF72BDB0906933387A892
-370F77EEBF62D26CD583EE643B02E323821379C0DC966407D36AE3CDF646B95DEDC7D7FD0F28E950
-78F12DFC0D6400B327B743C548A0A3517A175A7ED963ED756B1E107AE7087E2446BA702CD4E26E2D
-CDC1A8B697108B5B5E81E9F03105F220C72D4AEBC57665887C8C7964089FBE9424120EFDB14D76EE
-F8C6F7A30B13E1AE90CB9D93D2E14BDE47F4A1D05ED5B18D32AA39911B92D24C93976ACEB7EF597A
-75161923A73B2CC761785493D0EEDC08B5AFE95F3C006B41438A0785C962B070DE2BD096CB63B847
-C87539880AA3D3FC5C345E0992D7BE77C6CFF4948617FDDA784CC55652192B0ED775129C4EA4245A
-41BCF3875BE319DA0EE2DAFEFAE920CD2B6C6C2001762F88C0C5C05053025C0349DB17104360FCE1
-5D7F3A8E30ED13155A74FAF91DC77B8AABDD6FBD5A1EAF255DB209D7F2B90822296B5603FB5E2CC9
-5CBC5F7A6044058B8044ADCE73ACFD896177F1F70EAD2F6534DC3AD755AB2BA87126D63CA2E9C441
-DF0965BDDD6BE494E58D6B5057A561D1E31BD38E92CB73C1465AF6B9C001F7229059BCA4104847D1
-639E124E082F7364B56548BF8112D0EB461B316B2449049F6A476D36D6B7C0C1126C08F2E9A1246A
-3B5B21E7C8FAC6E23B82E33A7783E4F31F0240E96E69C9444E7D7A928636CFD086475DF1E0A28464
-81387BB2010655B9F81A0744121699B4905AAEDCC84BC5D5AB3674601DBBB651EDE7B5DF05C8A463
-DAB41F79706D285C4F9063997F7AC8CEF35CAD51FBE5F5BB1B3FA6DA2C3ABF2B3E925581349728D6
-DA0D59C1EF6444539742EE9A23A5727F20CF9377F4F84DEA420607015A30FB14632D084A2DD181BB
-02FC3A84FC499B318156B675B9CA3CCABD87FDB2497C6705FA70EBA43ADDB6CF961B30E8F6AB9F84
-E1DD8D6DB3314B34B7F7AA3BBE19D5BDC75ECADFD8EAE19E07B387A1FC586F0F30DB695926764B54
-0D89F1D854B0FF86528AD9523CAF56371E29498C11AFB2F4D5202670C834E930103F039D13348824
-16A49BF93B84FD3CF1209EEF7D4994C8302436C0794497461C11F5B8BA152BACBCC08AF8A15F4A4D
-F3EFFB7227CA97FC21D2D0356C93390C749CBE9750B821F1A7BCFAE2C8BC6D9A27F844D8AD088320
-79ABF0EAD8ECD4EA72846DFEED021857F33C1ACE4C07BEC90398B629814C498D33BEB375B9A53DA0
-F926FE6E89E70322C72CB2DDBFB16B13EF7A4F50DF783316584C6AC2BD7D9029124933133B2229BF
-74A228868AB30EA5C3E87C78C3F0962199480DBCADBEF53BDDE45849DA857A4FD85B96682F1EDEB8
-5384929DEE4AFAF84C51A09F5D572705673D885070303FDB47DC898F874E103A9E7C1E894115DFDD
-AD81549C7375D4AEDCCE2E52C13E5130B47F206F7C5AFAF1F9EE83DA8188D70B473269CA280A6A02
-DE85300B93D8A4F6B402FB5DF58F1327470CE11CC63ECEF2EFAA396A6680A6746A20382D9529B58E
-7CE684B39AC00F7086BCB47C2230DF0343BED9B9152A61C9826AEF9E00A1452D91305CF05490D4BC
-0BADC9C6FCBFA93FAD52C3A80705A1956890497557C0873EBDCF61CCDD2219354A4F5621AB33B119
-32065C1D990A9B68858331EE7875CAC855F98563B14EF9E1060BEA90F195AFFF94728AE935453438
-DAB35123D0E2699475884DDAFC7307A5CC06920F35341728D85965F5BA86F261CFFCB1E29B429F97
-6970D42D10E6AF6C4B792B4384122AEF2448E22A58D3AA007743C71324EA08D06819FED14AC1F22A
-4F0BE4787BC8738E1CEF240677571C65804ED3E748D72E89C94B6F310BE748FAEA31EE246859CAF7
-A1EA17CCB5B246C87EAB771E2AC5D378650191081514DDC2C66878E3766CB20DC49F630F2743A7FA
-ECBE9DBE9E815A3CB57DADF2BFF5EF2FCE23A56298A30A2E052FEAEFBD698101F9DB992613706693
-CB0EFAF6F60C8BB5E7D0A50B3392B9831EF3A304A846CD4AF431E9F018FCD3A5B16387552D55DAEA
-683D36257418AAA0E7BF8A03ED7BAB114D7C15119E6C71C1946BD7903C1C42E115E954619051B853
-BF05AE316E15E619A7DEE498F771E809D9435969C1056402725EF40C0200E083F3EC6E0EC27B8ED3
-8DFE32EA0E5E156AC36C4BB9AC5ED111A11678339703F1B9299345AEB1F251FCEFA11FB3101CC499
-907DC862B4463D5523B9B25C5B69F70AB6B29CFC1DF1ECAB8227EB3ED1F882E90B12080EE003714D
-403EC43B7B54491446B6A3DD6EB641EFBFEF060C45E873E7398025B1CB7065441F1753028F6F8C49
-A96801C0D598E098EADC96A21117F817B6FD6E6947642F93E22425A00E8F6B592AD50B317B69C0F9
-4047386A45E5EBC9504FE55451A01EB29DDF9A41D4BAD85FC84CE280971E834F06CEF49C8C20ED2C
-EAC889F158CB14A8C070900478804CFF1D1637CC880C81AA287D8382837FFA8F41FF3C9DF2F22CB2
-0044C171E4815D0D0F6C22D19A52114E780CECD71DAF63427782E85E463DCB333789F496340E8CFF
-885A9D9A4250118B439C71C6BE51A9338BE29251AA794EDC67DEEC6337FA63CA9B03C1C9F75E733A
-4A918646E7BC9792486CB5A4BCC5F84FBABDFE338C3792254A3EEA3D88903C2C47B91E076259DCCC
-8BD3DCA90ECCC832C09C45141C6242026BFE309029A562C3EE0FCCDCD40E5CF265ED9C3DE582884E
-0E14819DB98B3AF734B1B3276AC41D43384EBE73003D15CE39FFCC04109583390E470F431B4407F9
-8550E138F96C4564B494E5480F47C853BDD237E27301F55E42A3BED18FADA152572B7B465A581DBF
-E7DB2619365CF16D71BF8F091862B9FCF04BF8D0859A76F46E7B5712F2757EDCE332D3213B8A30AC
-2CE7D7797EEF6F30904906B0805DFA7CA36D32A20D989858497A66CE72491393DD79332003D55C09
-5A5AB5DF761C4BE5C041FA8407263D604E53091F7B6B15496245DBBEE96A63F10FC2978D99E65731
-28689366FE8B0BADA48B50185B861BAD03E3600F22BAD4274F2542B635F6C7944BEFC3BC741BDEF1
-1A8DD659038CB40FEF2E16AD1AE7EBEDB7D9BA15FDCF26355331505A386DD7399FB999535D6061EA
-BC61DD76EF3EB457446F29D0BB6EC2FC0AABAC20B27A3C123C27BC27A76336D0A0A6D456DA070367
-4D959A4AFE428E2206A511BFC80039ECD56E75F69786DA0A8084D81A66644DD98B6018681F1D70AD
-E09BD9BF3D16D68DD5D0A03AE26DCF1552549E459FE190B310A8776B2C8468C14CA8B1B9A7AF2956
-507A3B705AD75A17A0EEA7FE089273353CECD07BB8563465EC8DECA0EB42F43FE3664EB5F31E1D13
-24185539B28D508BCD065ED576D8814ED3FD637D576F027927162344AFB0255A91FFC616948E4E35
-8867E9FC76A9AFFACAEBFFE110808C1532A2BBB0DBEF3F010E45FFC73F228D28F12E98478B27397D
-8F456781ED9E19711DF2E9EECBC3FE61F7493FDF1A59124668A91BE51F122F93DCA4BBD22DEEA339
-E6EDA3D6EBEE03DF958113E1CA49C8398D2C59DA6764882EE3663F62A55AE50A7E91B4FEAD1B11FE
-0D50ACCC5D75F1A515F0C53616A500F1491381DFD0E2477E402AB0CF9F67D501A442629C8593ED5D
-25A72EDB9746B02F2B0F0759CC9CDCB4C9D8B4519C8C617E569B432F0CF6890372AA879CA7DE46E1
-10D95E230A4F0E52CF65811C54365DF4A3E40D819E2FD379B47DA3233D0DEF0EFBCE04AD8BAA3888
-4F6A69FE5C373E38AE0FD0241480F2BE7CCD18AF85916D2703A049779FE7398FC47D348454CF03F2
-2EB3FECC064606957898B5643464845445C25C0C7D685C8DB042AF5D5882174374ACE90081C68678
-9BCA96AC602EB41D317BD652293EE628951875641661EC86A2C40A42E8F0813A861D41A0F5178E55
-43651CA0E99150462DB5EE0010F00DE6D55B0D7FD7EC5BAEA24ED3E90A7D6A0589761922B91A6A91
-3A7FEDDD3B68254D89ECF767CE8E27F966426A8B4FB1B4085384FD09D63E288405B78A646F44C87E
-EE22C8596B13188085479F75F63D3D97A28F9C8306FD207DBFD38DEDF0FFEB7DD80B2A3292DFBF1E
-D605ADF1B33E85B010309E3EC058FCD922B1325FEE71EFF2DBBC2E68DB52D513E024C01D47CF657B
-B61C9734649A4AB63C0AF4720EC3EFCD82DD3CA6E80BB63BCF1B8DE810A0C6C517C63B76FE68C0B2
-86867BE102424FC31C4937048B6F323D039618586FC21731005D949E7D802A430DF8D2F0CE99F2A2
-376C2953EFC4184355E4D12F422C9E1E25C4DF38DEA334DBC89B540E14C61A7769D77115CE8968FB
-76B27D0863CEA2496783114C24D4CC816DA884D953DA3F9B9D3AF8938BC607BF26A071956CA07E6A
-5509EA2F5D80E5CBEB98041B197FAC760976EE75B470DC20AA023BA3F63C2876EB281FF5173BB490
-D6815604517AA1B1FA0631401B3C1A04CA103E2CA4ECCD83874D9CFC8ABC134CC0F9141D9AFA5684
-8BF222342016C556C14B3482482DCE5D0B6EF1AB522AA1812BDD8DD3397E05327EC12748FC480842
-9B97202E24E1DE0C7C0D272C046BA73B37D30930C5DE5A47D96955CB0F5DED8F3AD929A8B42D2839
-0458F5910A0F93610F79EDDB27078943DFE17C716D65F96589769349F3B66AB7B8C004CCC59EF688
-1F745EC7129865A76F9C2D029D4660CCFB4D5F9D412BA3372A27CB175E9D65F759575CF14A5899A8
-D31FF039AC02DBD8391C3397428AC0D5717C005200790785354813C8859BE90E0E17914F6CB9C674
-F1E9A9648657B54E5E1F52756C4F982DF74E73F6E4D40718C71D1D0E2420FB7462FEC9E457C0414A
-96E475C6BE2C10437096FCA0C942E995A9ADA789AB637B648781D32DFB68E62E91C2CE7E13680F8D
-31ECF8C824885FA7618981CD05FB335AA111B409C59EE337DF4E5F9DCC920A5FC0D620DC07F20DAD
-63F4FF5E0EE5A2F390AF1C32122BA7780F210229E5A5E3ED97BC1C3CDDDD456E739CA782EDBF4B81
-0552368E9C734B0C78B0B8E3F8B2DD782862B74318871BB1EF087828CC173D7B049811FCF598B8EF
-DE4D9BC5447F4848C98029C854F3AE461B9D46DDAD8CE67A521F3C811A81A396CB0F80F3C8D8EC88
-30532FB7F9624F7CAE0F8C6DF875073333DEB28AAA90AAF486AB8C932553CE697B885E71EC8E40C7
-835CD5D59A2C695DB9E51216FF9B77A15B0DA63717FF25B05B939E45CF7FBE490E51E9344213B32E
-115C2DE14D76DFD5845088DE645B0E75042A61D82FB1753C445AD0A956A1263E5A096B681D3BC51A
-9FF32EBAFFF7ECA8B59D40F0937EEFF38312AE57462C7BF3B1FE24D2BA8DFE84515270E09063CE3C
-80DF4935E409F62EB4F54AF16A186D4329972B9BDF15FB08461B688ED49928429226CAD9F67C9D63
-6D1375CBB7B08A5631956B7FE29CC9EFA8D75C9E4919C8C2C54F401D2E0D7BFBA40C50CAE214D210
-C6F3EA5802339F63FC4C1C1995787617F3EC2C806CE44CF8E29F76606CD5836F6E5A2E423CD791BE
-CD3F112F25657DFED9366FC4ADF90B685CCE4A5698E5FE16D7542B913FBC01B288DD13F43DB2B1ED
-8CCB80159DBDC90A8132125DF8DF547C4851CA609D1F6F4D647741260E845B457937787827A89E37
-CDA06BB191669AC84B8608EAE132D10177F3FC384980F3A6E439B048A38D0D6B9CEF09F3F2D732AA
-71BD058169D6D0F8C9D146D9DA046774027559A8B3843F6116B418427E78476AD8F0F81E8A6B1209
-8060FF7DD686503F972D6C42FD6CC29C083AC3D72E3751F21D2E44A572EEC80E81EE44C90FAA7AFA
-BCD3ECEB98FD4068F6C3A4DED0E6CEC523C9A0054D1FC2A8D61A4A26F9BC250B8F302416924AB22E
-722297888B85B9C12F8DFD2A744CBD143F9B2514C1CBE988D9CB4E77D90B2EFD5C2A528355A35F7C
-4AF039C7D1D756305967B847D4ACBB81263D4992C001E2A262B9FEE2D1F5022BE5B15E1D8F1D67BC
-52227344EE912C018CB73E5F47CED54FD202627777BB77AACF3EE6B22706FB2FA9062BEE87E22CD2
-802E7706322648DAA0C624EA885430175F746E1F536F9A8E1C610C4A761D07248426DB63C9319A88
-A3FA449C3FB8AC94C6003C745E6BAD717A3B2EA3862D1E08512A98E57772A62F85F1E2FFBA40E2EE
-43AEC11203DA9CE5AFBF673436F2DB6AF85BBE89D802F7A9E5FA25A408DB69E51F0577DD26F94CF2
-BA2FC53EDDD6FBEB534AF15F74F66EF8D14E7FF77D8A5D284C8202DD5A6053CEAA606BF925992382
-5EF4EFFAA8D878652A4CAF2EE43ED26BF3590402686C876F86C1AE95046E527617CDD3C429BD4CC3
-F9654D2C76DD4102471FF746FA9FA379B16DF96BFE3836D43FCC0B8E95120C27370049ACA4AC313E
-1D50D72D1814F2566B8B29FA9C9C20D0488743722A766436776783B939171FFFA00E04805A8B5821
-4D4F114F7B9C3C17CE7486AEA2BCC895ECDE809502BDE57981318A93F23016F056A421B733C4590E
-34AB08BB348DA4A48F19B6BEFAA1DDD2A49A6C440443028333CDD48C85CD698ADAF3FD8676739E44
-400A98B575BE02350576F96CFA54D4184BA47555B8D12374B86D038D085F7FA51FF4BE2FF5981408
-999B48B2FAF305212ED54B2E371F5A0074CF68D1B0E5CD279BBC8BBAEF694A89A6C43F518D01BB4E
-8402AADF34E96E9B3FCCAB4CBEA2741D3FD9ADF7AF32388F7771845AF99965A6078F4DA335EFA436
-BE36903E33A743C112C0267309F266DD44FA998C9A139704E400B89DAB952EECFE2AC09C82D9F497
-5371CCC27DA37890EC84123193314D8A7A707C217FFC951A547EE5B6D1B7C8ED85BEBD9D3F4B9B09
-6A78E5F7DF88C931E3F396973974454E59340CA51DBFEA1A00DE084B64630E26C6D6A3593B828814
-E27DB0186BF2A87EEF268AA1B135AC09B52CFE53051CBCC88CEC5657BD47F603C8E1A6249161684F
-D9084AC279F57A4F9BBD0A546A87E147B62AC860911969A29B8AA20E3AAAD0079D64E6BF1B0F2CE8
-F0C54C9019207E1B403358253C2FA93A662F63B9380B65C5173C198D86A3D0DC1800D1F5378DA39C
-E8523EB62C6AFAD8A0D7AD1629F2CECAD82B8FDE38975303768C7D3A08B91478EDB3C45A8C6B7725
-EA8596A8ED50B8355FB852FB8966479D12E1086223B1E6523A65FBA81DD106FE254F7309718768AB
-009FF7714A8C363B09DDA73CD3F81BF9C0CD3B0C806CF3B7BBFAB73E46FACAD2480EEBA97AE68EC9
-4D3D79AA01ECC22067858EFFA9D7B7F997ABD2CE5AAA8781E5499E8580C405681CC63EEA53BB47E5
-5ECC5BA2A7A3C5472DF034B022F455C60FFF971B01583A29E211A87F7163187B190B0C1083D696B5
-86E9438FD8BAA45101A5EDCD1BE5AB9A585511089DDAC8DF1B1FDBE582ABD945E67F99ADC4452988
-A9859E39C90EF794C5C4E62997085B7A16A0D90107D08610BA175AD66377345662DA7DA4D8FEF847
-EE5D57E3AC54B928A0957CC1C944E7FF14658FE4A641CD26C61105C0F136A75950764B69CA17509E
-3C19351D456B22C87C55E8DCC4ACD3E150D936333FF36499AD6B02B6403DE0F12901301ECB2EBA10
-324BA72B58206A13B8F37B0AEB12115D0C12879C8EA8A2EB70E85C95434564BA3DFF481C8972587E
-FF74EEBBBAB14FB32B8A84B8FC42EBECA65D25E8C32C19CA5962832BF45DFDA4E871508AEC318495
-0D6DBE89019CEA29E40484C36E33D76B756255531ADD1DB24C03B2A64A47BD8FBA3FDCB1F5B96F8E
-ECB60D5834AB001A70740498720AFB6EC03445CC35B51F7987109618C6C78CBE3041BEDC69B6FB12
-8142CEC5C8683B558AFE3024EFF7A12D04EF59A72E156DF11D33ABA08A8EEB16259DD9529CD003AD
-4EF4137B6FF1654236473DFB93F597331A5E26C7796F528F65C94FE07B3B4F4DD49034FA0CC189DF
-CDFF70C2F1C6D3DF30AE103E2AC5CFF20664AB934CE5C19693292071C93BD590383E0A1931E04D1D
-DD18071DAFB628F5D7472E457BF81D6064EDFA8DEBFF91701C5038CB30865D6122076A336732DBCD
-B0A625548773D0013648A76F07BBDC9C16284D158EC7A105AE37A62279419C3A2F360D0C7A74D6FD
-D0E36DCA2A8BD59945A4196598F690878F84C894852C1811AFEA4BE3B9F6A5219E6628C66669DBD8
-FA9A0CFC2DDE7716A356FC4FB271D8A2CDDC8D4684DE447355BC7A287DC56852A638C5777826EB6E
-B72FACCC86F80BEDDD0D649A883CFEEF4D74750172A90B5DD8252592FCFE19FFAAD868E99562DAEA
-E70514F5DE296EF7B57E6F193737ABB6AA317956584423817E11664A67389197AD9F8F771EA59551
-98C9EE40A0761639E638CE9D890DF468642670235F1373D3AC6B1F43B5777FC0A91A96E095E89BB9
-FD62614DE456CE7AFD6B855112367573FD9FCBBD4A4F9C676E672D62DDD34A9BFE8311B6175A003C
-D143C0DF15E4C0B48C735404086E48AEED6B6FA21FD9F40B84215DFF287F0677904E2DDFDA774A40
-19DF45CC877F553E95A1C65DF1D67BC0C60E0BBA4D205C0DA3DA80229FDD71859F65AD04506B308C
-2B783839F31CFE4425263224F08C5C7E98A2C9D3DC8EA5AC1920F4E395413262E0836BC019A092A0
-DECA104EB2DF6B63392AE8E2136379140DE5FC98B0B69860FE8E31DAB5C5DF7807D19BEA34AC14E0
-ABC6F6519C51247B104DE7D912C5BF6EF11B48FC6DF84512E9F5FEBB48F72FF1B722BDC3BB2E835B
-2E7CC6324BEE84893996B8DC2D4DC2793A4F69C18E63DAF04A7BB5C0A9076E2D5A343E134CC3C89C
-4712900656FFC202E1988526D80C7FD9281FE47FBA8AB5D025E63A84051F6B13167BEC15B346212C
-BD051AFE7A98BE3A2491F3C469718A58E783ED91F90E274FB4978F8719E92A99A1E8F142EA7E1F2C
-46AFF0A2FB50F4D105130CE8EA309B0E480DC8F80D506172B609EA4BB4E2BBAE98D8882814FB273E
-690DA990B60A9CDA20A2418246BD10AE67D846A0FA815AC25858145ADDA106A6778A11877FE59A2A
-BE300D7DB9BBAB31CB5B960B7E4EF91D4600886D8795DC361CBDDDDE05EBD54B1941F426F7FA8399
-270D2F54C998BE92D146227270A8E89AF90C48BAFC4ECCCA01E6322AFC165743475E752F39BDAEC4
-9297290510FFA264342A0AFE2985F85DEEC66C36EB4A1D46683EE7C591A89B81569A8566AFBCA268
-10DDB0970577A76EC8A066622606B08315DB0F2E6C671F3259C73637D773D1A180AAD66ADADA2A65
-95B5F481E5F59E51CBA876FA06D21E1D674CFAB46A02D267E20234324D0891E7847C13C69BFCEEA3
-AC55F2EAF753726BCEB0DE1EECF42ADA964BF9E475953302C2FCA804B70B779482DC9319B40381E0
-9C0096460AE113C19A2DC9157FA138CF0E7758F71008E71D0F7599744D647B09B16E3C795C56EE5B
-D14D8D63E7A512900D67487975EC9CEAEF69572FC3C2342AC5D365E8A4BCF462006B5268ECC15754
-94CAD9A9E7A9E8D9AFFE49AF647C017743EC7CFD5E66F4E4D845A6BBC836849274FBD270CBF263F1
-67DF7E26BA91F21C60F96257C07523AC37A2193010E976965CBD75751E312817C0564E1C5AE0CBA8
-BD12B01122D07020A0852120680985A8AC987BC33BE863EEC52AF13435B6E4048D951F5BCE36526E
-07A8661CF2538F69D1F223BC53BF5896437D1BD46F57D9698F642F0E99C7392D8EE47134E34DCE94
-D392949B418D9821E12CAFA8337323E8469DAC24DADC6AAD4A0DADD7FF65694BA3A27964D28D8EB4
-1179458F91CD3F83B8F119BF5E76184DD29CC4C0718CF7945DCECC993A7A78739363136CEC7F2FB4
-95EEA8CEDB3EBF14373A058758C442939D36774435554851E9519B6F09C31EF26B6CD997DAFA11DA
-91FA9759F17B7079164C5B47B99CCB7A876FBAB1D0D5D1E1A2683CD6914E6B3B755939CEF1C9168D
-30B2738C4349650CF86C90D2542FC9B90F36A494C035A1C86DD716014AA16E6B9EC7AA03B16554BE
-C436511DD3097FAB1FD0CD49EDAB96F74E8FD26400FC748CBD9EE1EEAEE24DA30DB6F8734B52818B
-3A5E510AA5C14E42060898033E7E36CBA9A64042CF94A74E4B52E37AC027C0DC69BAC4944CCE12E7
-AD81AEDCE642EC34CA23E3FF07B8CD35DFF19F33C8D4DBB56A52534F8A827BE47AD4AEDCAD83B273
-38409FD1101C4DFF3F12D3DF79AD1FCE65B2F419451DD059C88BF066413E23DE27D3621DAC2DCC8F
-9F3620DAD0F4B1A6E8C9E6E8ADB552E1EB2C4B2A3B73986AD53ED9ED8911F82F750DF05CD2EBA3E1
-B0DF208A87FB5ED44C3296B803881C1D9776D13350CD29C3F716F0B5A8B8557812024BA70069BE65
-89AA579EADB1F657712DF2570843D7C5FF7F4009D4D232D3547DC8B92ED5C4DB77B76255E661FF8B
-163C6F3856DE5651B597EC7C78B84F0C6C1D6EA3A82286F1D3BB45F708D564E139E81F473C705AB2
-56346328DAA64D1EA8645DC10FD449092E0634D9D7344B2AEC3C75F6B6CD8B3F3867FF3CBB0F556B
-186EE9A7C26BD2D17C8A773055D9D5013BD2F937D697A770C57BDB36D922CB911CD14E7FA14160BE
-19C1A052E297B1A2D682D4BBC9F1D2493BCD7CAD2FA75D904C5F5479179DAF7DC6A4E0D269BACA2C
-4F2430B4C8CF1572FBDC750A05DCD5B09FA3A9CD6F2F2A386E2B3D4D8E257BD43A783B38E63BCEE5
-03EA96FF2C373181744A607F0CB8D281D7DB1A6F4076AA3E2C61914BD796EF8A0873F79F964FDE28
-B792BA99A20C3F1F5ED1FD189FB1867C84DCD6AF43D49420C8B1F3DCE7DBAE71DEB17FE45644DB24
-4F44B1011C7C768EBB7254F4DACA64E9BA87AA7CD0F0C4B2228FFB9EBDCF3DDE4DCED39399FFEB34
-8811547D025320A88B480943A339E2CD2FA3605AAAE87939B1D7901465A1879BCB4C5BE1A179E7E3
-71F1BA2E0844F88AFBAE9B78DCCA47AE8AEDF5BD3D458C7D4A7A08ACCBF880D1F1DC69C636628DF1
-EBDC5C42FF88FF8B66351F3F72D703E52F3CE91E4E00759753A599FDD863788E99858498B66B93E5
-083BC3501C39A9BA928B0D763C28826FD237E949EF0BA85CCA9AA20C405DB6D5612DB718F7B4AD31
-D253AE306E4D7CB615C59AE668D347A4E60FFF7B103F8BD0E7CBDB142A763BE88AB40EEF6B8FC200
-458D728930AD0F94FE52ACBF0657C4907CC7942710AB1FD8BD149A9C9DEF6B8DCA7DB9062AA7B1B0
-11ABB5AAE8B77893A023F9EEEED4A20FBC30F922282A7AE2F1ACFF64151013D6B8AC2EAAE58171A1
-0F80BC18C3BBB5DE1E22EBE6033BF83040629023D74CCBAB3F1923CFA4A6735E1DFA8A1B261FBF1C
-397E26F3BA9C2629CFDA84DFA3D1087EBB19DDA7E2D76E30DC2E15B8821D5291DA1DFD73940E5560
-A8A6DC91BE0075E3ED8D9E8CAC85AC20768D868CD2DC45DEADCC8B59AABE6EE5B2F891E0D7CBAE82
-0F83479332BF9707486698FE196C72EF72B52F54314329FC498171782BF160E1110A19B8208FC591
-EF0F0DA71AF657B43A7CC649A8488B759F7B69134B4F9DCF79DAEBC1CE52CC8015F324C9D46320F4
-4E1551EDA6D86139DFD1DB814CF38A22A89FABB4F75FB896B00E769820F763486E86668253CC466C
-1529A5A924CC337C48448851A381DCEF63A0A302B65203D6571A1DD1FB9DC0C3BD6AEF4891497033
-109CEB5A481BFE442249940EC54096F1D0F2436D9E60495D0ACFF967A741B30467D24AC6B0032213
-18666B951EFD45324987B10BEF4AAA0FF1DF6887377A7F70F555DFB9FF1001C67438A167A00B05D2
-C37065655173A7ED9AE342DFA1497FB1F2FED6098901249A085D31B66DBB6AC25EF16C106B0A6FF3
-47CDF66434DC3F0012DAADE80B942D522CD59AF4C31C1C062157B3D000B9CB86E2AA7B4A5BF31605
-8A0D5A148EAA2C67977FAA0966E4C3454E08DF14C2498AD76E389AF65D2C139A6D8675298C46ACEB
-7DBE6904C373C06E5F71399B2EDA0B40AB96E8BE991DDC39F92F1D24797F9EC9F2FAE25669B43754
-E2498E8EA5C44B176C3FB3E8F7A7A1481275A461F2549AFC4CC73E28417BD8C5212C13105EAB967D
-AA679AE822B9B75B372A99C7E82D6BD83AA2BA00314DA4AC51B9CAA30D80507505BE24BAD0A87C5D
-5D7336EDF60CCA4CEC8201D243C3932F74D171E2409D789AAD0D04A7BB22FB6DC3AB92AE33FFEA89
-7C484D741039F38C317EA396A0FBB9F15A27D87FCBE007558799BAB73212B6E5FAF2080BA074724E
-AC87D88166DBC1464CF5D41B99428851FF1D99246944511CF42C3F9248513E9E51593F253D89C604
-388AD7132D6A169E9DD888E020AC1F8BA606F2E1EBB97977E505D8C40853653D8F398F71CC9F8F9C
-540C22A1E6195BA578AE7262FC845FCCF77B33F33EEF266489AF8B81A615D6A13464BCA58BEC16C2
-3F31D678F14A938BEC31272DAC3CCB1B2DAE577A26BED852FC59843176A5FCFCFA0AB7FB00D2309D
-E55C82CB9049F44FA61F1E313205A76317C4CF529A4456019D970624129681F46A9CD7950B8B5C40
-61853040113C8115319E68B37F88D864C6957DF813B305D09E6A1716B10F26F2EF5C727FC77AABBA
-73E12B5AE6416AB19F6563CE14046B715BD4CB2B1E4D315F42D10F74CDEDE82BCDD524A1A5460921
-9084CF1CDABFE72CC8375478B41614BC18A914903596D6FC2F361EE519F875385F4ECB50F7053127
-4EBDEB14A5DBD906A60817246042E3799BB3AC647CDA7244B7998AE4F3BFBE5C767FD2142E48518A
-4217599E0EC2CF5E86C8C270FF8B02F949EE001D6A439BCB4BC7D7F7C8167C3AE0A7E59687FB8BF6
-F37BEAA164541B8EAFD92E9D152E3FD0F413C99CCC34FCD8AA455A0B55DEC846A5874B94FC95CFF1
-BB386B2A1E22CD1C3914264B6D5BD1746972857C9235052D77A6C0DD3019F8A307FBEE63A3EF12B0
-39B224108276FFA84021F1AC5B745C54690B3FF587B4B1710AC3533A67BCEFC503ADF1F4B62B2910
-B31965E364EEC9CC437CC40181A7320CD52BE9C546B8F1DC824312216C2FD8232E2BB8D40EE2E314
-54C09772A387F9520E331456C269F51A078E6ABD9FB6A68BFD5F557215B0BBD2227B8959CBD1BD4A
-EEAB094DD18E891C61FB00933C0A0D76174D169C0B6445D34C00DC9E06D85EB086C18F3BE27DF734
-EBB9CF078AFF6514438549CBE92A0C0D25EFE4A527D86F158B4E9D8870C7AC5D6C059643A3298079
-CC20398324CA87273B86ED801057D797D91BC3CF2F96C650EE1566CD3CF8656CC577D38B830201BE
-718DC9A494268177A5019546EEEDBF101996BE593631654B638C75A6BAA648CD1E7AA9AC1EA60F4C
-D604071C89DCCFF8B3E430A57ED6DE11C5837E78956ED991058F3646219BEAE94E4D9381A33D48CA
-9B8FF12B54A73FF869D0EEED7E098D80152295E6016CDD809173C57D1F5FCE908A37010AD4C4471A
-53451DE9B4363B63437C374C598F548F145D3D288F42531FCF36A9CDF72521F1C0868FCEEEB1857E
-A983F6B75CE245D875BEAD1BCB8819E5464518E04717B78BD6E335F0AD77B832AF5682062A1E2AC7
-7CD5EDD5DC372EE456C96D38BF8BF348DAC2B4EBBB2440F2CE97B4B337F2E23247E3E8423BFA9237
-CA6CEB6FB93F960CAD894A96F0371168A33222052DE9B3BE04B022AB95C0C243486E35197721FC55
-311DC55F87BC72D09B6C940CA36E6640AEB66C394A5949A604E7F15DCE3A008BB41B0EEF2840A357
-F348443B4DCE064B4C15E5EC52E448C985FAA1C3D6526270B1CC691009959A7620C9A6202619A19B
-E410FF7BD535A8B2640AAA459DFDCB8F2BB35112626497E8A397D4F9E04788322A738DC8907CB643
-15CF63C95809E90D06EF02F72AB04AA61FE02ECCF7E9049FF9F3EF2258A75656178AAAC9F3C2A26C
-001341862D526CC14E92A81BD63502F959066E0BCD659CB9B5A45606153DD77039B8C5D5B13565F0
-0D95A41937CF97089F3938E39659A64DC3D6046D0E9EF66544CAF8A206635DF49926A3EEF3FDBC9D
-CCEA2886EC855F1821C4B9CE1D02A19A11BBBEF43A7D4D536715548A62802F64AF30BBCBEA8C7E55
-AD56C801D8A569C8183615A78CD393CA42C103F155941E845712C335F4ACFC7807202B92A983111A
-ED241BBB8501F15560E8F2157C29752BDCDB274008137277920053D6D7DCDC626A574A82A8A34F1E
-77B2FC8CF7C1A7322F22DFCB450259EB450C52B70DF3584A7C54C813DB41E3DD81253A03B02BC252
-346AF0160716355797B6F8210C453DD7E1E756FF08C7E6A5F4F87605E1DFF35A130D79148A57B7AD
-12D94A129FE3F055CF974EBA09A2B13DEECA2E02EA818A58B81E8743004646C7746110BC61B86ADF
-2D5D8C45A6A5461EB34497FCCD09E711F47BFA742C73F87B257B53F30CB68D151424DC3C210D3E8A
-C67C2495A8236EA2D7985A5E1DEAC699D7B700E6D38EEE2E93B191BAA5A8A2C916D206C63FE63427
-AAAFED2B5784276FC21EEFF2D70E47C8540DCCC3E00134642B703795CD3702631AE2A90E063A218B
-61E5B89BBCFFF84F567E37A31A9B349717A8CDB9C9377215BA838FF7469BC486B64EF2B6D92519C0
-BF0826E3652903F40E400689F5749DF86FE3DE178E21E20EDF9053081F6510D8F19ACD021CBA481C
-484D30EAD3B84ED0190087EE478A17154B243346C3938FDD5340CF6E47B185E64ABDF44F8CBCDB82
-94492B91929BFEB9DA2B033C3ACEE554F0F1A7F8A56DF7C06A3583C1E9C5CA458D40E550FDF3E2F2
-E7BE8312D5FEE98543388EDC8A04CA29F1B82B7AB4ADABBA3F2C331EFF3521B2B92F99C4377AB827
-A989B423750D36ADDD2E286E7F3B694E29B8BC403693C6F7CAB5FE34F1E48C8D41B47831E8C3F5BE
-5ED5142E3C44ACF5180CD41FDA149B1F4AED36812E42BC184227F5034220F74F67830255E1CAEC12
-66DEFA358A87D2E3B4B4E7EF30181570D0B2B43072EE0311C2C157D32EE2BEA8EA4251B59F6B61D2
-B4FDEB654DEB67AA3DFF4AD65B727F0D6B7D61523E4B44D99BA5CD33540F340A35DDD466ABEA4E72
-E504FC9BAAE51D231C33A8CE7DC2970DE4C1FB5B096A3D9C641EF77DC9039886831DDD01C4F21E6E
-168E38BBDDA5F4308C959C7BBF36A42D042DA6862937EB20D4FA2E5927741A58DA5CBFFD9553BEFF
-BD92E6D64871D8B25D9049F4E71970A8FF5557D1DE83DD24286D6C3E4770EE00F9A1A0B0063C9999
-4AEC75E84D6F9C488434D1F3DCFD0A8BEE9ED8257CA97E75E8B1285747184D6D2228EF95D4A0B8DA
-252318ABD35C8398FC6568B294D90AB308A7675F9F160140F0A08C88AD0CA1CA2CF85E4D031CFA3B
-87635F1398EB7DBC666A259F02DB6741D13E11B230025DD6DD64C438409AF109090058151E4DFB8C
-0E9CD65935C4CC063CC6100FDE70896E23E3661C7FC1B8228B26A55903E997F80207EDD8863FA074
-EE4FF23BE585BAF708040C9F8CFDEB42FB8EB71D4CB6D7757E973E4D8C9DDD082712C23F868E1135
-ECD91250BB4335958B07C12FDA75EEB56BE19D1644C1F76A8811C021122619F751CBBFEB1D3DC912
-999017FA163672A1EF754C5CB78962BAAB76EC48461B492FA88F9897170DE857CC8374C8BAE417D4
-C78A56047024731F4A45145F0393A27CAB614A7FF747BBC28E6880D4D01C0A6CF317A1DE5BB5ADFA
-4B5FBFE0C57598C79F25AE57BB797A489D51F85A9B9CF8BEA64293F8FCC43B0D5484DF99DBE19152
-692CE756F6FBE8CE5831CF4B8A5AF47524E272C45C62ACBFBDFE7E60B05BB1A1A6AF0E9210012014
-69B3DBB49EC7B23A363FA68417B7118DCEA71D4ACA2E36F88C6DDEFB70205DF3AB7C74CF65CFD01F
-F85FAF99F172689737331D4C6CFF7A29029772F487FBF625F17BDAD89B4AC076948277B4ED687840
-301016C2B7AD4C6D02F81E88C75B7A04D724E234E38A38269351582245E361A42C75B8256AFD5624
-B558ADA2190F960A896BBAE7A8C57E76DA10DC29E69BBF3AA86214C001A27B39C1D17C548DA5601E
-86A5CF53E7B1896BF003AAE9387ABA9B102EB1E9002DD3754A378F3E49F2C6EECF47EB1BAC2CFCE1
-1AC0C5CB063672D32733563F3E1E891B6073739BC53AAA0043FC45E90E413DFBD4548DD320B681ED
-70A7443A233D79E3F038D26975586E5CDD2115AA614727B1F6DD4024B85CCCFC79D10B7B6AFA789D
-B37BD0E8C423C1A4A8681B5FF3A9FA1F61A46E46C4B1836D1AA41A89264A7F4B1C259E4B10ECDF37
-5BD26A1F412FE01FBDC03368FCAF48AA0EC28B1BD603A6A0D0DADE66D14C9B7285569230FAB76803
-35BE104305E4B748FA99FA31F23991608DFDD2097DA292551136F255051C9F7EEF3FB7C7FDB4E651
-C3D03A4CA357B587245236F4FF3252563F6BE08EF8A3EC09BE2BF27B9120F7D37801F6999EFB1C8A
-D1A08698CC59CEAE2CFCDBF6BD8F94DEC94F7EBF33AF05F52C85760C63950B455510C6AB9398D09A
-C288EFA09E8F631A59B03FBBC75BBDAFD675FFACCCF8ADF71E815A4A49F14BF70E42DB0B7347B528
-4E234C24010E2177DBBD57648E398FA6B54571A37BA8C989503594D03C6E60871A7F964599022154
-02BA168B8D1D2685F5CF8645D5E11A1769473027F42564C2966C10C0DEE1EE1B6975852A4870D492
-83A470E623337544A7CDA5C16FE2855BA2A548511FB4D4FF2E3E78D108E4C734F64EE2F12CC9562C
-BDF363EFAF5201B673AD00583FF108AFF6B68055A5F299452D176EAAFB92C84F114C8C22A05EAD65
-64A3371420EA9E646308DE97D40705E1638DF08704FC90249CBC0D2D3E884A4562CC27370B1A9738
-9D8EFD237E644A7370B8B38ED1C377F522C75F981D878A5E87101E621DF9D85C7207BBE5A87CCB60
-7F93A2E52F660E05C83A7A6CE6D01AB4B62A1EF8DA47CF97D4BBA0FA8EFFA9C0F61A325A97ADA694
-45F23AB1FE27A66C271639F839203040D44B11ECC6E805FBE88843B34C4FD52D1D3C6C70FFED433F
-C04501FC20536ABDFFA429B8DC8192B2D45DD9D646049CBF40719C3D674773F9676F9FCF32817DCB
-55402A72C56D74AA4CE4035687C730B6B44A9CC614BCA5A3FD17C170ED949E588EE45E89E18B0766
-2A6327FB9E8475C43E5DA1B0AF07C23774B19C9EF59281F5D884990D6194170D8293A86DB52A0FE1
-7E88DA82209A00A16BD29B8B2F13FD60AA25FCFA9745F57C8216283C1D6EA1C119CB9B8D57C00419
-5210FFBD56395A3EC2D3098ED38F389EFC0324FD0E55EA339B3892568229D8D3E205A821E8219FCB
-1A7713FCF3450F8BEF976CA0BECA47376A8CA73DF85B340C67EFE4534D459617996526B5E5D3D19E
-17CC5449E5EF2B82B2C4C2131FF8A19FCFE6A186A9840D872D85C40665A7A04E67EE26B8BC9206C3
-5B44C8F8A1AFC3867D96DC6D48BD45063BE25B882E9BC0D0948C18DC870E6925818E1FE17D336217
-F174EB4481F5C0ED37A3BEAFAF4D46F857811B6728BEC461AE6468D87A736572F4FF95B58B04564A
-9D3C22754587DF15495A319D822B838461764B73483C1F7CB930EECC6F7424841EE10E4087E95120
-2FE88A391375C96BEC4480328A54740213F741105B12A39F19808F3823507B88115D468C61B212A8
-ABAE7480E39BA52390A1892C7EC50271156B4E8076FC3ADA222695DF372385DA7B117A29E04CD2B8
-0A320F186D61C963FBDAFE9224E537057C49E82E405196AAB621B5FE4011E1782A747EF935ED8BB1
-1BDA39A141CC0BA42D04AE123383BC95A1D03A85A9440010C3B9613064FFECA76197E10919BA5006
-F35837ED9BCD7DE5E6D968AACB6FC91178091FA467EF6FDEB728E17293DC89DDE5A5261FAA95A2B0
-000FC750E7073900D4D88247DA464613ADC2B3903A6132D96AC0E1C564385FFBF6249DEA76BEA2A9
-9160632DD2FC2B99133E9F2F470F72B45D6F18B45020F604B06CD9174BA3805DB60EB9C5E6A9C789
-ACE76AE9C79C1BD34434E95E501BC968633AF93FF4883C6A596776254C0C74993710327086B2886B
-02FD3E42A725A03459CB36EE34A094139AF5FCF487D3DFE63FAD20BF0DFB60DEEDA2ACCA3510E963
-189D1256EABD81253F7FF9D11263FDBC1DCFDA3D1EA2E52005CE3C605C993231258A717423F64BFE
-EBC34684EFA676358B9B543C2042BEF954829FE3246A879845B30EBACB43D8DD7A20FCFEDF763AD2
-C5D20A798B69E08722DCE6A5762E249ACE3055B650D9E110599EA30DE5C4FE7200D5A8DA9E1FE268
-6350D0DF334877D0B9F6524C552D0B6DFFAE125EC4C18F7547BD51C14288E4ABB7F8A1A00458596C
-390AEEE6FA308AC1F788FAE30D7F8928AFC91D4DE6352D20B19D8D8AB122B7378CB379C5BE7E3CE2
-922FE667EA057B5D7B3F0B51C7BF0C85F87AC2F360D82C38964F4DABCC9104B32F0FB8802235E8E8
-D9A5997D392259074C00AF2CE1D2BF7B8E90E2E2AC34185C68A03BAB8B267778292B227245D7FF86
-70786E3F746F86B9D4D17190DB859A0E144B2A61E6AC9254DE5DBAEF20E2E9DB0B2FF654B996E962
-F55E465DD238BD1643CE59DC2B5A58B1E6E4AE2DDC2D74D79AFF3C34E4E593E051FDA236B79CC0DB
-268D2A89B1878051223BB8F33FF99BA87A4811C0B3BCC01171D0A731EB732ECD8749D27952C27886
-B252F9C3D190419FD2900987A0A255B9753FB7AA70C37462134C467A2C4B7920BED9F9E86F8F98B9
-6D00AF8B05A4BD5F14C2A0D914A9A84160D554FD0718F50ECB5DF5E76623065852DAA74C9AD6DA07
-A119DF12C3577FE276AE551D48B1C5CD8A50E84DEC9CB0840520D78FA7F9A7C2071E28CD20EC7649
-B991F3818CDE295CDB6085F24FCF93147E9F4DD084FBD32525326D2EA147ECD5B6C9D9F4A7166663
-AD18BF234E9CB92FF72138A8A49E73E527E9A6488A4CA808AECABC94D693CD2C0C357D285F65006F
-A2F9197F61FBCA6EF07B013E2B558AB531D2FD270CEE7FA8E467FAB885E90C5884843AA08E2BBFEA
-0AA575643727BA18ACC499FF34E3438645BE2AA71EA491E54687CD305E12BBC94FAEC848311AE816
-495B013BC5075A2D2AE54A7AD7C9105B64356CB51F18C2C28E3A83B9D81A4554DBEC9BEA9A660CF7
-E1BA89E6D4DFB3EEC6A3DE3FCDED9B2D614156EDAE8CFDAD5FF0EFEE31DA3E6A54D94CE9453A1CAA
-D9756D91BE85315F6514BAFBC821EE810BB5D8E1B8F05F64F3F72C4B35D424F7E4DC3AB581B74ADE
-B6D6297CDE7AA8278909F269FED79B7DFD39B1C0338E01D556C4DB9CA3A8578ACE3EC3D743ED4B9C
-0145E4525E8C315F7A1B98584B975C70F0D415708C8CCC13F848B1D36AC8249B73638F95DE0CD27C
-7EFB52BED4339EBDA4812564D7A77416DDF4CC88CFB52D07A252D89353C6826CA1832A153242979B
-6CEE783ABDE65C8B40CF4EA7B42B8DBCC0E02423DD693108006F6A4AEBF053B666C3CB63D1861F86
-EAACD43BB9BB6F2C3A17293C189331D253B447757EE7CBF4518BABB73A1D44874D7F0625E6A013C6
-08E991B4AD17A9ADB36740D25E3E35B459B422F7370B134CDFFF3F3BCC4C32B4E9EBF6A2478013F6
-6933A1FA9403A2F1161EC632F1F04EDF95ED0F33DAD9665D54DD9DB2564E51DA7B65978CAB50D6DC
-1568976E83B056EB0E3A6758518B6E17E9EBFE49B72EB148B472BA144BDC2AC95744C9BF1258F0A2
-E47470AB0EFF90E190A41108914AB8C1ED6B11E0681778521870E80C16AF2AFC723CAD8719ADB62D
-3939D3BC8CC1D8A4E07E9D734F54ECA33D936D2C39D5C8055739C33E53359BD40E576C11E93B4B4C
-122BDBC9B1BBF44243AF4F0BCDBDFADE68C526B5CD74E29CE3F70D62BA83C489034111FE8E4DAEA2
-F01F9D938ABB532DEEAC0E329F42453FF5C15DEC2AEA8C198323C9E8FEA55B3F5DC4751D2E2E16B6
-154E7F2ADD46860E9CA71DC114C99D80E7EA1DAB51E925DE161CEDD678EE6282AFF38E3CD0E65954
-9C970613209955A3F581E1ABE485E56402A3DB0D1E9B8A9DFD05C4B0B7F97FC6D0EED0B69AD6F182
-B1D028ADD2F24463834B13F5C1307F91D363891824E81108E57CFD5211F86400D3E96B107F3B1FE8
-9C4908649D04A46DC3CEE0DE66AF03A7FF9F4DAFECDD6DF4D93784CC899B527784DBE0718050FCE1
-85BDE3F39DEBCDD660B2488D23AB1CFF87B0546D02B48E7B7724C9E87B71BF34B5D6640E0F6ECE47
-B182D41C89461F712849C6CFDB7E3F5EBC1ACDD12D65A422BA362A8FD6CAAC5104CCC5AB5FC04A46
-E4309ACAC83D659DDDA256CCDDD1BFF9AB3622450C4FBC89C82214F00C42FB0311BCB1B722A691ED
-839CAF9024FB1671F18E4639C96D84718C663A4341DEC037175C6BBD288BBF5A0478298CA726567A
-9B74C32A527339C666A294A17F6821CBF243D13EA4B1603C292953308B566653423E7301A032E5D5
-E2B93F1C1434893633DD19501AD12728B5A1D9D36635B589FA2E151140B543D7C5E469AFAE8E80C4
-FC1D9CB6C3823CC1BB7EE40AECB58CBC1465792226B19E0FE79235115F6A3AFE19F98C5DB63D372D
-D7C041CD940F4F79F2474D9CEEA0334FA04A97DC9773064895CF11CF73F11B4684F06E48F4469F6A
-1AEB2CBBC52994DFAB3319DCE3A0C8C2EFA9627496F8CC84D3DF3BDC4FFCB61672780F294F453278
-AEB9262E66486856D37B7647141A82E049364ED3D03F925284A3F1FA3DDF4C0B48B3FE22E7DF9ABA
-239D33CD300FFA8FD4B96192BD568FB18D325CAA8E1F1FD4B27527417B034841FD49E4A77F217062
-3CC8B22101166D80361EB15FA9020D24F61007B0A8274DF9DFCD8E97C85568E76D34AD5DB1779B02
-F034A69CCF9D4EBAA188EB3017EEF5B22A0A552696A574907F695098BD8A4849D5C8311F129447CD
-7A3CF88B8191AEC0AFF30A38A9AB8135608A7829207A7D242F6E1FA7DDA19F5E4C28560D42DB4405
-77CC0C5F5803EEE897103ECA0BD944E320AC26553BEE7852EAA733BD13DF760056B2F5BD1243BEDA
-BC3C1EA0531017D74B47E18F801A60074D6DF849FD0532234545E5B5E112D1E7385341D39A89551C
-80DC2DEAED5D5DA2A4BE5015D297324E92BE64C68428132E6EC654DD4BDCC6640C68835FF8A05E09
-9604B8CD43D3AF2B2FE10C8AFEDEC5A70AF8509D12F662338CBF166D9452CD36331758AC4F4CBD7E
-DD52139AD27DC52569877FE709F297444C4F31899D1945C81B14ABDECBF31DC463A4148F04EC4FB9
-703C158216C0FBE65CCD450043ABFD4E65BF8B28CC148252E9F3E797EA0B57B8721C94CBC2EA602D
-F2C57E87938C887A382D2659226463BC7D6A1DA87F4A341A59BEA458177D3F18D1213539DC0E301F
-6EFE0111FCF6921368BE17CCBB7428127E0C059C2C5ADB2A3F0197F0CEAB77FF7F3C027A8EC3EE76
-CF5C986EB47CB60561C773B3A2DA47B5A35394E29373DBD5C3FF4C9213A89AED77CC4F3FCFC49EF6
-EC7557C521979A546983C106B3627B5FD2D71CC5F08A32BF49332A89C5DA71AFBFB94C949A91220A
-B1F885C981423AF93F73BC1CA4D92D9DBAE3EFE6A76E2DE3D0F74FD3255820636E3F1A6B7C185306
-23C12AF90CDCD2C0A728521E9B639EB6345D1DE8FFFC3B19C72E7A93823DFE3115E9E7BBBEB28CB7
-3DB121AED8920D47D8CC08EA2E472E39A4CAD5881B5C4204F2B732AF9D5189D25ABF413CC78714CB
-01B1D8CA5565169A919DC481F6D2E67F1D490AEBC5CC62A8F62C1A323EBB55ED35AA5C8D6F8B970E
-93205C2701CF4817BDA994FC16197B469ECC5F5E9DDF0FA05640C2E571849571CBD26402B1EB1E80
-3FCF423345007B9B52B13E3B034E8CB3984B925EBFFE719ED4F39F3D0E3343316A6FDC26BDBEA88C
-4366D3B2F851D2B244CC4408251AE2C77348CCE9DD8BB9C89800B572D38C5D1CC34C740BEEBB5DDB
-0A8BB251655FB989840D23205D16311A9FCCF7C85F6DFFEA9704492A4E7A8F6C0BDC29745AAC2ABF
-AEBA02B0E7AEFEB92BA63AB0DF844EB09D505C3DFC1058CE42CDD8043B76398401E1DB862FF9F76C
-05E8BC6260A4443CF494BC1755913D51745BF45ADF2F8C7A9546D7EF4FB11E9D94E4539632C2A396
-06D04480EE459408D7A2A869807A4C01881C1BB21C296A402B5E6E07093D833C3DFF075F4DD426EB
-87B1B8DE16C146DE79F52F5943015331EEB852809CBB8E1D6460AC4D176FE96F8D19F6CCB22ABBBA
-A27C4497D91312C3CFB5BB913B314E43D2EC6AB6897BA7C34CF2CAA6DB4BD69EB5DFCEE0AA917D69
-50E36A68A4C22A60DCC69379D47544A58D640EB10DFE120FCA843B588CA8B94F7869F97609A6FE03
-AC86EC1F7CEAD2EC8E81977D1B946E459DFCFEFE65A7BFF67E66F5F78A45D8DF65AF0146DF74E024
-FC042328886CC1DD7779F49CDBB750345CF83CD678A6A8897577299DEB38AD665DC4F21CE1892A18
-C256F318107DD3E9245C1AD3BC93CEF7B7BF057E33EC9A3F953251261AA3D1A8347261E70A46F777
-3A84F3D4D1A0DF6DD22A96429349DE0D180310E17955B10FBF53220EF6483D03C650A8D5C16D63DA
-F65C21ADCD6C2D0B5D4ADEB2F5526AACF7CF42F9A8BF4832FB2D4F73F3D5FFD984B572232F87BD3E
-59133ED3D2FA19F7856AD812515C74F7D851574019C532C25F8E163E595FC9C83E3E820C3CBF690D
-A62578A980FC0803EB6DB9B1E90E3256BD4650816ABE5EA86CE65C2EB418D0ADDA5F3EA04E17AA8C
-4536CC471AC20236E66ECA3619F161DFEFA485386C30EBB86A7AD930FD0AADF2DA69DCAF26C0F677
-206E2030E3B15B3662C0AD03DBC1636EBFAD1F2F2C37F5FA9856B0198C5B1D80B69C5EFFD94CE071
-5135C649C26B9BA1266B0A5B270CD08A706166C0B320915C87B27DE21DEB5D7E4806F6E700B7A06A
-4E29B629CB40761983E9CA8E34E869ABD04DDA190BFE5A6EE8B22D7E511B84EA584A84211F27AF89
-18DC5AF8A1FF2D360B6BE3CA8E66BA4CD2CE6A25E7E89406684DA83FFBCCCCBFD0844FE3BECD7DE6
-7764C59C022DB1168D585FE25073FE00E30218D1DFE115CA1FC606AFCB04F2A082EF91788B6BD096
-84DEA31F20034A91AB9D971366F97B5009FEFBF1EF0AD941654081B1E8F0B2EA495069A1DDF11DC5
-6857D29533DC857958B49D1A0779732819FD22E437084BD9F3C4F2CDA4D12CA14431937AB63A03F9
-C040AF1D801F367ABDCA7302E18A9050D6026FBA5A5A7FAD44E31593173CDF277CD737D1CEF59FE9
-684252BC0DDD00A80E023B88222494C1C8C0884230AB11D1083225AFDCDBC1E24D4AD5FAB396D2E3
-70E44A7571B230660D510A5076D8E35F7DB72C0566DFC119EE1B8AC3C0406950A3C4A4DA36BDE297
-040A27F70753A87E6CD593DC6BE9962261A99AE5949340C5D45C94A9AA3DD636CE8B497BBB812345
-7C824F443A53B3EE595C38983FE3E07DBDC6ACD55CAE8BE1081AFD4857A5F52A3C925143507A3C37
-F1992CF72ED0D4C48D94AE6CADDC3BC87AC3A3EF035E02181F78449E4B063B0835E827644051551C
-1603E2EAB5875F28FC77BEBA6923428D5521C698C6B7F133B0F689F105FDBAC30A8ED2F29F0255DD
-F8A037B81F04EDF004CBE639C8DB0F94D0C5DB92D34D66C2FED66CF8B895AFC4E659D08388EA44EA
-E83CE459E5BE306750A682B627802990037157339BF142BCB9C08FAFDC3C3FB16DC3544F62C6C7E3
-3E20CC4FC7CA21E2C3F6C546CD78DEE348F1A4C8CB548EF20C049678916771D83ACC9B7B22784AD8
-580134471A3C79BC86B5D6D0D305C32E6204274351C94F9DF45D9B2AD5B5087A89F90D6AA033E4B1
-D1BED022F36147C7ABD2B73134DFFD50907258E610C3B20949E141172B1C6A76DB238C375021CBA6
-645CDC26B717428B5A9B4D3F32A4B1E22FEFF3BB93FD889E1DEF8087718D5E3E650FE4A3330DA9C3
-7E9EB499DF5A342D8BA4C0A033C3347CB25A31BE143ECBF91384F2381E323E7FD3A82A3197C18905
-3200AE2C86B9D01AB0B289841EA7E9E9A26966E0DEF54DE0B85D8DF084B8C590081E444BAF1E1F60
-670FA12AB97159318624F2AF1B5EC7DD83C1073A99398D2143A52D10A13C201FB356BC9E90C63BB0
-BC2D4C42AF4A8B9C8C4D58A1B32E0597C63B3F8B3E893BD3BE8C60231838F1BC78E73A6C8CDD5E7F
-2907F897FC8EE99BFFDA7338BCEFB5AEF950E5549ADFD207AEB15846B509FC57989883642498A381
-1B8E5CDE69C05924EFAEC232FA4CEF302EE3251366ECAEF57D25CFA3B4A9E6397D996F421C900BEB
-CF73B038FE7B16FD0A1172AC2F40D19CE0B02FCEB8BC47DA5344CB933C7FEC950184F78ACB32D3E5
-E290E84BE753B9E7A7BFC4416CCF29D023760C06CDDEF2505806A65E1508990529245059AFD301DB
-669D41BD72BF7A80A9DF66B876B3553FDF4DD38D15289AF7A1AFBC53FFFF135A6348DD784AB42A6C
-0D6AA330B069607E2DF3CBEFCE79D6F63E274C9E73A33EB85246D5EBB986BFA923DF68B2B8CF82AF
-6C33E785F35B25B1D1D614DE85A4F4510ADFE42D75B5FA5408A59ABE53859E28B3D000EB9C6A7D2F
-67C91DD14C895BA87B9CB57B851E5193FCC2A443AF85FE28DF6F39537F23A058BCF81DD8C04CB2C2
-5040300F4C55975E856DCB4E21E2B5481BDCC05601942FB25BB8A6B6F93E2C2A33CD478B44655657
-C557EBB080179EE5D98C5CEBE0B25BFDD952FFEB258014D7A5BC4BCA4F1A23BBA73C454B12960451
-CE1752401B0151CB2E01D5C72595095EAE91D8D3BD55A54A2AEA89239FA176FA7CD6F16BB0733EF6
-CE6E77763A23AAC77DA88C8EFA7BBB2991E472FF2075FB25A75ACFA70A04C28764F4AE4C12051B25
-B120CAD2E3044DA35C1F94135DBD69B10DE147321CBBDC814CE99982AC1D76CE3D3330E41AB31F3C
-76BF89B95EAB81AF3464C732D5B1411D97DB36C9063537F64756F205B16ED7058E2CB1D6946C00A1
-A0CDA9EBBE924BDA6C7D7B605C514A98133907B793C74CA858E82DA3519188CD974B34DAA74265DB
-5BC8550D5F0B1173ACEB87458BCE2AB1F96996C811699A0FE4A9B849D39023725E2B1EE7E426D30A
-6C5C75AE6BCEA6DB41E4EB2035F7F924E6B9F0DCD00EB2BB014222E55FE387FBF5B9B7C04F4688D5
-AE3529FDACB38B5EB0AF5C3A874C1AA6B17CDA8D1E22EEE05A3DA88449200D3D0D002DB86F6C51B3
-37C8E19F338E7BFA01E1202612D50E210140947D5F350E84F790286C3F679A5D7E43BCDC337265C2
-631527FD62D598B7CA1F5835C0441881B97F5197901ECDC4F195BC665A846823D2E41417373F8639
-567B228FE7B73D781F07A361AA49C3E9D80FE5B2A32C4C1E575D194E841967B08D10405FA44EEE28
-47DB9372C5CC931E50469532F1BAF577F680BAB4E30B7E1CFFA8574ABB679789F69A8A1BAC07B7C6
-4EF5CE5EB00E97B36FBEACA9BBA4A13B0293D34BDBC77AD1FF88E5744AF009823BC262511C4724DD
-585E7E17D90F230F7A5861B0DFC42F0B4E49A04EE0EE4DADB908479DEF8372F334C53D2BA5D855CB
-39DC7C9550F9D0F7F77E82D5A59FBBF34BFFE92DC9E6668B68FEEAA4F20053433D6749162BBAC5D0
-D428DCF2D58D49B127FA2E674EDC7D3613B1342F4D0ABD7F4C5B049FBF78E804D5F16505AE7EDCBF
-4D6FA08D72890F5D55199034572AB4B0C9A7E7F6F5A403198864ADF113CAFF5BF9D4AB5B16F81D0F
-C2188FC80875E10034D12E30C0364F8F72797F1AED525A2712A40D44210B813DF5A29C84E9F6D51B
-1D60A5F6F938FAABF878D29E6AB252D95D05FC1ADF5D4CE1C9E585219112112BC6CD5C766411FBD2
-2731794B5DE0A27AC57D3C57926807469C360372BE529098C350EFE2154B87F1205A57A0B04C5206
-CC4FA66B8793BBBE492CC3271FB4F90A28D0066E0D7F63B8DD01549A05AFA5482C29560ABD628568
-75CAC16100087540162473498C14087B29B86B7BFAD693E81765CEC781F3FC80E9C7B410E9B55B88
-114191A1703C638DFBB469ED1DD8254B1407003A319CE74AD419B077F17047A01F0BC0AC8507191B
-F72D77D9333C9DA8C9DA733EFB5305F49CB8C7BC451321ADD7D896395D269DCDFDD084EB3AA70338
-6C0697E962929651164135C094D9BB1C9B949D5EEBD3BB17F02C98C813CCBFB23C2C26218A2F4C63
-9A8B9DFF2C29406037F91938A5E1227310728428B56F48108CDEB33BD3191ECA89F947271983DB77
-6B2BC897A30EECF2601EE3B2A6F0E135397622AAC1F2DF523CE6E6BC720E13CB530CEF4AB9C8273B
-D3D81563AC8A8E6C44A195112DAF824BC7A72FCDC4E129A480717BEB01085DEE65EE4344D0B41EC0
-BCDF842566B1D9F5353B1F6A063FFA6CDB06EF634C8BD5A7A63F991D178F56EACA653DD67685CE49
-E98C7554745A4AC533217662D23E1D6937135D13BC2208EB8D50560A2BAAC319DFAE478B6BA4CA5E
-DA20222F0E9BDB0806320ED1665B54A347DE0C42E9F77842DE4D188E7E824EB2F0D7AD163F05480A
-7FA99C5A603BBC5DBC843774CA66E889B945054C0ED0B1A4BB14324EF901B023C208CB95DFCE9284
-89789690CC45BAB97BE449F8E2F5AA9276C0571303E9788C46E7F789555BFCDC3FA9ED8DA8AD9BA4
-8B3AE09404664391E63A989EF1E24BB464043AA099E4F2D796E352EB277106D8D81BAF2F8562EF46
-BCFD1E0047E8018CBD973021DC1C1D821AF03F083F0B088A62EBCF2BF6C5B0FCFA441AAD1625FDB8
-34F943DD47A5A42EB3E9A5B49641F797C288B799A64897F1346070461B6D535E0C4ED099199C387A
-3176AEDC7DA7E7D9E118E55565092A36F7C74ABF281720C0147F4E4F37D49436466C61FF12764E30
-43D8A6D027E70537164F0E7942F4ACA42BB2CB136177EF7197E76F49AB403F741C0EF902FEBC471A
-D6C627424320A8C3A1F04C310C511B3F91C3937D9ACF459999C18A33F2C852EC38CA806599C728C5
-43714018C65E2C5F430F6270AF52AD71ED38813B60440779455F9529A4A1623CB9F5422B9216F9CD
-BA913B9A1CD95DA225E254E8101216085020660509D03A034B5D7E32E3DB5E5962A9A27711D4C3E2
-9CD84057F7D0D7E8000947AFE896F8523253391D2E11FFFE523366B05C532D5629A90741EAB3D4A7
-31D3F6D4F03FF93233DDF88BB1913ABA22EB9AA6311E3144381DAE29BCC8639958EEE59ACCFA06F3
-5DCCC63E0609F542F3EE5DFB1CF718CA3F328455726F8F65E23ACD970E4049225998371B63E35AE9
-8DC54D8329B8DB0901FAA63129EDE21B158776981D4D094013C096E9CD020315D123C03DEBA21E97
-E4B584B4BC0AF25F5DCE53C2DC0F3E61F99BECAB40799478BE7F5AFD7F68E23EF50AD6645C967EE1
-1206B6E791769428ACDC370D64E4F2B3972E0E4F442297199350663D6E772FC6777A9B9DE215273D
-082CCE4E8678FE9948DC8D5B0E459CD02F1645AC5620F3571A40B4D5A17DF5CFF48B6C843DDEAB5E
-BF58FE13D7DA08E8AA7902119248B3B151DA583101CF80853B0150FE05BDEDBFB50A7FB0F65728C9
-3B9DF48CE8AF1DF1FAC25C1D58E1AD30274A00EB54CF2F16029E1AC0A0919C0655474B9A6936AEE0
-FB74BD185FE7D70BB84786997D34A40326A74356A4AFAEE67B6B26D1C1A7BCFF8697B55C816CCD77
-312C332A55315DC54F9BC0A0F12500E0A76B3936292A3DA2DDF5AA8CBB9B5DC32EDACC4827D684D2
-74E65B8B76FB2C2B19F7D5607523FA953E34BB39032C05B1C1244304606C55660D3CA8607E764EA5
-B03DB7FCAB5CF7788C6E60EC8C449BCAFD90BCABA4132B6CBCCFF16784FB59B36B77CF0A9EA572E4
-CA0A01C725A6CF2E4500CDDF5BACCB9094D48925434F044118CFDC2696AF5FC0CAB3884107ED17B9
-BDE0C0104B1292A1F8C99B06FC4A6360B24480BD59DF0488641899B0F42B1311B582717BA7ECFEE1
-4143654B5371C8B9B2D80685AD38D897AD1E64875C28C7020A84FBB3A3BBEE16617DCB9BC822B7C5
-9C5A18C0CF7E80163ADFB7AA03B7CDE8497C1697D90F2ED90F813095C5B91657FC294EF0E341DB33
-92ED860CB2E0AA09293D0F99AE9EB54C761CA2DB1E51E1CEAEAB276C7BD916C68510D72D9A67468B
-09B3C39A7815628FB126CDFD5EFF59CC8184C0D35A5B5960F824BD175495DD3EB12A4E96008CB13B
-8C5745303E66CF8608FF27C4709C1D854EB79608E52F068FEC0151A74C125EDEAEA555C198FC0802
-7BBBB802835E1D435077AE4B1CCDBF722354F6C572BEB1376D3E342195FA80AC9722EB2F46E44DE0
-5F5A227B731B8D4A4B6EDEF04AF2C5DEC2EEF8FF48C5B18710ADE3DBFA0C956505B6DA9CCB7CBB83
-4DB6CC754948855D833670FF0AC42A4773FEA8322BECEE04CA74AC2D66855132D11A51524488C547
-71B5B7A512796D7D7AE0F9C1FBC9CBDBA0831074F4D200349D0CA40537B92496692766F020AC43AC
-01DB8B2AA2EFA9D21732BE3A315F6CAA402BB2E61D40DDEBDE11276D90C2C601A935C168BE600464
-76ADED15087D54A14C68EECBBBB590927C1E10D291C9285334CB0C80EDBD392BDE4D535EB61F8E76
-41F58AC1DF5B1C5A5D91E3E27E05CAF7EC97ECF0C85B6425197AA856521ED701E5AEB82A7F52A8BD
-7DC97D5B3FB5C99A5DF84D1BAFF89072922509D76BC6EDB15CE5F9EB8F4154BEE1E82020240283BD
-C83A8E49AA9A2649B7955D5C058F2818A63BD0BFE7EACED4A49063C489A626277AE1246F721C9926
-E2A2B6C31045FBCD235F3CC58BC4DD6C57FE998EBD1E9FA5154652BE3A1685BCD2EFAA079A3293F7
-8142A6473822FAB627927EACCD61B3E99C3077103D2D19382BC7EE15BAD0FDE489602D055A01DBBC
-F91A566974559D1B477C209416887053169C3F8F59955BE4DE82B60558CC9AE15602A93F029F6B43
-29E0E62A03982DB32F5229714EFA1491A7B24AEFE18FEBC2C93DFE50B3F641B51BDD33DA38871BF5
-243C17502D00AEA2D9E9734E80A96788D4CF5BC12A42BC386162FC88A7435EE13200C1C2C6CCC5D2
-1A03941007B4C4291BDB711446CEAF27148104BB240357D5EDA0EA5A5CE27D4A83909D75BFC05D75
-F10AA74A6DE37D7DE15C1DDA3AC3045DA6CD48323D904E716B445E5E096FCB379353ED70CF4B6FAC
-102C762711079EFAF13FB74C9B47AF75F3F6BDA2A4647D2AB47ECAB64DA6CC01479F618E8D2D0A36
-45445E8744683CBBC560D47C98078B84206E90EB839B02D37C852B8E284463D4E4D890203C3D5B20
-352110034EAD6BD7F41456B807E1DB1631A9D499E52E9D9853D86728B1A2E511F40F8CA1E4724A0D
-17ECD640B52FF6C66E28693D89765FC391612E5889E77423EC85CBD0A038B6BA98B607701DC0C4B6
-6B3B28C7790A1F1EB8D051DC98276DD9CFEFAB3F65C1C928E48A060C992B392A43E56EAA6DED896D
-EBCE71F8245BE4687F2F1B8FC0F43ECE8DB0BD0AB0811C5CE73CBE336023A0D66168B34A95B4B0A7
-50B3BF1D197E3C042C7914FA731D7831AF798E9429571CBB977E6258244E84701E5FF91D608F98FC
-3D68A4EE5B81D5FF38B6C184F6118B875F022B4CE207DC7B37E1452DFDC591A3E506AE82C7E7BFF0
-011B0A3DBD616A993FBF878FB03B6C9F2055A2B095D29361F8253C2623653687FE0AB98078F6AEE5
-FC2C2BDE0405EABEDB3A33EB7F04CB6837176245F190C6BBBCD64522B12FE7F9CDCF201A1AA8A19A
-7BBC4AC064B4958F44AA0F8DDA23835AD28A1FD0EA105DE2F395385DCCFBE2261DC5A89A23AF606A
-3985E5038706B1FE0910400E16BF008F250F3BDE3AD806C735495D499F16F99275010478FD2127BF
-7CEDD6B5BD505FBE9BD0065B4A7090C9D27CD5B36C3AD33E1B31EB6D44E375003B51B909DA50BD18
-218418B3CD22B43278B144BE78406EAF16C7DF6B6C1C6238004AAB73736B38E168441DC16F9A5CF6
-0793A18633BC43D78674D12D38CC979F7CAADA6EFE807CEA499CB9FE616496682A66E04BBDACE1DC
-112B2156B9B0B20A58A8CB43FF0EEDB99805234B9A5789762AC7D65F5A319C33F4F7438CD15E06BB
-80A7A97E976E8CEC23F4C646A5821880A82B2F1DC27767F090997E91488BFA15064B702F864FCE65
-05D6CEF87D2A0A12B55BA189AF269811E3B8B850C8401F3906C080D32618D9698A766732A40A9FC5
-A94E5BDDA3D028D823D6B603B6D17DD046DE181FD989EA0F80B4CA62F7973E4DF5E032A31FE6BC8F
-5CDA678D4A72787EB8253EA5882C337CDF9AA3E1E7D9536DD09B047CD8962E773F72F6418A3AEF5A
-289B3406C152A50CE7BD4B493FFFC27F6AA52F79EA67E362FD92559AA4F94A2F787F6C735DFADCF2
-F08AAF98B80C53CA5607A94F25F04AA65A70A75937840E73055B3D65FB054C63E2E48E68488C9315
-A13EE949E03E46723C11CC759D222CBFAD2E1A87CAD779B23D38F7E2F660DE1388EAF1CF4D18994D
-75C6CC63F187FDB949940C18B537A0AFB12AC5F67B0283CA5EFE2E764C4369104B9D3B06490D1244
-C41D6085C85F1106082EC9DB84586230511C05C82412D2CDF3DAFBF4759A775628878F997415296B
-C416AC8352A6C6988691FCB831CF95C10BAE691ADB3BA2918B35924BD5C3ACAD8B137397B10AF82B
-479800FE16D472CD0CDBDAAB4F882A0649CF561004B8CB7CA32EC129D0A415BE6CB91DA2B65F44E8
-0D138808A127E851A7FCF927E99DAA0EA2D626B77A16C72E37F058A3B882FC4955DC8CB6312434BD
-3BCED75780B13590BF4FE8D64ACF0371F9FB1D361B05025852AAB9EDA1A0C997CFA58052C454FD45
-1E6C1F194F4D363114E312F6DC35BBAF357A32CD200A3DD9654155134259887D677ACC44F89AA401
-CA27282DF7DC3F2F04A108CBEF2558DCCE28BAC2D87B8D5B7181EA927F61977764F882626D4AB338
-D95C9477C54E9C36012A3CFFBE199EC8120A99D2D70A21F9D9A0354E4EAC7947990E8A6E0601796A
-AF6F14E758CABCABDFBD8204A8E748A3E5FEBA570D36E2BF474C0083229A63F96114182321B2EBE1
-BC76DD193724C4588C1D39D184C332FAEAF4C629F2B3B2F49996E46AA6C9F497428BEA52D58876B0
-DC07B460248BC85CC16773A5DAC36CDE8B152D96057F4EFAAF8B1DC10022038577368057699B3A37
-178A9F1F6C6CC60BAE820B7ADD0717911BD23A6DCDADAFA32473491AA80CFE90F2A77E24CE2826FF
-77B18B869C33FA292FE01D6477765044C7D14A548B28B1360125C6933F05C58B0889390537CDD16F
-8E967E0B38579449DFC1E07389B7069AA8594C5103465D5041CC929268DE863FADB6925B350AA94A
-27D421FB7FCC81C6B35F906F12246B7A5140511A97211BA9BD6831A508E963FE8BE961332F557808
-488F06EAD75E86D60DE3FA2425AE8439ECB9112BC3E4D73747C1C8E87A649919827049832DB0BF6D
-A8C85C9A2592AC002809070900ECAD52A56F1BFD456AFE066509694EAC075788456B0B0BDD7C192D
-321E9FB6AADCAEF00F570F22CD4A5322FBCE8FA98FAEB681940895426270BB4319C11DA67D88552A
-7373398AEC5DA7C9CAA9F3B34581C6E968DAAAB2751CC012199DD897B448986CFFBAE4D412BF9ECB
-F46742715A9569932516259D3B3A5431CD7028E42FC751C434E2B714C718202BF02CAF9B8A2075DE
-922322EA7CFA605C8376FA958B8FBE43031E1026FBE6126A3775F643EA67EBBD97F239FB3C435526
-75CD08B19CA5EBF53B40D728556B4481C7F73EC71CAB0F89E34D60C69B272FADC22E8E7BDC6210DB
-09FDD913E209F49FD28E8712B8508904620250746CA3B21B026EDAE60A2822F59E912E626B93E0D2
-BFB3230DFD0E54E91A1DBA25A609B64D41ABD897A5D21764C351E85F9E87BEAB9E645149AD32AEEB
-B3B1161032C701647115F98C1C2AAECE871862D91D321AB90F3E923B1FDEE00D927F897AA9812373
-6536E2E0700F10053D7E6C589BF66029D794883EAE4C8228941CE96565B50D48887B5314A2E55379
-59638222A6CA54C77CBABD460DAC11B063519AE4F50D93DE41763BA7CFBF4C7724360E750478EB62
-8921DAA065858341958E4F3EB5966C6DD77C05EEECDF4B5F6CF19AB507589B4219377959BD258EC9
-21C34FE1DB003F7D0FEA3E2FD6F5DDB0A2D62CA5A2CD3C7AB457DFF25094EFE04A9E1B9CE7AE3F30
-026B1CB039228D309A22899F6E9B9BFF922E117123347967D7C62C670E2C74579C35989925603022
-C17B1DCE378031ABC9B4B437C7B6E64620932E93189754C01D4B280B8B08699B2CA953AE4823BB9E
-E34133C5C95B3290E1BF010705AD852C72BE87291E1034B09F44A95B6A2F83FEE8841DCF661770AF
-44D0AC7F9CDB280939FC5D953D525E0B41B7BE188D5C794687330CD770D24D9CD53B895A253004E1
-8A31BE4E82B384
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndResource
-/Times-Roman-iso1252 /Times-Roman ISO1252Encoding psp_definefont
-/Times-Italic-iso1252 /Times-Italic ISO1252Encoding psp_definefont
-/NimbusMonL-Regu-iso1252 /NimbusMonL-Regu ISO1252Encoding psp_definefont
-/NimbusMonL-ReguObli-iso1252 /NimbusMonL-ReguObli ISO1252Encoding psp_definefont
-220 265 moveto
-0 0 0 setrgbcolor
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<636F706965292E>
-show
-295 383 moveto
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-370 383 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D6F64696669636174696F6E>
-show
-671 383 moveto
-<6475>
-show
-763 383 moveto
-<66696368696572>
-show
-934 383 moveto
-1 0 0 setrgbcolor
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<534D4553485F5352432F7372632F534D4553482F534D4553485F4879706F746865736973466163
-746F72792E637878>
-show
-370 443 moveto
-0 0 0 setrgbcolor
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<706F7572>
-show
-479 443 moveto
-<72616A6F75746572>
-show
-653 443 moveto
-<6C6573>
-show
-726 443 moveto
-<6E6F7576656C6C6573>
-show
-935 443 moveto
-<6879706F7468E8736573>
-show
-1175 443 moveto
-<636F6E6365726E616E74>
-show
-1411 443 moveto
-<6C65>
-show
-1466 443 moveto
-<63686F6978>
-show
-1595 443 moveto
-<6475>
-show
-1662 443 moveto
-<6D61696C6C657572>
-show
-1846 443 moveto
-<74E974726168E9647269717565>
-show
-370 499 moveto
-<6465204E657467656E206574206465206C61207461696C6C652064657320E96CE96D656E747320
-766F6C756D69717565732E>
-show
-294 601 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<23696E636C75646520>
-show
-520 601 moveto
-<94534D4553485F4D6178456C656D656E74566F6C756D652E68787894>
-show
-294 645 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 689 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 733 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 776 moveto
-<23696E636C7564652094534D4553485F4E455447454E5F332E68787894>
-show
-294 820 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 864 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 908 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 952 moveto
-/NimbusMonL-ReguObli-iso1252  findfont 42 -42 matrix scale makefont setfont
-<63726561746F724D61705B944D6178456C656D656E74566F6C756D65945D203D>
-show
-294 996 moveto
-<20202020202020206E657720534D4553485F>
-show
-747 996 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<4879706F74686573697343726561746F72>
-show
-1175 996 moveto
-<3C534D4553485F4D6178456C656D656E74566F6C756D653E3B>
-show
-294 1040 moveto
-<2020202020202020202020202020202020>
-show
-722 1040 moveto
-<2E20202020202020202020202020202020202020202020202020202020202020202020202E>
-show
-294 1084 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1128 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1172 moveto
-/NimbusMonL-ReguObli-iso1252  findfont 42 -42 matrix scale makefont setfont
-<63726561746F724D61705B944E455447454E5F3344945D203D206E657720534D4553485F>
-show
-1201 1172 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<4879706F74686573697343726561746F72>
-show
-1629 1172 moveto
-<3C534D4553485F4E455447454E5F33443E3B>
-show
-295 1289 moveto
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-370 1289 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D6F64696669636174696F6E2064752066696368696572>
-show
-370 1349 moveto
-<20>
-show
-382 1349 moveto
-1 0 0 setrgbcolor
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<534D4553485F5352432F7372632F534D4553485F492F534D4553485F4879706F74686573697346
-6163746F72795F692E6378782C>
-show
-1651 1349 moveto
-0 0 0 setrgbcolor
-<20E971756976616C656E7420434F524241206465>
-show
-370 1405 moveto
-<6C61206D6F64696669636174696F6E207072E963E964656E7465>
-show
-906 1405 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<2E>
-show
-294 1507 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<23696E636C7564652094534D4553485F4D6178456C656D656E74566F6C756D655F692E68787894>
-show
-294 1551 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1595 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1639 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1683 moveto
-<23696E636C7564652094534D4553485F4E455447454E5F335F692E68787894>
-show
-294 1726 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1770 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1814 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1858 moveto
-/NimbusMonL-ReguObli-iso1252  findfont 42 -42 matrix scale makefont setfont
-<63726561746F724D61705B944D6178456C656D656E74566F6C756D65945D203D>
-show
-294 1902 moveto
-<20202020202020206E657720534D4553485F>
-show
-747 1902 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<4879706F74686573697343726561746F725F69>
-show
-1225 1902 moveto
-<3C534D4553485F4D6178456C656D656E74566F6C756D655F693E3B>
-show
-294 1946 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1990 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 2034 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 2078 moveto
-/NimbusMonL-ReguObli-iso1252  findfont 42 -42 matrix scale makefont setfont
-<63726561746F724D61705B944E455447454E5F3344945D203D>
-show
-294 2122 moveto
-<20202020202020206E657720534D4553485F>
-show
-747 2122 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<4879706F74686573697343726561746F725F69>
-show
-1225 2122 moveto
-<3C534D4553485F4E455447454E5F33445F693E3B>
-show
-295 2239 moveto
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-370 2239 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D6F64696669636174696F6E>
-show
-651 2239 moveto
-<6475>
-show
-723 2239 moveto
-<66696368696572>
-show
-874 2239 moveto
-1 0 0 setrgbcolor
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<534D4553485F5352432F7372632F534D4553484755492F534D4553484755492E637878>
-show
-1843 2239 moveto
-0 0 0 setrgbcolor
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<706F7572>
-show
-1955 2239 moveto
-<72616A6F75746572>
-show
-370 2299 moveto
-<6C6573>
-show
-443 2299 moveto
-<6E6F7576656C6C6573>
-show
-653 2299 moveto
-<6879706F7468E8736573>
-show
-892 2299 moveto
-<636F6E6365726E616E74>
-show
-1129 2299 moveto
-<6C65>
-show
-1183 2299 moveto
-<63686F6978>
-show
-1311 2299 moveto
-<6475>
-show
-1380 2299 moveto
-<6D61696C6C657572>
-show
-1564 2299 moveto
-<74E974726168E9647269717565>
-show
-1845 2299 moveto
-<6465>
-show
-1910 2299 moveto
-<4E657467656E>
-show
-2073 2299 moveto
-<6574>
-show
-370 2355 moveto
-<6465206C61207461696C6C652064657320E96CE96D656E747320766F6C756D6971756573206461
-6E73206C612047554920646520534D4553482E>
-show
-294 2457 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<656C736520696620282054797065416C676F2E636F6D7061726528944E455447454E5F33449420
-3D3D203029>
-show
-294 2501 moveto
-<2020487970203D206D79436F6D706F6E656E744D6573682D>
-show
-898 2501 moveto
-<3E4372656174654879706F74686573697328>
-show
-1351 2501 moveto
-<54797065416C676F2C206D795374756479496420293B>
-show
-294 2545 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 2589 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 2633 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 2676 moveto
-<20202020202020202020202020202020202020202020202020202020202074722894534D455348
-5F4D41585F454C454D454E545F564F4C554D455F4859504F54484553495394292C>
-show
-294 2720 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 2764 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 2808 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 2852 moveto
-<2020627265616B3B>
-show
-294 2896 moveto
-<20207D>
-show
-294 2940 moveto
-<6361736520353032313A>
-show
-294 2984 moveto
-<20207B>
-show
-294 3028 moveto
-<2020736D6573684755492D>
-show
-571 3028 moveto
-<3E437265617465416C676F726974686D28>
-show
-999 3028 moveto
-<944E455447454E5F3344942C94546574726168656472616C20284E657467656E2994>
-show
-1855 3028 moveto
-<293B>
-show
-280 567 1 616 rectfill
-2125 567 1 616 rectfill
-280 567 1846 1 rectfill
-280 1182 1846 1 rectfill
-280 1473 1 660 rectfill
-2125 1473 1 660 rectfill
-280 1473 1846 1 rectfill
-280 2132 1846 1 rectfill
-280 2423 1 616 rectfill
-2125 2423 1 616 rectfill
-280 2423 1846 1 rectfill
-280 3038 1846 1 rectfill
-showpage
-grestore grestore
-%%PageTrailer
-
-%%Page: 4 4
-%%PageBoundingBox: 18 18 577 824
-%%BeginSetup
-%
-%%EndSetup
-%%BeginPageSetup
-%
-gsave
-[0.24 0 0 -0.24 18 824] concat
-gsave
-%%EndPageSetup
-%%BeginResource: font NimbusMonL-Regu
-%!PS-AdobeFont-1.0: NimbusMonL-Regu 1.05
-%%CreationDate: Wed Dec 22 1999
-% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-% (URW)++,Copyright 1999 by (URW)++ Design & Development
-% See the file PUBLIC (Aladdin Free Public License) for license conditions.
-% As a special exception, permission is granted to include this font
-% program in a Postscript or PDF file that consists of a document that
-% contains text to be displayed or printed using this font, regardless
-% of the conditions or license applying to the document itself.
-12 dict begin
-/FontInfo 10 dict dup begin
-/version (1.05) readonly def
-/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file PUBLIC (Aladdin Free Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
-/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
-/FullName (Nimbus Mono L Regular) readonly def
-/FamilyName (Nimbus Mono L) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0.0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/FontName /NimbusMonL-Regu def
-/PaintType 0 def
-/WMode 0 def
-/FontBBox {-12 -237 650 811} readonly def
-/FontType 1 def
-/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
-/Encoding StandardEncoding def
-/UniqueID 5020945 def
-currentdict end
-currentfile eexec
-E98D09D760A3C22CF119F9DC699A22C35B5B35ED6AA23593C76D54CABB5E942BF7D6DD84F1664B89
-699C74B472DE9F8E6DF925F6C4F204E9F1C639B4DBA988ED2AC419FF2B2BDE605B8EE3264EDD6641
-2D4F21C64AC522BDFC7C5502F9C3F3E5592B3B2093D33C9BFAEDD2D49E89AABAA832E23F062E91A2
-5032519D1868816E44B4E0747795003D7930299D6E1E2A5BFE0D595DC97E140989CE81D8D7F852FF
-9CDC7A1B1B598C69131DEE005B415805A16D8A123E6A2261C63C769D2F4B60FA2C438AD7D199D8E4
-5F7E7C9A605C8CA14E21FCD81C9A515FB8DB6F99604534D06EA9D87FE0FAA852899C9D0595C7A97E
-6C55F79FAC45CD38E87B10D210CE7501E88C8FCD3444354365FB893A12F596AE2C1E70D5819EE0D0
-87D10BF8DA96F3DABD5405D28C4228C6C31BA4052464859640933FEEFD8071C0C84CDD829A9B1D0B
-A01F25A4D50EE2EA2B45160CA6333B2D2800306ED2BEFDFE155E9D9F9342EB8D5B0ADBF2460CCC98
-643FB1287CCD28ABA7B5CAB92EC39EE2E918990372B16F8487EBA30EAE88708B6CF33B6C015D8096
-C7CFE2F139F52052E3925C0D50FD64CE68236D59CB83EF56BFC584150EC38065059F3308AD6F9A99
-F83EF4E6CB13855C8175E31417D190D036B387D3952344A950F4D8C7781B307A094DF1ECAEE4D2C2
-FD747BC6F7F9C6BD0E90C19294F96C8C5CFE88FB34C477574A1B1630B8CC591529E59B20794DA32E
-61DECDA8ABBD1AE956CF74012AA01D42EE01E861B0AA6897C864788AE59DEF43C493246FDB1ACA55
-4C12594BC7B33657A9ECC9E3D1472EF826073F632BE540C35FF6FB40566773F3BB2204D3A579A08C
-CBC844C14B18C350F003B9DA23A570C362D6003893CA32F86F59B829C78EE3188B6E3F7FA81D7F62
-2825C639638DFB78B7AF1F500F5B450FA54DBFA5CBA277C794ECE93275A3DE0B452FDC8DDC2993BA
-A42F28A636008CDCB03EBF71BDCAF35019778993443F88412AD2AD0D7155A3944606463266322DBC
-0244B07DA1E9C27A27B59664E8566D7A54CC03E995AAD008B0A17E2C3EF61F720CE7F7788599C4E4
-4C709CD5C31B11107F16AD70B17B9AFE2E8CD922A7428DAC171427FFAF51067307FAB0ADB530E701
-FD22DA22C4CD3064067BD4F6089C4B2C87937DD426E4E9D2F60E608288BAC9056554D04947E69200
-61E379CF5E81BFD32FD37EFAC1F61CEBEE551B0851516471A7472C60DF89DAA9EB1DC5A67E479745
-3E69B9E22BAF4E3CCA4192D603295B018C4AB69D18DE52DFDF15E96B557F290A4B8C5B1E7A6CACA8
-1F2351B97ADFC36995ABA43803A6E5AC04A3C93495F6D38106B8B144449C07D1358210F9176E1565
-72363CFBDE576BFDF99FA329DD1346E83F79E06CF68250CA57A68931BC7F342AD295D0CBA17AA95B
-B8EEB53EA6E8E660B814E9F857CECB14F44A43288B69A9E7908D55BF19E844359879D28CAEF1C38A
-36420185D20DFB32C2E002202800E8EF3D67C5D50E919657CA958B538D537D503444865331D79BFC
-40312068D72364503BD0CC84B5F30A74D8B5B6A26AF2DB764564FB65A6BA8F9051AE2B4EA458D46A
-4569F30C6E77DC097356770362E6CF3F1661074778EBB44FF7D1E3B64FF75E77E11FE525BB121C65
-46CFD13300CA1F02D571B82A5825E6226D14FDCF27F06D87452A8B6C5DCA658535CEE2A795E58137
-D48E566B69D53A0C3B766E84C51EAA221C46999CC8065ADB2F129D5B630FAB1814C0C33B5AEA0EFB
-B6E994D80941B53079AF96D90A0B924F9B0E319BED9836B8F9053F868363D3CA554CBB181863301F
-8CB940872ED5FA7BD18CE39218B5AD8AC57D0F752D941076B1C64D99BE0DB86D7A6D96510D772EB2
-4C587F11779BD21CFE5BDE1F29C1EF9022B2B8BCD7F91153C845906722477829C40111D810480F3C
-F62DE8DBA7FD86CD236E656618CAF6FC46827FBC4898EA7672F8C9971AFE43E0E01EC8B77D4AF48C
-BF1210E98C1DB15C16D149BFF58AB0270CF015B107A3A50F5DC8F37FFB92EEC8CB6778DDB7CE4AAB
-C464C4AFF654223006A550EB52485A23D2B4AA7198D3CD54418102F1E9A4FBDE37B841E56F5C2C53
-966DB9B66B000E4588282E3FB80C2C519339F0002D2F83C979EDC5827A3B3C8EF8810A0F9DACB6B9
-998E9AF6551F56313DC4011904CB979AA2D32B11A811BC248141E4B9734D9FB7982A5671002D8279
-CAB93ABE057474628DEFC95D43890DB1ED34CFA8A20BDC3D874E7679A396158E522ED0AB969A4E3E
-C7E4474E192590504D54DEB7B260B7935C4E56548A7D121AC1F741F8CDF259EA1B5813175A77A1D2
-D30BA26F65EB765A04C09ED51F69F41551ADF399E6AA2FC09788137BEA4913F17B8EB838C38FB272
-1FDCB55FD65697FF0B850E7D3D1CE266BF90F7EC06A9A0876BDFE767D3A918B092FC78C775F945CF
-1F96E859C03DBF630D9A940939654C3549D8F7921CB94EE23D5A0535DE9DF31EA0F937F860B4F220
-A99ADDFC343D7CF7BFA0B803C12C26403F0DCFFC8EA786D0D8A8D9C367419CA8AE41190CE93A8086
-583A1E6C9D70B612C84D87D2EEAA71EC2DC12F4CDE6A821303D5F6A9BBDB7EEDCD289E80FA3B75F4
-7F481B50719DCF4A142069393593B9AF9CCEEAEC56A35B8787193D7C88113E9E1E221D151E093B01
-9EF89F6118BEC4735103CC8003CC5AD1B6727B3226CD44C497DA7052DD681695DBEC3397F9598C91
-77701C73BF0594CE93F23D50EC5BEE2FB9DA1FC966DF148B27B28EE3C89526DD6625E2887F9FA076
-7C127C609EE315626BC14D274FBEA56528DC06A27B2D476D46E9E7916590B156A5DF04A6CB15E362
-45D77021767B6E5BDFCC679670263FD891446C3371B11BB6E1DF60F960AAB4149D7753E6A5C33810
-C42C8BFF4E935003388506F8278BD7CB672F132E065AE684DCA0B9064D01DD620E7FFDFE04F14277
-EFE8E60159BA0FCA3FE2F28B902D4AC275D19F0AC6971EBE827C4A232D87650D2688345BCA78F879
-077114F0463C5F058107B669566F8171E4E284D278405580F04BFFC9902784216E0C9A17AA9B2935
-E66E18A783F723BE044389B7E9D62AA36818FF2EA406C3C1A9D2F3436F3EE7DB8BE86AFA8DAA6A4B
-1B84611350D8D27605509612B515E16AA843164D5D0805E36A2B9EF74C5F6A0B9D59A04B55697123
-27F4B1B30E9587CD103337639967CBDC655AA46E80D2CFD24BEB50815B5338E522B3A7AFE8362AB4
-F05D8BC52BBA9C5089ADA8C89529B0275AF422EB540D31A938B8740860756325B966B36817115213
-FAAF92DE63F6BAE1E0064BFBC5588098B61EB83C71F1C2082436D37DAF1ACBE186FEDC4BE7C1233B
-6F18BEC5F99002D21CB7864E4811F7AB3C03003E1E4490AD1AC793BD28FCD5EF0E6CC30EF39A08C5
-2F71939B0CEF620DC69E31E39D6DB969049031B0C92EF2DB653D97F370141456A52985076B268652
-FA2648C792780BAD637C4D7581FB2D62011D57E293719487CF2D1F013CFAA532E1C2D39178D51272
-A6AF041440BCA174B5CC902BD7390C7D3695056CB4BD7791F9FB6D88E7A70DEF2C97869F5DBC5BD8
-23C517C7B7C39D624DF627DC9653EA5347BFDA80B723F05F6DBB4C9EA501D862ACE05B9DBDF21B70
-56FBCD8C6D4B85873DCEE6166C8B5ADC0316CA12D9639F361B15A42F00E1D62EDBCA1111972FA0F4
-5758BECB31DB38316F3CDFE1B41748C93ED58B67E9B57ABBED5924A6D53E99FBC9A994A6489A8BDF
-13EB685548B4DC6D62DA7426C22227D4D43B6FFC7B5EA91C896730253E8941AFEE588359C2BECF6F
-FC415B9EB6D31CCB0F6C7F85853E6449FA6D627A97A3CE8303F148393ADCCCDFA2FE085C6908BE5C
-3C05AF00A6F02840206C3253A559AC5C049BDDFD11AD9B118403B84DA10AE3C470CB9A9A2D1D7B73
-2F59F5FE146DEDA60AE750F551AAC934621B4470E1BC324C436303E25F81D0DC3188BE0D6FEC5414
-C20E4CB18952E12CB6423DF7124627ACDE145500D77A97A8BFD9CB50D1FAA008E2CE2B2505A4749F
-1EBBB092C347023714055A9B63353AF9E7FEE05BB54C9843698101F79888A91531773830C2C967B5
-88D3ACD2192883D5CE3962D51084FC653EAE2C5FB2DA41DACEFB5C76812D2EDB5B109677289CD199
-8D457FB1023A19AC67295BBC1A9A20A426B06A368DF3C5DD083CB1180D287F5500F2C635EDE157EE
-FCEEC5503447382D15C748C1E35F68753992E5C90F900DE54D18F8E1B355D1076ADFB1F3590135FA
-D1A36F028E44F48ABB149B80CA9A54614D467F8D71CB310BBC7AC7100261092DB8C5BFD39E0AC6BC
-2C9D6CBC3A8C05FF8A74CB21608EC4A4CFE4CBAA2D056DBA14206106044DECF59F957EF8A9CADE4C
-9B19D8D30DD4FDE6A9548E50DB51ACA73330142153FC36B69C1C8D5B26D0C689B7040E81AC2C864F
-D7C097C99BE5953843E172C97AB5684F35FB03A725A89DBF371F08DDF40A1531FC1B676DB0E1543A
-EC6E97D3D2E4AA3D5831D8B3C952ABBFA112352814FB6FAB61A0D680E6640F6AEC8426200CF61286
-F7422CB2F78C61EBAA36D47EC16D7FAF8B4AF31D090CDFA255D9D7C61D46CFB22A7D6E1758E71ED5
-67E00CBD8E8F468DDFB477F091A2F915627F22FF47B876544BC1F03B6BBB98385F009C20BB1AA2A7
-A78674692B8EAC2E3C8069B79E679338DA57F72976810F845BEB6B9ADD32B95D78E5E60F16DD1668
-9C05FD82D36A3115BE8ED494A74DD211D58A2CDF983FCB9CDC29BF7F0E29988FA23560EDF514BC1D
-183F3B2A22C09FB179B47E05ADEF48DF02F31C29875D1915037B19407764A4292FE44E741651A8E3
-BEB5F0D972B6327090F664417C84F84FFBF0AFFF8B1D85C822D90730AB4140C42A51AA8B1DBE4398
-4EA8566040EB8B341CCE23FD3F69DD235A080BA5C69AECB9BC732BC2D7D40617DDA6B79FB6EE40C3
-556C7DF9B23DAD89E94054B1345DB8402AE679FC4655A4A776C0150463F8DB2BFC0608EA1F124E22
-1DDAE6026B5E5D007A7E4A0D6B3B0CF3A2669E67C5E4F01551966A7BC48F2F4B6A87E740D8095E63
-F77C7A027F26B52F2299DE5B8A2F6209BCF3D31CB0235F998F781E5CC81E31DC424E008D46EC0920
-2951E5684804A0592EA47D6C788A20487BEA2EC8F2E6C1D7F378B62DB43CA43C4B366F8B4319631C
-FE9854F0E10321CFA3B01C873584863BBEFC23C72C05E695B56E8A52E89AA2DAB543834D34DCAC5F
-ED08DC51825C5257AE59850D101D84F4CAA1D29FC932F9E0EFFBF7A9A7F3685F61F0490CD3CC8988
-2DB52A757A6AF4C4E67B407BD2316B1C0FFE7DC54E43C87B874F57E4903334E2140B011484863CDC
-ACA331175F2CF3D72E0042855983AAF8853D3015E870FF0807014C31D55060DF3FE1FCE157324481
-2744AB51322444632F9AFDA6706E320FFE82B8CBE242A19DF00CE73EE48E25FF49D5871BD3E60652
-298FE3E8D400609E232E0DDC794C0579ACEF89E841B2EDCA50D51151F65E8C1CC3B01EF1870558F0
-BF5743718C3E068617E81BFE120C6CA16E0924BFC2541177D53671CAA3AB641C41557DCDAE1A3461
-47B5E999C4541B08B4AFCBC187AFD653D5B5F8386DF6AD8FE69E21BD0567DF494F736C6A184FA4DE
-48DC9F347787CA96E2E00A296C2DA05C2AD9BC423E9CA428D7F1FA12DC9353A302FB8C529AF8688C
-BB543B45B2717EBF8F6C497935F4F3BFFD285E0402AB7544B3CA4643AE5A8B5250ED987A95FC1F27
-5B9707ACD0641BD0EE2AE9758494F8D8A51DCE408A38AC20EAF0852D72D84D0C6BE973326793AEB9
-55EAC6FE0A2813A355DCD22F6F2CE56588D1C055CDDFA98878BCEB6A018DB22922D2B600A20F8184
-2E665DF41013CA0947C4237C2BD60A75E2FD1A3FB8C8FA19485730B87461AD466ACB02DF8CA24091
-4FB090B3D2B41EB6B8FF05E1A59D9FD668AF70BA5BB72778953BA55FC5F9F626043450E1D09BC83D
-8605098ABEF884639A37809A32565CBEFB3FF39EE53D6C18C58C272BB928E4410E361E59A50F242D
-69747A032617C52DEBBF62364AB5A96EFAF642D9D82BA679B1D70FAC10A4EB62FA5CFC308E86368A
-AAD7E75948F43598CD1C544A0D4091374D7E88D4522CBE902391641327E888E7748FA889DCE67ADE
-61699E7D77763681CAEE9B1CA8837B2F7EF9C18CBCC538C465C8E2DD34616953CCB6030A222C728B
-834911C1A179E2C770289407AB28B303E724D97F747D6134B425216A64C6E0B60F633E2B85300047
-E4C90339CE030A0FAE31E830C8ABA5AB3386A3B69267351A7BFDD66356AE5E57FB2994452993E90D
-E7C4E260ABAB93C37831856A650D56E44172FECA01D6C7C380F250B82473960D2A2A5FB6B4DA668F
-46E624ACF7FA0FD4490F485D640A3ADFC9F8652E7A38CE5799F770C3606DB4B8B947F93967F779E3
-A3C0572F13A5A187D31D7BD12A5C7BE23CB6ED6192086241B76C5BA6983DB9C93E4B208D707D3760
-F03CD6272EF3A4CE89B8E52E6AC5871A3D03EB975759AB4BE239E5EC7842CBB333E692CC607C722E
-185D3C39164DD320C6945629C70FF66A5237C0A9520A1FAD6EB9816069351AB0F135D90CC0982B14
-7D2294AE4A38A527EE40BE9CDE2512AAEBB590E134388BB171D0956A7C4566D65A9A041BE6C4F883
-6B3EC3D2ED1B48B566A783292B15B6127920D247D494F070BB20BEFF60640B11B276DDEEE49706E8
-B2B21BB40B7F00AAFC594C492C25DCA774E0B80D82E927448DE2E74A9D0DC7AC9260096EAF187B6C
-D6AEAA6D1DC4205B4411122751A5B22688404EA7C5861730371FFAC10F5AFD4727A0E402AB5EA757
-606B75EB86A05E8F774D6E430A1A3FE2A37EBB06700474239FB1CFA05EE44B91B82244C575B52E7F
-AF934B04EEB0D933FEB57EBE326D75821C8B23EAA85B583AED4320B7F04B9F2DC591091216FDE52E
-064BAAA9C2C9D9714B95A4558C21F3CEBE624B5403B31508F178581AF6863083ED762F1E2E34A45C
-FDD71660D626FF8648F5D6C5E580D4765A67FB6159EC8077A9F0A88038C8D3D7C77FF0926E2123BE
-874F7BCAF129D55A5B5960F824BD1728ABCFCC51D23936DE9A25C408D786E44C3A2BAFA4423177AD
-060D21D38E15E23EB6FFC0B4120E814695D423EEFC2744A1FC81B4DF89D76F0A6803D8B14E75538C
-AAD03A72517B86514F6952F6FD619D9E910D980F00964DB325318C045BDF79647F453D4A5CF4E61D
-D5359782827229310405FBCF6107C3AD9DDEF9A9A339D5D5A6EB2E7838A0A43221BD62CBDF732DB0
-A638A52016FB35BA7761AEC846A023D3BF2D1BB183543E81EB7CAC1E5970CDC6F068C5EA118C7AAE
-528D1396E6DC939112DA4460C890EAD5C01BDC438F5BB734218BA6270ADD0DC1778FD8AB16831D6A
-302B814A1A44B07EDC65956C9E6CF4875DF521F3CE5B422F71081B6D69BD270F739095C9E81C0377
-934A8BC6390C420C4E4CDD9CF7E32544C68D884E15ACA3BCC07FC8C132D8FB9D752C15D75C52C288
-57E2EA461A6FCAD90C56843513F74461F18D7164BC597A28AE4BA7C86EE1703535A9B9ED50122627
-71FC12F102E800E0E1AF7BB46681BD2B14B614CEA91B7B2AAA35235DE76C0E113C92688F8EC81277
-D58C3406778E1EC1CC15F1CD9A137C8FFDAAB99ACE3BFC782916F1A877170589A92DC921E6740A22
-B84DC6BACDABCC76E64C79E3A588D80F8F4D376E1B426F15751CF7391102102F0AFAFD8B22DFDEB5
-48AEB5F30B1673023D22054A13391A0EC08DE6E7B685A0D031AABF20B7C62187C0284892D5EAADF1
-21BA28263EB863D5E36EA9C06A77CCFC0E17F593961591F84D82AF823EFE41044C8D606FEF83CCC7
-B0E961E7994DF8A3CC36B209D953E250ADAB8D22D7F2B4E2C9CA39EFA2D93E56195C1560E30A5190
-CC5B17FAEFCF250DF79F6B624A4B917E11C332222FCCFEC4F6A47BD9E75DA9854FC3F7AE554E91ED
-DE144D7AEF38A0E3EDB5E5A5626374DB94F022C8CF549093041DE00D7269B7CE544E748439BA2870
-718C08E58FB4A77D93EBC04B7957D272AE1601D41BF85A2BADAA0DF73B0D3841D4839C85677FB2E1
-5F1D6CE592669FF4BBC9C69DBA334DC37706F2F6BE83D5863E8CD6A30C08640AAC4C233684E66B4F
-E6B62D4A8BE9D531E47BEF5640D9B5C27D990092BE1597F6995C8A77BE9C18AAE6C1CF130775DDAC
-41D34438FC7AD8E042CB56CBF2944932EBA7D053E9376FF398367450E35A1945FE23E05C921096A1
-5454721FFD0F429A3E06DC3ED36F1C170BE79C66996EF8337AFF85B90C5D3A4A94455AE9FA32E211
-7A63E59001F052D5F6223125BFAFA40901E98960ADF7BB886729DCA82FC3B8CC52B37FF2517299E1
-D769057F8154FB95582F02CB0BECC873A9C71796ADBD3E91324FAA94F2C41CF57C30B5897D031C02
-D256C909E080E70BFD1F32E69EF67031138C2DDCD1A8E4B65E485C23C3E450ABDD9815512D6F34A8
-4B9DB715DB2C7A93BFB424316E1AA44397749CB01088428F149A3B4324737ED9957FD388248462AC
-1B2610D72BF5C073ECA567E7385CC959E37CAC7E05470160FFA5A9F63B8E9B082937E911586EA165
-374938F492EDF28CE6020953A5B5CCEC7737F9D9CC8538C4339567AAED3794ABA3B9F4EAE65466E8
-E326F6C399B36355935FBDCB9972F10B13494DC25097FCEC5A6398F275C8C151558E74C5175F7BAF
-4155E36B733F75CF9D5C5979B0764F14D8306E06BA24BF791141E404C69F3F8FCCD91B9C58C2C671
-AAE7D4F9E5D6414E46ED633A5F78AA5BF04E652246A066EAD9E582B181CC196EA2D3CFAA383B5D0E
-4CAC9336E119C08CC6AC55CBFBAE147C623B400453BBF447E96DE036FC025624384359EED7C7D5F7
-858DC0521377CF647A157FC3F188DE5EEF094DBA125510FDE34C570D7BE76AB5DF0A28BF45DDAADB
-EA7EEEDB936332DFE93081E0AFD3FDD46BED08D6914B2EFCFDC41662A33B90B03D76D34F48D30FC6
-BBBB600E90E6AC7243FDF026762A44B4D6E4ECBEF48C9D7B696AF29EEE063E557D8FCF0F09E0136F
-45D17E608DA36E59F2AECF8493F8D62536119B5F7E1554DFE3F6E8D7C9A2C6F557D18B4AF92C9F6E
-050975C3B5C54F9B5F4E39D600B6FA2CD6DE203A174028CBB2A201AF126D1013C229BB82CFD013ED
-199D01E51EE2780FE896E01C63C655087A3E61A7F1029FA5E97EA1872F1B45F22282DDC317E17926
-7368CB52DA9444F6055A3C653659CAD2A1D8712BC2B1B32C1DC6906D957FB88524EE066156ED6BDE
-B8D832F9338F9912E29A250A8C4674E667C1C278B677AEC9972BE83CBA3FB779893FCB8F81A323AC
-91474BA2A2334A07BB5628E905C518E634F6761A3289056F83D5DD7B3890987EEE1C18FB2D379CC1
-905F1AEB3B3D2AD578F0D6C845D2D40C4BCEE3F71C90E68E5417BB8CDDD878D83BA80AD8485F4067
-E5C3CABF28AB56CBB219C0AAB8FFC6C7E192BEC8CBCA1459AE4450AFCC81B9548F40CE2622E5A7C2
-81F74DCC02DAD57EFD92D072318DDF05BF42F1EA8163071E23949B0179CF7DE64677CA99B23CB926
-B3E294194EC13397EA1DC9A5E1CDCD828156CD71F81B64167D4FB01E6002713BD8AC6F82B20CD369
-9C6CA4704DC5C65A2D66EB155B7AF1C9BB46469416FB49C1C7E17A30A5F045271D7DF3FFF2F42C6B
-470701C381E3456A500C6BB3D0E47B4D91C5F34B49BB6272F1F8698B307D89EDA3A1565DAD1C0864
-627560CF922DCF5B34C67860352390B282F95394AA2CDE0E97CE3ED39546A6AF1C52BFCF81A29BE8
-2C47C99E8050E4889E4575B75F39E662F2DB7420673797E2ED3D67CDA7AE2C15D0A0A794D57D168E
-BE13214E89E0209AB2C0EB7784E9491AEFA3C02D0DF3AE5365A0FC4AE023CAB528162C7A1B173664
-9DFADDACA8DA5FA18B7D6489E4229E9E24D38A620464A744A5C60F6F9D334B908706B738AED18669
-8A8B278341FA4D65A0A88680BA484694921512F7DE93337FC1C02BBE6E64AF2DAD07603279D87329
-1D1F4D39C1DD6D89C90F65240F4808F6F1115CA55B88E242565E59F3BBF1F10EC7B88872E9AE61D4
-4CAE185463EDFAF7DF63DE4D2207D307AFB61501892965170D2945846FCF5973A1D458607F50C15E
-06E5BEC715E0C156259AAA6C735593E5564F65F443B78CC7512EC35A56F126DF9D30974A40872E42
-65E1AE5FD483CFCBBBA26DEE426CDC4721F19C3FDA86ED7AD4FA1120F63669BEFE7002B128CEAFD8
-C63E8AC09943B6CBDFB3D2476A026C00A8FF81B1F651B97F310C82ABA5F388CC1DB5AFCFF5996D52
-52A6A42FA4D972E41EE56088F78CB966F9051171C472C774879AECFFF08BFD9CEA40D7C298922ACE
-64F28C14E0B81F4DCADE81D71DE3983D87D905192EF13CEE71B2D3FF1A88AEC671EC318917DF98A3
-C9054E372D22A3CEC82FCC217F47319A40900312F6E32B536B9E7A7FA0837EC65CCDB5FB0D414371
-17596CB39D9382262DE6E65379D3A9709B2CFBABF5FC5D5B352425F06F88CD31012A2A4147B112F0
-C1C0ACCC808CD625E0228EEF66661F70AF96D3DCFECD402700E4F6522AC9A856DA466D55C84F65BE
-2810A1565163872D62EB81333A698ED7B68352CACCA2D7AD38AB55C19E4F5582F75818302F5FDADF
-1DCED09D94872F2D48FB636C8E38C7563C72C771A08C6B1F041F3532BDB39006C89A33C09BE1E3E6
-03622D891F98010BF1DE5355F557A1E09448D486ADEF565705277B31B8BF2B86761E32631E3435B6
-88B79D566F1747BA456DDB43CD239FB47FF7B425EAA4C657C8EEC26EE01AED07CF916E77D53634C1
-37AEEA009C6B515B6342C54BE2C7B95955B1A9DA277A0ABCDA2346E88018C726F481F71D6011AA42
-F8852F2E5749518FE3B3AB668213FE1A05C10A1C53953D75312631D6BBBA01D418199DFEFF8CF548
-6109B099FE8E2F606165FE30F532C03567785D5362AA873C9D3EECEB20F1945D55F49B0CCAC84967
-59FCC7292E46938943C262D78F3212D3F9D0F7B103157F423D71B1ED54B2A603F4C269029918F238
-EC6828FFCEC66009DB9C9E59534EABB183F31D7AD4C57B1BDF0BD2CE5A421882BC10CC1BCE6A970E
-2B586BB221567CCA483989DD0B8DEC424C1D1FF042DCB7834423CF244EDA28D2D969B17440CAEAF0
-24A6119DB010CE366821AFA424D1B8299609C04148275AE6E5257A7ACB3C766C747CE99CBA2D703C
-F19B7CF301B634D8B613DDC4AFE4633A4D77BFF8E00CFB5E289EBBCAC90A24307E7941EC1685CBAE
-400CADD876FCEF7F6557EEE167D2035A05120293527700DC510B038A496BE1D5CBAEF24ED39F7421
-1A93AADF22214ED606A80582485AFE358E3A46D0671148998A3B3BE209467009B43400870359D418
-9A8CEB4D5866AB52D16D9CEB1EAB71C07E6CAA34B70E3096BF7604C22C40D5FBFEEA616DA3BABD59
-DCDB97D883FC8742B8267A16A99B7953225F7144568D566E64542C92E538AC140C851E5D295528EB
-7CBB49909B1CAF6409C9BCCEB325468FA0B5F7CB2987382616B477CCFE4F4AC79E4A6F7165363543
-F04DE5B6F6E1C2E910CDC3CDD6C4C92737198F892337DCB6647BD226C820AC99C65D8E7772BBB74F
-E65DCAA8A22C33BC168BF48E40A82700A3A7668C5A9A71E397ACDFEE7D556C5C19467B7AA69C260B
-727407AC837BDB7D67DEC055C1F45D8BAC61048C45BC9FB3CEFE7549EAA2992D2EDC126FF7A05EAE
-58613332A2BC1465B2BC0429162B907D65F793D236EDDD8D35405866D71B25F62DC4A7E06D4DEE82
-840ACCAABC0774F8A63E9C0F7FC980B3583E7A8B01C46590E3BC04EBA565C2EA94F057D964A78A90
-EA9F52ABFD70F84E44E434BD10A42E98C794065724341F907E35D3CB257161E01C7084E3A0166D15
-CED65DA7BA87DBB2EA33D39BD99AFB93D3548358D08330E807F8552CECF63C84F805205491BA3A1A
-622E70C232FADF3BF2DCFD6F0539158D3306506F150B0518371912A25EB96163D73E9EEED42EDC84
-D688BC7F7708D9DCA348FAB4DF62E5809BD094842D0A31DBB7C4B41F94D946810C5EC10B69AABC2C
-91A59500B2E5D37F4755DDFB7AE4ABF757F4C5BCF77C7F95E6A616646456FE8F18407080BCABBFA5
-7704287AD26222DF91AB2613951E2D679472F8ADF06EA2A20205EC19972299A78BAC52114334470C
-5F5890C2F846B4C6042D73945127F2E3910ECA1C4CD7A16EFE4B4BE38A15AAA710682C3836A8CA83
-FD384970139D8B46FB0AEBB002DD224199672FFA02250FBCFA4E649E335428FC71F50F45E498419E
-DB0E970F46894A48F65580881C9C4250FCEF65C9B28699408E18B26FE6DB7F1CBDB767564E73CB59
-54C6D639CE33220C894F36E70F71C9F9AA3FE2AE0AA0E3F2E304EC5ABC661675CDE2E70519E4220A
-E26FBACBD01D5169EB844750753E6CED53E3678FDCD08AB93E10067E9C64F38B40B76D99B6CD92BD
-F4155A1EA5CC824998B59AAD06E09E5F15EBB2288D66EA71B296616734FEF2796F07FF0D8B047074
-A1111D68B99C2B70FC56E74A51B062F4998ACC85B1943C9477E436E5CD7AB18DBC898D21BB93475A
-623BDDA71D7B895BA2D4C10F4B90BF335126F4FD57D73AFA50170F6B3C364922E551D40E35DA75FA
-891762FA23401D39260F2E92C7807C746F13BB35CEF9DBF2E76E66A72FEFF095DA482A4DE8A42091
-7065736CF4DE904FB52E649A32255E2030A7B31B686353492F31C064A3C4B0448C4BFD44B8E15384
-FD809B8761EE26A7DFA1758D57CE4F0BC376EB2B3833534B15A83436BA553955ACB5A7A66796AC5B
-92DB5388BC53EFA27508B08E82821E5CF669BCE52BB860780F749B4F38ACDF5FF12726BF3EC2743F
-01014CDE96FE6B4C40A034E9EAFCA2A35CCC776C2669E6AD138070A40F48ED79136D7FF57E993E09
-B81C543FBADD350FF5B5F7A46F060F88E30FE2D8233832D18B6C323EE017EBC1DF5C838321CDC8A8
-4CABCAB20B60A1A3AA028F36EA6E87C850AF8AF7CD50AA6359038BFA8818821D02CEE8F51DAB8C05
-F7AE9797814D97F3DB8CCDDE45B21DBB15CEE292FAA534A5F317B357F4091F3DA357325B8B9F5EDB
-45865415973C143E5E5BAA483FBF2D06CDD4246675EC58B84C6AE65CA743117FF00F229243772561
-31A7F2BA26A9115AFD96C18216CFDF41B7220ED0CB3FCC26C36380007B382A02AEAE428887DC8BE5
-FDD630AC57EE3DC156C7B8B29E687F24442E35CE10BA4087295A641F7139C831F7CCDA6CCEB5DAFE
-537CC1A97C5A337D3C48A6AE947F58A30DC08CC7B58DBBB4737AD52783C573FC1E9408F55495A80E
-7FDA61F0B9C4F090158F1A416249EBBA936C27BEFDEF19D1BFB839EB70576A010706D8B95657B218
-9C2AE04C11EF9E57FE09880273761FB4302C388BD608FA0C7F00F033C9C00F4E3D5CE2D903E0DA52
-E69C7745EE9FA75E2AD93DC6CB5CCFCD3782A699B807AFC36AD1F62B05856D5DFD6F88831B90EB3D
-CD523582A49732E3FD7253126D39E8AFB8458B5F7AD7F94A8DAC13365F433C857AF4A42C0A08C4DB
-9887C4957259ED22D13CFDF5995DA957EA5A0F620B0214FBFE08AB6D552DBF048D62CEF6EFF12F15
-3511ECA7833E0E3E95F85E6AC0F95438AC4C126E1F1ECF336ED31CCA7EB216D279877123FD9FCD8F
-B5E52B587CFFC4428456DDCA816819A8A4A211D8F1629E5D42BA4C5C356E580C8A22C61D987552FA
-A97893816DA73D423686E4EBD44375C257F031318865A20F22115E72BF1EB9F93AAA169C140A33A0
-6C35BD4526A38BE79CF40AD1EFA10411E8F3300A8A8B97AB140EE6734E1BEE6C8EE443D698D34159
-97649C6F10F20ACD80236422E215E146D744A262DA3FC88DC0D86FF66512F49D3F957D3C5CFFEB42
-4823509F33F155057A4C6F37B52F4667767BA94F6B8B62856B553F307E5D230C44CBFDC9A97A45B1
-39FFB2F2565EB0E22026972FAD0FB7B9576FB6F368B61979943A398773600E7EE1DFEFBF26D45D40
-BDA66EBB96A56EE9CAE0B2420C5DD83E24DBA9FF885BB844BF3D2BF93B07325DFF60C0CB5FDCCA0A
-C8FB5A2E119D5AF26E53AB8E3B428481C2871DDA26EF0B621CD8572B3C664BC7AAC01A1D05B98F79
-1A7080D294BE81099BDA7982432F3DFF4775C44D23F4F1B2E0162B61A8B2CB5EE8564BF98E2ED403
-2219085FE6194C19DAC98A421826CAED7F1AB1477AB327506010217283894235D7DBFC1153D5ECC4
-8AA7293F19592B4D7E95FE55151889BCD1D7FA7DC2370D2DFE11D7E4EA34B5C7A8E73BD3A348FD38
-9EF45B6167FB90BA44C23E912F9A4F2FC0427ED070592F7110183BFDB2C400393BA7569058227926
-351F07FED4F33633BA03A72AA2DC6B598E49B96021DD868DAD0F352E5722FB714F667C15C68D49C0
-3D822D82677EDFE86FE9668E537DA284068C9B0AED83074C92A5B939296D505B837E6A9DDAB1AEAB
-7455A08A114C2222B339284674B74BF4CA9EE0C020BF2A148B439C71C6BE51A94CB64FBE4A7EB295
-5A455047CF5CB348B062ED4F6471CBC3E9ADD9BE9B96879AC7BC71BCE02FD02F17C6063985A5E898
-3D205AA1489DA13C408990ABA1C54F2F501AA172F530480D789C848118C0A74EF98D5F607A067BAF
-F6030D887AC6A6497F9A0B38F9705F328AAD4BFBB634F739386177B07F22D5771282444E5EE17335
-B4D0EC86117C697E79A5F4F65FDC08E4904DAEDAB20067EAE2448FD4301849E456D085F392DD1316
-7ADF75CCFDB723E2904A9C0C976D6B84DDEF9D92B0E15FB246C3ECC2D0BF314CFB957757B3A3E8E5
-801F520644E4601D291DA0F7507C06F3B9BB36FC1C70EAA444E14E56C0CFF06C7F853DF36DA9D8B6
-AF2544B853DFFF535A7E5C6FC145250CDDA229956019659D0D253A19A7B51A4E538BDC01F74D7704
-9949C2C97C7EC6392C2E61CCC0992B66DAF1AB08551063E53180D2A67DE496716CCBAA45462D9F91
-B66A22545962DDAB120511FF08627131B95E5DEEB8B4DD9643E7B2AF65C0FDCE11F5F1E8DD468DA1
-8D41C8C4F00EA73836F4F70EC50FC3EC6D358C0658A4261C6D15A582A2C7C994E7882E661855B352
-014576858A265FFBC425160669CE159D07EDAC04D060B44E5800A7AAE8E339C29B929AA81D2F515C
-46229D2080D5917AB20AB6B34FDCA8E4AF64ED660A3173786FB1A1D005D575C2A5187D3F7CFDC94C
-CC44A38C5CD523E9DA726D8EFA6DA7B6131DFF3435FEE838B2C7D6B97934295F06202D307FF78D90
-6699CB9C5BBB10D1D4DEA5FDA5BFB094E704607083B646D37F5DA1FC7AD21B813F44D8C1AFEAB666
-55AAA19703BEA2E77DF3BF350E17C74B3447A452235919452B5175570A006C7680AC05E8950A62E1
-1D7E3ACA35A397D1E19630D094A86807593C97F4C484E4E06BCFF708B6DCA972E3A0009E1CAC0EA4
-141530F5C1B8AEF5E1B933F37FDDBC4BE22B74FE346D1A3F5FEC0818F8E61765568A2AC04713E828
-F98C449D9A1CCE52D10D61DD8BFD084C8D099A75D89DEA64D5A7CC68BD5B0593D97953DADA976383
-F5015915618AEC56D71D1DCD55B89736395C609B315A3F1E1255432FDBD37F38CC43C354FB4B7C44
-F1A7318B0B7E99C3C08C33B953727B6A6328051783A0A33E3CD9E498346A3CA6A77B517096EDD52A
-E443B87643A646C3A7BB97F742888D33F9B3127E61942F4103C1DBDCD8EAC8F9E259773066736CA6
-53CE57E8822651261D847C131321BB9D6626A1AC50D047C0BA47B411DF2A995545BD68EC0287CC9B
-31D5DDCA8755EBEB10ACCB3903AB0FD5788E984220443B8459E7C078DA4289F1350905881AD6DFDE
-C47302B0ACB0D4AF8CAED02B4B70DF3CF8FEC118F0FC2D3DDE3E494CD160E676E300BC464BD4400D
-B50EE43B314E0517037BF971ACD7CD327CB2134893B8A0410E68DDC518F5DEC966C7884CF5FDFE74
-723177F20DEDC039D879056CAAB4BF045062D3904F615C5CFE109AC7A35599C94024B41019B9AFD4
-04A80ACAA4837929F5C9317680A13D157A03B59A5588DF79D2E113F5F51021D6F6F90E8BBBA2C252
-FD10651BE80BAFD59C53A3367BA3C28DB6EB9DABF1EA99F47B503F627E15DCF3FD645FC52C5D5D0F
-2F07DB4C25C0D1E1C00146E1C4D973E613CCDBD3F9450CC0F5343D79F05E9492E86A1BB889ADF405
-03BD7F3E7543436859184A5B20BD8A172F350D846B7570803990ADAA48D4B9155A2B4C4BFBEF1E1A
-065C08E03928559735BDD442FF1E83E1FA20A5DA57D8BDB2FF5427C034CF0128AF111E6E73099E04
-6E0C240E80A73D7BE72B87834E45898D475521CA3306707631F5C6136199F354632D1A085F12A1C7
-C473868B62E534D15F5484323E63D0574196A19EF175214EB35A90873EFCFB92D6CF68761D45E37E
-AA61E1A1979A82009507CA193E44B36A806486665CEDBCF387053ACEAB979BD35D30978FC7659ABB
-E844F4ECAB3303318ECE80777A5FA5A9DD91B3D06804C4B4E9B4EFCF07EB89866D0DD8CA390CFD15
-98651417114D78776B1A1D36B4BA17746D6BE7FC123D473EF1EFED1C3BC1D555F914536869FD5B0C
-35F9C83F65B0E6BF7A627B9202D787D72C600DDB6BCCE613D88492E13CA0AAAB196E8A49928C62CE
-A4FFE2D0208EDA334ACF47F20BD793124D2C5546C03F4A364369A76A0425262F9D9118AF54E37D32
-E33AB25DD533A49DF5FBF1BAF4CEAC2D9D378CDCD13B00FDA432D9042F623DA41AFB80699B5538A2
-5403B0B3EABEC9E8EFCF42FEF3EA9F91766902CD206B0787C187D5370B60AD6DCD002DE2DE8DCDC0
-B4719A797C5E26BAA67665016DA0D967FA1346F9588AEDA174CA001B31213617FE19EA218EC23597
-79D979E2663166489C06993230B0D07973A117C4E3F4A4C93CF8428248DD5389414D679C69644142
-67C7FEA17E35B0CEE456667A9B1875C81B2302BDDEA2818D6019FC1622A82051F60584ABC904CD91
-8676305DC03FFBCC64FDDAC8D8AA9CE2EA00D6C97BC63C8A617DEDFC0E40775649438E9F61AFD179
-5E3B20560B01BE5E0983F136CF48AB206954E41DEE0D9DDD953DFD01CAEB569151D6BC0DFEF29D70
-FAE3E198E7EDD8922C0E0BCB8BCCF1C016142C1A8B337AFA7A05A9D7534B184BF3BF827F371E9BD1
-9A71244ECA1BA73D484CD2FAD54DB2F0EEFBD54B536EBCB5094E6BC2F5B2AAE41F05B4B311115876
-ED42C34F8E643B53372E3F6350DB8A38445822EA9A33E27FB0CC42CEDCD1FE2FDF723FC47C996EE3
-56C402112F24D0AF899B2D00BEA1CFD427998BD22B2A09046D6737814448ACFB10D387547D7009FB
-384AF0562C85694C071584236D0F1F3D3FCD0CFB38B77C81889061E668BA7AB37AA60F58A3967DE2
-6F939B79CBF10A9DCC42852561D8D6754F1B660D216AAB1E133FBAA321C56E2584BE5C9BAE20CCF0
-0E8DBE6D9C2FCEBEBAD945C3C04101D2387351F132628786F6D9D4CAB83419288D31F9BC600D9664
-12E6AA457CE6CAD26A4C0671097B98C2384C81DD8B9A3222D4F4BBDA7017895C3EDC26662779AEE7
-40D9D7E24185FB821970B0A3A94041A69E4805EC88EE1EE521981536F2844FB8F5EF645F67D42CE5
-148E2DDE43AD5AEF200EDB3A2C7866C98458A92666E5F9E070178BCC39F65A893102A10564AF4E8C
-AAA5075D2F8CD7FAB0401C03AF299EA3515CC93066744EB5AF7CF0ED06675BF049A6E3C211A89E16
-DE5BF0445A7CCA6EE8EB0347454950485D884606651E5887FE8B24323E2AA16DE22FC1FC8C4F06A8
-2A1FDE5758976024068197E1F4506E4D3D8A16D40461A4586338B374A592DC60334402F76388AD6A
-457DC3F54E6169CF7AE3959676E966A45609621055EC3AF80E182633300A4418E34A66DDFA6B569E
-5A13C9115B5FD3EC1CEBE50FBA247F60803AA83976F00117536342DC3D9890C49B2AC701D370E43A
-955118967827760F7091469C5406F08F18D7E3548148CF0E312B1DC71DF67A5E7A1656CF2F47F3AF
-F3DD50FFC2FCDAB7177285B29C17CA43019F62AC6FBA52D1493ED7C427526470ACC8389BAE827759
-4958908F517B2863B83292EB5AB3F57FFFB08393CA610FB1FE905D88A0A16AC395E2A2A6DD033D6A
-0D68992F830B2E1B95FE357BF672716E88FFB92FFC3D62945D1EAD22BC68C51EE0E10A43011DB94C
-44685A5C4576F6EF44CBFB45F2A4BF110A01657DB51FD499767E78058199B31DFD60813F1A344F86
-289F9378231D5B151C92385E3650B4FEB1DC91018EAB8474CBF69FDC1496A4D078D2C351C8196451
-247A9DCF8117E5B637371D8E22E248C64D999015C3FD2311E9950B8EE0922FBDD3D7BFF766BFE9E7
-CE0BE12F318FF2A7B5A9C6D00A54401609304ED2C55F5C1EAC3D4B38355BBD85D66D61636FA6E30C
-2E82829376BEC979A6FEEE040E452359768ECF90CC539A546F17AE906C76F14F86FF697797322B05
-1EB311A759FE260C1EEE5DACF383816AAF1294CFFA7BF87A4D9BC595EE8F2C2F86FEEE11AD959D86
-F22FDAF4CEC098942A57E57813A0FA99239E994FFF353C1E781D666B8928CFC648FCF0869FC68468
-BDBDA7D280DFAB8B0B3A4CA35B074B686DE8D372C61FB32305169A1A9912F6541DA16CD6316A6EA4
-51524757BE5CF6E820011BE3859FB8B8578C100FF029680E05F0E0BF11D33FE19460C85EA5E4C0EF
-28E29407C8AE6BE01CFA0D5022BF9FB01416FFF722A784DFC8FCE330EC95737A854471D334FDC58F
-AB42867A7B62836A8B56466E9A6C1247D46EBAFFB905CD4321970F59FB8D6FF65FDDD34BF913AD32
-2E68455C5FF2D23C1A5EAE687F259BC982B6A384D35440F7C693CF50B9ECAC0B5578CAEE87588B56
-2EB6B7F42034C9F2E545EC866316552354EB3728C7D26527ED75174EAF635E048B08DC5D23E88981
-070AD5641A652F2344956E9CF4C16E652A99F4A644D1787D6D36537489DA4D74E61B2FC4DFDF1D1D
-9D58F9C26C5EB63200526AFD168AC57D5611ADE4D4A382FC28BB60F9E7D626A6C67AFBCCD1183C5E
-3CF2EF210D0BF5CFA7BB10FA3887BDD4CD96EEEAA8F9219AA2F10ABC0A960C3B57C0EC0313AE10CC
-FF1F522124CFC8D2D49BFBB0C193EAFFC5B48FB3FF30B21CB76F0A4C0F1377C9223145BB0468A5D7
-1B9BC25873EA12E1C60334571C67385C00D0B570D3FFC6C7FF0DE62C183C76AEEB12DFFEE1459E0F
-C818C621B8D12FA1357E2B55D48935D70BF140B4CFFE8813DEFD479350B20DC2EB1D3CBB1A2D3DC6
-EE975D58C89D61FC50E6A0197DA9A586B72255023DE47DABEFB11E8AA02414C2FF6258A281219B9D
-DDFE41BA7D7977D0D6F18224FE22F7D4E9355FDB35BF7ED3418F4F68D093AC48F7D8FE4194FEB6C8
-0B9DC1F74E023C604DEA27089F98C3973FF9F4AD7BF7BAE601DB89B08D5D8139B95EDCF6C885FFA8
-B3E4B0477E7040225733826BACFD1EC4A0DD72DC41734856AB9FB700DF83CA2CE812913BD142D84C
-5C83C0B2583768198AF9E885F2BA74877A414233207234AA5F18840557CA11682AABDE8993533887
-7C6D404BDE4153C9827EB16D66C1D73A8143C8A2D3604FF72CE579FAA3C5224BAC48EA83BA848429
-9472007DE96466B5B29ACC7C03B05DCAA38A48BFF9F214DE43146AE4E04FA705421917F99BC54533
-F0EBC01849E396216B9F0794E6F6C6B61B52EF1B1950C0FB609895C3C55FF574163FC8B6B09E66AB
-AED1810E698FF37CC1F926B2CDA3B48C7D77790EBD2D514B6F385D397F713EC3AD3954EA9C846158
-6031D369E8B99E53408A79D64C34EB5A56DE8A67DE91837960E98A66FC04DFA0EBDE21DB003234BB
-78665B039D0A469A0221BD541AF7149A2A659C300132C14581EF766FFFBECBA8B58A5EB3F95446DE
-F49AF863A8113D17B2E7E6ECDEAFC3834D4DF900E3475596E86FBB4E2974C090DB4AD61A737D611D
-92B4535AC291C56AD8B1C031D2F9B505BB77517B737D70AB3723DB52AE2ACCD5DD2F617423ED3CC3
-9CA882EF41757BF7151806A9B8B0F312808863E3673FB54DE939B35CDECA7FBC4DC3BDF5A5F47D35
-E345916C39366C8B4F439CE1C6F1835C320BD1E67375B03B5DE18C93256F251761A4C8CEC01019C0
-68E34447BCC503B9571FE8000627A6B3DAD5854CBC0A2D69E5A8F46BC78F6A7B1422334EC7A98ABE
-FE9B83E01DCF3C6C9273B346F3240EA225AE4A4083CC7B0EA141A0773FDE940768358EB4B13D82AA
-304A1386D450C1C0C6A7D5A8FD2BD313F78F85248B5196241E31E5595F3BC01F37700A2DD3D4A0EE
-2DD01A36569CD507130E8F5B1E96CB560BB7DA15560CCADF3B2C9804A11D9E8055C9EC70E48C1D21
-3EB756A1376F2EDCB7189D78CD3D6CA5865537EEC31C17D801605EFD860B0B629472690588D02575
-02C6F7A75B9A1C1B397781329832CF3EC43C09F1559CD562C48FA9500295CD3B0A790DD3FCD4684A
-7C7AC49AC9BFFF36B39A9FB148BC28D37907433943CBBF0CBDAB46D3EA86DC8F81C859C52D15302B
-94A9B51C199B7104DEEC9D769C2634CECF8B700CE9C04152CC59C9326BDACBEC4312DEED92DD087A
-1C4840868D9F97CAC046581F762F75E8D24D6445370A3F1E0AE74A6478D9DAC37E7FA5BEBEC0A1E0
-81AF89C1BBF7F51E3E2E22C8C405E8671BA85F1BF0DF79A465DAC7EC07F731E00632E017D190A99D
-83E27E5C2E63D7DABBA23B2E88334C63721AC5A4CBC5D45F4C177259F34C2EADE01FA008AF65EBC6
-01D8DD16436D86AA94C99F3CC0A2F87134E73BF22F108B825A8963B49C6C685474AFE4A542C8641D
-C0375D7EFE9AC1168D9700459BE52D0DA399023E141969F25C0DAC4668534B6647EC85454BE945E8
-26B26DE6E3C4584B97A38E2B40A0D23481BCA78084FE80E00A71A790BF31DF468A435ECC88E60A57
-860BBCA3D65930186E9917CBD209C230E8F8255A7ABC7D3F043AE4D7AD63D9980BEDF062B7D5C298
-C40225B6D03F29A0339E0FCA02138E526F06B9EF47F5E7A8068A846CFDE2BFDEBD24F5A73A66C079
-18662AEC80B43246284FA4E2EE0D9AAB172B1E59A6CC46B801149D8C0DF6DEC9A55D8E1B0EFD9D30
-2FF618075944CCCB6831D336B11617107B0530D09885E5CA11A5F1FCC8D69D603DA16BEA51116D42
-CAB1AA1E4D7B9B4D79993F2BFE53EAC904FEB70B2D330A89780EAC10D12CC0C35B8399F218AC2976
-E57A26BAD20CE2FA2AE2363D3FD2A8A971747556F2959DA74A8963C20B504711AE1CB0D0C02457FF
-2E9BF696B159AF031DD5155F21C0F5549B0471A3C5DC8918B675CEBCB23E29322B959ABC05283A70
-2E878DE8EF25EA760F3C5C7B7B49D398283DE2ED837FD59F7C22D62C58FE4448B1049FDEBFC8787E
-67D7DAFE9774979BB3802254DA59BCC0219F98C219F84D995CA768B8B5D9D4A32525DFECE003675E
-E4BD5D8DFFC11025AF2B468F9207B5B2B42349B98232BAC0759758C1F4A283405815BD7145C93FA0
-8F3ED2826655053A3C2559073D8ACD199DEA2C5BA5F616A2E48548B4370EC73493BA07E197165DCA
-774438B0766867819C1154D1959FE6E01E6312E0AB91FC2E2BD240FC8652A2D456A1DE7F34EF372A
-53794D4C4E050BF3CA5B7BD2F1B8DE93B4C8002485CB219AD2D029739FD3C81CC6E78EDF38723576
-1A57143EEDE5CC887F282FECD261F6A25D0A7E154ECDF5DC38E426811BE86AAA458577E5E0C5F0F7
-5AAFA9C41E5D1DC9D91ECD79B514F8CDF7A5F1A189470D35FDF4F9B8788879CCBD91B427822ED658
-389E981E0EE5F7FB87692A3E3E931DF8A1D1573E3B0166204240B7080089A09EF7487C9AEE2D665F
-5A82F94C877FB5B0DC531CEBF1E71C6592CEA2401E4B5122E5091DF03D203DF979B9A6EFBA12E2F6
-B422FDF15D49AC0914D372D21E871DE65CBECD105FD4A3E4714B9CCA5C6803FA39DBB015EA8A88BE
-7913502E562E5B170B87BFC8572DC9DF49AD63694311EF1334444BDF0B4CA3245271C1F7A4D7FAF1
-703E3AA0E1EA8D5C6E821B28707EE0C9B4F22F23796FE87356C58AE2CADC191F4C58E1FB58DA03B4
-5A25AC95DBAE13A293474217BDB214742B9D9D6AF35F70FED2891942EACE3E625E55FFB820543FBB
-250A062D3D395BC0F219ECFE0D76686AC148BC41476A887BC494DDBD396BE200FD3E03CFA12EC9AF
-6B934A283C42AA05589AA6B4A8D16946BB51F50419CABECEAEC5AEF9085C9989289E9B46BAFB6FB2
-782D84DE2B068F91A9744AAB237CEB1BA513E57E4C307108E993C972A3E0A898D5A8D27833155031
-FDB98863C3BE7FEF3004CBAA5CB60A1F2E3EB4D7290FF5FAFA088B1CECCB6CF51A58DAAD998F0839
-6CDFD68F5ABC9C1CCB8F6514107773C69C26873E889D1F79D10E866910E4684186FCD71C965ADF62
-39BA3418B313A27AD632300969B6F284519366ED85E7CD968D64823F8C59B5911A72D0A20EB72B60
-3A61E36F52F256FFCDF706B4560B4DFA5D918FBC530D83A4B3C01BDD3CB4572E24242D141BF9E775
-36693A0407D002E09CDA5B195BF1CCF430AE9824C07928A050D0B460F2704BE8F9E647A4884C4567
-0A81EACF7CC038643EB0FF18A376FF6F32B6FE4F197273327FBBDEC6443A299CAD4B26F7778A99F6
-5A11BDE047153E764039EDB251936AA43DEE50DDFDF8856519056AAFC4C5AE6F2051AF0579A9ACD4
-1D00775D7DBE70022CC263DCA5E0A25B9C7C4F5C418587666B2FE24816B1E0EC92F9074F1403BB83
-AFC3F1D52CA79C387BDEF864366E34C90BE52F7AA09935373A07E4E026224E76F9EC3CB9E7EDE50D
-EFDA48248D61F3CEC880A3B8843306375D9711E58645F3625BDB8E87052DA67F9794EF4AF8DB0BCF
-E00677C3A26907DC651BC838C40EC39E2B5A5DC0DBD345944A6C32226089D63C52490FA10B215AE7
-03CFB663EB8A47793B84CE7364DA1C4E7FCE32DFEF09490121222774915BA59C78C2275F829D15CF
-4D8686B095C38C731B83D48738C25F40B8ADD487C350A2EBE846C3916AE384CB1050F9F5DFE09FCB
-D9129C6270FD86D55A459618FDFA4F907E6B4746196BB717865AB378414029017551161A52E9D24B
-E4F7EED553A927933D4ABC8F25DF607779A717909CB4D810DE8F5762581900E224E4B91598149BA4
-71CF8068ABE8744356B261600BFCC57FB8BE45036CF6571D9B2A95304933BD4F17215F8EF53F8E08
-1AF61FA7F9583C34EB5655CB0ECB82246959F09091F36989EBDD646BEDCA614B9A61AB7696B3FF18
-1058A150FA6EC1BE2EBC7F64357A3FF2A2B0491D2F4E0B970DE5B7788B467CA678039B5EF55C88A3
-84578D427FD2CB16C87B0BF0A3D37CE8ED43E0F049AF2436344D5F47C948C632C94A287509282561
-6C64C5D262FE5B24916FFEE982A69A6CCF888BD01D62EA591EEC51F4B7DDFAFFBEEA93FE08D736C2
-0129E345D06B10246A5F57151C198D407730713F32299638EFBDC01367E23EB59AAD42A83AB41B43
-2DB462652E29813740F4680A5D4BD47B18328FAE6BDF4200CFA4CE3773809B45E8887C9B2E423698
-9F6C48D64F5986F563D9A7538A8716082F81936AEBD0461E6F4BD470436D8B7656F0FDF89108E6DD
-02ABDEF907731D458D690BC608EA9CED09EB1E6E64C0790C7A2378201CE997FFE0317679EE1D4EE9
-F91157449323E53B4ADA8096CD628B5861BF794543A98F2FA2AB54FF0F25A13DAD43DAF9394329B9
-5AA53CA32749FECB0B2BC035DD1EBD53FF9FB5AD8BCE06CD89E5568091C1CC314CFB1D9821D7F9AC
-7C55F55E0A16E39A87D43148201B928F3C42B110FC056189DEF183745F3B637441DE8BD4C3C7EF12
-F4258E306B2877ADAEC63441010750DB4E6269A4C78A0AC01BB3603C386651FE814031CB5D8C1F14
-9EEAFF652A53E57BBD4C8C0CE36A84A319A53BC1E5FD3F1ED1EE72F4C1A9BF264B594062FCAFB22C
-C1FDE3F2E3D3C17DD3F7FE0E15EBD812D550227C06D01127385374A11438ABD50048E17255FCD2BB
-85122A6FB9B7DA9D5E9DE8A747FAE0DA45A1FCEFE92B9E70A5B2CAC668D4D07527A5C1403267D823
-048BE671F725CFC7474B44FC5AAA348420B2D7C23C6CA066666FD6F2208E329878D90CEF1C2E77ED
-22D3BEBB9D547810B189F08920A27E7107F208591A84D463CE2576C70C3DFE6643E4EA93F4E1DAEB
-41D46F0E2F56FC10C69AD5034FC9859D31CF27A3A1EE256C93111F81C11ACF1FC0CE20B90BAC9AA3
-27A5C85A7985B951519FD4B03C40BE637162AF41B2FDA68F0D1E9B7602FE2659D3D75955C579AC51
-DF6A552EB9581AC3F712F083F19B52A6C4F560F36C59CEEB0C996AAF1728A2AA45DCAD79BD7B23AB
-388D5B0B64A2B95154B6259B730B0F4A72C8C7F7CC93C7D64D9D8810D1F63FF8ABD4DB89824E2D26
-4FDEE916C41E299211DB1A53256E1DB5CDD04862F034D9404B73183A99D3D13D642A663F129B6D16
-7095BEB4EAEFD03DF2FF2F0B6B594C1EE90FDB203DA89FACEE23F1BA3901FECC75FE1811BD701259
-343011262B6A0A9707AAA6316BC3C17F787BB80AC8DA5AAC942D90F80C5A3BB59E47EC767244AA95
-C63E50BF809998957936D3BF6ABC24B0A397258F9EB4DC8F65692CB023D9091FB180C69498CD0C08
-BBEBADC84A7E0016E8F8BEA325D924EB0DF82E75D2CC2CCBF039B11934363D4332C5FBC5EC556BE8
-5EE4E707CC2753CCC43D2ED50558E51A104221C9323CDCB0199B7B83454DE3FDC810D0F362C0299F
-5DD981B31D8E3DDA284FEF9DC8F9C8DE138D3065437A7FE8C30572AD06D62E8527AD37AE39AAB0B2
-25F76A25F6C6505241ED73BA494CF923E919F688DDEBF193E188F8C4C154F21631080763B4D091E8
-AD1D2FD6649E0CD9360E8D1A67A5B5FAFC67547CA31C95A5EA8D4EB5D68B9F6D6532DB9B54584735
-9558542A2AE58C09F3BD2918EFBE1699E9C8F2C2A11EA4D224C726D2ACD4A8D8ABAEDC6588CF2AE5
-66528B94F55B823A2A1F7BE19000F3E7579D094E047075DF18C8C868760295533B26EB3ED90635B1
-29C17ACA679C3E88B06998CE5A7A2544B700229F5A6A504BD3E45B276471959C8A3F81917A534287
-39B5EF9E3D463B3BA7318448E2A3E79520D2D245A2A72F31FF7070B6E4624E3A5E216BD103640C8D
-F387E49D732529C611F8B971073F17EBD2F6EB18F9B74A67E1997926DF178D4C9EDED435B9682F1A
-279C81BB9F60DAFE125845A2FF3B02979E5481C78A45C479BEFB9FEF3CE2BA9BC46C77B50B03E48D
-A6D17B76F06F3AD118371ADC69E178C52B5FB4B261C9311874ED07DD6D5B3226A005FDD7A6D53848
-09E7063F036CDEA41619122635E835D2D74CBB6AA9B38CAA4D819C26E95115FE0DBAB4198FC5838F
-2C91B7A87B07D734C6D4F4F83444C1E90AA9BFC908A2BAC4B3DEF9157AFCA5248F2DA31CA87BD363
-AC25E9E77F741D4B2C6E02F04987A6F49D30E9038CEFC41BA172DD675AED8B392164411144E5B738
-F3210B0E66B17A13CB9631C33D44484E792A7C082DD0A5382F34C5637653261B1EB6D2035B08B4D9
-1FA9AB770CAF40A103629511F7B43F2743D7E583433DECFB19C21FD4FD0AFCC22A4119E77C87BFE6
-FE50068B22479015BE5A9F06BEAB4D37412E062A45E0CBCD7BB39FEE747E96306F79FC4F2E8942DF
-5D9DA0E55AACCDA547DA19D30B8404FA121298B44C9CCE198C708C69A8D6BF17591C5C50D3FC5BE6
-961F7ABA8F366DAE957A1C3730DA4A5B4F035A9274675EE3BBF0CA8CE9D8349F50CABB1C3EA4948A
-BE6F9F143592F1EA95404E6909A909168E3279A957AE1924245C356331A75E7008BEE92BEAA304BA
-40B7C3F48F74D9018B3247DF50EBD7CE541DA48ECCB1B0BE51A455C3C13C279D4D8676078C3EBE43
-08748D52C9B041D3E7244C745B1F2F742D010A9E60695F3EC4FDC1050AC082B905D6A57E8F407A3B
-472F731011A5798965B7B1A307E252FE02C8F79CEEDDEB6E165F1A94D7FFF18DDBDF79477F14E9E9
-3981ABD200FE7771B29D1D2D120EE79D28B9543818527039AC74085EAFF241B56D08220C958B5D9C
-87C0C04A14D52AFD475B542D391BC54FF33DEF8D9484AFF6873BEED32DDA4B371112B523B6CE22B4
-0D1B416B64C9370F1CDF2C548F4CCBE9E12E21C36CC3EA52DA232DCFB65F66B22B5E2EC04852510D
-5E264EE939BB67AEC4764B87062AEB7F680B40BCEE04AD45C7519EB3B6199C9E0E332661463647F2
-FB7EDF303EFEF84891CEBCF0FAC5F723A9D0476C3F8C092604C87FC69C7A90F4D64AE45A478EE8BA
-2DF50FB93F55A3546123F0B0E2C1C40C98EAAE9F0F26B8F80FFE6E6B94B7E27D2884D58B8A119662
-2DF6BE608C5569D7864BB756DF2EDD184B90812B44ED4A32D001C31383A40AEEE9743651F7950846
-15C48E402DBC01C818D477EAC0347795CB2792E9C11E8FD4A02E194EED1C919D4598FEC003B6D9A8
-A0BC7D456047A1C0579453FC1D7CB2D158D466939A23D7A7B8ABED7E2777EC7487973E73F2266D9C
-250CE30729E3C5223AD93B9AE8443B35711E446A3DC660123ED45CE1942A1A2AD0610467E081CE2C
-8B92A6C82F0B17B5D2429E99F1A6268072C6B5AAAA6EB6283A872C54D3694CD825EB2926E57DBBC7
-C1663075E687A144E4D61C225781D80FCAE1497B442342B4A3F1CD6BDB50E31791CC3928C30835FE
-F845B6BE5E2D7E3F2F5F085AA3FAEB45CAD0D76BCBB1ED859A9CEBB9F7457036F0BC3F195CB1A98C
-9C8648F6583CDBB23894BC719D68C2DBD8003B10D08C8CAA40BCE784D7BFB4EEC9EA5359AC056E57
-B8B0F2EBCB1F4CE40C87FC7861180133E0CB6CE2FC4FE690756D327A2B5AE063E3021C0C0BD420D0
-56F0B941E6B36088A55BA11D0C35FD0132D5F48E5D9673572347171B4328D4807B972831C0D74CFF
-A5638C145B89C989E6EC942148207D6DB82257585958034D9F9D4221C7C9F7013790DBD130F277E0
-BC88BB179DD09E27062379ED06F25EEA8B7FB33C35861A0034776E3813D2E9E5C10E227CC569AB36
-CB2D9DF2E7B7B44758F9DC4FFAD7A24AC7E9F47AA850C221048C3CB35A37CE8EA75632AE65FE3212
-175146FECD6334AE3D3C5F492F067F795E1E8FF386BA198CB74F0BB4DC0000DA383BC4CC3F070DE1
-7721431988D69C8B1A5AFDCCC83C22E16A87E01C6D3E79DC7AFA3DB0371B0866EFB8B6F88900472A
-FEF1C4A878243C52D4E02E82658979731C841C489A6B97E271C4C93800EC7D91F93EB9B9C659A554
-E1FCE42A5EC65AC39190EF4B66DEAF6FC0569A000A9E1495F42F706FBEA4D32EB7EF11A648910259
-6A65CF899C2F322F5679C6D123469192A9BF1A7F1F2C81C554ADB97BD19ADB746A4F81A4D5559E60
-AB94C483DBABF6CE2F28CDB412D50FF3FCFA3B3DAAACC6A83CFED910CCB3B8D2C19590AFF4D75303
-4A6CE7F4156896A13808E0DFEAC547E69D3C886691728E4A35ACD575B40D721E8FCC5385A2EB28D7
-08101DC50811529528F5CB0C009BA7E3C88468E37768FB0D83895AB54DB2DD5426562AF9D8AF304B
-F6EDA54E9C92643DF926F5C3578269750120302A37CB140A18BA56BA01108D4ACACE8FEAE640A6C6
-958EF156B588ADB0EA5F3B0F37BBA12B7BCB221C811415387B024B7076FA4403A3AD6EBB5D9C26EF
-EBDB7ADE7C60B444AB9F90EA493B658B7767AE2BE649BDBB3FE85F460F1ED137C61BD95F7CD3D8B0
-15CE45138538930AB62AA0E54B4CE1A5EC5FEC0A2B28B345B67089A4E4AE14D2E1F5A9C8848DA688
-CA298F93860649EC3AAFEF3E820D86988C8E3E5A4D4BB937791827994AA3E81D0BB3EE115EC36D5F
-B9A392D09E79AF514D11C7B3A03C9F9C13355CE79E119A19177FFDCA34704D38118A8976D1EE5AA0
-2D14FEB1414419F5E85244ADC5C0A765A522EEF36170064BB19FEE3B5F7B441E4DB967DAE0BAC2C4
-8FC6A836E0EF5A69F073BEE1699F55E9C757EBD6FD8B514E2B49D6333815B7DBD1E0694695FCA3D2
-1320A0C4B852D9706DADD8369A95FDD917328BE93DD33818954DBD2C212D2CA81560ED5BC284EB04
-7A5F389E24E43F4FA8C97FECF46589FA7341076555CF55B1C21B28E0C1CBB00AB8B6F67472F27BC0
-D11148F407824B0159B5188D4BB7386FBDBF1C0FAF34721B7BCB5C0FCB7C4010DCB6A1284E9D7883
-9E3C2111A05D29AB7997073B590A81C6168020F1D48951BC7D8476D5BA593F4F23CAC1F9BB0E091E
-84B4E99E5C584D1370DD12DEE8DF16AF8BC6B7B23E2FEABDB7F32779AF8E2B5094A6E9B7A7225F24
-C43A8E5D2B977E1E19E633C26771E23017ED233DBB02C64F8CF03992C6484528D0C8464B46F24F9E
-8380F385D5D01B8893C67FC103498983CF939432AA380CA576D09030CD52FD99BDC3BE16C7204CDC
-3365BF76294A83A1FC14A236F5FE5321904E779B13232A76F8FE521F425562678436359C2461BEA5
-AB27209541F557AE2AA60009C9CA0A9FC7898C14306CE35A50017BADEFDECBBF94EE2905220706DC
-806409EF87DB1D73EAB0698AD2DB72CDCDB293E7FB13C94D9FC87E74502E6927A212F0D7D2F2D194
-64F7A66AC07872E18CB1DDE8F11835DCBC5C4EF039333FFFC0FC1456DAADE7DAE3EC2EE0D3415B0C
-ABB69FC5006F4D14A4EE1A5CA99AD4D5E629C0DD1E0F097B5B93DE2DD001A8C418234C9C45E8C13D
-1AE04E9466DAB8CF1ECB88A4E059C111A6468D2DABB90DA79C7C79E94DB28F6968B1A632F8C57D9E
-565FF91C6916026FFAC0661856B9FB8DE9C81661816221B1FC159CFEF1751E7E403F5F2CE32529DD
-540792FC17A12A3DCD7C50D38EEAADBD10ADBF5D8A82442AA900CE6150EB7A4639DD9FB6E385B2FD
-093493DCCD9014B23EB172E21AA89643A6CAD1093343D85D81261972DE0ACB16A4C6B5F0BE4C978B
-FA12D3CAF0134F9EA49F6E9687C8F99A456745EA252F0BA9968C7F9586E3DD841AA92DC7705BDD68
-2DAE41518A09DF0E209F321D7FA3417202F4BA76A984DA3ADDBC58136885362F02F0A24EBC439B3D
-BBDACFFD8498EBD29F88F016B1FEABC10785438EAC860B554525F3266097A675299AA0967BD3B7A0
-EEEE3FC578D1BE99D3533BD91571AED904BFC9DA1A1451FDC5406E1CD614E0C7FBC733563CD6CE6C
-C31E9237CA153F1F0411114361D731636BCF98555ABF12848AD109371A42B63675A4130B81E97C2A
-2EE2BB5D8FAE2640156001AF0F55D9D5DF8FF23C8AEFE14F120000F14149A36E5C94CD9081DEC277
-C2C34870D05011F99D48B0875A5FF542F067F7E9880109F586BCF2B50522A1F23ECE44349E539E70
-F84E207DC9BEC7CDF856A046F1A03226AA41F541719AD1AF88FF211E57DD0C1275DD0B7B47440DA0
-89B98C6EE92A7D94700B83CEBE19EAEDD8A615F6587587BA8BBA3CE3AA5E8EAFB1FB0F486BE3609B
-169EFB178A4292F4C0378AFE5D24EED1CAAB514DDC66C696D8E37F294A6579131DDF5488E9436609
-ACD750C3DB0A940C84FE022B22ADC2676F62E91E8F891225F891FBA537679B24547BBBF35F04915D
-20B11739F620D18B5B216921D222F15044368569AA302980B9225BB839F494588481B94B0C724352
-B2DF600A22B062561D86CB8F81514FBDAA4F8A043A0265F992FAB71FC9124A45B8475E1EF3DF6B6D
-E35CF329777D45F08325E8505EC0D979F542807AE77E57E453525F23BC59A50740371EFA98678AEE
-6C425374AEB745B99DDB5D8D908FDB551FBC0DB15832107BBECC4E11A1A8DEC69358A574A2ED46CC
-31D564549EFF23102D92BFDCBB2BB985F78F36033E34F59C0EBAFA3BDD71338736464CEFDBA91398
-33995EDA4207BFD4A9867D32E867FBEB7DE60D132803EF9347CB17BD91315484EF6570892297DD8B
-7D966103339535E28A00CB1EECA4A9775F60A9F5FC9BD8B06D78FE8E6318C31DA2E847E3F9CA587C
-B01AE2BA0A2EBDE308314413F4F230A758184ED60D4F71F6CEC22A93A01B6C54E0449A3860FCA895
-4A347B7588329A80974ECBECDA1070FBC055666375229F13DD995E99265DF870BC8B8CC6347FADBC
-1A6AF64599271A475B9123493D46BEC41289BEEB67EB97A8DED7A9C9730D37C65164CFBDC22E5CA5
-89D2E7954C7136EF4E084C43A6C7F361A3E96989239BDDB9A593CC2A80BA16DE9EE90E95CD39393C
-212AB22EECB677FD36D34DEB46C4AD0D21BF7E6D7CBD0C8083842FCD87B18FEA7CECF939987E99BA
-34C214E44DD84C176C9CC5A4CEA76D380CB316BB4EF9DE73D73B4AFD4ADB54451591DEF86621D138
-D5A0A29441502BF6C2ADE671CEC3CB5CAB903A657EB2D70C943F976C110E46C5D9D29BC00A875F27
-38E5D22496A43E096E009C5D3CB724B4CABB32838DBE527F83B18CB457E57B092C302EE557FD4F00
-DB9C56E66C9FDF4EC9FFAAB85F60D02BA79694FABA476A199A0331C30A78A92E10417BA236E23364
-8174C826331DC1BAB87C5F95027846130C6A2B4027930EBF9A97BA1B039D386FC51C302648E25980
-212F6A582CDE2778C677A01FBFB3C5D1B8A374ADAF6ADBF7DC94075F25ED66D440B3922C5F255FB2
-3FD8F6E21EA65B1D93BB225684B50F11310E242B087575973345B229BA62C1E2C35BDAEC04D10148
-F5B2F3BCF7399BDFDF1F3F79119714AEA697245BC647316EA157484ECB951BE367234FD02E8B1F09
-1AAC3D29BF282DFF4011BC0CBA8E55234D943DB3017CC7A766720BBC29B2D097A956C0F1067177F0
-12D42ADCB473CDE8D1BA35B4030757FA1D8211989DF3BD22CE5D501C21EF8708FB3449DF47D88650
-9FF7B59B76C0DBAE443F336FEE2D615D7EED1C284F14335BC8A26BF4621E10DE9611FB2F1DBD52E4
-B7565D8C65B54EA36D508BCF0C578A49A2665227CDE1F9768EFE847F9D94F1BBB7DB83701C232198
-5C7283D47B2E40B27A268428AAEFE75F6B2F8764A8494E5827573758CB9CA46FA93208836BCCC8B5
-564A69F5AD882052AF1C1417C3FA7F580569528682C77080F3688B65E7FC24D2A3AEB61574B4A321
-5927281544DDD7A6EE0A3E9388F8F631CE7251724DF70726E5912DDCCC8C652DD6C9608F8462303D
-867F589DE0F2F71711B35142EE6EF93B64D6326C4DD7DC83278E057100EE772082E6BA368ED91A55
-53ECFE2293A481E42F83BC8F9148C70EACE91F7B7D9CB8A72415BDB3AF66F68EA733A17ABE9DB005
-3BF148629132969589F38D30EABFA96A01FAC72650B5A6FF3935670198A1EA33810A9B11E330EB8B
-451F24F93544263436F669AB5A90A53B16CCEEAC36B1445574EFA7E802DE73522BE725E68704822C
-B7D3912717333367895BBFBE06966A5CC653AAB5E9B3596702086BF0010085B900711932A95ACF15
-CA4DC45A754EA334E9EB84D6FC8E3FC4F897456BED64BB93B593549FF0D5352275D8E417172A6664
-C5E0ECED1019494A7ED49AB0B965BEC1A82E5873766BB38D7D856049CCE2FCA65AAF61E961B60634
-E2A69EF059754C9D8163D87F928C222772D070D83FEC6FA5AC734AF65E40BFDE521F7D9CB1650FDF
-64754BFF21EA3FF0AF7611A93D525EC9B28C51AFECB04E7FC8323DD6C9B0D8539A34FC3CD8CEB795
-8E8EBBFED4313C77ED469C199552A9FF70BA5423B03B6148D4EAAE17B71C5B39DC436AC53D6BA8A7
-AD81AA8B02335A8B2B11E9F4FA913159A725B8AB60F52F1A2EA50EAF4D56656E615BF382CC68A690
-BF83DFF24FE986570ADC0290ED1A37C1C2AD469CE789E0EA0BB5CE01020100E729721AF3B5BADD33
-A2DAA6C33EB8F9064F5292F715F820B4BBFDD56F76D42E7A1A068C1CBDCE4640082F6E7D582D1939
-990CE6EE8D270015A2C461798B37DCB5798EE9F7512168B76D26C28BE4A49A1BF96C89D235F21A1D
-B6A96E5DA474D0B19B808D13D7A11BF39EA8647499C410ED9894A1ADF33D41B6FC2E614D8087F4C8
-4E437B136F3CB32DB8393C49177A0675A0C9E7EECEF448A97AFDBE840FA01FC7E5F2E8FECEDC1884
-84C312E8635CD79195475DDBFDD4D38D5A0246DE2C7F21608F8D2C0DA1371D302E941572E5792A3C
-F4E51A33228B93A814D03FD4FC223C314CF3714BB3A34BD4F7ED6348577FEED9DEB082C4049E57B5
-D3CDB7F26629E9F3BA36893E09E3C7463D02A22D7056BE76B87763260E46E48BB832B7EE13F8DC05
-37EC8E81E9BDFEAD8C27EBDF1AD706933EFD11131E12814F236EBB01BE85B7F1B2D627413B324918
-D247604F56EC128909873FEC3857028BEF76A3494364C2A7002D104D486236C30B48E2B75D851C34
-EA50BA7FFEB4E19190898AE21768C157C0CAC628A2181A32796FBC1A7271D2473CD88E5395DDBDB1
-FC3AA8DF0F3D588637F19A8B833AFDEB5F655A8838EECD684E2315B72C75CEEFBCEF94344ACE8D6A
-DBE355008EC72FE7CEEAB01363A895F4E73F867639BE0A0BE67333848816B05B419221BE8F9066C3
-62C23FE85B7F392930BFE4C12B9526FF2FDEC38F23A159ED61A0718E7115C24597D849FA76369153
-54A40C965D4D72EC94DA61A03766AB39AAB684E134FD1407A5B1B19BFEBA52AA0DA5D99CBE5C82DB
-AA663711E6DEBA180E1D4A39C320516A4350D296BC19BF1BE054859A0889C7E9727A021F3176FE62
-0FB0C837E4141FECE531A950C03D319E3255703220B7185BD20FE5DBA673F8129AB211EFCF36EE39
-4C7E00EB0876624BC840FA86E58B2F584754CB6BFDFD76810E300741EBE4544E5AC17413ADEB21C6
-2F66CA4F075C32381796BA709782DE34A675B717A2C7F6D88104CB924FDE5DF775B4F0B68E0E2E5C
-2F788BBDEAF06D8E1FC2105CCBBD5827C0B03FD6CD64F0D073F3192D5F94839644E5EC6C5185BADC
-F04112A65F49A8C83174A9AE958E76A2F5AF469E8B76C833782C5FFB8BD7B1BBBB3EA0CB7C9786C3
-BE2ADE5E7AFA8C8F20892659A59BC421E28845A108E34EE17864042EF587A6D67DECDFB3F510EB40
-D2229585347A0035670FCC76C2837A4E4D68304FE113C539B35C1F0234B5079B8E32934546982978
-C5E4DF955A454EA263C3CA5D7101F31A318D82A3F9FCB5A8AFD7A65209663B0FC9DA400B26F285EF
-46D0E1EAF8ACB1F1CB805E3986D04BC585073FC64895E4DAE1CCB749BB439CB32EA91176D5C39C36
-50D10AFB9C9884D5FB90183424CEE67EF2175D01D2478D67511EC9F54F88763C152697B06D948BED
-49240096EEE3D06AB4575E8E8B2CB8263B5BCF4FA1608720F52B675309833071879DF52C3EC2871D
-20F398B5CAC8F8A4D41D0F1D47584DD90DCDAEA4A1CF160C4B3BF1AAB890B5CEB6CB3488672AA68F
-BD938281DBC1D8BCFE92FBF514DA5358443CB6E0147254E91B38CE6787B2BB0DEDD2D38F5938737A
-977B5EA42892520C58F8FBB53C994B57382379E9490F0D6970B980E1BDF8CF9F4C3C5E0A18F66E86
-EE93FFE7FE546DE50F41364BCB3721B637072571FA1779F1D672FAD260C16D7F13CBDF3E4376E7FF
-56D2A710AC5AC35FCBDBCE2C9C17E523BBE6218617B13C1FA6679B308979AE7C61DA6E68369324C6
-CBC7DDEC364E5A86707266C0B459EE7B2C03FE584E529BFFDCE98C90A2F3D9305AA74D3ED8430DBF
-3A49FE2ECFD9C4BC9FEFD22618FE9C8A973AD072AB6F713E4DF02DCDA7AC5359B2D652013E131B76
-B3ED6C75FD53BA58D862846264627F6B9E70D8800F6D9B32242B747A67BB2B45675840D34F852AA8
-062FA6B01E31ED24DAE02F6CF788A17F7B9368175195DB0072259CCE0FFB2C1035C1D26E1777CCA3
-D56A827C3242069E76D6DD69B653768614B9ACFF16567FEA61508D51454BC02F6C60F755AEF6AFAE
-3536BBFA1823F8E1A53C41124DE983E51CEC92AEF4F99785D554488A51C20885346D1F761DA79017
-940A0C557D93F1DB6B3D00FFD61D08E96FF3AFCE5FEDF545CC9F47A2B1BB26713431D6D1E47FD6BD
-6E3C668B0368241F0EBB5FA9C991DF79890E52E83A3675EE699B61BAF869DE91F67278F510061C6F
-E41DE2D883F48CD0E068E2A652B244128D82E5CD52F35F210DDAE3054691ED55A7D99088AAE8FB04
-F525C2084AC09F5EDF80A4EFAFE981F74C0DE9D194320709B3464F3FF2C0F6AAEA6D973D9C323F53
-DE3D741F698FBF01036716BBD62957CB32CD81D3A2674560FFBC5BDC5C6E4F547E589AD0B1CFE14F
-5E17FED1C4A8ABE4E67CCF8A49F32C4C6044F1431E1CC382E7758722A6D0DF9ED23E51F8AD14D11D
-7B6428E27443715EBA4E9C05D6F238378F9498AEF0E7EE4FE6856622CC8E6ED141EE5F109E343CB6
-695C4BE1E0F66601C27975983BF557C04ACFC19227A1AD7E6C44C00529FC7EDD7F886D24B7E029B9
-C395260088BBFB96972199A7B32796D27257DE83A7402291C14FECDF7998C5C96B1EDADE0280F856
-8A8F5007852EED303969180B3329917973C2D32C080C9765B6BAB0673BC7ECFDBBFBEA980C263843
-39B7F1052591D91667D4FEE413AFC23DE2D4B9DA742F4269C6C939F5FC32A38040730A018155AD73
-3F231E4D5B9D01C03A58EAE7B5F590CCFAF25EDC8552CFC8D95C60EBAE1837D7A97CA137E9D4A4BD
-2CD34AEFD68D64B3F4F62326AC429921D7FB3C235184FE0899690A0B775F1A566EC29D5830D32372
-6526F7E7F5AFDD71B77E07613DDC4FC63EDF49051AEB59E6337AC0A4B6DD872E776C9CD0CCB86130
-5322D816732124F5978A86C186BF0A0F88E733CE38E4D7C1BA5378C5629B1EFC97806059990ED42C
-5CD183BAD7E94070E4058569DA2E51831FFE0D080301AEAB4350BA290318AEC582C78D05DD92E5AF
-B4424EA808629BC972E68F4FF2489C245593F07555CA6A2B25964794CF31CBD3AE5C229AB9B8C298
-06C01D116EBD0FF0F159ED2D3D7DFC73EAB4910BFF5B0B0B587CD9EA6E6FC45D63C09766224D8346
-1F0588140B258B1729F70BAE7962189B1554483392988CF230AF4077193E53330519394DD99BA135
-6D4730AB221DC6A66019BFAE564893DDAD7B177DADD16ADD21D396CFA6C3DC818052E2F71149FD59
-4A16DE0C2FFDD366C99B486C55A6E991E4D22CCB15843F0C3363676AF2F5B2D1B7EF66CCF2F12DC5
-0D63776BFFB058D70A9C76DCE96C754872D72C82A0C33F90D49C935402CDD26B6D743B1F43BED5D8
-B539424849C1495DAE73044E885A7D0F307F1816DF6244A6F2D97BFD4E200E93F69B08AF39EA21E6
-E347A47CEEBF803F73B978ADBFCF056789BB8E6E2563DE87DD9A8C877157B934102DCEDAC54D487A
-1BB2694F0034093C48F10A17D32E2BDD0C723CAF59ADDD1BE373AF8C9BEB4415AA5AF36310C31F24
-354A53C0B962573148BEF91D994FE3F3D8450DD4D686725799F53C373A0A3E3C060C2E1A3E800504
-9F26D716E1F381B9F83125E4683264A07E2D8938F605978E2513DD2050B3D8A1012797CBA8961632
-BED260916338A812AE751C7B657E086A0C7DDCD3BFDDFF3E48B84751925736D1310C4910FC114387
-F3ED7FE163F91895EBF55FCB425CEF5729D99BD8F2C072E36C310523E75CD8E5DE49C031C4263410
-9D56E91A46C8C8E89FD92012A00C33D0DEC52597B5C6933291A7BDC5CEDA95DCDA5600F9AE1C8250
-54E7EE1067458CCB66610704C58E4A4FC0CB5FC933D0322A716B2CD430A3AD48DAB3D4CBE9D23F2D
-092368CFC4E1F5495C133A92942EC62118D45C17723646E69407B4A89DCDFD2AB3FFC099A21D9D29
-741D68270629AA3A414FE58658DC9170C247B6E23F35C4BC5FF83009F462F2EEF4DBAC5FD158A658
-57F9B6DC1F5192DFB169DCB65621CAB2F1B07BD22F4155A8E9E2B6388D430FDE5EC1C834D22EA035
-C52E1E34482EADC36B4CAE902AAE89A7284E62B3C84B608D6BD05F75BC31310B2DD3B2C08A00E073
-7F104F03A41989D5F6B9A2C38B22F1D1803EE5D7A4D8DE44E4ABD496A1DE0C0E12C4BC96D0122846
-3F0EA9CE9509FEE987139F3DD3F9D0DF4313F555BE85433718F6D05F197C41A9D9C7A8B0D2740196
-82D49F58DD5F66B12A6520D9F226D1DF1F1B65CDFA261F980CA25A92645B86B64606293F8BFDE364
-C47D2AF2C709BBE77A70A5712F2CC26F3D66F5BE2C307A48E6F887F681D30121E32BBD87271B5DC4
-615D28C309F15AD263FB37424E56DDA6E17B998B45BE6C7FC6C28E3394A8764C9EB2DF5C06626593
-B5C665D550D4600172791CD208AE9F37BC082B0B242B0A504B751B18F4D7495172B697EE217834A8
-A4FB7CC16D6F9E8BB400BE8AEB0850960283DCE725249FCC4DE97D9886745AB6066C3E2F64DD8AB7
-9AA11667F11188D7965DC11EB760B772E282DBF13249F31986AC6898FEBFE23E3E8B8D2C33E00EA6
-FC493850ECB2E6D831D1EFCA3C2EC8EE2E394599091ED58BEDE97D7A43B6F739EB0F845EAC1DF6B1
-EBFE876009CC5D804B15ED4B56761B3CE1AF59C07B49DC798A44532297AD73D5101ED47F36A3678F
-818297CC27F6AAA2AACCC9AA9B6F5459911D8C56CF499E390AE607F3790450B2B9C9BE0F006EDA0C
-715B5CA0481734CFB0597478E7602B0D2C1E4F78F03C68C17C70E4B42D7D2D3C95CF40F73488B371
-8E2CB05A549944D86944D78724E266C3319AF89AE430E777E95F0D792B1C654306E421F3D63A26B2
-1E74B6E8B21B2E2B9DC596D013CDA16D08E65E8F24A84B12B2BADC653E6E1110DE2E709C1C1BED13
-707B70A421B384F20CA7A9A9D20324DD383F28B2D3C7A9C53F5D4C6B7C378D26DF11CF55238BE1B2
-4FA70DCC178DAD3D35670FE4919085EB1CD905971D76A368FDFCF9D2F0A23739851A3A6D2E02D65D
-54DEE69ED5D81315D3EA5E356F94EF256DD267FD1E1A9EDC9CD63E743F299BCC4A4506233B8DD765
-2CA067F741603F93250C087D368F9E9CC4CC1A6DED567487C05BAA992B0056A77F630A72008E3946
-15A9DB24FE56A956650EC9DE90A6C2259189440247970541CA198748928215C0E132A81AA13208D8
-63C1FE817F70CA573B54577D10B73100AF8EA088208A44FB92ACA314AE5879706180788C17BB1D0B
-81B6B95A1C4E0F9EA66F9B39BFE12444A6446691A7BDB03E0F03D9F07A10A7598F2166F108529F34
-CD90E601FFED3479ABCFCBDE8F051C348E48C61D95B00C59EA1287423F05666C3D36288844067E83
-E14F6B5210842C742B89F13ACD126B9FC50ABE2CA7D7ED513D43B6AC7F41EEDA416BFFFCC5C844AB
-2D23D4DC09B2D510504CE98D02E72020D9E669DDAA344C63A1B75632F912A1C0DA3885DA4AF7E243
-E4A4C6493D6595BB6D56B0359106957259E59E336BAAF35BD1CEC5CDE735272EBCCAE8D4904AEBD2
-B32610C6FEA2B69941D6542ECB44D71092A3CF067708A3D087AE99FF29671AB7DD8758759B971A08
-AE1BAD78270D2FBEE37AA2DCB119D72F6C7B0C8509018A70D0B0BE2C6830EF8E0B24B1CE1141EF87
-3A4D7DCC501F808BFD94E4DC0F2915AA023076BCC8006490A43685EA25AAFC187302EBDE7FE1965A
-04A5A398985D29F08E085127B56B057334D88EB638A4DDE64AFD204974C3939536B1B66A54B4DB81
-151853915718F70813F096CC1B0EA25E363B49264C2AD17158A4489F91453FBEDBDE15D7B74D7F98
-E81DF23251785D58295BA297F295AA6248A912CDD4F1111E6B628EECBB5139709E76EA4AB743CEC8
-26621D08E6BC64691CC90B3C3C1778931A28D3D5B1E20E96C643316613FC487C9B604C43463FA453
-3BCA1236286E6F5A6EEB2F1D9C34BDDE4595495A365F88055D9268541CF1654ACF478D384A5496A8
-772EA1402751A093582A6625A0A44816B5FDBE166835D598644296249B92CC90AA3FD6445C9A19BF
-27F59CB0616C7306070F33C7DF4E1DE64AC8C5BB2FFAC1EF2B1B30E5A0275E6004CF64BBE2C6710E
-DCFC3AA4ADD60106334708862FFA6652825BC84842736E47AE6917180365C75B27505EED3C6108E9
-898A780E20C3F606A860229AC46D0471ACA0187D6D539A1B8820F620F72B41AD1D3BF3834BF48CA2
-AFEA8BF535AF74C4562DEADCB63D2F5C7585722B77C989342D190FF926C8A5263B4F25286F99CF6F
-C62EE6E2AD61C82B29D82468AC10FD27764278E5558CE8B41BA111CB2F040914451A480C93084237
-CAC8F66BB7C6689F340B8ABF0150E06D5B1177278A4C08742FE22F42C28680F190900344ADFA486D
-59718C25D37275BCE4DF981AAC35D2C7E85C72A0188B8953CFA516FD545AEE0BF4B8BA301CFDE214
-4241FBDF3D204E3D2823301572E23F204C97305A82401660E12926EE7BA6EA1A81FF5C007933AFC7
-3266FAC4C134ED818A48E7DA01C71A46335C845F9DA5E960B25339D551582B375814148D94CFB781
-FC56093827B78578A73D4FF67B6B87F40CFA5E3F4325D9108CDB64BD06427B88C84105187316FA29
-90B4E3E8EDB6C78ABF164F4A9717D523794B2FE772A04DABBE688CCA977090979B5F47CEB90A1DBC
-167D305EAB231C9F4260C4AD10889CB785169902FC0BED78DA15B8417453BB65856EA0BEA5245BA0
-573F623D215F6C0CF801851C305B355D26B52B0B343645FE25C78A3526841EDA480919A1BBE5F56F
-C10ABEAA3E1FCCA7C43EE560F067F1AA2AFD642F769D1ACE8E2AAAF38850F0D757CD808C921D716E
-96FBC07DA7860DFA70CEAE2888C0ED3CBF9586443532B68DAED9A926655C157A416C383A53D8F283
-2A4E67468112A09ADC837ED8EC95F70852921F50D4417239FC42EE3624CA97F682745CC5E76CC7C6
-7BD99F2180F8C0B7FB49539C8CC474C25C0DDE491671FF329E51BCFA779346D4686835A3AD6633FC
-B5E0F67E0CA9CED8F215BEF4D240453EB2EDD6ADB22278AA5B985FA140C9834D38753DF2014F8C0E
-E6DAD19E8FC54C03C1F6CB0F858986691D99592562CAD95FA0A5B2ABE4A8B54B457D42E8C33A2D19
-51C0419A72FB94FDA78ECD92BD2A1416459E9DECA9469F35E4C47DB531726DEE8F203D7042EDB32F
-025DF3D582547BB1D45F7A5B70D317DF4EBB16E36B0D798E0932FD2A85B04FD67143E4B287A50416
-2C1F5A037CCD780088C5476385AF8168E12D97D44B0630621759173C8F1E3006B5B1C6D7138B7EEF
-C3CC5F54E24B2C3CA7B41AACFD25E554880AAF406EA4C3C6E21D3B550B040FB1952598A7E8E6488F
-E38288B2AEB6C4718338598A2BFE4D2B9D14C65732DA304C16FF3E1F8F03046EF095B65FD609DA87
-EC24A69278BFE65C905CD0329F6A486B8525B7EEA4F7AE56C2633CD83543269E8ACD6D71F500D82F
-DFBDE7F7F7B1AEE67328549232E26CA55085B6E84D9E2E7F74068F93A90C4654F2F396E57C5F76F7
-E61CBBE523DBFBA6E76638BBA3064DA025A79E3A294FE7F1CC28A3B4C57DD6FDC48E541A85534B25
-E1BC11B4F78019457239EAEFD4BE9007D205F1D985F389DB22400B279C10948551A6B4A17FBDA0FF
-C9428B18B43DC76EFB15FC2182216F1B60B4E344A03AD6C00F141EF99F89F24C819C3E32877A927D
-84C2D006940F39CA8B71E5951673EA9BFD1749923219DE38929ECAA9CE43B06CFA7DA1BBEDFDA56C
-61FF6C24F40E59B13870D5FDEB82D981154FAE5D6D5152DE69339359461A41A9713B6BBE47E868C9
-33CD74C75DB71D13BAE4DEC85E02FAA14EAD6C0A253B16C79514657B15E68CCFF9EE6AA385CFF9E2
-C53D9AE40F85C793E4E8FF50B2B7420F4FE69807BC5F37C3E300E6B3C3549D1D3246A2E70F091054
-1135BDF805E0A698E236B6496702D061241687B7B8D1A0E517DF0476DA09D89667A7AB375FD2672D
-CBAB8124E511502DDBD08BA04D941DF1CEBDCCF7ED48405CBCC33774A68C5212FC6F132641FF413C
-984F8B43BDFD7B1A2A3435F15AF07EF4970D3E4A0BB947C181E9CA27CC14A35BD1BD096875B45873
-8CA244F88C28728B74E25CB8C4FC1095A56CA75E4569AD3082EF194ADD11350DB3B74B96761D4538
-596FF7243B1E1B724716A144106E080D42036444FD472998460CE9ABBD05B42AF9389AC452BDBBA3
-A13A96890025789F16B9D92251FD3B3BEB2C61EDDB370A20456E3BFE5F4039E2557C451C524F8087
-015BAF3FF05F51869FB97512968BDB2B49589C1C7AF1E085250A47657465F480B7023E24C76731AC
-0EAB6704123D77977D3A2C4C56B691346EBE589C619C04515D34F81FC6A17527D5D8319013C5D4FF
-27CC3925E24C99231AC7FB9EAF0BBA482D3B75807AC85D03CD09DE5D9AE0B07B7A813F0449786500
-0AE8A7E00080300F0AB8C399057EDDBA273DD2E1B2A0DCEFAD3B332E6D4AC1FFAD846167DFD70E03
-46DAF84AF292D4F424256ED5AC4E104F80697050D50844A708EAC9E7F7784FD01646F3BD0C595CA5
-1EE6BD607D254E78ADDC5E15C3B6AC4940EC865A5C23105B6BE09EA09F2C05D6D76960A843B81EE4
-33977FAAC3CBDA85CDD2F4DB7C28293A77825635992AF8F3B38B4480D9A139B1662345A8ABE1634A
-77496C3F57597D2985E9E54717AB2E99CA35789441BCDDEDE9A9E2106B401D9684ADBEFE40D607F0
-75C179E9CC03E59E65430DB70B441D43DF03F2AA6FF06F224B6E455B01C64FB89EEC9103E48453A9
-749B4D602808C7E408A8903091D85E06AAF635D0D529C3CDD1B8479AC0F4208C284BB678A547F2BD
-77BB17C86D4560434F7AD1937760A6AA55B614CFA9FF8C9C96561AE6C8F2121C4E20237428BC51DF
-2099B6C49E3EFA18E6D439E6E6981E746EBB1DC461259D8EA0F8099C47CCA27B2D982B72C9A07CF2
-1B3C05D6E26E6E286E348B8944078E24809F9C5F3D014B4CBA02533F5621BFBA1F0EDB776C634746
-703C9F73BA89B1960A496420C68F54E5B901A6D733D7ACC79F275FFFB253F389AA480084468BB34D
-A1E797E43B7F6E8CAF5E8C93069A3A2730E57EC39B677BB73E3F07C2055599F7062E53B37A5F0099
-907D2ED87FF7A82C95FBAEB888033BDFD67BA3A6031A4CDC56CB1E4CF5B06B46E16D988BECCEFACB
-9E1C037023D7BF5CCF5D65AA66A17AB361BE7981F132A578F3ABFB97960A6034F052D9D5AFDC0679
-782EC90F240F943A5F9A3D969ED7399254FF67D89DF668F7C56FCEA1FFDCF20481474AC8495D3AF4
-B6D7EE093E369C057F0B70858220693B398ACF8E8143558132E4391405E30A73937C53402E459F4A
-A3539CF7A99A3F51C0307D045DF8B77757E92EA2F51BF0BB4F77D3904DD355665870C2B59F1ED7F8
-4FC71FDD7F0B6C5D3182DB77827CA6A2060D2B8C83C4EA4A432EF43A4D0A952CC6CBBE52A9F0CD66
-1A538973DE41FFE9C5CF55F2506B9EFEE51FBAE5E63BDCF5528499A47C031163C88D3022606784DE
-2F46A9C9235AEE3D4F71D4959B0CFDC5B7E78C8C0A8F9DC99440C2263DBACB343C5C648577F5610B
-50EAB1CF7FD02419EF3941C7CA0B0E64EBAD4B2CB05A0793DBC38F1946D44767BD287F5E9779C611
-CA0DAAA1E7393DBE0683C8D3455CDFEBC0E64B54B737E298DDA605227C0C4BBA87AA3EC7FA6EBAEC
-39E6EF2537D5974391D31739D9FC42983D81AEE44711C823F35F8E2321AC74943871739D2DBE9748
-FE68592263E7713F27E0D49B9B5CB7A4E55DE54E6B800D15856450FFD3AE5F287B12AE4F438B20AE
-9E27E6CAA00F3EAEADBE08432684FDF9931E925544A680182602A3C1997DE5D0630BD5A010535E66
-E1C123013D23966B3545C7431C39B97295BFA4099D14461004C42C85095EEACB9B47C593BC6DB863
-533A8619BAE09095DE8ECA432D4DDD49AA600D277E75DC3F5C6631E2A05382CB007825FADB77438D
-CFA78E252D79B6A196D5164C2FEB85D75ECA25FF80B1D97FE10E87960CA0FC47C41D3A213BF141B4
-8BC3AAA93FA86245064668394665BFD52D12C3BE4CE39EFD8111754398A944C3FD1AFA98EC337BAA
-AF899D35E804CF416AD7FE45FFF13FC6354007501043F98FE8428DE8013901BA6A28711A2CA85A27
-0BB135B72F1D5026E8217581860729E94F2F1878A0E96C59E9F62714FB5F8F25003DFC7347E99007
-8A9A331CB3A6A535BC61866F02513DEB982C4A13ADBFBAC3FF70A7335F40D5489E48E5EDEDEF1619
-1973D932479C62183B0E25EE8C4F76D4F1AE45DAEA4A12AEDD9EF81D248E8D19F8C8A5BECDD1EA1E
-98783EB7A38149170851B1942C96C53DE06DEF80913BFC04E539EC67C110498D15B78268853E5C72
-F485F8A27B768569E54241F6115875E2973292CF48FF91D45EBED627AE9F0766D22201B20AFDD40E
-5B17CF337F2999E0BD15B86E46EB3C18FC12B7DCADCF9DD50C6C7E3F37E615A892DB3F57E250A072
-A49F7277DD6A2C8042698233D35A699B17ECA5DBDA6D250ED4A16FCC893BF0DC2E33FB1EBD7DEDEA
-3C1C39603C8B7E1A5A833A8FCDD5570BD088749BB232615366687962C7E56ED089CD7B092505CAFA
-5A80F503C4CF337F07ADF0D106937E25670839D491F7BFF7A523DB609D126328C16113ECBCBF9C40
-04904427A108618AE5D4ED809F8CCAF72251104C94EC5BEE21F91B179D31DBA79CEEE5EC7FF698EB
-84AB1D2D1A624F58B3622A78844CE51498B2CEF38EAFE259D22C7BA61104651A862008BC1DDDA58C
-C45F663EB26428DAA85E7785363A69D2790996EF5D9621D53042F42F794962FEA46E46F37B8AD1FB
-76FC8D5CF2146843F8CC625139C75FB42DDA71A752BAC48F294E4C0C8289FC46DA5EFD9C91BDA6D0
-27518B7E81E8B21F755A9615627D5812ACA674D1527A1185EED4E3C628196E7D0759B1CAE6B9B7E9
-01E9599A65230F1EE469CD33B9BD9C104C44E3C1AB966C9678BD0AD78111A4E0F2D07A01A038CEDE
-7036D0534D684A1562A17AD64A00F279200C0371B1CBA61747671D2A21D3F9646CA290F6B82418A9
-6FA177C6278277504B7FBA936325F5FA124AB018A15DC18D2C5E8F93CDEEA52BEEDB78A57828D81A
-3E6C38B9FAF3DC4EB7273ECE3EA4482A1C6242A335862C2C3717F9C9ED95F77B140C4E1569B2192F
-C7DCF702D0BC9A50428EC406F8BD0CAF886B4D979320D3E429816D88F7C7146D960AC12E70F2CB7A
-9F4E3E366665AB3F1B4B6440F55EEA26DC9EE0096BB7763731740A537766490C8C174723BF0EB40C
-53701AAD12B21D436ADCE22203C1053A9DC4E9F17AE617888C4B4E6F3A720E4E6366BA628221A387
-D8AB15E04AD69387C310D3528BD2FAA5B22BFF3FA494F5FBFAC4F771C9C7402B95580C5AC4BB3AF6
-92A70CB2C851FA5CF1173EEC3EC29B5A05A0B728BBBB51D3B7AD8B0AF17A1563E82FAFD93F8B7118
-1FB7AFE352874F4EC6D334AB6747519AB8E847B7BCED33EB5458A828E074E74BA621BDCD03FEA604
-7F7B6ABDA01FC7514BA1AFF0D4D0C0CB8F4E42D5A87E395D9ACDD02CCC220C157153422018725846
-009A3ACD8C8CDDB66BC6836B4026FD9F526AA275D06C813179E5924F26A25094E7BDA8BD26AFC4CE
-B41D8964D4FC4AF1DFB0595BC5D6714C32F15DC7194E9A3A73013C45D8FA55CC0550A12D9AAE8E9F
-F199FA28EFC2426D8D1DEFB93A65717AF3EA8E2D5B4AA8EF0EF38E9600F7D4E7D9F1D67A2E63ECE4
-789FA74B159BFE2F91C19B0378BA52E93DF12830D99553B6618645E26126842AB70262D96E35E5E7
-50ECA0CE3458B3E51BEE2F21191136DFDBCA39BDC07939E521E4F492F392DEBD029C1EA237BD89AF
-76BC89F618D530160AB16269FA6B693CF14BDC4EC7C630025703C5337F61458FA09104EB15C7CB20
-AA4C9BDB7CEF3A09F25BC7F3149951A7CD75372993B80CD2112F7674CEFD6AFA764AA3486730D2C1
-897A264D82A91709FEC4A21E30D812F558451804EE6F3DEE2C4C437846BCBDA07C5B6CBA1D94AF02
-9163B7383CAC6E088AB1DC14ED3743EE77E26EA7AD3119A76C0B5F925C4DE305CD7BB3A09A453947
-5B9BD79BE28FC462D8718CE05F9D94CAF3387BA55E6E447BF81A9EDDD3A34E17BE66BC52B0C0BB6F
-86F6F008829173816D205182ED2ECED319864A796AB65D4E3950288BADA94FA32B6F453AFDFC6C39
-A4FCFE60353A64627E2057D4B379D3240012B3BB0ED0C7876CB83C1BA5EFB6E2A03F340C2B576731
-F848F762A7E1CCAF267EE06D621BC33FC245D0E1547ADC12CC0EB58B26BABDB8EAE9CBFBAB93836F
-FF22BDA1831DD01B7346AD377AA298D84628BF1C07433284B0A90FC89F5AEB2651BA2CEA405D4F52
-DDC0E74B871D43F71EB4ACE0D2B401F9348EAC3A2EF0AD295036BF6CF6F870D58E00B619D50EA7DD
-77BC28DEF91D805CD527DCBCFDC16C042BF9B874E3B1567EBA4C1E70744B9E7E5BD1FDA6A5FF6E10
-1613FBE58DC46CFAC1A65ADAF65E49757E9304E2AC9A91E0588600C709A61D4231730073A36D473F
-518A145E141D0A5A494441B9EA99AC23F60F54F8127B477E1CE698BB4129B4B1DFEEDF10D9E665C2
-47A62F112F5CA30B0AE5DBF3E495FF06EB28EB438CE8AAAD84D5F50FB56A3AF002C23BCF66ABC270
-7AC233FC0F2723DB99D2CFE7D3B3667732A531F5DC315CE74EDB9050BF75D29E6430F57CB6778B2A
-CBD57DFCEF896E6766C8FC5C9F9FBD701CD62CACF33EE0FC95E78DADD205B5F42CC63024624BAA0A
-B4DD447832B4E1DBA77BDFADD223989F8E958C8D759AAA37930664C6EFEC708116248A2A7AF3D656
-DDEAFD009B7F5333854608E67E5E588A857167ADF9225CF6C641F5E19C3E08678A281199EDDAC831
-B57223B1BEEADFDCBC8F6F25D32FCA2336C808162E8F381656E847FB6CB13969572425AA05AC830C
-33DE6E030F86A3A85D2A66A77F103C7042C97205526DC882EA9A00EB8BD5519847EB424C15F808A9
-1652A6CC89B66A5731126DEBADE123C63D88A2E550FACDEB3886FF98646000C64B3A91078012CA30
-904B71737CEF6BECABD43DD702880538F5A70085E6CC6015D2163681067C3D513A8C66032C34A0FE
-17A58AD4BC97CA69BF41F11D5E910FDFE9729652D3EA21F8DD8CC19160A8FC77573B1E9CEF4E790A
-79D8AD6723B6804E9616466C935303E063DEE29CAA6C3BAEBF278B818C2EC2F13ED645AB452397BF
-00DB8B26E115026E256746CD0C78A959364FDE6DEDDCD0F441A61A1EBA32C7BC172BB09512148D1E
-BAC9E791B7D51B71CAD2DC9B83B2F99B3726607D9CBE58B499A13753CE87FCDCE21C0AD0528ED0EF
-B9B2C927F57C78C626248AA2B835A0791244C5896686A66173EC9F802C4C633A42B086334D2A4878
-0E53D00809247BE64E529F96AD2F8B3922A6097D414DDE1EC76F9552F9B8D58B8E34F359AD792B2B
-E50C26DB05035E7497162E7C49C38D3CD9B98D620AA67492BE5AFCA3A81A7080185C7F0B5105223F
-1FA77805502A2E8C5FEEA27699858D84A95842C5F2FB68686D59FE24091FCDDE139B6463BC6C7B1E
-0E90D20A83651AF00C85797BB9F53ECEC1675C7EE636D0D9E77DBD8F89670F855EE4D4800FF3F695
-0EFF09BBF8A0DAF6B8242840CFA5BA73BEB95115F4A78BCC02D85ECCE0C0F2EF6F328AD1DD6CC049
-5A3315B414A4D61DA50DA46D7ACCEFF6EE56451805D26B0359AF193531F95F6589CEAD6FA041AF15
-3067F88A0A2FECD135C56682DB2B45A71D1FA737C064EE9A4F404BB72A70B3AF0330359393247EC7
-81512482579865240A23CD8479F21C2C44A119EBC4E81B308DD8AA86E60C3DD8ADA50E0DFE8308EB
-1A7F201EDE8DCFDA405AEFB47E0E6CA7DDB376DCB21D37F7ACC4D3E9F26B03A8DE0E8940CA3A9E75
-963A389DF8038D2C486072F61C0CEAF500753C7A6352B1CD0338D9212B42A4D3DA23D5BDF44C27C9
-4B88A415A3242FFE2E1B332477A21D2B9CE075EE479C6E657A4D8874A8C53964229310E01ED4F3C6
-86FEF5258EDF3B464DD6FFD7F1CAF473BBE722D60FB14AB4918E93878A8AE4773930B8CEE110F476
-7F42A52D9304C55BE12846C911A10AB9B2E036BF9DFD597F5348D42233315FA80D0F563C388BC253
-2103F05E90DBF1923F229F980A2F4585C7A373511372D07DCBACA583099EA972C03E5AA67E663882
-6DB134564DB993CEEB6E7A6659C7C5C05C310267D5F8A24EEC2D5CC3E3F3C808E6D6068D1A57646B
-37FABD98ECB7BAF99E7D9AC4414A491A73CA34C52F394352F6B5A15F0FC4D88622DAC694699C2464
-84ADAC3B1D366AFEDE2A2CD2042C90516A666A19A91C80248B11224BEDDF1A320E230739E755D098
-B6A67315535F4C187CFA67ED817A035056353FC859BF286317996FFFB478A2248B908FF12ABDE705
-402224A3EE5F463DD3D243875C84E02DB968ECA1CC52C75171EA50D6A88CA91327A7AA5795019F36
-C0A19C093A1C9D3723C7568F9D41F2E4FFB712FD47F897703D7A620B586B81936C84AAED61D84332
-B3BEBC4F95B796B93EF7A1F565C494F8A65EDB21E2EE18DC025522EF8E599887CA2836069CDDD889
-88E5862977B7472584303198CCE97EF9F9E1446D1F1F5ED1CFC666A8A0C3A03E1792EFB60A9B4065
-49E0DEDF6ACCDBD98742568B4735A747D8E5DE21E630125AE0C691D054E42199C15B1F80CAFA6E7B
-B2005F374A9A5F9900ABB7409CCD50C3AFCCAB1214E6A856F7C7EBA89BC3291801E1343DA9DAD2C6
-ED075C8ECA1423B43E587AEC67E6145272814B3F191B3C285639F9E2D6E148A02DC2CBC0E054D629
-5CD05DBAC1950400A9189316F0265B86A732D302C5BEE8ED233768F237C62600CBAAFF3A110D5EFB
-6CC7CA3B92D965CA7C5E8D3E64ECF239FE2507FC797FDBE54C1112B28D4DA44C60AB09D994C5BA78
-D663A2591934CC052BC70CD1DCA3325C66C9CB982E2039F5DB70C848D3DCEF655B1C2CD0CEC8865F
-E8E1C0A267BE4F707ECE6F5A3DFCA3CC1EDF92C760439F51AA69A4C1801E96CA4D6EA4AD980258F3
-D15C893913ABCE09101984C61B91D603053E49A97CB82FBA707DAE8AF1D579FD69C8481CB7B712CB
-CDDB4D287BE995E32C02B399602A08B9DD849039B5673F1930BEC7BF366EB082D2CA5DB2385C8CC4
-5BE3FC0E31820191A814EBA7C4F23B1938E6C4D800732787CD2CB97F762DFC85D4B798809B5F2254
-D826CA42B32695428D120298B44CF38494E56240B75DF1E41E46E53C44DC505452256DFEC819408D
-605FF14D6C1F3F152F2FEA96EA0AB3B472D8704E06BE9F8C3E8395CAADD06D6DA033E81ADE5DC3B8
-3DAFF743C6E9E48716003D358DF63CD7FD3E2F727D1F2D0C29962F76D5C95ED44B6F08D052025A66
-5785F264A3D5F5593677B630E628B5EA81FB37CFFD7A30B7FAD226B6FDC82B0878AF4C0EC4F4243A
-807B9839EA62BCBDF7C2E9B30A623876E632E084EBF4A21EDA04FC88A1C07021D0C72EC3E969D449
-FEB08E5826EC20E55B21EA71EA59F6E3B0710B0DDAB3261B4A2029ECAB68C19ADD5174E55D5E984A
-4E5F38F592A302FEE6ECE732DDE841A28672C620CC5D687455A5C06FA9FE688394A04F96312ED025
-B7AA6FBCE2925F3AE559CC1886BEECDB70822E2E5CA3F732A87404B1536AAC469989E9610CFA440A
-CE43875A70CA51F36CB6F629D9424C1E35A88F92D5DA3CD8CBAE6E8425A36968E21F4F30349749E0
-205BFF8D552837D6FC39532525370BBAC833F75F1854C93FC533A4AA53ADF7008173A70D94A4EBF5
-38EA9E62BCDA7C20E0A073BEE2EFAC34D2EF1D03BABD5147659E50B557045B2EB89DB303749B04D3
-F54B43FED612FCC68206E001A7AFE90230D9C12F74A32C7EDB5D0241DC3A5D51481FD7C8FAE08FEE
-263FBCED7C7D911B3A303C835AF5FADFD218F61A9D6DE80485ABCA88200047B094441F7767B97A24
-E8C612590FA2407BAB1E8B56C71914EEF2355DD97CFAFCC192BC06FCE063D3D9D1A629AADC75E3BF
-207234C208E7E30663EDD691043065C9CBC473D97C6D4DD3DFF59D6A9ABCDD4412C3128F603160AA
-D8F81C6E7A4DCAF35F3A99B4EA10A34375B477C2BF846521A7EABD4D28078E9340452A198F3F5ACC
-3DB7E3908939FF6E3709C6A3FD9889439A4AE3E10B618CC92E14B68429A3AD2C80940A1079452EC2
-66F254657BE7D79A2A24084AF73F6DF71FBCD32BF6913A3FAB25F977787F7BB0C3A3E8BAB38D7A2D
-B0B4826950643DD1E03BD7DD1FB149A33862A89226B7CB454DAF613128C2075470E42E70A9444A8E
-6ECA526345AB48E6F5160BA23B5BDDFDA6049EC44ED1461C7E0DD514B16E2FB285F72039DE3C7982
-EFD40D7F6C8E8F4CF35AC71B467BFC578002E8D2239A2FD2C4BCCDD8AF3D7DB1F4AE7F2D2E0811DF
-9D0155BA6EDE50B5F052F14F6AB884FFF244D8806C07EBCB49ED22D85DF696995991A954AA97A1EC
-D86ACD76E061B7541E87997FEF0657A826BD88EF3A4A5920462C6595E7A156F453291CA044CED810
-860C3B0149BCE73BECA713040664AD0591304106129600AF71317B0D2907839CEAC99515D357E980
-B1937B6E1200AACADA205421001F1B2F91753E80D2263C56AA164A74701A8D5FD28E46480B0DD963
-A683A1F355D7FB4463C7347C94EA5E2CA40B60B56297CB22D972C5BB10E56715A955605256C1541D
-9F3BC5768A6F355CD3B863F0FA1A781EDB49368F51B29481CBB41D4AEB07AF9DBE8F52C5D0FF75F7
-FB6431D37D6AED84D78C778871CB0F715B4F07580F23B586C969C81B471FF6A6C7276F7E141E02A8
-584D4B9AB00E7BD643D2C3FAAA299B1F1E25048461952EA42D4882768A70DE46B213A287F8D31AC4
-6D5436F22A796C05D1FE50A9BC2A928066627A0D87DD57A3AD91DB446404B41557D1457873482005
-EA20916BBE46C613F456C849D46BA79D20627B446B2F49E3FA309AE14F8C420CFD94922CBC0FB9D3
-5A0F7DBEF577F1849A1A80E0011DA8AC082A8C6F61658E65AD177ABDF23EE17C8CF0D26B9FA3A6E9
-4837EB9E930336889767A8D7EA3CE980A8EA95528B004957BE6067CD9BD8E02A0F23CC1762CCA656
-D33412FF45E917FD4A03EB6E8C1F43FDB0A8965A33B4FD26BC24A20B304CA817E88495BA9B361A3E
-933717FFB0271F7F70C5D3CBA1E86D0F51BF3ABA194DAF32C35C796627D00C7B2271ACE2463E37E9
-7B3C826CF3DB60028F240F9452CBE08F7EBCC5FDB1BCBB3C327A9F450B9E5671916101D6E3E5E458
-CA31F04D12F592F83BADA2C3683D3886AA3B403963AB5DBE220FEC00037A745839F67A3635DFD3BF
-F08F367482962DED88ECF6322852D643A54D5D303EB04BFDDEE9BBA1EBCCBA7C653B3A613A8E719A
-DEBE3CE1BD7E754E5F4977E863E3C2D388A65227B451D4F3A4F94E06513CBA4AC1F2F511613FF035
-611684CCC461599000E546E4D972CA6960E095A526E4735A23421A4C9B597ECE08AFA2753592BD16
-DED93255A1E33DEECE3C5EB77B94670E8137F2A4A4B98AC193258E7DEA5DB8408A806188F2D1DDC4
-40CCF0E9A6E2F0C78FDBD7B68DD4939D2458C1965BF8BED4564B32462FFF3EC892C03B11D3EA813F
-AB4CFBE8D3016329C5B7E3DFED0F08284D44AA0B7A2F6BC96EA4503E8EF52A64C22BED6B452581AE
-8FF8917D53976471941A9116A2D878FB2541B561767ABD4E31CCD8A590CA03494C62AFFD64EA0A1B
-C779173DAD84999C7A8D844EB1259DE7BB5B25CD023537A474A524EBE4660B22568949E624D8FEA0
-AD37F4CE1EC75955EEFA49C6BF1803BE87E9C9865FF3F6B8525B8C15FE8835CA153D27E6C0FF0CA5
-1029A7A9185D25F0F14D86FC797DCC1F99EE97E2054B9C2A2E06FDBEB8DEF6CDD368BF23A858D9F8
-C1DEFDCEAF1B4A8DE5EAFC604CECCF0D285BE00AA912EAB66EFF4D37AD2EFE34853BBFD87CE09B18
-749B489943EECAE7887B006FB827D10191DAD18466CD1F86505879310A8B171F902EA0C26A388E13
-B53C700272CEE2BFB47ACB58247C13449C6BB9D01232C32517358F1A3DE064D43C18F8827D53789C
-CF3CE2EBE78949A6ABFA1A6B8414CE360A5E22AFB7D1DCE6F5A06182C3B984B4F9BB1A905A9D5A14
-83750A1DE0A857CD5C06945EB7D4A2A6BF1237F32A154FDC06D51A703D44FE052FD3C53E9E8F417B
-35D1C851F9203A8997521529F21AD8498F96930AA77EBAF82EE02A57BC77C792D9F220294B45F48E
-A8FD94E01CD25645D36D168923562F3FDC93CB79DD4760DA0C103C2675722D7A1B79FCB4245ED12F
-A0DB52492C9CCE58B333CFEE822812F7DCA68E802C451B5CFAEBAC608B950386B6C58239D1C62D62
-4DD5D15782FC552222CCA06DDF387B373E32C3C2864C63C768350C37283760F3515A5B0AFD66C48A
-B522EB3E808C061F5CD6BD96CD18C9839D30508E7D4EDB88E8F11E31E10919B16B7971F06D7877A0
-58D8A4944C84FC6CAEDF3341B48B6E0D3C7B85D710E0C35F5B5053CF4B4798B3778CC28B2DC7AE0D
-F3A49F9F3BCD8E95D746C35C3F47D68B8AA35D97AA08E711B5FBE70D1A623C82541EBDC51A827D0A
-69E6C049087AD26F256EB7577F58CCFFBCCBA5A95D093DC29464C9A38DE95BC6B1853963B2DEB0B5
-7AD1248D6F1625E115EEB9510B5772AAE4E3C866657DB0B3BF0E0AC345E116F8D4976B770876FFE3
-748C36165522991F46A36F193DD1A1C94713673C7E4C81582391B636C72DE94CE6254374F99B623E
-5686C13D8A8322E83E11BB0B0A896C6A8C2C4F756C5385CD7017F26D23F7C3EE97372C868C8C9155
-81723BB6B76B4C3CE8998E4FA6CA40B633DFDAA59BA902A4952DA90EC4FC3CF0F2676ACFA7F76F78
-236FA2DE10FD3545357215246BB7E527F277C28B353CC6D79DCEF21BCC8F77603CDD58A2CCDDBE3A
-9802F941CED8E035313875319548C41992A2BE939A17CC109426E33825AE59BCD17CB19F50D972FF
-CBE7D9B4B0BB095303D9DC9D406696C2508D6CE99E11CF00F6461147E97449ED5F486D480A86D3A7
-ACECB7E9A945984724EFC21C5079B1FD03ED803C2DEAFCE3327D2D7827715FD65D9506216C88B0FA
-26935E95C64114A51919D419038B1A7E9C1E829FBFB53275093752DF19891A97F3CBF7719C1FD6CB
-17019A6D2D25360ECA804C4B35172662CC4769D2B785C6C87E5A4ECCE31704E59F71263B7C3CAEC8
-ACB4C7426EC25F11A0042323EE6C3EEB04284DBAE2C770BC419DCE79BD4560AEA41571C3B595F525
-60191DC7A8FBF63D413A77A0905E517441B16C2B501EA2F9E99CC38D052679F288FDF1894542E3A6
-6989A0090185EB2E75134BFA3D9147C3DB8A621D9D35E37786853779E157B47F71626D6B3E633005
-9159C17596C1B87FE2B4FF47ED9D78FA4C2160077276C8B58CEF5DC030B4A5D83CF257096C047FE6
-4DE307C598B815058E72D5F57DF5C369E664E137DE29349E2F9DCD8C9F4EBA6E765B6327D7A20DFC
-B20711273FD8091CBA605C4C494248076F7E03DF65A6A50164980BBBB708741E5BF6056E6F996DC0
-7FFF408C5B8EAB8DCEC315E92873228C805D4440A6470E3EE3983758DD211C9CECDBFAA4C9300CBA
-00608A4B2404A3C7AF017A3B7E67F39F0B51ACF950D3E75CC7BC2B8D3480202FA958E8EE0B240501
-5232EE0D264C7CA02C18CA45CB3C2DE322D3EB7F00F9455DB6C5B1F4E59C3E95520EC36D7D903CBB
-625D70B54BF6F8255E412604BBB29FEE026CC660577F91DB1DB4A613EEEFB20CF7AE3CD89D565AC8
-38416B01B5DE4FFA5550D17FB51FBBEBE21CF1D56038863EE931B90DEC2E211ED42BA92EC244D4CE
-2C4EC5CA87A026992772DC2AF754FC982B94F36EA7B7BF75E0ECE90CBB2A6AA1A012E8898BD679C2
-3CB3827C35D5D02F0569C7AA82615D4AA67518ECF668D3B57D6EF1A8013424AC2268BA0D9A74D588
-79EDCF6382A89D397864940303EAEC45A38304BA8B1CB198967AE23EB81054BE74B16909A405E8A7
-799CEE3C270FE2A6DC50BD7370B6B2C8FDB9A87D88D5D40348D3984E39C693B6F4486D994778607A
-80A3122872DD65E40492107C71C3CF708A9717E9EEFAFBDDC239C53AA9645B711038E59C8B861B37
-411AB2039BEDF9CFD00F08D9C5D76154427FF5DD39878CECC5D7BFB3F1F035087185C0981F3C2139
-BE84872FFAD3408531C4EA9387B89F5E3EC779E8850D50992DFDCF9132BC551E985943B07618AC10
-D1150451F0844C0DC41D6E17EB508DC8689EC726400D5A7F6FEB3CC7BCE05F09228B7CB2C5393664
-D8DD9A4B96B1020EF25D70AA2D91CAE93AFB5F2BF0AA18CA5C599FA1A708EF35BF8F7FFEC9AFC1F2
-42870D028B2B1459063B493943EF1283829783E1010242E5CF4DA39D93D506F3892936E7D6CF1124
-70A521D397438733D053944CFF12D6FFAE8246F20618684F263715AA98E15D72A526383E05C23214
-B78338E5B476F0981D90056E6E5D0DB66B1DF2298E597B2ABE1D817E18BEB056E65EDB4234342D96
-00470B1420C9210419D834E431B82F58608C87AC361A02D0F1FE4B470A3D71E0D21BB87E1023D428
-E23D596CB9E1A2184403A16E36E644BCCF9BBDE27290485057E62827283E7380AF786BF395B3961B
-A5EA469C315763FA59E0F176EF81985F38B882DE56A74D128E256D1B89939728E55A92ABA21A6B78
-44FAC1BA7BBDD8B34A18194A2984B000380FE9F672E83EFDBF276FE797A325815B0F25CC95C97A9D
-ACF56D583486305D7C9E51A7E337D14E3B900333EB38FD93A99587DA2341B10C059C71CE080FE753
-3C0F059FA40E560AF9C4A41A4BE6FB45846FF8F78165E10B4AD40F264BCF5596A1E8EF8CB6EA4B1A
-3A5C69059AB1563843679ECB2511A90E8898F54295649CB73D277760D8D04ABACC7BCC6E777A0530
-E2067CCBC08673F9C8C178F9D672AC8A15E5367F0C5651B53E75E0CFA57C931746AE1A679C246D7C
-9417F1CD89DDDBD1173C2F880B7B3847CBCCEBF99F7122E832D7C9BAFE2B54CBAA1ED48158DE3F36
-238B76B0E67644A28AEA996DDC006F6AC0242E4B667639E7523CBC90A0561193C1AF34481C2EF402
-EE43A82E1EBF4E3D601BB36B2D95CD93550D61CEE7A94E72F6D30C32C8F91A61E964B1F66ACFC398
-7F95D4028F116E9A9A8474AA29C1C1A984BE0E393BDC41DCEF6A6F1018DB60D52024899D8EB5D55D
-324D73F39BFA47377B9E15B3B06A7585589FCF52A54684173E5183367E7B0952DC4BC2767C4C6247
-B1D6103E52BC7B7EA6298F454C5D97AC575F19C10ACDFF4E10C7D3755CFAB4200CAC545269FF1D8D
-B0D607C7AD47F40DDF257AB4E7D0750577003C13E4941960C3DD7B0774DDAC18E8ABAF8F53E03CBE
-F6D57B44F24CF821014C064278FD51B3427593D17694B4ABCE81F49CBB984C5878CDF0C38D1ED7FD
-99B0B9A3BD8D8FF6219588B3B8FA59D0CDD1D9B2F65122AB45E48F1757467B9204926140E3C350C5
-A927A2E700173053EC35D3F1DA2D7258714C97FAA857F0898917BD94625C6D1E2D77138EFCAAAF51
-7B17FE187A2212C24A881A2C6A647DEF6376ED80AE4175C5EE80921F001995B44E49F0D33DD9075A
-CF33BB03671C0BCC34AD5784AD1CDFED3A6D9BA103B3DDC1CC2DE74DBB576A0277715275218CD19C
-A8899209125266D8BF1286F881DCC2C383749D1E768D670F4099F7DE959EDFE852583183C9111601
-2881A56A24AAF020EA45CD5F39660DEBCE30AC1C7B8CFC60387B1B0C3E361BE612FDFA9F01B7E4B4
-A18839A2C7E0E393EBC5AD9A8A4EBC316A740C1C295D9EF5F4DFFA0667F9582C0BB837B142C4CFC6
-B1798E9476D0631111033B8BA75A10FDC800E2AB1E0E829632F869CFE4737BE9E2800759EE0831DC
-7D1195EAF80555771981DD6DC6606812D92CB8EF86447F5F6C6F626D0E265C67E52A6319189EE349
-D48E49DFE6A9E98F76C414A1E3217AE0A215A17E54AA498F4ECDC50242ACC7E2322F63BB2FF2189D
-057E7354E32A3ED1803116176B9B9D0129930F919E2FEC280B2C8924E49E7BB75768A2EE1DA8ADBE
-D4E3589906DF1B923AEF84C1BD327438B731012E69BB0D43A1842CB88BB54EA4516477F704CFEB28
-6E3EA483445AD4D74586FCF32E96D366901084365F693A53C5FB532FBFE7BC0CADC404C4985042D6
-8DBB90A6DCDA3531EE324D558A214F935CD9FCC9A0CEBE9B5FB0323F4B3820529599EF48EE068B5A
-CE85004FEA2984F0A86F5AC9D56163BBFE1142B774148F1EB0A4DC89C3349052533A7DE66729DB24
-41B82F8F7360111DACF69293C9B281A0534F3E9E9224A75C49A832F28B2E497262475507B6DDFA9F
-01CA0A6696E3F5AC7EA68595EBA0C2EB8A47813FF936D84AC1B23ECA7AA2862B793CCBB0DF9FDD49
-31BEF354CEC12FBF478559FEC29F81ADF4452E83963E56541D31F3691C93A50F0BBA5E9552C4F2A2
-3A6E53060729854A3DD71CC4308B91957DB19E66AAA18FA67055A950F1C2CFF78A03BC1A588CF624
-696068068719AFB1001C4581EE072113882D9052B21E355D401ED8CD24D067B99E616BDA5A0A5A93
-36FC499632B79FF2FD0DEFB096EF46B75E2D4E0F48DAEA239719FEC4D9A29818F5875FC5041A9EDB
-D26CAF0ACE14CC80BA49BBA59E918EB3D8F1E541AA16026585A2F72DF7D83541816DE46981FB3EFD
-0C30E458CFAD04C79421AB7C4925E23AEA07F9F018431C790002596D26BD9663B51B699DF53E4882
-CBC34EDE88EB55045B889B6062E35FD1E018BCE785157B85EC3B9CA6C85D4B16238275385B8285DB
-012D8FB7C9F5B946A41D7A0FB878FF72C39683144D8A007CFF631B43748F2D5FC690300F9BC0C837
-006B92ECEBE0605E8C3A4A400E18AE8997D1B45FEE10068E247C647CF82C6DFBE5E881D511FFA687
-B7AEB78546BFD07D5F7EC242DCEF4930D8AAAD8C6152B6642AAC325963FD147F236BB850A9966573
-9D06CDBD7CA79A527DCF461E33F22BC9C5DB00DA2BD3DDDD8C99D99793BC98282AA8872FF96C3942
-85D82D9419EB78B6AE37A5F519397700F75D624A09BD255B576E955A323E784E8FC31131F003B0E3
-024A4F58FEF2A6C043796201FC425482E1155E229D1B2D43EF7B0D22322B22EF5C9A1BE026A1C3D3
-75EDAFF99597E1E5477952A4E8D2ACF5D014BC00DC2A272FA62B6983E27D228881E2EF2B8B95A681
-CBE90C5FDE16331C85222FE2A16F0A3C3000A63E2E21666C0C119F8AF89A543D37977069A5ACF155
-6324F05204CE8CAD50FF4FB630D9CBBFC324DEDA584AA56A99D3A76FF55BDC2C2EA3A021361CCD4A
-83C7A5E2768D210FA6DE889FD48A39D679C94EC3C99A8D33FF11377DA7F6F1B71A2A05B302ECDE95
-4F26773F39AC881542F0D0969C3995C3519A8EF70B4220D86BF01BEECC6462855E7B686E1AFF1CA9
-1FB8FD8B4A69E10EE0C2AD94ADD44449506F9B6EF43641F2026EFF6E605C670560C2B74706FB949A
-A7E8CC6A2D0D6207E457E7FD87EC1B9092DC68B9143947CC8ED14AFDDCBF8FDDA228A76847F96802
-E561F67CEEFDE45AE587673983FC04C96744DBAA83F2DC838D633943C75DCB9E6410474EB27B348F
-26E505F0AB90878940E846C5E9F3C5FE8C3558C3236B1B88C405716949B8506841CABE1717474BB7
-C30DB91CDEE33B0F844811762FAEC535BDCF84C1C747CEF9B1FA61D2AFB5A81335BC42C06A94D7D5
-9B7EDE55BCF6F9867AEE107555CDD084B7684C2C87087475A39A9DA6347BE281CE5635A4D07865BA
-98CE26C1465B1AB0343F49FF37B4D0CA9F3BB693D78DC3B21925CB996A038DCC172527FE57C07460
-EF39C07D4396E7FA970D9F22ABD21A9C794B64AD96762C7428F59A8757C36D6C4FFB23216195A04C
-2A2C2E7B10EF7193931544D782FEE4B91E01119C5553BBC6252270A8D8C56DD62D448F5AD8DC69CC
-B45E1F17F0AA1E445129DD00F000005B23D38DE93A3BE55A4C041947F36B4E4536E307D0180553F9
-2E46B743881CB5D5386C48C7D5F84C2BCD06B9C501F78C7EE61FA23516791FCF4DB278AF688A2E60
-10A56692AD92008497487EDFE4BD5FA083FA544138B20D6940020887E35D46E093B71F7A04A67460
-DC8116B4D4839625D7CA6959D6831CD93F81AC4EA2709036DD738364FDE71113BF22EBF13DFE1642
-E564701E6F0FFE7511EDF03FE448C2B28C64FB7D54B94CA576E481FA56B2B18AF10C71F699B6BFD4
-7459CDE1869D0FD306BF489A6F42E5B2F05CCF55BB6B9526973D19CB134CA7F13F1DB3716F8CC217
-73A832568C16250B5CDB16DF24BF81D49F5B37018BD310262EA7078107868AB0216CEC83CEFCAB1E
-9F2C665A31585CA04DC01879CAA79AAA5AB201B516F7052B01B16BEE5606098393B0E5D9F9E5E3F4
-EB20F63C958E796DF41CF28839F5C62A0431648745D7837B519F3AA36BC6C08EF040CCF53D9B6D8C
-0C7D1A84D707EC57A3C6AC9A62AB37251A01A5ED40FDEC6F5BE6E34C6A91D058319439778A2EE5D0
-363E2E1F33463C33327D05FFC0CBF08D5BC457C7230448972FB9B4D0D782BA7DBF10D3FFEF8BF523
-6EC16D4DD6D0D870D9D5EB5C64C9A46A4F583D4F831FEE74B0E5B33A09ABFD4444929BD8F638CD72
-EAB99CF2E9551DF427683964A592E49D186F285258C5D5F62196A98532421D73E3495F82695FEEC6
-E1952C562D546B28618FFAEEBEFF03A57F4D855021F85B0C7BC37FCC6DA9AECA099B646B99D41896
-09D3FF2D56422F8C37E97640293EC7C90E3380887836F4938FBF495CAC14FBA5648D89282D8D49D9
-1AF73ED36581139D8BD42551E263E830EA3C6EB381D85C42D74C50DB0CCAEC03F535ADE92128A016
-0E811C34748309AF7604919B66CD43EB5CA975302DCB6076FEB6BDD6FF55976FE990FB0CE9ABB11B
-195403FB26E3D6C6A0DE1C5BE79E171A61E21F79EE8DBE7A832519813EF6B33EA098C2C32ADEA219
-AB2AAC8B093F40000995539D1276D5F2EF84CCD099B71FE4269BDBDB6A8D59C86F7D2E3FBCCF8773
-D0FAE97640BC1AD43CB4B992BFADFB09DBD0CAAEB8CD9DA264187C4F97300E9A6C9DEED5525479E6
-05C65AE336CBBDF4E5D7F79AD098F977285E065579B748FEAA97F2A753E1F962FCAB68D72BAA8EE4
-FF6691C23E31BC0F3E981A96FB440404856AE1AB32A7205B17D411D8F21C8C93B704D07EC594422A
-BC368CDA2B1610CE6A973F4474E12B78B532666797F5755D269772C9F5400B3BFC6C58395D38527E
-2CCCF29B56123F7DCEF3BDE5DC1DFC5B0293BB125085B1D2D929BC3EE84F4FAD571A4991C3DEE03F
-2DB3A3097E52B1A7D5C73CCB6148EAC62E8E36DE9A71C57638C6E4D5D9DED18174E8C390E50B4A5B
-913C074EEAEBE390B214B3A68F02862B9A296DB4B409769649E51D738CBBDFB7702E15C73C2AFC6B
-C37CE15171F4E822CF20EFE55D9F061AA43E648989628FF79E65932390CBB15D8E621333B18B11C3
-BDF96F841D7434E01AD501FEA964A75B248A35CD9DF9A37E48A1E5A09C624B93CE44F0042FA00D7F
-9EE89B9F7AB785E9C718CF6E7228F743271C2C9BBA17E5208B920E44E765D99D86650EB454B0FAAA
-112753AA1BD3A24239E9C5FC47EEB1547AC9D23731B8DC48B9707830DAEC60C8D3790BBA1120F776
-4EFAC542CFFBCD5C05F9510B27B2534B704ECD36C8B041FD49A96881302FFF5B0163A2DD09C751D6
-D6AFEA9170A4F4C4AB8D46E62F763FE1BDA51DD1CE4A27E772F3A2869155F762FF26B7AA6FCFA4F1
-292E56F03AAB6322BF867E7710C34D43B5D85B45AA68014AD7879EED051B1933E491496E3E26D9AA
-8B80A07BF2B94F1077E84A9726F08199887D66DE7A307BF33C30DD9CF3DA188088C03B2BAD09A217
-6B110DB2C868B53DA9A66C85737BA66C93C58A259860E294AD0191E3A72C73F40B0BD98699AA08DA
-F03587B78F391F3A4313C58D9F29B53C70785637BD0C58310109C54091AB0A34CBB0C478613A7AC0
-FB8F0A8B4645AC966395D8BA775262CD291136AFFDDF01C1D83DD4EB3B59CCAD18057FE7D92A8CD4
-A58F22508D9FD7CF356571F701BBB23E749BDDCBF8A317FDA0AEFD952BB18545610FFAD3AC143D35
-1B8DB3F66293375E0E50235F0D0466932181D377EDD32A5F0FFA4E22B5A0CB4F343D9A7E4A342E9D
-09DFF6C697630CD3971802C277A5590B8CA94BDE6B38446C794D072BBCCB724D5BC208EEF1B018D7
-39373BB910D668882CAA779C2D686081DE6A2606417B54D7C20E0E7F722648D893E4EDBAE8F00D6A
-6DA3712F91AE860C756D1127D133AB828E9D80023B50B162C5A1C5CDF70CCB3FDD7EA060ED20838B
-E1E50C4094C9E79E1A0187CDF780CAF45A725964F004253E034C5BE46BBF89D94631F1A33BAA35B8
-4FA2A9D08481C6674126CD96ED05DCE48BDA069D902D6836D5DFBA701DC0F98A863E64F0E312145D
-8DC0B77F25B43AEC729A1243B45B08CA228DD6101CAA2AC5ADCC8EFF84A4CA3F254176C2CC711EE6
-C273835D0FD3528ECA2A976B88E51FE347FDB60F32370B66D338931D6581630ED586F349C638960C
-31AE4204E89521A96E1219E696B913DEB2AAB7A3B022D06F34FDFCB810A04E60A4FEBE284C2F063E
-0AE9EDF87704921CCFA193BDC912B747E13570066223A49F1F6E2AF0D4D65DA04CA876FF7A462FFC
-9C0BA2CC545C3BD36DBE762F32B2D6BE5867C59F479195C92440DC165098B74EA5C3AD93CDF2D410
-B04C16BC7801E7956F4E5107450787AA592493171C3628E6B8F49D4F8429EB98DC52EF025F001387
-BC1A7093F7A99F10B5D2D7DD8BBB393BF6E56F08F4F7FA1A343F220D5A1EAE7168C74D41BE1DC1A8
-3BD65B72B982F4F7B34F24F97F9EC9A91011064031FACFF2A14921A32024385F4E061CD07D152E74
-1BF97156D951A342488FA7F5EF934CCAD13E2753A0AB7A1F565C2F7F6B349DF03BBC25BBD972A9AD
-F809BB5C5048A8CCEF9297B2ED3324D18867F293CC66E88B3A39D107B610DFE79A3B4E83A96D3D52
-A17FE8A62C9FDD271130148366942C9CE57558D023DA5F7501319EBFA33DE9E6D1E76D7C20DB8A09
-B657839DA99F3D8143F1EE6253A3295C9651FA4366547893C2DC7ABCBF4BB7609DE5D001E0A36D9F
-FBE01F7D0903B3208AE8547E2E5F14EC1AF4C2535CA8F4EA37E3F3CE172C7A1E8308995B1CC23E6E
-81190246BCAB6E755BF868D449BB02A2AA87C44C9CC0F571ADC72547CEECBE104BB274B8AC16DCB7
-5D5F458D356466B921ACDEEAE384E2EB1DF6EF393B41B9747F0A4FAEB4AF1928D9AD6FB7E06FDC62
-1E4C6FC98CFB43F88584BD55D9B97CC9549093EDE586912161931162B1B1D52D0443260DABA02AF2
-B4432100D5506546013DA703573FA8013685CC798CE501960093DED713FFCCF89CA2B9106390198C
-29A00864108CDCC1984A8BAB53919028C01B26ECC7925E38CBE6CCA8978EE21C2B06E7B3E48FBA97
-8E2A7D186E563C088F84AA23178B60E4729EE87D67B1091F3B6973676C1CBFE6530EB773C62E2C24
-97014AB0E8B71A1F4E86A378AA26591511BEE3CF3D64C94848582E1354E1605B6457823F2C5E640A
-D3802946BB2E7E8E594E8C04B430C2385DD40746CE8534F50842E74D7115F3DB0C72D1C9C607C657
-3B094AEB73B7A79876CFFC3E2F8C9FEAAA07D3BFCE05B61F7749A8793BE90CCCECA2D7077F25E899
-D3331FE161A7E86C842495D584C6E4A0880B2951D8A13B88C4672080A0B1BE36BF47C3ACE7288CFE
-41A8C1BAA6F0814A947FBD6B3AA72B6C73A8C578CA51CCC96F2352316C467BB960E981F2B6485BFB
-44B577E71EFDA16E7405954BC7C9F0759F5A9F1EBCD2FA9CC9648D5831A68887F41B15081A204C24
-B4B992A231DEF9E698D4C3A25B6F5474F5BE6A601F2D337A58A0D21FF37FD91EB86D1D738893A03A
-69F0CD743F611CDFFE69DB2C6ED0E4611D56F803BB0DC06E7FE85A303839612707647B1BE9FAF8D6
-84122CA9E5CB8BDE2936D3F4FF254D31529D7538BBD4D35539489F9E7316F24214B996BCDCF1818E
-749A71CF0E8845AA1E2A58AA62A48E02BA4564625D20AA220EE719608521D7D7A7FCA0BD8904A401
-9819D371F3F59D46C1354E5FC1A6E5F79B20CF4ACA2BF0F2DE73DA193A6F9ACBFE0B4731C4BCEBE6
-D96FE822965DE965232282A3A130361F188B3AABDA95A8A2790D9240BE008B6A6DE4BBFCADA05B67
-86B9BB8E0DFA0C30043A3B07ED46277E07B9808422C8ED16758B9C396F4EA929D769785B2C9568E5
-70A83B989B25CE200F1727D41E2B702E7F88F1784F4C83FA60A74EB26B2DA95126E508ED519A61CC
-151DB6804F61826C5F86D8FA89D06E526FED97A0DB88EDB432FF32C1ACC9B622EEDF601081AF7B96
-3C9CFC1D13E4A9C74FEA0A1C8E3D8653CD92A944D4CA6B0D306619AFD503506D77732D6514F604BE
-4610C2560931BDE0B40939BC1D126B0E97F72AE1B4A9252123B54F7A27E0CFA4425B4546526FD741
-CA77952B10D13E0AC2E32006A903808FF0CD013F936238C74CC75FD915244C56A8412F37F0134840
-347699508D6F3D7F3203A25B7C70100719582CD588590EE34B3AB13E255B613A6D00386A0104CC5E
-D2C646F09A88888D3751651D5646C5227A3C80E8DA1B0A331121DD2429F1F4775D30564DFF47D01B
-BE2C6C72CE4D1FD9A2077C04D2B0274B8916F6A9D1A4A6964A534F47CF241D5A8E34B23F85BE9ACF
-FC2FEA961F277539F215F8728D6788F67BEAF45502839BCF23D8763C3949352F00C579A9A4FC408E
-C625E310DAE61512DFE6844E82D36A2F81709E1F05B38AE9C222ED62C961EE63593CED7AAF73CE2E
-D3667740C77B309B93EEFE1B4BA65D48575A66BE86743DC9E5D3C2FF418D11F7F211B86E827EE1DF
-C3613E7498030F07050524536D1F8A94DDB6698BE7B963C55CB3F74B676CD815A7B3DF4B1A0EA2BE
-1B0B9A11FFBFD5B1FA49668AEE14629316AF436A0821C20BEEF7B3480847934A99F6D85B68F4DDF8
-859A754E009428AF89A90D1852C220A607FF0806E8080726EDC94D691D214B4521C147C4273AEBDD
-BB4A697EF16448CD9B2FC95293305858DECFD406B89B9F3FDAE2AC579E80CF321EBAE5701FB2F7CA
-D8ED04B4A63115886D45D6120F69AEF1A21D80AD3C2D35D2899F1902242B96CD349E0AAADA40F7A1
-1282B6B52BDD97708E58DC5E2D22D1153E5FA3F3B300BCDFAF98DEC2F4E3C82A1C85F985735F3987
-4F557579F422664E07CBE19DA680EFB0FC82C323EC5C4644C51709AC8D674608A8043C91E6C7988D
-430F10BA6CE1FC7FC0604FCD8F723895250AEC36CC35B3FA14FE2A0D24095DCC30B2093F2298F5F0
-A97676A0BE66C3DC9ADACFE2FC0F721A20E945AFC1096A619075D5E9A264C796EC6C90EF1AEEA8DC
-089B44FFC13D27CB2370070A52D4416C53F364393E46EDD7EDE00799960CE6E0D57E4909E88ADD64
-BDD2B0EBE2D73FA6ACF8B40280DAA0637E705C65AABD523B8815F22F23E9FF81E7829C7E4BC980C9
-143AEBE1A04DC0D253396BBB7268BD5AEEA356B610D5DCEE03135E00AE34388251F31714A1C40E18
-2652C48CDA2211A22CB6F02490E69A44CECB169754C53B16028D352E0119F5D5FAE0BD7EA1CDA647
-12A6147374B64244E21E9EC9F0D1381AD22D5B6212B26C3F9AA5F6045F25DD9F5EB4489EA39B1945
-331AC70510C5752557DE21D0A6CFC1EB10A98FA867B76DA6E4249469F591FD154D39E89364A43DB0
-07AA0D7A911CFAE6CE2B557997FBC44F55A27F622BD7B8B10EC9F5D10F2649A646FD964AE1B111B3
-5B46A252C4DEE44E7426EB5739F24E8A390694597DB3A1FE7800C97E59558322F0E49A0CCE2AD94B
-1E2D1026AFA771723E3F523916F55ED866C9FB4A2F759651C613A2CFF362028CDF9D38F05D4C7C60
-24C533E930B64B099FB1AF04B01F5FB9CA6867E6EFF55A772C5391831059987E10CBF987E3F378E0
-1329F73D54DC0484177D3C3C06F67397955FF1CA4EF8AD1606B70455255D631A7D6EB92BFDBA14A0
-FF28B2ACE7E81AD666EA9B3A0F5A6BA3B5DFE35044FA4B3D8ED956009C60E98CC132F2E84967F4A9
-8A67B336D5EE7CAF7DD1F74D1FA08619941361FA7312CF225D89CEF97E864C8369EAFAB94D97F056
-5505D825972B754F6729596EEA91210B75DD8F645382ACE36DE60819A02B3B48DD00F5485F9264F9
-FA926D732E2C267B0BE8CA98526F124F97EFDB86132C5EF16B103908172FC51F286FFE45FF253512
-E0033F037FF182BA536A9EB2DF2D1DB257D9C86C46E1B002FB32AC70CA9462E6EB48994752CEBCE3
-9F08ABD4F4B0889283E55500702185A841E328
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndResource
-%%BeginResource: font NimbusMonL-ReguObli
-%!PS-AdobeFont-1.0: NimbusMonL-ReguObli 1.05
-%%CreationDate: Wed Dec 22 1999
-% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-% (URW)++,Copyright 1999 by (URW)++ Design & Development
-% See the file PUBLIC (Aladdin Free Public License) for license conditions.
-% As a special exception, permission is granted to include this font
-% program in a Postscript or PDF file that consists of a document that
-% contains text to be displayed or printed using this font, regardless
-% of the conditions or license applying to the document itself.
-12 dict begin
-/FontInfo 10 dict dup begin
-/version (1.05) readonly def
-/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file PUBLIC (Aladdin Free Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
-/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
-/FullName (Nimbus Mono L Regular Oblique) readonly def
-/FamilyName (Nimbus Mono L) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle -12.0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/FontName /NimbusMonL-ReguObli def
-/PaintType 0 def
-/WMode 0 def
-/FontBBox {-61 -237 774 811} readonly def
-/FontType 1 def
-/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
-/Encoding StandardEncoding def
-/UniqueID 5020947 def
-currentdict end
-currentfile eexec
-E98D09D760A3C22CF119F9DC699A22C35B5B35ED6AA23593C76D54CABB5E942BF7D6DD84F1664B89
-699C74B472DE9F8E6DF925F6C4F204E9F1C639B4DBA988ED2AC419FF2B2BDE605B8EE3264EDD6641
-2D4F21C64AC522BDFC7C5502F9C3F3E5592B3B2093D33C9BFAEDD2D49E89AABAA832E23F062E91A2
-5032519D1868816E44B4E0747795003D7930299D6E1E2A5BFE0D595DC97E140989CE81D8D7F852FF
-9CDC7A1B1B598C69131DEE005B415805A16D8A123E6A208511C6D0C255B9A5BB2FDEDB4D399C6CF1
-94FFAC236883767C0F68F4EF84EE696B677DE704EC3B097384F2E673A1F51692B7B260693738C211
-9F7D90FFDB21EB715FD5B8134FC87DBA320EE54C2CEC6A4D6BB350555EAFF2EC4F84365CCC0802DB
-B3BD0E3F0D9F858647DD637725C2CAF9557FDF842A0DA6A0CA0F1B442EF8EE6CBF2B03858468A466
-AC5883CBBD3815B283343B39205803C02C917D06825C09E2BB14609FA32C28D720C0E14A4B12D4F1
-25FF6281FF324DA33A56FC49987AC7D3AA206540F8127273FFE9A3DACFFE2B1C269D3DB9A811578A
-C7D532C2EFC18376F473FBB2B32EF642B19CDEC1D6DE83643723E3C6DFC87F97A7007B6081894BBC
-45C955B7001EB36211B26AD7A3D07459CFB33F9C54A40A360CB802FD202C8E93D4DB888B325CE246
-D02D1220ABF55CE646DFB45F07CB848406E470362F80CE4C02D98DD845189877732744CC16C7F566
-9F77EF096EA55AFF98AA103EEAEFB971731EBF3782E6AB725D4E9E35B2968689E8007C038CF25B6A
-E69451A4731E79AC22BD268F56942A233E52D71873E83E00A1874E04D3B22E72FB2D0671AF81C698
-53C389B51F4A257373AEBF4DE2DA1E4DA5E2CA88941F81EAE0E32D982064C8AFDD7A9A600D56D736
-05B9463C6240606B3361BAF22AF74EF89AC804A5793BD512DA2D13F4BB1B73EFCA1E621ED2A65D66
-5AAD0AD228B3B7E3D90DBDB6061E172B686E92355A7C7459D83199040A368B5697DDC3B81DDAD341
-6FF4405E1096B1240EDC18A0E9985CA55A0D697972BB11E9F1BC30765D6775BB68C69704BE200EEF
-4E11B78ADDB6229D8FA49A6B1525ADADF17122C0FFF51A08AA7AED158724AC4352EBB91ED0C157E2
-4281BDC1FD610195F495E87062A8C38E0D046DA4067EE16E81BC5F87E583315B973184E474064482
-9B2A52E0D37E249BAB31988B906F891AC904D1BB8901F0673AECE60ACEDE97B8DB7935C6488ADE8D
-FD898027424AA85A11A3DA494498B084133B857017A6D507D70A3421235486EB3CF7613C59139FD4
-DCB92EADC60BB6225D9CD0599779217BDAF4813A453989B2E56903F4DBB83D83DF4837C86BB4C3D3
-CCF98F07A23EBBF7AB5687C3E1E6792E40F92A7A466DE352294064537505EEF3F9C308C9EB94506D
-B02CFAE289F10005A6E42D2DCE43731A7AE368564B2983038DAD6987F67062199018395BC0FCAF28
-7A2B040C71F7325FA1E9A9808979B2FEF19096B98B8A0A728EB98F2BA3D33B49E3C20BE992822C7A
-1BCCA5B4E4D1099D456D8D7D83C57ECBA0FF21428024F7572A1470317CB8CBC8679A974E13D88C68
-1338C68C9AC9557F97784F4E1C8C2E61F26023ACF46232CBBDF3C0BCC5583B935FE9FA09A562129A
-8927AE73988DB0F7E733C6561CA7C9716DCA9B88208A715166F2FAE6D5EFF289A9B2EDCE813403A4
-16F243F1B57EEDE7D81E10C2DA4065A3082BC92A38B2457368EEC9C3C17296CB09819E9E642D7365
-F9A6EF430FC7DD611EA5FDBDEDFA72634AB599EB666A5DC178B0A0BD1FAB042792115EF3B6222C12
-41DCE36CB38B738F68B1B3CB489FED9E53315553F3C5C3BBCE40451E47B7EA53FD3D3ABA6CE0AD22
-5DAEE734BDFA3BF1D81C1B42C6D856A05D0924E03F7627C5EB24D7FBEA3BD85716207F961B56803D
-BE046E81ED5FDC378F9CA52C14FD8544CA7C539201BEE06487EBDC30FF3B28E8264EC7FD5DA7E080
-65B0A9147344CE28DA5182335875E9F8B2347A44E33DFAA167232A5C3E69E8C5B58B7C7216537827
-C936F5741B87FC68753EB0D4A466961D0050DB59DF3195BD3379F5647F8CFED35DA952D7CF2DED45
-EB442DBFE992711D22EB228BDDF36B8D7DBA27062D60D2271EA8E8412F4290B58F5BE26FF06F0559
-872F9DE4DEAABA015EAB4904BA1F509F6D517C6E897312DDD571D769BC474FD378AF4360E8B1F103
-AA75F48721B9E0BA589319E15D74AC0B03D730C3EF708C7C504787483F134EA6297097B46D2680FF
-8AA50B7A255563C88D594B912F5574564A1371463674793E4834AF11D14C7991E7FDB3A6ABF8529E
-1A4F10CAE79C60D37429579093DBD041ECAF03824DF9C007E96F45595A524B27EF8774A83AEEBD3A
-7134AB4435C80944DEFF5C1CBA921B0A41B9651968581DA4834B3C0E6D4DE13C1E792FCEED26A72A
-DC4D9E3903661D8803DDB58EB2B929CE31FC9F50A694116B00AC9F3EEF53FFDB1ACA3394BF111610
-38F39917B022394C75A0D467D64B89A44E5505DED7D9C6B8BA6BA098F140C9C00E09200EB4828356
-A2D6BE9EC1D5524B09C06D9C6FCB5E2808050A339B5E5FD4DD6C2035A48FE9674520901EDCAD107F
-67AC8C8E508E6003011978D77ED225F361BC0F86A98B6120EEAFB73F7377DB1E7213E02D12C330F5
-492511B4DDE08558D75D5B8AA2D56A3111DCCD257EE96E3446EF1C76F000C8916C4CE261425ED9D1
-5B58CED128DAA6C1300466E7B152BCFB5E6FAAB2519B8A98F26B29F98133AF886A0AA7E586A090BD
-A1DC6120DBB5640885C609A8BDADEEFE5DE0DA5B75A8A29E92515E86E7E66BB29581E5AFF8CB6551
-D8D1103DF60D558E7987E6F56126A13DB2C9A04886C655064E68A0A20D1B7DE24DAD22BBFEE1B7C3
-C208D4FD6A58DE78D6A0A6126EFDEE3B1A9713DEE94069A9F0A2B392A2F391C4C75327803B53F252
-CC9EF0323F84929BA4716C50385681FF5B4ED54929821594F9026B7C1297941B178C3F8A704CE097
-60533DBC6CF4B18AFBCBAD039ECB2EBDC7838A9410E7B227924BED7123944675A5DBCA388B710F8A
-F6048B03DFB713F881EA0F3B191A5CD989EA150B979059C8AADE403855815D8F7980CE6288F47EAA
-37C1097D33F13776F08779063C5217D7408D9835AACBE5C071EA40C9AE6DF685F4A9827B828815D8
-F3A672E73A418E5CB15684EB6C6FE0998A386E124D76620446907F993BE16FE5AFCEC681F585601E
-18182EDCFD3024062A3082AF97E803C47D32229D0A24596CF7E03F18229FA631175699E2F0D60FC0
-9C4F1954C5D12D03BFB4395F0E5EB6C6877083807D91D93CA4177A6B5A8D2AA500131FCB670E7118
-73F8A3C77575EC93A3ACBA37EA117DB268CF10D04AD0F079484DB124F6DC14A50AD3B0294F7157D0
-837D8F9A6060FBCB385606066401708C041594E0396A0BE4B8B66FEA141CCE4BD29366A986ADB98D
-9A6935C49C57F8CD415E93FF8AE0DF75E463E02AAC68DF064C1B789B685F84E15E512404E065A39E
-9E8F5568A7D97671AE1602605FC7E4933975189837586FB1A55007FBB0E91382A629277C36A190BC
-85AF49EF3F0F38D4ADD2B5DEE09916B79690EC83473C63E92CF617617A66DF472A49641DA10654E3
-AD3880D060B02A4A6C75B51E4E9917A2B6D8EFDA12D59DE5A8E222DC7E82F02F23A9D3DBF637154F
-719B14114DBB102BE5EB76B441D7E9990EF6420C2E80942C8AED5A1D0B19BCE115B5929AB9E145F1
-496753DD6B1798324F5EC1D0C7F26FC3045D7BB46A14110C99BA07A45EC16002CB754C0BAE7A1A88
-EB387BB345FA70B0A38AB4D532C2DE49274D4F86F2582728A2CC54B4C09D26C0CDEB8FEE6A42885C
-6207D74953CFCC583ED82DD7C0F29D35BDAE5BB251B8A2D4B1DC97E2264DCE035E359DFBADDE84F7
-37EA6A59C23D1A64D963E635769233624F7682EA34636B595CCD064AAFF3887D916867475731BFCB
-F7F96D5E5E1FBE6AABF454C2F504EA4E8EB382911560195295C87793D5F7739AD7EC7176E126413C
-D4D1058EBD7D6EBEE14BB94A1ECF28B686411D91E07373E891F78C4C0A05D2E8D90A8AE2614F7FC2
-63A762D0F43485473A54C31726F8547701D4A38D20565ED1707847AED9C805780F062B847E668E15
-565CBA07A72B0BA99F03FB57D26FA26FF579C30EED0AAB6FEC1B5DBEA81AA88F16F0C9BE869505BE
-18C1CB79657D91D6706E2A3F0BE9920655B93EBBAE2B4D0B5DF6BE622C951F2CFA42AEDBF7AE649E
-2150FE87CDBF5C2685EF36051080BF39D864573A45AE2648AD97662B1F69787031B9BC43511FB841
-55ECDC3D91E2475D072BDE6A5207ACEA1E0D2ECB1DA8A1BC4BEEC335A5C7102963E84B97BE741C44
-58ACC3D72A7E53B1F08C955F33EDC3A0DC3E7308270C0F7FF814B111459985733C62E8863625A551
-837952F3CBF32ADCFD9F345E14B585B23ECC440775310654DAF7F41E56FF45F89701292019A94BF3
-0EB2D65E14B1A1D6BF89D4CC43187ADADF3F6E03A90ED01E5D876BD3AA56E5EE84DBAA4DAD9824DE
-9984BD45AF96FB8A56C010B3C3A3C6139D58E9D69D9109DB18561B55EAD6452497840B9AE90C749C
-155B6329716F0152A7AD52DBD0B8A25B9995E1416681F38FDBDFA443879B5C4C25AA29E0DCC07DE8
-BB161C36D76EF286EC88D57C74BF44DBCB4FEFF771D3BD82C8F4E233357C48E516EFE3DB9E60EF16
-8E2C45B54651DF9A5ACB5F1790F7929BCB16CE5E9F6A43919AD287DBC8E12D9F9E97E5DBAA592879
-1A5A02D39D259F3CE273A870906A643CC18D86E23F115D2A35DE6926053D8C84B940B362E7DB183C
-4905060316B269223DAD309EB5AC96DEBA757BEA45FA3100F77F4765334EDF3D659E09BD1A5552DA
-492BE9174DD406F8353A059ECFEE3709422940A8C369919EE1F22F7C02412C995FE93DC4559D32A3
-155DD22D3526D89B16D9ADDC30CB7ADA6E52D62C5F2DFD142D4D7B6E066671EBAD08F54917E31704
-1F410CFD8A3243F8B39459C418B7B7C6494551C6F6753A94072D09E0D812351D62916383C6E061F3
-5ED864923002007E626089772D269B298DCA2CC1F25D9BE43FD8AD62D554C16AFEB7EF6E5DDA66D0
-5A810F003CDDCFD2C02FFF02BB61344968091F67D3862C1499409ECCA137B9A2A9BE314995B818AC
-CDAE27ED4AD583BE29DDE4E8C2400C5F8152C85709AD2A4737BAC768FEB70CE81A92C9657DDDB2D0
-BCF9169D272A063C75C150ADDFCBC2F5F2503DE3D13231AA8CFB396DB38E80197A605F6BC20EFA1E
-DE40CF424CF221218D51BEACE64A3DC88377E4F3EFE43DB4F4FC0803BF61764104CFF0B618C90311
-98B094E20B0FACFB94240B438B67BA298E31D3F4E31FD190E48BFCE27B1BE29D36E765E7D295E96E
-DCE09094FAC43B87E294818FDE9363FC7DC5EA36A1497EE25762D02DFA00A9BE53F87ABE62E52ED6
-F59818FDFCA643042EC13D670DED1980413950EE43372D31AE2694B83DDA42E1FBB049F7E7B7E69C
-93FFA3195A2462423DD2C022E5141783FFA07E192AEBC5070F08B23AEC9142EED56DA74F93BDB504
-78DA55DDD0A9987FEA131E4CCA0EFC51064E4B37632728261369C3FEDACA100F1AA78FB718ECE7A9
-F56296C5FB43781E63F36B0E1D34BB748EFF35E1953941F94D1A9B0FA474FD68B47183F2AC53A63F
-9F1D30B9B89C5FE54C3765B43DB403D57994701C133E42B950D9BB1CA202F15B5E590EE75598FAE4
-3D5CF1546572770BBA9A6373F100CDC61DB4E5EBBE0A93E0E51C86005E333F69110B1C8E492F2BF2
-52CADD5B73E7D3EBB53E759353F1EF3C9B8B39C230D13AB7158A5D92EE4C452F81F6DFC18803280A
-A023832FD0DCB482CE5AF615C952BC3F7E58F6417D69775FC7C0D5B405AAC632857736ACF32B2EE0
-F2A2C0F3B3CAD483C614505BE94706322F2A2830FC5AB592907D0291ED1873377E7A6158140C2CDB
-1B0E27EEC9CA50176102200992308045CCB5A169B61EA0546778B8D280737319046716604945A21F
-2A1CB9E15E3A5DB31E0FB5A3B0AFDFDF6F3424B7536D473F9756CA3694DEE4301FB1AB1AE47128F8
-D2B461C051C1B999DBB010E78DD13AFCBBA6F7D5226D540527F17881A18F551B3EEF76A7E28B4FDD
-879381A2217EF2FF9F9982E9EA70AD2003B862D7C36D57C5FF9FBEAAB56040FEE973EFC3B34D8319
-1960010110BA10694C17B7635AE03CC1CD087C0B05522A7A791F0CA34022A3F5860B536D9551BDFD
-BF560A07F63AA4E687407E5E48584E689591F1B52671213E430A708C06A34D2E1D51CFA6B328A122
-007C81B5EB263B967746961BCFC8772F8502DD95898724ABF369B0877F3313A167F3F714023C229C
-5757D4D46FCD9B4AFECD093DCABE52B78132CE9AB6225C9A344C4BF8D96F2C50C4272CB9AA0D606F
-013B2642F8C880E08EA2822C8CF5097D2CDB64932FE195ABD5FDF36D3BE123AEDD8BA2F82A8A628D
-BE3ED6129DC0FDC4BE50D5574AE4FECC65062E70F4703BFECB35EADE196294FE173EA57938679DBA
-6D15448FF44C0D1A903B202439DA93C0B0E612110068F8079219AA89F435E44D0464F54833BEB338
-670BD820D941DF4B31F51B895BEDF833F9C43CB7616DB80F988CE72FD3C12C7D49F740CF85B4766C
-0ED398EB837695D102DEC16E24B7475A0F5DDE88FBF2D6B94F126417C811E8362B9CCC52D8891C13
-C10937AACC228D621D4712CB9DE0BAB60EDE2A97E9292BE04E42E6D3425594DF56931A61E1F96172
-6AF6E6891D63B240E6E79E5BF30C052091D681BA1102409874CFD8EDC3EE2BE331676E31AC00F807
-91D1019BB789CA4F5907F4823B002AF3581448C352BB67D80FDFFCD1C5BEEF60523330AA2C045600
-8F62DEB55E69AC2F86369FAB1ECC90D2487954E61117A90D9269A65DFBDF297EBD29C3DD1F62755F
-8F289C42A534F59650685F8576EA2FC5D26B99B8E3DCD3F1FEEC73131000F99AA9868EA9BAC0B56D
-AE2CF46DA6CC1D18C0AB8D77BECFF7B89992175CBA2E22779C13DB9DF53FF5B1C8FE95E164997D94
-202C37175E562C8622989B075CDCDE173452C064274354D5DB8F7D5A78D48AD4A103B9E47500D08E
-DC7C51C1F3CFA7F43C3686A3C24A7EB5018B0F419961564F87E212CE0A0741AC68D6822C7AB9FD68
-85F5D0B2AC249CB7F50E2353CC4B0A6A24562F564FBBC7090C3FDF1284AB0EC615E0B3FBE132F315
-70C8A65C814F93910AA4BB80D516CB70D2E1D11969238E6F022D628FA2F33A0A15C4EF0CE7F753DF
-80A8AD9494885A1B9ADAE6C38AC9DA6FB0A61696AD3A502630252AD7B574C841117D34BD20BD6581
-217D977B35F5D04E02B933E1E84F5C090F6615AF484D63265D28517BA74BEA8876FDA332A84AEA12
-E6CD82B94AE10A778CD3A216ABC08495EF319F06AD6FF8ADD237D911F846A514FDBFAA8A1EC8E0AA
-9F80F11F1CE615519A4B044F3D1CF1A17D7F3D2174222A5FFA8B39F20197FF6CAF250B6ADBDBF519
-1C525070C8D38220FB501C223F493D80F498621A02EBCCD6EFE914F16B2A435D60C0A1A453E288A5
-3D818FE1EDCA7D55A26A017F2EE47A816E90D6C3FCDF0035EEA307DFB06D2BCCE43458A67354A4ED
-B6E5C57233DE4FBE41ED07EE5EC77A5DFADC4032138DA9E1B74428CAD02A913E40152F8063A774D4
-FDD4070E4B8A6C089F199AF7C529C277E902195DB760D81EC655DFFD1BB283F3C5AA8BB58F2476BC
-797B2892E94414ABBE96D4DB93E280CF7DE23EB852E7CA954D6682A6F1A4BE0507884C2A05AC863D
-2BA73F3B54668397B6C54DC2F4183130AB414875F3C3D8792BF7E5FC4D228DF87748BF0B14178DB7
-E3FFB7891D700A1E9520D778B095DA80E4801F53442D5C073EDEB706A5DB8466FFE7E701ABA9C364
-A37169F585C883A83713A61C9C3BD9336A667EA4E3DB5F4DF6BC6A552BE8D3EF093639EC67E5FF71
-8959F9902477F5AA894ED2D1CD312ED82EE417D95C49C96671B23FB0E1738E892ADFFE62EC1C3D4C
-BEB6CD089C98DE8D247DF7ED17DFA2959D3662F105E8386D75AD308480536959F8E6CF8F2C6937B0
-9F2E8137C811327D6B165ABE46C51834A955FE8306D10033F8C2A34667F13A8BA831CCF52C7A21C1
-3DB92F3E77B55CE291F6190BB1D194A33FD73151C3F61ABD2D8A0C9BDE90E796BD996D2D0094DB2B
-E98657E751BDEEFE8A43EE4501B98F0CC6D80805189438872A60047A8CAA9039893530A3E5F6BD75
-BB466B25165737C939AFF3EA59BFF4A7DB09C2A5B36B8A1F0C6C5E5870C7C9412589877EF44F8428
-4B8A53B5B74315CE72D2EAFC631BC4CC2E5B71DC958B5A6350CB5F615C3A4502E973622E3E18193B
-69572DEF1D02303A375ED60ABA1BC8A179FAA0F221A49078FE15AE13383585FB45FF4D5F3BB3D0F6
-D8BF62E9BD6BAB3C9A7D38C8A5AB0BE57ACDADCBD02B1DC7952D73AEF702D406F62719922BEA96B8
-FDC9B879708E794891C7A0A42F2CCD6812C3F4DB030B5178E3A627C3E77621D312CE4EBE815CD387
-7208FAD92761A5396B67E835222609F823728B1C987857CFEAAE21F2AD5EA9D841212993508091A4
-A2C268BF1D8DA1C650F6AB93995E7C13A3F84DB55748C626FD09C0DA1E3325CCB0BF091E996245BF
-51EB486680162BAE63B6513C74CE83B92359938439921950D713C69324A87BCE67B45A030C9CF10A
-DFA0A82781D49FF224AC57A23C6CB321F95915C5E14E41FA852F66E1E2044A9E7B1DC3BE9E818515
-D28B2C4D2F2210098C39557067062BA4239F2AAE28816D999955910298A450741947A9A1AABCBD8A
-FF3530626089978C87DFC73618C044731B6DB8007739A9699ABC354A6F985E03C11D750B8B9E9AE0
-5436205FAAD1B895B159E2C90562B82A62EA1A7FFB501767DCE2B11C51D55A17529EF5ADF0A0EE9A
-96D0E7E89F68E50EED813836531B4B46E9071E84AA413F4135CC882CE832BF78ECFA7CAB0C9F64EB
-92C86DFCD1152BB7D4AB33831AA0C139B555967F6346068D5C3351A7A4368EEBD2933E6B9F789DAF
-37EF536FCF965C397AF1B7F98AF864B301F3F440B7ACF704B59540453678FD6C1504519481893812
-3E2F47B265EC4F5CF2172D394543D84CD4281165CBEB11349B315A85DEB2D1699507B0C8C110C726
-62EA2959C4962FF093AA5EE6F21F89B3CCB0149CEFEF1855B9A48D28BB363416C015A1F4EA1975C3
-D8807F616C5817C8162536176F464A198EBEE6C97029F15F414275A39B8219128B8C8542E9483550
-7FC2D3908BB0EC375771280B9EBE87E827811418EF93E52EF70546891BFC0FB34969FD7DEA4CE752
-4D9EEFF2B46BED908C0FB2E02EFC1D1624642EAEA1CAC1EB4841E020532E88E59AC890E6C3F44734
-B99722E9816402D1D0FDF8045C5481EC055100836EBFB48E9FBC392143032C909853C9BA38A19363
-141BED09DAF02FDF4E7CC9808321CD0708A1B45270BFFCC3A0D7C27F7E781713D5DECE82C72ED303
-86B02D14575A1A6447547ECC7FAAC1BDFF332C92984758E242256C054656CDD2C45D46E67AEC6F83
-9F95D74E222A6EAE12EFAAB723A7C816D4E42D4ED2725A794743F67597F3DB8CCDDE45BAABC25726
-B851E02E56341EBE69E4D91F2A233583EC816F18A1DECBDA4AB69320F55E730617360FCFB8AC2D2B
-737675B406297F7F8C4BC370CB084C22BFEC5FEF02E9AB290282F7B153F0A4B1AE569F1E52371A43
-46A748DDE09336CAD1F5337FC3D7CF0677091E59480AB15021E023E356B0E1BAC6C6471AD53625C7
-0206C338536F4D0D40733AB217E2297F86B593717C61458B6C93A16027CC886A8CFDC01EF19C34C9
-A608B95A84B6A2E31454BC03C10FA55CDCB7B1EB7DC16AC1E93981A46DECD7E7F00638DCAC568744
-69A2D9B45CBC81398727E4ED3DB5DB31965F358D8179CBF934EE2C4D652C9CC211807F070C80E3A8
-222B4C31FFEC8DFB9EE07A94C973462254BC1B1581903EE6F9AD91524A787129A63FCE048B45BBE6
-855826750C586B6B23B805FEC3E7AAAC079576949A06F422FC2C826BDB78AE96135E9E2C20C2B2EF
-F6171D610B2EB8635ACAB7C5C5ED9C9FFC26CD54D2FD4CB9E4294E178CECA1E16CC8E3FC06518BD1
-6F4D63AE2B435753538834CDD9D8AE7DE624006CE688938031336351A6578C304C2E5480A3FCB43A
-8BEE4953DABC30558B7790C6E7A6F0F9FFA557C50417407AC6A0DDA1E736F7070BC89455FC293453
-3DB004AA9070734C8C2608A07330E421A0220DAB99F8A77489132F6413ADB9EA637F3B75948050E6
-67276A55BEB09D4153DC126BBDBE0DB9298AC799A943D72AFB769BFA1488D311BEB86A907EC9385A
-AE4F77835DFFE4389E3D9ADED1B08BBC2B1ED6084B3D1074A326CCBF38E06BD026919107BD03BD9C
-30470DB779508DFE0DC82DFFD2DED749E872EB7EB9DDF509D5319865070DD76846C34E4E43691AF4
-29AA40DB4BF2CDD50B275589987D8081F7C5A0461AA5D1455A660178A94A0BA0DCB69C3CEBF5EE04
-26D6534F6F919D9795AD6A0E1A1F452AF3B4CB2EA54D6011FA809132421D111EFC51174E223AB6A1
-3596411A9723079231B050CEDAE7659CF168C39AEA9C6902C2CD37D25492CEE00096EDD63DC7643B
-667FDFDE5B595DC54F0A72C2650E1E46990584C78A5CEF9BFC3C5F88CFB0C49CD6CADD9DBA675177
-D601927D75C6902B55AAED0E9E3CB52A577C887D581B3CE6201A1C77C9546CEE5A13B92963337F17
-070E2BF9F5C5E86B84225863874618AA50F4DE855DE567BF2AB7163944ED43DBD7F4BBC0E1623180
-7C43DCB47B2EB694E6FEDCFBE26194D2D9943A1BFE32AA1E5305F5E341EA021F91532162978DD1B8
-C5295A5E7551E2DEE46DC2347C6B32197AF430AF3BB676A53BCA9BD1EA88678377DC0A9A86E2AB6D
-E29E3E261BFD5573C66FB5687BA9C0544D894A759866B066E1DB5C66E60AE071CC3A1C4AE40197CD
-E4EC723F7B80137619DEDC99AF57A5497D6E03C1C9E672E74F48F6C213A3CFACF2699CAE72345A51
-C71C1D69348DE5BC5F443EC0EADE1E76A8A33066922CF3869E3C1D26A3B34E540DC08EA4DA2DDE3E
-EB17C16790DA4EF1A3A76D71D34B788A87838BF2A5A3DB8176F9C097D2320050A79EA6C4A94926DA
-11ABCDCD26DBA09FD33F30AEED977E8B5AD928F3967F607628859429DCB4ECEC7DA3411BE35A0385
-1017B535985632639D378CDCD13B00FE537A49FD9EB6DF1E3AAF5C41EBE35721FA6833C2FE08AA3C
-FFC3477E7FCEBF9EF9F4DAE62FF78F319481C3F1E72999C8A493EC6EE295316B58A5CD62FFAB62C8
-96E521B678342F04BCE1613CF7F6778CBF5227BA20504500D743270771953ACBD5C6586432F3FA6C
-0987BAD33B88BC6C15D29C4B3CC54A9DD72A2357AA5BAEB2CB057CDCE72DC80CC98C62B16AC50B4C
-6A7641379B766CDDF990DBB2FC7F9CDBBA755B6E3DEA438FD6699C30A99A8B3178E6D613AA938120
-835E517431D28114BCA1AB745C11FE6E52ADB82B9D3D53A33BCC49740C93017D9531ECF43831359C
-5C93CB0E926DB440B139E3125CC2E069B1CF6D96EF68407F32DB517242C3AE0BC6723E560B0F45FC
-7F87A5E44E1751C8B7F9F669C24AD5CF16F84FB03BA121B86B0694234D8F2C9C947269AF96FCA08A
-78F736E4E04ACEA44C5BAAFDE360FCD8BA6A59724CA86160A5527FD564468123D302DB45173C1B21
-6B01DC5B6D3415B13FBDBBD3121A5493374B3357EFB131CABFE5087AA1D2C7472B0377066B3632C8
-2073C6A846285CC953A8F28E131CF587B35217EE498D9A1DB57B063CE068DAF55D8CC1771C0C3099
-9CA4FDC5D67BE4E7E69418F6334BC6149000821B89A7437CCDF9A6A0ED702D5968F1E04F7E4FE9FE
-C9D1E994885CB624035BBC5426CB8EDF0456828F8EEE75BE491B45FAC192A405EBA25CAA4F4C66C0
-DC234D7B417628DA5276C08260BE512B2432256C401A66E3B583E69D23E9FD278CD5F2178544D054
-16B9B4F61A88A4728AF2CEED07C08E207F31D644E8E3BA1E4E2F9D8E30936BCB9C6AEB54E37DB46B
-D64F2ECC1021336D0564DF0F18E5A6B6BA470233D8D41FDD9D1079706EA685B6D8A740570BFB78E3
-984BB155C3155C69BCCCB41CB51975EEA1C1B4294CB546CFB03DC31BF86EC3BCB1977E8F94A771CA
-B09DE12A82F1D6C791FA7800E5A21DF81C9C8FCDA78622ABE75B54AEEA747AA4F26D563200992E33
-7231A430137C720A17D44F3AD6CFFE63B2DE12D3184BD3E151F955786B8DDCCCB290C42718F3A219
-1759DF76371C2FC177544A6C425CAB14AAAB31628A9CF9D71B5257AFF0D59843989CF0D747375A26
-DC9ED29B66AC2147DA0168306C48C2484C70CA92F33C0C138F92F276F5EAF5EA3082A8A1CB12DB66
-1633C2F71E3B69918F509060AC949FCD52C36498A2ABB77D139DF1EB33E3B846A7C1BBDCEF5DEECA
-4EF0AD250CEA9C2751E13EF7681E8FAE0491CFA6C144DBAC1FC39D39E76EB12D3EE9CA159AA77D27
-94F0C433345B135BA632F544082BBDC9471E9FA3AED3A7D465AB7158E8AC97F68B1FBC8D368E2350
-45C18EFCCADEE98778D894D96301F903283C5AE355A863BB0DC5809158F7E108662D04A5C1234915
-E7BD5B4C30F9EFA55E702E54F87FCA06FB321507BC57A1E55CC117E21AA4E3A4DFB77C1A949EFE36
-6D93F2BD827EF8CC16D387CA82AC039F77FE995BE6D9AEFC87F8D809E90C1017803BCFA1C737DAD5
-F1A631EBE6894AD20C70791665E7BC71F21C2C3F4462F60FDE75C8A377CF49BE99314663C6ECB538
-B1BF021B2F2174D2B22CF6FAD115EB0ECE8A2E64097A5FB0A2AF666E1EE13276AEC59FD0C9D4BFF2
-3F71E835984E5EEEE36490C54E077AD7355DBC98BDD37DF29B3DDF8C55480B7349C4D17322418705
-796A8C521FFF920DD11773FC44FC631C7D6E9B420D7965D7F62EC7385F2BE30A51E2D796483134F8
-40AEC71FA19ED1272C27F98F2CDC9C7E54DAB585AC1703ED08F5F9E825564902EFD08EDF99DFD494
-44C21FA6BE16CB8A1B6D0C8A5ABF80A50BB8D055483176FD0AA07EBAEAD88FD694F96FEBD60751E5
-C4D8F9BC747D4F4030BCDF9B0370B7A5E0A6923FF60DEA16EF47F886F10CCEE6956ECF41A21F7C59
-6F3BC78299A9657266807E01762B2B2878E551914CA312C2A68D34CD91E4F5115EA1FBE801346E14
-AE529049089B6B0273E258785773A9CE8E4B6C4211CB7C2767319576758F811CBAF3A3FFB41B3130
-6C49F3798B698A47BFA2E3CA0251C4D90C0B02ACA28C611744526906791D9E157E54CE4E1BCF5B68
-6990BA8AB7897D624EF00EAB92CBAC255AE9177DA9F0D86447D35B452CD2F337147B5D3EBBF2B952
-35778A72914EB3707EA78294B3A3BC4ACB19FE87C72AA1D982E4B822F07B115CADF4D3E7EE3D1BA7
-08653BEC6F0A352A0C33252ED0630E7274961896D461EE8BF523D5911BAC1C8AC763E5FB11FDD217
-4E1F129675969C195476C7A5E18A81BF9A11ED9F2336D5301E3BD32174ED5C933E8C85D6272EA218
-52A6F7E2AAB174E0965F73E0EF89E906BAFB181DBCF8B1F5AA0C12D12C6272753C016AFEC2EC9F95
-41B8757874D6F2E061ABBE8B29281677246305B3C41E90418426C575BAA216CEE3C5EC29B2FDEE1C
-77C14FDF940792F48A56AE80AA33E370B037CB28A7373F882022AF378F26B6006A049FD3B35074A8
-65C97D153352ACC156992C00DE26AD21C982C71F0EDCFEB61593BB40FA5F2CEBF23C4FF34A4F4BDB
-73CA273C269242D1C6117262B7C47771F2619FE5710855134A80FA8F92BB2425CF88940CA3450F81
-234ABF2B11775929B12CFF86442B2AA0F4243D324A5983E5D1829775B3C7A111D5622D1C4E2B2A2F
-982FC8A95F789881416DCB34950A393F4F1720D2212F3D343A17683060182355DE9E4718506D76C9
-184F8DAC55788D7E603CFAF4907DDE965A49C323DFF425FE88C09AA4A4D16283F9B14AB9EF1BB885
-A954034710B4A9DA4C88A8A0932B18D139A687303EE562EC9F656F12F3E8F27DAA9C75DB0FA946FD
-0E1A982BB58E040BFC0A49A4AD8CD668493FCB573C849EC5474049A693CBEBD4D79AC7515047CC34
-7A9A7570C90861F3ECFB57B9F53AB9C0D6B05C8C570A8F3C04D58555A45524C98FF091B8F8A422F2
-E0E9E5A7B7FF69F1CEFC13E42F1CA276BCD584516D266BA6838D5E9CA9E9854F50C7D92CAED61AAC
-AF758A7C7BE59C3BAA82BF32B691ACA3E8EB171E08AD22C39FBE586A54E6E4DE2CD86B31138546BB
-8DA5834B2C6E4838547A1B67E651964E43988C8036931088904BBB589CA901E7EBBC094C0DA81E09
-1915D9E46828AD8596FD0FCA39FF12A6C27A359337F973809E81B2E9E3D43B3146F2516667E607FF
-EB9AC80FC95A7B7D4DED551FEE0F3561C70DB2D69ABA96673E39E3397F1C3F8FE5F48BAB8AD6E0ED
-8901F90F6CFF24E80CB5DCAC498506C4D01033E497C1241E413B022227A3264DA68BC3F91B35781F
-A2D018475C199F43CBA7D3A0D5697B45321BAD2C394B207136E1E16B41794975E8903EF2B2E1C33F
-87CF72C325C11EC0B92FD3890ACDF60B521DA32596763BDFCDCA837ADC6F26F129B23CA32F9CD39B
-33E64576970DF3C05B8DCA4BFE2F17E6C5678B84D69494F1DBA9FE0446AE6AFEAA1FF245C07916C7
-B7569E6267C42B459435A1D116CEC665B311E404171774C0ACC8DDE96B0D9167C8CC7D99C4240559
-2D745C4428755500EB4719340D2FC6BC215B67823F69FA949C08B5EC985D7AA87C9AC1F9BCC8994C
-6CBCE6027B7D1E0C22A83A5DE61DBA05D4AF6884C95F46BA7F253E0B2337E312916E163CAF9DB2EC
-56C5425990FE73EE53E42B3BCCA1CF642F02B0C5ABD529B568E9ADFF865B9DC190240AD78AD226ED
-884BED3C285B4CB0E3929E805C67F1318D186504D92085764B70DE6AB5AB6990F181BDA50FC31262
-348D980EC76608CF08176C2502E065AC2D8EA5CF9E2D44E2B70A7DDC7B922047C471DF8A0B2087D1
-106B5BD8A830EC0E53223CE3C96EF56E5541191167860EEA58D696EC357EC55799438C90156BBF2B
-13A0D5C9EE93227746654ED73EA5B9CAB61DAC5BC690F89C87FECAF9AD03BD39E438F43B81D39E07
-E0422F94E8B096AB38C88BC2E1A043811D8141C1A35DD3A6DBE41620E83C8ED3A379CD80D4F9BC30
-41BB44B933DACA7C5D4427AE94A176829F24B5968B713431CB8BD9F53080832C6B784CEA9B515687
-F121983EB9D9C9CE8BD4FA3BEC48AFE64E643B7BD86D8383D07521FE5D091392BE124CCC91113604
-3824B686988E7C83AEBF406D2DA88FD952D0FA9327F4AD04C55FEDBFBFA76ECAE8A176C516479AE1
-467125B7EB3C9E7C5B103BC0C470946346DF271F8EE19DF7E3FF7478C35EE059297F4BF21A5C7B95
-993BE6202E897776952A7ED0613A5CACAFA731FFC633CAB62963150E86EDAC796026CE02EB235B9F
-7A54E0B0C5281567138A612BAFE409A818C216DA8EAC5EDF9D1E3A1E3514AE50735A111B4D2AA083
-4EC6C11E290D58FF340F82F0E079F1C7B3566F2336EAA45BF72BCF88569988DB5F65D4C1E59B50F3
-41E45A899656A0B522847ED567B49CD5284FE50E5F8652CDAC1C076804F2B2185F6A51ED19DD4941
-2E65A0D2DBC844B75E2DF71B009776D9F97A4C6F786EFFEB87A307FB6B912BB659DC2BCC6D509A9F
-BDE87DE8D716040A8551B6CCFB7743978AD992D14D2B85CA052E87326138DB196C24593F8F7ECD6F
-486F85D1666B9DE2ACA6C7900044EE369D223524664A2790B773F9EA26E0A4CDFD709942A44298B8
-249506EB9B77BC887DC0EF947DDDC7CB3CFC6B48F060DBF032A11884E6C226D9D447A5A458CBA325
-D57E144C6DC295262763E7BB8FF6A0CA473EB7661C12E0E8E23EA37E8AB3387B9E54686F3E57765D
-4067E521BC1AFAE52394227793C737C19208803F2F2DA920B553E2AAF94EB992AB17E31B58C15CC4
-AA8A1B444DF5B3E7CD937CF03E1F7FAC63342731B4589F16939D16E8E497A74CDE5686F529E9495E
-1603D74875288CF53271DB9313A4511B104F80B179FCF213558970A002E945281BF3AE51E668DD6D
-13D9E85152747F562CA0B75DDEC8FE9FE31F8D05B0F59E802888A7A4F19B29954A31108D2F041367
-DEBD6AA1CAD856BDD1427E9EFE89956FE28D500CDC6A0CB80A76902A08D0BC6705583243F1DD8020
-749B257EDF4803BCAA653F7FD6D8B91690995BA5EA3EE92FCD367C11601C6B8ADCEDCE67B16C596C
-5D200693AC5FA15D4CC6CE9DF7A71C8A925E99F5085313D60FAD25C1BBAAD28D4AC2B69062D68F39
-0530A976319A3904CEE44DC9451E441AAB4780425440F8C499B81460B5D3E268974145117ED843B1
-71BB14AA84C3A084A7D8E07B9979260675D5CE6534DC176DDB60DDE90F6A3674F67462EF78195F8D
-FF74FB5882B079DEE31FE92816F16CE1A70D07752EA25FAF5000ADF79BBE7D17EB1BD2F9BF6CDBB6
-F078CAF97986442680A8FC4121866F9CE86C385DE34E30D8B9768A0136D9EEF79A4B38EE99CBB9A4
-D32316564C9D56996E2595753EA71BEF684834FD030D38BB100E2332B026B046316A53270A96DAB2
-182E994E91262FB03D1AFFBAD623F1689228409884F91DBA153030870A7BEB2C7EE2DEC51875B137
-33B7929041F8D23A94904BD54DD4BC9B432DD0C78DD81639F46D686FFAD39AAFBD1B6C1A37E248CE
-48F23E12464D5379B4AED0D50B5A41577E6ECB75270E9AD3EA7D0FC09DAB271FB18B51DCFC0069F1
-5D72546E6C51049F3425AD005F88FD7F02042DABE9F097F9D6A076B30D8CD777B1EC12BD163FDABA
-5972EAA61E3C87E9AC007A052B1A3FFE14D7D43C7A0ADC89B1DD4CB4F9C762A84A6C0701494B2D8C
-4E4E1A9245738BE4111805C2F153A20ED9FECF2DCF4C8F7C3BAF84D60454A7403D4F5F81C6404173
-A7BA81BB0CEAECFD493D877465DC5735D43E3102CEC57B8A589182FC65A4704661A9E351FCCBC731
-5A87E62F65D24EEB9CEE979C6E10DBCF5C162ADB926EC8CC9BFFE381F6B8A3AC0A19D1631BEA2938
-731AFC99E8EAA39BC75DDB3A39D01AD8F0BC1838F4D674B9BEE9F6F7BE4D9C8BD97E8D171EFF330C
-15B76614A1FFD25B3BE19E4A201BCC850F926ED51616318C965AD2F0E56F9433B1247C6D5B72EDF3
-D408A3E0674A509BF30BE813A5E669D72B978794683CA8B85E3469EACB167C30F7666DB5E081B81E
-E99ECFBC1704B9646B1A29E4A4CE5654CA8409ADD60145DFC54225BDB8485E39CC98CBC3F38FD0A7
-97E5DFC2099452A2418C6636BD2D5F6B24345ACFA65F4E7DBD2D0AA0C1776A4920B4466C509BB5BC
-7D6627946C4DCB38A27098B7B5BEEDC2B3BA18F927077F71E38644597719652037621BB350BB5369
-DCCC073954026E6438FD8393DDB3630C4473F06D9FB9E422E435566C396B12FDCD5605DFEA232171
-CD8EF298786806E9159B84599C26D4C7D8C3BB064665CDD072E2083190372AA808B2268B3FEC8878
-B6420CA829BCF995DC20E067EE6B8E44D2869D51BA3AEDD1763F7F8D2CFB8EC41E6E9E0129DE5343
-1457960CC51D546B10B8B6CE08A1C2B79FBA448DF9783D815608A16C55E589DCD8EF6B04C66232F4
-7A473973A35618000D79B8173258B7365C9691DDFE47B16EEB08B28F881828B946FB5D6FE10ECC6A
-FC4EA1F762E90B3320403382E42AF4885B183AA48DB5E4DFC9A54E0B4FFBF7C26EB17A4F13B4BB93
-12234434FFF05549E7587BA0373ACB3E31418BFAF400D8938FC6466B94273D1735306AB912AAB13E
-31DA3541C1733E2A7E4DA5B82767D37F3084AA7A7C488CDCA7ABEF77D19E42B4448ABBD346E9BC28
-8ABC4540C0A1CFD0BF46C5BC7454B25E27E9906A3E6CBF678BFECAD1B19B4E42398A210CD567EC35
-FB115D5C0DF0EEECE593982056B0E1D14C292F70B3E049984F8881C8B477956AD3140B4AA22256DA
-AC0D11C4126808B5B9F922BCC5F24A77FF352E2C621A3941AC07A20E550A69C49B1B87D116EE6F2F
-970918F0F1A501166AC4423FC212E4EC8039AC7F9C212D864F418CBB92948FBD588228108FAC1AD1
-837070512305C110F0FC3FAFE6E1529C2BD0DDE868A9EBE5137DFDFC5C12A3D08014BF0EE27B1080
-02AAD6B607F5C5C0F1B1EED3C552919C9A2E97204A8127F97B1066607ECFB47BA95EF2B51F007C29
-3B2F6A63041A9C1120D9CFCD5357222E5B02DFC73CF94CF9B5CB00EAF073E9BF253E30E09B50341E
-57BF245A746EA31BFFD0B00201C34CF0881BBD1006BC9BA7D420A48E53686B598BEDB3449924EBA5
-8D5DB1B1B01AE2BA281D5758C99EFE38ADCE18F7B182FBD0D0622A6EA497A4E7C00C7D17299A2765
-EFD8DE376C214D01A21819451FC04A0277EC84A151FF93903D61C78AB7886911E36E12526ED855AB
-43F6289C1890222602B8EFBF15782B374AC1E580B6E963403D6D15A051DB8558F2E61C0B9476C6DE
-5D4861585CF515CE951732F20D32969F39192FBF1690D242AC04D47E0C53D467D0FE4656B9526C0F
-7F852348B0437737CB0F29ECF9B54A5E17185236DD0C16349C3496F3ABA569EA20E343F6D771210C
-39DC932DC65ECEF94575C6E76902CDF6C8C8361F9C757A2577DA535187FD526699917CFE0AD438C2
-A758727B306BC7979547E68B94E87ED820614BDBC649D469EF6B4E4E3DD2EAEB5F80B22FE576CED2
-56495467C76A75F589460061E03F3A1B065121A5ABE3E2C51148B3DDC9F624C97889AAF7FB84B158
-C015EDA5670746C6359D27B0C2BD65144F2B88A64331816DA904572BE398E015A9924218B3EEF951
-23AABFC3AC8217B7B4F691219A1C9DD0A3EDD5C04E63ACBDE71B423522532561F4B71B7028415C34
-37E346BE728A415596AB749015C1D59BD8328E39A850CB98085B34B57FB52DD1D154F98FEC49B3AE
-BFCB1672762E4D2A1ECF02787F59DF1EBF2625C3631BED849B298C6D226BE4E6EA2AB66A287D2BA9
-2A6C9C612A5F849B3CB3C25F17164BE286F6E4F5E7E4C9EB17BC68AA5EF0190B64696A570442E1D9
-BDD1A30E7692524E30E4B4C3DF84481DCEC6E10E7308E65DE9D90099F3FABB3F4F766BB86CC98594
-6D2003E21287761A7386CD8461615B570BDA015F5EFA23D18E83C325EE444EC166A1A32D9818C2A6
-5A092D44156C06D3FD079B92450B8A491CBB3529DDAC7D95AFE8EAF33777FBB265FEB8A4B9AFF2CE
-CEFFF49AFBDCF6C4197497D3B448866D70EF28D8E4B17E7CE95F43F64BB48C4A73EB84B26650F62D
-3E5199D64DB0B5B87702650ED0B850FD5D16C848D096E4C7E61BC63B2A3ECFC099CD713E12C91A65
-77A88D6F55D348617C7A49890A86EA8FE2045704B5ED529DB128C9B19EE129E5FE6498CC97087F6B
-DE96007C9D01CE9CAF75646E5A5B32BFEAD9362A52223D746943A2D09C536CFAF78E601BC2D2F0B7
-63AD722E3A7AE7069D65F9F2BDED7278511D0120F5EA071D41A69F8C2A2D720D3B24B4BE61C83FFB
-EFFAE21B0560A6FD1A44E53E42E0D10E0E93F421A8A7E167BB65F0D7F1DDE2809FA3CDFD931CCC69
-B119C83238C1C00EC100D8E7AB1C7FB02EDE97073C8A5860371A8132BE391EB1C397B61F93876FEB
-438C288EF2E38DDCD182A5CFBBA994A94A1BF818312CD8234215FCCD7C240A15AC01A885E1179E5D
-7D6305DC2F534BAA141F25EA6A5F356486E5FA0AE3C6980A9F5E8E99E7AE5B95AC42977510970245
-4FC951E4319AE4B1DDC9B07D0998372C0A95ABA6985A4DBE6DC633154FAA30ACE689D36A7F17011B
-F29CEDC58A6692A8B3B0A5742E6CEC2F69B255BCEDA762DEE72F125EBA98891CFF4D88AAC14188A1
-8D81424979C9079E44890D94EE094D4CADDC1C7AC5F6791FAB8849CC0240A579ABD800EFE3AA4EE2
-F78119A3C2806C05C2B1F17940BE73984982D1C0065433A9BD658EA31AC819DA9A11B87475BB565C
-C294B6F302FE3F7752ED9B963C5279B5F1196762D0E12E6DA46FF9A0CADE3876D7DF695D8965CB4B
-47B351FA3F759811269376B2C3134403633FDE27C9B024F6BA81F3E1699CF64A426618428BA6C326
-6BF016C5DAA5FA4CC82FB6DC23FF2D742160518CD3A65ADB38E53F1067076CA1625466E0C64670A1
-564A54CE14DC5C57D24A12283FBCBFFD0FD594AC2A56EE58B552F7586825E4FB1EC23F8221711692
-C8C56F42272B87EBFF3865191F1C11943BB76D8C0CFC53ED452AE49404D2C8193ECC2A7BB8CFBF24
-870ABA38D2CCF7869E9363DC0AD94FACAED5922B324DC3B6FE83E7B34FE29ABC1EAD62B49FFBCB81
-1ADBB5148D5AC2743E3A058386036FADAB6FF071BC1C3B8023F908B6FF48DB0AB1C9C67487C35211
-D40995E1892C8B66AD6C9C6203F6F8B513B11117B10DA8725AB45B4437B5A88A96AF3178D856D601
-196E8162868A83DA64E408FDDEBD14D6591881EA652032CF2F88B3FD6C0479C8F89AC68D14D01AF0
-CEAFD95AD146E68FAE01A07F39E7A0C5E4FFA6D6A91D710827CA5ACFE7D1F946A8D7B67621D60F53
-41F32C12A6EFB03AE5AC5373A382C044A276F6B41C173D0AAAAE0C1DE4C3CC71EC2637225CCBFBD4
-5EAB92BF39357C57195B410F74283585B12B926438AC72AFADAAD2D0FA2CCA728C8E86BD3FE75D47
-B8BEB96AB13B5480F7A3D5741EB51E3E40C21FF2ED7D9221D9877C7D1A8CECF394E4023FCF8C4EFD
-B38B839499FF5CD96A46AB4FDB46F35D3B48B91757C0159328120E93CF1F2739E936E28908FB1947
-1D3AD7F6F1AD2BD1EC364986A411CC1B547D0CA104FBC10B1CA7B638A60E75485574034561DB345D
-DA68415146AAC632DFA34769B6ED7D7D4694E92CBFF4EFB16B55495908102E85E827FC623CF1BBE6
-A13CBF64E878E1A2A159948B5529B75E071744A5F0E50DF18C110B0AF117CE7F33F8C959D4C98CED
-5A9D492AE6F56DA57B0F17495DACB130660BCEFB064FD8309D965ABE8D2BE98F6898C1B7A39CBBE3
-E75DA0FFEF6CC3945CE76DA3BE915546FE8A5310130AE0ACAA9AB73C7E041C00533B4BC7724657AA
-649B9388B791AAC5EABFCDDDEA2CC67A0FD0AE9BE37DF9AD40636538EE55A83F60E9E026C64FBD8B
-220CEB46E67410144A520FCEACA252E8165448F84D8EA083C793AD09B90B3EE83B73FEFC3365C729
-E3C738894B8C01C2F8AEE0CC8B114E1175EFB44CC4C6CEF5C8754B1CC7CEC200AD8BF1189D741CB7
-5BCA4E88BE959E32216AD33F674F49AB20A354CF3969F1611A95D3934E148831AE7C81A7EBE3C524
-4F743E66A82E10D16CC09F8194EA7A596BC5981D833318AB4F7DBF2ABCE543E410B649D18D146F01
-486159683DF61A3F880F9B21EBFAB77E908C6CFC79F89BA5F51114F0BF7C3CCEC7BF0F3B057C3195
-CFBA6908E31E0DF10DF69163C9DA7BABC00E9A580FA7FAC202910615BD479BBF76FB8068630D1EC2
-1CD2926D351E869E16C2CF1E023CF04D4FC61607DAEFEEEDFF5593E6023492F00029E2AE4B4A2C14
-50954EFA2792F32B4934A768F892171245A1E2F034E2B9F39833F1B331A19A386BAACFEC8C929BA6
-B67CD8922BBC9DC005EC3976575D5B0508D0717C6BF11123EA36D8FD37FA77A6F1F5AA84D4AD8D25
-B2C11D1877A6E2F9B74F3B5829FAEFD4F7209CE9785AA6FDE68672554A6F29D8BF03FE108ED90A7F
-58690FAC399A8AD3A26899072B832874DDB629581A51B3325CD9EDFD49E890EA8959DB937DAB83C7
-77F2A426B967AF5888C33A3635B78D647AD6BA441E222C958EA58D61945F781D7EF409771B89B202
-42AD7D07C2EF592CBF413C5FC89EC30FC9EBEE4BC63709AE33B65EE3091CECBE610B847E12C556A2
-79C8B114C3E460822D3330ADFD72BD69F54C08A81848C2002A08326CF3B09B1305490D35AEE59179
-08E1604ECE75BBE811A715AE8AF7EA9C371B322D0428EDF4C893FDEA607E70E1B6F6614947326101
-EAEF18E29BE0557D2A92CF1FC1505E8B434BC368CE07CCAABC0774F8A63E1073FBBCEB3F4052462A
-A9008A1E53F188C9EAE339FABA74AFD6D60F47282CD9FF721F64BD51787F3C13B5A6C5A5F7861171
-0111F5E0471E206D72520F1DFA465F4A23C71DCF99A04CEEF11B0E3BDFC35B7461A60753D3AC26DC
-50A5956C9195A4F5226388E0953DDD03AF128A98F03BDFA0602CBBAA20AB9ECCDF7255962A332E16
-D4380762E498FDA4885C64FF5F9B480DA487C58E78943DF62616E6E2C69EEC8836DFCFA9EBF58938
-A878F3E792E8BD8C5D6DF557A5D82018DBAE1CA9C64BA5AF8E21BE1B6680FC5DB22422220B776E9B
-A0BF1ED2B7212F8BF111EC8C8C77B223C05EB5E5F1CFABD2D037F4BA0F9503E2CD83F4519D180476
-63F09E308883F5DA5228F83045FF41214D2273B2FE0A9017D5E0557BC2A198C35D1E7E81F7965444
-5760CBA1D3F05EA4B90658E53FDF0823BDB1501ED51DA75C47395073D8980D1E3504E3F67DB3259E
-4EE73A87CFD96F84E221796573958D364A51E635FC55478C9CBF9AEA16B7D8C25F2115CFE4B7F598
-54E24968833BA0D64D1D332A666DFA2A3FD71B05A26BAB7DA382907B13DE0B80871DF184D3622B62
-3D7E09BC32A4F6EA2E6DA450A906EAD36D53FDEC7F83E101FEF32F4FAEC581B000686D86A0D3861C
-1E67F18A4C4647F51F978484D9E3100B37BE9D20AE84C085461C1FBF929C669E936659050C2627AC
-1B019837BAA75757F5B0A82E8AE9CF2111931A38BFC94744E2FDE3F8710342AC615286E4ACE7F269
-743AA05463AF537D9416230ECCA859D8C99B7C6E70BE7FE11DB698589BE9E11900C8E9582A4EF5EA
-94B5F62820C90DBC022A620EC536E06CB8BE7526A789996D0E741AAD980880A33800A6FE92286CCD
-02C9CB407EB31FB95D9C9F4AFF38B37087AC582C1F7B64A7C3D2202BDD62E9AEB31BCA85C4CF323F
-03DA9D318B91F78FDC0D266630F7444ED068B55C05461C97552366A82C2E743CEC353D51028FDCF5
-403B3B74D379B82EB69C4380ED40239E15A86B2E5C860891E26781CC111FB5705E3B7C7AF1946006
-54B5FA1B5FC54FD0BA43666E7BABD2C91C859F393ED49F7123EDFB648A3D6152F2C17F7E438C0A63
-8968AC06B4FB3F77F64F358AE063820BD33F0213C85C40E4D97ED100EC2DA1C2E1EA258BF107AF67
-5A9D995F60BFA37222B9C2B325C0052BB8537D2B27DD43A129C7E8FF42757B3AC9B447703D382108
-DA520B8B3BB3E8C7295B776B44ED28F863B8E1F81B0BD1DAEE8A171525D09D2620C04DD3219D880C
-2ECC79282DD7B1772A9CBBCA706909AE8BC7798E6EC7375189B6CFCE8A875849176E5913B85A18FB
-197A33CA4B5B4058603CF1FA79A56856B43D538E9ECE117D99AFA73B57E307364F553644DE01EDB4
-6234EFAC13046B6E047ECC8F63942F20097AD7ACF0A45C0501A95263DE9439A880D6B5C5214D2918
-0A54D7FE9B2E627EF49E189B59FCC78745E878E45B46C0A648955D3EA8C935113D94F92EC963F66C
-F3CF3A526BA71CDF3CD4CA69EFAB08B7389E3390716892A4872BD29DC1E0889A42D7FFB4190E9A8D
-05D84EB9C5741BE6B02716BC75E0106F5F94BD3778BE985E03860D27E44088C3CB2A059DEBC420DC
-E3A8F4087A9548485E616C409AC400DD1C411CE4B6A229D091B253EB68F06E43511EC5AA6ECA4D6E
-4818D6AA2068DA1AEFCA377611BFA816B5215182432D5683294D67A7C1FD76C52233087CA44943EC
-7280005E93145F5E7AE50100C18364E1B36741E9647C4DC1F68A58EC44095920FDCF05532F603717
-80F78420077EF5C24D63E26040CDDFF8DFD65D871DB943F50CDE84900C1372EF33FD8AB9889C82F9
-4F61A0E6842219A0F39EC7B232CBF802C4A744F33159432E827006C7CA77E480A48A9B0E6A876158
-8A3102E3F98A77BBD62A3A23150FD140D3941773BF7CBBA2338FF37B9EB640558A2313E8824E8E62
-0331568A9B76F4897198A709F9313F4AC40827D8C3A71F2ABFF02BFD57D30D0B14012FB5C39B85AF
-540DDA0ADC27A85B31694E8D7B61F9D9B476571022D98F2D768246550A877293F3FF6ED918A498D6
-A600223E1A61890C49ACFB60265867CE9464F9C32C59E94F7641C3873FB4FA6EB237F8ED94579957
-270D6FD640BD9543E683F2372CCD7B60AAD269E03A72C5CDB732B128818D41A6DDD2BC139F7D3911
-F48E1B1D263DD4AE8E4CE1A686F3A00A2CBF48978631CD243566E22E68F8D7397134A3530EA3745E
-4F1EACB4D6A5FD84C3011094F37573F7F9902305020C53926716D4780C6B0A257BF711AD94C83F1D
-41A02C1C7DD203A3E6E4B14EDA2FDBB36B063A3E074495F626B0EEA146D22AC33457F44F41675967
-6D2A0566EC2B726D2F0540ABF225339F02F406D4E7A62E5233DDF20AE7C86CA0CDD561F33C422654
-BF2DC3685CA91BB9D4B09AC8B15A24A99FF56E2894F11F7BB4728FE8F0F5B799F74F475D2D01F61B
-7E9E0E541F7FEB8A557486D7DF2CE50927515D833BCAA1CD9BF7A650BEE9E003A5951C98ED147C4C
-52F64F692AB281984EE65A47E44A4A5FA93D6F18D276D3B01C5E5F6135AC6940524CD713DF4077FB
-4943E8AC927A68489EA52ACF7A854393CD027EB52EA2DC6234EF034F3DC742D6DB5A67FC21D22B97
-146B9C268BA97C30161CE01EDC69A6A1F05EFB0E06F22644E1A368F0E2C0C6C1C832878E0614B74B
-D645F5CB293CFDB7618B837FFF14A1210AA061C8C81867244305B80DAA73CB25A417228E9559E7BD
-52C119B0CCDB7C4DCE7E1B9F7E8EBBCB575E5BD213BDD6DB88769DACB05E5870232F0EF82F448559
-187423409EEF756BA6247493BE24CB1879B5DD822E03D0ADEA1EDBDD83D3FC46759C679B921F0616
-F27212903F728AB44C1784E8A7DCED0DF5625A7D3F48A20FCA34008184CECD145CCD98E31B79E174
-CF107E8F35C40C19D86B40BAEE6164353408801EDF75A619FFC5B6FAF3F3A95F64795CC40C1F8963
-4FD8C13852D265FBCEF834C800AB46E3E8167476B23CDD8AFF6E2F997C99A86A9CB30EF8C853154D
-0D89EEE9B9CDC1B4F27BDA32432A4173B55CA8D9FB50ACB2D886AD8E5862FFD5DFF224BA13C8B8A5
-4A7F1A9F987FBBDBC5A3C3D762A5BE309D5D926AE5093C40AA47B3B1BD828797CBB9BC9FEC9D19EE
-A73D2A39764816113A8EDC6CFA6E605AD578FC8E30ABD600658A49ABCD5AC54655D29C50FDB72070
-169D1B389F114B7C71EF95A80D82AB537AC8C165D47371FC142A51625029A990A577EB1618480D72
-6DA93C98E5C5F24F622A850CDD94BADAEA91D4BC32CD50CE69E9F00E77DEA8EC1D37916398FB7092
-402605359DF08AFE7B99C76C2A7C70383F28A7C000C696F45291BB8F074791798197CAFF1544C76C
-EEA8C9E6D76EDCBD92A86DF889481F3BBFF0865442264F0EA40D3CAA69AE467A08003F9C30FF7F2B
-77E767580575398462D5B1171DD441D8986F33BC7BDA17D413EBB6B7A32642E33F20B284BF3EDED0
-02352FC66C6F7741A542155F4A159CD778BE56B9492CD95115C1A06189A216CFD2E6725965A13DE9
-73765A05114D9A5A4BE0615AF8BF6A5EAFF84468B849954D15BEAE1CDD57C435788B331905C01421
-B50F20B184506A0BEF746330BC98E9C89AAA8F9D102F158043BEB6A682059A1C8B8CF67B2F3D7AF4
-D8BBE086254CDE53765E3226BA2F95AE8063649F9F94BD9519411DAF8A0287307335668190638806
-E29484A4FFBC1E46B1800E03B162C23B1DC0B4C0DD3C7ABED2F00762972EF06EEB9BCDC7B3F39C70
-BE32789D366F073AC3280C273DFF2979507671B3E1E7685A9A4F0FD3867F96DD675BF05F25ED986A
-79249B75F182FD73CDA2A6A66D693E4CC5AFE3402431B2C816DA1486C34BC9DCA4E2D51C868688A7
-787CD10ABB9ACA14B7181369DE89913CD8FAB58FC84519EA2AA14E54B7A8CE474F213E07CF2DE2E8
-88093DEEC937526816B71C96ED75FA9E2EDC0F9E6E84569C12BB8E39AAEDBF546630745553D6084F
-F9524FEC6A7264F88CEB7EC3358E923B392474E3A48865564431662988FEA768CE555AB0DA48BD52
-6A84B0CB17B4584066C1640C1023D91F7869EF0C4D701BE121A6E3C832010427490758AED7A2B30D
-6028F2215AA44E86D852FDC67DA5CCBA79EEA863BAC9EDC2535B66AB0E54EC4D4411390FDEB8D1FB
-C1743F15C3B68DC92A8659E7A892D5E53872EA51EE8CA7EF51103E87C29A2714E907C79DB9CF3744
-1785D2F73A1EE58550111A4D9BCCBEBF2E39CD3B93DCA300FAC3ED1ADD8215301E5766C30C8CF296
-75746C5A77BF1FE3CD75D25CF193DE8D9AF02AF8F7A6E8F84B548058CDD3C6998ED13463FADE7391
-26D83D3CE2C7201F955382832E32C10DCBCCA35835985B9A93F8E3B0208BE6E92428787C47D3808A
-0F77B8F1D76E6BF6A17FF81CDB065180E03809D03638307BD7BF5CEDBF64904E918FC805AC905379
-928B816480F6E3BDEE47042CBA98539DA0E113B1A5F23EAF1A3210BD18561985E6436EAB90395DA4
-77C7A6D7888D2377B3FC4169368357D880CE041E1F7C875E956600DB7D9B35D1EE66BE476E9DD806
-4CC02230276829C2C0A098F051502E828A0CC505AFD8C3DF293DA1508AC4D25866BEEE6BBD5A230E
-9C2DCDD4F06883936381F476DDCD86CCFE15C2CE3C3243E148CBE603B8513A7CE7A6910A66A90B70
-89E5CCD4368BEFFF2BCF8E918BFE0A1B069AB2A914CA7BB91A0AC3B3C0B060FA1A0316F6135E890E
-E549315897C8464496CC6DEA0F7E3AF43FFA4C3281156067582CA255B1D2E80F999A3AC0402BBD17
-01824C3BB524130F5B82A45275807BC2F3A0655EA208F968B297F98C369192C8ACA26BEBA7DC4506
-FBD1305E2EFA4DBE5375281A88EE2D6FC88FC0A755E72934B4B58F6DD3BDAF7171A4A3C776576735
-2492BFA9A7758504750AB7F38754683B70E9E293CB1CD7B23BA62BD7397ABB84D7EDB22EF6C3F58B
-3EEAF656E361747ED04020163253D1CF3F905B5E85F83FFF30AB2778CAE43781667C0F65C8FD404D
-6B9202A99EA76AF9AE1236631550B66B063847180B6DCA832EA8DC4A6EFDB674B5A26552A7C7D54C
-2799C7D4E03C24F661A91103086DE3A90A774A6988347656344CFBA06065AB22476BB09FB68F9928
-C0045F2764AF643CFEF0516D87FDE6DBF93BAE2829B176CB507BB99835E01BAD5E55C2F8798C93FA
-35EB3FEF02CFA31D3D21B030547F86D27B9448D68E2B155A65C742BD2999DAA0C3AED64447B9CC67
-F7AF33B63AFAF25F3CF7EF86657FE8F952288CA4B691D369E8F1935CDA44A180A6767560C2ED3F2F
-CC38B6BD7991D4170C7C566D690A8A25BE03212A80871108D18CCEFF246623E653107631F29227D6
-4754B2208D19F84E547799E691CA473780DDD56AE620CD953D5133D135E3D51F237078FEEBB73714
-54EE633CFE238AEA63F9999E32850E6C197687A0EC4E5908D2A18C5349627E336AB5E3185B218228
-603A4B1852069F5EE849D571B8387DCE1F8F8E9FE94FADEF128BA83BDD245F8C1C27C11F2ED1A8AB
-2D6D601726842CEE744EE7AAC6B6FA16CCAA39DBF5B3B1D47339F31DFA562671A9CF7DDE6915FEF9
-F19B3E068A464DD350A3AD146D1A241673B5112A4A8768F976723E6E184790C0604506C46591BEF2
-106C40789B733331A80740D59ABED39868F80BECC2AA21C400A0BD0CC326D186FFF9EB37680F1EDC
-32AC78F9059280D07B5FF2E354FED545129FA5FA8F3D4317FF21E027602FDB2522F049BB545FF4DA
-60248130F81F4E348373142F3148DED038AFBA818F26D5B49FC02DE9800D894E9239C88EE0EDE431
-F8083697CB0BE3B497473473E5714717C914A1A926730C249413FEA2615EF72BDB0906933387A892
-370F77EEBF62D26CD583EE643B02E323821379C0DC966407D36AE3CDF646B95DEDC7D7FD0F28E950
-78F12DFC0D6400B327B743C548A0A3517A175A7ED963ED756B1E107AE7087E2446BA702CD4E26E2D
-CDC1A8B697108B5B5E81E9F03105F220C72D4AEBC57665887C8C7964089FBE9424120EFDB14D76EE
-F8C6F7A30B13E1AE90CB9D93D2E14BDE47F4A1D05ED5B18D32AA39911B92D24C93976ACEB7EF597A
-75161923A73B2CC761785493D0EEDC08B5AFE95F3C006B41438A0785C962B070DE2BD096CB63B847
-C87539880AA3D3FC5C345E0992D7BE77C6CFF4948617FDDA784CC55652192B0ED775129C4EA4245A
-41BCF3875BE319DA0EE2DAFEFAE920CD2B6C6C2001762F88C0C5C05053025C0349DB17104360FCE1
-5D7F3A8E30ED13155A74FAF91DC77B8AABDD6FBD5A1EAF255DB209D7F2B90822296B5603FB5E2CC9
-5CBC5F7A6044058B8044ADCE73ACFD896177F1F70EAD2F6534DC3AD755AB2BA87126D63CA2E9C441
-DF0965BDDD6BE494E58D6B5057A561D1E31BD38E92CB73C1465AF6B9C001F7229059BCA4104847D1
-639E124E082F7364B56548BF8112D0EB461B316B2449049F6A476D36D6B7C0C1126C08F2E9A1246A
-3B5B21E7C8FAC6E23B82E33A7783E4F31F0240E96E69C9444E7D7A928636CFD086475DF1E0A28464
-81387BB2010655B9F81A0744121699B4905AAEDCC84BC5D5AB3674601DBBB651EDE7B5DF05C8A463
-DAB41F79706D285C4F9063997F7AC8CEF35CAD51FBE5F5BB1B3FA6DA2C3ABF2B3E925581349728D6
-DA0D59C1EF6444539742EE9A23A5727F20CF9377F4F84DEA420607015A30FB14632D084A2DD181BB
-02FC3A84FC499B318156B675B9CA3CCABD87FDB2497C6705FA70EBA43ADDB6CF961B30E8F6AB9F84
-E1DD8D6DB3314B34B7F7AA3BBE19D5BDC75ECADFD8EAE19E07B387A1FC586F0F30DB695926764B54
-0D89F1D854B0FF86528AD9523CAF56371E29498C11AFB2F4D5202670C834E930103F039D13348824
-16A49BF93B84FD3CF1209EEF7D4994C8302436C0794497461C11F5B8BA152BACBCC08AF8A15F4A4D
-F3EFFB7227CA97FC21D2D0356C93390C749CBE9750B821F1A7BCFAE2C8BC6D9A27F844D8AD088320
-79ABF0EAD8ECD4EA72846DFEED021857F33C1ACE4C07BEC90398B629814C498D33BEB375B9A53DA0
-F926FE6E89E70322C72CB2DDBFB16B13EF7A4F50DF783316584C6AC2BD7D9029124933133B2229BF
-74A228868AB30EA5C3E87C78C3F0962199480DBCADBEF53BDDE45849DA857A4FD85B96682F1EDEB8
-5384929DEE4AFAF84C51A09F5D572705673D885070303FDB47DC898F874E103A9E7C1E894115DFDD
-AD81549C7375D4AEDCCE2E52C13E5130B47F206F7C5AFAF1F9EE83DA8188D70B473269CA280A6A02
-DE85300B93D8A4F6B402FB5DF58F1327470CE11CC63ECEF2EFAA396A6680A6746A20382D9529B58E
-7CE684B39AC00F7086BCB47C2230DF0343BED9B9152A61C9826AEF9E00A1452D91305CF05490D4BC
-0BADC9C6FCBFA93FAD52C3A80705A1956890497557C0873EBDCF61CCDD2219354A4F5621AB33B119
-32065C1D990A9B68858331EE7875CAC855F98563B14EF9E1060BEA90F195AFFF94728AE935453438
-DAB35123D0E2699475884DDAFC7307A5CC06920F35341728D85965F5BA86F261CFFCB1E29B429F97
-6970D42D10E6AF6C4B792B4384122AEF2448E22A58D3AA007743C71324EA08D06819FED14AC1F22A
-4F0BE4787BC8738E1CEF240677571C65804ED3E748D72E89C94B6F310BE748FAEA31EE246859CAF7
-A1EA17CCB5B246C87EAB771E2AC5D378650191081514DDC2C66878E3766CB20DC49F630F2743A7FA
-ECBE9DBE9E815A3CB57DADF2BFF5EF2FCE23A56298A30A2E052FEAEFBD698101F9DB992613706693
-CB0EFAF6F60C8BB5E7D0A50B3392B9831EF3A304A846CD4AF431E9F018FCD3A5B16387552D55DAEA
-683D36257418AAA0E7BF8A03ED7BAB114D7C15119E6C71C1946BD7903C1C42E115E954619051B853
-BF05AE316E15E619A7DEE498F771E809D9435969C1056402725EF40C0200E083F3EC6E0EC27B8ED3
-8DFE32EA0E5E156AC36C4BB9AC5ED111A11678339703F1B9299345AEB1F251FCEFA11FB3101CC499
-907DC862B4463D5523B9B25C5B69F70AB6B29CFC1DF1ECAB8227EB3ED1F882E90B12080EE003714D
-403EC43B7B54491446B6A3DD6EB641EFBFEF060C45E873E7398025B1CB7065441F1753028F6F8C49
-A96801C0D598E098EADC96A21117F817B6FD6E6947642F93E22425A00E8F6B592AD50B317B69C0F9
-4047386A45E5EBC9504FE55451A01EB29DDF9A41D4BAD85FC84CE280971E834F06CEF49C8C20ED2C
-EAC889F158CB14A8C070900478804CFF1D1637CC880C81AA287D8382837FFA8F41FF3C9DF2F22CB2
-0044C171E4815D0D0F6C22D19A52114E780CECD71DAF63427782E85E463DCB333789F496340E8CFF
-885A9D9A4250118B439C71C6BE51A9338BE29251AA794EDC67DEEC6337FA63CA9B03C1C9F75E733A
-4A918646E7BC9792486CB5A4BCC5F84FBABDFE338C3792254A3EEA3D88903C2C47B91E076259DCCC
-8BD3DCA90ECCC832C09C45141C6242026BFE309029A562C3EE0FCCDCD40E5CF265ED9C3DE582884E
-0E14819DB98B3AF734B1B3276AC41D43384EBE73003D15CE39FFCC04109583390E470F431B4407F9
-8550E138F96C4564B494E5480F47C853BDD237E27301F55E42A3BED18FADA152572B7B465A581DBF
-E7DB2619365CF16D71BF8F091862B9FCF04BF8D0859A76F46E7B5712F2757EDCE332D3213B8A30AC
-2CE7D7797EEF6F30904906B0805DFA7CA36D32A20D989858497A66CE72491393DD79332003D55C09
-5A5AB5DF761C4BE5C041FA8407263D604E53091F7B6B15496245DBBEE96A63F10FC2978D99E65731
-28689366FE8B0BADA48B50185B861BAD03E3600F22BAD4274F2542B635F6C7944BEFC3BC741BDEF1
-1A8DD659038CB40FEF2E16AD1AE7EBEDB7D9BA15FDCF26355331505A386DD7399FB999535D6061EA
-BC61DD76EF3EB457446F29D0BB6EC2FC0AABAC20B27A3C123C27BC27A76336D0A0A6D456DA070367
-4D959A4AFE428E2206A511BFC80039ECD56E75F69786DA0A8084D81A66644DD98B6018681F1D70AD
-E09BD9BF3D16D68DD5D0A03AE26DCF1552549E459FE190B310A8776B2C8468C14CA8B1B9A7AF2956
-507A3B705AD75A17A0EEA7FE089273353CECD07BB8563465EC8DECA0EB42F43FE3664EB5F31E1D13
-24185539B28D508BCD065ED576D8814ED3FD637D576F027927162344AFB0255A91FFC616948E4E35
-8867E9FC76A9AFFACAEBFFE110808C1532A2BBB0DBEF3F010E45FFC73F228D28F12E98478B27397D
-8F456781ED9E19711DF2E9EECBC3FE61F7493FDF1A59124668A91BE51F122F93DCA4BBD22DEEA339
-E6EDA3D6EBEE03DF958113E1CA49C8398D2C59DA6764882EE3663F62A55AE50A7E91B4FEAD1B11FE
-0D50ACCC5D75F1A515F0C53616A500F1491381DFD0E2477E402AB0CF9F67D501A442629C8593ED5D
-25A72EDB9746B02F2B0F0759CC9CDCB4C9D8B4519C8C617E569B432F0CF6890372AA879CA7DE46E1
-10D95E230A4F0E52CF65811C54365DF4A3E40D819E2FD379B47DA3233D0DEF0EFBCE04AD8BAA3888
-4F6A69FE5C373E38AE0FD0241480F2BE7CCD18AF85916D2703A049779FE7398FC47D348454CF03F2
-2EB3FECC064606957898B5643464845445C25C0C7D685C8DB042AF5D5882174374ACE90081C68678
-9BCA96AC602EB41D317BD652293EE628951875641661EC86A2C40A42E8F0813A861D41A0F5178E55
-43651CA0E99150462DB5EE0010F00DE6D55B0D7FD7EC5BAEA24ED3E90A7D6A0589761922B91A6A91
-3A7FEDDD3B68254D89ECF767CE8E27F966426A8B4FB1B4085384FD09D63E288405B78A646F44C87E
-EE22C8596B13188085479F75F63D3D97A28F9C8306FD207DBFD38DEDF0FFEB7DD80B2A3292DFBF1E
-D605ADF1B33E85B010309E3EC058FCD922B1325FEE71EFF2DBBC2E68DB52D513E024C01D47CF657B
-B61C9734649A4AB63C0AF4720EC3EFCD82DD3CA6E80BB63BCF1B8DE810A0C6C517C63B76FE68C0B2
-86867BE102424FC31C4937048B6F323D039618586FC21731005D949E7D802A430DF8D2F0CE99F2A2
-376C2953EFC4184355E4D12F422C9E1E25C4DF38DEA334DBC89B540E14C61A7769D77115CE8968FB
-76B27D0863CEA2496783114C24D4CC816DA884D953DA3F9B9D3AF8938BC607BF26A071956CA07E6A
-5509EA2F5D80E5CBEB98041B197FAC760976EE75B470DC20AA023BA3F63C2876EB281FF5173BB490
-D6815604517AA1B1FA0631401B3C1A04CA103E2CA4ECCD83874D9CFC8ABC134CC0F9141D9AFA5684
-8BF222342016C556C14B3482482DCE5D0B6EF1AB522AA1812BDD8DD3397E05327EC12748FC480842
-9B97202E24E1DE0C7C0D272C046BA73B37D30930C5DE5A47D96955CB0F5DED8F3AD929A8B42D2839
-0458F5910A0F93610F79EDDB27078943DFE17C716D65F96589769349F3B66AB7B8C004CCC59EF688
-1F745EC7129865A76F9C2D029D4660CCFB4D5F9D412BA3372A27CB175E9D65F759575CF14A5899A8
-D31FF039AC02DBD8391C3397428AC0D5717C005200790785354813C8859BE90E0E17914F6CB9C674
-F1E9A9648657B54E5E1F52756C4F982DF74E73F6E4D40718C71D1D0E2420FB7462FEC9E457C0414A
-96E475C6BE2C10437096FCA0C942E995A9ADA789AB637B648781D32DFB68E62E91C2CE7E13680F8D
-31ECF8C824885FA7618981CD05FB335AA111B409C59EE337DF4E5F9DCC920A5FC0D620DC07F20DAD
-63F4FF5E0EE5A2F390AF1C32122BA7780F210229E5A5E3ED97BC1C3CDDDD456E739CA782EDBF4B81
-0552368E9C734B0C78B0B8E3F8B2DD782862B74318871BB1EF087828CC173D7B049811FCF598B8EF
-DE4D9BC5447F4848C98029C854F3AE461B9D46DDAD8CE67A521F3C811A81A396CB0F80F3C8D8EC88
-30532FB7F9624F7CAE0F8C6DF875073333DEB28AAA90AAF486AB8C932553CE697B885E71EC8E40C7
-835CD5D59A2C695DB9E51216FF9B77A15B0DA63717FF25B05B939E45CF7FBE490E51E9344213B32E
-115C2DE14D76DFD5845088DE645B0E75042A61D82FB1753C445AD0A956A1263E5A096B681D3BC51A
-9FF32EBAFFF7ECA8B59D40F0937EEFF38312AE57462C7BF3B1FE24D2BA8DFE84515270E09063CE3C
-80DF4935E409F62EB4F54AF16A186D4329972B9BDF15FB08461B688ED49928429226CAD9F67C9D63
-6D1375CBB7B08A5631956B7FE29CC9EFA8D75C9E4919C8C2C54F401D2E0D7BFBA40C50CAE214D210
-C6F3EA5802339F63FC4C1C1995787617F3EC2C806CE44CF8E29F76606CD5836F6E5A2E423CD791BE
-CD3F112F25657DFED9366FC4ADF90B685CCE4A5698E5FE16D7542B913FBC01B288DD13F43DB2B1ED
-8CCB80159DBDC90A8132125DF8DF547C4851CA609D1F6F4D647741260E845B457937787827A89E37
-CDA06BB191669AC84B8608EAE132D10177F3FC384980F3A6E439B048A38D0D6B9CEF09F3F2D732AA
-71BD058169D6D0F8C9D146D9DA046774027559A8B3843F6116B418427E78476AD8F0F81E8A6B1209
-8060FF7DD686503F972D6C42FD6CC29C083AC3D72E3751F21D2E44A572EEC80E81EE44C90FAA7AFA
-BCD3ECEB98FD4068F6C3A4DED0E6CEC523C9A0054D1FC2A8D61A4A26F9BC250B8F302416924AB22E
-722297888B85B9C12F8DFD2A744CBD143F9B2514C1CBE988D9CB4E77D90B2EFD5C2A528355A35F7C
-4AF039C7D1D756305967B847D4ACBB81263D4992C001E2A262B9FEE2D1F5022BE5B15E1D8F1D67BC
-52227344EE912C018CB73E5F47CED54FD202627777BB77AACF3EE6B22706FB2FA9062BEE87E22CD2
-802E7706322648DAA0C624EA885430175F746E1F536F9A8E1C610C4A761D07248426DB63C9319A88
-A3FA449C3FB8AC94C6003C745E6BAD717A3B2EA3862D1E08512A98E57772A62F85F1E2FFBA40E2EE
-43AEC11203DA9CE5AFBF673436F2DB6AF85BBE89D802F7A9E5FA25A408DB69E51F0577DD26F94CF2
-BA2FC53EDDD6FBEB534AF15F74F66EF8D14E7FF77D8A5D284C8202DD5A6053CEAA606BF925992382
-5EF4EFFAA8D878652A4CAF2EE43ED26BF3590402686C876F86C1AE95046E527617CDD3C429BD4CC3
-F9654D2C76DD4102471FF746FA9FA379B16DF96BFE3836D43FCC0B8E95120C27370049ACA4AC313E
-1D50D72D1814F2566B8B29FA9C9C20D0488743722A766436776783B939171FFFA00E04805A8B5821
-4D4F114F7B9C3C17CE7486AEA2BCC895ECDE809502BDE57981318A93F23016F056A421B733C4590E
-34AB08BB348DA4A48F19B6BEFAA1DDD2A49A6C440443028333CDD48C85CD698ADAF3FD8676739E44
-400A98B575BE02350576F96CFA54D4184BA47555B8D12374B86D038D085F7FA51FF4BE2FF5981408
-999B48B2FAF305212ED54B2E371F5A0074CF68D1B0E5CD279BBC8BBAEF694A89A6C43F518D01BB4E
-8402AADF34E96E9B3FCCAB4CBEA2741D3FD9ADF7AF32388F7771845AF99965A6078F4DA335EFA436
-BE36903E33A743C112C0267309F266DD44FA998C9A139704E400B89DAB952EECFE2AC09C82D9F497
-5371CCC27DA37890EC84123193314D8A7A707C217FFC951A547EE5B6D1B7C8ED85BEBD9D3F4B9B09
-6A78E5F7DF88C931E3F396973974454E59340CA51DBFEA1A00DE084B64630E26C6D6A3593B828814
-E27DB0186BF2A87EEF268AA1B135AC09B52CFE53051CBCC88CEC5657BD47F603C8E1A6249161684F
-D9084AC279F57A4F9BBD0A546A87E147B62AC860911969A29B8AA20E3AAAD0079D64E6BF1B0F2CE8
-F0C54C9019207E1B403358253C2FA93A662F63B9380B65C5173C198D86A3D0DC1800D1F5378DA39C
-E8523EB62C6AFAD8A0D7AD1629F2CECAD82B8FDE38975303768C7D3A08B91478EDB3C45A8C6B7725
-EA8596A8ED50B8355FB852FB8966479D12E1086223B1E6523A65FBA81DD106FE254F7309718768AB
-009FF7714A8C363B09DDA73CD3F81BF9C0CD3B0C806CF3B7BBFAB73E46FACAD2480EEBA97AE68EC9
-4D3D79AA01ECC22067858EFFA9D7B7F997ABD2CE5AAA8781E5499E8580C405681CC63EEA53BB47E5
-5ECC5BA2A7A3C5472DF034B022F455C60FFF971B01583A29E211A87F7163187B190B0C1083D696B5
-86E9438FD8BAA45101A5EDCD1BE5AB9A585511089DDAC8DF1B1FDBE582ABD945E67F99ADC4452988
-A9859E39C90EF794C5C4E62997085B7A16A0D90107D08610BA175AD66377345662DA7DA4D8FEF847
-EE5D57E3AC54B928A0957CC1C944E7FF14658FE4A641CD26C61105C0F136A75950764B69CA17509E
-3C19351D456B22C87C55E8DCC4ACD3E150D936333FF36499AD6B02B6403DE0F12901301ECB2EBA10
-324BA72B58206A13B8F37B0AEB12115D0C12879C8EA8A2EB70E85C95434564BA3DFF481C8972587E
-FF74EEBBBAB14FB32B8A84B8FC42EBECA65D25E8C32C19CA5962832BF45DFDA4E871508AEC318495
-0D6DBE89019CEA29E40484C36E33D76B756255531ADD1DB24C03B2A64A47BD8FBA3FDCB1F5B96F8E
-ECB60D5834AB001A70740498720AFB6EC03445CC35B51F7987109618C6C78CBE3041BEDC69B6FB12
-8142CEC5C8683B558AFE3024EFF7A12D04EF59A72E156DF11D33ABA08A8EEB16259DD9529CD003AD
-4EF4137B6FF1654236473DFB93F597331A5E26C7796F528F65C94FE07B3B4F4DD49034FA0CC189DF
-CDFF70C2F1C6D3DF30AE103E2AC5CFF20664AB934CE5C19693292071C93BD590383E0A1931E04D1D
-DD18071DAFB628F5D7472E457BF81D6064EDFA8DEBFF91701C5038CB30865D6122076A336732DBCD
-B0A625548773D0013648A76F07BBDC9C16284D158EC7A105AE37A62279419C3A2F360D0C7A74D6FD
-D0E36DCA2A8BD59945A4196598F690878F84C894852C1811AFEA4BE3B9F6A5219E6628C66669DBD8
-FA9A0CFC2DDE7716A356FC4FB271D8A2CDDC8D4684DE447355BC7A287DC56852A638C5777826EB6E
-B72FACCC86F80BEDDD0D649A883CFEEF4D74750172A90B5DD8252592FCFE19FFAAD868E99562DAEA
-E70514F5DE296EF7B57E6F193737ABB6AA317956584423817E11664A67389197AD9F8F771EA59551
-98C9EE40A0761639E638CE9D890DF468642670235F1373D3AC6B1F43B5777FC0A91A96E095E89BB9
-FD62614DE456CE7AFD6B855112367573FD9FCBBD4A4F9C676E672D62DDD34A9BFE8311B6175A003C
-D143C0DF15E4C0B48C735404086E48AEED6B6FA21FD9F40B84215DFF287F0677904E2DDFDA774A40
-19DF45CC877F553E95A1C65DF1D67BC0C60E0BBA4D205C0DA3DA80229FDD71859F65AD04506B308C
-2B783839F31CFE4425263224F08C5C7E98A2C9D3DC8EA5AC1920F4E395413262E0836BC019A092A0
-DECA104EB2DF6B63392AE8E2136379140DE5FC98B0B69860FE8E31DAB5C5DF7807D19BEA34AC14E0
-ABC6F6519C51247B104DE7D912C5BF6EF11B48FC6DF84512E9F5FEBB48F72FF1B722BDC3BB2E835B
-2E7CC6324BEE84893996B8DC2D4DC2793A4F69C18E63DAF04A7BB5C0A9076E2D5A343E134CC3C89C
-4712900656FFC202E1988526D80C7FD9281FE47FBA8AB5D025E63A84051F6B13167BEC15B346212C
-BD051AFE7A98BE3A2491F3C469718A58E783ED91F90E274FB4978F8719E92A99A1E8F142EA7E1F2C
-46AFF0A2FB50F4D105130CE8EA309B0E480DC8F80D506172B609EA4BB4E2BBAE98D8882814FB273E
-690DA990B60A9CDA20A2418246BD10AE67D846A0FA815AC25858145ADDA106A6778A11877FE59A2A
-BE300D7DB9BBAB31CB5B960B7E4EF91D4600886D8795DC361CBDDDDE05EBD54B1941F426F7FA8399
-270D2F54C998BE92D146227270A8E89AF90C48BAFC4ECCCA01E6322AFC165743475E752F39BDAEC4
-9297290510FFA264342A0AFE2985F85DEEC66C36EB4A1D46683EE7C591A89B81569A8566AFBCA268
-10DDB0970577A76EC8A066622606B08315DB0F2E6C671F3259C73637D773D1A180AAD66ADADA2A65
-95B5F481E5F59E51CBA876FA06D21E1D674CFAB46A02D267E20234324D0891E7847C13C69BFCEEA3
-AC55F2EAF753726BCEB0DE1EECF42ADA964BF9E475953302C2FCA804B70B779482DC9319B40381E0
-9C0096460AE113C19A2DC9157FA138CF0E7758F71008E71D0F7599744D647B09B16E3C795C56EE5B
-D14D8D63E7A512900D67487975EC9CEAEF69572FC3C2342AC5D365E8A4BCF462006B5268ECC15754
-94CAD9A9E7A9E8D9AFFE49AF647C017743EC7CFD5E66F4E4D845A6BBC836849274FBD270CBF263F1
-67DF7E26BA91F21C60F96257C07523AC37A2193010E976965CBD75751E312817C0564E1C5AE0CBA8
-BD12B01122D07020A0852120680985A8AC987BC33BE863EEC52AF13435B6E4048D951F5BCE36526E
-07A8661CF2538F69D1F223BC53BF5896437D1BD46F57D9698F642F0E99C7392D8EE47134E34DCE94
-D392949B418D9821E12CAFA8337323E8469DAC24DADC6AAD4A0DADD7FF65694BA3A27964D28D8EB4
-1179458F91CD3F83B8F119BF5E76184DD29CC4C0718CF7945DCECC993A7A78739363136CEC7F2FB4
-95EEA8CEDB3EBF14373A058758C442939D36774435554851E9519B6F09C31EF26B6CD997DAFA11DA
-91FA9759F17B7079164C5B47B99CCB7A876FBAB1D0D5D1E1A2683CD6914E6B3B755939CEF1C9168D
-30B2738C4349650CF86C90D2542FC9B90F36A494C035A1C86DD716014AA16E6B9EC7AA03B16554BE
-C436511DD3097FAB1FD0CD49EDAB96F74E8FD26400FC748CBD9EE1EEAEE24DA30DB6F8734B52818B
-3A5E510AA5C14E42060898033E7E36CBA9A64042CF94A74E4B52E37AC027C0DC69BAC4944CCE12E7
-AD81AEDCE642EC34CA23E3FF07B8CD35DFF19F33C8D4DBB56A52534F8A827BE47AD4AEDCAD83B273
-38409FD1101C4DFF3F12D3DF79AD1FCE65B2F419451DD059C88BF066413E23DE27D3621DAC2DCC8F
-9F3620DAD0F4B1A6E8C9E6E8ADB552E1EB2C4B2A3B73986AD53ED9ED8911F82F750DF05CD2EBA3E1
-B0DF208A87FB5ED44C3296B803881C1D9776D13350CD29C3F716F0B5A8B8557812024BA70069BE65
-89AA579EADB1F657712DF2570843D7C5FF7F4009D4D232D3547DC8B92ED5C4DB77B76255E661FF8B
-163C6F3856DE5651B597EC7C78B84F0C6C1D6EA3A82286F1D3BB45F708D564E139E81F473C705AB2
-56346328DAA64D1EA8645DC10FD449092E0634D9D7344B2AEC3C75F6B6CD8B3F3867FF3CBB0F556B
-186EE9A7C26BD2D17C8A773055D9D5013BD2F937D697A770C57BDB36D922CB911CD14E7FA14160BE
-19C1A052E297B1A2D682D4BBC9F1D2493BCD7CAD2FA75D904C5F5479179DAF7DC6A4E0D269BACA2C
-4F2430B4C8CF1572FBDC750A05DCD5B09FA3A9CD6F2F2A386E2B3D4D8E257BD43A783B38E63BCEE5
-03EA96FF2C373181744A607F0CB8D281D7DB1A6F4076AA3E2C61914BD796EF8A0873F79F964FDE28
-B792BA99A20C3F1F5ED1FD189FB1867C84DCD6AF43D49420C8B1F3DCE7DBAE71DEB17FE45644DB24
-4F44B1011C7C768EBB7254F4DACA64E9BA87AA7CD0F0C4B2228FFB9EBDCF3DDE4DCED39399FFEB34
-8811547D025320A88B480943A339E2CD2FA3605AAAE87939B1D7901465A1879BCB4C5BE1A179E7E3
-71F1BA2E0844F88AFBAE9B78DCCA47AE8AEDF5BD3D458C7D4A7A08ACCBF880D1F1DC69C636628DF1
-EBDC5C42FF88FF8B66351F3F72D703E52F3CE91E4E00759753A599FDD863788E99858498B66B93E5
-083BC3501C39A9BA928B0D763C28826FD237E949EF0BA85CCA9AA20C405DB6D5612DB718F7B4AD31
-D253AE306E4D7CB615C59AE668D347A4E60FFF7B103F8BD0E7CBDB142A763BE88AB40EEF6B8FC200
-458D728930AD0F94FE52ACBF0657C4907CC7942710AB1FD8BD149A9C9DEF6B8DCA7DB9062AA7B1B0
-11ABB5AAE8B77893A023F9EEEED4A20FBC30F922282A7AE2F1ACFF64151013D6B8AC2EAAE58171A1
-0F80BC18C3BBB5DE1E22EBE6033BF83040629023D74CCBAB3F1923CFA4A6735E1DFA8A1B261FBF1C
-397E26F3BA9C2629CFDA84DFA3D1087EBB19DDA7E2D76E30DC2E15B8821D5291DA1DFD73940E5560
-A8A6DC91BE0075E3ED8D9E8CAC85AC20768D868CD2DC45DEADCC8B59AABE6EE5B2F891E0D7CBAE82
-0F83479332BF9707486698FE196C72EF72B52F54314329FC498171782BF160E1110A19B8208FC591
-EF0F0DA71AF657B43A7CC649A8488B759F7B69134B4F9DCF79DAEBC1CE52CC8015F324C9D46320F4
-4E1551EDA6D86139DFD1DB814CF38A22A89FABB4F75FB896B00E769820F763486E86668253CC466C
-1529A5A924CC337C48448851A381DCEF63A0A302B65203D6571A1DD1FB9DC0C3BD6AEF4891497033
-109CEB5A481BFE442249940EC54096F1D0F2436D9E60495D0ACFF967A741B30467D24AC6B0032213
-18666B951EFD45324987B10BEF4AAA0FF1DF6887377A7F70F555DFB9FF1001C67438A167A00B05D2
-C37065655173A7ED9AE342DFA1497FB1F2FED6098901249A085D31B66DBB6AC25EF16C106B0A6FF3
-47CDF66434DC3F0012DAADE80B942D522CD59AF4C31C1C062157B3D000B9CB86E2AA7B4A5BF31605
-8A0D5A148EAA2C67977FAA0966E4C3454E08DF14C2498AD76E389AF65D2C139A6D8675298C46ACEB
-7DBE6904C373C06E5F71399B2EDA0B40AB96E8BE991DDC39F92F1D24797F9EC9F2FAE25669B43754
-E2498E8EA5C44B176C3FB3E8F7A7A1481275A461F2549AFC4CC73E28417BD8C5212C13105EAB967D
-AA679AE822B9B75B372A99C7E82D6BD83AA2BA00314DA4AC51B9CAA30D80507505BE24BAD0A87C5D
-5D7336EDF60CCA4CEC8201D243C3932F74D171E2409D789AAD0D04A7BB22FB6DC3AB92AE33FFEA89
-7C484D741039F38C317EA396A0FBB9F15A27D87FCBE007558799BAB73212B6E5FAF2080BA074724E
-AC87D88166DBC1464CF5D41B99428851FF1D99246944511CF42C3F9248513E9E51593F253D89C604
-388AD7132D6A169E9DD888E020AC1F8BA606F2E1EBB97977E505D8C40853653D8F398F71CC9F8F9C
-540C22A1E6195BA578AE7262FC845FCCF77B33F33EEF266489AF8B81A615D6A13464BCA58BEC16C2
-3F31D678F14A938BEC31272DAC3CCB1B2DAE577A26BED852FC59843176A5FCFCFA0AB7FB00D2309D
-E55C82CB9049F44FA61F1E313205A76317C4CF529A4456019D970624129681F46A9CD7950B8B5C40
-61853040113C8115319E68B37F88D864C6957DF813B305D09E6A1716B10F26F2EF5C727FC77AABBA
-73E12B5AE6416AB19F6563CE14046B715BD4CB2B1E4D315F42D10F74CDEDE82BCDD524A1A5460921
-9084CF1CDABFE72CC8375478B41614BC18A914903596D6FC2F361EE519F875385F4ECB50F7053127
-4EBDEB14A5DBD906A60817246042E3799BB3AC647CDA7244B7998AE4F3BFBE5C767FD2142E48518A
-4217599E0EC2CF5E86C8C270FF8B02F949EE001D6A439BCB4BC7D7F7C8167C3AE0A7E59687FB8BF6
-F37BEAA164541B8EAFD92E9D152E3FD0F413C99CCC34FCD8AA455A0B55DEC846A5874B94FC95CFF1
-BB386B2A1E22CD1C3914264B6D5BD1746972857C9235052D77A6C0DD3019F8A307FBEE63A3EF12B0
-39B224108276FFA84021F1AC5B745C54690B3FF587B4B1710AC3533A67BCEFC503ADF1F4B62B2910
-B31965E364EEC9CC437CC40181A7320CD52BE9C546B8F1DC824312216C2FD8232E2BB8D40EE2E314
-54C09772A387F9520E331456C269F51A078E6ABD9FB6A68BFD5F557215B0BBD2227B8959CBD1BD4A
-EEAB094DD18E891C61FB00933C0A0D76174D169C0B6445D34C00DC9E06D85EB086C18F3BE27DF734
-EBB9CF078AFF6514438549CBE92A0C0D25EFE4A527D86F158B4E9D8870C7AC5D6C059643A3298079
-CC20398324CA87273B86ED801057D797D91BC3CF2F96C650EE1566CD3CF8656CC577D38B830201BE
-718DC9A494268177A5019546EEEDBF101996BE593631654B638C75A6BAA648CD1E7AA9AC1EA60F4C
-D604071C89DCCFF8B3E430A57ED6DE11C5837E78956ED991058F3646219BEAE94E4D9381A33D48CA
-9B8FF12B54A73FF869D0EEED7E098D80152295E6016CDD809173C57D1F5FCE908A37010AD4C4471A
-53451DE9B4363B63437C374C598F548F145D3D288F42531FCF36A9CDF72521F1C0868FCEEEB1857E
-A983F6B75CE245D875BEAD1BCB8819E5464518E04717B78BD6E335F0AD77B832AF5682062A1E2AC7
-7CD5EDD5DC372EE456C96D38BF8BF348DAC2B4EBBB2440F2CE97B4B337F2E23247E3E8423BFA9237
-CA6CEB6FB93F960CAD894A96F0371168A33222052DE9B3BE04B022AB95C0C243486E35197721FC55
-311DC55F87BC72D09B6C940CA36E6640AEB66C394A5949A604E7F15DCE3A008BB41B0EEF2840A357
-F348443B4DCE064B4C15E5EC52E448C985FAA1C3D6526270B1CC691009959A7620C9A6202619A19B
-E410FF7BD535A8B2640AAA459DFDCB8F2BB35112626497E8A397D4F9E04788322A738DC8907CB643
-15CF63C95809E90D06EF02F72AB04AA61FE02ECCF7E9049FF9F3EF2258A75656178AAAC9F3C2A26C
-001341862D526CC14E92A81BD63502F959066E0BCD659CB9B5A45606153DD77039B8C5D5B13565F0
-0D95A41937CF97089F3938E39659A64DC3D6046D0E9EF66544CAF8A206635DF49926A3EEF3FDBC9D
-CCEA2886EC855F1821C4B9CE1D02A19A11BBBEF43A7D4D536715548A62802F64AF30BBCBEA8C7E55
-AD56C801D8A569C8183615A78CD393CA42C103F155941E845712C335F4ACFC7807202B92A983111A
-ED241BBB8501F15560E8F2157C29752BDCDB274008137277920053D6D7DCDC626A574A82A8A34F1E
-77B2FC8CF7C1A7322F22DFCB450259EB450C52B70DF3584A7C54C813DB41E3DD81253A03B02BC252
-346AF0160716355797B6F8210C453DD7E1E756FF08C7E6A5F4F87605E1DFF35A130D79148A57B7AD
-12D94A129FE3F055CF974EBA09A2B13DEECA2E02EA818A58B81E8743004646C7746110BC61B86ADF
-2D5D8C45A6A5461EB34497FCCD09E711F47BFA742C73F87B257B53F30CB68D151424DC3C210D3E8A
-C67C2495A8236EA2D7985A5E1DEAC699D7B700E6D38EEE2E93B191BAA5A8A2C916D206C63FE63427
-AAAFED2B5784276FC21EEFF2D70E47C8540DCCC3E00134642B703795CD3702631AE2A90E063A218B
-61E5B89BBCFFF84F567E37A31A9B349717A8CDB9C9377215BA838FF7469BC486B64EF2B6D92519C0
-BF0826E3652903F40E400689F5749DF86FE3DE178E21E20EDF9053081F6510D8F19ACD021CBA481C
-484D30EAD3B84ED0190087EE478A17154B243346C3938FDD5340CF6E47B185E64ABDF44F8CBCDB82
-94492B91929BFEB9DA2B033C3ACEE554F0F1A7F8A56DF7C06A3583C1E9C5CA458D40E550FDF3E2F2
-E7BE8312D5FEE98543388EDC8A04CA29F1B82B7AB4ADABBA3F2C331EFF3521B2B92F99C4377AB827
-A989B423750D36ADDD2E286E7F3B694E29B8BC403693C6F7CAB5FE34F1E48C8D41B47831E8C3F5BE
-5ED5142E3C44ACF5180CD41FDA149B1F4AED36812E42BC184227F5034220F74F67830255E1CAEC12
-66DEFA358A87D2E3B4B4E7EF30181570D0B2B43072EE0311C2C157D32EE2BEA8EA4251B59F6B61D2
-B4FDEB654DEB67AA3DFF4AD65B727F0D6B7D61523E4B44D99BA5CD33540F340A35DDD466ABEA4E72
-E504FC9BAAE51D231C33A8CE7DC2970DE4C1FB5B096A3D9C641EF77DC9039886831DDD01C4F21E6E
-168E38BBDDA5F4308C959C7BBF36A42D042DA6862937EB20D4FA2E5927741A58DA5CBFFD9553BEFF
-BD92E6D64871D8B25D9049F4E71970A8FF5557D1DE83DD24286D6C3E4770EE00F9A1A0B0063C9999
-4AEC75E84D6F9C488434D1F3DCFD0A8BEE9ED8257CA97E75E8B1285747184D6D2228EF95D4A0B8DA
-252318ABD35C8398FC6568B294D90AB308A7675F9F160140F0A08C88AD0CA1CA2CF85E4D031CFA3B
-87635F1398EB7DBC666A259F02DB6741D13E11B230025DD6DD64C438409AF109090058151E4DFB8C
-0E9CD65935C4CC063CC6100FDE70896E23E3661C7FC1B8228B26A55903E997F80207EDD8863FA074
-EE4FF23BE585BAF708040C9F8CFDEB42FB8EB71D4CB6D7757E973E4D8C9DDD082712C23F868E1135
-ECD91250BB4335958B07C12FDA75EEB56BE19D1644C1F76A8811C021122619F751CBBFEB1D3DC912
-999017FA163672A1EF754C5CB78962BAAB76EC48461B492FA88F9897170DE857CC8374C8BAE417D4
-C78A56047024731F4A45145F0393A27CAB614A7FF747BBC28E6880D4D01C0A6CF317A1DE5BB5ADFA
-4B5FBFE0C57598C79F25AE57BB797A489D51F85A9B9CF8BEA64293F8FCC43B0D5484DF99DBE19152
-692CE756F6FBE8CE5831CF4B8A5AF47524E272C45C62ACBFBDFE7E60B05BB1A1A6AF0E9210012014
-69B3DBB49EC7B23A363FA68417B7118DCEA71D4ACA2E36F88C6DDEFB70205DF3AB7C74CF65CFD01F
-F85FAF99F172689737331D4C6CFF7A29029772F487FBF625F17BDAD89B4AC076948277B4ED687840
-301016C2B7AD4C6D02F81E88C75B7A04D724E234E38A38269351582245E361A42C75B8256AFD5624
-B558ADA2190F960A896BBAE7A8C57E76DA10DC29E69BBF3AA86214C001A27B39C1D17C548DA5601E
-86A5CF53E7B1896BF003AAE9387ABA9B102EB1E9002DD3754A378F3E49F2C6EECF47EB1BAC2CFCE1
-1AC0C5CB063672D32733563F3E1E891B6073739BC53AAA0043FC45E90E413DFBD4548DD320B681ED
-70A7443A233D79E3F038D26975586E5CDD2115AA614727B1F6DD4024B85CCCFC79D10B7B6AFA789D
-B37BD0E8C423C1A4A8681B5FF3A9FA1F61A46E46C4B1836D1AA41A89264A7F4B1C259E4B10ECDF37
-5BD26A1F412FE01FBDC03368FCAF48AA0EC28B1BD603A6A0D0DADE66D14C9B7285569230FAB76803
-35BE104305E4B748FA99FA31F23991608DFDD2097DA292551136F255051C9F7EEF3FB7C7FDB4E651
-C3D03A4CA357B587245236F4FF3252563F6BE08EF8A3EC09BE2BF27B9120F7D37801F6999EFB1C8A
-D1A08698CC59CEAE2CFCDBF6BD8F94DEC94F7EBF33AF05F52C85760C63950B455510C6AB9398D09A
-C288EFA09E8F631A59B03FBBC75BBDAFD675FFACCCF8ADF71E815A4A49F14BF70E42DB0B7347B528
-4E234C24010E2177DBBD57648E398FA6B54571A37BA8C989503594D03C6E60871A7F964599022154
-02BA168B8D1D2685F5CF8645D5E11A1769473027F42564C2966C10C0DEE1EE1B6975852A4870D492
-83A470E623337544A7CDA5C16FE2855BA2A548511FB4D4FF2E3E78D108E4C734F64EE2F12CC9562C
-BDF363EFAF5201B673AD00583FF108AFF6B68055A5F299452D176EAAFB92C84F114C8C22A05EAD65
-64A3371420EA9E646308DE97D40705E1638DF08704FC90249CBC0D2D3E884A4562CC27370B1A9738
-9D8EFD237E644A7370B8B38ED1C377F522C75F981D878A5E87101E621DF9D85C7207BBE5A87CCB60
-7F93A2E52F660E05C83A7A6CE6D01AB4B62A1EF8DA47CF97D4BBA0FA8EFFA9C0F61A325A97ADA694
-45F23AB1FE27A66C271639F839203040D44B11ECC6E805FBE88843B34C4FD52D1D3C6C70FFED433F
-C04501FC20536ABDFFA429B8DC8192B2D45DD9D646049CBF40719C3D674773F9676F9FCF32817DCB
-55402A72C56D74AA4CE4035687C730B6B44A9CC614BCA5A3FD17C170ED949E588EE45E89E18B0766
-2A6327FB9E8475C43E5DA1B0AF07C23774B19C9EF59281F5D884990D6194170D8293A86DB52A0FE1
-7E88DA82209A00A16BD29B8B2F13FD60AA25FCFA9745F57C8216283C1D6EA1C119CB9B8D57C00419
-5210FFBD56395A3EC2D3098ED38F389EFC0324FD0E55EA339B3892568229D8D3E205A821E8219FCB
-1A7713FCF3450F8BEF976CA0BECA47376A8CA73DF85B340C67EFE4534D459617996526B5E5D3D19E
-17CC5449E5EF2B82B2C4C2131FF8A19FCFE6A186A9840D872D85C40665A7A04E67EE26B8BC9206C3
-5B44C8F8A1AFC3867D96DC6D48BD45063BE25B882E9BC0D0948C18DC870E6925818E1FE17D336217
-F174EB4481F5C0ED37A3BEAFAF4D46F857811B6728BEC461AE6468D87A736572F4FF95B58B04564A
-9D3C22754587DF15495A319D822B838461764B73483C1F7CB930EECC6F7424841EE10E4087E95120
-2FE88A391375C96BEC4480328A54740213F741105B12A39F19808F3823507B88115D468C61B212A8
-ABAE7480E39BA52390A1892C7EC50271156B4E8076FC3ADA222695DF372385DA7B117A29E04CD2B8
-0A320F186D61C963FBDAFE9224E537057C49E82E405196AAB621B5FE4011E1782A747EF935ED8BB1
-1BDA39A141CC0BA42D04AE123383BC95A1D03A85A9440010C3B9613064FFECA76197E10919BA5006
-F35837ED9BCD7DE5E6D968AACB6FC91178091FA467EF6FDEB728E17293DC89DDE5A5261FAA95A2B0
-000FC750E7073900D4D88247DA464613ADC2B3903A6132D96AC0E1C564385FFBF6249DEA76BEA2A9
-9160632DD2FC2B99133E9F2F470F72B45D6F18B45020F604B06CD9174BA3805DB60EB9C5E6A9C789
-ACE76AE9C79C1BD34434E95E501BC968633AF93FF4883C6A596776254C0C74993710327086B2886B
-02FD3E42A725A03459CB36EE34A094139AF5FCF487D3DFE63FAD20BF0DFB60DEEDA2ACCA3510E963
-189D1256EABD81253F7FF9D11263FDBC1DCFDA3D1EA2E52005CE3C605C993231258A717423F64BFE
-EBC34684EFA676358B9B543C2042BEF954829FE3246A879845B30EBACB43D8DD7A20FCFEDF763AD2
-C5D20A798B69E08722DCE6A5762E249ACE3055B650D9E110599EA30DE5C4FE7200D5A8DA9E1FE268
-6350D0DF334877D0B9F6524C552D0B6DFFAE125EC4C18F7547BD51C14288E4ABB7F8A1A00458596C
-390AEEE6FA308AC1F788FAE30D7F8928AFC91D4DE6352D20B19D8D8AB122B7378CB379C5BE7E3CE2
-922FE667EA057B5D7B3F0B51C7BF0C85F87AC2F360D82C38964F4DABCC9104B32F0FB8802235E8E8
-D9A5997D392259074C00AF2CE1D2BF7B8E90E2E2AC34185C68A03BAB8B267778292B227245D7FF86
-70786E3F746F86B9D4D17190DB859A0E144B2A61E6AC9254DE5DBAEF20E2E9DB0B2FF654B996E962
-F55E465DD238BD1643CE59DC2B5A58B1E6E4AE2DDC2D74D79AFF3C34E4E593E051FDA236B79CC0DB
-268D2A89B1878051223BB8F33FF99BA87A4811C0B3BCC01171D0A731EB732ECD8749D27952C27886
-B252F9C3D190419FD2900987A0A255B9753FB7AA70C37462134C467A2C4B7920BED9F9E86F8F98B9
-6D00AF8B05A4BD5F14C2A0D914A9A84160D554FD0718F50ECB5DF5E76623065852DAA74C9AD6DA07
-A119DF12C3577FE276AE551D48B1C5CD8A50E84DEC9CB0840520D78FA7F9A7C2071E28CD20EC7649
-B991F3818CDE295CDB6085F24FCF93147E9F4DD084FBD32525326D2EA147ECD5B6C9D9F4A7166663
-AD18BF234E9CB92FF72138A8A49E73E527E9A6488A4CA808AECABC94D693CD2C0C357D285F65006F
-A2F9197F61FBCA6EF07B013E2B558AB531D2FD270CEE7FA8E467FAB885E90C5884843AA08E2BBFEA
-0AA575643727BA18ACC499FF34E3438645BE2AA71EA491E54687CD305E12BBC94FAEC848311AE816
-495B013BC5075A2D2AE54A7AD7C9105B64356CB51F18C2C28E3A83B9D81A4554DBEC9BEA9A660CF7
-E1BA89E6D4DFB3EEC6A3DE3FCDED9B2D614156EDAE8CFDAD5FF0EFEE31DA3E6A54D94CE9453A1CAA
-D9756D91BE85315F6514BAFBC821EE810BB5D8E1B8F05F64F3F72C4B35D424F7E4DC3AB581B74ADE
-B6D6297CDE7AA8278909F269FED79B7DFD39B1C0338E01D556C4DB9CA3A8578ACE3EC3D743ED4B9C
-0145E4525E8C315F7A1B98584B975C70F0D415708C8CCC13F848B1D36AC8249B73638F95DE0CD27C
-7EFB52BED4339EBDA4812564D7A77416DDF4CC88CFB52D07A252D89353C6826CA1832A153242979B
-6CEE783ABDE65C8B40CF4EA7B42B8DBCC0E02423DD693108006F6A4AEBF053B666C3CB63D1861F86
-EAACD43BB9BB6F2C3A17293C189331D253B447757EE7CBF4518BABB73A1D44874D7F0625E6A013C6
-08E991B4AD17A9ADB36740D25E3E35B459B422F7370B134CDFFF3F3BCC4C32B4E9EBF6A2478013F6
-6933A1FA9403A2F1161EC632F1F04EDF95ED0F33DAD9665D54DD9DB2564E51DA7B65978CAB50D6DC
-1568976E83B056EB0E3A6758518B6E17E9EBFE49B72EB148B472BA144BDC2AC95744C9BF1258F0A2
-E47470AB0EFF90E190A41108914AB8C1ED6B11E0681778521870E80C16AF2AFC723CAD8719ADB62D
-3939D3BC8CC1D8A4E07E9D734F54ECA33D936D2C39D5C8055739C33E53359BD40E576C11E93B4B4C
-122BDBC9B1BBF44243AF4F0BCDBDFADE68C526B5CD74E29CE3F70D62BA83C489034111FE8E4DAEA2
-F01F9D938ABB532DEEAC0E329F42453FF5C15DEC2AEA8C198323C9E8FEA55B3F5DC4751D2E2E16B6
-154E7F2ADD46860E9CA71DC114C99D80E7EA1DAB51E925DE161CEDD678EE6282AFF38E3CD0E65954
-9C970613209955A3F581E1ABE485E56402A3DB0D1E9B8A9DFD05C4B0B7F97FC6D0EED0B69AD6F182
-B1D028ADD2F24463834B13F5C1307F91D363891824E81108E57CFD5211F86400D3E96B107F3B1FE8
-9C4908649D04A46DC3CEE0DE66AF03A7FF9F4DAFECDD6DF4D93784CC899B527784DBE0718050FCE1
-85BDE3F39DEBCDD660B2488D23AB1CFF87B0546D02B48E7B7724C9E87B71BF34B5D6640E0F6ECE47
-B182D41C89461F712849C6CFDB7E3F5EBC1ACDD12D65A422BA362A8FD6CAAC5104CCC5AB5FC04A46
-E4309ACAC83D659DDDA256CCDDD1BFF9AB3622450C4FBC89C82214F00C42FB0311BCB1B722A691ED
-839CAF9024FB1671F18E4639C96D84718C663A4341DEC037175C6BBD288BBF5A0478298CA726567A
-9B74C32A527339C666A294A17F6821CBF243D13EA4B1603C292953308B566653423E7301A032E5D5
-E2B93F1C1434893633DD19501AD12728B5A1D9D36635B589FA2E151140B543D7C5E469AFAE8E80C4
-FC1D9CB6C3823CC1BB7EE40AECB58CBC1465792226B19E0FE79235115F6A3AFE19F98C5DB63D372D
-D7C041CD940F4F79F2474D9CEEA0334FA04A97DC9773064895CF11CF73F11B4684F06E48F4469F6A
-1AEB2CBBC52994DFAB3319DCE3A0C8C2EFA9627496F8CC84D3DF3BDC4FFCB61672780F294F453278
-AEB9262E66486856D37B7647141A82E049364ED3D03F925284A3F1FA3DDF4C0B48B3FE22E7DF9ABA
-239D33CD300FFA8FD4B96192BD568FB18D325CAA8E1F1FD4B27527417B034841FD49E4A77F217062
-3CC8B22101166D80361EB15FA9020D24F61007B0A8274DF9DFCD8E97C85568E76D34AD5DB1779B02
-F034A69CCF9D4EBAA188EB3017EEF5B22A0A552696A574907F695098BD8A4849D5C8311F129447CD
-7A3CF88B8191AEC0AFF30A38A9AB8135608A7829207A7D242F6E1FA7DDA19F5E4C28560D42DB4405
-77CC0C5F5803EEE897103ECA0BD944E320AC26553BEE7852EAA733BD13DF760056B2F5BD1243BEDA
-BC3C1EA0531017D74B47E18F801A60074D6DF849FD0532234545E5B5E112D1E7385341D39A89551C
-80DC2DEAED5D5DA2A4BE5015D297324E92BE64C68428132E6EC654DD4BDCC6640C68835FF8A05E09
-9604B8CD43D3AF2B2FE10C8AFEDEC5A70AF8509D12F662338CBF166D9452CD36331758AC4F4CBD7E
-DD52139AD27DC52569877FE709F297444C4F31899D1945C81B14ABDECBF31DC463A4148F04EC4FB9
-703C158216C0FBE65CCD450043ABFD4E65BF8B28CC148252E9F3E797EA0B57B8721C94CBC2EA602D
-F2C57E87938C887A382D2659226463BC7D6A1DA87F4A341A59BEA458177D3F18D1213539DC0E301F
-6EFE0111FCF6921368BE17CCBB7428127E0C059C2C5ADB2A3F0197F0CEAB77FF7F3C027A8EC3EE76
-CF5C986EB47CB60561C773B3A2DA47B5A35394E29373DBD5C3FF4C9213A89AED77CC4F3FCFC49EF6
-EC7557C521979A546983C106B3627B5FD2D71CC5F08A32BF49332A89C5DA71AFBFB94C949A91220A
-B1F885C981423AF93F73BC1CA4D92D9DBAE3EFE6A76E2DE3D0F74FD3255820636E3F1A6B7C185306
-23C12AF90CDCD2C0A728521E9B639EB6345D1DE8FFFC3B19C72E7A93823DFE3115E9E7BBBEB28CB7
-3DB121AED8920D47D8CC08EA2E472E39A4CAD5881B5C4204F2B732AF9D5189D25ABF413CC78714CB
-01B1D8CA5565169A919DC481F6D2E67F1D490AEBC5CC62A8F62C1A323EBB55ED35AA5C8D6F8B970E
-93205C2701CF4817BDA994FC16197B469ECC5F5E9DDF0FA05640C2E571849571CBD26402B1EB1E80
-3FCF423345007B9B52B13E3B034E8CB3984B925EBFFE719ED4F39F3D0E3343316A6FDC26BDBEA88C
-4366D3B2F851D2B244CC4408251AE2C77348CCE9DD8BB9C89800B572D38C5D1CC34C740BEEBB5DDB
-0A8BB251655FB989840D23205D16311A9FCCF7C85F6DFFEA9704492A4E7A8F6C0BDC29745AAC2ABF
-AEBA02B0E7AEFEB92BA63AB0DF844EB09D505C3DFC1058CE42CDD8043B76398401E1DB862FF9F76C
-05E8BC6260A4443CF494BC1755913D51745BF45ADF2F8C7A9546D7EF4FB11E9D94E4539632C2A396
-06D04480EE459408D7A2A869807A4C01881C1BB21C296A402B5E6E07093D833C3DFF075F4DD426EB
-87B1B8DE16C146DE79F52F5943015331EEB852809CBB8E1D6460AC4D176FE96F8D19F6CCB22ABBBA
-A27C4497D91312C3CFB5BB913B314E43D2EC6AB6897BA7C34CF2CAA6DB4BD69EB5DFCEE0AA917D69
-50E36A68A4C22A60DCC69379D47544A58D640EB10DFE120FCA843B588CA8B94F7869F97609A6FE03
-AC86EC1F7CEAD2EC8E81977D1B946E459DFCFEFE65A7BFF67E66F5F78A45D8DF65AF0146DF74E024
-FC042328886CC1DD7779F49CDBB750345CF83CD678A6A8897577299DEB38AD665DC4F21CE1892A18
-C256F318107DD3E9245C1AD3BC93CEF7B7BF057E33EC9A3F953251261AA3D1A8347261E70A46F777
-3A84F3D4D1A0DF6DD22A96429349DE0D180310E17955B10FBF53220EF6483D03C650A8D5C16D63DA
-F65C21ADCD6C2D0B5D4ADEB2F5526AACF7CF42F9A8BF4832FB2D4F73F3D5FFD984B572232F87BD3E
-59133ED3D2FA19F7856AD812515C74F7D851574019C532C25F8E163E595FC9C83E3E820C3CBF690D
-A62578A980FC0803EB6DB9B1E90E3256BD4650816ABE5EA86CE65C2EB418D0ADDA5F3EA04E17AA8C
-4536CC471AC20236E66ECA3619F161DFEFA485386C30EBB86A7AD930FD0AADF2DA69DCAF26C0F677
-206E2030E3B15B3662C0AD03DBC1636EBFAD1F2F2C37F5FA9856B0198C5B1D80B69C5EFFD94CE071
-5135C649C26B9BA1266B0A5B270CD08A706166C0B320915C87B27DE21DEB5D7E4806F6E700B7A06A
-4E29B629CB40761983E9CA8E34E869ABD04DDA190BFE5A6EE8B22D7E511B84EA584A84211F27AF89
-18DC5AF8A1FF2D360B6BE3CA8E66BA4CD2CE6A25E7E89406684DA83FFBCCCCBFD0844FE3BECD7DE6
-7764C59C022DB1168D585FE25073FE00E30218D1DFE115CA1FC606AFCB04F2A082EF91788B6BD096
-84DEA31F20034A91AB9D971366F97B5009FEFBF1EF0AD941654081B1E8F0B2EA495069A1DDF11DC5
-6857D29533DC857958B49D1A0779732819FD22E437084BD9F3C4F2CDA4D12CA14431937AB63A03F9
-C040AF1D801F367ABDCA7302E18A9050D6026FBA5A5A7FAD44E31593173CDF277CD737D1CEF59FE9
-684252BC0DDD00A80E023B88222494C1C8C0884230AB11D1083225AFDCDBC1E24D4AD5FAB396D2E3
-70E44A7571B230660D510A5076D8E35F7DB72C0566DFC119EE1B8AC3C0406950A3C4A4DA36BDE297
-040A27F70753A87E6CD593DC6BE9962261A99AE5949340C5D45C94A9AA3DD636CE8B497BBB812345
-7C824F443A53B3EE595C38983FE3E07DBDC6ACD55CAE8BE1081AFD4857A5F52A3C925143507A3C37
-F1992CF72ED0D4C48D94AE6CADDC3BC87AC3A3EF035E02181F78449E4B063B0835E827644051551C
-1603E2EAB5875F28FC77BEBA6923428D5521C698C6B7F133B0F689F105FDBAC30A8ED2F29F0255DD
-F8A037B81F04EDF004CBE639C8DB0F94D0C5DB92D34D66C2FED66CF8B895AFC4E659D08388EA44EA
-E83CE459E5BE306750A682B627802990037157339BF142BCB9C08FAFDC3C3FB16DC3544F62C6C7E3
-3E20CC4FC7CA21E2C3F6C546CD78DEE348F1A4C8CB548EF20C049678916771D83ACC9B7B22784AD8
-580134471A3C79BC86B5D6D0D305C32E6204274351C94F9DF45D9B2AD5B5087A89F90D6AA033E4B1
-D1BED022F36147C7ABD2B73134DFFD50907258E610C3B20949E141172B1C6A76DB238C375021CBA6
-645CDC26B717428B5A9B4D3F32A4B1E22FEFF3BB93FD889E1DEF8087718D5E3E650FE4A3330DA9C3
-7E9EB499DF5A342D8BA4C0A033C3347CB25A31BE143ECBF91384F2381E323E7FD3A82A3197C18905
-3200AE2C86B9D01AB0B289841EA7E9E9A26966E0DEF54DE0B85D8DF084B8C590081E444BAF1E1F60
-670FA12AB97159318624F2AF1B5EC7DD83C1073A99398D2143A52D10A13C201FB356BC9E90C63BB0
-BC2D4C42AF4A8B9C8C4D58A1B32E0597C63B3F8B3E893BD3BE8C60231838F1BC78E73A6C8CDD5E7F
-2907F897FC8EE99BFFDA7338BCEFB5AEF950E5549ADFD207AEB15846B509FC57989883642498A381
-1B8E5CDE69C05924EFAEC232FA4CEF302EE3251366ECAEF57D25CFA3B4A9E6397D996F421C900BEB
-CF73B038FE7B16FD0A1172AC2F40D19CE0B02FCEB8BC47DA5344CB933C7FEC950184F78ACB32D3E5
-E290E84BE753B9E7A7BFC4416CCF29D023760C06CDDEF2505806A65E1508990529245059AFD301DB
-669D41BD72BF7A80A9DF66B876B3553FDF4DD38D15289AF7A1AFBC53FFFF135A6348DD784AB42A6C
-0D6AA330B069607E2DF3CBEFCE79D6F63E274C9E73A33EB85246D5EBB986BFA923DF68B2B8CF82AF
-6C33E785F35B25B1D1D614DE85A4F4510ADFE42D75B5FA5408A59ABE53859E28B3D000EB9C6A7D2F
-67C91DD14C895BA87B9CB57B851E5193FCC2A443AF85FE28DF6F39537F23A058BCF81DD8C04CB2C2
-5040300F4C55975E856DCB4E21E2B5481BDCC05601942FB25BB8A6B6F93E2C2A33CD478B44655657
-C557EBB080179EE5D98C5CEBE0B25BFDD952FFEB258014D7A5BC4BCA4F1A23BBA73C454B12960451
-CE1752401B0151CB2E01D5C72595095EAE91D8D3BD55A54A2AEA89239FA176FA7CD6F16BB0733EF6
-CE6E77763A23AAC77DA88C8EFA7BBB2991E472FF2075FB25A75ACFA70A04C28764F4AE4C12051B25
-B120CAD2E3044DA35C1F94135DBD69B10DE147321CBBDC814CE99982AC1D76CE3D3330E41AB31F3C
-76BF89B95EAB81AF3464C732D5B1411D97DB36C9063537F64756F205B16ED7058E2CB1D6946C00A1
-A0CDA9EBBE924BDA6C7D7B605C514A98133907B793C74CA858E82DA3519188CD974B34DAA74265DB
-5BC8550D5F0B1173ACEB87458BCE2AB1F96996C811699A0FE4A9B849D39023725E2B1EE7E426D30A
-6C5C75AE6BCEA6DB41E4EB2035F7F924E6B9F0DCD00EB2BB014222E55FE387FBF5B9B7C04F4688D5
-AE3529FDACB38B5EB0AF5C3A874C1AA6B17CDA8D1E22EEE05A3DA88449200D3D0D002DB86F6C51B3
-37C8E19F338E7BFA01E1202612D50E210140947D5F350E84F790286C3F679A5D7E43BCDC337265C2
-631527FD62D598B7CA1F5835C0441881B97F5197901ECDC4F195BC665A846823D2E41417373F8639
-567B228FE7B73D781F07A361AA49C3E9D80FE5B2A32C4C1E575D194E841967B08D10405FA44EEE28
-47DB9372C5CC931E50469532F1BAF577F680BAB4E30B7E1CFFA8574ABB679789F69A8A1BAC07B7C6
-4EF5CE5EB00E97B36FBEACA9BBA4A13B0293D34BDBC77AD1FF88E5744AF009823BC262511C4724DD
-585E7E17D90F230F7A5861B0DFC42F0B4E49A04EE0EE4DADB908479DEF8372F334C53D2BA5D855CB
-39DC7C9550F9D0F7F77E82D5A59FBBF34BFFE92DC9E6668B68FEEAA4F20053433D6749162BBAC5D0
-D428DCF2D58D49B127FA2E674EDC7D3613B1342F4D0ABD7F4C5B049FBF78E804D5F16505AE7EDCBF
-4D6FA08D72890F5D55199034572AB4B0C9A7E7F6F5A403198864ADF113CAFF5BF9D4AB5B16F81D0F
-C2188FC80875E10034D12E30C0364F8F72797F1AED525A2712A40D44210B813DF5A29C84E9F6D51B
-1D60A5F6F938FAABF878D29E6AB252D95D05FC1ADF5D4CE1C9E585219112112BC6CD5C766411FBD2
-2731794B5DE0A27AC57D3C57926807469C360372BE529098C350EFE2154B87F1205A57A0B04C5206
-CC4FA66B8793BBBE492CC3271FB4F90A28D0066E0D7F63B8DD01549A05AFA5482C29560ABD628568
-75CAC16100087540162473498C14087B29B86B7BFAD693E81765CEC781F3FC80E9C7B410E9B55B88
-114191A1703C638DFBB469ED1DD8254B1407003A319CE74AD419B077F17047A01F0BC0AC8507191B
-F72D77D9333C9DA8C9DA733EFB5305F49CB8C7BC451321ADD7D896395D269DCDFDD084EB3AA70338
-6C0697E962929651164135C094D9BB1C9B949D5EEBD3BB17F02C98C813CCBFB23C2C26218A2F4C63
-9A8B9DFF2C29406037F91938A5E1227310728428B56F48108CDEB33BD3191ECA89F947271983DB77
-6B2BC897A30EECF2601EE3B2A6F0E135397622AAC1F2DF523CE6E6BC720E13CB530CEF4AB9C8273B
-D3D81563AC8A8E6C44A195112DAF824BC7A72FCDC4E129A480717BEB01085DEE65EE4344D0B41EC0
-BCDF842566B1D9F5353B1F6A063FFA6CDB06EF634C8BD5A7A63F991D178F56EACA653DD67685CE49
-E98C7554745A4AC533217662D23E1D6937135D13BC2208EB8D50560A2BAAC319DFAE478B6BA4CA5E
-DA20222F0E9BDB0806320ED1665B54A347DE0C42E9F77842DE4D188E7E824EB2F0D7AD163F05480A
-7FA99C5A603BBC5DBC843774CA66E889B945054C0ED0B1A4BB14324EF901B023C208CB95DFCE9284
-89789690CC45BAB97BE449F8E2F5AA9276C0571303E9788C46E7F789555BFCDC3FA9ED8DA8AD9BA4
-8B3AE09404664391E63A989EF1E24BB464043AA099E4F2D796E352EB277106D8D81BAF2F8562EF46
-BCFD1E0047E8018CBD973021DC1C1D821AF03F083F0B088A62EBCF2BF6C5B0FCFA441AAD1625FDB8
-34F943DD47A5A42EB3E9A5B49641F797C288B799A64897F1346070461B6D535E0C4ED099199C387A
-3176AEDC7DA7E7D9E118E55565092A36F7C74ABF281720C0147F4E4F37D49436466C61FF12764E30
-43D8A6D027E70537164F0E7942F4ACA42BB2CB136177EF7197E76F49AB403F741C0EF902FEBC471A
-D6C627424320A8C3A1F04C310C511B3F91C3937D9ACF459999C18A33F2C852EC38CA806599C728C5
-43714018C65E2C5F430F6270AF52AD71ED38813B60440779455F9529A4A1623CB9F5422B9216F9CD
-BA913B9A1CD95DA225E254E8101216085020660509D03A034B5D7E32E3DB5E5962A9A27711D4C3E2
-9CD84057F7D0D7E8000947AFE896F8523253391D2E11FFFE523366B05C532D5629A90741EAB3D4A7
-31D3F6D4F03FF93233DDF88BB1913ABA22EB9AA6311E3144381DAE29BCC8639958EEE59ACCFA06F3
-5DCCC63E0609F542F3EE5DFB1CF718CA3F328455726F8F65E23ACD970E4049225998371B63E35AE9
-8DC54D8329B8DB0901FAA63129EDE21B158776981D4D094013C096E9CD020315D123C03DEBA21E97
-E4B584B4BC0AF25F5DCE53C2DC0F3E61F99BECAB40799478BE7F5AFD7F68E23EF50AD6645C967EE1
-1206B6E791769428ACDC370D64E4F2B3972E0E4F442297199350663D6E772FC6777A9B9DE215273D
-082CCE4E8678FE9948DC8D5B0E459CD02F1645AC5620F3571A40B4D5A17DF5CFF48B6C843DDEAB5E
-BF58FE13D7DA08E8AA7902119248B3B151DA583101CF80853B0150FE05BDEDBFB50A7FB0F65728C9
-3B9DF48CE8AF1DF1FAC25C1D58E1AD30274A00EB54CF2F16029E1AC0A0919C0655474B9A6936AEE0
-FB74BD185FE7D70BB84786997D34A40326A74356A4AFAEE67B6B26D1C1A7BCFF8697B55C816CCD77
-312C332A55315DC54F9BC0A0F12500E0A76B3936292A3DA2DDF5AA8CBB9B5DC32EDACC4827D684D2
-74E65B8B76FB2C2B19F7D5607523FA953E34BB39032C05B1C1244304606C55660D3CA8607E764EA5
-B03DB7FCAB5CF7788C6E60EC8C449BCAFD90BCABA4132B6CBCCFF16784FB59B36B77CF0A9EA572E4
-CA0A01C725A6CF2E4500CDDF5BACCB9094D48925434F044118CFDC2696AF5FC0CAB3884107ED17B9
-BDE0C0104B1292A1F8C99B06FC4A6360B24480BD59DF0488641899B0F42B1311B582717BA7ECFEE1
-4143654B5371C8B9B2D80685AD38D897AD1E64875C28C7020A84FBB3A3BBEE16617DCB9BC822B7C5
-9C5A18C0CF7E80163ADFB7AA03B7CDE8497C1697D90F2ED90F813095C5B91657FC294EF0E341DB33
-92ED860CB2E0AA09293D0F99AE9EB54C761CA2DB1E51E1CEAEAB276C7BD916C68510D72D9A67468B
-09B3C39A7815628FB126CDFD5EFF59CC8184C0D35A5B5960F824BD175495DD3EB12A4E96008CB13B
-8C5745303E66CF8608FF27C4709C1D854EB79608E52F068FEC0151A74C125EDEAEA555C198FC0802
-7BBBB802835E1D435077AE4B1CCDBF722354F6C572BEB1376D3E342195FA80AC9722EB2F46E44DE0
-5F5A227B731B8D4A4B6EDEF04AF2C5DEC2EEF8FF48C5B18710ADE3DBFA0C956505B6DA9CCB7CBB83
-4DB6CC754948855D833670FF0AC42A4773FEA8322BECEE04CA74AC2D66855132D11A51524488C547
-71B5B7A512796D7D7AE0F9C1FBC9CBDBA0831074F4D200349D0CA40537B92496692766F020AC43AC
-01DB8B2AA2EFA9D21732BE3A315F6CAA402BB2E61D40DDEBDE11276D90C2C601A935C168BE600464
-76ADED15087D54A14C68EECBBBB590927C1E10D291C9285334CB0C80EDBD392BDE4D535EB61F8E76
-41F58AC1DF5B1C5A5D91E3E27E05CAF7EC97ECF0C85B6425197AA856521ED701E5AEB82A7F52A8BD
-7DC97D5B3FB5C99A5DF84D1BAFF89072922509D76BC6EDB15CE5F9EB8F4154BEE1E82020240283BD
-C83A8E49AA9A2649B7955D5C058F2818A63BD0BFE7EACED4A49063C489A626277AE1246F721C9926
-E2A2B6C31045FBCD235F3CC58BC4DD6C57FE998EBD1E9FA5154652BE3A1685BCD2EFAA079A3293F7
-8142A6473822FAB627927EACCD61B3E99C3077103D2D19382BC7EE15BAD0FDE489602D055A01DBBC
-F91A566974559D1B477C209416887053169C3F8F59955BE4DE82B60558CC9AE15602A93F029F6B43
-29E0E62A03982DB32F5229714EFA1491A7B24AEFE18FEBC2C93DFE50B3F641B51BDD33DA38871BF5
-243C17502D00AEA2D9E9734E80A96788D4CF5BC12A42BC386162FC88A7435EE13200C1C2C6CCC5D2
-1A03941007B4C4291BDB711446CEAF27148104BB240357D5EDA0EA5A5CE27D4A83909D75BFC05D75
-F10AA74A6DE37D7DE15C1DDA3AC3045DA6CD48323D904E716B445E5E096FCB379353ED70CF4B6FAC
-102C762711079EFAF13FB74C9B47AF75F3F6BDA2A4647D2AB47ECAB64DA6CC01479F618E8D2D0A36
-45445E8744683CBBC560D47C98078B84206E90EB839B02D37C852B8E284463D4E4D890203C3D5B20
-352110034EAD6BD7F41456B807E1DB1631A9D499E52E9D9853D86728B1A2E511F40F8CA1E4724A0D
-17ECD640B52FF6C66E28693D89765FC391612E5889E77423EC85CBD0A038B6BA98B607701DC0C4B6
-6B3B28C7790A1F1EB8D051DC98276DD9CFEFAB3F65C1C928E48A060C992B392A43E56EAA6DED896D
-EBCE71F8245BE4687F2F1B8FC0F43ECE8DB0BD0AB0811C5CE73CBE336023A0D66168B34A95B4B0A7
-50B3BF1D197E3C042C7914FA731D7831AF798E9429571CBB977E6258244E84701E5FF91D608F98FC
-3D68A4EE5B81D5FF38B6C184F6118B875F022B4CE207DC7B37E1452DFDC591A3E506AE82C7E7BFF0
-011B0A3DBD616A993FBF878FB03B6C9F2055A2B095D29361F8253C2623653687FE0AB98078F6AEE5
-FC2C2BDE0405EABEDB3A33EB7F04CB6837176245F190C6BBBCD64522B12FE7F9CDCF201A1AA8A19A
-7BBC4AC064B4958F44AA0F8DDA23835AD28A1FD0EA105DE2F395385DCCFBE2261DC5A89A23AF606A
-3985E5038706B1FE0910400E16BF008F250F3BDE3AD806C735495D499F16F99275010478FD2127BF
-7CEDD6B5BD505FBE9BD0065B4A7090C9D27CD5B36C3AD33E1B31EB6D44E375003B51B909DA50BD18
-218418B3CD22B43278B144BE78406EAF16C7DF6B6C1C6238004AAB73736B38E168441DC16F9A5CF6
-0793A18633BC43D78674D12D38CC979F7CAADA6EFE807CEA499CB9FE616496682A66E04BBDACE1DC
-112B2156B9B0B20A58A8CB43FF0EEDB99805234B9A5789762AC7D65F5A319C33F4F7438CD15E06BB
-80A7A97E976E8CEC23F4C646A5821880A82B2F1DC27767F090997E91488BFA15064B702F864FCE65
-05D6CEF87D2A0A12B55BA189AF269811E3B8B850C8401F3906C080D32618D9698A766732A40A9FC5
-A94E5BDDA3D028D823D6B603B6D17DD046DE181FD989EA0F80B4CA62F7973E4DF5E032A31FE6BC8F
-5CDA678D4A72787EB8253EA5882C337CDF9AA3E1E7D9536DD09B047CD8962E773F72F6418A3AEF5A
-289B3406C152A50CE7BD4B493FFFC27F6AA52F79EA67E362FD92559AA4F94A2F787F6C735DFADCF2
-F08AAF98B80C53CA5607A94F25F04AA65A70A75937840E73055B3D65FB054C63E2E48E68488C9315
-A13EE949E03E46723C11CC759D222CBFAD2E1A87CAD779B23D38F7E2F660DE1388EAF1CF4D18994D
-75C6CC63F187FDB949940C18B537A0AFB12AC5F67B0283CA5EFE2E764C4369104B9D3B06490D1244
-C41D6085C85F1106082EC9DB84586230511C05C82412D2CDF3DAFBF4759A775628878F997415296B
-C416AC8352A6C6988691FCB831CF95C10BAE691ADB3BA2918B35924BD5C3ACAD8B137397B10AF82B
-479800FE16D472CD0CDBDAAB4F882A0649CF561004B8CB7CA32EC129D0A415BE6CB91DA2B65F44E8
-0D138808A127E851A7FCF927E99DAA0EA2D626B77A16C72E37F058A3B882FC4955DC8CB6312434BD
-3BCED75780B13590BF4FE8D64ACF0371F9FB1D361B05025852AAB9EDA1A0C997CFA58052C454FD45
-1E6C1F194F4D363114E312F6DC35BBAF357A32CD200A3DD9654155134259887D677ACC44F89AA401
-CA27282DF7DC3F2F04A108CBEF2558DCCE28BAC2D87B8D5B7181EA927F61977764F882626D4AB338
-D95C9477C54E9C36012A3CFFBE199EC8120A99D2D70A21F9D9A0354E4EAC7947990E8A6E0601796A
-AF6F14E758CABCABDFBD8204A8E748A3E5FEBA570D36E2BF474C0083229A63F96114182321B2EBE1
-BC76DD193724C4588C1D39D184C332FAEAF4C629F2B3B2F49996E46AA6C9F497428BEA52D58876B0
-DC07B460248BC85CC16773A5DAC36CDE8B152D96057F4EFAAF8B1DC10022038577368057699B3A37
-178A9F1F6C6CC60BAE820B7ADD0717911BD23A6DCDADAFA32473491AA80CFE90F2A77E24CE2826FF
-77B18B869C33FA292FE01D6477765044C7D14A548B28B1360125C6933F05C58B0889390537CDD16F
-8E967E0B38579449DFC1E07389B7069AA8594C5103465D5041CC929268DE863FADB6925B350AA94A
-27D421FB7FCC81C6B35F906F12246B7A5140511A97211BA9BD6831A508E963FE8BE961332F557808
-488F06EAD75E86D60DE3FA2425AE8439ECB9112BC3E4D73747C1C8E87A649919827049832DB0BF6D
-A8C85C9A2592AC002809070900ECAD52A56F1BFD456AFE066509694EAC075788456B0B0BDD7C192D
-321E9FB6AADCAEF00F570F22CD4A5322FBCE8FA98FAEB681940895426270BB4319C11DA67D88552A
-7373398AEC5DA7C9CAA9F3B34581C6E968DAAAB2751CC012199DD897B448986CFFBAE4D412BF9ECB
-F46742715A9569932516259D3B3A5431CD7028E42FC751C434E2B714C718202BF02CAF9B8A2075DE
-922322EA7CFA605C8376FA958B8FBE43031E1026FBE6126A3775F643EA67EBBD97F239FB3C435526
-75CD08B19CA5EBF53B40D728556B4481C7F73EC71CAB0F89E34D60C69B272FADC22E8E7BDC6210DB
-09FDD913E209F49FD28E8712B8508904620250746CA3B21B026EDAE60A2822F59E912E626B93E0D2
-BFB3230DFD0E54E91A1DBA25A609B64D41ABD897A5D21764C351E85F9E87BEAB9E645149AD32AEEB
-B3B1161032C701647115F98C1C2AAECE871862D91D321AB90F3E923B1FDEE00D927F897AA9812373
-6536E2E0700F10053D7E6C589BF66029D794883EAE4C8228941CE96565B50D48887B5314A2E55379
-59638222A6CA54C77CBABD460DAC11B063519AE4F50D93DE41763BA7CFBF4C7724360E750478EB62
-8921DAA065858341958E4F3EB5966C6DD77C05EEECDF4B5F6CF19AB507589B4219377959BD258EC9
-21C34FE1DB003F7D0FEA3E2FD6F5DDB0A2D62CA5A2CD3C7AB457DFF25094EFE04A9E1B9CE7AE3F30
-026B1CB039228D309A22899F6E9B9BFF922E117123347967D7C62C670E2C74579C35989925603022
-C17B1DCE378031ABC9B4B437C7B6E64620932E93189754C01D4B280B8B08699B2CA953AE4823BB9E
-E34133C5C95B3290E1BF010705AD852C72BE87291E1034B09F44A95B6A2F83FEE8841DCF661770AF
-44D0AC7F9CDB280939FC5D953D525E0B41B7BE188D5C794687330CD770D24D9CD53B895A253004E1
-8A31BE4E82B384
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndResource
-/Times-Roman-iso1252 /Times-Roman ISO1252Encoding psp_definefont
-/Times-Italic-iso1252 /Times-Italic ISO1252Encoding psp_definefont
-/NimbusMonL-Regu-iso1252 /NimbusMonL-Regu ISO1252Encoding psp_definefont
-/NimbusMonL-ReguObli-iso1252 /NimbusMonL-ReguObli ISO1252Encoding psp_definefont
-295 271 moveto
-0 0 0 setrgbcolor
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-370 271 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D6F64696669636174696F6E>
-show
-659 271 moveto
-<6475>
-show
-738 271 moveto
-<66696368696572>
-show
-897 271 moveto
-1 0 0 setrgbcolor
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<534D4553485F5352432F7372632F534D4553485F492F534D4553485F47656E5F692E6378782C>
-show
-1898 271 moveto
-0 0 0 setrgbcolor
-<E971756976616C656E74>
-show
-370 331 moveto
-<434F52424120>
-show
-543 331 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<706F7572206C652067E96EE97261746575722E>
-show
-294 433 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<23696E636C7564652094534D4553485F4D6178456C656D656E74566F6C756D655F692E68787894>
-show
-294 476 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 520 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 564 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 608 moveto
-<202020202020646F75626C65206C656E6774682C6D6178456C656D656E7473417265612C6D6178
-456C656D656E7473566F6C756D653B>
-show
-294 652 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 696 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 740 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 784 moveto
-<2020202020202020656C73652069662028737472636D70286D794879702D>
-show
-1050 784 moveto
-<3E4765744E616D652C>
-show
-1276 784 moveto
-<944D6178456C656D656E74566F6C756D659429203D3D203029207B>
-show
-294 828 moveto
-<20202020202020202020534D4553483A3A534D4553485F4D6178456C656D656E74566F6C756D65
-5F766172204D4556203D>
-show
-294 872 moveto
-<202020202020202020202020202020202020534D4553483A3A534D4553485F4D6178456C656D65
-6E74566F6C756D653A3A5F6E6172726F7728206D7948797020293B>
-show
-294 916 moveto
-<202020202020202020206D6178456C656D656E74566F6C756D65203D204D45562D>
-show
-1125 916 moveto
-<3E4765744D6178456C656D656E74566F6C756D6528293B>
-show
-294 960 moveto
-<20202020202020202020667072696E7466286465737446696C652C>
-show
-974 960 moveto
-<9425665C6E942C6D6178456C656D656E74566F6C756D65>
-show
-1553 960 moveto
-<293B>
-show
-294 1004 moveto
-<20202020202020207D>
-show
-294 1048 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1092 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1136 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1180 moveto
-<202020202020646F75626C65206C656E6774682C6D6178456C656D656E7473417265612C6D6178
-456C656D656E7473566F6C756D653B>
-show
-294 1224 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1268 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1312 moveto
-<20202020202020202020202020202020202E202020202020202020202020202020202020202020
-20202020202020202020202020202E>
-show
-294 1356 moveto
-<2020202020202020202020656C73652069662028737472636D7028614C696E65>
-show
-1100 1356 moveto
-<2C>
-show
-1125 1356 moveto
-<944D6178456C656D656E74566F6C756D659429203D3D203029207B>
-show
-294 1400 moveto
-<2020202020202020534D4553483A3A534D4553485F4879706F7468657369735F766172206D7948
-7970203D>
-show
-294 1444 moveto
-<2020202020202020202020202020202020746869732D>
-show
-848 1444 moveto
-<3E4372656174654879706F74686573697328614C696E652C73747564794964293B>
-show
-294 1488 moveto
-<2020202020202020534D4553483A3A534D4553485F4D6178456C656D656E74566F6C756D655F76
-6172204D4556203D>
-show
-294 1531 moveto
-<202020202020202020202020202020202020534D4553483A3A534D4553485F4D6178456C656D65
-6E74566F6C756D653A3A5F6E6172726F7728206D7948797020293B>
-show
-294 1575 moveto
-<2020202020202020667363616E66286C6F616446696C652C942573942C614C696E65293B>
-show
-294 1619 moveto
-<20202020202020206D6178456C656D656E74566F6C756D65203D2061746F6628614C696E65293B>
-show
-294 1663 moveto
-<20202020202020204D45562D>
-show
-596 1663 moveto
-<3E5365744D6178456C656D656E74566F6C756D6528>
-show
-1125 1663 moveto
-<6D6178456C656D656E74566F6C756D65>
-show
-1528 1663 moveto
-<293B>
-show
-294 1707 moveto
-<2020202020202020737472696E6720696F72537472696E67203D20>
-show
-974 1707 moveto
-/NimbusMonL-ReguObli-iso1252  findfont 42 -42 matrix scale makefont setfont
-<6F7262>
-show
-1049 1707 moveto
-<2D>
-show
-1074 1707 moveto
-<3E6F626A656374>
-show
-1250 1707 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<746F5F737472696E67284D4556293B>
-show
-294 1751 moveto
-<2020202020202020737072696E7466286F626A65637449642C>
-show
-924 1751 moveto
-<942564942C4D45562D>
-show
-1150 1751 moveto
-<3E47657449642829293B>
-show
-294 1795 moveto
-<2020202020202020534D455348436F7262614F626A5B737472696E6728>
-show
-1024 1795 moveto
-<944879706F5F94>
-show
-1200 1795 moveto
-<292B737472696E67286F626A6563744964295D203D20696F72537472696E673B>
-show
-294 1839 moveto
-<2020202020202020>
-show
-495 1839 moveto
-<7D>
-show
-295 1956 moveto
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-370 1956 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D6F64696669636174696F6E20646573206669636869657273>
-show
-370 2015 moveto
-1 0 0 setrgbcolor
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<534D4553485F5352432F7372632F4472697665724D45442F4472697665724D45445F575F534D44
-535F4D6573682E63787820>
-show
-1672 2015 moveto
-0 0 0 setrgbcolor
-<6574>
-show
-370 2070 moveto
-1 0 0 setrgbcolor
-<534D4553485F5352432F7372632F4472697665724D45442F4472697665724D45445F575F534D45
-534844535F4D6573682E63787820>
-show
-1764 2070 moveto
-0 0 0 setrgbcolor
-<706F7572206C27E96372697475726520E0>
-show
-370 2125 moveto
-<74726176657273>
-show
-551 2125 moveto
-<6C65>
-show
-627 2125 moveto
-<647269766572>
-show
-789 2125 moveto
-<4D4544>
-show
-937 2125 moveto
-<64616E73>
-show
-1072 2125 moveto
-<6C61>
-show
-1150 2125 moveto
-<737472756374757265>
-show
-1370 2125 moveto
-<6465>
-show
-1458 2125 moveto
-<646F6E6EE965>
-show
-1642 2125 moveto
-<534D4453>
-show
-1809 2125 moveto
-<6574>
-show
-1885 2125 moveto
-<534D4553484453>
-show
-370 2180 moveto
-<726573706563746976656D656E742028636573207374727563747572657320736F6E7420696E74
-65726E6573206175206D6F64756C6520534D455348292E>
-show
-294 2282 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<202020202020636173652034>
-show
-596 2282 moveto
-<20>
-show
-621 2282 moveto
-<3A>
-show
-294 2326 moveto
-<2020202020202020656C656D5F49645B375D2E707573685F6261636B28656C656D2D>
-show
-1150 2326 moveto
-<3E47657449442829293B>
-show
-294 2370 moveto
-<20202020202020206E6D61696C6C65735B375D2B2B3B>
-show
-294 2414 moveto
-<2020202020202020627265616B3B>
-show
-294 2458 moveto
-<2020202020207D>
-show
-295 2575 moveto
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-370 2575 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D6F64696669636174696F6E2064752066696368696572>
-show
-370 2634 moveto
-1 0 0 setrgbcolor
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<534D4553485F5352432F7372632F4472697665724D45442F4472697665724D45445F525F534D44
-535F4D6573682E637878>
-show
-1712 2634 moveto
-0 0 0 setrgbcolor
-<706F7572>
-show
-1838 2634 moveto
-<6C61>
-show
-1909 2634 moveto
-<6C656374757265>
-show
-2080 2634 moveto
-<E0>
-show
-370 2689 moveto
-<74726176657273206C6520647269766572204D454420737572206C612073747275637475726520
-646520646F6E6EE965206475206D61696C6C61676520534D44532E>
-show
-280 399 1 1451 rectfill
-2125 399 1 1451 rectfill
-280 399 1846 1 rectfill
-280 1849 1846 1 rectfill
-280 2248 1 220 rectfill
-2125 2248 1 220 rectfill
-280 2248 1846 1 rectfill
-280 2467 1846 1 rectfill
-showpage
-grestore grestore
-%%PageTrailer
-
-%%Page: 5 5
-%%PageBoundingBox: 18 18 577 824
-%%BeginSetup
-%
-%%EndSetup
-%%BeginPageSetup
-%
-gsave
-[0.24 0 0 -0.24 18 824] concat
-gsave
-%%EndPageSetup
-%%BeginResource: font NimbusMonL-Regu
-%!PS-AdobeFont-1.0: NimbusMonL-Regu 1.05
-%%CreationDate: Wed Dec 22 1999
-% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-% (URW)++,Copyright 1999 by (URW)++ Design & Development
-% See the file PUBLIC (Aladdin Free Public License) for license conditions.
-% As a special exception, permission is granted to include this font
-% program in a Postscript or PDF file that consists of a document that
-% contains text to be displayed or printed using this font, regardless
-% of the conditions or license applying to the document itself.
-12 dict begin
-/FontInfo 10 dict dup begin
-/version (1.05) readonly def
-/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file PUBLIC (Aladdin Free Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
-/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
-/FullName (Nimbus Mono L Regular) readonly def
-/FamilyName (Nimbus Mono L) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0.0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/FontName /NimbusMonL-Regu def
-/PaintType 0 def
-/WMode 0 def
-/FontBBox {-12 -237 650 811} readonly def
-/FontType 1 def
-/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
-/Encoding StandardEncoding def
-/UniqueID 5020945 def
-currentdict end
-currentfile eexec
-E98D09D760A3C22CF119F9DC699A22C35B5B35ED6AA23593C76D54CABB5E942BF7D6DD84F1664B89
-699C74B472DE9F8E6DF925F6C4F204E9F1C639B4DBA988ED2AC419FF2B2BDE605B8EE3264EDD6641
-2D4F21C64AC522BDFC7C5502F9C3F3E5592B3B2093D33C9BFAEDD2D49E89AABAA832E23F062E91A2
-5032519D1868816E44B4E0747795003D7930299D6E1E2A5BFE0D595DC97E140989CE81D8D7F852FF
-9CDC7A1B1B598C69131DEE005B415805A16D8A123E6A2261C63C769D2F4B60FA2C438AD7D199D8E4
-5F7E7C9A605C8CA14E21FCD81C9A515FB8DB6F99604534D06EA9D87FE0FAA852899C9D0595C7A97E
-6C55F79FAC45CD38E87B10D210CE7501E88C8FCD3444354365FB893A12F596AE2C1E70D5819EE0D0
-87D10BF8DA96F3DABD5405D28C4228C6C31BA4052464859640933FEEFD8071C0C84CDD829A9B1D0B
-A01F25A4D50EE2EA2B45160CA6333B2D2800306ED2BEFDFE155E9D9F9342EB8D5B0ADBF2460CCC98
-643FB1287CCD28ABA7B5CAB92EC39EE2E918990372B16F8487EBA30EAE88708B6CF33B6C015D8096
-C7CFE2F139F52052E3925C0D50FD64CE68236D59CB83EF56BFC584150EC38065059F3308AD6F9A99
-F83EF4E6CB13855C8175E31417D190D036B387D3952344A950F4D8C7781B307A094DF1ECAEE4D2C2
-FD747BC6F7F9C6BD0E90C19294F96C8C5CFE88FB34C477574A1B1630B8CC591529E59B20794DA32E
-61DECDA8ABBD1AE956CF74012AA01D42EE01E861B0AA6897C864788AE59DEF43C493246FDB1ACA55
-4C12594BC7B33657A9ECC9E3D1472EF826073F632BE540C35FF6FB40566773F3BB2204D3A579A08C
-CBC844C14B18C350F003B9DA23A570C362D6003893CA32F86F59B829C78EE3188B6E3F7FA81D7F62
-2825C639638DFB78B7AF1F500F5B450FA54DBFA5CBA277C794ECE93275A3DE0B452FDC8DDC2993BA
-A42F28A636008CDCB03EBF71BDCAF35019778993443F88412AD2AD0D7155A3944606463266322DBC
-0244B07DA1E9C27A27B59664E8566D7A54CC03E995AAD008B0A17E2C3EF61F720CE7F7788599C4E4
-4C709CD5C31B11107F16AD70B17B9AFE2E8CD922A7428DAC171427FFAF51067307FAB0ADB530E701
-FD22DA22C4CD3064067BD4F6089C4B2C87937DD426E4E9D2F60E608288BAC9056554D04947E69200
-61E379CF5E81BFD32FD37EFAC1F61CEBEE551B0851516471A7472C60DF89DAA9EB1DC5A67E479745
-3E69B9E22BAF4E3CCA4192D603295B018C4AB69D18DE52DFDF15E96B557F290A4B8C5B1E7A6CACA8
-1F2351B97ADFC36995ABA43803A6E5AC04A3C93495F6D38106B8B144449C07D1358210F9176E1565
-72363CFBDE576BFDF99FA329DD1346E83F79E06CF68250CA57A68931BC7F342AD295D0CBA17AA95B
-B8EEB53EA6E8E660B814E9F857CECB14F44A43288B69A9E7908D55BF19E844359879D28CAEF1C38A
-36420185D20DFB32C2E002202800E8EF3D67C5D50E919657CA958B538D537D503444865331D79BFC
-40312068D72364503BD0CC84B5F30A74D8B5B6A26AF2DB764564FB65A6BA8F9051AE2B4EA458D46A
-4569F30C6E77DC097356770362E6CF3F1661074778EBB44FF7D1E3B64FF75E77E11FE525BB121C65
-46CFD13300CA1F02D571B82A5825E6226D14FDCF27F06D87452A8B6C5DCA658535CEE2A795E58137
-D48E566B69D53A0C3B766E84C51EAA221C46999CC8065ADB2F129D5B630FAB1814C0C33B5AEA0EFB
-B6E994D80941B53079AF96D90A0B924F9B0E319BED9836B8F9053F868363D3CA554CBB181863301F
-8CB940872ED5FA7BD18CE39218B5AD8AC57D0F752D941076B1C64D99BE0DB86D7A6D96510D772EB2
-4C587F11779BD21CFE5BDE1F29C1EF9022B2B8BCD7F91153C845906722477829C40111D810480F3C
-F62DE8DBA7FD86CD236E656618CAF6FC46827FBC4898EA7672F8C9971AFE43E0E01EC8B77D4AF48C
-BF1210E98C1DB15C16D149BFF58AB0270CF015B107A3A50F5DC8F37FFB92EEC8CB6778DDB7CE4AAB
-C464C4AFF654223006A550EB52485A23D2B4AA7198D3CD54418102F1E9A4FBDE37B841E56F5C2C53
-966DB9B66B000E4588282E3FB80C2C519339F0002D2F83C979EDC5827A3B3C8EF8810A0F9DACB6B9
-998E9AF6551F56313DC4011904CB979AA2D32B11A811BC248141E4B9734D9FB7982A5671002D8279
-CAB93ABE057474628DEFC95D43890DB1ED34CFA8A20BDC3D874E7679A396158E522ED0AB969A4E3E
-C7E4474E192590504D54DEB7B260B7935C4E56548A7D121AC1F741F8CDF259EA1B5813175A77A1D2
-D30BA26F65EB765A04C09ED51F69F41551ADF399E6AA2FC09788137BEA4913F17B8EB838C38FB272
-1FDCB55FD65697FF0B850E7D3D1CE266BF90F7EC06A9A0876BDFE767D3A918B092FC78C775F945CF
-1F96E859C03DBF630D9A940939654C3549D8F7921CB94EE23D5A0535DE9DF31EA0F937F860B4F220
-A99ADDFC343D7CF7BFA0B803C12C26403F0DCFFC8EA786D0D8A8D9C367419CA8AE41190CE93A8086
-583A1E6C9D70B612C84D87D2EEAA71EC2DC12F4CDE6A821303D5F6A9BBDB7EEDCD289E80FA3B75F4
-7F481B50719DCF4A142069393593B9AF9CCEEAEC56A35B8787193D7C88113E9E1E221D151E093B01
-9EF89F6118BEC4735103CC8003CC5AD1B6727B3226CD44C497DA7052DD681695DBEC3397F9598C91
-77701C73BF0594CE93F23D50EC5BEE2FB9DA1FC966DF148B27B28EE3C89526DD6625E2887F9FA076
-7C127C609EE315626BC14D274FBEA56528DC06A27B2D476D46E9E7916590B156A5DF04A6CB15E362
-45D77021767B6E5BDFCC679670263FD891446C3371B11BB6E1DF60F960AAB4149D7753E6A5C33810
-C42C8BFF4E935003388506F8278BD7CB672F132E065AE684DCA0B9064D01DD620E7FFDFE04F14277
-EFE8E60159BA0FCA3FE2F28B902D4AC275D19F0AC6971EBE827C4A232D87650D2688345BCA78F879
-077114F0463C5F058107B669566F8171E4E284D278405580F04BFFC9902784216E0C9A17AA9B2935
-E66E18A783F723BE044389B7E9D62AA36818FF2EA406C3C1A9D2F3436F3EE7DB8BE86AFA8DAA6A4B
-1B84611350D8D27605509612B515E16AA843164D5D0805E36A2B9EF74C5F6A0B9D59A04B55697123
-27F4B1B30E9587CD103337639967CBDC655AA46E80D2CFD24BEB50815B5338E522B3A7AFE8362AB4
-F05D8BC52BBA9C5089ADA8C89529B0275AF422EB540D31A938B8740860756325B966B36817115213
-FAAF92DE63F6BAE1E0064BFBC5588098B61EB83C71F1C2082436D37DAF1ACBE186FEDC4BE7C1233B
-6F18BEC5F99002D21CB7864E4811F7AB3C03003E1E4490AD1AC793BD28FCD5EF0E6CC30EF39A08C5
-2F71939B0CEF620DC69E31E39D6DB969049031B0C92EF2DB653D97F370141456A52985076B268652
-FA2648C792780BAD637C4D7581FB2D62011D57E293719487CF2D1F013CFAA532E1C2D39178D51272
-A6AF041440BCA174B5CC902BD7390C7D3695056CB4BD7791F9FB6D88E7A70DEF2C97869F5DBC5BD8
-23C517C7B7C39D624DF627DC9653EA5347BFDA80B723F05F6DBB4C9EA501D862ACE05B9DBDF21B70
-56FBCD8C6D4B85873DCEE6166C8B5ADC0316CA12D9639F361B15A42F00E1D62EDBCA1111972FA0F4
-5758BECB31DB38316F3CDFE1B41748C93ED58B67E9B57ABBED5924A6D53E99FBC9A994A6489A8BDF
-13EB685548B4DC6D62DA7426C22227D4D43B6FFC7B5EA91C896730253E8941AFEE588359C2BECF6F
-FC415B9EB6D31CCB0F6C7F85853E6449FA6D627A97A3CE8303F148393ADCCCDFA2FE085C6908BE5C
-3C05AF00A6F02840206C3253A559AC5C049BDDFD11AD9B118403B84DA10AE3C470CB9A9A2D1D7B73
-2F59F5FE146DEDA60AE750F551AAC934621B4470E1BC324C436303E25F81D0DC3188BE0D6FEC5414
-C20E4CB18952E12CB6423DF7124627ACDE145500D77A97A8BFD9CB50D1FAA008E2CE2B2505A4749F
-1EBBB092C347023714055A9B63353AF9E7FEE05BB54C9843698101F79888A91531773830C2C967B5
-88D3ACD2192883D5CE3962D51084FC653EAE2C5FB2DA41DACEFB5C76812D2EDB5B109677289CD199
-8D457FB1023A19AC67295BBC1A9A20A426B06A368DF3C5DD083CB1180D287F5500F2C635EDE157EE
-FCEEC5503447382D15C748C1E35F68753992E5C90F900DE54D18F8E1B355D1076ADFB1F3590135FA
-D1A36F028E44F48ABB149B80CA9A54614D467F8D71CB310BBC7AC7100261092DB8C5BFD39E0AC6BC
-2C9D6CBC3A8C05FF8A74CB21608EC4A4CFE4CBAA2D056DBA14206106044DECF59F957EF8A9CADE4C
-9B19D8D30DD4FDE6A9548E50DB51ACA73330142153FC36B69C1C8D5B26D0C689B7040E81AC2C864F
-D7C097C99BE5953843E172C97AB5684F35FB03A725A89DBF371F08DDF40A1531FC1B676DB0E1543A
-EC6E97D3D2E4AA3D5831D8B3C952ABBFA112352814FB6FAB61A0D680E6640F6AEC8426200CF61286
-F7422CB2F78C61EBAA36D47EC16D7FAF8B4AF31D090CDFA255D9D7C61D46CFB22A7D6E1758E71ED5
-67E00CBD8E8F468DDFB477F091A2F915627F22FF47B876544BC1F03B6BBB98385F009C20BB1AA2A7
-A78674692B8EAC2E3C8069B79E679338DA57F72976810F845BEB6B9ADD32B95D78E5E60F16DD1668
-9C05FD82D36A3115BE8ED494A74DD211D58A2CDF983FCB9CDC29BF7F0E29988FA23560EDF514BC1D
-183F3B2A22C09FB179B47E05ADEF48DF02F31C29875D1915037B19407764A4292FE44E741651A8E3
-BEB5F0D972B6327090F664417C84F84FFBF0AFFF8B1D85C822D90730AB4140C42A51AA8B1DBE4398
-4EA8566040EB8B341CCE23FD3F69DD235A080BA5C69AECB9BC732BC2D7D40617DDA6B79FB6EE40C3
-556C7DF9B23DAD89E94054B1345DB8402AE679FC4655A4A776C0150463F8DB2BFC0608EA1F124E22
-1DDAE6026B5E5D007A7E4A0D6B3B0CF3A2669E67C5E4F01551966A7BC48F2F4B6A87E740D8095E63
-F77C7A027F26B52F2299DE5B8A2F6209BCF3D31CB0235F998F781E5CC81E31DC424E008D46EC0920
-2951E5684804A0592EA47D6C788A20487BEA2EC8F2E6C1D7F378B62DB43CA43C4B366F8B4319631C
-FE9854F0E10321CFA3B01C873584863BBEFC23C72C05E695B56E8A52E89AA2DAB543834D34DCAC5F
-ED08DC51825C5257AE59850D101D84F4CAA1D29FC932F9E0EFFBF7A9A7F3685F61F0490CD3CC8988
-2DB52A757A6AF4C4E67B407BD2316B1C0FFE7DC54E43C87B874F57E4903334E2140B011484863CDC
-ACA331175F2CF3D72E0042855983AAF8853D3015E870FF0807014C31D55060DF3FE1FCE157324481
-2744AB51322444632F9AFDA6706E320FFE82B8CBE242A19DF00CE73EE48E25FF49D5871BD3E60652
-298FE3E8D400609E232E0DDC794C0579ACEF89E841B2EDCA50D51151F65E8C1CC3B01EF1870558F0
-BF5743718C3E068617E81BFE120C6CA16E0924BFC2541177D53671CAA3AB641C41557DCDAE1A3461
-47B5E999C4541B08B4AFCBC187AFD653D5B5F8386DF6AD8FE69E21BD0567DF494F736C6A184FA4DE
-48DC9F347787CA96E2E00A296C2DA05C2AD9BC423E9CA428D7F1FA12DC9353A302FB8C529AF8688C
-BB543B45B2717EBF8F6C497935F4F3BFFD285E0402AB7544B3CA4643AE5A8B5250ED987A95FC1F27
-5B9707ACD0641BD0EE2AE9758494F8D8A51DCE408A38AC20EAF0852D72D84D0C6BE973326793AEB9
-55EAC6FE0A2813A355DCD22F6F2CE56588D1C055CDDFA98878BCEB6A018DB22922D2B600A20F8184
-2E665DF41013CA0947C4237C2BD60A75E2FD1A3FB8C8FA19485730B87461AD466ACB02DF8CA24091
-4FB090B3D2B41EB6B8FF05E1A59D9FD668AF70BA5BB72778953BA55FC5F9F626043450E1D09BC83D
-8605098ABEF884639A37809A32565CBEFB3FF39EE53D6C18C58C272BB928E4410E361E59A50F242D
-69747A032617C52DEBBF62364AB5A96EFAF642D9D82BA679B1D70FAC10A4EB62FA5CFC308E86368A
-AAD7E75948F43598CD1C544A0D4091374D7E88D4522CBE902391641327E888E7748FA889DCE67ADE
-61699E7D77763681CAEE9B1CA8837B2F7EF9C18CBCC538C465C8E2DD34616953CCB6030A222C728B
-834911C1A179E2C770289407AB28B303E724D97F747D6134B425216A64C6E0B60F633E2B85300047
-E4C90339CE030A0FAE31E830C8ABA5AB3386A3B69267351A7BFDD66356AE5E57FB2994452993E90D
-E7C4E260ABAB93C37831856A650D56E44172FECA01D6C7C380F250B82473960D2A2A5FB6B4DA668F
-46E624ACF7FA0FD4490F485D640A3ADFC9F8652E7A38CE5799F770C3606DB4B8B947F93967F779E3
-A3C0572F13A5A187D31D7BD12A5C7BE23CB6ED6192086241B76C5BA6983DB9C93E4B208D707D3760
-F03CD6272EF3A4CE89B8E52E6AC5871A3D03EB975759AB4BE239E5EC7842CBB333E692CC607C722E
-185D3C39164DD320C6945629C70FF66A5237C0A9520A1FAD6EB9816069351AB0F135D90CC0982B14
-7D2294AE4A38A527EE40BE9CDE2512AAEBB590E134388BB171D0956A7C4566D65A9A041BE6C4F883
-6B3EC3D2ED1B48B566A783292B15B6127920D247D494F070BB20BEFF60640B11B276DDEEE49706E8
-B2B21BB40B7F00AAFC594C492C25DCA774E0B80D82E927448DE2E74A9D0DC7AC9260096EAF187B6C
-D6AEAA6D1DC4205B4411122751A5B22688404EA7C5861730371FFAC10F5AFD4727A0E402AB5EA757
-606B75EB86A05E8F774D6E430A1A3FE2A37EBB06700474239FB1CFA05EE44B91B82244C575B52E7F
-AF934B04EEB0D933FEB57EBE326D75821C8B23EAA85B583AED4320B7F04B9F2DC591091216FDE52E
-064BAAA9C2C9D9714B95A4558C21F3CEBE624B5403B31508F178581AF6863083ED762F1E2E34A45C
-FDD71660D626FF8648F5D6C5E580D4765A67FB6159EC8077A9F0A88038C8D3D7C77FF0926E2123BE
-874F7BCAF129D55A5B5960F824BD1728ABCFCC51D23936DE9A25C408D786E44C3A2BAFA4423177AD
-060D21D38E15E23EB6FFC0B4120E814695D423EEFC2744A1FC81B4DF89D76F0A6803D8B14E75538C
-AAD03A72517B86514F6952F6FD619D9E910D980F00964DB325318C045BDF79647F453D4A5CF4E61D
-D5359782827229310405FBCF6107C3AD9DDEF9A9A339D5D5A6EB2E7838A0A43221BD62CBDF732DB0
-A638A52016FB35BA7761AEC846A023D3BF2D1BB183543E81EB7CAC1E5970CDC6F068C5EA118C7AAE
-528D1396E6DC939112DA4460C890EAD5C01BDC438F5BB734218BA6270ADD0DC1778FD8AB16831D6A
-302B814A1A44B07EDC65956C9E6CF4875DF521F3CE5B422F71081B6D69BD270F739095C9E81C0377
-934A8BC6390C420C4E4CDD9CF7E32544C68D884E15ACA3BCC07FC8C132D8FB9D752C15D75C52C288
-57E2EA461A6FCAD90C56843513F74461F18D7164BC597A28AE4BA7C86EE1703535A9B9ED50122627
-71FC12F102E800E0E1AF7BB46681BD2B14B614CEA91B7B2AAA35235DE76C0E113C92688F8EC81277
-D58C3406778E1EC1CC15F1CD9A137C8FFDAAB99ACE3BFC782916F1A877170589A92DC921E6740A22
-B84DC6BACDABCC76E64C79E3A588D80F8F4D376E1B426F15751CF7391102102F0AFAFD8B22DFDEB5
-48AEB5F30B1673023D22054A13391A0EC08DE6E7B685A0D031AABF20B7C62187C0284892D5EAADF1
-21BA28263EB863D5E36EA9C06A77CCFC0E17F593961591F84D82AF823EFE41044C8D606FEF83CCC7
-B0E961E7994DF8A3CC36B209D953E250ADAB8D22D7F2B4E2C9CA39EFA2D93E56195C1560E30A5190
-CC5B17FAEFCF250DF79F6B624A4B917E11C332222FCCFEC4F6A47BD9E75DA9854FC3F7AE554E91ED
-DE144D7AEF38A0E3EDB5E5A5626374DB94F022C8CF549093041DE00D7269B7CE544E748439BA2870
-718C08E58FB4A77D93EBC04B7957D272AE1601D41BF85A2BADAA0DF73B0D3841D4839C85677FB2E1
-5F1D6CE592669FF4BBC9C69DBA334DC37706F2F6BE83D5863E8CD6A30C08640AAC4C233684E66B4F
-E6B62D4A8BE9D531E47BEF5640D9B5C27D990092BE1597F6995C8A77BE9C18AAE6C1CF130775DDAC
-41D34438FC7AD8E042CB56CBF2944932EBA7D053E9376FF398367450E35A1945FE23E05C921096A1
-5454721FFD0F429A3E06DC3ED36F1C170BE79C66996EF8337AFF85B90C5D3A4A94455AE9FA32E211
-7A63E59001F052D5F6223125BFAFA40901E98960ADF7BB886729DCA82FC3B8CC52B37FF2517299E1
-D769057F8154FB95582F02CB0BECC873A9C71796ADBD3E91324FAA94F2C41CF57C30B5897D031C02
-D256C909E080E70BFD1F32E69EF67031138C2DDCD1A8E4B65E485C23C3E450ABDD9815512D6F34A8
-4B9DB715DB2C7A93BFB424316E1AA44397749CB01088428F149A3B4324737ED9957FD388248462AC
-1B2610D72BF5C073ECA567E7385CC959E37CAC7E05470160FFA5A9F63B8E9B082937E911586EA165
-374938F492EDF28CE6020953A5B5CCEC7737F9D9CC8538C4339567AAED3794ABA3B9F4EAE65466E8
-E326F6C399B36355935FBDCB9972F10B13494DC25097FCEC5A6398F275C8C151558E74C5175F7BAF
-4155E36B733F75CF9D5C5979B0764F14D8306E06BA24BF791141E404C69F3F8FCCD91B9C58C2C671
-AAE7D4F9E5D6414E46ED633A5F78AA5BF04E652246A066EAD9E582B181CC196EA2D3CFAA383B5D0E
-4CAC9336E119C08CC6AC55CBFBAE147C623B400453BBF447E96DE036FC025624384359EED7C7D5F7
-858DC0521377CF647A157FC3F188DE5EEF094DBA125510FDE34C570D7BE76AB5DF0A28BF45DDAADB
-EA7EEEDB936332DFE93081E0AFD3FDD46BED08D6914B2EFCFDC41662A33B90B03D76D34F48D30FC6
-BBBB600E90E6AC7243FDF026762A44B4D6E4ECBEF48C9D7B696AF29EEE063E557D8FCF0F09E0136F
-45D17E608DA36E59F2AECF8493F8D62536119B5F7E1554DFE3F6E8D7C9A2C6F557D18B4AF92C9F6E
-050975C3B5C54F9B5F4E39D600B6FA2CD6DE203A174028CBB2A201AF126D1013C229BB82CFD013ED
-199D01E51EE2780FE896E01C63C655087A3E61A7F1029FA5E97EA1872F1B45F22282DDC317E17926
-7368CB52DA9444F6055A3C653659CAD2A1D8712BC2B1B32C1DC6906D957FB88524EE066156ED6BDE
-B8D832F9338F9912E29A250A8C4674E667C1C278B677AEC9972BE83CBA3FB779893FCB8F81A323AC
-91474BA2A2334A07BB5628E905C518E634F6761A3289056F83D5DD7B3890987EEE1C18FB2D379CC1
-905F1AEB3B3D2AD578F0D6C845D2D40C4BCEE3F71C90E68E5417BB8CDDD878D83BA80AD8485F4067
-E5C3CABF28AB56CBB219C0AAB8FFC6C7E192BEC8CBCA1459AE4450AFCC81B9548F40CE2622E5A7C2
-81F74DCC02DAD57EFD92D072318DDF05BF42F1EA8163071E23949B0179CF7DE64677CA99B23CB926
-B3E294194EC13397EA1DC9A5E1CDCD828156CD71F81B64167D4FB01E6002713BD8AC6F82B20CD369
-9C6CA4704DC5C65A2D66EB155B7AF1C9BB46469416FB49C1C7E17A30A5F045271D7DF3FFF2F42C6B
-470701C381E3456A500C6BB3D0E47B4D91C5F34B49BB6272F1F8698B307D89EDA3A1565DAD1C0864
-627560CF922DCF5B34C67860352390B282F95394AA2CDE0E97CE3ED39546A6AF1C52BFCF81A29BE8
-2C47C99E8050E4889E4575B75F39E662F2DB7420673797E2ED3D67CDA7AE2C15D0A0A794D57D168E
-BE13214E89E0209AB2C0EB7784E9491AEFA3C02D0DF3AE5365A0FC4AE023CAB528162C7A1B173664
-9DFADDACA8DA5FA18B7D6489E4229E9E24D38A620464A744A5C60F6F9D334B908706B738AED18669
-8A8B278341FA4D65A0A88680BA484694921512F7DE93337FC1C02BBE6E64AF2DAD07603279D87329
-1D1F4D39C1DD6D89C90F65240F4808F6F1115CA55B88E242565E59F3BBF1F10EC7B88872E9AE61D4
-4CAE185463EDFAF7DF63DE4D2207D307AFB61501892965170D2945846FCF5973A1D458607F50C15E
-06E5BEC715E0C156259AAA6C735593E5564F65F443B78CC7512EC35A56F126DF9D30974A40872E42
-65E1AE5FD483CFCBBBA26DEE426CDC4721F19C3FDA86ED7AD4FA1120F63669BEFE7002B128CEAFD8
-C63E8AC09943B6CBDFB3D2476A026C00A8FF81B1F651B97F310C82ABA5F388CC1DB5AFCFF5996D52
-52A6A42FA4D972E41EE56088F78CB966F9051171C472C774879AECFFF08BFD9CEA40D7C298922ACE
-64F28C14E0B81F4DCADE81D71DE3983D87D905192EF13CEE71B2D3FF1A88AEC671EC318917DF98A3
-C9054E372D22A3CEC82FCC217F47319A40900312F6E32B536B9E7A7FA0837EC65CCDB5FB0D414371
-17596CB39D9382262DE6E65379D3A9709B2CFBABF5FC5D5B352425F06F88CD31012A2A4147B112F0
-C1C0ACCC808CD625E0228EEF66661F70AF96D3DCFECD402700E4F6522AC9A856DA466D55C84F65BE
-2810A1565163872D62EB81333A698ED7B68352CACCA2D7AD38AB55C19E4F5582F75818302F5FDADF
-1DCED09D94872F2D48FB636C8E38C7563C72C771A08C6B1F041F3532BDB39006C89A33C09BE1E3E6
-03622D891F98010BF1DE5355F557A1E09448D486ADEF565705277B31B8BF2B86761E32631E3435B6
-88B79D566F1747BA456DDB43CD239FB47FF7B425EAA4C657C8EEC26EE01AED07CF916E77D53634C1
-37AEEA009C6B515B6342C54BE2C7B95955B1A9DA277A0ABCDA2346E88018C726F481F71D6011AA42
-F8852F2E5749518FE3B3AB668213FE1A05C10A1C53953D75312631D6BBBA01D418199DFEFF8CF548
-6109B099FE8E2F606165FE30F532C03567785D5362AA873C9D3EECEB20F1945D55F49B0CCAC84967
-59FCC7292E46938943C262D78F3212D3F9D0F7B103157F423D71B1ED54B2A603F4C269029918F238
-EC6828FFCEC66009DB9C9E59534EABB183F31D7AD4C57B1BDF0BD2CE5A421882BC10CC1BCE6A970E
-2B586BB221567CCA483989DD0B8DEC424C1D1FF042DCB7834423CF244EDA28D2D969B17440CAEAF0
-24A6119DB010CE366821AFA424D1B8299609C04148275AE6E5257A7ACB3C766C747CE99CBA2D703C
-F19B7CF301B634D8B613DDC4AFE4633A4D77BFF8E00CFB5E289EBBCAC90A24307E7941EC1685CBAE
-400CADD876FCEF7F6557EEE167D2035A05120293527700DC510B038A496BE1D5CBAEF24ED39F7421
-1A93AADF22214ED606A80582485AFE358E3A46D0671148998A3B3BE209467009B43400870359D418
-9A8CEB4D5866AB52D16D9CEB1EAB71C07E6CAA34B70E3096BF7604C22C40D5FBFEEA616DA3BABD59
-DCDB97D883FC8742B8267A16A99B7953225F7144568D566E64542C92E538AC140C851E5D295528EB
-7CBB49909B1CAF6409C9BCCEB325468FA0B5F7CB2987382616B477CCFE4F4AC79E4A6F7165363543
-F04DE5B6F6E1C2E910CDC3CDD6C4C92737198F892337DCB6647BD226C820AC99C65D8E7772BBB74F
-E65DCAA8A22C33BC168BF48E40A82700A3A7668C5A9A71E397ACDFEE7D556C5C19467B7AA69C260B
-727407AC837BDB7D67DEC055C1F45D8BAC61048C45BC9FB3CEFE7549EAA2992D2EDC126FF7A05EAE
-58613332A2BC1465B2BC0429162B907D65F793D236EDDD8D35405866D71B25F62DC4A7E06D4DEE82
-840ACCAABC0774F8A63E9C0F7FC980B3583E7A8B01C46590E3BC04EBA565C2EA94F057D964A78A90
-EA9F52ABFD70F84E44E434BD10A42E98C794065724341F907E35D3CB257161E01C7084E3A0166D15
-CED65DA7BA87DBB2EA33D39BD99AFB93D3548358D08330E807F8552CECF63C84F805205491BA3A1A
-622E70C232FADF3BF2DCFD6F0539158D3306506F150B0518371912A25EB96163D73E9EEED42EDC84
-D688BC7F7708D9DCA348FAB4DF62E5809BD094842D0A31DBB7C4B41F94D946810C5EC10B69AABC2C
-91A59500B2E5D37F4755DDFB7AE4ABF757F4C5BCF77C7F95E6A616646456FE8F18407080BCABBFA5
-7704287AD26222DF91AB2613951E2D679472F8ADF06EA2A20205EC19972299A78BAC52114334470C
-5F5890C2F846B4C6042D73945127F2E3910ECA1C4CD7A16EFE4B4BE38A15AAA710682C3836A8CA83
-FD384970139D8B46FB0AEBB002DD224199672FFA02250FBCFA4E649E335428FC71F50F45E498419E
-DB0E970F46894A48F65580881C9C4250FCEF65C9B28699408E18B26FE6DB7F1CBDB767564E73CB59
-54C6D639CE33220C894F36E70F71C9F9AA3FE2AE0AA0E3F2E304EC5ABC661675CDE2E70519E4220A
-E26FBACBD01D5169EB844750753E6CED53E3678FDCD08AB93E10067E9C64F38B40B76D99B6CD92BD
-F4155A1EA5CC824998B59AAD06E09E5F15EBB2288D66EA71B296616734FEF2796F07FF0D8B047074
-A1111D68B99C2B70FC56E74A51B062F4998ACC85B1943C9477E436E5CD7AB18DBC898D21BB93475A
-623BDDA71D7B895BA2D4C10F4B90BF335126F4FD57D73AFA50170F6B3C364922E551D40E35DA75FA
-891762FA23401D39260F2E92C7807C746F13BB35CEF9DBF2E76E66A72FEFF095DA482A4DE8A42091
-7065736CF4DE904FB52E649A32255E2030A7B31B686353492F31C064A3C4B0448C4BFD44B8E15384
-FD809B8761EE26A7DFA1758D57CE4F0BC376EB2B3833534B15A83436BA553955ACB5A7A66796AC5B
-92DB5388BC53EFA27508B08E82821E5CF669BCE52BB860780F749B4F38ACDF5FF12726BF3EC2743F
-01014CDE96FE6B4C40A034E9EAFCA2A35CCC776C2669E6AD138070A40F48ED79136D7FF57E993E09
-B81C543FBADD350FF5B5F7A46F060F88E30FE2D8233832D18B6C323EE017EBC1DF5C838321CDC8A8
-4CABCAB20B60A1A3AA028F36EA6E87C850AF8AF7CD50AA6359038BFA8818821D02CEE8F51DAB8C05
-F7AE9797814D97F3DB8CCDDE45B21DBB15CEE292FAA534A5F317B357F4091F3DA357325B8B9F5EDB
-45865415973C143E5E5BAA483FBF2D06CDD4246675EC58B84C6AE65CA743117FF00F229243772561
-31A7F2BA26A9115AFD96C18216CFDF41B7220ED0CB3FCC26C36380007B382A02AEAE428887DC8BE5
-FDD630AC57EE3DC156C7B8B29E687F24442E35CE10BA4087295A641F7139C831F7CCDA6CCEB5DAFE
-537CC1A97C5A337D3C48A6AE947F58A30DC08CC7B58DBBB4737AD52783C573FC1E9408F55495A80E
-7FDA61F0B9C4F090158F1A416249EBBA936C27BEFDEF19D1BFB839EB70576A010706D8B95657B218
-9C2AE04C11EF9E57FE09880273761FB4302C388BD608FA0C7F00F033C9C00F4E3D5CE2D903E0DA52
-E69C7745EE9FA75E2AD93DC6CB5CCFCD3782A699B807AFC36AD1F62B05856D5DFD6F88831B90EB3D
-CD523582A49732E3FD7253126D39E8AFB8458B5F7AD7F94A8DAC13365F433C857AF4A42C0A08C4DB
-9887C4957259ED22D13CFDF5995DA957EA5A0F620B0214FBFE08AB6D552DBF048D62CEF6EFF12F15
-3511ECA7833E0E3E95F85E6AC0F95438AC4C126E1F1ECF336ED31CCA7EB216D279877123FD9FCD8F
-B5E52B587CFFC4428456DDCA816819A8A4A211D8F1629E5D42BA4C5C356E580C8A22C61D987552FA
-A97893816DA73D423686E4EBD44375C257F031318865A20F22115E72BF1EB9F93AAA169C140A33A0
-6C35BD4526A38BE79CF40AD1EFA10411E8F3300A8A8B97AB140EE6734E1BEE6C8EE443D698D34159
-97649C6F10F20ACD80236422E215E146D744A262DA3FC88DC0D86FF66512F49D3F957D3C5CFFEB42
-4823509F33F155057A4C6F37B52F4667767BA94F6B8B62856B553F307E5D230C44CBFDC9A97A45B1
-39FFB2F2565EB0E22026972FAD0FB7B9576FB6F368B61979943A398773600E7EE1DFEFBF26D45D40
-BDA66EBB96A56EE9CAE0B2420C5DD83E24DBA9FF885BB844BF3D2BF93B07325DFF60C0CB5FDCCA0A
-C8FB5A2E119D5AF26E53AB8E3B428481C2871DDA26EF0B621CD8572B3C664BC7AAC01A1D05B98F79
-1A7080D294BE81099BDA7982432F3DFF4775C44D23F4F1B2E0162B61A8B2CB5EE8564BF98E2ED403
-2219085FE6194C19DAC98A421826CAED7F1AB1477AB327506010217283894235D7DBFC1153D5ECC4
-8AA7293F19592B4D7E95FE55151889BCD1D7FA7DC2370D2DFE11D7E4EA34B5C7A8E73BD3A348FD38
-9EF45B6167FB90BA44C23E912F9A4F2FC0427ED070592F7110183BFDB2C400393BA7569058227926
-351F07FED4F33633BA03A72AA2DC6B598E49B96021DD868DAD0F352E5722FB714F667C15C68D49C0
-3D822D82677EDFE86FE9668E537DA284068C9B0AED83074C92A5B939296D505B837E6A9DDAB1AEAB
-7455A08A114C2222B339284674B74BF4CA9EE0C020BF2A148B439C71C6BE51A94CB64FBE4A7EB295
-5A455047CF5CB348B062ED4F6471CBC3E9ADD9BE9B96879AC7BC71BCE02FD02F17C6063985A5E898
-3D205AA1489DA13C408990ABA1C54F2F501AA172F530480D789C848118C0A74EF98D5F607A067BAF
-F6030D887AC6A6497F9A0B38F9705F328AAD4BFBB634F739386177B07F22D5771282444E5EE17335
-B4D0EC86117C697E79A5F4F65FDC08E4904DAEDAB20067EAE2448FD4301849E456D085F392DD1316
-7ADF75CCFDB723E2904A9C0C976D6B84DDEF9D92B0E15FB246C3ECC2D0BF314CFB957757B3A3E8E5
-801F520644E4601D291DA0F7507C06F3B9BB36FC1C70EAA444E14E56C0CFF06C7F853DF36DA9D8B6
-AF2544B853DFFF535A7E5C6FC145250CDDA229956019659D0D253A19A7B51A4E538BDC01F74D7704
-9949C2C97C7EC6392C2E61CCC0992B66DAF1AB08551063E53180D2A67DE496716CCBAA45462D9F91
-B66A22545962DDAB120511FF08627131B95E5DEEB8B4DD9643E7B2AF65C0FDCE11F5F1E8DD468DA1
-8D41C8C4F00EA73836F4F70EC50FC3EC6D358C0658A4261C6D15A582A2C7C994E7882E661855B352
-014576858A265FFBC425160669CE159D07EDAC04D060B44E5800A7AAE8E339C29B929AA81D2F515C
-46229D2080D5917AB20AB6B34FDCA8E4AF64ED660A3173786FB1A1D005D575C2A5187D3F7CFDC94C
-CC44A38C5CD523E9DA726D8EFA6DA7B6131DFF3435FEE838B2C7D6B97934295F06202D307FF78D90
-6699CB9C5BBB10D1D4DEA5FDA5BFB094E704607083B646D37F5DA1FC7AD21B813F44D8C1AFEAB666
-55AAA19703BEA2E77DF3BF350E17C74B3447A452235919452B5175570A006C7680AC05E8950A62E1
-1D7E3ACA35A397D1E19630D094A86807593C97F4C484E4E06BCFF708B6DCA972E3A0009E1CAC0EA4
-141530F5C1B8AEF5E1B933F37FDDBC4BE22B74FE346D1A3F5FEC0818F8E61765568A2AC04713E828
-F98C449D9A1CCE52D10D61DD8BFD084C8D099A75D89DEA64D5A7CC68BD5B0593D97953DADA976383
-F5015915618AEC56D71D1DCD55B89736395C609B315A3F1E1255432FDBD37F38CC43C354FB4B7C44
-F1A7318B0B7E99C3C08C33B953727B6A6328051783A0A33E3CD9E498346A3CA6A77B517096EDD52A
-E443B87643A646C3A7BB97F742888D33F9B3127E61942F4103C1DBDCD8EAC8F9E259773066736CA6
-53CE57E8822651261D847C131321BB9D6626A1AC50D047C0BA47B411DF2A995545BD68EC0287CC9B
-31D5DDCA8755EBEB10ACCB3903AB0FD5788E984220443B8459E7C078DA4289F1350905881AD6DFDE
-C47302B0ACB0D4AF8CAED02B4B70DF3CF8FEC118F0FC2D3DDE3E494CD160E676E300BC464BD4400D
-B50EE43B314E0517037BF971ACD7CD327CB2134893B8A0410E68DDC518F5DEC966C7884CF5FDFE74
-723177F20DEDC039D879056CAAB4BF045062D3904F615C5CFE109AC7A35599C94024B41019B9AFD4
-04A80ACAA4837929F5C9317680A13D157A03B59A5588DF79D2E113F5F51021D6F6F90E8BBBA2C252
-FD10651BE80BAFD59C53A3367BA3C28DB6EB9DABF1EA99F47B503F627E15DCF3FD645FC52C5D5D0F
-2F07DB4C25C0D1E1C00146E1C4D973E613CCDBD3F9450CC0F5343D79F05E9492E86A1BB889ADF405
-03BD7F3E7543436859184A5B20BD8A172F350D846B7570803990ADAA48D4B9155A2B4C4BFBEF1E1A
-065C08E03928559735BDD442FF1E83E1FA20A5DA57D8BDB2FF5427C034CF0128AF111E6E73099E04
-6E0C240E80A73D7BE72B87834E45898D475521CA3306707631F5C6136199F354632D1A085F12A1C7
-C473868B62E534D15F5484323E63D0574196A19EF175214EB35A90873EFCFB92D6CF68761D45E37E
-AA61E1A1979A82009507CA193E44B36A806486665CEDBCF387053ACEAB979BD35D30978FC7659ABB
-E844F4ECAB3303318ECE80777A5FA5A9DD91B3D06804C4B4E9B4EFCF07EB89866D0DD8CA390CFD15
-98651417114D78776B1A1D36B4BA17746D6BE7FC123D473EF1EFED1C3BC1D555F914536869FD5B0C
-35F9C83F65B0E6BF7A627B9202D787D72C600DDB6BCCE613D88492E13CA0AAAB196E8A49928C62CE
-A4FFE2D0208EDA334ACF47F20BD793124D2C5546C03F4A364369A76A0425262F9D9118AF54E37D32
-E33AB25DD533A49DF5FBF1BAF4CEAC2D9D378CDCD13B00FDA432D9042F623DA41AFB80699B5538A2
-5403B0B3EABEC9E8EFCF42FEF3EA9F91766902CD206B0787C187D5370B60AD6DCD002DE2DE8DCDC0
-B4719A797C5E26BAA67665016DA0D967FA1346F9588AEDA174CA001B31213617FE19EA218EC23597
-79D979E2663166489C06993230B0D07973A117C4E3F4A4C93CF8428248DD5389414D679C69644142
-67C7FEA17E35B0CEE456667A9B1875C81B2302BDDEA2818D6019FC1622A82051F60584ABC904CD91
-8676305DC03FFBCC64FDDAC8D8AA9CE2EA00D6C97BC63C8A617DEDFC0E40775649438E9F61AFD179
-5E3B20560B01BE5E0983F136CF48AB206954E41DEE0D9DDD953DFD01CAEB569151D6BC0DFEF29D70
-FAE3E198E7EDD8922C0E0BCB8BCCF1C016142C1A8B337AFA7A05A9D7534B184BF3BF827F371E9BD1
-9A71244ECA1BA73D484CD2FAD54DB2F0EEFBD54B536EBCB5094E6BC2F5B2AAE41F05B4B311115876
-ED42C34F8E643B53372E3F6350DB8A38445822EA9A33E27FB0CC42CEDCD1FE2FDF723FC47C996EE3
-56C402112F24D0AF899B2D00BEA1CFD427998BD22B2A09046D6737814448ACFB10D387547D7009FB
-384AF0562C85694C071584236D0F1F3D3FCD0CFB38B77C81889061E668BA7AB37AA60F58A3967DE2
-6F939B79CBF10A9DCC42852561D8D6754F1B660D216AAB1E133FBAA321C56E2584BE5C9BAE20CCF0
-0E8DBE6D9C2FCEBEBAD945C3C04101D2387351F132628786F6D9D4CAB83419288D31F9BC600D9664
-12E6AA457CE6CAD26A4C0671097B98C2384C81DD8B9A3222D4F4BBDA7017895C3EDC26662779AEE7
-40D9D7E24185FB821970B0A3A94041A69E4805EC88EE1EE521981536F2844FB8F5EF645F67D42CE5
-148E2DDE43AD5AEF200EDB3A2C7866C98458A92666E5F9E070178BCC39F65A893102A10564AF4E8C
-AAA5075D2F8CD7FAB0401C03AF299EA3515CC93066744EB5AF7CF0ED06675BF049A6E3C211A89E16
-DE5BF0445A7CCA6EE8EB0347454950485D884606651E5887FE8B24323E2AA16DE22FC1FC8C4F06A8
-2A1FDE5758976024068197E1F4506E4D3D8A16D40461A4586338B374A592DC60334402F76388AD6A
-457DC3F54E6169CF7AE3959676E966A45609621055EC3AF80E182633300A4418E34A66DDFA6B569E
-5A13C9115B5FD3EC1CEBE50FBA247F60803AA83976F00117536342DC3D9890C49B2AC701D370E43A
-955118967827760F7091469C5406F08F18D7E3548148CF0E312B1DC71DF67A5E7A1656CF2F47F3AF
-F3DD50FFC2FCDAB7177285B29C17CA43019F62AC6FBA52D1493ED7C427526470ACC8389BAE827759
-4958908F517B2863B83292EB5AB3F57FFFB08393CA610FB1FE905D88A0A16AC395E2A2A6DD033D6A
-0D68992F830B2E1B95FE357BF672716E88FFB92FFC3D62945D1EAD22BC68C51EE0E10A43011DB94C
-44685A5C4576F6EF44CBFB45F2A4BF110A01657DB51FD499767E78058199B31DFD60813F1A344F86
-289F9378231D5B151C92385E3650B4FEB1DC91018EAB8474CBF69FDC1496A4D078D2C351C8196451
-247A9DCF8117E5B637371D8E22E248C64D999015C3FD2311E9950B8EE0922FBDD3D7BFF766BFE9E7
-CE0BE12F318FF2A7B5A9C6D00A54401609304ED2C55F5C1EAC3D4B38355BBD85D66D61636FA6E30C
-2E82829376BEC979A6FEEE040E452359768ECF90CC539A546F17AE906C76F14F86FF697797322B05
-1EB311A759FE260C1EEE5DACF383816AAF1294CFFA7BF87A4D9BC595EE8F2C2F86FEEE11AD959D86
-F22FDAF4CEC098942A57E57813A0FA99239E994FFF353C1E781D666B8928CFC648FCF0869FC68468
-BDBDA7D280DFAB8B0B3A4CA35B074B686DE8D372C61FB32305169A1A9912F6541DA16CD6316A6EA4
-51524757BE5CF6E820011BE3859FB8B8578C100FF029680E05F0E0BF11D33FE19460C85EA5E4C0EF
-28E29407C8AE6BE01CFA0D5022BF9FB01416FFF722A784DFC8FCE330EC95737A854471D334FDC58F
-AB42867A7B62836A8B56466E9A6C1247D46EBAFFB905CD4321970F59FB8D6FF65FDDD34BF913AD32
-2E68455C5FF2D23C1A5EAE687F259BC982B6A384D35440F7C693CF50B9ECAC0B5578CAEE87588B56
-2EB6B7F42034C9F2E545EC866316552354EB3728C7D26527ED75174EAF635E048B08DC5D23E88981
-070AD5641A652F2344956E9CF4C16E652A99F4A644D1787D6D36537489DA4D74E61B2FC4DFDF1D1D
-9D58F9C26C5EB63200526AFD168AC57D5611ADE4D4A382FC28BB60F9E7D626A6C67AFBCCD1183C5E
-3CF2EF210D0BF5CFA7BB10FA3887BDD4CD96EEEAA8F9219AA2F10ABC0A960C3B57C0EC0313AE10CC
-FF1F522124CFC8D2D49BFBB0C193EAFFC5B48FB3FF30B21CB76F0A4C0F1377C9223145BB0468A5D7
-1B9BC25873EA12E1C60334571C67385C00D0B570D3FFC6C7FF0DE62C183C76AEEB12DFFEE1459E0F
-C818C621B8D12FA1357E2B55D48935D70BF140B4CFFE8813DEFD479350B20DC2EB1D3CBB1A2D3DC6
-EE975D58C89D61FC50E6A0197DA9A586B72255023DE47DABEFB11E8AA02414C2FF6258A281219B9D
-DDFE41BA7D7977D0D6F18224FE22F7D4E9355FDB35BF7ED3418F4F68D093AC48F7D8FE4194FEB6C8
-0B9DC1F74E023C604DEA27089F98C3973FF9F4AD7BF7BAE601DB89B08D5D8139B95EDCF6C885FFA8
-B3E4B0477E7040225733826BACFD1EC4A0DD72DC41734856AB9FB700DF83CA2CE812913BD142D84C
-5C83C0B2583768198AF9E885F2BA74877A414233207234AA5F18840557CA11682AABDE8993533887
-7C6D404BDE4153C9827EB16D66C1D73A8143C8A2D3604FF72CE579FAA3C5224BAC48EA83BA848429
-9472007DE96466B5B29ACC7C03B05DCAA38A48BFF9F214DE43146AE4E04FA705421917F99BC54533
-F0EBC01849E396216B9F0794E6F6C6B61B52EF1B1950C0FB609895C3C55FF574163FC8B6B09E66AB
-AED1810E698FF37CC1F926B2CDA3B48C7D77790EBD2D514B6F385D397F713EC3AD3954EA9C846158
-6031D369E8B99E53408A79D64C34EB5A56DE8A67DE91837960E98A66FC04DFA0EBDE21DB003234BB
-78665B039D0A469A0221BD541AF7149A2A659C300132C14581EF766FFFBECBA8B58A5EB3F95446DE
-F49AF863A8113D17B2E7E6ECDEAFC3834D4DF900E3475596E86FBB4E2974C090DB4AD61A737D611D
-92B4535AC291C56AD8B1C031D2F9B505BB77517B737D70AB3723DB52AE2ACCD5DD2F617423ED3CC3
-9CA882EF41757BF7151806A9B8B0F312808863E3673FB54DE939B35CDECA7FBC4DC3BDF5A5F47D35
-E345916C39366C8B4F439CE1C6F1835C320BD1E67375B03B5DE18C93256F251761A4C8CEC01019C0
-68E34447BCC503B9571FE8000627A6B3DAD5854CBC0A2D69E5A8F46BC78F6A7B1422334EC7A98ABE
-FE9B83E01DCF3C6C9273B346F3240EA225AE4A4083CC7B0EA141A0773FDE940768358EB4B13D82AA
-304A1386D450C1C0C6A7D5A8FD2BD313F78F85248B5196241E31E5595F3BC01F37700A2DD3D4A0EE
-2DD01A36569CD507130E8F5B1E96CB560BB7DA15560CCADF3B2C9804A11D9E8055C9EC70E48C1D21
-3EB756A1376F2EDCB7189D78CD3D6CA5865537EEC31C17D801605EFD860B0B629472690588D02575
-02C6F7A75B9A1C1B397781329832CF3EC43C09F1559CD562C48FA9500295CD3B0A790DD3FCD4684A
-7C7AC49AC9BFFF36B39A9FB148BC28D37907433943CBBF0CBDAB46D3EA86DC8F81C859C52D15302B
-94A9B51C199B7104DEEC9D769C2634CECF8B700CE9C04152CC59C9326BDACBEC4312DEED92DD087A
-1C4840868D9F97CAC046581F762F75E8D24D6445370A3F1E0AE74A6478D9DAC37E7FA5BEBEC0A1E0
-81AF89C1BBF7F51E3E2E22C8C405E8671BA85F1BF0DF79A465DAC7EC07F731E00632E017D190A99D
-83E27E5C2E63D7DABBA23B2E88334C63721AC5A4CBC5D45F4C177259F34C2EADE01FA008AF65EBC6
-01D8DD16436D86AA94C99F3CC0A2F87134E73BF22F108B825A8963B49C6C685474AFE4A542C8641D
-C0375D7EFE9AC1168D9700459BE52D0DA399023E141969F25C0DAC4668534B6647EC85454BE945E8
-26B26DE6E3C4584B97A38E2B40A0D23481BCA78084FE80E00A71A790BF31DF468A435ECC88E60A57
-860BBCA3D65930186E9917CBD209C230E8F8255A7ABC7D3F043AE4D7AD63D9980BEDF062B7D5C298
-C40225B6D03F29A0339E0FCA02138E526F06B9EF47F5E7A8068A846CFDE2BFDEBD24F5A73A66C079
-18662AEC80B43246284FA4E2EE0D9AAB172B1E59A6CC46B801149D8C0DF6DEC9A55D8E1B0EFD9D30
-2FF618075944CCCB6831D336B11617107B0530D09885E5CA11A5F1FCC8D69D603DA16BEA51116D42
-CAB1AA1E4D7B9B4D79993F2BFE53EAC904FEB70B2D330A89780EAC10D12CC0C35B8399F218AC2976
-E57A26BAD20CE2FA2AE2363D3FD2A8A971747556F2959DA74A8963C20B504711AE1CB0D0C02457FF
-2E9BF696B159AF031DD5155F21C0F5549B0471A3C5DC8918B675CEBCB23E29322B959ABC05283A70
-2E878DE8EF25EA760F3C5C7B7B49D398283DE2ED837FD59F7C22D62C58FE4448B1049FDEBFC8787E
-67D7DAFE9774979BB3802254DA59BCC0219F98C219F84D995CA768B8B5D9D4A32525DFECE003675E
-E4BD5D8DFFC11025AF2B468F9207B5B2B42349B98232BAC0759758C1F4A283405815BD7145C93FA0
-8F3ED2826655053A3C2559073D8ACD199DEA2C5BA5F616A2E48548B4370EC73493BA07E197165DCA
-774438B0766867819C1154D1959FE6E01E6312E0AB91FC2E2BD240FC8652A2D456A1DE7F34EF372A
-53794D4C4E050BF3CA5B7BD2F1B8DE93B4C8002485CB219AD2D029739FD3C81CC6E78EDF38723576
-1A57143EEDE5CC887F282FECD261F6A25D0A7E154ECDF5DC38E426811BE86AAA458577E5E0C5F0F7
-5AAFA9C41E5D1DC9D91ECD79B514F8CDF7A5F1A189470D35FDF4F9B8788879CCBD91B427822ED658
-389E981E0EE5F7FB87692A3E3E931DF8A1D1573E3B0166204240B7080089A09EF7487C9AEE2D665F
-5A82F94C877FB5B0DC531CEBF1E71C6592CEA2401E4B5122E5091DF03D203DF979B9A6EFBA12E2F6
-B422FDF15D49AC0914D372D21E871DE65CBECD105FD4A3E4714B9CCA5C6803FA39DBB015EA8A88BE
-7913502E562E5B170B87BFC8572DC9DF49AD63694311EF1334444BDF0B4CA3245271C1F7A4D7FAF1
-703E3AA0E1EA8D5C6E821B28707EE0C9B4F22F23796FE87356C58AE2CADC191F4C58E1FB58DA03B4
-5A25AC95DBAE13A293474217BDB214742B9D9D6AF35F70FED2891942EACE3E625E55FFB820543FBB
-250A062D3D395BC0F219ECFE0D76686AC148BC41476A887BC494DDBD396BE200FD3E03CFA12EC9AF
-6B934A283C42AA05589AA6B4A8D16946BB51F50419CABECEAEC5AEF9085C9989289E9B46BAFB6FB2
-782D84DE2B068F91A9744AAB237CEB1BA513E57E4C307108E993C972A3E0A898D5A8D27833155031
-FDB98863C3BE7FEF3004CBAA5CB60A1F2E3EB4D7290FF5FAFA088B1CECCB6CF51A58DAAD998F0839
-6CDFD68F5ABC9C1CCB8F6514107773C69C26873E889D1F79D10E866910E4684186FCD71C965ADF62
-39BA3418B313A27AD632300969B6F284519366ED85E7CD968D64823F8C59B5911A72D0A20EB72B60
-3A61E36F52F256FFCDF706B4560B4DFA5D918FBC530D83A4B3C01BDD3CB4572E24242D141BF9E775
-36693A0407D002E09CDA5B195BF1CCF430AE9824C07928A050D0B460F2704BE8F9E647A4884C4567
-0A81EACF7CC038643EB0FF18A376FF6F32B6FE4F197273327FBBDEC6443A299CAD4B26F7778A99F6
-5A11BDE047153E764039EDB251936AA43DEE50DDFDF8856519056AAFC4C5AE6F2051AF0579A9ACD4
-1D00775D7DBE70022CC263DCA5E0A25B9C7C4F5C418587666B2FE24816B1E0EC92F9074F1403BB83
-AFC3F1D52CA79C387BDEF864366E34C90BE52F7AA09935373A07E4E026224E76F9EC3CB9E7EDE50D
-EFDA48248D61F3CEC880A3B8843306375D9711E58645F3625BDB8E87052DA67F9794EF4AF8DB0BCF
-E00677C3A26907DC651BC838C40EC39E2B5A5DC0DBD345944A6C32226089D63C52490FA10B215AE7
-03CFB663EB8A47793B84CE7364DA1C4E7FCE32DFEF09490121222774915BA59C78C2275F829D15CF
-4D8686B095C38C731B83D48738C25F40B8ADD487C350A2EBE846C3916AE384CB1050F9F5DFE09FCB
-D9129C6270FD86D55A459618FDFA4F907E6B4746196BB717865AB378414029017551161A52E9D24B
-E4F7EED553A927933D4ABC8F25DF607779A717909CB4D810DE8F5762581900E224E4B91598149BA4
-71CF8068ABE8744356B261600BFCC57FB8BE45036CF6571D9B2A95304933BD4F17215F8EF53F8E08
-1AF61FA7F9583C34EB5655CB0ECB82246959F09091F36989EBDD646BEDCA614B9A61AB7696B3FF18
-1058A150FA6EC1BE2EBC7F64357A3FF2A2B0491D2F4E0B970DE5B7788B467CA678039B5EF55C88A3
-84578D427FD2CB16C87B0BF0A3D37CE8ED43E0F049AF2436344D5F47C948C632C94A287509282561
-6C64C5D262FE5B24916FFEE982A69A6CCF888BD01D62EA591EEC51F4B7DDFAFFBEEA93FE08D736C2
-0129E345D06B10246A5F57151C198D407730713F32299638EFBDC01367E23EB59AAD42A83AB41B43
-2DB462652E29813740F4680A5D4BD47B18328FAE6BDF4200CFA4CE3773809B45E8887C9B2E423698
-9F6C48D64F5986F563D9A7538A8716082F81936AEBD0461E6F4BD470436D8B7656F0FDF89108E6DD
-02ABDEF907731D458D690BC608EA9CED09EB1E6E64C0790C7A2378201CE997FFE0317679EE1D4EE9
-F91157449323E53B4ADA8096CD628B5861BF794543A98F2FA2AB54FF0F25A13DAD43DAF9394329B9
-5AA53CA32749FECB0B2BC035DD1EBD53FF9FB5AD8BCE06CD89E5568091C1CC314CFB1D9821D7F9AC
-7C55F55E0A16E39A87D43148201B928F3C42B110FC056189DEF183745F3B637441DE8BD4C3C7EF12
-F4258E306B2877ADAEC63441010750DB4E6269A4C78A0AC01BB3603C386651FE814031CB5D8C1F14
-9EEAFF652A53E57BBD4C8C0CE36A84A319A53BC1E5FD3F1ED1EE72F4C1A9BF264B594062FCAFB22C
-C1FDE3F2E3D3C17DD3F7FE0E15EBD812D550227C06D01127385374A11438ABD50048E17255FCD2BB
-85122A6FB9B7DA9D5E9DE8A747FAE0DA45A1FCEFE92B9E70A5B2CAC668D4D07527A5C1403267D823
-048BE671F725CFC7474B44FC5AAA348420B2D7C23C6CA066666FD6F2208E329878D90CEF1C2E77ED
-22D3BEBB9D547810B189F08920A27E7107F208591A84D463CE2576C70C3DFE6643E4EA93F4E1DAEB
-41D46F0E2F56FC10C69AD5034FC9859D31CF27A3A1EE256C93111F81C11ACF1FC0CE20B90BAC9AA3
-27A5C85A7985B951519FD4B03C40BE637162AF41B2FDA68F0D1E9B7602FE2659D3D75955C579AC51
-DF6A552EB9581AC3F712F083F19B52A6C4F560F36C59CEEB0C996AAF1728A2AA45DCAD79BD7B23AB
-388D5B0B64A2B95154B6259B730B0F4A72C8C7F7CC93C7D64D9D8810D1F63FF8ABD4DB89824E2D26
-4FDEE916C41E299211DB1A53256E1DB5CDD04862F034D9404B73183A99D3D13D642A663F129B6D16
-7095BEB4EAEFD03DF2FF2F0B6B594C1EE90FDB203DA89FACEE23F1BA3901FECC75FE1811BD701259
-343011262B6A0A9707AAA6316BC3C17F787BB80AC8DA5AAC942D90F80C5A3BB59E47EC767244AA95
-C63E50BF809998957936D3BF6ABC24B0A397258F9EB4DC8F65692CB023D9091FB180C69498CD0C08
-BBEBADC84A7E0016E8F8BEA325D924EB0DF82E75D2CC2CCBF039B11934363D4332C5FBC5EC556BE8
-5EE4E707CC2753CCC43D2ED50558E51A104221C9323CDCB0199B7B83454DE3FDC810D0F362C0299F
-5DD981B31D8E3DDA284FEF9DC8F9C8DE138D3065437A7FE8C30572AD06D62E8527AD37AE39AAB0B2
-25F76A25F6C6505241ED73BA494CF923E919F688DDEBF193E188F8C4C154F21631080763B4D091E8
-AD1D2FD6649E0CD9360E8D1A67A5B5FAFC67547CA31C95A5EA8D4EB5D68B9F6D6532DB9B54584735
-9558542A2AE58C09F3BD2918EFBE1699E9C8F2C2A11EA4D224C726D2ACD4A8D8ABAEDC6588CF2AE5
-66528B94F55B823A2A1F7BE19000F3E7579D094E047075DF18C8C868760295533B26EB3ED90635B1
-29C17ACA679C3E88B06998CE5A7A2544B700229F5A6A504BD3E45B276471959C8A3F81917A534287
-39B5EF9E3D463B3BA7318448E2A3E79520D2D245A2A72F31FF7070B6E4624E3A5E216BD103640C8D
-F387E49D732529C611F8B971073F17EBD2F6EB18F9B74A67E1997926DF178D4C9EDED435B9682F1A
-279C81BB9F60DAFE125845A2FF3B02979E5481C78A45C479BEFB9FEF3CE2BA9BC46C77B50B03E48D
-A6D17B76F06F3AD118371ADC69E178C52B5FB4B261C9311874ED07DD6D5B3226A005FDD7A6D53848
-09E7063F036CDEA41619122635E835D2D74CBB6AA9B38CAA4D819C26E95115FE0DBAB4198FC5838F
-2C91B7A87B07D734C6D4F4F83444C1E90AA9BFC908A2BAC4B3DEF9157AFCA5248F2DA31CA87BD363
-AC25E9E77F741D4B2C6E02F04987A6F49D30E9038CEFC41BA172DD675AED8B392164411144E5B738
-F3210B0E66B17A13CB9631C33D44484E792A7C082DD0A5382F34C5637653261B1EB6D2035B08B4D9
-1FA9AB770CAF40A103629511F7B43F2743D7E583433DECFB19C21FD4FD0AFCC22A4119E77C87BFE6
-FE50068B22479015BE5A9F06BEAB4D37412E062A45E0CBCD7BB39FEE747E96306F79FC4F2E8942DF
-5D9DA0E55AACCDA547DA19D30B8404FA121298B44C9CCE198C708C69A8D6BF17591C5C50D3FC5BE6
-961F7ABA8F366DAE957A1C3730DA4A5B4F035A9274675EE3BBF0CA8CE9D8349F50CABB1C3EA4948A
-BE6F9F143592F1EA95404E6909A909168E3279A957AE1924245C356331A75E7008BEE92BEAA304BA
-40B7C3F48F74D9018B3247DF50EBD7CE541DA48ECCB1B0BE51A455C3C13C279D4D8676078C3EBE43
-08748D52C9B041D3E7244C745B1F2F742D010A9E60695F3EC4FDC1050AC082B905D6A57E8F407A3B
-472F731011A5798965B7B1A307E252FE02C8F79CEEDDEB6E165F1A94D7FFF18DDBDF79477F14E9E9
-3981ABD200FE7771B29D1D2D120EE79D28B9543818527039AC74085EAFF241B56D08220C958B5D9C
-87C0C04A14D52AFD475B542D391BC54FF33DEF8D9484AFF6873BEED32DDA4B371112B523B6CE22B4
-0D1B416B64C9370F1CDF2C548F4CCBE9E12E21C36CC3EA52DA232DCFB65F66B22B5E2EC04852510D
-5E264EE939BB67AEC4764B87062AEB7F680B40BCEE04AD45C7519EB3B6199C9E0E332661463647F2
-FB7EDF303EFEF84891CEBCF0FAC5F723A9D0476C3F8C092604C87FC69C7A90F4D64AE45A478EE8BA
-2DF50FB93F55A3546123F0B0E2C1C40C98EAAE9F0F26B8F80FFE6E6B94B7E27D2884D58B8A119662
-2DF6BE608C5569D7864BB756DF2EDD184B90812B44ED4A32D001C31383A40AEEE9743651F7950846
-15C48E402DBC01C818D477EAC0347795CB2792E9C11E8FD4A02E194EED1C919D4598FEC003B6D9A8
-A0BC7D456047A1C0579453FC1D7CB2D158D466939A23D7A7B8ABED7E2777EC7487973E73F2266D9C
-250CE30729E3C5223AD93B9AE8443B35711E446A3DC660123ED45CE1942A1A2AD0610467E081CE2C
-8B92A6C82F0B17B5D2429E99F1A6268072C6B5AAAA6EB6283A872C54D3694CD825EB2926E57DBBC7
-C1663075E687A144E4D61C225781D80FCAE1497B442342B4A3F1CD6BDB50E31791CC3928C30835FE
-F845B6BE5E2D7E3F2F5F085AA3FAEB45CAD0D76BCBB1ED859A9CEBB9F7457036F0BC3F195CB1A98C
-9C8648F6583CDBB23894BC719D68C2DBD8003B10D08C8CAA40BCE784D7BFB4EEC9EA5359AC056E57
-B8B0F2EBCB1F4CE40C87FC7861180133E0CB6CE2FC4FE690756D327A2B5AE063E3021C0C0BD420D0
-56F0B941E6B36088A55BA11D0C35FD0132D5F48E5D9673572347171B4328D4807B972831C0D74CFF
-A5638C145B89C989E6EC942148207D6DB82257585958034D9F9D4221C7C9F7013790DBD130F277E0
-BC88BB179DD09E27062379ED06F25EEA8B7FB33C35861A0034776E3813D2E9E5C10E227CC569AB36
-CB2D9DF2E7B7B44758F9DC4FFAD7A24AC7E9F47AA850C221048C3CB35A37CE8EA75632AE65FE3212
-175146FECD6334AE3D3C5F492F067F795E1E8FF386BA198CB74F0BB4DC0000DA383BC4CC3F070DE1
-7721431988D69C8B1A5AFDCCC83C22E16A87E01C6D3E79DC7AFA3DB0371B0866EFB8B6F88900472A
-FEF1C4A878243C52D4E02E82658979731C841C489A6B97E271C4C93800EC7D91F93EB9B9C659A554
-E1FCE42A5EC65AC39190EF4B66DEAF6FC0569A000A9E1495F42F706FBEA4D32EB7EF11A648910259
-6A65CF899C2F322F5679C6D123469192A9BF1A7F1F2C81C554ADB97BD19ADB746A4F81A4D5559E60
-AB94C483DBABF6CE2F28CDB412D50FF3FCFA3B3DAAACC6A83CFED910CCB3B8D2C19590AFF4D75303
-4A6CE7F4156896A13808E0DFEAC547E69D3C886691728E4A35ACD575B40D721E8FCC5385A2EB28D7
-08101DC50811529528F5CB0C009BA7E3C88468E37768FB0D83895AB54DB2DD5426562AF9D8AF304B
-F6EDA54E9C92643DF926F5C3578269750120302A37CB140A18BA56BA01108D4ACACE8FEAE640A6C6
-958EF156B588ADB0EA5F3B0F37BBA12B7BCB221C811415387B024B7076FA4403A3AD6EBB5D9C26EF
-EBDB7ADE7C60B444AB9F90EA493B658B7767AE2BE649BDBB3FE85F460F1ED137C61BD95F7CD3D8B0
-15CE45138538930AB62AA0E54B4CE1A5EC5FEC0A2B28B345B67089A4E4AE14D2E1F5A9C8848DA688
-CA298F93860649EC3AAFEF3E820D86988C8E3E5A4D4BB937791827994AA3E81D0BB3EE115EC36D5F
-B9A392D09E79AF514D11C7B3A03C9F9C13355CE79E119A19177FFDCA34704D38118A8976D1EE5AA0
-2D14FEB1414419F5E85244ADC5C0A765A522EEF36170064BB19FEE3B5F7B441E4DB967DAE0BAC2C4
-8FC6A836E0EF5A69F073BEE1699F55E9C757EBD6FD8B514E2B49D6333815B7DBD1E0694695FCA3D2
-1320A0C4B852D9706DADD8369A95FDD917328BE93DD33818954DBD2C212D2CA81560ED5BC284EB04
-7A5F389E24E43F4FA8C97FECF46589FA7341076555CF55B1C21B28E0C1CBB00AB8B6F67472F27BC0
-D11148F407824B0159B5188D4BB7386FBDBF1C0FAF34721B7BCB5C0FCB7C4010DCB6A1284E9D7883
-9E3C2111A05D29AB7997073B590A81C6168020F1D48951BC7D8476D5BA593F4F23CAC1F9BB0E091E
-84B4E99E5C584D1370DD12DEE8DF16AF8BC6B7B23E2FEABDB7F32779AF8E2B5094A6E9B7A7225F24
-C43A8E5D2B977E1E19E633C26771E23017ED233DBB02C64F8CF03992C6484528D0C8464B46F24F9E
-8380F385D5D01B8893C67FC103498983CF939432AA380CA576D09030CD52FD99BDC3BE16C7204CDC
-3365BF76294A83A1FC14A236F5FE5321904E779B13232A76F8FE521F425562678436359C2461BEA5
-AB27209541F557AE2AA60009C9CA0A9FC7898C14306CE35A50017BADEFDECBBF94EE2905220706DC
-806409EF87DB1D73EAB0698AD2DB72CDCDB293E7FB13C94D9FC87E74502E6927A212F0D7D2F2D194
-64F7A66AC07872E18CB1DDE8F11835DCBC5C4EF039333FFFC0FC1456DAADE7DAE3EC2EE0D3415B0C
-ABB69FC5006F4D14A4EE1A5CA99AD4D5E629C0DD1E0F097B5B93DE2DD001A8C418234C9C45E8C13D
-1AE04E9466DAB8CF1ECB88A4E059C111A6468D2DABB90DA79C7C79E94DB28F6968B1A632F8C57D9E
-565FF91C6916026FFAC0661856B9FB8DE9C81661816221B1FC159CFEF1751E7E403F5F2CE32529DD
-540792FC17A12A3DCD7C50D38EEAADBD10ADBF5D8A82442AA900CE6150EB7A4639DD9FB6E385B2FD
-093493DCCD9014B23EB172E21AA89643A6CAD1093343D85D81261972DE0ACB16A4C6B5F0BE4C978B
-FA12D3CAF0134F9EA49F6E9687C8F99A456745EA252F0BA9968C7F9586E3DD841AA92DC7705BDD68
-2DAE41518A09DF0E209F321D7FA3417202F4BA76A984DA3ADDBC58136885362F02F0A24EBC439B3D
-BBDACFFD8498EBD29F88F016B1FEABC10785438EAC860B554525F3266097A675299AA0967BD3B7A0
-EEEE3FC578D1BE99D3533BD91571AED904BFC9DA1A1451FDC5406E1CD614E0C7FBC733563CD6CE6C
-C31E9237CA153F1F0411114361D731636BCF98555ABF12848AD109371A42B63675A4130B81E97C2A
-2EE2BB5D8FAE2640156001AF0F55D9D5DF8FF23C8AEFE14F120000F14149A36E5C94CD9081DEC277
-C2C34870D05011F99D48B0875A5FF542F067F7E9880109F586BCF2B50522A1F23ECE44349E539E70
-F84E207DC9BEC7CDF856A046F1A03226AA41F541719AD1AF88FF211E57DD0C1275DD0B7B47440DA0
-89B98C6EE92A7D94700B83CEBE19EAEDD8A615F6587587BA8BBA3CE3AA5E8EAFB1FB0F486BE3609B
-169EFB178A4292F4C0378AFE5D24EED1CAAB514DDC66C696D8E37F294A6579131DDF5488E9436609
-ACD750C3DB0A940C84FE022B22ADC2676F62E91E8F891225F891FBA537679B24547BBBF35F04915D
-20B11739F620D18B5B216921D222F15044368569AA302980B9225BB839F494588481B94B0C724352
-B2DF600A22B062561D86CB8F81514FBDAA4F8A043A0265F992FAB71FC9124A45B8475E1EF3DF6B6D
-E35CF329777D45F08325E8505EC0D979F542807AE77E57E453525F23BC59A50740371EFA98678AEE
-6C425374AEB745B99DDB5D8D908FDB551FBC0DB15832107BBECC4E11A1A8DEC69358A574A2ED46CC
-31D564549EFF23102D92BFDCBB2BB985F78F36033E34F59C0EBAFA3BDD71338736464CEFDBA91398
-33995EDA4207BFD4A9867D32E867FBEB7DE60D132803EF9347CB17BD91315484EF6570892297DD8B
-7D966103339535E28A00CB1EECA4A9775F60A9F5FC9BD8B06D78FE8E6318C31DA2E847E3F9CA587C
-B01AE2BA0A2EBDE308314413F4F230A758184ED60D4F71F6CEC22A93A01B6C54E0449A3860FCA895
-4A347B7588329A80974ECBECDA1070FBC055666375229F13DD995E99265DF870BC8B8CC6347FADBC
-1A6AF64599271A475B9123493D46BEC41289BEEB67EB97A8DED7A9C9730D37C65164CFBDC22E5CA5
-89D2E7954C7136EF4E084C43A6C7F361A3E96989239BDDB9A593CC2A80BA16DE9EE90E95CD39393C
-212AB22EECB677FD36D34DEB46C4AD0D21BF7E6D7CBD0C8083842FCD87B18FEA7CECF939987E99BA
-34C214E44DD84C176C9CC5A4CEA76D380CB316BB4EF9DE73D73B4AFD4ADB54451591DEF86621D138
-D5A0A29441502BF6C2ADE671CEC3CB5CAB903A657EB2D70C943F976C110E46C5D9D29BC00A875F27
-38E5D22496A43E096E009C5D3CB724B4CABB32838DBE527F83B18CB457E57B092C302EE557FD4F00
-DB9C56E66C9FDF4EC9FFAAB85F60D02BA79694FABA476A199A0331C30A78A92E10417BA236E23364
-8174C826331DC1BAB87C5F95027846130C6A2B4027930EBF9A97BA1B039D386FC51C302648E25980
-212F6A582CDE2778C677A01FBFB3C5D1B8A374ADAF6ADBF7DC94075F25ED66D440B3922C5F255FB2
-3FD8F6E21EA65B1D93BB225684B50F11310E242B087575973345B229BA62C1E2C35BDAEC04D10148
-F5B2F3BCF7399BDFDF1F3F79119714AEA697245BC647316EA157484ECB951BE367234FD02E8B1F09
-1AAC3D29BF282DFF4011BC0CBA8E55234D943DB3017CC7A766720BBC29B2D097A956C0F1067177F0
-12D42ADCB473CDE8D1BA35B4030757FA1D8211989DF3BD22CE5D501C21EF8708FB3449DF47D88650
-9FF7B59B76C0DBAE443F336FEE2D615D7EED1C284F14335BC8A26BF4621E10DE9611FB2F1DBD52E4
-B7565D8C65B54EA36D508BCF0C578A49A2665227CDE1F9768EFE847F9D94F1BBB7DB83701C232198
-5C7283D47B2E40B27A268428AAEFE75F6B2F8764A8494E5827573758CB9CA46FA93208836BCCC8B5
-564A69F5AD882052AF1C1417C3FA7F580569528682C77080F3688B65E7FC24D2A3AEB61574B4A321
-5927281544DDD7A6EE0A3E9388F8F631CE7251724DF70726E5912DDCCC8C652DD6C9608F8462303D
-867F589DE0F2F71711B35142EE6EF93B64D6326C4DD7DC83278E057100EE772082E6BA368ED91A55
-53ECFE2293A481E42F83BC8F9148C70EACE91F7B7D9CB8A72415BDB3AF66F68EA733A17ABE9DB005
-3BF148629132969589F38D30EABFA96A01FAC72650B5A6FF3935670198A1EA33810A9B11E330EB8B
-451F24F93544263436F669AB5A90A53B16CCEEAC36B1445574EFA7E802DE73522BE725E68704822C
-B7D3912717333367895BBFBE06966A5CC653AAB5E9B3596702086BF0010085B900711932A95ACF15
-CA4DC45A754EA334E9EB84D6FC8E3FC4F897456BED64BB93B593549FF0D5352275D8E417172A6664
-C5E0ECED1019494A7ED49AB0B965BEC1A82E5873766BB38D7D856049CCE2FCA65AAF61E961B60634
-E2A69EF059754C9D8163D87F928C222772D070D83FEC6FA5AC734AF65E40BFDE521F7D9CB1650FDF
-64754BFF21EA3FF0AF7611A93D525EC9B28C51AFECB04E7FC8323DD6C9B0D8539A34FC3CD8CEB795
-8E8EBBFED4313C77ED469C199552A9FF70BA5423B03B6148D4EAAE17B71C5B39DC436AC53D6BA8A7
-AD81AA8B02335A8B2B11E9F4FA913159A725B8AB60F52F1A2EA50EAF4D56656E615BF382CC68A690
-BF83DFF24FE986570ADC0290ED1A37C1C2AD469CE789E0EA0BB5CE01020100E729721AF3B5BADD33
-A2DAA6C33EB8F9064F5292F715F820B4BBFDD56F76D42E7A1A068C1CBDCE4640082F6E7D582D1939
-990CE6EE8D270015A2C461798B37DCB5798EE9F7512168B76D26C28BE4A49A1BF96C89D235F21A1D
-B6A96E5DA474D0B19B808D13D7A11BF39EA8647499C410ED9894A1ADF33D41B6FC2E614D8087F4C8
-4E437B136F3CB32DB8393C49177A0675A0C9E7EECEF448A97AFDBE840FA01FC7E5F2E8FECEDC1884
-84C312E8635CD79195475DDBFDD4D38D5A0246DE2C7F21608F8D2C0DA1371D302E941572E5792A3C
-F4E51A33228B93A814D03FD4FC223C314CF3714BB3A34BD4F7ED6348577FEED9DEB082C4049E57B5
-D3CDB7F26629E9F3BA36893E09E3C7463D02A22D7056BE76B87763260E46E48BB832B7EE13F8DC05
-37EC8E81E9BDFEAD8C27EBDF1AD706933EFD11131E12814F236EBB01BE85B7F1B2D627413B324918
-D247604F56EC128909873FEC3857028BEF76A3494364C2A7002D104D486236C30B48E2B75D851C34
-EA50BA7FFEB4E19190898AE21768C157C0CAC628A2181A32796FBC1A7271D2473CD88E5395DDBDB1
-FC3AA8DF0F3D588637F19A8B833AFDEB5F655A8838EECD684E2315B72C75CEEFBCEF94344ACE8D6A
-DBE355008EC72FE7CEEAB01363A895F4E73F867639BE0A0BE67333848816B05B419221BE8F9066C3
-62C23FE85B7F392930BFE4C12B9526FF2FDEC38F23A159ED61A0718E7115C24597D849FA76369153
-54A40C965D4D72EC94DA61A03766AB39AAB684E134FD1407A5B1B19BFEBA52AA0DA5D99CBE5C82DB
-AA663711E6DEBA180E1D4A39C320516A4350D296BC19BF1BE054859A0889C7E9727A021F3176FE62
-0FB0C837E4141FECE531A950C03D319E3255703220B7185BD20FE5DBA673F8129AB211EFCF36EE39
-4C7E00EB0876624BC840FA86E58B2F584754CB6BFDFD76810E300741EBE4544E5AC17413ADEB21C6
-2F66CA4F075C32381796BA709782DE34A675B717A2C7F6D88104CB924FDE5DF775B4F0B68E0E2E5C
-2F788BBDEAF06D8E1FC2105CCBBD5827C0B03FD6CD64F0D073F3192D5F94839644E5EC6C5185BADC
-F04112A65F49A8C83174A9AE958E76A2F5AF469E8B76C833782C5FFB8BD7B1BBBB3EA0CB7C9786C3
-BE2ADE5E7AFA8C8F20892659A59BC421E28845A108E34EE17864042EF587A6D67DECDFB3F510EB40
-D2229585347A0035670FCC76C2837A4E4D68304FE113C539B35C1F0234B5079B8E32934546982978
-C5E4DF955A454EA263C3CA5D7101F31A318D82A3F9FCB5A8AFD7A65209663B0FC9DA400B26F285EF
-46D0E1EAF8ACB1F1CB805E3986D04BC585073FC64895E4DAE1CCB749BB439CB32EA91176D5C39C36
-50D10AFB9C9884D5FB90183424CEE67EF2175D01D2478D67511EC9F54F88763C152697B06D948BED
-49240096EEE3D06AB4575E8E8B2CB8263B5BCF4FA1608720F52B675309833071879DF52C3EC2871D
-20F398B5CAC8F8A4D41D0F1D47584DD90DCDAEA4A1CF160C4B3BF1AAB890B5CEB6CB3488672AA68F
-BD938281DBC1D8BCFE92FBF514DA5358443CB6E0147254E91B38CE6787B2BB0DEDD2D38F5938737A
-977B5EA42892520C58F8FBB53C994B57382379E9490F0D6970B980E1BDF8CF9F4C3C5E0A18F66E86
-EE93FFE7FE546DE50F41364BCB3721B637072571FA1779F1D672FAD260C16D7F13CBDF3E4376E7FF
-56D2A710AC5AC35FCBDBCE2C9C17E523BBE6218617B13C1FA6679B308979AE7C61DA6E68369324C6
-CBC7DDEC364E5A86707266C0B459EE7B2C03FE584E529BFFDCE98C90A2F3D9305AA74D3ED8430DBF
-3A49FE2ECFD9C4BC9FEFD22618FE9C8A973AD072AB6F713E4DF02DCDA7AC5359B2D652013E131B76
-B3ED6C75FD53BA58D862846264627F6B9E70D8800F6D9B32242B747A67BB2B45675840D34F852AA8
-062FA6B01E31ED24DAE02F6CF788A17F7B9368175195DB0072259CCE0FFB2C1035C1D26E1777CCA3
-D56A827C3242069E76D6DD69B653768614B9ACFF16567FEA61508D51454BC02F6C60F755AEF6AFAE
-3536BBFA1823F8E1A53C41124DE983E51CEC92AEF4F99785D554488A51C20885346D1F761DA79017
-940A0C557D93F1DB6B3D00FFD61D08E96FF3AFCE5FEDF545CC9F47A2B1BB26713431D6D1E47FD6BD
-6E3C668B0368241F0EBB5FA9C991DF79890E52E83A3675EE699B61BAF869DE91F67278F510061C6F
-E41DE2D883F48CD0E068E2A652B244128D82E5CD52F35F210DDAE3054691ED55A7D99088AAE8FB04
-F525C2084AC09F5EDF80A4EFAFE981F74C0DE9D194320709B3464F3FF2C0F6AAEA6D973D9C323F53
-DE3D741F698FBF01036716BBD62957CB32CD81D3A2674560FFBC5BDC5C6E4F547E589AD0B1CFE14F
-5E17FED1C4A8ABE4E67CCF8A49F32C4C6044F1431E1CC382E7758722A6D0DF9ED23E51F8AD14D11D
-7B6428E27443715EBA4E9C05D6F238378F9498AEF0E7EE4FE6856622CC8E6ED141EE5F109E343CB6
-695C4BE1E0F66601C27975983BF557C04ACFC19227A1AD7E6C44C00529FC7EDD7F886D24B7E029B9
-C395260088BBFB96972199A7B32796D27257DE83A7402291C14FECDF7998C5C96B1EDADE0280F856
-8A8F5007852EED303969180B3329917973C2D32C080C9765B6BAB0673BC7ECFDBBFBEA980C263843
-39B7F1052591D91667D4FEE413AFC23DE2D4B9DA742F4269C6C939F5FC32A38040730A018155AD73
-3F231E4D5B9D01C03A58EAE7B5F590CCFAF25EDC8552CFC8D95C60EBAE1837D7A97CA137E9D4A4BD
-2CD34AEFD68D64B3F4F62326AC429921D7FB3C235184FE0899690A0B775F1A566EC29D5830D32372
-6526F7E7F5AFDD71B77E07613DDC4FC63EDF49051AEB59E6337AC0A4B6DD872E776C9CD0CCB86130
-5322D816732124F5978A86C186BF0A0F88E733CE38E4D7C1BA5378C5629B1EFC97806059990ED42C
-5CD183BAD7E94070E4058569DA2E51831FFE0D080301AEAB4350BA290318AEC582C78D05DD92E5AF
-B4424EA808629BC972E68F4FF2489C245593F07555CA6A2B25964794CF31CBD3AE5C229AB9B8C298
-06C01D116EBD0FF0F159ED2D3D7DFC73EAB4910BFF5B0B0B587CD9EA6E6FC45D63C09766224D8346
-1F0588140B258B1729F70BAE7962189B1554483392988CF230AF4077193E53330519394DD99BA135
-6D4730AB221DC6A66019BFAE564893DDAD7B177DADD16ADD21D396CFA6C3DC818052E2F71149FD59
-4A16DE0C2FFDD366C99B486C55A6E991E4D22CCB15843F0C3363676AF2F5B2D1B7EF66CCF2F12DC5
-0D63776BFFB058D70A9C76DCE96C754872D72C82A0C33F90D49C935402CDD26B6D743B1F43BED5D8
-B539424849C1495DAE73044E885A7D0F307F1816DF6244A6F2D97BFD4E200E93F69B08AF39EA21E6
-E347A47CEEBF803F73B978ADBFCF056789BB8E6E2563DE87DD9A8C877157B934102DCEDAC54D487A
-1BB2694F0034093C48F10A17D32E2BDD0C723CAF59ADDD1BE373AF8C9BEB4415AA5AF36310C31F24
-354A53C0B962573148BEF91D994FE3F3D8450DD4D686725799F53C373A0A3E3C060C2E1A3E800504
-9F26D716E1F381B9F83125E4683264A07E2D8938F605978E2513DD2050B3D8A1012797CBA8961632
-BED260916338A812AE751C7B657E086A0C7DDCD3BFDDFF3E48B84751925736D1310C4910FC114387
-F3ED7FE163F91895EBF55FCB425CEF5729D99BD8F2C072E36C310523E75CD8E5DE49C031C4263410
-9D56E91A46C8C8E89FD92012A00C33D0DEC52597B5C6933291A7BDC5CEDA95DCDA5600F9AE1C8250
-54E7EE1067458CCB66610704C58E4A4FC0CB5FC933D0322A716B2CD430A3AD48DAB3D4CBE9D23F2D
-092368CFC4E1F5495C133A92942EC62118D45C17723646E69407B4A89DCDFD2AB3FFC099A21D9D29
-741D68270629AA3A414FE58658DC9170C247B6E23F35C4BC5FF83009F462F2EEF4DBAC5FD158A658
-57F9B6DC1F5192DFB169DCB65621CAB2F1B07BD22F4155A8E9E2B6388D430FDE5EC1C834D22EA035
-C52E1E34482EADC36B4CAE902AAE89A7284E62B3C84B608D6BD05F75BC31310B2DD3B2C08A00E073
-7F104F03A41989D5F6B9A2C38B22F1D1803EE5D7A4D8DE44E4ABD496A1DE0C0E12C4BC96D0122846
-3F0EA9CE9509FEE987139F3DD3F9D0DF4313F555BE85433718F6D05F197C41A9D9C7A8B0D2740196
-82D49F58DD5F66B12A6520D9F226D1DF1F1B65CDFA261F980CA25A92645B86B64606293F8BFDE364
-C47D2AF2C709BBE77A70A5712F2CC26F3D66F5BE2C307A48E6F887F681D30121E32BBD87271B5DC4
-615D28C309F15AD263FB37424E56DDA6E17B998B45BE6C7FC6C28E3394A8764C9EB2DF5C06626593
-B5C665D550D4600172791CD208AE9F37BC082B0B242B0A504B751B18F4D7495172B697EE217834A8
-A4FB7CC16D6F9E8BB400BE8AEB0850960283DCE725249FCC4DE97D9886745AB6066C3E2F64DD8AB7
-9AA11667F11188D7965DC11EB760B772E282DBF13249F31986AC6898FEBFE23E3E8B8D2C33E00EA6
-FC493850ECB2E6D831D1EFCA3C2EC8EE2E394599091ED58BEDE97D7A43B6F739EB0F845EAC1DF6B1
-EBFE876009CC5D804B15ED4B56761B3CE1AF59C07B49DC798A44532297AD73D5101ED47F36A3678F
-818297CC27F6AAA2AACCC9AA9B6F5459911D8C56CF499E390AE607F3790450B2B9C9BE0F006EDA0C
-715B5CA0481734CFB0597478E7602B0D2C1E4F78F03C68C17C70E4B42D7D2D3C95CF40F73488B371
-8E2CB05A549944D86944D78724E266C3319AF89AE430E777E95F0D792B1C654306E421F3D63A26B2
-1E74B6E8B21B2E2B9DC596D013CDA16D08E65E8F24A84B12B2BADC653E6E1110DE2E709C1C1BED13
-707B70A421B384F20CA7A9A9D20324DD383F28B2D3C7A9C53F5D4C6B7C378D26DF11CF55238BE1B2
-4FA70DCC178DAD3D35670FE4919085EB1CD905971D76A368FDFCF9D2F0A23739851A3A6D2E02D65D
-54DEE69ED5D81315D3EA5E356F94EF256DD267FD1E1A9EDC9CD63E743F299BCC4A4506233B8DD765
-2CA067F741603F93250C087D368F9E9CC4CC1A6DED567487C05BAA992B0056A77F630A72008E3946
-15A9DB24FE56A956650EC9DE90A6C2259189440247970541CA198748928215C0E132A81AA13208D8
-63C1FE817F70CA573B54577D10B73100AF8EA088208A44FB92ACA314AE5879706180788C17BB1D0B
-81B6B95A1C4E0F9EA66F9B39BFE12444A6446691A7BDB03E0F03D9F07A10A7598F2166F108529F34
-CD90E601FFED3479ABCFCBDE8F051C348E48C61D95B00C59EA1287423F05666C3D36288844067E83
-E14F6B5210842C742B89F13ACD126B9FC50ABE2CA7D7ED513D43B6AC7F41EEDA416BFFFCC5C844AB
-2D23D4DC09B2D510504CE98D02E72020D9E669DDAA344C63A1B75632F912A1C0DA3885DA4AF7E243
-E4A4C6493D6595BB6D56B0359106957259E59E336BAAF35BD1CEC5CDE735272EBCCAE8D4904AEBD2
-B32610C6FEA2B69941D6542ECB44D71092A3CF067708A3D087AE99FF29671AB7DD8758759B971A08
-AE1BAD78270D2FBEE37AA2DCB119D72F6C7B0C8509018A70D0B0BE2C6830EF8E0B24B1CE1141EF87
-3A4D7DCC501F808BFD94E4DC0F2915AA023076BCC8006490A43685EA25AAFC187302EBDE7FE1965A
-04A5A398985D29F08E085127B56B057334D88EB638A4DDE64AFD204974C3939536B1B66A54B4DB81
-151853915718F70813F096CC1B0EA25E363B49264C2AD17158A4489F91453FBEDBDE15D7B74D7F98
-E81DF23251785D58295BA297F295AA6248A912CDD4F1111E6B628EECBB5139709E76EA4AB743CEC8
-26621D08E6BC64691CC90B3C3C1778931A28D3D5B1E20E96C643316613FC487C9B604C43463FA453
-3BCA1236286E6F5A6EEB2F1D9C34BDDE4595495A365F88055D9268541CF1654ACF478D384A5496A8
-772EA1402751A093582A6625A0A44816B5FDBE166835D598644296249B92CC90AA3FD6445C9A19BF
-27F59CB0616C7306070F33C7DF4E1DE64AC8C5BB2FFAC1EF2B1B30E5A0275E6004CF64BBE2C6710E
-DCFC3AA4ADD60106334708862FFA6652825BC84842736E47AE6917180365C75B27505EED3C6108E9
-898A780E20C3F606A860229AC46D0471ACA0187D6D539A1B8820F620F72B41AD1D3BF3834BF48CA2
-AFEA8BF535AF74C4562DEADCB63D2F5C7585722B77C989342D190FF926C8A5263B4F25286F99CF6F
-C62EE6E2AD61C82B29D82468AC10FD27764278E5558CE8B41BA111CB2F040914451A480C93084237
-CAC8F66BB7C6689F340B8ABF0150E06D5B1177278A4C08742FE22F42C28680F190900344ADFA486D
-59718C25D37275BCE4DF981AAC35D2C7E85C72A0188B8953CFA516FD545AEE0BF4B8BA301CFDE214
-4241FBDF3D204E3D2823301572E23F204C97305A82401660E12926EE7BA6EA1A81FF5C007933AFC7
-3266FAC4C134ED818A48E7DA01C71A46335C845F9DA5E960B25339D551582B375814148D94CFB781
-FC56093827B78578A73D4FF67B6B87F40CFA5E3F4325D9108CDB64BD06427B88C84105187316FA29
-90B4E3E8EDB6C78ABF164F4A9717D523794B2FE772A04DABBE688CCA977090979B5F47CEB90A1DBC
-167D305EAB231C9F4260C4AD10889CB785169902FC0BED78DA15B8417453BB65856EA0BEA5245BA0
-573F623D215F6C0CF801851C305B355D26B52B0B343645FE25C78A3526841EDA480919A1BBE5F56F
-C10ABEAA3E1FCCA7C43EE560F067F1AA2AFD642F769D1ACE8E2AAAF38850F0D757CD808C921D716E
-96FBC07DA7860DFA70CEAE2888C0ED3CBF9586443532B68DAED9A926655C157A416C383A53D8F283
-2A4E67468112A09ADC837ED8EC95F70852921F50D4417239FC42EE3624CA97F682745CC5E76CC7C6
-7BD99F2180F8C0B7FB49539C8CC474C25C0DDE491671FF329E51BCFA779346D4686835A3AD6633FC
-B5E0F67E0CA9CED8F215BEF4D240453EB2EDD6ADB22278AA5B985FA140C9834D38753DF2014F8C0E
-E6DAD19E8FC54C03C1F6CB0F858986691D99592562CAD95FA0A5B2ABE4A8B54B457D42E8C33A2D19
-51C0419A72FB94FDA78ECD92BD2A1416459E9DECA9469F35E4C47DB531726DEE8F203D7042EDB32F
-025DF3D582547BB1D45F7A5B70D317DF4EBB16E36B0D798E0932FD2A85B04FD67143E4B287A50416
-2C1F5A037CCD780088C5476385AF8168E12D97D44B0630621759173C8F1E3006B5B1C6D7138B7EEF
-C3CC5F54E24B2C3CA7B41AACFD25E554880AAF406EA4C3C6E21D3B550B040FB1952598A7E8E6488F
-E38288B2AEB6C4718338598A2BFE4D2B9D14C65732DA304C16FF3E1F8F03046EF095B65FD609DA87
-EC24A69278BFE65C905CD0329F6A486B8525B7EEA4F7AE56C2633CD83543269E8ACD6D71F500D82F
-DFBDE7F7F7B1AEE67328549232E26CA55085B6E84D9E2E7F74068F93A90C4654F2F396E57C5F76F7
-E61CBBE523DBFBA6E76638BBA3064DA025A79E3A294FE7F1CC28A3B4C57DD6FDC48E541A85534B25
-E1BC11B4F78019457239EAEFD4BE9007D205F1D985F389DB22400B279C10948551A6B4A17FBDA0FF
-C9428B18B43DC76EFB15FC2182216F1B60B4E344A03AD6C00F141EF99F89F24C819C3E32877A927D
-84C2D006940F39CA8B71E5951673EA9BFD1749923219DE38929ECAA9CE43B06CFA7DA1BBEDFDA56C
-61FF6C24F40E59B13870D5FDEB82D981154FAE5D6D5152DE69339359461A41A9713B6BBE47E868C9
-33CD74C75DB71D13BAE4DEC85E02FAA14EAD6C0A253B16C79514657B15E68CCFF9EE6AA385CFF9E2
-C53D9AE40F85C793E4E8FF50B2B7420F4FE69807BC5F37C3E300E6B3C3549D1D3246A2E70F091054
-1135BDF805E0A698E236B6496702D061241687B7B8D1A0E517DF0476DA09D89667A7AB375FD2672D
-CBAB8124E511502DDBD08BA04D941DF1CEBDCCF7ED48405CBCC33774A68C5212FC6F132641FF413C
-984F8B43BDFD7B1A2A3435F15AF07EF4970D3E4A0BB947C181E9CA27CC14A35BD1BD096875B45873
-8CA244F88C28728B74E25CB8C4FC1095A56CA75E4569AD3082EF194ADD11350DB3B74B96761D4538
-596FF7243B1E1B724716A144106E080D42036444FD472998460CE9ABBD05B42AF9389AC452BDBBA3
-A13A96890025789F16B9D92251FD3B3BEB2C61EDDB370A20456E3BFE5F4039E2557C451C524F8087
-015BAF3FF05F51869FB97512968BDB2B49589C1C7AF1E085250A47657465F480B7023E24C76731AC
-0EAB6704123D77977D3A2C4C56B691346EBE589C619C04515D34F81FC6A17527D5D8319013C5D4FF
-27CC3925E24C99231AC7FB9EAF0BBA482D3B75807AC85D03CD09DE5D9AE0B07B7A813F0449786500
-0AE8A7E00080300F0AB8C399057EDDBA273DD2E1B2A0DCEFAD3B332E6D4AC1FFAD846167DFD70E03
-46DAF84AF292D4F424256ED5AC4E104F80697050D50844A708EAC9E7F7784FD01646F3BD0C595CA5
-1EE6BD607D254E78ADDC5E15C3B6AC4940EC865A5C23105B6BE09EA09F2C05D6D76960A843B81EE4
-33977FAAC3CBDA85CDD2F4DB7C28293A77825635992AF8F3B38B4480D9A139B1662345A8ABE1634A
-77496C3F57597D2985E9E54717AB2E99CA35789441BCDDEDE9A9E2106B401D9684ADBEFE40D607F0
-75C179E9CC03E59E65430DB70B441D43DF03F2AA6FF06F224B6E455B01C64FB89EEC9103E48453A9
-749B4D602808C7E408A8903091D85E06AAF635D0D529C3CDD1B8479AC0F4208C284BB678A547F2BD
-77BB17C86D4560434F7AD1937760A6AA55B614CFA9FF8C9C96561AE6C8F2121C4E20237428BC51DF
-2099B6C49E3EFA18E6D439E6E6981E746EBB1DC461259D8EA0F8099C47CCA27B2D982B72C9A07CF2
-1B3C05D6E26E6E286E348B8944078E24809F9C5F3D014B4CBA02533F5621BFBA1F0EDB776C634746
-703C9F73BA89B1960A496420C68F54E5B901A6D733D7ACC79F275FFFB253F389AA480084468BB34D
-A1E797E43B7F6E8CAF5E8C93069A3A2730E57EC39B677BB73E3F07C2055599F7062E53B37A5F0099
-907D2ED87FF7A82C95FBAEB888033BDFD67BA3A6031A4CDC56CB1E4CF5B06B46E16D988BECCEFACB
-9E1C037023D7BF5CCF5D65AA66A17AB361BE7981F132A578F3ABFB97960A6034F052D9D5AFDC0679
-782EC90F240F943A5F9A3D969ED7399254FF67D89DF668F7C56FCEA1FFDCF20481474AC8495D3AF4
-B6D7EE093E369C057F0B70858220693B398ACF8E8143558132E4391405E30A73937C53402E459F4A
-A3539CF7A99A3F51C0307D045DF8B77757E92EA2F51BF0BB4F77D3904DD355665870C2B59F1ED7F8
-4FC71FDD7F0B6C5D3182DB77827CA6A2060D2B8C83C4EA4A432EF43A4D0A952CC6CBBE52A9F0CD66
-1A538973DE41FFE9C5CF55F2506B9EFEE51FBAE5E63BDCF5528499A47C031163C88D3022606784DE
-2F46A9C9235AEE3D4F71D4959B0CFDC5B7E78C8C0A8F9DC99440C2263DBACB343C5C648577F5610B
-50EAB1CF7FD02419EF3941C7CA0B0E64EBAD4B2CB05A0793DBC38F1946D44767BD287F5E9779C611
-CA0DAAA1E7393DBE0683C8D3455CDFEBC0E64B54B737E298DDA605227C0C4BBA87AA3EC7FA6EBAEC
-39E6EF2537D5974391D31739D9FC42983D81AEE44711C823F35F8E2321AC74943871739D2DBE9748
-FE68592263E7713F27E0D49B9B5CB7A4E55DE54E6B800D15856450FFD3AE5F287B12AE4F438B20AE
-9E27E6CAA00F3EAEADBE08432684FDF9931E925544A680182602A3C1997DE5D0630BD5A010535E66
-E1C123013D23966B3545C7431C39B97295BFA4099D14461004C42C85095EEACB9B47C593BC6DB863
-533A8619BAE09095DE8ECA432D4DDD49AA600D277E75DC3F5C6631E2A05382CB007825FADB77438D
-CFA78E252D79B6A196D5164C2FEB85D75ECA25FF80B1D97FE10E87960CA0FC47C41D3A213BF141B4
-8BC3AAA93FA86245064668394665BFD52D12C3BE4CE39EFD8111754398A944C3FD1AFA98EC337BAA
-AF899D35E804CF416AD7FE45FFF13FC6354007501043F98FE8428DE8013901BA6A28711A2CA85A27
-0BB135B72F1D5026E8217581860729E94F2F1878A0E96C59E9F62714FB5F8F25003DFC7347E99007
-8A9A331CB3A6A535BC61866F02513DEB982C4A13ADBFBAC3FF70A7335F40D5489E48E5EDEDEF1619
-1973D932479C62183B0E25EE8C4F76D4F1AE45DAEA4A12AEDD9EF81D248E8D19F8C8A5BECDD1EA1E
-98783EB7A38149170851B1942C96C53DE06DEF80913BFC04E539EC67C110498D15B78268853E5C72
-F485F8A27B768569E54241F6115875E2973292CF48FF91D45EBED627AE9F0766D22201B20AFDD40E
-5B17CF337F2999E0BD15B86E46EB3C18FC12B7DCADCF9DD50C6C7E3F37E615A892DB3F57E250A072
-A49F7277DD6A2C8042698233D35A699B17ECA5DBDA6D250ED4A16FCC893BF0DC2E33FB1EBD7DEDEA
-3C1C39603C8B7E1A5A833A8FCDD5570BD088749BB232615366687962C7E56ED089CD7B092505CAFA
-5A80F503C4CF337F07ADF0D106937E25670839D491F7BFF7A523DB609D126328C16113ECBCBF9C40
-04904427A108618AE5D4ED809F8CCAF72251104C94EC5BEE21F91B179D31DBA79CEEE5EC7FF698EB
-84AB1D2D1A624F58B3622A78844CE51498B2CEF38EAFE259D22C7BA61104651A862008BC1DDDA58C
-C45F663EB26428DAA85E7785363A69D2790996EF5D9621D53042F42F794962FEA46E46F37B8AD1FB
-76FC8D5CF2146843F8CC625139C75FB42DDA71A752BAC48F294E4C0C8289FC46DA5EFD9C91BDA6D0
-27518B7E81E8B21F755A9615627D5812ACA674D1527A1185EED4E3C628196E7D0759B1CAE6B9B7E9
-01E9599A65230F1EE469CD33B9BD9C104C44E3C1AB966C9678BD0AD78111A4E0F2D07A01A038CEDE
-7036D0534D684A1562A17AD64A00F279200C0371B1CBA61747671D2A21D3F9646CA290F6B82418A9
-6FA177C6278277504B7FBA936325F5FA124AB018A15DC18D2C5E8F93CDEEA52BEEDB78A57828D81A
-3E6C38B9FAF3DC4EB7273ECE3EA4482A1C6242A335862C2C3717F9C9ED95F77B140C4E1569B2192F
-C7DCF702D0BC9A50428EC406F8BD0CAF886B4D979320D3E429816D88F7C7146D960AC12E70F2CB7A
-9F4E3E366665AB3F1B4B6440F55EEA26DC9EE0096BB7763731740A537766490C8C174723BF0EB40C
-53701AAD12B21D436ADCE22203C1053A9DC4E9F17AE617888C4B4E6F3A720E4E6366BA628221A387
-D8AB15E04AD69387C310D3528BD2FAA5B22BFF3FA494F5FBFAC4F771C9C7402B95580C5AC4BB3AF6
-92A70CB2C851FA5CF1173EEC3EC29B5A05A0B728BBBB51D3B7AD8B0AF17A1563E82FAFD93F8B7118
-1FB7AFE352874F4EC6D334AB6747519AB8E847B7BCED33EB5458A828E074E74BA621BDCD03FEA604
-7F7B6ABDA01FC7514BA1AFF0D4D0C0CB8F4E42D5A87E395D9ACDD02CCC220C157153422018725846
-009A3ACD8C8CDDB66BC6836B4026FD9F526AA275D06C813179E5924F26A25094E7BDA8BD26AFC4CE
-B41D8964D4FC4AF1DFB0595BC5D6714C32F15DC7194E9A3A73013C45D8FA55CC0550A12D9AAE8E9F
-F199FA28EFC2426D8D1DEFB93A65717AF3EA8E2D5B4AA8EF0EF38E9600F7D4E7D9F1D67A2E63ECE4
-789FA74B159BFE2F91C19B0378BA52E93DF12830D99553B6618645E26126842AB70262D96E35E5E7
-50ECA0CE3458B3E51BEE2F21191136DFDBCA39BDC07939E521E4F492F392DEBD029C1EA237BD89AF
-76BC89F618D530160AB16269FA6B693CF14BDC4EC7C630025703C5337F61458FA09104EB15C7CB20
-AA4C9BDB7CEF3A09F25BC7F3149951A7CD75372993B80CD2112F7674CEFD6AFA764AA3486730D2C1
-897A264D82A91709FEC4A21E30D812F558451804EE6F3DEE2C4C437846BCBDA07C5B6CBA1D94AF02
-9163B7383CAC6E088AB1DC14ED3743EE77E26EA7AD3119A76C0B5F925C4DE305CD7BB3A09A453947
-5B9BD79BE28FC462D8718CE05F9D94CAF3387BA55E6E447BF81A9EDDD3A34E17BE66BC52B0C0BB6F
-86F6F008829173816D205182ED2ECED319864A796AB65D4E3950288BADA94FA32B6F453AFDFC6C39
-A4FCFE60353A64627E2057D4B379D3240012B3BB0ED0C7876CB83C1BA5EFB6E2A03F340C2B576731
-F848F762A7E1CCAF267EE06D621BC33FC245D0E1547ADC12CC0EB58B26BABDB8EAE9CBFBAB93836F
-FF22BDA1831DD01B7346AD377AA298D84628BF1C07433284B0A90FC89F5AEB2651BA2CEA405D4F52
-DDC0E74B871D43F71EB4ACE0D2B401F9348EAC3A2EF0AD295036BF6CF6F870D58E00B619D50EA7DD
-77BC28DEF91D805CD527DCBCFDC16C042BF9B874E3B1567EBA4C1E70744B9E7E5BD1FDA6A5FF6E10
-1613FBE58DC46CFAC1A65ADAF65E49757E9304E2AC9A91E0588600C709A61D4231730073A36D473F
-518A145E141D0A5A494441B9EA99AC23F60F54F8127B477E1CE698BB4129B4B1DFEEDF10D9E665C2
-47A62F112F5CA30B0AE5DBF3E495FF06EB28EB438CE8AAAD84D5F50FB56A3AF002C23BCF66ABC270
-7AC233FC0F2723DB99D2CFE7D3B3667732A531F5DC315CE74EDB9050BF75D29E6430F57CB6778B2A
-CBD57DFCEF896E6766C8FC5C9F9FBD701CD62CACF33EE0FC95E78DADD205B5F42CC63024624BAA0A
-B4DD447832B4E1DBA77BDFADD223989F8E958C8D759AAA37930664C6EFEC708116248A2A7AF3D656
-DDEAFD009B7F5333854608E67E5E588A857167ADF9225CF6C641F5E19C3E08678A281199EDDAC831
-B57223B1BEEADFDCBC8F6F25D32FCA2336C808162E8F381656E847FB6CB13969572425AA05AC830C
-33DE6E030F86A3A85D2A66A77F103C7042C97205526DC882EA9A00EB8BD5519847EB424C15F808A9
-1652A6CC89B66A5731126DEBADE123C63D88A2E550FACDEB3886FF98646000C64B3A91078012CA30
-904B71737CEF6BECABD43DD702880538F5A70085E6CC6015D2163681067C3D513A8C66032C34A0FE
-17A58AD4BC97CA69BF41F11D5E910FDFE9729652D3EA21F8DD8CC19160A8FC77573B1E9CEF4E790A
-79D8AD6723B6804E9616466C935303E063DEE29CAA6C3BAEBF278B818C2EC2F13ED645AB452397BF
-00DB8B26E115026E256746CD0C78A959364FDE6DEDDCD0F441A61A1EBA32C7BC172BB09512148D1E
-BAC9E791B7D51B71CAD2DC9B83B2F99B3726607D9CBE58B499A13753CE87FCDCE21C0AD0528ED0EF
-B9B2C927F57C78C626248AA2B835A0791244C5896686A66173EC9F802C4C633A42B086334D2A4878
-0E53D00809247BE64E529F96AD2F8B3922A6097D414DDE1EC76F9552F9B8D58B8E34F359AD792B2B
-E50C26DB05035E7497162E7C49C38D3CD9B98D620AA67492BE5AFCA3A81A7080185C7F0B5105223F
-1FA77805502A2E8C5FEEA27699858D84A95842C5F2FB68686D59FE24091FCDDE139B6463BC6C7B1E
-0E90D20A83651AF00C85797BB9F53ECEC1675C7EE636D0D9E77DBD8F89670F855EE4D4800FF3F695
-0EFF09BBF8A0DAF6B8242840CFA5BA73BEB95115F4A78BCC02D85ECCE0C0F2EF6F328AD1DD6CC049
-5A3315B414A4D61DA50DA46D7ACCEFF6EE56451805D26B0359AF193531F95F6589CEAD6FA041AF15
-3067F88A0A2FECD135C56682DB2B45A71D1FA737C064EE9A4F404BB72A70B3AF0330359393247EC7
-81512482579865240A23CD8479F21C2C44A119EBC4E81B308DD8AA86E60C3DD8ADA50E0DFE8308EB
-1A7F201EDE8DCFDA405AEFB47E0E6CA7DDB376DCB21D37F7ACC4D3E9F26B03A8DE0E8940CA3A9E75
-963A389DF8038D2C486072F61C0CEAF500753C7A6352B1CD0338D9212B42A4D3DA23D5BDF44C27C9
-4B88A415A3242FFE2E1B332477A21D2B9CE075EE479C6E657A4D8874A8C53964229310E01ED4F3C6
-86FEF5258EDF3B464DD6FFD7F1CAF473BBE722D60FB14AB4918E93878A8AE4773930B8CEE110F476
-7F42A52D9304C55BE12846C911A10AB9B2E036BF9DFD597F5348D42233315FA80D0F563C388BC253
-2103F05E90DBF1923F229F980A2F4585C7A373511372D07DCBACA583099EA972C03E5AA67E663882
-6DB134564DB993CEEB6E7A6659C7C5C05C310267D5F8A24EEC2D5CC3E3F3C808E6D6068D1A57646B
-37FABD98ECB7BAF99E7D9AC4414A491A73CA34C52F394352F6B5A15F0FC4D88622DAC694699C2464
-84ADAC3B1D366AFEDE2A2CD2042C90516A666A19A91C80248B11224BEDDF1A320E230739E755D098
-B6A67315535F4C187CFA67ED817A035056353FC859BF286317996FFFB478A2248B908FF12ABDE705
-402224A3EE5F463DD3D243875C84E02DB968ECA1CC52C75171EA50D6A88CA91327A7AA5795019F36
-C0A19C093A1C9D3723C7568F9D41F2E4FFB712FD47F897703D7A620B586B81936C84AAED61D84332
-B3BEBC4F95B796B93EF7A1F565C494F8A65EDB21E2EE18DC025522EF8E599887CA2836069CDDD889
-88E5862977B7472584303198CCE97EF9F9E1446D1F1F5ED1CFC666A8A0C3A03E1792EFB60A9B4065
-49E0DEDF6ACCDBD98742568B4735A747D8E5DE21E630125AE0C691D054E42199C15B1F80CAFA6E7B
-B2005F374A9A5F9900ABB7409CCD50C3AFCCAB1214E6A856F7C7EBA89BC3291801E1343DA9DAD2C6
-ED075C8ECA1423B43E587AEC67E6145272814B3F191B3C285639F9E2D6E148A02DC2CBC0E054D629
-5CD05DBAC1950400A9189316F0265B86A732D302C5BEE8ED233768F237C62600CBAAFF3A110D5EFB
-6CC7CA3B92D965CA7C5E8D3E64ECF239FE2507FC797FDBE54C1112B28D4DA44C60AB09D994C5BA78
-D663A2591934CC052BC70CD1DCA3325C66C9CB982E2039F5DB70C848D3DCEF655B1C2CD0CEC8865F
-E8E1C0A267BE4F707ECE6F5A3DFCA3CC1EDF92C760439F51AA69A4C1801E96CA4D6EA4AD980258F3
-D15C893913ABCE09101984C61B91D603053E49A97CB82FBA707DAE8AF1D579FD69C8481CB7B712CB
-CDDB4D287BE995E32C02B399602A08B9DD849039B5673F1930BEC7BF366EB082D2CA5DB2385C8CC4
-5BE3FC0E31820191A814EBA7C4F23B1938E6C4D800732787CD2CB97F762DFC85D4B798809B5F2254
-D826CA42B32695428D120298B44CF38494E56240B75DF1E41E46E53C44DC505452256DFEC819408D
-605FF14D6C1F3F152F2FEA96EA0AB3B472D8704E06BE9F8C3E8395CAADD06D6DA033E81ADE5DC3B8
-3DAFF743C6E9E48716003D358DF63CD7FD3E2F727D1F2D0C29962F76D5C95ED44B6F08D052025A66
-5785F264A3D5F5593677B630E628B5EA81FB37CFFD7A30B7FAD226B6FDC82B0878AF4C0EC4F4243A
-807B9839EA62BCBDF7C2E9B30A623876E632E084EBF4A21EDA04FC88A1C07021D0C72EC3E969D449
-FEB08E5826EC20E55B21EA71EA59F6E3B0710B0DDAB3261B4A2029ECAB68C19ADD5174E55D5E984A
-4E5F38F592A302FEE6ECE732DDE841A28672C620CC5D687455A5C06FA9FE688394A04F96312ED025
-B7AA6FBCE2925F3AE559CC1886BEECDB70822E2E5CA3F732A87404B1536AAC469989E9610CFA440A
-CE43875A70CA51F36CB6F629D9424C1E35A88F92D5DA3CD8CBAE6E8425A36968E21F4F30349749E0
-205BFF8D552837D6FC39532525370BBAC833F75F1854C93FC533A4AA53ADF7008173A70D94A4EBF5
-38EA9E62BCDA7C20E0A073BEE2EFAC34D2EF1D03BABD5147659E50B557045B2EB89DB303749B04D3
-F54B43FED612FCC68206E001A7AFE90230D9C12F74A32C7EDB5D0241DC3A5D51481FD7C8FAE08FEE
-263FBCED7C7D911B3A303C835AF5FADFD218F61A9D6DE80485ABCA88200047B094441F7767B97A24
-E8C612590FA2407BAB1E8B56C71914EEF2355DD97CFAFCC192BC06FCE063D3D9D1A629AADC75E3BF
-207234C208E7E30663EDD691043065C9CBC473D97C6D4DD3DFF59D6A9ABCDD4412C3128F603160AA
-D8F81C6E7A4DCAF35F3A99B4EA10A34375B477C2BF846521A7EABD4D28078E9340452A198F3F5ACC
-3DB7E3908939FF6E3709C6A3FD9889439A4AE3E10B618CC92E14B68429A3AD2C80940A1079452EC2
-66F254657BE7D79A2A24084AF73F6DF71FBCD32BF6913A3FAB25F977787F7BB0C3A3E8BAB38D7A2D
-B0B4826950643DD1E03BD7DD1FB149A33862A89226B7CB454DAF613128C2075470E42E70A9444A8E
-6ECA526345AB48E6F5160BA23B5BDDFDA6049EC44ED1461C7E0DD514B16E2FB285F72039DE3C7982
-EFD40D7F6C8E8F4CF35AC71B467BFC578002E8D2239A2FD2C4BCCDD8AF3D7DB1F4AE7F2D2E0811DF
-9D0155BA6EDE50B5F052F14F6AB884FFF244D8806C07EBCB49ED22D85DF696995991A954AA97A1EC
-D86ACD76E061B7541E87997FEF0657A826BD88EF3A4A5920462C6595E7A156F453291CA044CED810
-860C3B0149BCE73BECA713040664AD0591304106129600AF71317B0D2907839CEAC99515D357E980
-B1937B6E1200AACADA205421001F1B2F91753E80D2263C56AA164A74701A8D5FD28E46480B0DD963
-A683A1F355D7FB4463C7347C94EA5E2CA40B60B56297CB22D972C5BB10E56715A955605256C1541D
-9F3BC5768A6F355CD3B863F0FA1A781EDB49368F51B29481CBB41D4AEB07AF9DBE8F52C5D0FF75F7
-FB6431D37D6AED84D78C778871CB0F715B4F07580F23B586C969C81B471FF6A6C7276F7E141E02A8
-584D4B9AB00E7BD643D2C3FAAA299B1F1E25048461952EA42D4882768A70DE46B213A287F8D31AC4
-6D5436F22A796C05D1FE50A9BC2A928066627A0D87DD57A3AD91DB446404B41557D1457873482005
-EA20916BBE46C613F456C849D46BA79D20627B446B2F49E3FA309AE14F8C420CFD94922CBC0FB9D3
-5A0F7DBEF577F1849A1A80E0011DA8AC082A8C6F61658E65AD177ABDF23EE17C8CF0D26B9FA3A6E9
-4837EB9E930336889767A8D7EA3CE980A8EA95528B004957BE6067CD9BD8E02A0F23CC1762CCA656
-D33412FF45E917FD4A03EB6E8C1F43FDB0A8965A33B4FD26BC24A20B304CA817E88495BA9B361A3E
-933717FFB0271F7F70C5D3CBA1E86D0F51BF3ABA194DAF32C35C796627D00C7B2271ACE2463E37E9
-7B3C826CF3DB60028F240F9452CBE08F7EBCC5FDB1BCBB3C327A9F450B9E5671916101D6E3E5E458
-CA31F04D12F592F83BADA2C3683D3886AA3B403963AB5DBE220FEC00037A745839F67A3635DFD3BF
-F08F367482962DED88ECF6322852D643A54D5D303EB04BFDDEE9BBA1EBCCBA7C653B3A613A8E719A
-DEBE3CE1BD7E754E5F4977E863E3C2D388A65227B451D4F3A4F94E06513CBA4AC1F2F511613FF035
-611684CCC461599000E546E4D972CA6960E095A526E4735A23421A4C9B597ECE08AFA2753592BD16
-DED93255A1E33DEECE3C5EB77B94670E8137F2A4A4B98AC193258E7DEA5DB8408A806188F2D1DDC4
-40CCF0E9A6E2F0C78FDBD7B68DD4939D2458C1965BF8BED4564B32462FFF3EC892C03B11D3EA813F
-AB4CFBE8D3016329C5B7E3DFED0F08284D44AA0B7A2F6BC96EA4503E8EF52A64C22BED6B452581AE
-8FF8917D53976471941A9116A2D878FB2541B561767ABD4E31CCD8A590CA03494C62AFFD64EA0A1B
-C779173DAD84999C7A8D844EB1259DE7BB5B25CD023537A474A524EBE4660B22568949E624D8FEA0
-AD37F4CE1EC75955EEFA49C6BF1803BE87E9C9865FF3F6B8525B8C15FE8835CA153D27E6C0FF0CA5
-1029A7A9185D25F0F14D86FC797DCC1F99EE97E2054B9C2A2E06FDBEB8DEF6CDD368BF23A858D9F8
-C1DEFDCEAF1B4A8DE5EAFC604CECCF0D285BE00AA912EAB66EFF4D37AD2EFE34853BBFD87CE09B18
-749B489943EECAE7887B006FB827D10191DAD18466CD1F86505879310A8B171F902EA0C26A388E13
-B53C700272CEE2BFB47ACB58247C13449C6BB9D01232C32517358F1A3DE064D43C18F8827D53789C
-CF3CE2EBE78949A6ABFA1A6B8414CE360A5E22AFB7D1DCE6F5A06182C3B984B4F9BB1A905A9D5A14
-83750A1DE0A857CD5C06945EB7D4A2A6BF1237F32A154FDC06D51A703D44FE052FD3C53E9E8F417B
-35D1C851F9203A8997521529F21AD8498F96930AA77EBAF82EE02A57BC77C792D9F220294B45F48E
-A8FD94E01CD25645D36D168923562F3FDC93CB79DD4760DA0C103C2675722D7A1B79FCB4245ED12F
-A0DB52492C9CCE58B333CFEE822812F7DCA68E802C451B5CFAEBAC608B950386B6C58239D1C62D62
-4DD5D15782FC552222CCA06DDF387B373E32C3C2864C63C768350C37283760F3515A5B0AFD66C48A
-B522EB3E808C061F5CD6BD96CD18C9839D30508E7D4EDB88E8F11E31E10919B16B7971F06D7877A0
-58D8A4944C84FC6CAEDF3341B48B6E0D3C7B85D710E0C35F5B5053CF4B4798B3778CC28B2DC7AE0D
-F3A49F9F3BCD8E95D746C35C3F47D68B8AA35D97AA08E711B5FBE70D1A623C82541EBDC51A827D0A
-69E6C049087AD26F256EB7577F58CCFFBCCBA5A95D093DC29464C9A38DE95BC6B1853963B2DEB0B5
-7AD1248D6F1625E115EEB9510B5772AAE4E3C866657DB0B3BF0E0AC345E116F8D4976B770876FFE3
-748C36165522991F46A36F193DD1A1C94713673C7E4C81582391B636C72DE94CE6254374F99B623E
-5686C13D8A8322E83E11BB0B0A896C6A8C2C4F756C5385CD7017F26D23F7C3EE97372C868C8C9155
-81723BB6B76B4C3CE8998E4FA6CA40B633DFDAA59BA902A4952DA90EC4FC3CF0F2676ACFA7F76F78
-236FA2DE10FD3545357215246BB7E527F277C28B353CC6D79DCEF21BCC8F77603CDD58A2CCDDBE3A
-9802F941CED8E035313875319548C41992A2BE939A17CC109426E33825AE59BCD17CB19F50D972FF
-CBE7D9B4B0BB095303D9DC9D406696C2508D6CE99E11CF00F6461147E97449ED5F486D480A86D3A7
-ACECB7E9A945984724EFC21C5079B1FD03ED803C2DEAFCE3327D2D7827715FD65D9506216C88B0FA
-26935E95C64114A51919D419038B1A7E9C1E829FBFB53275093752DF19891A97F3CBF7719C1FD6CB
-17019A6D2D25360ECA804C4B35172662CC4769D2B785C6C87E5A4ECCE31704E59F71263B7C3CAEC8
-ACB4C7426EC25F11A0042323EE6C3EEB04284DBAE2C770BC419DCE79BD4560AEA41571C3B595F525
-60191DC7A8FBF63D413A77A0905E517441B16C2B501EA2F9E99CC38D052679F288FDF1894542E3A6
-6989A0090185EB2E75134BFA3D9147C3DB8A621D9D35E37786853779E157B47F71626D6B3E633005
-9159C17596C1B87FE2B4FF47ED9D78FA4C2160077276C8B58CEF5DC030B4A5D83CF257096C047FE6
-4DE307C598B815058E72D5F57DF5C369E664E137DE29349E2F9DCD8C9F4EBA6E765B6327D7A20DFC
-B20711273FD8091CBA605C4C494248076F7E03DF65A6A50164980BBBB708741E5BF6056E6F996DC0
-7FFF408C5B8EAB8DCEC315E92873228C805D4440A6470E3EE3983758DD211C9CECDBFAA4C9300CBA
-00608A4B2404A3C7AF017A3B7E67F39F0B51ACF950D3E75CC7BC2B8D3480202FA958E8EE0B240501
-5232EE0D264C7CA02C18CA45CB3C2DE322D3EB7F00F9455DB6C5B1F4E59C3E95520EC36D7D903CBB
-625D70B54BF6F8255E412604BBB29FEE026CC660577F91DB1DB4A613EEEFB20CF7AE3CD89D565AC8
-38416B01B5DE4FFA5550D17FB51FBBEBE21CF1D56038863EE931B90DEC2E211ED42BA92EC244D4CE
-2C4EC5CA87A026992772DC2AF754FC982B94F36EA7B7BF75E0ECE90CBB2A6AA1A012E8898BD679C2
-3CB3827C35D5D02F0569C7AA82615D4AA67518ECF668D3B57D6EF1A8013424AC2268BA0D9A74D588
-79EDCF6382A89D397864940303EAEC45A38304BA8B1CB198967AE23EB81054BE74B16909A405E8A7
-799CEE3C270FE2A6DC50BD7370B6B2C8FDB9A87D88D5D40348D3984E39C693B6F4486D994778607A
-80A3122872DD65E40492107C71C3CF708A9717E9EEFAFBDDC239C53AA9645B711038E59C8B861B37
-411AB2039BEDF9CFD00F08D9C5D76154427FF5DD39878CECC5D7BFB3F1F035087185C0981F3C2139
-BE84872FFAD3408531C4EA9387B89F5E3EC779E8850D50992DFDCF9132BC551E985943B07618AC10
-D1150451F0844C0DC41D6E17EB508DC8689EC726400D5A7F6FEB3CC7BCE05F09228B7CB2C5393664
-D8DD9A4B96B1020EF25D70AA2D91CAE93AFB5F2BF0AA18CA5C599FA1A708EF35BF8F7FFEC9AFC1F2
-42870D028B2B1459063B493943EF1283829783E1010242E5CF4DA39D93D506F3892936E7D6CF1124
-70A521D397438733D053944CFF12D6FFAE8246F20618684F263715AA98E15D72A526383E05C23214
-B78338E5B476F0981D90056E6E5D0DB66B1DF2298E597B2ABE1D817E18BEB056E65EDB4234342D96
-00470B1420C9210419D834E431B82F58608C87AC361A02D0F1FE4B470A3D71E0D21BB87E1023D428
-E23D596CB9E1A2184403A16E36E644BCCF9BBDE27290485057E62827283E7380AF786BF395B3961B
-A5EA469C315763FA59E0F176EF81985F38B882DE56A74D128E256D1B89939728E55A92ABA21A6B78
-44FAC1BA7BBDD8B34A18194A2984B000380FE9F672E83EFDBF276FE797A325815B0F25CC95C97A9D
-ACF56D583486305D7C9E51A7E337D14E3B900333EB38FD93A99587DA2341B10C059C71CE080FE753
-3C0F059FA40E560AF9C4A41A4BE6FB45846FF8F78165E10B4AD40F264BCF5596A1E8EF8CB6EA4B1A
-3A5C69059AB1563843679ECB2511A90E8898F54295649CB73D277760D8D04ABACC7BCC6E777A0530
-E2067CCBC08673F9C8C178F9D672AC8A15E5367F0C5651B53E75E0CFA57C931746AE1A679C246D7C
-9417F1CD89DDDBD1173C2F880B7B3847CBCCEBF99F7122E832D7C9BAFE2B54CBAA1ED48158DE3F36
-238B76B0E67644A28AEA996DDC006F6AC0242E4B667639E7523CBC90A0561193C1AF34481C2EF402
-EE43A82E1EBF4E3D601BB36B2D95CD93550D61CEE7A94E72F6D30C32C8F91A61E964B1F66ACFC398
-7F95D4028F116E9A9A8474AA29C1C1A984BE0E393BDC41DCEF6A6F1018DB60D52024899D8EB5D55D
-324D73F39BFA47377B9E15B3B06A7585589FCF52A54684173E5183367E7B0952DC4BC2767C4C6247
-B1D6103E52BC7B7EA6298F454C5D97AC575F19C10ACDFF4E10C7D3755CFAB4200CAC545269FF1D8D
-B0D607C7AD47F40DDF257AB4E7D0750577003C13E4941960C3DD7B0774DDAC18E8ABAF8F53E03CBE
-F6D57B44F24CF821014C064278FD51B3427593D17694B4ABCE81F49CBB984C5878CDF0C38D1ED7FD
-99B0B9A3BD8D8FF6219588B3B8FA59D0CDD1D9B2F65122AB45E48F1757467B9204926140E3C350C5
-A927A2E700173053EC35D3F1DA2D7258714C97FAA857F0898917BD94625C6D1E2D77138EFCAAAF51
-7B17FE187A2212C24A881A2C6A647DEF6376ED80AE4175C5EE80921F001995B44E49F0D33DD9075A
-CF33BB03671C0BCC34AD5784AD1CDFED3A6D9BA103B3DDC1CC2DE74DBB576A0277715275218CD19C
-A8899209125266D8BF1286F881DCC2C383749D1E768D670F4099F7DE959EDFE852583183C9111601
-2881A56A24AAF020EA45CD5F39660DEBCE30AC1C7B8CFC60387B1B0C3E361BE612FDFA9F01B7E4B4
-A18839A2C7E0E393EBC5AD9A8A4EBC316A740C1C295D9EF5F4DFFA0667F9582C0BB837B142C4CFC6
-B1798E9476D0631111033B8BA75A10FDC800E2AB1E0E829632F869CFE4737BE9E2800759EE0831DC
-7D1195EAF80555771981DD6DC6606812D92CB8EF86447F5F6C6F626D0E265C67E52A6319189EE349
-D48E49DFE6A9E98F76C414A1E3217AE0A215A17E54AA498F4ECDC50242ACC7E2322F63BB2FF2189D
-057E7354E32A3ED1803116176B9B9D0129930F919E2FEC280B2C8924E49E7BB75768A2EE1DA8ADBE
-D4E3589906DF1B923AEF84C1BD327438B731012E69BB0D43A1842CB88BB54EA4516477F704CFEB28
-6E3EA483445AD4D74586FCF32E96D366901084365F693A53C5FB532FBFE7BC0CADC404C4985042D6
-8DBB90A6DCDA3531EE324D558A214F935CD9FCC9A0CEBE9B5FB0323F4B3820529599EF48EE068B5A
-CE85004FEA2984F0A86F5AC9D56163BBFE1142B774148F1EB0A4DC89C3349052533A7DE66729DB24
-41B82F8F7360111DACF69293C9B281A0534F3E9E9224A75C49A832F28B2E497262475507B6DDFA9F
-01CA0A6696E3F5AC7EA68595EBA0C2EB8A47813FF936D84AC1B23ECA7AA2862B793CCBB0DF9FDD49
-31BEF354CEC12FBF478559FEC29F81ADF4452E83963E56541D31F3691C93A50F0BBA5E9552C4F2A2
-3A6E53060729854A3DD71CC4308B91957DB19E66AAA18FA67055A950F1C2CFF78A03BC1A588CF624
-696068068719AFB1001C4581EE072113882D9052B21E355D401ED8CD24D067B99E616BDA5A0A5A93
-36FC499632B79FF2FD0DEFB096EF46B75E2D4E0F48DAEA239719FEC4D9A29818F5875FC5041A9EDB
-D26CAF0ACE14CC80BA49BBA59E918EB3D8F1E541AA16026585A2F72DF7D83541816DE46981FB3EFD
-0C30E458CFAD04C79421AB7C4925E23AEA07F9F018431C790002596D26BD9663B51B699DF53E4882
-CBC34EDE88EB55045B889B6062E35FD1E018BCE785157B85EC3B9CA6C85D4B16238275385B8285DB
-012D8FB7C9F5B946A41D7A0FB878FF72C39683144D8A007CFF631B43748F2D5FC690300F9BC0C837
-006B92ECEBE0605E8C3A4A400E18AE8997D1B45FEE10068E247C647CF82C6DFBE5E881D511FFA687
-B7AEB78546BFD07D5F7EC242DCEF4930D8AAAD8C6152B6642AAC325963FD147F236BB850A9966573
-9D06CDBD7CA79A527DCF461E33F22BC9C5DB00DA2BD3DDDD8C99D99793BC98282AA8872FF96C3942
-85D82D9419EB78B6AE37A5F519397700F75D624A09BD255B576E955A323E784E8FC31131F003B0E3
-024A4F58FEF2A6C043796201FC425482E1155E229D1B2D43EF7B0D22322B22EF5C9A1BE026A1C3D3
-75EDAFF99597E1E5477952A4E8D2ACF5D014BC00DC2A272FA62B6983E27D228881E2EF2B8B95A681
-CBE90C5FDE16331C85222FE2A16F0A3C3000A63E2E21666C0C119F8AF89A543D37977069A5ACF155
-6324F05204CE8CAD50FF4FB630D9CBBFC324DEDA584AA56A99D3A76FF55BDC2C2EA3A021361CCD4A
-83C7A5E2768D210FA6DE889FD48A39D679C94EC3C99A8D33FF11377DA7F6F1B71A2A05B302ECDE95
-4F26773F39AC881542F0D0969C3995C3519A8EF70B4220D86BF01BEECC6462855E7B686E1AFF1CA9
-1FB8FD8B4A69E10EE0C2AD94ADD44449506F9B6EF43641F2026EFF6E605C670560C2B74706FB949A
-A7E8CC6A2D0D6207E457E7FD87EC1B9092DC68B9143947CC8ED14AFDDCBF8FDDA228A76847F96802
-E561F67CEEFDE45AE587673983FC04C96744DBAA83F2DC838D633943C75DCB9E6410474EB27B348F
-26E505F0AB90878940E846C5E9F3C5FE8C3558C3236B1B88C405716949B8506841CABE1717474BB7
-C30DB91CDEE33B0F844811762FAEC535BDCF84C1C747CEF9B1FA61D2AFB5A81335BC42C06A94D7D5
-9B7EDE55BCF6F9867AEE107555CDD084B7684C2C87087475A39A9DA6347BE281CE5635A4D07865BA
-98CE26C1465B1AB0343F49FF37B4D0CA9F3BB693D78DC3B21925CB996A038DCC172527FE57C07460
-EF39C07D4396E7FA970D9F22ABD21A9C794B64AD96762C7428F59A8757C36D6C4FFB23216195A04C
-2A2C2E7B10EF7193931544D782FEE4B91E01119C5553BBC6252270A8D8C56DD62D448F5AD8DC69CC
-B45E1F17F0AA1E445129DD00F000005B23D38DE93A3BE55A4C041947F36B4E4536E307D0180553F9
-2E46B743881CB5D5386C48C7D5F84C2BCD06B9C501F78C7EE61FA23516791FCF4DB278AF688A2E60
-10A56692AD92008497487EDFE4BD5FA083FA544138B20D6940020887E35D46E093B71F7A04A67460
-DC8116B4D4839625D7CA6959D6831CD93F81AC4EA2709036DD738364FDE71113BF22EBF13DFE1642
-E564701E6F0FFE7511EDF03FE448C2B28C64FB7D54B94CA576E481FA56B2B18AF10C71F699B6BFD4
-7459CDE1869D0FD306BF489A6F42E5B2F05CCF55BB6B9526973D19CB134CA7F13F1DB3716F8CC217
-73A832568C16250B5CDB16DF24BF81D49F5B37018BD310262EA7078107868AB0216CEC83CEFCAB1E
-9F2C665A31585CA04DC01879CAA79AAA5AB201B516F7052B01B16BEE5606098393B0E5D9F9E5E3F4
-EB20F63C958E796DF41CF28839F5C62A0431648745D7837B519F3AA36BC6C08EF040CCF53D9B6D8C
-0C7D1A84D707EC57A3C6AC9A62AB37251A01A5ED40FDEC6F5BE6E34C6A91D058319439778A2EE5D0
-363E2E1F33463C33327D05FFC0CBF08D5BC457C7230448972FB9B4D0D782BA7DBF10D3FFEF8BF523
-6EC16D4DD6D0D870D9D5EB5C64C9A46A4F583D4F831FEE74B0E5B33A09ABFD4444929BD8F638CD72
-EAB99CF2E9551DF427683964A592E49D186F285258C5D5F62196A98532421D73E3495F82695FEEC6
-E1952C562D546B28618FFAEEBEFF03A57F4D855021F85B0C7BC37FCC6DA9AECA099B646B99D41896
-09D3FF2D56422F8C37E97640293EC7C90E3380887836F4938FBF495CAC14FBA5648D89282D8D49D9
-1AF73ED36581139D8BD42551E263E830EA3C6EB381D85C42D74C50DB0CCAEC03F535ADE92128A016
-0E811C34748309AF7604919B66CD43EB5CA975302DCB6076FEB6BDD6FF55976FE990FB0CE9ABB11B
-195403FB26E3D6C6A0DE1C5BE79E171A61E21F79EE8DBE7A832519813EF6B33EA098C2C32ADEA219
-AB2AAC8B093F40000995539D1276D5F2EF84CCD099B71FE4269BDBDB6A8D59C86F7D2E3FBCCF8773
-D0FAE97640BC1AD43CB4B992BFADFB09DBD0CAAEB8CD9DA264187C4F97300E9A6C9DEED5525479E6
-05C65AE336CBBDF4E5D7F79AD098F977285E065579B748FEAA97F2A753E1F962FCAB68D72BAA8EE4
-FF6691C23E31BC0F3E981A96FB440404856AE1AB32A7205B17D411D8F21C8C93B704D07EC594422A
-BC368CDA2B1610CE6A973F4474E12B78B532666797F5755D269772C9F5400B3BFC6C58395D38527E
-2CCCF29B56123F7DCEF3BDE5DC1DFC5B0293BB125085B1D2D929BC3EE84F4FAD571A4991C3DEE03F
-2DB3A3097E52B1A7D5C73CCB6148EAC62E8E36DE9A71C57638C6E4D5D9DED18174E8C390E50B4A5B
-913C074EEAEBE390B214B3A68F02862B9A296DB4B409769649E51D738CBBDFB7702E15C73C2AFC6B
-C37CE15171F4E822CF20EFE55D9F061AA43E648989628FF79E65932390CBB15D8E621333B18B11C3
-BDF96F841D7434E01AD501FEA964A75B248A35CD9DF9A37E48A1E5A09C624B93CE44F0042FA00D7F
-9EE89B9F7AB785E9C718CF6E7228F743271C2C9BBA17E5208B920E44E765D99D86650EB454B0FAAA
-112753AA1BD3A24239E9C5FC47EEB1547AC9D23731B8DC48B9707830DAEC60C8D3790BBA1120F776
-4EFAC542CFFBCD5C05F9510B27B2534B704ECD36C8B041FD49A96881302FFF5B0163A2DD09C751D6
-D6AFEA9170A4F4C4AB8D46E62F763FE1BDA51DD1CE4A27E772F3A2869155F762FF26B7AA6FCFA4F1
-292E56F03AAB6322BF867E7710C34D43B5D85B45AA68014AD7879EED051B1933E491496E3E26D9AA
-8B80A07BF2B94F1077E84A9726F08199887D66DE7A307BF33C30DD9CF3DA188088C03B2BAD09A217
-6B110DB2C868B53DA9A66C85737BA66C93C58A259860E294AD0191E3A72C73F40B0BD98699AA08DA
-F03587B78F391F3A4313C58D9F29B53C70785637BD0C58310109C54091AB0A34CBB0C478613A7AC0
-FB8F0A8B4645AC966395D8BA775262CD291136AFFDDF01C1D83DD4EB3B59CCAD18057FE7D92A8CD4
-A58F22508D9FD7CF356571F701BBB23E749BDDCBF8A317FDA0AEFD952BB18545610FFAD3AC143D35
-1B8DB3F66293375E0E50235F0D0466932181D377EDD32A5F0FFA4E22B5A0CB4F343D9A7E4A342E9D
-09DFF6C697630CD3971802C277A5590B8CA94BDE6B38446C794D072BBCCB724D5BC208EEF1B018D7
-39373BB910D668882CAA779C2D686081DE6A2606417B54D7C20E0E7F722648D893E4EDBAE8F00D6A
-6DA3712F91AE860C756D1127D133AB828E9D80023B50B162C5A1C5CDF70CCB3FDD7EA060ED20838B
-E1E50C4094C9E79E1A0187CDF780CAF45A725964F004253E034C5BE46BBF89D94631F1A33BAA35B8
-4FA2A9D08481C6674126CD96ED05DCE48BDA069D902D6836D5DFBA701DC0F98A863E64F0E312145D
-8DC0B77F25B43AEC729A1243B45B08CA228DD6101CAA2AC5ADCC8EFF84A4CA3F254176C2CC711EE6
-C273835D0FD3528ECA2A976B88E51FE347FDB60F32370B66D338931D6581630ED586F349C638960C
-31AE4204E89521A96E1219E696B913DEB2AAB7A3B022D06F34FDFCB810A04E60A4FEBE284C2F063E
-0AE9EDF87704921CCFA193BDC912B747E13570066223A49F1F6E2AF0D4D65DA04CA876FF7A462FFC
-9C0BA2CC545C3BD36DBE762F32B2D6BE5867C59F479195C92440DC165098B74EA5C3AD93CDF2D410
-B04C16BC7801E7956F4E5107450787AA592493171C3628E6B8F49D4F8429EB98DC52EF025F001387
-BC1A7093F7A99F10B5D2D7DD8BBB393BF6E56F08F4F7FA1A343F220D5A1EAE7168C74D41BE1DC1A8
-3BD65B72B982F4F7B34F24F97F9EC9A91011064031FACFF2A14921A32024385F4E061CD07D152E74
-1BF97156D951A342488FA7F5EF934CCAD13E2753A0AB7A1F565C2F7F6B349DF03BBC25BBD972A9AD
-F809BB5C5048A8CCEF9297B2ED3324D18867F293CC66E88B3A39D107B610DFE79A3B4E83A96D3D52
-A17FE8A62C9FDD271130148366942C9CE57558D023DA5F7501319EBFA33DE9E6D1E76D7C20DB8A09
-B657839DA99F3D8143F1EE6253A3295C9651FA4366547893C2DC7ABCBF4BB7609DE5D001E0A36D9F
-FBE01F7D0903B3208AE8547E2E5F14EC1AF4C2535CA8F4EA37E3F3CE172C7A1E8308995B1CC23E6E
-81190246BCAB6E755BF868D449BB02A2AA87C44C9CC0F571ADC72547CEECBE104BB274B8AC16DCB7
-5D5F458D356466B921ACDEEAE384E2EB1DF6EF393B41B9747F0A4FAEB4AF1928D9AD6FB7E06FDC62
-1E4C6FC98CFB43F88584BD55D9B97CC9549093EDE586912161931162B1B1D52D0443260DABA02AF2
-B4432100D5506546013DA703573FA8013685CC798CE501960093DED713FFCCF89CA2B9106390198C
-29A00864108CDCC1984A8BAB53919028C01B26ECC7925E38CBE6CCA8978EE21C2B06E7B3E48FBA97
-8E2A7D186E563C088F84AA23178B60E4729EE87D67B1091F3B6973676C1CBFE6530EB773C62E2C24
-97014AB0E8B71A1F4E86A378AA26591511BEE3CF3D64C94848582E1354E1605B6457823F2C5E640A
-D3802946BB2E7E8E594E8C04B430C2385DD40746CE8534F50842E74D7115F3DB0C72D1C9C607C657
-3B094AEB73B7A79876CFFC3E2F8C9FEAAA07D3BFCE05B61F7749A8793BE90CCCECA2D7077F25E899
-D3331FE161A7E86C842495D584C6E4A0880B2951D8A13B88C4672080A0B1BE36BF47C3ACE7288CFE
-41A8C1BAA6F0814A947FBD6B3AA72B6C73A8C578CA51CCC96F2352316C467BB960E981F2B6485BFB
-44B577E71EFDA16E7405954BC7C9F0759F5A9F1EBCD2FA9CC9648D5831A68887F41B15081A204C24
-B4B992A231DEF9E698D4C3A25B6F5474F5BE6A601F2D337A58A0D21FF37FD91EB86D1D738893A03A
-69F0CD743F611CDFFE69DB2C6ED0E4611D56F803BB0DC06E7FE85A303839612707647B1BE9FAF8D6
-84122CA9E5CB8BDE2936D3F4FF254D31529D7538BBD4D35539489F9E7316F24214B996BCDCF1818E
-749A71CF0E8845AA1E2A58AA62A48E02BA4564625D20AA220EE719608521D7D7A7FCA0BD8904A401
-9819D371F3F59D46C1354E5FC1A6E5F79B20CF4ACA2BF0F2DE73DA193A6F9ACBFE0B4731C4BCEBE6
-D96FE822965DE965232282A3A130361F188B3AABDA95A8A2790D9240BE008B6A6DE4BBFCADA05B67
-86B9BB8E0DFA0C30043A3B07ED46277E07B9808422C8ED16758B9C396F4EA929D769785B2C9568E5
-70A83B989B25CE200F1727D41E2B702E7F88F1784F4C83FA60A74EB26B2DA95126E508ED519A61CC
-151DB6804F61826C5F86D8FA89D06E526FED97A0DB88EDB432FF32C1ACC9B622EEDF601081AF7B96
-3C9CFC1D13E4A9C74FEA0A1C8E3D8653CD92A944D4CA6B0D306619AFD503506D77732D6514F604BE
-4610C2560931BDE0B40939BC1D126B0E97F72AE1B4A9252123B54F7A27E0CFA4425B4546526FD741
-CA77952B10D13E0AC2E32006A903808FF0CD013F936238C74CC75FD915244C56A8412F37F0134840
-347699508D6F3D7F3203A25B7C70100719582CD588590EE34B3AB13E255B613A6D00386A0104CC5E
-D2C646F09A88888D3751651D5646C5227A3C80E8DA1B0A331121DD2429F1F4775D30564DFF47D01B
-BE2C6C72CE4D1FD9A2077C04D2B0274B8916F6A9D1A4A6964A534F47CF241D5A8E34B23F85BE9ACF
-FC2FEA961F277539F215F8728D6788F67BEAF45502839BCF23D8763C3949352F00C579A9A4FC408E
-C625E310DAE61512DFE6844E82D36A2F81709E1F05B38AE9C222ED62C961EE63593CED7AAF73CE2E
-D3667740C77B309B93EEFE1B4BA65D48575A66BE86743DC9E5D3C2FF418D11F7F211B86E827EE1DF
-C3613E7498030F07050524536D1F8A94DDB6698BE7B963C55CB3F74B676CD815A7B3DF4B1A0EA2BE
-1B0B9A11FFBFD5B1FA49668AEE14629316AF436A0821C20BEEF7B3480847934A99F6D85B68F4DDF8
-859A754E009428AF89A90D1852C220A607FF0806E8080726EDC94D691D214B4521C147C4273AEBDD
-BB4A697EF16448CD9B2FC95293305858DECFD406B89B9F3FDAE2AC579E80CF321EBAE5701FB2F7CA
-D8ED04B4A63115886D45D6120F69AEF1A21D80AD3C2D35D2899F1902242B96CD349E0AAADA40F7A1
-1282B6B52BDD97708E58DC5E2D22D1153E5FA3F3B300BCDFAF98DEC2F4E3C82A1C85F985735F3987
-4F557579F422664E07CBE19DA680EFB0FC82C323EC5C4644C51709AC8D674608A8043C91E6C7988D
-430F10BA6CE1FC7FC0604FCD8F723895250AEC36CC35B3FA14FE2A0D24095DCC30B2093F2298F5F0
-A97676A0BE66C3DC9ADACFE2FC0F721A20E945AFC1096A619075D5E9A264C796EC6C90EF1AEEA8DC
-089B44FFC13D27CB2370070A52D4416C53F364393E46EDD7EDE00799960CE6E0D57E4909E88ADD64
-BDD2B0EBE2D73FA6ACF8B40280DAA0637E705C65AABD523B8815F22F23E9FF81E7829C7E4BC980C9
-143AEBE1A04DC0D253396BBB7268BD5AEEA356B610D5DCEE03135E00AE34388251F31714A1C40E18
-2652C48CDA2211A22CB6F02490E69A44CECB169754C53B16028D352E0119F5D5FAE0BD7EA1CDA647
-12A6147374B64244E21E9EC9F0D1381AD22D5B6212B26C3F9AA5F6045F25DD9F5EB4489EA39B1945
-331AC70510C5752557DE21D0A6CFC1EB10A98FA867B76DA6E4249469F591FD154D39E89364A43DB0
-07AA0D7A911CFAE6CE2B557997FBC44F55A27F622BD7B8B10EC9F5D10F2649A646FD964AE1B111B3
-5B46A252C4DEE44E7426EB5739F24E8A390694597DB3A1FE7800C97E59558322F0E49A0CCE2AD94B
-1E2D1026AFA771723E3F523916F55ED866C9FB4A2F759651C613A2CFF362028CDF9D38F05D4C7C60
-24C533E930B64B099FB1AF04B01F5FB9CA6867E6EFF55A772C5391831059987E10CBF987E3F378E0
-1329F73D54DC0484177D3C3C06F67397955FF1CA4EF8AD1606B70455255D631A7D6EB92BFDBA14A0
-FF28B2ACE7E81AD666EA9B3A0F5A6BA3B5DFE35044FA4B3D8ED956009C60E98CC132F2E84967F4A9
-8A67B336D5EE7CAF7DD1F74D1FA08619941361FA7312CF225D89CEF97E864C8369EAFAB94D97F056
-5505D825972B754F6729596EEA91210B75DD8F645382ACE36DE60819A02B3B48DD00F5485F9264F9
-FA926D732E2C267B0BE8CA98526F124F97EFDB86132C5EF16B103908172FC51F286FFE45FF253512
-E0033F037FF182BA536A9EB2DF2D1DB257D9C86C46E1B002FB32AC70CA9462E6EB48994752CEBCE3
-9F08ABD4F4B0889283E55500702185A841E328
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndResource
-/NimbusMonL-Regu-iso1252 /NimbusMonL-Regu ISO1252Encoding psp_definefont
-/Times-Roman-iso1252 /Times-Roman ISO1252Encoding psp_definefont
-/Times-Italic-iso1252 /Times-Italic ISO1252Encoding psp_definefont
-294 254 moveto
-0 0 0 setrgbcolor
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<202020202020>
-show
-445 254 moveto
-<63617365204D45445F544554524134>
-show
-823 254 moveto
-<20>
-show
-848 254 moveto
-<3A207B>
-show
-294 298 moveto
-<202020202020202069662028696E75656C6529207B>
-show
-294 342 moveto
-<20202020202020202020666F7220286A3D303B6A>
-show
-798 342 moveto
-<3C6E6D61696C6C65735B695D3B6A2B2B29207B>
-show
-294 386 moveto
-<202020202020202020202020656C656D5F69643D2A286E756D656C652B6A293B>
-show
-294 430 moveto
-<2020202020202020202020206F6B203D206D794D657368>
-show
-873 430 moveto
-<2D>
-show
-898 430 moveto
-<3E416464566F6C756D65576974684944282A28636F6E6E65637469766974652B6A2A287461696C
-6C6529292C>
-show
-294 474 moveto
-<202020202020202020202020202020202020202020202020202020202020202020202020202020
-20202A28636F6E6E65637469766974652B6A2A287461696C6C65292B31292C>
-show
-294 518 moveto
-<202020202020202020202020202020202020202020202020202020202020202020202020202020
-20202A28636F6E6E65637469766974652B6A2A287461696C6C65292B32292C>
-show
-294 562 moveto
-<202020202020202020202020202020202020202020202020202020202020202020202020202020
-20202A28636F6E6E65637469766974652B6A2A287461696C6C65292B33292C>
-show
-294 606 moveto
-<202020202020202020202020202020202020202020202020202020202020202020202020202020
-2020656C656D5F6964293B>
-show
-294 650 moveto
-<202020202020202020207D>
-show
-294 694 moveto
-<2020202020202020>
-show
-495 694 moveto
-<7D>
-show
-294 738 moveto
-<2020202020202020656C7365207B>
-show
-294 782 moveto
-<20202020202020202020666F7220286A3D303B6A>
-show
-798 782 moveto
-<3C6E6D61696C6C65735B695D3B6A2B2B29207B>
-show
-294 826 moveto
-<202020202020202020202020>
-show
-596 826 moveto
-<636D70743B>
-show
-294 870 moveto
-<202020202020202020202020>
-show
-596 870 moveto
-<6F6B203D206D794D657368>
-show
-874 870 moveto
-<2D>
-show
-899 870 moveto
-<3E416464566F6C756D65576974684944282A28636F6E6E65637469766974652B6A2A287461696C
-6C6529292C>
-show
-294 914 moveto
-<202020202020202020202020202020202020202020202020202020202020202020202020202020
-2020>
-show
-1327 914 moveto
-<2A28636F6E6E65637469766974652B6A2A287461696C6C65292B31292C>
-show
-294 958 moveto
-<202020202020202020202020202020202020202020202020202020202020202020202020202020
-20202A28636F6E6E65637469766974652B6A2A287461696C6C65292B32292C>
-show
-294 1002 moveto
-<202020202020202020202020202020202020202020202020202020202020202020202020202020
-20202A28636F6E6E65637469766974652B6A2A287461696C6C65292B33292C>
-show
-294 1046 moveto
-<202020202020202020202020202020202020202020202020202020202020202020202020202020
-2020636D7074293B>
-show
-294 1090 moveto
-<20202020202020207D>
-show
-294 1134 moveto
-<2020202020202020627265616B3B>
-show
-294 1178 moveto
-<2020202020207D>
-show
-220 1289 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D6F64696669636174696F6E>
-show
-507 1289 moveto
-<6475>
-show
-583 1289 moveto
-<66696368696572>
-show
-740 1289 moveto
-1 0 0 setrgbcolor
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<534D4553485F5352432F7372632F4472697665724D45442F4472697665724D45445F525F534D45
-534844535F4D6573682E637878>
-show
-220 1344 moveto
-0 0 0 setrgbcolor
-<706F7572206C61206C65637475726520E02074726176657273206C6520647269766572204D4544
-20737572206C612073747275637475726520646520646F6E6EE965206475206D61696C6C61676520
-534D45534844532E>
-show
-294 1445 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<202020202020>
-show
-445 1445 moveto
-<63617365204D45445F544554524134>
-show
-823 1445 moveto
-<20>
-show
-848 1445 moveto
-<3A207B>
-show
-294 1489 moveto
-<202020202020202069662028696E75656C6529207B>
-show
-294 1533 moveto
-<20202020202020202020666F7220286A3D303B6A>
-show
-798 1533 moveto
-<3C6E6D61696C6C65735B695D3B6A2B2B29207B>
-show
-294 1577 moveto
-<202020202020202020202020>
-show
-596 1577 moveto
-<656C656D5F69643D2A286E756D656C652B6A293B>
-show
-294 1621 moveto
-<2020202020202020202020206F6B203D206D79534D45534844534D657368>
-show
-1050 1621 moveto
-<2D>
-show
-1075 1621 moveto
-<3E416464566F6C756D6557697468494428>
-show
-294 1665 moveto
-<20202020202020202020202020202020202020202020202020202020202020202A28636F6E6E65
-637469766974652B6A2A287461696C6C652D6E73757029292C>
-show
-294 1709 moveto
-<20202020202020202020202020202020202020202020202020202020202020202A28636F6E6E65
-637469766974652B6A2A287461696C6C652D6E737570292B31292C>
-show
-294 1753 moveto
-<20202020202020202020202020202020202020202020202020202020202020202A28636F6E6E65
-637469766974652B6A2A287461696C6C652D6E737570292B32292C>
-show
-294 1797 moveto
-<20202020202020202020202020202020202020202020202020202020202020202A28636F6E6E65
-637469766974652B6A2A287461696C6C652D6E737570292B33292C>
-show
-294 1841 moveto
-<2020202020202020202020202020202020202020202020202020202020202020>
-show
-1100 1841 moveto
-<656C656D5F6964293B>
-show
-294 1885 moveto
-<202020202020202020207D>
-show
-294 1929 moveto
-<20202020202020207D>
-show
-294 1973 moveto
-<2020202020202020656C7365207B>
-show
-294 2016 moveto
-<20202020202020202020666F7220286A3D303B6A>
-show
-798 2016 moveto
-<3C6E6D61696C6C65735B695D3B6A2B2B29207B>
-show
-294 2060 moveto
-<202020202020202020202020636D70743B>
-show
-294 2104 moveto
-<2020202020202020202020206F6B203D206D79534D45534844534D657368>
-show
-1050 2104 moveto
-<2D>
-show
-1075 2104 moveto
-<3E416464566F6C756D6557697468494428>
-show
-294 2148 moveto
-<20202020202020202020202020202020202020202020202020202020202020202A28636F6E6E65
-637469766974652B6A2A287461696C6C6529292C>
-show
-294 2192 moveto
-<20202020202020202020202020202020202020202020202020202020202020202A28636F6E6E65
-637469766974652B6A2A287461696C6C65292B31292C>
-show
-294 2236 moveto
-<20202020202020202020202020202020202020202020202020202020202020202A28636F6E6E65
-637469766974652B6A2A287461696C6C65292B32292C>
-show
-294 2280 moveto
-<20202020202020202020202020202020202020202020202020202020202020202A28636F6E6E65
-637469766974652B6A2A287461696C6C65292B33292C>
-show
-294 2324 moveto
-<2020202020202020202020202020202020202020202020202020202020202020636D7074293B>
-show
-294 2368 moveto
-<20202020202020207D>
-show
-294 2412 moveto
-<2020202020202020627265616B3B>
-show
-294 2456 moveto
-<2020202020207D>
-show
-295 2573 moveto
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-370 2573 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D6F64696669636174696F6E>
-show
-656 2573 moveto
-<6475>
-show
-733 2573 moveto
-<66696368696572>
-show
-889 2573 moveto
-1 0 0 setrgbcolor
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<534D4553485F535243>
-show
-1161 2573 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<2F>
-show
-1174 2573 moveto
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<737263>
-show
-1235 2573 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<2F>
-show
-1248 2573 moveto
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<534D4553485F53574947>
-show
-1550 2573 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<2F>
-show
-1563 2573 moveto
-/Times-Italic-iso1252  findfont 50 -50 matrix scale makefont setfont
-<4D616B6566696C652E696E2C>
-show
-1826 2573 moveto
-0 0 0 setrgbcolor
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<706F7572>
-show
-1943 2573 moveto
-<6578706F72746572>
-show
-370 2633 moveto
-<6C6573>
-show
-465 2633 moveto
-<73637269707473>
-show
-635 2633 moveto
-<707974686F6E>
-show
-813 2633 moveto
-<6465>
-show
-900 2633 moveto
-<7465737465>
-show
-1031 2633 moveto
-<6475>
-show
-1119 2633 moveto
-<6D61696C6C657572>
-show
-1326 2633 moveto
-<74E974726168E9647269717565>
-show
-1589 2633 moveto
-<20>
-show
-1601 2633 moveto
-<3A>
-show
-1654 2633 moveto
-<534D4553485F626F785F74657472612E70792C>
-show
-370 2689 moveto
-<534D4553485F626F78325F74657472612E70792C20534D4553485F626F78335F74657472612E70
-792C20534D4553485F6D656368616E69635F74657472612E70792C>
-show
-370 2745 moveto
-<534D4553485F6669786174696F6E5F74657472612E7079>
-show
-912 2745 moveto
-<6574>
-show
-966 2745 moveto
-<534D4553485F506172746974696F6E315F74657472612E70792E>
-show
-1581 2745 moveto
-<534D4553485F6669786174696F6E5F686578612E7079>
-show
-370 2801 moveto
-<657374>
-show
-468 2801 moveto
-<756E>
-show
-560 2801 moveto
-<6175747265>
-show
-703 2801 moveto
-<736372697074>
-show
-856 2801 moveto
-<707974686F6E>
-show
-1038 2801 moveto
-<6465>
-show
-1127 2801 moveto
-<7465737465>
-show
-1261 2801 moveto
-<6475>
-show
-1354 2801 moveto
-<6D61696C6C657572>
-show
-1563 2801 moveto
-<6865786168E9647269717565>
-show
-1875 2801 moveto
-<74616E646973>
-show
-2037 2801 moveto
-<717565>
-show
-370 2858 moveto
-<534D4553485F666C696768745F736B696E2E7079>
-show
-859 2858 moveto
-<657374>
-show
-933 2858 moveto
-<756E>
-show
-1001 2858 moveto
-<6175747265>
-show
-1120 2858 moveto
-<736372697074>
-show
-1249 2858 moveto
-<707974686F6E>
-show
-1406 2858 moveto
-<6465>
-show
-1472 2858 moveto
-<7465737465>
-show
-1582 2858 moveto
-<6475>
-show
-1650 2858 moveto
-<6D61696C6C657572>
-show
-1835 2858 moveto
-<73757266616369717565>
-show
-2061 2858 moveto
-<656E>
-show
-370 2914 moveto
-<747269616E676C65>
-show
-621 2914 moveto
-<7574696C6973616E74>
-show
-880 2914 moveto
-<4D45464953544F5F3244>
-show
-1279 2914 moveto
-<61766563>
-show
-1469 2914 moveto
-<6C276879706F7468E87365>
-show
-1792 2914 moveto
-<6465>
-show
-1938 2914 moveto
-<6D61696C6C616765>
-show
-370 2970 moveto
-<534D4553485F4C656E67746846726F6D45646765732E>
-show
-1028 2970 moveto
-<4427617574726573>
-show
-1275 2970 moveto
-<6669636869657273>
-show
-1508 2970 moveto
-<6465>
-show
-1637 2970 moveto
-<7465737465>
-show
-1811 2970 moveto
-<736F6E74>
-show
-1977 2970 moveto
-<7072E9767573>
-show
-370 3026 moveto
-<534D4553485F506172746974696F6E5B322C332C342C355D2E7079>
-show
-1000 3026 moveto
-<6D616973>
-show
-1110 3026 moveto
-<636575782D6369>
-show
-1273 3026 moveto
-<6EE9636573736974656E74>
-show
-1509 3026 moveto
-<756E>
-show
-1576 3026 moveto
-<616A757374656D656E74>
-show
-1809 3026 moveto
-<646573>
-show
-1891 3026 moveto
-<706172616DE874726573>
-show
-370 3082 moveto
-<6465206D61696C6C6167652E>
-show
-280 221 1 967 rectfill
-2125 221 1 967 rectfill
-280 221 1846 1 rectfill
-280 1187 1846 1 rectfill
-280 1411 1 1056 rectfill
-2125 1411 1 1056 rectfill
-280 1411 1846 1 rectfill
-280 2466 1846 1 rectfill
-showpage
-grestore grestore
-%%PageTrailer
-
-%%Page: 6 6
-%%PageBoundingBox: 18 18 577 824
-%%BeginSetup
-%
-%%EndSetup
-%%BeginPageSetup
-%
-gsave
-[0.24 0 0 -0.24 18 824] concat
-gsave
-%%EndPageSetup
-%%BeginResource: font NimbusMonL-Regu
-%!PS-AdobeFont-1.0: NimbusMonL-Regu 1.05
-%%CreationDate: Wed Dec 22 1999
-% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
-% (URW)++,Copyright 1999 by (URW)++ Design & Development
-% See the file PUBLIC (Aladdin Free Public License) for license conditions.
-% As a special exception, permission is granted to include this font
-% program in a Postscript or PDF file that consists of a document that
-% contains text to be displayed or printed using this font, regardless
-% of the conditions or license applying to the document itself.
-12 dict begin
-/FontInfo 10 dict dup begin
-/version (1.05) readonly def
-/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file PUBLIC (Aladdin Free Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
-/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
-/FullName (Nimbus Mono L Regular) readonly def
-/FamilyName (Nimbus Mono L) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0.0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/FontName /NimbusMonL-Regu def
-/PaintType 0 def
-/WMode 0 def
-/FontBBox {-12 -237 650 811} readonly def
-/FontType 1 def
-/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
-/Encoding StandardEncoding def
-/UniqueID 5020945 def
-currentdict end
-currentfile eexec
-E98D09D760A3C22CF119F9DC699A22C35B5B35ED6AA23593C76D54CABB5E942BF7D6DD84F1664B89
-699C74B472DE9F8E6DF925F6C4F204E9F1C639B4DBA988ED2AC419FF2B2BDE605B8EE3264EDD6641
-2D4F21C64AC522BDFC7C5502F9C3F3E5592B3B2093D33C9BFAEDD2D49E89AABAA832E23F062E91A2
-5032519D1868816E44B4E0747795003D7930299D6E1E2A5BFE0D595DC97E140989CE81D8D7F852FF
-9CDC7A1B1B598C69131DEE005B415805A16D8A123E6A2261C63C769D2F4B60FA2C438AD7D199D8E4
-5F7E7C9A605C8CA14E21FCD81C9A515FB8DB6F99604534D06EA9D87FE0FAA852899C9D0595C7A97E
-6C55F79FAC45CD38E87B10D210CE7501E88C8FCD3444354365FB893A12F596AE2C1E70D5819EE0D0
-87D10BF8DA96F3DABD5405D28C4228C6C31BA4052464859640933FEEFD8071C0C84CDD829A9B1D0B
-A01F25A4D50EE2EA2B45160CA6333B2D2800306ED2BEFDFE155E9D9F9342EB8D5B0ADBF2460CCC98
-643FB1287CCD28ABA7B5CAB92EC39EE2E918990372B16F8487EBA30EAE88708B6CF33B6C015D8096
-C7CFE2F139F52052E3925C0D50FD64CE68236D59CB83EF56BFC584150EC38065059F3308AD6F9A99
-F83EF4E6CB13855C8175E31417D190D036B387D3952344A950F4D8C7781B307A094DF1ECAEE4D2C2
-FD747BC6F7F9C6BD0E90C19294F96C8C5CFE88FB34C477574A1B1630B8CC591529E59B20794DA32E
-61DECDA8ABBD1AE956CF74012AA01D42EE01E861B0AA6897C864788AE59DEF43C493246FDB1ACA55
-4C12594BC7B33657A9ECC9E3D1472EF826073F632BE540C35FF6FB40566773F3BB2204D3A579A08C
-CBC844C14B18C350F003B9DA23A570C362D6003893CA32F86F59B829C78EE3188B6E3F7FA81D7F62
-2825C639638DFB78B7AF1F500F5B450FA54DBFA5CBA277C794ECE93275A3DE0B452FDC8DDC2993BA
-A42F28A636008CDCB03EBF71BDCAF35019778993443F88412AD2AD0D7155A3944606463266322DBC
-0244B07DA1E9C27A27B59664E8566D7A54CC03E995AAD008B0A17E2C3EF61F720CE7F7788599C4E4
-4C709CD5C31B11107F16AD70B17B9AFE2E8CD922A7428DAC171427FFAF51067307FAB0ADB530E701
-FD22DA22C4CD3064067BD4F6089C4B2C87937DD426E4E9D2F60E608288BAC9056554D04947E69200
-61E379CF5E81BFD32FD37EFAC1F61CEBEE551B0851516471A7472C60DF89DAA9EB1DC5A67E479745
-3E69B9E22BAF4E3CCA4192D603295B018C4AB69D18DE52DFDF15E96B557F290A4B8C5B1E7A6CACA8
-1F2351B97ADFC36995ABA43803A6E5AC04A3C93495F6D38106B8B144449C07D1358210F9176E1565
-72363CFBDE576BFDF99FA329DD1346E83F79E06CF68250CA57A68931BC7F342AD295D0CBA17AA95B
-B8EEB53EA6E8E660B814E9F857CECB14F44A43288B69A9E7908D55BF19E844359879D28CAEF1C38A
-36420185D20DFB32C2E002202800E8EF3D67C5D50E919657CA958B538D537D503444865331D79BFC
-40312068D72364503BD0CC84B5F30A74D8B5B6A26AF2DB764564FB65A6BA8F9051AE2B4EA458D46A
-4569F30C6E77DC097356770362E6CF3F1661074778EBB44FF7D1E3B64FF75E77E11FE525BB121C65
-46CFD13300CA1F02D571B82A5825E6226D14FDCF27F06D87452A8B6C5DCA658535CEE2A795E58137
-D48E566B69D53A0C3B766E84C51EAA221C46999CC8065ADB2F129D5B630FAB1814C0C33B5AEA0EFB
-B6E994D80941B53079AF96D90A0B924F9B0E319BED9836B8F9053F868363D3CA554CBB181863301F
-8CB940872ED5FA7BD18CE39218B5AD8AC57D0F752D941076B1C64D99BE0DB86D7A6D96510D772EB2
-4C587F11779BD21CFE5BDE1F29C1EF9022B2B8BCD7F91153C845906722477829C40111D810480F3C
-F62DE8DBA7FD86CD236E656618CAF6FC46827FBC4898EA7672F8C9971AFE43E0E01EC8B77D4AF48C
-BF1210E98C1DB15C16D149BFF58AB0270CF015B107A3A50F5DC8F37FFB92EEC8CB6778DDB7CE4AAB
-C464C4AFF654223006A550EB52485A23D2B4AA7198D3CD54418102F1E9A4FBDE37B841E56F5C2C53
-966DB9B66B000E4588282E3FB80C2C519339F0002D2F83C979EDC5827A3B3C8EF8810A0F9DACB6B9
-998E9AF6551F56313DC4011904CB979AA2D32B11A811BC248141E4B9734D9FB7982A5671002D8279
-CAB93ABE057474628DEFC95D43890DB1ED34CFA8A20BDC3D874E7679A396158E522ED0AB969A4E3E
-C7E4474E192590504D54DEB7B260B7935C4E56548A7D121AC1F741F8CDF259EA1B5813175A77A1D2
-D30BA26F65EB765A04C09ED51F69F41551ADF399E6AA2FC09788137BEA4913F17B8EB838C38FB272
-1FDCB55FD65697FF0B850E7D3D1CE266BF90F7EC06A9A0876BDFE767D3A918B092FC78C775F945CF
-1F96E859C03DBF630D9A940939654C3549D8F7921CB94EE23D5A0535DE9DF31EA0F937F860B4F220
-A99ADDFC343D7CF7BFA0B803C12C26403F0DCFFC8EA786D0D8A8D9C367419CA8AE41190CE93A8086
-583A1E6C9D70B612C84D87D2EEAA71EC2DC12F4CDE6A821303D5F6A9BBDB7EEDCD289E80FA3B75F4
-7F481B50719DCF4A142069393593B9AF9CCEEAEC56A35B8787193D7C88113E9E1E221D151E093B01
-9EF89F6118BEC4735103CC8003CC5AD1B6727B3226CD44C497DA7052DD681695DBEC3397F9598C91
-77701C73BF0594CE93F23D50EC5BEE2FB9DA1FC966DF148B27B28EE3C89526DD6625E2887F9FA076
-7C127C609EE315626BC14D274FBEA56528DC06A27B2D476D46E9E7916590B156A5DF04A6CB15E362
-45D77021767B6E5BDFCC679670263FD891446C3371B11BB6E1DF60F960AAB4149D7753E6A5C33810
-C42C8BFF4E935003388506F8278BD7CB672F132E065AE684DCA0B9064D01DD620E7FFDFE04F14277
-EFE8E60159BA0FCA3FE2F28B902D4AC275D19F0AC6971EBE827C4A232D87650D2688345BCA78F879
-077114F0463C5F058107B669566F8171E4E284D278405580F04BFFC9902784216E0C9A17AA9B2935
-E66E18A783F723BE044389B7E9D62AA36818FF2EA406C3C1A9D2F3436F3EE7DB8BE86AFA8DAA6A4B
-1B84611350D8D27605509612B515E16AA843164D5D0805E36A2B9EF74C5F6A0B9D59A04B55697123
-27F4B1B30E9587CD103337639967CBDC655AA46E80D2CFD24BEB50815B5338E522B3A7AFE8362AB4
-F05D8BC52BBA9C5089ADA8C89529B0275AF422EB540D31A938B8740860756325B966B36817115213
-FAAF92DE63F6BAE1E0064BFBC5588098B61EB83C71F1C2082436D37DAF1ACBE186FEDC4BE7C1233B
-6F18BEC5F99002D21CB7864E4811F7AB3C03003E1E4490AD1AC793BD28FCD5EF0E6CC30EF39A08C5
-2F71939B0CEF620DC69E31E39D6DB969049031B0C92EF2DB653D97F370141456A52985076B268652
-FA2648C792780BAD637C4D7581FB2D62011D57E293719487CF2D1F013CFAA532E1C2D39178D51272
-A6AF041440BCA174B5CC902BD7390C7D3695056CB4BD7791F9FB6D88E7A70DEF2C97869F5DBC5BD8
-23C517C7B7C39D624DF627DC9653EA5347BFDA80B723F05F6DBB4C9EA501D862ACE05B9DBDF21B70
-56FBCD8C6D4B85873DCEE6166C8B5ADC0316CA12D9639F361B15A42F00E1D62EDBCA1111972FA0F4
-5758BECB31DB38316F3CDFE1B41748C93ED58B67E9B57ABBED5924A6D53E99FBC9A994A6489A8BDF
-13EB685548B4DC6D62DA7426C22227D4D43B6FFC7B5EA91C896730253E8941AFEE588359C2BECF6F
-FC415B9EB6D31CCB0F6C7F85853E6449FA6D627A97A3CE8303F148393ADCCCDFA2FE085C6908BE5C
-3C05AF00A6F02840206C3253A559AC5C049BDDFD11AD9B118403B84DA10AE3C470CB9A9A2D1D7B73
-2F59F5FE146DEDA60AE750F551AAC934621B4470E1BC324C436303E25F81D0DC3188BE0D6FEC5414
-C20E4CB18952E12CB6423DF7124627ACDE145500D77A97A8BFD9CB50D1FAA008E2CE2B2505A4749F
-1EBBB092C347023714055A9B63353AF9E7FEE05BB54C9843698101F79888A91531773830C2C967B5
-88D3ACD2192883D5CE3962D51084FC653EAE2C5FB2DA41DACEFB5C76812D2EDB5B109677289CD199
-8D457FB1023A19AC67295BBC1A9A20A426B06A368DF3C5DD083CB1180D287F5500F2C635EDE157EE
-FCEEC5503447382D15C748C1E35F68753992E5C90F900DE54D18F8E1B355D1076ADFB1F3590135FA
-D1A36F028E44F48ABB149B80CA9A54614D467F8D71CB310BBC7AC7100261092DB8C5BFD39E0AC6BC
-2C9D6CBC3A8C05FF8A74CB21608EC4A4CFE4CBAA2D056DBA14206106044DECF59F957EF8A9CADE4C
-9B19D8D30DD4FDE6A9548E50DB51ACA73330142153FC36B69C1C8D5B26D0C689B7040E81AC2C864F
-D7C097C99BE5953843E172C97AB5684F35FB03A725A89DBF371F08DDF40A1531FC1B676DB0E1543A
-EC6E97D3D2E4AA3D5831D8B3C952ABBFA112352814FB6FAB61A0D680E6640F6AEC8426200CF61286
-F7422CB2F78C61EBAA36D47EC16D7FAF8B4AF31D090CDFA255D9D7C61D46CFB22A7D6E1758E71ED5
-67E00CBD8E8F468DDFB477F091A2F915627F22FF47B876544BC1F03B6BBB98385F009C20BB1AA2A7
-A78674692B8EAC2E3C8069B79E679338DA57F72976810F845BEB6B9ADD32B95D78E5E60F16DD1668
-9C05FD82D36A3115BE8ED494A74DD211D58A2CDF983FCB9CDC29BF7F0E29988FA23560EDF514BC1D
-183F3B2A22C09FB179B47E05ADEF48DF02F31C29875D1915037B19407764A4292FE44E741651A8E3
-BEB5F0D972B6327090F664417C84F84FFBF0AFFF8B1D85C822D90730AB4140C42A51AA8B1DBE4398
-4EA8566040EB8B341CCE23FD3F69DD235A080BA5C69AECB9BC732BC2D7D40617DDA6B79FB6EE40C3
-556C7DF9B23DAD89E94054B1345DB8402AE679FC4655A4A776C0150463F8DB2BFC0608EA1F124E22
-1DDAE6026B5E5D007A7E4A0D6B3B0CF3A2669E67C5E4F01551966A7BC48F2F4B6A87E740D8095E63
-F77C7A027F26B52F2299DE5B8A2F6209BCF3D31CB0235F998F781E5CC81E31DC424E008D46EC0920
-2951E5684804A0592EA47D6C788A20487BEA2EC8F2E6C1D7F378B62DB43CA43C4B366F8B4319631C
-FE9854F0E10321CFA3B01C873584863BBEFC23C72C05E695B56E8A52E89AA2DAB543834D34DCAC5F
-ED08DC51825C5257AE59850D101D84F4CAA1D29FC932F9E0EFFBF7A9A7F3685F61F0490CD3CC8988
-2DB52A757A6AF4C4E67B407BD2316B1C0FFE7DC54E43C87B874F57E4903334E2140B011484863CDC
-ACA331175F2CF3D72E0042855983AAF8853D3015E870FF0807014C31D55060DF3FE1FCE157324481
-2744AB51322444632F9AFDA6706E320FFE82B8CBE242A19DF00CE73EE48E25FF49D5871BD3E60652
-298FE3E8D400609E232E0DDC794C0579ACEF89E841B2EDCA50D51151F65E8C1CC3B01EF1870558F0
-BF5743718C3E068617E81BFE120C6CA16E0924BFC2541177D53671CAA3AB641C41557DCDAE1A3461
-47B5E999C4541B08B4AFCBC187AFD653D5B5F8386DF6AD8FE69E21BD0567DF494F736C6A184FA4DE
-48DC9F347787CA96E2E00A296C2DA05C2AD9BC423E9CA428D7F1FA12DC9353A302FB8C529AF8688C
-BB543B45B2717EBF8F6C497935F4F3BFFD285E0402AB7544B3CA4643AE5A8B5250ED987A95FC1F27
-5B9707ACD0641BD0EE2AE9758494F8D8A51DCE408A38AC20EAF0852D72D84D0C6BE973326793AEB9
-55EAC6FE0A2813A355DCD22F6F2CE56588D1C055CDDFA98878BCEB6A018DB22922D2B600A20F8184
-2E665DF41013CA0947C4237C2BD60A75E2FD1A3FB8C8FA19485730B87461AD466ACB02DF8CA24091
-4FB090B3D2B41EB6B8FF05E1A59D9FD668AF70BA5BB72778953BA55FC5F9F626043450E1D09BC83D
-8605098ABEF884639A37809A32565CBEFB3FF39EE53D6C18C58C272BB928E4410E361E59A50F242D
-69747A032617C52DEBBF62364AB5A96EFAF642D9D82BA679B1D70FAC10A4EB62FA5CFC308E86368A
-AAD7E75948F43598CD1C544A0D4091374D7E88D4522CBE902391641327E888E7748FA889DCE67ADE
-61699E7D77763681CAEE9B1CA8837B2F7EF9C18CBCC538C465C8E2DD34616953CCB6030A222C728B
-834911C1A179E2C770289407AB28B303E724D97F747D6134B425216A64C6E0B60F633E2B85300047
-E4C90339CE030A0FAE31E830C8ABA5AB3386A3B69267351A7BFDD66356AE5E57FB2994452993E90D
-E7C4E260ABAB93C37831856A650D56E44172FECA01D6C7C380F250B82473960D2A2A5FB6B4DA668F
-46E624ACF7FA0FD4490F485D640A3ADFC9F8652E7A38CE5799F770C3606DB4B8B947F93967F779E3
-A3C0572F13A5A187D31D7BD12A5C7BE23CB6ED6192086241B76C5BA6983DB9C93E4B208D707D3760
-F03CD6272EF3A4CE89B8E52E6AC5871A3D03EB975759AB4BE239E5EC7842CBB333E692CC607C722E
-185D3C39164DD320C6945629C70FF66A5237C0A9520A1FAD6EB9816069351AB0F135D90CC0982B14
-7D2294AE4A38A527EE40BE9CDE2512AAEBB590E134388BB171D0956A7C4566D65A9A041BE6C4F883
-6B3EC3D2ED1B48B566A783292B15B6127920D247D494F070BB20BEFF60640B11B276DDEEE49706E8
-B2B21BB40B7F00AAFC594C492C25DCA774E0B80D82E927448DE2E74A9D0DC7AC9260096EAF187B6C
-D6AEAA6D1DC4205B4411122751A5B22688404EA7C5861730371FFAC10F5AFD4727A0E402AB5EA757
-606B75EB86A05E8F774D6E430A1A3FE2A37EBB06700474239FB1CFA05EE44B91B82244C575B52E7F
-AF934B04EEB0D933FEB57EBE326D75821C8B23EAA85B583AED4320B7F04B9F2DC591091216FDE52E
-064BAAA9C2C9D9714B95A4558C21F3CEBE624B5403B31508F178581AF6863083ED762F1E2E34A45C
-FDD71660D626FF8648F5D6C5E580D4765A67FB6159EC8077A9F0A88038C8D3D7C77FF0926E2123BE
-874F7BCAF129D55A5B5960F824BD1728ABCFCC51D23936DE9A25C408D786E44C3A2BAFA4423177AD
-060D21D38E15E23EB6FFC0B4120E814695D423EEFC2744A1FC81B4DF89D76F0A6803D8B14E75538C
-AAD03A72517B86514F6952F6FD619D9E910D980F00964DB325318C045BDF79647F453D4A5CF4E61D
-D5359782827229310405FBCF6107C3AD9DDEF9A9A339D5D5A6EB2E7838A0A43221BD62CBDF732DB0
-A638A52016FB35BA7761AEC846A023D3BF2D1BB183543E81EB7CAC1E5970CDC6F068C5EA118C7AAE
-528D1396E6DC939112DA4460C890EAD5C01BDC438F5BB734218BA6270ADD0DC1778FD8AB16831D6A
-302B814A1A44B07EDC65956C9E6CF4875DF521F3CE5B422F71081B6D69BD270F739095C9E81C0377
-934A8BC6390C420C4E4CDD9CF7E32544C68D884E15ACA3BCC07FC8C132D8FB9D752C15D75C52C288
-57E2EA461A6FCAD90C56843513F74461F18D7164BC597A28AE4BA7C86EE1703535A9B9ED50122627
-71FC12F102E800E0E1AF7BB46681BD2B14B614CEA91B7B2AAA35235DE76C0E113C92688F8EC81277
-D58C3406778E1EC1CC15F1CD9A137C8FFDAAB99ACE3BFC782916F1A877170589A92DC921E6740A22
-B84DC6BACDABCC76E64C79E3A588D80F8F4D376E1B426F15751CF7391102102F0AFAFD8B22DFDEB5
-48AEB5F30B1673023D22054A13391A0EC08DE6E7B685A0D031AABF20B7C62187C0284892D5EAADF1
-21BA28263EB863D5E36EA9C06A77CCFC0E17F593961591F84D82AF823EFE41044C8D606FEF83CCC7
-B0E961E7994DF8A3CC36B209D953E250ADAB8D22D7F2B4E2C9CA39EFA2D93E56195C1560E30A5190
-CC5B17FAEFCF250DF79F6B624A4B917E11C332222FCCFEC4F6A47BD9E75DA9854FC3F7AE554E91ED
-DE144D7AEF38A0E3EDB5E5A5626374DB94F022C8CF549093041DE00D7269B7CE544E748439BA2870
-718C08E58FB4A77D93EBC04B7957D272AE1601D41BF85A2BADAA0DF73B0D3841D4839C85677FB2E1
-5F1D6CE592669FF4BBC9C69DBA334DC37706F2F6BE83D5863E8CD6A30C08640AAC4C233684E66B4F
-E6B62D4A8BE9D531E47BEF5640D9B5C27D990092BE1597F6995C8A77BE9C18AAE6C1CF130775DDAC
-41D34438FC7AD8E042CB56CBF2944932EBA7D053E9376FF398367450E35A1945FE23E05C921096A1
-5454721FFD0F429A3E06DC3ED36F1C170BE79C66996EF8337AFF85B90C5D3A4A94455AE9FA32E211
-7A63E59001F052D5F6223125BFAFA40901E98960ADF7BB886729DCA82FC3B8CC52B37FF2517299E1
-D769057F8154FB95582F02CB0BECC873A9C71796ADBD3E91324FAA94F2C41CF57C30B5897D031C02
-D256C909E080E70BFD1F32E69EF67031138C2DDCD1A8E4B65E485C23C3E450ABDD9815512D6F34A8
-4B9DB715DB2C7A93BFB424316E1AA44397749CB01088428F149A3B4324737ED9957FD388248462AC
-1B2610D72BF5C073ECA567E7385CC959E37CAC7E05470160FFA5A9F63B8E9B082937E911586EA165
-374938F492EDF28CE6020953A5B5CCEC7737F9D9CC8538C4339567AAED3794ABA3B9F4EAE65466E8
-E326F6C399B36355935FBDCB9972F10B13494DC25097FCEC5A6398F275C8C151558E74C5175F7BAF
-4155E36B733F75CF9D5C5979B0764F14D8306E06BA24BF791141E404C69F3F8FCCD91B9C58C2C671
-AAE7D4F9E5D6414E46ED633A5F78AA5BF04E652246A066EAD9E582B181CC196EA2D3CFAA383B5D0E
-4CAC9336E119C08CC6AC55CBFBAE147C623B400453BBF447E96DE036FC025624384359EED7C7D5F7
-858DC0521377CF647A157FC3F188DE5EEF094DBA125510FDE34C570D7BE76AB5DF0A28BF45DDAADB
-EA7EEEDB936332DFE93081E0AFD3FDD46BED08D6914B2EFCFDC41662A33B90B03D76D34F48D30FC6
-BBBB600E90E6AC7243FDF026762A44B4D6E4ECBEF48C9D7B696AF29EEE063E557D8FCF0F09E0136F
-45D17E608DA36E59F2AECF8493F8D62536119B5F7E1554DFE3F6E8D7C9A2C6F557D18B4AF92C9F6E
-050975C3B5C54F9B5F4E39D600B6FA2CD6DE203A174028CBB2A201AF126D1013C229BB82CFD013ED
-199D01E51EE2780FE896E01C63C655087A3E61A7F1029FA5E97EA1872F1B45F22282DDC317E17926
-7368CB52DA9444F6055A3C653659CAD2A1D8712BC2B1B32C1DC6906D957FB88524EE066156ED6BDE
-B8D832F9338F9912E29A250A8C4674E667C1C278B677AEC9972BE83CBA3FB779893FCB8F81A323AC
-91474BA2A2334A07BB5628E905C518E634F6761A3289056F83D5DD7B3890987EEE1C18FB2D379CC1
-905F1AEB3B3D2AD578F0D6C845D2D40C4BCEE3F71C90E68E5417BB8CDDD878D83BA80AD8485F4067
-E5C3CABF28AB56CBB219C0AAB8FFC6C7E192BEC8CBCA1459AE4450AFCC81B9548F40CE2622E5A7C2
-81F74DCC02DAD57EFD92D072318DDF05BF42F1EA8163071E23949B0179CF7DE64677CA99B23CB926
-B3E294194EC13397EA1DC9A5E1CDCD828156CD71F81B64167D4FB01E6002713BD8AC6F82B20CD369
-9C6CA4704DC5C65A2D66EB155B7AF1C9BB46469416FB49C1C7E17A30A5F045271D7DF3FFF2F42C6B
-470701C381E3456A500C6BB3D0E47B4D91C5F34B49BB6272F1F8698B307D89EDA3A1565DAD1C0864
-627560CF922DCF5B34C67860352390B282F95394AA2CDE0E97CE3ED39546A6AF1C52BFCF81A29BE8
-2C47C99E8050E4889E4575B75F39E662F2DB7420673797E2ED3D67CDA7AE2C15D0A0A794D57D168E
-BE13214E89E0209AB2C0EB7784E9491AEFA3C02D0DF3AE5365A0FC4AE023CAB528162C7A1B173664
-9DFADDACA8DA5FA18B7D6489E4229E9E24D38A620464A744A5C60F6F9D334B908706B738AED18669
-8A8B278341FA4D65A0A88680BA484694921512F7DE93337FC1C02BBE6E64AF2DAD07603279D87329
-1D1F4D39C1DD6D89C90F65240F4808F6F1115CA55B88E242565E59F3BBF1F10EC7B88872E9AE61D4
-4CAE185463EDFAF7DF63DE4D2207D307AFB61501892965170D2945846FCF5973A1D458607F50C15E
-06E5BEC715E0C156259AAA6C735593E5564F65F443B78CC7512EC35A56F126DF9D30974A40872E42
-65E1AE5FD483CFCBBBA26DEE426CDC4721F19C3FDA86ED7AD4FA1120F63669BEFE7002B128CEAFD8
-C63E8AC09943B6CBDFB3D2476A026C00A8FF81B1F651B97F310C82ABA5F388CC1DB5AFCFF5996D52
-52A6A42FA4D972E41EE56088F78CB966F9051171C472C774879AECFFF08BFD9CEA40D7C298922ACE
-64F28C14E0B81F4DCADE81D71DE3983D87D905192EF13CEE71B2D3FF1A88AEC671EC318917DF98A3
-C9054E372D22A3CEC82FCC217F47319A40900312F6E32B536B9E7A7FA0837EC65CCDB5FB0D414371
-17596CB39D9382262DE6E65379D3A9709B2CFBABF5FC5D5B352425F06F88CD31012A2A4147B112F0
-C1C0ACCC808CD625E0228EEF66661F70AF96D3DCFECD402700E4F6522AC9A856DA466D55C84F65BE
-2810A1565163872D62EB81333A698ED7B68352CACCA2D7AD38AB55C19E4F5582F75818302F5FDADF
-1DCED09D94872F2D48FB636C8E38C7563C72C771A08C6B1F041F3532BDB39006C89A33C09BE1E3E6
-03622D891F98010BF1DE5355F557A1E09448D486ADEF565705277B31B8BF2B86761E32631E3435B6
-88B79D566F1747BA456DDB43CD239FB47FF7B425EAA4C657C8EEC26EE01AED07CF916E77D53634C1
-37AEEA009C6B515B6342C54BE2C7B95955B1A9DA277A0ABCDA2346E88018C726F481F71D6011AA42
-F8852F2E5749518FE3B3AB668213FE1A05C10A1C53953D75312631D6BBBA01D418199DFEFF8CF548
-6109B099FE8E2F606165FE30F532C03567785D5362AA873C9D3EECEB20F1945D55F49B0CCAC84967
-59FCC7292E46938943C262D78F3212D3F9D0F7B103157F423D71B1ED54B2A603F4C269029918F238
-EC6828FFCEC66009DB9C9E59534EABB183F31D7AD4C57B1BDF0BD2CE5A421882BC10CC1BCE6A970E
-2B586BB221567CCA483989DD0B8DEC424C1D1FF042DCB7834423CF244EDA28D2D969B17440CAEAF0
-24A6119DB010CE366821AFA424D1B8299609C04148275AE6E5257A7ACB3C766C747CE99CBA2D703C
-F19B7CF301B634D8B613DDC4AFE4633A4D77BFF8E00CFB5E289EBBCAC90A24307E7941EC1685CBAE
-400CADD876FCEF7F6557EEE167D2035A05120293527700DC510B038A496BE1D5CBAEF24ED39F7421
-1A93AADF22214ED606A80582485AFE358E3A46D0671148998A3B3BE209467009B43400870359D418
-9A8CEB4D5866AB52D16D9CEB1EAB71C07E6CAA34B70E3096BF7604C22C40D5FBFEEA616DA3BABD59
-DCDB97D883FC8742B8267A16A99B7953225F7144568D566E64542C92E538AC140C851E5D295528EB
-7CBB49909B1CAF6409C9BCCEB325468FA0B5F7CB2987382616B477CCFE4F4AC79E4A6F7165363543
-F04DE5B6F6E1C2E910CDC3CDD6C4C92737198F892337DCB6647BD226C820AC99C65D8E7772BBB74F
-E65DCAA8A22C33BC168BF48E40A82700A3A7668C5A9A71E397ACDFEE7D556C5C19467B7AA69C260B
-727407AC837BDB7D67DEC055C1F45D8BAC61048C45BC9FB3CEFE7549EAA2992D2EDC126FF7A05EAE
-58613332A2BC1465B2BC0429162B907D65F793D236EDDD8D35405866D71B25F62DC4A7E06D4DEE82
-840ACCAABC0774F8A63E9C0F7FC980B3583E7A8B01C46590E3BC04EBA565C2EA94F057D964A78A90
-EA9F52ABFD70F84E44E434BD10A42E98C794065724341F907E35D3CB257161E01C7084E3A0166D15
-CED65DA7BA87DBB2EA33D39BD99AFB93D3548358D08330E807F8552CECF63C84F805205491BA3A1A
-622E70C232FADF3BF2DCFD6F0539158D3306506F150B0518371912A25EB96163D73E9EEED42EDC84
-D688BC7F7708D9DCA348FAB4DF62E5809BD094842D0A31DBB7C4B41F94D946810C5EC10B69AABC2C
-91A59500B2E5D37F4755DDFB7AE4ABF757F4C5BCF77C7F95E6A616646456FE8F18407080BCABBFA5
-7704287AD26222DF91AB2613951E2D679472F8ADF06EA2A20205EC19972299A78BAC52114334470C
-5F5890C2F846B4C6042D73945127F2E3910ECA1C4CD7A16EFE4B4BE38A15AAA710682C3836A8CA83
-FD384970139D8B46FB0AEBB002DD224199672FFA02250FBCFA4E649E335428FC71F50F45E498419E
-DB0E970F46894A48F65580881C9C4250FCEF65C9B28699408E18B26FE6DB7F1CBDB767564E73CB59
-54C6D639CE33220C894F36E70F71C9F9AA3FE2AE0AA0E3F2E304EC5ABC661675CDE2E70519E4220A
-E26FBACBD01D5169EB844750753E6CED53E3678FDCD08AB93E10067E9C64F38B40B76D99B6CD92BD
-F4155A1EA5CC824998B59AAD06E09E5F15EBB2288D66EA71B296616734FEF2796F07FF0D8B047074
-A1111D68B99C2B70FC56E74A51B062F4998ACC85B1943C9477E436E5CD7AB18DBC898D21BB93475A
-623BDDA71D7B895BA2D4C10F4B90BF335126F4FD57D73AFA50170F6B3C364922E551D40E35DA75FA
-891762FA23401D39260F2E92C7807C746F13BB35CEF9DBF2E76E66A72FEFF095DA482A4DE8A42091
-7065736CF4DE904FB52E649A32255E2030A7B31B686353492F31C064A3C4B0448C4BFD44B8E15384
-FD809B8761EE26A7DFA1758D57CE4F0BC376EB2B3833534B15A83436BA553955ACB5A7A66796AC5B
-92DB5388BC53EFA27508B08E82821E5CF669BCE52BB860780F749B4F38ACDF5FF12726BF3EC2743F
-01014CDE96FE6B4C40A034E9EAFCA2A35CCC776C2669E6AD138070A40F48ED79136D7FF57E993E09
-B81C543FBADD350FF5B5F7A46F060F88E30FE2D8233832D18B6C323EE017EBC1DF5C838321CDC8A8
-4CABCAB20B60A1A3AA028F36EA6E87C850AF8AF7CD50AA6359038BFA8818821D02CEE8F51DAB8C05
-F7AE9797814D97F3DB8CCDDE45B21DBB15CEE292FAA534A5F317B357F4091F3DA357325B8B9F5EDB
-45865415973C143E5E5BAA483FBF2D06CDD4246675EC58B84C6AE65CA743117FF00F229243772561
-31A7F2BA26A9115AFD96C18216CFDF41B7220ED0CB3FCC26C36380007B382A02AEAE428887DC8BE5
-FDD630AC57EE3DC156C7B8B29E687F24442E35CE10BA4087295A641F7139C831F7CCDA6CCEB5DAFE
-537CC1A97C5A337D3C48A6AE947F58A30DC08CC7B58DBBB4737AD52783C573FC1E9408F55495A80E
-7FDA61F0B9C4F090158F1A416249EBBA936C27BEFDEF19D1BFB839EB70576A010706D8B95657B218
-9C2AE04C11EF9E57FE09880273761FB4302C388BD608FA0C7F00F033C9C00F4E3D5CE2D903E0DA52
-E69C7745EE9FA75E2AD93DC6CB5CCFCD3782A699B807AFC36AD1F62B05856D5DFD6F88831B90EB3D
-CD523582A49732E3FD7253126D39E8AFB8458B5F7AD7F94A8DAC13365F433C857AF4A42C0A08C4DB
-9887C4957259ED22D13CFDF5995DA957EA5A0F620B0214FBFE08AB6D552DBF048D62CEF6EFF12F15
-3511ECA7833E0E3E95F85E6AC0F95438AC4C126E1F1ECF336ED31CCA7EB216D279877123FD9FCD8F
-B5E52B587CFFC4428456DDCA816819A8A4A211D8F1629E5D42BA4C5C356E580C8A22C61D987552FA
-A97893816DA73D423686E4EBD44375C257F031318865A20F22115E72BF1EB9F93AAA169C140A33A0
-6C35BD4526A38BE79CF40AD1EFA10411E8F3300A8A8B97AB140EE6734E1BEE6C8EE443D698D34159
-97649C6F10F20ACD80236422E215E146D744A262DA3FC88DC0D86FF66512F49D3F957D3C5CFFEB42
-4823509F33F155057A4C6F37B52F4667767BA94F6B8B62856B553F307E5D230C44CBFDC9A97A45B1
-39FFB2F2565EB0E22026972FAD0FB7B9576FB6F368B61979943A398773600E7EE1DFEFBF26D45D40
-BDA66EBB96A56EE9CAE0B2420C5DD83E24DBA9FF885BB844BF3D2BF93B07325DFF60C0CB5FDCCA0A
-C8FB5A2E119D5AF26E53AB8E3B428481C2871DDA26EF0B621CD8572B3C664BC7AAC01A1D05B98F79
-1A7080D294BE81099BDA7982432F3DFF4775C44D23F4F1B2E0162B61A8B2CB5EE8564BF98E2ED403
-2219085FE6194C19DAC98A421826CAED7F1AB1477AB327506010217283894235D7DBFC1153D5ECC4
-8AA7293F19592B4D7E95FE55151889BCD1D7FA7DC2370D2DFE11D7E4EA34B5C7A8E73BD3A348FD38
-9EF45B6167FB90BA44C23E912F9A4F2FC0427ED070592F7110183BFDB2C400393BA7569058227926
-351F07FED4F33633BA03A72AA2DC6B598E49B96021DD868DAD0F352E5722FB714F667C15C68D49C0
-3D822D82677EDFE86FE9668E537DA284068C9B0AED83074C92A5B939296D505B837E6A9DDAB1AEAB
-7455A08A114C2222B339284674B74BF4CA9EE0C020BF2A148B439C71C6BE51A94CB64FBE4A7EB295
-5A455047CF5CB348B062ED4F6471CBC3E9ADD9BE9B96879AC7BC71BCE02FD02F17C6063985A5E898
-3D205AA1489DA13C408990ABA1C54F2F501AA172F530480D789C848118C0A74EF98D5F607A067BAF
-F6030D887AC6A6497F9A0B38F9705F328AAD4BFBB634F739386177B07F22D5771282444E5EE17335
-B4D0EC86117C697E79A5F4F65FDC08E4904DAEDAB20067EAE2448FD4301849E456D085F392DD1316
-7ADF75CCFDB723E2904A9C0C976D6B84DDEF9D92B0E15FB246C3ECC2D0BF314CFB957757B3A3E8E5
-801F520644E4601D291DA0F7507C06F3B9BB36FC1C70EAA444E14E56C0CFF06C7F853DF36DA9D8B6
-AF2544B853DFFF535A7E5C6FC145250CDDA229956019659D0D253A19A7B51A4E538BDC01F74D7704
-9949C2C97C7EC6392C2E61CCC0992B66DAF1AB08551063E53180D2A67DE496716CCBAA45462D9F91
-B66A22545962DDAB120511FF08627131B95E5DEEB8B4DD9643E7B2AF65C0FDCE11F5F1E8DD468DA1
-8D41C8C4F00EA73836F4F70EC50FC3EC6D358C0658A4261C6D15A582A2C7C994E7882E661855B352
-014576858A265FFBC425160669CE159D07EDAC04D060B44E5800A7AAE8E339C29B929AA81D2F515C
-46229D2080D5917AB20AB6B34FDCA8E4AF64ED660A3173786FB1A1D005D575C2A5187D3F7CFDC94C
-CC44A38C5CD523E9DA726D8EFA6DA7B6131DFF3435FEE838B2C7D6B97934295F06202D307FF78D90
-6699CB9C5BBB10D1D4DEA5FDA5BFB094E704607083B646D37F5DA1FC7AD21B813F44D8C1AFEAB666
-55AAA19703BEA2E77DF3BF350E17C74B3447A452235919452B5175570A006C7680AC05E8950A62E1
-1D7E3ACA35A397D1E19630D094A86807593C97F4C484E4E06BCFF708B6DCA972E3A0009E1CAC0EA4
-141530F5C1B8AEF5E1B933F37FDDBC4BE22B74FE346D1A3F5FEC0818F8E61765568A2AC04713E828
-F98C449D9A1CCE52D10D61DD8BFD084C8D099A75D89DEA64D5A7CC68BD5B0593D97953DADA976383
-F5015915618AEC56D71D1DCD55B89736395C609B315A3F1E1255432FDBD37F38CC43C354FB4B7C44
-F1A7318B0B7E99C3C08C33B953727B6A6328051783A0A33E3CD9E498346A3CA6A77B517096EDD52A
-E443B87643A646C3A7BB97F742888D33F9B3127E61942F4103C1DBDCD8EAC8F9E259773066736CA6
-53CE57E8822651261D847C131321BB9D6626A1AC50D047C0BA47B411DF2A995545BD68EC0287CC9B
-31D5DDCA8755EBEB10ACCB3903AB0FD5788E984220443B8459E7C078DA4289F1350905881AD6DFDE
-C47302B0ACB0D4AF8CAED02B4B70DF3CF8FEC118F0FC2D3DDE3E494CD160E676E300BC464BD4400D
-B50EE43B314E0517037BF971ACD7CD327CB2134893B8A0410E68DDC518F5DEC966C7884CF5FDFE74
-723177F20DEDC039D879056CAAB4BF045062D3904F615C5CFE109AC7A35599C94024B41019B9AFD4
-04A80ACAA4837929F5C9317680A13D157A03B59A5588DF79D2E113F5F51021D6F6F90E8BBBA2C252
-FD10651BE80BAFD59C53A3367BA3C28DB6EB9DABF1EA99F47B503F627E15DCF3FD645FC52C5D5D0F
-2F07DB4C25C0D1E1C00146E1C4D973E613CCDBD3F9450CC0F5343D79F05E9492E86A1BB889ADF405
-03BD7F3E7543436859184A5B20BD8A172F350D846B7570803990ADAA48D4B9155A2B4C4BFBEF1E1A
-065C08E03928559735BDD442FF1E83E1FA20A5DA57D8BDB2FF5427C034CF0128AF111E6E73099E04
-6E0C240E80A73D7BE72B87834E45898D475521CA3306707631F5C6136199F354632D1A085F12A1C7
-C473868B62E534D15F5484323E63D0574196A19EF175214EB35A90873EFCFB92D6CF68761D45E37E
-AA61E1A1979A82009507CA193E44B36A806486665CEDBCF387053ACEAB979BD35D30978FC7659ABB
-E844F4ECAB3303318ECE80777A5FA5A9DD91B3D06804C4B4E9B4EFCF07EB89866D0DD8CA390CFD15
-98651417114D78776B1A1D36B4BA17746D6BE7FC123D473EF1EFED1C3BC1D555F914536869FD5B0C
-35F9C83F65B0E6BF7A627B9202D787D72C600DDB6BCCE613D88492E13CA0AAAB196E8A49928C62CE
-A4FFE2D0208EDA334ACF47F20BD793124D2C5546C03F4A364369A76A0425262F9D9118AF54E37D32
-E33AB25DD533A49DF5FBF1BAF4CEAC2D9D378CDCD13B00FDA432D9042F623DA41AFB80699B5538A2
-5403B0B3EABEC9E8EFCF42FEF3EA9F91766902CD206B0787C187D5370B60AD6DCD002DE2DE8DCDC0
-B4719A797C5E26BAA67665016DA0D967FA1346F9588AEDA174CA001B31213617FE19EA218EC23597
-79D979E2663166489C06993230B0D07973A117C4E3F4A4C93CF8428248DD5389414D679C69644142
-67C7FEA17E35B0CEE456667A9B1875C81B2302BDDEA2818D6019FC1622A82051F60584ABC904CD91
-8676305DC03FFBCC64FDDAC8D8AA9CE2EA00D6C97BC63C8A617DEDFC0E40775649438E9F61AFD179
-5E3B20560B01BE5E0983F136CF48AB206954E41DEE0D9DDD953DFD01CAEB569151D6BC0DFEF29D70
-FAE3E198E7EDD8922C0E0BCB8BCCF1C016142C1A8B337AFA7A05A9D7534B184BF3BF827F371E9BD1
-9A71244ECA1BA73D484CD2FAD54DB2F0EEFBD54B536EBCB5094E6BC2F5B2AAE41F05B4B311115876
-ED42C34F8E643B53372E3F6350DB8A38445822EA9A33E27FB0CC42CEDCD1FE2FDF723FC47C996EE3
-56C402112F24D0AF899B2D00BEA1CFD427998BD22B2A09046D6737814448ACFB10D387547D7009FB
-384AF0562C85694C071584236D0F1F3D3FCD0CFB38B77C81889061E668BA7AB37AA60F58A3967DE2
-6F939B79CBF10A9DCC42852561D8D6754F1B660D216AAB1E133FBAA321C56E2584BE5C9BAE20CCF0
-0E8DBE6D9C2FCEBEBAD945C3C04101D2387351F132628786F6D9D4CAB83419288D31F9BC600D9664
-12E6AA457CE6CAD26A4C0671097B98C2384C81DD8B9A3222D4F4BBDA7017895C3EDC26662779AEE7
-40D9D7E24185FB821970B0A3A94041A69E4805EC88EE1EE521981536F2844FB8F5EF645F67D42CE5
-148E2DDE43AD5AEF200EDB3A2C7866C98458A92666E5F9E070178BCC39F65A893102A10564AF4E8C
-AAA5075D2F8CD7FAB0401C03AF299EA3515CC93066744EB5AF7CF0ED06675BF049A6E3C211A89E16
-DE5BF0445A7CCA6EE8EB0347454950485D884606651E5887FE8B24323E2AA16DE22FC1FC8C4F06A8
-2A1FDE5758976024068197E1F4506E4D3D8A16D40461A4586338B374A592DC60334402F76388AD6A
-457DC3F54E6169CF7AE3959676E966A45609621055EC3AF80E182633300A4418E34A66DDFA6B569E
-5A13C9115B5FD3EC1CEBE50FBA247F60803AA83976F00117536342DC3D9890C49B2AC701D370E43A
-955118967827760F7091469C5406F08F18D7E3548148CF0E312B1DC71DF67A5E7A1656CF2F47F3AF
-F3DD50FFC2FCDAB7177285B29C17CA43019F62AC6FBA52D1493ED7C427526470ACC8389BAE827759
-4958908F517B2863B83292EB5AB3F57FFFB08393CA610FB1FE905D88A0A16AC395E2A2A6DD033D6A
-0D68992F830B2E1B95FE357BF672716E88FFB92FFC3D62945D1EAD22BC68C51EE0E10A43011DB94C
-44685A5C4576F6EF44CBFB45F2A4BF110A01657DB51FD499767E78058199B31DFD60813F1A344F86
-289F9378231D5B151C92385E3650B4FEB1DC91018EAB8474CBF69FDC1496A4D078D2C351C8196451
-247A9DCF8117E5B637371D8E22E248C64D999015C3FD2311E9950B8EE0922FBDD3D7BFF766BFE9E7
-CE0BE12F318FF2A7B5A9C6D00A54401609304ED2C55F5C1EAC3D4B38355BBD85D66D61636FA6E30C
-2E82829376BEC979A6FEEE040E452359768ECF90CC539A546F17AE906C76F14F86FF697797322B05
-1EB311A759FE260C1EEE5DACF383816AAF1294CFFA7BF87A4D9BC595EE8F2C2F86FEEE11AD959D86
-F22FDAF4CEC098942A57E57813A0FA99239E994FFF353C1E781D666B8928CFC648FCF0869FC68468
-BDBDA7D280DFAB8B0B3A4CA35B074B686DE8D372C61FB32305169A1A9912F6541DA16CD6316A6EA4
-51524757BE5CF6E820011BE3859FB8B8578C100FF029680E05F0E0BF11D33FE19460C85EA5E4C0EF
-28E29407C8AE6BE01CFA0D5022BF9FB01416FFF722A784DFC8FCE330EC95737A854471D334FDC58F
-AB42867A7B62836A8B56466E9A6C1247D46EBAFFB905CD4321970F59FB8D6FF65FDDD34BF913AD32
-2E68455C5FF2D23C1A5EAE687F259BC982B6A384D35440F7C693CF50B9ECAC0B5578CAEE87588B56
-2EB6B7F42034C9F2E545EC866316552354EB3728C7D26527ED75174EAF635E048B08DC5D23E88981
-070AD5641A652F2344956E9CF4C16E652A99F4A644D1787D6D36537489DA4D74E61B2FC4DFDF1D1D
-9D58F9C26C5EB63200526AFD168AC57D5611ADE4D4A382FC28BB60F9E7D626A6C67AFBCCD1183C5E
-3CF2EF210D0BF5CFA7BB10FA3887BDD4CD96EEEAA8F9219AA2F10ABC0A960C3B57C0EC0313AE10CC
-FF1F522124CFC8D2D49BFBB0C193EAFFC5B48FB3FF30B21CB76F0A4C0F1377C9223145BB0468A5D7
-1B9BC25873EA12E1C60334571C67385C00D0B570D3FFC6C7FF0DE62C183C76AEEB12DFFEE1459E0F
-C818C621B8D12FA1357E2B55D48935D70BF140B4CFFE8813DEFD479350B20DC2EB1D3CBB1A2D3DC6
-EE975D58C89D61FC50E6A0197DA9A586B72255023DE47DABEFB11E8AA02414C2FF6258A281219B9D
-DDFE41BA7D7977D0D6F18224FE22F7D4E9355FDB35BF7ED3418F4F68D093AC48F7D8FE4194FEB6C8
-0B9DC1F74E023C604DEA27089F98C3973FF9F4AD7BF7BAE601DB89B08D5D8139B95EDCF6C885FFA8
-B3E4B0477E7040225733826BACFD1EC4A0DD72DC41734856AB9FB700DF83CA2CE812913BD142D84C
-5C83C0B2583768198AF9E885F2BA74877A414233207234AA5F18840557CA11682AABDE8993533887
-7C6D404BDE4153C9827EB16D66C1D73A8143C8A2D3604FF72CE579FAA3C5224BAC48EA83BA848429
-9472007DE96466B5B29ACC7C03B05DCAA38A48BFF9F214DE43146AE4E04FA705421917F99BC54533
-F0EBC01849E396216B9F0794E6F6C6B61B52EF1B1950C0FB609895C3C55FF574163FC8B6B09E66AB
-AED1810E698FF37CC1F926B2CDA3B48C7D77790EBD2D514B6F385D397F713EC3AD3954EA9C846158
-6031D369E8B99E53408A79D64C34EB5A56DE8A67DE91837960E98A66FC04DFA0EBDE21DB003234BB
-78665B039D0A469A0221BD541AF7149A2A659C300132C14581EF766FFFBECBA8B58A5EB3F95446DE
-F49AF863A8113D17B2E7E6ECDEAFC3834D4DF900E3475596E86FBB4E2974C090DB4AD61A737D611D
-92B4535AC291C56AD8B1C031D2F9B505BB77517B737D70AB3723DB52AE2ACCD5DD2F617423ED3CC3
-9CA882EF41757BF7151806A9B8B0F312808863E3673FB54DE939B35CDECA7FBC4DC3BDF5A5F47D35
-E345916C39366C8B4F439CE1C6F1835C320BD1E67375B03B5DE18C93256F251761A4C8CEC01019C0
-68E34447BCC503B9571FE8000627A6B3DAD5854CBC0A2D69E5A8F46BC78F6A7B1422334EC7A98ABE
-FE9B83E01DCF3C6C9273B346F3240EA225AE4A4083CC7B0EA141A0773FDE940768358EB4B13D82AA
-304A1386D450C1C0C6A7D5A8FD2BD313F78F85248B5196241E31E5595F3BC01F37700A2DD3D4A0EE
-2DD01A36569CD507130E8F5B1E96CB560BB7DA15560CCADF3B2C9804A11D9E8055C9EC70E48C1D21
-3EB756A1376F2EDCB7189D78CD3D6CA5865537EEC31C17D801605EFD860B0B629472690588D02575
-02C6F7A75B9A1C1B397781329832CF3EC43C09F1559CD562C48FA9500295CD3B0A790DD3FCD4684A
-7C7AC49AC9BFFF36B39A9FB148BC28D37907433943CBBF0CBDAB46D3EA86DC8F81C859C52D15302B
-94A9B51C199B7104DEEC9D769C2634CECF8B700CE9C04152CC59C9326BDACBEC4312DEED92DD087A
-1C4840868D9F97CAC046581F762F75E8D24D6445370A3F1E0AE74A6478D9DAC37E7FA5BEBEC0A1E0
-81AF89C1BBF7F51E3E2E22C8C405E8671BA85F1BF0DF79A465DAC7EC07F731E00632E017D190A99D
-83E27E5C2E63D7DABBA23B2E88334C63721AC5A4CBC5D45F4C177259F34C2EADE01FA008AF65EBC6
-01D8DD16436D86AA94C99F3CC0A2F87134E73BF22F108B825A8963B49C6C685474AFE4A542C8641D
-C0375D7EFE9AC1168D9700459BE52D0DA399023E141969F25C0DAC4668534B6647EC85454BE945E8
-26B26DE6E3C4584B97A38E2B40A0D23481BCA78084FE80E00A71A790BF31DF468A435ECC88E60A57
-860BBCA3D65930186E9917CBD209C230E8F8255A7ABC7D3F043AE4D7AD63D9980BEDF062B7D5C298
-C40225B6D03F29A0339E0FCA02138E526F06B9EF47F5E7A8068A846CFDE2BFDEBD24F5A73A66C079
-18662AEC80B43246284FA4E2EE0D9AAB172B1E59A6CC46B801149D8C0DF6DEC9A55D8E1B0EFD9D30
-2FF618075944CCCB6831D336B11617107B0530D09885E5CA11A5F1FCC8D69D603DA16BEA51116D42
-CAB1AA1E4D7B9B4D79993F2BFE53EAC904FEB70B2D330A89780EAC10D12CC0C35B8399F218AC2976
-E57A26BAD20CE2FA2AE2363D3FD2A8A971747556F2959DA74A8963C20B504711AE1CB0D0C02457FF
-2E9BF696B159AF031DD5155F21C0F5549B0471A3C5DC8918B675CEBCB23E29322B959ABC05283A70
-2E878DE8EF25EA760F3C5C7B7B49D398283DE2ED837FD59F7C22D62C58FE4448B1049FDEBFC8787E
-67D7DAFE9774979BB3802254DA59BCC0219F98C219F84D995CA768B8B5D9D4A32525DFECE003675E
-E4BD5D8DFFC11025AF2B468F9207B5B2B42349B98232BAC0759758C1F4A283405815BD7145C93FA0
-8F3ED2826655053A3C2559073D8ACD199DEA2C5BA5F616A2E48548B4370EC73493BA07E197165DCA
-774438B0766867819C1154D1959FE6E01E6312E0AB91FC2E2BD240FC8652A2D456A1DE7F34EF372A
-53794D4C4E050BF3CA5B7BD2F1B8DE93B4C8002485CB219AD2D029739FD3C81CC6E78EDF38723576
-1A57143EEDE5CC887F282FECD261F6A25D0A7E154ECDF5DC38E426811BE86AAA458577E5E0C5F0F7
-5AAFA9C41E5D1DC9D91ECD79B514F8CDF7A5F1A189470D35FDF4F9B8788879CCBD91B427822ED658
-389E981E0EE5F7FB87692A3E3E931DF8A1D1573E3B0166204240B7080089A09EF7487C9AEE2D665F
-5A82F94C877FB5B0DC531CEBF1E71C6592CEA2401E4B5122E5091DF03D203DF979B9A6EFBA12E2F6
-B422FDF15D49AC0914D372D21E871DE65CBECD105FD4A3E4714B9CCA5C6803FA39DBB015EA8A88BE
-7913502E562E5B170B87BFC8572DC9DF49AD63694311EF1334444BDF0B4CA3245271C1F7A4D7FAF1
-703E3AA0E1EA8D5C6E821B28707EE0C9B4F22F23796FE87356C58AE2CADC191F4C58E1FB58DA03B4
-5A25AC95DBAE13A293474217BDB214742B9D9D6AF35F70FED2891942EACE3E625E55FFB820543FBB
-250A062D3D395BC0F219ECFE0D76686AC148BC41476A887BC494DDBD396BE200FD3E03CFA12EC9AF
-6B934A283C42AA05589AA6B4A8D16946BB51F50419CABECEAEC5AEF9085C9989289E9B46BAFB6FB2
-782D84DE2B068F91A9744AAB237CEB1BA513E57E4C307108E993C972A3E0A898D5A8D27833155031
-FDB98863C3BE7FEF3004CBAA5CB60A1F2E3EB4D7290FF5FAFA088B1CECCB6CF51A58DAAD998F0839
-6CDFD68F5ABC9C1CCB8F6514107773C69C26873E889D1F79D10E866910E4684186FCD71C965ADF62
-39BA3418B313A27AD632300969B6F284519366ED85E7CD968D64823F8C59B5911A72D0A20EB72B60
-3A61E36F52F256FFCDF706B4560B4DFA5D918FBC530D83A4B3C01BDD3CB4572E24242D141BF9E775
-36693A0407D002E09CDA5B195BF1CCF430AE9824C07928A050D0B460F2704BE8F9E647A4884C4567
-0A81EACF7CC038643EB0FF18A376FF6F32B6FE4F197273327FBBDEC6443A299CAD4B26F7778A99F6
-5A11BDE047153E764039EDB251936AA43DEE50DDFDF8856519056AAFC4C5AE6F2051AF0579A9ACD4
-1D00775D7DBE70022CC263DCA5E0A25B9C7C4F5C418587666B2FE24816B1E0EC92F9074F1403BB83
-AFC3F1D52CA79C387BDEF864366E34C90BE52F7AA09935373A07E4E026224E76F9EC3CB9E7EDE50D
-EFDA48248D61F3CEC880A3B8843306375D9711E58645F3625BDB8E87052DA67F9794EF4AF8DB0BCF
-E00677C3A26907DC651BC838C40EC39E2B5A5DC0DBD345944A6C32226089D63C52490FA10B215AE7
-03CFB663EB8A47793B84CE7364DA1C4E7FCE32DFEF09490121222774915BA59C78C2275F829D15CF
-4D8686B095C38C731B83D48738C25F40B8ADD487C350A2EBE846C3916AE384CB1050F9F5DFE09FCB
-D9129C6270FD86D55A459618FDFA4F907E6B4746196BB717865AB378414029017551161A52E9D24B
-E4F7EED553A927933D4ABC8F25DF607779A717909CB4D810DE8F5762581900E224E4B91598149BA4
-71CF8068ABE8744356B261600BFCC57FB8BE45036CF6571D9B2A95304933BD4F17215F8EF53F8E08
-1AF61FA7F9583C34EB5655CB0ECB82246959F09091F36989EBDD646BEDCA614B9A61AB7696B3FF18
-1058A150FA6EC1BE2EBC7F64357A3FF2A2B0491D2F4E0B970DE5B7788B467CA678039B5EF55C88A3
-84578D427FD2CB16C87B0BF0A3D37CE8ED43E0F049AF2436344D5F47C948C632C94A287509282561
-6C64C5D262FE5B24916FFEE982A69A6CCF888BD01D62EA591EEC51F4B7DDFAFFBEEA93FE08D736C2
-0129E345D06B10246A5F57151C198D407730713F32299638EFBDC01367E23EB59AAD42A83AB41B43
-2DB462652E29813740F4680A5D4BD47B18328FAE6BDF4200CFA4CE3773809B45E8887C9B2E423698
-9F6C48D64F5986F563D9A7538A8716082F81936AEBD0461E6F4BD470436D8B7656F0FDF89108E6DD
-02ABDEF907731D458D690BC608EA9CED09EB1E6E64C0790C7A2378201CE997FFE0317679EE1D4EE9
-F91157449323E53B4ADA8096CD628B5861BF794543A98F2FA2AB54FF0F25A13DAD43DAF9394329B9
-5AA53CA32749FECB0B2BC035DD1EBD53FF9FB5AD8BCE06CD89E5568091C1CC314CFB1D9821D7F9AC
-7C55F55E0A16E39A87D43148201B928F3C42B110FC056189DEF183745F3B637441DE8BD4C3C7EF12
-F4258E306B2877ADAEC63441010750DB4E6269A4C78A0AC01BB3603C386651FE814031CB5D8C1F14
-9EEAFF652A53E57BBD4C8C0CE36A84A319A53BC1E5FD3F1ED1EE72F4C1A9BF264B594062FCAFB22C
-C1FDE3F2E3D3C17DD3F7FE0E15EBD812D550227C06D01127385374A11438ABD50048E17255FCD2BB
-85122A6FB9B7DA9D5E9DE8A747FAE0DA45A1FCEFE92B9E70A5B2CAC668D4D07527A5C1403267D823
-048BE671F725CFC7474B44FC5AAA348420B2D7C23C6CA066666FD6F2208E329878D90CEF1C2E77ED
-22D3BEBB9D547810B189F08920A27E7107F208591A84D463CE2576C70C3DFE6643E4EA93F4E1DAEB
-41D46F0E2F56FC10C69AD5034FC9859D31CF27A3A1EE256C93111F81C11ACF1FC0CE20B90BAC9AA3
-27A5C85A7985B951519FD4B03C40BE637162AF41B2FDA68F0D1E9B7602FE2659D3D75955C579AC51
-DF6A552EB9581AC3F712F083F19B52A6C4F560F36C59CEEB0C996AAF1728A2AA45DCAD79BD7B23AB
-388D5B0B64A2B95154B6259B730B0F4A72C8C7F7CC93C7D64D9D8810D1F63FF8ABD4DB89824E2D26
-4FDEE916C41E299211DB1A53256E1DB5CDD04862F034D9404B73183A99D3D13D642A663F129B6D16
-7095BEB4EAEFD03DF2FF2F0B6B594C1EE90FDB203DA89FACEE23F1BA3901FECC75FE1811BD701259
-343011262B6A0A9707AAA6316BC3C17F787BB80AC8DA5AAC942D90F80C5A3BB59E47EC767244AA95
-C63E50BF809998957936D3BF6ABC24B0A397258F9EB4DC8F65692CB023D9091FB180C69498CD0C08
-BBEBADC84A7E0016E8F8BEA325D924EB0DF82E75D2CC2CCBF039B11934363D4332C5FBC5EC556BE8
-5EE4E707CC2753CCC43D2ED50558E51A104221C9323CDCB0199B7B83454DE3FDC810D0F362C0299F
-5DD981B31D8E3DDA284FEF9DC8F9C8DE138D3065437A7FE8C30572AD06D62E8527AD37AE39AAB0B2
-25F76A25F6C6505241ED73BA494CF923E919F688DDEBF193E188F8C4C154F21631080763B4D091E8
-AD1D2FD6649E0CD9360E8D1A67A5B5FAFC67547CA31C95A5EA8D4EB5D68B9F6D6532DB9B54584735
-9558542A2AE58C09F3BD2918EFBE1699E9C8F2C2A11EA4D224C726D2ACD4A8D8ABAEDC6588CF2AE5
-66528B94F55B823A2A1F7BE19000F3E7579D094E047075DF18C8C868760295533B26EB3ED90635B1
-29C17ACA679C3E88B06998CE5A7A2544B700229F5A6A504BD3E45B276471959C8A3F81917A534287
-39B5EF9E3D463B3BA7318448E2A3E79520D2D245A2A72F31FF7070B6E4624E3A5E216BD103640C8D
-F387E49D732529C611F8B971073F17EBD2F6EB18F9B74A67E1997926DF178D4C9EDED435B9682F1A
-279C81BB9F60DAFE125845A2FF3B02979E5481C78A45C479BEFB9FEF3CE2BA9BC46C77B50B03E48D
-A6D17B76F06F3AD118371ADC69E178C52B5FB4B261C9311874ED07DD6D5B3226A005FDD7A6D53848
-09E7063F036CDEA41619122635E835D2D74CBB6AA9B38CAA4D819C26E95115FE0DBAB4198FC5838F
-2C91B7A87B07D734C6D4F4F83444C1E90AA9BFC908A2BAC4B3DEF9157AFCA5248F2DA31CA87BD363
-AC25E9E77F741D4B2C6E02F04987A6F49D30E9038CEFC41BA172DD675AED8B392164411144E5B738
-F3210B0E66B17A13CB9631C33D44484E792A7C082DD0A5382F34C5637653261B1EB6D2035B08B4D9
-1FA9AB770CAF40A103629511F7B43F2743D7E583433DECFB19C21FD4FD0AFCC22A4119E77C87BFE6
-FE50068B22479015BE5A9F06BEAB4D37412E062A45E0CBCD7BB39FEE747E96306F79FC4F2E8942DF
-5D9DA0E55AACCDA547DA19D30B8404FA121298B44C9CCE198C708C69A8D6BF17591C5C50D3FC5BE6
-961F7ABA8F366DAE957A1C3730DA4A5B4F035A9274675EE3BBF0CA8CE9D8349F50CABB1C3EA4948A
-BE6F9F143592F1EA95404E6909A909168E3279A957AE1924245C356331A75E7008BEE92BEAA304BA
-40B7C3F48F74D9018B3247DF50EBD7CE541DA48ECCB1B0BE51A455C3C13C279D4D8676078C3EBE43
-08748D52C9B041D3E7244C745B1F2F742D010A9E60695F3EC4FDC1050AC082B905D6A57E8F407A3B
-472F731011A5798965B7B1A307E252FE02C8F79CEEDDEB6E165F1A94D7FFF18DDBDF79477F14E9E9
-3981ABD200FE7771B29D1D2D120EE79D28B9543818527039AC74085EAFF241B56D08220C958B5D9C
-87C0C04A14D52AFD475B542D391BC54FF33DEF8D9484AFF6873BEED32DDA4B371112B523B6CE22B4
-0D1B416B64C9370F1CDF2C548F4CCBE9E12E21C36CC3EA52DA232DCFB65F66B22B5E2EC04852510D
-5E264EE939BB67AEC4764B87062AEB7F680B40BCEE04AD45C7519EB3B6199C9E0E332661463647F2
-FB7EDF303EFEF84891CEBCF0FAC5F723A9D0476C3F8C092604C87FC69C7A90F4D64AE45A478EE8BA
-2DF50FB93F55A3546123F0B0E2C1C40C98EAAE9F0F26B8F80FFE6E6B94B7E27D2884D58B8A119662
-2DF6BE608C5569D7864BB756DF2EDD184B90812B44ED4A32D001C31383A40AEEE9743651F7950846
-15C48E402DBC01C818D477EAC0347795CB2792E9C11E8FD4A02E194EED1C919D4598FEC003B6D9A8
-A0BC7D456047A1C0579453FC1D7CB2D158D466939A23D7A7B8ABED7E2777EC7487973E73F2266D9C
-250CE30729E3C5223AD93B9AE8443B35711E446A3DC660123ED45CE1942A1A2AD0610467E081CE2C
-8B92A6C82F0B17B5D2429E99F1A6268072C6B5AAAA6EB6283A872C54D3694CD825EB2926E57DBBC7
-C1663075E687A144E4D61C225781D80FCAE1497B442342B4A3F1CD6BDB50E31791CC3928C30835FE
-F845B6BE5E2D7E3F2F5F085AA3FAEB45CAD0D76BCBB1ED859A9CEBB9F7457036F0BC3F195CB1A98C
-9C8648F6583CDBB23894BC719D68C2DBD8003B10D08C8CAA40BCE784D7BFB4EEC9EA5359AC056E57
-B8B0F2EBCB1F4CE40C87FC7861180133E0CB6CE2FC4FE690756D327A2B5AE063E3021C0C0BD420D0
-56F0B941E6B36088A55BA11D0C35FD0132D5F48E5D9673572347171B4328D4807B972831C0D74CFF
-A5638C145B89C989E6EC942148207D6DB82257585958034D9F9D4221C7C9F7013790DBD130F277E0
-BC88BB179DD09E27062379ED06F25EEA8B7FB33C35861A0034776E3813D2E9E5C10E227CC569AB36
-CB2D9DF2E7B7B44758F9DC4FFAD7A24AC7E9F47AA850C221048C3CB35A37CE8EA75632AE65FE3212
-175146FECD6334AE3D3C5F492F067F795E1E8FF386BA198CB74F0BB4DC0000DA383BC4CC3F070DE1
-7721431988D69C8B1A5AFDCCC83C22E16A87E01C6D3E79DC7AFA3DB0371B0866EFB8B6F88900472A
-FEF1C4A878243C52D4E02E82658979731C841C489A6B97E271C4C93800EC7D91F93EB9B9C659A554
-E1FCE42A5EC65AC39190EF4B66DEAF6FC0569A000A9E1495F42F706FBEA4D32EB7EF11A648910259
-6A65CF899C2F322F5679C6D123469192A9BF1A7F1F2C81C554ADB97BD19ADB746A4F81A4D5559E60
-AB94C483DBABF6CE2F28CDB412D50FF3FCFA3B3DAAACC6A83CFED910CCB3B8D2C19590AFF4D75303
-4A6CE7F4156896A13808E0DFEAC547E69D3C886691728E4A35ACD575B40D721E8FCC5385A2EB28D7
-08101DC50811529528F5CB0C009BA7E3C88468E37768FB0D83895AB54DB2DD5426562AF9D8AF304B
-F6EDA54E9C92643DF926F5C3578269750120302A37CB140A18BA56BA01108D4ACACE8FEAE640A6C6
-958EF156B588ADB0EA5F3B0F37BBA12B7BCB221C811415387B024B7076FA4403A3AD6EBB5D9C26EF
-EBDB7ADE7C60B444AB9F90EA493B658B7767AE2BE649BDBB3FE85F460F1ED137C61BD95F7CD3D8B0
-15CE45138538930AB62AA0E54B4CE1A5EC5FEC0A2B28B345B67089A4E4AE14D2E1F5A9C8848DA688
-CA298F93860649EC3AAFEF3E820D86988C8E3E5A4D4BB937791827994AA3E81D0BB3EE115EC36D5F
-B9A392D09E79AF514D11C7B3A03C9F9C13355CE79E119A19177FFDCA34704D38118A8976D1EE5AA0
-2D14FEB1414419F5E85244ADC5C0A765A522EEF36170064BB19FEE3B5F7B441E4DB967DAE0BAC2C4
-8FC6A836E0EF5A69F073BEE1699F55E9C757EBD6FD8B514E2B49D6333815B7DBD1E0694695FCA3D2
-1320A0C4B852D9706DADD8369A95FDD917328BE93DD33818954DBD2C212D2CA81560ED5BC284EB04
-7A5F389E24E43F4FA8C97FECF46589FA7341076555CF55B1C21B28E0C1CBB00AB8B6F67472F27BC0
-D11148F407824B0159B5188D4BB7386FBDBF1C0FAF34721B7BCB5C0FCB7C4010DCB6A1284E9D7883
-9E3C2111A05D29AB7997073B590A81C6168020F1D48951BC7D8476D5BA593F4F23CAC1F9BB0E091E
-84B4E99E5C584D1370DD12DEE8DF16AF8BC6B7B23E2FEABDB7F32779AF8E2B5094A6E9B7A7225F24
-C43A8E5D2B977E1E19E633C26771E23017ED233DBB02C64F8CF03992C6484528D0C8464B46F24F9E
-8380F385D5D01B8893C67FC103498983CF939432AA380CA576D09030CD52FD99BDC3BE16C7204CDC
-3365BF76294A83A1FC14A236F5FE5321904E779B13232A76F8FE521F425562678436359C2461BEA5
-AB27209541F557AE2AA60009C9CA0A9FC7898C14306CE35A50017BADEFDECBBF94EE2905220706DC
-806409EF87DB1D73EAB0698AD2DB72CDCDB293E7FB13C94D9FC87E74502E6927A212F0D7D2F2D194
-64F7A66AC07872E18CB1DDE8F11835DCBC5C4EF039333FFFC0FC1456DAADE7DAE3EC2EE0D3415B0C
-ABB69FC5006F4D14A4EE1A5CA99AD4D5E629C0DD1E0F097B5B93DE2DD001A8C418234C9C45E8C13D
-1AE04E9466DAB8CF1ECB88A4E059C111A6468D2DABB90DA79C7C79E94DB28F6968B1A632F8C57D9E
-565FF91C6916026FFAC0661856B9FB8DE9C81661816221B1FC159CFEF1751E7E403F5F2CE32529DD
-540792FC17A12A3DCD7C50D38EEAADBD10ADBF5D8A82442AA900CE6150EB7A4639DD9FB6E385B2FD
-093493DCCD9014B23EB172E21AA89643A6CAD1093343D85D81261972DE0ACB16A4C6B5F0BE4C978B
-FA12D3CAF0134F9EA49F6E9687C8F99A456745EA252F0BA9968C7F9586E3DD841AA92DC7705BDD68
-2DAE41518A09DF0E209F321D7FA3417202F4BA76A984DA3ADDBC58136885362F02F0A24EBC439B3D
-BBDACFFD8498EBD29F88F016B1FEABC10785438EAC860B554525F3266097A675299AA0967BD3B7A0
-EEEE3FC578D1BE99D3533BD91571AED904BFC9DA1A1451FDC5406E1CD614E0C7FBC733563CD6CE6C
-C31E9237CA153F1F0411114361D731636BCF98555ABF12848AD109371A42B63675A4130B81E97C2A
-2EE2BB5D8FAE2640156001AF0F55D9D5DF8FF23C8AEFE14F120000F14149A36E5C94CD9081DEC277
-C2C34870D05011F99D48B0875A5FF542F067F7E9880109F586BCF2B50522A1F23ECE44349E539E70
-F84E207DC9BEC7CDF856A046F1A03226AA41F541719AD1AF88FF211E57DD0C1275DD0B7B47440DA0
-89B98C6EE92A7D94700B83CEBE19EAEDD8A615F6587587BA8BBA3CE3AA5E8EAFB1FB0F486BE3609B
-169EFB178A4292F4C0378AFE5D24EED1CAAB514DDC66C696D8E37F294A6579131DDF5488E9436609
-ACD750C3DB0A940C84FE022B22ADC2676F62E91E8F891225F891FBA537679B24547BBBF35F04915D
-20B11739F620D18B5B216921D222F15044368569AA302980B9225BB839F494588481B94B0C724352
-B2DF600A22B062561D86CB8F81514FBDAA4F8A043A0265F992FAB71FC9124A45B8475E1EF3DF6B6D
-E35CF329777D45F08325E8505EC0D979F542807AE77E57E453525F23BC59A50740371EFA98678AEE
-6C425374AEB745B99DDB5D8D908FDB551FBC0DB15832107BBECC4E11A1A8DEC69358A574A2ED46CC
-31D564549EFF23102D92BFDCBB2BB985F78F36033E34F59C0EBAFA3BDD71338736464CEFDBA91398
-33995EDA4207BFD4A9867D32E867FBEB7DE60D132803EF9347CB17BD91315484EF6570892297DD8B
-7D966103339535E28A00CB1EECA4A9775F60A9F5FC9BD8B06D78FE8E6318C31DA2E847E3F9CA587C
-B01AE2BA0A2EBDE308314413F4F230A758184ED60D4F71F6CEC22A93A01B6C54E0449A3860FCA895
-4A347B7588329A80974ECBECDA1070FBC055666375229F13DD995E99265DF870BC8B8CC6347FADBC
-1A6AF64599271A475B9123493D46BEC41289BEEB67EB97A8DED7A9C9730D37C65164CFBDC22E5CA5
-89D2E7954C7136EF4E084C43A6C7F361A3E96989239BDDB9A593CC2A80BA16DE9EE90E95CD39393C
-212AB22EECB677FD36D34DEB46C4AD0D21BF7E6D7CBD0C8083842FCD87B18FEA7CECF939987E99BA
-34C214E44DD84C176C9CC5A4CEA76D380CB316BB4EF9DE73D73B4AFD4ADB54451591DEF86621D138
-D5A0A29441502BF6C2ADE671CEC3CB5CAB903A657EB2D70C943F976C110E46C5D9D29BC00A875F27
-38E5D22496A43E096E009C5D3CB724B4CABB32838DBE527F83B18CB457E57B092C302EE557FD4F00
-DB9C56E66C9FDF4EC9FFAAB85F60D02BA79694FABA476A199A0331C30A78A92E10417BA236E23364
-8174C826331DC1BAB87C5F95027846130C6A2B4027930EBF9A97BA1B039D386FC51C302648E25980
-212F6A582CDE2778C677A01FBFB3C5D1B8A374ADAF6ADBF7DC94075F25ED66D440B3922C5F255FB2
-3FD8F6E21EA65B1D93BB225684B50F11310E242B087575973345B229BA62C1E2C35BDAEC04D10148
-F5B2F3BCF7399BDFDF1F3F79119714AEA697245BC647316EA157484ECB951BE367234FD02E8B1F09
-1AAC3D29BF282DFF4011BC0CBA8E55234D943DB3017CC7A766720BBC29B2D097A956C0F1067177F0
-12D42ADCB473CDE8D1BA35B4030757FA1D8211989DF3BD22CE5D501C21EF8708FB3449DF47D88650
-9FF7B59B76C0DBAE443F336FEE2D615D7EED1C284F14335BC8A26BF4621E10DE9611FB2F1DBD52E4
-B7565D8C65B54EA36D508BCF0C578A49A2665227CDE1F9768EFE847F9D94F1BBB7DB83701C232198
-5C7283D47B2E40B27A268428AAEFE75F6B2F8764A8494E5827573758CB9CA46FA93208836BCCC8B5
-564A69F5AD882052AF1C1417C3FA7F580569528682C77080F3688B65E7FC24D2A3AEB61574B4A321
-5927281544DDD7A6EE0A3E9388F8F631CE7251724DF70726E5912DDCCC8C652DD6C9608F8462303D
-867F589DE0F2F71711B35142EE6EF93B64D6326C4DD7DC83278E057100EE772082E6BA368ED91A55
-53ECFE2293A481E42F83BC8F9148C70EACE91F7B7D9CB8A72415BDB3AF66F68EA733A17ABE9DB005
-3BF148629132969589F38D30EABFA96A01FAC72650B5A6FF3935670198A1EA33810A9B11E330EB8B
-451F24F93544263436F669AB5A90A53B16CCEEAC36B1445574EFA7E802DE73522BE725E68704822C
-B7D3912717333367895BBFBE06966A5CC653AAB5E9B3596702086BF0010085B900711932A95ACF15
-CA4DC45A754EA334E9EB84D6FC8E3FC4F897456BED64BB93B593549FF0D5352275D8E417172A6664
-C5E0ECED1019494A7ED49AB0B965BEC1A82E5873766BB38D7D856049CCE2FCA65AAF61E961B60634
-E2A69EF059754C9D8163D87F928C222772D070D83FEC6FA5AC734AF65E40BFDE521F7D9CB1650FDF
-64754BFF21EA3FF0AF7611A93D525EC9B28C51AFECB04E7FC8323DD6C9B0D8539A34FC3CD8CEB795
-8E8EBBFED4313C77ED469C199552A9FF70BA5423B03B6148D4EAAE17B71C5B39DC436AC53D6BA8A7
-AD81AA8B02335A8B2B11E9F4FA913159A725B8AB60F52F1A2EA50EAF4D56656E615BF382CC68A690
-BF83DFF24FE986570ADC0290ED1A37C1C2AD469CE789E0EA0BB5CE01020100E729721AF3B5BADD33
-A2DAA6C33EB8F9064F5292F715F820B4BBFDD56F76D42E7A1A068C1CBDCE4640082F6E7D582D1939
-990CE6EE8D270015A2C461798B37DCB5798EE9F7512168B76D26C28BE4A49A1BF96C89D235F21A1D
-B6A96E5DA474D0B19B808D13D7A11BF39EA8647499C410ED9894A1ADF33D41B6FC2E614D8087F4C8
-4E437B136F3CB32DB8393C49177A0675A0C9E7EECEF448A97AFDBE840FA01FC7E5F2E8FECEDC1884
-84C312E8635CD79195475DDBFDD4D38D5A0246DE2C7F21608F8D2C0DA1371D302E941572E5792A3C
-F4E51A33228B93A814D03FD4FC223C314CF3714BB3A34BD4F7ED6348577FEED9DEB082C4049E57B5
-D3CDB7F26629E9F3BA36893E09E3C7463D02A22D7056BE76B87763260E46E48BB832B7EE13F8DC05
-37EC8E81E9BDFEAD8C27EBDF1AD706933EFD11131E12814F236EBB01BE85B7F1B2D627413B324918
-D247604F56EC128909873FEC3857028BEF76A3494364C2A7002D104D486236C30B48E2B75D851C34
-EA50BA7FFEB4E19190898AE21768C157C0CAC628A2181A32796FBC1A7271D2473CD88E5395DDBDB1
-FC3AA8DF0F3D588637F19A8B833AFDEB5F655A8838EECD684E2315B72C75CEEFBCEF94344ACE8D6A
-DBE355008EC72FE7CEEAB01363A895F4E73F867639BE0A0BE67333848816B05B419221BE8F9066C3
-62C23FE85B7F392930BFE4C12B9526FF2FDEC38F23A159ED61A0718E7115C24597D849FA76369153
-54A40C965D4D72EC94DA61A03766AB39AAB684E134FD1407A5B1B19BFEBA52AA0DA5D99CBE5C82DB
-AA663711E6DEBA180E1D4A39C320516A4350D296BC19BF1BE054859A0889C7E9727A021F3176FE62
-0FB0C837E4141FECE531A950C03D319E3255703220B7185BD20FE5DBA673F8129AB211EFCF36EE39
-4C7E00EB0876624BC840FA86E58B2F584754CB6BFDFD76810E300741EBE4544E5AC17413ADEB21C6
-2F66CA4F075C32381796BA709782DE34A675B717A2C7F6D88104CB924FDE5DF775B4F0B68E0E2E5C
-2F788BBDEAF06D8E1FC2105CCBBD5827C0B03FD6CD64F0D073F3192D5F94839644E5EC6C5185BADC
-F04112A65F49A8C83174A9AE958E76A2F5AF469E8B76C833782C5FFB8BD7B1BBBB3EA0CB7C9786C3
-BE2ADE5E7AFA8C8F20892659A59BC421E28845A108E34EE17864042EF587A6D67DECDFB3F510EB40
-D2229585347A0035670FCC76C2837A4E4D68304FE113C539B35C1F0234B5079B8E32934546982978
-C5E4DF955A454EA263C3CA5D7101F31A318D82A3F9FCB5A8AFD7A65209663B0FC9DA400B26F285EF
-46D0E1EAF8ACB1F1CB805E3986D04BC585073FC64895E4DAE1CCB749BB439CB32EA91176D5C39C36
-50D10AFB9C9884D5FB90183424CEE67EF2175D01D2478D67511EC9F54F88763C152697B06D948BED
-49240096EEE3D06AB4575E8E8B2CB8263B5BCF4FA1608720F52B675309833071879DF52C3EC2871D
-20F398B5CAC8F8A4D41D0F1D47584DD90DCDAEA4A1CF160C4B3BF1AAB890B5CEB6CB3488672AA68F
-BD938281DBC1D8BCFE92FBF514DA5358443CB6E0147254E91B38CE6787B2BB0DEDD2D38F5938737A
-977B5EA42892520C58F8FBB53C994B57382379E9490F0D6970B980E1BDF8CF9F4C3C5E0A18F66E86
-EE93FFE7FE546DE50F41364BCB3721B637072571FA1779F1D672FAD260C16D7F13CBDF3E4376E7FF
-56D2A710AC5AC35FCBDBCE2C9C17E523BBE6218617B13C1FA6679B308979AE7C61DA6E68369324C6
-CBC7DDEC364E5A86707266C0B459EE7B2C03FE584E529BFFDCE98C90A2F3D9305AA74D3ED8430DBF
-3A49FE2ECFD9C4BC9FEFD22618FE9C8A973AD072AB6F713E4DF02DCDA7AC5359B2D652013E131B76
-B3ED6C75FD53BA58D862846264627F6B9E70D8800F6D9B32242B747A67BB2B45675840D34F852AA8
-062FA6B01E31ED24DAE02F6CF788A17F7B9368175195DB0072259CCE0FFB2C1035C1D26E1777CCA3
-D56A827C3242069E76D6DD69B653768614B9ACFF16567FEA61508D51454BC02F6C60F755AEF6AFAE
-3536BBFA1823F8E1A53C41124DE983E51CEC92AEF4F99785D554488A51C20885346D1F761DA79017
-940A0C557D93F1DB6B3D00FFD61D08E96FF3AFCE5FEDF545CC9F47A2B1BB26713431D6D1E47FD6BD
-6E3C668B0368241F0EBB5FA9C991DF79890E52E83A3675EE699B61BAF869DE91F67278F510061C6F
-E41DE2D883F48CD0E068E2A652B244128D82E5CD52F35F210DDAE3054691ED55A7D99088AAE8FB04
-F525C2084AC09F5EDF80A4EFAFE981F74C0DE9D194320709B3464F3FF2C0F6AAEA6D973D9C323F53
-DE3D741F698FBF01036716BBD62957CB32CD81D3A2674560FFBC5BDC5C6E4F547E589AD0B1CFE14F
-5E17FED1C4A8ABE4E67CCF8A49F32C4C6044F1431E1CC382E7758722A6D0DF9ED23E51F8AD14D11D
-7B6428E27443715EBA4E9C05D6F238378F9498AEF0E7EE4FE6856622CC8E6ED141EE5F109E343CB6
-695C4BE1E0F66601C27975983BF557C04ACFC19227A1AD7E6C44C00529FC7EDD7F886D24B7E029B9
-C395260088BBFB96972199A7B32796D27257DE83A7402291C14FECDF7998C5C96B1EDADE0280F856
-8A8F5007852EED303969180B3329917973C2D32C080C9765B6BAB0673BC7ECFDBBFBEA980C263843
-39B7F1052591D91667D4FEE413AFC23DE2D4B9DA742F4269C6C939F5FC32A38040730A018155AD73
-3F231E4D5B9D01C03A58EAE7B5F590CCFAF25EDC8552CFC8D95C60EBAE1837D7A97CA137E9D4A4BD
-2CD34AEFD68D64B3F4F62326AC429921D7FB3C235184FE0899690A0B775F1A566EC29D5830D32372
-6526F7E7F5AFDD71B77E07613DDC4FC63EDF49051AEB59E6337AC0A4B6DD872E776C9CD0CCB86130
-5322D816732124F5978A86C186BF0A0F88E733CE38E4D7C1BA5378C5629B1EFC97806059990ED42C
-5CD183BAD7E94070E4058569DA2E51831FFE0D080301AEAB4350BA290318AEC582C78D05DD92E5AF
-B4424EA808629BC972E68F4FF2489C245593F07555CA6A2B25964794CF31CBD3AE5C229AB9B8C298
-06C01D116EBD0FF0F159ED2D3D7DFC73EAB4910BFF5B0B0B587CD9EA6E6FC45D63C09766224D8346
-1F0588140B258B1729F70BAE7962189B1554483392988CF230AF4077193E53330519394DD99BA135
-6D4730AB221DC6A66019BFAE564893DDAD7B177DADD16ADD21D396CFA6C3DC818052E2F71149FD59
-4A16DE0C2FFDD366C99B486C55A6E991E4D22CCB15843F0C3363676AF2F5B2D1B7EF66CCF2F12DC5
-0D63776BFFB058D70A9C76DCE96C754872D72C82A0C33F90D49C935402CDD26B6D743B1F43BED5D8
-B539424849C1495DAE73044E885A7D0F307F1816DF6244A6F2D97BFD4E200E93F69B08AF39EA21E6
-E347A47CEEBF803F73B978ADBFCF056789BB8E6E2563DE87DD9A8C877157B934102DCEDAC54D487A
-1BB2694F0034093C48F10A17D32E2BDD0C723CAF59ADDD1BE373AF8C9BEB4415AA5AF36310C31F24
-354A53C0B962573148BEF91D994FE3F3D8450DD4D686725799F53C373A0A3E3C060C2E1A3E800504
-9F26D716E1F381B9F83125E4683264A07E2D8938F605978E2513DD2050B3D8A1012797CBA8961632
-BED260916338A812AE751C7B657E086A0C7DDCD3BFDDFF3E48B84751925736D1310C4910FC114387
-F3ED7FE163F91895EBF55FCB425CEF5729D99BD8F2C072E36C310523E75CD8E5DE49C031C4263410
-9D56E91A46C8C8E89FD92012A00C33D0DEC52597B5C6933291A7BDC5CEDA95DCDA5600F9AE1C8250
-54E7EE1067458CCB66610704C58E4A4FC0CB5FC933D0322A716B2CD430A3AD48DAB3D4CBE9D23F2D
-092368CFC4E1F5495C133A92942EC62118D45C17723646E69407B4A89DCDFD2AB3FFC099A21D9D29
-741D68270629AA3A414FE58658DC9170C247B6E23F35C4BC5FF83009F462F2EEF4DBAC5FD158A658
-57F9B6DC1F5192DFB169DCB65621CAB2F1B07BD22F4155A8E9E2B6388D430FDE5EC1C834D22EA035
-C52E1E34482EADC36B4CAE902AAE89A7284E62B3C84B608D6BD05F75BC31310B2DD3B2C08A00E073
-7F104F03A41989D5F6B9A2C38B22F1D1803EE5D7A4D8DE44E4ABD496A1DE0C0E12C4BC96D0122846
-3F0EA9CE9509FEE987139F3DD3F9D0DF4313F555BE85433718F6D05F197C41A9D9C7A8B0D2740196
-82D49F58DD5F66B12A6520D9F226D1DF1F1B65CDFA261F980CA25A92645B86B64606293F8BFDE364
-C47D2AF2C709BBE77A70A5712F2CC26F3D66F5BE2C307A48E6F887F681D30121E32BBD87271B5DC4
-615D28C309F15AD263FB37424E56DDA6E17B998B45BE6C7FC6C28E3394A8764C9EB2DF5C06626593
-B5C665D550D4600172791CD208AE9F37BC082B0B242B0A504B751B18F4D7495172B697EE217834A8
-A4FB7CC16D6F9E8BB400BE8AEB0850960283DCE725249FCC4DE97D9886745AB6066C3E2F64DD8AB7
-9AA11667F11188D7965DC11EB760B772E282DBF13249F31986AC6898FEBFE23E3E8B8D2C33E00EA6
-FC493850ECB2E6D831D1EFCA3C2EC8EE2E394599091ED58BEDE97D7A43B6F739EB0F845EAC1DF6B1
-EBFE876009CC5D804B15ED4B56761B3CE1AF59C07B49DC798A44532297AD73D5101ED47F36A3678F
-818297CC27F6AAA2AACCC9AA9B6F5459911D8C56CF499E390AE607F3790450B2B9C9BE0F006EDA0C
-715B5CA0481734CFB0597478E7602B0D2C1E4F78F03C68C17C70E4B42D7D2D3C95CF40F73488B371
-8E2CB05A549944D86944D78724E266C3319AF89AE430E777E95F0D792B1C654306E421F3D63A26B2
-1E74B6E8B21B2E2B9DC596D013CDA16D08E65E8F24A84B12B2BADC653E6E1110DE2E709C1C1BED13
-707B70A421B384F20CA7A9A9D20324DD383F28B2D3C7A9C53F5D4C6B7C378D26DF11CF55238BE1B2
-4FA70DCC178DAD3D35670FE4919085EB1CD905971D76A368FDFCF9D2F0A23739851A3A6D2E02D65D
-54DEE69ED5D81315D3EA5E356F94EF256DD267FD1E1A9EDC9CD63E743F299BCC4A4506233B8DD765
-2CA067F741603F93250C087D368F9E9CC4CC1A6DED567487C05BAA992B0056A77F630A72008E3946
-15A9DB24FE56A956650EC9DE90A6C2259189440247970541CA198748928215C0E132A81AA13208D8
-63C1FE817F70CA573B54577D10B73100AF8EA088208A44FB92ACA314AE5879706180788C17BB1D0B
-81B6B95A1C4E0F9EA66F9B39BFE12444A6446691A7BDB03E0F03D9F07A10A7598F2166F108529F34
-CD90E601FFED3479ABCFCBDE8F051C348E48C61D95B00C59EA1287423F05666C3D36288844067E83
-E14F6B5210842C742B89F13ACD126B9FC50ABE2CA7D7ED513D43B6AC7F41EEDA416BFFFCC5C844AB
-2D23D4DC09B2D510504CE98D02E72020D9E669DDAA344C63A1B75632F912A1C0DA3885DA4AF7E243
-E4A4C6493D6595BB6D56B0359106957259E59E336BAAF35BD1CEC5CDE735272EBCCAE8D4904AEBD2
-B32610C6FEA2B69941D6542ECB44D71092A3CF067708A3D087AE99FF29671AB7DD8758759B971A08
-AE1BAD78270D2FBEE37AA2DCB119D72F6C7B0C8509018A70D0B0BE2C6830EF8E0B24B1CE1141EF87
-3A4D7DCC501F808BFD94E4DC0F2915AA023076BCC8006490A43685EA25AAFC187302EBDE7FE1965A
-04A5A398985D29F08E085127B56B057334D88EB638A4DDE64AFD204974C3939536B1B66A54B4DB81
-151853915718F70813F096CC1B0EA25E363B49264C2AD17158A4489F91453FBEDBDE15D7B74D7F98
-E81DF23251785D58295BA297F295AA6248A912CDD4F1111E6B628EECBB5139709E76EA4AB743CEC8
-26621D08E6BC64691CC90B3C3C1778931A28D3D5B1E20E96C643316613FC487C9B604C43463FA453
-3BCA1236286E6F5A6EEB2F1D9C34BDDE4595495A365F88055D9268541CF1654ACF478D384A5496A8
-772EA1402751A093582A6625A0A44816B5FDBE166835D598644296249B92CC90AA3FD6445C9A19BF
-27F59CB0616C7306070F33C7DF4E1DE64AC8C5BB2FFAC1EF2B1B30E5A0275E6004CF64BBE2C6710E
-DCFC3AA4ADD60106334708862FFA6652825BC84842736E47AE6917180365C75B27505EED3C6108E9
-898A780E20C3F606A860229AC46D0471ACA0187D6D539A1B8820F620F72B41AD1D3BF3834BF48CA2
-AFEA8BF535AF74C4562DEADCB63D2F5C7585722B77C989342D190FF926C8A5263B4F25286F99CF6F
-C62EE6E2AD61C82B29D82468AC10FD27764278E5558CE8B41BA111CB2F040914451A480C93084237
-CAC8F66BB7C6689F340B8ABF0150E06D5B1177278A4C08742FE22F42C28680F190900344ADFA486D
-59718C25D37275BCE4DF981AAC35D2C7E85C72A0188B8953CFA516FD545AEE0BF4B8BA301CFDE214
-4241FBDF3D204E3D2823301572E23F204C97305A82401660E12926EE7BA6EA1A81FF5C007933AFC7
-3266FAC4C134ED818A48E7DA01C71A46335C845F9DA5E960B25339D551582B375814148D94CFB781
-FC56093827B78578A73D4FF67B6B87F40CFA5E3F4325D9108CDB64BD06427B88C84105187316FA29
-90B4E3E8EDB6C78ABF164F4A9717D523794B2FE772A04DABBE688CCA977090979B5F47CEB90A1DBC
-167D305EAB231C9F4260C4AD10889CB785169902FC0BED78DA15B8417453BB65856EA0BEA5245BA0
-573F623D215F6C0CF801851C305B355D26B52B0B343645FE25C78A3526841EDA480919A1BBE5F56F
-C10ABEAA3E1FCCA7C43EE560F067F1AA2AFD642F769D1ACE8E2AAAF38850F0D757CD808C921D716E
-96FBC07DA7860DFA70CEAE2888C0ED3CBF9586443532B68DAED9A926655C157A416C383A53D8F283
-2A4E67468112A09ADC837ED8EC95F70852921F50D4417239FC42EE3624CA97F682745CC5E76CC7C6
-7BD99F2180F8C0B7FB49539C8CC474C25C0DDE491671FF329E51BCFA779346D4686835A3AD6633FC
-B5E0F67E0CA9CED8F215BEF4D240453EB2EDD6ADB22278AA5B985FA140C9834D38753DF2014F8C0E
-E6DAD19E8FC54C03C1F6CB0F858986691D99592562CAD95FA0A5B2ABE4A8B54B457D42E8C33A2D19
-51C0419A72FB94FDA78ECD92BD2A1416459E9DECA9469F35E4C47DB531726DEE8F203D7042EDB32F
-025DF3D582547BB1D45F7A5B70D317DF4EBB16E36B0D798E0932FD2A85B04FD67143E4B287A50416
-2C1F5A037CCD780088C5476385AF8168E12D97D44B0630621759173C8F1E3006B5B1C6D7138B7EEF
-C3CC5F54E24B2C3CA7B41AACFD25E554880AAF406EA4C3C6E21D3B550B040FB1952598A7E8E6488F
-E38288B2AEB6C4718338598A2BFE4D2B9D14C65732DA304C16FF3E1F8F03046EF095B65FD609DA87
-EC24A69278BFE65C905CD0329F6A486B8525B7EEA4F7AE56C2633CD83543269E8ACD6D71F500D82F
-DFBDE7F7F7B1AEE67328549232E26CA55085B6E84D9E2E7F74068F93A90C4654F2F396E57C5F76F7
-E61CBBE523DBFBA6E76638BBA3064DA025A79E3A294FE7F1CC28A3B4C57DD6FDC48E541A85534B25
-E1BC11B4F78019457239EAEFD4BE9007D205F1D985F389DB22400B279C10948551A6B4A17FBDA0FF
-C9428B18B43DC76EFB15FC2182216F1B60B4E344A03AD6C00F141EF99F89F24C819C3E32877A927D
-84C2D006940F39CA8B71E5951673EA9BFD1749923219DE38929ECAA9CE43B06CFA7DA1BBEDFDA56C
-61FF6C24F40E59B13870D5FDEB82D981154FAE5D6D5152DE69339359461A41A9713B6BBE47E868C9
-33CD74C75DB71D13BAE4DEC85E02FAA14EAD6C0A253B16C79514657B15E68CCFF9EE6AA385CFF9E2
-C53D9AE40F85C793E4E8FF50B2B7420F4FE69807BC5F37C3E300E6B3C3549D1D3246A2E70F091054
-1135BDF805E0A698E236B6496702D061241687B7B8D1A0E517DF0476DA09D89667A7AB375FD2672D
-CBAB8124E511502DDBD08BA04D941DF1CEBDCCF7ED48405CBCC33774A68C5212FC6F132641FF413C
-984F8B43BDFD7B1A2A3435F15AF07EF4970D3E4A0BB947C181E9CA27CC14A35BD1BD096875B45873
-8CA244F88C28728B74E25CB8C4FC1095A56CA75E4569AD3082EF194ADD11350DB3B74B96761D4538
-596FF7243B1E1B724716A144106E080D42036444FD472998460CE9ABBD05B42AF9389AC452BDBBA3
-A13A96890025789F16B9D92251FD3B3BEB2C61EDDB370A20456E3BFE5F4039E2557C451C524F8087
-015BAF3FF05F51869FB97512968BDB2B49589C1C7AF1E085250A47657465F480B7023E24C76731AC
-0EAB6704123D77977D3A2C4C56B691346EBE589C619C04515D34F81FC6A17527D5D8319013C5D4FF
-27CC3925E24C99231AC7FB9EAF0BBA482D3B75807AC85D03CD09DE5D9AE0B07B7A813F0449786500
-0AE8A7E00080300F0AB8C399057EDDBA273DD2E1B2A0DCEFAD3B332E6D4AC1FFAD846167DFD70E03
-46DAF84AF292D4F424256ED5AC4E104F80697050D50844A708EAC9E7F7784FD01646F3BD0C595CA5
-1EE6BD607D254E78ADDC5E15C3B6AC4940EC865A5C23105B6BE09EA09F2C05D6D76960A843B81EE4
-33977FAAC3CBDA85CDD2F4DB7C28293A77825635992AF8F3B38B4480D9A139B1662345A8ABE1634A
-77496C3F57597D2985E9E54717AB2E99CA35789441BCDDEDE9A9E2106B401D9684ADBEFE40D607F0
-75C179E9CC03E59E65430DB70B441D43DF03F2AA6FF06F224B6E455B01C64FB89EEC9103E48453A9
-749B4D602808C7E408A8903091D85E06AAF635D0D529C3CDD1B8479AC0F4208C284BB678A547F2BD
-77BB17C86D4560434F7AD1937760A6AA55B614CFA9FF8C9C96561AE6C8F2121C4E20237428BC51DF
-2099B6C49E3EFA18E6D439E6E6981E746EBB1DC461259D8EA0F8099C47CCA27B2D982B72C9A07CF2
-1B3C05D6E26E6E286E348B8944078E24809F9C5F3D014B4CBA02533F5621BFBA1F0EDB776C634746
-703C9F73BA89B1960A496420C68F54E5B901A6D733D7ACC79F275FFFB253F389AA480084468BB34D
-A1E797E43B7F6E8CAF5E8C93069A3A2730E57EC39B677BB73E3F07C2055599F7062E53B37A5F0099
-907D2ED87FF7A82C95FBAEB888033BDFD67BA3A6031A4CDC56CB1E4CF5B06B46E16D988BECCEFACB
-9E1C037023D7BF5CCF5D65AA66A17AB361BE7981F132A578F3ABFB97960A6034F052D9D5AFDC0679
-782EC90F240F943A5F9A3D969ED7399254FF67D89DF668F7C56FCEA1FFDCF20481474AC8495D3AF4
-B6D7EE093E369C057F0B70858220693B398ACF8E8143558132E4391405E30A73937C53402E459F4A
-A3539CF7A99A3F51C0307D045DF8B77757E92EA2F51BF0BB4F77D3904DD355665870C2B59F1ED7F8
-4FC71FDD7F0B6C5D3182DB77827CA6A2060D2B8C83C4EA4A432EF43A4D0A952CC6CBBE52A9F0CD66
-1A538973DE41FFE9C5CF55F2506B9EFEE51FBAE5E63BDCF5528499A47C031163C88D3022606784DE
-2F46A9C9235AEE3D4F71D4959B0CFDC5B7E78C8C0A8F9DC99440C2263DBACB343C5C648577F5610B
-50EAB1CF7FD02419EF3941C7CA0B0E64EBAD4B2CB05A0793DBC38F1946D44767BD287F5E9779C611
-CA0DAAA1E7393DBE0683C8D3455CDFEBC0E64B54B737E298DDA605227C0C4BBA87AA3EC7FA6EBAEC
-39E6EF2537D5974391D31739D9FC42983D81AEE44711C823F35F8E2321AC74943871739D2DBE9748
-FE68592263E7713F27E0D49B9B5CB7A4E55DE54E6B800D15856450FFD3AE5F287B12AE4F438B20AE
-9E27E6CAA00F3EAEADBE08432684FDF9931E925544A680182602A3C1997DE5D0630BD5A010535E66
-E1C123013D23966B3545C7431C39B97295BFA4099D14461004C42C85095EEACB9B47C593BC6DB863
-533A8619BAE09095DE8ECA432D4DDD49AA600D277E75DC3F5C6631E2A05382CB007825FADB77438D
-CFA78E252D79B6A196D5164C2FEB85D75ECA25FF80B1D97FE10E87960CA0FC47C41D3A213BF141B4
-8BC3AAA93FA86245064668394665BFD52D12C3BE4CE39EFD8111754398A944C3FD1AFA98EC337BAA
-AF899D35E804CF416AD7FE45FFF13FC6354007501043F98FE8428DE8013901BA6A28711A2CA85A27
-0BB135B72F1D5026E8217581860729E94F2F1878A0E96C59E9F62714FB5F8F25003DFC7347E99007
-8A9A331CB3A6A535BC61866F02513DEB982C4A13ADBFBAC3FF70A7335F40D5489E48E5EDEDEF1619
-1973D932479C62183B0E25EE8C4F76D4F1AE45DAEA4A12AEDD9EF81D248E8D19F8C8A5BECDD1EA1E
-98783EB7A38149170851B1942C96C53DE06DEF80913BFC04E539EC67C110498D15B78268853E5C72
-F485F8A27B768569E54241F6115875E2973292CF48FF91D45EBED627AE9F0766D22201B20AFDD40E
-5B17CF337F2999E0BD15B86E46EB3C18FC12B7DCADCF9DD50C6C7E3F37E615A892DB3F57E250A072
-A49F7277DD6A2C8042698233D35A699B17ECA5DBDA6D250ED4A16FCC893BF0DC2E33FB1EBD7DEDEA
-3C1C39603C8B7E1A5A833A8FCDD5570BD088749BB232615366687962C7E56ED089CD7B092505CAFA
-5A80F503C4CF337F07ADF0D106937E25670839D491F7BFF7A523DB609D126328C16113ECBCBF9C40
-04904427A108618AE5D4ED809F8CCAF72251104C94EC5BEE21F91B179D31DBA79CEEE5EC7FF698EB
-84AB1D2D1A624F58B3622A78844CE51498B2CEF38EAFE259D22C7BA61104651A862008BC1DDDA58C
-C45F663EB26428DAA85E7785363A69D2790996EF5D9621D53042F42F794962FEA46E46F37B8AD1FB
-76FC8D5CF2146843F8CC625139C75FB42DDA71A752BAC48F294E4C0C8289FC46DA5EFD9C91BDA6D0
-27518B7E81E8B21F755A9615627D5812ACA674D1527A1185EED4E3C628196E7D0759B1CAE6B9B7E9
-01E9599A65230F1EE469CD33B9BD9C104C44E3C1AB966C9678BD0AD78111A4E0F2D07A01A038CEDE
-7036D0534D684A1562A17AD64A00F279200C0371B1CBA61747671D2A21D3F9646CA290F6B82418A9
-6FA177C6278277504B7FBA936325F5FA124AB018A15DC18D2C5E8F93CDEEA52BEEDB78A57828D81A
-3E6C38B9FAF3DC4EB7273ECE3EA4482A1C6242A335862C2C3717F9C9ED95F77B140C4E1569B2192F
-C7DCF702D0BC9A50428EC406F8BD0CAF886B4D979320D3E429816D88F7C7146D960AC12E70F2CB7A
-9F4E3E366665AB3F1B4B6440F55EEA26DC9EE0096BB7763731740A537766490C8C174723BF0EB40C
-53701AAD12B21D436ADCE22203C1053A9DC4E9F17AE617888C4B4E6F3A720E4E6366BA628221A387
-D8AB15E04AD69387C310D3528BD2FAA5B22BFF3FA494F5FBFAC4F771C9C7402B95580C5AC4BB3AF6
-92A70CB2C851FA5CF1173EEC3EC29B5A05A0B728BBBB51D3B7AD8B0AF17A1563E82FAFD93F8B7118
-1FB7AFE352874F4EC6D334AB6747519AB8E847B7BCED33EB5458A828E074E74BA621BDCD03FEA604
-7F7B6ABDA01FC7514BA1AFF0D4D0C0CB8F4E42D5A87E395D9ACDD02CCC220C157153422018725846
-009A3ACD8C8CDDB66BC6836B4026FD9F526AA275D06C813179E5924F26A25094E7BDA8BD26AFC4CE
-B41D8964D4FC4AF1DFB0595BC5D6714C32F15DC7194E9A3A73013C45D8FA55CC0550A12D9AAE8E9F
-F199FA28EFC2426D8D1DEFB93A65717AF3EA8E2D5B4AA8EF0EF38E9600F7D4E7D9F1D67A2E63ECE4
-789FA74B159BFE2F91C19B0378BA52E93DF12830D99553B6618645E26126842AB70262D96E35E5E7
-50ECA0CE3458B3E51BEE2F21191136DFDBCA39BDC07939E521E4F492F392DEBD029C1EA237BD89AF
-76BC89F618D530160AB16269FA6B693CF14BDC4EC7C630025703C5337F61458FA09104EB15C7CB20
-AA4C9BDB7CEF3A09F25BC7F3149951A7CD75372993B80CD2112F7674CEFD6AFA764AA3486730D2C1
-897A264D82A91709FEC4A21E30D812F558451804EE6F3DEE2C4C437846BCBDA07C5B6CBA1D94AF02
-9163B7383CAC6E088AB1DC14ED3743EE77E26EA7AD3119A76C0B5F925C4DE305CD7BB3A09A453947
-5B9BD79BE28FC462D8718CE05F9D94CAF3387BA55E6E447BF81A9EDDD3A34E17BE66BC52B0C0BB6F
-86F6F008829173816D205182ED2ECED319864A796AB65D4E3950288BADA94FA32B6F453AFDFC6C39
-A4FCFE60353A64627E2057D4B379D3240012B3BB0ED0C7876CB83C1BA5EFB6E2A03F340C2B576731
-F848F762A7E1CCAF267EE06D621BC33FC245D0E1547ADC12CC0EB58B26BABDB8EAE9CBFBAB93836F
-FF22BDA1831DD01B7346AD377AA298D84628BF1C07433284B0A90FC89F5AEB2651BA2CEA405D4F52
-DDC0E74B871D43F71EB4ACE0D2B401F9348EAC3A2EF0AD295036BF6CF6F870D58E00B619D50EA7DD
-77BC28DEF91D805CD527DCBCFDC16C042BF9B874E3B1567EBA4C1E70744B9E7E5BD1FDA6A5FF6E10
-1613FBE58DC46CFAC1A65ADAF65E49757E9304E2AC9A91E0588600C709A61D4231730073A36D473F
-518A145E141D0A5A494441B9EA99AC23F60F54F8127B477E1CE698BB4129B4B1DFEEDF10D9E665C2
-47A62F112F5CA30B0AE5DBF3E495FF06EB28EB438CE8AAAD84D5F50FB56A3AF002C23BCF66ABC270
-7AC233FC0F2723DB99D2CFE7D3B3667732A531F5DC315CE74EDB9050BF75D29E6430F57CB6778B2A
-CBD57DFCEF896E6766C8FC5C9F9FBD701CD62CACF33EE0FC95E78DADD205B5F42CC63024624BAA0A
-B4DD447832B4E1DBA77BDFADD223989F8E958C8D759AAA37930664C6EFEC708116248A2A7AF3D656
-DDEAFD009B7F5333854608E67E5E588A857167ADF9225CF6C641F5E19C3E08678A281199EDDAC831
-B57223B1BEEADFDCBC8F6F25D32FCA2336C808162E8F381656E847FB6CB13969572425AA05AC830C
-33DE6E030F86A3A85D2A66A77F103C7042C97205526DC882EA9A00EB8BD5519847EB424C15F808A9
-1652A6CC89B66A5731126DEBADE123C63D88A2E550FACDEB3886FF98646000C64B3A91078012CA30
-904B71737CEF6BECABD43DD702880538F5A70085E6CC6015D2163681067C3D513A8C66032C34A0FE
-17A58AD4BC97CA69BF41F11D5E910FDFE9729652D3EA21F8DD8CC19160A8FC77573B1E9CEF4E790A
-79D8AD6723B6804E9616466C935303E063DEE29CAA6C3BAEBF278B818C2EC2F13ED645AB452397BF
-00DB8B26E115026E256746CD0C78A959364FDE6DEDDCD0F441A61A1EBA32C7BC172BB09512148D1E
-BAC9E791B7D51B71CAD2DC9B83B2F99B3726607D9CBE58B499A13753CE87FCDCE21C0AD0528ED0EF
-B9B2C927F57C78C626248AA2B835A0791244C5896686A66173EC9F802C4C633A42B086334D2A4878
-0E53D00809247BE64E529F96AD2F8B3922A6097D414DDE1EC76F9552F9B8D58B8E34F359AD792B2B
-E50C26DB05035E7497162E7C49C38D3CD9B98D620AA67492BE5AFCA3A81A7080185C7F0B5105223F
-1FA77805502A2E8C5FEEA27699858D84A95842C5F2FB68686D59FE24091FCDDE139B6463BC6C7B1E
-0E90D20A83651AF00C85797BB9F53ECEC1675C7EE636D0D9E77DBD8F89670F855EE4D4800FF3F695
-0EFF09BBF8A0DAF6B8242840CFA5BA73BEB95115F4A78BCC02D85ECCE0C0F2EF6F328AD1DD6CC049
-5A3315B414A4D61DA50DA46D7ACCEFF6EE56451805D26B0359AF193531F95F6589CEAD6FA041AF15
-3067F88A0A2FECD135C56682DB2B45A71D1FA737C064EE9A4F404BB72A70B3AF0330359393247EC7
-81512482579865240A23CD8479F21C2C44A119EBC4E81B308DD8AA86E60C3DD8ADA50E0DFE8308EB
-1A7F201EDE8DCFDA405AEFB47E0E6CA7DDB376DCB21D37F7ACC4D3E9F26B03A8DE0E8940CA3A9E75
-963A389DF8038D2C486072F61C0CEAF500753C7A6352B1CD0338D9212B42A4D3DA23D5BDF44C27C9
-4B88A415A3242FFE2E1B332477A21D2B9CE075EE479C6E657A4D8874A8C53964229310E01ED4F3C6
-86FEF5258EDF3B464DD6FFD7F1CAF473BBE722D60FB14AB4918E93878A8AE4773930B8CEE110F476
-7F42A52D9304C55BE12846C911A10AB9B2E036BF9DFD597F5348D42233315FA80D0F563C388BC253
-2103F05E90DBF1923F229F980A2F4585C7A373511372D07DCBACA583099EA972C03E5AA67E663882
-6DB134564DB993CEEB6E7A6659C7C5C05C310267D5F8A24EEC2D5CC3E3F3C808E6D6068D1A57646B
-37FABD98ECB7BAF99E7D9AC4414A491A73CA34C52F394352F6B5A15F0FC4D88622DAC694699C2464
-84ADAC3B1D366AFEDE2A2CD2042C90516A666A19A91C80248B11224BEDDF1A320E230739E755D098
-B6A67315535F4C187CFA67ED817A035056353FC859BF286317996FFFB478A2248B908FF12ABDE705
-402224A3EE5F463DD3D243875C84E02DB968ECA1CC52C75171EA50D6A88CA91327A7AA5795019F36
-C0A19C093A1C9D3723C7568F9D41F2E4FFB712FD47F897703D7A620B586B81936C84AAED61D84332
-B3BEBC4F95B796B93EF7A1F565C494F8A65EDB21E2EE18DC025522EF8E599887CA2836069CDDD889
-88E5862977B7472584303198CCE97EF9F9E1446D1F1F5ED1CFC666A8A0C3A03E1792EFB60A9B4065
-49E0DEDF6ACCDBD98742568B4735A747D8E5DE21E630125AE0C691D054E42199C15B1F80CAFA6E7B
-B2005F374A9A5F9900ABB7409CCD50C3AFCCAB1214E6A856F7C7EBA89BC3291801E1343DA9DAD2C6
-ED075C8ECA1423B43E587AEC67E6145272814B3F191B3C285639F9E2D6E148A02DC2CBC0E054D629
-5CD05DBAC1950400A9189316F0265B86A732D302C5BEE8ED233768F237C62600CBAAFF3A110D5EFB
-6CC7CA3B92D965CA7C5E8D3E64ECF239FE2507FC797FDBE54C1112B28D4DA44C60AB09D994C5BA78
-D663A2591934CC052BC70CD1DCA3325C66C9CB982E2039F5DB70C848D3DCEF655B1C2CD0CEC8865F
-E8E1C0A267BE4F707ECE6F5A3DFCA3CC1EDF92C760439F51AA69A4C1801E96CA4D6EA4AD980258F3
-D15C893913ABCE09101984C61B91D603053E49A97CB82FBA707DAE8AF1D579FD69C8481CB7B712CB
-CDDB4D287BE995E32C02B399602A08B9DD849039B5673F1930BEC7BF366EB082D2CA5DB2385C8CC4
-5BE3FC0E31820191A814EBA7C4F23B1938E6C4D800732787CD2CB97F762DFC85D4B798809B5F2254
-D826CA42B32695428D120298B44CF38494E56240B75DF1E41E46E53C44DC505452256DFEC819408D
-605FF14D6C1F3F152F2FEA96EA0AB3B472D8704E06BE9F8C3E8395CAADD06D6DA033E81ADE5DC3B8
-3DAFF743C6E9E48716003D358DF63CD7FD3E2F727D1F2D0C29962F76D5C95ED44B6F08D052025A66
-5785F264A3D5F5593677B630E628B5EA81FB37CFFD7A30B7FAD226B6FDC82B0878AF4C0EC4F4243A
-807B9839EA62BCBDF7C2E9B30A623876E632E084EBF4A21EDA04FC88A1C07021D0C72EC3E969D449
-FEB08E5826EC20E55B21EA71EA59F6E3B0710B0DDAB3261B4A2029ECAB68C19ADD5174E55D5E984A
-4E5F38F592A302FEE6ECE732DDE841A28672C620CC5D687455A5C06FA9FE688394A04F96312ED025
-B7AA6FBCE2925F3AE559CC1886BEECDB70822E2E5CA3F732A87404B1536AAC469989E9610CFA440A
-CE43875A70CA51F36CB6F629D9424C1E35A88F92D5DA3CD8CBAE6E8425A36968E21F4F30349749E0
-205BFF8D552837D6FC39532525370BBAC833F75F1854C93FC533A4AA53ADF7008173A70D94A4EBF5
-38EA9E62BCDA7C20E0A073BEE2EFAC34D2EF1D03BABD5147659E50B557045B2EB89DB303749B04D3
-F54B43FED612FCC68206E001A7AFE90230D9C12F74A32C7EDB5D0241DC3A5D51481FD7C8FAE08FEE
-263FBCED7C7D911B3A303C835AF5FADFD218F61A9D6DE80485ABCA88200047B094441F7767B97A24
-E8C612590FA2407BAB1E8B56C71914EEF2355DD97CFAFCC192BC06FCE063D3D9D1A629AADC75E3BF
-207234C208E7E30663EDD691043065C9CBC473D97C6D4DD3DFF59D6A9ABCDD4412C3128F603160AA
-D8F81C6E7A4DCAF35F3A99B4EA10A34375B477C2BF846521A7EABD4D28078E9340452A198F3F5ACC
-3DB7E3908939FF6E3709C6A3FD9889439A4AE3E10B618CC92E14B68429A3AD2C80940A1079452EC2
-66F254657BE7D79A2A24084AF73F6DF71FBCD32BF6913A3FAB25F977787F7BB0C3A3E8BAB38D7A2D
-B0B4826950643DD1E03BD7DD1FB149A33862A89226B7CB454DAF613128C2075470E42E70A9444A8E
-6ECA526345AB48E6F5160BA23B5BDDFDA6049EC44ED1461C7E0DD514B16E2FB285F72039DE3C7982
-EFD40D7F6C8E8F4CF35AC71B467BFC578002E8D2239A2FD2C4BCCDD8AF3D7DB1F4AE7F2D2E0811DF
-9D0155BA6EDE50B5F052F14F6AB884FFF244D8806C07EBCB49ED22D85DF696995991A954AA97A1EC
-D86ACD76E061B7541E87997FEF0657A826BD88EF3A4A5920462C6595E7A156F453291CA044CED810
-860C3B0149BCE73BECA713040664AD0591304106129600AF71317B0D2907839CEAC99515D357E980
-B1937B6E1200AACADA205421001F1B2F91753E80D2263C56AA164A74701A8D5FD28E46480B0DD963
-A683A1F355D7FB4463C7347C94EA5E2CA40B60B56297CB22D972C5BB10E56715A955605256C1541D
-9F3BC5768A6F355CD3B863F0FA1A781EDB49368F51B29481CBB41D4AEB07AF9DBE8F52C5D0FF75F7
-FB6431D37D6AED84D78C778871CB0F715B4F07580F23B586C969C81B471FF6A6C7276F7E141E02A8
-584D4B9AB00E7BD643D2C3FAAA299B1F1E25048461952EA42D4882768A70DE46B213A287F8D31AC4
-6D5436F22A796C05D1FE50A9BC2A928066627A0D87DD57A3AD91DB446404B41557D1457873482005
-EA20916BBE46C613F456C849D46BA79D20627B446B2F49E3FA309AE14F8C420CFD94922CBC0FB9D3
-5A0F7DBEF577F1849A1A80E0011DA8AC082A8C6F61658E65AD177ABDF23EE17C8CF0D26B9FA3A6E9
-4837EB9E930336889767A8D7EA3CE980A8EA95528B004957BE6067CD9BD8E02A0F23CC1762CCA656
-D33412FF45E917FD4A03EB6E8C1F43FDB0A8965A33B4FD26BC24A20B304CA817E88495BA9B361A3E
-933717FFB0271F7F70C5D3CBA1E86D0F51BF3ABA194DAF32C35C796627D00C7B2271ACE2463E37E9
-7B3C826CF3DB60028F240F9452CBE08F7EBCC5FDB1BCBB3C327A9F450B9E5671916101D6E3E5E458
-CA31F04D12F592F83BADA2C3683D3886AA3B403963AB5DBE220FEC00037A745839F67A3635DFD3BF
-F08F367482962DED88ECF6322852D643A54D5D303EB04BFDDEE9BBA1EBCCBA7C653B3A613A8E719A
-DEBE3CE1BD7E754E5F4977E863E3C2D388A65227B451D4F3A4F94E06513CBA4AC1F2F511613FF035
-611684CCC461599000E546E4D972CA6960E095A526E4735A23421A4C9B597ECE08AFA2753592BD16
-DED93255A1E33DEECE3C5EB77B94670E8137F2A4A4B98AC193258E7DEA5DB8408A806188F2D1DDC4
-40CCF0E9A6E2F0C78FDBD7B68DD4939D2458C1965BF8BED4564B32462FFF3EC892C03B11D3EA813F
-AB4CFBE8D3016329C5B7E3DFED0F08284D44AA0B7A2F6BC96EA4503E8EF52A64C22BED6B452581AE
-8FF8917D53976471941A9116A2D878FB2541B561767ABD4E31CCD8A590CA03494C62AFFD64EA0A1B
-C779173DAD84999C7A8D844EB1259DE7BB5B25CD023537A474A524EBE4660B22568949E624D8FEA0
-AD37F4CE1EC75955EEFA49C6BF1803BE87E9C9865FF3F6B8525B8C15FE8835CA153D27E6C0FF0CA5
-1029A7A9185D25F0F14D86FC797DCC1F99EE97E2054B9C2A2E06FDBEB8DEF6CDD368BF23A858D9F8
-C1DEFDCEAF1B4A8DE5EAFC604CECCF0D285BE00AA912EAB66EFF4D37AD2EFE34853BBFD87CE09B18
-749B489943EECAE7887B006FB827D10191DAD18466CD1F86505879310A8B171F902EA0C26A388E13
-B53C700272CEE2BFB47ACB58247C13449C6BB9D01232C32517358F1A3DE064D43C18F8827D53789C
-CF3CE2EBE78949A6ABFA1A6B8414CE360A5E22AFB7D1DCE6F5A06182C3B984B4F9BB1A905A9D5A14
-83750A1DE0A857CD5C06945EB7D4A2A6BF1237F32A154FDC06D51A703D44FE052FD3C53E9E8F417B
-35D1C851F9203A8997521529F21AD8498F96930AA77EBAF82EE02A57BC77C792D9F220294B45F48E
-A8FD94E01CD25645D36D168923562F3FDC93CB79DD4760DA0C103C2675722D7A1B79FCB4245ED12F
-A0DB52492C9CCE58B333CFEE822812F7DCA68E802C451B5CFAEBAC608B950386B6C58239D1C62D62
-4DD5D15782FC552222CCA06DDF387B373E32C3C2864C63C768350C37283760F3515A5B0AFD66C48A
-B522EB3E808C061F5CD6BD96CD18C9839D30508E7D4EDB88E8F11E31E10919B16B7971F06D7877A0
-58D8A4944C84FC6CAEDF3341B48B6E0D3C7B85D710E0C35F5B5053CF4B4798B3778CC28B2DC7AE0D
-F3A49F9F3BCD8E95D746C35C3F47D68B8AA35D97AA08E711B5FBE70D1A623C82541EBDC51A827D0A
-69E6C049087AD26F256EB7577F58CCFFBCCBA5A95D093DC29464C9A38DE95BC6B1853963B2DEB0B5
-7AD1248D6F1625E115EEB9510B5772AAE4E3C866657DB0B3BF0E0AC345E116F8D4976B770876FFE3
-748C36165522991F46A36F193DD1A1C94713673C7E4C81582391B636C72DE94CE6254374F99B623E
-5686C13D8A8322E83E11BB0B0A896C6A8C2C4F756C5385CD7017F26D23F7C3EE97372C868C8C9155
-81723BB6B76B4C3CE8998E4FA6CA40B633DFDAA59BA902A4952DA90EC4FC3CF0F2676ACFA7F76F78
-236FA2DE10FD3545357215246BB7E527F277C28B353CC6D79DCEF21BCC8F77603CDD58A2CCDDBE3A
-9802F941CED8E035313875319548C41992A2BE939A17CC109426E33825AE59BCD17CB19F50D972FF
-CBE7D9B4B0BB095303D9DC9D406696C2508D6CE99E11CF00F6461147E97449ED5F486D480A86D3A7
-ACECB7E9A945984724EFC21C5079B1FD03ED803C2DEAFCE3327D2D7827715FD65D9506216C88B0FA
-26935E95C64114A51919D419038B1A7E9C1E829FBFB53275093752DF19891A97F3CBF7719C1FD6CB
-17019A6D2D25360ECA804C4B35172662CC4769D2B785C6C87E5A4ECCE31704E59F71263B7C3CAEC8
-ACB4C7426EC25F11A0042323EE6C3EEB04284DBAE2C770BC419DCE79BD4560AEA41571C3B595F525
-60191DC7A8FBF63D413A77A0905E517441B16C2B501EA2F9E99CC38D052679F288FDF1894542E3A6
-6989A0090185EB2E75134BFA3D9147C3DB8A621D9D35E37786853779E157B47F71626D6B3E633005
-9159C17596C1B87FE2B4FF47ED9D78FA4C2160077276C8B58CEF5DC030B4A5D83CF257096C047FE6
-4DE307C598B815058E72D5F57DF5C369E664E137DE29349E2F9DCD8C9F4EBA6E765B6327D7A20DFC
-B20711273FD8091CBA605C4C494248076F7E03DF65A6A50164980BBBB708741E5BF6056E6F996DC0
-7FFF408C5B8EAB8DCEC315E92873228C805D4440A6470E3EE3983758DD211C9CECDBFAA4C9300CBA
-00608A4B2404A3C7AF017A3B7E67F39F0B51ACF950D3E75CC7BC2B8D3480202FA958E8EE0B240501
-5232EE0D264C7CA02C18CA45CB3C2DE322D3EB7F00F9455DB6C5B1F4E59C3E95520EC36D7D903CBB
-625D70B54BF6F8255E412604BBB29FEE026CC660577F91DB1DB4A613EEEFB20CF7AE3CD89D565AC8
-38416B01B5DE4FFA5550D17FB51FBBEBE21CF1D56038863EE931B90DEC2E211ED42BA92EC244D4CE
-2C4EC5CA87A026992772DC2AF754FC982B94F36EA7B7BF75E0ECE90CBB2A6AA1A012E8898BD679C2
-3CB3827C35D5D02F0569C7AA82615D4AA67518ECF668D3B57D6EF1A8013424AC2268BA0D9A74D588
-79EDCF6382A89D397864940303EAEC45A38304BA8B1CB198967AE23EB81054BE74B16909A405E8A7
-799CEE3C270FE2A6DC50BD7370B6B2C8FDB9A87D88D5D40348D3984E39C693B6F4486D994778607A
-80A3122872DD65E40492107C71C3CF708A9717E9EEFAFBDDC239C53AA9645B711038E59C8B861B37
-411AB2039BEDF9CFD00F08D9C5D76154427FF5DD39878CECC5D7BFB3F1F035087185C0981F3C2139
-BE84872FFAD3408531C4EA9387B89F5E3EC779E8850D50992DFDCF9132BC551E985943B07618AC10
-D1150451F0844C0DC41D6E17EB508DC8689EC726400D5A7F6FEB3CC7BCE05F09228B7CB2C5393664
-D8DD9A4B96B1020EF25D70AA2D91CAE93AFB5F2BF0AA18CA5C599FA1A708EF35BF8F7FFEC9AFC1F2
-42870D028B2B1459063B493943EF1283829783E1010242E5CF4DA39D93D506F3892936E7D6CF1124
-70A521D397438733D053944CFF12D6FFAE8246F20618684F263715AA98E15D72A526383E05C23214
-B78338E5B476F0981D90056E6E5D0DB66B1DF2298E597B2ABE1D817E18BEB056E65EDB4234342D96
-00470B1420C9210419D834E431B82F58608C87AC361A02D0F1FE4B470A3D71E0D21BB87E1023D428
-E23D596CB9E1A2184403A16E36E644BCCF9BBDE27290485057E62827283E7380AF786BF395B3961B
-A5EA469C315763FA59E0F176EF81985F38B882DE56A74D128E256D1B89939728E55A92ABA21A6B78
-44FAC1BA7BBDD8B34A18194A2984B000380FE9F672E83EFDBF276FE797A325815B0F25CC95C97A9D
-ACF56D583486305D7C9E51A7E337D14E3B900333EB38FD93A99587DA2341B10C059C71CE080FE753
-3C0F059FA40E560AF9C4A41A4BE6FB45846FF8F78165E10B4AD40F264BCF5596A1E8EF8CB6EA4B1A
-3A5C69059AB1563843679ECB2511A90E8898F54295649CB73D277760D8D04ABACC7BCC6E777A0530
-E2067CCBC08673F9C8C178F9D672AC8A15E5367F0C5651B53E75E0CFA57C931746AE1A679C246D7C
-9417F1CD89DDDBD1173C2F880B7B3847CBCCEBF99F7122E832D7C9BAFE2B54CBAA1ED48158DE3F36
-238B76B0E67644A28AEA996DDC006F6AC0242E4B667639E7523CBC90A0561193C1AF34481C2EF402
-EE43A82E1EBF4E3D601BB36B2D95CD93550D61CEE7A94E72F6D30C32C8F91A61E964B1F66ACFC398
-7F95D4028F116E9A9A8474AA29C1C1A984BE0E393BDC41DCEF6A6F1018DB60D52024899D8EB5D55D
-324D73F39BFA47377B9E15B3B06A7585589FCF52A54684173E5183367E7B0952DC4BC2767C4C6247
-B1D6103E52BC7B7EA6298F454C5D97AC575F19C10ACDFF4E10C7D3755CFAB4200CAC545269FF1D8D
-B0D607C7AD47F40DDF257AB4E7D0750577003C13E4941960C3DD7B0774DDAC18E8ABAF8F53E03CBE
-F6D57B44F24CF821014C064278FD51B3427593D17694B4ABCE81F49CBB984C5878CDF0C38D1ED7FD
-99B0B9A3BD8D8FF6219588B3B8FA59D0CDD1D9B2F65122AB45E48F1757467B9204926140E3C350C5
-A927A2E700173053EC35D3F1DA2D7258714C97FAA857F0898917BD94625C6D1E2D77138EFCAAAF51
-7B17FE187A2212C24A881A2C6A647DEF6376ED80AE4175C5EE80921F001995B44E49F0D33DD9075A
-CF33BB03671C0BCC34AD5784AD1CDFED3A6D9BA103B3DDC1CC2DE74DBB576A0277715275218CD19C
-A8899209125266D8BF1286F881DCC2C383749D1E768D670F4099F7DE959EDFE852583183C9111601
-2881A56A24AAF020EA45CD5F39660DEBCE30AC1C7B8CFC60387B1B0C3E361BE612FDFA9F01B7E4B4
-A18839A2C7E0E393EBC5AD9A8A4EBC316A740C1C295D9EF5F4DFFA0667F9582C0BB837B142C4CFC6
-B1798E9476D0631111033B8BA75A10FDC800E2AB1E0E829632F869CFE4737BE9E2800759EE0831DC
-7D1195EAF80555771981DD6DC6606812D92CB8EF86447F5F6C6F626D0E265C67E52A6319189EE349
-D48E49DFE6A9E98F76C414A1E3217AE0A215A17E54AA498F4ECDC50242ACC7E2322F63BB2FF2189D
-057E7354E32A3ED1803116176B9B9D0129930F919E2FEC280B2C8924E49E7BB75768A2EE1DA8ADBE
-D4E3589906DF1B923AEF84C1BD327438B731012E69BB0D43A1842CB88BB54EA4516477F704CFEB28
-6E3EA483445AD4D74586FCF32E96D366901084365F693A53C5FB532FBFE7BC0CADC404C4985042D6
-8DBB90A6DCDA3531EE324D558A214F935CD9FCC9A0CEBE9B5FB0323F4B3820529599EF48EE068B5A
-CE85004FEA2984F0A86F5AC9D56163BBFE1142B774148F1EB0A4DC89C3349052533A7DE66729DB24
-41B82F8F7360111DACF69293C9B281A0534F3E9E9224A75C49A832F28B2E497262475507B6DDFA9F
-01CA0A6696E3F5AC7EA68595EBA0C2EB8A47813FF936D84AC1B23ECA7AA2862B793CCBB0DF9FDD49
-31BEF354CEC12FBF478559FEC29F81ADF4452E83963E56541D31F3691C93A50F0BBA5E9552C4F2A2
-3A6E53060729854A3DD71CC4308B91957DB19E66AAA18FA67055A950F1C2CFF78A03BC1A588CF624
-696068068719AFB1001C4581EE072113882D9052B21E355D401ED8CD24D067B99E616BDA5A0A5A93
-36FC499632B79FF2FD0DEFB096EF46B75E2D4E0F48DAEA239719FEC4D9A29818F5875FC5041A9EDB
-D26CAF0ACE14CC80BA49BBA59E918EB3D8F1E541AA16026585A2F72DF7D83541816DE46981FB3EFD
-0C30E458CFAD04C79421AB7C4925E23AEA07F9F018431C790002596D26BD9663B51B699DF53E4882
-CBC34EDE88EB55045B889B6062E35FD1E018BCE785157B85EC3B9CA6C85D4B16238275385B8285DB
-012D8FB7C9F5B946A41D7A0FB878FF72C39683144D8A007CFF631B43748F2D5FC690300F9BC0C837
-006B92ECEBE0605E8C3A4A400E18AE8997D1B45FEE10068E247C647CF82C6DFBE5E881D511FFA687
-B7AEB78546BFD07D5F7EC242DCEF4930D8AAAD8C6152B6642AAC325963FD147F236BB850A9966573
-9D06CDBD7CA79A527DCF461E33F22BC9C5DB00DA2BD3DDDD8C99D99793BC98282AA8872FF96C3942
-85D82D9419EB78B6AE37A5F519397700F75D624A09BD255B576E955A323E784E8FC31131F003B0E3
-024A4F58FEF2A6C043796201FC425482E1155E229D1B2D43EF7B0D22322B22EF5C9A1BE026A1C3D3
-75EDAFF99597E1E5477952A4E8D2ACF5D014BC00DC2A272FA62B6983E27D228881E2EF2B8B95A681
-CBE90C5FDE16331C85222FE2A16F0A3C3000A63E2E21666C0C119F8AF89A543D37977069A5ACF155
-6324F05204CE8CAD50FF4FB630D9CBBFC324DEDA584AA56A99D3A76FF55BDC2C2EA3A021361CCD4A
-83C7A5E2768D210FA6DE889FD48A39D679C94EC3C99A8D33FF11377DA7F6F1B71A2A05B302ECDE95
-4F26773F39AC881542F0D0969C3995C3519A8EF70B4220D86BF01BEECC6462855E7B686E1AFF1CA9
-1FB8FD8B4A69E10EE0C2AD94ADD44449506F9B6EF43641F2026EFF6E605C670560C2B74706FB949A
-A7E8CC6A2D0D6207E457E7FD87EC1B9092DC68B9143947CC8ED14AFDDCBF8FDDA228A76847F96802
-E561F67CEEFDE45AE587673983FC04C96744DBAA83F2DC838D633943C75DCB9E6410474EB27B348F
-26E505F0AB90878940E846C5E9F3C5FE8C3558C3236B1B88C405716949B8506841CABE1717474BB7
-C30DB91CDEE33B0F844811762FAEC535BDCF84C1C747CEF9B1FA61D2AFB5A81335BC42C06A94D7D5
-9B7EDE55BCF6F9867AEE107555CDD084B7684C2C87087475A39A9DA6347BE281CE5635A4D07865BA
-98CE26C1465B1AB0343F49FF37B4D0CA9F3BB693D78DC3B21925CB996A038DCC172527FE57C07460
-EF39C07D4396E7FA970D9F22ABD21A9C794B64AD96762C7428F59A8757C36D6C4FFB23216195A04C
-2A2C2E7B10EF7193931544D782FEE4B91E01119C5553BBC6252270A8D8C56DD62D448F5AD8DC69CC
-B45E1F17F0AA1E445129DD00F000005B23D38DE93A3BE55A4C041947F36B4E4536E307D0180553F9
-2E46B743881CB5D5386C48C7D5F84C2BCD06B9C501F78C7EE61FA23516791FCF4DB278AF688A2E60
-10A56692AD92008497487EDFE4BD5FA083FA544138B20D6940020887E35D46E093B71F7A04A67460
-DC8116B4D4839625D7CA6959D6831CD93F81AC4EA2709036DD738364FDE71113BF22EBF13DFE1642
-E564701E6F0FFE7511EDF03FE448C2B28C64FB7D54B94CA576E481FA56B2B18AF10C71F699B6BFD4
-7459CDE1869D0FD306BF489A6F42E5B2F05CCF55BB6B9526973D19CB134CA7F13F1DB3716F8CC217
-73A832568C16250B5CDB16DF24BF81D49F5B37018BD310262EA7078107868AB0216CEC83CEFCAB1E
-9F2C665A31585CA04DC01879CAA79AAA5AB201B516F7052B01B16BEE5606098393B0E5D9F9E5E3F4
-EB20F63C958E796DF41CF28839F5C62A0431648745D7837B519F3AA36BC6C08EF040CCF53D9B6D8C
-0C7D1A84D707EC57A3C6AC9A62AB37251A01A5ED40FDEC6F5BE6E34C6A91D058319439778A2EE5D0
-363E2E1F33463C33327D05FFC0CBF08D5BC457C7230448972FB9B4D0D782BA7DBF10D3FFEF8BF523
-6EC16D4DD6D0D870D9D5EB5C64C9A46A4F583D4F831FEE74B0E5B33A09ABFD4444929BD8F638CD72
-EAB99CF2E9551DF427683964A592E49D186F285258C5D5F62196A98532421D73E3495F82695FEEC6
-E1952C562D546B28618FFAEEBEFF03A57F4D855021F85B0C7BC37FCC6DA9AECA099B646B99D41896
-09D3FF2D56422F8C37E97640293EC7C90E3380887836F4938FBF495CAC14FBA5648D89282D8D49D9
-1AF73ED36581139D8BD42551E263E830EA3C6EB381D85C42D74C50DB0CCAEC03F535ADE92128A016
-0E811C34748309AF7604919B66CD43EB5CA975302DCB6076FEB6BDD6FF55976FE990FB0CE9ABB11B
-195403FB26E3D6C6A0DE1C5BE79E171A61E21F79EE8DBE7A832519813EF6B33EA098C2C32ADEA219
-AB2AAC8B093F40000995539D1276D5F2EF84CCD099B71FE4269BDBDB6A8D59C86F7D2E3FBCCF8773
-D0FAE97640BC1AD43CB4B992BFADFB09DBD0CAAEB8CD9DA264187C4F97300E9A6C9DEED5525479E6
-05C65AE336CBBDF4E5D7F79AD098F977285E065579B748FEAA97F2A753E1F962FCAB68D72BAA8EE4
-FF6691C23E31BC0F3E981A96FB440404856AE1AB32A7205B17D411D8F21C8C93B704D07EC594422A
-BC368CDA2B1610CE6A973F4474E12B78B532666797F5755D269772C9F5400B3BFC6C58395D38527E
-2CCCF29B56123F7DCEF3BDE5DC1DFC5B0293BB125085B1D2D929BC3EE84F4FAD571A4991C3DEE03F
-2DB3A3097E52B1A7D5C73CCB6148EAC62E8E36DE9A71C57638C6E4D5D9DED18174E8C390E50B4A5B
-913C074EEAEBE390B214B3A68F02862B9A296DB4B409769649E51D738CBBDFB7702E15C73C2AFC6B
-C37CE15171F4E822CF20EFE55D9F061AA43E648989628FF79E65932390CBB15D8E621333B18B11C3
-BDF96F841D7434E01AD501FEA964A75B248A35CD9DF9A37E48A1E5A09C624B93CE44F0042FA00D7F
-9EE89B9F7AB785E9C718CF6E7228F743271C2C9BBA17E5208B920E44E765D99D86650EB454B0FAAA
-112753AA1BD3A24239E9C5FC47EEB1547AC9D23731B8DC48B9707830DAEC60C8D3790BBA1120F776
-4EFAC542CFFBCD5C05F9510B27B2534B704ECD36C8B041FD49A96881302FFF5B0163A2DD09C751D6
-D6AFEA9170A4F4C4AB8D46E62F763FE1BDA51DD1CE4A27E772F3A2869155F762FF26B7AA6FCFA4F1
-292E56F03AAB6322BF867E7710C34D43B5D85B45AA68014AD7879EED051B1933E491496E3E26D9AA
-8B80A07BF2B94F1077E84A9726F08199887D66DE7A307BF33C30DD9CF3DA188088C03B2BAD09A217
-6B110DB2C868B53DA9A66C85737BA66C93C58A259860E294AD0191E3A72C73F40B0BD98699AA08DA
-F03587B78F391F3A4313C58D9F29B53C70785637BD0C58310109C54091AB0A34CBB0C478613A7AC0
-FB8F0A8B4645AC966395D8BA775262CD291136AFFDDF01C1D83DD4EB3B59CCAD18057FE7D92A8CD4
-A58F22508D9FD7CF356571F701BBB23E749BDDCBF8A317FDA0AEFD952BB18545610FFAD3AC143D35
-1B8DB3F66293375E0E50235F0D0466932181D377EDD32A5F0FFA4E22B5A0CB4F343D9A7E4A342E9D
-09DFF6C697630CD3971802C277A5590B8CA94BDE6B38446C794D072BBCCB724D5BC208EEF1B018D7
-39373BB910D668882CAA779C2D686081DE6A2606417B54D7C20E0E7F722648D893E4EDBAE8F00D6A
-6DA3712F91AE860C756D1127D133AB828E9D80023B50B162C5A1C5CDF70CCB3FDD7EA060ED20838B
-E1E50C4094C9E79E1A0187CDF780CAF45A725964F004253E034C5BE46BBF89D94631F1A33BAA35B8
-4FA2A9D08481C6674126CD96ED05DCE48BDA069D902D6836D5DFBA701DC0F98A863E64F0E312145D
-8DC0B77F25B43AEC729A1243B45B08CA228DD6101CAA2AC5ADCC8EFF84A4CA3F254176C2CC711EE6
-C273835D0FD3528ECA2A976B88E51FE347FDB60F32370B66D338931D6581630ED586F349C638960C
-31AE4204E89521A96E1219E696B913DEB2AAB7A3B022D06F34FDFCB810A04E60A4FEBE284C2F063E
-0AE9EDF87704921CCFA193BDC912B747E13570066223A49F1F6E2AF0D4D65DA04CA876FF7A462FFC
-9C0BA2CC545C3BD36DBE762F32B2D6BE5867C59F479195C92440DC165098B74EA5C3AD93CDF2D410
-B04C16BC7801E7956F4E5107450787AA592493171C3628E6B8F49D4F8429EB98DC52EF025F001387
-BC1A7093F7A99F10B5D2D7DD8BBB393BF6E56F08F4F7FA1A343F220D5A1EAE7168C74D41BE1DC1A8
-3BD65B72B982F4F7B34F24F97F9EC9A91011064031FACFF2A14921A32024385F4E061CD07D152E74
-1BF97156D951A342488FA7F5EF934CCAD13E2753A0AB7A1F565C2F7F6B349DF03BBC25BBD972A9AD
-F809BB5C5048A8CCEF9297B2ED3324D18867F293CC66E88B3A39D107B610DFE79A3B4E83A96D3D52
-A17FE8A62C9FDD271130148366942C9CE57558D023DA5F7501319EBFA33DE9E6D1E76D7C20DB8A09
-B657839DA99F3D8143F1EE6253A3295C9651FA4366547893C2DC7ABCBF4BB7609DE5D001E0A36D9F
-FBE01F7D0903B3208AE8547E2E5F14EC1AF4C2535CA8F4EA37E3F3CE172C7A1E8308995B1CC23E6E
-81190246BCAB6E755BF868D449BB02A2AA87C44C9CC0F571ADC72547CEECBE104BB274B8AC16DCB7
-5D5F458D356466B921ACDEEAE384E2EB1DF6EF393B41B9747F0A4FAEB4AF1928D9AD6FB7E06FDC62
-1E4C6FC98CFB43F88584BD55D9B97CC9549093EDE586912161931162B1B1D52D0443260DABA02AF2
-B4432100D5506546013DA703573FA8013685CC798CE501960093DED713FFCCF89CA2B9106390198C
-29A00864108CDCC1984A8BAB53919028C01B26ECC7925E38CBE6CCA8978EE21C2B06E7B3E48FBA97
-8E2A7D186E563C088F84AA23178B60E4729EE87D67B1091F3B6973676C1CBFE6530EB773C62E2C24
-97014AB0E8B71A1F4E86A378AA26591511BEE3CF3D64C94848582E1354E1605B6457823F2C5E640A
-D3802946BB2E7E8E594E8C04B430C2385DD40746CE8534F50842E74D7115F3DB0C72D1C9C607C657
-3B094AEB73B7A79876CFFC3E2F8C9FEAAA07D3BFCE05B61F7749A8793BE90CCCECA2D7077F25E899
-D3331FE161A7E86C842495D584C6E4A0880B2951D8A13B88C4672080A0B1BE36BF47C3ACE7288CFE
-41A8C1BAA6F0814A947FBD6B3AA72B6C73A8C578CA51CCC96F2352316C467BB960E981F2B6485BFB
-44B577E71EFDA16E7405954BC7C9F0759F5A9F1EBCD2FA9CC9648D5831A68887F41B15081A204C24
-B4B992A231DEF9E698D4C3A25B6F5474F5BE6A601F2D337A58A0D21FF37FD91EB86D1D738893A03A
-69F0CD743F611CDFFE69DB2C6ED0E4611D56F803BB0DC06E7FE85A303839612707647B1BE9FAF8D6
-84122CA9E5CB8BDE2936D3F4FF254D31529D7538BBD4D35539489F9E7316F24214B996BCDCF1818E
-749A71CF0E8845AA1E2A58AA62A48E02BA4564625D20AA220EE719608521D7D7A7FCA0BD8904A401
-9819D371F3F59D46C1354E5FC1A6E5F79B20CF4ACA2BF0F2DE73DA193A6F9ACBFE0B4731C4BCEBE6
-D96FE822965DE965232282A3A130361F188B3AABDA95A8A2790D9240BE008B6A6DE4BBFCADA05B67
-86B9BB8E0DFA0C30043A3B07ED46277E07B9808422C8ED16758B9C396F4EA929D769785B2C9568E5
-70A83B989B25CE200F1727D41E2B702E7F88F1784F4C83FA60A74EB26B2DA95126E508ED519A61CC
-151DB6804F61826C5F86D8FA89D06E526FED97A0DB88EDB432FF32C1ACC9B622EEDF601081AF7B96
-3C9CFC1D13E4A9C74FEA0A1C8E3D8653CD92A944D4CA6B0D306619AFD503506D77732D6514F604BE
-4610C2560931BDE0B40939BC1D126B0E97F72AE1B4A9252123B54F7A27E0CFA4425B4546526FD741
-CA77952B10D13E0AC2E32006A903808FF0CD013F936238C74CC75FD915244C56A8412F37F0134840
-347699508D6F3D7F3203A25B7C70100719582CD588590EE34B3AB13E255B613A6D00386A0104CC5E
-D2C646F09A88888D3751651D5646C5227A3C80E8DA1B0A331121DD2429F1F4775D30564DFF47D01B
-BE2C6C72CE4D1FD9A2077C04D2B0274B8916F6A9D1A4A6964A534F47CF241D5A8E34B23F85BE9ACF
-FC2FEA961F277539F215F8728D6788F67BEAF45502839BCF23D8763C3949352F00C579A9A4FC408E
-C625E310DAE61512DFE6844E82D36A2F81709E1F05B38AE9C222ED62C961EE63593CED7AAF73CE2E
-D3667740C77B309B93EEFE1B4BA65D48575A66BE86743DC9E5D3C2FF418D11F7F211B86E827EE1DF
-C3613E7498030F07050524536D1F8A94DDB6698BE7B963C55CB3F74B676CD815A7B3DF4B1A0EA2BE
-1B0B9A11FFBFD5B1FA49668AEE14629316AF436A0821C20BEEF7B3480847934A99F6D85B68F4DDF8
-859A754E009428AF89A90D1852C220A607FF0806E8080726EDC94D691D214B4521C147C4273AEBDD
-BB4A697EF16448CD9B2FC95293305858DECFD406B89B9F3FDAE2AC579E80CF321EBAE5701FB2F7CA
-D8ED04B4A63115886D45D6120F69AEF1A21D80AD3C2D35D2899F1902242B96CD349E0AAADA40F7A1
-1282B6B52BDD97708E58DC5E2D22D1153E5FA3F3B300BCDFAF98DEC2F4E3C82A1C85F985735F3987
-4F557579F422664E07CBE19DA680EFB0FC82C323EC5C4644C51709AC8D674608A8043C91E6C7988D
-430F10BA6CE1FC7FC0604FCD8F723895250AEC36CC35B3FA14FE2A0D24095DCC30B2093F2298F5F0
-A97676A0BE66C3DC9ADACFE2FC0F721A20E945AFC1096A619075D5E9A264C796EC6C90EF1AEEA8DC
-089B44FFC13D27CB2370070A52D4416C53F364393E46EDD7EDE00799960CE6E0D57E4909E88ADD64
-BDD2B0EBE2D73FA6ACF8B40280DAA0637E705C65AABD523B8815F22F23E9FF81E7829C7E4BC980C9
-143AEBE1A04DC0D253396BBB7268BD5AEEA356B610D5DCEE03135E00AE34388251F31714A1C40E18
-2652C48CDA2211A22CB6F02490E69A44CECB169754C53B16028D352E0119F5D5FAE0BD7EA1CDA647
-12A6147374B64244E21E9EC9F0D1381AD22D5B6212B26C3F9AA5F6045F25DD9F5EB4489EA39B1945
-331AC70510C5752557DE21D0A6CFC1EB10A98FA867B76DA6E4249469F591FD154D39E89364A43DB0
-07AA0D7A911CFAE6CE2B557997FBC44F55A27F622BD7B8B10EC9F5D10F2649A646FD964AE1B111B3
-5B46A252C4DEE44E7426EB5739F24E8A390694597DB3A1FE7800C97E59558322F0E49A0CCE2AD94B
-1E2D1026AFA771723E3F523916F55ED866C9FB4A2F759651C613A2CFF362028CDF9D38F05D4C7C60
-24C533E930B64B099FB1AF04B01F5FB9CA6867E6EFF55A772C5391831059987E10CBF987E3F378E0
-1329F73D54DC0484177D3C3C06F67397955FF1CA4EF8AD1606B70455255D631A7D6EB92BFDBA14A0
-FF28B2ACE7E81AD666EA9B3A0F5A6BA3B5DFE35044FA4B3D8ED956009C60E98CC132F2E84967F4A9
-8A67B336D5EE7CAF7DD1F74D1FA08619941361FA7312CF225D89CEF97E864C8369EAFAB94D97F056
-5505D825972B754F6729596EEA91210B75DD8F645382ACE36DE60819A02B3B48DD00F5485F9264F9
-FA926D732E2C267B0BE8CA98526F124F97EFDB86132C5EF16B103908172FC51F286FFE45FF253512
-E0033F037FF182BA536A9EB2DF2D1DB257D9C86C46E1B002FB32AC70CA9462E6EB48994752CEBCE3
-9F08ABD4F4B0889283E55500702185A841E328
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndResource
-/NimbusMonL-Regu-iso1252 /NimbusMonL-Regu ISO1252Encoding psp_definefont
-/Times-Roman-iso1252 /Times-Roman ISO1252Encoding psp_definefont
-294 310 moveto
-0 0 0 setrgbcolor
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<4558504F52545F505953435249505453202B3D20534D4553485F6669786174696F6E5F68657861
-2E70792C20534D4553485F666C696768745F736B696E2E7079>
-show
-294 398 moveto
-<69666571202840574954484E455447454E402C79657329>
-show
-294 442 moveto
-<20204558504F52545F505953435249505453202B3D20534D4553485F626F785F74657472612E70
-792C20534D4553485F626F78325F74657472612E70792C205C202020>
-show
-294 486 moveto
-<20202020202020202020202020202020202020202020534D4553485F626F78335F74657472612E
-70792C20534D4553485F6669786174696F6E5F74657472612E70792C205C>
-show
-294 530 moveto
-<20202020202020202020202020202020202020202020534D4553485F506172746974696F6E315F
-74657472612E7079>
-show
-294 574 moveto
-<656E646966>
-show
-295 691 moveto
-/Symbol findfont 50 -50 matrix scale makefont setfont
-<B7>
-show
-370 691 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<46696E616C656D656E74>
-show
-595 691 moveto
-<20>
-show
-607 691 moveto
-<3A>
-show
-294 797 moveto
-/NimbusMonL-Regu-iso1252  findfont 42 -42 matrix scale makefont setfont
-<2E2F6275696C645F636F6E666967757265>
-show
-294 841 moveto
-<636420534D4553485F4255494C44>
-show
-294 885 moveto
-<726D20636F6E6669672E2A>
-show
-294 929 moveto
-<53414C4F4D45325F524F4F542F534D4553485F5352432F636F6E6669677572652096776974682D
-6E657467656E3D6E657467656E5F696E7374616C6C6174696F6E5F70617468205C>
-show
-294 973 moveto
-<967072656669783D736D6573685F696E7374616C6C5F70617468>
-show
-294 1016 moveto
-<6D616B65>
-show
-220 1128 moveto
-/Times-Roman-iso1252  findfont 50 -50 matrix scale makefont setfont
-<6FF920736D6573685F696E7374616C6C5F7061746820657374206C61206469726563746F727920
-6427696E7374616C6C6174696F6E206475206D6F64756C6520534D4553482E>
-show
-280 277 1 308 rectfill
-2125 277 1 308 rectfill
-280 277 1846 1 rectfill
-280 584 1846 1 rectfill
-280 763 1 264 rectfill
-2125 763 1 264 rectfill
-280 763 1846 1 rectfill
-280 1026 1846 1 rectfill
-showpage
-grestore grestore
-%%PageTrailer
-
-%%Trailer
-%%Pages: 7
-%%EOF
diff --git a/doc/salome/AddNetgenInSalome2.sxw b/doc/salome/AddNetgenInSalome2.sxw
deleted file mode 100644 (file)
index 1538190..0000000
Binary files a/doc/salome/AddNetgenInSalome2.sxw and /dev/null differ
diff --git a/doc/salome/Makefile.in b/doc/salome/Makefile.in
deleted file mode 100644 (file)
index 15dbc92..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-
-# -* Makefile *- 
-#
-# Author : Patrick GOLDBRONN (CEA)
-# Date : 30/11/2001
-# $Header$
-#
-# source path
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@
-
-SUBDIRS= tui gui
-
-@COMMENCE@
-
-docs:
-       @@SETX@; for d in $(SUBDIRS); do        \
-          (cd $$d && $(MAKE) $@) || exit 1;    \
-       done; \
-       cp -f $(srcdir)/SMESH_index.html SMESH_index.html
-
-clean:
-       @@SETX@; for d in $(SUBDIRS); do        \
-          (cd $$d && $(MAKE) $@) || exit 1;    \
-       done
-
-distclean: clean
-       @@SETX@; for d in $(SUBDIRS); do        \
-          (cd $$d && $(MAKE) $@) || exit 1;    \
-       done
-
-install:
-       $(MAKE) docs
-       (cd tui && $(MAKE) install);
-       (cd gui && $(MAKE) install);
-       cp -f SMESH_index.html $(docdir)
-
-uninstall:
-       @@SETX@; for d in $(SUBDIRS); do        \
-          (cd $$d && $(MAKE) $@) || exit 1;    \
-       done; \
-       rm -fr $(docdir)/SMESH_index.html
diff --git a/doc/salome/PluginMeshers.txt b/doc/salome/PluginMeshers.txt
deleted file mode 100644 (file)
index 61bb084..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-#######################################################################################
-# File   : PluginMeshers.txt
-# Author : Julia DOROVSKIKH
-# Module : SMESH
-# $Header$
-#######################################################################################
-#
-# How to add your own mesher (as a set of hypotheses and algorithms) to the application
-#
-#######################################################################################
-
-1. Create mesher plugin package, e.g. MyMesher.
-
-2. Create XML file to describe all algorithms and hypotheses, provided by plugin package
-   (see SMESH_SRC/resources/SMESH_Meshers.xml for example).
-
-   <meshers-group name="MyName"
-                  resources="MyResourceKey"
-                  server-lib="libMyServerLib.so"
-                 gui-lib="libMyClientLib.so">
-     <hypotheses>
-       <hypothesis type="MyHypType1"
-                  label-id="My beautiful hypothesis name"
-                  icon-id="my_hypo_1_icon.png"/>
-     </hypotheses>
-     <algorithms>
-       <algorithm type="MyAlgType1"
-                 label-id="My beautiful algorithm name"
-                 icon-id="my_algo_1_icon.png"/>
-     </algorithms>
-   </meshers-group>
-
-   Attributes of <meshers-group> tag:
-
-        - value of <name> attribute is used to collect hypotheses/algoritms in groups;
-          you can also use this attribute for short description of your mesher plugin
-
-        - value of <resources> attribute (MyResourceKey) is used to access resources
-          (messages and icons) from GUI (see paragraphs 4.2 and 5);
-          currently it should coincide with the name of plugin package; this limitation
-          will be eliminated in the further development.
-
-        - value of <server-lib> attribute describes the name of your mesher's
-          server plugin library (See paragraph 3)
-
-        - value of <gui-lib> attribute describes the name of your mesher's
-          client plugin library (See paragraph 4)
-
-   Attributes of <hypothesis/algorithm> tag:
-
-        - value of <type> attribute is an unique name of the hypothesis/algorithm
-
-          * It is a value of _name field of your hypothesis class
-            (see paragraph 3, implementation of constructor of
-             StdMeshers_LocalLength class: _name = "LocalLength")
-
-          * It is a key to each certain hypothesis class
-            (see paragraph 3, implementation of "GetHypothesisCreator()" method in StdMeshers_i.cxx)
-
-          * It is a key to each certain hypothesis GUI
-            (see paragraph 4, implementation of "StdMeshersGUI_HypothesisCreator::CreateHypothesis()"
-             and "StdMeshersGUI_HypothesisCreator::EditHypothesis()" methods in StdMeshersGUI.cxx)
-
-          * It is a key to each certain hypothesis icon in Object Browser
-            (see paragraph 4.2.1)
-
-        - value of <label-id> attribute is displayed in the GUI in the list
-          of available hypotheses/algorithms ("Create Hypothesis/Algorithm" dialog)
-
-        - value of <icon-id> attribute is a name of icon file, which is displayed in GUI
-          in the list of available hypotheses/algorithms ("Create Hypothesis/Algorithm" dialog)
-
-   Note: All attributes values are accessible in your GUI via HypothesisData class
-         (see paragraph 4.1)
-
-   Note: The environment variable SMESH_MeshersList contains the list of plugins names, 
-         separated by colon (":") symbol, e.g.:
-
-        setenv SMESH_MeshersList StdMeshers:NETGENPlugin
-
-        Please, pay attention that StdMeshers should also be included into this environment variable,
-        if you want to use standard hypotheses/algorithms, provided with SMESH module.
-        
-        The SALOME automatically locates XML files, searching them in the following directories:
-
-         ${<PLUGINNAME>_ROOT_DIR}/share/salome/resources
-         ${SALOME_<PluginName>Resources}
-         ${HOME}/.salome/resources
-         ${KERNEL_ROOT_DIR}/share/salome/resources
-
-        where <PluginName> is a name of each mesher plugin package
-
-3. Build server plugin library <libMyServerLib.so>.
-
-   3.1. Define interface to your hypotheses and algorithms.
-
-        Example: SMESH_SRC/idl/SMESH_BasicHypothesis.idl
-                 NETGENPLUGIN_SRC/src/NETGENPlugin_Algorithm.idl
-
-   3.2. Implement functionality of your hypotheses and algorithms.
-        Inherit corresponding classes from SMESH.
-
-        Example: SMESH_SRC/src/StdMeshers/StdMeshers_*
-                 NETGENPLUGIN_SRC/src/NETGENPlugin_NETGEN_3D
-
-   3.3. Implement interface to your hypotheses and algorithms.
-        Inherit corresponding classes from SMESH_I.
-
-        Example: SMESH_SRC/src/StdMeshers_I/SMESH_*_i
-                 NETGENPLUGIN_SRC/src/NETGENPlugin_NETGEN_3D_i
-
-   3.4. Implement being exported method.
-
-        GenericHypothesisCreator_i* GetHypothesisCreator (const char* aHypType)
-
-       <aHypType> is a value of <type> attribute in the XML-description file
-
-        Example: SMESH_SRC/src/StdMeshers_I/StdMeshers_i.cxx
-                 NETGENPLUGIN_SRC/src/NETGENPlugin_i.cxx
-
-4. Build client (GUI) plugin library <libMyClientLib.so>.
-   This step is required only if your hypotheses/algorithms need specific GUI for their construction.
-
-   4.1. Implement the required GUI (e.g. construction dialog boxes).
-
-        Example: SMESH_SRC/src/StdMeshersGUI/StdMeshersGUI_*Dlg
-
-        Note: all data from XML-description files is accessible in your GUI via HypothesisData class
-              (mySMESHGUI->GetHypothesisData (aHypType),
-              see SMESHGUI_Hypotheses.h for HypothesisData definition)
-
-   4.2. Provide icons and messages for your GUI.
-
-        4.2.1. Implement resource files
-               MyResourceKey_icons.po and MyResourceKey_msg_en.po
-
-               Example: SMESH_SRC/src/StdMeshersGUI/StdMeshers_*.po
-                        NETGENPLUGIN_SRC/src/NETGENPlugin_icons.po
-
-               Note: ICON_SMESH_TREE_HYPO_MyHypType1 is ID of icon for Object Browser
-                     for hypothesis with type="MyHypType1".
-
-                     ICON_SMESH_TREE_ALGO_MyAlgType1 is ID of icon for Object Browser
-                     for algorithm with type="MyAlgType1".
-
-               See paragraph 2 for definition of MyResourceKey, MyHypType1, MyAlgType1.
-
-        4.2.2. Define environment variable SALOME_<MyResourceKey>Resources to point to the 
-               directory where resources are situated.
-
-               Example: setenv SALOME_StdMeshersResources ${SMESH_ROOT_DIR}/share/salome/resources
-
-   4.3. Implement your Hypothesis Creator and being exported method
-
-        SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator
-          (QString aHypType, QString aServerLibName, SMESHGUI* aSMESHGUI)
-
-       <aHypType> is to pass a value of <type> attribute in XML-description file;
-       <aServerLibName> is to pass a value of <server-lib> attribute in XML-description file.
-
-        Example: SMESH_SRC/src/StdMeshersGUI/StdMeshersGUI.cxx
-
-5. If your hypotheses/algorithms do not need specific GUI,
-   but you want to provide icons for object browser, see 4.2 paragrath
-
-6. Setup your SALOME environment.
-
-   6.1. Add your plugin to the LD_LIBRARY_PATH, PYTHONPATH (and maybe PATH) environment variables, e.g.:
-
-      setenv PATH <path-to-my-plugin>/bin/salome:${PATH}
-      setenv LD_LIBRARY_PATH <path-to-my-plugin>/lib/salome:${LD_LIBRARY_PATH}
-      setenv PYTHONPATH <path-to-my-plugin>/lib/python2.2/site-packages/salome:${PYTHONPATH}
-   
-   6.2. Set mesher plugin resources environment variable (see 4.2.2 paragraph)
-
-Note: If you use runSalome.py script from KERNEL package to launch SALOME, you may not to set 
-      environment variables, because this script sets them itself. All what you should do is
-      to add <plugin> section to your ${HOME}/.salome/salome.launch file for SMESH module section:
-
-      ...
-      <modules-list>
-          ...
-         <module name="SMESH">
-              <plugin name="MyMesher"/>
-          </module>
-          ...
-      </modules-list>
-      ...
\ No newline at end of file
diff --git a/doc/salome/SMESH_index.html b/doc/salome/SMESH_index.html
deleted file mode 100644 (file)
index 585ce9e..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-                                            
-  <meta http-equiv="Content-Type"
- content="text/html; charset=iso-8859-1">
-                                            
-  <meta name="GENERATOR"
- content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-  <title>Mesh Module Documentation</title>
-</head>
-  <body bgcolor="#cccccc" text="#000000" link="#0000ee" alink="#0000ee"
- vlink="#551a8b">
-       
-<div align="center">    &nbsp;           
-<center>          
-<center>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
- &nbsp;&nbsp;</center>
-       
-<table width="96%" align="center">
-           <tbody>
-              <tr>
-           <td><a href="http://www.opencascade.com"><img
- src="tui/SMESH/sources/logocorp.gif" border="0" height="46" width="122">
-                </a></td>
-             <td>                                                       
-               
-      <div align="right"><a href="http://www.opencascade.org/SALOME/"><img
- src="tui/SMESH/sources/application.gif" border="0" height="46" width="108">
-                </a></div>
-           </td>
-           </tr>
-                                                      
-  </tbody>    
-</table>
-       
-<div align="center">    
-<center>    
-<hr width="100%" size="2">   
-<h1>Mesh MODULE Documentation</h1>
-                                     </center>
-    </div>
-       
-<table width="96%">
-      <tbody>
-               
-  </tbody>    
-</table>
-    </center>
-       
-<div align="center">       
-<p> <img src="tui/SMESH/sources/Application-About.png"
- alt="Application-About.png" width="30%" height="20%">
-    &nbsp; &nbsp;&nbsp;          </p>
-             </div>
-       
-<center>    
-<table width="96%">
-      <tbody>
-                 
-  </tbody>    
-</table>
-   <br>
-   <br>
-   <br>
-   </center>
-     
-<address> </address>
-   
-<center><big><a href="gui/SMESH/smesh.html">GUI Documentation</a></big></center>
-      
-<address> </address>
-   
-<center></center>
-      
-<center><br>
-   </center>
-     
-<address> </address>
-   
-<center><big><a href="tui/SMESH/index.html">TUI Documentation</a></big></center>
-      
-<address> </address>
-   
-<center></center>
-      
-<center><br>
-   <br>
-    </center>
-    </div>
-     <br>
-  <br>
- <br>
-</body>
-</html>
diff --git a/doc/salome/gui/Makefile.in b/doc/salome/gui/Makefile.in
deleted file mode 100644 (file)
index 883a053..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#  Copyright (C) 2003  CEA/DEN, EDF R&D
-#
-#
-#
-#  File   : Makefile.in
-#  Author : Vasily Rusyaev (Open Cascade NN)
-#  Module : doc
-#  $Header: 
-
-top_srcdir=@top_srcdir@
-top_builddir=../../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@
-
-@COMMENCE@
-
-docs:
-       cp -fr $(srcdir)/SMESH ./
-       -find $(PWD) -name CVS -exec rm -rf {} \;
-
-clean:
-       rm -fr `ls | grep -v "Makefile"`
-
-distclean: clean
-       rm -fr SMESH
-
-install:
-       mkdir -p $(docdir)/gui
-       cp -rf SMESH $(docdir)/gui
-       -find $(PWD) -name CVS -exec rm -rf {} \;
-
-uninstall:
-       rm -rf $(docdir)/gui/SMESH
diff --git a/doc/salome/gui/SMESH/SMESH.log b/doc/salome/gui/SMESH/SMESH.log
deleted file mode 100755 (executable)
index fb02a90..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-|SourceProjectName:SMESH.hpr\r
-|DestinationProjectName:smesh.htm\r
-whhost.js\r
-whmsg.js\r
-whmozemu.js\r
-whproxy.js\r
-whstub.js\r
-whutils.js\r
-whver.js\r
-whform.js\r
-whphost.js\r
-whstart.js\r
-whtopic.js\r
-whframes.js\r
-whlang.js\r
-whskin_info.htm\r
-whskin_blank.htm\r
-whnjs.htm\r
-whthost.js\r
-whtdhtml.htm\r
-whihost.js\r
-whibody.htm\r
-whiform.htm\r
-whfhost.js\r
-whfbody.htm\r
-whfform.htm\r
-whghost.js\r
-whgbody.htm\r
-whgdhtml.htm\r
-whgdef.htm\r
-whproj.js\r
-whproj.xml\r
-whproj.htm\r
-whdata\whtoc.js\r
-whdata\whtoc.xml\r
-whdata\whtoc.htm\r
-whdata\whtdata.js\r
-whdata\whidx.js\r
-whdata\whidx.xml\r
-whdata\whidx.htm\r
-whdata\whidata.js\r
-whdata\whfts.js\r
-whdata\whfts.xml\r
-whdata\whfts.htm\r
-whdata\whglo.js\r
-whdata\whglo.xml\r
-whdata\whglo.htm\r
-whdata\whgdata.js\r
-whdata\whftdata.js\r
-whdata\whfwdata.js\r
-whres.xml\r
-webhelp.jar\r
-webhelp.cab\r
-whgdata\whnvp30.htm\r
-whgdata\whnvp31.htm\r
-whgdata\whnvp32.htm\r
-whgdata\whnvp33.htm\r
-whgdata\whnvt30.htm\r
-whgdata\whnvt31.htm\r
-whgdata\whnvt32.htm\r
-whgdata\whnvt33.htm\r
-whgdata\whnvf30.htm\r
-whgdata\whnvf31.htm\r
-whgdata\whnvf32.htm\r
-whgdata\whnvf33.htm\r
-whgdata\whnvl31.htm\r
-whgdata\whnvl32.htm\r
-whgdata\whnvl33.htm\r
-whgdata\whexpbar.gif\r
-cshdat_webhelp.htm\r
-cshdat_robohelp.htm\r
-wht_tab0.gif\r
-wht_tab1.gif\r
-wht_tab2.gif\r
-wht_tab3.gif\r
-wht_tab4.gif\r
-wht_tab5.gif\r
-wht_tab6.gif\r
-wht_tab7.gif\r
-wht_tab8.gif\r
-wht_glo_h.gif\r
-wht_glo_n.gif\r
-wht_fts_h.gif\r
-wht_fts_n.gif\r
-wht_idx_h.gif\r
-wht_idx_n.gif\r
-wht_toc_h.gif\r
-wht_toc_n.gif\r
-wht_ws.gif\r
-wht_ws_g.gif\r
-wht_logo1.gif\r
-wht_logo2.gif\r
-wht_abgw.jpg\r
-wht_abgi.jpg\r
-wht_abge.jpg\r
-wht_abtw.jpg\r
-wht_abte.jpg\r
-wht_abti.jpg\r
-wht_spac.gif\r
-wht_next.gif\r
-wht_next_g.gif\r
-wht_prev.gif\r
-wht_prev_g.gif\r
-wht_sync.gif\r
-wht_hide.gif\r
-wht_go.gif\r
-whstart.ico\r
-whestart.ico\r
-whrstart.ico\r
-whidhtml.htm\r
-whfdhtml.htm\r
-whskin_banner.htm\r
-whtbar.js\r
-default.skn\r
-whskin_pdhtml.htm\r
-whskin_papplet.htm\r
-whskin_plist.htm\r
-whskin_tbars.htm\r
-whskin_mbars.htm\r
-wht_toc4.gif\r
-wht_toc1.gif\r
-wht_toc2.gif\r
-wht_toc3.gif\r
-whskin_frmset010.htm\r
-whst_topics.xml\r
-whskin_frmset01.htm\r
-smesh_hha.hhk\r
-smesh.hhc\r
-smesh.hhk\r
-extrusion.htm\r
-files\1d_meshing_algorithm.htm\r
-files\2d_(quadrangle)_meshing_algorithm.htm\r
-files\2d_meshing_algorithm.htm\r
-files\3d_meshing_algorithm.htm\r
-files\about_hypotheses.htm\r
-files\about_meshes.htm\r
-files\about_meshing_algorithms.htm\r
-files\about_modification_of_meshes.htm\r
-files\about_quality_controls.htm\r
-files\adding_nodes_and_elements.htm\r
-files\area_of_elements.htm\r
-files\arithmetic_1d.htm\r
-files\aspect_ratio.htm\r
-files\changing_orientation_of_elements.htm\r
-files\computing_meshes.htm\r
-files\connectivity.htm\r
-files\constructing_groups_of_specific_elements.htm\r
-files\constructing_meshes.htm\r
-files\constructing_submeshes.htm\r
-files\creating_groups.htm\r
-files\cutting_quadrangles.htm\r
-files\deflection_1d.htm\r
-files\diagonal_iversion_of_elements.htm\r
-files\displacing_nodes.htm\r
-files\displaying_elements_numbers.htm\r
-files\displaying_nodes_numbers.htm\r
-files\editing_groups.htm\r
-files\editing_hypotheses.htm\r
-files\importing_and_exporting_meshes.htm\r
-files\introduction_to_smesh.htm\r
-files\length_from_edges.htm\r
-files\length_of_edges.htm\r
-files\local_length_hypothesis.htm\r
-files\max._element_area_hypothesis.htm\r
-files\max._element_volume_hypothsis.htm\r
-files\merging_nodes.htm\r
-files\minimum_angle.htm\r
-files\non_conform_mesh_allowed_hypothesis.htm\r
-files\number_of_segments_hypothesis.htm\r
-files\propagation_of_1d_hypothesis_on_opposite_edges.htm\r
-files\reassigning_hypotheses_and_algorithms.htm\r
-files\removing_nodes_and_elements.htm\r
-files\renumbering_nodes_and_elements.htm\r
-files\rotation.htm\r
-files\running_smesh_module.htm\r
-files\scalar_bar_properties.htm\r
-files\sewing_meshes.htm\r
-files\shading.htm\r
-files\shrink.htm\r
-files\skew.htm\r
-files\smoothing.htm\r
-files\start_and_end_length_hypothesis.htm\r
-files\symmetry.htm\r
-files\taper.htm\r
-files\tetrahedron_(ghs3d)_meshing_algorithm.htm\r
-files\tetrahedron_(netgen)_meshing_algorithm.htm\r
-files\translation.htm\r
-files\uniting_a_set_of_triangles.htm\r
-files\uniting_two_triangles.htm\r
-files\using_operations_on_groups.htm\r
-files\using_smesh_module.htm\r
-files\view_update.htm\r
-files\viewing_mesh_info.htm\r
-files\visualization_modes.htm\r
-files\visualization_properties.htm\r
-files\warp.htm\r
-files\wireframe.htm\r
-pattern_mapping.htm\r
-revolution.htm\r
-ehlpdhtm.js\r
-texture_horiz_ltbluebubbles.jpg\r
-smesh.glo\r
-default.css\r
-image96.gif\r
-image77.jpg\r
-image66.jpg\r
-image55.jpg\r
-image85.gif\r
-image74.gif\r
-image44.jpg\r
-image63.gif\r
-image22.jpg\r
-image11.jpg\r
-image41.gif\r
-image97.gif\r
-image78.jpg\r
-image67.jpg\r
-image75.gif\r
-image45.jpg\r
-image34.jpg\r
-image64.gif\r
-image23.jpg\r
-image12.jpg\r
-image31.gif\r
-image98.gif\r
-image87.gif\r
-image68.jpg\r
-image57.jpg\r
-image76.gif\r
-image46.jpg\r
-image35.jpg\r
-image65.gif\r
-image43.gif\r
-image32.gif\r
-image24.jpg\r
-image88.gif\r
-image69.jpg\r
-image58.jpg\r
-image77.gif\r
-image47.jpg\r
-image36.jpg\r
-image66.gif\r
-image44.gif\r
-image33.gif\r
-image22.gif\r
-image25.jpg\r
-image89.gif\r
-image59.jpg\r
-image78.gif\r
-image48.jpg\r
-image67.gif\r
-image34.gif\r
-image26.jpg\r
-image79.gif\r
-image49.jpg\r
-image38.jpg\r
-image68.gif\r
-image57.gif\r
-image16.jpg\r
-image46.gif\r
-image35.gif\r
-image27.jpg\r
-image24.gif\r
-image39.jpg\r
-image69.gif\r
-image3.jpg\r
-pics\exemple.gif\r
-image36.gif\r
-image28.jpg\r
-image25.gif\r
-image18.jpg\r
-image4.jpg\r
-image37.gif\r
-image29.jpg\r
-image26.gif\r
-note1.gif\r
-image2.gif\r
-image38.gif\r
-image27.gif\r
-image80.jpg\r
-image6.jpg\r
-image39.gif\r
-image28.gif\r
-image81.jpg\r
-image70.jpg\r
-image4.gif\r
-image7.jpg\r
-image29.gif\r
-pics\new.jpg\r
-image90.gif\r
-image71.jpg\r
-image60.jpg\r
-image8.jpg\r
-image91.gif\r
-image72.jpg\r
-image61.jpg\r
-image50.jpg\r
-image80.gif\r
-image6.gif\r
-image9.jpg\r
-image92.gif\r
-image73.jpg\r
-image62.jpg\r
-image51.jpg\r
-image81.gif\r
-image40.jpg\r
-image70.gif\r
-image7.gif\r
-i_blue.jpg\r
-image93.gif\r
-image74.jpg\r
-image63.jpg\r
-image52.jpg\r
-image82.gif\r
-image41.jpg\r
-image71.gif\r
-image30.jpg\r
-image8.gif\r
-image94.gif\r
-image75.jpg\r
-image64.jpg\r
-image53.jpg\r
-image83.gif\r
-image42.jpg\r
-image72.gif\r
-image61.gif\r
-image31.jpg\r
-image9.gif\r
-image20.jpg\r
-image95.gif\r
-image76.jpg\r
-image65.jpg\r
-image54.jpg\r
-image84.gif\r
-image43.jpg\r
-image73.gif\r
-image32.jpg\r
-image21.jpg\r
-image10.jpg\r
-image40.gif\r
-smesh.ppf\r
-default_ns.css\r
-whdata\whtdata0.xml\r
-whdata\whtdata0.htm\r
-whdata\whftdata0.xml\r
-whdata\whftdata0.htm\r
-whdata\whfwdata0.xml\r
-whdata\whfwdata0.htm\r
-whdata\whgdata0.xml\r
-whdata\whgdata0.htm\r
-whgdata\whlstt0.htm\r
-whgdata\whlstt1.htm\r
-whgdata\whlstt2.htm\r
-whgdata\whlstt3.htm\r
-whgdata\whlstt4.htm\r
-whgdata\whlstt5.htm\r
-whgdata\whlstt6.htm\r
-whgdata\whlstt7.htm\r
-whgdata\whlstt8.htm\r
-whgdata\whlstt9.htm\r
-whgdata\whlstt10.htm\r
-whgdata\whlstt11.htm\r
-whgdata\whlstt12.htm\r
-whgdata\whlstt13.htm\r
-whgdata\whlsti0.htm\r
-whgdata\whlstfl0.htm\r
-whgdata\whlstfl1.htm\r
-whgdata\whlstfl2.htm\r
-whgdata\whlstfl3.htm\r
-whgdata\whlstfl4.htm\r
-whgdata\whlstfl5.htm\r
-whgdata\whlstfl6.htm\r
-whgdata\whlstfl7.htm\r
-whgdata\whlstfl8.htm\r
-whgdata\whlstfl9.htm\r
-whgdata\whlstfl10.htm\r
-whgdata\whlstfl11.htm\r
-whgdata\whlstfl12.htm\r
-whgdata\whlstfl13.htm\r
-whgdata\whlstfl14.htm\r
-whgdata\whlstfl15.htm\r
-whgdata\whlstfl16.htm\r
-whgdata\whlstfl17.htm\r
-whgdata\whlstfl18.htm\r
-whgdata\whlstfl19.htm\r
-whgdata\whlstfl20.htm\r
-whgdata\whlstfl21.htm\r
-whgdata\whlstfl22.htm\r
-whgdata\whlstfl23.htm\r
-whgdata\whlstf0.htm\r
-whgdata\whlstf1.htm\r
-whgdata\whlstf2.htm\r
-whgdata\whlstf3.htm\r
-whgdata\whlstf4.htm\r
-whgdata\whlstf5.htm\r
-whgdata\whlstf6.htm\r
-whgdata\whlstf7.htm\r
-whgdata\whlstg0.htm\r
-smesh.htm\r
-smesh_csh.htm\r
-smesh_rhc.htm\r
diff --git a/doc/salome/gui/SMESH/cshdat_robohelp.htm b/doc/salome/gui/SMESH/cshdat_robohelp.htm
deleted file mode 100755 (executable)
index 3baed18..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-<html>\r
-<head>\r
-<title>SMESH reference manual</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-</head>\r
-<body>\r
-<script language="JavaScript">\r
-<!--\r
-\r
-var gArrayCsh = new Array();\r
-\r
-var gstrWindowOption = "";\r
-var gstrURL = "";\r
-var gbWithNavPane = false;\r
-\r
-function CshEntityItem(strAliasId, nTopicNum, strUrl) \r
-{\r
-    this.strAliasId = strAliasId;\r
-    this.nTopicNum = nTopicNum;\r
-    this.strUrl = strUrl;\r
-}\r
-\r
-\r
-//Try to get to topic number from hash string\r
-function GetTopicNumberAuto(strMayBeNumber)\r
-{\r
-   var nNum = -1;\r
-   if (strMayBeNumber.length >= 1)\r
-   {\r
-               var strTmp = strMayBeNumber;\r
-               var iEnd = strTmp.length;\r
-               for (var i=0; i<iEnd; i++)\r
-               {\r
-                         var ch = strTmp.charAt(i);\r
-                         if (!((ch == "0") || (ch == "1") ||\r
-                               (ch == "2") || (ch == "3") ||\r
-                               (ch == "4") || (ch == "5") ||\r
-                               (ch == "6") || (ch == "7") ||\r
-                               (ch == "8") || (ch == "9")))\r
-                             return GetTopicNumberById(strTmp);\r
-               }\r
-               nNum = parseInt(strTmp);\r
-   }\r
-   return nNum;\r
-}\r
-\r
-function GetTopicNumber(strHashString)\r
-{\r
-       var nTopicEndPos = strHashString.indexOf(',')\r
-       if (nTopicEndPos == -1) { // no window option.\r
-               return GetTopicNumberOnly(strHashString);\r
-       }\r
-       else {\r
-               var strWindowOption = strHashString.substring(nTopicEndPos + 1, strHashString.length);\r
-               var strWithNavPane = 'withnavpane=true';\r
-               if (strWindowOption.toLowerCase().indexOf(strWithNavPane) == 0)\r
-               {\r
-                       if (strWindowOption.length > strWithNavPane.length)\r
-                               gstrWindowOption = strWindowOption.substring(strWithNavPane.length + 1);\r
-                       else\r
-                               gstrWindowOption = "";\r
-                       gbWithNavPane = true;\r
-               }\r
-               else\r
-                       gstrWindowOption = strWindowOption;\r
-               return GetTopicNumberOnly(strHashString.substring(0, nTopicEndPos));            \r
-       }\r
-}\r
-\r
-function GetTopicNumberOnly(strTopicString)\r
-{\r
-       var nEqualPos = strTopicString.indexOf('=');\r
-       if (nEqualPos == -1) {\r
-               return GetTopicNumberAuto(strTopicString);\r
-       }\r
-       else {\r
-               var strValue=strTopicString.substring(nEqualPos + 1, strTopicString.length);\r
-               if (strTopicString.toLowerCase().indexOf("topicnumber") == 0) {\r
-                       return parseInt(strValue);\r
-               } else if (strTopicString.toLowerCase().indexOf("context") == 0) {\r
-                       return GetTopicNumberById(strValue);\r
-               } else if (strTopicString.toLowerCase().indexOf("remoteurl") == 0) {\r
-                       gstrURL = strValue;\r
-                       return -1;\r
-               }\r
-\r
-       }\r
-}\r
-\r
-//Find HomePage of the WebHelp system\r
-// we try to get the topic from remote project if it exists.\r
-function RedirectToHomePage()\r
-{\r
-       if (parent && parent != this && parent.goNext)\r
-       {\r
-               var sHome = parent.goNext();\r
-               if (sHome != "")\r
-                       RedirectTo(sHome);\r
-       }\r
-}\r
-\r
-function getHomePage()\r
-{\r
-       if (parent && parent != this && parent.getRelHomePage)\r
-       {\r
-               return parent.getRelHomePage(document.location.href);\r
-       }\r
-       return "";\r
-}\r
-\r
-function addRemoteProject(strPath)\r
-{\r
-       if (parent && parent != this && parent.addProject)\r
-       {\r
-               parent.addProject(strPath);\r
-       }\r
-}\r
-\r
-//Redirect page to...\r
-function RedirectTo(strUrl)\r
-{\r
-   if (gstrWindowOption.length != 0) {\r
-               var wnd = window.open(strUrl, "HelpStub", gstrWindowOption);\r
-               // close current window and rename the stub window to current window.\r
-               if (wnd)\r
-                       wnd.focus();\r
-               if (parent)\r
-                       parent.close();\r
-   }\r
-   else {\r
-       parent.document.location.href = strUrl;\r
-       window.focus();\r
-  }\r
-}\r
-\r
-//Prompt the user that we can not find...\r
-function FailToFind(strMsg)\r
-{\r
-    RedirectToHomePage();\r
-}\r
-\r
-//Find topic by topic number (defined in h file)\r
-function FindTopicByTopicNum(nTopicNum)\r
-{\r
-       var i = 0;\r
-       var iEnd = gArrayCsh.length;\r
-       for (i=0; i<iEnd; i++)\r
-       {\r
-               if (gArrayCsh[i].nTopicNum == nTopicNum)\r
-               {\r
-                       var strURL = gArrayCsh[i].strUrl;\r
-                       if (gbWithNavPane)\r
-                       {\r
-                               var strHomePage = getHomePage();\r
-                               if (strHomePage.length != 0)\r
-                                       strURL = strHomePage + strURL;\r
-                       }       \r
-                       RedirectTo(strURL);\r
-                       return true;\r
-               }\r
-       }\r
-       FailToFind("Fail to find topic assocaite with topic number: " + nTopicNum);\r
-       return false;\r
-}\r
-\r
-//Find topic by topic id (alias id defined in ali file)\r
-function GetTopicNumberById(strTopicId)\r
-{\r
-   var i = 0;\r
-   var iEnd = gArrayCsh.length;\r
-   for (i=0; i<iEnd; i++)\r
-   {\r
-       if (gArrayCsh[i].strAliasId.toLowerCase() == strTopicId.toLowerCase())\r
-       {\r
-           return gArrayCsh[i].nTopicNum;\r
-        }\r
-   }\r
-   gstrURL = "";\r
-   return -1;\r
-}\r
-\r
-//Set Context-sensitive help entity...\r
-function SetCsh(n, strAliasId, nTopicNum, strUrl)\r
-{\r
-   gArrayCsh[n] = new CshEntityItem(strAliasId,nTopicNum,strUrl);\r
-}\r
-\r
-\r
-function getHash()\r
-{\r
-       if (parent && parent != this)\r
-               return parent.location.hash;\r
-       else\r
-               return "";\r
-}\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-\r
-\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-//Find CSH according to hash string after this page\r
-if (getHash().length > 0)\r
-{\r
-   // VH 05/16/00 now support \r
-   // TopicID=\r
-   // TopicNumber=\r
-   // RemoteURL=   \r
-   // and WindowsOptions\r
-   // with the format #a=xxx,b=xxx,c=xxx...\r
-   var strHashString = getHash().toString();\r
-   // change ? to : for remote URL. because java applet have some problem to pass a URL with two : inside the URL so we changed it. \r
-   // so here need to change it back.\r
-   strHashString = strHashString.substring(1,strHashString.length);\r
-   strHashString = strHashString.replace("%072%057%057", "://");\r
-   var nTopicNum = GetTopicNumber(strHashString);\r
-\r
-   if (nTopicNum != -1)\r
-   {\r
-      FindTopicByTopicNum(nTopicNum);\r
-   }\r
-   else\r
-   {\r
-      if (gstrURL.length > 0) \r
-       RedirectTo(gstrURL);\r
-      else\r
-       RedirectToHomePage();\r
-   }\r
-}\r
-else\r
-{\r
-   RedirectToHomePage();\r
-}\r
-//-->\r
-</script>\r
-<noscript>\r
- <p> Your browser does not support JavaScript. WebHelp Context-Sensitive Help requires JavaScript support to run.</p>\r
-</noscript>\r
-</body>\r
-</html>\r
-\r
-\r
-\r
-\r
-\r
-\r
diff --git a/doc/salome/gui/SMESH/cshdat_webhelp.htm b/doc/salome/gui/SMESH/cshdat_webhelp.htm
deleted file mode 100755 (executable)
index 5712886..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-<html>\r
-<head>\r
-<title>SMESH reference manual</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-</head>\r
-<body>\r
-<script language="JavaScript">\r
-<!--\r
-\r
-var gArrayCsh = new Array();\r
-\r
-var gstrWindowOption = "";\r
-var gstrURL = "";\r
-var gbWithNavPane = false;\r
-\r
-function CshEntityItem(strAliasId, nTopicNum, strUrl) \r
-{\r
-    this.strAliasId = strAliasId;\r
-    this.nTopicNum = nTopicNum;\r
-    this.strUrl = strUrl;\r
-}\r
-\r
-\r
-//Try to get to topic number from hash string\r
-function GetTopicNumberAuto(strMayBeNumber)\r
-{\r
-   var nNum = -1;\r
-   if (strMayBeNumber.length >= 1)\r
-   {\r
-               var strTmp = strMayBeNumber;\r
-               var iEnd = strTmp.length;\r
-               for (var i=0; i<iEnd; i++)\r
-               {\r
-                         var ch = strTmp.charAt(i);\r
-                         if (!((ch == "0") || (ch == "1") ||\r
-                               (ch == "2") || (ch == "3") ||\r
-                               (ch == "4") || (ch == "5") ||\r
-                               (ch == "6") || (ch == "7") ||\r
-                               (ch == "8") || (ch == "9")))\r
-                             return GetTopicNumberById(strTmp);\r
-               }\r
-               nNum = parseInt(strTmp);\r
-   }\r
-   return nNum;\r
-}\r
-\r
-function GetTopicNumber(strHashString)\r
-{\r
-       var nTopicEndPos = strHashString.indexOf(',')\r
-       if (nTopicEndPos == -1) { // no window option.\r
-               return GetTopicNumberOnly(strHashString);\r
-       }\r
-       else {\r
-               var strWindowOption = strHashString.substring(nTopicEndPos + 1, strHashString.length);\r
-               var strWithNavPane = 'withnavpane=true';\r
-               if (strWindowOption.toLowerCase().indexOf(strWithNavPane) == 0)\r
-               {\r
-                       if (strWindowOption.length > strWithNavPane.length)\r
-                               gstrWindowOption = strWindowOption.substring(strWithNavPane.length + 1);\r
-                       else\r
-                               gstrWindowOption = "";\r
-                       gbWithNavPane = true;\r
-               }\r
-               else\r
-                       gstrWindowOption = strWindowOption;\r
-               return GetTopicNumberOnly(strHashString.substring(0, nTopicEndPos));            \r
-       }\r
-}\r
-\r
-function GetTopicNumberOnly(strTopicString)\r
-{\r
-       var nEqualPos = strTopicString.indexOf('=');\r
-       if (nEqualPos == -1) {\r
-               return GetTopicNumberAuto(strTopicString);\r
-       }\r
-       else {\r
-               var strValue=strTopicString.substring(nEqualPos + 1, strTopicString.length);\r
-               if (strTopicString.toLowerCase().indexOf("topicnumber") == 0) {\r
-                       return parseInt(strValue);\r
-               } else if (strTopicString.toLowerCase().indexOf("topicid") == 0) {\r
-                       return GetTopicNumberById(strValue);\r
-               } else if (strTopicString.toLowerCase().indexOf("remoteurl") == 0) {\r
-                       gstrURL = strValue;\r
-                       return -1;\r
-               }\r
-\r
-       }\r
-}\r
-\r
-//Find HomePage of the WebHelp system\r
-// we try to get the topic from remote project if it exists.\r
-function RedirectToHomePage()\r
-{\r
-       if (parent && parent != this && parent.goNext)\r
-       {\r
-               var sHome = parent.goNext();\r
-               if (sHome != "")\r
-                       RedirectTo(sHome);\r
-       }\r
-}\r
-\r
-function getHomePage()\r
-{\r
-       if (parent && parent != this && parent.getRelHomePage)\r
-       {\r
-               return parent.getRelHomePage(document.location.href);\r
-       }\r
-       return "";\r
-}\r
-\r
-function addRemoteProject(strPath)\r
-{\r
-       if (parent && parent != this && parent.addProject)\r
-       {\r
-               parent.addProject(strPath);\r
-       }\r
-}\r
-\r
-//Redirect page to...\r
-function RedirectTo(strUrl)\r
-{\r
-   if (gstrWindowOption.length != 0) {\r
-               var wnd = window.open(strUrl, "HelpStub", gstrWindowOption);\r
-               // close current window and rename the stub window to current window.\r
-               wnd.focus();\r
-               if (parent)\r
-                       parent.close();\r
-   }\r
-   else {\r
-       parent.document.location.href = strUrl;\r
-       window.focus();\r
-  }\r
-}\r
-\r
-//Prompt the user that we can not find...\r
-function FailToFind(strMsg)\r
-{\r
-    RedirectToHomePage();\r
-}\r
-\r
-//Find topic by topic number (defined in h file)\r
-function FindTopicByTopicNum(nTopicNum)\r
-{\r
-       var i = 0;\r
-       var iEnd = gArrayCsh.length;\r
-       for (i=0; i<iEnd; i++)\r
-       {\r
-               if (gArrayCsh[i].nTopicNum == nTopicNum)\r
-               {\r
-                       var strURL = gArrayCsh[i].strUrl;\r
-                       if (gbWithNavPane)\r
-                       {\r
-                               var strHomePage = getHomePage();\r
-                               if (strHomePage.length != 0)\r
-                                       strURL = strHomePage + strURL;\r
-                       }       \r
-                       RedirectTo(strURL);\r
-                       return true;\r
-               }\r
-       }\r
-       FailToFind("Fail to find topic assocaite with topic number: " + nTopicNum);\r
-       return false;\r
-}\r
-\r
-//Find topic by topic id (alias id defined in ali file)\r
-function GetTopicNumberById(strTopicId)\r
-{\r
-   var i = 0;\r
-   var iEnd = gArrayCsh.length;\r
-   for (i=0; i<iEnd; i++)\r
-   {\r
-       if (gArrayCsh[i].strAliasId == strTopicId)\r
-       {\r
-           return gArrayCsh[i].nTopicNum;\r
-        }\r
-   }\r
-   gstrURL = "";\r
-   return -1;\r
-}\r
-\r
-//Set Context-sensitive help entity...\r
-function SetCsh(n, strAliasId, nTopicNum, strUrl)\r
-{\r
-   gArrayCsh[n] = new CshEntityItem(strAliasId,nTopicNum,strUrl);\r
-}\r
-\r
-\r
-function getHash()\r
-{\r
-       if (parent && parent != this)\r
-               return parent.location.hash;\r
-       else\r
-               return "";\r
-}\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-\r
-\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-//Find CSH according to hash string after this page\r
-if (getHash().length > 0)\r
-{\r
-   // VH 05/16/00 now support \r
-   // TopicID=\r
-   // TopicNumber=\r
-   // RemoteURL=   \r
-   // and WindowsOptions\r
-   // with the format #a=xxx,b=xxx,c=xxx...\r
-   var strHashString = getHash().toString();\r
-   // change ? to : for remote URL. because java applet have some problem to pass a URL with two : inside the URL so we changed it. \r
-   // so here need to change it back.\r
-   strHashString = strHashString.substring(1,strHashString.length);\r
-   strHashString = strHashString.replace("%072%057%057", "://");\r
-   var nTopicNum = GetTopicNumber(strHashString);\r
-\r
-   if (nTopicNum != -1)\r
-   {\r
-      FindTopicByTopicNum(nTopicNum);\r
-   }\r
-   else\r
-   {\r
-      if (gstrURL.length > 0) \r
-       RedirectTo(gstrURL);\r
-      else\r
-       RedirectToHomePage();\r
-   }\r
-}\r
-else\r
-{\r
-   RedirectToHomePage();\r
-}\r
-//-->\r
-</script>\r
-<noscript>\r
- <p> Your browser does not support JavaScript. WebHelp Context-Sensitive Help requires JavaScript support to run.</p>\r
-</noscript>\r
-</body>\r
-</html>\r
-\r
-\r
-\r
-\r
-\r
-\r
diff --git a/doc/salome/gui/SMESH/default.css b/doc/salome/gui/SMESH/default.css
deleted file mode 100755 (executable)
index d2d425a..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-/*=(===============================================================)*/\r
-\r
-/*=(===============================================================)*/\r
-/*=(Created with RoboEditor.)=======================================*/\r
-/*=(===============================================================)*/\r
-\r
-BODY {\r
-       background-color: #ffffff;\r
-       font-family: "Times New Roman", serif;\r
-}\r
-\r
-H1 {\r
-       font-weight: bold;\r
-       font-size: 24.0pt;\r
-}\r
-\r
-/*=(Generated Code)=================================================*/\r
-/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
-/*begin!kadov{{=====================================================*/ \r
-LI.kadov-H1 {\r
-       font-weight: bold;\r
-       font-size: 24.0pt;\r
-}\r
-/*}}end!kadov=======================================================*/ \r
-\r
-\r
-\r
-H2 {\r
-       font-weight: bold;\r
-       font-size: 18.0pt;\r
-}\r
-\r
-/*=(Generated Code)=================================================*/\r
-/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
-/*begin!kadov{{=====================================================*/ \r
-LI.kadov-H2 {\r
-       font-weight: bold;\r
-       font-size: 18.0pt;\r
-}\r
-/*}}end!kadov=======================================================*/ \r
-\r
-\r
-\r
-H3 {\r
-       font-weight: bold;\r
-       font-size: 14.0pt;\r
-}\r
-\r
-/*=(Generated Code)=================================================*/\r
-/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
-/*begin!kadov{{=====================================================*/ \r
-LI.kadov-H3 {\r
-       font-weight: bold;\r
-       font-size: 14.0pt;\r
-}\r
-/*}}end!kadov=======================================================*/ \r
-\r
-\r
-\r
-H4 {\r
-       font-weight: bold;\r
-       font-size: 12.0pt;\r
-}\r
-\r
-/*=(Generated Code)=================================================*/\r
-/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
-/*begin!kadov{{=====================================================*/ \r
-LI.kadov-H4 {\r
-       font-weight: bold;\r
-       font-size: 12.0pt;\r
-}\r
-/*}}end!kadov=======================================================*/ \r
-\r
-\r
-\r
-H5 {\r
-       font-weight: bold;\r
-       font-size: 10.0pt;\r
-}\r
-\r
-/*=(Generated Code)=================================================*/\r
-/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
-/*begin!kadov{{=====================================================*/ \r
-LI.kadov-H5 {\r
-       font-weight: bold;\r
-       font-size: 10.0pt;\r
-}\r
-/*}}end!kadov=======================================================*/ \r
-\r
-\r
-\r
-H6 {\r
-       font-weight: bold;\r
-       font-size: 8.0pt;\r
-}\r
-\r
-/*=(Generated Code)=================================================*/\r
-/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
-/*begin!kadov{{=====================================================*/ \r
-LI.kadov-H6 {\r
-       font-weight: bold;\r
-       font-size: 8.0pt;\r
-}\r
-/*}}end!kadov=======================================================*/ \r
-\r
-\r
-\r
-P {\r
-       font-size: 12.0pt;\r
-       margin-top: 0pt;\r
-       margin-bottom: 0pt;\r
-}\r
-\r
-/*=(Generated Code)=================================================*/\r
-/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
-/*begin!kadov{{=====================================================*/ \r
-LI.kadov-P {\r
-       font-size: 12.0pt;\r
-}\r
-/*}}end!kadov=======================================================*/ \r
-\r
-\r
-\r
-A.expandspot {\r
-       color: #008000;\r
-       cursor: hand;\r
-       font-style: italic;\r
-       x-text-underline: off;\r
-       x-text-overline: off;\r
-       x-text-line-through: off;\r
-       /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ \r
-}\r
-\r
-SPAN.expandtext {\r
-       font-style: italic;\r
-       font-weight: normal;\r
-       color: #ff0000;\r
-}\r
-\r
-A.dropspot {\r
-       cursor: hand;\r
-       color: #008000;\r
-       font-style: italic;\r
-       x-text-underline: off;\r
-       x-text-overline: off;\r
-       x-text-line-through: off;\r
-       /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ \r
-}\r
-\r
-A.glossterm {\r
-       color: #800000;\r
-       cursor: hand;\r
-       font-style: italic;\r
-       x-text-underline: off;\r
-       x-text-overline: off;\r
-       x-text-line-through: off;\r
-       /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ \r
-}\r
-\r
-SPAN.glosstext {\r
-       font-style: italic;\r
-       font-weight: normal;\r
-       color: #0000ff;\r
-}\r
-\r
-OL,\r
-UL {\r
-       margin-top: 0px;\r
-       margin-bottom: 0px;\r
-}\r
-\r
-A:active {\r
-}\r
-\r
-A:hover {\r
-       x-text-underline: Off;\r
-       /*begin!kadov{{*/ text-decoration: none; /*}}end!kadov*/ \r
-}\r
-\r
-A:link {\r
-       x-text-underline: Off;\r
-       /*begin!kadov{{*/ text-decoration: none; /*}}end!kadov*/ \r
-}\r
-\r
-A:visited {\r
-       x-text-underline: Off;\r
-       /*begin!kadov{{*/ text-decoration: none; /*}}end!kadov*/ \r
-}\r
-\r
-P.TODO {\r
-       font-weight: normal;\r
-       font-style: italic;\r
-       font-family: "Arial Black", sans-serif;\r
-}\r
-\r
-/*=(Generated Code)=================================================*/\r
-/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
-/*begin!kadov{{=====================================================*/ \r
-LI.kadov-P-CTODO {\r
-       font-weight: normal;\r
-       font-style: italic;\r
-       font-family: "Arial Black", sans-serif;\r
-}\r
-/*}}end!kadov=======================================================*/ \r
-\r
-\r
-\r
-\r
-/*=(===============================================================)*/\r
diff --git a/doc/salome/gui/SMESH/default.skn b/doc/salome/gui/SMESH/default.skn
deleted file mode 100755 (executable)
index f162a66..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-<?xml version="1.0"?>\r
-<sqwebskin version="1.0">\r
-       <summary>\r
-               <skinname>Default</skinname>\r
-               <defaulttab>Contents</defaulttab>\r
-               <font>font-family:Arial font-size:8pt font-weight:normal font-style:normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal</font>\r
-               <color></color>\r
-       </summary>\r
-       <panesummary>\r
-               <![CDATA[\r
-<frameset rows="32,*" >\r
-<frame name="Custom Toolbar Pane" noresize="yes" scrolling="no" id="3" />\r
-<frameset cols="220,*" frameborder="1" borderspace="0" >\r
-<frameset rows="24,*" >\r
-<frame name="MiniBar Pane" marginwidth="-1" scrolling="no" id="6" />\r
-<frame name="Navigation Pane" id="2" />\r
-</frameset>\r
-<frame name="Topic Pane" frameborder="1" borderspace="1" bordercolor="Gray" marginwidth="-1" marginheight="-1" id="4" />\r
-</frameset>\r
-</frameset>\r
-]]>\r
-       </panesummary>\r
-       <frameset rows="32,*">\r
-               <frame name="Custom Toolbar Pane" noresize="yes" scrolling="no" id="3"/>\r
-               <frameset cols="220,*" frameborder="1" borderspace="0">\r
-                       <frameset rows="24,*">\r
-                               <frame name="MiniBar Pane" marginwidth="-1" scrolling="no" id="6"/>\r
-                               <frame name="Navigation Pane" id="2"/>\r
-                       </frameset>\r
-                       <frame name="Topic Pane" frameborder="1" borderspace="1" bordercolor="Gray" marginwidth="-1" marginheight="-1" id="4"/>\r
-               </frameset>\r
-       </frameset>\r
-       <pane name="Custom Toolbar Pane">\r
-               <image></image>\r
-               <color>background:#99ccff</color>\r
-               <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
-               <btnselected>\r
-                       <color>background:#639ace</color>\r
-                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:White</font>\r
-               </btnselected>\r
-               <alignment>left</alignment>\r
-               <toolbaritem mode="BtnWithIcon Mode" type="built-in-content" id="1">\r
-                       <name>Contents</name>\r
-                       <text>::??DefaultWebSkinText??::</text>\r
-                       <color></color>\r
-                       <image></image>\r
-                       <icontype>default</icontype>\r
-                       <selected>\r
-                               <color></color>\r
-                               <image></image>\r
-                               <icontype>default</icontype>\r
-                       </selected>\r
-                       <style>100</style>\r
-               </toolbaritem>\r
-               <toolbaritem mode="BtnWithIcon Mode" type="built-in-index" id="2">\r
-                       <name>Index</name>\r
-                       <text>::??DefaultWebSkinText??::</text>\r
-                       <color></color>\r
-                       <image></image>\r
-                       <icontype>default</icontype>\r
-                       <selected>\r
-                               <color></color>\r
-                               <image></image>\r
-                               <icontype>default</icontype>\r
-                       </selected>\r
-                       <style>100</style>\r
-               </toolbaritem>\r
-               <toolbaritem mode="BtnWithIcon Mode" type="built-in-search" id="3">\r
-                       <name>Search</name>\r
-                       <text>::??DefaultWebSkinText??::</text>\r
-                       <color></color>\r
-                       <image></image>\r
-                       <icontype>default</icontype>\r
-                       <selected>\r
-                               <color></color>\r
-                               <image></image>\r
-                               <icontype>default</icontype>\r
-                       </selected>\r
-                       <style>100</style>\r
-               </toolbaritem>\r
-               <toolbaritem mode="BtnWithIcon Mode" type="built-in-glossary" id="4">\r
-                       <name>Glossary</name>\r
-                       <text>::??DefaultWebSkinText??::</text>\r
-                       <color></color>\r
-                       <image></image>\r
-                       <icontype>default</icontype>\r
-                       <selected>\r
-                               <color></color>\r
-                               <image></image>\r
-                               <icontype>default</icontype>\r
-                       </selected>\r
-                       <style>100</style>\r
-               </toolbaritem>\r
-               <toolbaritem mode="BtnWithIcon Mode" type="built-in-websearch" id="5">\r
-                       <name>WebSearch</name>\r
-                       <text>::??DefaultWebSkinText??::</text>\r
-                       <color></color>\r
-                       <image></image>\r
-                       <icontype>default</icontype>\r
-                       <selected>\r
-                               <color></color>\r
-                               <image></image>\r
-                               <icontype>default</icontype>\r
-                       </selected>\r
-                       <style>100</style>\r
-               </toolbaritem>\r
-               <toolbaritem mode="Form Mode" type="built-in-form" id="6">\r
-                       <name>Search Input</name>\r
-                       <image></image>\r
-                       <color></color>\r
-                       <textbox width="20"/>\r
-                       <title>\r
-                               <text></text>\r
-                       </title>\r
-                       <button mode="default graphic mode">\r
-                       </button>\r
-               </toolbaritem>\r
-               <toolbaritem mode="Logo Mode" type="built-in-logo" id="7">\r
-                       <name>Logo</name>\r
-                       <image></image>\r
-                       <author>eHelp Corporation</author>\r
-               </toolbaritem>\r
-       </pane>\r
-       <pane name="MiniBar Pane">\r
-               <image></image>\r
-               <color>background:#99ccff</color>\r
-               <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
-               <btnselected>\r
-                       <color>background:#639ace</color>\r
-                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:White</font>\r
-               </btnselected>\r
-               <toolbaritem mode="BtnWithIcon Mode" type="built-in-previous" id="8">\r
-                       <name>Previous</name>\r
-                       <text>::??DefaultWebSkinText??::</text>\r
-                       <color></color>\r
-                       <image></image>\r
-                       <icontype>default</icontype>\r
-                       <selected>\r
-                               <color></color>\r
-                               <image></image>\r
-                               <icontype>default</icontype>\r
-                       </selected>\r
-                       <style>100</style>\r
-               </toolbaritem>\r
-               <toolbaritem mode="BtnWithIcon Mode" type="built-in-next" id="9">\r
-                       <name>Next</name>\r
-                       <text>::??DefaultWebSkinText??::</text>\r
-                       <color></color>\r
-                       <image></image>\r
-                       <icontype>default</icontype>\r
-                       <selected>\r
-                               <color></color>\r
-                               <image></image>\r
-                               <icontype>default</icontype>\r
-                       </selected>\r
-                       <style>100</style>\r
-               </toolbaritem>\r
-               <toolbaritem mode="BtnWithIcon Mode" type="built-in-synctoc" id="10">\r
-                       <name>Sync TOC</name>\r
-                       <text>::??DefaultWebSkinText??::</text>\r
-                       <color></color>\r
-                       <image></image>\r
-                       <icontype>default</icontype>\r
-                       <selected>\r
-                               <color></color>\r
-                               <image></image>\r
-                               <icontype>default</icontype>\r
-                       </selected>\r
-                       <style>100</style>\r
-               </toolbaritem>\r
-               <toolbaritem mode="BtnWithIcon Mode" type="built-in-hide" id="11">\r
-                       <name>Hide</name>\r
-                       <text>::??DefaultWebSkinText??::</text>\r
-                       <color></color>\r
-                       <image></image>\r
-                       <icontype>default</icontype>\r
-                       <selected>\r
-                               <color></color>\r
-                               <image></image>\r
-                               <icontype>default</icontype>\r
-                       </selected>\r
-                       <style>100</style>\r
-               </toolbaritem>\r
-       </pane>\r
-       <pane name="Navigation Pane">\r
-               <image></image>\r
-               <color></color>\r
-               <label>\r
-                       <image></image>\r
-                       <color></color>\r
-               </label>\r
-               <subpane name="Contents">\r
-                       <image></image>\r
-                       <color>background:White alink:Silver hover-color:Navy</color>\r
-                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
-               </subpane>\r
-               <subpane name="Index">\r
-                       <image></image>\r
-                       <color>background:White alink:Silver hover-color:Navy</color>\r
-                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
-                       <inputbox>\r
-                               <image></image>\r
-                               <color>background:White</color>\r
-                               <textbox width="0"/>\r
-                               <title>\r
-                                       <text>::??DefaultWebSkinText??::</text>\r
-                                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Navy</font>\r
-                               </title>\r
-                               <button mode="none">\r
-                               </button>\r
-                       </inputbox>\r
-               </subpane>\r
-               <subpane name="Search">\r
-                       <image></image>\r
-                       <color>background:White alink:Silver hover-color:Navy</color>\r
-                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
-                       <inputbox>\r
-                               <image></image>\r
-                               <color>background:White</color>\r
-                               <textbox width="0"/>\r
-                               <title>\r
-                                       <text>::??DefaultWebSkinText??::</text>\r
-                                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Navy</font>\r
-                               </title>\r
-                               <button mode="default graphic mode">\r
-                               </button>\r
-                       </inputbox>\r
-               </subpane>\r
-               <subpane name="Glossary">\r
-                       <image></image>\r
-                       <color>background:White alink:Silver hover-color:Navy</color>\r
-                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
-                       <definitiontext>\r
-                               <text>::??DefaultWebSkinText??::</text>\r
-                               <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Navy</font>\r
-                               <color>background:White</color>\r
-                               <image></image>\r
-                       </definitiontext>\r
-                       <definition>\r
-                               <text>::??DefaultWebSkinText??::</text>\r
-                               <color></color>\r
-                               <image></image>\r
-                       </definition>\r
-                       <termtext>\r
-                               <text>::??DefaultWebSkinText??::</text>\r
-                               <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Navy</font>\r
-                               <color>background:White</color>\r
-                               <image></image>\r
-                       </termtext>\r
-                       <term>\r
-                               <text>::??DefaultWebSkinText??::</text>\r
-                               <color></color>\r
-                               <image></image>\r
-                       </term>\r
-               </subpane>\r
-       </pane>\r
-       <pane name="Topic Pane">\r
-               <in-topic-navbar>\r
-                       <alignment>none</alignment>\r
-               </in-topic-navbar>\r
-       </pane>\r
-</sqwebskin>\r
diff --git a/doc/salome/gui/SMESH/default_ns.css b/doc/salome/gui/SMESH/default_ns.css
deleted file mode 100755 (executable)
index 020a671..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-BODY { \r
-      background-color:#ffffff; \r
-      font-family:"Times New Roman" , serif;  }\r
-H1 { \r
-    font-weight:bold; \r
-    font-size:24.0pt; \r
-    font-family:"Times New Roman" , serif;  }\r
-LI.kadov-H1 { \r
-             font-weight:bold; \r
-             font-size:24.0pt;  }\r
-H2 { \r
-    font-weight:bold; \r
-    font-size:18.0pt; \r
-    font-family:"Times New Roman" , serif;  }\r
-LI.kadov-H2 { \r
-             font-weight:bold; \r
-             font-size:18.0pt;  }\r
-H3 { \r
-    font-weight:bold; \r
-    font-size:14.0pt; \r
-    font-family:"Times New Roman" , serif;  }\r
-LI.kadov-H3 { \r
-             font-weight:bold; \r
-             font-size:14.0pt;  }\r
-H4 { \r
-    font-weight:bold; \r
-    font-size:12.0pt; \r
-    font-family:"Times New Roman" , serif;  }\r
-LI.kadov-H4 { \r
-             font-weight:bold; \r
-             font-size:12.0pt;  }\r
-H5 { \r
-    font-weight:bold; \r
-    font-size:10.0pt; \r
-    font-family:"Times New Roman" , serif;  }\r
-LI.kadov-H5 { \r
-             font-weight:bold; \r
-             font-size:10.0pt;  }\r
-H6 { \r
-    font-weight:bold; \r
-    font-size:8.0pt; \r
-    font-family:"Times New Roman" , serif;  }\r
-LI.kadov-H6 { \r
-             font-weight:bold; \r
-             font-size:8.0pt;  }\r
-P { \r
-   font-size:12.0pt; \r
-   margin-top:1; \r
-   margin-bottom:1; \r
-   font-family:"Times New Roman" , serif;  }\r
-LI.kadov-P { \r
-            font-size:12.0pt;  }\r
-A.expandspot { \r
-              color:#008000; \r
-              cursor:hand; \r
-              font-style:italic; \r
-              x-text-underline:off; \r
-              x-text-overline:off; \r
-              x-text-line-through:off; \r
-              text-decoration:none none none;  }\r
-SPAN.expandtext { \r
-                 font-style:italic; \r
-                 font-weight:normal; \r
-                 color:#ff0000;  }\r
-A.dropspot { \r
-            cursor:hand; \r
-            color:#008000; \r
-            font-style:italic; \r
-            x-text-underline:off; \r
-            x-text-overline:off; \r
-            x-text-line-through:off; \r
-            text-decoration:none none none;  }\r
-A.glossterm { \r
-             color:#800000; \r
-             cursor:hand; \r
-             font-style:italic; \r
-             x-text-underline:off; \r
-             x-text-overline:off; \r
-             x-text-line-through:off; \r
-             text-decoration:none none none;  }\r
-SPAN.glosstext { \r
-                font-style:italic; \r
-                font-weight:normal; \r
-                color:#0000ff;  }\r
-OL { \r
-    margin-top:0px; \r
-    margin-bottom:0px; \r
-    font-family:"Times New Roman" , serif;  }\r
-UL { \r
-    margin-top:0px; \r
-    margin-bottom:0px; \r
-    font-family:"Times New Roman" , serif;  }\r
-A:active {  }\r
-A:hover { \r
-         x-text-underline:Off; \r
-         text-decoration:none;  }\r
-A:link { \r
-        x-text-underline:Off; \r
-        text-decoration:none;  }\r
-A:visited { \r
-           x-text-underline:Off; \r
-           text-decoration:none;  }\r
-P.TODO { \r
-        font-weight:normal; \r
-        font-style:italic; \r
-        font-family:"Arial Black" , sans-serif;  }\r
-LI.kadov-P-CTODO { \r
-                  font-weight:normal; \r
-                  font-style:italic; \r
-                  font-family:"Arial Black" , sans-serif;  }\r
-ol ol { \r
-       margin-top:1; \r
-       margin-bottom:1;  }\r
-ol ul { \r
-       margin-top:1; \r
-       margin-bottom:1;  }\r
-ul ul { \r
-       margin-top:1; \r
-       margin-bottom:1;  }\r
-ul ol { \r
-       margin-top:1; \r
-       margin-bottom:1;  }\r
diff --git a/doc/salome/gui/SMESH/ehlpdhtm.js b/doc/salome/gui/SMESH/ehlpdhtm.js
deleted file mode 100755 (executable)
index 86d26ea..0000000
+++ /dev/null
@@ -1,4033 +0,0 @@
-// eHelp® Corporation Dynamic HTML JavaScript \r
-// Copyright© 1998-2001 eHelp® Corporation.All rights reserved.\r
-// Version=4.57\r
-\r
-// Warning:Do not modify this file.It is generated by RoboHELP® and changes will be overwritten.\r
-\r
-//// Segment Begin -- (JavaScript 1.0)\r
-\r
-/// Section Begin - General and relative topics(JavaScript 1.0)\r
-\r
-//{{HH_SYMBOL_SECTION\r
-var HH_ChmFilename = "";\r
-var HH_WindowName = "";\r
-var HH_GlossaryFont = "";\r
-var HH_Glossary = "";\r
-var HH_Avenue = "";\r
-var HH_ActiveX = false;\r
-//}}HH_SYMBOL_SECTION\r
-\r
-//Begin to support previous generic parameters\r
-//Get the information about the browser.\r
-var gstrBsAgent        = navigator.userAgent.toLowerCase();\r
-var gnBsVer                    = parseInt(navigator.appVersion);\r
-\r
-var gbBsIE             = (gstrBsAgent.indexOf('msie') != -1);\r
-var gbBsNS             = (gstrBsAgent.indexOf('mozilla') != -1) && ((gstrBsAgent.indexOf('spoofer') == -1) && (gstrBsAgent.indexOf('compatible') == -1));\r
-var gbBsOpera          = (gstrBsAgent.indexOf('opera') != -1);\r
-\r
-var gbBsIE3Before      = ((gbBsIE) && (gnBsVer <= 2));\r
-var gbBsNS3Before      = ((gbBsNS) && (gnBsVer <= 3));\r
-\r
-var gbBsNS2                    = ((gbBsNS) && (gnBsVer <= 2));\r
-var gbBsNS3                    = ((gbBsNS) && (gnBsVer == 3));\r
-var gbBsIE300301       = ((gbBsIE) && (gnBsVer == 2) && ((gstrBsAgent.indexOf("3.00") != -1)||(gstrBsAgent.indexOf("3.0a") != -1)||(gstrBsAgent.indexOf("3.0b")!=-1)||(gstrBsAgent.indexOf("3.01")!=-1)));\r
-var gbBsIE302          = ((gbBsIE) && (gnBsVer == 2) && (gstrBsAgent.indexOf("3.02") != -1));\r
-\r
-var gbBsNS4                    = ((gbBsNS) && (gnBsVer >= 4));\r
-var gbBsNS6                    = ((gbBsNS) && (gnBsVer >= 5));\r
-\r
-var gbBsIE4                    = ((gbBsIE) && (gnBsVer >= 4));\r
-var gbBsIE5                    = false;\r
-var gbBsIE55           = false;\r
-\r
-gbBsIE = (navigator.appName.indexOf("Microsoft") != -1);\r
-\r
-if (parseInt(navigator.appVersion) >= 4) {\r
-       gbBsIE4 = (navigator.appName.indexOf("Microsoft") != -1);\r
-\r
-       if (gbBsIE4) {\r
-               var nPos = gstrBsAgent.indexOf("msie");\r
-               var strIEversion = gstrBsAgent.substring(nPos + 5);\r
-               var nVersion =  parseFloat(strIEversion);\r
-               if (nVersion >= 5)\r
-                       gbBsIE5 = true;\r
-               if (nVersion >= 5.5)\r
-                       gbBsIE55 = true;\r
-       }\r
-}\r
-\r
-var gbBsMac                    = (gstrBsAgent.indexOf('mac') != -1);\r
-var gbBsWindows                = ((gstrBsAgent.indexOf('win') != -1) || (gstrBsAgent.indexOf('16bit') != -1));\r
-var gbBsOp3                    = (gstrBsAgent.indexOf('opera') != -1);\r
-\r
-// Utilities functions.\r
-function BsscHasExtJs()\r
-{\r
-       if( gbBsIE3Before || gbBsNS3Before)\r
-               return false;\r
-       return true;\r
-}\r
-\r
-// Register event handler\r
-var gBsOnLoads                         = new Array();  // An array holds all the onload event handler.\r
-var gBsOnClicks                = new Array();  // An array holds all the onClick event handler.\r
-var gBsOnUnLoads               = new Array();  // An array holds all the OnUnLoad event handler.\r
-var gBsOnMouseOvers    = new Array();  // An array holds all the OnMouseOver event handler.\r
-var gBsOnMouseOuts             = new Array();  // An array holds all the OnMouseOut event handler.\r
-\r
-var gbOrignalOnMouseDown = null;\r
-\r
-function BsscRegisterOnLoad(funcHandler)\r
-{\r
-       var nLength = gBsOnLoads.length;\r
-       gBsOnLoads[nLength] = funcHandler;\r
-}\r
-\r
-function BsscRegisterOnClick(funcHandler)\r
-{\r
-       var nLength = gBsOnClicks.length;\r
-       gBsOnClicks[nLength] = funcHandler;\r
-}\r
-\r
-function BsscRegisterOnUnLoad(funcHandler)\r
-{\r
-       var nLength = gBsOnUnLoads.length;\r
-       gBsOnUnLoads[nLength] = funcHandler;\r
-}\r
-\r
-function BsscRegisterOnMouseOver(funcHandler)\r
-{\r
-       var nLength = gBsOnMouseOvers.length;\r
-       gBsOnMouseOvers[nLength] = funcHandler;\r
-}\r
-\r
-function BsscRegisterOnMouseOut(funcHandler)\r
-{\r
-       var nLength = gBsOnMouseOuts.length;\r
-       gBsOnMouseOuts[nLength] = funcHandler;\r
-}\r
-\r
-\r
-function BsGeneralOnLoad()\r
-{\r
-       if (!gbBsIE4 && !gbBsNS4)\r
-               return;\r
-\r
-       // Make everything visible in navigator\r
-       if (gbBsNS4 && !gbBsNS6) {\r
-               // Make some special effects items visible\r
-               for (var iLayer = 0; iLayer < document.layers.length; iLayer++) {\r
-                       document.layers[iLayer].visibility = "show";\r
-                       document.layers[iLayer].left = 0;\r
-               }\r
-       }\r
-}\r
-\r
-// If resize the netscape browser, need to reload it.\r
-function BsReDo()\r
-{\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-// End of the local functions.\r
-\r
-// The following functions are used by the html files.\r
-function BSSCOnLoad()\r
-{\r
-       if( !BsscHasExtJs() )\r
-               return;\r
-       for (var nElement = gBsOnLoads.length - 1; nElement >= 0; nElement--)\r
-               gBsOnLoads[nElement]();\r
-}\r
-\r
-function BSSCOnClick()\r
-{\r
-       if (!BsscHasExtJs()) return;\r
-               \r
-       for (var nElement = gBsOnClicks.length - 1; nElement >= 0; nElement--)\r
-               gBsOnClicks[nElement]();\r
-}\r
-\r
-function BSSCOnUnload()\r
-{\r
-       if (!BsscHasExtJs()) return;\r
-       for (var nElement = gBsOnUnLoads.length - 1; nElement >= 0; nElement--)\r
-       {\r
-               gBsOnUnLoads[nElement]();\r
-       }\r
-}\r
-\r
-function BSSCOnMouseOver()\r
-{\r
-       if (!BsscHasExtJs()) return;\r
-       for (var nElement = gBsOnMouseOvers.length - 1; nElement >= 0; nElement--)\r
-       {\r
-               gBsOnMouseOvers[nElement]();\r
-       }\r
-}\r
-\r
-function BSSCOnMouseOut()\r
-{\r
-       if (!BsscHasExtJs()) return;\r
-       for (var nElement = gBsOnMouseOuts.length - 1; nElement >= 0; nElement--)\r
-       {\r
-               gBsOnMouseOuts[nElement]();\r
-       }\r
-}\r
-// End of invocation of the event handle functions.\r
-\r
-\r
-// Add the GereralOnLoad to the onload array.\r
-if (typeof(BsscRegisterOnLoad) != "undefined")\r
-{\r
-       BsscRegisterOnLoad(BsGeneralOnLoad);\r
-}\r
-if (gbBsNS4&&!gbBsNS6) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = BsReDo;\r
-}\r
-//End to support previous generic parameters\r
-\r
-//Begin to support previous HHActiveX invoking\r
-function BsHHActivateComponents()\r
-{\r
-       if( HH_ActiveX && (HH_ChmFilename != "") && ((self == top) || (self == top.frames[0])))\r
-       {\r
-               var objBody = document.all.tags("BODY")[0];\r
-               if( typeof(objBody) == "object" )\r
-               {\r
-                       objBody.insertAdjacentHTML("beforeEnd", '<OBJECT ID="HHComponentActivator" CLASSID="CLSID:399CB6C4-7312-11D2-B4D9-00105A0422DF" width=0 height=0></OBJECT>');\r
-                       if (HHComponentActivator.object)\r
-                               HHComponentActivator.Activate(HH_ChmFilename, HH_WindowName, HH_GlossaryFont, HH_Glossary, HH_Avenue);\r
-               }\r
-       }\r
-}\r
-\r
-function BsHHActivXOnLoad()\r
-{      \r
-       if( gbBsIE4 )\r
-               BsHHActivateComponents(); \r
-}\r
-\r
-if( typeof(BsscRegisterOnLoad) != "undefined" )\r
-{\r
-       BsscRegisterOnLoad(BsHHActivXOnLoad);\r
-}\r
-//End to support previous HHActiveX invoking\r
-\r
-//Begin to support previous relative topics\r
-//If webHelp needs Related Topics DHTMLcode, it's supposed to add it here\r
-var gbPopupMenuTimeoutExpired = false;\r
-var gbInPopupMenu = false;\r
-var gbPopupMenuTopicList = null;\r
-var gOlddocumentClick = null;\r
-\r
-//////////////////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Popup Menu code\r
-//\r
-//////////////////////////////////////////////////////////////////////////////////////////\r
-\r
-var g_bIsPopupMenuInit = false;\r
-function _WritePopupMenuLayer()\r
-{\r
-       if (!g_bIsPopupMenuInit)\r
-        {\r
-         if (gbBsNS4) {\r
-//Do not try to write ininle styles for NS!  NS can not handle it and will not stop downloading the html page...\r
-          if (gbBsNS6)\r
-               document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");\r
-          else\r
-               document.write("<DIV CLASS='WebHelpPopupMenu' ID='PopupMenu'></DIV>");\r
-         } else{\r
-         document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");\r
-         if (gbBsIE4) {\r
-               document.write("<STYLE TYPE='text/css'>");\r
-               if (gbBsMac) {\r
-                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:10pt; font-style:normal;font-weight:normal;text-decoration:none;}");\r
-                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:10pt; font-style:normal;font-weight:normal;text-decoration:none;}");\r
-               } else {\r
-                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:8pt; font-style:normal;font-weight:normal;text-decoration:none;}");\r
-                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:8pt; font-style:normal;font-weight:normal;text-decoration:none;}");\r
-               }\r
-               document.write("</STYLE>");\r
-          }\r
-          }\r
-         g_bIsPopupMenuInit = true;\r
-       }\r
-}\r
-\r
-//Define variable arguments as: strTitle, strUrl\r
-function MTE() \r
-{\r
-       this.strTitle = MTE.arguments[0];\r
-       if (MTE.arguments.length > 1)\r
-               this.strURL = MTE.arguments[1];\r
-       else\r
-               this.strURL = this.strTitle;\r
-}\r
-\r
-// If the topic list is set, it is an array of TopicEntry objects (defined in WebHelp3.js)\r
-function PopupMenu_SetTopicList(aPopupTopicArray)\r
-{\r
-       gbPopupMenuTopicList = aPopupTopicArray;\r
-}\r
-\r
-\r
-//Seek for the bsscright frame \r
-function _SeekFrameByName( cRoot, strName )\r
-{\r
-       if( cRoot == null )     return null;\r
-       if( cRoot.frames == null )      return null;\r
-       if( cRoot.frames[strName] != null )     return cRoot.frames[strName];\r
-       for (var i=0; i<cRoot.frames.length; i++)\r
-       {\r
-               var cObj = null;\r
-               if (!gbBsNS6) \r
-                       cObj = _SeekFrameByName( cRoot.frames(i).document, strName );\r
-               else\r
-                       cObj = _SeekFrameByName( cRoot.frames[i], strName );\r
-               if( cObj != null )              return cObj;\r
-       };\r
-       return null;\r
-}\r
-function _GetFrameByName( cRoot, strName )\r
-{\r
-       if( cRoot == null )     return null;\r
-       var cRet = _SeekFrameByName(cRoot, strName);\r
-       if( cRet != null )      return cRet;\r
-       if (cRoot.parent != cRoot)\r
-               return _GetFrameByName( cRoot.parent, strName );\r
-       else\r
-               return null;\r
-}\r
-\r
-function _PopupMenu_Invoke(fn_arguments)\r
-{\r
-       // Make sure we have reasonable arguments\r
-       var argLen = fn_arguments.length;\r
-       if (argLen < 3) {\r
-               return false;\r
-       }\r
-\r
-       // Check to see if we only have one target\r
-       var strTarget = "";\r
-       var targetDoc = null;\r
-       if (fn_arguments[1] == '') {\r
-               if (BSSCPopup_IsPopup()) {\r
-                       targetDoc = parent;\r
-                       strTarget = "TARGET= _parent";\r
-               }\r
-               else\r
-                       targetDoc = window.document;\r
-       } else {\r
-               targetDoc = _GetFrameByName( parent, fn_arguments[1] );\r
-\r
-               strTarget = "TARGET='" + fn_arguments[1] + "'";\r
-       }\r
-\r
-       if ((!gbBsIE4 && !gbBsNS4) || ((gbBsMac) && (gbBsIE4) && (window.event.srcElement.tagName == "AREA"))) {\r
-       \r
-               var argLen      = fn_arguments.length;\r
-\r
-               // Create the window that the hyperlinks will go into\r
-               var nHeight = argLen * 15;\r
-               var nWidth = 400;\r
-               var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=auto";\r
-               strParam += ",height=" + nHeight + ",width=200";\r
-               strParam += ",resizable";\r
-\r
-               // Create a temporary window first to ensure the real popup comes up on top\r
-               var wndTemp = window.open("", "temp", strParam);\r
-\r
-               // Create the real popup window\r
-               var wndPopupLinks = window.open("", "popuplinks", strParam);\r
-\r
-               // Close the temporary\r
-               wndTemp.close();\r
-\r
-               wndPopupLinks.document.open("text/html");\r
-               wndPopupLinks.document.write("<html><head></head>");\r
-               wndPopupLinks.document.write("<body onBlur=\'self.focus();\'>");\r
-               var strParaLine = "";\r
-               for (var i = 0; i < (argLen - 2) / 2; i++) {\r
-                       strParaLine = "";\r
-                       strParaLine += "<a href=\"javascript:";\r
-                       if (gbBsIE) {\r
-                               strParaLine += "onBlur=null; ";\r
-                       }\r
-                       strParaLine += "opener.location=\'";\r
-                       strParaLine += fn_arguments[2 * i + 3];\r
-                       strParaLine += "\';close();\"";\r
-                       strParaLine += strTarget;\r
-\r
-                       strParaLine += ">";\r
-                       strParaLine += fn_arguments[2 * i + 2];\r
-                       strParaLine += "</a>";\r
-                       strParaLine += "<br>";\r
-                       wndPopupLinks.document.write(strParaLine);\r
-               }\r
-               wndPopupLinks.document.write("</body></html>");\r
-               wndPopupLinks.document.close();\r
-               window.gbInPopupMenu = true;\r
-               if (!gbBsIE) {\r
-                       wndPopupLinks.focus();\r
-               }\r
-\r
-               return false;\r
-       }\r
-\r
-\r
-       if (((argLen < 5) && ((isNaN(fn_arguments[2])) || (gbPopupMenuTopicList == null))) ||\r
-               ((argLen < 4) && ((!isNaN(fn_arguments[2])) && (gbPopupMenuTopicList != null)))) {\r
-               // Get the place that we will be putting the topic into\r
-               var strURL = "";\r
-               if (isNaN(fn_arguments[2]) ||  (gbPopupMenuTopicList == null)) {\r
-                       strURL = fn_arguments[3];\r
-               }\r
-               else    {\r
-                       strURL = gbPopupMenuTopicList[fn_arguments[2]].strURL;\r
-               }\r
-\r
-               if (targetDoc != null) {\r
-                       targetDoc.location.href = strURL;\r
-               }\r
-               else {\r
-                       if (fn_arguments[1] != null && typeof(fn_arguments[1]) != "undefined")\r
-                               window.open(strURL, fn_arguments[1]);\r
-                       else\r
-                               window.open(strURL);\r
-               }               \r
-               window.gbInPopupMenu = true;\r
-               return false;\r
-       }\r
-       \r
-       var strMenu = "";\r
-       if (gbBsNS4) {\r
-               strMenu = '<TABLE BORDER="1" CELLSPACING=0 CELLPADDING=3 BGCOLOR="#c0c0c0">';\r
-       } else {\r
-               strMenu = '<TABLE STYLE="border:2px outset white;" CELLSPACING=0';\r
-               if (gbBsMac) {\r
-                       strMenu += ' CELLPADDING=4';\r
-               } else {\r
-                       strMenu += ' CELLPADDING=2';\r
-               }       \r
-               strMenu += ' BGCOLOR=#c0c0c0>';\r
-       }\r
-       // Add each of the items\r
-       var i = 2;\r
-       while (i <= argLen - 1) {\r
-               strMenu += '<TR><TD><NOBR>'\r
-               // If the destination is a number then look it up in the topic list\r
-               if (isNaN(fn_arguments[i]) ||  (gbPopupMenuTopicList == null)) {\r
-                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + fn_arguments[i + 1] + '"' + strTarget;\r
-               } else {\r
-                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + gbPopupMenuTopicList[fn_arguments[i]].strURL + '"' + strTarget;\r
-               }\r
-               strMenu += ' onclick="PopupMenu_HandleClick(event);"';\r
-               strMenu += ' onmouseover="PopupMenu_Over(event);"';\r
-               strMenu += ' onmouseout="PopupMenu_Out(event);"';\r
-               strMenu += '>';\r
-               if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) {\r
-                       strMenu += '<SPAN CLASS="PopupNotOver">' + fn_arguments[i] + '</SPAN>';\r
-               } else {\r
-                       strMenu += '<SPAN CLASS="PopupNotOver">' + gbPopupMenuTopicList[fn_arguments[i]].strTitle + '</SPAN>';\r
-               }\r
-               strMenu += '</A></DIV></NOBR></TD></TR>';\r
-\r
-               if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) {\r
-                       i += 2;\r
-               } else {\r
-                       i += 1;\r
-               }\r
-       }\r
-       strMenu += "</TABLE>";\r
-\r
-       if (gbBsMac) {\r
-       // totally hack. because ie5 in mac need something. </TABLE> is one of them. mac is mad.\r
-               strMenu +="<TABLE></TABLE>";\r
-       }\r
-\r
-       var layerPopup = null;\r
-       var stylePopup = null;\r
-       var nEventX = 0;\r
-       var nEventY = 0;\r
-       var nWindowWidth = 0;\r
-       if (gbBsIE4) {\r
-\r
-               layerPopup = document.all["PopupMenu"];\r
-               layerPopup.innerHTML = strMenu;\r
-               stylePopup = layerPopup.style;\r
-\r
-               _BSPSGetClientSize();\r
-\r
-               // Get the position of the item causing the event (relative to its parent)\r
-               nEventX = window.event.clientX;\r
-               nEventY = window.event.clientY;\r
-\r
-               if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) {\r
-                       nEventY += document.body.scrollTop + 10;\r
-               } else {\r
-                       nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20;\r
-               }\r
-               stylePopup.top = nEventY;\r
-               \r
-               var nPopupWidth = layerPopup.scrollWidth;\r
-               if (gbBsMac) {\r
-                       nPopupWidth = 80; // we have no idea how to get the dynamic width of the popup.\r
-               }\r
-               if (nEventX + nPopupWidth + 20 > gBsClientWidth) {\r
-                       if (gBsClientWidth - nPopupWidth < 5) {\r
-                               stylePopup.left = 5;\r
-                       } else {\r
-                               stylePopup.left = gBsClientWidth - nPopupWidth - 5;\r
-                       }\r
-               } else {\r
-                       stylePopup.left = nEventX + document.body.scrollLeft + 20;\r
-               }\r
-\r
-               stylePopup.visibility = "visible";\r
-               if (!gOlddocumentClick && document.onclick)\r
-                       gOlddocumentClick = document.onclick;\r
-               document.onclick = PopupMenu_HandleClick;\r
-\r
-       } else if (gbBsNS6) {\r
-               layerPopup = document.getElementById("PopupMenu");\r
-               layerPopup.style.visibility = "hidden";\r
-       \r
-               var e = fn_arguments[0];\r
-               nEventX = e.pageX;\r
-               nEventY = e.pageY;\r
-               _BSPSGetClientSize();\r
-               layerPopup.innerHTML = strMenu;\r
-\r
-               if (nEventY + layerPopup.offsetHeight + 20  <  window.pageYOffset + gBsClientHeight) {\r
-                       nEventY += 20;\r
-               } else {\r
-                       nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20;\r
-               }\r
-\r
-               if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) {\r
-                       if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) {\r
-                               nEventX = 5;\r
-                       } else {\r
-                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20;\r
-                       }\r
-               } else {\r
-                       nEventX += 20;\r
-               }\r
-               layerPopup.style.top = nEventY;\r
-               layerPopup.style.left = nEventX;\r
-               // set again to avoid the stupid frash in netscape 6.\r
-               layerPopup.innerHTML = strMenu;\r
-               layerPopup.style.visibility = "visible";\r
-               //window.captureEvents(Event.MOUSEDOWN);\r
-               if (!gOlddocumentClick && document.onclick)\r
-                       gOlddocumentClick = document.onclick;\r
-               window.onclick = PopupMenu_HandleClick;\r
-       }\r
-       else if (gbBsNS4) {\r
-               layerPopup = document.layers.PopupMenu;\r
-               layerPopup.visibility = "hide";\r
-               stylePopup = layerPopup.document;\r
-               stylePopup.write(strMenu);\r
-               stylePopup.close();\r
-               var e = fn_arguments[0];\r
-               nEventX = e.pageX;\r
-               nEventY = e.pageY;\r
-               _BSPSGetClientSize();\r
-               if (nEventY + layerPopup.clip.height + 20 < window.pageYOffset + gBsClientHeight) {\r
-                       nEventY += 20;\r
-               } else {\r
-                       nEventY = gBsClientHeight + window.pageYOffset- layerPopup.clip.height - 20;\r
-               }\r
-               layerPopup.top = nEventY;\r
-\r
-               if (nEventX + layerPopup.clip.width + 20 > gBsClientWidth + window.pageXOffset) {\r
-                       if (gBsClientWidth + window.pageXOffset - layerPopup.clip.width < 20) {\r
-                               nEventX = 5;\r
-                       } else {\r
-                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.clip.width - 20;\r
-                       }\r
-               } else {\r
-                       nEventX += 20;\r
-               }\r
-\r
-               layerPopup.left = nEventX;\r
-\r
-               layerPopup.visibility = "show";\r
-\r
-               window.captureEvents(Event.MOUSEDOWN);\r
-               if (!gOlddocumentClick && document.onmousedown)\r
-                       gOlddocumentClick = document.onmousedown;\r
-               window.onmousedown = PopupMenu_HandleClick;\r
-       }\r
-\r
-       window.gbInPopupMenu = true;\r
-       window.gbPopupMenuTimeoutExpired = false;\r
-       setTimeout("PopupMenu_Timeout();", 100);\r
-       return false;\r
-}\r
-\r
-\r
-function PopupMenu_Timeout()\r
-{\r
-       window.gbPopupMenuTimeoutExpired = true;\r
-}\r
-\r
-function PopupMenu_Over(e)\r
-{\r
-    if (gbBsIE4) {\r
-               e.srcElement.className = "PopupOver";\r
-    } else if (gbBsNS4) {\r
-//             this.bgColor = "red";\r
-//        e.target.document.className = "PopupOver";\r
-    }\r
-       return;\r
-}\r
-\r
-function PopupMenu_Out(e)\r
-{\r
-    if (gbBsIE4) {\r
-               e.srcElement.className = "PopupNotOver";\r
-    } else if (gbBsNS4) {\r
-        this.bgColor = "#f0f0f0";\r
-    }\r
-       return;\r
-}\r
-\r
-\r
-function PopupMenu_HandleClick(e)\r
-{\r
-       if (window.gbPopupMenuTimeoutExpired) {\r
-\r
-               window.gbInPopupMenu = false;\r
-\r
-               if (gbBsNS4 && !gbBsNS6) {\r
-                       window.releaseEvents(Event.MOUSEDOWN);\r
-               }\r
-\r
-               var layerPopup = null;\r
-               var stylePopup = null;\r
-               if (gbBsIE4) {\r
-                       layerPopup = document.all["PopupMenu"];\r
-                       stylePopup = layerPopup.style;\r
-                       stylePopup.visibility = "hidden";\r
-               } else if (gbBsNS6) {\r
-                       layerPopup = document.getElementById("PopupMenu");\r
-                       layerPopup.style.visibility = "hidden";\r
-               } else if (gbBsNS4) {\r
-                       layerPopup = document.layers.PopupMenu;\r
-                       layerPopup.visibility = "hide";\r
-               }\r
-       \r
-               if (gOlddocumentClick)\r
-               {\r
-                       if (gbBsNS4 && !gbBsNS6)\r
-                               document.onmousedown = gOlddocumentClick;\r
-                       else\r
-                               document.onclick = gOlddocumentClick;\r
-               }\r
-       }\r
-       return;\r
-}\r
-\r
-// This function should be deleted when all old projects are cleaned up\r
-function BSPSWritePopupFrameForIE4()\r
-{\r
-       return false;\r
-}\r
-\r
-/////////////////////////////////////////////////////////////////////\r
-function BSSCPopup_ClickMac()\r
-{\r
-       if ((!DHTMLPopupSupport()) && (gbBsIE4))\r
-       {       \r
-               var bClickOnAnchor = false;\r
-               var el;\r
-               if ((window.event != null) &&\r
-                   (window.event.srcElement != null))\r
-               {\r
-                   el = window.event.srcElement;\r
-                       while (el != null)\r
-                       {\r
-                               if ((el.tagName == "A") || (el.tagName == "AREA"))      {\r
-                                       bClickOnAnchor = true;\r
-                                       break;\r
-                               }\r
-                               if (el.tagName == "BODY") {\r
-                                       break;\r
-                               }\r
-                               el = el.parentElement;\r
-                       }\r
-               }\r
-               if (BSSCPopup_IsPopup())\r
-               {\r
-                       if (!bClickOnAnchor) {\r
-                               parent.window.gPopupWindow = null;\r
-                               self.close();\r
-                       }\r
-               }\r
-               else\r
-               {\r
-                       bClosePopupWindow = true;\r
-                       if ((bClickOnAnchor) &&\r
-                               (el.href) &&\r
-                           ((el.href.indexOf("javascript:BSSCPopup") != -1) || (el.href.indexOf("javascript:null") != -1) || (el.href.indexOf("javascript:void(0)") != -1)))\r
-                       {\r
-                               bClosePopupWindow = false;\r
-                       }\r
-                       if (bClosePopupWindow)\r
-                       {\r
-                               if (window.gPopupWindow != null && !window.gPopupWindow.closed )\r
-                               {\r
-                                       window.gPopupWindow.close();\r
-                               }\r
-                       }\r
-               }\r
-       }\r
- }\r
-\r
-//////////////////////////////////////////////////////////////////////\r
-\r
-function BsPopupOnClick()\r
-{\r
-       if (!gbBsIE4)\r
-               return;\r
-\r
-       BSSCPopup_ClickMac();\r
-}\r
-\r
-function _BSSCOnError(message)\r
-{\r
-       if(-1 != message.indexOf("denied") \r
-               || -1 != message.indexOf("Object required"))\r
-        return true;\r
-}\r
-\r
-//End to support previous relative topics\r
-\r
-\r
-/// Section End - General and relative topics (JavaScript 1.0)\r
-\r
-/// Section Begin  - Popup (JavaScript 1.0)\r
-\r
-//Begin to support previous popup functions\r
-//////////////////////////////////////////////////////////////////////////////////////////////\r
-//\r
-//     Begin DHTML Popup Functions\r
-//\r
-//////////////////////////////////////////////////////////////////////////////////////////////\r
-//variables used to isolate the browser type\r
-var gBsDoc                     = null;                 \r
-var gBsSty                     = null;\r
-var gBsHtm                     = null;\r
-var gBsStyVisShow      = null;\r
-var gBsStyVisHide      = null;\r
-var gBsClientWidth     = 640;\r
-var gBsClientHeight = 480;\r
-var gBsBrowser         = null;\r
-\r
-// here is the varible for judge popup windows size. these parameter is for IE5.0, it may need adjust for others.\r
-var gBRateH_W          = 0.618; // 1.618 Golden cut.\r
-var gBMaxXOfParent     = 0.8; \r
-var gBMaxYOfParent     = 0.8;\r
-var gBscrollHeight   = 16;\r
-var gBscrollWidth   =  16;\r
-var gBpermitXDelta     = 3;\r
-var gBpermitYDelta     = 3;\r
-\r
-\r
-var arrayPopupURL = new Array();\r
-var arrayAbsPopupURL = new Array();\r
-\r
-var arrayDirty = new Array();\r
-\r
-function setAbsPopupURL(nIndex, strURL)\r
-{\r
-       arrayAbsPopupURL[nIndex] = strURL;\r
-}\r
-\r
-function getAbsPopupURL(nIndex)\r
-{\r
-       if (nIndex == -1 || arrayAbsPopupURL.length <= nIndex) return null;\r
-       else \r
-               return arrayAbsPopupURL[nIndex];\r
-}\r
-\r
-function getPopupURL(nIndex)\r
-{\r
-       if (nIndex == -1 || arrayPopupURL.length <= nIndex) return null;\r
-       else \r
-               return arrayPopupURL[nIndex];\r
-}\r
-\r
-function getPopupID(nIndex)\r
-{\r
-       return gstrPopupID + nIndex;\r
-}\r
-\r
-function getPopupShadowID(nIndex)\r
-{\r
-       return gstrPopupShadowID + nIndex;\r
-}\r
-\r
-function getPopupTopicID(nIndex)\r
-{\r
-       return gstrPopupTopicID + nIndex;\r
-}\r
-\r
-function getPopupIFrameID(nIndex)\r
-{\r
-       return gstrPopupIFrameID + nIndex;\r
-}\r
-\r
-function getPopupIFrameName(nIndex)\r
-{\r
-       return gstrPopupIFrameName + nIndex;\r
-}\r
-\r
-\r
-function getPopupTopicStyle(nIndex)\r
-{\r
-       return eval("document.all['" + getPopupTopicID(nIndex) + "']").style;\r
-}\r
-\r
-function getPopupShadowStyle(nIndex)\r
-{\r
-       return eval("document.all['" + getPopupShadowID(nIndex) + "']").style;\r
-}\r
-\r
-function getPopupIFrame(nIndex)\r
-{\r
-\r
-       return eval("document.frames['" + getPopupIFrameName(nIndex) + "']");\r
-}\r
-\r
-function getPopupDivStyle(nIndex)\r
-{\r
-       return eval("document.all['" + getPopupID(nIndex) + "']").style;\r
-}\r
-\r
-function getPopupIFrameStyle(nIndex)\r
-{\r
-       return eval("document.all['" + getPopupIFrameName(nIndex) + "'].style");\r
-}\r
-\r
-\r
-function findDiv(strURL)\r
-{\r
-       var i = 0;\r
-       for (i = 0; i < arrayPopupURL.length; i ++ ) {\r
-               if (arrayPopupURL[i] == strURL) {\r
-                       return i;\r
-               }\r
-       }\r
-       return -1;\r
-}\r
-\r
-var gnToken = -1;\r
-function takeToken()\r
-{\r
-       gnToken ++;\r
-       if (gnToken > 10000) gnToken = 0;\r
-       return gnToken;\r
-}\r
-\r
-function IsValidToken(nToken)\r
-{\r
-       return (gnToken == nToken);\r
-}\r
-\r
-function addDiv(strURL)\r
-{\r
-       var i = 0; \r
-       for (i = 0; i < arrayPopupURL.length; i ++) {\r
-               if (arrayPopupURL[i] == null) {\r
-                       arrayPopupURL[i] = strURL;\r
-                       return i;\r
-               }\r
-       }       \r
-       arrayPopupURL[i] = strURL;\r
-       arrayDirty[i] = true;\r
-       return i;\r
-}\r
-\r
-function setDirty()\r
-{\r
-       var i = 0;\r
-       for (i = 0; i < arrayPopupURL.length; i ++ )\r
-               arrayDirty[i] = true;\r
-}\r
-\r
-function IsDirty(nIndex)\r
-{\r
-       if (nIndex == -1)\r
-               return true;\r
-       else \r
-               if (arrayDirty.length > nIndex) \r
-                       return arrayDirty[nIndex];\r
-               else\r
-                       return true;\r
-}\r
-\r
-function hideAll()\r
-{\r
-       var i = 0; \r
-       for (i = 0; i < arrayPopupURL.length; i ++ )\r
-               getPopupDivStyle(i).visibility = gBsStyVisHide;\r
-}\r
-\r
-function getCurrentPopupIFrame()\r
-{\r
-       var i = 0;\r
-       for (i = 0; i < arrayPopupURL.length; i ++)\r
-               if (getPopupDivStyle(i).visibility == gBsStyVisShow)\r
-                       return getPopupIFrame(i);\r
-       return null;\r
-}\r
-\r
-function setClear(nIndex)\r
-{\r
-       if (nIndex != -1)\r
-               arrayDirty[nIndex] = false;\r
-}\r
-\r
-function _BSSCCreatePopupDiv(strURL)\r
-{\r
-       var nIndex = findDiv(strURL);\r
-       if (nIndex == -1 ) {\r
-               nIndex = addDiv(strURL);\r
-               BsPopup_CreateDiv(nIndex);\r
-       }\r
-       else {\r
-               if (IsDirty(nIndex)) {\r
-                       if("object" == typeof(getPopupIFrame(nIndex).document))\r
-                               getPopupIFrame(nIndex).document.location.href = strURL;\r
-               }\r
-       }\r
-       return nIndex;\r
-\r
-}\r
-\r
-//the browser information itself\r
-function _BSPSBrowserItself()\r
-{\r
-       var agent  = navigator.userAgent.toLowerCase();\r
-       this.major = parseInt(navigator.appVersion);\r
-       this.minor = parseFloat(navigator.appVersion);\r
-       this.ns    = ((agent.indexOf('mozilla') != -1) && ((agent.indexOf('spoofer') == -1) && (agent.indexOf('compatible') == -1)));\r
-       this.ns2   = ((this.ns) && (this.major == 2));\r
-       this.ns3   = ((this.ns) && (this.major == 3));\r
-       this.ns4   = ((this.ns) && (this.major >= 4));\r
-       this.ns6   = ((this.ns) && (this.major >= 5));\r
-       this.ie    = (agent.indexOf("msie") != -1);\r
-       this.ie3   = ((this.ie) && (this.major == 2));\r
-       this.ie4   = ((this.ie) && (this.major >= 4));\r
-       this.op3   = (agent.indexOf("opera") != -1);\r
-\r
-       if (this.ns4)\r
-       {\r
-               gBsDoc          = "document";\r
-               gBsSty          = "";\r
-               gBsHtm          = ".document";\r
-               gBsStyVisShow   = "show";\r
-               gBsStyVisHide   = "hide";\r
-\r
-       }\r
-       else if (this.ie4)\r
-       {\r
-               gBsDoc           = "document.all";\r
-               gBsSty          = ".style";\r
-               gBsHtm          = "";\r
-               gBsStyVisShow   = "visible";\r
-               gBsStyVisHide   = "hidden";\r
-       }\r
-}\r
-\r
-//Here is the browser type \r
-function _BSPSGetBrowserInfo()\r
-{\r
-       gBsBrowser      = new _BSPSBrowserItself();\r
-}\r
-\r
-_BSPSGetBrowserInfo();\r
-\r
-//Get client size info\r
-function _BSPSGetClientSize()\r
-{\r
-       if (gBsBrowser.ns4)\r
-       {\r
-               gBsClientWidth  = innerWidth;\r
-               gBsClientHeight = innerHeight;\r
-\r
-       }\r
-       else if (gBsBrowser.ie4)\r
-       {\r
-               gBsClientWidth  = document.body.clientWidth;\r
-               gBsClientHeight = document.body.clientHeight;\r
-       }\r
-}\r
-\r
-\r
-var gstrPopupID = 'BSSCPopup';\r
-var gstrPopupShadowID = 'BSSCPopupShadow';\r
-var gstrPopupTopicID = 'BSSCPopupTopic';\r
-var gstrPopupIFrameID = 'BSSCPopupIFrame';\r
-var gstrPopupIFrameName = 'BSSCPopupIFrameName';\r
-\r
-var gstrPopupSecondWindowName = 'BSSCPopup';\r
-\r
-var gPopupWindow = null;\r
-var gnPopupClickX = 0;\r
-var gnPopupClickY = 0;\r
-\r
-var gnPopupScreenClickX = 0;\r
-var gnPopupScreenClickY = 0;\r
-\r
-var gbPopupTimeoutExpired = false;\r
-\r
-\r
-function DHTMLPopupSupport()\r
-{\r
-       if ((gbBsIE4) && (!gbBsMac)) {\r
-               return true;\r
-       }\r
-       return false;\r
-}\r
-\r
-\r
-\r
-function BSSCPopup_IsPopup()\r
-{\r
-       if (DHTMLPopupSupport() && (this.name.indexOf(gstrPopupIFrameName) != -1)) {\r
-               return true;\r
-       } else if ((gbBsNS4 || gbBsIE4) && (this.name.indexOf(gstrPopupID) != -1)) {\r
-               return true;\r
-       } else {\r
-               return false;\r
-       }\r
-}\r
-\r
-\r
-// If there is a hyperlink in a popup window, display the hyperlink in\r
-// the original window.\r
-if (BSSCPopup_IsPopup() && !gbBsIE4) {\r
-       document.write("<base target=\"_parent\">");\r
-}\r
-\r
-// Local functions.\r
-function BsPopup_CreateDiv(nIndex)\r
-{\r
-       if(!DHTMLPopupSupport())\r
-               return;\r
-       // DO NOT SET Width and height for the div, otherwize it will make IE4 popup do not work when view the topic alone.\r
-       var strPopupDiv = "<DIV ID='" + getPopupID(nIndex) + "' STYLE='position:absolute; top:-100; left:0; z-index:600; visibility:hidden;'>";\r
-       strPopupDiv += "<DIV ID='" + getPopupShadowID(nIndex) + "' STYLE=\"position:absolute;top:0; left:0;  background-color:#C0C0C0;\"></DIV>";\r
-       strPopupDiv += "<DIV ID='" + getPopupTopicID(nIndex) + "' STYLE=\"position:absolute;top:0; left:0;  background-color:#FFFFFF;border:1px #000000 outset;\">";\r
-       strPopupDiv += "<IFRAME title=\"Popup Window\" ID='" + getPopupIFrameID(nIndex) + "' name='" + getPopupIFrameName(nIndex) + "' src = '" + getPopupURL(nIndex) + "' frameborder=0 scrolling=auto></IFRAME>";\r
-       strPopupDiv += "</DIV></DIV>";\r
-\r
-       var objBody = document.all.tags("BODY")[0];\r
-       if( typeof(objBody) != "object" )\r
-               return;\r
-\r
-       objBody.insertAdjacentHTML("beforeEnd", strPopupDiv);\r
-}\r
-\r
-function BSSCPopup_Timeout(nIndex, nToken)\r
-{\r
-    if (!IsValidToken(nToken)) return;\r
-\r
-       if ((getPopupIFrame(nIndex).document.readyState == "complete") &&\r
-               (getPopupIFrame(nIndex).document.body != null)) {\r
-               window.getPopupDivStyle(nIndex).visibility = gBsStyVisShow;\r
-               setClear(nIndex);\r
-               window.gbPopupTimeoutExpired = true;\r
-\r
-               BSSCPopup_ChangeTargettoParent(getPopupIFrame(nIndex).document);\r
-               getPopupIFrame(nIndex).document.body.onclick = BSSCPopupClicked;\r
-\r
-               if (!gbOrignalOnMouseDown && document.onmousedown)\r
-                       gbOrignalOnMouseDown = document.onmousedown;\r
-\r
-               document.onmousedown = BSSCPopupParentClicked;\r
-\r
-       } else {\r
-               setTimeout("BSSCPopup_Timeout(" + nIndex + "," + nToken + ")", 100);\r
-       }\r
-}\r
-\r
-\r
-// VH 08/10/00 \r
-// do not change target to parent if the href is using javascript\r
-function BSSCPopup_ChangeTargettoParent(tagsObject)\r
-{\r
-       var collA = tagsObject.all.tags("A");\r
-       BSSCPopup_ChangeTargettoParent2(collA);\r
-\r
-       var collIMG = tagsObject.all.tags("IMG");\r
-       BSSCPopup_ChangeTargettoParent2(collIMG);\r
-}\r
-\r
-function BSSCPopup_ChangeTargettoParent2(colls)\r
-{\r
-       var j = 0;\r
-       if (colls != null)  {\r
-               for (j = 0; j < colls.length; j ++ )\r
-               {\r
-                       var strtemp = colls[j].href;\r
-                       strtemp = strtemp.toLowerCase();\r
-                       if (strtemp.indexOf("javascript:") == -1)\r
-                       if (colls[j].target == "")\r
-                               colls[j].target = "_parent";\r
-               }\r
-\r
-       }\r
-}\r
-\r
-function BSPSPopupTopicWinHelp(strURL)\r
-{\r
-       _BSSCPopup(strURL);\r
-       return;\r
-}\r
-\r
-function _BSSCPopup(strURL, width, height)\r
-{\r
-       var cuswidth = 0;\r
-       var cusheight = 0;\r
-       if ("undefined" != typeof(width) && "undefined" != typeof(height)) {\r
-               cuswidth = width;\r
-               cusheight= height;\r
-       }\r
-       \r
-       if (DHTMLPopupSupport()) {\r
-               // If we are already in a popup, replace the contents\r
-       //      if (BSSCPopup_IsPopup()) {\r
-       //              parent._BSSCPopup(strURL, cuswidth, cusheight);\r
-       //      } else {\r
-                       var nToken = takeToken(); // take  token first.\r
-                       var nIndex = _BSSCCreatePopupDiv(strURL);\r
-                       window.gbPopupTimeoutExpired = false;\r
-                       var ntWidth = gBsClientWidth;\r
-                       var ntHeight = gBsClientHeight;\r
-                       _BSPSGetClientSize();\r
-                       if (ntWidth != gBsClientWidth || ntHeight != gBsClientHeight) {\r
-                               setDirty();\r
-                       }\r
-\r
-\r
-                       if (IsDirty(nIndex)) {\r
-                               if (gbBsMac) {\r
-                                       setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight  +")", 400);\r
-                               } else {\r
-                                       setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 100);\r
-                               }\r
-                       }\r
-                       else {\r
-                               MoveDivAndShow(nIndex ,nToken, cuswidth, cusheight);\r
-                       }\r
-       //      }\r
-\r
-       } else {\r
-               _BSSCPopup2(strURL, cuswidth, cusheight);\r
-       }\r
-       return;\r
-}\r
-\r
-if (gbBsIE55)\r
-{\r
-       var ehlpdhtm_fOldBefureUnload = window.onbeforeunload;\r
-       window.onbeforeunload = window_BUnload;\r
-}\r
-       \r
-function window_BUnload()\r
-{\r
-       for (var i = 0; i < arrayPopupURL.length; i ++)\r
-               document.all(getPopupID(i)).outerHTML = "";\r
-       arrayPopupURL.length = 0;       \r
-       if (ehlpdhtm_fOldBefureUnload)\r
-               ehlpdhtm_fOldBefureUnload();\r
-}\r
-\r
-function _BSSCPopup2(strURL, width, height)\r
-{\r
-       if (window.name == gstrPopupSecondWindowName) {\r
-               window.location = strURL;\r
-       } else {\r
-               if (!gbBsMac || !gBsBrowser.ns4) {\r
-                       BSSCHidePopupWindow();\r
-               }\r
-               var nX = 0;\r
-               var nY = 0;\r
-               var nHeight = 300;\r
-               var nWidth = 400;\r
-               if (width > 0 && height > 0) {\r
-                       nHeight = height;\r
-                       nWidth = width;\r
-               }\r
-               _BSPSGetClientSize();\r
-\r
-               nX = window.gnPopupScreenClickX;\r
-               nY = window.gnPopupScreenClickY;\r
-\r
-               if (nY + nHeight + 40 > screen.availHeight) {\r
-                       nY = screen.availHeight - nHeight - 40;\r
-               }\r
-               if (nX + nWidth + 40 > screen.availWidth) {\r
-                       nX = screen.availWidth - nWidth - 40;\r
-               }\r
-               // Launch a separate window\r
-               var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes";\r
-               if (gBsBrowser.ns) {\r
-                       if (gBsBrowser.ns6) {\r
-                               strParam += ",Height=" + nHeight + ",Width=" + nWidth;\r
-                               strParam += ",screenX=" + nX + ",screenY=" + nY;\r
-                       }\r
-                       else {\r
-                               strParam += ",OuterHeight=" + nHeight + ",OuterWidth=" + nWidth;\r
-                               strParam += ",screenX=" + nX + ",screenY=" + nY;\r
-                               strParam += ",dependent=yes";\r
-                       }\r
-               }\r
-               else {\r
-                       strParam += ",height=" + nHeight + ",width=" + nWidth;\r
-                       strParam += ",left=" + nX + ",top=" + nY;\r
-               }\r
-               window.gPopupWindow = window.open(strURL, gstrPopupSecondWindowName, strParam);\r
-\r
-               if (gBsBrowser.ns4) {\r
-                       window.gPopupWindow.captureEvents(Event.CLICK | Event.BLUE);\r
-                       window.gPopupWindow.onclick = NonIEPopup_HandleClick;\r
-                       window.gPopupWindow.onblur = NonIEPopup_HandleBlur;\r
-               }\r
-               else if (gBsBrowser.ie4)\r
-               {\r
-                       setTimeout("setPopupFocus();", 100);\r
-               }\r
-       }\r
-       return;\r
-}\r
-\r
-function setPopupFocus()\r
-{\r
-       window.gPopupWindow.focus();\r
-}\r
-\r
-function NonIEPopup_HandleBlur(e)\r
-{\r
-       window.gPopupWindow.focus();\r
-}\r
-\r
-function NonIEPopup_HandleClick(e)\r
-{\r
-       // Because navigator will give the event to the handler before the hyperlink, let's\r
-       // first route the event to see if we are clicking on a Popup menu in a popup.\r
-       document.routeEvent(e);\r
-\r
-       // If a popup menu is active then don't do anything with the click\r
-       if (window.gPopupWindow.gbInPopupMenu) {\r
-               window.gPopupWindow.captureEvents(Event.CLICK);\r
-               window.gPopupWindow.onclick = NonIEPopup_HandleClick;\r
-               return false;\r
-       }\r
-\r
-       // Close the popup window\r
-       if (e.target.href) {\r
-               if (e.target.target == "")\r
-                       window.location.href = e.target.href;\r
-               else\r
-                       window.open(e.target.href, e.target.target);\r
-                       \r
-               if (e.target.href.indexOf("javascript:void(0)") == -1 && e.target.href.indexOf("javascript:null") == -1 && e.target.href.indexOf("BsscPopup") == -1) {\r
-                       this.close();\r
-               }\r
-       } else {\r
-               this.close();\r
-       }\r
-       return false;\r
-\r
-}\r
-\r
-function BSSCPopup_AfterLoad(nIndex, nToken, cuswidth, cusheight)\r
-{      \r
-       if (typeof(window.getPopupIFrame(nIndex).document) == "unknown") {\r
-               _BSSCPopup2(getPopupURL(nIndex), cuswidth, cusheight);\r
-               return;\r
-       }\r
-    if (!IsValidToken(nToken)) return;\r
-\r
-       if ((window.getPopupIFrame(nIndex).document.readyState == "complete") &&\r
-               (window.getPopupIFrame(nIndex).document.body != null)) {\r
-                       if (window.getPopupIFrame(nIndex).document.location.href.indexOf("about:blank") != -1) { // add this check. IE will use about:blank" as the default vaule for Iframe.\r
-                               window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex);\r
-                               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);\r
-                       }\r
-                       else\r
-                               {\r
-                                       setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url.\r
-                                       BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight);\r
-                               }\r
-       } else {\r
-               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);\r
-       }\r
-}\r
-\r
-\r
-function BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight)\r
-{\r
-       if (window.gbPopupTimeoutExpired) return;\r
-\r
-    if (!IsValidToken(nToken)) return;\r
-\r
-       getPopupDivStyle(nIndex).visibility = gBsStyVisHide;\r
-\r
-       // Determine the width and height for the window\r
-       //var size = new BSSCSize(0, 0);\r
-       //BSSCGetContentSize(window.getPopupIFrame(nIndex), size);\r
-       //var nWidth = size.x;\r
-       //var nHeight = size.y;\r
-\r
-       _BSPSGetClientSize();\r
-       \r
-       var size = new BSSCSize(0, 0);\r
-\r
-       if (cuswidth <= 0 || cusheight <= 0)\r
-               BSSCGetContentSize(window.getPopupIFrame(nIndex), size);\r
-       else {\r
-               size.x = cuswidth;\r
-               size.y = cusheight;\r
-       }\r
-\r
-       // Determine the width and height for the window\r
-       var nWidth = size.x;\r
-       var nHeight = size.y;\r
-\r
-       // for small popup size, we should allow any size.\r
-       // The popup size should be ok if bigger than 0\r
-       if (nWidth < 0 || nHeight < 0) return;  // there must be something terribly wrong.              \r
-       //      if (nWidth < 40 || nHeight < 40) return;  // there must be something terribly wrong.\r
-\r
-       window.getPopupDivStyle(nIndex).pixelWidth = nWidth;\r
-       window.getPopupDivStyle(nIndex).pixelHeight = nHeight;\r
-\r
-       window.getPopupShadowStyle(nIndex).pixelWidth = nWidth;\r
-       window.getPopupShadowStyle(nIndex).pixelHeight = nHeight;\r
-       window.getPopupTopicStyle(nIndex).pixelWidth = nWidth;\r
-       window.getPopupTopicStyle(nIndex).pixelHeight = nHeight;\r
-       if (gbBsIE55)\r
-       {\r
-               window.getPopupShadowStyle(nIndex).pixelWidth = nWidth + 2;\r
-               window.getPopupShadowStyle(nIndex).pixelHeight = nHeight + 2;\r
-               window.getPopupTopicStyle(nIndex).pixelWidth = nWidth + 2;\r
-               window.getPopupTopicStyle(nIndex).pixelHeight = nHeight + 2;\r
-       }\r
-\r
-       window.getPopupIFrameStyle(nIndex).pixelWidth = nWidth;\r
-       window.getPopupIFrameStyle(nIndex).pixelHeight = nHeight;\r
-       if (gbBsIE55)\r
-       {\r
-               window.getPopupIFrameStyle(nIndex).top = 0;\r
-               window.getPopupIFrameStyle(nIndex).left = 0;\r
-       }\r
-       \r
-       var strURL = getPopupURL(nIndex);\r
-       if (strURL.indexOf("#") != -1)\r
-               getPopupIFrame(nIndex).location.href = strURL;  // reload again, this will fix the bookmark misunderstand in IE5.\r
-               \r
-       MoveDivAndShow(nIndex, nToken, cuswidth, cusheight);\r
-}\r
-\r
-function MoveDivAndShow(nIndex, nToken, cuswidth, cusheight)\r
-{\r
-       if (window.getPopupIFrame(nIndex).document.location.href != getAbsPopupURL(nIndex)) { // if redirect, reload again.\r
-                       window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex);\r
-                       setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);\r
-                       return;\r
-       }\r
-\r
-       // Determine the position of the window\r
-       var nClickX = window.gnPopupClickX;\r
-       var nClickY = window.gnPopupClickY;\r
-       var nTop = 0;\r
-       var nLeft = 0;\r
-\r
-       var nWidth = window.getPopupDivStyle(nIndex).pixelWidth;\r
-       var nHeight = window.getPopupDivStyle(nIndex).pixelHeight;\r
-\r
-       if (nClickY + nHeight + 20 < gBsClientHeight + document.body.scrollTop) {\r
-               nTop = nClickY + 10;\r
-       } else {\r
-               nTop = (document.body.scrollTop + gBsClientHeight) - nHeight - 20;\r
-       }\r
-       if (nClickX + nWidth < gBsClientWidth + document.body.scrollLeft) {\r
-               nLeft = nClickX;\r
-       } else {\r
-               nLeft = (document.body.scrollLeft + gBsClientWidth) - nWidth - 8;\r
-       }\r
-       \r
-       if (nTop < document.body.scrollTop ) nTop  = document.body.scrollTop + 1;\r
-       if (nLeft< document.body.scrollLeft) nLeft = document.body.scrollLeft + 1;\r
-\r
-\r
-       window.getPopupDivStyle(nIndex).left = nLeft;\r
-       window.getPopupDivStyle(nIndex).top = nTop;\r
-\r
-       // Set the location of the background blocks\r
-       window.getPopupShadowStyle(nIndex).left = 6;\r
-       window.getPopupShadowStyle(nIndex).top = 6;\r
-       if (gbBsIE55)\r
-       {\r
-               window.getPopupShadowStyle(nIndex).left = 4;\r
-               window.getPopupShadowStyle(nIndex).top = 4;\r
-       }\r
-\r
-       if (gbBsMac) {\r
-               // Total hack on the iMac to get the IFrame to position properly\r
-               window.getPopupIFrameStyle(nIndex).pixelLeft = 100;\r
-               window.getPopupIFrameStyle(nIndex).pixelLeft = 0;\r
-               // Explicitly call BSSCOnLoad because the Mac doesn't seem to do it\r
-               window.getPopupIFrame(nIndex).window.BSSCOnLoad();\r
-       }\r
-\r
-       BSSCPopup_Timeout(nIndex , nToken );\r
-       \r
-       return;\r
-}\r
-\r
-function       BSSCSize(x, y)\r
-{\r
-       this.x = x;\r
-       this.y = y;\r
-}\r
-\r
-function BSSCGetContentSize(thisWindow, size)\r
-{\r
-       if (!((gBsBrowser.ie4) || (gBsBrowser.ns4)))\r
-               return;\r
-\r
-       if (gbBsMac) {\r
-               size.x = 300;\r
-               size.y = 300;\r
-               return;\r
-       }\r
-\r
-       // Resize the width until it is wide enough to handle the content\r
-       // The trick is to start wide and determine when the scrollHeight changes\r
-       // because then we know a scrollbar is necessary. We can then go back\r
-       // to the next widest size (for no scrollbar)\r
-\r
-       var ClientRate = gBsClientHeight / gBsClientWidth;\r
-\r
-       var GoldenSize = new BSSCSize(0,0);\r
-       GoldenSize.x = gBsClientWidth * gBMaxXOfParent;\r
-       GoldenSize.y = gBsClientHeight *gBMaxYOfParent ;\r
-\r
-       if (ClientRate > gBRateH_W) {\r
-               GoldenSize.y = GoldenSize.x * gBRateH_W;\r
-       }\r
-       else {\r
-               GoldenSize.x = GoldenSize.y / gBRateH_W;\r
-       }\r
-\r
-       // Try to using parent specified max x.\r
-       var x = 0;\r
-       var maxgoldx = GoldenSize.x;\r
-       var maxx = gBsClientWidth * gBMaxXOfParent;\r
-       \r
-       // This double resize causes the document to re-render (and we need it to)\r
-       if (!gbBsIE5)\r
-               thisWindow.moveTo(10000,10000); // this is used to fix the flash on IE4.\r
-       thisWindow.resizeTo(1, 1);\r
-       thisWindow.resizeTo(1, 1);\r
-       thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight);\r
-       thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight);\r
-               \r
-       var miny = thisWindow.document.body.scrollHeight + gBscrollHeight;\r
-       \r
-       if (miny > GoldenSize.y) // the popup does not fix in the parent wanted golden area. so try to expand itself as large as it can\r
-       {\r
-               thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight);\r
-               thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight);\r
-               \r
-               miny =  thisWindow.document.body.scrollHeight + gBscrollHeight;\r
-               maxy = gBsClientHeight * gBMaxYOfParent;\r
-               \r
-               if (miny > maxy) { // the popup must have a scroll, OK let it be.\r
-                       miny = maxy;\r
-                       size.x = maxx;\r
-                       size.y = maxy;\r
-                       thisWindow.document.body.scroll = 'yes'; // At this time we do want to show scroll any more. so it will looks better a little.\r
-               }\r
-               else { // popup still can fit in the parent area by someway. now we choose the same h/w rate as parent.\r
-                       size.y = miny;\r
-                       \r
-                       //  downsize from maxx , now I try to using binary divide.\r
-                       x = maxx;\r
-                       deltax = -maxx/2;\r
-                       //j = 0;\r
-                       while (true) {\r
-                               x = x + deltax;\r
-                               thisWindow.resizeTo(x, miny);\r
-                               thisWindow.resizeTo(x, miny);\r
-                               diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * ClientRate;\r
-                               if (diffy >  gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter\r
-                                       deltax = Math.abs(deltax) /2;\r
-                               else if (diffy <  -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter\r
-                                       deltax = -Math.abs(deltax) /2;\r
-                               else \r
-                                       // the y is close enough to wanted.\r
-                                       break;\r
-                               if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore.\r
-                                       break;\r
-                       }\r
-                       size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth;\r
-                       size.y = thisWindow.document.body.scrollHeight;// + gBscrollHeight;     \r
-                       thisWindow.document.body.scroll = 'no';\r
-                       \r
-               // Handle absurd cases just in case IE flakes\r
-       //              if (size.y < 100) {\r
-       //                      size.y = 100;\r
-       //              }\r
-               }\r
-       }\r
-       else {\r
-               if (thisWindow.document.body.scrollWidth > maxgoldx) {\r
-                       size.x = maxx; \r
-                       size.y = miny;  \r
-                       thisWindow.document.body.scroll = 'yes';\r
-               }\r
-               else {\r
-                       //  downsize from maxgoldx , now I try to using binary divide.\r
-                       x = maxgoldx;\r
-                       deltax = -maxgoldx/2;\r
-                       //i = 0;\r
-                       while (true) {\r
-                               x = x + deltax;\r
-                               thisWindow.resizeTo(x, miny);\r
-                               thisWindow.resizeTo(x, miny);\r
-                               diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * gBRateH_W;\r
-                               if (diffy >  gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter\r
-                                       deltax = Math.abs(deltax) /2;\r
-                               else if (diffy <  -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter\r
-                                       deltax = -Math.abs(deltax) /2;\r
-                               else \r
-                                       // the y is close enough to wanted.\r
-                                       break;\r
-                               if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore.\r
-                                       break;\r
-                               //i ++;\r
-                               \r
-                       }\r
-                       //size.x = x - gBscrollWidth;\r
-                       size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth;\r
-                       size.y = thisWindow.document.body.scrollHeight ;\r
-                       thisWindow.document.body.scroll = 'no'; // At this time we do not want to show scroll any more. so it will looks better a little.\r
-                       thisWindow.resizeTo(size.x, size.y);\r
-                       if (thisWindow.document.body.scrollWidth > size.x)\r
-                       {\r
-                               size.x = thisWindow.document.body.scrollWidth;\r
-                       }\r
-                       if (thisWindow.document.body.scrollHeight > size.y)\r
-                       {\r
-                               size.y = thisWindow.document.body.scrollHeight;\r
-                       }\r
-               }\r
-       }\r
-       \r
-       // no reload no scrollbar.\r
-       //size.x = size.x + 16;  //reserve a width for scrollbar (IE 4.0 only)\r
-\r
-       thisWindow.resizeTo(size.x, size.y);\r
-       thisWindow.resizeTo(size.x, size.y);\r
-       return;\r
-}\r
-\r
-\r
-\r
-function BSSCPopupParentClicked()\r
-{\r
-       if (!window.gbPopupTimeoutExpired) {\r
-               return false;\r
-       }\r
-       \r
-       document.onmousedown = gbOrignalOnMouseDown;\r
-\r
-       // Simply hide the popup\r
-       hideAll();\r
-\r
-       window.gbPopupTimeoutExpired = false;\r
-\r
-       return true;\r
-}\r
-\r
-\r
-function BSSCPopupClicked()\r
-{\r
-       if (!window.gbPopupTimeoutExpired) {\r
-               return false;\r
-       }\r
-\r
-\r
-       var popupIFrame = getCurrentPopupIFrame();\r
-       if (popupIFrame == null) {\r
-               return true;\r
-       }\r
-\r
-/*\r
-       if ("undefined" != typeof(popupIFrame.gbInPopupMenu) &&\r
-               popupIFrame.gbInPopupMenu) {\r
-               return true;\r
-       }*/\r
-\r
-       if (!((popupIFrame.window.event != null) &&\r
-           (popupIFrame.window.event.srcElement != null) &&\r
-           ((popupIFrame.window.event.srcElement.tagName == "A") ||\r
-           (popupIFrame.window.event.srcElement.tagName == "IMG")))) {\r
-               document.onmousedown = gbOrignalOnMouseDown;\r
-\r
-       // Simply hide the popup\r
-               hideAll();\r
-\r
-               window.gbPopupTimeoutExpired = false;\r
-\r
-               return true;\r
-       }\r
-}\r
-\r
-\r
-//trace the mouse over's position for hotspot\r
-function  BSPSPopupOnMouseOver(event)\r
-{\r
-       if (gBsBrowser.ie4) {\r
-               window.gnPopupClickX = event.clientX + document.body.scrollLeft;\r
-               window.gnPopupClickY = event.clientY + document.body.scrollTop;\r
-               window.gnPopupScreenClickX = event.screenX;\r
-               window.gnPopupScreenClickY = event.screenY;\r
-       } else if (gBsBrowser.ns4) {\r
-               window.gnPopupClickX = event.pageX - window.pageXOffset;\r
-               window.gnPopupClickY = event.pageY - window.pageYOffset;\r
-               window.gnPopupScreenClickX = event.screenX - window.pageXOffset;\r
-               window.gnPopupScreenClickY = event.screenY - window.pageYOffset;\r
-       }\r
-}\r
-\r
-\r
-function BSSCHidePopupWindow()\r
-{\r
-       if (window.gPopupWindow != null) {\r
-               if (gBsBrowser.ns4) {\r
-                       if ((typeof window.gPopupWindow != "undefined") && (!window.gPopupWindow.closed)) {\r
-                               window.gPopupWindow.close();\r
-                               window.gPopupWindow = null;\r
-                       }\r
-               }\r
-       }\r
-\r
-       return;\r
-}\r
-\r
-// Add the PopupOnClick to the onclick array.\r
-if (typeof(BsscRegisterOnClick) != "undefined")\r
-{\r
-       BsscRegisterOnClick(BsPopupOnClick);\r
-}\r
-//End to support previous popup functions\r
-\r
-/// Section End  - Popup (JavaScript 1.0)\r
-\r
-/// Section Begin - Embedded Stub (JavaScript 1.0)\r
-\r
-var s_strAgent = navigator.userAgent.toLowerCase();\r
-var s_nVer        = parseInt(navigator.appVersion);\r
-\r
-var s_bIE  = (s_strAgent.indexOf('msie') != -1);\r
-var s_bNS  = (s_strAgent.indexOf('mozilla') != -1) && ((s_strAgent.indexOf('spoofer') == -1) && (s_strAgent.indexOf('compatible') == -1));\r
-var s_bOpera   = (s_strAgent.indexOf('opera') != -1);\r
-\r
-var s_bIE3Before = ((s_bIE) && (s_nVer <= 2));\r
-var s_bNS3Before = ((s_bNS) && (s_nVer <= 3));\r
-\r
-var s_bNS2             = ((s_bNS) && (s_nVer <= 2));\r
-var s_bNS3             = ((s_bNS) && (s_nVer == 3));\r
-var s_bIE300301        = ((s_bIE) && (s_nVer == 2) && ((s_strAgent.indexOf("3.00") != -1)||(s_strAgent.indexOf("3.0a") != -1)||(s_strAgent.indexOf("3.0b")!=-1)||(s_strAgent.indexOf("3.01")!=-1)));\r
-var s_bIE302   = ((s_bIE) && (s_nVer == 2) && (s_strAgent.indexOf("3.02") != -1));\r
-\r
-\r
-function HasExtJs()\r
-{\r
-       if (s_bIE3Before) { return false;}\r
-       if (s_bNS3Before) {     return false;}\r
-       if (typeof (BsGeneralOnLoad) == "undefined"){ return false; }\r
-       return true;\r
-}\r
-\r
-\r
-function BSSCCreatePopupDiv()\r
-{\r
-       return;\r
-}\r
-\r
-\r
-function WritePopupMenuLayer()\r
-{\r
-       if (HasExtJs()) {_WritePopupMenuLayer();}\r
-}\r
-\r
-function BSSCPopup(strURL, width, height)\r
-{\r
-       if (HasExtJs()) { \r
-               _BSSCPopup(strURL, width, height);\r
-       }else{\r
-               //Create a temporary window first to ensure the real popup comes up on top\r
-               var wndTemp = null;\r
-               if (!s_bNS3) {\r
-                       wndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4");\r
-               }\r
-               // Create the real popup window\r
-               var wndPopup = window.open(strURL, "BSSCPopup", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=300,width=400");\r
-               // Close the temporary\r
-               if (!s_bNS3) {\r
-                       wndTemp.close();\r
-               } else {\r
-                       wndPopup.focus();\r
-               }\r
-       }\r
-}\r
-\r
-var gbWndTemp = null, gbWndPopupLinks = null;\r
-var gbstrParaTotal = "";\r
-\r
-function PopupMenu_Invoke()\r
-{\r
-       if (HasExtJs()) {\r
-               return _PopupMenu_Invoke(PopupMenu_Invoke.arguments);\r
-       }\r
-       if (s_bNS3Before || s_bIE3Before )      {\r
-               var argLen      = PopupMenu_Invoke.arguments.length;\r
-               if (argLen < 5) {\r
-                       window.document.location.href = PopupMenu_Invoke.arguments[3];\r
-                       return false;\r
-               }\r
-               gbWndTemp = null;\r
-               gbWndPopupLinks = null;\r
-               gbstrParaTotal = "";\r
-               for (var i = 0; i < (argLen - 2) / 2; i++) {\r
-                       var strParaLine = "";\r
-                       if (s_bNS2 || s_bOpera){\r
-                               strParaLine += "<a href=\"";\r
-                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 3];\r
-                               strParaLine += "\">"\r
-                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 2];\r
-                               strParaLine += "</a>";\r
-                       } else {\r
-                               strParaLine += "<a href=\"javascript:";\r
-                               strParaLine += "gotoUrl(\'";\r
-                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 3];\r
-                               strParaLine += "\');\"";\r
-                               if (PopupMenu_Invoke.arguments[1] != '') {\r
-                                       strParaLine += " TARGET='" + PopupMenu_Invoke.arguments[1] + "'";\r
-                               }\r
-                               strParaLine += ">";\r
-                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 2];\r
-                               strParaLine += "</a>";\r
-                       }\r
-                       strParaLine += "<br>";\r
-                       gbstrParaTotal += strParaLine;\r
-               }\r
-               var nHeight = argLen * 15;\r
-               var nWidth = 400;\r
-               var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=auto";\r
-               strParam += ",height=" + nHeight + ",width=200,resizable";\r
-               \r
-               //Create a temporary window first to ensure the real popup comes up on top\r
-               //var wndTemp = null;\r
-               if (!s_bNS3) {\r
-                       gbWndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4");\r
-               } \r
-               gbWndPopupLinks = window.open("", "popuplinks", strParam);\r
-\r
-               setTimeout("Wait_PopupMenuReady()", 100);\r
-       }\r
-       return true;\r
-}\r
-\r
-function Wait_PopupMenuReady() \r
-{\r
-       if (gbWndPopupLinks != null && "object" == typeof(gbWndPopupLinks.document)) {\r
-               PopupMenu_InvokeReady();\r
-       }\r
-       else \r
-               setTimeout("Wait_PopupMenuReady()", 100);\r
-}\r
-\r
-\r
-function PopupMenu_InvokeReady()\r
-{\r
-       if (gbWndPopupLinks != null) {\r
-               gbWndPopupLinks.document.open("text/html");\r
-               gbWndPopupLinks.document.write("<html><head>");\r
-               if (s_bNS2 || s_bOpera) {\r
-                       gbWndPopupLinks.document.write("<base href=\"" + location +"\">");\r
-               } else {\r
-                       //YJ: IE301,302 and NS3.x works fine\r
-                       gbWndPopupLinks.document.write("<");\r
-                       gbWndPopupLinks.document.write("script>");\r
-                       gbWndPopupLinks.document.write("function gotoUrl(aUrl) {opener.window.location=aUrl; close();}");\r
-                       gbWndPopupLinks.document.write("<");\r
-                       gbWndPopupLinks.document.write("/script>");\r
-               }\r
-               gbWndPopupLinks.document.write("</head><body onBlur=\'self.focus();\'>");\r
-               gbWndPopupLinks.document.write(gbstrParaTotal);\r
-               gbWndPopupLinks.document.write("</body></html>");\r
-               gbWndPopupLinks.document.close();\r
-\r
-               // Close the temporary\r
-               if (!s_bNS3 && gbWndTemp != null) {\r
-                       gbWndTemp.close();\r
-               }else {\r
-                       gbWndPopupLinks.focus();\r
-               }\r
-\r
-               return true;\r
-       }\r
-       return false;\r
-}\r
-\r
-/// Section End - Embedded Stub (JavaScript 1.0)\r
-\r
-//// Segment End -- (JavaScript 1.0)\r
-\r
-//// Segment Begin -- (JavaScript 1.2)\r
-/// Section Begin  - kadov DHTM (JavaScript 1.2)\r
-\r
-//Begin to support extended and dropdown text effects.\r
-function kadovIsParagraph(el)\r
-{\r
-       return( el.tagName == "P" || el.tagName.indexOf("H") == 0 ) ? true : false;\r
-}\r
-\r
-function kadovInitEachChild(el)\r
-{      \r
-       for(var i=0; i<el.children.length; i++)\r
-       {\r
-               var child = el.children[i];\r
-               if( child.tagName == "SCRIPT" || child.tagName == "!" )\r
-                       continue;\r
-\r
-               if( child.id != "" )\r
-               {\r
-                       // to wipe out the onload effects\r
-                       var onLoadEffect = child.style.getAttribute( "x-on-pageload" );\r
-                       if( (onLoadEffect != null) && (onLoadEffect > "") )\r
-                               child.style.setAttribute( "x-on-pageload", "" );\r
-                       \r
-                       var href = child.getAttribute("href")\r
-                       if( href != null && href > "" && href.indexOf( "BSSCPopup" ) >= 0 )\r
-                               kadovFilePopupInit(child.id); // Init for Popup\r
-                       else if( child.className == "dropspot" || child.className == "expandspot" || \r
-                                        child.className == "glossterm" )\r
-                               kadovTextPopupInit(child.id);// Init for Expanding/Glossary or DropDown text\r
-                       else if( child.className == "trigger")\r
-                               kadovInitTrigger(child.id);// Init for Trigger\r
-                       else\r
-                       {\r
-                               kadovInitEffects(child.id);// Init for DHTML effects\r
-                               CEngine.SetOneTargetInitialState( child.id );\r
-                       }\r
-               }\r
-               \r
-               if( (child.tagName == "IMG") && (child.getAttribute("dynsrc") > "") )\r
-                       child.start = "mouseover";// to start a AVI file. fileopen doesn't work\r
-\r
-               kadovInitEachChild(child);\r
-       }\r
-}\r
-\r
-function kadovRetrieveTextInner(el)\r
-{      \r
-       var x = "";\r
-       if( (!el) || (el.tagName == "!") || (el.tagName == "SCRIPT" ))\r
-               return x;\r
-\r
-       if( kadovIsParagraph(el) )\r
-       {\r
-               var strNewID = " ";\r
-               if( el.id != "" )\r
-                       strNewID += "id=" + el.id + "_NewSpan ";\r
-               x = "<span" + strNewID + "style='" + el.style.cssText + "'>" + el.innerHTML + "</span>";\r
-       }\r
-       else\r
-       {\r
-               for(var i=0; i<el.children.length; i++)\r
-                       x += kadovRetrieveTextInner( el.children[i] );\r
-       }\r
-       return x;\r
-}\r
-\r
-function kadovRetrieveCleanHTML( strRawHTML, strTagOpen, strTagClose, nDistance )\r
-{      \r
-       var nTagOpen = strRawHTML.indexOf( strTagOpen, 0 );\r
-       if( nTagOpen < 0 )\r
-               return strRawHTML;\r
-\r
-       var nTagClose = strRawHTML.indexOf( strTagClose, nTagOpen);\r
-       if( nTagClose < nTagOpen )\r
-               return strRawHTML;\r
-               \r
-       if( typeof(nDistance) == "number" && nDistance > 0 )\r
-               if( (nTagClose - nTagOpen) != nDistance )\r
-                       return strRawHTML;\r
-               \r
-       var strCleanOnce = strRawHTML.substring(0, nTagOpen) + strRawHTML.substr(nTagClose + strTagClose.length) ;\r
-       return  kadovRetrieveCleanHTML( strCleanOnce, strTagOpen, strTagClose );\r
-}\r
-\r
-function kadovAdjustObjectTag(strRawHTML, nStartPos)\r
-{// adjust object tag for related topics HTML control, because innerHTML misses out the item settings\r
-       \r
-       //Is there any DTC?\r
-       var strDTCTagOpen = '<!--Metadata type="DesignerControl" startspan';\r
-       var strDTCTagClose = '<!--Metadata type="DesignerControl" endspan-->';\r
-       var nDTCTagOpen = strRawHTML.indexOf( strDTCTagOpen, nStartPos );\r
-       if( nDTCTagOpen < 0 )\r
-               return strRawHTML;\r
-       var nDTCTagClose = strRawHTML.indexOf( strDTCTagClose, nDTCTagOpen );\r
-       if( nDTCTagClose < nDTCTagOpen)\r
-               return strRawHTML; // no Design Time Controls;\r
-               \r
-       //Is the DTC HTML Help Control?\r
-       var strRTObjTagOpen = 'classid=clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11';\r
-       var strRTObjTagClose = '</OBJECT>';\r
-       var nRTObjTagOpen = strRawHTML.indexOf( strRTObjTagOpen, nDTCTagOpen );\r
-       if( nRTObjTagOpen < nDTCTagOpen )\r
-               return strRawHTML;\r
-       var nRTObjTagClose = strRawHTML.indexOf( strRTObjTagClose, nRTObjTagOpen );\r
-       if( nRTObjTagClose < nRTObjTagOpen )\r
-               return strRawHTML; // is not a HTML help control\r
-               \r
-       // Is it a related Topics html help control?\r
-       var strRTObjLabel = '<PARAM NAME=\"Command\" VALUE=\"Related Topics';\r
-       if( strRawHTML.indexOf(strRTObjLabel, nRTObjTagOpen) < 0 )\r
-               return strRawHTML;\r
-       \r
-       // does the commented object tag contain a items parameters             \r
-       var strRTItemsOpen = '<param name=Items value="';\r
-       var strRTItemsClose = '$$**$$" >';\r
-       var nRTItemsOpen = strRawHTML.indexOf(strRTItemsOpen, nDTCTagOpen);\r
-       if( nRTItemsOpen < nDTCTagOpen )\r
-               return strRawHTML;\r
-       var nRTItemsClose = strRawHTML.indexOf(strRTItemsClose, nRTItemsOpen);\r
-       if( nRTItemsClose < nRTItemsOpen )\r
-               return strRawHTML;\r
-               \r
-       // found a items string\r
-       var strItems = strRawHTML.substring( nRTItemsOpen + strRTItemsOpen.length, nRTItemsClose);\r
-       if( strItems.length < 1 )\r
-               return strRawHTML;\r
-       \r
-       // to reconstruct the item(s) param tag(s)\r
-       var strItemsArray = strItems.split('$$**$$');\r
-       if( strItemsArray.length < 1 )\r
-               return strRawHTML;\r
-       var strRunTimeItemParam = "";\r
-       for( var i = 0; i < strItemsArray.length; i++ )\r
-       {\r
-               strRunTimeItemParam += '<PARAM  NAME="Item' + (i+1);\r
-               strRunTimeItemParam += '"' + '  VALUE="';\r
-               strRunTimeItemParam += strItemsArray[i];\r
-               strRunTimeItemParam += '">';\r
-       }\r
-       \r
-       // to insert the reconstructed item params into runtime object tag\r
-       var strAdjustedHTML = strRawHTML.substring(0,nRTObjTagClose) + strRunTimeItemParam + strRawHTML.substring(nRTObjTagClose, strRawHTML.length);\r
-       return kadovAdjustObjectTag(strAdjustedHTML, nDTCTagClose + strDTCTagClose.length);\r
-}\r
-\r
-function kadovTextPopupOnLoad( el )\r
-{\r
-       if( !CCSSP.bIsWinOS && !CCSSP.bIsSunOS)\r
-               return 0;\r
-\r
-       if( typeof(el) == "string" )\r
-               el = document.all.item(el);\r
-\r
-       var src = el.getAttribute( "x-use-popup" );\r
-       if(!src)\r
-               return 0;\r
-\r
-       var name = src;\r
-       if( src.substr(0,1) == "#" ) \r
-               name = src.substr(1, src.length-1);\r
-       var srcDiv = document.all.item(name);\r
-       if( !srcDiv )\r
-               return 1;\r
-\r
-       var type = el.getAttribute( "x-popup-type" );\r
-       var setup = el.getAttribute( "x-tmp-setup" );\r
-       var newId = name;\r
-       if( newId.indexOf( "_tmp") <= 0 )\r
-               newId += "_tmp";\r
-\r
-       if( !setup )\r
-       {\r
-               el.setAttribute( "x-tmp-setup", 1 );\r
-       \r
-               if( type == "pulldown"  )\r
-               {\r
-                       var strAdjust = kadovAdjustObjectTag(srcDiv.innerHTML,0);\r
-                       var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");\r
-                       strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");\r
-\r
-                       //work around the bug in HH.exe that highlight the phrases when use Search tab\r
-                       //this approach is just removing the <FONT...> tag inserted by Microsoft in the runtime\r
-                       strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<FONT color=#", "\">", 52);\r
-                       \r
-                       var strStyle = " style='display:none; position:relative;";\r
-                       var newDiv = "<div class=droptext id=" + newId + strStyle + "'>" + strCleanHTML + "</div>";\r
-\r
-                       srcDiv.outerHTML = ""; // empty the original DIV tag\r
-                       var elParentPra = kadovFindParentParagraph(el);\r
-                       if( elParentPra )\r
-                               elParentPra.insertAdjacentHTML( "AfterEnd", newDiv );\r
-               }\r
-               else if( type == "expanding"  )\r
-               {\r
-                       var inner = kadovRetrieveTextInner(srcDiv);\r
-                       if( inner == "" )\r
-                               inner = srcDiv.innerHTML;\r
-                       var strAdjust = kadovAdjustObjectTag(inner,0);\r
-                       var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");\r
-                       strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");\r
-                       var strClassName = (el.className == "glossterm") ? "glosstext" : "expandtext";\r
-                       var newSpan = "<span class=" + strClassName + " style='display: none;' id=" + newId + ">&nbsp;" + strCleanHTML + "</span>";\r
-                       srcDiv.outerHTML = ""; // empty the original DIV tag\r
-                       el.insertAdjacentHTML( "AfterEnd", newSpan );\r
-               }\r
-       }\r
-       return 0;\r
-}\r
-\r
-function kadovTextPopup( el )\r
-{\r
-       if( (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS) || (window.event == null) )\r
-               return;\r
-       window.event.cancelBubble = true;\r
-\r
-       if( typeof(el) == "string" )\r
-               el = document.all.item(el);\r
-\r
-       var src = el.getAttribute( "x-use-popup" );\r
-       if(!src)\r
-               return;\r
-\r
-       var name = src;\r
-       if( src.substr(0,1) == "#" ) \r
-               name = src.substr(1, src.length-1) + "_tmp";\r
-       var srcDiv = document.all.item(name);\r
-       if( !srcDiv )\r
-               return;\r
-\r
-       var type = el.getAttribute( "x-popup-type" );\r
-       var setup = el.getAttribute( "x-tmp-setup" );\r
-       if( srcDiv )\r
-       {\r
-               if( srcDiv.style.display == "" )\r
-                       srcDiv.style.display = "none";\r
-               else\r
-               {\r
-                       srcDiv.style.display = "";\r
-                       if( typeof(srcDiv.bInitialized) == "undefined" )\r
-                       {\r
-                               srcDiv.bInitialized = true;\r
-                               kadovInitEffects(name);\r
-                               kadovInitEachChild(srcDiv);\r
-                       }\r
-               }\r
-       }\r
-       return;\r
-}\r
-\r
-function kadovFindParentParagraph( el )\r
-{\r
-       if( typeof(el) == "string" )\r
-               el = document.all.item(el);\r
-       if( (!el) || el.tagName == "BODY" )\r
-               return null;\r
-       if( kadovIsParagraph(el.parentElement) )\r
-               return el.parentElement;\r
-       else\r
-               return kadovFindParentParagraph( el.parentElement );\r
-}\r
-\r
-//Begin HTML code invoked function\r
-function kadovRegisterEventHandler( obj, strEvent, strEventHandler )\r
-{\r
-       if( !gbBsIE4 )\r
-               return;\r
-       CCSSP.RegisterEventHandler( obj, strEvent, strEventHandler );\r
-}\r
-\r
-function kadovTextPopupInit( el )\r
-{\r
-       if( (!gbBsIE4) || (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS))\r
-               return;\r
-               \r
-       if( typeof(el) == "string" )\r
-               el = document.all.item(el);\r
-       if( el != null )\r
-       {\r
-               CCSSP.RegisterEventHandler( el, "onclick", "kadovTextPopup(" + el.id +");" );\r
-               CCSSP.RegisterEventHandler( window, "onload", "kadovTextPopupOnLoad(" + el.id +");" );\r
-       }\r
-}\r
-//End HTML code invoked function\r
-\r
-//End to support extended and dropdown text effects.\r
-\r
-//Begin to convert iWrite format to RoboEditor Format for DHTML effects\r
-function kadovInitTriggersInHead( )\r
-{\r
-  if( Object.xDelayedInitElements )\r
-  {\r
-     var x = Object.xDelayedInitElements;\r
-     for(i=0; i<x.length; i++)\r
-       kadovInitTrigger( x[i] );\r
-  }\r
-}\r
-\r
-//Begin HTML code invoked function\r
-function kadovFilePopupInit( el )\r
-{\r
-       if( !gbBsIE4 )\r
-               return;\r
-       if( typeof(el) == "string" )\r
-               el = document.all.item(el);\r
-\r
-       if( el != null )\r
-               CCSSP.RegisterEventHandler( el, "onmouseover", "BSPSPopupOnMouseOver(event);" );\r
-}\r
-\r
-function kadovInitTrigger( element )\r
-{\r
-       if( !gbBsIE4 )\r
-               return;\r
-       var srcElement = element;\r
-       if( typeof(srcElement) == "string" )\r
-       {\r
-               srcElement = document.all.item(element,0);\r
-               if(srcElement == null)\r
-                       return;\r
-       }\r
-       \r
-       if( !kadovIsParentVisible(srcElement) )\r
-               return;\r
-\r
-       var targets = srcElement.getAttribute( "x-targets" );\r
-       var arrOneTarget = targets.split( "," );\r
-       for( var i = 0; i < arrOneTarget.length; i ++ )\r
-               bsscFXInit( element, arrOneTarget[i], null, null, null, null );\r
-}\r
-\r
-function kadovIsParentVisible( el )\r
-{\r
-       if( typeof(el) == "string" )\r
-               el = document.all.item(el);\r
-       if( (!el) || el.tagName == "BODY" )\r
-               return true;\r
-       if( el.style.display == 'none' ) //el.visibility == 'hidden' || \r
-               return false;\r
-       else\r
-               return kadovIsParentVisible( el.parentElement );\r
-}\r
-\r
-function kadovInitEffects( element )\r
-{\r
-       if( !gbBsIE4 )\r
-               return;\r
-       var srcElement = element;\r
-       if( typeof(srcElement) == "string" )\r
-       {\r
-               srcElement = document.all.item(element,0);\r
-               if(srcElement == null)\r
-                       return;\r
-       }\r
-       \r
-       if( !kadovIsParentVisible(srcElement) )\r
-               return;\r
-       \r
-       kadovInitEffect( srcElement, "x-on-hover" );\r
-       kadovInitEffect( srcElement, "x-on-pageclick" );\r
-       kadovInitEffect( srcElement, "x-on-pageload" );\r
-       kadovInitEffect( srcElement, "x-on-trigger-1" );\r
-       kadovInitEffect( srcElement, "x-on-trigger-2" );\r
-}\r
-//End HTML code invoked function\r
-\r
-function kadovInitEffect( element, prop )\r
-{\r
-       var values = null;\r
-       if( element.getAttribute( "currentStyle" )  && element.currentStyle.getAttribute)\r
-               values = element.currentStyle.getAttribute( prop );\r
-       else  if (element.style.getAttribute)\r
-               values = element.style.getAttribute( prop );\r
-       if( !values )\r
-               return;\r
-\r
-       var functions = new Array();\r
-       var nIdx = 0, nStart = 0;\r
-       var nNext = values.indexOf( "\)", 0);\r
-       while( nNext >= 0 && nNext < values.length )\r
-       {\r
-               functions[nIdx] = values.substr( nStart, nNext-nStart+1);\r
-               nStart = nNext + 1;\r
-               nIdx++;\r
-               nNext = values.indexOf( "\)", nStart);\r
-       }\r
-               \r
-       for( var i=0; i<functions.length; i++)\r
-       {\r
-               var id = element.getAttribute( "id" );\r
-               var translatedProp = kadovTranslateProp(prop);\r
-\r
-               var lp = functions[i].indexOf( "(" );\r
-               var fnname = functions[i].substring(0, lp);\r
-               var srcargs = functions[i].substring(lp+1, functions[i].length-1);\r
-               \r
-               var nClickTimes = 1;\r
-               var arrForClickCount = srcargs.split( "," );\r
-               for( var j = 0; j < arrForClickCount.length; j++ )\r
-               {// to locate and get the "clicks=99" settings\r
-                       var nPageClick = arrForClickCount[j].indexOf("clicks");\r
-                       if( nPageClick >= 0 )\r
-                       {\r
-                               nPageClick = arrForClickCount[j].indexOf("=");\r
-                               if( nPageClick > 0 )\r
-                               {\r
-                                       nClickTimes = arrForClickCount[j].substring( nPageClick + 1, arrForClickCount[j].length) * 1;\r
-                                       break;\r
-                               }\r
-                       }\r
-               }\r
-               var args = srcargs;\r
-               if( j < arrForClickCount.length )\r
-               {// to strip out the "clicks=99" from the arguments string\r
-                       args = "";\r
-                       for( var k = 0; k < arrForClickCount.length; k ++ )\r
-                       {\r
-                               if( k != j )\r
-                               {\r
-                                       args += arrForClickCount[k];\r
-                                       if( k < arrForClickCount.length - 1 )\r
-                                               args += ",";\r
-                               }\r
-                       }\r
-               }\r
-               bsscFXInit( null, id, translatedProp, fnname, args, nClickTimes );\r
-       }\r
-}\r
-\r
-function kadovTranslateProp( prop )\r
-{\r
-       switch( prop )\r
-       {\r
-       case "x-on-hover" :     return "bsschover";\r
-       case "x-on-pageclick" : return "bsscpageclick";\r
-       case "x-on-pageload" :  return "bsscpageload";\r
-       case "x-on-trigger-1" : return "bssctrigger1";\r
-       case "x-on-trigger-2" : return "bssctrigger2";\r
-       }\r
-       return null;\r
-}\r
-//End to convert iWrite format to RoboEditor Format for DHTML effects\r
-\r
-//Begin the definition of one entry to DHTML effects\r
-function bsscFXInit( trigger_ID, target_ID, event_type, \r
-       action_type, action_setting, event_addional )\r
-{\r
-       if( (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS ) || typeof(target_ID) != "string" )//MUST have a target_ID\r
-               return; // we don't support Navigator yet\r
-       \r
-       if( typeof(event_type) == "string" )\r
-               event_type = event_type.toLowerCase();\r
-       if( typeof(action_type) == "string" )\r
-               action_type = action_type.toLowerCase();\r
-       if( typeof(action_setting) == "string" )\r
-                action_setting = action_setting.toLowerCase();\r
-       \r
-       // to get the target element then add it to the target list\r
-       var eleTarget = CCSSP.GetObject( target_ID );\r
-       if( (eleTarget != null) && (event_type != null) && (action_type != null) )\r
-       {\r
-               CEngine.AddOneTarget( target_ID, eleTarget );\r
-               CEngine.BuildTargetObject(target_ID, event_type, action_type, action_setting, event_addional);\r
-       }\r
-       \r
-       // to validate the trigger_ID parameter\r
-       if( typeof(trigger_ID) == "string" && trigger_ID != "" )\r
-               CEngine.BuildTriggerObject( trigger_ID, target_ID );\r
-}      \r
-//End the definition of one entry to DHTML effects\r
-\r
-\r
-/// Section End  - kadov DHTM (JavaScript 1.2)\r
-\r
-\r
-/// Section Begin  - CCSSP DHTM (JavaScript 1.2)\r
-\r
-//Begin JavaScript libary for cross-platform positioning object.\r
-function CCSSP(){} // constructor of CCSSP class\r
-\r
-CCSSP.strAgent = navigator.userAgent.toLowerCase(); \r
-CCSSP.nAppVersion = parseInt(navigator.appVersion);\r
-\r
-CCSSP.bIsWinOS = ((CCSSP.strAgent.indexOf("win") >= 0) || (CCSSP.strAgent.indexOf("16bit") >= 0));\r
-CCSSP.bIsMacOS = (CCSSP.strAgent.indexOf("mac") >= 0);\r
-CCSSP.bIsSunOS = (CCSSP.strAgent.indexOf("sunos") != -1);\r
-\r
-CCSSP.bIsIE = (navigator.appName.indexOf("Microsoft") >= 0);\r
-CCSSP.bIsIE4 = (CCSSP.bIsIE && (CCSSP.nAppVersion >= 4));\r
-CCSSP.bIsIE5 = (CCSSP.bIsIE4 && (CCSSP.strAgent.indexOf("msie 5") != -1) )\r
-\r
-CCSSP.bIsNav = (navigator.appName.indexOf("Netscape") >= 0);\r
-CCSSP.bIsNav4 = (CCSSP.bIsNav && (CCSSP.nAppVersion >= 4));\r
-CCSSP.bIsNav6 = (CCSSP.bIsNav && (CCSSP.nAppVersion >= 5));\r
-\r
-CCSSP.GetObject = function( obj )\r
-{//convert object name string or reference into a valid object reference\r
-       if( typeof(obj) == "object" )\r
-               return obj;\r
-       else if( typeof(obj) == "string" && obj != "")\r
-       {\r
-               if( CCSSP.bIsNav4 )\r
-                       return eval("document." + obj);\r
-               else\r
-                       return eval("document.all." + obj);\r
-       }\r
-       else\r
-               return null;\r
-}\r
-\r
-CCSSP.MoveObjectTo = function(obj, x, y)\r
-{//positioning an object at a specific pixel coordinate\r
-       if( CCSSP.bIsNav4 )\r
-               obj.moveTo(x,y);\r
-       else\r
-       {\r
-               obj.style.pixelLeft = x;\r
-               obj.style.pixelTop = y;\r
-       }\r
-}\r
-\r
-CCSSP.MoveObjectBy = function(obj, dx, dy)\r
-{//moveing a object by x and/or y pixel\r
-       if( CCSSP.bIsNav4 )\r
-               obj.moveBy(dx,dy);\r
-       else\r
-       {\r
-               obj.style.pixelLeft += dx;\r
-               obj.style.pixelTop += dy;\r
-       }\r
-}\r
-\r
-CCSSP.SetObjectBGColor = function(obj, color)\r
-{//set the background color of an object\r
-       if( CCSSP.bIsNav4 )\r
-               obj.bgColor = color;\r
-       else\r
-               obj.style.backgroundColor = color;\r
-}\r
-\r
-CCSSP.ShowObject = function(obj, bShow)\r
-{// set the object to be visible or invisible\r
-       if( CCSSP.bIsNav4 )\r
-               obj.visibility = (bShow == true) ? 'show' : 'hide';\r
-       else\r
-               obj.style.visibility = (bShow == true) ? 'visible' : 'hidden';// when hidden, it still occupy some space.\r
-}\r
-\r
-CCSSP.GetObjectLeft = function(obj)\r
-{// retrieve the x coordinate of a posionable object\r
-       if( CCSSP.bIsNav4 )\r
-               return obj.left;\r
-       else\r
-               return obj.style.pixelLeft;\r
-}\r
-\r
-CCSSP.GetObjectTop = function(obj)\r
-{// retrieve the y coordinate of a posionable object\r
-       if( CCSSP.bIsNav4 )\r
-               return obj.top;\r
-       else\r
-               return obj.style.pixelTop;\r
-}\r
-\r
-CCSSP.GetObjectContainLeft = function(obj)\r
-{// retrieve the x coordinate of a posionable object relative to it's parent element\r
-       if( CCSSP.bIsNav4 )\r
-               return obj.pageX;\r
-       else\r
-       {\r
-               if( obj == document.body )\r
-                       return obj.clientLeft;\r
-               else\r
-                       return obj.offsetLeft;\r
-       }\r
-}\r
-\r
-CCSSP.GetObjectWindowLeft = function(obj)\r
-{// retrieve the x coordinate of a posionable object relative to browser window\r
-       if( CCSSP.bIsNav4 )\r
-               return obj.pageX;\r
-       else\r
-       {\r
-               var nOffsetWindowLeft = 0;\r
-               for(var element = obj; element; element = element.offsetParent)\r
-                       nOffsetWindowLeft += CCSSP.GetObjectContainLeft(element);\r
-               return nOffsetWindowLeft;\r
-       }\r
-}\r
-\r
-CCSSP.GetObjectContainTop = function(obj)\r
-{// retrieve the y coordinate of a posionable object relative to it's parent element\r
-       if( CCSSP.bIsNav4 )\r
-               return obj.pageY;\r
-       else\r
-       {\r
-               if( obj == document.body )\r
-                       return obj.clientTop;\r
-               else\r
-                       return obj.offsetTop;\r
-       }\r
-}\r
-\r
-CCSSP.GetObjectWindowTop = function(obj)\r
-{// retrieve the y coordinate of a posionable object relative to browser window\r
-       if( CCSSP.bIsNav4 )\r
-               return obj.pageY;\r
-       else\r
-       {\r
-               var nOffsetWindowTop = 0;\r
-               for(var element = obj; element; element = element.offsetParent)\r
-                       nOffsetWindowTop += CCSSP.GetObjectContainTop(element);\r
-               return nOffsetWindowTop;\r
-       }\r
-}\r
-\r
-CCSSP.GetObjectHeight = function(obj)\r
-{// retrieve the height of a posionable object\r
-       if( CCSSP.bIsNav4 )\r
-               return obj.clip.height;\r
-       else\r
-               return obj.offsetHeight;\r
-}\r
-\r
-CCSSP.GetObjectWidth = function(obj)\r
-{// retrieve the width of a posionable object\r
-       if( CCSSP.bIsNav4 )\r
-               return obj.clip.width;\r
-       else\r
-               return obj.offsetWidth;\r
-}\r
-\r
-CCSSP.RegisterEventHandler = function( srcObj, rawEventName, funcHandler )\r
-{ // to add the "funcHandler" as the "rawEventName" 's handler to the "srcObj" object,the original event handler will be combined\r
-       if (CCSSP.bIsNav4 && !CCSSP.bIsNav6)\r
-               return ;\r
-       var oldHandler = "";\r
-       if (CCSSP.bIsMacOS && CCSSP.bIsIE4)\r
-       {\r
-               if (typeof(srcObj[rawEventName.toLowerCase()])=="unknown")\r
-               { //search for <SCRIPT> tag which define the event handler\r
-                       for( var i = 0; i < document.scripts.length; i++ ) \r
-                       {\r
-                               var script = document.scripts[i];\r
-                               if( (script.htmlFor == srcObj.id || script.htmlFor == srcObj ) && script.event == rawEventName )\r
-                               {\r
-                                       oldHandler = script.innerHTML;\r
-                                       break;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-       else\r
-       {\r
-               var oldInlineHandler = srcObj[rawEventName.toLowerCase()];\r
-               if( oldInlineHandler != null && typeof(oldInlineHandler) != "undefined")\r
-               {\r
-                       var functionDefinition = oldInlineHandler.toString();\r
-                       var bodyStart = functionDefinition.indexOf( "{" );\r
-                       var bodyEnd = functionDefinition.lastIndexOf( "}" );\r
-                       if( bodyStart > 0 || bodyEnd > bodyStart )\r
-                               oldHandler = functionDefinition.substr( bodyStart + 1, bodyEnd - bodyStart - 2 );\r
-               }\r
-               else if( CCSSP.bIsIE4 )\r
-               { //search for <SCRIPT> tag which define the event handler\r
-                       for( var i = 0; i < document.scripts.length; i++ ) \r
-                       {\r
-                               var script = document.scripts[i];\r
-                               if( (script.htmlFor == srcObj.id || script.htmlFor == srcObj ) && script.event == rawEventName )\r
-                               {\r
-                                       oldHandler = script.innerHTML;\r
-                                       break;\r
-                               }\r
-                       }\r
-               }\r
-       }       \r
-       if( oldHandler.indexOf(funcHandler) >= 0 )\r
-               return;// to prevent register the funtion twice.\r
-\r
-       if( CCSSP.bIsNav4 ) // only "onload, onresize, onfocus" apply to window\r
-       {// other raw events will apply to layer\r
-               var noOn = rawEventName.substring(2, rawEventName.length);\r
-               if( typeof(noOn) == "string" && noOn.length > 3 ) {\r
-                       srcObj.captureEvents( Event[noOn.toUpperCase()] );\r
-               }\r
-       }\r
-\r
-       var newHandler = oldHandler;\r
-       if( newHandler.length == 0 )\r
-               newHandler = funcHandler;\r
-       else\r
-               newHandler += "; " + funcHandler;\r
-       srcObj[rawEventName.toLowerCase()] = new Function( newHandler );\r
-}\r
-\r
-CCSSP.GetWindowHeight = function()\r
-{// retrieve the height of available content in browser window\r
-       if( CCSSP.bIsNav4 )\r
-               return window.innerHeight;\r
-       else\r
-               return document.body.clientHeight;\r
-}\r
-\r
-CCSSP.GetWindowBottom = function()\r
-{// retrieve the bottom postion of browser window\r
-       if( CCSSP.bIsNav4 )\r
-               return window.outerHeight + window.pageYOffset;\r
-       else\r
-               return document.body.clientHeight + document.body.scrollTop;\r
-}\r
-\r
-CCSSP.GetWindowWidth = function()\r
-{// retrieve the width of available content in browser window\r
-       if( CCSSP.bIsNav4 )\r
-               return window.innerWidth;\r
-       else\r
-               return document.body.clientWidth;\r
-}\r
-\r
-CCSSP.GetWindowRight = function()\r
-{// retrieve the right postion of browser window\r
-       if( CCSSP.bIsNav4 )\r
-               return window.outerWidth + window.pageXOffset;\r
-       else\r
-               return document.body.clientWidth + document.body.scrollLeft;\r
-}\r
-\r
-CCSSP.TrimString = function( objString, subtrim )\r
-{// to trim the "subtrim" in the beginning and ending of a string object\r
-       if( typeof(subtrim) != "string" || subtrim == null )\r
-               return objString;\r
-       var strHead = objString.substring(0, 1);\r
-       var strRear = objString.substring(objString.length-1, objString.length);\r
-       if( strHead != subtrim && strRear != subtrim )\r
-               return objString;\r
-       \r
-       var spacePos = objString.indexOf(subtrim);\r
-       if( spacePos < 0 )\r
-               return objString;\r
-       else if( spacePos == objString.length - 1 )\r
-               return objString.substring(0, spacePos);\r
-       else\r
-       {\r
-               var newString = objString.substring( spacePos + 1, objString.length);\r
-               return CCSSP.TrimString( newString, subtrim );\r
-       }\r
-}\r
-\r
-CCSSP.TrimSpace = function( objString )\r
-{\r
-       var Trim1 = CCSSP.TrimString( objString, " ");\r
-       return CCSSP.TrimString( Trim1, "\'");\r
-}\r
-\r
-CCSSP.GetEventElement = function( navEventObject )\r
-{// to get the element who fired the current event\r
-       if(CCSSP.bIsNav4 ) \r
-               if (CCSSP.bIsNav6)\r
-                       return null;\r
-               else\r
-                        navEventObject.target;\r
-       else\r
-               return event.srcElement;\r
-}\r
-\r
-CCSSP.PrepareFilter = function( Obj )\r
-{//to prepare for making the filter work\r
-       Obj.style.filter = "";\r
-       if( Obj.style.width != "" || Obj.style.height != "" || Obj.style.position == "absolute" )\r
-               return;\r
-       Obj.style.height = CCSSP.GetObjectHeight(Obj);\r
-}\r
-\r
-CCSSP.IsDescendant = function( progenitor, progeny )\r
-{\r
-       if( typeof(progeny) == "undefined" || progeny == null )\r
-               return false;\r
-       else if( progeny == progenitor )\r
-               return true; \r
-       else if( progeny.id == progenitor.id ) \r
-               return true; \r
-       else if( progeny.parentElement == progenitor.parentElement )\r
-               return false;\r
-       else\r
-               return CCSSP.IsDescendant( progenitor, progeny.parentElement );\r
-}\r
-\r
-CCSSP.IsTextTag = function( Obj )\r
-{\r
-       if( typeof( Obj.tagName ) == "undefined" )\r
-               return false;\r
-       return( Obj.tagName.indexOf("H") == 0 || Obj.tagName == "P" || \r
-                       Obj.tagName == "FONT" || Obj.tagName == "SPAN" );\r
-}\r
-\r
-//End JavaScript libary for cross-platform positioning object.\r
-\r
-/// Section End  - CCSSP DHTM (JavaScript 1.2)\r
-\r
-/// Section Begin  - CCSSP DHTM 1 (JavaScript 1.2)\r
-\r
-//Begin the definition of class CTrigger\r
-function CTrigger( TriggerElement )\r
-{\r
-       // object : the trigger element. Never be null. \r
-       this.eleTrigger = TriggerElement;\r
-       \r
-       // number : the click counter number: only 3 values: 0,1,2;\r
-       this.nCounter = 0; \r
-       \r
-       //object as associative array of string:\r
-       // the associate target ID strings; one element at least.                       \r
-       this.objStrTarget = new Object();\r
-       this.eleTrigger.style.cursor = "hand";\r
-       if( this.eleTrigger.tagName == "AREA" && this.eleTrigger.getAttribute("href") == "" )\r
-               this.eleTrigger.setAttribute("href", "#") // to make a hand cursor for image map\r
-}\r
-\r
-CTrigger.prototype.AddTargetID = function( strTargetID )\r
-{// add one target ID string to the objStrTarget\r
-       if( typeof(strTargetID) != "string" )\r
-               return ;\r
-       if( typeof(this.objStrTarget[strTargetID]) != "string" )\r
-               this.objStrTarget[strTargetID] = strTargetID;\r
-}\r
-\r
-CTrigger.prototype.OnTriggerClick = function()\r
-{// to activate all asociated target\r
-       var strEventType = ( (this.nCounter++)% 2 == 0 ) ? \r
-               "bssctrigger1" : "bssctrigger2";\r
-               \r
-       // to enumerate associative target element's ID string\r
-       for( var strTargetID in this.objStrTarget ) \r
-               CEngine.SendEventToOneTarget( strTargetID, strEventType );\r
-}\r
-//End the definition of class CTrigger\r
-\r
-//Begin the definition of class CTarget\r
-function CTarget( TargetElement )\r
-{\r
-       // object : the target element. Never be null.\r
-       this.eleTarget = TargetElement;\r
-       this.objManager = new Object(); // object: the event manager\r
-} \r
-\r
-CTarget.nPageClickCounter = 0;// static class property.\r
-\r
-CTarget.prototype.GetAgencyObject = function(str_action_type,action_setting )\r
-{// return the action agency ( effect )object's refernece \r
-       switch( str_action_type )\r
-       {\r
-       case "show":return new CAgencyShow( this.eleTarget, true ) ;\r
-       case "hide":return new CAgencyShow( this.eleTarget, false ) ;\r
-\r
-    case "flyin" : \r
-       return new CAgencyFly(this.eleTarget, action_setting, true);\r
-    case "flyout" : \r
-       return new CAgencyFly(this.eleTarget, action_setting, false);\r
-    case "spiralin" : \r
-       return new CAgencySpiral(this.eleTarget, action_setting, true);\r
-    case "spiralout" : \r
-       return new CAgencySpiral(this.eleTarget, action_setting, false);\r
-    case "zoomin" :\r
-       return new CAgencyZoom(this.eleTarget, action_setting, true);\r
-    case "zoomout" : \r
-       return new CAgencyZoom(this.eleTarget, action_setting, false);\r
-    case "elastic" : \r
-               return new CAgencyElastic(this.eleTarget, action_setting);\r
-               \r
-    case "fadein" : \r
-       return (CCSSP.bIsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, true) : null;\r
-    case "fadeout" :\r
-       return (CCSSP.bIsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, false) : null;\r
-    case "rockrollstatic" :\r
-    case "rockroll" :\r
-       return (CCSSP.bIsIE4)? new CAgencyWave(this.eleTarget, action_setting, false) : null;\r
\r
-    case "glow":\r
-       return (CCSSP.bIsIE4)? new CAgencyGlow(this.eleTarget,action_setting) : null;\r
-    case "dropshadow":\r
-       return (CCSSP.bIsIE4)? new CAgencyDropShadow(this.eleTarget,action_setting) : null;\r
-    case "transition" :\r
-       return (CCSSP.bIsIE4)? new CAgencyRevealTrans(this.eleTarget,action_setting) : null;\r
-    case "blur" :\r
-       return (CCSSP.bIsIE4)? new CAgencyBlur(this.eleTarget,action_setting) : null;\r
-\r
-    case "fliph" : // all these 4 do NOT need any parameters\r
-    case "flipv" :\r
-    case "invert":\r
-    case "gray" :\r
-       return (CCSSP.bIsIE4)? new CAgencyChangeFilter(this.eleTarget, str_action_type) : null;\r
-    \r
-    case "fontchange": // the effects below change the style on the fly, so won't work in Navigator\r
-       return (CCSSP.bIsIE4)? new CAgencyFontChange(this.eleTarget,action_setting) : null;\r
-    case "boderchange": \r
-    case "stylechange":\r
-       return (CCSSP.bIsIE4)? new CAgencyChangeStyle(this.eleTarget,action_setting) : null;\r
-\r
-       default: return null;\r
-       }\r
-}\r
-\r
-CTarget.prototype.SetEventManager = function( \r
-       one_event_type,str_action_type,action_setting,event_additional)\r
-{// to set the event manager with specified action \r
-       if( typeof( one_event_type ) != "string" ||     \r
-               typeof( str_action_type ) != "string"||\r
-               typeof( action_setting ) != "string" )\r
-               return false;\r
-       if( typeof(this.objManager[one_event_type]) == "undefined" )\r
-       {\r
-               this.objManager[one_event_type] = new Object();\r
-               this.objManager[one_event_type].length = 0;\r
-       }\r
-       \r
-       var eventAgency = this.GetAgencyObject(str_action_type,action_setting);\r
-       if( eventAgency != null )\r
-       {\r
-               var ct = this.objManager[one_event_type].length ++;\r
-               this.objManager[one_event_type][ct] = eventAgency;\r
-               \r
-               if( one_event_type == "bsscpageclick" )\r
-               {// to deal with the "number of pageclick" stuff\r
-                       if( typeof(event_additional) == "number" )\r
-                               this.objManager[one_event_type][ct].nPageClick = event_additional;\r
-                       else // set the default number \r
-                               this.objManager[one_event_type][ct].nPageClick = 1;\r
-                       \r
-                       if( (typeof(this.objManager.nMinPageClickIndex) == "undefined") ||\r
-                           (this.objManager[one_event_type][ct].nPageClick < \r
-                                       this.objManager[one_event_type][this.objManager.nMinPageClickIndex].nPageClick) )\r
-                               this.objManager.nMinPageClickIndex = ct;\r
-               }\r
-               \r
-               //hide the object blindly,SetState function will take care of the final correct state\r
-               if( ((one_event_type == "bsscpageclick") && \r
-                        (this.objManager[one_event_type][ct].nPageClick == 1)) ||\r
-                       one_event_type == "bsscpageload" ||\r
-                       one_event_type == "bssctrigger1" )\r
-                       CCSSP.ShowObject( this.eleTarget, false );\r
-               \r
-               if( one_event_type == "bssctrigger1" || one_event_type == "bssctrigger2" )\r
-                       if( typeof( this.strTriggerEvent ) == "undefined" )\r
-                               this.strTriggerEvent = ( one_event_type == "bssctrigger1" ) ? "bssctrigger2" : "bssctrigger1";\r
-                       \r
-               return true;\r
-       }\r
-       return false;\r
-}\r
-\r
-CTarget.prototype.OnEvent = function( strBsscEvent )\r
-{// response to the event ( bssc format )\r
-       if( typeof(this.objManager[strBsscEvent]) == "object" )\r
-       { // to get the event agency from the event manager\r
-               var eventAgency = this.objManager[strBsscEvent];\r
-               for( var i = 0; i < eventAgency.length; i++ )\r
-               {\r
-                       if( strBsscEvent == "bsscpageclick" && \r
-                               eventAgency[i].nPageClick != CTarget.nPageClickCounter )\r
-                                continue;\r
-                       else if( strBsscEvent == "bsschover" && event.type == "mouseout" )\r
-                               eventAgency[i].EndEffect();\r
-                       else // to invoke the unified function in effect object \r
-                               eventAgency[i].UpdateEffect(); \r
-               }\r
-       }\r
-}\r
-\r
-CTarget.prototype.SetState = function( strBsscEvent )\r
-{\r
-       if( typeof(this.objManager[strBsscEvent]) != "object" )\r
-               return false;\r
-\r
-       // to get the event agency from the event manager\r
-       var eventAgency = this.objManager[strBsscEvent];\r
-       \r
-       if( strBsscEvent == "bsscpageclick" )\r
-       {// we only set the initial state for the minium number of pageclick \r
-               eventAgency[this.objManager.nMinPageClickIndex].PrepareEffect();\r
-               return true;\r
-       }\r
-       else\r
-       {\r
-               for( var i = 0; i < eventAgency.length; i++ )\r
-                       eventAgency[i].PrepareEffect(); // to invoke the unified function in effect object       \r
-               if( i > 0 )\r
-                       return true;\r
-               else\r
-                       return false;\r
-       }\r
-}\r
-//End the definition of class CTarget\r
-\r
-//Begin the definition of CEngine class\r
-function CEngine(){}// all properities are going be "class" properities\r
-\r
-// object : as associative array of trigger objects\r
-CEngine.objTrigger = new Object();\r
-// object : as associative array of target objects \r
-CEngine.objTarget = new Object(); \r
-\r
-// Array : each element is a CAgencyXXX animation object\r
-CEngine.arrAnimation = new Array();\r
-CEngine.PerformAnimation = function( nIndex )\r
-{// animation : update effects function\r
-       CEngine.arrAnimation[nIndex].UpdateEffect();\r
-}\r
-\r
-CEngine.AddOneTrigger = function(TriggerID,TriggerElement)\r
-{// add one Trigger object into the trigger array\r
-       if( typeof(TriggerID) != "string" || TriggerElement == null ||\r
-           typeof(TriggerElement) != "object" )\r
-               return;\r
-       if( typeof(CEngine.objTrigger[TriggerID] ) != "object" )\r
-               CEngine.objTrigger[TriggerID] = new CTrigger(TriggerElement);\r
-}\r
-       \r
-CEngine.AddOneTarget = function(TargetID, TargetElement)\r
-{// add one Target object into the target array\r
-       if( typeof(TargetID) != "string" || TargetElement == null ||\r
-               typeof(TargetElement) != "object" )\r
-               return;\r
-       if( typeof(CEngine.objTarget[TargetID]) != "object" )\r
-               CEngine.objTarget[TargetID] = new CTarget( TargetElement );\r
-}\r
-\r
-CEngine.SendEventToOneTarget = function(strTargetID, strBsscEvent )\r
-{// to activate one target object\r
-       if( typeof(CEngine.objTarget[strTargetID]) == "object" ) \r
-       {\r
-               if( strBsscEvent == "bssctrigger1" || strBsscEvent == "bssctrigger2" )\r
-               {//now, the "bssctrigger1" and "bssctrigger2" work like a toggle\r
-                       if( strBsscEvent == CEngine.objTarget[strTargetID].strTriggerEvent )\r
-                               strBsscEvent = (strBsscEvent == "bssctrigger1") ? "bssctrigger2" : "bssctrigger1";\r
-                       CEngine.objTarget[strTargetID].strTriggerEvent = strBsscEvent;\r
-               }\r
-               CEngine.objTarget[strTargetID].OnEvent( strBsscEvent );\r
-       }\r
-}\r
-\r
-CEngine.SendEventToAllTarget = function( strBsscEvent )\r
-{ //to activate all target associative to the BSSC event\r
-       for( var strTargetID in CEngine.objTarget ) //to enumerate all target\r
-               CEngine.SendEventToOneTarget( strTargetID, strBsscEvent );\r
-}\r
-\r
-CEngine.SetOneTargetInitialState = function( strTargetID )\r
-{// only invoked after ALL effects for the target have been set\r
-       if( typeof(CEngine.objTarget[strTargetID]) == "object" ) \r
-       {// to get target object\r
-               var objTarget = CEngine.objTarget[strTargetID];\r
-               if( objTarget.SetState( "bsscpageload" ) == false )\r
-               {\r
-                       objTarget.SetState( "bsscpageclick" );\r
-                       objTarget.SetState( "bssctrigger1" );\r
-               }\r
-       }\r
-}\r
-\r
-CEngine.AdjustPageClickCounter = function()\r
-{\r
-       var nAdjustedClickCounter = CTarget.nPageClickCounter;\r
-       var bAdjusted = false;\r
-       for( var strTargetID in CEngine.objTarget ) //to enumerate all target\r
-       {// try to find the minum pageCliclConter greater than CTarget.nPageClickCounter\r
-               var objEventPageClick = CEngine.objTarget[strTargetID].objManager.bsscpageclick;\r
-               if( objEventPageClick != null )\r
-               {\r
-                       for( var i = 0; i < objEventPageClick.length; i++ )\r
-                       {\r
-                               var nOtherPageClick = objEventPageClick[i].nPageClick;\r
-                               if( nOtherPageClick == CTarget.nPageClickCounter )\r
-                                       return;\r
-                               if( nOtherPageClick > CTarget.nPageClickCounter )\r
-                               {\r
-                                       if( !bAdjusted )\r
-                                       {\r
-                                               nAdjustedClickCounter = nOtherPageClick;\r
-                                               bAdjusted = true;\r
-                                       }\r
-                                       else if( nOtherPageClick < nAdjustedClickCounter )\r
-                                               nAdjustedClickCounter = nOtherPageClick;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-       CTarget.nPageClickCounter = nAdjustedClickCounter;\r
-}\r
-\r
-CEngine.OnPageLoad = function()\r
-{      \r
-       // first, to set all target's initial state\r
-       for( var strTargetID in CEngine.objTarget )\r
-               CEngine.SetOneTargetInitialState( strTargetID );\r
-       \r
-       // to invoke all target's onpageload handler\r
-       CEngine.SendEventToAllTarget( "bsscpageload" );\r
-}\r
-\r
-CEngine.OnPageClick = function()\r
-{ // to invoke all target's onpageclick handler\r
-       var src = CCSSP.GetEventElement( arguments[0] );\r
-       if( src == null )\r
-               return;\r
-               \r
-       var objClickedTrigger = null;\r
-       for( var strTriggerID in CEngine.objTrigger )\r
-       { // to detect which trigger is clicked\r
-               if( CCSSP.IsDescendant( CEngine.objTrigger[strTriggerID].eleTrigger,src) )\r
-               {\r
-                       objClickedTrigger = CEngine.objTrigger[strTriggerID];\r
-                       break;\r
-               }\r
-       }\r
-       \r
-       if( objClickedTrigger != null) // the clicked trigger found\r
-               objClickedTrigger.OnTriggerClick();\r
-       else // no trigger is clicked\r
-       { // to send PageClick event to all target\r
-               CTarget.nPageClickCounter++;\r
-               CEngine.AdjustPageClickCounter();\r
-               CEngine.SendEventToAllTarget( "bsscpageclick" );\r
-       }\r
-}      \r
-\r
-CEngine.OnMouseOver = function()\r
-{ // to invoke all target's onpageload handler\r
-       var src = CCSSP.GetEventElement( arguments[0] );\r
-       if( src == null )\r
-               return;\r
-               \r
-       var strHoveredTargetID = null;\r
-       for( var strTargetID in CEngine.objTarget )\r
-       { // to detect which Target is hovering on\r
-               if( CCSSP.IsDescendant( CEngine.objTarget[strTargetID].eleTarget, src ) )\r
-           {\r
-                       strHoveredTargetID = strTargetID;\r
-                       break;\r
-           }\r
-       }\r
-       \r
-       if( strHoveredTargetID != null ) // the hovered target found\r
-               CEngine.SendEventToOneTarget( strHoveredTargetID, "bsschover" );\r
-}\r
-\r
-CEngine.BuildTargetObject = function(target_ID,event_type,action_type,\r
-                       action_setting, event_additional)\r
-{// to build target object \r
-       // to get the target object\r
-       if( typeof( CEngine.objTarget[target_ID] ) != "object" )\r
-               return false;// the engine's AddOneTarget function might have failed.\r
-       var TargetObject = CEngine.objTarget[target_ID];\r
-       \r
-       // to prepare the parameters for the event manager\r
-       var arrEvent = event_type.split("|"); // to split the combined event_type string\r
-       var arrAction = action_type.split("|");//to split the combined action_type string\r
-       for( var trim = 0; trim < arrEvent.length; trim++ )\r
-               arrEvent[trim] = CCSSP.TrimSpace(arrEvent[trim]);\r
-       \r
-       for( trim = 0; trim < arrAction.length; trim++ )\r
-               arrAction[trim] = CCSSP.TrimSpace(arrAction[trim]);\r
-       \r
-       var arrSetting = new Array(); \r
-       if( typeof(action_setting) == "string" )\r
-               arrSetting = action_setting.split("|");// to split the combined action_setting string\r
-       // to calibrate the arrays\r
-       for( var i = arrSetting.length; i < arrAction.length; i++ )\r
-       {\r
-               if( typeof(arrSetting[i]) != "string" )\r
-                        arrSetting[i] = "";\r
-       }                                \r
-\r
-       // to prepare for dealing with the absolute posioning element\r
-       TargetObject.eleTarget.ABSX = CCSSP.GetObjectLeft( TargetObject.eleTarget );\r
-       TargetObject.eleTarget.ABSY = CCSSP.GetObjectTop( TargetObject.eleTarget );\r
-\r
-       if( arrEvent.length > 1 )\r
-       {// if event is combined, it must be : "bssctrigger1 | bssctrigger2"\r
-               if( arrAction.length != 2 )\r
-                       return false; // if event is combined, there must be 2 actions\r
-               for( i = 0 ; i < 2; i++ )\r
-               {\r
-                       if( TargetObject.SetEventManager(arrEvent[i], arrAction[i], \r
-                               arrSetting[i], event_additional) == false )\r
-                               return false; // the event manager has not been set up\r
-               }\r
-       }\r
-       else // the event_type string is not combined\r
-       {\r
-               for( i = 0 ; i < arrAction.length; i++ )\r
-               {\r
-                       TargetObject.SetEventManager(event_type, arrAction[i], arrSetting[i], event_additional);\r
-                       // to validate the event manager\r
-                       if( typeof(TargetObject.objManager[event_type]) != "object" ||\r
-                                       typeof(TargetObject.objManager[event_type][i]) != "object" )\r
-                               return false; // the event manager has not been set up\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-CEngine.BuildTriggerObject = function(trigger_ID, target_ID)\r
-{// to build the trigger object\r
-       var arrTrigger = trigger_ID.split("|"); // to split the combined trigger_ID string\r
-       for( var i = 0; i < arrTrigger.length; i ++ )\r
-       {// to get the trigger element then add it to the trigger list\r
-               arrTrigger[i] = CCSSP.TrimSpace( arrTrigger[i] );\r
-               var eleTrigger = CCSSP.GetObject( arrTrigger[i] );\r
-               if( eleTrigger == null )\r
-                       continue; // the trigger_ID string in the HTML code maybe wrong\r
-               CEngine.AddOneTrigger( arrTrigger[i], eleTrigger );\r
-\r
-               // to get the target object\r
-               if( typeof( this.objTrigger[arrTrigger[i]] ) != "object" )\r
-                       continue;// the engine's AddOneTarget function might have failed.\r
-               CEngine.objTrigger[arrTrigger[i]].AddTargetID( target_ID );\r
-       }\r
-}\r
-//End the definition of CEngine class\r
-\r
-/// Section End  - CCSSP DHTM 1 (JavaScript 1.2)\r
-\r
-/// Section Begin  - CCSSP DHTM 2 (JavaScript 1.2)\r
-\r
-//Begin the definition of CAgencyXXXX classes\r
-\r
-//Begin of the CAgencyShow definition\r
-function CAgencyShow( element, bIsShow )\r
-{\r
-       this.ele = element;\r
-       this.bIsShow = bIsShow;\r
-}\r
-\r
-CAgencyShow.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.ShowObject( this.ele, !this.bIsShow );\r
-}\r
-\r
-CAgencyShow.prototype.UpdateEffect = function()\r
-{\r
-       CCSSP.ShowObject( this.ele, this.bIsShow );\r
-}\r
-\r
-CAgencyShow.prototype.EndEffect = function()\r
-{\r
-       CCSSP.ShowObject( this.ele, !this.bIsShow );\r
-}\r
-// End of the CAgencyShow definition\r
-\r
-// Begin of CAgencyFly definition\r
-function CAgencyFly( element, settings, bIsIn )\r
-{\r
-       this.ele = element;\r
-       this.bIsIn = bIsIn;\r
-       this.duration = 1000; // default\r
-       this.direction = "right";\r
-\r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {// to retrieve the setting\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;\r
-               case "direction" : this.direction = arrOneSet[1]; break;\r
-               }\r
-       }\r
-               \r
-       if( CCSSP.bIsIE5 && this.ele.style.position != "absolute" )\r
-               this.ele.style.position = "relative";\r
-       this.timer = null;\r
-       this.aniIndex = CEngine.arrAnimation.length;\r
-       CEngine.arrAnimation[this.aniIndex] = this;\r
-}\r
-\r
-CAgencyFly.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.ShowObject(this.ele, !this.bIsIn );\r
-}\r
-\r
-CAgencyFly.prototype.UpdateEffect = function()\r
-{\r
-       if( this.timer == null )\r
-               this.ResetParameters();\r
-\r
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
-       if( percent >= 1.0 )\r
-               this.EndEffect();\r
-       else\r
-       {\r
-               var newX = this.startX*(1.0-percent) +  this.finalX*percent;\r
-               var newY = this.startY*(1.0-percent) +  this.finalY*percent;\r
-               CCSSP.MoveObjectTo(this.ele, newX, newY);\r
-               if( this.timer == null )\r
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );\r
-       }\r
-}\r
-\r
-CAgencyFly.prototype.EndEffect = function()\r
-{\r
-       clearInterval( this.timer );\r
-       this.timer = null;\r
-\r
-       if( this.bIsIn ) // FlyIn\r
-               CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);\r
-       else // FlyOut\r
-               CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);\r
-       CCSSP.ShowObject(this.ele, this.bIsIn );\r
-}\r
-\r
-CAgencyFly.prototype.ResetParameters = function()\r
-{\r
-       this.PrepareEffect();\r
-       CCSSP.ShowObject(this.ele, true );\r
-\r
-       this.startX = 0;\r
-       this.startY = 0;\r
-       this.finalX = 0;\r
-       this.finalY = 0; \r
-       \r
-       var offsetLeft = CCSSP.GetObjectWindowLeft(this.ele) + this.ele.offsetWidth;\r
-       var offsetTop = CCSSP.GetObjectWindowTop(this.ele) + this.ele.offsetHeight;\r
-       var offsetRight = CCSSP.GetWindowRight();\r
-       var offsetBottom = CCSSP.GetWindowBottom();\r
-\r
-       if( this.bIsIn )\r
-       { // FlyIn\r
-               this.finalX = this.ele.ABSX;\r
-               this.finalY = this.ele.ABSY;\r
-\r
-               switch( this.direction )\r
-               {\r
-               case "right": this.startX = offsetRight; this.startY = this.finalY; break;\r
-               case "left": this.startX = -offsetLeft;  this.startY = this.finalY; break;\r
-               case "down": this.startY = offsetBottom; this.startX = this.finalX; break;\r
-               case "up":  this.startY = -offsetTop;    this.startX = this.finalX; break;\r
-               case "downright":\r
-                       this.startX = ( offsetBottom < offsetRight) ? offsetBottom : offsetRight;\r
-                       this.startY = this.startX;              break;\r
-               case "upright":\r
-                       this.startX = (offsetTop < offsetRight)? offsetTop : offsetRight;\r
-                       this.startY = -this.startX;             break;\r
-               case "upleft":\r
-                       this.startX = -((offsetTop < offsetRight)? offsetTop : offsetRight);\r
-                       this.startY = this.startX;              break;\r
-               case "downleft":\r
-                       this.startX = -(( offsetBottom < offsetRight) ? offsetBottom : offsetRight);\r
-                       this.startY = -this.startX;     break;\r
-               }\r
-       }\r
-       else\r
-       { // FlyOut\r
-               this.startX = this.ele.ABSX;\r
-               this.startY = this.ele.ABSY;\r
-\r
-               switch( this.direction )\r
-               {\r
-               case "right": this.finalX = offsetRight;  this.finalY = this.startY; break;\r
-               case "left": this.finalX = -offsetLeft;   this.finalY = this.startY;  break;\r
-               case "down": this.finalY = offsetBottom;  this.finalX = this.startX; break;\r
-               case "up":  this.finalY = -offsetTop;     this.finalX = this.startX; break;\r
-               case "downright":\r
-                       this.finalX = ( offsetBottom < offsetRight) ? offsetBottom : offsetRight;\r
-                       this.finalY = this.finalX;              break;\r
-               case "upright":\r
-                       this.finalX = (offsetTop < offsetRight)? offsetTop : offsetRight;\r
-                       this.finalY = -this.finalX;             break;\r
-               case "upleft":\r
-                       this.finalX = -((offsetTop < offsetRight)? offsetTop : offsetRight);\r
-                       this.finalY = this.finalX;              break;\r
-               case "downleft":\r
-                       this.finalX = -(( offsetBottom < offsetRight) ? offsetBottom : offsetRight);\r
-                       this.finalY = -this.finalX;     break;\r
-               }\r
-       }\r
-       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);\r
-       this.startTime = (new Date()).getTime();\r
-}\r
-// End of the CAgencyFly definition\r
-\r
-// Begin of CAgencySpiral\r
-function CAgencySpiral( element, settings, bIsIn )\r
-{\r
-       this.ele = element;\r
-       this.bIsIn = bIsIn;\r
-       this.duration = 1000; // default\r
-\r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {// to retrieve the setting\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;\r
-               }\r
-       }\r
-\r
-       if( CCSSP.bIsIE5 && this.ele.style.position != "absolute" )\r
-               this.ele.style.position = "relative";\r
-       this.timer = null;\r
-       this.aniIndex = CEngine.arrAnimation.length;\r
-       CEngine.arrAnimation[this.aniIndex] = this;\r
-}\r
-\r
-CAgencySpiral.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.ShowObject(this.ele, !this.bIsIn );\r
-}\r
-\r
-CAgencySpiral.prototype.UpdateEffect = function()\r
-{\r
-       if( this.timer == null )\r
-               this.ResetParameters();\r
-\r
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
-       if( percent >= 1.0 )\r
-               this.EndEffect();\r
-       else\r
-       {\r
-               var rf = (this.bIsIn)? (1.0 - percent) : percent; \r
-               var t = (1.0-rf) * 4.0 * Math.PI\r
-               var rxP = (this.bIsIn)? this.startX : this.finalX; \r
-               var ryP = (this.bIsIn)? this.startY : this.finalY; \r
-               var rx = (Math.abs(rxP) < 200) ? Math.abs(rxP) : 200;\r
-               var ry = (Math.abs(ryP) < 200) ? Math.abs(ryP) : 200;\r
-\r
-               var newX = Math.ceil(-rf*Math.cos(t)*rx) + this.ele.ABSX;\r
-               var newY = Math.ceil(-rf*Math.sin(t)*ry) + this.ele.ABSY;\r
-               CCSSP.MoveObjectTo(this.ele, newX, newY);\r
-               if( this.timer == null )\r
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );\r
-       }\r
-}\r
-\r
-CAgencySpiral.prototype.EndEffect = function()\r
-{\r
-       clearInterval( this.timer );\r
-       this.timer = null;\r
-       \r
-       if( this.bIsIn ) // In\r
-               CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);\r
-       else // Out\r
-               CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);\r
-       CCSSP.ShowObject(this.ele, this.bIsIn );\r
-}\r
-\r
-CAgencySpiral.prototype.ResetParameters = function()\r
-{\r
-       this.PrepareEffect();\r
-       CCSSP.ShowObject(this.ele, true );\r
-       this.startX = (this.bIsIn)? CCSSP.GetWindowRight() : this.ele.ABSX;\r
-       this.startY = (this.bIsIn)? CCSSP.GetWindowBottom() : this.ele.ABSY;\r
-       this.finalX = (this.bIsIn)? this.ele.ABSX : CCSSP.GetWindowRight();\r
-       this.finalY = (this.bIsIn)? this.ele.ABSY : CCSSP.GetWindowBottom(); \r
-       \r
-       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);\r
-       this.startTime = (new Date()).getTime();\r
-}\r
-// End of CAgencySpiral\r
-\r
-// Begin of CAgencyElastic\r
-function CAgencyElastic( element, settings)\r
-{\r
-       this.ele = element;\r
-       this.duration = 1000; // default\r
-       this.direction = "right";\r
-\r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {// to retrieve the setting\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;\r
-               case "direction" : this.direction = arrOneSet[1]; break;\r
-               }\r
-       }\r
-               \r
-       if( CCSSP.bIsIE5 && this.ele.style.position != "absolute" )\r
-               this.ele.style.position = "relative";\r
-       this.timer = null;\r
-       this.aniIndex = CEngine.arrAnimation.length;\r
-       CEngine.arrAnimation[this.aniIndex] = this;\r
-}\r
-\r
-CAgencyElastic.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.ShowObject(this.ele, false );\r
-}\r
-\r
-CAgencyElastic.prototype.UpdateEffect = function()\r
-{\r
-       if( this.timer == null )\r
-               this.ResetParameters();\r
-\r
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
-       if( percent >= 1.0 )\r
-               this.EndEffect();\r
-       else\r
-       {\r
-               var newX = this.startX;\r
-               var newY = this.startY;\r
-               var rf = Math.exp(-percent*3);\r
-               var t = percent * 1.5 * Math.PI\r
-               var rx = (Math.abs(this.startX) > Math.abs(this.startY)) ? this.startX : this.startY;\r
-               switch (this.direction )\r
-               {\r
-               case "left":   \r
-               case "right" : newX = rf*Math.cos(t)*rx + this.ele.ABSX; break;\r
-               case "up":         \r
-               case "down" :  newY = rf*Math.cos(t)*rx + this.ele.ABSX; break;\r
-               }\r
-               CCSSP.MoveObjectTo(this.ele, newX, newY);\r
-               if( this.timer == null )\r
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );\r
-       }\r
-}\r
-\r
-CAgencyElastic.prototype.EndEffect = function()\r
-{\r
-       CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);\r
-       clearInterval( this.timer );\r
-       this.timer = null;\r
-}\r
-\r
-CAgencyElastic.prototype.ResetParameters = function()\r
-{\r
-       CCSSP.ShowObject(this.ele, true );\r
-       this.startX = this.ele.ABSX;\r
-       this.finalX = this.ele.ABSX;\r
-       this.startY = this.ele.ABSY;\r
-       this.finalY = this.ele.ABSY;\r
-       \r
-       switch (this.direction)\r
-       { \r
-       case "left":  this.startX = -this.ele.offsetWidth; break;\r
-       case "right": this.startX = this.ele.offsetWidth;  break;\r
-       case "up":    this.startY = -this.ele.offsetHeight;break;\r
-       case "down":  this.startY = this.ele.offsetHeight; break;\r
-       }\r
-       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);\r
-       this.startTime = (new Date()).getTime();\r
-}\r
-// End of CAgencyElastic\r
-\r
-// Begin of CAgencyZoom\r
-function CAgencyZoom( element, settings, bIsIn)\r
-{\r
-       this.ele = element;\r
-       this.duration = 1000; // default\r
-       \r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {// to retrieve the setting\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;\r
-               }\r
-       }\r
-\r
-       this.bIsIn = bIsIn;\r
-       this.timer = null;\r
-       this.aniIndex = CEngine.arrAnimation.length;\r
-       CEngine.arrAnimation[this.aniIndex] = this;\r
-}\r
-\r
-CAgencyZoom.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.ShowObject(this.ele, false);\r
-}\r
-\r
-CAgencyZoom.prototype.UpdateEffect = function()\r
-{\r
-       if( this.timer == null )\r
-               this.ResetParameters();\r
-\r
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
-       if( percent >= 1.0 )\r
-               this.EndEffect();\r
-       else\r
-       {\r
-               var nFactorIn = Math.ceil(50+50*percent);\r
-               var nFactorOut = Math.ceil(100+200*(1-percent));\r
-               var AlterFontsize = ((this.bIsIn)? nFactorIn : nFactorOut) + "%";\r
-               var AlterFactor = ((this.bIsIn)? nFactorIn : nFactorOut) / 100;\r
-               \r
-               this.UpdateEffectAllChildren(this.ele, AlterFontsize, AlterFactor);\r
-               for(var index = 0; index < this.ele.all.length; index++)\r
-                       this.UpdateEffectAllChildren(this.ele.all[index], AlterFontsize, AlterFactor);\r
-                       \r
-               if( this.timer == null )\r
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );\r
-       }\r
-}\r
-\r
-CAgencyZoom.prototype.UpdateEffectAllChildren = function(child, FontSize, Factor)\r
-{\r
-       if( CCSSP.IsTextTag(child) )\r
-               child.style.fontSize = FontSize;\r
-       else\r
-       {\r
-               if( typeof(child.orgWidth) == "number" )\r
-                       child.style.width = Factor * child.orgWidth;\r
-               if( typeof(child.orgHeight) == "number" )\r
-                       child.style.height = Factor * child.orgHeight;\r
-       }\r
-}\r
-\r
-CAgencyZoom.prototype.EndEffect = function()\r
-{\r
-       this.EndEffectAllChildren(this.ele);\r
-       for(var index = 0; index < this.ele.all.length; index++)\r
-               this.EndEffectAllChildren(this.ele.all[index]);\r
-       \r
-       clearInterval( this.timer );\r
-       this.timer = null;\r
-}\r
-\r
-CAgencyZoom.prototype.EndEffectAllChildren = function( child )\r
-{      \r
-       if( CCSSP.IsTextTag(child) )\r
-               child.style.fontSize = child.orgFontSize;\r
-       else\r
-       {\r
-               if( typeof(child.intactWidth) != "undefined" )\r
-               {\r
-                       child.width = child.intactWidth;\r
-                       child.height = child.intactHeight;\r
-               }\r
-               else if( typeof(child.style.intactPixelWidth) != "undefined" )\r
-               {\r
-                       child.style.pixelWidth = child.style.intactPixelWidth;\r
-                       child.style.pixelHeight = child.style.intactPixelHeight;\r
-               }\r
-       }\r
-}\r
-\r
-CAgencyZoom.prototype.ResetParameters = function()\r
-{\r
-       this.PrepareEffect();\r
-       this.ResetParametersAllChildren( this.ele );\r
-       for(var index = 0; index < this.ele.all.length; index++)\r
-               this.ResetParametersAllChildren(this.ele.all[index]);\r
-               \r
-       this.startTime = (new Date()).getTime();\r
-}\r
-\r
-CAgencyZoom.prototype.ResetParametersAllChildren = function( child )\r
-{\r
-       CCSSP.ShowObject(child, true );\r
-       if( (child.tagName == "DIV") && (child.parentElement.tagName == "TD") )\r
-               child.width = "100%";// if the div is inside a cell of table, we need the this hack\r
-       \r
-       if( CCSSP.IsTextTag(child) )\r
-               child.orgFontSize = child.style.fontSize;\r
-       else\r
-       {\r
-               if( child.width > "" || child.height > "" )\r
-               {\r
-                       child.orgWidth = child.intactWidth = child.width;\r
-                       child.orgHeight = child.intactHeight = child.height;\r
-               }\r
-               else if( ( typeof(child.orgWidth) != "number" ) && (typeof(child.orgHeight) != "number") )\r
-               {\r
-                       child.orgWidth = child.style.intactPixelWidth = child.style.pixelWidth;\r
-                       child.orgHeight = child.style.intactPixelHeight = child.style.pixelHeight;\r
-               }\r
-       }\r
-}\r
-// End of CAgencyZoom\r
-\r
-//// the following effects will use IE's exclusive "filter" function ////\r
-// Begin of CAgencyAlpha definition\r
-function CAgencyAlpha( element, settings, bIsIn )\r
-{// because of "visual filter" style, this won't work in Navigator\r
-       this.ele = element;\r
-       this.bIsIn = bIsIn;\r
-\r
-       // to set the default value\r
-       this.startOpacity = (this.bIsIn) ? 0 : 100;\r
-       this.endOpacity = (this.bIsIn) ? 100 : 0;\r
-       \r
-       this.duration = 1000; // default\r
-       \r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {// to retrieve the setting\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;\r
-               }\r
-       }\r
-       \r
-       this.timer = null;\r
-       this.aniIndex = CEngine.arrAnimation.length;\r
-       CEngine.arrAnimation[this.aniIndex] = this;\r
-}\r
-\r
-CAgencyAlpha.prototype.PrepareEffect = function()\r
-{// to set the visual filter function\r
-       // the visual filter ONLY work when set by "Width and Height" or\r
-       // absolute position for DIV, SPAN and normal tag ( such as p )\r
-       // but, "absolute" cause the following elements overlap, so:\r
-       CCSSP.PrepareFilter( this.ele );\r
-       CCSSP.ShowObject(this.ele, !this.bIsIn );\r
-}\r
-\r
-CAgencyAlpha.prototype.UpdateEffect = function()\r
-{// to set the visual filter function\r
-       if( this.timer == null )\r
-               this.ResetParameters();\r
-       if( typeof(this.ele.filters.alpha) != "object" )\r
-       {\r
-               this.EndEffect();\r
-               return;\r
-       }\r
-\r
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
-       if( percent >= 1.0 )\r
-               this.EndEffect();\r
-       else if( typeof(this.ele.filters.alpha) == "object" )\r
-       {\r
-               this.ele.filters.alpha.opacity = this.startOpacity*(1.0-percent) + this.endOpacity*percent;\r
-               if( this.timer == null )\r
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );\r
-       }\r
-}\r
-\r
-CAgencyAlpha.prototype.EndEffect = function()\r
-{// to remove the visual filter function\r
-       clearInterval( this.timer );\r
-       this.timer = null;\r
-       this.ele.style.filter = "";\r
-       CCSSP.ShowObject(this.ele, this.bIsIn );\r
-}\r
-\r
-CAgencyAlpha.prototype.ResetParameters = function()\r
-{\r
-       this.PrepareEffect();\r
-       CCSSP.ShowObject(this.ele, true );\r
-       this.ele.style.filter = "alpha(opacity=" + this.startOpacity + ")";\r
-       this.startTime = (new Date()).getTime();\r
-}\r
-// End of the CAgencyAlpha definition\r
-\r
-// Begin of CAgencyWave definition\r
-function CAgencyWave( element, settings )\r
-{// because of "visual filter" style, this won't work in Navigator\r
-       this.ele = element;\r
-\r
-       this.duration = 0; // default\r
-       this.strength = 10;\r
-       this.freq = 1;\r
-       this.lightstrength = 1;\r
-       \r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {// to retrieve the setting\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "duration" : this.duration = 100000/arrOneSet[1]; break;\r
-               case "strength" : this.strength = arrOneSet[1]; break;\r
-               case "freq" : this.freq = arrOneSet[1]; break;\r
-               case "lightstrength" : this.lightstrength = arrOneSet[1]; break;\r
-               }\r
-       }\r
-\r
-       this.timer = null;\r
-       this.aniIndex = CEngine.arrAnimation.length;\r
-       CEngine.arrAnimation[this.aniIndex] = this;\r
-}\r
-\r
-CAgencyWave.prototype.PrepareEffect = function()\r
-{// to set the visual filter function\r
-       CCSSP.PrepareFilter(this.ele);\r
-\r
-       CCSSP.ShowObject(this.ele, true );\r
-}\r
-\r
-CAgencyWave.prototype.UpdateEffect = function()\r
-{// to set the visual filter function\r
-       if( this.timer == null )\r
-               this.ResetParameters();\r
-       if( typeof(this.ele.filters.wave) != "object" )\r
-       {\r
-               this.EndEffect();\r
-               return;\r
-       }\r
-\r
-       if( this.duration > 0 )\r
-       {\r
-               var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
-               if( percent >= 1.0 )\r
-               {\r
-                       this.EndEffect();\r
-                       return;\r
-               }\r
-       }\r
-       \r
-       this.ele.filters.wave.phase += 5;\r
-       this.ele.filters.wave.phase %= 100;\r
-       if( this.timer == null )\r
-               this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 50 );\r
-}\r
-\r
-CAgencyWave.prototype.EndEffect = function()\r
-{// to remove the visual filter function\r
-       this.ele.style.filter = "";\r
-       clearInterval( this.timer );\r
-       this.timer = null;\r
-}\r
-\r
-CAgencyWave.prototype.ResetParameters = function()\r
-{\r
-       this.PrepareEffect();\r
-       this.ele.style.filter = "wave(strength=" + this.strength + ",freq=" + \r
-        this.freq +", lightstrength=" + this.lightstrength +",phase=0);";\r
-       this.startTime = (new Date()).getTime();\r
-}\r
-// End of the CAgencyWave definition\r
-\r
-// Begin of CAgencyGlow definition\r
-function CAgencyGlow( element, settings )\r
-{// because of "visual filter" style, this won't work in Navigator\r
-       this.ele = element;\r
-\r
-       // to set the default value\r
-       this.glowColor = "green";\r
-       this.glowStrength = "3";\r
-       \r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "color" : this.glowColor = arrOneSet[1]; break;\r
-               case "strength" : this.glowStrength = arrOneSet[1]; break;\r
-               }\r
-       }\r
-}\r
-\r
-CAgencyGlow.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.PrepareFilter(this.ele);\r
-       CCSSP.ShowObject(this.ele, true );\r
-       if( this.ele.style.backgroundColor != "" )\r
-       {//style.backgroundColor somehow stop the visual filter\r
-               this.ele.intactBackgroundColor = this.ele.style.backgroundColor;\r
-               this.ele.style.backgroundColor = "";\r
-       }\r
-}\r
-\r
-CAgencyGlow.prototype.UpdateEffect = function()\r
-{// to set the visual filter function\r
-       this.PrepareEffect();\r
-       this.ele.style.filter = "glow(Color=" + this.glowColor + ", Strength=" + \r
-               this.glowStrength + ", enabled=true" +")";\r
-}\r
-\r
-CAgencyGlow.prototype.EndEffect = function()\r
-{// to remove the visual filter function\r
-       this.ele.style.filter = "";\r
-       if( typeof(this.ele.intactBackgroundColor) != "undefined" )\r
-               this.ele.style.backgroundColor = this.ele.intactBackgroundColor;\r
-}\r
-// End of the CAgencyGlow definition\r
-\r
-// Begin of CAgencyDropShadow definition\r
-function CAgencyDropShadow( element, settings )\r
-{// because of "visual filter" style, this won't work in Navigator\r
-       this.ele = element;\r
-\r
-       // to set the default value\r
-       this.shadowColor = "black"; \r
-       this.shadowOffx = "1";\r
-       this.shadowOffy = "1";\r
-       \r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "color" : this.shadowColor = arrOneSet[1]; break;\r
-               case "offx" : this.shadowOffx = arrOneSet[1]; break;\r
-               case "offy" : this.shadowOffy = arrOneSet[1]; break;\r
-               }\r
-       }\r
-}\r
-\r
-CAgencyDropShadow.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.PrepareFilter(this.ele);\r
-       CCSSP.ShowObject(this.ele, true );\r
-       \r
-       if( this.ele.style.backgroundColor != "" )\r
-       {//style.backgroundColor somehow stop the visual filter\r
-               this.ele.intactBackgroundColor = this.ele.style.backgroundColor;\r
-               this.ele.style.backgroundColor = "";\r
-       }\r
-}\r
-\r
-CAgencyDropShadow.prototype.UpdateEffect = function()\r
-{// to set the visual filter function\r
-       this.PrepareEffect();\r
-       this.ele.style.filter = "dropshadow(color=" + this.shadowColor + ", offx=" + \r
-               this.shadowOffx + ", offy=" + this.shadowOffy + ")";\r
-}\r
-\r
-CAgencyDropShadow.prototype.EndEffect = function()\r
-{// to remove the visual filter function\r
-       this.ele.style.filter = "";\r
-       if( typeof(this.ele.intactBackgroundColor) != "undefined" )\r
-               this.ele.style.backgroundColor = this.ele.intactBackgroundColor;\r
-}\r
-// End of the CAgencyDropShadow definition\r
-\r
-// Begin of CAgencyRevealTrans definition\r
-function CAgencyRevealTrans( element, settings )\r
-{// because of "visual filter" style, this won't work in Navigator\r
-       this.ele = element;\r
-\r
-       // to set the default value\r
-       this.duration = 1.0; //The value is specified in seconds.milliseconds format (0.0000).\r
-       this.transition = 0;\r
-       \r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "type" : this.transition = arrOneSet[1]; break;\r
-               case "duration" : this.duration = 100/arrOneSet[1];     break;\r
-               }\r
-       }\r
-}\r
-\r
-CAgencyRevealTrans.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.PrepareFilter(this.ele);\r
-       CCSSP.ShowObject( this.ele, false);\r
-}\r
-\r
-CAgencyRevealTrans.prototype.UpdateEffect = function()\r
-{// to set the visual filter function\r
-       if( typeof( this.ele.filters.RevealTrans ) == "object" )\r
-       {\r
-               if( this.ele.filters.RevealTrans.status == 2 )\r
-                       this.ele.filters.RevealTrans.stop();  \r
-       }\r
-\r
-       this.PrepareEffect();\r
-       \r
-       this.ele.style.filter = "RevealTrans(duration=" + this.duration + \r
-               ", transition=" + this.transition + ")";\r
-       \r
-    if( typeof( this.ele.filters.RevealTrans ) == "object" )\r
-    {\r
-               this.ele.filters.RevealTrans.apply();\r
-               CCSSP.ShowObject( this.ele, true);\r
-               this.ele.filters.RevealTrans.play();  \r
-       }\r
-       else\r
-               CCSSP.ShowObject( this.ele, true);\r
-}\r
-\r
-CAgencyRevealTrans.prototype.EndEffect = function()\r
-{\r
-    if( typeof( this.ele.filters.RevealTrans ) == "object" )\r
-               this.ele.filters.RevealTrans.stop();  \r
-       this.ele.style.filter = "";\r
-}\r
-// End of the CAgencyRevealTrans definition\r
-\r
-// Begin of CAgencyBlur definition\r
-function CAgencyBlur( element, settings )\r
-{// because of "visual filter" style, this won't work in Navigator\r
-       this.ele = element;\r
-\r
-       // to set the default value\r
-       this.strength = "5";\r
-       this.direction = "90";\r
-       \r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "strength" : this.strength = arrOneSet[1]; break;\r
-               case "direction" : this.direction = arrOneSet[1]; break;\r
-               }\r
-       }\r
-}\r
-\r
-CAgencyBlur.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.PrepareFilter(this.ele);\r
-       CCSSP.ShowObject(this.ele, true );\r
-}\r
-\r
-CAgencyBlur.prototype.UpdateEffect = function()\r
-{// to set the visual filter function\r
-       CCSSP.PrepareFilter(this.ele);\r
-       this.ele.style.filter = "blur(strength=" + this.strength + \r
-               ", direction=" + this.direction + ")";\r
-}\r
-\r
-CAgencyBlur.prototype.EndEffect = function()\r
-{// to remove the visual filter function\r
-       this.ele.style.filter = "";\r
-}\r
-// End of the CAgencyBlur definition\r
-\r
-// Begin of CAgencyChangeFilter definition\r
-function CAgencyChangeFilter( element, settings ) // flipH, flipV, invert, grey,\r
-{// because of "visual filter" style, this won't work in Navigator\r
-       this.ele = element;\r
-\r
-       // to set the default value\r
-       this.filterFunction = settings;\r
-}\r
-\r
-CAgencyChangeFilter.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.PrepareFilter(this.ele);\r
-       CCSSP.ShowObject(this.ele, true );\r
-}\r
-\r
-CAgencyChangeFilter.prototype.UpdateEffect = function()\r
-{// to set the visual filter function\r
-       CCSSP.PrepareFilter(this.ele);\r
-       this.ele.style.filter = this.filterFunction;\r
-}\r
-\r
-CAgencyChangeFilter.prototype.EndEffect = function()\r
-{// to remove the visual filter function\r
-       this.ele.style.filter = "";\r
-}\r
-// End of the CAgencyChangeFilter definition\r
-\r
-// The effects below change the style on the fly, so they won't work in Navigator\r
-\r
-// Begin of CAgencyFontChange definition, \r
-function CAgencyFontChange( element, settings )\r
-{//this class can be replace by CAgencyChangeStyle,provided the "settings" is standard CSS string.\r
-       this.ele = element;\r
-       \r
-       // to retrieve the original font style\r
-       this.RetrieveOldFont( this.ele );\r
-       \r
-       // to set the default font to change\r
-       this.newfontFamily = this.ele.oldFontFamily;\r
-       this.newfColor = this.ele.oldColor;\r
-       this.newtextDecoration = this.ele.oldTextDecoration;\r
-       this.newfontWeight = this.ele.oldFontWeight;\r
-       this.newfontStyle = this.ele.oldFontStyle;\r
-       this.newfontSize = this.ele.oldFontSize;\r
-       this.newBackgroundColor = this.ele.oldBackgroundColor;\r
-       \r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {// to retrieve the setting\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "font-family" : this.newfontFamily = arrOneSet[1]; break;\r
-               case "color" : this.newfColor = arrOneSet[1]; break;\r
-               case "underline" : this.newtextDecoration = (arrOneSet[1]=="on")? "underline" : "none"; break;\r
-               case "bold" : this.newfontWeight = (arrOneSet[1]=="on")? "bold" : "normal"; break;\r
-               case "italic" : this.newfontStyle = (arrOneSet[1]=="on")? "italic" : "normal"; break;\r
-               case "size" : this.newfontSize = arrOneSet[1]; break;\r
-               case "background-color" : this.newBackgroundColor = arrOneSet[1]; break;\r
-               }\r
-       }\r
-}\r
-\r
-CAgencyFontChange.prototype.RetrieveOldFont = function(objChild)\r
-{\r
-       if( typeof(objChild.oldFontFamily) == "undefined" )\r
-               objChild.oldFontFamily = objChild.style.fontFamily;\r
-       if( typeof(objChild.oldColor) == "undefined" )\r
-               objChild.oldColor = objChild.style.color;\r
-       if( typeof(objChild.oldTextDecoration) == "undefined" )\r
-               objChild.oldTextDecoration = objChild.style.textDecoration;\r
-       if( typeof(objChild.oldFontWeight) == "undefined" )\r
-               objChild.oldFontWeight = objChild.style.fontWeight;\r
-       if( typeof(objChild.oldFontStyle) == "undefined" )\r
-               objChild.oldFontStyle = objChild.style.fontStyle;\r
-       if( typeof(objChild.oldFontSize) == "undefined" )\r
-               objChild.oldFontSize = objChild.style.fontSize;\r
-       if( typeof(objChild.oldBackgroundColor) == "undefined" )\r
-               objChild.oldBackgroundColor = objChild.style.backgroundColor;\r
-}\r
-\r
-CAgencyFontChange.prototype.PrepareEffect = function()\r
-{\r
-       // as for expanding text, the child is created after the constructor called\r
-       for(var index = 0; index < this.ele.all.length; index++)\r
-               this.RetrieveOldFont(this.ele.all[index]);\r
-       CCSSP.ShowObject(this.ele, true );\r
-}\r
-\r
-CAgencyFontChange.prototype.UpdateEffect = function()\r
-{// to change the font\r
-       this.PrepareEffect();\r
-       this.UpdateEffectAllChildren( this.ele );\r
-       for( var index = 0; index < this.ele.all.length; index++)\r
-               this.UpdateEffectAllChildren(this.ele.all[index]);\r
-}\r
-\r
-CAgencyFontChange.prototype.UpdateEffectAllChildren = function(objChild)\r
-{\r
-       objChild.style.fontFamily = this.newfontFamily;\r
-       objChild.style.color = this.newfColor;\r
-       objChild.style.textDecoration = this.newtextDecoration;\r
-       objChild.style.fontWeight = this.newfontWeight;\r
-       objChild.style.fontStyle = this.newfontStyle;\r
-       objChild.style.fontSize = this.newfontSize;\r
-       objChild.style.backgroundColor = this.newBackgroundColor;\r
-}\r
-\r
-CAgencyFontChange.prototype.EndEffect = function()\r
-{// to reinstate the original font style\r
-       this.EndEffectAllChildren( this.ele );\r
-       for( var index = 0; index < this.ele.all.length; index++)\r
-               this.EndEffectAllChildren(this.ele.all[index]);\r
-}\r
-\r
-CAgencyFontChange.prototype.EndEffectAllChildren = function( objChild )\r
-{\r
-       if( typeof(objChild.oldFontFamily) != "undefined" )\r
-               objChild.style.fontFamily = objChild.oldFontFamily;\r
-       if( typeof(objChild.oldColor) != "undefined" )\r
-               objChild.style.color = objChild.oldColor;\r
-       if( typeof(objChild.oldFontWeight) != "undefined" )\r
-               objChild.style.fontWeight = objChild.oldFontWeight;\r
-       if( typeof(objChild.oldFontStyle) != "undefined" )\r
-               objChild.style.fontStyle = objChild.oldFontStyle;\r
-       if( typeof(objChild.oldFontSize) != "undefined" )\r
-               objChild.style.fontSize = objChild.oldFontSize;\r
-       if( typeof(objChild.oldTextDecoration) != "undefined" )\r
-               objChild.style.textDecoration = objChild.oldTextDecoration;\r
-       if( typeof(objChild.oldBackgroundColor) != "undefined" )\r
-               objChild.style.backgroundColor = objChild.oldBackgroundColor;\r
-}\r
-// End of the CAgencyFontChange definition\r
-\r
-// Begin of the CAgencyChangeStyle definition\r
-function CAgencyChangeStyle( element, settings )\r
-{//this class can be replace by CAgencyChangeStyle,provided the "settings" is standard CSS string.\r
-       this.ele = element;\r
-       \r
-       // to retrieve the original style\r
-       this.oldstyle = this.ele.style.cssText;\r
-       \r
-       // to set the default style\r
-       this.newStyle = this.oldstyle;\r
-       \r
-       if( typeof(settings) == "string" && settings.length > 1 )\r
-               this.newStyle = this.oldstyle + " " + settings;\r
-}\r
-\r
-CAgencyChangeStyle.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.ShowObject(this.ele, true );\r
-}\r
-\r
-CAgencyChangeStyle.prototype.UpdateEffect = function()\r
-{// to change the style\r
-       this.ele.style.cssText = this.newStyle;\r
-}\r
-\r
-CAgencyChangeStyle.prototype.EndEffect = function()\r
-{// to reinstate the original style\r
-       this.ele.style.cssText = this.oldStyle;\r
-}\r
-// End of the CAgencyChangeStyle definition\r
-\r
-//End the definition of CAgencyXXXX classes\r
-\r
-//Begin to collaborate with other event handler settings \r
-CCSSP.RegisterEventHandler( window, "onload", "CEngine.OnPageLoad();BSSCOnLoad();kadovInitTriggersInHead();");\r
-CCSSP.RegisterEventHandler( document, "onclick", "CEngine.OnPageClick();BSSCOnClick();");\r
-CCSSP.RegisterEventHandler( document, "onmouseover", "CEngine.OnMouseOver();BSSCOnMouseOver();" );\r
-CCSSP.RegisterEventHandler( document, "onmouseout", "CEngine.OnMouseOver();BSSCOnMouseOut();" );\r
-CCSSP.RegisterEventHandler( window, "onunload", "BSSCOnUnload();");\r
-//End to collaborate with other event handler settings\r
-\r
-\r
-/// Section End  - CCSSP DHTM 2 (JavaScript 1.2)\r
-\r
-//// Segment End -- (JavaScript 1.2)\r
diff --git a/doc/salome/gui/SMESH/extrusion.htm b/doc/salome/gui/SMESH/extrusion.htm
deleted file mode 100755 (executable)
index 45a64ee..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Extrusion</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1041>\r
-<meta name=layout-width content=765>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-img_whs2 {border-style: none; border: none; width: 27px; height: 24px;}\r
-img_whs3 {border-style: none; border: none; width: 523px; height: 307px;}\r
-ul.whs4 {list-style: disc;}\r
-table.whs5 {x-cell-content-align: top; width: 100%; border-spacing: 0px; border-spacing: 0px;}\r
-col.whs6 {width: 50%;}\r
-tr.whs7 {x-cell-content-align: top;}\r
-td.whs8 {width: 50%; padding-right: 10px; padding-left: 10px; border-right-style: none; border-left-style: none; border-top-style: none; border-bottom-style: none;}\r
-img_whs9 {border-style: none; border: none; width: 350px; height: 201px;}\r
-td.whs10 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nExtrusion");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Extrusion</h1>\r
-\r
-<p>Extrusion is a type of surface meshing by generation from discretized \r
- lines. It is used to build mesh elements of plus one dimension than the \r
- swept ones. Each swept 1D element produces one or more quadrangles (or \r
- triangles if one node of a rotated element lays on the revolution axis).</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To use extrusion:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Extrusion </B></span>item \r
- or click <img src="image91.gif" width="27px" height="24px" border="0" class="img_whs2"> button in the toolbar. The following dialog box \r
- shall appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="image90.gif" width="523px" height="307px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. In this dialog box you should select </p>\r
-\r
-<ul type="disc" class="whs4">\r
-       \r
-       <li class=kadov-p><p class="whs1">the type of elements \r
- which will be extruded (1D or 2D),</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">specify the IDs of \r
- the elements which will be extruded by selecting them in the 3D viewer \r
- or select the whole mesh or submesh,</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">specify the vector \r
- along which the elements will be extruded,</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">number of steps</p></li>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>\r
-\r
-<p class=TODO\r
-       style="margin-left: 40px;">&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<!--(Table)=========================================================-->\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs5">\r
-<col class="whs6">\r
-<col class="whs6">\r
-\r
-<tr valign="top" class="whs7">\r
-<td width="50%" class="whs8">\r
-<p><img src="image77.jpg" width="350px" height="201px" border="0" class="img_whs9"></td>\r
-<td width="50%" class="whs10">\r
-<p><img src="image76.jpg" width="350px" height="201px" border="0" class="img_whs9"></td></tr>\r
-</table>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/1d_meshing_algorithm.htm b/doc/salome/gui/SMESH/files/1d_meshing_algorithm.htm
deleted file mode 100755 (executable)
index 51d954a..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>1D meshing algorithm</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=460>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining meshing algorithms\n1D meshing algorithms\nWire discretization");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Wire discretization</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This algorithm is used for meshing of 1D entities of \r
- geometrical objects - <span style="font-weight: bold;"><B>edges</B></span><span>. \r
- </span></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Wire discretization meshing algorithm:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
- the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
- select this algorithm and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/2d_(quadrangle)_meshing_algorithm.htm b/doc/salome/gui/SMESH/files/2d_(quadrangle)_meshing_algorithm.htm
deleted file mode 100755 (executable)
index 4c605aa..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>2D (Quadrangle) meshing algorithm</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=460>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining meshing algorithms\n2D meshing algorithms\nQuadrangle meshing algorithm");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Quadrangle meshing algorithm</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This algorithm is used for meshing of 2D entities of \r
- geometrical objects - <span style="font-weight: bold;"><B>faces</B></span><span>. \r
- </span></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Quadrangle meshing algorithm:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
- the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
- select this algorithm and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/2d_meshing_algorithm.htm b/doc/salome/gui/SMESH/files/2d_meshing_algorithm.htm
deleted file mode 100755 (executable)
index d7fe96e..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>2D meshing algorithm</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=460>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining meshing algorithms\n2D meshing algorithms\nTriangle meshing algorithm");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Triangle (Mefisto) meshing algorithm</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This algorithm is used for meshing of 2D entities of \r
- geometrical objects - <span style="font-weight: bold;"><B>faces</B></span><span>. \r
- </span></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Triangle meshing algorithm:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
- the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
- select this algorithm and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/3d_meshing_algorithm.htm b/doc/salome/gui/SMESH/files/3d_meshing_algorithm.htm
deleted file mode 100755 (executable)
index dc0851a..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>3D meshing algorithm</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=460>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining meshing algorithms\n3D meshing algorithms\nHexahedron meshing algorithm");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Hexahedron meshing algorithm</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This algorithm is used for meshing of 3D entities of \r
- geometrical objects - <span style="font-weight: bold;"><B>volume objects</B></span><span>. \r
- </span></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Hexahedron meshing algorithm:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
- the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
- select this algorithm and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/about_hypotheses.htm b/doc/salome/gui/SMESH/files/about_hypotheses.htm
deleted file mode 100755 (executable)
index 4777bbd..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>About hypotheses</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1305>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-ul.whs2 {list-style: disc;}\r
-p.whs3 {background-color: Transparent; color: #000000;}\r
-ol.whs4 {list-style: disc;}\r
-p.whs5 {font-style: italic; font-size: 12pt; font-family: 'Arial Black', sans-serif;}\r
-img_whs6 {border-style: none; border: none; width: 22px; height: 22px;}\r
-p.whs7 {margin-left: 40px;}\r
-img_whs8 {border-style: none; border: none; width: 448px; height: 367px;}\r
-img_whs9 {border-style: none; border: none; width: 271px; height: 124px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs3 {background-color:white; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body page-style ="x-size: Letter;">\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining hypotheses\nAbout hypotheses");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>About hypotheses</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Hypotheses</B></span> represent \r
- boundary conditions which will be taken into account at calculations of \r
- meshes or submeshes basing on geometrical objects. These hypotheses allow \r
- you to manage the level of detail of the resulting meshes or submeshes: \r
- when applying different hypotheses with different parameters you can preset \r
- the quantity of meshing elements which will compose your mesh. So, it \r
- will be possible to generate a rough or a more refined mesh or submesh. \r
- In <span style="font-weight: bold;"><B>SMESH </B></span>there are the following \r
- basic hypotheses:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li style="list-style: circle;"\r
-               type=circle\r
-               class=kadov-p><p class="whs3">For \r
- meshing of <span style="font-weight: bold;"><B>edges</B></span>:</p></li>\r
-       \r
-       <ul type="disc" class="whs2">\r
-               \r
-               <li class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm">Arithmetic 1D</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs3"><a href="local_length_hypothesis.htm">Average Length</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs3"><a href="deflection_1d.htm">Deflection 1D</a> </p></li>\r
-               \r
-               <li class=kadov-p><p class="whs3"><a href="number_of_segments_hypothesis.htm">Number of segments</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs3"><a href="propagation_of_1d_hypothesis_on_opposite_edges.htm">Propagation \r
- of 1D Hypothesis on opposite edges</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs3"><a href="start_and_end_length_hypothesis.htm">Start and end length</a></p></li>\r
-       </ul>\r
-       \r
-       <li style="list-style: circle;"\r
-               type=circle\r
-               class=kadov-p><p class="whs3">For \r
- meshing of <span style="font-weight: bold;"><B>faces</B></span>: </p></li>\r
-</ul>\r
-\r
-<ol type="disc" class="whs4">\r
-       \r
-       <ul type="disc" class="whs2">\r
-               \r
-               <li class=kadov-p><p class="whs3"><a href="length_from_edges.htm">Length from edges</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs3"><a href="max._element_area_hypothesis.htm">Max Element Area</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs3"><a href="non_conform_mesh_allowed_hypothesis.htm">Non conform mesh allowed</a></p></li>\r
-       </ul>\r
-</ol>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li style="list-style: circle;"\r
-               type=circle\r
-               class=kadov-p><p class="whs3">For \r
- meshing of <span style="font-weight: bold;"><B>volumes</B></span>: </p></li>\r
-       \r
-       <ul type="disc" class="whs2">\r
-               \r
-               <li class=kadov-p><p><a href="max._element_volume_hypothsis.htm">Max \r
- Element Volume</a> &nbsp;</p></li>\r
-       </ul>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>The choice of a hypothesis depends on:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p>the geometrical object (shape) which will be meshed</p></li>\r
-       \r
-       <li class=kadov-p><p>the algorithm, which will be selected for meshing \r
- of this geometrical object (shape)</p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs5"><a name=CreateHyp></a>To \r
- create a hypothesis </p>\r
-\r
-<p><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">In the main menu select</font></span><span style="font-style: italic;\r
-       font-size: 12pt;\r
-       font-family: 'Arial Black', sans-serif;"> <font size=3 style="font-size:12pt;"><I></I></font></span><span style="font-weight: bold;"><B>Hypotheses \r
- &gt; </B></span><img src="../image7.gif" width="22px" height="22px" border="0" class="img_whs6"> <span style="font-weight: bold;"><B>Create hypotheses</B></span></p>\r
-\r
-<p>The following menu will appear:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs7"><img src="../image21.jpg" width="448px" height="367px" border="0" class="img_whs8"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>Select one of the menu items and click <span style="font-weight: bold;"><B>Create</B></span>. \r
- A data input dialog box corresponding to the chosen type of the hypotheses \r
- will appear. The created hypotheses shall appear in the Object Browser \r
- under the <span style="font-weight: bold;"><B>Hypotheses </B></span>folder:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs7"><img src="../image42.jpg" width="271px" height="124px" border="0" class="img_whs9"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/about_meshes.htm b/doc/salome/gui/SMESH/files/about_meshes.htm
deleted file mode 100755 (executable)
index d846be3..0000000
+++ /dev/null
@@ -1,274 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>About meshes</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1398>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-ul.whs2 {list-style: disc;}\r
-p.whs3 {text-indent: 8px;}\r
-p.whs4 {text-indent: 48px;}\r
-h4.whs5 {text-indent: 1px;}\r
-p.whs6 {text-indent: 1px;}\r
-img_whs7 {border-style: none; border: none; width: 36px; height: 38px; float: none;}\r
-p.whs8 {font-weight: bold; text-indent: 1px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nAbout meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>About meshes</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>MESH</B></span> represents \r
- a discretization of a geometrical CAD model into a set of entities with \r
- a simple topology. In SMESH there are two options of creation of meshes, \r
- you can:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p>generate meshes on the basis of geometrical shapes \r
- produced in the GEOM module, </p></li>\r
-       \r
-       <li class=kadov-p><p>create your own meshes using the SMESH functions \r
- destined for modification of generated meshes. More about this functionality \r
- of SMESH see in the chapter "Modifying meshes". </p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>The topology of a mesh is described by the relationships between its \r
- entities including:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Node</B></span> \r
\96 0D element of a mesh presented by a point with coordinates (x, y, z).</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Edge</B></span> \r
\96 1D element of a mesh defined by two nodes.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Face</B></span> \r
\96 2D element of a mesh defined by three or four edges (closed contour).</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Volume</B></span> \r
\96 3D element of a mesh defined by several faces.</p></li>\r
-</ul>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs4">These entities are considered as topological \r
- entities and they don't imply any geometric representation. Only <span \r
- style="font-weight: bold;"><B>Nodes</B></span> reference &nbsp;geometric \r
- representations of points with definite coordinates. <span style="text-indent: 8px;">The \r
- node entity will contain &nbsp;additional \r
- information about its position in the space and its relations with the \r
- meshed CAD model. Its position could be described in the following way:</span></p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>2D \r
- position</B></span>. It is a free position defined by only two coordinates \r
- x,y.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>3D \r
- position</B></span>. It is a free position defined by three coordinates x,y \r
- and z.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Surface \r
- position</B></span>. It characterizes the position of a node on a geometric \r
- surface and is defined by the u,v position in the parametric space of \r
- the corresponding surface.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Line \r
- position</B></span>. It characterizes the position of a node on a geometric \r
- curve and is defined by the u parameter and the corresponding curve.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Vertex \r
- position</B></span>. It characterizes the position of a node on a geometric \r
- point of the meshed CAD model and is defined by the x,y,z coordinates \r
- of the corresponding vertex.</p></li>\r
-</ul>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<h4 class="whs5">Connections</h4>\r
-\r
-<p class="whs6">Each mesh entity bounds 0 or more mesh entities \r
- of higher dimension. In the same way each mesh entity is bounded by 0 \r
- or more mesh entities of lower dimension:</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs6">A node bounds edges, \r
- faces and volumes</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6">An edge bounds faces, \r
- and volumes</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6">A face bounds volumes</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6">A volume is bounded \r
- by faces, edges and nodes</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6">A face is bounded by \r
- edges, and nodes</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6">An edge is bounded by \r
- nodes</p></li>\r
-</ul>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">You can notice that there are two types of \r
- connections: <span style="font-weight: bold;"><B>inverse</B></span> and <span \r
- style="font-weight: bold;"><B>direct</B></span> connections.</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<h4 class="whs5">Inverse connections</h4>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">This relationship has a particularity that \r
- the order of bounded entities has not a direct meaning. Also the number \r
- of bounded entities is not fixed.</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6"><img src="../pics/exemple.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs7"> The edges surrounding a node. \r
- The 3rd edge has no more sense that the 5th one.</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs8">Direct connections</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">This relationship has a particularity that \r
- the order of bounding entities is meaningful. The number of bounding entities \r
- is fixed and depends on the type of the entity (hexahedron, tetrahedron,\85).</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6"><img src="../pics/exemple.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs7"> An edge is composed of two \r
- nodes. A face is composed of 3 or 4 edges depending if we are dealing \r
- with triangles or quadrangles.</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">The connections are not only restricted to \r
- entities of one dimension higher or lower. For example some algorithms \r
- may be interested to retrieve all the faces surrounding a node.</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/about_meshing_algorithms.htm b/doc/salome/gui/SMESH/files/about_meshing_algorithms.htm
deleted file mode 100755 (executable)
index 6024897..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>About meshing algorithms</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1028>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-ul.whs2 {list-style: disc;}\r
-ul.whs3 {list-style: circle;}\r
-p.whs4 {font-style: italic; font-size: 12pt; font-family: 'Arial Black', sans-serif;}\r
-img_whs5 {border-style: none; border: none; width: 23px; height: 22px;}\r
-p.whs6 {margin-left: 40px;}\r
-img_whs7 {border-style: none; border: none; width: 464px; height: 324px;}\r
-img_whs8 {border-style: none; border: none; width: 270px; height: 99px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining meshing algorithms\nAbout meshing algorithms");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>About meshing algorithms</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> The SMESH module contains a set of meshing algorithms, \r
- which are used for meshing of all kinds of entities (1D, 2D, 3D) composing \r
- geometrical objects. They are as follows:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p>For meshing of 1D entities (<span style="font-weight: bold;"><B>edges</B></span>):</p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <ul type="disc" class="whs2">\r
-               \r
-               <li style="list-style: circle;"\r
-                       type=circle\r
-                       class=kadov-p><p><a href="1d_meshing_algorithm.htm">Wire discretization \r
- meshing algorithm</a></p></li>\r
-       </ul>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p>For meshing of 2D entities (<span style="font-weight: bold;"><B>faces</B></span>):</p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <ul type="circle" class="whs3">\r
-               \r
-               <li class=kadov-p><p><a href="2d_meshing_algorithm.htm">Triangle \r
- meshing algorithm</a></p></li>\r
-               \r
-               <li class=kadov-p><p><a href="2d_(quadrangle)_meshing_algorithm.htm">Quadrangle \r
- meshing algorithm</a></p></li>\r
-       </ul>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p>For meshing of 3D entities (<span style="font-weight: bold;"><B>volume \r
- objects</B></span>):</p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <ul type="circle" class="whs3">\r
-               \r
-               <li class=kadov-p><p><a href="3d_meshing_algorithm.htm">Hexahedron \r
- meshing algorithm</a></p></li>\r
-               \r
-               <li class=kadov-p><p><a href="tetrahedron_(netgen)_meshing_algorithm.htm">Tetrahedron \r
- meshing algorithm</a></p></li>\r
-       </ul>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs4"><a name=ApplyAlgo></a>To \r
- apply a meshing algorithm </p>\r
-\r
-<p><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">In the main menu select</font></span><span style="font-style: italic;\r
-       font-size: 12pt;\r
-       font-family: 'Arial Black', sans-serif;"> <font size=3 style="font-size:12pt;"><I></I></font></span><span style="font-weight: bold;"><B>Hypotheses \r
- &gt; </B></span><img src="../image8.gif" width="23px" height="22px" border="0" class="img_whs5"> <span style="font-weight: bold;"><B>Create Algorithms</B></span></p>\r
-\r
-<p>The following menu will appear:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs6"><img src="../image20.jpg" width="464px" height="324px" border="0" class="img_whs7"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>Select one of the menu items and click <span style="font-weight: bold;"><B>Create</B></span>. \r
- The created algorithms shall appear in the Object Browser under the <span \r
- style="font-weight: bold;"><B>Algorithms </B></span>folder:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs6"><img src="../image43.jpg" width="270px" height="99px" border="0" class="img_whs8"></p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/about_modification_of_meshes.htm b/doc/salome/gui/SMESH/files/about_modification_of_meshes.htm
deleted file mode 100755 (executable)
index a942834..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>About modification of meshes</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=460>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>About modification of meshes</h1>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/about_quality_controls.htm b/doc/salome/gui/SMESH/files/about_quality_controls.htm
deleted file mode 100755 (executable)
index 839e3de..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>About quality controls</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=422>\r
-<meta name=layout-width content=575>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {text-align: justify;}\r
-img_whs2 {border-style: none; border: none; float: none; width: 30px; height: 30px;}\r
-ul.whs3 {list-style: disc;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nQuality controls\nAbout quality controls");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>About quality controls</h1>\r
-\r
-<p class="whs1"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> <span style="font-weight: bold;"><B>Mesh \r
- quality control</B></span> in SMESH is destined for visual control of the \r
- generated mesh.</p>\r
-\r
-<p class="whs1">Application of a definite quality control \r
- consists of usage of the corresponding algorithm, which calculates a value \r
- of a definite geometric characteristic (Area, Length of edges, etc) for \r
- all meshing elements, composing your mesh. Then all meshing elements are \r
- colored according the calculated values. The reference between the coloring \r
- of the meshing elements and these calculated values is shown with the \r
- help of a scalar bar, which is displayed near the presentation of your \r
- mesh. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">In SMESH you have at your disposal the \r
- following mesh quality controls:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs3">\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="length_of_edges.htm">Length \r
- of edges</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="area_of_elements.htm">Area \r
- of elements</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="taper.htm">Taper</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="aspect_ratio.htm">Aspect \r
- Ratio</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="minimum_angle.htm">Minimum \r
- angle</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="warp.htm">Warping</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="skew.htm">Skew \r
- angle</a></p></li>\r
-</ul>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/adding_nodes_and_elements.htm b/doc/salome/gui/SMESH/files/adding_nodes_and_elements.htm
deleted file mode 100755 (executable)
index faf7a98..0000000
+++ /dev/null
@@ -1,276 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Adding nodes and elements</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=3638>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-ul.whs1 {list-style: disc;}\r
-p.whs2 {font-weight: bold;}\r
-p.whs3 {margin-left: 40px;}\r
-img_whs4 {border-style: none; border: none; width: 157px; height: 132px;}\r
-img_whs5 {border-style: none; border: none; width: 250px; height: 127px;}\r
-img_whs6 {border-style: none; border: none; width: 350px; height: 181px;}\r
-img_whs7 {border-style: none; border: none; width: 250px; height: 170px;}\r
-img_whs8 {border-style: none; border: none; width: 350px; height: 183px;}\r
-img_whs9 {border-style: none; border: none; width: 250px; height: 194px;}\r
-img_whs10 {border-style: none; border: none; width: 350px; height: 182px;}\r
-h4.whs11 {margin-left: 40px;}\r
-img_whs12 {border-style: none; border: none; width: 250px; height: 195px;}\r
-img_whs13 {border-style: none; border: none; width: 250px; height: 171px;}\r
-img_whs14 {border-style: none; border: none; width: 350px; height: 184px;}\r
-img_whs15 {border-style: none; border: none; width: 250px; height: 172px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nAdding nodes and elements");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Adding nodes and elements</h1>\r
-\r
-<p>In SMESH you can add to your mesh different elements such as:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs1">\r
-       \r
-       <li class=kadov-p><p class="whs2">Nodes</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs2">Edges</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs2">Triangles</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs2">Quadrangles</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs2">Tetrahedrons</p></li>\r
-       \r
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Hexahedrons</B></span></p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To add a node or an element to your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs3">1. Select your mesh in the Object Browser \r
- or in the 3D viewer.</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">2. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Add </B></span>item, \r
- the following associated submenu will appear:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image73.gif" width="157px" height="132px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">From this submenu select the type of element \r
- which you would like to add to your mesh. The corresponding dialog box \r
- shall appear.</p>\r
-\r
-<h4>Adding nodes</h4>\r
-\r
-<p class="whs3"><img src="../image60.jpg" width="250px" height="127px" border="0" class="img_whs5"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">In this dialog box set coordinates for your \r
- node in the <span style="font-weight: bold;"><B>Coordinates </B></span>set of \r
- fields and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
- <span style="font-weight: bold;"><B>OK </B></span>button. Your node will be created:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image66.jpg" width="350px" height="181px" border="0" class="img_whs6"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<h4>Adding edges</h4>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image65.jpg" width="250px" height="170px" border="0" class="img_whs7"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">In this dialog box specify the nodes which \r
- will form your edge by selecting them in the 3D viewer with pressed Shift \r
- button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
- <span style="font-weight: bold;"><B>OK </B></span>button. Your edge will be created:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image67.jpg" width="350px" height="183px" border="0" class="img_whs8"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<h4>Adding triangles</h4>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image64.jpg" width="250px" height="194px" border="0" class="img_whs9"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">In this dialog box specify the nodes which \r
- will form your triangle by selecting them in the 3D viewer with pressed \r
- Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
- <span style="font-weight: bold;"><B>OK </B></span>button. Your triangle will \r
- be created:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image68.jpg" width="350px" height="182px" border="0" class="img_whs10"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<h4>Adding quadrangles</h4>\r
-\r
-<h4 class="whs11"><img src="../image63.jpg" width="250px" height="195px" border="0" class="img_whs12"></h4>\r
-\r
-<p class="whs3">In this dialog box specify the nodes which \r
- will form your quadrangle by selecting them in the 3D viewer with pressed \r
- Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
- <span style="font-weight: bold;"><B>OK </B></span>button. Your quadrangle will \r
- be created:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image69.jpg" width="350px" height="183px" border="0" class="img_whs8"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<h4>Adding tetrahedrons</h4>\r
-\r
-<p class="whs3"><img src="../image62.jpg" width="250px" height="171px" border="0" class="img_whs13"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">In this dialog box specify the nodes which \r
- will form your tetrahedron by selecting them in the 3D viewer with pressed \r
- Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
- <span style="font-weight: bold;"><B>OK </B></span>button. Your tetrahedron will \r
- be created:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image70.jpg" width="350px" height="184px" border="0" class="img_whs14"></p>\r
-\r
-<h4>Adding hexahedrons</h4>\r
-\r
-<p class="whs3"><img src="../image61.jpg" width="250px" height="172px" border="0" class="img_whs15"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">In this dialog box specify the nodes which \r
- will form your hexahedron by selecting them in the 3D viewer with pressed \r
- Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
- <span style="font-weight: bold;"><B>OK </B></span>button. Your hexahedron will \r
- be created:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image71.jpg" width="350px" height="184px" border="0" class="img_whs14"></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/area_of_elements.htm b/doc/salome/gui/SMESH/files/area_of_elements.htm
deleted file mode 100755 (executable)
index d832bff..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Area of elements</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=688>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 22px; height: 23px;}\r
-img_whs4 {border-style: none; border: none; width: 469px; height: 326px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nQuality controls\nArea of elements");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Area of elements</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Area of elements </B></span>mesh \r
- quality control is based on the algorithm of area calculation of &nbsp;meshing \r
- elements . It can be applied to meshes consisting of 2D meshing elements \r
- with 3 and 4 nodes (triangles and quadrangles). &nbsp;&nbsp;&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Area quality control to your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">1. Display your mesh in the viewer.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Quality \r
- Controls &gt; Area </B></span>or click <img src="../image35.gif" width="22px" height="23px" border="0" class="img_whs3"> button. Your mesh will \r
- be displayed in the viewer with its elements colored according to the \r
- applied mesh quality control criterion:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../image4.jpg" width="469px" height="326px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/arithmetic_1d.htm b/doc/salome/gui/SMESH/files/arithmetic_1d.htm
deleted file mode 100755 (executable)
index 36ad79a..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Arithmetic 1D</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=595>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 319px; height: 222px;}\r
-p.whs4 {margin-left: 0px;}\r
-ul.whs5 {list-style: disc;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs4 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining hypotheses\nArithmetic 1D hypothesis");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Arithmetic 1D hypothesis</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Arithmetic 1D</B></span> \r
- - hypothesis for the Regular 1D algorithm. It allows to split edges into \r
- segments with a length that changes in arithmetic progression (Lk = Lk-1 \r
- + d) beginning from a given starting length and up to a given end length.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>Similar to Start and End Length.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To define the Arithmetic 1D hypothesis:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">Select this hypothesis in <a href="about_hypotheses.htm#CreateHyp">the \r
- <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
- click <span style="font-weight: bold;"><B>Create</B></span>. The following dialog \r
- box will appear:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../image16.jpg" width="319px" height="222px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">In this dialog box you can set:</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs5">\r
-       \r
-       <li class=kadov-p><p class="whs4"><span style="font-weight: bold;"><B>Name \r
- </B></span>of your Arithmetic 1D hypothesis;</p></li>\r
-       \r
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Start</B></span> \r
- and <span style="font-weight: bold;"><B>End length</B></span> values</p></li>\r
-</ul>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/aspect_ratio.htm b/doc/salome/gui/SMESH/files/aspect_ratio.htm
deleted file mode 100755 (executable)
index 1e1117f..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Aspect Ratio</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1101>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-ul.whs2 {list-style: disc;}\r
-p.whs3 {margin-left: 80px;}\r
-img_whs4 {border-style: none; border: none; width: 238px; height: 205px;}\r
-p.whs5 {margin-left: 0px;}\r
-img_whs6 {border-style: none; border: none; width: 226px; height: 70px;}\r
-p.whs7 {margin-left: 40px;}\r
-img_whs8 {border-style: none; border: none; width: 25px; height: 24px;}\r
-img_whs9 {border-style: none; border: none; width: 467px; height: 327px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs5 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nQuality controls\nAspect Ratio");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Aspect Ratio</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> The <span style="font-weight: bold;"><B>Aspect Ratio</B></span> \r
- quality criterion for mesh elements is defined as follows:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p>For a <span style="font-weight: bold;"><B>triangle</B></span> \r
- 2D element consisting of 3 nodes a the <span style="font-weight: bold;"><B>Aspect \r
- Ratio</B></span> is calculated as the ratio of the length, h2, of the edge \r
- of this triangle, to the height, h1. The ratio of h2 to h1 is then multiplied \r
- by &nbsp;3<span \r
- style="vertical-align: Super; font-size: 10pt;"><font size=2 style="font-size:10pt;">(1/2)</font></span> /2, so that \r
- a \93perfect\94 element in the shape of an equilateral triangle will be equal \r
- to 1. This procedure is repeated for the remaining two edges of the triangle, \r
- and the largest value is retained as the <span style="font-weight: bold;"><B>Aspect \r
- Ratio</B></span> for the element.</p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image26.jpg" width="238px" height="205px" border="0" class="img_whs4"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs5">For a <span style="font-weight: bold;"><B>quadrangle</B></span> \r
- 2D element consisting of 4 nodes &nbsp;the \r
- <span style="font-weight: bold;"><B>Aspect Ratio </B></span>is the ratio of the \r
- element's longest side to its shortest side.</p></li>\r
-</ul>\r
-\r
-<p class="whs3"><img src="../image22.gif" width="226px" height="70px" border="0" class="img_whs6"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Aspect Ratio quality criterion to your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs7">1. Display your mesh in the viewer.</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7">2. Choose <span style="font-weight: bold;"><B>Quality \r
- Controls &gt; Aspect Ratio </B></span>or click <img src="../image37.gif" width="25px" height="24px" border="0" class="img_whs8"> button in the \r
- toolbar. Your mesh will be displayed in the viewer with its elements colored \r
- according to the applied mesh quality control criterion:</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7"><img src="../image7.jpg" width="467px" height="327px" border="0" class="img_whs9"></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/changing_orientation_of_elements.htm b/doc/salome/gui/SMESH/files/changing_orientation_of_elements.htm
deleted file mode 100755 (executable)
index f51e872..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Changing orientation of elements</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=870>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-img_whs2 {border-style: none; border: none; width: 21px; height: 21px;}\r
-img_whs3 {border-style: none; border: none; width: 292px; height: 358px;}\r
-ul.whs4 {list-style: disc;}\r
-p.whs5 {margin-left: 40px; font-weight: normal;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nChanging orientation of elements");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Changing orientation of elements</h1>\r
-\r
-<p>Orientation of an element is changed by reverting the order of nodes \r
- of the selected elements.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To change orientation of elements:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">1. Display a mesh or a submesh in the 3D \r
- viewer.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. In the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu select the <span style="font-weight: bold;"><B>Orientation </B></span>item \r
- or click <img src="../image79.gif" width="21px" height="21px" border="0" class="img_whs2"> button in the toolbar. The following dialog box \r
- will appear:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image78.gif" width="292px" height="358px" border="0" class="img_whs3"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs4">\r
-       \r
-       <li class=kadov-p><p class="whs5"><span \r
- style="font-weight: bold;"><B>The main list </B></span><span>shall contain the \r
- elements which will be reoriented.</span> You can click on an element \r
- in the 3D viewer and it will be highlighted. After that click the <span \r
- style="font-weight: bold;"><B>Add </B></span>button and the ID of this element \r
- will be added to the list. To remove a selected element or elements from \r
- the list click the <span style="font-weight: bold;"><B>Remove </B></span>button. \r
- The <span style="font-weight: bold;"><B>Sort </B></span>button allows to sort \r
- the list of elements IDs. The <span style="font-weight: bold;"><B>Set filter \r
- </B></span>button allows to apply a definite filter to selection of elements \r
- of your group.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs5"><span \r
- style="font-weight: bold;"><B>Apply to all </B></span><span>radio button allows \r
- to modify the orientation of all elements of the currently displayed mesh \r
- or submesh.</span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs5"><span \r
- style="font-weight: bold;"><B>Select from </B></span>set of fields allows to \r
- choose a submesh or an existing group whose elements will be automatically \r
- added to the list.</p></li>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
- the operation.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/computing_meshes.htm b/doc/salome/gui/SMESH/files/computing_meshes.htm
deleted file mode 100755 (executable)
index a700eb2..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Computing meshes</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=380>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-img_whs2 {border-style: none; border: none; width: 25px; height: 24px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nComputing meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Computing meshes</h1>\r
-\r
-<p>The final step in generation of your mesh is its computation.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To compute a mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. Select your mesh in the <span style="font-weight: bold;"><B>Object \r
- Browser</B></span>.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. From the <span style="font-weight: bold;"><B>Mesh \r
- </B></span>menu select<span style="font-weight: bold;"><B> Compute </B></span>or \r
- click <img src="../image28.gif" width="25px" height="24px" border="0" class="img_whs2"> button of the toolbar. </p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/connectivity.htm b/doc/salome/gui/SMESH/files/connectivity.htm
deleted file mode 100755 (executable)
index fcc8598..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Connectivity</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=0>\r
-<meta name=layout-height content=0>\r
-<meta name=layout-width content=0>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Connectivity</h1>\r
-\r
-<p>Type topic text here.</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/constructing_groups_of_specific_elements.htm b/doc/salome/gui/SMESH/files/constructing_groups_of_specific_elements.htm
deleted file mode 100755 (executable)
index 6ee2194..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Constructing groups of specific elements</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=460>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nGrouping elements\nConstructing groups of specific elements");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Constructing groups of specific elements</h1>\r
-\r
-<p>In SMESH you can easily construct groups of specific elements (nodes, \r
- edges or faces) which will be taken from a definite submesh.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To construct a group of specific elements:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">Right-click on a submesh in the Object Browser \r
- and choose the <span style="font-weight: bold;"><B>Construct Group </B></span>item \r
- or select your submesh in the Object Browser and in the <span style="font-weight: bold;"><B>Mesh \r
- </B></span>menu chose the <span style="font-weight: bold;"><B>Construct Group \r
- </B></span>item. SMESH will construct several groups consisting of elements \r
- of the definite type: nodes, edges or faces</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/constructing_meshes.htm b/doc/salome/gui/SMESH/files/constructing_meshes.htm
deleted file mode 100755 (executable)
index e4a680d..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Constructing meshes</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=966>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 0px;}\r
-ul.whs2 {list-style: disc;}\r
-p.whs3 {margin-left: 40px;}\r
-img_whs4 {border-style: none; border: none; width: 22px; height: 24px;}\r
-p.whs5 {margin-left: 80px;}\r
-img_whs6 {border-style: none; border: none; width: 304px; height: 305px;}\r
-img_whs7 {border-style: none; border: none; width: 268px; height: 161px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs1 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nConstructing meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Constructing meshes</h1>\r
-\r
-<p class="whs1">Construction of a mesh consists of:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs1">Selecting a geometrical \r
- object for meshing</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">Applying one or several \r
- previously <a href="about_hypotheses.htm">hypotheses</a> and <a href="about_meshing_algorithms.htm">meshing \r
- algorithms</a> which will be used at computation of this mesh.</p></li>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class=TODO>To construct a mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs3">In the <span style="font-weight: bold;"><B>Mesh \r
- </B></span>menu select<span style="font-weight: bold;"><B> Global Hyp. </B></span>or \r
- click <img src="../image32.gif" width="22px" height="24px" border="0" class="img_whs4"> button in the toolbar. The following dialog box will \r
- appear:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs5"><img src="../image31.gif" width="304px" height="305px" border="0" class="img_whs6"></p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs3">In the Object Browser the structure of the \r
- new mesh will be displayed as follows:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image44.jpg" width="268px" height="161px" border="0" class="img_whs7"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">It contains:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs3">a reference to the \r
- geometrical object on the basis of which the mesh has been constructed;</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied \r
- hypotheses </B></span>folder containing the references to the hypotheses applied \r
- to the construction of the mesh;</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied \r
- algorithms </B></span>folder containing the references to the algorithms applied \r
- to the construction of the mesh.</p></li>\r
-</ul>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/constructing_submeshes.htm b/doc/salome/gui/SMESH/files/constructing_submeshes.htm
deleted file mode 100755 (executable)
index 8203658..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Constructing submeshes</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1175>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 0px;}\r
-ul.whs2 {list-style: disc;}\r
-p.whs3 {margin-left: 40px;}\r
-img_whs4 {border-style: none; border: none; width: 27px; height: 25px;}\r
-p.whs5 {margin-left: 80px;}\r
-img_whs6 {border-style: none; border: none; width: 304px; height: 339px;}\r
-img_whs7 {border-style: none; border: none; width: 299px; height: 221px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs1 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nConstructing submeshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Constructing submeshes</h1>\r
-\r
-<p class="whs1">Construction of a submesh consists of:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs1">Selecting a mesh which \r
- will encapsulate your submesh</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">Selecting a geometrical \r
- object for meshing</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">Applying one or several \r
- previously <a href="about_hypotheses.htm">hypotheses</a> and <a href="about_meshing_algorithms.htm">meshing \r
- algorithms</a> which will be used at computation of this submesh.</p></li>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class=TODO>To construct a submesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs3">From the <span style="font-weight: bold;"><B>Mesh \r
- </B></span>menu select<span style="font-weight: bold;"><B> Local Hyp. </B></span>or \r
- click <img src="../image33.gif" width="27px" height="25px" border="0" class="img_whs4"> button in the toolbar. The following dialog box will \r
- appear:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs5"><img src="../image29.gif" width="304px" height="339px" border="0" class="img_whs6"></p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs3">In the Object Browser the structure of the \r
- new submesh will be displayed as follows:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image45.jpg" width="299px" height="221px" border="0" class="img_whs7"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">It contains:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs3">a reference to the \r
- geometrical object on the basis of which the submesh has been constructed;</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied \r
- hypotheses </B></span>folder containing the references to the hypotheses applied \r
- to the construction of the submesh;</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied \r
- algorithms </B></span>folder containing the references to the algorithms applied \r
- to the construction of the submesh.</p></li>\r
-</ul>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/creating_groups.htm b/doc/salome/gui/SMESH/files/creating_groups.htm
deleted file mode 100755 (executable)
index b5ea848..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Creating groups</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1562>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {font-weight: bold;}\r
-img_whs2 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs3 {margin-left: 40px;}\r
-p.whs4 {font-weight: normal;}\r
-p.whs5 {font-weight: bold; margin-left: 40px;}\r
-img_whs6 {border-style: none; border: none; width: 200px; height: 374px;}\r
-p.whs7 {margin-left: 40px; font-weight: normal;}\r
-ul.whs8 {list-style: disc;}\r
-p.whs9 {margin-left: 40px; font-weight: bold;}\r
-p.whs10 {margin-left: 80px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nGrouping elements\nCreating groups");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Creating groups</h1>\r
-\r
-<p class="whs1"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> <span style="font-weight: normal;">In \r
- SMESH you can create groups of elements of different types and having \r
- definite properties.</span></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class=TODO>To create a group of elements:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs3">1. In the <span style="font-weight: bold;"><B>Mesh \r
- </B></span><span>menu select </span><span style="font-weight: bold;"><B>Create \r
- Group</B></span><span>. The following dialog box will appear:</span></p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs5">&nbsp;<img src="../image47.jpg" width="200px" height="374px" border="0" class="img_whs6"></p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs7">This dialog box contains \r
- the following fields which should be filled:</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs8">\r
-       \r
-       <li class=kadov-p><p class="whs7"><span \r
- style="font-weight: bold;"><B>Mesh: </B></span>the name of the mesh whose elements \r
- will form your group. You can enter the name manually or select your mesh \r
- in the Objet Browser or in the 3D viewer.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs7"><span \r
- style="font-weight: bold;"><B>Elements Type </B></span>set of radio buttons allows \r
- to select the type of elements which will form your group:</p></li>\r
-       \r
-       <ul type="disc" class="whs8">\r
-               \r
-               <li class=kadov-p><p class="whs9">Nodes</p></li>\r
-               \r
-               <li class=kadov-p><p class="whs9">Edges \r
- </p></li>\r
-               \r
-               <li class=kadov-p><p class="whs9">Faces</p></li>\r
-               \r
-               <li class=kadov-p><p class="whs9">Volumes</p></li>\r
-       </ul>\r
-       \r
-       <li class=kadov-p><p class="whs7"><span \r
- style="font-weight: bold;"><B>Name </B></span><span>field allows to enter the \r
- name of your new group.</span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs7"><span \r
- style="font-weight: bold;"><B>Group type </B></span>set of radio buttons allows \r
- to select the type of your group: </p></li>\r
-       \r
-       <ul type="disc" class="whs8">\r
-               \r
-               <li class=kadov-p><p class="whs7"><span \r
- style="font-weight: bold;"><B>Standalone group </B></span>&nbsp;consisting \r
- of mesh elements.</p></li>\r
-               \r
-               <li class=kadov-p><p class="whs7"><span \r
- style="font-weight: bold;"><B>Group on geometry </B></span><span>consisting of \r
- geometrical elements.</span> If you choose this type of group your dialog \r
- box will change and it will look like as follows:</p></li>\r
-       </ul>\r
-</ul>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs10"><img src="../image48.jpg" width="200px" height="374px" border="0" class="img_whs6"></p>\r
-\r
-<p class="whs10">&nbsp;</p>\r
-\r
-<p class="whs10">In this dialog box you should enter the name \r
- of the geometrical object (you can enter the name manually or select your \r
- geometrical object in the Objet Browser or in the 3D viewer) from which \r
- the elements will be taken. And after confirmation of the operation SMESH \r
- will create a new group consisting of geometrical elements of the previously \r
- defined type.</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs8">\r
-       \r
-       <li class=kadov-p><p class="whs7"><span \r
- style="font-weight: bold;"><B>Content </B></span>field<span style="font-weight: bold;"> \r
- <B></B></span>allows to manually define the mesh elements which will form your \r
- group. You can click on an element in the 3D viewer and it will be highlighted. \r
- After that click the <span style="font-weight: bold;"><B>Add </B></span>button \r
- and the ID of this element will be added to the list. To remove a selected \r
- element or elements from the list click the <span style="font-weight: bold;"><B>Remove \r
- </B></span>button. The <span style="font-weight: bold;"><B>Sort </B></span>button \r
- allows to sort the list of elements IDs. The <span style="font-weight: bold;"><B>Set \r
- filter </B></span><span>button allows to apply a definite filter to selection \r
- of the elements of your group.</span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs7"><span \r
- style="font-weight: bold;"><B>Select from </B></span>set of fields allows to \r
- choose a submesh or an existing group whose elements of the previously \r
- defined type will be added to the list of elements which will form your \r
- group.</p></li>\r
-</ul>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7">2. Click the <span style="font-weight: bold;"><B>OK \r
- </B></span><span>button to confirm creation of your group or </span><span \r
- style="font-weight: bold;"><B>Cancel </B></span><span>to quit this dialog box.</span></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/cutting_quadrangles.htm b/doc/salome/gui/SMESH/files/cutting_quadrangles.htm
deleted file mode 100755 (executable)
index 8e22206..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Cutting quadrangles</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1356>\r
-<meta name=layout-width content=771>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 25px; height: 22px;}\r
-img_whs4 {border-style: none; border: none; width: 292px; height: 412px;}\r
-ul.whs5 {list-style: disc;}\r
-p.whs6 {margin-left: 40px; font-weight: normal;}\r
-p.whs7 {margin-left: 0px;}\r
-table.whs8 {x-cell-content-align: top; width: 100%; border-spacing: 0; border-spacing: 0px;}\r
-col.whs9 {width: 50%;}\r
-tr.whs10 {x-cell-content-align: top;}\r
-td.whs11 {width: 50%; padding-right: 10px; padding-left: 10px; border-right-style: none; border-left-style: none; border-top-style: none; border-bottom-style: none;}\r
-img_whs12 {border-style: none; border: none; width: 353px; height: 300px;}\r
-td.whs13 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs7 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nCutting quadrangles");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Cutting quadrangles</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This operation allows to cut one or several quadrangle \r
- elements by addition of a supplementary edge which will connect two opposite \r
- corners. </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To cut quadrangles:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">1. Display a mesh or a submesh in the 3D \r
- viewer.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">2. In the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu select the <span style="font-weight: bold;"><B>Cutting of quadrangles \r
- </B></span>item or click <img src="../image82.gif" width="25px" height="22px" border="0" class="img_whs3"> button in the toolbar. The following \r
- dialog box will appear:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../image50.jpg" width="292px" height="412px" border="0" class="img_whs4"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs5">\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>The main list </B></span>shall contain the quadrangles \r
- which will be cutted. You can click on an quadrangle in the 3D viewer \r
- and it will be highlighted. After that click the <span style="font-weight: bold;"><B>Add \r
- </B></span>button and the ID of this quadrangle will be added to the list. \r
- To remove a selected element or elements from the list click the <span \r
- style="font-weight: bold;"><B>Remove </B></span>button. The <span style="font-weight: bold;"><B>Sort \r
- </B></span>button allows to sort the list of IDs. The <span style="font-weight: bold;"><B>Set \r
- filter </B></span>button allows to apply a definite filter to selection of \r
- quadrangles.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Apply to all </B></span>radio button allows to \r
- modify the orientation of all quadrangles of the currently displayed mesh \r
- or submesh.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Use diagonal 2-4 </B></span>radio button allows \r
- to specify the opposite corners which will be connected by the cutting \r
- edge.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Preview </B></span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Select from </B></span>set of fields allows to \r
- choose a submesh or an existing group whose quadrangle elements will be \r
- automatically added to the list.</p></li>\r
-</ul>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
- the operation.</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<!--(Table)=========================================================-->\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs8">\r
-<col class="whs9">\r
-<col class="whs9">\r
-\r
-<tr valign="top" class="whs10">\r
-<td width="50%" class="whs11">\r
-<p><img src="../image52.jpg" width="353px" height="300px" border="0" class="img_whs12"></td>\r
-<td width="50%" class="whs13">\r
-<p><img src="../image51.jpg" width="353px" height="300px" border="0" class="img_whs12"></td></tr>\r
-</table>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/deflection_1d.htm b/doc/salome/gui/SMESH/files/deflection_1d.htm
deleted file mode 100755 (executable)
index 50612ac..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Local Length hypothesis</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=868>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {font-weight: bold; margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 367px; height: 224px;}\r
-p.whs4 {margin-left: 40px;}\r
-p.whs5 {margin-left: 80px;}\r
-img_whs6 {border-style: none; border: none; width: 304px; height: 233px;}\r
-p.whs7 {margin-left: 0px;}\r
-ul.whs8 {list-style: disc;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs7 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining hypotheses\nDeflection 1D hypothesis");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Average Length hypothesis</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Average Length </B></span>hypothesis \r
- can be applied for meshing of edges composing your geometrical object. \r
- Definition of this hypothesis consists of setting the <span style="font-weight: bold;"><B>length</B></span> \r
- of segments, which will split these edges. The points on the edges generated \r
- by these segments will represent nodes of your mesh. Later these nodes \r
- will be used for meshing of the faces abutting to these edges.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../image41.gif" width="367px" height="224px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class=TODO>To define the Average Length hypothesis:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs4">Select this hypothesis in <a href="about_hypotheses.htm#CreateHyp">the \r
- <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
- click <span style="font-weight: bold;"><B>Create</B></span>. The following dialog \r
- box will appear:</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs5"><img src="../image43.gif" width="304px" height="233px" border="0" class="img_whs6"></p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs7">In this dialog box you can set:</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs8">\r
-       \r
-       <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Name \r
- </B></span>of your Average Length hypothesis</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Length \r
- </B></span>of segments which will split the edges of your geometrical object</p></li>\r
-</ul>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/diagonal_iversion_of_elements.htm b/doc/salome/gui/SMESH/files/diagonal_iversion_of_elements.htm
deleted file mode 100755 (executable)
index e736e19..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Diagonal iversion of elements</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=745>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-img_whs2 {border-style: none; border: none; width: 24px; height: 22px;}\r
-img_whs3 {border-style: none; border: none; width: 298px; height: 150px;}\r
-table.whs4 {x-cell-content-align: top; width: 100%; border-spacing: 0px; border-spacing: 0px;}\r
-col.whs5 {width: 50%;}\r
-tr.whs6 {x-cell-content-align: top;}\r
-td.whs7 {width: 50%; padding-right: 10px; padding-left: 10px; border-right-style: none; border-left-style: none; border-top-style: none; border-bottom-style: none;}\r
-img_whs8 {border-style: none; border: none; width: 300px; height: 224px;}\r
-td.whs9 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nDiagonal inversion of elements");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Diagonal inversion of elements</h1>\r
-\r
-<p>&nbsp;In SMESH \r
- you can inverse the diagonal (edge) of a pseudo-quadrangle formed by two \r
- neighboring triangles with one common edge.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To inverse the diagonal:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Diagonal inversion \r
- </B></span>item or click <img src="../image70.gif" width="24px" height="22px" border="0" class="img_whs2"> button in the toolbar. The following \r
- dialog box shall appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image69.gif" width="298px" height="150px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Enter the ID of the required edge in the \r
- <span style="font-weight: bold;"><B>Edge </B></span>&nbsp;field \r
- or select this edge in the 3D viewer. </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>\r
-\r
-<p class=TODO\r
-       style="margin-left: 40px;">&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<!--(Table)=========================================================-->\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs4">\r
-<col class="whs5">\r
-<col class="whs5">\r
-\r
-<tr valign="top" class="whs6">\r
-<td width="50%" class="whs7">\r
-<p><img src="../image38.jpg" width="300px" height="224px" border="0" class="img_whs8"></td>\r
-<td width="50%" class="whs9">\r
-<p><img src="../image36.jpg" width="300px" height="224px" border="0" class="img_whs8"></td></tr>\r
-</table>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/displacing_nodes.htm b/doc/salome/gui/SMESH/files/displacing_nodes.htm
deleted file mode 100755 (executable)
index 79e32e4..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Displacing nodes</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=949>\r
-<meta name=layout-width content=765>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-img_whs2 {border-style: none; border: none; width: 24px; height: 22px;}\r
-img_whs3 {border-style: none; border: none; width: 373px; height: 262px;}\r
-table.whs4 {x-cell-content-align: top; width: 100%; border-spacing: 0px; border-spacing: 0px;}\r
-col.whs5 {width: 50%;}\r
-tr.whs6 {x-cell-content-align: top;}\r
-td.whs7 {width: 50%; padding-right: 10px; padding-left: 10px; border-right-style: none; border-left-style: none; border-top-style: none; border-bottom-style: none;}\r
-img_whs8 {border-style: none; border: none; width: 350px; height: 224px;}\r
-td.whs9 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
-img_whs10 {border-style: none; border: none; width: 350px; height: 225px;}\r
-p.whs11 {margin-left: 0px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs11 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nMoving nodes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Moving nodes</h1>\r
-\r
-<p>In SMESH you can change the location of any node of your mesh. In this \r
- case all adjacent elements (edges) will be also transformed right after \r
- the displaced node.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To displace a node:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Move node </B></span>item \r
- or click <img src="../image67.gif" width="24px" height="22px" border="0" class="img_whs2"> button in the toolbar. The following dialog box \r
- shall appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image68.gif" width="373px" height="262px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Enter the ID of the required node in the \r
- <span style="font-weight: bold;"><B>Node ID </B></span>&nbsp;field \r
- or select this node in the 3D viewer. The coordinates of your node will \r
- be automatically displayed in the <span style="font-weight: bold;"><B>Coordinates \r
- </B></span>set of fields.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Set new coordinates for your node in the \r
- <span style="font-weight: bold;"><B>Coordinates </B></span>set of fields.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">4. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<!--(Table)=========================================================-->\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs4">\r
-<col class="whs5">\r
-<col class="whs5">\r
-\r
-<tr valign="top" class="whs6">\r
-<td width="50%" class="whs7">\r
-<p><img src="../image35.jpg" width="350px" height="224px" border="0" class="img_whs8"></td>\r
-<td width="50%" class="whs9">\r
-<p><img src="../image34.jpg" width="350px" height="225px" border="0" class="img_whs10"></td></tr>\r
-</table>\r
-\r
-<p class="whs11">&nbsp;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs11">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/displaying_elements_numbers.htm b/doc/salome/gui/SMESH/files/displaying_elements_numbers.htm
deleted file mode 100755 (executable)
index 8cc308b..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Displaying elements numbers</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=706>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-p.whs2 {margin-left: 0px;}\r
-img_whs3 {border-style: none; border: none; width: 436px; height: 367px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs2 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nMesh info\nDisplaying elements numbers");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Displaying elements numbers</h1>\r
-\r
-<p>In SMESH you can display the ID numbers of all meshing elements composing \r
- your mesh in the viewer.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To display ID numbers of elements:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. Display your mesh in the viewer</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Right-click on the mesh in the 3D viewer \r
- and from the associated pop-up menu choose <span style="font-weight: bold;"><B>Numbering \r
- &gt; Display Elements #</B></span>.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2">It will look like as follows:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image29.jpg" width="436px" height="367px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/displaying_nodes_numbers.htm b/doc/salome/gui/SMESH/files/displaying_nodes_numbers.htm
deleted file mode 100755 (executable)
index 292f99a..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Displaying nodes numbers</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=704>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-p.whs2 {margin-left: 0px;}\r
-img_whs3 {border-style: none; border: none; width: 436px; height: 365px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs2 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nMesh info\nDisplaying nodes numbers");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Displaying nodes numbers</h1>\r
-\r
-<p>In SMESH you can display the ID numbers of all nodes of your mesh in \r
- the viewer.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To display ID numbers of nodes:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. Display your mesh in the viewer</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Right-click on the mesh in the 3D viewer \r
- and from the associated pop-up menu choose <span style="font-weight: bold;"><B>Numbering \r
- &gt; Display Nodes #</B></span>.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2">It will look like as follows:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image28.jpg" width="436px" height="365px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/editing_groups.htm b/doc/salome/gui/SMESH/files/editing_groups.htm
deleted file mode 100755 (executable)
index eee766b..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Editing groups</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=757>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-img_whs2 {border-style: none; border: none; width: 21px; height: 22px;}\r
-img_whs3 {border-style: none; border: none; width: 250px; height: 468px;}\r
-p.whs4 {font-weight: normal;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nGrouping elements\nEditing groups");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Editing groups</h1>\r
-\r
-<p class=TODO\r
-       style="margin-left: 0px;">To edit an existing group of elements:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. Select your group in the Object Browser \r
- and in the <span style="font-weight: bold;"><B>Mesh </B></span>menu click the \r
- <span style="font-weight: bold;"><B>Edit Group </B></span>item or <img src="../image74.gif" width="21px" height="22px" border="0" class="img_whs2"> icon in the toolbar. The following dialog box will appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image49.jpg" width="250px" height="468px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs1">In this dialog box you can modify the name<span \r
- style="font-weight: bold;"> <B></B></span>of your group and add or remove the \r
- elements forming it. For more information <a href="creating_groups.htm">see \r
- here</a>.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Click the <span style="font-weight: bold;"><B>OK \r
- </B></span><span>or </span><span style="font-weight: bold;"><B>&nbsp;Apply \r
- </B></span><span>button to confirm modification of the group.</span></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/editing_hypotheses.htm b/doc/salome/gui/SMESH/files/editing_hypotheses.htm
deleted file mode 100755 (executable)
index a0d30a3..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Editing hypotheses</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=587>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-img_whs2 {border-style: none; border: none; width: 347px; height: 145px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nEditing meshes\nEditing hypotheses and algorithms");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Editing hypotheses and algorithms</h1>\r
-\r
-<p>In SMESH you can <span style="font-weight: bold;"><B>rename</B></span> created \r
- and already applied hypotheses and algorithms and <span style="font-weight: bold;"><B>edit</B></span> \r
- the input data of the created and already applied hypotheses.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To rename a hypothesis or algorithm:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. Select the required hypothesis or algorithm \r
- in the Object Browser and right-click on it. From the associated popup \r
- menu select the <span style="font-weight: bold;"><B>Rename </B></span>item, the \r
- following dialog box will appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image46.jpg" width="347px" height="145px" border="0" class="img_whs2"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. In this dialog box enter a new name for \r
- your hypothesis or algorithm and click the <span style="font-weight: bold;"><B>OK \r
- </B></span>button.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class=TODO>To edit the input data of a hypothesis:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. Select the required hypothesis &nbsp;in \r
- the Object Browser and right-click on it. From the associated popup menu \r
- select the <span style="font-weight: bold;"><B>Edit </B></span>item and in the \r
- appeared dialog box (it will differ depending on the type of the edited \r
- hypothesis) enter a new input value for your hypothesis.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Click the <span style="font-weight: bold;"><B>OK \r
- </B></span>button to confirm your changes.</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/importing_and_exporting_meshes.htm b/doc/salome/gui/SMESH/files/importing_and_exporting_meshes.htm
deleted file mode 100755 (executable)
index 618bc80..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Importing and exporting meshes</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=419>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nImporting and exporting meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Importing and exporting meshes</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> In SMESH there is a functionality allowing importation/exportation \r
- of meshes from <span style="font-weight: bold;"><B>MED</B></span>, <span style="font-weight: bold;"><B>UNV</B></span> \r
- format files. </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To import a mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">1. From the <span style="font-weight: bold;"><B>File</B></span> \r
- menu choose the <span style="font-weight: bold;"><B>Import</B></span> item, from \r
- its sub-menu select the corresponding format (MED, &nbsp;UNV) \r
- of the file containing your mesh.</p>\r
-\r
-<p class="whs2">2. In the standard <span style="font-weight: bold;"><B>Search \r
- File </B></span>dialog box find the file for importation. </p>\r
-\r
-<p class="whs2">3. Click the <span style="font-weight: bold;"><B>OK \r
- </B></span>button. </p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class=TODO>To export a mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">1. From the <span style="font-weight: bold;"><B>File</B></span> \r
- menu choose the <span style="font-weight: bold;"><B>Export</B></span> item, from \r
- its sub-menu select the format (MED, UNV) of the file which will contain \r
- your exported mesh..</p>\r
-\r
-<p class="whs2">2. In the standard <span style="font-weight: bold;"><B>Search \r
- File </B></span><span>select a location for the exported file and enter its \r
- name.</span> </p>\r
-\r
-<p class="whs2">3. Click the <span style="font-weight: bold;"><B>OK \r
- </B></span>button. </p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/introduction_to_smesh.htm b/doc/salome/gui/SMESH/files/introduction_to_smesh.htm
deleted file mode 100755 (executable)
index eb44da0..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Introduction to SMESH</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=688>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-ul.whs2 {list-style: disc;}\r
-ul.whs3 {list-style: circle;}\r
-p.whs4 {margin-left: 40px;}\r
-p.whs5 {margin-left: 40px; font-weight: bold;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nIntroduction to SMESH");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Introduction to SMESH</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"><span style="font-weight: bold;"><B>SMESH</B></span> module of \r
- SALOME is destined for: </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p>import and export of meshes in MED format,</p></li>\r
-       \r
-       <li class=kadov-p><p>meshing geometrical models previously created \r
- or imported by the GEOM component. SMESH module allows to apply 1D, 2D, \r
- 3D meshing algorithms and a set of hypotheses:</p></li>\r
-       \r
-       <ul type="circle" class="whs3">\r
-               \r
-               <li class=kadov-p><p>Local length</p></li>\r
-               \r
-               <li class=kadov-p><p>Number of segments</p></li>\r
-               \r
-               <li class=kadov-p><p>Max Element Area</p></li>\r
-               \r
-               <li class=kadov-p><p>Max Element Volume</p></li>\r
-       </ul>\r
-       \r
-       <li class=kadov-p><p>modification of locally generated meshes by</p></li>\r
-       \r
-       <ul type="circle" class="whs3">\r
-               \r
-               <li class=kadov-p><p>Addition/deletion of nodes and elements</p></li>\r
-               \r
-               <li class=kadov-p><p>Moving nodes and elements</p></li>\r
-       </ul>\r
-       \r
-       <li class=kadov-p><p>grouping mesh elements and performing operations \r
- on these groups </p></li>\r
-       \r
-       <li class=kadov-p><p>quality control of meshes basing on a set of definite \r
- criteria -</p></li>\r
-</ul>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs5">for edges:</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <ul type="circle" class="whs3">\r
-               \r
-               <li class=kadov-p><p>Length of edges </p></li>\r
-               \r
-               <li class=kadov-p><p>Borders at multi-connections</p></li>\r
-               \r
-               <li class=kadov-p><p>Free borders</p></li>\r
-       </ul>\r
-</ul>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs5">for faces:</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <ul type="circle" class="whs3">\r
-               \r
-               <li class=kadov-p><p>Area of elements</p></li>\r
-               \r
-               <li class=kadov-p><p>Minimum angle</p></li>\r
-               \r
-               <li class=kadov-p><p>Taper</p></li>\r
-               \r
-               <li class=kadov-p><p>Aspect Ratio</p></li>\r
-               \r
-               <li class=kadov-p><p>Warping</p></li>\r
-               \r
-               <li class=kadov-p><p>Skew angle</p></li>\r
-       </ul>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/length_from_edges.htm b/doc/salome/gui/SMESH/files/length_from_edges.htm
deleted file mode 100755 (executable)
index 148ecd0..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Length from edges</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=460>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining hypotheses\nLength from edges hypothesis");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Length from edges (2D hypothesis for Triangulator) hypothesis</h1>\r
-\r
-<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> Length from edges</B></span> \r
- hypothesis builds 1D mesh segments having a length calculated as an average \r
- edge length for a given wire. </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>This hypothesis has no parameters.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Length from edges hypothesis:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">Select this hypotheses in <a href="about_hypotheses.htm#CreateHyp">the \r
- <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
- click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/length_of_edges.htm b/doc/salome/gui/SMESH/files/length_of_edges.htm
deleted file mode 100755 (executable)
index 70acb62..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Length of edges</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=671>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 27px; height: 24px;}\r
-img_whs4 {border-style: none; border: none; width: 468px; height: 327px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nQuality controls\nLength of edges");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Length of edges</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1">This quality control criterion consists of calculation \r
- of length of the edges combining the meshing elements (triangles and quadrangles) \r
- of your mesh. </p>\r
-\r
-<p>&nbsp;&nbsp;&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Length of edges quality criterion to your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">1. Display your mesh in the viewer.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Quality \r
- Controls &gt; Length </B></span>or click <img src="../image34.gif" width="27px" height="24px" border="0" class="img_whs3"> button in the toolbar. \r
- Your mesh will be displayed in the viewer with its elements colored according \r
- to the applied mesh quality control criterion:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../image3.jpg" width="468px" height="327px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/local_length_hypothesis.htm b/doc/salome/gui/SMESH/files/local_length_hypothesis.htm
deleted file mode 100755 (executable)
index a53261d..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Local Length hypothesis</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=868>\r
-<meta name=layout-width content=741>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {font-weight: bold; margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 367px; height: 224px;}\r
-p.whs4 {margin-left: 40px;}\r
-p.whs5 {margin-left: 80px;}\r
-img_whs6 {border-style: none; border: none; width: 304px; height: 233px;}\r
-p.whs7 {margin-left: 0px;}\r
-ul.whs8 {list-style: disc;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs7 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining hypotheses\nAverage Length hypothesis");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Average Length hypothesis</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Average Length </B></span>hypothesis \r
- can be applied for meshing of edges composing your geometrical object. \r
- Definition of this hypothesis consists of setting the <span style="font-weight: bold;"><B>length</B></span> \r
- of segments, which will split these edges. The points on the edges generated \r
- by these segments will represent nodes of your mesh. Later these nodes \r
- will be used for meshing of the faces abutting to these edges.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../image41.gif" width="367px" height="224px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class=TODO>To define the Average Length hypothesis:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs4">Select this hypotheses in <a href="about_hypotheses.htm#CreateHyp">the \r
- <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
- click <span style="font-weight: bold;"><B>Create</B></span>. The following dialog \r
- box will appear:</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs5"><img src="../image43.gif" width="304px" height="233px" border="0" class="img_whs6"></p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs7">In this dialog box you can set:</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs8">\r
-       \r
-       <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Name \r
- </B></span>of your Average Length hypothesis</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Length \r
- </B></span>of segments which will split the edges of your geometrical object</p></li>\r
-</ul>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/max._element_area_hypothesis.htm b/doc/salome/gui/SMESH/files/max._element_area_hypothesis.htm
deleted file mode 100755 (executable)
index ef7a55e..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Length from edges</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=460>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining hypotheses\nMax Element Area hypothesis");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Length from edges (2D hypothesis for Triangulator) hypothesis</h1>\r
-\r
-<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> Length from edges</B></span> \r
- hypothesis builds 1D mesh segments having a length calculated as an average \r
- edge length for a given wire. </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>This hypothesis has no parameters.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Length from edges hypothesis:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">Select this hypothesis in <a href="about_hypotheses.htm#CreateHyp">the \r
- <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
- click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/max._element_volume_hypothsis.htm b/doc/salome/gui/SMESH/files/max._element_volume_hypothsis.htm
deleted file mode 100755 (executable)
index 7eb80ee..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Non conform mesh allowed hypothesis</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=460>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining hypotheses\nMax Element Volume hypothesis");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Non conform mesh allowed hypothesis</h1>\r
-\r
-<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> Non Conform mesh allowed</B></span> \r
- hypothesis allows to generate non-conform meshes (that is, meshes having \r
- some edges ending on an edge or face of adjacent elements). </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>This hypothesis has no parameters.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply this hypothesis:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">Select this hypothesis s in <a href="about_hypotheses.htm#CreateHyp">the \r
- <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
- click <span style="font-weight: bold;"><B>Create</B></span>. </p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/merging_nodes.htm b/doc/salome/gui/SMESH/files/merging_nodes.htm
deleted file mode 100755 (executable)
index e324b05..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Merging nodes</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=747>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 258px; height: 450px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nTransforming meshes\nMerging nodes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Merging nodes</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This functionality allows user to detect groups of coincident \r
- nodes with desirable tolerance, edit these groups and merge.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To merge nodes of your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and \r
- &nbsp;from its \r
- sub-menu select the <span style="font-weight: bold;"><B>Merge nodes </B></span>item. \r
- The following dialog box shall appear:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../image53.jpg" width="258px" height="450px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">This dialog box allows to create groups of \r
- coincident nodes and to merge them. </p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/minimum_angle.htm b/doc/salome/gui/SMESH/files/minimum_angle.htm
deleted file mode 100755 (executable)
index 7a88843..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Minimum angle</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=653>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; float: none; width: 30px; height: 30px;}\r
-p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 24px; height: 24px;}\r
-img_whs4 {border-style: none; border: none; width: 467px; height: 328px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nQuality controls\nMinimum angle");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Minimum angle</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Minimum angle</B></span> \r
- mesh quality criterion consists of calculation of the minimum value of \r
- angle between two adjacent sides of a 2D meshing element (triangle or \r
- quadrangle). </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Minimum angle quality criterion to your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">1. Display your mesh in the viewer.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Quality \r
- Controls &gt; Minimum angle </B></span>or click <img src="../image38.gif" width="24px" height="24px" border="0" class="img_whs3"> button. Your \r
- mesh will be displayed in the viewer with its elements colored according \r
- to the applied mesh quality control criterion:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../image8.jpg" width="467px" height="328px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/non_conform_mesh_allowed_hypothesis.htm b/doc/salome/gui/SMESH/files/non_conform_mesh_allowed_hypothesis.htm
deleted file mode 100755 (executable)
index baecc12..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Non conform mesh allowed hypothesis</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=460>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining hypotheses\nNon conform mesh allowed hypothesis");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Non conform mesh allowed hypothesis</h1>\r
-\r
-<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> Non Conform mesh allowed</B></span> \r
- hypothesis allows to generate non-conform meshes (that is, meshes having \r
- some edges ending on an edge or face of adjacent elements). </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>This hypothesis has no parameters.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply this hypothesis:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">Select this hypothesis s in <a href="about_hypotheses.htm#CreateHyp">the \r
- <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
- click <span style="font-weight: bold;"><B>Create</B></span>. </p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/number_of_segments_hypothesis.htm b/doc/salome/gui/SMESH/files/number_of_segments_hypothesis.htm
deleted file mode 100755 (executable)
index aeceb75..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Number of segments hypothesis</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=934>\r
-<meta name=layout-width content=557>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 431px; height: 233px;}\r
-p.whs4 {margin-left: 80px;}\r
-img_whs5 {border-style: none; border: none; width: 304px; height: 233px;}\r
-p.whs6 {margin-left: 0px;}\r
-ul.whs7 {list-style: disc;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs6 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining hypotheses\nNumber of segments hypothesis");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Number of segments hypothesis</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Number of segments </B></span>hypothesis \r
- can be applied for meshing of edges composing your geometrical object. \r
- Definition of this hypothesis consists of setting the <span style="font-weight: bold;"><B>number</B></span> \r
- of segments, which will split these edges. In other words your edges will \r
- be split into a definite number of segments with approximately the same \r
- length. The points on the edges generated by these segments will represent \r
- nodes of your mesh. Later these nodes will be used for meshing of the \r
- faces abutting to these edges.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../image46.gif" width="431px" height="233px" border="0" class="img_whs3"></p>\r
-\r
-<p class=TODO>To define the Number of segments hypothesis:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
- </B></span>menu select <span style="font-weight: bold;"><B>Nb. Segments </B></span>and \r
- click <span style="font-weight: bold;"><B>Create</B></span>. The following dialog \r
- box will appear:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs4"><img src="../image44.gif" width="304px" height="233px" border="0" class="img_whs5"></p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs6">In this dialog box you can set:</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs7">\r
-       \r
-       <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Name \r
- </B></span>of your Local Length hypothesis</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Segments</B></span>:<span \r
- style="font-weight: bold;"> <B></B></span>the number<span style="font-weight: bold;"> \r
- <B></B></span>of segments which will split the edges of your geometrical object</p></li>\r
-</ul>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/propagation_of_1d_hypothesis_on_opposite_edges.htm b/doc/salome/gui/SMESH/files/propagation_of_1d_hypothesis_on_opposite_edges.htm
deleted file mode 100755 (executable)
index ae5c977..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Propagation of 1D Hypothesis on opposite edges</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=460>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining hypotheses\nPropagation of 1D Hypothesis on opposite edges");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Propagation of 1D Hypothesis on opposite edges</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Propagation of 1D Hypothesis \r
- on opposite edges </B></span>allows to propagate a set hypothesis onto an \r
- opposite edge. If a local hypothesis and propagation are set on one of \r
- edges of a quadrangular face, the opposite edge will have the same hypothesis, \r
- unless another hypothesis has been locally set on such opposite edge.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply this hypothesis:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">Select this hypothesis s in <a href="about_hypotheses.htm#CreateHyp">the \r
- <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
- click <span style="font-weight: bold;"><B>Create</B></span>. </p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/reassigning_hypotheses_and_algorithms.htm b/doc/salome/gui/SMESH/files/reassigning_hypotheses_and_algorithms.htm
deleted file mode 100755 (executable)
index 51938ab..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Reassigning hypotheses and algorithms</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1107>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-img_whs2 {border-style: none; border: none; width: 300px; height: 449px;}\r
-ul.whs3 {list-style: disc;}\r
-p.whs4 {margin-left: 40px; font-weight: bold;}\r
-p.whs5 {margin-left: 0px;}\r
-img_whs6 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs5 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nEditing meshes\nReassigning hypotheses and algorithms");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Reassigning hypotheses and algorithms</h1>\r
-\r
-<p>After you have created a mesh or submesh with definite applied hypotheses \r
- and algorithms you can edit your mesh by <span style="font-weight: bold;"><B>assigning</B></span> \r
- new hypotheses and algorithms or <span style="font-weight: bold;"><B>unassigning \r
- </B></span>the applied hypotheses and algorithms.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To assign or unassign algorithms and hypotheses:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. In the <span style="font-weight: bold;"><B>Mesh \r
- </B></span><span>menu select the </span><span style="font-weight: bold;"><B>Edit \r
- Hypothesis</B></span><span>, the following dialog box will appear:</span><span \r
- style="font-weight: bold;"> <B></B></span></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image41.jpg" width="300px" height="449px" border="0" class="img_whs2"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">This dialog box contains the following fields: \r
- </p>\r
-\r
-<ul type="disc" class="whs3">\r
-       \r
-       <li class=kadov-p><p class="whs1"><span style="font-weight: bold;"><B>Mesh \r
- or SubMesh </B></span>field: here you should enter the name of the mesh or \r
- submesh for which you would like to assign or unassign hypotheses and \r
- algorithms. It can be also done by choosing the required mesh or submesh \r
- in the Object Browser or in the 3D viewer;</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs4">Hypotheses \r
- <span style="font-weight: normal;">set of fields containing two columns: \r
- </span></p></li>\r
-       \r
-       <ul type="disc" class="whs3">\r
-               \r
-               <li class=kadov-p><p class="whs4">Available: \r
- <span style="font-weight: normal;">the hypotheses which have been created \r
- in the current study;</span></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs4"><span \r
- style="margin-left: 40px; font-weight: bold;"><B>Used: </B></span><span style="margin-left: 40px; font-weight: normal;">the \r
- hypotheses which have been applied to previously selected mesh or submesh.</span><span \r
- style="margin-left: 40px; font-weight: bold;"> <B></B></span></p></li>\r
-       </ul>\r
-       \r
-       <li class=kadov-p><p class="whs1"><span style="font-weight: bold;"><B>Algorithms \r
- </B></span>set of fields containing two columns:</p></li>\r
-       \r
-       <ul type="disc" class="whs3">\r
-               \r
-               <li class=kadov-p><p class="whs4">Available: \r
- <span style="font-weight: normal;">the algorithms which have been created \r
- in the current study.</span></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs4">Used: \r
- <span style="font-weight: normal;">the algorithms which have been applied \r
- to previously selected mesh or submesh.</span> </p></li>\r
-       </ul>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Double-click on the definite algorithm \r
- or hypothesis to move it from the <span style="font-weight: bold;"><B>Available \r
- </B></span>column into the <span style="font-weight: bold;"><B>Used </B></span>column \r
- and vice versa. &nbsp;Thus \r
- you will be able to apply new hypotheses and algorithms to your mesh or \r
- unassign<span style="font-weight: bold;"> <B></B></span>the applied hypotheses \r
- and algorithms.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Confirm your changes by clicking the <span \r
- style="font-weight: bold;"><B>OK </B></span>button.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs5">After modification of applied algorithms you \r
- should recompute your mesh once again.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs5"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs6"> You can also unassign an \r
- applied algorithm or hypothesis by right-clicking on it in the Object \r
- Browser and choosing from the associated popup menu the <span style="font-weight: bold;"><B>Unassign \r
- Algorithm </B></span>or <span style="font-weight: bold;"><B>Unassign Hypothesis \r
- </B></span><span>item.</span></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/removing_nodes_and_elements.htm b/doc/salome/gui/SMESH/files/removing_nodes_and_elements.htm
deleted file mode 100755 (executable)
index c8b5069..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Removing nodes and elements</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1633>\r
-<meta name=layout-width content=765>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-img_whs2 {border-style: none; border: none; width: 27px; height: 25px;}\r
-img_whs3 {border-style: none; border: none; width: 315px; height: 217px;}\r
-p.whs4 {margin-left: 0px;}\r
-img_whs5 {border-style: none; border: none; width: 36px; height: 38px; float: none;}\r
-table.whs6 {x-cell-content-align: top; width: 100%; border-spacing: 0; border-spacing: 0px;}\r
-col.whs7 {width: 50%;}\r
-tr.whs8 {x-cell-content-align: top;}\r
-td.whs9 {width: 50%; padding-right: 10px; padding-left: 10px; border-right-style: none; border-left-style: none; border-top-style: none; border-bottom-style: none;}\r
-img_whs10 {border-style: none; border: none; width: 350px; height: 183px;}\r
-td.whs11 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
-img_whs12 {border-style: none; border: none; width: 318px; height: 218px;}\r
-img_whs13 {border-style: none; border: none; width: 350px; height: 184px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs4 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nRemoving nodes and elements");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Removing nodes and elements</h1>\r
-\r
-<p>In SMESH you can remove nodes and all types of cells of your mesh. </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To remove a node:</p>\r
-\r
-<p class=TODO\r
-       style="margin-left: 40px;">&nbsp;</p>\r
-\r
-<p class="whs1">1. Select your mesh in the Object Browser \r
- or in the 3D viewer.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose <span style="font-weight: bold;"><B>Remove </B></span>and \r
- from the associated submenu select the <span style="font-weight: bold;"><B>Remove \r
- nodes</B></span>, or just click <img src="../image88.gif" width="27px" height="25px" border="0" class="img_whs2"> icon in the toolbar. The \r
- following dialog box will appear:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image87.gif" width="315px" height="217px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">In this dialog box you can specify one or \r
- several nodes (with pressed Shift button) by choosing them in the 3D viewer.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click <span style="font-weight: bold;"><B>OK \r
- </B></span>or <span style="font-weight: bold;"><B>Apply </B></span>&nbsp;to \r
- confirm deletion of the specified nodes.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs4"><img src="../note1.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs5">Be careful while removing \r
- nodes because if you remove a definite node of your mesh all adjacent \r
- elements will be also deleted.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<!--(Table)=========================================================-->\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs6">\r
-<col class="whs7">\r
-<col class="whs7">\r
-\r
-<tr valign="top" class="whs8">\r
-<td width="50%" class="whs9">\r
-<p><img src="../image73.jpg" width="350px" height="183px" border="0" class="img_whs10"></td>\r
-<td width="50%" class="whs11">\r
-<p><img src="../image72.jpg" width="350px" height="183px" border="0" class="img_whs10"></td></tr>\r
-</table>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To remove an element:</p>\r
-\r
-<p class=TODO\r
-       style="margin-left: 40px;">&nbsp;</p>\r
-\r
-<p class="whs1">1. Select your mesh in the Object Browser \r
- or in the 3D viewer.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose <span style="font-weight: bold;"><B>Remove </B></span>and \r
- from the associated submenu select the <span style="font-weight: bold;"><B>Remove \r
- elements</B></span>, or just click <img src="../image88.gif" width="27px" height="25px" border="0" class="img_whs2"> icon in the toolbar. The \r
- following dialog box will appear:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image89.gif" width="318px" height="218px" border="0" class="img_whs12"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">In this dialog box you can specify one or \r
- several elements of your mesh (with pressed Shift button) by choosing \r
- them in the 3D viewer.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click <span style="font-weight: bold;"><B>OK \r
- </B></span>or <span style="font-weight: bold;"><B>Apply </B></span>&nbsp;to \r
- confirm deletion of the specified elements.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<!--(Table)=========================================================-->\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs6">\r
-<col class="whs7">\r
-<col class="whs7">\r
-\r
-<tr valign="top" class="whs8">\r
-<td width="50%" class="whs9">\r
-<p><img src="../image75.jpg" width="350px" height="183px" border="0" class="img_whs10"></td>\r
-<td width="50%" class="whs11">\r
-<p><img src="../image74.jpg" width="350px" height="184px" border="0" class="img_whs13"></td></tr>\r
-</table>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/renumbering_nodes_and_elements.htm b/doc/salome/gui/SMESH/files/renumbering_nodes_and_elements.htm
deleted file mode 100755 (executable)
index 6bf37d0..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Renumbering nodes and elements</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1068>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-img_whs2 {border-style: none; border: none; width: 29px; height: 23px;}\r
-img_whs3 {border-style: none; border: none; width: 314px; height: 217px;}\r
-img_whs4 {border-style: none; border: none; width: 26px; height: 25px;}\r
-img_whs5 {border-style: none; border: none; width: 318px; height: 220px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nRenumbering nodes and elements");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Renumbering nodes and elements</h1>\r
-\r
-<p>In SMESH you can renumber the nodes and elements of your mesh.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To renumber the nodes of your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. In the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu select <span style="font-weight: bold;"><B>Renumbering </B></span>submenu \r
- and choose the <span style="font-weight: bold;"><B>Nodes </B></span>item or click \r
- <img src="../image63.gif" width="29px" height="23px" border="0" class="img_whs2"> button in the toolbar. The following dialog box will \r
- appear: </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image66.gif" width="314px" height="217px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Fill the <span style="font-weight: bold;"><B>Mesh \r
- </B></span>field by selecting your mesh in the Object Browser or in the 3D \r
- viewer.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span><span>or </span><span style="font-weight: bold;"><B>OK </B></span><span>button \r
- to perform the operation.</span></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class=TODO>To renumber the elements of your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. In the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu select <span style="font-weight: bold;"><B>Renumbering </B></span>submenu \r
- and choose the <span style="font-weight: bold;"><B>Elements </B></span>item or \r
- click <img src="../image64.gif" width="26px" height="25px" border="0" class="img_whs4"> button in the toolbar. The following dialog box will \r
- appear: </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image65.gif" width="318px" height="220px" border="0" class="img_whs5"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Fill the <span style="font-weight: bold;"><B>Mesh \r
- </B></span>field by selecting your mesh in the Object Browser or in the 3D \r
- viewer.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span><span>or </span><span style="font-weight: bold;"><B>OK </B></span><span>button \r
- to perform the operation.</span></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/rotation.htm b/doc/salome/gui/SMESH/files/rotation.htm
deleted file mode 100755 (executable)
index 7ec631e..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Rotation</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=604>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-img_whs2 {border-style: none; border: none; width: 310px; height: 265px;}\r
-ul.whs3 {list-style: disc;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nTransforming meshes\nRotation");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Rotation</h1>\r
-\r
-<p>This geometrical operation allows to rotate in space your mesh or some \r
- of its elements.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>&nbsp;To \r
- rotate your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and \r
- &nbsp;from its \r
- sub-menu select the <span style="font-weight: bold;"><B>Rotation </B></span>item. \r
- The following dialog box shall appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image55.jpg" width="310px" height="265px" border="0" class="img_whs2"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">In this dialog box you can specify the elements \r
- which should be rotated and the rotation parameters:</p>\r
-\r
-<ul type="disc" class="whs3">\r
-       \r
-       <li class=kadov-p><p class="whs1"><span style="font-weight: bold;"><B>Axis:</B></span> \r
- point and vector</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><span style="font-weight: bold;"><B>Angle \r
- </B></span>of rotation </p></li>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><span style="font-weight: bold;"><B>Create a \r
- copy </B></span><span>radio button allows to copy the rotated object.</span></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/running_smesh_module.htm b/doc/salome/gui/SMESH/files/running_smesh_module.htm
deleted file mode 100755 (executable)
index 430218e..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Running SMESH module</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1495>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {font-family: 'Times New Roman', serif;}\r
-ol.whs2 {list-style: decimal;}\r
-img_whs3 {border-style: none; border: none; width: 32px; height: 34px; float: none;}\r
-p.whs4 {margin-left: 40px;}\r
-img_whs5 {border-style: none; border: none; width: 574px; height: 404px;}\r
-p.whs6 {font-family:'Times New Roman' , serif; background-image:url(../texture_horiz_ltbluebubbles.jpg); }\r
-img_whs7 {border-style: none; border: none; float: none; width: 36px; height: 38px;}\r
-p.whs8 {font-family: 'Times New Roman', serif; margin-left: 40px;}\r
-img_whs9 {border-style: none; border: none; width: 29px; height: 28px;}\r
-img_whs10 {border-style: none; border: none; width: 150px; height: 160px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nRunning SMESH module");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Running SMESH module</h1>\r
-\r
-<p class=TODO>To start <span style="font-weight: bold;"><B>SMESH </B></span><span \r
- class=glossterm>module</span> in SALOME:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<ol type="1" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs1">Run \r
- SALOME </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">Create \r
- a new study by clicking <img src="../pics/new.jpg" x-maintain-ratio="TRUE" width="32px" height="34px" border="0" class="img_whs3"> icon in the main toolbar. The \r
- following SALOME standard window will appear: &nbsp;</p></li>\r
-</ol>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../image11.jpg" width="574px" height="404px" border="0" class="img_whs5"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs6"><img src="../note1.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs7"> Before launching the SMESH module, you should set the VTK \r
- viewer as default viewer for creation of a new study window. In SMESH \r
- you can generate and work with meshes only in VTK viewer. </p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
-\r
-<p class="whs8">&nbsp;&nbsp;&nbsp;&nbsp;3. \r
- In the bottom toolbar click <img src="../image25.jpg" width="29px" height="28px" border="0" class="img_whs9"> icon or &nbsp;from \r
- the bottom Choose box</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../image24.jpg" width="150px" height="160px" border="0" class="img_whs10"></p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select \r
- <span style="font-weight: bold;"><B>SMESH</B></span>.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">The initial desktop of \r
- the SALOME platform will be updated with some additional toolbars and \r
- menus related to the <span style="font-weight: bold;"><B>SMESH</B></span> component \r
- . It will look like as follows:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs4"><img src="../image12.jpg" width="574px" height="404px" border="0" class="img_whs5"></p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/scalar_bar_properties.htm b/doc/salome/gui/SMESH/files/scalar_bar_properties.htm
deleted file mode 100755 (executable)
index 2e301a7..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Scalar Bar properties</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=380>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Scalar Bar properties</h1>\r
-\r
-<p>Type topic text here.</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/sewing_meshes.htm b/doc/salome/gui/SMESH/files/sewing_meshes.htm
deleted file mode 100755 (executable)
index e27d967..0000000
+++ /dev/null
@@ -1,328 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Sewing meshes</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=3595>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-ul.whs2 {list-style: disc;}\r
-p.whs3 {font-weight: bold;}\r
-p.whs4 {margin-left: 40px;}\r
-img_whs5 {border-style: none; border: none; width: 311px; height: 456px;}\r
-img_whs6 {border-style: none; border: none; width: 297px; height: 62px;}\r
-img_whs7 {border-style: none; border: none; width: 612px; height: 225px;}\r
-img_whs8 {border-style: none; border: none; width: 612px; height: 230px;}\r
-img_whs9 {border-style: none; border: none; width: 600px; height: 227px;}\r
-img_whs10 {border-style: none; border: none; width: 620px; height: 228px;}\r
-img_whs11 {border-style: none; border: none; width: 304px; height: 222px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nTransforming meshes\nSewing meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Sewing meshes</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> In SMESH you can sew elements of &nbsp;different \r
- meshes. The current functionality allows you to sew:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs3"><a href="#free bord">Free \r
- borders </a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><a href="#conform">Conform \r
- free borders</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><a href="#border to side">Border \r
- to side</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><a href="#side elements">Side \r
- elements</a></p></li>\r
-</ul>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class=TODO>To sew elements of different meshes:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs4">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Transformation \r
- </B></span>item and &nbsp;from \r
- its sub-menu select the <span style="font-weight: bold;"><B>Sewing </B></span>item. \r
- The following dialog box shall appear:</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"><img src="../image57.gif" width="311px" height="456px" border="0" class="img_whs5"></p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">2. In the upper part of this dialog box check \r
- one of the radio buttons corresponding to the type of sewing operation \r
- you would like to perform: </p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"><img src="../image61.gif" width="297px" height="62px" border="0" class="img_whs6"> </p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">3. Fill the other fields available in the \r
- dialog box</p>\r
-\r
-<p class="whs4">4. Click the <span style="font-weight: bold;"><B>OK \r
- </B></span><span>or </span><span style="font-weight: bold;"><B>Apply </B></span>button \r
- to perform the operation of sewing. </p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<h3><a name="free bord"></a>Sew free borders</h3>\r
-\r
-<p>This functionality allows you to unite two free borders of a 2D mesh.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>For sewing free borders you should define three points on each border: \r
- first, second and the last node: </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p>&nbsp;the \r
- first node specifies beginning of the border ;</p></li>\r
-       \r
-       <li class=kadov-p><p>&nbsp;the \r
- second node specifies the part of the border which should be considered \r
- (as far as the free border usually forms a closed contour);</p></li>\r
-       \r
-       <li class=kadov-p><p>&nbsp;the \r
- last node specifies the end of the border.</p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>You can select these nodes in the 3D viewer or define by its id.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>The first and the second nodes should belong to the same link of a face. \r
- The second and the last nodes of a border can be the same. The first and \r
- the last nodes of two borders can be the same. The corresponding end nodes \r
- of two borders will be merged. Intermediate nodes of two borders will \r
- be either merged or inserted into faces of the opposite border.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>The sewing algorithm is as follows:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs4">1. The parameter (U) of each node within \r
- a border is computed. So that the first node has U=0.0, the last node \r
- has U=1.0, for the rest nodes 0.0 &lt; U &lt; 1.0;</p>\r
-\r
-<p class="whs4">2. Compare node parameters of the two borders. \r
- If two nodes of the opposite borders have close parameters, they are merged, \r
- i.e. a node of the first border is replaced in all elements by a node \r
- of the second border. If a node has no node with a close parameter in \r
- the opposite border, it is inserted into an edge of element of the opposite \r
- border, an element is split. Two nodes are considered close enough to \r
- merge, if difference of their parameters is less than one fifth of minimum \r
- length of adjacent face edges on the borders.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs4"><img src="../image22.jpg" width="612px" height="225px" border="0" class="img_whs7"></p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<h3><a name=conform></a>Sew conform free borders</h3>\r
-\r
-<p>This functionality can be used to unite two free borders of a 2D mesh.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>The borders of meshes for sewing are defined as for &quot;Sew free borders&quot; \r
- except that the second free border is not limited and can be defined by \r
- the first and the second nodes only. The first nodes of two borders can \r
- be the same.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs4"><img src="../image23.jpg" width="612px" height="230px" border="0" class="img_whs8"></p>\r
-\r
-<p>The algorithm is following: counting nodes starting at the first ones, \r
- the n-th node of the first border is merged with the n-th node of the \r
- other border, until the end of either of borders. Nodes of the first border \r
- are replaced in all elements with corresponding nodes of the second border.</p>\r
-\r
-<p>For sewing conform free borders you should define three points on the \r
- first border and two points on the second one. User can select these nodes \r
- in 3D viewer or define node by its id.</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<h3><a name="border to side"></a>Sew border to side</h3>\r
-\r
-<p>&quot;Sew border to side&quot; is intended to sew a free border to a \r
- mesh surface.</p>\r
-\r
-<p>The free border is defined as for &quot;Sewing of free borders&quot;. \r
- The place where to sew the border is defined by two nodes, between which \r
- the border faces are placed, so that the first border node is merged with \r
- the first node on the side and the last node of the border is merged with \r
- the second specified node on the side.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs4"><img src="../image30.jpg" width="600px" height="227px" border="0" class="img_whs9"></p>\r
-\r
-<p>The algorithm is following.</p>\r
-\r
-<p>1. Find a sequence of linked nodes on the side such that the found links \r
- to be most co-directed with the links of the free border.</p>\r
-\r
-<p>2. Sew two sequences of nodes using algorithm of &quot;Sewing of free \r
- berders&quot;.</p>\r
-\r
-<p>For sewing border to side you should define three points on the border \r
- and two points on the side. User can select these nodes in 3D viewer or \r
- define node by its id.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<h3><a name="side elements"></a>Sew side elements</h3>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs4"><img src="../image31.jpg" width="620px" height="228px" border="0" class="img_whs10"></p>\r
-\r
-<p>This operation is intended to unite two mesh surfaces.</p>\r
-\r
-<p>Surfaces may be defined by either 2d or 3d elements. The number of given \r
- elements of the sides must be the same. The sets of given elements must \r
- be topologically equal, i.e. each node of one element set must have a \r
- corresponding node in the other element set and corresponding nodes must \r
- be equally linked. If there are 3d elements in a set, only their free \r
- faces must obey to that rule.</p>\r
-\r
-<p>Two corresponding nodes on each side must be specified. They must belong \r
- to one element and must be located on an element set boundary.</p>\r
-\r
-<p>Sewing algorithm finds and merges the corresponding nodes starting from \r
- the specified ones.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs4"><img src="../image32.jpg" width="304px" height="222px" border="0" class="img_whs11"></p>\r
-\r
-<p>For sewing side elements you should define elements for sewing and two \r
- nodes for merging on the each side. User can select these elements and \r
- nodes in 3D viewer or define them by its id.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/shading.htm b/doc/salome/gui/SMESH/files/shading.htm
deleted file mode 100755 (executable)
index 2d937e4..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Shading</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=380>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 479px; height: 296px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<p><img src="../image4.gif" width="479px" height="296px" border="0" class="img_whs1"></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/shrink.htm b/doc/salome/gui/SMESH/files/shrink.htm
deleted file mode 100755 (executable)
index 53386bb..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Shrink</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=380>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 480px; height: 292px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<p><img src="../image6.gif" width="480px" height="292px" border="0" class="img_whs1"></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/skew.htm b/doc/salome/gui/SMESH/files/skew.htm
deleted file mode 100755 (executable)
index 24198ba..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Skew</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1099>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 0px; text-indent: 48px;}\r
-p.whs3 {margin-left: 40px;}\r
-img_whs4 {border-style: none; border: none; width: 453px; height: 411px;}\r
-img_whs5 {border-style: none; border: none; width: 24px; height: 23px;}\r
-img_whs6 {border-style: none; border: none; width: 467px; height: 326px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs2 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nQuality controls\nSkew angle");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Skew angle</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Skew angle</B></span> mesh \r
- quality criterion reflects the angle between the lines that join opposite \r
- sides of the element. SKEW &nbsp;is \r
- a maximum value of all skew angles. </p>\r
-\r
-<p class="whs2">This mesh quality criterion \r
- can be applied to elements composed of 4 and 3 nodes (quadrangles and \r
- triangles)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image27.jpg" width="453px" height="411px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Skew angle quality criterion to your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs3">1. Display your mesh in the viewer.</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">2. Choose <span style="font-weight: bold;"><B>Quality \r
- Controls &gt; Skew </B></span>or click <img src="../image40.gif" width="24px" height="23px" border="0" class="img_whs5"> button of the toolbar. \r
- Your mesh will be displayed in the viewer with its elements colored according \r
- to the applied mesh quality control criterion:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image10.jpg" width="467px" height="326px" border="0" class="img_whs6"></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/smoothing.htm b/doc/salome/gui/SMESH/files/smoothing.htm
deleted file mode 100755 (executable)
index 8d87e63..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Smoothing</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1451>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 24px; height: 25px;}\r
-img_whs4 {border-style: none; border: none; width: 319px; height: 369px;}\r
-ul.whs5 {list-style: disc;}\r
-p.whs6 {margin-left: 40px; font-weight: normal;}\r
-p.whs7 {font-weight: bold;}\r
-p.whs8 {margin-left: 80px;}\r
-img_whs9 {border-style: none; border: none; width: 527px; height: 281px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nSmoothing");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Smoothing</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> Smoothing is used to adjust the locations of element \r
- corners (nodes) to reduce distortions in these elements.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply smoothing to the elements of your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">1. Display a mesh or a submesh in the 3D \r
- viewer.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">2. In the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu select the <span style="font-weight: bold;"><B>Smoothing </B></span>item \r
- or click <img src="../image84.gif" width="24px" height="25px" border="0" class="img_whs3"> button in the toolbar. The following dialog box \r
- will appear:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../image85.gif" width="319px" height="369px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">This dialog box contains the following fields \r
- which should be specified:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs5">\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Id Elements </B></span><span>field allows to specify \r
- the elements which should be smoothed by selecting them in the 3D viewer. \r
- Note: to select several elements press </span><span style="font-weight: bold;"><B>Shift \r
- </B></span><span>button.</span></p></li>\r
-       \r
-       <ul type="disc" class="whs5">\r
-               \r
-               <li class=kadov-p><p class="whs7">Smoothing is applied \r
- to the whole mesh or its part</p></li>\r
-               \r
-               <li class=kadov-p><p><span style="font-weight: bold;"><B>Fixed nodes \r
- ids</B></span>: some nodes keep their location during smoothing. If a mesh \r
- is built on a geometry shape, the nodes built on geometrical edges are \r
- always fixed. If smoothing is applied to a part of a mesh then the boundary \r
- nodes of an elements set are also fixed. Any other nodes may be additionally \r
- fixed.</p></li>\r
-               \r
-               <li class=kadov-p><p>&nbsp;</p></li>\r
-               \r
-               <li class=kadov-p><p><span style="font-weight: bold;"><B>Smoothing \r
- method</B></span>:</p></li>\r
-               \r
-               <ul type="disc" class="whs5">\r
-                       \r
-                       <li class=kadov-p><p><span style="font-weight: bold;"><B>Laplacian</B></span> \r
- smoothing pulls a node toward the center of surrounding nodes directly \r
- connected to that node along an element edge. Centroidal smoothing pulls \r
- a node toward the element-area-weighted centroid of the surrounding elements. \r
- Typically, the Laplacian method will produce the mesh with the least element \r
- distortion. It is also the faster method. </p></li>\r
-                       \r
-                       <li class=kadov-p><p><span style="font-weight: bold;"><B>Centroidal</B></span> \r
- smoothing usually produces a mesh that has more uniform element sizes. \r
- Both methods produce good results with &quot;free&quot; meshes.</p></li>\r
-               </ul>\r
-       </ul>\r
-</ul>\r
-\r
-<p class="whs8"><img src="../image83.gif" width="527px" height="281px" border="0" class="img_whs9"></p>\r
-\r
-<ul type="disc" class="whs5">\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Iteration limit: </B></span>both of the smoothing \r
- methods use an iterative procedure to converge toward a smoothed mesh. \r
- All nodes are smoothed according to one of the techniques shown above. \r
- Then the smoothing is reevaluated with the updated nodal locations. This \r
- process continues until the maximum number of iterations has been exceeded, \r
- or all elements has aspect ratio less or equal than the specified one.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Max. aspect ratio</B></span>.</p></li>\r
-</ul>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
- the operation.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/start_and_end_length_hypothesis.htm b/doc/salome/gui/SMESH/files/start_and_end_length_hypothesis.htm
deleted file mode 100755 (executable)
index 3a8059d..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Start and End Length hypothesis</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=614>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
-p.whs3 {margin-left: 80px;}\r
-img_whs4 {border-style: none; border: none; width: 319px; height: 222px;}\r
-p.whs5 {margin-left: 0px;}\r
-ul.whs6 {list-style: disc;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs5 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining hypotheses\nStart and End Length hypothesis");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Start and End Length hypothesis</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Start and End Length</B></span> \r
- hypothesis is used to build 1D mesh on geometrical edges.</p>\r
-\r
-<p>A geometrical edge is divided into segments so that the first and the \r
- last segments have a specified length. Length of each but the first segment \r
- differs from length of the previous one by a constant factor. Then mesh \r
- nodes are constructed at segment ends location and 1D mesh elements are \r
- constructed on them.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To define the Average Length hypothesis:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">Select this hypothesis s in <a href="about_hypotheses.htm#CreateHyp">the \r
- <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
- click <span style="font-weight: bold;"><B>Create</B></span>. The following dialog \r
- box will appear:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image18.jpg" width="319px" height="222px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs5">In this dialog box you can set:</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs6">\r
-       \r
-       <li class=kadov-p><p class="whs5"><span style="font-weight: bold;"><B>Name \r
- </B></span>of your Start and End Length hypothesis</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs5"><span style="font-weight: bold;"><B>Start \r
- and End Length </B></span>of segments</p></li>\r
-</ul>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/symmetry.htm b/doc/salome/gui/SMESH/files/symmetry.htm
deleted file mode 100755 (executable)
index 446029c..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Symmetry</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1155>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-img_whs2 {border-style: none; border: none; width: 350px; height: 258px;}\r
-img_whs3 {border-style: none; border: none; width: 350px; height: 253px;}\r
-img_whs4 {border-style: none; border: none; width: 350px; height: 248px;}\r
-ul.whs5 {list-style: disc;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nTransforming meshes\nSymmetry");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Symmetry</h1>\r
-\r
-<p>This geometrical operation allows to perform a symmetrical copy of your \r
- mesh or some of its elements.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>&nbsp;To \r
- apply symmetry to your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and \r
- &nbsp;from its \r
- sub-menu select the <span style="font-weight: bold;"><B>Symmetry </B></span>item. \r
- The following dialog box shall appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image59.jpg" width="350px" height="258px" border="0" class="img_whs2"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image58.jpg" width="350px" height="253px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image57.jpg" width="350px" height="248px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">This operation has three options, you can \r
- symmetrically copy your mesh or some of its elements specifying: </p>\r
-\r
-<ul type="disc" class="whs5">\r
-       \r
-       <li class=kadov-p><p class="whs1">one point</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">one axis (point and \r
- vector)</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">one plane (point and \r
- normal)</p></li>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><span style="font-weight: bold;"><B>Create a \r
- copy </B></span><span>radio button allows to keep the initial elements or \r
- mesh.</span></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/taper.htm b/doc/salome/gui/SMESH/files/taper.htm
deleted file mode 100755 (executable)
index 38e4f89..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Taper</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=824>\r
-<meta name=layout-width content=813>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; float: none; width: 30px; height: 30px;}\r
-img_whs2 {border-style: none; border: none; width: 791px; height: 170px;}\r
-p.whs3 {margin-left: 40px;}\r
-img_whs4 {border-style: none; border: none; width: 24px; height: 23px;}\r
-img_whs5 {border-style: none; border: none; width: 465px; height: 326px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nQuality controls\nTaper");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Taper</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"><span style="font-weight: bold;"><B>Taper</B></span> mesh quality \r
- criterion represents the ratio of the areas of two triangles separated \r
- by a diagonal. So it can be calculated only for elements consisting of \r
- 4 nodes.</p>\r
-\r
-<p><img src="../image25.gif" width="791px" height="170px" border="0" class="img_whs2"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Taper quality criterion to your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs3">1. Display your mesh in the viewer.</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">2. Choose <span style="font-weight: bold;"><B>Quality \r
- Controls &gt; Taper </B></span>or click <img src="../image36.gif" width="24px" height="23px" border="0" class="img_whs4"> button in the toolbar. \r
- Your mesh will be displayed in the viewer with its elements colored according \r
- to the applied mesh quality control criterion:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image6.jpg" width="465px" height="326px" border="0" class="img_whs5"></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/tetrahedron_(ghs3d)_meshing_algorithm.htm b/doc/salome/gui/SMESH/files/tetrahedron_(ghs3d)_meshing_algorithm.htm
deleted file mode 100755 (executable)
index f2364d1..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Tetrahedron (GHS3D) meshing algorithm</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=460>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining meshing algorithms\n3D meshing algorithms\nTetrahedron (GHS3D) meshing algorithm");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Tetrahedron (GHS3D) meshing algorithm</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This algorithm is used for meshing of 3D entities of \r
- geometrical objects - <span style="font-weight: bold;"><B>volume objects</B></span>. \r
- While <a href="tetrahedron_(netgen)_meshing_algorithm.htm">NETGEN</a> \r
- generates 3D elements having a volume less than the one specified by hypothesis, \r
- GHS3D does not need any hypotheses, all it needs is a surface mesh built \r
- in advance</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Tetrahedron GHS3D meshing algorithm:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
- the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
- select this algorithm and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/tetrahedron_(netgen)_meshing_algorithm.htm b/doc/salome/gui/SMESH/files/tetrahedron_(netgen)_meshing_algorithm.htm
deleted file mode 100755 (executable)
index c788450..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Tetrahedron (Netgen) meshing algorithm</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=673>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
-p.whs3 {margin-left: 0px;}\r
-p.whs4 {margin-left: 0px; font-weight: bold;}\r
-img_whs5 {border-style: none; border: none; width: 386px; height: 414px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs3 {margin-left:1; }";\r
-  strNSS += "p.whs4 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining meshing algorithms\n3D meshing algorithms\nTetrahedron (Netgen) meshing algorithm");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Tetrahedron (Netgen) meshing algorithm</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This algorithm is used for meshing of 3D entities of \r
- geometrical objects - <span style="font-weight: bold;"><B>volume objects</B></span><span>. \r
- </span></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Tetrahedron meshing algorithm:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
- the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
- select this algorithm and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs4">Example:</p>\r
-\r
-<p class="whs2"><img src="../image9.gif" width="386px" height="414px" border="0" class="img_whs5"></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/translation.htm b/doc/salome/gui/SMESH/files/translation.htm
deleted file mode 100755 (executable)
index 3202565..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Translation</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=551>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-img_whs2 {border-style: none; border: none; width: 645px; height: 231px;}\r
-ul.whs3 {list-style: disc;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nTransforming meshes\nTranslation");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Translation</h1>\r
-\r
-<p>This geometrical operation allows to translate in space your mesh or \r
- some of its elements.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>&nbsp;To \r
- translate your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and \r
- &nbsp;from its \r
- sub-menu select the <span style="font-weight: bold;"><B>Translation </B></span>item. \r
- The following dialog box shall appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image54.jpg" width="645px" height="231px" border="0" class="img_whs2"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">This operation has two options, you can translate \r
- in space your mesh or some of its elements specifying: </p>\r
-\r
-<ul type="disc" class="whs3">\r
-       \r
-       <li class=kadov-p><p class="whs1">two points (starting \r
- and ending)</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">one vector</p></li>\r
-</ul>\r
-\r
-<p class="whs1"><span style="font-weight: bold;"><B>Create a \r
- copy </B></span><span>radio button allows to copy the translated object.</span></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/uniting_a_set_of_triangles.htm b/doc/salome/gui/SMESH/files/uniting_a_set_of_triangles.htm
deleted file mode 100755 (executable)
index 4605996..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Uniting a set of triangles</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=945>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 23px; height: 24px;}\r
-img_whs4 {border-style: none; border: none; width: 295px; height: 362px;}\r
-ul.whs5 {list-style: disc;}\r
-p.whs6 {margin-left: 40px; font-weight: normal;}\r
-p.whs7 {margin-left: 0px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs7 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nUniting a set of triangles");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Uniting a set of triangles</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> In contrast to <a href="uniting_two_triangles.htm">the \r
- previous operation</a> this one allows to unite at once many triangles \r
- if they have adjacent edges. </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To union several triangles:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">1. Display a mesh or a submesh in the 3D \r
- viewer.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">2. In the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu select the <span style="font-weight: bold;"><B>Union of triangles \r
- </B></span>item or click <img src="../image80.gif" width="23px" height="24px" border="0" class="img_whs3"> button in the toolbar. The following \r
- dialog box will appear:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../image81.gif" width="295px" height="362px" border="0" class="img_whs4"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs5">\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>The main list </B></span>shall contain the triangles \r
- which will be united. You can click on an triangle in the 3D viewer and \r
- it will be highlighted. After that click the <span style="font-weight: bold;"><B>Add \r
- </B></span>button and the ID of this triangle will be added to the list. To \r
- remove a selected element or elements from the list click the <span style="font-weight: bold;"><B>Remove \r
- </B></span>button. The <span style="font-weight: bold;"><B>Sort </B></span>button \r
- allows to sort the list of IDs. The <span style="font-weight: bold;"><B>Set \r
- filter </B></span>button allows to apply a definite filter to selection of \r
- triangles.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Apply to all </B></span><span>radio button allows \r
- to modify the orientation of all triangles of the currently displayed \r
- mesh or submesh.</span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Select from </B></span>set of fields allows to \r
- choose a submesh or an existing group whose triangle elements will be \r
- automatically added to the list.</p></li>\r
-</ul>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
- the operation.</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> If some selected triangle \r
- elements have no adjacent edges with one of the others, the operation \r
- on these elements shall take no effect.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/uniting_two_triangles.htm b/doc/salome/gui/SMESH/files/uniting_two_triangles.htm
deleted file mode 100755 (executable)
index 7d1d999..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Uniting two triangles</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=725>\r
-<meta name=layout-width content=763>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-img_whs2 {border-style: none; border: none; width: 23px; height: 23px;}\r
-img_whs3 {border-style: none; border: none; width: 295px; height: 148px;}\r
-table.whs4 {x-cell-content-align: top; width: 100%; border-spacing: 0px; border-spacing: 0px;}\r
-col.whs5 {width: 50%;}\r
-tr.whs6 {x-cell-content-align: top;}\r
-td.whs7 {width: 50%; padding-right: 10px; padding-left: 10px; border-right-style: none; border-left-style: none; border-top-style: none; border-bottom-style: none;}\r
-img_whs8 {border-style: none; border: none; width: 348px; height: 224px;}\r
-td.whs9 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
-img_whs10 {border-style: none; border: none; width: 350px; height: 224px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nUniting two triangles");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Uniting two triangles</h1>\r
-\r
-<p>&nbsp;In SMESH \r
- you can union two neighboring triangles (cells) by deletion of the common \r
- edge.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To unite two triangles:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Union of two triangles \r
- </B></span>item or click <img src="../image71.gif" width="23px" height="23px" border="0" class="img_whs2"> button in the toolbar. The following \r
- dialog box shall appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image72.gif" width="295px" height="148px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Enter the ID of the required edge in the \r
- <span style="font-weight: bold;"><B>Edge </B></span>&nbsp;field \r
- or select this edge in the 3D viewer. </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>\r
-\r
-<p class=TODO\r
-       style="margin-left: 40px;">&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<!--(Table)=========================================================-->\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs4">\r
-<col class="whs5">\r
-<col class="whs5">\r
-\r
-<tr valign="top" class="whs6">\r
-<td width="50%" class="whs7">\r
-<p><img src="../image40.jpg" width="348px" height="224px" border="0" class="img_whs8"></td>\r
-<td width="50%" class="whs9">\r
-<p><img src="../image39.jpg" width="350px" height="224px" border="0" class="img_whs10"></td></tr>\r
-</table>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/using_operations_on_groups.htm b/doc/salome/gui/SMESH/files/using_operations_on_groups.htm
deleted file mode 100755 (executable)
index 3320787..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Using operations on groups</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1909>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-ul.whs2 {list-style: disc;}\r
-p.whs3 {font-weight: bold;}\r
-p.whs4 {margin-left: 40px;}\r
-img_whs5 {border-style: none; border: none; width: 290px; height: 245px;}\r
-img_whs6 {border-style: none; border: none; width: 290px; height: 244px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nGrouping elements\nUsing operations on groups");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Using operations on groups</h1>\r
-\r
-<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> </B></span>In SMESH you can \r
- perform &nbsp;Boolean \r
- operations on groups such as:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs3"><a href="#Union">Union</a> \r
- </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><a href="#Intersection">Intersection</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><a href="#Cut">Cut</a></p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<h3><a name=Union></a>Union of two groups</h3>\r
-\r
-<p>This operation allows to create a new group in such a way that all mesh \r
- elements that are present in the initial groups will be added to the new \r
- one.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To union two groups:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs4">1. In the <span style="font-weight: bold;"><B>Mesh \r
- </B></span>menu select the <span style="font-weight: bold;"><B>Union Groups </B></span>item. \r
- The following dialog box will appear:</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"><img src="../image77.gif" width="290px" height="245px" border="0" class="img_whs5"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs4">In this dialog box you should specify the \r
- name<span style="font-weight: bold;"> <B></B></span>of the resulting group and \r
- two groups which will be united.</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">2. Click the <span style="font-weight: bold;"><B>OK \r
- </B></span>or <span style="font-weight: bold;"><B>&nbsp;Apply \r
- </B></span>button to confirm creation of the group. </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<h3><a name=Intersection></a>Intersection of two groups</h3>\r
-\r
-<p>This operation allows to create a new group in such a way that all mesh \r
- elements that are present in both initial groups are added to the new \r
- one.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To intersect two groups:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs4">1. In the <span style="font-weight: bold;"><B>Mesh \r
- </B></span>menu select the <span style="font-weight: bold;"><B>Intersect Groups \r
- </B></span>item. The following dialog box will appear:</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"><img src="../image76.gif" width="290px" height="245px" border="0" class="img_whs5"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs4">In this dialog box you should specify the \r
- name<span style="font-weight: bold;"> <B></B></span>of the resulting group and \r
- two groups which will be intersected.</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">2. Click the <span style="font-weight: bold;"><B>OK \r
- </B></span>or <span style="font-weight: bold;"><B>&nbsp;Apply \r
- </B></span>button to confirm creation of the group. </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<h3><a name=Cut></a>Cut of two groups</h3>\r
-\r
-<p>This operation allows to create a new group in such a way that all mesh \r
- elements that are present in the main group but are absent in the tool \r
- group are added to the new one.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To cut two groups:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs4">1. In the <span style="font-weight: bold;"><B>Mesh \r
- </B></span>menu select the <span style="font-weight: bold;"><B>Cut Groups </B></span>item. \r
- The following dialog box will appear:</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"><img src="../image75.gif" width="290px" height="244px" border="0" class="img_whs6"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs4">In this dialog box you should specify the \r
- name<span style="font-weight: bold;"> <B></B></span>of the resulting group and \r
- two groups which will be cut.</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">2. Click the <span style="font-weight: bold;"><B>OK \r
- </B></span>or <span style="font-weight: bold;"><B>&nbsp;Apply \r
- </B></span>button to confirm creation of the group. &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/using_smesh_module.htm b/doc/salome/gui/SMESH/files/using_smesh_module.htm
deleted file mode 100755 (executable)
index 92fc07c..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Using SMESH module</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=380>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Using SMESH </h1>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/view_update.htm b/doc/salome/gui/SMESH/files/view_update.htm
deleted file mode 100755 (executable)
index add1784..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>View update</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=380>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; float: none; width: 30px; height: 30px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>View update</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/viewing_mesh_info.htm b/doc/salome/gui/SMESH/files/viewing_mesh_info.htm
deleted file mode 100755 (executable)
index 012d1bc..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Viewing mesh info</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=656>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-img_whs2 {border-style: none; border: none; width: 21px; height: 20px;}\r
-p.whs3 {margin-left: 0px;}\r
-p.whs4 {margin-left: 80px;}\r
-img_whs5 {border: none; width: 190px; height: 350px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs3 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nMesh info\nViewing mesh info");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Viewing mesh info</h1>\r
-\r
-<p class=TODO>To view the information on meshes:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. Select your mesh in the <span style="font-weight: bold;"><B>Object \r
- Browser</B></span>.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. From the <span style="font-weight: bold;"><B>Mesh \r
- </B></span><span>menu s</span>elect <span style="font-weight: bold;"><B>Mesh \r
- infos </B></span>or click <img src="../image26.gif" width="21px" height="20px" border="0" class="img_whs2"> button of the toolbar. </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs3">The following information will be displayed:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs4"><img src="../image82.jpg" width="190px" height="350px" border="0" class="img_whs5"></p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/visualization_modes.htm b/doc/salome/gui/SMESH/files/visualization_modes.htm
deleted file mode 100755 (executable)
index 731b8b0..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Visualization modes</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=380>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; float: none; width: 30px; height: 30px;}\r
-ul.whs2 {list-style: disc;}\r
-p.whs3 {font-weight: bold;}\r
-p.whs4 {margin-left: 40px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script><!--(Generated Script Links)========================================-->\r
-<!--(Generated Code)================================================-->\r
-<!--(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)==================-->\r
-<script type="text/javascript" language="JavaScript1.2" src="../ehlpdhtm.js" x-save-method="compute-relative" name="EHELP_DHTM"></script>\r
-<script type="text/javascript"\r
-               language=JavaScript1.2>\r
-<!-- \r
-if( typeof( kadovInitEffects ) != 'function' ) kadovInitEffects = new Function();if( typeof( kadovInitTrigger ) != 'function' ) kadovInitTrigger = new Function();if( typeof( kadovFilePopupInit ) != 'function' ) kadovFilePopupInit = new Function();if( typeof( kadovTextPopupInit ) != 'function' ) kadovTextPopupInit = new Function();\r
- //-->\r
-</script>\r
-\r
-<!--(==============================================================)-->\r
-\r
-\r
-<h1>Visualization modes</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1">In SMESH there are three visualization modes for displaying \r
- meshes in the viewer:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p><span style="font-weight: bold;"><B><a href="javascript:void(0);" id="a1" onMouseOver="if (parseInt(navigator.appVersion) >= 4 && typeof(BSPSPopupOnMouseOver) == 'function') BSPSPopupOnMouseOver(event);" class="BSSCPopup" onclick="BSSCPopup('wireframe.htm',520,325);return false;">Wireframe</a><script \r
- type="text/javascript"\r
-       language=JavaScript1.2><!--\r
-kadovFilePopupInit('a1');\r
-//--></script></B></span> \r
- </p></li>\r
-       \r
-       <li class=kadov-p><p><span style="font-weight: bold;"><B><a href="javascript:void(0);" id="a2" onMouseOver="if (parseInt(navigator.appVersion) >= 4 && typeof(BSPSPopupOnMouseOver) == 'function') BSPSPopupOnMouseOver(event);" class="BSSCPopup" onclick="BSSCPopup('shading.htm',520,325);return false;">Shading</a><script \r
- type="text/javascript"\r
-       language=JavaScript1.2><!--\r
-kadovFilePopupInit('a2');\r
-//--></script></B></span> \r
- </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><a href="javascript:void(0);" id="a3" onMouseOver="if (parseInt(navigator.appVersion) >= 4 && typeof(BSPSPopupOnMouseOver) == 'function') BSPSPopupOnMouseOver(event);" class="BSSCPopup" onclick="BSSCPopup('shrink.htm',520,325);return false;">Shrink</a><script \r
- type="text/javascript"\r
-       language=JavaScript1.2><!--\r
-kadovFilePopupInit('a3');\r
-//--></script></p></li>\r
-</ul>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class=TODO>To set the visualization mode for displaying of your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs4">1. Select your mesh in the <span style="font-weight: bold;"><B>Object \r
- Browser</B></span>.</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">2. Right-click on the mesh in the viewer \r
- and from the pop-up menu select <span style="font-weight: bold;"><B>Properties \r
- &gt; Display mode</B></span></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/visualization_properties.htm b/doc/salome/gui/SMESH/files/visualization_properties.htm
deleted file mode 100755 (executable)
index eb7d83c..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Visualization properties</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=380>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Visualization properties</h1>\r
-\r
-<p>Type topic text here.</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/warp.htm b/doc/salome/gui/SMESH/files/warp.htm
deleted file mode 100755 (executable)
index 794a5a2..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Warp</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1161>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; float: none; width: 30px; height: 30px;}\r
-p.whs2 {margin-left: 40px;}\r
-p.whs3 {margin-left: 0px;}\r
-img_whs4 {border-style: none; border: none; width: 496px; height: 336px;}\r
-img_whs5 {border-style: none; border: none; width: 23px; height: 23px;}\r
-img_whs6 {border-style: none; border: none; width: 467px; height: 326px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs3 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nQuality controls\nWarping");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Warping</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Warping</B></span> indicates \r
- that a face is not planar and is applied only to 2D elements with 4 nodes. \r
- This quality control criterion is based on a projection plane created \r
- by:</p>\r
-\r
-<p class="whs2">1. bisecting the four element edges, </p>\r
-\r
-<p class="whs2">2. creating a point on the plane at the vector \r
- average of the corners, where the x-axis extends from the point to the \r
- bisector on edge 2. </p>\r
-\r
-<p class="whs3">The plane normal is in the direction of the \r
- cross product of the x-axis and the vector from the origin to the bisector \r
- of edge 3. Every corner of the quad will then be a distance \93h\94 from the \r
- plane. The length of each half edge is measured and the shortest length \r
- is assigned \93l\94. The warp angle is the arcsine of the ratio of the projection \r
- height \93h\94 to the half edge length \93l\94. </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../image24.gif" width="496px" height="336px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Warping quality criterion to your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">1. Display your mesh in the viewer.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Quality \r
- Controls &gt; Warp </B></span>or click <img src="../image39.gif" width="23px" height="23px" border="0" class="img_whs5"> button of the toolbar. \r
- Your mesh will be displayed in the viewer with its elements colored according \r
- to the applied mesh quality control criterion:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../image9.jpg" width="467px" height="326px" border="0" class="img_whs6"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/files/wireframe.htm b/doc/salome/gui/SMESH/files/wireframe.htm
deleted file mode 100755 (executable)
index e38b48d..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Wireframe</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=380>\r
-<meta name=layout-width content=700>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='../default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 481px; height: 294px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<p><img src="../image2.gif" width="481px" height="294px" border="0" class="img_whs1"></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/i_blue.jpg b/doc/salome/gui/SMESH/i_blue.jpg
deleted file mode 100755 (executable)
index ed3acfa..0000000
Binary files a/doc/salome/gui/SMESH/i_blue.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image10.jpg b/doc/salome/gui/SMESH/image10.jpg
deleted file mode 100755 (executable)
index 8c20c4c..0000000
Binary files a/doc/salome/gui/SMESH/image10.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image11.jpg b/doc/salome/gui/SMESH/image11.jpg
deleted file mode 100755 (executable)
index f08bfe0..0000000
Binary files a/doc/salome/gui/SMESH/image11.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image12.gif b/doc/salome/gui/SMESH/image12.gif
deleted file mode 100755 (executable)
index 62dcffa..0000000
Binary files a/doc/salome/gui/SMESH/image12.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image12.jpg b/doc/salome/gui/SMESH/image12.jpg
deleted file mode 100755 (executable)
index aa3ee34..0000000
Binary files a/doc/salome/gui/SMESH/image12.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image13.gif b/doc/salome/gui/SMESH/image13.gif
deleted file mode 100755 (executable)
index 5548661..0000000
Binary files a/doc/salome/gui/SMESH/image13.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image14.gif b/doc/salome/gui/SMESH/image14.gif
deleted file mode 100755 (executable)
index 7c8bb86..0000000
Binary files a/doc/salome/gui/SMESH/image14.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image15.gif b/doc/salome/gui/SMESH/image15.gif
deleted file mode 100755 (executable)
index 2cac70a..0000000
Binary files a/doc/salome/gui/SMESH/image15.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image16.gif b/doc/salome/gui/SMESH/image16.gif
deleted file mode 100755 (executable)
index d840de8..0000000
Binary files a/doc/salome/gui/SMESH/image16.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image16.jpg b/doc/salome/gui/SMESH/image16.jpg
deleted file mode 100755 (executable)
index 2eda3d4..0000000
Binary files a/doc/salome/gui/SMESH/image16.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image17.jpg b/doc/salome/gui/SMESH/image17.jpg
deleted file mode 100755 (executable)
index 97c2c1c..0000000
Binary files a/doc/salome/gui/SMESH/image17.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image18.jpg b/doc/salome/gui/SMESH/image18.jpg
deleted file mode 100755 (executable)
index 8b77d1d..0000000
Binary files a/doc/salome/gui/SMESH/image18.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image2.gif b/doc/salome/gui/SMESH/image2.gif
deleted file mode 100755 (executable)
index 7ac734e..0000000
Binary files a/doc/salome/gui/SMESH/image2.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image20.jpg b/doc/salome/gui/SMESH/image20.jpg
deleted file mode 100755 (executable)
index 3554c17..0000000
Binary files a/doc/salome/gui/SMESH/image20.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image21.jpg b/doc/salome/gui/SMESH/image21.jpg
deleted file mode 100755 (executable)
index 271f79b..0000000
Binary files a/doc/salome/gui/SMESH/image21.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image22.gif b/doc/salome/gui/SMESH/image22.gif
deleted file mode 100755 (executable)
index 18b53bf..0000000
Binary files a/doc/salome/gui/SMESH/image22.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image22.jpg b/doc/salome/gui/SMESH/image22.jpg
deleted file mode 100755 (executable)
index b6a5e8d..0000000
Binary files a/doc/salome/gui/SMESH/image22.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image23.jpg b/doc/salome/gui/SMESH/image23.jpg
deleted file mode 100755 (executable)
index 74f899b..0000000
Binary files a/doc/salome/gui/SMESH/image23.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image24.gif b/doc/salome/gui/SMESH/image24.gif
deleted file mode 100755 (executable)
index 3d8032b..0000000
Binary files a/doc/salome/gui/SMESH/image24.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image24.jpg b/doc/salome/gui/SMESH/image24.jpg
deleted file mode 100755 (executable)
index 59570ba..0000000
Binary files a/doc/salome/gui/SMESH/image24.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image25.gif b/doc/salome/gui/SMESH/image25.gif
deleted file mode 100755 (executable)
index cd7c967..0000000
Binary files a/doc/salome/gui/SMESH/image25.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image25.jpg b/doc/salome/gui/SMESH/image25.jpg
deleted file mode 100755 (executable)
index 4b2d4df..0000000
Binary files a/doc/salome/gui/SMESH/image25.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image26.gif b/doc/salome/gui/SMESH/image26.gif
deleted file mode 100755 (executable)
index 62eef53..0000000
Binary files a/doc/salome/gui/SMESH/image26.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image26.jpg b/doc/salome/gui/SMESH/image26.jpg
deleted file mode 100755 (executable)
index 3a02cb9..0000000
Binary files a/doc/salome/gui/SMESH/image26.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image27.gif b/doc/salome/gui/SMESH/image27.gif
deleted file mode 100755 (executable)
index d21b890..0000000
Binary files a/doc/salome/gui/SMESH/image27.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image27.jpg b/doc/salome/gui/SMESH/image27.jpg
deleted file mode 100755 (executable)
index d2f32b1..0000000
Binary files a/doc/salome/gui/SMESH/image27.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image28.gif b/doc/salome/gui/SMESH/image28.gif
deleted file mode 100755 (executable)
index 21f54bf..0000000
Binary files a/doc/salome/gui/SMESH/image28.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image28.jpg b/doc/salome/gui/SMESH/image28.jpg
deleted file mode 100755 (executable)
index 8ec5266..0000000
Binary files a/doc/salome/gui/SMESH/image28.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image29.gif b/doc/salome/gui/SMESH/image29.gif
deleted file mode 100755 (executable)
index e748b6f..0000000
Binary files a/doc/salome/gui/SMESH/image29.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image29.jpg b/doc/salome/gui/SMESH/image29.jpg
deleted file mode 100755 (executable)
index c405124..0000000
Binary files a/doc/salome/gui/SMESH/image29.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image3.jpg b/doc/salome/gui/SMESH/image3.jpg
deleted file mode 100755 (executable)
index 172c020..0000000
Binary files a/doc/salome/gui/SMESH/image3.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image30.jpg b/doc/salome/gui/SMESH/image30.jpg
deleted file mode 100755 (executable)
index 997a36e..0000000
Binary files a/doc/salome/gui/SMESH/image30.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image31.gif b/doc/salome/gui/SMESH/image31.gif
deleted file mode 100755 (executable)
index c2a9a77..0000000
Binary files a/doc/salome/gui/SMESH/image31.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image31.jpg b/doc/salome/gui/SMESH/image31.jpg
deleted file mode 100755 (executable)
index aa00403..0000000
Binary files a/doc/salome/gui/SMESH/image31.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image32.gif b/doc/salome/gui/SMESH/image32.gif
deleted file mode 100755 (executable)
index a1ee2ee..0000000
Binary files a/doc/salome/gui/SMESH/image32.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image32.jpg b/doc/salome/gui/SMESH/image32.jpg
deleted file mode 100755 (executable)
index 77d595d..0000000
Binary files a/doc/salome/gui/SMESH/image32.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image33.gif b/doc/salome/gui/SMESH/image33.gif
deleted file mode 100755 (executable)
index ecdd47b..0000000
Binary files a/doc/salome/gui/SMESH/image33.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image34.gif b/doc/salome/gui/SMESH/image34.gif
deleted file mode 100755 (executable)
index 963095f..0000000
Binary files a/doc/salome/gui/SMESH/image34.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image34.jpg b/doc/salome/gui/SMESH/image34.jpg
deleted file mode 100755 (executable)
index 3f4b042..0000000
Binary files a/doc/salome/gui/SMESH/image34.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image35.gif b/doc/salome/gui/SMESH/image35.gif
deleted file mode 100755 (executable)
index 0e3b30f..0000000
Binary files a/doc/salome/gui/SMESH/image35.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image35.jpg b/doc/salome/gui/SMESH/image35.jpg
deleted file mode 100755 (executable)
index bc9c85e..0000000
Binary files a/doc/salome/gui/SMESH/image35.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image36.gif b/doc/salome/gui/SMESH/image36.gif
deleted file mode 100755 (executable)
index 7236ef8..0000000
Binary files a/doc/salome/gui/SMESH/image36.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image36.jpg b/doc/salome/gui/SMESH/image36.jpg
deleted file mode 100755 (executable)
index 9b44dc7..0000000
Binary files a/doc/salome/gui/SMESH/image36.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image37.gif b/doc/salome/gui/SMESH/image37.gif
deleted file mode 100755 (executable)
index edd5263..0000000
Binary files a/doc/salome/gui/SMESH/image37.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image38.gif b/doc/salome/gui/SMESH/image38.gif
deleted file mode 100755 (executable)
index 087f6e2..0000000
Binary files a/doc/salome/gui/SMESH/image38.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image38.jpg b/doc/salome/gui/SMESH/image38.jpg
deleted file mode 100755 (executable)
index 29d5e71..0000000
Binary files a/doc/salome/gui/SMESH/image38.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image39.gif b/doc/salome/gui/SMESH/image39.gif
deleted file mode 100755 (executable)
index b206af1..0000000
Binary files a/doc/salome/gui/SMESH/image39.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image39.jpg b/doc/salome/gui/SMESH/image39.jpg
deleted file mode 100755 (executable)
index 16e6215..0000000
Binary files a/doc/salome/gui/SMESH/image39.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image4.gif b/doc/salome/gui/SMESH/image4.gif
deleted file mode 100755 (executable)
index d23b2a3..0000000
Binary files a/doc/salome/gui/SMESH/image4.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image4.jpg b/doc/salome/gui/SMESH/image4.jpg
deleted file mode 100755 (executable)
index c90ba78..0000000
Binary files a/doc/salome/gui/SMESH/image4.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image40.gif b/doc/salome/gui/SMESH/image40.gif
deleted file mode 100755 (executable)
index becc12a..0000000
Binary files a/doc/salome/gui/SMESH/image40.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image40.jpg b/doc/salome/gui/SMESH/image40.jpg
deleted file mode 100755 (executable)
index 93369a5..0000000
Binary files a/doc/salome/gui/SMESH/image40.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image41.gif b/doc/salome/gui/SMESH/image41.gif
deleted file mode 100755 (executable)
index 2e132c2..0000000
Binary files a/doc/salome/gui/SMESH/image41.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image41.jpg b/doc/salome/gui/SMESH/image41.jpg
deleted file mode 100755 (executable)
index 53a9de2..0000000
Binary files a/doc/salome/gui/SMESH/image41.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image42.gif b/doc/salome/gui/SMESH/image42.gif
deleted file mode 100755 (executable)
index fdfb1b1..0000000
Binary files a/doc/salome/gui/SMESH/image42.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image42.jpg b/doc/salome/gui/SMESH/image42.jpg
deleted file mode 100755 (executable)
index 159c805..0000000
Binary files a/doc/salome/gui/SMESH/image42.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image43.gif b/doc/salome/gui/SMESH/image43.gif
deleted file mode 100755 (executable)
index e1e7b17..0000000
Binary files a/doc/salome/gui/SMESH/image43.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image43.jpg b/doc/salome/gui/SMESH/image43.jpg
deleted file mode 100755 (executable)
index b216f6c..0000000
Binary files a/doc/salome/gui/SMESH/image43.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image44.gif b/doc/salome/gui/SMESH/image44.gif
deleted file mode 100755 (executable)
index 4c9cc1a..0000000
Binary files a/doc/salome/gui/SMESH/image44.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image44.jpg b/doc/salome/gui/SMESH/image44.jpg
deleted file mode 100755 (executable)
index c99348a..0000000
Binary files a/doc/salome/gui/SMESH/image44.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image45.gif b/doc/salome/gui/SMESH/image45.gif
deleted file mode 100755 (executable)
index aaf1d20..0000000
Binary files a/doc/salome/gui/SMESH/image45.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image45.jpg b/doc/salome/gui/SMESH/image45.jpg
deleted file mode 100755 (executable)
index 22b7036..0000000
Binary files a/doc/salome/gui/SMESH/image45.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image46.gif b/doc/salome/gui/SMESH/image46.gif
deleted file mode 100755 (executable)
index 0f00ea7..0000000
Binary files a/doc/salome/gui/SMESH/image46.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image46.jpg b/doc/salome/gui/SMESH/image46.jpg
deleted file mode 100755 (executable)
index d9faec3..0000000
Binary files a/doc/salome/gui/SMESH/image46.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image47.gif b/doc/salome/gui/SMESH/image47.gif
deleted file mode 100755 (executable)
index 8d63f4d..0000000
Binary files a/doc/salome/gui/SMESH/image47.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image47.jpg b/doc/salome/gui/SMESH/image47.jpg
deleted file mode 100755 (executable)
index d66f5e8..0000000
Binary files a/doc/salome/gui/SMESH/image47.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image48.gif b/doc/salome/gui/SMESH/image48.gif
deleted file mode 100755 (executable)
index 1d5704b..0000000
Binary files a/doc/salome/gui/SMESH/image48.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image48.jpg b/doc/salome/gui/SMESH/image48.jpg
deleted file mode 100755 (executable)
index a3a2a0a..0000000
Binary files a/doc/salome/gui/SMESH/image48.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image49.gif b/doc/salome/gui/SMESH/image49.gif
deleted file mode 100755 (executable)
index 92f715c..0000000
Binary files a/doc/salome/gui/SMESH/image49.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image49.jpg b/doc/salome/gui/SMESH/image49.jpg
deleted file mode 100755 (executable)
index 00506cb..0000000
Binary files a/doc/salome/gui/SMESH/image49.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image50.gif b/doc/salome/gui/SMESH/image50.gif
deleted file mode 100755 (executable)
index f2d52be..0000000
Binary files a/doc/salome/gui/SMESH/image50.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image50.jpg b/doc/salome/gui/SMESH/image50.jpg
deleted file mode 100755 (executable)
index 7f0b1aa..0000000
Binary files a/doc/salome/gui/SMESH/image50.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image51.gif b/doc/salome/gui/SMESH/image51.gif
deleted file mode 100755 (executable)
index a1502c4..0000000
Binary files a/doc/salome/gui/SMESH/image51.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image51.jpg b/doc/salome/gui/SMESH/image51.jpg
deleted file mode 100755 (executable)
index dfe3bc6..0000000
Binary files a/doc/salome/gui/SMESH/image51.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image52.gif b/doc/salome/gui/SMESH/image52.gif
deleted file mode 100755 (executable)
index 2049e09..0000000
Binary files a/doc/salome/gui/SMESH/image52.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image52.jpg b/doc/salome/gui/SMESH/image52.jpg
deleted file mode 100755 (executable)
index 1c83b35..0000000
Binary files a/doc/salome/gui/SMESH/image52.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image53.gif b/doc/salome/gui/SMESH/image53.gif
deleted file mode 100755 (executable)
index 2049e09..0000000
Binary files a/doc/salome/gui/SMESH/image53.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image53.jpg b/doc/salome/gui/SMESH/image53.jpg
deleted file mode 100755 (executable)
index 4fd2baa..0000000
Binary files a/doc/salome/gui/SMESH/image53.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image54.jpg b/doc/salome/gui/SMESH/image54.jpg
deleted file mode 100755 (executable)
index 066a572..0000000
Binary files a/doc/salome/gui/SMESH/image54.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image55.gif b/doc/salome/gui/SMESH/image55.gif
deleted file mode 100755 (executable)
index 7858e6e..0000000
Binary files a/doc/salome/gui/SMESH/image55.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image55.jpg b/doc/salome/gui/SMESH/image55.jpg
deleted file mode 100755 (executable)
index c707a8a..0000000
Binary files a/doc/salome/gui/SMESH/image55.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image56.gif b/doc/salome/gui/SMESH/image56.gif
deleted file mode 100755 (executable)
index e19be5b..0000000
Binary files a/doc/salome/gui/SMESH/image56.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image57.gif b/doc/salome/gui/SMESH/image57.gif
deleted file mode 100755 (executable)
index 5f43c24..0000000
Binary files a/doc/salome/gui/SMESH/image57.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image57.jpg b/doc/salome/gui/SMESH/image57.jpg
deleted file mode 100755 (executable)
index d87bb4d..0000000
Binary files a/doc/salome/gui/SMESH/image57.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image58.jpg b/doc/salome/gui/SMESH/image58.jpg
deleted file mode 100755 (executable)
index 28ec009..0000000
Binary files a/doc/salome/gui/SMESH/image58.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image59.jpg b/doc/salome/gui/SMESH/image59.jpg
deleted file mode 100755 (executable)
index ef979c3..0000000
Binary files a/doc/salome/gui/SMESH/image59.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image6.gif b/doc/salome/gui/SMESH/image6.gif
deleted file mode 100755 (executable)
index 2bfa829..0000000
Binary files a/doc/salome/gui/SMESH/image6.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image6.jpg b/doc/salome/gui/SMESH/image6.jpg
deleted file mode 100755 (executable)
index 7dda1f9..0000000
Binary files a/doc/salome/gui/SMESH/image6.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image60.jpg b/doc/salome/gui/SMESH/image60.jpg
deleted file mode 100755 (executable)
index 2d2f4d9..0000000
Binary files a/doc/salome/gui/SMESH/image60.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image61.gif b/doc/salome/gui/SMESH/image61.gif
deleted file mode 100755 (executable)
index 17aac18..0000000
Binary files a/doc/salome/gui/SMESH/image61.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image61.jpg b/doc/salome/gui/SMESH/image61.jpg
deleted file mode 100755 (executable)
index d173332..0000000
Binary files a/doc/salome/gui/SMESH/image61.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image62.jpg b/doc/salome/gui/SMESH/image62.jpg
deleted file mode 100755 (executable)
index 390f770..0000000
Binary files a/doc/salome/gui/SMESH/image62.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image63.gif b/doc/salome/gui/SMESH/image63.gif
deleted file mode 100755 (executable)
index 6a9c2c8..0000000
Binary files a/doc/salome/gui/SMESH/image63.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image63.jpg b/doc/salome/gui/SMESH/image63.jpg
deleted file mode 100755 (executable)
index a453635..0000000
Binary files a/doc/salome/gui/SMESH/image63.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image64.gif b/doc/salome/gui/SMESH/image64.gif
deleted file mode 100755 (executable)
index 1d92c81..0000000
Binary files a/doc/salome/gui/SMESH/image64.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image64.jpg b/doc/salome/gui/SMESH/image64.jpg
deleted file mode 100755 (executable)
index 6ff8943..0000000
Binary files a/doc/salome/gui/SMESH/image64.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image65.gif b/doc/salome/gui/SMESH/image65.gif
deleted file mode 100755 (executable)
index 8ac6138..0000000
Binary files a/doc/salome/gui/SMESH/image65.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image65.jpg b/doc/salome/gui/SMESH/image65.jpg
deleted file mode 100755 (executable)
index d999dcd..0000000
Binary files a/doc/salome/gui/SMESH/image65.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image66.gif b/doc/salome/gui/SMESH/image66.gif
deleted file mode 100755 (executable)
index 3040b1b..0000000
Binary files a/doc/salome/gui/SMESH/image66.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image66.jpg b/doc/salome/gui/SMESH/image66.jpg
deleted file mode 100755 (executable)
index dd770ef..0000000
Binary files a/doc/salome/gui/SMESH/image66.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image67.gif b/doc/salome/gui/SMESH/image67.gif
deleted file mode 100755 (executable)
index 68bd3e3..0000000
Binary files a/doc/salome/gui/SMESH/image67.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image67.jpg b/doc/salome/gui/SMESH/image67.jpg
deleted file mode 100755 (executable)
index 5166140..0000000
Binary files a/doc/salome/gui/SMESH/image67.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image68.gif b/doc/salome/gui/SMESH/image68.gif
deleted file mode 100755 (executable)
index 325eb90..0000000
Binary files a/doc/salome/gui/SMESH/image68.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image68.jpg b/doc/salome/gui/SMESH/image68.jpg
deleted file mode 100755 (executable)
index 1414356..0000000
Binary files a/doc/salome/gui/SMESH/image68.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image69.gif b/doc/salome/gui/SMESH/image69.gif
deleted file mode 100755 (executable)
index 91707d1..0000000
Binary files a/doc/salome/gui/SMESH/image69.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image69.jpg b/doc/salome/gui/SMESH/image69.jpg
deleted file mode 100755 (executable)
index 6998984..0000000
Binary files a/doc/salome/gui/SMESH/image69.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image7.gif b/doc/salome/gui/SMESH/image7.gif
deleted file mode 100755 (executable)
index c50a014..0000000
Binary files a/doc/salome/gui/SMESH/image7.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image7.jpg b/doc/salome/gui/SMESH/image7.jpg
deleted file mode 100755 (executable)
index d6728e2..0000000
Binary files a/doc/salome/gui/SMESH/image7.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image70.gif b/doc/salome/gui/SMESH/image70.gif
deleted file mode 100755 (executable)
index 120b8e8..0000000
Binary files a/doc/salome/gui/SMESH/image70.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image70.jpg b/doc/salome/gui/SMESH/image70.jpg
deleted file mode 100755 (executable)
index 0df360f..0000000
Binary files a/doc/salome/gui/SMESH/image70.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image71.gif b/doc/salome/gui/SMESH/image71.gif
deleted file mode 100755 (executable)
index 0008354..0000000
Binary files a/doc/salome/gui/SMESH/image71.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image71.jpg b/doc/salome/gui/SMESH/image71.jpg
deleted file mode 100755 (executable)
index cb1223d..0000000
Binary files a/doc/salome/gui/SMESH/image71.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image72.gif b/doc/salome/gui/SMESH/image72.gif
deleted file mode 100755 (executable)
index 43a40df..0000000
Binary files a/doc/salome/gui/SMESH/image72.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image72.jpg b/doc/salome/gui/SMESH/image72.jpg
deleted file mode 100755 (executable)
index 21070c6..0000000
Binary files a/doc/salome/gui/SMESH/image72.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image73.gif b/doc/salome/gui/SMESH/image73.gif
deleted file mode 100755 (executable)
index 504816a..0000000
Binary files a/doc/salome/gui/SMESH/image73.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image73.jpg b/doc/salome/gui/SMESH/image73.jpg
deleted file mode 100755 (executable)
index d13b0e5..0000000
Binary files a/doc/salome/gui/SMESH/image73.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image74.gif b/doc/salome/gui/SMESH/image74.gif
deleted file mode 100755 (executable)
index c66029e..0000000
Binary files a/doc/salome/gui/SMESH/image74.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image74.jpg b/doc/salome/gui/SMESH/image74.jpg
deleted file mode 100755 (executable)
index 177fa20..0000000
Binary files a/doc/salome/gui/SMESH/image74.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image75.gif b/doc/salome/gui/SMESH/image75.gif
deleted file mode 100755 (executable)
index 1a9b432..0000000
Binary files a/doc/salome/gui/SMESH/image75.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image75.jpg b/doc/salome/gui/SMESH/image75.jpg
deleted file mode 100755 (executable)
index 3bb1a13..0000000
Binary files a/doc/salome/gui/SMESH/image75.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image76.gif b/doc/salome/gui/SMESH/image76.gif
deleted file mode 100755 (executable)
index f8c0ec0..0000000
Binary files a/doc/salome/gui/SMESH/image76.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image76.jpg b/doc/salome/gui/SMESH/image76.jpg
deleted file mode 100755 (executable)
index 88ec89f..0000000
Binary files a/doc/salome/gui/SMESH/image76.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image77.gif b/doc/salome/gui/SMESH/image77.gif
deleted file mode 100755 (executable)
index 750a890..0000000
Binary files a/doc/salome/gui/SMESH/image77.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image77.jpg b/doc/salome/gui/SMESH/image77.jpg
deleted file mode 100755 (executable)
index c253eac..0000000
Binary files a/doc/salome/gui/SMESH/image77.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image78.gif b/doc/salome/gui/SMESH/image78.gif
deleted file mode 100755 (executable)
index f956a22..0000000
Binary files a/doc/salome/gui/SMESH/image78.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image78.jpg b/doc/salome/gui/SMESH/image78.jpg
deleted file mode 100755 (executable)
index 80c2a16..0000000
Binary files a/doc/salome/gui/SMESH/image78.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image79.gif b/doc/salome/gui/SMESH/image79.gif
deleted file mode 100755 (executable)
index 9711ccb..0000000
Binary files a/doc/salome/gui/SMESH/image79.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image8.gif b/doc/salome/gui/SMESH/image8.gif
deleted file mode 100755 (executable)
index 96299e3..0000000
Binary files a/doc/salome/gui/SMESH/image8.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image8.jpg b/doc/salome/gui/SMESH/image8.jpg
deleted file mode 100755 (executable)
index c542c46..0000000
Binary files a/doc/salome/gui/SMESH/image8.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image80.gif b/doc/salome/gui/SMESH/image80.gif
deleted file mode 100755 (executable)
index 399af0a..0000000
Binary files a/doc/salome/gui/SMESH/image80.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image80.jpg b/doc/salome/gui/SMESH/image80.jpg
deleted file mode 100755 (executable)
index c3bb979..0000000
Binary files a/doc/salome/gui/SMESH/image80.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image81.gif b/doc/salome/gui/SMESH/image81.gif
deleted file mode 100755 (executable)
index ed3413a..0000000
Binary files a/doc/salome/gui/SMESH/image81.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image81.jpg b/doc/salome/gui/SMESH/image81.jpg
deleted file mode 100755 (executable)
index 5055860..0000000
Binary files a/doc/salome/gui/SMESH/image81.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image82.gif b/doc/salome/gui/SMESH/image82.gif
deleted file mode 100755 (executable)
index 93c6c9b..0000000
Binary files a/doc/salome/gui/SMESH/image82.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image82.jpg b/doc/salome/gui/SMESH/image82.jpg
deleted file mode 100755 (executable)
index b9f28a5..0000000
Binary files a/doc/salome/gui/SMESH/image82.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image83.gif b/doc/salome/gui/SMESH/image83.gif
deleted file mode 100755 (executable)
index 331b64a..0000000
Binary files a/doc/salome/gui/SMESH/image83.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image84.gif b/doc/salome/gui/SMESH/image84.gif
deleted file mode 100755 (executable)
index ea8ec56..0000000
Binary files a/doc/salome/gui/SMESH/image84.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image85.gif b/doc/salome/gui/SMESH/image85.gif
deleted file mode 100755 (executable)
index 9f55d31..0000000
Binary files a/doc/salome/gui/SMESH/image85.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image87.gif b/doc/salome/gui/SMESH/image87.gif
deleted file mode 100755 (executable)
index 916dbf0..0000000
Binary files a/doc/salome/gui/SMESH/image87.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image88.gif b/doc/salome/gui/SMESH/image88.gif
deleted file mode 100755 (executable)
index b2d4b73..0000000
Binary files a/doc/salome/gui/SMESH/image88.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image89.gif b/doc/salome/gui/SMESH/image89.gif
deleted file mode 100755 (executable)
index dc6b07e..0000000
Binary files a/doc/salome/gui/SMESH/image89.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image9.gif b/doc/salome/gui/SMESH/image9.gif
deleted file mode 100755 (executable)
index 8525324..0000000
Binary files a/doc/salome/gui/SMESH/image9.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image9.jpg b/doc/salome/gui/SMESH/image9.jpg
deleted file mode 100755 (executable)
index 9bca05a..0000000
Binary files a/doc/salome/gui/SMESH/image9.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image90.gif b/doc/salome/gui/SMESH/image90.gif
deleted file mode 100755 (executable)
index e6e552b..0000000
Binary files a/doc/salome/gui/SMESH/image90.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image91.gif b/doc/salome/gui/SMESH/image91.gif
deleted file mode 100755 (executable)
index a09ab9e..0000000
Binary files a/doc/salome/gui/SMESH/image91.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image92.gif b/doc/salome/gui/SMESH/image92.gif
deleted file mode 100755 (executable)
index 9e0517f..0000000
Binary files a/doc/salome/gui/SMESH/image92.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image93.gif b/doc/salome/gui/SMESH/image93.gif
deleted file mode 100755 (executable)
index eec8b57..0000000
Binary files a/doc/salome/gui/SMESH/image93.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image94.gif b/doc/salome/gui/SMESH/image94.gif
deleted file mode 100755 (executable)
index 7313f5d..0000000
Binary files a/doc/salome/gui/SMESH/image94.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image95.gif b/doc/salome/gui/SMESH/image95.gif
deleted file mode 100755 (executable)
index 6491f27..0000000
Binary files a/doc/salome/gui/SMESH/image95.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image96.gif b/doc/salome/gui/SMESH/image96.gif
deleted file mode 100755 (executable)
index 1392ee7..0000000
Binary files a/doc/salome/gui/SMESH/image96.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image97.gif b/doc/salome/gui/SMESH/image97.gif
deleted file mode 100755 (executable)
index 480b584..0000000
Binary files a/doc/salome/gui/SMESH/image97.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image98.gif b/doc/salome/gui/SMESH/image98.gif
deleted file mode 100755 (executable)
index 5f375b7..0000000
Binary files a/doc/salome/gui/SMESH/image98.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/note1.gif b/doc/salome/gui/SMESH/note1.gif
deleted file mode 100755 (executable)
index b53e21d..0000000
Binary files a/doc/salome/gui/SMESH/note1.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/pattern_mapping.htm b/doc/salome/gui/SMESH/pattern_mapping.htm
deleted file mode 100755 (executable)
index a1eabee..0000000
+++ /dev/null
@@ -1,307 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Pattern mapping</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=3341>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 626px; height: 471px;}\r
-img_whs4 {border: none; width: 22px; height: 28px;}\r
-table.whs5 {x-cell-content-align: top; width: 100%; border-spacing: 0;}\r
-col.whs6 {width: 50%;}\r
-td.whs7 {padding-right: 10px; padding-left: 10px; border-right-style: none; border-left-style: none; border-top-style: none; border-bottom-style: none;}\r
-img_whs8 {border: none; width: 232px; height: 400px;}\r
-td.whs9 {padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
-p.whs10 {margin-left: 0px;}\r
-img_whs11 {border-style: none; border: none; width: 554px; height: 279px;}\r
-img_whs12 {border-style: none; border: none; width: 572px; height: 233px;}\r
-img_whs13 {border-style: none; border: none; width: 606px; height: 249px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs10 {margin-left:1; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nPattern mapping");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Pattern mapping</h1>\r
-\r
-<h3>About patterns</h3>\r
-\r
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> The pattern describes a mesh to generate: positions of \r
- nodes within a geometrical domain and nodal connectivity of elements. \r
- As well, a pattern specifies the so-called key-points, i.e. nodes that \r
- will be located at geometrical vertices. Pattern description is stored \r
- in &lt;pattern_name&gt;.smp file.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>The smp file contains 4 sections:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2">1. The first line holds the number of nodes \r
- (N).</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">2. The next N lines describe nodes coordinates. \r
- Each line holds 2 coordinates of a node.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">3. A key-points line: indices of nodes to \r
- be mapped on geometrical vertices. An index n refers to a node described \r
- on an n-th line of section 2. The first node index is zero.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">4. The rest lines describe nodal connectivity \r
- of elements, one line for an element. A line holds indices of nodes forming \r
- an element. An index n refers to a node described on an n-th line of the \r
- section 2. The first node index is zero. There must be 3 or 4 indices \r
- on a line: only 2d elements are allowed.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p>The 2D pattern must contain at least one element and at least one key-point. \r
- All key-points must lay on boundaries.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>An example of a simple smp file and a preview of a pattern described \r
- in this file:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p><img src="image94.gif" width="626px" height="471px" border="0" class="img_whs3"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<h3>Creating patterns</h3>\r
-\r
-<p>The pattern description can be created manually or automatically. Manual \r
- pattern creation implies creation of pattern file by hands. For an automatic \r
- generation the user just specifies a geometrical face having a mesh built \r
- on it. Mesh nodes lying on face vertices become key-points. Additionally, \r
- the user may choose the way of getting nodes coordinates by projecting \r
- nodes on the face instead of using &quot;positions on face&quot; generated \r
- by mesher (if there are any). Faces having a seam edge can\92t be used for \r
- automatic pattern creation.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>When creating a pattern from an existing mesh, there are two possible \r
- cases:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>1. A sub-mesh on face is selected. A pattern is created from the 2d \r
- elements bound to a face by mesher. Node coordinates are either &quot;positions \r
- on face&quot; computed by mesher, or coordinates got by node projection \r
- on a geometrical surface, according to your choice.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>2. A mesh where the main shape is a face, is selected. A pattern is \r
- created from all the 2d elements in a mesh. If all mesh elements are build \r
- by mesher, the user can select the way of getting nodes coordinates, else \r
- all nodes are projected on a face surface.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<h3>Application of pattern mapping</h3>\r
-\r
-<p class=TODO>To apply pattern mapping to a geometrical object:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Pattern Mapping \r
- </B></span>item or click <img src="image98.gif" width="22px" height="28px" border="0" class="img_whs4"> button in the toolbar. The following \r
- dialog box shall appear:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<!--(Table)=========================================================-->\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs5">\r
-<col class="whs6">\r
-<col class="whs6">\r
-\r
-<tr valign=top>\r
-<td width="50%" class="whs7">\r
-<p><img src="image81.jpg" width="232px" height="400px" border="0" class="img_whs8"></td>\r
-<td width="50%" class="whs9">\r
-<p><img src="image80.jpg" width="232px" height="400px" border="0" class="img_whs8"></td></tr>\r
-</table>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p>To apply a pattern to a geometrical object, you should specify:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2">- a face having the number of vertices equal \r
- to the number of key-points in the pattern; the number of key-points on \r
- internal boundaries of a pattern must also be equal to the number of vertices \r
- on internal boundaries of a face;</p>\r
-\r
-<p class="whs2">- a vertex to which the first key-point should \r
- be mapped,</p>\r
-\r
-<p class="whs2">- reverse or not the order of key-points. \r
- (The order of vertices of a face is counterclockwise looking from outside).</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<h3>Mapping algorithm:</h3>\r
-\r
-<p class="whs10">The mapping algorithm is as follows:</p>\r
-\r
-<p class="whs10">&nbsp;</p>\r
-\r
-<p class="whs2">1. Key-points are set in the order that they \r
- are encountered when walking along a pattern boundary so that elements \r
- are on the left. The first key-point is preserved.</p>\r
-\r
-<p class="whs2">2. Find geometrical vertices corresponding \r
- to key-points by vertices order in a face boundary; here, &quot;Reverse \r
- order of key-points&quot; flag is taken into account.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="image95.gif" width="554px" height="279px" border="0" class="img_whs11"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">3. Boundary nodes of a pattern are mapped \r
- onto edges of a face: a node located between certain key-points on a pattern \r
- boundary is mapped on a geometrical edge limited by corresponding geometrical \r
- vertices. Node position on an edge reflects its distance from two key-points.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="image96.gif" width="572px" height="233px" border="0" class="img_whs12"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">4. Coordinates of a non-boundary node in \r
- a parametric space of a face are defined as following. In a parametric \r
- space of a pattern, a node lays at the intersection of two iso-lines, \r
- each of which intersects a pattern boundary at least at two points. Knowing \r
- mapped positions of boundary nodes, we find where isoline-boundary intersection \r
- points are mapped to, and hence we can find mapped isolines direction \r
- and then, two node positions on two mapped isolines. The eventual mapped \r
- position of a node is found as an average of positions on mapped isolines.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="image97.gif" width="606px" height="249px" border="0" class="img_whs13"></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/pics/exemple.gif b/doc/salome/gui/SMESH/pics/exemple.gif
deleted file mode 100755 (executable)
index 6350d17..0000000
Binary files a/doc/salome/gui/SMESH/pics/exemple.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/pics/new.jpg b/doc/salome/gui/SMESH/pics/new.jpg
deleted file mode 100755 (executable)
index 4fec7ad..0000000
Binary files a/doc/salome/gui/SMESH/pics/new.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/revolution.htm b/doc/salome/gui/SMESH/revolution.htm
deleted file mode 100755 (executable)
index 515b1a4..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Revolution</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=1182>\r
-<meta name=layout-width content=740>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 {margin-left: 40px;}\r
-img_whs2 {border-style: none; border: none; width: 24px; height: 25px;}\r
-img_whs3 {border-style: none; border: none; width: 519px; height: 438px;}\r
-ul.whs4 {list-style: disc;}\r
-img_whs5 {border-style: none; border: none; width: 350px; height: 201px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nModifying meshes\nRevolution");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Revolution</h1>\r
-\r
-<p>Revolution is a type of surface meshing by generation from discretized \r
- lines. It is used to build mesh elements of plus one dimension than the \r
- swept ones. Each swept 1D element produces one or more quadrangles (or \r
- triangles if one node of a rotated element lays on the revolution axis).</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply revolution:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Revolution </B></span>item \r
- or click <img src="image92.gif" width="24px" height="25px" border="0" class="img_whs2"> button in the toolbar. The following dialog box \r
- shall appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="image93.gif" width="519px" height="438px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. In this dialog box you should specify:</p>\r
-\r
-<ul type="disc" class="whs4">\r
-       \r
-       <li class=kadov-p><p class="whs1">the type of elements \r
- which will be extruded (1D or 2D),</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">specify the IDs of \r
- the elements which will be revolved by selecting them in the 3D viewer \r
- or select the whole mesh or submesh,</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">specify the axis (point \r
- and vector) around which the elements will be revolved,</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">angle of rotation,</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">number of steps,</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">tolerance of rotation</p></li>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class=TODO\r
-       style="margin-left: 40px;"><img src="image78.jpg" width="350px" height="201px" border="0" class="img_whs5"></p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/smesh.htm b/doc/salome/gui/SMESH/smesh.htm
deleted file mode 100755 (executable)
index c5c12b4..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-\r
-<html>\r
-<head><script language="javascript">\r
-<!--\r
-var sIcon="whstart.ico";\r
-var sPath=document.location.href;\r
-if (sPath.indexOf("http")!= -1)\r
-       document.write("<link REL=\"SHORTCUT ICON\" href=\""+ sIcon +"\">");\r
-//-->\r
-</script>\r
- <title>SMESH reference manual</title>\r
- <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
- <meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
- <meta name "description" content="WebHelp 2002">\r
-</head>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" >\r
-<!--\r
-if (!window.gbWhVer||!window.gbWhUtil||!window.gbWhMsg)\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-\r
-<script type="text/javascript" language="javascript" src="whstub.js"></script>\r
-<script language="javascript">\r
-<!--\r
-var nWebhelpNavPaneMode = 1;                   //1: DHTML 2:Applet 3:PureHTML 4:NoframeAt all\r
-var strPaneDHTML  = "whskin_pdhtml.htm";               //whd_nvp10.htm  if tab enabled, whnframe.htm if tab disabled.\r
-var strPaneApplet = "whskin_papplet.htm";\r
-var strPaneList   = "whskin_plist.htm";\r
-var bNoApplet  = false;\r
-\r
-var strPane = "";\r
-\r
-var nViewFrameType = nWebhelpNavPaneMode;\r
-\r
-if (!window.gAgent)\r
-{\r
-       // low end browser, we don't even try to determine it.\r
-       document.location = "whnjs.htm";\r
-}\r
-else\r
-{\r
-       if (!gbNav4 && !gbIE4)                          \r
-               document.location = "whnjs.htm";\r
-       if (gbNav4 && !gbNav6 && ((gnVerMinor <= 4.06)))\r
-               document.location = "whnjs.htm";\r
-       if (gbMac && gbIE4 && !gbIE5)           \r
-               document.location = "whnjs.htm";\r
-       //figure out which mode is the best\r
-       if ((nWebhelpNavPaneMode == 1) ||\r
-               (nWebhelpNavPaneMode == 2))\r
-       {\r
-               var gbDHTML = (nWebhelpNavPaneMode == 1);\r
-               if (nWebhelpNavPaneMode == 2)                                                           nViewFrameType = 2;\r
-               if (gbNav4)                                                                                             nViewFrameType = 2;\r
-               if (gbNav4 && (gnVerMinor < 4.1))                                                       nViewFrameType = 3;\r
-               if (gbNav4 && (gnVerMinor == 4.6))                                                      nViewFrameType = 3;\r
-               if (gbIE4 && gbDHTML)                                                                           nViewFrameType = 1;\r
-               if (gbIE4 && gbSunOS && nWebhelpNavPaneMode == 2)                       nViewFrameType = 3;\r
-               if (gbNav6 && gbDHTML)                                                                          nViewFrameType = 1;\r
-               if (gbNav6 && !gbNav61 && nWebhelpNavPaneMode == 2)                     nViewFrameType = 3;\r
-               if (gbMac)                                                                                                      nViewFrameType = 3;\r
-               if ((bNoApplet) && (nViewFrameType == 2))                                       nViewFrameType = 3;\r
-               if (gbOpera)                                                                                            nViewFrameType = 3;\r
-       }\r
-}\r
-\r
-var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));\r
-//The colordepth of the 16 color on Windows is 1. \r
-if ((gbWindows) && (gbNav4) && (window.screen) && (window.screen.colorDepth <= 4))\r
-{\r
-   alert("WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors.");\r
-   nViewFrameType = 3;\r
-}\r
-\r
-//figure out which one is navpane\r
-// ReplaceMark:nViewFrameType = 1\r
-if (nViewFrameType == 1)\r
-{\r
-       if (gbNav4 && !gbNav6)\r
-               strPane = strPaneList;\r
-       else\r
-               strPane = strPaneDHTML;\r
-}\r
-else if (nViewFrameType == 2)\r
-       strPane = strPaneApplet;\r
-else\r
-       strPane = strPaneList;\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="javascript" src="whstart.js"></script>\r
-<script type="text/javascript" language="javascript">\r
-<!--\r
-if (!gbIE4 && !gbNav4)\r
-       document.location = "whnjs.htm";\r
-\r
-function CMRAgent( strID, strURL, strLabel, strFrameAttr )\r
-{\r
-  this.m_strID = strID;\r
-  this.m_strURL = strURL;\r
-  this.m_strLabel = strLabel;\r
-  this.m_strFrameAttr = strFrameAttr;\r
-}\r
-\r
-function CMRServer()\r
-{\r
-  this.m_strVersion;\r
-  this.m_strDefAgent;\r
-  this.m_strAgentList;\r
-  this.m_bTrial;\r
-  this.m_bExpired;\r
-  this.m_bSinglePane;\r
-  this.m_strProduct;\r
-  this.m_strWindow;\r
-  this.m_strProject;\r
-  this.m_strContextID;\r
-  this.m_strCaption; \r
-  this.m_strURLSkinFile;\r
-  this.m_strURLResource;\r
-  this.m_strURLLogoImg;\r
-  this.m_strURLTopic;\r
-  this.m_strURLBase;\r
-  this.m_bShowSync;\r
-  this.m_bShowBrowseSequences;\r
-  this.m_bShowSearchInput;\r
-  this.m_cAgents = new Array;\r
-}\r
-var cMRServer = new CMRServer;\r
-// GetServerInfo\r
-// Registry the agent array handled by webhelp\r
-// ReplaceMark:MRServer.strServerData\r
-//-->\r
-</script>\r
-\r
-<script type="text/javascript" language="javascript">\r
-<!--\r
-var strHTML = "<frameset rows=\"32,*\" hostof=\"parent:toolbar!startpage:yes\" frameborder=\"no\" border=\"0\"><frame src=\"whskin_tbars.htm\" id=\"toolbar\" frameborder=\"no\" border=\"0\" scrolling=\"no\" noresize marginheight=\"0\" marginwidth=\"0\" title=\"Toolbar\"></frame><frame src=\"whskin_frmset01.htm\"  frameborder=\"yes\" border=\"1\" scrolling=\"auto\" marginheight=\"0\" marginwidth=\"0\"></frame></frameset>";\r
-document.write(strHTML);\r
-//-->\r
-</script>\r
-\r
-<frameset cols="100%,*" frameborder=no border=0>\r
-  <frame src="whnjs.htm">\r
-  <frame src="whskin_blank.htm" noresize>\r
-</frameset>\r
-\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/smesh.html b/doc/salome/gui/SMESH/smesh.html
deleted file mode 100755 (executable)
index c5c12b4..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-\r
-<html>\r
-<head><script language="javascript">\r
-<!--\r
-var sIcon="whstart.ico";\r
-var sPath=document.location.href;\r
-if (sPath.indexOf("http")!= -1)\r
-       document.write("<link REL=\"SHORTCUT ICON\" href=\""+ sIcon +"\">");\r
-//-->\r
-</script>\r
- <title>SMESH reference manual</title>\r
- <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
- <meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
- <meta name "description" content="WebHelp 2002">\r
-</head>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" >\r
-<!--\r
-if (!window.gbWhVer||!window.gbWhUtil||!window.gbWhMsg)\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-\r
-<script type="text/javascript" language="javascript" src="whstub.js"></script>\r
-<script language="javascript">\r
-<!--\r
-var nWebhelpNavPaneMode = 1;                   //1: DHTML 2:Applet 3:PureHTML 4:NoframeAt all\r
-var strPaneDHTML  = "whskin_pdhtml.htm";               //whd_nvp10.htm  if tab enabled, whnframe.htm if tab disabled.\r
-var strPaneApplet = "whskin_papplet.htm";\r
-var strPaneList   = "whskin_plist.htm";\r
-var bNoApplet  = false;\r
-\r
-var strPane = "";\r
-\r
-var nViewFrameType = nWebhelpNavPaneMode;\r
-\r
-if (!window.gAgent)\r
-{\r
-       // low end browser, we don't even try to determine it.\r
-       document.location = "whnjs.htm";\r
-}\r
-else\r
-{\r
-       if (!gbNav4 && !gbIE4)                          \r
-               document.location = "whnjs.htm";\r
-       if (gbNav4 && !gbNav6 && ((gnVerMinor <= 4.06)))\r
-               document.location = "whnjs.htm";\r
-       if (gbMac && gbIE4 && !gbIE5)           \r
-               document.location = "whnjs.htm";\r
-       //figure out which mode is the best\r
-       if ((nWebhelpNavPaneMode == 1) ||\r
-               (nWebhelpNavPaneMode == 2))\r
-       {\r
-               var gbDHTML = (nWebhelpNavPaneMode == 1);\r
-               if (nWebhelpNavPaneMode == 2)                                                           nViewFrameType = 2;\r
-               if (gbNav4)                                                                                             nViewFrameType = 2;\r
-               if (gbNav4 && (gnVerMinor < 4.1))                                                       nViewFrameType = 3;\r
-               if (gbNav4 && (gnVerMinor == 4.6))                                                      nViewFrameType = 3;\r
-               if (gbIE4 && gbDHTML)                                                                           nViewFrameType = 1;\r
-               if (gbIE4 && gbSunOS && nWebhelpNavPaneMode == 2)                       nViewFrameType = 3;\r
-               if (gbNav6 && gbDHTML)                                                                          nViewFrameType = 1;\r
-               if (gbNav6 && !gbNav61 && nWebhelpNavPaneMode == 2)                     nViewFrameType = 3;\r
-               if (gbMac)                                                                                                      nViewFrameType = 3;\r
-               if ((bNoApplet) && (nViewFrameType == 2))                                       nViewFrameType = 3;\r
-               if (gbOpera)                                                                                            nViewFrameType = 3;\r
-       }\r
-}\r
-\r
-var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));\r
-//The colordepth of the 16 color on Windows is 1. \r
-if ((gbWindows) && (gbNav4) && (window.screen) && (window.screen.colorDepth <= 4))\r
-{\r
-   alert("WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors.");\r
-   nViewFrameType = 3;\r
-}\r
-\r
-//figure out which one is navpane\r
-// ReplaceMark:nViewFrameType = 1\r
-if (nViewFrameType == 1)\r
-{\r
-       if (gbNav4 && !gbNav6)\r
-               strPane = strPaneList;\r
-       else\r
-               strPane = strPaneDHTML;\r
-}\r
-else if (nViewFrameType == 2)\r
-       strPane = strPaneApplet;\r
-else\r
-       strPane = strPaneList;\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="javascript" src="whstart.js"></script>\r
-<script type="text/javascript" language="javascript">\r
-<!--\r
-if (!gbIE4 && !gbNav4)\r
-       document.location = "whnjs.htm";\r
-\r
-function CMRAgent( strID, strURL, strLabel, strFrameAttr )\r
-{\r
-  this.m_strID = strID;\r
-  this.m_strURL = strURL;\r
-  this.m_strLabel = strLabel;\r
-  this.m_strFrameAttr = strFrameAttr;\r
-}\r
-\r
-function CMRServer()\r
-{\r
-  this.m_strVersion;\r
-  this.m_strDefAgent;\r
-  this.m_strAgentList;\r
-  this.m_bTrial;\r
-  this.m_bExpired;\r
-  this.m_bSinglePane;\r
-  this.m_strProduct;\r
-  this.m_strWindow;\r
-  this.m_strProject;\r
-  this.m_strContextID;\r
-  this.m_strCaption; \r
-  this.m_strURLSkinFile;\r
-  this.m_strURLResource;\r
-  this.m_strURLLogoImg;\r
-  this.m_strURLTopic;\r
-  this.m_strURLBase;\r
-  this.m_bShowSync;\r
-  this.m_bShowBrowseSequences;\r
-  this.m_bShowSearchInput;\r
-  this.m_cAgents = new Array;\r
-}\r
-var cMRServer = new CMRServer;\r
-// GetServerInfo\r
-// Registry the agent array handled by webhelp\r
-// ReplaceMark:MRServer.strServerData\r
-//-->\r
-</script>\r
-\r
-<script type="text/javascript" language="javascript">\r
-<!--\r
-var strHTML = "<frameset rows=\"32,*\" hostof=\"parent:toolbar!startpage:yes\" frameborder=\"no\" border=\"0\"><frame src=\"whskin_tbars.htm\" id=\"toolbar\" frameborder=\"no\" border=\"0\" scrolling=\"no\" noresize marginheight=\"0\" marginwidth=\"0\" title=\"Toolbar\"></frame><frame src=\"whskin_frmset01.htm\"  frameborder=\"yes\" border=\"1\" scrolling=\"auto\" marginheight=\"0\" marginwidth=\"0\"></frame></frameset>";\r
-document.write(strHTML);\r
-//-->\r
-</script>\r
-\r
-<frameset cols="100%,*" frameborder=no border=0>\r
-  <frame src="whnjs.htm">\r
-  <frame src="whskin_blank.htm" noresize>\r
-</frameset>\r
-\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/smesh_csh.htm b/doc/salome/gui/SMESH/smesh_csh.htm
deleted file mode 100755 (executable)
index 187fb11..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-<html>\r
-<head>\r
-<title>SMESH reference manual</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<script language="javascript" src="whutils.js"></script>\r
-<script language="javascript">\r
-<!--\r
-var gCSHFileName   = "whc_data.htm";\r
-var gCSHSuffixName1 = "_csh.html";\r
-var gCSHSuffixName2 = "_csh.htm";\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-gCSHFileName="cshdat_webhelp.htm";\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-var gasProj = new Array();\r
-gasProj[0] = _getPath(document.location.href);\r
-var gCurrent = 0;\r
-\r
-function addProject(strProj)\r
-{\r
-       var len  = gasProj.length;\r
-       var strPPath = _getFullPath(_getPath(document.location.href), strProj);\r
-       var bFound = false;\r
-       for (var i = 0; i < len; i ++)\r
-       {\r
-               if (isSamePath(gasProj[i], strPPath))\r
-               {\r
-                       bFound = true;\r
-                       break;\r
-               }\r
-       }\r
-       if (!bFound)\r
-               gasProj[len] = strPPath;        \r
-}\r
-\r
-function isSamePath(strPath1, strPath2)\r
-{\r
-       return strPath1.toLowerCase() == strPath2.toLowerCase();\r
-}\r
-\r
-function goNext()\r
-{\r
-       gCurrent ++;\r
-       var len = gasProj.length;\r
-       if (gCurrent >= len)\r
-               return getHomePage()\r
-       else\r
-               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;\r
-       return "";\r
-}\r
-\r
-function getRelHomePage(strLocation)\r
-{\r
-       var strCurPPath = _getPath(strLocation);\r
-       var strOriPPath = _getPath(getHomePage());\r
-       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);\r
-       var strURL = getHomePage() + "#" + strRelPath;\r
-       return strURL;\r
-}\r
-\r
-function getHomePage()\r
-{\r
-       var strHomePage;\r
-       var strTmp = location.toString();\r
-       var nPos = strTmp.indexOf("#");\r
-       if (nPos != -1)\r
-       {\r
-          strHomePage = strTmp.substring(0, nPos);\r
-       }\r
-       else\r
-       {\r
-          strHomePage = strTmp;\r
-       }\r
-       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);\r
-       var nPos = strHomePage.indexOf(gCSHSuffixName2);\r
-       if (nPos != -1)\r
-       {\r
-          strHomePage = strHomePage.substring(0,nPos);\r
-          if (nPos1 != -1)\r
-            strHomePage += ".html";\r
-          else\r
-            strHomePage += ".htm";\r
-       }\r
-       return strHomePage;\r
-}\r
-//-->\r
-</script>\r
-</head>\r
-<frameset rows="1,*">\r
-<frame name="dumb" src="about:blank"></frame>\r
-<frame name="csh" src="cshdat_webhelp.htm"></frame>            \r
-</frameset>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/smesh_csh.html b/doc/salome/gui/SMESH/smesh_csh.html
deleted file mode 100755 (executable)
index 187fb11..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-<html>\r
-<head>\r
-<title>SMESH reference manual</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<script language="javascript" src="whutils.js"></script>\r
-<script language="javascript">\r
-<!--\r
-var gCSHFileName   = "whc_data.htm";\r
-var gCSHSuffixName1 = "_csh.html";\r
-var gCSHSuffixName2 = "_csh.htm";\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-gCSHFileName="cshdat_webhelp.htm";\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-var gasProj = new Array();\r
-gasProj[0] = _getPath(document.location.href);\r
-var gCurrent = 0;\r
-\r
-function addProject(strProj)\r
-{\r
-       var len  = gasProj.length;\r
-       var strPPath = _getFullPath(_getPath(document.location.href), strProj);\r
-       var bFound = false;\r
-       for (var i = 0; i < len; i ++)\r
-       {\r
-               if (isSamePath(gasProj[i], strPPath))\r
-               {\r
-                       bFound = true;\r
-                       break;\r
-               }\r
-       }\r
-       if (!bFound)\r
-               gasProj[len] = strPPath;        \r
-}\r
-\r
-function isSamePath(strPath1, strPath2)\r
-{\r
-       return strPath1.toLowerCase() == strPath2.toLowerCase();\r
-}\r
-\r
-function goNext()\r
-{\r
-       gCurrent ++;\r
-       var len = gasProj.length;\r
-       if (gCurrent >= len)\r
-               return getHomePage()\r
-       else\r
-               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;\r
-       return "";\r
-}\r
-\r
-function getRelHomePage(strLocation)\r
-{\r
-       var strCurPPath = _getPath(strLocation);\r
-       var strOriPPath = _getPath(getHomePage());\r
-       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);\r
-       var strURL = getHomePage() + "#" + strRelPath;\r
-       return strURL;\r
-}\r
-\r
-function getHomePage()\r
-{\r
-       var strHomePage;\r
-       var strTmp = location.toString();\r
-       var nPos = strTmp.indexOf("#");\r
-       if (nPos != -1)\r
-       {\r
-          strHomePage = strTmp.substring(0, nPos);\r
-       }\r
-       else\r
-       {\r
-          strHomePage = strTmp;\r
-       }\r
-       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);\r
-       var nPos = strHomePage.indexOf(gCSHSuffixName2);\r
-       if (nPos != -1)\r
-       {\r
-          strHomePage = strHomePage.substring(0,nPos);\r
-          if (nPos1 != -1)\r
-            strHomePage += ".html";\r
-          else\r
-            strHomePage += ".htm";\r
-       }\r
-       return strHomePage;\r
-}\r
-//-->\r
-</script>\r
-</head>\r
-<frameset rows="1,*">\r
-<frame name="dumb" src="about:blank"></frame>\r
-<frame name="csh" src="cshdat_webhelp.htm"></frame>            \r
-</frameset>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/smesh_rhc.htm b/doc/salome/gui/SMESH/smesh_rhc.htm
deleted file mode 100755 (executable)
index 9acb37e..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-<html>\r
-<head>\r
-<title>SMESH reference manual</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<script language="javascript" src="whutils.js"></script>\r
-<script language="javascript">\r
-<!--\r
-var gCSHFileName   = "whc_data.htm";\r
-var gCSHSuffixName1 = "_rhc.html";\r
-var gCSHSuffixName2 = "_rhc.htm";\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-gCSHFileName="cshdat_robohelp.htm";\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-var gasProj = new Array();\r
-gasProj[0] = _getPath(document.location.href);\r
-var gCurrent = 0;\r
-\r
-function addProject(strProj)\r
-{\r
-       var len  = gasProj.length;\r
-       var strPPath = _getFullPath(_getPath(document.location.href), strProj);\r
-       var bFound = false;\r
-       for (var i = 0; i < len; i ++)\r
-       {\r
-               if (isSamePath(gasProj[i], strPPath))\r
-               {\r
-                       bFound = true;\r
-                       break;\r
-               }\r
-       }\r
-       if (!bFound)\r
-               gasProj[len] = strPPath;        \r
-}\r
-\r
-function isSamePath(strPath1, strPath2)\r
-{\r
-       return strPath1.toLowerCase() == strPath2.toLowerCase();\r
-}\r
-\r
-function goNext()\r
-{\r
-       gCurrent ++;\r
-       var len = gasProj.length;\r
-       if (gCurrent >= len)\r
-               return getHomePage()\r
-       else\r
-               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;\r
-       return "";\r
-}\r
-\r
-function getRelHomePage(strLocation)\r
-{\r
-       var strCurPPath = _getPath(strLocation);\r
-       var strOriPPath = _getPath(getHomePage());\r
-       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);\r
-       var strURL = getHomePage() + "#" + strRelPath;\r
-       return strURL;\r
-}\r
-\r
-function getHomePage()\r
-{\r
-       var strHomePage;\r
-       var strTmp = location.toString();\r
-       var nPos = strTmp.indexOf("#");\r
-       if (nPos != -1)\r
-       {\r
-          strHomePage = strTmp.substring(0, nPos);\r
-       }\r
-       else\r
-       {\r
-          strHomePage = strTmp;\r
-       }\r
-       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);\r
-       var nPos = strHomePage.indexOf(gCSHSuffixName2);\r
-       if (nPos != -1)\r
-       {\r
-          strHomePage = strHomePage.substring(0,nPos);\r
-          if (nPos1 != -1)\r
-            strHomePage += ".html";\r
-          else\r
-            strHomePage += ".htm";\r
-       }\r
-       return strHomePage;\r
-}\r
-//-->\r
-</script>\r
-</head>\r
-<frameset rows="1,*">\r
-<frame name="dumb" src="about:blank"></frame>\r
-<frame name="csh" src="cshdat_robohelp.htm"></frame>           \r
-</frameset>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/smesh_rhc.html b/doc/salome/gui/SMESH/smesh_rhc.html
deleted file mode 100755 (executable)
index 9acb37e..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-<html>\r
-<head>\r
-<title>SMESH reference manual</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<script language="javascript" src="whutils.js"></script>\r
-<script language="javascript">\r
-<!--\r
-var gCSHFileName   = "whc_data.htm";\r
-var gCSHSuffixName1 = "_rhc.html";\r
-var gCSHSuffixName2 = "_rhc.htm";\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-gCSHFileName="cshdat_robohelp.htm";\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-var gasProj = new Array();\r
-gasProj[0] = _getPath(document.location.href);\r
-var gCurrent = 0;\r
-\r
-function addProject(strProj)\r
-{\r
-       var len  = gasProj.length;\r
-       var strPPath = _getFullPath(_getPath(document.location.href), strProj);\r
-       var bFound = false;\r
-       for (var i = 0; i < len; i ++)\r
-       {\r
-               if (isSamePath(gasProj[i], strPPath))\r
-               {\r
-                       bFound = true;\r
-                       break;\r
-               }\r
-       }\r
-       if (!bFound)\r
-               gasProj[len] = strPPath;        \r
-}\r
-\r
-function isSamePath(strPath1, strPath2)\r
-{\r
-       return strPath1.toLowerCase() == strPath2.toLowerCase();\r
-}\r
-\r
-function goNext()\r
-{\r
-       gCurrent ++;\r
-       var len = gasProj.length;\r
-       if (gCurrent >= len)\r
-               return getHomePage()\r
-       else\r
-               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;\r
-       return "";\r
-}\r
-\r
-function getRelHomePage(strLocation)\r
-{\r
-       var strCurPPath = _getPath(strLocation);\r
-       var strOriPPath = _getPath(getHomePage());\r
-       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);\r
-       var strURL = getHomePage() + "#" + strRelPath;\r
-       return strURL;\r
-}\r
-\r
-function getHomePage()\r
-{\r
-       var strHomePage;\r
-       var strTmp = location.toString();\r
-       var nPos = strTmp.indexOf("#");\r
-       if (nPos != -1)\r
-       {\r
-          strHomePage = strTmp.substring(0, nPos);\r
-       }\r
-       else\r
-       {\r
-          strHomePage = strTmp;\r
-       }\r
-       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);\r
-       var nPos = strHomePage.indexOf(gCSHSuffixName2);\r
-       if (nPos != -1)\r
-       {\r
-          strHomePage = strHomePage.substring(0,nPos);\r
-          if (nPos1 != -1)\r
-            strHomePage += ".html";\r
-          else\r
-            strHomePage += ".htm";\r
-       }\r
-       return strHomePage;\r
-}\r
-//-->\r
-</script>\r
-</head>\r
-<frameset rows="1,*">\r
-<frame name="dumb" src="about:blank"></frame>\r
-<frame name="csh" src="cshdat_robohelp.htm"></frame>           \r
-</frameset>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/tetrahedron_(ghs3d)_meshing_algorithm.htm b/doc/salome/gui/SMESH/tetrahedron_(ghs3d)_meshing_algorithm.htm
deleted file mode 100755 (executable)
index e6c912b..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<!--(==============================================================)-->\r
-<!--(Document created with RoboEditor. )============================-->\r
-<!--(==============================================================)-->\r
-\r
-<head>\r
-\r
-<title>Tetrahedron (GHS3D) meshing algorithm</title>\r
-\r
-<!--(Meta)==========================================================-->\r
-\r
-<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
-<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
-<meta name=generator-major-version content=0.1>\r
-<meta name=generator-minor-version content=1>\r
-<meta name=filetype content=kadov>\r
-<meta name=filetype-version content=1>\r
-<meta name=page-count content=1>\r
-<meta name=layout-height content=397>\r
-<meta name=layout-width content=473>\r
-\r
-\r
-<!--(Links)=========================================================-->\r
-\r
- <link rel='stylesheet' href='default_ns.css'>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 23px; height: 23px;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
--->\r
-</style>\r
-<script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
-</head>\r
-\r
-<!--(Body)==========================================================-->\r
-\r
-\r
-<body>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("SMESH module\nCreating meshes\nDefining meshing algorithms\n3D meshing algorithms\nTetrahedron (GHS3D) meshing algorithm");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("smesh.htm");\r
-\r
-               autoSync(0);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Tetrahedron (GHS3D) meshing algorithm</h1>\r
-\r
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This algorithm is used for meshing of 3D entities of \r
- geometrical objects - <span style="font-weight: bold;"><B>volume objects</B></span>. \r
- While <a href="files/tetrahedron_(netgen)_meshing_algorithm.htm">NETGEN</a> \r
- generates 3D elements having a volume less than the one specified by hypothesis, \r
- GHS3D does not need any hypotheses, all it needs is a surface mesh built \r
- in advance</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Tetrahedron GHS3D meshing algorithm:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
- </B></span>menu select <span style="font-weight: bold;"><B>Create Algorithms</B></span> \r
- &gt; &nbsp;<img src="image12.gif" width="23px" height="23px" border="0" class="img_whs3"><span style="font-weight: bold;"><B>Tetrahedron (GHS3D) </B></span>and \r
- click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/texture_horiz_ltbluebubbles.jpg b/doc/salome/gui/SMESH/texture_horiz_ltbluebubbles.jpg
deleted file mode 100755 (executable)
index a10d494..0000000
Binary files a/doc/salome/gui/SMESH/texture_horiz_ltbluebubbles.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/webhelp.cab b/doc/salome/gui/SMESH/webhelp.cab
deleted file mode 100755 (executable)
index 1458608..0000000
Binary files a/doc/salome/gui/SMESH/webhelp.cab and /dev/null differ
diff --git a/doc/salome/gui/SMESH/webhelp.jar b/doc/salome/gui/SMESH/webhelp.jar
deleted file mode 100755 (executable)
index d985cac..0000000
Binary files a/doc/salome/gui/SMESH/webhelp.jar and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whdata/whftdata.js b/doc/salome/gui/SMESH/whdata/whftdata.js
deleted file mode 100755 (executable)
index 9e3b6ab..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-var gTEA = new Array();\r
-function aTE(sTopicTitle, sTopicURL)\r
-{\r
-       var len = gTEA.length;\r
-       gTEA[len] = new topicEntry(sTopicTitle, sTopicURL);\r
-}\r
-\r
-function topicEntry(sTopicTitle, sTopicURL)\r
-{\r
-       this.sTopicTitle = sTopicTitle;\r
-       this.sTopicURL = sTopicURL;\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this) {\r
-               if (parent.putFtsTData) \r
-               {\r
-                       parent.putFtsTData(gTEA);\r
-               }\r
-       }\r
-}\r
-\r
-window.onload = window_OnLoad;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whftdata0.htm b/doc/salome/gui/SMESH/whdata/whftdata0.htm
deleted file mode 100755 (executable)
index 22a15d7..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<html>\r
-<head>\r
-<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
-</head>\r
-<body>\r
-<script language="javascript" src="whftdata.js"></script>\r
-<script language="javascript">\r
-<!--\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-aTE("Extrusion","extrusion.htm");\r
-aTE("1D meshing algorithm","files/1d_meshing_algorithm.htm");\r
-aTE("2D (Quadrangle) meshing algorithm","files/2d_(quadrangle)_meshing_algorithm.htm");\r
-aTE("2D meshing algorithm","files/2d_meshing_algorithm.htm");\r
-aTE("3D meshing algorithm","files/3d_meshing_algorithm.htm");\r
-aTE("About hypotheses","files/about_hypotheses.htm");\r
-aTE("About meshes","files/about_meshes.htm");\r
-aTE("About meshing algorithms","files/about_meshing_algorithms.htm");\r
-aTE("About modification of meshes","files/about_modification_of_meshes.htm");\r
-aTE("About quality controls","files/about_quality_controls.htm");\r
-aTE("Adding nodes and elements","files/adding_nodes_and_elements.htm");\r
-aTE("Area of elements","files/area_of_elements.htm");\r
-aTE("Arithmetic 1D","files/arithmetic_1d.htm");\r
-aTE("Aspect Ratio","files/aspect_ratio.htm");\r
-aTE("Changing orientation of elements","files/changing_orientation_of_elements.htm");\r
-aTE("Computing meshes","files/computing_meshes.htm");\r
-aTE("Connectivity","files/connectivity.htm");\r
-aTE("Constructing groups of specific elements","files/constructing_groups_of_specific_elements.htm");\r
-aTE("Constructing meshes","files/constructing_meshes.htm");\r
-aTE("Constructing submeshes","files/constructing_submeshes.htm");\r
-aTE("Creating groups","files/creating_groups.htm");\r
-aTE("Cutting quadrangles","files/cutting_quadrangles.htm");\r
-aTE("Local Length hypothesis","files/deflection_1d.htm");\r
-aTE("Diagonal iversion of elements","files/diagonal_iversion_of_elements.htm");\r
-aTE("Displacing nodes","files/displacing_nodes.htm");\r
-aTE("Displaying elements numbers","files/displaying_elements_numbers.htm");\r
-aTE("Displaying nodes numbers","files/displaying_nodes_numbers.htm");\r
-aTE("Editing groups","files/editing_groups.htm");\r
-aTE("Editing hypotheses","files/editing_hypotheses.htm");\r
-aTE("Importing and exporting meshes","files/importing_and_exporting_meshes.htm");\r
-aTE("Introduction to SMESH","files/introduction_to_smesh.htm");\r
-aTE("Length from edges","files/length_from_edges.htm");\r
-aTE("Length of edges","files/length_of_edges.htm");\r
-aTE("Local Length hypothesis","files/local_length_hypothesis.htm");\r
-aTE("Length from edges","files/max._element_area_hypothesis.htm");\r
-aTE("Non conform mesh allowed hypothesis","files/max._element_volume_hypothsis.htm");\r
-aTE("Merging nodes","files/merging_nodes.htm");\r
-aTE("Minimum angle","files/minimum_angle.htm");\r
-aTE("Non conform mesh allowed hypothesis","files/non_conform_mesh_allowed_hypothesis.htm");\r
-aTE("Number of segments hypothesis","files/number_of_segments_hypothesis.htm");\r
-aTE("Propagation of 1D Hypothesis on opposite edges","files/propagation_of_1d_hypothesis_on_opposite_edges.htm");\r
-aTE("Reassigning hypotheses and algorithms","files/reassigning_hypotheses_and_algorithms.htm");\r
-aTE("Removing nodes and elements","files/removing_nodes_and_elements.htm");\r
-aTE("Renumbering nodes and elements","files/renumbering_nodes_and_elements.htm");\r
-aTE("Rotation","files/rotation.htm");\r
-aTE("Running SMESH module","files/running_smesh_module.htm");\r
-aTE("Scalar Bar properties","files/scalar_bar_properties.htm");\r
-aTE("Sewing meshes","files/sewing_meshes.htm");\r
-aTE("Skew","files/skew.htm");\r
-aTE("Smoothing","files/smoothing.htm");\r
-aTE("Start and End Length hypothesis","files/start_and_end_length_hypothesis.htm");\r
-aTE("Symmetry","files/symmetry.htm");\r
-aTE("Taper","files/taper.htm");\r
-aTE("Tetrahedron (GHS3D) meshing algorithm","files/tetrahedron_(ghs3d)_meshing_algorithm.htm");\r
-aTE("Tetrahedron (Netgen) meshing algorithm","files/tetrahedron_(netgen)_meshing_algorithm.htm");\r
-aTE("Translation","files/translation.htm");\r
-aTE("Uniting a set of triangles","files/uniting_a_set_of_triangles.htm");\r
-aTE("Uniting two triangles","files/uniting_two_triangles.htm");\r
-aTE("Using operations on groups","files/using_operations_on_groups.htm");\r
-aTE("Using SMESH module","files/using_smesh_module.htm");\r
-aTE("View update","files/view_update.htm");\r
-aTE("Viewing mesh info","files/viewing_mesh_info.htm");\r
-aTE("Visualization modes","files/visualization_modes.htm");\r
-aTE("Visualization properties","files/visualization_properties.htm");\r
-aTE("Warp","files/warp.htm");\r
-aTE("Pattern mapping","pattern_mapping.htm");\r
-aTE("Revolution","revolution.htm");\r
-\r
-//-->\r
-</script>\r
-</script>\r
diff --git a/doc/salome/gui/SMESH/whdata/whftdata0.xml b/doc/salome/gui/SMESH/whdata/whftdata0.xml
deleted file mode 100755 (executable)
index e76c526..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>\r
-<ftstdata>\r
-<topic name="Extrusion" url="extrusion.htm" />\r
-<topic name="1D meshing algorithm" url="files/1d_meshing_algorithm.htm" />\r
-<topic name="2D (Quadrangle) meshing algorithm" url="files/2d_(quadrangle)_meshing_algorithm.htm" />\r
-<topic name="2D meshing algorithm" url="files/2d_meshing_algorithm.htm" />\r
-<topic name="3D meshing algorithm" url="files/3d_meshing_algorithm.htm" />\r
-<topic name="About hypotheses" url="files/about_hypotheses.htm" />\r
-<topic name="About meshes" url="files/about_meshes.htm" />\r
-<topic name="About meshing algorithms" url="files/about_meshing_algorithms.htm" />\r
-<topic name="About modification of meshes" url="files/about_modification_of_meshes.htm" />\r
-<topic name="About quality controls" url="files/about_quality_controls.htm" />\r
-<topic name="Adding nodes and elements" url="files/adding_nodes_and_elements.htm" />\r
-<topic name="Area of elements" url="files/area_of_elements.htm" />\r
-<topic name="Arithmetic 1D" url="files/arithmetic_1d.htm" />\r
-<topic name="Aspect Ratio" url="files/aspect_ratio.htm" />\r
-<topic name="Changing orientation of elements" url="files/changing_orientation_of_elements.htm" />\r
-<topic name="Computing meshes" url="files/computing_meshes.htm" />\r
-<topic name="Connectivity" url="files/connectivity.htm" />\r
-<topic name="Constructing groups of specific elements" url="files/constructing_groups_of_specific_elements.htm" />\r
-<topic name="Constructing meshes" url="files/constructing_meshes.htm" />\r
-<topic name="Constructing submeshes" url="files/constructing_submeshes.htm" />\r
-<topic name="Creating groups" url="files/creating_groups.htm" />\r
-<topic name="Cutting quadrangles" url="files/cutting_quadrangles.htm" />\r
-<topic name="Local Length hypothesis" url="files/deflection_1d.htm" />\r
-<topic name="Diagonal iversion of elements" url="files/diagonal_iversion_of_elements.htm" />\r
-<topic name="Displacing nodes" url="files/displacing_nodes.htm" />\r
-<topic name="Displaying elements numbers" url="files/displaying_elements_numbers.htm" />\r
-<topic name="Displaying nodes numbers" url="files/displaying_nodes_numbers.htm" />\r
-<topic name="Editing groups" url="files/editing_groups.htm" />\r
-<topic name="Editing hypotheses" url="files/editing_hypotheses.htm" />\r
-<topic name="Importing and exporting meshes" url="files/importing_and_exporting_meshes.htm" />\r
-<topic name="Introduction to SMESH" url="files/introduction_to_smesh.htm" />\r
-<topic name="Length from edges" url="files/length_from_edges.htm" />\r
-<topic name="Length of edges" url="files/length_of_edges.htm" />\r
-<topic name="Local Length hypothesis" url="files/local_length_hypothesis.htm" />\r
-<topic name="Length from edges" url="files/max._element_area_hypothesis.htm" />\r
-<topic name="Non conform mesh allowed hypothesis" url="files/max._element_volume_hypothsis.htm" />\r
-<topic name="Merging nodes" url="files/merging_nodes.htm" />\r
-<topic name="Minimum angle" url="files/minimum_angle.htm" />\r
-<topic name="Non conform mesh allowed hypothesis" url="files/non_conform_mesh_allowed_hypothesis.htm" />\r
-<topic name="Number of segments hypothesis" url="files/number_of_segments_hypothesis.htm" />\r
-<topic name="Propagation of 1D Hypothesis on opposite edges" url="files/propagation_of_1d_hypothesis_on_opposite_edges.htm" />\r
-<topic name="Reassigning hypotheses and algorithms" url="files/reassigning_hypotheses_and_algorithms.htm" />\r
-<topic name="Removing nodes and elements" url="files/removing_nodes_and_elements.htm" />\r
-<topic name="Renumbering nodes and elements" url="files/renumbering_nodes_and_elements.htm" />\r
-<topic name="Rotation" url="files/rotation.htm" />\r
-<topic name="Running SMESH module" url="files/running_smesh_module.htm" />\r
-<topic name="Scalar Bar properties" url="files/scalar_bar_properties.htm" />\r
-<topic name="Sewing meshes" url="files/sewing_meshes.htm" />\r
-<topic name="Skew" url="files/skew.htm" />\r
-<topic name="Smoothing" url="files/smoothing.htm" />\r
-<topic name="Start and End Length hypothesis" url="files/start_and_end_length_hypothesis.htm" />\r
-<topic name="Symmetry" url="files/symmetry.htm" />\r
-<topic name="Taper" url="files/taper.htm" />\r
-<topic name="Tetrahedron (GHS3D) meshing algorithm" url="files/tetrahedron_(ghs3d)_meshing_algorithm.htm" />\r
-<topic name="Tetrahedron (Netgen) meshing algorithm" url="files/tetrahedron_(netgen)_meshing_algorithm.htm" />\r
-<topic name="Translation" url="files/translation.htm" />\r
-<topic name="Uniting a set of triangles" url="files/uniting_a_set_of_triangles.htm" />\r
-<topic name="Uniting two triangles" url="files/uniting_two_triangles.htm" />\r
-<topic name="Using operations on groups" url="files/using_operations_on_groups.htm" />\r
-<topic name="Using SMESH module" url="files/using_smesh_module.htm" />\r
-<topic name="View update" url="files/view_update.htm" />\r
-<topic name="Viewing mesh info" url="files/viewing_mesh_info.htm" />\r
-<topic name="Visualization modes" url="files/visualization_modes.htm" />\r
-<topic name="Visualization properties" url="files/visualization_properties.htm" />\r
-<topic name="Warp" url="files/warp.htm" />\r
-<topic name="Pattern mapping" url="pattern_mapping.htm" />\r
-<topic name="Revolution" url="revolution.htm" />\r
-\r
-</ftstdata>  \r
diff --git a/doc/salome/gui/SMESH/whdata/whfts.htm b/doc/salome/gui/SMESH/whdata/whfts.htm
deleted file mode 100755 (executable)
index c66f6ba..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<html>\r
-<head>\r
-<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
-</head>\r
-<body>\r
-<script language="javascript" src="whfts.js"></script>\r
-<script language="javascript">\r
-<!--\r
-iWM("0","zero","whfwdata0.htm");\r
-\r
-iTM(0,66,"whftdata0.htm");\r
-\r
--->\r
-</script>\r
-</body>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whfts.js b/doc/salome/gui/SMESH/whdata/whfts.js
deleted file mode 100755 (executable)
index 2041512..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-var gaFileMapping = new Array();\r
-var gaFileTopicMapping = new Array();\r
-\r
-function fileMapping(sStartKey, sEndKey, sFileName)\r
-{\r
-       this.sStartKey = sStartKey;\r
-       this.sEndKey = sEndKey;\r
-       this.sFileName = sFileName;\r
-       this.aFtsKeys = null;\r
-}\r
-\r
-function fileTopicMapping(nIdBegin, nIdEnd, sFileName)\r
-{\r
-       this.nBegin = nIdBegin;\r
-       this.nEnd = nIdEnd;\r
-       this.sFileName = sFileName;\r
-       this.aTopics = null;\r
-}\r
-\r
-\r
-function iWM(sStartKey, sEndKey, sFileName)\r
-{\r
-       gaFileMapping[gaFileMapping.length] = new fileMapping(sStartKey, sEndKey, sFileName);   \r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this && parent.ftsReady)\r
-       {\r
-               parent.ftsReady(gaFileMapping, gaFileTopicMapping);\r
-       }               \r
-}\r
-\r
-function iTM(nIdBegin, nIdEnd, sFileName)\r
-{\r
-       gaFileTopicMapping[gaFileTopicMapping.length] = new fileTopicMapping(nIdBegin, nIdEnd, sFileName);      \r
-}\r
-\r
-window.onload = window_OnLoad;\r
diff --git a/doc/salome/gui/SMESH/whdata/whfts.xml b/doc/salome/gui/SMESH/whdata/whfts.xml
deleted file mode 100755 (executable)
index f8bc493..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>\r
-<fts>\r
-<chunkinfo url="whfwdata0.xml" first="0" last="zero"/>\r
-\r
-<tchunkinfo first="0" last="66" url="whftdata0.xml" />\r
-\r
-</fts>\r
diff --git a/doc/salome/gui/SMESH/whdata/whfwdata.js b/doc/salome/gui/SMESH/whdata/whfwdata.js
deleted file mode 100755 (executable)
index 463bfb0..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-var gWEA = new Array();\r
-function aWE()\r
-{\r
-       var len = gWEA.length;\r
-       gWEA[len] = new ftsEntry(aWE.arguments);\r
-}\r
-\r
-function ftsEntry(fn_arguments) \r
-{\r
-       if (fn_arguments.length && fn_arguments.length >= 1) \r
-       {\r
-               this.sItemName = fn_arguments[0];\r
-               this.aTopics = null;\r
-               var nLen = fn_arguments.length;\r
-               if (nLen > 1) \r
-               {\r
-                       this.aTopics = new Array();\r
-                       for (var i = 0; i < nLen - 1; i ++ )\r
-                       {\r
-                               this.aTopics[i] = fn_arguments[i + 1];\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this) {\r
-               if (parent.putFtsWData) \r
-               {\r
-                       parent.putFtsWData(gWEA);\r
-               }\r
-       }\r
-}\r
-\r
-window.onload = window_OnLoad;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whfwdata0.htm b/doc/salome/gui/SMESH/whdata/whfwdata0.htm
deleted file mode 100755 (executable)
index 36480d5..0000000
+++ /dev/null
@@ -1,610 +0,0 @@
-<html>\r
-<head>\r
-<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
-</head>\r
-<body>\r
-<script language="javascript" src="whfwdata.js"></script>\r
-<script language="javascript">\r
-<!--\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-aWE("0",6,47);\r
-aWE("0d",6);\r
-aWE("1",10,11,12,13,14,15,20,21,23,24,25,26,27,28,0,29,32,36,37,65,41,42,43,66,47,48,49,52,56,57,58,61,62,64);\r
-aWE("1d",1,5,6,7,12,0,30,34,31,40,66,50);\r
-aWE("2",10,11,13,14,15,20,21,23,24,25,26,27,28,0,29,32,37,65,41,42,43,66,47,48,49,52,56,57,58,61,62,64);\r
-aWE("2d",2,3,6,7,11,13,0,30,34,31,37,65,66,47,64);\r
-aWE("3",6,11,13,14,21,23,24,0,29,65,41,42,43,66,45,47,48,49,56,57,64);\r
-aWE("3d",4,6,7,10,14,20,21,23,24,25,26,0,30,41,42,43,66,47,49,53,54,56,57);\r
-aWE("3rd",6);\r
-aWE("4",6,11,13,21,24,65,47,48,52,64);\r
-aWE("5th",6);\r
-aWE("abl",41);\r
-aWE("abov",49);\r
-aWE("absent",58);\r
-aWE("abut",33,22,39);\r
-aWE("accord",9,11,13,32,37,65,48,49,52,64);\r
-aWE("account",5,65);\r
-aWE("ad",10,14,20,21,56,58);\r
-aWE("add",10,14,20,21,27,56);\r
-aWE("addition",21,30);\r
-aWE("additional",6,65,45,49);\r
-aWE("adjacent",24,37,35,38,42,47,56);\r
-aWE("adjust",49);\r
-aWE("advanc",53);\r
-aWE("again",41);\r
-aWE("algorithm",1,2,3,4,5,6,7,9,11,12,18,19,28,30,65,41,47,53,54);\r
-aWE("allow",5,12,14,20,21,29,30,36,35,38,65,40,44,47,49,51,55,56,58);\r
-aWE("along",0,65,49);\r
-aWE("already",28);\r
-aWE("alway",49);\r
-aWE("angl",9,30,37,66,44,48,64);\r
-aWE("anoth",40);\r
-aWE("any",6,24,65,49,53);\r
-aWE("ap",1,2,3,4,7,10,11,13,14,20,21,23,24,27,0,30,34,31,32,37,35,38,65,40,41,42,43,66,47,48,49,51,52,53,54,56,57,58,64);\r
-aWE("appear",5,7,10,12,14,18,19,20,21,23,24,27,28,0,33,22,36,39,65,41,42,43,66,44,45,47,49,50,51,55,56,57,58);\r
-aWE("appli",11,13,18,19,28,32,33,22,37,39,41,48,49,52,64);\r
-aWE("application",9,65);\r
-aWE("apply",5,18,19);\r
-aWE("approximate",39);\r
-aWE("arcsin",64);\r
-aWE("area",5,9,11,30,49,52);\r
-aWE("arithmetic",5,12);\r
-aWE("around",66);\r
-aWE("aspect",9,13,30,49);\r
-aWE("assign",41,64);\r
-aWE("associat",10,25,26,28,41,42);\r
-aWE("automatic",65);\r
-aWE("automatical",14,21,24,65,56);\r
-aWE("availabl",41,47);\r
-aWE("averag",5,34,31,33,22,65,50,64);\r
-aWE("axi",0,66,44,51,64);\r
-aWE("bar",9,46);\r
-aWE("bas",5,11,30,64);\r
-aWE("basi",6,18,19);\r
-aWE("basic",5);\r
-aWE("becom",65);\r
-aWE("befor",45);\r
-aWE("begin",12,47);\r
-aWE("belong",47);\r
-aWE("berder",47);\r
-aWE("bisect",64);\r
-aWE("bisector",64);\r
-aWE("boolean",58);\r
-aWE("bord",47);\r
-aWE("border",30,47);\r
-aWE("both",49,58);\r
-aWE("bottom",45);\r
-aWE("bound",6,65);\r
-aWE("boundari",65);\r
-aWE("boundary",5,65,47,49);\r
-aWE("box",1,2,3,4,5,10,12,14,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,45,47,49,50,51,53,54,55,56,57,58);\r
-aWE("brows",5,7,10,15,17,18,19,20,27,28,41,42,43,61,62);\r
-aWE("build",0,34,31,65,66,50);\r
-aWE("built",65,49,53);\r
-aWE("button",10,11,13,14,15,18,19,20,21,23,24,27,28,0,29,32,37,65,41,42,43,66,44,47,48,49,51,52,55,56,57,58,61,64);\r
-aWE("cad",6);\r
-aWE("cal",65);\r
-aWE("calculat",9,13,34,31,52);\r
-aWE("calculation",5,11,32,37);\r
-aWE("cancel",20);\r
-aWE("careful",42);\r
-aWE("cas",24,65);\r
-aWE("cel",42,57);\r
-aWE("cent",49);\r
-aWE("centroid",49);\r
-aWE("centroidal",49);\r
-aWE("certain",65);\r
-aWE("chang",12,14,20,24,28,41);\r
-aWE("characteristic",9);\r
-aWE("characteriz",6);\r
-aWE("check",47);\r
-aWE("choic",5,65);\r
-aWE("choos",10,11,13,14,17,20,21,23,24,25,26,0,29,32,36,37,65,41,42,43,66,44,45,47,48,51,52,55,56,57,64);\r
-aWE("chos",17);\r
-aWE("chosen",5);\r
-aWE("click",1,2,3,4,5,7,10,11,12,13,14,15,17,18,19,20,21,23,24,25,26,27,28,0,29,34,31,32,33,22,37,35,38,39,65,40,41,42,43,66,45,47,48,49,50,52,53,54,56,57,58,61,62,64);\r
-aWE("clos",6,47);\r
-aWE("co",47);\r
-aWE("coincident",36);\r
-aWE("color",9,11,13,32,37,48,52,64);\r
-aWE("column",41);\r
-aWE("combin",32);\r
-aWE("common",23,57);\r
-aWE("compar",47);\r
-aWE("component",30,45);\r
-aWE("compos",5,6,7,9,25,33,22,39,48);\r
-aWE("comput",15,65,47);\r
-aWE("computation",15,18,19);\r
-aWE("condition",5);\r
-aWE("confirm",14,20,21,27,28,41,42,49,56,58);\r
-aWE("confirmation",20);\r
-aWE("conform",5,35,38,47);\r
-aWE("connect",21,49);\r
-aWE("connection",6,30);\r
-aWE("connectivity",16,65);\r
-aWE("consider",6,47);\r
-aWE("consist",9,11,13,17,18,19,20,32,33,22,37,39,52);\r
-aWE("constant",50);\r
-aWE("construct",17,18,19,50);\r
-aWE("construction",18,19);\r
-aWE("contain",6,7,14,18,19,20,21,29,65,41,49,56);\r
-aWE("content",20);\r
-aWE("continu",49);\r
-aWE("contour",6,47);\r
-aWE("contrast",56);\r
-aWE("control",9,11,13,30,32,37,48,52,64);\r
-aWE("converg",49);\r
-aWE("coordinat",6,10,24,65);\r
-aWE("copy",44,51,55);\r
-aWE("corn",64);\r
-aWE("corner",21,49,64);\r
-aWE("correspond",5,6,9,10,29,65,47);\r
-aWE("could",6);\r
-aWE("count",47);\r
-aWE("counterclockwis",65);\r
-aWE("creat",1,2,3,4,5,6,7,10,12,20,28,30,34,31,33,22,36,35,38,39,65,40,41,44,45,50,51,53,54,55,58,64);\r
-aWE("creation",6,20,65,45,58);\r
-aWE("criteria",30);\r
-aWE("criterion",11,13,32,37,48,52,64);\r
-aWE("cros",64);\r
-aWE("current",14,21,41,47,56);\r
-aWE("curv",6);\r
-aWE("cut",21,58);\r
-aWE("d",12);\r
-aWE("data",5,28);\r
-aWE("deal",6);\r
-aWE("default",45);\r
-aWE("defin",6,12,13,20,33,22,39,65,47,50);\r
-aWE("definit",6,9,14,17,20,21,30,39,41,42,56);\r
-aWE("definition",33,22,39);\r
-aWE("deflection",5);\r
-aWE("delet",42);\r
-aWE("deletion",30,42,57);\r
-aWE("depend",5,6,28);\r
-aWE("describ",6,65);\r
-aWE("description",65);\r
-aWE("desirabl",36);\r
-aWE("desktop",45);\r
-aWE("destin",6,9,30);\r
-aWE("detail",5);\r
-aWE("detect",36);\r
-aWE("diagonal",21,23,52);\r
-aWE("dialog",1,2,3,4,5,10,12,14,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,47,49,50,51,53,54,55,56,57,58);\r
-aWE("dif",28);\r
-aWE("differ",50);\r
-aWE("differenc",47);\r
-aWE("different",5,10,20,47);\r
-aWE("dimension",6,0,66);\r
-aWE("direct",6,47,49);\r
-aWE("direction",65,64);\r
-aWE("discretiz",0,66);\r
-aWE("discretization",1,6,7);\r
-aWE("displac",24);\r
-aWE("display",9,11,13,14,18,19,21,24,25,26,32,37,48,49,52,56,61,62,64);\r
-aWE("disposal",9);\r
-aWE("distanc",65,64);\r
-aWE("distortion",49);\r
-aWE("divid",50);\r
-aWE("do",53);\r
-aWE("domain",65);\r
-aWE("don",6,41);\r
-aWE("doubl",41);\r
-aWE("e",65,47);\r
-aWE("easi",17);\r
-aWE("edg",1,5,6,7,9,10,12,13,17,20,21,23,24,30,34,31,32,33,22,35,38,39,65,40,47,49,50,56,57,64);\r
-aWE("edit",27,28,36,41);\r
-aWE("effect",56);\r
-aWE("eith",65,47);\r
-aWE("element",5,6,9,10,11,13,14,17,20,21,23,24,25,27,0,30,32,37,35,38,65,42,43,66,44,47,48,49,50,51,52,53,55,56,58,64);\r
-aWE("els",65);\r
-aWE("encapsulat",19);\r
-aWE("encounter",65);\r
-aWE("end",5,12,35,38,47,50,55);\r
-aWE("enough",47);\r
-aWE("ent",20,23,24,28,29,41,57);\r
-aWE("entiti",1,2,3,4,6,7,53,54);\r
-aWE("entity",6);\r
-aWE("equal",13,65,47,49);\r
-aWE("equilateral",13);\r
-aWE("etc",9);\r
-aWE("eventual",65);\r
-aWE("every",64);\r
-aWE("exampl",6,65,54);\r
-aWE("exceed",49);\r
-aWE("except",47);\r
-aWE("exist",14,20,21,27,65,56);\r
-aWE("export",29,30);\r
-aWE("exportation",29);\r
-aWE("extend",64);\r
-aWE("extrud",0,66);\r
-aWE("extrusion",0);\r
-aWE("fac",2,3,5,6,7,17,20,30,33,22,35,38,39,65,40,47,64);\r
-aWE("factor",50);\r
-aWE("far",47);\r
-aWE("fast",49);\r
-aWE("field",10,14,20,21,23,24,41,43,47,49,56,57);\r
-aWE("fifth",47);\r
-aWE("fil",20,29,65);\r
-aWE("fill",43,47);\r
-aWE("filt",14,20,21,56);\r
-aWE("final",15);\r
-aWE("find",29,65,47);\r
-aWE("first",65,47,50);\r
-aWE("fix",6,49);\r
-aWE("flag",65);\r
-aWE("fold",5,7,18,19);\r
-aWE("follow",5,6,7,9,10,12,13,14,18,19,20,21,23,24,25,26,27,28,0,33,22,36,39,65,41,42,43,66,44,45,47,49,50,51,55,56,57,58,61);\r
-aWE("form",23,27,65,47);\r
-aWE("format",29,30);\r
-aWE("four",6,64);\r
-aWE("fre",6,30,47,49);\r
-aWE("function",6);\r
-aWE("functionality",6,29,36,47);\r
-aWE("generat",5,6,9,30,33,22,35,38,39,65,45,53);\r
-aWE("generation",15,0,65,66);\r
-aWE("geom",6,30);\r
-aWE("geometric",6,9);\r
-aWE("geometrical",1,2,3,4,5,6,7,18,19,20,30,33,22,39,65,44,49,50,51,53,54,55);\r
-aWE("geometry",20,49);\r
-aWE("get",65);\r
-aWE("ghs3d",53);\r
-aWE("given",12,34,31,47);\r
-aWE("global",18);\r
-aWE("good",49);\r
-aWE("got",65);\r
-aWE("group",14,17,20,21,27,30,36,56,58);\r
-aWE("h",64);\r
-aWE("h1",13);\r
-aWE("h2",13);\r
-aWE("half",64);\r
-aWE("hand",65);\r
-aWE("hav",20,34,31,35,38,65,53);\r
-aWE("height",13,64);\r
-aWE("help",9);\r
-aWE("henc",65);\r
-aWE("her",6,16,27,65,41,46,63);\r
-aWE("hexahedron",4,6,7,10);\r
-aWE("high",6);\r
-aWE("highlight",14,20,21,56);\r
-aWE("hold",65);\r
-aWE("hyp",18,19);\r
-aWE("hypothes",5,7,12,18,19,28,30,34,31,33,22,35,38,39,40,41,50,53);\r
-aWE("hypothesi",5,12,28,34,31,33,22,35,38,39,40,41,50,53);\r
-aWE("i",65,47);\r
-aWE("icon",27,42,45);\r
-aWE("id",14,20,21,23,24,25,26,0,66,47,49,56,57);\r
-aWE("if",6,20,0,65,40,42,66,47,49,56);\r
-aWE("imp",6);\r
-aWE("impli",65);\r
-aWE("import",29,30);\r
-aWE("importation",29);\r
-aWE("includ",6);\r
-aWE("index",65);\r
-aWE("indic",65);\r
-aWE("indicat",64);\r
-aWE("info",61);\r
-aWE("information",6,27,61);\r
-aWE("initial",45,51,58);\r
-aWE("input",5,28);\r
-aWE("insert",47);\r
-aWE("instead",65);\r
-aWE("intend",47);\r
-aWE("interest",6);\r
-aWE("intermediat",47);\r
-aWE("internal",65);\r
-aWE("intersect",65,58);\r
-aWE("intersection",65,58);\r
-aWE("introduction",30);\r
-aWE("invers",6,23);\r
-aWE("inversion",23);\r
-aWE("iso",65);\r
-aWE("isolin",65);\r
-aWE("item",5,7,10,14,17,21,23,24,27,28,0,29,36,65,41,43,66,44,47,49,51,55,56,57,58);\r
-aWE("iteration",49);\r
-aWE("iterativ",49);\r
-aWE("join",48);\r
-aWE("just",65,42);\r
-aWE("keep",49,51);\r
-aWE("key",65);\r
-aWE("kind",7);\r
-aWE("know",65);\r
-aWE("l",64);\r
-aWE("laplacian",49);\r
-aWE("largest",13);\r
-aWE("last",47,50);\r
-aWE("launch",45);\r
-aWE("lay",0,65,66);\r
-aWE("least",65,49);\r
-aWE("left",65);\r
-aWE("length",5,9,12,13,30,34,31,32,33,22,39,47,50,64);\r
-aWE("les",47,49,53);\r
-aWE("level",5);\r
-aWE("lik",10,20,25,26,41,45,47);\r
-aWE("limit",65,47,49);\r
-aWE("lin",6,0,65,66,48);\r
-aWE("link",47);\r
-aWE("list",14,20,21,56);\r
-aWE("lk",12);\r
-aWE("local",19,30,39,40);\r
-aWE("locat",65,47);\r
-aWE("location",24,29,49,50);\r
-aWE("longest",13);\r
-aWE("look",20,25,26,65,45);\r
-aWE("low",6);\r
-aWE("ly",65);\r
-aWE("main",5,7,14,21,65,45,56,58);\r
-aWE("manag",5);\r
-aWE("manual",20,65);\r
-aWE("map",65);\r
-aWE("max",5,30,49);\r
-aWE("maximum",48,49);\r
-aWE("mean",6);\r
-aWE("meaningful",6);\r
-aWE("measur",64);\r
-aWE("mefisto",3);\r
-aWE("menu",5,7,10,14,15,17,18,19,20,21,23,24,25,26,27,28,0,29,36,39,65,41,42,43,66,44,45,47,49,51,55,56,57,58,61,62);\r
-aWE("merg",36,47);\r
-aWE("mesh",1,2,3,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,24,25,26,27,0,29,30,34,31,32,33,22,36,37,35,38,39,65,41,42,43,66,44,45,47,48,49,50,51,52,53,54,55,56,58,61,62,64);\r
-aWE("method",49);\r
-aWE("minimum",9,30,37,47);\r
-aWE("mod",62);\r
-aWE("model",6,30);\r
-aWE("modification",6,8,10,14,21,23,24,27,0,30,36,65,41,42,43,66,44,47,49,51,55,56,57);\r
-aWE("modify",14,21,27,56);\r
-aWE("modul",6,7,30,45);\r
-aWE("mov",24,30,41);\r
-aWE("multi",30);\r
-aWE("multipli",13);\r
-aWE("must",65,47);\r
-aWE("n",65,47);\r
-aWE("nam",12,20,27,28,29,33,22,39,41,50,58);\r
-aWE("nb",39);\r
-aWE("ne",53);\r
-aWE("need",53);\r
-aWE("neighbor",23,57);\r
-aWE("netgen",53,54);\r
-aWE("new",18,19,20,24,28,41,45,58);\r
-aWE("next",65);\r
-aWE("nod",6,10,11,13,14,17,20,24,26,0,30,33,22,36,39,65,42,43,66,47,48,49,50,52,64);\r
-aWE("nodal",65,49);\r
-aWE("normal",51,64);\r
-aWE("not",49);\r
-aWE("notic",6);\r
-aWE("numb",5,6,0,30,39,65,66,47,49);\r
-aWE("number",25,26);\r
-aWE("obey",47);\r
-aWE("object",1,2,3,4,5,7,10,15,17,18,19,20,27,28,33,22,39,65,41,42,43,44,53,54,55,61,62);\r
-aWE("objet",20);\r
-aWE("ok",10,14,20,21,23,24,27,28,0,29,41,42,43,66,47,49,56,57,58);\r
-aWE("on",5,6,7,18,19,21,23,0,65,40,42,66,47,49,50,51,53,55,56,58);\r
-aWE("onc",41,56);\r
-aWE("onto",65,40);\r
-aWE("operation",14,20,21,30,43,44,47,49,51,55,56,58);\r
-aWE("opposit",5,21,40,47,48);\r
-aWE("option",6,51,55);\r
-aWE("ord",6,14,65);\r
-aWE("orientation",14,21,56);\r
-aWE("origin",64);\r
-aWE("other",56);\r
-aWE("outsid",65);\r
-aWE("own",6);\r
-aWE("paramet",6,47);\r
-aWE("parameter",5,34,31,35,38,44,47);\r
-aWE("parametric",6,65);\r
-aWE("part",47,49);\r
-aWE("particularity",6);\r
-aWE("pattern",65);\r
-aWE("pattern_nam",65);\r
-aWE("perfect",13);\r
-aWE("perform",30,43,47,51,58);\r
-aWE("plac",47);\r
-aWE("plan",51,64);\r
-aWE("planar",64);\r
-aWE("platform",45);\r
-aWE("plu",0,66);\r
-aWE("point",6,33,22,39,65,66,44,47,51,55,64);\r
-aWE("pop",25,26,62);\r
-aWE("popup",28,41);\r
-aWE("position",6,65);\r
-aWE("possibl",5,65);\r
-aWE("pres",10,42,49);\r
-aWE("present",6,58);\r
-aWE("presentation",9);\r
-aWE("preserv",65);\r
-aWE("preset",5);\r
-aWE("preview",21,65);\r
-aWE("previou",50,56);\r
-aWE("previous",18,19,20,30,41);\r
-aWE("procedur",13,49);\r
-aWE("proces",49);\r
-aWE("produc",6,0,66,49);\r
-aWE("product",64);\r
-aWE("progression",12);\r
-aWE("project",65);\r
-aWE("projection",65,64);\r
-aWE("propagat",40);\r
-aWE("propagation",5,40);\r
-aWE("properti",20,46,62,63);\r
-aWE("pseudo",23);\r
-aWE("pul",49);\r
-aWE("quad",64);\r
-aWE("quadrangl",2,6,7,10,11,13,21,23,0,32,37,66,48);\r
-aWE("quadrangular",40);\r
-aWE("quality",9,11,13,30,32,37,48,52,64);\r
-aWE("quantity",5);\r
-aWE("quit",20);\r
-aWE("radio",14,20,21,44,47,51,55,56);\r
-aWE("ratio",9,13,30,49,52,64);\r
-aWE("reassign",41);\r
-aWE("recomput",41);\r
-aWE("reduc",49);\r
-aWE("reevaluat",49);\r
-aWE("refer",65);\r
-aWE("referenc",6,9,18,19);\r
-aWE("refin",5);\r
-aWE("reflect",65,48);\r
-aWE("regular",12);\r
-aWE("relat",45);\r
-aWE("relation",6);\r
-aWE("relationship",6);\r
-aWE("remain",13);\r
-aWE("remov",14,20,21,27,42,56);\r
-aWE("renam",28);\r
-aWE("renumb",43);\r
-aWE("renumber",43);\r
-aWE("reorient",14);\r
-aWE("repeat",13);\r
-aWE("replac",47);\r
-aWE("represent",5,6,33,22,39,52);\r
-aWE("representation",6);\r
-aWE("requir",23,24,28,41,57);\r
-aWE("rest",65,47);\r
-aWE("restrict",6);\r
-aWE("result",5,49,58);\r
-aWE("retain",13);\r
-aWE("retriev",6);\r
-aWE("revers",65);\r
-aWE("revert",14);\r
-aWE("revolution",0,66);\r
-aWE("revolv",66);\r
-aWE("right",17,24,25,26,28,41,62);\r
-aWE("rotat",0,66,44);\r
-aWE("rotation",66,44);\r
-aWE("rough",5);\r
-aWE("rul",47);\r
-aWE("run",45);\r
-aWE("s",13,35,38,40,50);\r
-aWE("salom",30,45);\r
-aWE("sam",6,39,40,47);\r
-aWE("scalar",9,46);\r
-aWE("se",6,27);\r
-aWE("seam",65);\r
-aWE("search",29);\r
-aWE("second",47);\r
-aWE("section",65);\r
-aWE("segment",5,12,30,34,31,33,22,39,50);\r
-aWE("select",1,2,3,4,5,7,10,12,14,15,17,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,45,47,49,50,51,53,54,55,56,57,58,61,62);\r
-aWE("selection",14,20,21,56);\r
-aWE("sens",6);\r
-aWE("separat",52);\r
-aWE("sequenc",47);\r
-aWE("set",6,7,10,12,14,20,21,24,30,33,22,39,65,40,41,45,47,49,50,56,62);\r
-aWE("sew",47);\r
-aWE("shad",62);\r
-aWE("shall",5,7,10,14,21,23,24,0,36,65,66,44,47,51,55,56,57);\r
-aWE("shap",5,6,13,65,49);\r
-aWE("shift",10,42,49);\r
-aWE("shortest",13,64);\r
-aWE("should",20,0,65,41,66,44,45,47,49,58);\r
-aWE("shown",9,49);\r
-aWE("shrink",62);\r
-aWE("sid",13,37,47,48);\r
-aWE("similar",12);\r
-aWE("simpl",6,65);\r
-aWE("siz",49);\r
-aWE("skew",9,30,48);\r
-aWE("smesh",5,6,7,9,10,17,20,23,24,25,26,28,29,30,42,43,45,47,57,58,59,62);\r
-aWE("smooth",49);\r
-aWE("smp",65);\r
-aWE("so",5,13,65,47,50,52);\r
-aWE("sort",14,20,21,56);\r
-aWE("spac",6,65,44,55);\r
-aWE("specifi",65,42,47,49,50,53);\r
-aWE("specific",17);\r
-aWE("specify",10,21,0,65,42,66,44,49,51,55,58);\r
-aWE("split",12,33,22,39,47);\r
-aWE("standalon",20);\r
-aWE("standard",29,45);\r
-aWE("start",5,12,45,47,50,55);\r
-aWE("step",15,0,66);\r
-aWE("stor",65);\r
-aWE("structur",18,19);\r
-aWE("study",41,45);\r
-aWE("sub",29,36,65,44,47,51,55);\r
-aWE("submenu",10,42,43);\r
-aWE("submesh",5,14,17,19,20,21,0,41,66,49,56);\r
-aWE("supplementary",21);\r
-aWE("surfac",6,0,65,66,47,53);\r
-aWE("surround",6,49);\r
-aWE("swept",0,66);\r
-aWE("symmetrical",51);\r
-aWE("symmetry",51);\r
-aWE("t",6,65);\r
-aWE("tak",56);\r
-aWE("taken",5,17,20,65);\r
-aWE("tap",9,30,52);\r
-aWE("techniqu",49);\r
-aWE("tetrahedron",6,7,10,53,54);\r
-aWE("text",16,46,63);\r
-aWE("th",65,47);\r
-aWE("them",10,0,36,42,66,47,49,50);\r
-aWE("thre",6,47,51,62);\r
-aWE("thu",41);\r
-aWE("toleranc",36,66);\r
-aWE("tool",58);\r
-aWE("toolbar",13,14,15,18,19,21,23,24,27,0,32,65,42,43,66,45,48,49,52,56,57,61,64);\r
-aWE("topic",16,46,63);\r
-aWE("topological",6,47);\r
-aWE("topology",6);\r
-aWE("toward",49);\r
-aWE("transform",24);\r
-aWE("transformation",36,44,47,51,55);\r
-aWE("translat",55);\r
-aWE("translation",55);\r
-aWE("triangl",3,6,7,10,11,13,23,0,32,37,66,48,52,56,57);\r
-aWE("triangulator",34,31);\r
-aWE("two",6,13,21,23,37,65,41,47,52,55,57,58);\r
-aWE("typ",5,6,10,16,17,20,28,0,42,66,46,47,63);\r
-aWE("typical",49);\r
-aWE("u",6,47);\r
-aWE("unassign",41);\r
-aWE("uniform",49);\r
-aWE("union",56,57,58);\r
-aWE("unit",47,56,57,58);\r
-aWE("unles",40);\r
-aWE("unv",29);\r
-aWE("up",12,25,26,47,62);\r
-aWE("updat",45,49,60);\r
-aWE("us",1,2,3,4,6,7,18,19,0,33,22,36,39,65,41,66,47,49,50,53,54,58,59);\r
-aWE("usag",9);\r
-aWE("usual",47,49);\r
-aWE("v",6);\r
-aWE("valu",9,12,13,28,37,48);\r
-aWE("vector",0,66,44,51,55,64);\r
-aWE("versa",41);\r
-aWE("vertex",6,65);\r
-aWE("vertic",65);\r
-aWE("vic",41);\r
-aWE("view",10,11,13,14,20,21,23,24,25,26,0,32,37,41,42,43,66,45,47,48,49,52,56,57,60,61,62,64);\r
-aWE("visual",9);\r
-aWE("visualization",62,63);\r
-aWE("volum",4,5,6,7,20,30,53,54);\r
-aWE("vtk",45);\r
-aWE("walk",65);\r
-aWE("warp",9,30,64);\r
-aWE("way",6,65,58);\r
-aWE("weight",49);\r
-aWE("well",65);\r
-aWE("whil",42,53);\r
-aWE("whol",0,66,49);\r
-aWE("whos",14,20,21,56);\r
-aWE("will",5,6,7,10,11,12,13,14,17,18,19,20,21,24,25,26,27,28,0,29,32,33,22,37,39,65,40,41,42,43,66,45,47,48,49,50,52,56,58,61,64);\r
-aWE("window",45);\r
-aWE("wir",1,7,34,31);\r
-aWE("wirefram",62);\r
-aWE("within",65,47);\r
-aWE("word",39);\r
-aWE("work",45);\r
-aWE("would",10,41,47);\r
-aWE("x",6,64);\r
-aWE("y",6);\r
-aWE("your",5,6,9,10,11,12,13,14,15,17,19,20,24,25,26,27,28,29,32,33,22,36,37,39,65,41,42,43,44,48,49,50,51,52,55,61,62,64);\r
-aWE("z",6);\r
-aWE("zero",65);\r
-\r
-//-->\r
-</script>\r
-</script>\r
diff --git a/doc/salome/gui/SMESH/whdata/whfwdata0.xml b/doc/salome/gui/SMESH/whdata/whfwdata0.xml
deleted file mode 100755 (executable)
index 608b52b..0000000
+++ /dev/null
@@ -1,598 +0,0 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>\r
-<ftswdata>\r
-<key name="0"> 6,47, </key>\r
-<key name="0d"> 6, </key>\r
-<key name="1"> 10,11,12,13,14,15,20,21,23,24,25,26,27,28,0,29,32,36,37,65,41,42,43,66,47,48,49,52,56,57,58,61,62,64, </key>\r
-<key name="1d"> 1,5,6,7,12,0,30,34,31,40,66,50, </key>\r
-<key name="2"> 10,11,13,14,15,20,21,23,24,25,26,27,28,0,29,32,37,65,41,42,43,66,47,48,49,52,56,57,58,61,62,64, </key>\r
-<key name="2d"> 2,3,6,7,11,13,0,30,34,31,37,65,66,47,64, </key>\r
-<key name="3"> 6,11,13,14,21,23,24,0,29,65,41,42,43,66,45,47,48,49,56,57,64, </key>\r
-<key name="3d"> 4,6,7,10,14,20,21,23,24,25,26,0,30,41,42,43,66,47,49,53,54,56,57, </key>\r
-<key name="3rd"> 6, </key>\r
-<key name="4"> 6,11,13,21,24,65,47,48,52,64, </key>\r
-<key name="5th"> 6, </key>\r
-<key name="abl"> 41, </key>\r
-<key name="abov"> 49, </key>\r
-<key name="absent"> 58, </key>\r
-<key name="abut"> 33,22,39, </key>\r
-<key name="accord"> 9,11,13,32,37,65,48,49,52,64, </key>\r
-<key name="account"> 5,65, </key>\r
-<key name="ad"> 10,14,20,21,56,58, </key>\r
-<key name="add"> 10,14,20,21,27,56, </key>\r
-<key name="addition"> 21,30, </key>\r
-<key name="additional"> 6,65,45,49, </key>\r
-<key name="adjacent"> 24,37,35,38,42,47,56, </key>\r
-<key name="adjust"> 49, </key>\r
-<key name="advanc"> 53, </key>\r
-<key name="again"> 41, </key>\r
-<key name="algorithm"> 1,2,3,4,5,6,7,9,11,12,18,19,28,30,65,41,47,53,54, </key>\r
-<key name="allow"> 5,12,14,20,21,29,30,36,35,38,65,40,44,47,49,51,55,56,58, </key>\r
-<key name="along"> 0,65,49, </key>\r
-<key name="already"> 28, </key>\r
-<key name="alway"> 49, </key>\r
-<key name="angl"> 9,30,37,66,44,48,64, </key>\r
-<key name="anoth"> 40, </key>\r
-<key name="any"> 6,24,65,49,53, </key>\r
-<key name="ap"> 1,2,3,4,7,10,11,13,14,20,21,23,24,27,0,30,34,31,32,37,35,38,65,40,41,42,43,66,47,48,49,51,52,53,54,56,57,58,64, </key>\r
-<key name="appear"> 5,7,10,12,14,18,19,20,21,23,24,27,28,0,33,22,36,39,65,41,42,43,66,44,45,47,49,50,51,55,56,57,58, </key>\r
-<key name="appli"> 11,13,18,19,28,32,33,22,37,39,41,48,49,52,64, </key>\r
-<key name="application"> 9,65, </key>\r
-<key name="apply"> 5,18,19, </key>\r
-<key name="approximate"> 39, </key>\r
-<key name="arcsin"> 64, </key>\r
-<key name="area"> 5,9,11,30,49,52, </key>\r
-<key name="arithmetic"> 5,12, </key>\r
-<key name="around"> 66, </key>\r
-<key name="aspect"> 9,13,30,49, </key>\r
-<key name="assign"> 41,64, </key>\r
-<key name="associat"> 10,25,26,28,41,42, </key>\r
-<key name="automatic"> 65, </key>\r
-<key name="automatical"> 14,21,24,65,56, </key>\r
-<key name="availabl"> 41,47, </key>\r
-<key name="averag"> 5,34,31,33,22,65,50,64, </key>\r
-<key name="axi"> 0,66,44,51,64, </key>\r
-<key name="bar"> 9,46, </key>\r
-<key name="bas"> 5,11,30,64, </key>\r
-<key name="basi"> 6,18,19, </key>\r
-<key name="basic"> 5, </key>\r
-<key name="becom"> 65, </key>\r
-<key name="befor"> 45, </key>\r
-<key name="begin"> 12,47, </key>\r
-<key name="belong"> 47, </key>\r
-<key name="berder"> 47, </key>\r
-<key name="bisect"> 64, </key>\r
-<key name="bisector"> 64, </key>\r
-<key name="boolean"> 58, </key>\r
-<key name="bord"> 47, </key>\r
-<key name="border"> 30,47, </key>\r
-<key name="both"> 49,58, </key>\r
-<key name="bottom"> 45, </key>\r
-<key name="bound"> 6,65, </key>\r
-<key name="boundari"> 65, </key>\r
-<key name="boundary"> 5,65,47,49, </key>\r
-<key name="box"> 1,2,3,4,5,10,12,14,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,45,47,49,50,51,53,54,55,56,57,58, </key>\r
-<key name="brows"> 5,7,10,15,17,18,19,20,27,28,41,42,43,61,62, </key>\r
-<key name="build"> 0,34,31,65,66,50, </key>\r
-<key name="built"> 65,49,53, </key>\r
-<key name="button"> 10,11,13,14,15,18,19,20,21,23,24,27,28,0,29,32,37,65,41,42,43,66,44,47,48,49,51,52,55,56,57,58,61,64, </key>\r
-<key name="cad"> 6, </key>\r
-<key name="cal"> 65, </key>\r
-<key name="calculat"> 9,13,34,31,52, </key>\r
-<key name="calculation"> 5,11,32,37, </key>\r
-<key name="cancel"> 20, </key>\r
-<key name="careful"> 42, </key>\r
-<key name="cas"> 24,65, </key>\r
-<key name="cel"> 42,57, </key>\r
-<key name="cent"> 49, </key>\r
-<key name="centroid"> 49, </key>\r
-<key name="centroidal"> 49, </key>\r
-<key name="certain"> 65, </key>\r
-<key name="chang"> 12,14,20,24,28,41, </key>\r
-<key name="characteristic"> 9, </key>\r
-<key name="characteriz"> 6, </key>\r
-<key name="check"> 47, </key>\r
-<key name="choic"> 5,65, </key>\r
-<key name="choos"> 10,11,13,14,17,20,21,23,24,25,26,0,29,32,36,37,65,41,42,43,66,44,45,47,48,51,52,55,56,57,64, </key>\r
-<key name="chos"> 17, </key>\r
-<key name="chosen"> 5, </key>\r
-<key name="click"> 1,2,3,4,5,7,10,11,12,13,14,15,17,18,19,20,21,23,24,25,26,27,28,0,29,34,31,32,33,22,37,35,38,39,65,40,41,42,43,66,45,47,48,49,50,52,53,54,56,57,58,61,62,64, </key>\r
-<key name="clos"> 6,47, </key>\r
-<key name="co"> 47, </key>\r
-<key name="coincident"> 36, </key>\r
-<key name="color"> 9,11,13,32,37,48,52,64, </key>\r
-<key name="column"> 41, </key>\r
-<key name="combin"> 32, </key>\r
-<key name="common"> 23,57, </key>\r
-<key name="compar"> 47, </key>\r
-<key name="component"> 30,45, </key>\r
-<key name="compos"> 5,6,7,9,25,33,22,39,48, </key>\r
-<key name="comput"> 15,65,47, </key>\r
-<key name="computation"> 15,18,19, </key>\r
-<key name="condition"> 5, </key>\r
-<key name="confirm"> 14,20,21,27,28,41,42,49,56,58, </key>\r
-<key name="confirmation"> 20, </key>\r
-<key name="conform"> 5,35,38,47, </key>\r
-<key name="connect"> 21,49, </key>\r
-<key name="connection"> 6,30, </key>\r
-<key name="connectivity"> 16,65, </key>\r
-<key name="consider"> 6,47, </key>\r
-<key name="consist"> 9,11,13,17,18,19,20,32,33,22,37,39,52, </key>\r
-<key name="constant"> 50, </key>\r
-<key name="construct"> 17,18,19,50, </key>\r
-<key name="construction"> 18,19, </key>\r
-<key name="contain"> 6,7,14,18,19,20,21,29,65,41,49,56, </key>\r
-<key name="content"> 20, </key>\r
-<key name="continu"> 49, </key>\r
-<key name="contour"> 6,47, </key>\r
-<key name="contrast"> 56, </key>\r
-<key name="control"> 9,11,13,30,32,37,48,52,64, </key>\r
-<key name="converg"> 49, </key>\r
-<key name="coordinat"> 6,10,24,65, </key>\r
-<key name="copy"> 44,51,55, </key>\r
-<key name="corn"> 64, </key>\r
-<key name="corner"> 21,49,64, </key>\r
-<key name="correspond"> 5,6,9,10,29,65,47, </key>\r
-<key name="could"> 6, </key>\r
-<key name="count"> 47, </key>\r
-<key name="counterclockwis"> 65, </key>\r
-<key name="creat"> 1,2,3,4,5,6,7,10,12,20,28,30,34,31,33,22,36,35,38,39,65,40,41,44,45,50,51,53,54,55,58,64, </key>\r
-<key name="creation"> 6,20,65,45,58, </key>\r
-<key name="criteria"> 30, </key>\r
-<key name="criterion"> 11,13,32,37,48,52,64, </key>\r
-<key name="cros"> 64, </key>\r
-<key name="current"> 14,21,41,47,56, </key>\r
-<key name="curv"> 6, </key>\r
-<key name="cut"> 21,58, </key>\r
-<key name="d"> 12, </key>\r
-<key name="data"> 5,28, </key>\r
-<key name="deal"> 6, </key>\r
-<key name="default"> 45, </key>\r
-<key name="defin"> 6,12,13,20,33,22,39,65,47,50, </key>\r
-<key name="definit"> 6,9,14,17,20,21,30,39,41,42,56, </key>\r
-<key name="definition"> 33,22,39, </key>\r
-<key name="deflection"> 5, </key>\r
-<key name="delet"> 42, </key>\r
-<key name="deletion"> 30,42,57, </key>\r
-<key name="depend"> 5,6,28, </key>\r
-<key name="describ"> 6,65, </key>\r
-<key name="description"> 65, </key>\r
-<key name="desirabl"> 36, </key>\r
-<key name="desktop"> 45, </key>\r
-<key name="destin"> 6,9,30, </key>\r
-<key name="detail"> 5, </key>\r
-<key name="detect"> 36, </key>\r
-<key name="diagonal"> 21,23,52, </key>\r
-<key name="dialog"> 1,2,3,4,5,10,12,14,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,47,49,50,51,53,54,55,56,57,58, </key>\r
-<key name="dif"> 28, </key>\r
-<key name="differ"> 50, </key>\r
-<key name="differenc"> 47, </key>\r
-<key name="different"> 5,10,20,47, </key>\r
-<key name="dimension"> 6,0,66, </key>\r
-<key name="direct"> 6,47,49, </key>\r
-<key name="direction"> 65,64, </key>\r
-<key name="discretiz"> 0,66, </key>\r
-<key name="discretization"> 1,6,7, </key>\r
-<key name="displac"> 24, </key>\r
-<key name="display"> 9,11,13,14,18,19,21,24,25,26,32,37,48,49,52,56,61,62,64, </key>\r
-<key name="disposal"> 9, </key>\r
-<key name="distanc"> 65,64, </key>\r
-<key name="distortion"> 49, </key>\r
-<key name="divid"> 50, </key>\r
-<key name="do"> 53, </key>\r
-<key name="domain"> 65, </key>\r
-<key name="don"> 6,41, </key>\r
-<key name="doubl"> 41, </key>\r
-<key name="e"> 65,47, </key>\r
-<key name="easi"> 17, </key>\r
-<key name="edg"> 1,5,6,7,9,10,12,13,17,20,21,23,24,30,34,31,32,33,22,35,38,39,65,40,47,49,50,56,57,64, </key>\r
-<key name="edit"> 27,28,36,41, </key>\r
-<key name="effect"> 56, </key>\r
-<key name="eith"> 65,47, </key>\r
-<key name="element"> 5,6,9,10,11,13,14,17,20,21,23,24,25,27,0,30,32,37,35,38,65,42,43,66,44,47,48,49,50,51,52,53,55,56,58,64, </key>\r
-<key name="els"> 65, </key>\r
-<key name="encapsulat"> 19, </key>\r
-<key name="encounter"> 65, </key>\r
-<key name="end"> 5,12,35,38,47,50,55, </key>\r
-<key name="enough"> 47, </key>\r
-<key name="ent"> 20,23,24,28,29,41,57, </key>\r
-<key name="entiti"> 1,2,3,4,6,7,53,54, </key>\r
-<key name="entity"> 6, </key>\r
-<key name="equal"> 13,65,47,49, </key>\r
-<key name="equilateral"> 13, </key>\r
-<key name="etc"> 9, </key>\r
-<key name="eventual"> 65, </key>\r
-<key name="every"> 64, </key>\r
-<key name="exampl"> 6,65,54, </key>\r
-<key name="exceed"> 49, </key>\r
-<key name="except"> 47, </key>\r
-<key name="exist"> 14,20,21,27,65,56, </key>\r
-<key name="export"> 29,30, </key>\r
-<key name="exportation"> 29, </key>\r
-<key name="extend"> 64, </key>\r
-<key name="extrud"> 0,66, </key>\r
-<key name="extrusion"> 0, </key>\r
-<key name="fac"> 2,3,5,6,7,17,20,30,33,22,35,38,39,65,40,47,64, </key>\r
-<key name="factor"> 50, </key>\r
-<key name="far"> 47, </key>\r
-<key name="fast"> 49, </key>\r
-<key name="field"> 10,14,20,21,23,24,41,43,47,49,56,57, </key>\r
-<key name="fifth"> 47, </key>\r
-<key name="fil"> 20,29,65, </key>\r
-<key name="fill"> 43,47, </key>\r
-<key name="filt"> 14,20,21,56, </key>\r
-<key name="final"> 15, </key>\r
-<key name="find"> 29,65,47, </key>\r
-<key name="first"> 65,47,50, </key>\r
-<key name="fix"> 6,49, </key>\r
-<key name="flag"> 65, </key>\r
-<key name="fold"> 5,7,18,19, </key>\r
-<key name="follow"> 5,6,7,9,10,12,13,14,18,19,20,21,23,24,25,26,27,28,0,33,22,36,39,65,41,42,43,66,44,45,47,49,50,51,55,56,57,58,61, </key>\r
-<key name="form"> 23,27,65,47, </key>\r
-<key name="format"> 29,30, </key>\r
-<key name="four"> 6,64, </key>\r
-<key name="fre"> 6,30,47,49, </key>\r
-<key name="function"> 6, </key>\r
-<key name="functionality"> 6,29,36,47, </key>\r
-<key name="generat"> 5,6,9,30,33,22,35,38,39,65,45,53, </key>\r
-<key name="generation"> 15,0,65,66, </key>\r
-<key name="geom"> 6,30, </key>\r
-<key name="geometric"> 6,9, </key>\r
-<key name="geometrical"> 1,2,3,4,5,6,7,18,19,20,30,33,22,39,65,44,49,50,51,53,54,55, </key>\r
-<key name="geometry"> 20,49, </key>\r
-<key name="get"> 65, </key>\r
-<key name="ghs3d"> 53, </key>\r
-<key name="given"> 12,34,31,47, </key>\r
-<key name="global"> 18, </key>\r
-<key name="good"> 49, </key>\r
-<key name="got"> 65, </key>\r
-<key name="group"> 14,17,20,21,27,30,36,56,58, </key>\r
-<key name="h"> 64, </key>\r
-<key name="h1"> 13, </key>\r
-<key name="h2"> 13, </key>\r
-<key name="half"> 64, </key>\r
-<key name="hand"> 65, </key>\r
-<key name="hav"> 20,34,31,35,38,65,53, </key>\r
-<key name="height"> 13,64, </key>\r
-<key name="help"> 9, </key>\r
-<key name="henc"> 65, </key>\r
-<key name="her"> 6,16,27,65,41,46,63, </key>\r
-<key name="hexahedron"> 4,6,7,10, </key>\r
-<key name="high"> 6, </key>\r
-<key name="highlight"> 14,20,21,56, </key>\r
-<key name="hold"> 65, </key>\r
-<key name="hyp"> 18,19, </key>\r
-<key name="hypothes"> 5,7,12,18,19,28,30,34,31,33,22,35,38,39,40,41,50,53, </key>\r
-<key name="hypothesi"> 5,12,28,34,31,33,22,35,38,39,40,41,50,53, </key>\r
-<key name="i"> 65,47, </key>\r
-<key name="icon"> 27,42,45, </key>\r
-<key name="id"> 14,20,21,23,24,25,26,0,66,47,49,56,57, </key>\r
-<key name="if"> 6,20,0,65,40,42,66,47,49,56, </key>\r
-<key name="imp"> 6, </key>\r
-<key name="impli"> 65, </key>\r
-<key name="import"> 29,30, </key>\r
-<key name="importation"> 29, </key>\r
-<key name="includ"> 6, </key>\r
-<key name="index"> 65, </key>\r
-<key name="indic"> 65, </key>\r
-<key name="indicat"> 64, </key>\r
-<key name="info"> 61, </key>\r
-<key name="information"> 6,27,61, </key>\r
-<key name="initial"> 45,51,58, </key>\r
-<key name="input"> 5,28, </key>\r
-<key name="insert"> 47, </key>\r
-<key name="instead"> 65, </key>\r
-<key name="intend"> 47, </key>\r
-<key name="interest"> 6, </key>\r
-<key name="intermediat"> 47, </key>\r
-<key name="internal"> 65, </key>\r
-<key name="intersect"> 65,58, </key>\r
-<key name="intersection"> 65,58, </key>\r
-<key name="introduction"> 30, </key>\r
-<key name="invers"> 6,23, </key>\r
-<key name="inversion"> 23, </key>\r
-<key name="iso"> 65, </key>\r
-<key name="isolin"> 65, </key>\r
-<key name="item"> 5,7,10,14,17,21,23,24,27,28,0,29,36,65,41,43,66,44,47,49,51,55,56,57,58, </key>\r
-<key name="iteration"> 49, </key>\r
-<key name="iterativ"> 49, </key>\r
-<key name="join"> 48, </key>\r
-<key name="just"> 65,42, </key>\r
-<key name="keep"> 49,51, </key>\r
-<key name="key"> 65, </key>\r
-<key name="kind"> 7, </key>\r
-<key name="know"> 65, </key>\r
-<key name="l"> 64, </key>\r
-<key name="laplacian"> 49, </key>\r
-<key name="largest"> 13, </key>\r
-<key name="last"> 47,50, </key>\r
-<key name="launch"> 45, </key>\r
-<key name="lay"> 0,65,66, </key>\r
-<key name="least"> 65,49, </key>\r
-<key name="left"> 65, </key>\r
-<key name="length"> 5,9,12,13,30,34,31,32,33,22,39,47,50,64, </key>\r
-<key name="les"> 47,49,53, </key>\r
-<key name="level"> 5, </key>\r
-<key name="lik"> 10,20,25,26,41,45,47, </key>\r
-<key name="limit"> 65,47,49, </key>\r
-<key name="lin"> 6,0,65,66,48, </key>\r
-<key name="link"> 47, </key>\r
-<key name="list"> 14,20,21,56, </key>\r
-<key name="lk"> 12, </key>\r
-<key name="local"> 19,30,39,40, </key>\r
-<key name="locat"> 65,47, </key>\r
-<key name="location"> 24,29,49,50, </key>\r
-<key name="longest"> 13, </key>\r
-<key name="look"> 20,25,26,65,45, </key>\r
-<key name="low"> 6, </key>\r
-<key name="ly"> 65, </key>\r
-<key name="main"> 5,7,14,21,65,45,56,58, </key>\r
-<key name="manag"> 5, </key>\r
-<key name="manual"> 20,65, </key>\r
-<key name="map"> 65, </key>\r
-<key name="max"> 5,30,49, </key>\r
-<key name="maximum"> 48,49, </key>\r
-<key name="mean"> 6, </key>\r
-<key name="meaningful"> 6, </key>\r
-<key name="measur"> 64, </key>\r
-<key name="mefisto"> 3, </key>\r
-<key name="menu"> 5,7,10,14,15,17,18,19,20,21,23,24,25,26,27,28,0,29,36,39,65,41,42,43,66,44,45,47,49,51,55,56,57,58,61,62, </key>\r
-<key name="merg"> 36,47, </key>\r
-<key name="mesh"> 1,2,3,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,24,25,26,27,0,29,30,34,31,32,33,22,36,37,35,38,39,65,41,42,43,66,44,45,47,48,49,50,51,52,53,54,55,56,58,61,62,64, </key>\r
-<key name="method"> 49, </key>\r
-<key name="minimum"> 9,30,37,47, </key>\r
-<key name="mod"> 62, </key>\r
-<key name="model"> 6,30, </key>\r
-<key name="modification"> 6,8,10,14,21,23,24,27,0,30,36,65,41,42,43,66,44,47,49,51,55,56,57, </key>\r
-<key name="modify"> 14,21,27,56, </key>\r
-<key name="modul"> 6,7,30,45, </key>\r
-<key name="mov"> 24,30,41, </key>\r
-<key name="multi"> 30, </key>\r
-<key name="multipli"> 13, </key>\r
-<key name="must"> 65,47, </key>\r
-<key name="n"> 65,47, </key>\r
-<key name="nam"> 12,20,27,28,29,33,22,39,41,50,58, </key>\r
-<key name="nb"> 39, </key>\r
-<key name="ne"> 53, </key>\r
-<key name="need"> 53, </key>\r
-<key name="neighbor"> 23,57, </key>\r
-<key name="netgen"> 53,54, </key>\r
-<key name="new"> 18,19,20,24,28,41,45,58, </key>\r
-<key name="next"> 65, </key>\r
-<key name="nod"> 6,10,11,13,14,17,20,24,26,0,30,33,22,36,39,65,42,43,66,47,48,49,50,52,64, </key>\r
-<key name="nodal"> 65,49, </key>\r
-<key name="normal"> 51,64, </key>\r
-<key name="not"> 49, </key>\r
-<key name="notic"> 6, </key>\r
-<key name="numb"> 5,6,0,30,39,65,66,47,49, </key>\r
-<key name="number"> 25,26, </key>\r
-<key name="obey"> 47, </key>\r
-<key name="object"> 1,2,3,4,5,7,10,15,17,18,19,20,27,28,33,22,39,65,41,42,43,44,53,54,55,61,62, </key>\r
-<key name="objet"> 20, </key>\r
-<key name="ok"> 10,14,20,21,23,24,27,28,0,29,41,42,43,66,47,49,56,57,58, </key>\r
-<key name="on"> 5,6,7,18,19,21,23,0,65,40,42,66,47,49,50,51,53,55,56,58, </key>\r
-<key name="onc"> 41,56, </key>\r
-<key name="onto"> 65,40, </key>\r
-<key name="operation"> 14,20,21,30,43,44,47,49,51,55,56,58, </key>\r
-<key name="opposit"> 5,21,40,47,48, </key>\r
-<key name="option"> 6,51,55, </key>\r
-<key name="ord"> 6,14,65, </key>\r
-<key name="orientation"> 14,21,56, </key>\r
-<key name="origin"> 64, </key>\r
-<key name="other"> 56, </key>\r
-<key name="outsid"> 65, </key>\r
-<key name="own"> 6, </key>\r
-<key name="paramet"> 6,47, </key>\r
-<key name="parameter"> 5,34,31,35,38,44,47, </key>\r
-<key name="parametric"> 6,65, </key>\r
-<key name="part"> 47,49, </key>\r
-<key name="particularity"> 6, </key>\r
-<key name="pattern"> 65, </key>\r
-<key name="pattern_nam"> 65, </key>\r
-<key name="perfect"> 13, </key>\r
-<key name="perform"> 30,43,47,51,58, </key>\r
-<key name="plac"> 47, </key>\r
-<key name="plan"> 51,64, </key>\r
-<key name="planar"> 64, </key>\r
-<key name="platform"> 45, </key>\r
-<key name="plu"> 0,66, </key>\r
-<key name="point"> 6,33,22,39,65,66,44,47,51,55,64, </key>\r
-<key name="pop"> 25,26,62, </key>\r
-<key name="popup"> 28,41, </key>\r
-<key name="position"> 6,65, </key>\r
-<key name="possibl"> 5,65, </key>\r
-<key name="pres"> 10,42,49, </key>\r
-<key name="present"> 6,58, </key>\r
-<key name="presentation"> 9, </key>\r
-<key name="preserv"> 65, </key>\r
-<key name="preset"> 5, </key>\r
-<key name="preview"> 21,65, </key>\r
-<key name="previou"> 50,56, </key>\r
-<key name="previous"> 18,19,20,30,41, </key>\r
-<key name="procedur"> 13,49, </key>\r
-<key name="proces"> 49, </key>\r
-<key name="produc"> 6,0,66,49, </key>\r
-<key name="product"> 64, </key>\r
-<key name="progression"> 12, </key>\r
-<key name="project"> 65, </key>\r
-<key name="projection"> 65,64, </key>\r
-<key name="propagat"> 40, </key>\r
-<key name="propagation"> 5,40, </key>\r
-<key name="properti"> 20,46,62,63, </key>\r
-<key name="pseudo"> 23, </key>\r
-<key name="pul"> 49, </key>\r
-<key name="quad"> 64, </key>\r
-<key name="quadrangl"> 2,6,7,10,11,13,21,23,0,32,37,66,48, </key>\r
-<key name="quadrangular"> 40, </key>\r
-<key name="quality"> 9,11,13,30,32,37,48,52,64, </key>\r
-<key name="quantity"> 5, </key>\r
-<key name="quit"> 20, </key>\r
-<key name="radio"> 14,20,21,44,47,51,55,56, </key>\r
-<key name="ratio"> 9,13,30,49,52,64, </key>\r
-<key name="reassign"> 41, </key>\r
-<key name="recomput"> 41, </key>\r
-<key name="reduc"> 49, </key>\r
-<key name="reevaluat"> 49, </key>\r
-<key name="refer"> 65, </key>\r
-<key name="referenc"> 6,9,18,19, </key>\r
-<key name="refin"> 5, </key>\r
-<key name="reflect"> 65,48, </key>\r
-<key name="regular"> 12, </key>\r
-<key name="relat"> 45, </key>\r
-<key name="relation"> 6, </key>\r
-<key name="relationship"> 6, </key>\r
-<key name="remain"> 13, </key>\r
-<key name="remov"> 14,20,21,27,42,56, </key>\r
-<key name="renam"> 28, </key>\r
-<key name="renumb"> 43, </key>\r
-<key name="renumber"> 43, </key>\r
-<key name="reorient"> 14, </key>\r
-<key name="repeat"> 13, </key>\r
-<key name="replac"> 47, </key>\r
-<key name="represent"> 5,6,33,22,39,52, </key>\r
-<key name="representation"> 6, </key>\r
-<key name="requir"> 23,24,28,41,57, </key>\r
-<key name="rest"> 65,47, </key>\r
-<key name="restrict"> 6, </key>\r
-<key name="result"> 5,49,58, </key>\r
-<key name="retain"> 13, </key>\r
-<key name="retriev"> 6, </key>\r
-<key name="revers"> 65, </key>\r
-<key name="revert"> 14, </key>\r
-<key name="revolution"> 0,66, </key>\r
-<key name="revolv"> 66, </key>\r
-<key name="right"> 17,24,25,26,28,41,62, </key>\r
-<key name="rotat"> 0,66,44, </key>\r
-<key name="rotation"> 66,44, </key>\r
-<key name="rough"> 5, </key>\r
-<key name="rul"> 47, </key>\r
-<key name="run"> 45, </key>\r
-<key name="s"> 13,35,38,40,50, </key>\r
-<key name="salom"> 30,45, </key>\r
-<key name="sam"> 6,39,40,47, </key>\r
-<key name="scalar"> 9,46, </key>\r
-<key name="se"> 6,27, </key>\r
-<key name="seam"> 65, </key>\r
-<key name="search"> 29, </key>\r
-<key name="second"> 47, </key>\r
-<key name="section"> 65, </key>\r
-<key name="segment"> 5,12,30,34,31,33,22,39,50, </key>\r
-<key name="select"> 1,2,3,4,5,7,10,12,14,15,17,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,45,47,49,50,51,53,54,55,56,57,58,61,62, </key>\r
-<key name="selection"> 14,20,21,56, </key>\r
-<key name="sens"> 6, </key>\r
-<key name="separat"> 52, </key>\r
-<key name="sequenc"> 47, </key>\r
-<key name="set"> 6,7,10,12,14,20,21,24,30,33,22,39,65,40,41,45,47,49,50,56,62, </key>\r
-<key name="sew"> 47, </key>\r
-<key name="shad"> 62, </key>\r
-<key name="shall"> 5,7,10,14,21,23,24,0,36,65,66,44,47,51,55,56,57, </key>\r
-<key name="shap"> 5,6,13,65,49, </key>\r
-<key name="shift"> 10,42,49, </key>\r
-<key name="shortest"> 13,64, </key>\r
-<key name="should"> 20,0,65,41,66,44,45,47,49,58, </key>\r
-<key name="shown"> 9,49, </key>\r
-<key name="shrink"> 62, </key>\r
-<key name="sid"> 13,37,47,48, </key>\r
-<key name="similar"> 12, </key>\r
-<key name="simpl"> 6,65, </key>\r
-<key name="siz"> 49, </key>\r
-<key name="skew"> 9,30,48, </key>\r
-<key name="smesh"> 5,6,7,9,10,17,20,23,24,25,26,28,29,30,42,43,45,47,57,58,59,62, </key>\r
-<key name="smooth"> 49, </key>\r
-<key name="smp"> 65, </key>\r
-<key name="so"> 5,13,65,47,50,52, </key>\r
-<key name="sort"> 14,20,21,56, </key>\r
-<key name="spac"> 6,65,44,55, </key>\r
-<key name="specifi"> 65,42,47,49,50,53, </key>\r
-<key name="specific"> 17, </key>\r
-<key name="specify"> 10,21,0,65,42,66,44,49,51,55,58, </key>\r
-<key name="split"> 12,33,22,39,47, </key>\r
-<key name="standalon"> 20, </key>\r
-<key name="standard"> 29,45, </key>\r
-<key name="start"> 5,12,45,47,50,55, </key>\r
-<key name="step"> 15,0,66, </key>\r
-<key name="stor"> 65, </key>\r
-<key name="structur"> 18,19, </key>\r
-<key name="study"> 41,45, </key>\r
-<key name="sub"> 29,36,65,44,47,51,55, </key>\r
-<key name="submenu"> 10,42,43, </key>\r
-<key name="submesh"> 5,14,17,19,20,21,0,41,66,49,56, </key>\r
-<key name="supplementary"> 21, </key>\r
-<key name="surfac"> 6,0,65,66,47,53, </key>\r
-<key name="surround"> 6,49, </key>\r
-<key name="swept"> 0,66, </key>\r
-<key name="symmetrical"> 51, </key>\r
-<key name="symmetry"> 51, </key>\r
-<key name="t"> 6,65, </key>\r
-<key name="tak"> 56, </key>\r
-<key name="taken"> 5,17,20,65, </key>\r
-<key name="tap"> 9,30,52, </key>\r
-<key name="techniqu"> 49, </key>\r
-<key name="tetrahedron"> 6,7,10,53,54, </key>\r
-<key name="text"> 16,46,63, </key>\r
-<key name="th"> 65,47, </key>\r
-<key name="them"> 10,0,36,42,66,47,49,50, </key>\r
-<key name="thre"> 6,47,51,62, </key>\r
-<key name="thu"> 41, </key>\r
-<key name="toleranc"> 36,66, </key>\r
-<key name="tool"> 58, </key>\r
-<key name="toolbar"> 13,14,15,18,19,21,23,24,27,0,32,65,42,43,66,45,48,49,52,56,57,61,64, </key>\r
-<key name="topic"> 16,46,63, </key>\r
-<key name="topological"> 6,47, </key>\r
-<key name="topology"> 6, </key>\r
-<key name="toward"> 49, </key>\r
-<key name="transform"> 24, </key>\r
-<key name="transformation"> 36,44,47,51,55, </key>\r
-<key name="translat"> 55, </key>\r
-<key name="translation"> 55, </key>\r
-<key name="triangl"> 3,6,7,10,11,13,23,0,32,37,66,48,52,56,57, </key>\r
-<key name="triangulator"> 34,31, </key>\r
-<key name="two"> 6,13,21,23,37,65,41,47,52,55,57,58, </key>\r
-<key name="typ"> 5,6,10,16,17,20,28,0,42,66,46,47,63, </key>\r
-<key name="typical"> 49, </key>\r
-<key name="u"> 6,47, </key>\r
-<key name="unassign"> 41, </key>\r
-<key name="uniform"> 49, </key>\r
-<key name="union"> 56,57,58, </key>\r
-<key name="unit"> 47,56,57,58, </key>\r
-<key name="unles"> 40, </key>\r
-<key name="unv"> 29, </key>\r
-<key name="up"> 12,25,26,47,62, </key>\r
-<key name="updat"> 45,49,60, </key>\r
-<key name="us"> 1,2,3,4,6,7,18,19,0,33,22,36,39,65,41,66,47,49,50,53,54,58,59, </key>\r
-<key name="usag"> 9, </key>\r
-<key name="usual"> 47,49, </key>\r
-<key name="v"> 6, </key>\r
-<key name="valu"> 9,12,13,28,37,48, </key>\r
-<key name="vector"> 0,66,44,51,55,64, </key>\r
-<key name="versa"> 41, </key>\r
-<key name="vertex"> 6,65, </key>\r
-<key name="vertic"> 65, </key>\r
-<key name="vic"> 41, </key>\r
-<key name="view"> 10,11,13,14,20,21,23,24,25,26,0,32,37,41,42,43,66,45,47,48,49,52,56,57,60,61,62,64, </key>\r
-<key name="visual"> 9, </key>\r
-<key name="visualization"> 62,63, </key>\r
-<key name="volum"> 4,5,6,7,20,30,53,54, </key>\r
-<key name="vtk"> 45, </key>\r
-<key name="walk"> 65, </key>\r
-<key name="warp"> 9,30,64, </key>\r
-<key name="way"> 6,65,58, </key>\r
-<key name="weight"> 49, </key>\r
-<key name="well"> 65, </key>\r
-<key name="whil"> 42,53, </key>\r
-<key name="whol"> 0,66,49, </key>\r
-<key name="whos"> 14,20,21,56, </key>\r
-<key name="will"> 5,6,7,10,11,12,13,14,17,18,19,20,21,24,25,26,27,28,0,29,32,33,22,37,39,65,40,41,42,43,66,45,47,48,49,50,52,56,58,61,64, </key>\r
-<key name="window"> 45, </key>\r
-<key name="wir"> 1,7,34,31, </key>\r
-<key name="wirefram"> 62, </key>\r
-<key name="within"> 65,47, </key>\r
-<key name="word"> 39, </key>\r
-<key name="work"> 45, </key>\r
-<key name="would"> 10,41,47, </key>\r
-<key name="x"> 6,64, </key>\r
-<key name="y"> 6, </key>\r
-<key name="your"> 5,6,9,10,11,12,13,14,15,17,19,20,24,25,26,27,28,29,32,33,22,36,37,39,65,41,42,43,44,48,49,50,51,52,55,61,62,64, </key>\r
-<key name="z"> 6, </key>\r
-<key name="zero"> 65, </key>\r
-\r
-</ftswdata>  \r
diff --git a/doc/salome/gui/SMESH/whdata/whgdata.js b/doc/salome/gui/SMESH/whdata/whgdata.js
deleted file mode 100755 (executable)
index 7293273..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-var gIEA = new Array();\r
-function aGE(sName, sDef)\r
-{\r
-       var len = gIEA.length;\r
-       gIEA[len] = new gloEntry(sName, sDef);\r
-}\r
-\r
-function gloEntry(sName, sDef) \r
-{\r
-       this.sName = sName;\r
-       this.sDef = sDef;\r
-       this.nNKOff = 0;\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this) {\r
-               if (parent.putData) \r
-               {\r
-                       parent.putData(gIEA);\r
-               }\r
-       }\r
-}\r
-\r
-window.onload = window_OnLoad;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whgdata0.htm b/doc/salome/gui/SMESH/whdata/whgdata0.htm
deleted file mode 100755 (executable)
index 9fbefcb..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<html>\r
-<head>\r
-<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
-</head>\r
-<body>\r
-<script language="javascript" src="whgdata.js"></script>\r
-<script language="javascript">\r
-<!--\r
- aGE("Cell","Element of a mesh. Cells are determined by their connectivity. They can have 0,1,2 or 3 dimension.");\r
- aGE("Component","One integer or real value can correspond to each component of a field and to each entity of a mesh");\r
- aGE("Descendant connectivity","It is a description of the entities of the mesh with dimension N. This description is made by an ordered list of geometrical entities (nodes, edges, or faces) with dimension N-1.");\r
- aGE("Edge","An edge of a volumetric or surface mesh. It is composed of 2 or 3 nodes (2 vertex nodes and optionally one middle node).");\r
- aGE("Entity of a mesh","Geometrical component of the mesh: node, cell, face and edge. Faces and edges are only intermediate entities allowing to define the cells in descendant connectivity.");\r
- aGE("Equivalence","Equivalence represents a list of correspondance 2 by 2 of the entities of the same dimension.");\r
- aGE("Face","Face of a volumetrical cell (triangle, quadrangle).");\r
- aGE("Family","Entities of a mesh are described by a certain number   of characteristics (boundary conditions, groups membership). Families represent classes equivalent to these characteristics (two entities of a mesh can belong to the same family if they have the same characteristics). Every family is determined by a set of attributes and a list of groups membership.");\r
- aGE("Field","Field consists of one or several scalar components. One definite type is associated to the given field and the values corresponding to different components are all of the same type.");\r
- aGE("Field profile","Fields can be defined only on one part of the mesh. Profile   of the field or profile of the component of a field indicates which entities of the mesh contain values.");\r
- aGE("Group","Unordered set of entities of a mesh. One entity can belong to   several groups.");\r
- aGE("Mesh","Mesh is described by its geometry: list of nodes and list of cells which constitute this mesh. Supplementary information is added with the help of families (initial, boundary conditions).");\r
- aGE("Nodal connectivity","It is a description of an entity of the mesh by an ordered list of nodes constituting this entity.");\r
- aGE("Node","Node can be an isolated node of a mesh, a vertex or middle node of an edge. A node is associated to a point.");\r
- aGE("Point","Geometrical entity determined by its coordinates in the space.");\r
- aGE("Reference connectivity","For each type of entity of a mesh, reference connectivity define the topology of an entity.");\r
- aGE("Result","List of fields referring to one mesh.");\r
- aGE("Study","Study represents a chain of sequences of calculations.");\r
-\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/whdata/whgdata0.xml b/doc/salome/gui/SMESH/whdata/whgdata0.xml
deleted file mode 100755 (executable)
index de63592..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>\r
-<glossarydata>\r
- <entry name="Cell" value="Element of a mesh. Cells are determined by their connectivity. They can have 0,1,2 or 3 dimension." />\r
- <entry name="Component" value="One integer or real value can correspond to each component of a field and to each entity of a mesh" />\r
- <entry name="Descendant connectivity" value="It is a description of the entities of the mesh with dimension N. This description is made by an ordered list of geometrical entities (nodes, edges, or faces) with dimension N-1." />\r
- <entry name="Edge" value="An edge of a volumetric or surface mesh. It is composed of 2 or 3 nodes (2 vertex nodes and optionally one middle node)." />\r
- <entry name="Entity of a mesh" value="Geometrical component of the mesh: node, cell, face and edge. Faces and edges are only intermediate entities allowing to define the cells in descendant connectivity." />\r
- <entry name="Equivalence" value="Equivalence represents a list of correspondance 2 by 2 of the entities of the same dimension." />\r
- <entry name="Face" value="Face of a volumetrical cell (triangle, quadrangle)." />\r
- <entry name="Family" value="Entities of a mesh are described by a certain number   of characteristics (boundary conditions, groups membership). Families represent classes equivalent to these characteristics (two entities of a mesh can belong to the same family if they have the same characteristics). Every family is determined by a set of attributes and a list of groups membership." />\r
- <entry name="Field" value="Field consists of one or several scalar components. One definite type is associated to the given field and the values corresponding to different components are all of the same type." />\r
- <entry name="Field profile" value="Fields can be defined only on one part of the mesh. Profile   of the field or profile of the component of a field indicates which entities of the mesh contain values." />\r
- <entry name="Group" value="Unordered set of entities of a mesh. One entity can belong to   several groups." />\r
- <entry name="Mesh" value="Mesh is described by its geometry: list of nodes and list of cells which constitute this mesh. Supplementary information is added with the help of families (initial, boundary conditions)." />\r
- <entry name="Nodal connectivity" value="It is a description of an entity of the mesh by an ordered list of nodes constituting this entity." />\r
- <entry name="Node" value="Node can be an isolated node of a mesh, a vertex or middle node of an edge. A node is associated to a point." />\r
- <entry name="Point" value="Geometrical entity determined by its coordinates in the space." />\r
- <entry name="Reference connectivity" value="For each type of entity of a mesh, reference connectivity define the topology of an entity." />\r
- <entry name="Result" value="List of fields referring to one mesh." />\r
- <entry name="Study" value="Study represents a chain of sequences of calculations." />\r
-\r
-</glossarydata>\r
diff --git a/doc/salome/gui/SMESH/whdata/whglo.htm b/doc/salome/gui/SMESH/whdata/whglo.htm
deleted file mode 100755 (executable)
index d00c260..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<html>\r
-<head>\r
-<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
-</head>\r
-<body>\r
-<script language="javascript" src="whglo.js"></script>\r
-<script language="javascript">\r
-<!--\r
-iFM("Cell","Study","whgdata0.htm",18);\r
-\r
-//-->\r
-</script>\r
-</body>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whglo.js b/doc/salome/gui/SMESH/whdata/whglo.js
deleted file mode 100755 (executable)
index ded3d57..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-var gaFileMapping = new Array();\r
-function fileMapping(sBK, sEK, sFileName, nNum)\r
-{\r
-       this.sBK = sBK;\r
-       this.sEK = sEK;\r
-       this.sFileName = sFileName;\r
-       this.aKs = null;\r
-       this.nNum = nNum;\r
-       this.oUsedItems = null;\r
-}\r
-\r
-\r
-function iFM(sBK, sEK, sFileName, nNum)\r
-{\r
-       var i = gaFileMapping.length;\r
-       gaFileMapping[i] = new fileMapping(sBK, sEK, sFileName, nNum);  \r
-       if (i == 0) {\r
-               gaFileMapping[i].nTotal = nNum;\r
-       }\r
-       else {\r
-               gaFileMapping[i].nTotal = nNum + gaFileMapping[i - 1].nTotal;\r
-       }\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this && parent.projReady)\r
-       {\r
-               parent.projReady(gaFileMapping);\r
-       }               \r
-}\r
-\r
-window.onload = window_OnLoad;\r
diff --git a/doc/salome/gui/SMESH/whdata/whglo.xml b/doc/salome/gui/SMESH/whdata/whglo.xml
deleted file mode 100755 (executable)
index dcdf6cf..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>\r
-<glossary>\r
-<chunkinfo url="whgdata0.xml" first="Cell" last="Study" num="18" />\r
-\r
-</glossary>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whidata.js b/doc/salome/gui/SMESH/whdata/whidata.js
deleted file mode 100755 (executable)
index c8c2a05..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-// const strings\r
-var gIEA = new Array();\r
-function aIE()\r
-{\r
-       var len = gIEA.length;\r
-       gIEA[len] = new indexEntry(aIE.arguments);\r
-}\r
-\r
-function topic(sName, sURL)\r
-{\r
-       this.sName = sName;\r
-       this.sURL = sURL;\r
-}\r
-\r
-function indexEntry(fn_arguments) \r
-{\r
-       if (fn_arguments.length && fn_arguments.length >= 3) \r
-       {\r
-               this.nType = fn_arguments[0];\r
-               this.nPKOff = 0;\r
-               this.nNKOff = fn_arguments[1];\r
-               this.sName = fn_arguments[2];\r
-               this.aTopics = null;\r
-               var nLen = fn_arguments.length;\r
-               if (Math.floor(nLen / 2) * 2 == nLen)\r
-               {\r
-                       this.sTarget = fn_arguments[3];\r
-                       if (nLen > 5)\r
-                       {\r
-                               this.aTopics = new Array();\r
-                               for (var i = 0; i < (nLen - 5)/2; i++)\r
-                               {\r
-                                       this.aTopics[i] = new topic(fn_arguments[i * 2 + 4], fn_arguments[i * 2 + 5]);\r
-                               }\r
-                       }\r
-\r
-               }\r
-               else \r
-               {\r
-                       if (nLen > 4) \r
-                       {\r
-                               this.aTopics = new Array();\r
-                               for (var i = 0; i < (nLen - 4)/2; i++)\r
-                               {\r
-                                       this.aTopics[i] = new topic(fn_arguments[i * 2 + 3], fn_arguments[i * 2 + 4]);\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function getIndexTopicMappingList(nItemIndex)\r
-{\r
-       var sTopics = "";\r
-       if (gIEA.length > nItemIndex)\r
-       {\r
-               if (gIEA[nItemIndex].aTopics) \r
-               {\r
-                       var i = 0;\r
-                       var nLen = gIEA[nItemIndex].aTopics.length;\r
-                       for (i = 0; i < nLen; i ++) \r
-                       {\r
-                               sTopics += "," + gIEA[nItemIndex].aTopics[i];\r
-                       }\r
-               }\r
-       }\r
-       return sTopics;         \r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this) {\r
-               if (parent.putData) \r
-               {\r
-                       for (var i = 0; i < gIEA.length; i ++ )\r
-                       {\r
-                               if (gIEA[i].nNKOff != 0 && i + gIEA[i].nNKOff + 1 < gIEA.length)\r
-                               {\r
-                               \r
-                                       gIEA[i + gIEA[i].nNKOff + 1].nPKOff = gIEA[i].nNKOff;\r
-                               }\r
-                       }\r
-                       parent.putData(gIEA);\r
-               }\r
-       }\r
-}\r
-\r
-window.onload = window_OnLoad;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whidx.htm b/doc/salome/gui/SMESH/whdata/whidx.htm
deleted file mode 100755 (executable)
index c0aa175..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>\r
-<head>\r
-<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
-</head>\r
-<body>\r
-<script language="javascript" src="whidx.js"></script>\r
-<script language="javascript">\r
-<!--\r
-\r
--->\r
-</script>\r
-</body>\r
-</html
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whidx.js b/doc/salome/gui/SMESH/whdata/whidx.js
deleted file mode 100755 (executable)
index ded3d57..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-var gaFileMapping = new Array();\r
-function fileMapping(sBK, sEK, sFileName, nNum)\r
-{\r
-       this.sBK = sBK;\r
-       this.sEK = sEK;\r
-       this.sFileName = sFileName;\r
-       this.aKs = null;\r
-       this.nNum = nNum;\r
-       this.oUsedItems = null;\r
-}\r
-\r
-\r
-function iFM(sBK, sEK, sFileName, nNum)\r
-{\r
-       var i = gaFileMapping.length;\r
-       gaFileMapping[i] = new fileMapping(sBK, sEK, sFileName, nNum);  \r
-       if (i == 0) {\r
-               gaFileMapping[i].nTotal = nNum;\r
-       }\r
-       else {\r
-               gaFileMapping[i].nTotal = nNum + gaFileMapping[i - 1].nTotal;\r
-       }\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this && parent.projReady)\r
-       {\r
-               parent.projReady(gaFileMapping);\r
-       }               \r
-}\r
-\r
-window.onload = window_OnLoad;\r
diff --git a/doc/salome/gui/SMESH/whdata/whidx.xml b/doc/salome/gui/SMESH/whdata/whidx.xml
deleted file mode 100755 (executable)
index 3ca67b6..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>\r
-<index>\r
-\r
-</index>\r
diff --git a/doc/salome/gui/SMESH/whdata/whtdata.js b/doc/salome/gui/SMESH/whdata/whtdata.js
deleted file mode 100755 (executable)
index 64bcff9..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-var gTEA = new Array();\r
-function aTE()\r
-{\r
-       gTEA[gTEA.length] = new tocEntry(aTE.arguments);\r
-}\r
-\r
-function tocEntry(fn_arguments) \r
-{\r
-       if (fn_arguments.length < 3)    \r
-       {\r
-               alert ("data format wrong!!!");\r
-               return;\r
-       }\r
-       \r
-       this.nType = fn_arguments[0];\r
-       this.nContents = fn_arguments[1];\r
-       this.sItemName = fn_arguments[2];\r
-       \r
-       if (this.nType == 1 || this.nType == 2 || this.nType == 16)\r
-       {\r
-               if (fn_arguments.length > 3)\r
-               {\r
-                       this.sItemURL = fn_arguments[3];\r
-                       if (fn_arguments.length > 4)\r
-                       {\r
-                               this.sTarget = fn_arguments[4];\r
-                               if (fn_arguments.length > 5)\r
-                                       this.sIconRef = fn_arguments[5];\r
-                       }\r
-               }\r
-       }\r
-       if (this.nType == 4 || this.nType == 8)\r
-       {\r
-               if (fn_arguments.length > 3)\r
-               {\r
-                       this.sRefURL = fn_arguments[3];\r
-                       if (fn_arguments.length > 4)\r
-                       {\r
-                               this.sItemURL = fn_arguments[4];\r
-                               if (fn_arguments.length > 5)\r
-                               {\r
-                                       this.sTarget = fn_arguments[5];\r
-                                       if (fn_arguments.length > 6)\r
-                                               this.sIconRef = fn_arguments[6];\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this && parent.putData) {\r
-               parent.putData(gTEA);\r
-       }\r
-}\r
-window.onload = window_OnLoad;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whtdata0.htm b/doc/salome/gui/SMESH/whdata/whtdata0.htm
deleted file mode 100755 (executable)
index 827bf7b..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-<html>\r
-<head>\r
-<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
-</head>\r
-<body>\r
-<script LANGUAGE="JavaScript" SRC="whtdata.js"></script>\r
-<script language="javascript">\r
-<!--\r
- aTE(1,72,"SMESH module");\r
-   aTE(2,0,"Introduction to SMESH","files/introduction_to_smesh.htm");\r
-   aTE(2,0,"Running SMESH module","files/running_smesh_module.htm");\r
-   aTE(1,28,"Creating meshes");\r
-     aTE(2,0,"About meshes","files/about_meshes.htm");\r
-     aTE(2,0,"Importing and exporting meshes","files/importing_and_exporting_meshes.htm");\r
-     aTE(1,11,"Defining hypotheses");\r
-       aTE(2,0,"About hypotheses","files/about_hypotheses.htm");\r
-       aTE(2,0,"Arithmetic 1D hypothesis","files/arithmetic_1d.htm");\r
-       aTE(2,0,"Average Length hypothesis","files/local_length_hypothesis.htm");\r
-       aTE(2,0,"Deflection 1D hypothesis","files/deflection_1d.htm");\r
-       aTE(2,0,"Length from edges hypothesis","files/length_from_edges.htm");\r
-       aTE(2,0,"Max Element Area hypothesis","files/max._element_area_hypothesis.htm");\r
-       aTE(2,0,"Max Element Volume hypothesis","files/max._element_volume_hypothsis.htm");\r
-       aTE(2,0,"Number of segments hypothesis","files/number_of_segments_hypothesis.htm");\r
-       aTE(2,0,"Non conform mesh allowed hypothesis","files/non_conform_mesh_allowed_hypothesis.htm");\r
-       aTE(2,0,"Propagation of 1D Hypothesis on opposite edges","files/propagation_of_1d_hypothesis_on_opposite_edges.htm");\r
-       aTE(2,0,"Start and End Length hypothesis","files/start_and_end_length_hypothesis.htm");\r
-     aTE(1,10,"Defining meshing algorithms");\r
-       aTE(2,0,"About meshing algorithms","files/about_meshing_algorithms.htm");\r
-       aTE(1,1,"1D meshing algorithms");\r
-         aTE(2,0,"Wire discretization","files/1d_meshing_algorithm.htm");\r
-       aTE(1,2,"2D meshing algorithms");\r
-         aTE(2,0,"Triangle meshing algorithm","files/2d_meshing_algorithm.htm");\r
-         aTE(2,0,"Quadrangle meshing algorithm","files/2d_(quadrangle)_meshing_algorithm.htm");\r
-       aTE(1,3,"3D meshing algorithms");\r
-         aTE(2,0,"Hexahedron meshing algorithm","files/3d_meshing_algorithm.htm");\r
-         aTE(2,0,"Tetrahedron (Netgen) meshing algorithm","files/tetrahedron_(netgen)_meshing_algorithm.htm");\r
-         aTE(2,0,"Tetrahedron (GHS3D) meshing algorithm","files/tetrahedron_(ghs3d)_meshing_algorithm.htm");\r
-     aTE(2,0,"Constructing meshes","files/constructing_meshes.htm");\r
-     aTE(2,0,"Constructing submeshes","files/constructing_submeshes.htm");\r
-     aTE(2,0,"Computing meshes","files/computing_meshes.htm");\r
-   aTE(1,2,"Editing meshes");\r
-     aTE(2,0,"Reassigning hypotheses and algorithms","files/reassigning_hypotheses_and_algorithms.htm");\r
-     aTE(2,0,"Editing hypotheses and algorithms","files/editing_hypotheses.htm");\r
-   aTE(1,8,"Quality controls");\r
-     aTE(2,0,"About quality controls","files/about_quality_controls.htm");\r
-     aTE(2,0,"Length of edges","files/length_of_edges.htm");\r
-     aTE(2,0,"Area of elements","files/area_of_elements.htm");\r
-     aTE(2,0,"Taper","files/taper.htm");\r
-     aTE(2,0,"Aspect Ratio","files/aspect_ratio.htm");\r
-     aTE(2,0,"Minimum angle","files/minimum_angle.htm");\r
-     aTE(2,0,"Warping","files/warp.htm");\r
-     aTE(2,0,"Skew angle","files/skew.htm");\r
-   aTE(1,4,"Grouping elements");\r
-     aTE(2,0,"Creating groups","files/creating_groups.htm");\r
-     aTE(2,0,"Editing groups","files/editing_groups.htm");\r
-     aTE(2,0,"Using operations on groups","files/using_operations_on_groups.htm");\r
-     aTE(2,0,"Constructing groups of specific elements","files/constructing_groups_of_specific_elements.htm");\r
-   aTE(1,19,"Modifying meshes");\r
-     aTE(2,0,"Adding nodes and elements","files/adding_nodes_and_elements.htm");\r
-     aTE(2,0,"Removing nodes and elements","files/removing_nodes_and_elements.htm");\r
-     aTE(2,0,"Renumbering nodes and elements","files/renumbering_nodes_and_elements.htm");\r
-     aTE(1,5,"Transforming meshes");\r
-       aTE(2,0,"Translation","files/translation.htm");\r
-       aTE(2,0,"Rotation","files/rotation.htm");\r
-       aTE(2,0,"Symmetry","files/symmetry.htm");\r
-       aTE(2,0,"Sewing meshes","files/sewing_meshes.htm");\r
-       aTE(2,0,"Merging nodes","files/merging_nodes.htm");\r
-     aTE(2,0,"Moving nodes","files/displacing_nodes.htm");\r
-     aTE(2,0,"Diagonal inversion of elements","files/diagonal_iversion_of_elements.htm");\r
-     aTE(2,0,"Uniting two triangles","files/uniting_two_triangles.htm");\r
-     aTE(2,0,"Uniting a set of triangles","files/uniting_a_set_of_triangles.htm");\r
-     aTE(2,0,"Changing orientation of elements","files/changing_orientation_of_elements.htm");\r
-     aTE(2,0,"Cutting quadrangles","files/cutting_quadrangles.htm");\r
-     aTE(2,0,"Smoothing","files/smoothing.htm");\r
-     aTE(2,0,"Extrusion","extrusion.htm");\r
-     aTE(2,0,"Revolution","revolution.htm");\r
-     aTE(2,0,"Pattern mapping","pattern_mapping.htm");\r
-   aTE(1,3,"Mesh info");\r
-     aTE(2,0,"Viewing mesh info","files/viewing_mesh_info.htm");\r
-     aTE(2,0,"Displaying nodes numbers","files/displaying_nodes_numbers.htm");\r
-     aTE(2,0,"Displaying elements numbers","files/displaying_elements_numbers.htm");\r
-\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/whdata/whtdata0.xml b/doc/salome/gui/SMESH/whdata/whtdata0.xml
deleted file mode 100755 (executable)
index 27bb872..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>\r
-<tocdata>\r
-<book name="SMESH module" >\r
-  <item name="Introduction to SMESH" url="files/introduction_to_smesh.htm" />\r
-  <item name="Running SMESH module" url="files/running_smesh_module.htm" />\r
-  <book name="Creating meshes" >\r
-    <item name="About meshes" url="files/about_meshes.htm" />\r
-    <item name="Importing and exporting meshes" url="files/importing_and_exporting_meshes.htm" />\r
-    <book name="Defining hypotheses" >\r
-      <item name="About hypotheses" url="files/about_hypotheses.htm" />\r
-      <item name="Arithmetic 1D hypothesis" url="files/arithmetic_1d.htm" />\r
-      <item name="Average Length hypothesis" url="files/local_length_hypothesis.htm" />\r
-      <item name="Deflection 1D hypothesis" url="files/deflection_1d.htm" />\r
-      <item name="Length from edges hypothesis" url="files/length_from_edges.htm" />\r
-      <item name="Max Element Area hypothesis" url="files/max._element_area_hypothesis.htm" />\r
-      <item name="Max Element Volume hypothesis" url="files/max._element_volume_hypothsis.htm" />\r
-      <item name="Number of segments hypothesis" url="files/number_of_segments_hypothesis.htm" />\r
-      <item name="Non conform mesh allowed hypothesis" url="files/non_conform_mesh_allowed_hypothesis.htm" />\r
-      <item name="Propagation of 1D Hypothesis on opposite edges" url="files/propagation_of_1d_hypothesis_on_opposite_edges.htm" />\r
-      <item name="Start and End Length hypothesis" url="files/start_and_end_length_hypothesis.htm" />\r
-    </book>\r
-    <book name="Defining meshing algorithms" >\r
-      <item name="About meshing algorithms" url="files/about_meshing_algorithms.htm" />\r
-      <book name="1D meshing algorithms" >\r
-        <item name="Wire discretization" url="files/1d_meshing_algorithm.htm" />\r
-      </book>\r
-      <book name="2D meshing algorithms" >\r
-        <item name="Triangle meshing algorithm" url="files/2d_meshing_algorithm.htm" />\r
-        <item name="Quadrangle meshing algorithm" url="files/2d_(quadrangle)_meshing_algorithm.htm" />\r
-      </book>\r
-      <book name="3D meshing algorithms" >\r
-        <item name="Hexahedron meshing algorithm" url="files/3d_meshing_algorithm.htm" />\r
-        <item name="Tetrahedron (Netgen) meshing algorithm" url="files/tetrahedron_(netgen)_meshing_algorithm.htm" />\r
-        <item name="Tetrahedron (GHS3D) meshing algorithm" url="files/tetrahedron_(ghs3d)_meshing_algorithm.htm" />\r
-      </book>\r
-    </book>\r
-    <item name="Constructing meshes" url="files/constructing_meshes.htm" />\r
-    <item name="Constructing submeshes" url="files/constructing_submeshes.htm" />\r
-    <item name="Computing meshes" url="files/computing_meshes.htm" />\r
-  </book>\r
-  <book name="Editing meshes" >\r
-    <item name="Reassigning hypotheses and algorithms" url="files/reassigning_hypotheses_and_algorithms.htm" />\r
-    <item name="Editing hypotheses and algorithms" url="files/editing_hypotheses.htm" />\r
-  </book>\r
-  <book name="Quality controls" >\r
-    <item name="About quality controls" url="files/about_quality_controls.htm" />\r
-    <item name="Length of edges" url="files/length_of_edges.htm" />\r
-    <item name="Area of elements" url="files/area_of_elements.htm" />\r
-    <item name="Taper" url="files/taper.htm" />\r
-    <item name="Aspect Ratio" url="files/aspect_ratio.htm" />\r
-    <item name="Minimum angle" url="files/minimum_angle.htm" />\r
-    <item name="Warping" url="files/warp.htm" />\r
-    <item name="Skew angle" url="files/skew.htm" />\r
-  </book>\r
-  <book name="Grouping elements" >\r
-    <item name="Creating groups" url="files/creating_groups.htm" />\r
-    <item name="Editing groups" url="files/editing_groups.htm" />\r
-    <item name="Using operations on groups" url="files/using_operations_on_groups.htm" />\r
-    <item name="Constructing groups of specific elements" url="files/constructing_groups_of_specific_elements.htm" />\r
-  </book>\r
-  <book name="Modifying meshes" >\r
-    <item name="Adding nodes and elements" url="files/adding_nodes_and_elements.htm" />\r
-    <item name="Removing nodes and elements" url="files/removing_nodes_and_elements.htm" />\r
-    <item name="Renumbering nodes and elements" url="files/renumbering_nodes_and_elements.htm" />\r
-    <book name="Transforming meshes" >\r
-      <item name="Translation" url="files/translation.htm" />\r
-      <item name="Rotation" url="files/rotation.htm" />\r
-      <item name="Symmetry" url="files/symmetry.htm" />\r
-      <item name="Sewing meshes" url="files/sewing_meshes.htm" />\r
-      <item name="Merging nodes" url="files/merging_nodes.htm" />\r
-    </book>\r
-    <item name="Moving nodes" url="files/displacing_nodes.htm" />\r
-    <item name="Diagonal inversion of elements" url="files/diagonal_iversion_of_elements.htm" />\r
-    <item name="Uniting two triangles" url="files/uniting_two_triangles.htm" />\r
-    <item name="Uniting a set of triangles" url="files/uniting_a_set_of_triangles.htm" />\r
-    <item name="Changing orientation of elements" url="files/changing_orientation_of_elements.htm" />\r
-    <item name="Cutting quadrangles" url="files/cutting_quadrangles.htm" />\r
-    <item name="Smoothing" url="files/smoothing.htm" />\r
-    <item name="Extrusion" url="extrusion.htm" />\r
-    <item name="Revolution" url="revolution.htm" />\r
-    <item name="Pattern mapping" url="pattern_mapping.htm" />\r
-  </book>\r
-  <book name="Mesh info" >\r
-    <item name="Viewing mesh info" url="files/viewing_mesh_info.htm" />\r
-    <item name="Displaying nodes numbers" url="files/displaying_nodes_numbers.htm" />\r
-    <item name="Displaying elements numbers" url="files/displaying_elements_numbers.htm" />\r
-  </book>\r
-</book>\r
-\r
-</tocdata>\r
diff --git a/doc/salome/gui/SMESH/whdata/whtoc.htm b/doc/salome/gui/SMESH/whdata/whtoc.htm
deleted file mode 100755 (executable)
index 5f8c14e..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<html>\r
-<head>\r
-<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
-</head>\r
-<body>\r
-<script LANGUAGE="JavaScript" SRC="whtoc.js"></script>\r
-<script language="javascript">\r
-<!--\r
-  setRoot("whtdata0.htm");\r
-\r
-//-->\r
-</script>\r
-</body>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whtoc.js b/doc/salome/gui/SMESH/whdata/whtoc.js
deleted file mode 100755 (executable)
index 1456050..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-// const strings\r
-var gaProj = new Array();\r
-var gsRoot = "";\r
-\r
-function setRoot(sRoot)\r
-{\r
-       gsRoot = sRoot\r
-}\r
-\r
-function aPE(sProjPath, sRootPath)\r
-{\r
-       gaProj[gaProj.length] = new tocProjEntry(sProjPath, sRootPath);\r
-}\r
-\r
-function tocProjEntry(sProjPath, sRootPath) \r
-{\r
-       this.sPPath = sProjPath;\r
-       this.sRPath = sRootPath;\r
-}\r
-\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this && parent.projReady) {\r
-               parent.projReady(gsRoot, gaProj);\r
-       }\r
-}\r
-window.onload = window_OnLoad;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whtoc.xml b/doc/salome/gui/SMESH/whdata/whtoc.xml
deleted file mode 100755 (executable)
index bffb89a..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>\r
-<toc root="whtdata0.xml">\r
-\r
-</toc>\r
diff --git a/doc/salome/gui/SMESH/whestart.ico b/doc/salome/gui/SMESH/whestart.ico
deleted file mode 100755 (executable)
index 110f183..0000000
Binary files a/doc/salome/gui/SMESH/whestart.ico and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whfbody.htm b/doc/salome/gui/SMESH/whfbody.htm
deleted file mode 100755 (executable)
index 300d23b..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Result</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whlang.js"></script>\r
-<script language="javascript1.2" src="whfhost.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-if(window.gbWhFHost)\r
-{\r
-       setBackgroundcolor("White"); \r
-       \r
-       setFont("Normal", "Tahoma","8pt","Black","Normal","Normal","none");\r
-       setFont("Error", "Tahoma","8pt","Black","Normal","Normal","none");\r
-       setFont("Hover", "Tahoma","8pt","Navy","Normal","Normal","underline");\r
-       setActiveBgColor("Silver");\r
-       \r
-       \r
-       FtsWriteClassStyle();\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" scroll="auto" bgcolor="white">\r
-</body>\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whfdhtml.htm b/doc/salome/gui/SMESH/whfdhtml.htm
deleted file mode 100755 (executable)
index ec6c521..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Frame</TITLE>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-</head>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script LANGUAGE="javascript1.2">\r
-<!--\r
-var gbIndexLayerInit = false;\r
-var strWrite="";\r
-if (window.gbWhVer&&window.gbWhProxy&&window.gbWhMsg)\r
-{\r
-       if (gbMac)\r
-               strWrite="<FRAMESET ROWS='45,100%' framespacing=0  frameborder=0>";\r
-       else\r
-               strWrite="<FRAMESET ROWS='60,100%' framespacing=0  frameborder=0>";\r
-       strWrite +="<FRAME SRC='whfform.htm' title='search form frame' name='ftsform' noresize='yes' scrolling='no'>";\r
-       strWrite +="<FRAME SRC='whfbody.htm' title='search result frame' name='ftsbody' scrolling='yes'>";\r
-       strWrite +="</FRAMESET>";\r
-       document.write(strWrite);\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/whfform.htm b/doc/salome/gui/SMESH/whfform.htm
deleted file mode 100755 (executable)
index e40b10b..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Form</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-</head>\r
-<style>\r
-<!--\r
-body {margin:0;}\r
--->\r
-</style>\r
-<body bgcolor="#c0c0c0">\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whform.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-var gstrInput = "";\r
-function ftsLookup(bCR)\r
-{\r
-       if (bCR)\r
-       {\r
-               var strInput = document.FtsInputForm.keywordField.value.toUpperCase();\r
-               if (strInput != "") {\r
-                       var oMsg = new whMessage(WH_MSG_SEARCHFTSKEY, this, 1, strInput);\r
-                       if (!SendMessage(oMsg))\r
-                       {\r
-                               gstrInput = strInput;\r
-                       }\r
-                       else\r
-                               gstrInput = "";\r
-               }\r
-\r
-               if (gbMac) {\r
-                       document.FtsInputForm.keywordField.focus();\r
-               }\r
-       }\r
-       return;\r
-}\r
-\r
-function beforeInit()\r
-{\r
-       var oParam = new Object();\r
-       oParam.sValue = "";\r
-       var oMsg = new whMessage(WH_MSG_GETSEARCHS, this, 1, oParam);\r
-       if (SendMessage(oMsg))\r
-       {\r
-               if (oParam.sValue != "" && oParam.sValue != "- Search -")\r
-               {\r
-                       document.FtsInputForm.keywordField.value = oParam.sValue;\r
-                       gfunLookUp(true);\r
-               }\r
-       }\r
-       init(); \r
-}\r
-\r
-function window_unload()\r
-{\r
-       UnRegisterListener2(this, WH_MSG_SHOWTOC);\r
-       UnRegisterListener2(this, WH_MSG_SHOWIDX);\r
-       UnRegisterListener2(this, WH_MSG_SHOWFTS);\r
-       UnRegisterListener2(this, WH_MSG_SHOWGLO);\r
-       UnRegisterListener2(this, WH_MSG_SEARCHTHIS);\r
-       UnRegisterListener2(this, WH_MSG_BACKUPSEARCH);\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       if (oMsg.nMessageId == WH_MSG_SHOWFTS)\r
-       {\r
-               document.FtsInputForm.keywordField.focus();\r
-       }\r
-       else if (oMsg.nMessageId == WH_MSG_SHOWIDX ||\r
-               oMsg.nMessageId == WH_MSG_SHOWTOC || \r
-               oMsg.nMessageId == WH_MSG_SHOWGLO)\r
-       {\r
-               document.FtsInputForm.keywordField.blur();\r
-       }\r
-       else if (oMsg.nMessageId == WH_MSG_SEARCHTHIS)\r
-       {\r
-               if (oMsg.oParam != "- Search -")\r
-               {\r
-                       document.FtsInputForm.keywordField.value = oMsg.oParam;\r
-                       gfunLookUp(true);\r
-               }\r
-       }\r
-       else if (oMsg.nMessageId == WH_MSG_BACKUPSEARCH)\r
-       {\r
-               if (gstrInput)\r
-               {\r
-                       oMsg.oParam = gstrInput;\r
-                       gstrInput = "";\r
-                       return false;\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-if (window.gbWhForm)\r
-{\r
-       RegisterListener2(this, WH_MSG_SHOWTOC);\r
-       RegisterListener2(this, WH_MSG_SHOWIDX);\r
-       RegisterListener2(this, WH_MSG_SHOWFTS);\r
-       RegisterListener2(this, WH_MSG_SHOWGLO);\r
-       RegisterListener2(this, WH_MSG_SEARCHTHIS);\r
-       RegisterListener2(this, WH_MSG_BACKUPSEARCH);\r
-       gfunLookUp = ftsLookup;\r
-       gfunInit = null;\r
-       gstrFormName = "FtsInputForm"\r
-       gsTitle = "Type in the word(s) to search for:";\r
-       gsTitle = "Type in the word(s) to search for:";\r
-       setGoImage1("wht_go.gif");\r
-       setBackgroundcolor("White");\r
-       \r
-       setBtnType("image");\r
-       \r
-       \r
-       \r
-       setGoText("Go");\r
-       setFont("Title", "Tahoma","8pt","Navy","Normal","Normal","none");\r
-       \r
-       \r
-       document.write(getFormHTML());\r
-       writeFormStyle();\r
-       window.onload = beforeInit;\r
-       window.onunload=window_unload;\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</body>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whfhost.js b/doc/salome/gui/SMESH/whfhost.js
deleted file mode 100755 (executable)
index a30564d..0000000
+++ /dev/null
@@ -1,916 +0,0 @@
-var gsSK2=null;\r
-var gsSK=null;\r
-var gsFtsBreakChars="\t\r\n\"\\ .,!@#$%^&*()~'`:;<>?/{}[]|+-=\x85\x92\x93\x94\x95\x96\x97\x99\xA9\xAE\xB7";\r
-var gnCLF=0;\r
-var gsHelpCannotSearch="Cannot search for that phrase.";\r
-var gsNoTopics="No Topics Found.";\r
-var gsLoadingDivID="LoadingDiv";\r
-var gsLoadingMsg="Loading data, please wait...";\r
-var gsSearchMsg="Searching...";\r
-var gsResultDivID="ResultDiv";\r
-var gaaFCD=new Array();\r
-var gaaFTCD=new Array();\r
-var goCF=null;\r
-var goCTF=null;\r
-var gaTI=null;\r
-var gnCurrentOp=0;\r
-var gbNot=false;\r
-var gbReady=false;\r
-var gnLoadFts=1;\r
-var gnCacheLimits=5;\r
-var gaCCD=new Array();\r
-var gbXML=false;\r
-var gaData=new Array();\r
-var gsBgColor="#ffffff";\r
-var gsBgImage="";\r
-var gsMargin="0pt";\r
-var gsIndent="0pt";\r
-var gsCheckKey=null;\r
-var gnIndexNum=0;\r
-var gaFtsContentsCon=null;\r
-var gaTopicCheckInfo=null;\r
-var gnTopicCheck=0;\r
-var goFont=null;\r
-var goErrFont=null;\r
-var goHoverFont=null;\r
-var gsABgColor="#cccccc";\r
-var gbWhFHost=false;\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       gsBgImage=sBgImage;\r
-}\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       gsBgColor=sBgColor;\r
-}\r
-\r
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
-{\r
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
-       if(sType=="Normal")\r
-               goFont=vFont;\r
-       else if(sType=="Error")\r
-               goErrFont=vFont;\r
-       else if(sType=="Hover")\r
-               goHoverFont=vFont;\r
-}\r
-\r
-function setActiveBgColor(sBgColor)\r
-{\r
-       gsABgColor=sBgColor;\r
-}\r
-\r
-function setMargin(sMargin)\r
-{\r
-       gsMargin=sMargin;\r
-}\r
-\r
-function setIndent(sIndent)\r
-{\r
-       gsIndent=sIndent;\r
-}\r
-\r
-function updateCache(oCF)\r
-{\r
-       var len=gaCCD.length;\r
-       if(len<gnCacheLimits*gnCLF)\r
-               gaCCD[len]=oCF;\r
-       else{\r
-               gaCCD[0].aTopics=null;\r
-               gaCCD[0].aFtsKeys=null;\r
-               removeItemFromArray(gaCCD,0);\r
-               gaCCD[len-1]=oCF;\r
-       }\r
-}\r
-\r
-function addFtsInfo(sPPath,sDPath,sFtsFile)\r
-{\r
-       gaData[gaData.length]=new ftsInfo(sPPath,sDPath,sFtsFile);\r
-}\r
-\r
-function putDataXML(xmlDoc,sDocPath)\r
-{\r
-       if(gnLoadFts==1)\r
-       {\r
-               var node=xmlDoc.lastChild;\r
-               if(node)\r
-               {\r
-                       var oChild=node.firstChild;\r
-                       var aFCD=new Array();\r
-                       var aFTCD=new Array();\r
-                       while(oChild)\r
-                       {\r
-                               if(oChild.nodeName=="chunkinfo")\r
-                               {\r
-                                       var sURL=oChild.getAttribute("url");\r
-                                       var sFirst=oChild.getAttribute("first");\r
-                                       var sLast=oChild.getAttribute("last");\r
-                                       if(sURL&&sFirst&&sLast)\r
-                                       {\r
-                                               item=new Object();\r
-                                               item.sStartKey=sFirst;\r
-                                               item.sEndKey=sLast;\r
-                                               item.sFileName=sURL;\r
-                                               aFCD[aFCD.length]=item;\r
-                                       }\r
-                               }\r
-                               else if(oChild.nodeName=="tchunkinfo")\r
-                               {\r
-                                       var sURL=oChild.getAttribute("url");\r
-                                       var nB=parseInt(oChild.getAttribute("first"));\r
-                                       var nE=parseInt(oChild.getAttribute("last"));\r
-                                       if(sURL&&sFirst&&sLast)\r
-                                       {\r
-                                               item=new Object();\r
-                                               item.nBegin=nB;\r
-                                               item.nEnd=nE;\r
-                                               item.sFileName=sURL;\r
-                                               aFTCD[aFTCD.length]=item;\r
-                                       }\r
-\r
-                               }\r
-                               oChild=oChild.nextSibling;\r
-                       }\r
-                       ftsReady(aFCD,aFTCD);\r
-               }\r
-       }\r
-       else if(gnLoadFts==3)\r
-       {\r
-               var node=xmlDoc.lastChild;\r
-               if(node)\r
-               {\r
-                       var oChild=node.firstChild;\r
-                       var aTopics=new Array();\r
-                       while(oChild)\r
-                       {\r
-                               if(oChild.nodeName=="topic")\r
-                               {\r
-                                       var name=oChild.getAttribute("name");\r
-                                       var sURL=oChild.getAttribute("url");\r
-                                       if(name&&name.length>0&&sURL)\r
-                                       {\r
-                                               var topic=new Object();\r
-                                               topic.sTopicTitle=name;\r
-                                               topic.sTopicURL=sURL;\r
-                                               aTopics[aTopics.length]=topic;\r
-                                       }\r
-                               }\r
-                               oChild=oChild.nextSibling;\r
-                       }\r
-                       putFtsTData(aTopics);\r
-               }\r
-       }\r
-       else if(gnLoadFts==2)\r
-       {\r
-               var node=xmlDoc.lastChild;\r
-               if(node)\r
-               {\r
-                       var oChild=node.firstChild;\r
-                       var aFtsContents=new Array();\r
-                       while(oChild)\r
-                       {\r
-                               if(oChild.nodeName=="key")\r
-                               {\r
-                                       var name=oChild.getAttribute("name");\r
-                                       if(name&&name.length>0)\r
-                                       {\r
-                                               var item=new Object();\r
-                                               item.sItemName=name;\r
-                                               aFtsContents[aFtsContents.length]=item;\r
-                                               var oChildChild=oChild.firstChild;\r
-                                               while(oChildChild)\r
-                                               {\r
-                                                       if(oChildChild.nodeName=="#text")\r
-                                                       {\r
-                                                               var sIDs=oChildChild.nodeValue;\r
-                                                               if(sIDs)\r
-                                                               {\r
-                                                                       var nBPos=0;\r
-                                                                       do\r
-                                                                       {\r
-                                                                               var nPos=sIDs.indexOf(",",nBPos);\r
-                                                                               var sID=null;\r
-                                                                               if(nPos!=-1)\r
-                                                                                       sID=sIDs.substring(nBPos,nPos);\r
-                                                                               else\r
-                                                                                       sID=sIDs.substring(nBPos);\r
-\r
-                                                                               if(sID)\r
-                                                                               {\r
-                                                                                       var id=parseInt(sID);\r
-                                                                                       if(!isNaN(id))\r
-                                                                                       {\r
-                                                                                               if(!item.aTopics)\r
-                                                                                                       item.aTopics=new Array();\r
-                                                                                               item.aTopics[item.aTopics.length]=id;\r
-                                                                                       }\r
-                                                                               }\r
-                                                                               nBPos=nPos+1;\r
-                                                                       }while(nBPos!=0&&nBPos<sIDs.length);\r
-                                                               }\r
-                                                       }\r
-                                                       oChildChild=oChildChild.nextSibling;\r
-                                               }\r
-                                       }\r
-                               }\r
-                               oChild=oChild.nextSibling;\r
-                       }\r
-                       putFtsWData(aFtsContents);\r
-               }\r
-       }\r
-}\r
-\r
-function ftsInfo(sPPath,sDPath,sFtsFile)\r
-{\r
-       this.sPPath=sPPath;\r
-       this.sDPath=sDPath;\r
-       this.sFtsFile=sFtsFile;\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if(gsBgImage&&gsBgImage.length>0)\r
-       {\r
-               document.body.background=gsBgImage;\r
-       }\r
-       if(gsBgColor&&gsBgColor.length>0)\r
-       {\r
-               document.body.bgColor=gsBgColor;\r
-       }\r
-       writeResultDiv();\r
-       loadFts();\r
-       var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function writeResultDiv()\r
-{\r
-       var sHTML="<div id=\""+gsResultDivID+"\" style=\"POSITION:absolute;\"></div>";\r
-       document.body.insertAdjacentHTML("beforeEnd",sHTML);\r
-}\r
-\r
-function loadFts()\r
-{\r
-       if(!gbReady)\r
-       {\r
-               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);\r
-               if(SendMessage(oResMsg)&&oResMsg.oParam)\r
-               {\r
-                       gbReady=true;\r
-                       var oProj=oResMsg.oParam;\r
-                       var aProj=oProj.aProj;\r
-                       gbXML=oProj.bXML;\r
-                       if(aProj.length>0)\r
-                       {\r
-                               var sLangId=aProj[0].sLangId;\r
-                               for(var i=0;i<aProj.length;i++)\r
-                               {\r
-                                       if(aProj[i].sFts!=null&&aProj[i].sFts!=""&&aProj[i].sLangId==sLangId)\r
-                                       {\r
-                                               addFtsInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sFts);\r
-                                       }\r
-                               }\r
-                       }\r
-                       loadFD();\r
-\r
-               }                               \r
-       }\r
-}\r
-\r
-function loadFD()\r
-{\r
-       if(gnCLF<gaData.length)\r
-       {\r
-               gnLoadFts=1;\r
-               loadData2(gaData[gnCLF].sPPath+gaData[gnCLF].sDPath+gaData[gnCLF].sFtsFile);\r
-       }\r
-       else \r
-       {\r
-               var oMsg = new whMessage(WH_MSG_BACKUPSEARCH, this, 1, null);\r
-               if (SendMessage(oMsg))\r
-               {\r
-                       if (oMsg.oParam)\r
-                       {\r
-                               gsSK=oMsg.oParam.toLowerCase();\r
-                               findFTSKey();\r
-                       }\r
-               }\r
-               RegisterListener2(this, WH_MSG_SEARCHFTSKEY);\r
-       }\r
-}\r
-\r
-function loadData2(sFile)\r
-{\r
-       if(gbXML)\r
-               loadDataXML(sFile);\r
-       else\r
-               loadData(sFile);\r
-}\r
-\r
-function findFTSKey()\r
-{\r
-       gaTI=new Array();\r
-       gnCurrentOp=0;\r
-       gbNot=false;\r
-       displayMsg(gsSearchMsg);\r
-       if(gsSK!="")\r
-               findOneKey();\r
-}\r
-\r
-function findOneKey()\r
-{\r
-       if(gsSK && gsSK!="")\r
-       {\r
-               var sInput=gsSK;\r
-               var sCW="";\r
-               var nS=-1;\r
-               var nSep=-1;\r
-               for(var nChar=0;nChar<gsFtsBreakChars.length;nChar++){\r
-                       var nFound=sInput.indexOf(gsFtsBreakChars.charAt(nChar));\r
-                       if((nFound!=-1)&&((nS==-1)||(nFound<nS))){\r
-                               nS=nFound;\r
-                               nSep=nChar;\r
-                       }\r
-               }\r
-               if(nS==-1){\r
-                       sCW=sInput;\r
-                       sInput="";\r
-               }else{\r
-                       sCW=sInput.substring(0,nS);\r
-                       sInput=sInput.substring(nS+1);\r
-               }\r
-\r
-               gsSK=sInput;\r
-               \r
-               if((sCW=="or")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="|"))){\r
-                       gnCurrentOp=0;\r
-                       gbNot=false;\r
-               }else if((sCW=="and")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="&"))){\r
-                       gnCurrentOp=1;\r
-                       gbNot=false;\r
-               }else if((sCW=="not")||\r
-                       ((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="~"))){\r
-                       gbNot=!gbNot;\r
-               }else if(sCW!=""&&!IsStopWord(sCW,gaFtsStop)){\r
-                       var sCurrentStem=GetStem(sCW);\r
-                       gsCW=sCurrentStem;\r
-                       ftsFindKeyword();\r
-                       return;\r
-               }\r
-               findOneKey();\r
-               return;\r
-       }\r
-       else{\r
-               displayTopics();\r
-               checkAgain();\r
-       }\r
-}\r
-\r
-function checkAgain()\r
-{\r
-       gsSK=gsSK2;\r
-       gsSK2=null;\r
-       if(gsSK!=null)\r
-               setTimeout("findFTSKey();",1);\r
-}\r
-\r
-function displayTopics()\r
-{\r
-       var sHTML="";\r
-       var sLine="";\r
-       for(var i=0;i<gaTI.length;i++){\r
-               sLine+="<dt><nobr><a href='"+_textToHtml(gaTI[i].sTopicURL)+"'>"+_textToHtml(gaTI[i].sTopicTitle)+"</a></nobr></dt>";\r
-               if(i>>4<<4==i)\r
-               {\r
-                       sHTML+=sLine;\r
-                       sLine="";\r
-               }\r
-       }\r
-       if(sLine.length>0)\r
-               sHTML+=sLine;\r
-\r
-       if(sHTML.length==0)\r
-               sHTML="<P>"+gsNoTopics+"</P>"\r
-       else\r
-               sHTML="<dl>"+sHTML+"</dl>";\r
-\r
-       var resultDiv=getElement(gsResultDivID);\r
-       if(resultDiv)\r
-               resultDiv.innerHTML=sHTML;\r
-}\r
-\r
-function displayMsg(sErrorMsg)\r
-{\r
-       var sHTML="<P>"+sErrorMsg+"</P>";\r
-\r
-       var resultDiv=getElement(gsResultDivID);\r
-       if(resultDiv)\r
-               resultDiv.innerHTML=sHTML;\r
-}\r
-\r
-function ftsFindKeyword()\r
-{\r
-       var sKey=gsCW;\r
-       var bNeedLoad=false;\r
-       var aFtsContentsCon=null;\r
-       var s=0;\r
-       if(sKey==null) return;\r
-       if(!gsCheckKey||sKey!=gsCheckKey||gnIndexNum==0)\r
-       {\r
-               aFtsContentsCon=new Array();\r
-               gnCheck=0;\r
-               gsCheckKey=sKey;\r
-               gnTopicCheck=0;\r
-               gaTopicCheckInfo=null;\r
-       }\r
-       else{\r
-               s=gnIndexNum;\r
-               aFtsContentsCon=gaFtsContentsCon;\r
-       }\r
-       for(var i=gnCheck;i<gaaFCD.length;i++)\r
-       {\r
-               var oCF=getChunkedFts(i,sKey);\r
-               if(oCF)\r
-               {\r
-                       if(!oCF.aFtsKeys&&oCF.sFileName!=null)\r
-                       {\r
-                               bNeedLoad=true;\r
-                               oCF.nProjId=i;\r
-                               goCF=oCF;\r
-                               gnIndexNum=s;\r
-                               gnCheck=i;\r
-                               gaFtsContentsCon=aFtsContentsCon;\r
-                               gnLoadFts=2;\r
-                               beginLoading();\r
-                               loadData2(gaData[i].sPPath+gaData[i].sDPath+oCF.sFileName);\r
-                               break;\r
-                       }\r
-                       else{\r
-                               aFtsContentsCon[s++]=oCF;\r
-                       }\r
-               }\r
-       }\r
-       if(!bNeedLoad)\r
-       {\r
-               var aTI=gaTopicCheckInfo;\r
-               for(var m=gnTopicCheck;m<aFtsContentsCon.length;m++)\r
-               {\r
-                       var aTIPart=getTopics(aFtsContentsCon[m],sKey);\r
-                       if(aTIPart==null)\r
-                       {\r
-                               gnCheck=gaaFCD.length;\r
-                               gnTopicCheck=m;\r
-                               gaTopicCheckInfo=aTI;\r
-                               gaFtsContentsCon=aFtsContentsCon;\r
-                               return;\r
-                       }\r
-                       if(m==0)\r
-                               aTI=aTIPart;\r
-                       else\r
-                               aTI=mergeTopics(aTI,aTIPart);\r
-               }\r
-               if(mergewithPreviousResult(aTI))\r
-                       findOneKey();\r
-               else\r
-                       checkAgain();\r
-       }\r
-}\r
-\r
-function mergewithPreviousResult(aTI)\r
-{\r
-       if(aTI!=null&&aTI.length!=0)\r
-       {\r
-               var nNumTopics=aTI.length;\r
-               if(gnCurrentOp==0){\r
-                       if(gbNot){\r
-                               displayMsg(gsHelpCannotSearch);\r
-                               return false;\r
-                       }else{\r
-                               var aLS,aSS;\r
-                               if(gaTI.length>=aTI.length)\r
-                               {\r
-                                       aLS=gaTI;\r
-                                       aSS=aTI;\r
-                               }\r
-                               else\r
-                               {\r
-                                       aLS=aTI;\r
-                                       aSS=gaTI;\r
-                               }\r
-                               var s=0;\r
-                               for(var i=0;i<aSS.length;i++)\r
-                               {\r
-                                       var bAlreadyThere=false;\r
-                                       for(var j=s;j<aLS.length;j++)\r
-                                       {\r
-                                               if(aSS[i].equalTo(aLS[j]))\r
-                                               {\r
-                                                       bAlreadyThere=true;\r
-                                                       s=j;\r
-                                                       break;\r
-                                               }\r
-                                       }\r
-                                       if(!bAlreadyThere)\r
-                                       {\r
-                                               insertTopic(aLS,aSS[i]);\r
-                                       }\r
-                               }\r
-                               gaTI=aLS;\r
-                       }\r
-               }else if(gnCurrentOp==1){\r
-                       if(gbNot){\r
-                               var s=0;\r
-                               for(var i=0;i<aTI.length;i++)\r
-                               {\r
-                                       for(var j=s;j<gaTI.length;j++)\r
-                                       {\r
-                                               if(aTI[i].equalTo(gaTI[j]))\r
-                                               {\r
-                                                       removeItemFromArray(gaTI,j);\r
-                                                       s=j;\r
-                                                       break;\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }else{\r
-                               var s=0;\r
-                               for(var i=0;i<gaTI.length;i++)\r
-                               {\r
-                                       var bFound=false;\r
-                                       for(var j=s;j<aTI.length;j++)\r
-                                       {\r
-                                               if(gaTI[i].equalTo(aTI[j]))\r
-                                               {\r
-                                                       bFound=true;\r
-                                                       s=j;\r
-                                               }\r
-                                       }\r
-                                       if(!bFound)\r
-                                       {\r
-                                               removeItemFromArray(gaTI,i);\r
-                                               i--;\r
-                                       }\r
-                               }                               \r
-                       }\r
-               }\r
-       }else{\r
-               if((gnCurrentOp==1)&&(!gbNot)){\r
-                       gaTI.length=0;\r
-               }else if((gnCurrentOp==0)&&(gbNot)){\r
-                       displayMsg(gsHelpCannotSearch);\r
-                       return false;\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-function insertTopic(aTI,oTI)\r
-{\r
-       var nB=0;\r
-       var nE=aTI.length-1;\r
-       if(nE>=0)\r
-       {\r
-               var nM;\r
-               var bFound=false;\r
-               do{\r
-                       nM=(nB+nE)>>1;\r
-                       if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)>0)\r
-                               nE=nM-1;\r
-                       else if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0)\r
-                               nB=nM+1;\r
-                       else\r
-                       {\r
-                               bFound=true;\r
-                               break;\r
-                       }\r
-               }while(nB<=nE);\r
-               if(bFound)\r
-                       insertItemIntoArray(aTI,nM,oTI);\r
-               else\r
-               {\r
-                       if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0)\r
-                               insertItemIntoArray(aTI,nM+1,oTI);\r
-                       else\r
-                               insertItemIntoArray(aTI,nM,oTI);\r
-               }\r
-       }\r
-       else\r
-               aTI[0]=oTI;\r
-}\r
-\r
-function mergeTopics(aTI1,aTI2)\r
-{\r
-       var i1=0;\r
-       var i2=0;\r
-       var len1=aTI1.length;\r
-       var len2=aTI2.length;\r
-       var aTopicNew=new Array();\r
-       var i=0;\r
-       while(i1<len1||i2<len2)\r
-       {\r
-               if(i1<len1&&i2<len2)\r
-               {\r
-                       if(compare(aTI1[i1].sTopicTitle,aTI2[i2].sTopicTitle)<0)\r
-                               aTopicNew[i++]=aTI1[i1++];\r
-                       else\r
-                               aTopicNew[i++]=aTI2[i2++];\r
-               }\r
-               else if(i1<len1)\r
-                       aTopicNew[i++]=aTI1[i1++];\r
-               else if(i2<len2)\r
-                       aTopicNew[i++]=aTI2[i2++];\r
-       }\r
-       return aTopicNew;\r
-}\r
-\r
-function getTopics(oCF,sKey)\r
-{\r
-       var aTIPart=new Array();\r
-       if(oCF&&oCF.aFtsKeys)\r
-       {\r
-               var keys=oCF.aFtsKeys;\r
-               var nB=0;\r
-               var nE=keys.length-1;\r
-               var nM=-1;\r
-               var bFound=false;\r
-               do{\r
-                       nM=(nB+nE)>>1;\r
-                       if(compare(keys[nM].sItemName,sKey)>0)\r
-                               nE=nM-1;\r
-                       else if(compare(keys[nM].sItemName,sKey)<0)\r
-                               nB=nM+1;\r
-                       else{\r
-                               bFound=true;\r
-                               break;\r
-                       }\r
-               }while(nB<=nE);\r
-               if(bFound)\r
-               {\r
-                       if(keys[nM].aTopics)\r
-                       {\r
-                               for(var i=0;i<keys[nM].aTopics.length;i++)\r
-                               {\r
-                                       var oTC=getTopicChunk(gaaFTCD[oCF.nProjId],keys[nM].aTopics[i]);\r
-                                       if(oTC.aTopics)\r
-                                       {\r
-                                               aTIPart[aTIPart.length]=\r
-                                                       new topicInfo(oTC.aTopics[keys[nM].aTopics[i]-oTC.nBegin].sTopicTitle,\r
-                                                               gaData[oCF.nProjId].sPPath+oTC.aTopics[keys[nM].aTopics[i]-oTC.nBegin].sTopicURL);\r
-                                       }\r
-                                       else{\r
-                                               goCTF=oTC;\r
-                                               gnLoadFts=3;\r
-                                               beginLoading();\r
-                                               loadData2(gaData[oCF.nProjId].sPPath+gaData[oCF.nProjId].sDPath+oTC.sFileName);\r
-                                               return null;\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-       return aTIPart;\r
-}\r
-\r
-function getTopicChunk(aFTCD,nTopicId)\r
-{\r
-       if(aFTCD&&aFTCD.length)\r
-       {\r
-               var nB=0;\r
-               var nE=aFTCD.length-1;\r
-               var nM=-1;\r
-               var bFound=false;\r
-               do{\r
-                       nM=(nB+nE)>>1;\r
-                       if(aFTCD[nM].nBegin>nTopicId)\r
-                               nE=nM-1;\r
-                       else if(aFTCD[nM].nEnd<nTopicId)\r
-                               nB=nM+1;\r
-                       else{\r
-                               bFound=true;\r
-                               break;\r
-                       }\r
-               }while(nB<=nE);\r
-               if(bFound)\r
-                       return aFTCD[nM];\r
-       }\r
-       return null;\r
-}\r
-\r
-function endLoading()\r
-{\r
-       var oDiv=getElement(gsLoadingDivID);\r
-       if(oDiv)\r
-               oDiv.style.visibility="hidden";\r
-}\r
-\r
-function beginLoading()\r
-{\r
-       var oDiv=getElement(gsLoadingDivID);\r
-       if(!oDiv)\r
-       {\r
-               document.body.insertAdjacentHTML("afterBegin",writeLoadingDiv());\r
-               oDiv=getElement(gsLoadingDivID);\r
-       }\r
-       \r
-       if(oDiv)\r
-       {\r
-               oDiv.style.top=document.body.scrollTop;\r
-               oDiv.style.visibility="visible";\r
-       }\r
-}\r
-\r
-function writeLoadingDiv(nIIdx)\r
-{\r
-       return "<div id=\""+gsLoadingDivID+"\" style=\"position:absolute;top:0;left:0;z-index:600;visibility:hidden;padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";\r
-}\r
-\r
-function topicInfo(sTopicTitle,sTopicURL)\r
-{\r
-       this.sTopicTitle=sTopicTitle;\r
-       this.sTopicURL=sTopicURL;\r
-       this.equalTo=function(oTI)\r
-       {\r
-               return ((this.sTopicTitle==oTI.sTopicTitle)&&\r
-                       (this.sTopicURL==oTI.sTopicURL));\r
-       }\r
-}\r
-\r
-function getChunkedFts(nIndex,sKey)\r
-{\r
-       var oCF=null;\r
-       if(nIndex<gaaFCD.length)\r
-       {\r
-               var len=gaaFCD[nIndex].length;\r
-               if(len>0)\r
-               {\r
-                       var nB=0;\r
-                       var nE=len-1;\r
-                       var bFound=false;\r
-                       do{\r
-                               var nM=(nB+nE)>>1;\r
-                               if(compare(sKey,gaaFCD[nIndex][nM].sEndKey)>0)\r
-                               {\r
-                                       nB=nM+1;\r
-                               }\r
-                               else if(compare(sKey,gaaFCD[nIndex][nM].sStartKey)<0)\r
-                               {\r
-                                       nE=nM-1;\r
-                               }\r
-                               else{\r
-                                       bFound=true;\r
-                                       break;\r
-                               }\r
-                       }while(nE>=nB);\r
-                       if(bFound)\r
-                               oCF=gaaFCD[nIndex][nM];\r
-               }\r
-       }\r
-       return oCF;\r
-}\r
-\r
-function ftsReady(aFCD,aFTCD)\r
-{\r
-       endLoading();\r
-       gaaFTCD[gnCLF]=aFTCD;\r
-       gaaFCD[gnCLF++]=aFCD;\r
-       setTimeout("loadFD();",1);\r
-}\r
-\r
-function putFtsTData(aTopics)\r
-{\r
-       endLoading();\r
-       var oCTF=goCTF;\r
-       if(oCTF)\r
-       {\r
-               oCTF.aTopics=aTopics;\r
-               setTimeout("ftsFindKeyword();",1);\r
-       }\r
-}\r
-\r
-function putFtsWData(aFtsContents)\r
-{\r
-       endLoading();\r
-       var oCF=goCF;\r
-       if(oCF)\r
-       {\r
-               updateCache(oCF);\r
-               oCF.aFtsKeys=aFtsContents;\r
-               setTimeout("ftsFindKeyword();",1);\r
-       }\r
-}\r
-\r
-function IsStopWord(sCW,aFtsStopArray)\r
-{\r
-       var nStopArrayLen=aFtsStopArray.length;\r
-       var nB=0;\r
-       var nE=nStopArrayLen-1;\r
-       var nM=0;\r
-       var bFound=false;\r
-       var sStopWord="";\r
-       while(nB<=nE){\r
-               nM=(nB+nE);\r
-               nM>>=1;\r
-               sStopWord=aFtsStopArray[nM];\r
-               if(compare(sCW,sStopWord)>0){\r
-                       nB=(nB==nM)?nM+1:nM;\r
-               }else{\r
-                       if(compare(sCW,sStopWord)<0){\r
-                               nE=(nE==nM)?nM-1:nM;\r
-                       }else{\r
-                               bFound=true;\r
-                               break;\r
-                       }\r
-               }\r
-       }\r
-       return bFound;\r
-}\r
-\r
-function GetStem(szWord)\r
-{\r
-       if(gaFtsStem==null||gaFtsStem.length==0)return szWord;\r
-       var aStems=gaFtsStem;\r
-\r
-       var nStemPos=0;\r
-       var csStem="";\r
-       for(var iStem=0;iStem<aStems.length;iStem++){\r
-\r
-               if(aStems[iStem].length>=szWord.length-1)       break;\r
-               nStemPos=szWord.lastIndexOf(aStems[iStem]);\r
-               if(nStemPos>0){\r
-                       var cssub=szWord.substring(nStemPos);\r
-                       if(cssub==aStems[iStem]){\r
-                               csStem=szWord;\r
-                               if(szWord.charAt(nStemPos-2)==szWord.charAt(nStemPos-1)){\r
-                                       csStem=csStem.substring(0,nStemPos-1);\r
-                               }else{\r
-                                       csStem=csStem.substring(0,nStemPos);\r
-                               }\r
-                               return csStem;\r
-                       }\r
-               }\r
-       }\r
-       return szWord;\r
-}\r
-\r
-function FtsWriteClassStyle()\r
-{\r
-       var sStyle="<STYLE TYPE='text/css'>\n";\r
-       if (gsBgImage)\r
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
-       else\r
-               sStyle+="body {border-top:black 1px solid;}\n";\r
-       sStyle+="P {"+getFontStyle(goErrFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";\r
-       sStyle+="dl {"+getFontStyle(goFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";\r
-       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";\r
-       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";\r
-       sStyle+="A:active {background-color:"+gsABgColor+";}\n";\r
-       sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";\r
-       sStyle+="</STYLE>";\r
-       document.write(sStyle);\r
-}\r
-\r
-function window_Unload()\r
-{\r
-       UnRegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       UnRegisterListener2(this, WH_MSG_SEARCHFTSKEY);\r
-}\r
-\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       var nMsgId=oMsg.nMessageId;\r
-       if(nMsgId==WH_MSG_SEARCHFTSKEY)\r
-       {\r
-               if(oMsg.oParam)\r
-               {\r
-                       if(gsSK==null||gsSK=="")\r
-                       {\r
-                               gsSK=oMsg.oParam.toLowerCase();\r
-                               findFTSKey();\r
-                       }\r
-                       else\r
-                               gsSK2=oMsg.oParam.toLowerCase();\r
-               }\r
-       }\r
-       else if(nMsgId==WH_MSG_PROJECTREADY)\r
-       {\r
-               loadFts();\r
-       }\r
-       return true;\r
-}\r
-\r
-if (window.gbWhUtil&&window.gbWhLang&&window.gbWhProxy&&window.gbWhVer&&window.gbWhMsg)\r
-{\r
-       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");\r
-       goErrFont=new whFont("Verdana","8pt","#000000","normal","bold","none");\r
-       goHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");\r
-       window.onload=window_OnLoad;\r
-       window.onbeforeunload=window_BUnload;\r
-       window.onunload=window_Unload;\r
-       RegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       gbWhFHost=true;\r
-}\r
-else\r
-       document.location.reload();
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whform.js b/doc/salome/gui/SMESH/whform.js
deleted file mode 100755 (executable)
index 075311e..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-var gfunLookUp;\r
-var gbInputEnable;\r
-var gfunInit;\r
-var gstrFormName= "";\r
-var gbWithButton = false;\r
-var gsTitle="";\r
-var gsOverImage = "";\r
-var gsOutImage = "";\r
-var gsClickImage = "";\r
-var gsText = "";\r
-var gsBgColor = "#c0c0c0";\r
-var gsBgImage = "";\r
-var gbInImage = 0;\r
-var gbInputEnable = 0;\r
-\r
-var goTitleFont=null;\r
-var goInputFont=null;\r
-var goNormalFont=null;\r
-var goHoverFont=null;\r
-var gnType=-1;\r
-var gbWhForm=false;\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       if (sBgImage != null && sBgImage.length > 0)\r
-               gsBgImage = sBgImage;\r
-\r
-       if  (gsBgImage  && gsBgImage .length > 0)\r
-       {\r
-               document.body.background = gsBgImage ;\r
-       }\r
-}\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       if (sBgColor != null && sBgColor.length > 0)\r
-               gsBgColor = sBgColor;\r
-\r
-       if (gsBgColor&& gsBgColor.length > 0)\r
-       {\r
-               document.body.bgColor = gsBgColor;\r
-       }\r
-}\r
-\r
-function setBtnType(sType)\r
-{\r
-       if (sType == "image")\r
-       {\r
-               gnType = 0;\r
-       }\r
-       else if (sType == "text")\r
-       {\r
-               gnType = 1;\r
-       }\r
-}\r
-\r
-function setGoImage1(sImage1)\r
-{\r
-       gsOutImage = sImage1;\r
-       if (gsOutImage && gsOutImage.length > 0)\r
-               gbWithButton = true;\r
-}\r
-\r
-function setGoImage2(sImage2)\r
-{\r
-       gsOverImage = sImage2;\r
-       if (gsOverImage && gsOverImage.length > 0)\r
-               gbWithButton = true;\r
-}\r
-\r
-function setGoImage3(sImage3)\r
-{\r
-       gsClickImage = sImage3;\r
-       if (gsClickImage && gsClickImage.length > 0)\r
-               gbWithButton = true;\r
-}\r
-\r
-function setGoText(sText)\r
-{\r
-       gsText = sText;\r
-       if (gsText.length > 0)\r
-               gbWithButton = true;\r
-}\r
-\r
-function setFont(sType, sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration)\r
-{\r
-       var vFont = new whFont(sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration);\r
-       if (sType == "Title")\r
-       {\r
-               goTitleFont = vFont;\r
-               var vFont1 = new whFont(sFontName, sFontSize, "black", sFontStyle, sFontWeight, sFontDecoration);\r
-               goInputFont=vFont1;             \r
-       }\r
-       else if (sType == "Normal")\r
-               goNormalFont = vFont;\r
-       else if (sType == "Hover")\r
-               goHoverFont = vFont;\r
-}\r
-\r
-function writeFormStyle()\r
-{\r
-       var sStyle = "<style type='text/css'>";\r
-       sStyle += "p.title {" + getFontStyle(goTitleFont) + "margin-top:0;margin-bottom:0}\n";\r
-       sStyle += ".inputfield {" + getFontStyle(goInputFont) +"width:100%; }\n";\r
-       sStyle+="A:link {"+getFontStyle(goNormalFont)+"}\n";\r
-       sStyle+="A:visited {"+getFontStyle(goNormalFont)+"}\n";\r
-       sStyle +="A:hover {"+getFontStyle(goHoverFont)+"}\n";\r
-       sStyle+=".clsFormBackground{\n";\r
-       if (gsBgImage)\r
-               sStyle+="border-top:"+gsBgColor+" 1px solid;}\n";\r
-       else\r
-               sStyle+="border-top:black 1px solid;}\n";\r
-\r
-       sStyle += "</style>";\r
-       document.write(sStyle);\r
-}\r
-\r
-function lookupKeyDown()\r
-{\r
-       if (gbInputEnable)\r
-       {\r
-               if (gbIE4)\r
-               {\r
-                       if (event.keyCode == 13)        //Enter key\r
-                               gfunLookUp(true);\r
-                       else\r
-                               gfunLookUp(false);\r
-               }                       \r
-               else\r
-                       gfunLookUp(false);\r
-       }\r
-}\r
-\r
-function init()\r
-{\r
-       if (gfunInit)\r
-               gfunInit();\r
-       if (!window.Array)  return;\r
-               document.onkeyup = lookupKeyDown;\r
-}\r
-\r
-function inputSubmit()\r
-{\r
-       if ((gbInputEnable && !gbIE4)|| gbInImage)\r
-               gfunLookUp(true);\r
-}\r
-\r
-function inputEnable(bEnable)\r
-{\r
-       gbInputEnable = bEnable;\r
-}\r
-\r
-function inImage(bImage)\r
-{\r
-       gbInImage = bImage;\r
-}\r
-\r
-function getFormHTML()\r
-{\r
-       var sForm = "";\r
-       sForm += "<table class=\"clsFormBackground\" width=\"100%\" cellspacing=\"0\" cellpadding=\"5\" border=\"0\">";\r
-       sForm += "<form name=\"" + gstrFormName + "\" method=\"POST\" action=\"javascript:inputSubmit()\" style=\"width:100%\">";\r
-       sForm += "<tr>";\r
-       sForm += "<td>";\r
-       sForm += "<p class=title><nobr>" + gsTitle + "</nobr><br><table width=\"100%\"><tr valign=\"middle\"><td width=\"100%\"><input class=\"inputfield\" type=\"text\" name=\"keywordField\" onfocus=\"inputEnable(1);\" onblur=\"inputEnable(0);\"></td>";\r
-       if (gbWithButton && gnType >= 0)\r
-       {\r
-               sForm += "<td><a title=\"submit button\" href=\"javascript:void(0);\" onclick=\"" + gstrFormName + ".submit(); return false;\" onfocus=\"inImage(1);\" onblur=\"inImage(0);\" onmouseup=\"onMouseUp();\" onmousedown=\"onMouseDown();\" onmouseover=\"onMouseOver();\" onmouseout=\"onMouseOut();\">"\r
-               if (gnType == 0)\r
-               {\r
-                       if (!gsText)\r
-                               gsText="Go";\r
-                       sForm += "<img alt=\""+gsText+"\" id=\"go\" border=\"0\" src=\"" + gsOutImage + "\">";\r
-               }\r
-               else\r
-                       sForm += gsText ;\r
-               sForm += "</a></td>";\r
-       }\r
-       sForm += "</tr></table></p></td></tr></form></table>";\r
-       return sForm;\r
-}\r
-\r
-function onMouseOver()\r
-{\r
-       if (getElement("go") && gsOverImage)\r
-               getElement("go").src = gsOverImage;\r
-}\r
-\r
-function onMouseDown()\r
-{\r
-       if (getElement("go") && gsClickImage)\r
-               getElement("go").src = gsClickImage;\r
-}\r
-\r
-function onMouseUp()\r
-{\r
-       if (getElement("go") && gsOutImage)\r
-               getElement("go").src = gsOutImage;\r
-}\r
-\r
-function onMouseOut()\r
-{\r
-       if (getElement("go") && gsOutImage)\r
-               getElement("go").src = gsOutImage;\r
-}\r
-\r
-if (window.gbWhUtil&&window.gbWhVer&&window.gbWhProxy&&window.gbWhMsg)\r
-{\r
-       goTitleFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "none");\r
-       goNormalFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "none");\r
-       goHoverFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "underline");\r
-       gbWhForm=true;\r
-}\r
-else\r
-       document.location.reload();
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whframes.js b/doc/salome/gui/SMESH/whframes.js
deleted file mode 100755 (executable)
index 0576afc..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-// this value should be identical to the value used in whproxy.js\r
-window.whname = "wh_stub";\r
-\r
-// this file will be used by Topic and NavBar and NavPane and other components\r
-// and this file is used in child frame html.\r
-// and the whstub.js will be used in the start page.\r
-// see reference in whstub.js.\r
-// Internal Area\r
-var gbInited = false;\r
-var gWndStubPage = null;\r
-function getStubPage()\r
-{\r
-       if (!gbInited)\r
-       {\r
-               gWndStubPage = getStubPage_inter(window);\r
-               gbInited = true;\r
-       }\r
-       return gWndStubPage;\r
-}\r
-\r
-function getStubPage_inter(wCurrent) {\r
-       if (null == wCurrent.parent || wCurrent.parent == wCurrent)\r
-               return null;\r
-\r
-       if (wCurrent.parent.whname && "wh_stub" == wCurrent.parent.whname) \r
-               return wCurrent.parent;\r
-       else\r
-               if (wCurrent.parent.frames.length != 0 && wCurrent.parent != wCurrent)\r
-                       return getStubPage_inter(wCurrent.parent);\r
-               else \r
-                       return null;\r
-}\r
-\r
-// Public interface begin here................\r
-function RegisterListener(framename, nMessageId)\r
-{\r
-       var wStartPage = getStubPage();\r
-       if (wStartPage && wStartPage != this) {\r
-               return wStartPage.RegisterListener(framename, nMessageId);\r
-       }\r
-       else \r
-               return false;\r
-}\r
-\r
-function RegisterListener2(oframe, nMessageId)\r
-{\r
-       var wStartPage = getStubPage();\r
-       if (wStartPage && wStartPage != this) {\r
-               return wStartPage.RegisterListener2(oframe, nMessageId);\r
-       }\r
-       else \r
-               return false;\r
-}\r
-\r
-function UnRegisterListener2(oframe, nMessageId)\r
-{\r
-       var wStartPage = getStubPage();\r
-       if (wStartPage && wStartPage != this && wStartPage.UnRegisterListener2) {\r
-               return wStartPage.UnRegisterListener2(oframe, nMessageId);\r
-       }\r
-       else \r
-               return false;\r
-}\r
-\r
-function SendMessage(oMessage)\r
-{\r
-       var nMsgId = oMessage.nMessageId;\r
-       if (nMsgId == WH_MSG_ISINFRAMESET && oMessage.wSender != this)\r
-               return true;\r
-       var wStartPage = getStubPage();\r
-       if (wStartPage && wStartPage != this && wStartPage.SendMessage) \r
-       {\r
-               return wStartPage.SendMessage(oMessage);\r
-       }\r
-       else \r
-               return false;\r
-}\r
-var gbWhProxy=true;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whgbody.htm b/doc/salome/gui/SMESH/whgbody.htm
deleted file mode 100755 (executable)
index 8d30b1f..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-<html>\r
-<head>\r
-<title>Glossary Term</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whlang.js"></script>\r
-<script language="javascript1.2" src="whhost.js"></script>\r
-<script language="javascript1.2" src="whghost.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-if(window.gbWhGHost)\r
-{\r
-       setBackgroundcolor("White"); \r
-       \r
-       setFont("Normal", "Tahoma","8pt","Black","Normal","Normal","none");\r
-       setFont("Hover", "Tahoma","8pt","Navy","Normal","Normal","underline");\r
-       setActiveBgColor("Silver");\r
-       \r
-       \r
-       GloWriteClassStyle();\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" bgcolor="white">\r
-</body>\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/whgdata/whexpbar.gif b/doc/salome/gui/SMESH/whgdata/whexpbar.gif
deleted file mode 100755 (executable)
index e677dc6..0000000
Binary files a/doc/salome/gui/SMESH/whgdata/whexpbar.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whgdata/whlstf0.htm b/doc/salome/gui/SMESH/whgdata/whlstf0.htm
deleted file mode 100755 (executable)
index a3aefff..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words List</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<p class="ftsbody">\r
-\r
-\r
-<a name="bm_{"></a><a name="subkey_{D"></a><a href="../files/about_meshes.htm"><b>0d</b></a> <br><nobr>1d <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/length_from_edges.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>11</b></a> <a href="../revolution.htm"><b>12</b></a> </nobr><br><nobr>2d <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>6</b></a> <a href="../extrusion.htm"><b>7</b></a> <a href="../files/length_from_edges.htm"><b>8</b></a> <a href="../files/introduction_to_smesh.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/minimum_angle.htm"><b>11</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>12</b></a> <a href="../revolution.htm"><b>13</b></a> <a href="../pattern_mapping.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> </nobr><br><nobr>3d <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>8</b></a> <a href="../files/displaying_elements_numbers.htm"><b>9</b></a> <a href="../files/displacing_nodes.htm"><b>10</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>11</b></a> <a href="../files/cutting_quadrangles.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>15</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>16</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>17</b></a> <a href="../files/uniting_two_triangles.htm"><b>18</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>19</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>20</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>21</b></a> <a href="../files/smoothing.htm"><b>22</b></a> <a href="../revolution.htm"><b>23</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>3rd</b></a> <br><a href="../files/about_meshes.htm"><b>5th</b></a> <br>\r
-<br><br>\r
-<a name="bm_A"></a><a name="subkey_AB"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>able</b></a> <br><a href="../files/smoothing.htm"><b>above</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>absent</b></a> <br><nobr>abutting <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_AC"></a><a name="subkey_AC"></a>according <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> <a href="../files/warp.htm"><b>10</b></a> </nobr><br><nobr>account <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_AD"></a><a name="subkey_AD"></a>add <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><nobr>added <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>adding</b></a> <br><nobr>addition <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> </nobr><br><nobr>additional <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>additionally <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>adjacent <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../files/minimum_angle.htm"><b>5</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><a href="../files/smoothing.htm"><b>adjust</b></a> <br><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>advance</b></a> <br><a name="bms_AG"></a><a name="subkey_AG"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>again</b></a> <br><nobr><a name="bms_AL"></a><a name="subkey_AL"></a>algorithm <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>8</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>9</b></a> <a href="../files/editing_hypotheses.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>12</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>13</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>14</b></a> <a href="../pattern_mapping.htm"><b>15</b></a> </nobr><br><nobr>algorithms <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/editing_hypotheses.htm"><b>8</b></a> <a href="../files/constructing_submeshes.htm"><b>9</b></a> <a href="../files/constructing_meshes.htm"><b>10</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>11</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>12</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>13</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>allow</b></a> <br><nobr>allowed <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>allowing</b></a> <br><nobr>allows <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../files/rotation.htm"><b>7</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>8</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>9</b></a> <a href="../files/merging_nodes.htm"><b>10</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>11</b></a> <a href="../files/using_operations_on_groups.htm"><b>12</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>13</b></a> <a href="../files/translation.htm"><b>14</b></a> <a href="../files/symmetry.htm"><b>15</b></a> <a href="../files/smoothing.htm"><b>16</b></a> </nobr><br><nobr>along <a href="../extrusion.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../files/editing_hypotheses.htm"><b>already</b></a> <br><a href="../files/smoothing.htm"><b>always</b></a> <br><nobr><a name="bms_AN"></a><a name="subkey_AN"></a>angle <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/skew.htm"><b>5</b></a> <a href="../revolution.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> </nobr><br><a href="../files/skew.htm"><b>angles</b></a> <br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>another</b></a> <br><nobr>any <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr><a name="bms_AP"></a><a name="subkey_AP"></a>appear <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/editing_hypotheses.htm"><b>7</b></a> <a href="../files/editing_groups.htm"><b>8</b></a> <a href="../files/displacing_nodes.htm"><b>9</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>10</b></a> <a href="../files/deflection_1d.htm"><b>11</b></a> <a href="../files/cutting_quadrangles.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/sewing_meshes.htm"><b>16</b></a> <a href="../files/running_smesh_module.htm"><b>17</b></a> <a href="../files/rotation.htm"><b>18</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>19</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>20</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>21</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>22</b></a> <a href="../files/merging_nodes.htm"><b>23</b></a> <a href="../files/local_length_hypothesis.htm"><b>24</b></a> <a href="../files/using_operations_on_groups.htm"><b>25</b></a> <a href="../files/uniting_two_triangles.htm"><b>26</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>27</b></a> <a href="../files/translation.htm"><b>28</b></a> <a href="../files/symmetry.htm"><b>29</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>30</b></a> <a href="../files/smoothing.htm"><b>31</b></a> <a href="../revolution.htm"><b>32</b></a> <a href="../pattern_mapping.htm"><b>33</b></a> </nobr><br><a href="../files/editing_hypotheses.htm"><b>appeared</b></a> <br><nobr>application <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>applied <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/editing_hypotheses.htm"><b>3</b></a> <a href="../files/deflection_1d.htm"><b>4</b></a> <a href="../files/constructing_submeshes.htm"><b>5</b></a> <a href="../files/constructing_meshes.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>8</b></a> <a href="../files/minimum_angle.htm"><b>9</b></a> <a href="../files/local_length_hypothesis.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../files/taper.htm"><b>12</b></a> <a href="../files/smoothing.htm"><b>13</b></a> <a href="../files/skew.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> </nobr><br><nobr>apply <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../files/about_meshing_algorithms.htm"><b>5</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>8</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>9</b></a> <a href="../extrusion.htm"><b>10</b></a> <a href="../files/length_from_edges.htm"><b>11</b></a> <a href="../files/introduction_to_smesh.htm"><b>12</b></a> <a href="../files/editing_groups.htm"><b>13</b></a> <a href="../files/displacing_nodes.htm"><b>14</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>15</b></a> <a href="../files/cutting_quadrangles.htm"><b>16</b></a> <a href="../files/creating_groups.htm"><b>17</b></a> <a href="../files/sewing_meshes.htm"><b>18</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>19</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>20</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>21</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>22</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>23</b></a> <a href="../files/minimum_angle.htm"><b>24</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>25</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>26</b></a> <a href="../files/length_of_edges.htm"><b>27</b></a> <a href="../files/using_operations_on_groups.htm"><b>28</b></a> <a href="../files/uniting_two_triangles.htm"><b>29</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>30</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>31</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>32</b></a> <a href="../files/taper.htm"><b>33</b></a> <a href="../files/symmetry.htm"><b>34</b></a> <a href="../files/smoothing.htm"><b>35</b></a> <a href="../files/skew.htm"><b>36</b></a> <a href="../revolution.htm"><b>37</b></a> <a href="../pattern_mapping.htm"><b>38</b></a> <a href="../files/warp.htm"><b>39</b></a> </nobr><br><nobr>applying <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/number_of_segments_hypothesis.htm"><b>approximately</b></a> <br><a name="bms_AR"></a><a name="subkey_AR"></a><a href="../files/warp.htm"><b>arcsine</b></a> <br><nobr>area <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> </nobr><br><a href="../files/taper.htm"><b>areas</b></a> <br><nobr>arithmetic <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../revolution.htm"><b>around</b></a> <br><nobr><a name="bms_AS"></a><a name="subkey_AS"></a>aspect <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> </nobr><br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>assign</b></a> <br><a href="../files/warp.htm"><b>assigned</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>assigning</b></a> <br><nobr>associated <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>3</b></a> <a href="../files/displaying_elements_numbers.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> </nobr><br><a name="bms_AU"></a><a name="subkey_AU"></a><a href="../pattern_mapping.htm"><b>automatic</b></a> <br><nobr>automatically <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr><a name="bms_AV"></a><a name="subkey_AV"></a>available <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><nobr>average <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/length_from_edges.htm"><b>2</b></a> <a href="../files/deflection_1d.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><nobr><a name="bms_AX"></a><a name="subkey_AX"></a>axis <a href="../extrusion.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> </nobr><br>\r
-<br><br>\r
-<nobr><a name="bm_B"></a><a name="subkey_BA"></a>bar <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> </nobr><br><nobr>based <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>basic</b></a> <br><nobr>basing <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><nobr>basis <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a name="bms_BE"></a><a name="subkey_BE"></a><a href="../pattern_mapping.htm"><b>become</b></a> <br><a href="../files/running_smesh_module.htm"><b>before</b></a> <br><nobr>beginning <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>belong</b></a> <br><a href="../files/sewing_meshes.htm"><b>berders</b></a> <br><a name="bms_BI"></a><a name="subkey_BI"></a><a href="../files/warp.htm"><b>bisecting</b></a> <br><a href="../files/warp.htm"><b>bisector</b></a> <br><a name="bms_BO"></a><a name="subkey_BO"></a><a href="../files/using_operations_on_groups.htm"><b>boolean</b></a> <br><a href="../files/sewing_meshes.htm"><b>border</b></a> <br><nobr>borders <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>both <a href="../files/using_operations_on_groups.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>bottom</b></a> <br><a href="../pattern_mapping.htm"><b>bound</b></a> <br><a href="../pattern_mapping.htm"><b>boundaries</b></a> <br><nobr>boundary <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>bounded</b></a> <br><a href="../files/about_meshes.htm"><b>bounding</b></a> <br><a href="../files/about_meshes.htm"><b>bounds</b></a> <br><nobr>box <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../extrusion.htm"><b>9</b></a> <a href="../files/length_from_edges.htm"><b>10</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>11</b></a> <a href="../files/editing_hypotheses.htm"><b>12</b></a> <a href="../files/editing_groups.htm"><b>13</b></a> <a href="../files/displacing_nodes.htm"><b>14</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>15</b></a> <a href="../files/deflection_1d.htm"><b>16</b></a> <a href="../files/cutting_quadrangles.htm"><b>17</b></a> <a href="../files/creating_groups.htm"><b>18</b></a> <a href="../files/constructing_submeshes.htm"><b>19</b></a> <a href="../files/constructing_meshes.htm"><b>20</b></a> <a href="../files/sewing_meshes.htm"><b>21</b></a> <a href="../files/running_smesh_module.htm"><b>22</b></a> <a href="../files/rotation.htm"><b>23</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>24</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>25</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>26</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>27</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>28</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>29</b></a> <a href="../files/merging_nodes.htm"><b>30</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>31</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>32</b></a> <a href="../files/local_length_hypothesis.htm"><b>33</b></a> <a href="../files/using_operations_on_groups.htm"><b>34</b></a> <a href="../files/uniting_two_triangles.htm"><b>35</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>36</b></a> <a href="../files/translation.htm"><b>37</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>38</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>39</b></a> <a href="../files/symmetry.htm"><b>40</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>41</b></a> <a href="../files/smoothing.htm"><b>42</b></a> <a href="../revolution.htm"><b>43</b></a> <a href="../pattern_mapping.htm"><b>44</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf1.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstf1.htm b/doc/salome/gui/SMESH/whgdata/whlstf1.htm
deleted file mode 100755 (executable)
index 7a42fac..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words List</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<p class="ftsbody" align="center"><a href="whlstf0.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
-<p class="ftsbody">\r
-<nobr><a name="bms_BR"></a><a name="subkey_BR"></a>browser <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/editing_groups.htm"><b>6</b></a> <a href="../files/creating_groups.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>10</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>11</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>12</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>13</b></a> <a href="../files/visualization_modes.htm"><b>14</b></a> <a href="../files/viewing_mesh_info.htm"><b>15</b></a> </nobr><br><nobr><a name="bms_BU"></a><a name="subkey_BU"></a>build <a href="../extrusion.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><nobr>builds <a href="../files/length_from_edges.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> </nobr><br><nobr>built <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>button <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/area_of_elements.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_hypotheses.htm"><b>8</b></a> <a href="../files/editing_groups.htm"><b>9</b></a> <a href="../files/displacing_nodes.htm"><b>10</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>11</b></a> <a href="../files/cutting_quadrangles.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/sewing_meshes.htm"><b>16</b></a> <a href="../files/rotation.htm"><b>17</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>18</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>19</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>20</b></a> <a href="../files/minimum_angle.htm"><b>21</b></a> <a href="../files/length_of_edges.htm"><b>22</b></a> <a href="../files/viewing_mesh_info.htm"><b>23</b></a> <a href="../files/using_operations_on_groups.htm"><b>24</b></a> <a href="../files/uniting_two_triangles.htm"><b>25</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>26</b></a> <a href="../files/translation.htm"><b>27</b></a> <a href="../files/taper.htm"><b>28</b></a> <a href="../files/symmetry.htm"><b>29</b></a> <a href="../files/smoothing.htm"><b>30</b></a> <a href="../files/skew.htm"><b>31</b></a> <a href="../revolution.htm"><b>32</b></a> <a href="../pattern_mapping.htm"><b>33</b></a> <a href="../files/warp.htm"><b>34</b></a> </nobr><br><nobr>buttons <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br>\r
-<br><br>\r
-<a name="bm_C"></a><a name="subkey_CA"></a><a href="../files/about_meshes.htm"><b>cad</b></a> <br><nobr>calculated <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>calculates</b></a> <br><nobr>calculation <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/length_of_edges.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>calculations</b></a> <br><a href="../pattern_mapping.htm"><b>called</b></a> <br><a href="../files/creating_groups.htm"><b>cancel</b></a> <br><a href="../files/removing_nodes_and_elements.htm"><b>careful</b></a> <br><a href="../files/displacing_nodes.htm"><b>case</b></a> <br><a href="../pattern_mapping.htm"><b>cases</b></a> <br><nobr><a name="bms_CE"></a><a name="subkey_CE"></a>cells <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>center</b></a> <br><a href="../files/smoothing.htm"><b>centroid</b></a> <br><a href="../files/smoothing.htm"><b>centroidal</b></a> <br><a href="../pattern_mapping.htm"><b>certain</b></a> <br><nobr><a name="bms_CH"></a><a name="subkey_CH"></a>change <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> </nobr><br><a href="../files/changing_orientation_of_elements.htm"><b>changed</b></a> <br><nobr>changes <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> </nobr><br><a href="../files/changing_orientation_of_elements.htm"><b>changing</b></a> <br><a href="../files/about_quality_controls.htm"><b>characteristic</b></a> <br><a href="../files/about_meshes.htm"><b>characterizes</b></a> <br><a href="../files/sewing_meshes.htm"><b>check</b></a> <br><nobr>choice <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>choose <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>7</b></a> <a href="../files/displaying_elements_numbers.htm"><b>8</b></a> <a href="../files/displacing_nodes.htm"><b>9</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>10</b></a> <a href="../files/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.htm"><b>12</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/running_smesh_module.htm"><b>15</b></a> <a href="../files/rotation.htm"><b>16</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>17</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>18</b></a> <a href="../files/minimum_angle.htm"><b>19</b></a> <a href="../files/merging_nodes.htm"><b>20</b></a> <a href="../files/length_of_edges.htm"><b>21</b></a> <a href="../files/uniting_two_triangles.htm"><b>22</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>23</b></a> <a href="../files/translation.htm"><b>24</b></a> <a href="../files/taper.htm"><b>25</b></a> <a href="../files/symmetry.htm"><b>26</b></a> <a href="../files/skew.htm"><b>27</b></a> <a href="../revolution.htm"><b>28</b></a> <a href="../pattern_mapping.htm"><b>29</b></a> <a href="../files/warp.htm"><b>30</b></a> </nobr><br><nobr>choosing <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><a href="../files/constructing_groups_of_specific_elements.htm"><b>chose</b></a> <br><a href="../files/about_hypotheses.htm"><b>chosen</b></a> <br><nobr><a name="bms_CL"></a><a name="subkey_CL"></a>click <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/area_of_elements.htm"><b>5</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>6</b></a> <a href="../files/about_meshing_algorithms.htm"><b>7</b></a> <a href="../files/about_hypotheses.htm"><b>8</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>9</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>10</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>11</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>12</b></a> <a href="../extrusion.htm"><b>13</b></a> <a href="../files/length_from_edges.htm"><b>14</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>15</b></a> <a href="../files/editing_hypotheses.htm"><b>16</b></a> <a href="../files/editing_groups.htm"><b>17</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>18</b></a> <a href="../files/displaying_elements_numbers.htm"><b>19</b></a> <a href="../files/displacing_nodes.htm"><b>20</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>21</b></a> <a href="../files/deflection_1d.htm"><b>22</b></a> <a href="../files/cutting_quadrangles.htm"><b>23</b></a> <a href="../files/creating_groups.htm"><b>24</b></a> <a href="../files/constructing_submeshes.htm"><b>25</b></a> <a href="../files/constructing_meshes.htm"><b>26</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>27</b></a> <a href="../files/sewing_meshes.htm"><b>28</b></a> <a href="../files/running_smesh_module.htm"><b>29</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>30</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>31</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>32</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>33</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>34</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>35</b></a> <a href="../files/minimum_angle.htm"><b>36</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>37</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>38</b></a> <a href="../files/local_length_hypothesis.htm"><b>39</b></a> <a href="../files/length_of_edges.htm"><b>40</b></a> <a href="../files/visualization_modes.htm"><b>41</b></a> <a href="../files/viewing_mesh_info.htm"><b>42</b></a> <a href="../files/using_operations_on_groups.htm"><b>43</b></a> <a href="../files/uniting_two_triangles.htm"><b>44</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>45</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>46</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>47</b></a> <a href="../files/taper.htm"><b>48</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>49</b></a> <a href="../files/smoothing.htm"><b>50</b></a> <a href="../files/skew.htm"><b>51</b></a> <a href="../revolution.htm"><b>52</b></a> <a href="../pattern_mapping.htm"><b>53</b></a> <a href="../files/warp.htm"><b>54</b></a> </nobr><br><nobr>clicking <a href="../files/running_smesh_module.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>close</b></a> <br><nobr>closed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_CO"></a><a name="subkey_CO"></a><a href="../files/sewing_meshes.htm"><b>co</b></a> <br><a href="../files/merging_nodes.htm"><b>coincident</b></a> <br><nobr>colored <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>coloring</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>column</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>columns</b></a> <br><a href="../files/length_of_edges.htm"><b>combining</b></a> <br><nobr>common <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>compare</b></a> <br><nobr>component <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>compose</b></a> <br><nobr>composed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> </nobr><br><nobr>composing <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/displaying_elements_numbers.htm"><b>3</b></a> <a href="../files/deflection_1d.htm"><b>4</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> </nobr><br><nobr>computation <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/computing_meshes.htm"><b>compute</b></a> <br><nobr>computed <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/computing_meshes.htm"><b>computing</b></a> <br><a href="../files/about_hypotheses.htm"><b>conditions</b></a> <br><nobr>confirm <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/using_operations_on_groups.htm"><b>8</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>confirmation</b></a> <br><nobr>conform <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> </nobr><br><a href="../files/cutting_quadrangles.htm"><b>connect</b></a> <br><nobr>connected <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr>connections <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><nobr>connectivity <a href="../files/connectivity.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>considered <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>consisting <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> </nobr><br><nobr>consists <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>5</b></a> <a href="../files/minimum_angle.htm"><b>6</b></a> <a href="../files/local_length_hypothesis.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>constant</b></a> <br><nobr>construct <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>3</b></a> </nobr><br><nobr>constructed <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>3</b></a> </nobr><br><nobr>constructing <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>3</b></a> </nobr><br><nobr>construction <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>contain <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><nobr>containing <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>4</b></a> </nobr><br><nobr>contains <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>content</b></a> <br><a href="../files/smoothing.htm"><b>continues</b></a> <br><nobr>contour <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/uniting_a_set_of_triangles.htm"><b>contrast</b></a> <br><nobr>control <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/minimum_angle.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> </nobr><br><nobr>controls <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a href="../files/smoothing.htm"><b>converge</b></a> <br><nobr>coordinates <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><nobr>copy <a href="../files/rotation.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> </nobr><br><a href="../files/warp.htm"><b>corner</b></a> <br><nobr>corners <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><nobr>corresponding <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>could</b></a> <br><a href="../pattern_mapping.htm"><b>counterclockwise</b></a> <br><a href="../files/sewing_meshes.htm"><b>counting</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf2.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstf2.htm b/doc/salome/gui/SMESH/whgdata/whlstf2.htm
deleted file mode 100755 (executable)
index 9f0c111..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words List</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<p class="ftsbody" align="center"><a href="whlstf1.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
-<p class="ftsbody">\r
-<nobr><a name="bms_CR"></a><a name="subkey_CR"></a>create <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/length_from_edges.htm"><b>9</b></a> <a href="../files/deflection_1d.htm"><b>10</b></a> <a href="../files/creating_groups.htm"><b>11</b></a> <a href="../files/running_smesh_module.htm"><b>12</b></a> <a href="../files/rotation.htm"><b>13</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>14</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>15</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>16</b></a> <a href="../files/merging_nodes.htm"><b>17</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>18</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>19</b></a> <a href="../files/local_length_hypothesis.htm"><b>20</b></a> <a href="../files/using_operations_on_groups.htm"><b>21</b></a> <a href="../files/translation.htm"><b>22</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>23</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>24</b></a> <a href="../files/symmetry.htm"><b>25</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>26</b></a> </nobr><br><nobr>created <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><nobr>creating <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><nobr>creation <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>criteria</b></a> <br><nobr>criterion <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> </nobr><br><a href="../files/warp.htm"><b>cross</b></a> <br><nobr><a name="bms_CU"></a><a name="subkey_CU"></a>current <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><nobr>currently <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>curve</b></a> <br><nobr>cut <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> </nobr><br><a href="../files/cutting_quadrangles.htm"><b>cutted</b></a> <br><a href="../files/cutting_quadrangles.htm"><b>cutting</b></a> <br>\r
-<br><br>\r
-<a name="bm_D"></a><a name="subkey_D{"></a><a href="../files/arithmetic_1d.htm"><b>d</b></a> <br><nobr><a name="bms_DA"></a><a name="subkey_DA"></a>data <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> </nobr><br><a name="bms_DE"></a><a name="subkey_DE"></a><a href="../files/about_meshes.htm"><b>dealing</b></a> <br><a href="../files/running_smesh_module.htm"><b>default</b></a> <br><nobr>define <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>7</b></a> </nobr><br><nobr>defined <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>definite <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>7</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>8</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>9</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>10</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>11</b></a> </nobr><br><nobr>definition <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>deflection</b></a> <br><a href="../files/removing_nodes_and_elements.htm"><b>deleted</b></a> <br><nobr>deletion <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> </nobr><br><nobr>depending <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> </nobr><br><nobr>depends <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>describe</b></a> <br><nobr>described <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>describes</b></a> <br><a href="../pattern_mapping.htm"><b>description</b></a> <br><a href="../files/merging_nodes.htm"><b>desirable</b></a> <br><a href="../files/running_smesh_module.htm"><b>desktop</b></a> <br><nobr>destined <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>detail</b></a> <br><a href="../files/merging_nodes.htm"><b>detect</b></a> <br><nobr><a name="bms_DI"></a><a name="subkey_DI"></a>diagonal <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> </nobr><br><nobr>dialog <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../extrusion.htm"><b>9</b></a> <a href="../files/length_from_edges.htm"><b>10</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>11</b></a> <a href="../files/editing_hypotheses.htm"><b>12</b></a> <a href="../files/editing_groups.htm"><b>13</b></a> <a href="../files/displacing_nodes.htm"><b>14</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>15</b></a> <a href="../files/deflection_1d.htm"><b>16</b></a> <a href="../files/cutting_quadrangles.htm"><b>17</b></a> <a href="../files/creating_groups.htm"><b>18</b></a> <a href="../files/constructing_submeshes.htm"><b>19</b></a> <a href="../files/constructing_meshes.htm"><b>20</b></a> <a href="../files/sewing_meshes.htm"><b>21</b></a> <a href="../files/rotation.htm"><b>22</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>23</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>24</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>25</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>26</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>27</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>28</b></a> <a href="../files/merging_nodes.htm"><b>29</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>30</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>31</b></a> <a href="../files/local_length_hypothesis.htm"><b>32</b></a> <a href="../files/using_operations_on_groups.htm"><b>33</b></a> <a href="../files/uniting_two_triangles.htm"><b>34</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>35</b></a> <a href="../files/translation.htm"><b>36</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>37</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>38</b></a> <a href="../files/symmetry.htm"><b>39</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>40</b></a> <a href="../files/smoothing.htm"><b>41</b></a> <a href="../revolution.htm"><b>42</b></a> <a href="../pattern_mapping.htm"><b>43</b></a> </nobr><br><a href="../files/editing_hypotheses.htm"><b>differ</b></a> <br><a href="../files/sewing_meshes.htm"><b>difference</b></a> <br><nobr>different <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>differs</b></a> <br><nobr>dimension <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>direct</b></a> <br><a href="../files/sewing_meshes.htm"><b>directed</b></a> <br><nobr>direction <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>directly</b></a> <br><nobr>discretization <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>3</b></a> </nobr><br><nobr>discretized <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../files/displacing_nodes.htm"><b>displace</b></a> <br><a href="../files/displacing_nodes.htm"><b>displaced</b></a> <br><nobr>display <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>4</b></a> <a href="../files/displaying_elements_numbers.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> <a href="../files/visualization_modes.htm"><b>9</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>10</b></a> <a href="../files/taper.htm"><b>11</b></a> <a href="../files/smoothing.htm"><b>12</b></a> <a href="../files/skew.htm"><b>13</b></a> <a href="../files/warp.htm"><b>14</b></a> </nobr><br><nobr>displayed <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/about_quality_controls.htm"><b>4</b></a> <a href="../files/displacing_nodes.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/minimum_angle.htm"><b>9</b></a> <a href="../files/length_of_edges.htm"><b>10</b></a> <a href="../files/viewing_mesh_info.htm"><b>11</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>12</b></a> <a href="../files/taper.htm"><b>13</b></a> <a href="../files/skew.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> </nobr><br><nobr>displaying <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/visualization_modes.htm"><b>3</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>disposal</b></a> <br><nobr>distance <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>distortion</b></a> <br><a href="../files/smoothing.htm"><b>distortions</b></a> <br><a href="../files/start_and_end_length_hypothesis.htm"><b>divided</b></a> <br><a name="bms_DO"></a><a name="subkey_DO"></a><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>does</b></a> <br><a href="../pattern_mapping.htm"><b>domain</b></a> <br><a href="../files/about_meshes.htm"><b>don</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>done</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>double</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_E"></a><a name="subkey_E{"></a>e <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a name="bms_EA"></a><a name="subkey_EA"></a><a href="../files/constructing_groups_of_specific_elements.htm"><b>easily</b></a> <br><nobr><a name="bms_ED"></a><a name="subkey_ED"></a>edge <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/length_from_edges.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>8</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>9</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>10</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>11</b></a> <a href="../files/uniting_two_triangles.htm"><b>12</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>13</b></a> <a href="../files/smoothing.htm"><b>14</b></a> <a href="../pattern_mapping.htm"><b>15</b></a> <a href="../files/warp.htm"><b>16</b></a> </nobr><br><nobr>edges <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_quality_controls.htm"><b>4</b></a> <a href="../files/about_meshing_algorithms.htm"><b>5</b></a> <a href="../files/about_meshes.htm"><b>6</b></a> <a href="../files/about_hypotheses.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/length_from_edges.htm"><b>9</b></a> <a href="../files/introduction_to_smesh.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/deflection_1d.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>14</b></a> <a href="../files/sewing_meshes.htm"><b>15</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>16</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>17</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>18</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>19</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>20</b></a> <a href="../files/local_length_hypothesis.htm"><b>21</b></a> <a href="../files/length_of_edges.htm"><b>22</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>23</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>24</b></a> <a href="../files/smoothing.htm"><b>25</b></a> <a href="../pattern_mapping.htm"><b>26</b></a> <a href="../files/warp.htm"><b>27</b></a> </nobr><br><nobr>edit <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> <a href="../files/merging_nodes.htm"><b>4</b></a> </nobr><br><a href="../files/editing_hypotheses.htm"><b>edited</b></a> <br><nobr>editing <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> </nobr><br><a name="bms_EF"></a><a name="subkey_EF"></a><a href="../files/uniting_a_set_of_triangles.htm"><b>effect</b></a> <br><nobr><a name="bms_EI"></a><a name="subkey_EI"></a>either <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_EL"></a><a name="subkey_EL"></a>element <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/creating_groups.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>11</b></a> <a href="../files/minimum_angle.htm"><b>12</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>13</b></a> <a href="../files/smoothing.htm"><b>14</b></a> <a href="../files/skew.htm"><b>15</b></a> <a href="../revolution.htm"><b>16</b></a> <a href="../pattern_mapping.htm"><b>17</b></a> <a href="../files/warp.htm"><b>18</b></a> </nobr><br><nobr>elements <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../files/about_quality_controls.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../extrusion.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/editing_groups.htm"><b>9</b></a> <a href="../files/displaying_elements_numbers.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>12</b></a> <a href="../files/cutting_quadrangles.htm"><b>13</b></a> <a href="../files/creating_groups.htm"><b>14</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>15</b></a> <a href="../files/sewing_meshes.htm"><b>16</b></a> <a href="../files/rotation.htm"><b>17</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>18</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>19</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>20</b></a> <a href="../files/minimum_angle.htm"><b>21</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>22</b></a> <a href="../files/length_of_edges.htm"><b>23</b></a> <a href="../files/using_operations_on_groups.htm"><b>24</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>25</b></a> <a href="../files/translation.htm"><b>26</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>27</b></a> <a href="../files/taper.htm"><b>28</b></a> <a href="../files/symmetry.htm"><b>29</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>30</b></a> <a href="../files/smoothing.htm"><b>31</b></a> <a href="../files/skew.htm"><b>32</b></a> <a href="../revolution.htm"><b>33</b></a> <a href="../pattern_mapping.htm"><b>34</b></a> <a href="../files/warp.htm"><b>35</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>else</b></a> <br><a name="bms_EN"></a><a name="subkey_EN"></a><a href="../files/constructing_submeshes.htm"><b>encapsulate</b></a> <br><a href="../pattern_mapping.htm"><b>encountered</b></a> <br><nobr>end <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>ending <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/translation.htm"><b>3</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>ends</b></a> <br><a href="../files/sewing_meshes.htm"><b>enough</b></a> <br><nobr>enter <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/uniting_two_triangles.htm"><b>7</b></a> </nobr><br><nobr>entities <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>8</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>entity</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf3.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstf3.htm b/doc/salome/gui/SMESH/whgdata/whlstf3.htm
deleted file mode 100755 (executable)
index 589a096..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words List</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<p class="ftsbody" align="center"><a href="whlstf2.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
-<p class="ftsbody">\r
-<nobr><a name="bms_EQ"></a><a name="subkey_EQ"></a>equal <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>equally</b></a> <br><a href="../files/aspect_ratio.htm"><b>equilateral</b></a> <br><a name="bms_ET"></a><a name="subkey_ET"></a><a href="../files/about_quality_controls.htm"><b>etc</b></a> <br><a name="bms_EV"></a><a name="subkey_EV"></a><a href="../pattern_mapping.htm"><b>eventual</b></a> <br><a href="../files/warp.htm"><b>every</b></a> <br><nobr><a name="bms_EX"></a><a name="subkey_EX"></a>example <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../files/smoothing.htm"><b>exceeded</b></a> <br><a href="../files/sewing_meshes.htm"><b>except</b></a> <br><nobr>existing <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><nobr>export <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>exportation</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>exported</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>exporting</b></a> <br><a href="../files/warp.htm"><b>extends</b></a> <br><nobr>extruded <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../extrusion.htm"><b>extrusion</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_F"></a><a name="subkey_FA"></a>face <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> </nobr><br><nobr>faces <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/creating_groups.htm"><b>8</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>11</b></a> <a href="../files/local_length_hypothesis.htm"><b>12</b></a> <a href="../pattern_mapping.htm"><b>13</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>factor</b></a> <br><a href="../files/sewing_meshes.htm"><b>far</b></a> <br><a href="../files/smoothing.htm"><b>faster</b></a> <br><nobr><a name="bms_FI"></a><a name="subkey_FI"></a>field <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> <a href="../files/uniting_two_triangles.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> </nobr><br><nobr>fields <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</b></a> <a href="../files/smoothing.htm"><b>9</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>fifth</b></a> <br><nobr>file <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>files</b></a> <br><nobr>fill <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>2</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>filled</b></a> <br><nobr>filter <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../files/computing_meshes.htm"><b>final</b></a> <br><nobr>find <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>finds</b></a> <br><nobr>first <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>fixed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a name="bms_FL"></a><a name="subkey_FL"></a><a href="../pattern_mapping.htm"><b>flag</b></a> <br><nobr><a name="bms_FO"></a><a name="subkey_FO"></a>folder <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> </nobr><br><nobr>following <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_quality_controls.htm"><b>4</b></a> <a href="../files/about_meshing_algorithms.htm"><b>5</b></a> <a href="../files/about_meshes.htm"><b>6</b></a> <a href="../files/about_hypotheses.htm"><b>7</b></a> <a href="../extrusion.htm"><b>8</b></a> <a href="../files/editing_hypotheses.htm"><b>9</b></a> <a href="../files/editing_groups.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>12</b></a> <a href="../files/deflection_1d.htm"><b>13</b></a> <a href="../files/cutting_quadrangles.htm"><b>14</b></a> <a href="../files/creating_groups.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/sewing_meshes.htm"><b>18</b></a> <a href="../files/running_smesh_module.htm"><b>19</b></a> <a href="../files/rotation.htm"><b>20</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>21</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>22</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>23</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>24</b></a> <a href="../files/merging_nodes.htm"><b>25</b></a> <a href="../files/local_length_hypothesis.htm"><b>26</b></a> <a href="../files/viewing_mesh_info.htm"><b>27</b></a> <a href="../files/using_operations_on_groups.htm"><b>28</b></a> <a href="../files/uniting_two_triangles.htm"><b>29</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>30</b></a> <a href="../files/translation.htm"><b>31</b></a> <a href="../files/symmetry.htm"><b>32</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>33</b></a> <a href="../files/smoothing.htm"><b>34</b></a> <a href="../revolution.htm"><b>35</b></a> <a href="../pattern_mapping.htm"><b>36</b></a> </nobr><br><nobr>follows <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>3</b></a> <a href="../files/displaying_elements_numbers.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/sewing_meshes.htm"><b>8</b></a> <a href="../files/running_smesh_module.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> </nobr><br><nobr>format <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/diagonal_iversion_of_elements.htm"><b>formed</b></a> <br><nobr>forming <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>forms</b></a> <br><nobr>four <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_FR"></a><a name="subkey_FR"></a>free <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_FU"></a><a name="subkey_FU"></a>functionality <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/merging_nodes.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>functions</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_G"></a><a name="subkey_GE"></a>generate <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><nobr>generated <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/deflection_1d.htm"><b>4</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>generates</b></a> <br><nobr>generation <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><nobr>geom <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><nobr>geometric <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><nobr>geometrical <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>6</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/deflection_1d.htm"><b>9</b></a> <a href="../files/creating_groups.htm"><b>10</b></a> <a href="../files/constructing_submeshes.htm"><b>11</b></a> <a href="../files/constructing_meshes.htm"><b>12</b></a> <a href="../files/rotation.htm"><b>13</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>14</b></a> <a href="../files/local_length_hypothesis.htm"><b>15</b></a> <a href="../files/translation.htm"><b>16</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>17</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>18</b></a> <a href="../files/symmetry.htm"><b>19</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>20</b></a> <a href="../files/smoothing.htm"><b>21</b></a> <a href="../pattern_mapping.htm"><b>22</b></a> </nobr><br><nobr>geometry <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>getting</b></a> <br><a name="bms_GH"></a><a name="subkey_GH"></a><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>ghs3d</b></a> <br><nobr><a name="bms_GI"></a><a name="subkey_GI"></a>given <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/length_from_edges.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> </nobr><br><a name="bms_GL"></a><a name="subkey_GL"></a><a href="../files/constructing_meshes.htm"><b>global</b></a> <br><a name="bms_GO"></a><a name="subkey_GO"></a><a href="../files/smoothing.htm"><b>good</b></a> <br><a href="../pattern_mapping.htm"><b>got</b></a> <br><nobr><a name="bms_GR"></a><a name="subkey_GR"></a>group <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>grouping</b></a> <br><nobr>groups <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>4</b></a> <a href="../files/merging_nodes.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> </nobr><br>\r
-<br><br>\r
-<a name="bm_H"></a><a name="subkey_H{"></a><a href="../files/warp.htm"><b>h</b></a> <br><a href="../files/aspect_ratio.htm"><b>h1</b></a> <br><a href="../files/aspect_ratio.htm"><b>h2</b></a> <br><a name="bms_HA"></a><a name="subkey_HA"></a><a href="../files/warp.htm"><b>half</b></a> <br><a href="../pattern_mapping.htm"><b>hands</b></a> <br><nobr>having <a href="../files/length_from_edges.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr><a name="bms_HE"></a><a name="subkey_HE"></a>height <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>help</b></a> <br><a href="../pattern_mapping.htm"><b>hence</b></a> <br><nobr>here <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/connectivity.htm"><b>3</b></a> <a href="../files/scalar_bar_properties.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> <a href="../files/visualization_properties.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>hexahedron <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>hexahedrons</b></a> <br><a name="bms_HI"></a><a name="subkey_HI"></a><a href="../files/about_meshes.htm"><b>higher</b></a> <br><nobr>highlighted <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a name="bms_HO"></a><a name="subkey_HO"></a><a href="../pattern_mapping.htm"><b>holds</b></a> <br><nobr><a name="bms_HY"></a><a name="subkey_HY"></a>hyp <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>hypotheses <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/length_from_edges.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/editing_hypotheses.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>10</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>11</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>12</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>13</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>14</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>15</b></a> <a href="../files/local_length_hypothesis.htm"><b>16</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>17</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>18</b></a> </nobr><br><nobr>hypothesis <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/editing_hypotheses.htm"><b>4</b></a> <a href="../files/deflection_1d.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>7</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>8</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>9</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>10</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>11</b></a> <a href="../files/local_length_hypothesis.htm"><b>12</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>13</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>14</b></a> </nobr><br>\r
-<br><br>\r
-<nobr><a name="bm_I"></a><a name="subkey_I{"></a>i <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_IC"></a><a name="subkey_IC"></a>icon <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_ID"></a><a name="subkey_ID"></a>id <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/displaying_elements_numbers.htm"><b>3</b></a> <a href="../files/displacing_nodes.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/creating_groups.htm"><b>7</b></a> <a href="../files/sewing_meshes.htm"><b>8</b></a> <a href="../files/uniting_two_triangles.htm"><b>9</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> </nobr><br><nobr>ids <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../revolution.htm"><b>7</b></a> </nobr><br><nobr><a name="bms_IF"></a><a name="subkey_IF"></a>if <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> <a href="../files/smoothing.htm"><b>8</b></a> <a href="../revolution.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> </nobr><br><a name="bms_IM"></a><a name="subkey_IM"></a><a href="../pattern_mapping.htm"><b>implies</b></a> <br><a href="../files/about_meshes.htm"><b>imply</b></a> <br><nobr>import <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>importation</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>imported</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>importing</b></a> <br><a name="bms_IN"></a><a name="subkey_IN"></a><a href="../files/about_meshes.htm"><b>including</b></a> <br><a href="../pattern_mapping.htm"><b>index</b></a> <br><a href="../files/warp.htm"><b>indicates</b></a> <br><a href="../pattern_mapping.htm"><b>indices</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>info</b></a> <br><nobr>information <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/viewing_mesh_info.htm"><b>3</b></a> </nobr><br><a href="../files/viewing_mesh_info.htm"><b>infos</b></a> <br><nobr>initial <a href="../files/running_smesh_module.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> </nobr><br><nobr>input <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>inserted</b></a> <br><a href="../pattern_mapping.htm"><b>instead</b></a> <br><a href="../files/sewing_meshes.htm"><b>intended</b></a> <br><a href="../files/about_meshes.htm"><b>interested</b></a> <br><a href="../files/sewing_meshes.htm"><b>intermediate</b></a> <br><a href="../pattern_mapping.htm"><b>internal</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>intersect</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>intersected</b></a> <br><nobr>intersection <a href="../files/using_operations_on_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>intersects</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>introduction</b></a> <br><nobr>inverse <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>2</b></a> </nobr><br><a href="../files/diagonal_iversion_of_elements.htm"><b>inversion</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf4.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstf4.htm b/doc/salome/gui/SMESH/whgdata/whlstf4.htm
deleted file mode 100755 (executable)
index d5432dc..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words List</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<p class="ftsbody" align="center"><a href="whlstf3.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
-<p class="ftsbody">\r
-<a name="bms_IS"></a><a name="subkey_IS"></a><a href="../pattern_mapping.htm"><b>iso</b></a> <br><a href="../pattern_mapping.htm"><b>isoline</b></a> <br><a href="../pattern_mapping.htm"><b>isolines</b></a> <br><nobr><a name="bms_IT"></a><a name="subkey_IT"></a>item <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/editing_groups.htm"><b>6</b></a> <a href="../files/displacing_nodes.htm"><b>7</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>8</b></a> <a href="../files/cutting_quadrangles.htm"><b>9</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/rotation.htm"><b>12</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>13</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>14</b></a> <a href="../files/merging_nodes.htm"><b>15</b></a> <a href="../files/using_operations_on_groups.htm"><b>16</b></a> <a href="../files/uniting_two_triangles.htm"><b>17</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>18</b></a> <a href="../files/translation.htm"><b>19</b></a> <a href="../files/symmetry.htm"><b>20</b></a> <a href="../files/smoothing.htm"><b>21</b></a> <a href="../revolution.htm"><b>22</b></a> <a href="../pattern_mapping.htm"><b>23</b></a> </nobr><br><nobr>items <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>iteration</b></a> <br><a href="../files/smoothing.htm"><b>iterations</b></a> <br><a href="../files/smoothing.htm"><b>iterative</b></a> <br>\r
-<br><br>\r
-<a name="bm_J"></a><a name="subkey_JO"></a><a href="../files/skew.htm"><b>join</b></a> <br><nobr><a name="bms_JU"></a><a name="subkey_JU"></a>just <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br>\r
-<br><br>\r
-<nobr><a name="bm_K"></a><a name="subkey_KE"></a>keep <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>key</b></a> <br><a name="bms_KI"></a><a name="subkey_KI"></a><a href="../files/about_meshing_algorithms.htm"><b>kinds</b></a> <br><a name="bms_KN"></a><a name="subkey_KN"></a><a href="../pattern_mapping.htm"><b>knowing</b></a> <br>\r
-<br><br>\r
-<a name="bm_L"></a><a name="subkey_L{"></a><a href="../files/warp.htm"><b>l</b></a> <br><a name="bms_LA"></a><a name="subkey_LA"></a><a href="../files/smoothing.htm"><b>laplacian</b></a> <br><a href="../files/aspect_ratio.htm"><b>largest</b></a> <br><nobr>last <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>launching</b></a> <br><a href="../pattern_mapping.htm"><b>lay</b></a> <br><nobr>lays <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_LE"></a><a name="subkey_LE"></a>least <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>left</b></a> <br><nobr>length <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/length_from_edges.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/sewing_meshes.htm"><b>8</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/local_length_hypothesis.htm"><b>11</b></a> <a href="../files/length_of_edges.htm"><b>12</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>13</b></a> <a href="../files/warp.htm"><b>14</b></a> </nobr><br><nobr>less <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>level</b></a> <br><nobr><a name="bms_LI"></a><a name="subkey_LI"></a>like <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/displaying_elements_numbers.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/running_smesh_module.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> </nobr><br><a href="../files/smoothing.htm"><b>limit</b></a> <br><nobr>limited <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>line <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>lines <a href="../extrusion.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>link</b></a> <br><a href="../files/sewing_meshes.htm"><b>linked</b></a> <br><a href="../files/sewing_meshes.htm"><b>links</b></a> <br><nobr>list <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a name="bms_LK"></a><a name="subkey_LK"></a><a href="../files/arithmetic_1d.htm"><b>lk</b></a> <br><nobr><a name="bms_LO"></a><a name="subkey_LO"></a>local <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>locally <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> </nobr><br><nobr>located <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>location <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> </nobr><br><a href="../files/smoothing.htm"><b>locations</b></a> <br><a href="../files/aspect_ratio.htm"><b>longest</b></a> <br><nobr>look <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/running_smesh_module.htm"><b>4</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>looking</b></a> <br><a href="../files/about_meshes.htm"><b>lower</b></a> <br><a name="bms_LY"></a><a name="subkey_LY"></a><a href="../pattern_mapping.htm"><b>lying</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_M"></a><a name="subkey_MA"></a>main <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/running_smesh_module.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> <a href="../pattern_mapping.htm"><b>8</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>manage</b></a> <br><a href="../pattern_mapping.htm"><b>manual</b></a> <br><nobr>manually <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>mapped</b></a> <br><a href="../pattern_mapping.htm"><b>mapping</b></a> <br><nobr>max <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> </nobr><br><nobr>maximum <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> </nobr><br><a name="bms_ME"></a><a name="subkey_ME"></a><a href="../files/about_meshes.htm"><b>meaning</b></a> <br><a href="../files/about_meshes.htm"><b>meaningful</b></a> <br><a href="../files/warp.htm"><b>measured</b></a> <br><a href="../files/2d_meshing_algorithm.htm"><b>mefisto</b></a> <br><nobr>menu <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_hypotheses.htm"><b>8</b></a> <a href="../files/editing_groups.htm"><b>9</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>10</b></a> <a href="../files/displaying_elements_numbers.htm"><b>11</b></a> <a href="../files/displacing_nodes.htm"><b>12</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>13</b></a> <a href="../files/cutting_quadrangles.htm"><b>14</b></a> <a href="../files/creating_groups.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>18</b></a> <a href="../files/sewing_meshes.htm"><b>19</b></a> <a href="../files/rotation.htm"><b>20</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>21</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>22</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>23</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>24</b></a> <a href="../files/merging_nodes.htm"><b>25</b></a> <a href="../files/visualization_modes.htm"><b>26</b></a> <a href="../files/viewing_mesh_info.htm"><b>27</b></a> <a href="../files/using_operations_on_groups.htm"><b>28</b></a> <a href="../files/uniting_two_triangles.htm"><b>29</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>30</b></a> <a href="../files/translation.htm"><b>31</b></a> <a href="../files/symmetry.htm"><b>32</b></a> <a href="../files/smoothing.htm"><b>33</b></a> <a href="../revolution.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>menus</b></a> <br><nobr>merge <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/merging_nodes.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>merged</b></a> <br><a href="../files/sewing_meshes.htm"><b>merges</b></a> <br><nobr>merging <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/merging_nodes.htm"><b>2</b></a> </nobr><br><nobr>mesh <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/area_of_elements.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../files/about_quality_controls.htm"><b>6</b></a> <a href="../files/about_meshes.htm"><b>7</b></a> <a href="../files/about_hypotheses.htm"><b>8</b></a> <a href="../extrusion.htm"><b>9</b></a> <a href="../files/length_from_edges.htm"><b>10</b></a> <a href="../files/introduction_to_smesh.htm"><b>11</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>12</b></a> <a href="../files/editing_groups.htm"><b>13</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>14</b></a> <a href="../files/displaying_elements_numbers.htm"><b>15</b></a> <a href="../files/displacing_nodes.htm"><b>16</b></a> <a href="../files/deflection_1d.htm"><b>17</b></a> <a href="../files/cutting_quadrangles.htm"><b>18</b></a> <a href="../files/creating_groups.htm"><b>19</b></a> <a href="../files/constructing_submeshes.htm"><b>20</b></a> <a href="../files/constructing_meshes.htm"><b>21</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>22</b></a> <a href="../files/sewing_meshes.htm"><b>23</b></a> <a href="../files/rotation.htm"><b>24</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>25</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>26</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>27</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>28</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>29</b></a> <a href="../files/minimum_angle.htm"><b>30</b></a> <a href="../files/merging_nodes.htm"><b>31</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>32</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>33</b></a> <a href="../files/local_length_hypothesis.htm"><b>34</b></a> <a href="../files/length_of_edges.htm"><b>35</b></a> <a href="../files/visualization_modes.htm"><b>36</b></a> <a href="../files/viewing_mesh_info.htm"><b>37</b></a> <a href="../files/using_operations_on_groups.htm"><b>38</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>39</b></a> <a href="../files/translation.htm"><b>40</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>41</b></a> <a href="../files/taper.htm"><b>42</b></a> <a href="../files/symmetry.htm"><b>43</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>44</b></a> <a href="../files/smoothing.htm"><b>45</b></a> <a href="../files/skew.htm"><b>46</b></a> <a href="../revolution.htm"><b>47</b></a> <a href="../pattern_mapping.htm"><b>48</b></a> <a href="../files/warp.htm"><b>49</b></a> </nobr><br><nobr>meshed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>mesher</b></a> <br><nobr>meshes <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_modification_of_meshes.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/running_smesh_module.htm"><b>10</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>11</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>12</b></a> <a href="../files/visualization_modes.htm"><b>13</b></a> <a href="../files/viewing_mesh_info.htm"><b>14</b></a> <a href="../files/smoothing.htm"><b>15</b></a> </nobr><br><nobr>meshing <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../extrusion.htm"><b>9</b></a> <a href="../files/introduction_to_smesh.htm"><b>10</b></a> <a href="../files/displaying_elements_numbers.htm"><b>11</b></a> <a href="../files/deflection_1d.htm"><b>12</b></a> <a href="../files/constructing_submeshes.htm"><b>13</b></a> <a href="../files/constructing_meshes.htm"><b>14</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>15</b></a> <a href="../files/minimum_angle.htm"><b>16</b></a> <a href="../files/local_length_hypothesis.htm"><b>17</b></a> <a href="../files/length_of_edges.htm"><b>18</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>19</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>20</b></a> <a href="../revolution.htm"><b>21</b></a> </nobr><br><a href="../files/smoothing.htm"><b>method</b></a> <br><a href="../files/smoothing.htm"><b>methods</b></a> <br><nobr><a name="bms_MI"></a><a name="subkey_MI"></a>minimum <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> </nobr><br><a name="bms_MO"></a><a name="subkey_MO"></a><a href="../files/visualization_modes.htm"><b>mode</b></a> <br><a href="../files/about_meshes.htm"><b>model</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>models</b></a> <br><a href="../files/visualization_modes.htm"><b>modes</b></a> <br><nobr>modification <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_modification_of_meshes.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/editing_groups.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>9</b></a> <a href="../files/cutting_quadrangles.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/rotation.htm"><b>12</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>13</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>14</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>15</b></a> <a href="../files/merging_nodes.htm"><b>16</b></a> <a href="../files/uniting_two_triangles.htm"><b>17</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>18</b></a> <a href="../files/translation.htm"><b>19</b></a> <a href="../files/symmetry.htm"><b>20</b></a> <a href="../files/smoothing.htm"><b>21</b></a> <a href="../revolution.htm"><b>22</b></a> <a href="../pattern_mapping.htm"><b>23</b></a> </nobr><br><nobr>modify <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr>module <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/running_smesh_module.htm"><b>4</b></a> </nobr><br><nobr>move <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><nobr>moving <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> </nobr><br><a name="bms_MU"></a><a name="subkey_MU"></a><a href="../files/introduction_to_smesh.htm"><b>multi</b></a> <br><a href="../files/aspect_ratio.htm"><b>multiplied</b></a> <br><nobr>must <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br>\r
-<br><br>\r
-<nobr><a name="bm_N"></a><a name="subkey_N{"></a>n <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_NA"></a><a name="subkey_NA"></a>name <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/editing_hypotheses.htm"><b>3</b></a> <a href="../files/editing_groups.htm"><b>4</b></a> <a href="../files/deflection_1d.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>8</b></a> <a href="../files/local_length_hypothesis.htm"><b>9</b></a> <a href="../files/using_operations_on_groups.htm"><b>10</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>11</b></a> </nobr><br><a name="bms_NB"></a><a name="subkey_NB"></a><a href="../files/number_of_segments_hypothesis.htm"><b>nb</b></a> <br><a name="bms_NE"></a><a name="subkey_NE"></a><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>need</b></a> <br><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>needs</b></a> <br><nobr>neighboring <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> </nobr><br><nobr>netgen <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>1</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>2</b></a> </nobr><br><nobr>new <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/running_smesh_module.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/using_operations_on_groups.htm"><b>8</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>next</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf5.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstf5.htm b/doc/salome/gui/SMESH/whgdata/whlstf5.htm
deleted file mode 100755 (executable)
index d35002e..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words List</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<p class="ftsbody" align="center"><a href="whlstf4.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
-<p class="ftsbody">\r
-<nobr><a name="bms_NO"></a><a name="subkey_NO"></a>nodal <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>node <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/displacing_nodes.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> </nobr><br><nobr>nodes <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/deflection_1d.htm"><b>9</b></a> <a href="../files/creating_groups.htm"><b>10</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>11</b></a> <a href="../files/sewing_meshes.htm"><b>12</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>13</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>14</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>15</b></a> <a href="../files/merging_nodes.htm"><b>16</b></a> <a href="../files/local_length_hypothesis.htm"><b>17</b></a> <a href="../files/taper.htm"><b>18</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>19</b></a> <a href="../files/smoothing.htm"><b>20</b></a> <a href="../files/skew.htm"><b>21</b></a> <a href="../pattern_mapping.htm"><b>22</b></a> <a href="../files/warp.htm"><b>23</b></a> </nobr><br><nobr>normal <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>note</b></a> <br><a href="../files/about_meshes.htm"><b>notice</b></a> <br><nobr><a name="bms_NU"></a><a name="subkey_NU"></a>number <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> </nobr><br><nobr>numbering <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> </nobr><br><nobr>numbers <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> </nobr><br>\r
-<br><br>\r
-<a name="bm_O"></a><a name="subkey_OB"></a><a href="../files/sewing_meshes.htm"><b>obey</b></a> <br><nobr>object <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/editing_groups.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/creating_groups.htm"><b>8</b></a> <a href="../files/constructing_submeshes.htm"><b>9</b></a> <a href="../files/constructing_meshes.htm"><b>10</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>11</b></a> <a href="../files/rotation.htm"><b>12</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>13</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>14</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>15</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>16</b></a> <a href="../files/local_length_hypothesis.htm"><b>17</b></a> <a href="../files/visualization_modes.htm"><b>18</b></a> <a href="../files/viewing_mesh_info.htm"><b>19</b></a> <a href="../files/translation.htm"><b>20</b></a> <a href="../pattern_mapping.htm"><b>21</b></a> </nobr><br><nobr>objects <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>8</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>objet</b></a> <br><nobr><a name="bms_OK"></a><a name="subkey_OK"></a>ok <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/editing_groups.htm"><b>6</b></a> <a href="../files/displacing_nodes.htm"><b>7</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>8</b></a> <a href="../files/cutting_quadrangles.htm"><b>9</b></a> <a href="../files/creating_groups.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>12</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>13</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>14</b></a> <a href="../files/using_operations_on_groups.htm"><b>15</b></a> <a href="../files/uniting_two_triangles.htm"><b>16</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>17</b></a> <a href="../files/smoothing.htm"><b>18</b></a> <a href="../revolution.htm"><b>19</b></a> </nobr><br><nobr><a name="bms_ON"></a><a name="subkey_ON"></a>once <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>one <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>10</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>11</b></a> <a href="../files/using_operations_on_groups.htm"><b>12</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>13</b></a> <a href="../files/translation.htm"><b>14</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>15</b></a> <a href="../files/symmetry.htm"><b>16</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>17</b></a> <a href="../files/smoothing.htm"><b>18</b></a> <a href="../revolution.htm"><b>19</b></a> <a href="../pattern_mapping.htm"><b>20</b></a> </nobr><br><nobr>ones <a href="../extrusion.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><nobr>onto <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_OP"></a><a name="subkey_OP"></a>operation <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>6</b></a> <a href="../files/using_operations_on_groups.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</b></a> <a href="../files/translation.htm"><b>9</b></a> <a href="../files/symmetry.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> </nobr><br><nobr>operations <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> </nobr><br><nobr>opposite <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>4</b></a> <a href="../files/skew.htm"><b>5</b></a> </nobr><br><nobr>options <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_OR"></a><a name="subkey_OR"></a>order <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>orientation <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><a href="../files/warp.htm"><b>origin</b></a> <br><a name="bms_OT"></a><a name="subkey_OT"></a><a href="../files/uniting_a_set_of_triangles.htm"><b>others</b></a> <br><a name="bms_OU"></a><a name="subkey_OU"></a><a href="../pattern_mapping.htm"><b>outside</b></a> <br><a name="bms_OW"></a><a name="subkey_OW"></a><a href="../files/about_meshes.htm"><b>own</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_P"></a><a name="subkey_PA"></a>parameter <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>parameters <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/length_from_edges.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/rotation.htm"><b>4</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>5</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>6</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>7</b></a> </nobr><br><nobr>parametric <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>part <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>particularity</b></a> <br><a href="../pattern_mapping.htm"><b>pattern</b></a> <br><a href="../pattern_mapping.htm"><b>pattern_name</b></a> <br><a href="../pattern_mapping.htm"><b>patterns</b></a> <br><a name="bms_PE"></a><a name="subkey_PE"></a><a href="../files/aspect_ratio.htm"><b>perfect</b></a> <br><nobr>perform <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>performing</b></a> <br><a name="bms_PL"></a><a name="subkey_PL"></a><a href="../files/sewing_meshes.htm"><b>place</b></a> <br><a href="../files/sewing_meshes.htm"><b>placed</b></a> <br><a href="../files/warp.htm"><b>planar</b></a> <br><nobr>plane <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>platform</b></a> <br><nobr>plus <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_PO"></a><a name="subkey_PO"></a>point <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> </nobr><br><nobr>points <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/translation.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>pop <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/visualization_modes.htm"><b>3</b></a> </nobr><br><nobr>popup <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><nobr>position <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>positions</b></a> <br><nobr>possible <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a name="bms_PR"></a><a name="subkey_PR"></a><a href="../files/using_operations_on_groups.htm"><b>present</b></a> <br><a href="../files/about_quality_controls.htm"><b>presentation</b></a> <br><a href="../files/about_meshes.htm"><b>presented</b></a> <br><a href="../pattern_mapping.htm"><b>preserved</b></a> <br><a href="../files/about_hypotheses.htm"><b>preset</b></a> <br><a href="../files/smoothing.htm"><b>press</b></a> <br><nobr>pressed <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> </nobr><br><nobr>preview <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>previous <a href="../files/uniting_a_set_of_triangles.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><nobr>previously <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> </nobr><br><nobr>procedure <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>process</b></a> <br><a href="../files/smoothing.htm"><b>produce</b></a> <br><a href="../files/about_meshes.htm"><b>produced</b></a> <br><nobr>produces <a href="../extrusion.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><a href="../files/warp.htm"><b>product</b></a> <br><a href="../files/arithmetic_1d.htm"><b>progression</b></a> <br><a href="../pattern_mapping.htm"><b>projected</b></a> <br><a href="../pattern_mapping.htm"><b>projecting</b></a> <br><nobr>projection <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>propagate</b></a> <br><nobr>propagation <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> </nobr><br><nobr>properties <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> <a href="../files/visualization_properties.htm"><b>3</b></a> <a href="../files/visualization_modes.htm"><b>4</b></a> </nobr><br><a name="bms_PS"></a><a name="subkey_PS"></a><a href="../files/diagonal_iversion_of_elements.htm"><b>pseudo</b></a> <br><a name="bms_PU"></a><a name="subkey_PU"></a><a href="../files/smoothing.htm"><b>pulls</b></a> <br>\r
-<br><br>\r
-<a name="bm_Q"></a><a name="subkey_QU"></a><a href="../files/warp.htm"><b>quad</b></a> <br><nobr>quadrangle <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> </nobr><br><nobr>quadrangles <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> </nobr><br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>quadrangular</b></a> <br><nobr>quality <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/minimum_angle.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>quantity</b></a> <br><a href="../files/creating_groups.htm"><b>quit</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_R"></a><a name="subkey_RA"></a>radio <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> <a href="../files/translation.htm"><b>7</b></a> <a href="../files/symmetry.htm"><b>8</b></a> </nobr><br><nobr>ratio <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> </nobr><br><a name="bms_RE"></a><a name="subkey_RE"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>reassigning</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>recompute</b></a> <br><a href="../files/smoothing.htm"><b>reduce</b></a> <br><a href="../files/smoothing.htm"><b>reevaluated</b></a> <br><nobr>reference <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> </nobr><br><nobr>references <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>refers</b></a> <br><a href="../files/about_hypotheses.htm"><b>refined</b></a> <br><nobr>reflects <a href="../files/skew.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>regular</b></a> <br><a href="../files/running_smesh_module.htm"><b>related</b></a> <br><a href="../files/about_meshes.htm"><b>relations</b></a> <br><a href="../files/about_meshes.htm"><b>relationship</b></a> <br><a href="../files/about_meshes.htm"><b>relationships</b></a> <br><a href="../files/aspect_ratio.htm"><b>remaining</b></a> <br><nobr>remove <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><a href="../files/removing_nodes_and_elements.htm"><b>removing</b></a> <br><a href="../files/editing_hypotheses.htm"><b>rename</b></a> <br><a href="../files/renumbering_nodes_and_elements.htm"><b>renumber</b></a> <br><a href="../files/renumbering_nodes_and_elements.htm"><b>renumbering</b></a> <br><a href="../files/changing_orientation_of_elements.htm"><b>reoriented</b></a> <br><a href="../files/aspect_ratio.htm"><b>repeated</b></a> <br><a href="../files/sewing_meshes.htm"><b>replaced</b></a> <br><nobr>represent <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>3</b></a> <a href="../files/local_length_hypothesis.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>representation</b></a> <br><a href="../files/about_meshes.htm"><b>representations</b></a> <br><nobr>represents <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/taper.htm"><b>2</b></a> </nobr><br><nobr>required <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>3</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>4</b></a> <a href="../files/uniting_two_triangles.htm"><b>5</b></a> </nobr><br><nobr>rest <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>restricted</b></a> <br><nobr>resulting <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>results</b></a> <br><a href="../files/aspect_ratio.htm"><b>retained</b></a> <br><a href="../files/about_meshes.htm"><b>retrieve</b></a> <br><a href="../pattern_mapping.htm"><b>reverse</b></a> <br><a href="../files/changing_orientation_of_elements.htm"><b>reverting</b></a> <br><nobr>revolution <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../revolution.htm"><b>revolved</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf6.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstf6.htm b/doc/salome/gui/SMESH/whgdata/whlstf6.htm
deleted file mode 100755 (executable)
index 2158cef..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words List</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<p class="ftsbody" align="center"><a href="whlstf5.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
-<p class="ftsbody">\r
-<nobr><a name="bms_RI"></a><a name="subkey_RI"></a>right <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/displaying_elements_numbers.htm"><b>3</b></a> <a href="../files/displacing_nodes.htm"><b>4</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/visualization_modes.htm"><b>7</b></a> </nobr><br><a name="bms_RO"></a><a name="subkey_RO"></a><a href="../files/rotation.htm"><b>rotate</b></a> <br><nobr>rotated <a href="../extrusion.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><nobr>rotation <a href="../files/rotation.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>rough</b></a> <br><a name="bms_RU"></a><a name="subkey_RU"></a><a href="../files/sewing_meshes.htm"><b>rule</b></a> <br><a href="../files/running_smesh_module.htm"><b>run</b></a> <br><a href="../files/running_smesh_module.htm"><b>running</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_S"></a><a name="subkey_S{"></a>s <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>5</b></a> </nobr><br><nobr><a name="bms_SA"></a><a name="subkey_SA"></a>salome <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>same <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_SC"></a><a name="subkey_SC"></a>scalar <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> </nobr><br><a name="bms_SE"></a><a name="subkey_SE"></a><a href="../pattern_mapping.htm"><b>seam</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>search</b></a> <br><a href="../files/sewing_meshes.htm"><b>second</b></a> <br><a href="../pattern_mapping.htm"><b>section</b></a> <br><a href="../pattern_mapping.htm"><b>sections</b></a> <br><nobr>see <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>segment</b></a> <br><nobr>segments <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/deflection_1d.htm"><b>5</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>6</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>7</b></a> <a href="../files/local_length_hypothesis.htm"><b>8</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>9</b></a> </nobr><br><nobr>select <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../files/about_meshing_algorithms.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>9</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>10</b></a> <a href="../extrusion.htm"><b>11</b></a> <a href="../files/length_from_edges.htm"><b>12</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>13</b></a> <a href="../files/editing_hypotheses.htm"><b>14</b></a> <a href="../files/editing_groups.htm"><b>15</b></a> <a href="../files/displacing_nodes.htm"><b>16</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>17</b></a> <a href="../files/deflection_1d.htm"><b>18</b></a> <a href="../files/cutting_quadrangles.htm"><b>19</b></a> <a href="../files/creating_groups.htm"><b>20</b></a> <a href="../files/constructing_submeshes.htm"><b>21</b></a> <a href="../files/constructing_meshes.htm"><b>22</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>23</b></a> <a href="../files/sewing_meshes.htm"><b>24</b></a> <a href="../files/running_smesh_module.htm"><b>25</b></a> <a href="../files/rotation.htm"><b>26</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>27</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>28</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>29</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>30</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>31</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>32</b></a> <a href="../files/merging_nodes.htm"><b>33</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>34</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>35</b></a> <a href="../files/local_length_hypothesis.htm"><b>36</b></a> <a href="../files/visualization_modes.htm"><b>37</b></a> <a href="../files/viewing_mesh_info.htm"><b>38</b></a> <a href="../files/using_operations_on_groups.htm"><b>39</b></a> <a href="../files/uniting_two_triangles.htm"><b>40</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>41</b></a> <a href="../files/translation.htm"><b>42</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>43</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>44</b></a> <a href="../files/symmetry.htm"><b>45</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>46</b></a> <a href="../files/smoothing.htm"><b>47</b></a> <a href="../revolution.htm"><b>48</b></a> <a href="../pattern_mapping.htm"><b>49</b></a> </nobr><br><nobr>selected <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>selecting <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../revolution.htm"><b>7</b></a> </nobr><br><nobr>selection <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>sense</b></a> <br><a href="../files/taper.htm"><b>separated</b></a> <br><a href="../files/sewing_meshes.htm"><b>sequence</b></a> <br><a href="../files/sewing_meshes.htm"><b>sequences</b></a> <br><nobr>set <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/displacing_nodes.htm"><b>7</b></a> <a href="../files/deflection_1d.htm"><b>8</b></a> <a href="../files/cutting_quadrangles.htm"><b>9</b></a> <a href="../files/creating_groups.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/running_smesh_module.htm"><b>12</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>13</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>14</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>15</b></a> <a href="../files/local_length_hypothesis.htm"><b>16</b></a> <a href="../files/visualization_modes.htm"><b>17</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>18</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>19</b></a> <a href="../files/smoothing.htm"><b>20</b></a> <a href="../pattern_mapping.htm"><b>21</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>sets</b></a> <br><nobr>setting <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>sew</b></a> <br><a href="../files/sewing_meshes.htm"><b>sewing</b></a> <br><a name="bms_SH"></a><a name="subkey_SH"></a><a href="../files/visualization_modes.htm"><b>shading</b></a> <br><nobr>shall <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/rotation.htm"><b>10</b></a> <a href="../files/merging_nodes.htm"><b>11</b></a> <a href="../files/uniting_two_triangles.htm"><b>12</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>13</b></a> <a href="../files/translation.htm"><b>14</b></a> <a href="../files/symmetry.htm"><b>15</b></a> <a href="../revolution.htm"><b>16</b></a> <a href="../pattern_mapping.htm"><b>17</b></a> </nobr><br><nobr>shape <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>shapes</b></a> <br><nobr>shift <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> </nobr><br><nobr>shortest <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>should <a href="../extrusion.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/running_smesh_module.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/using_operations_on_groups.htm"><b>7</b></a> <a href="../files/smoothing.htm"><b>8</b></a> <a href="../revolution.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> </nobr><br><nobr>shown <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/visualization_modes.htm"><b>shrink</b></a> <br><nobr><a name="bms_SI"></a><a name="subkey_SI"></a>side <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>sides <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/skew.htm"><b>3</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>similar</b></a> <br><nobr>simple <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>sizes</b></a> <br><nobr><a name="bms_SK"></a><a name="subkey_SK"></a>skew <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/skew.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_SM"></a><a name="subkey_SM"></a>smesh <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_hypotheses.htm"><b>8</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>9</b></a> <a href="../files/displaying_elements_numbers.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>14</b></a> <a href="../files/sewing_meshes.htm"><b>15</b></a> <a href="../files/running_smesh_module.htm"><b>16</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>17</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>18</b></a> <a href="../files/visualization_modes.htm"><b>19</b></a> <a href="../files/using_smesh_module.htm"><b>20</b></a> <a href="../files/using_operations_on_groups.htm"><b>21</b></a> <a href="../files/uniting_two_triangles.htm"><b>22</b></a> </nobr><br><a href="../files/smoothing.htm"><b>smoothed</b></a> <br><a href="../files/smoothing.htm"><b>smoothing</b></a> <br><a href="../pattern_mapping.htm"><b>smp</b></a> <br><nobr><a name="bms_SO"></a><a name="subkey_SO"></a>so <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><nobr>sort <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_SP"></a><a name="subkey_SP"></a>space <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../files/translation.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/constructing_groups_of_specific_elements.htm"><b>specific</b></a> <br><nobr>specified <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>3</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> </nobr><br><nobr>specifies <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>specify <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/rotation.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> </nobr><br><nobr>specifying <a href="../files/translation.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> </nobr><br><nobr>split <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> </nobr><br><a name="bms_ST"></a><a name="subkey_ST"></a><a href="../files/creating_groups.htm"><b>standalone</b></a> <br><nobr>standard <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>start <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>starting <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/translation.htm"><b>3</b></a> </nobr><br><a href="../files/computing_meshes.htm"><b>step</b></a> <br><nobr>steps <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>stored</b></a> <br><nobr>structure <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>study <a href="../files/running_smesh_module.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_SU"></a><a name="subkey_SU"></a>sub <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../files/merging_nodes.htm"><b>4</b></a> <a href="../files/translation.htm"><b>5</b></a> <a href="../files/symmetry.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>submenu <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> </nobr><br><nobr>submesh <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>7</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>8</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> </nobr><br><nobr>submeshes <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> </nobr><br><a href="../files/cutting_quadrangles.htm"><b>supplementary</b></a> <br><nobr>surface <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>4</b></a> <a href="../revolution.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>surfaces</b></a> <br><nobr>surrounding <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_SW"></a><a name="subkey_SW"></a>swept <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a name="bms_SY"></a><a name="subkey_SY"></a><a href="../files/symmetry.htm"><b>symmetrical</b></a> <br><a href="../files/symmetry.htm"><b>symmetrically</b></a> <br><a href="../files/symmetry.htm"><b>symmetry</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_T"></a><a name="subkey_T{"></a>t <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a name="bms_TA"></a><a name="subkey_TA"></a><a href="../files/uniting_a_set_of_triangles.htm"><b>take</b></a> <br><nobr>taken <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><nobr>taper <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> </nobr><br><a name="bms_TE"></a><a name="subkey_TE"></a><a href="../files/smoothing.htm"><b>techniques</b></a> <br><nobr>tetrahedron <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>4</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>5</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>tetrahedrons</b></a> <br><nobr>text <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> <a href="../files/visualization_properties.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_TH"></a><a name="subkey_TH"></a>th <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>them <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>4</b></a> <a href="../files/merging_nodes.htm"><b>5</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> </nobr><br><nobr>three <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/visualization_modes.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> </nobr><br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>thus</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf7.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstf7.htm b/doc/salome/gui/SMESH/whgdata/whlstf7.htm
deleted file mode 100755 (executable)
index 36d6d93..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words List</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<p class="ftsbody" align="center"><a href="whlstf6.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
-<p class="ftsbody">\r
-<nobr><a name="bms_TO"></a><a name="subkey_TO"></a>tolerance <a href="../files/merging_nodes.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../files/using_operations_on_groups.htm"><b>tool</b></a> <br><nobr>toolbar <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/editing_groups.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/constructing_submeshes.htm"><b>9</b></a> <a href="../files/constructing_meshes.htm"><b>10</b></a> <a href="../files/running_smesh_module.htm"><b>11</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>12</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>13</b></a> <a href="../files/length_of_edges.htm"><b>14</b></a> <a href="../files/viewing_mesh_info.htm"><b>15</b></a> <a href="../files/uniting_two_triangles.htm"><b>16</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>17</b></a> <a href="../files/taper.htm"><b>18</b></a> <a href="../files/smoothing.htm"><b>19</b></a> <a href="../files/skew.htm"><b>20</b></a> <a href="../revolution.htm"><b>21</b></a> <a href="../pattern_mapping.htm"><b>22</b></a> <a href="../files/warp.htm"><b>23</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>toolbars</b></a> <br><nobr>topic <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> <a href="../files/visualization_properties.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>topological</b></a> <br><a href="../files/sewing_meshes.htm"><b>topologically</b></a> <br><a href="../files/about_meshes.htm"><b>topology</b></a> <br><a href="../files/smoothing.htm"><b>toward</b></a> <br><nobr><a name="bms_TR"></a><a name="subkey_TR"></a>transformation <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../files/merging_nodes.htm"><b>3</b></a> <a href="../files/translation.htm"><b>4</b></a> <a href="../files/symmetry.htm"><b>5</b></a> </nobr><br><a href="../files/displacing_nodes.htm"><b>transformed</b></a> <br><a href="../files/translation.htm"><b>translate</b></a> <br><a href="../files/translation.htm"><b>translated</b></a> <br><a href="../files/translation.htm"><b>translation</b></a> <br><nobr>triangle <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/minimum_angle.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><nobr>triangles <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/uniting_two_triangles.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</b></a> <a href="../files/taper.htm"><b>9</b></a> <a href="../files/skew.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> </nobr><br><nobr>triangulator <a href="../files/length_from_edges.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_TW"></a><a name="subkey_TW"></a>two <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/using_operations_on_groups.htm"><b>8</b></a> <a href="../files/uniting_two_triangles.htm"><b>9</b></a> <a href="../files/translation.htm"><b>10</b></a> <a href="../files/taper.htm"><b>11</b></a> <a href="../pattern_mapping.htm"><b>12</b></a> </nobr><br><nobr><a name="bms_TY"></a><a name="subkey_TY"></a>type <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>7</b></a> <a href="../files/connectivity.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/scalar_bar_properties.htm"><b>10</b></a> <a href="../files/visualization_properties.htm"><b>11</b></a> <a href="../revolution.htm"><b>12</b></a> </nobr><br><nobr>types <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> </nobr><br><a href="../files/smoothing.htm"><b>typically</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_U"></a><a name="subkey_U{"></a>u <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_UN"></a><a name="subkey_UN"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>unassign</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>unassigning</b></a> <br><a href="../files/smoothing.htm"><b>uniform</b></a> <br><nobr>union <a href="../files/using_operations_on_groups.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><nobr>unite <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><nobr>united <a href="../files/using_operations_on_groups.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>uniting <a href="../files/uniting_two_triangles.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>unless</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>unv</b></a> <br><nobr><a name="bms_UP"></a><a name="subkey_UP"></a>up <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/displaying_elements_numbers.htm"><b>3</b></a> <a href="../files/visualization_modes.htm"><b>4</b></a> </nobr><br><a href="../files/view_update.htm"><b>update</b></a> <br><nobr>updated <a href="../files/running_smesh_module.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>upper</b></a> <br><a name="bms_US"></a><a name="subkey_US"></a><a href="../files/about_quality_controls.htm"><b>usage</b></a> <br><nobr>used <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>2</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>4</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>11</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>12</b></a> <a href="../files/local_length_hypothesis.htm"><b>13</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>14</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>15</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>16</b></a> <a href="../files/smoothing.htm"><b>17</b></a> <a href="../revolution.htm"><b>18</b></a> <a href="../pattern_mapping.htm"><b>19</b></a> </nobr><br><nobr>user <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/merging_nodes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>using <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/using_smesh_module.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>usually <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br>\r
-<br><br>\r
-<a name="bm_V"></a><a name="subkey_V{"></a><a href="../files/about_meshes.htm"><b>v</b></a> <br><nobr><a name="bms_VA"></a><a name="subkey_VA"></a>value <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/editing_hypotheses.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/skew.htm"><b>5</b></a> </nobr><br><nobr>values <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VE"></a><a name="subkey_VE"></a>vector <a href="../extrusion.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../files/translation.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> <a href="../revolution.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> </nobr><br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>versa</b></a> <br><nobr>vertex <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>vertices</b></a> <br><a name="bms_VI"></a><a name="subkey_VI"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>vice</b></a> <br><nobr>view <a href="../files/viewing_mesh_info.htm"><b>1</b></a> <a href="../files/view_update.htm"><b>2</b></a> </nobr><br><nobr>viewer <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>6</b></a> <a href="../files/displaying_elements_numbers.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>9</b></a> <a href="../files/cutting_quadrangles.htm"><b>10</b></a> <a href="../files/creating_groups.htm"><b>11</b></a> <a href="../files/sewing_meshes.htm"><b>12</b></a> <a href="../files/running_smesh_module.htm"><b>13</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>14</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>15</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>16</b></a> <a href="../files/minimum_angle.htm"><b>17</b></a> <a href="../files/length_of_edges.htm"><b>18</b></a> <a href="../files/visualization_modes.htm"><b>19</b></a> <a href="../files/uniting_two_triangles.htm"><b>20</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>21</b></a> <a href="../files/taper.htm"><b>22</b></a> <a href="../files/smoothing.htm"><b>23</b></a> <a href="../files/skew.htm"><b>24</b></a> <a href="../revolution.htm"><b>25</b></a> <a href="../files/warp.htm"><b>26</b></a> </nobr><br><a href="../files/viewing_mesh_info.htm"><b>viewing</b></a> <br><a href="../files/about_quality_controls.htm"><b>visual</b></a> <br><nobr>visualization <a href="../files/visualization_properties.htm"><b>1</b></a> <a href="../files/visualization_modes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VO"></a><a name="subkey_VO"></a>volume <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>6</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>7</b></a> </nobr><br><nobr>volumes <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> </nobr><br><a name="bms_VT"></a><a name="subkey_VT"></a><a href="../files/running_smesh_module.htm"><b>vtk</b></a> <br>\r
-<br><br>\r
-<a name="bm_W"></a><a name="subkey_WA"></a><a href="../pattern_mapping.htm"><b>walking</b></a> <br><a href="../files/warp.htm"><b>warp</b></a> <br><nobr>warping <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><nobr>way <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a name="bms_WE"></a><a name="subkey_WE"></a><a href="../files/smoothing.htm"><b>weighted</b></a> <br><a href="../pattern_mapping.htm"><b>well</b></a> <br><nobr><a name="bms_WH"></a><a name="subkey_WH"></a>while <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>2</b></a> </nobr><br><nobr>whole <a href="../extrusion.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><nobr>whose <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_WI"></a><a name="subkey_WI"></a>will <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/area_of_elements.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../files/about_meshing_algorithms.htm"><b>6</b></a> <a href="../files/about_meshes.htm"><b>7</b></a> <a href="../files/about_hypotheses.htm"><b>8</b></a> <a href="../extrusion.htm"><b>9</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>10</b></a> <a href="../files/editing_hypotheses.htm"><b>11</b></a> <a href="../files/editing_groups.htm"><b>12</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>13</b></a> <a href="../files/displaying_elements_numbers.htm"><b>14</b></a> <a href="../files/displacing_nodes.htm"><b>15</b></a> <a href="../files/deflection_1d.htm"><b>16</b></a> <a href="../files/cutting_quadrangles.htm"><b>17</b></a> <a href="../files/creating_groups.htm"><b>18</b></a> <a href="../files/constructing_submeshes.htm"><b>19</b></a> <a href="../files/constructing_meshes.htm"><b>20</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>21</b></a> <a href="../files/sewing_meshes.htm"><b>22</b></a> <a href="../files/running_smesh_module.htm"><b>23</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>24</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>25</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>26</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>27</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>28</b></a> <a href="../files/minimum_angle.htm"><b>29</b></a> <a href="../files/local_length_hypothesis.htm"><b>30</b></a> <a href="../files/length_of_edges.htm"><b>31</b></a> <a href="../files/viewing_mesh_info.htm"><b>32</b></a> <a href="../files/using_operations_on_groups.htm"><b>33</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>34</b></a> <a href="../files/taper.htm"><b>35</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>36</b></a> <a href="../files/smoothing.htm"><b>37</b></a> <a href="../files/skew.htm"><b>38</b></a> <a href="../revolution.htm"><b>39</b></a> <a href="../pattern_mapping.htm"><b>40</b></a> <a href="../files/warp.htm"><b>41</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>window</b></a> <br><nobr>wire <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> </nobr><br><a href="../files/visualization_modes.htm"><b>wireframe</b></a> <br><nobr>within <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a name="bms_WO"></a><a name="subkey_WO"></a><a href="../files/number_of_segments_hypothesis.htm"><b>words</b></a> <br><a href="../files/running_smesh_module.htm"><b>work</b></a> <br><nobr>would <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> </nobr><br>\r
-<br><br>\r
-<nobr><a name="bm_X"></a><a name="subkey_X{"></a>x <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br>\r
-<br><br>\r
-<a name="bm_Y"></a><a name="subkey_Y{"></a><a href="../files/about_meshes.htm"><b>y</b></a> <br><nobr><a name="bms_YO"></a><a name="subkey_YO"></a>your <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/area_of_elements.htm"><b>5</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>6</b></a> <a href="../files/about_quality_controls.htm"><b>7</b></a> <a href="../files/about_meshes.htm"><b>8</b></a> <a href="../files/about_hypotheses.htm"><b>9</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>10</b></a> <a href="../files/editing_hypotheses.htm"><b>11</b></a> <a href="../files/editing_groups.htm"><b>12</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>13</b></a> <a href="../files/displaying_elements_numbers.htm"><b>14</b></a> <a href="../files/displacing_nodes.htm"><b>15</b></a> <a href="../files/deflection_1d.htm"><b>16</b></a> <a href="../files/creating_groups.htm"><b>17</b></a> <a href="../files/constructing_submeshes.htm"><b>18</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>19</b></a> <a href="../files/rotation.htm"><b>20</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>21</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>22</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>23</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>24</b></a> <a href="../files/minimum_angle.htm"><b>25</b></a> <a href="../files/merging_nodes.htm"><b>26</b></a> <a href="../files/local_length_hypothesis.htm"><b>27</b></a> <a href="../files/length_of_edges.htm"><b>28</b></a> <a href="../files/visualization_modes.htm"><b>29</b></a> <a href="../files/viewing_mesh_info.htm"><b>30</b></a> <a href="../files/translation.htm"><b>31</b></a> <a href="../files/taper.htm"><b>32</b></a> <a href="../files/symmetry.htm"><b>33</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>34</b></a> <a href="../files/smoothing.htm"><b>35</b></a> <a href="../files/skew.htm"><b>36</b></a> <a href="../pattern_mapping.htm"><b>37</b></a> <a href="../files/warp.htm"><b>38</b></a> </nobr><br>\r
-<br><br>\r
-<a name="bm_Z"></a><a name="subkey_Z{"></a><a href="../files/about_meshes.htm"><b>z</b></a> <br><a name="bms_ZE"></a><a name="subkey_ZE"></a><a href="../pattern_mapping.htm"><b>zero</b></a> <br><br><br></p>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl0.htm b/doc/salome/gui/SMESH/whgdata/whlstfl0.htm
deleted file mode 100755 (executable)
index 6e96a51..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_A"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_A" target="ftslist" title="search letter AB"><b>AB</b></a> <a href="whlstf0.htm#bms_AC" target="ftslist" title="search letter AC"><b>AC</b></a> <a href="whlstf0.htm#bms_AD" target="ftslist" title="search letter AD"><b>AD</b></a> <a href="whlstf0.htm#bms_AG" target="ftslist" title="search letter AG"><b>AG</b></a> <a href="whlstf0.htm#bms_AL" target="ftslist" title="search letter AL"><b>AL</b></a> <a href="whlstf0.htm#bms_AN" target="ftslist" title="search letter AN"><b>AN</b></a> <a href="whlstf0.htm#bms_AP" target="ftslist" title="search letter AP"><b>AP</b></a> <a href="whlstf0.htm#bms_AR" target="ftslist" title="search letter AR"><b>AR</b></a> <a href="whlstf0.htm#bms_AS" target="ftslist" title="search letter AS"><b>AS</b></a> <a href="whlstf0.htm#bms_AU" target="ftslist" title="search letter AU"><b>AU</b></a> <a href="whlstf0.htm#bms_AV" target="ftslist" title="search letter AV"><b>AV</b></a> <a href="whlstf0.htm#bms_AX" target="ftslist" title="search letter AX"><b>AX</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl1.htm b/doc/salome/gui/SMESH/whgdata/whlstfl1.htm
deleted file mode 100755 (executable)
index 6cc407b..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_B"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_B" target="ftslist" title="search letter BA"><b>BA</b></a> <a href="whlstf0.htm#bms_BE" target="ftslist" title="search letter BE"><b>BE</b></a> <a href="whlstf0.htm#bms_BI" target="ftslist" title="search letter BI"><b>BI</b></a> <a href="whlstf0.htm#bms_BO" target="ftslist" title="search letter BO"><b>BO</b></a> <a href="whlstf1.htm#bms_BR" target="ftslist" title="search letter BR"><b>BR</b></a> <a href="whlstf1.htm#bms_BU" target="ftslist" title="search letter BU"><b>BU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl10.htm b/doc/salome/gui/SMESH/whgdata/whlstfl10.htm
deleted file mode 100755 (executable)
index 279e88d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_K"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_K" target="ftslist" title="search letter KE"><b>KE</b></a> <a href="whlstf4.htm#bms_KI" target="ftslist" title="search letter KI"><b>KI</b></a> <a href="whlstf4.htm#bms_KN" target="ftslist" title="search letter KN"><b>KN</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl11.htm b/doc/salome/gui/SMESH/whgdata/whlstfl11.htm
deleted file mode 100755 (executable)
index a1f912d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_L"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_L" target="ftslist" title="search letter L "><b>L </b></a> <a href="whlstf4.htm#bms_LA" target="ftslist" title="search letter LA"><b>LA</b></a> <a href="whlstf4.htm#bms_LE" target="ftslist" title="search letter LE"><b>LE</b></a> <a href="whlstf4.htm#bms_LI" target="ftslist" title="search letter LI"><b>LI</b></a> <a href="whlstf4.htm#bms_LK" target="ftslist" title="search letter LK"><b>LK</b></a> <a href="whlstf4.htm#bms_LO" target="ftslist" title="search letter LO"><b>LO</b></a> <a href="whlstf4.htm#bms_LY" target="ftslist" title="search letter LY"><b>LY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl12.htm b/doc/salome/gui/SMESH/whgdata/whlstfl12.htm
deleted file mode 100755 (executable)
index 9733f35..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_M"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_M" target="ftslist" title="search letter MA"><b>MA</b></a> <a href="whlstf4.htm#bms_ME" target="ftslist" title="search letter ME"><b>ME</b></a> <a href="whlstf4.htm#bms_MI" target="ftslist" title="search letter MI"><b>MI</b></a> <a href="whlstf4.htm#bms_MO" target="ftslist" title="search letter MO"><b>MO</b></a> <a href="whlstf4.htm#bms_MU" target="ftslist" title="search letter MU"><b>MU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl13.htm b/doc/salome/gui/SMESH/whgdata/whlstfl13.htm
deleted file mode 100755 (executable)
index 359bc6d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_N"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_N" target="ftslist" title="search letter N "><b>N </b></a> <a href="whlstf4.htm#bms_NA" target="ftslist" title="search letter NA"><b>NA</b></a> <a href="whlstf4.htm#bms_NB" target="ftslist" title="search letter NB"><b>NB</b></a> <a href="whlstf4.htm#bms_NE" target="ftslist" title="search letter NE"><b>NE</b></a> <a href="whlstf5.htm#bms_NO" target="ftslist" title="search letter NO"><b>NO</b></a> <a href="whlstf5.htm#bms_NU" target="ftslist" title="search letter NU"><b>NU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl14.htm b/doc/salome/gui/SMESH/whgdata/whlstfl14.htm
deleted file mode 100755 (executable)
index d2d32a2..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_O"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_O" target="ftslist" title="search letter OB"><b>OB</b></a> <a href="whlstf5.htm#bms_OK" target="ftslist" title="search letter OK"><b>OK</b></a> <a href="whlstf5.htm#bms_ON" target="ftslist" title="search letter ON"><b>ON</b></a> <a href="whlstf5.htm#bms_OP" target="ftslist" title="search letter OP"><b>OP</b></a> <a href="whlstf5.htm#bms_OR" target="ftslist" title="search letter OR"><b>OR</b></a> <a href="whlstf5.htm#bms_OT" target="ftslist" title="search letter OT"><b>OT</b></a> <a href="whlstf5.htm#bms_OU" target="ftslist" title="search letter OU"><b>OU</b></a> <a href="whlstf5.htm#bms_OW" target="ftslist" title="search letter OW"><b>OW</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl15.htm b/doc/salome/gui/SMESH/whgdata/whlstfl15.htm
deleted file mode 100755 (executable)
index 41d2641..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_P"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_P" target="ftslist" title="search letter PA"><b>PA</b></a> <a href="whlstf5.htm#bms_PE" target="ftslist" title="search letter PE"><b>PE</b></a> <a href="whlstf5.htm#bms_PL" target="ftslist" title="search letter PL"><b>PL</b></a> <a href="whlstf5.htm#bms_PO" target="ftslist" title="search letter PO"><b>PO</b></a> <a href="whlstf5.htm#bms_PR" target="ftslist" title="search letter PR"><b>PR</b></a> <a href="whlstf5.htm#bms_PS" target="ftslist" title="search letter PS"><b>PS</b></a> <a href="whlstf5.htm#bms_PU" target="ftslist" title="search letter PU"><b>PU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl16.htm b/doc/salome/gui/SMESH/whgdata/whlstfl16.htm
deleted file mode 100755 (executable)
index da1c3fb..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_R"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_R" target="ftslist" title="search letter RA"><b>RA</b></a> <a href="whlstf5.htm#bms_RE" target="ftslist" title="search letter RE"><b>RE</b></a> <a href="whlstf6.htm#bms_RI" target="ftslist" title="search letter RI"><b>RI</b></a> <a href="whlstf6.htm#bms_RO" target="ftslist" title="search letter RO"><b>RO</b></a> <a href="whlstf6.htm#bms_RU" target="ftslist" title="search letter RU"><b>RU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl17.htm b/doc/salome/gui/SMESH/whgdata/whlstfl17.htm
deleted file mode 100755 (executable)
index 018a269..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_S"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf6.htm#bm_S" target="ftslist" title="search letter S "><b>S </b></a> <a href="whlstf6.htm#bms_SA" target="ftslist" title="search letter SA"><b>SA</b></a> <a href="whlstf6.htm#bms_SC" target="ftslist" title="search letter SC"><b>SC</b></a> <a href="whlstf6.htm#bms_SE" target="ftslist" title="search letter SE"><b>SE</b></a> <a href="whlstf6.htm#bms_SH" target="ftslist" title="search letter SH"><b>SH</b></a> <a href="whlstf6.htm#bms_SI" target="ftslist" title="search letter SI"><b>SI</b></a> <a href="whlstf6.htm#bms_SK" target="ftslist" title="search letter SK"><b>SK</b></a> <a href="whlstf6.htm#bms_SM" target="ftslist" title="search letter SM"><b>SM</b></a> <a href="whlstf6.htm#bms_SO" target="ftslist" title="search letter SO"><b>SO</b></a> <a href="whlstf6.htm#bms_SP" target="ftslist" title="search letter SP"><b>SP</b></a> <a href="whlstf6.htm#bms_ST" target="ftslist" title="search letter ST"><b>ST</b></a> <a href="whlstf6.htm#bms_SU" target="ftslist" title="search letter SU"><b>SU</b></a> <a href="whlstf6.htm#bms_SW" target="ftslist" title="search letter SW"><b>SW</b></a> <a href="whlstf6.htm#bms_SY" target="ftslist" title="search letter SY"><b>SY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl18.htm b/doc/salome/gui/SMESH/whgdata/whlstfl18.htm
deleted file mode 100755 (executable)
index 28b4bc6..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_T"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf6.htm#bm_T" target="ftslist" title="search letter T "><b>T </b></a> <a href="whlstf6.htm#bms_TA" target="ftslist" title="search letter TA"><b>TA</b></a> <a href="whlstf6.htm#bms_TE" target="ftslist" title="search letter TE"><b>TE</b></a> <a href="whlstf6.htm#bms_TH" target="ftslist" title="search letter TH"><b>TH</b></a> <a href="whlstf7.htm#bms_TO" target="ftslist" title="search letter TO"><b>TO</b></a> <a href="whlstf7.htm#bms_TR" target="ftslist" title="search letter TR"><b>TR</b></a> <a href="whlstf7.htm#bms_TW" target="ftslist" title="search letter TW"><b>TW</b></a> <a href="whlstf7.htm#bms_TY" target="ftslist" title="search letter TY"><b>TY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl19.htm b/doc/salome/gui/SMESH/whgdata/whlstfl19.htm
deleted file mode 100755 (executable)
index 0c980e5..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_U"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_U" target="ftslist" title="search letter U "><b>U </b></a> <a href="whlstf7.htm#bms_UN" target="ftslist" title="search letter UN"><b>UN</b></a> <a href="whlstf7.htm#bms_UP" target="ftslist" title="search letter UP"><b>UP</b></a> <a href="whlstf7.htm#bms_US" target="ftslist" title="search letter US"><b>US</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl2.htm b/doc/salome/gui/SMESH/whgdata/whlstfl2.htm
deleted file mode 100755 (executable)
index 10d30f5..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_C"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_C" target="ftslist" title="search letter CA"><b>CA</b></a> <a href="whlstf1.htm#bms_CE" target="ftslist" title="search letter CE"><b>CE</b></a> <a href="whlstf1.htm#bms_CH" target="ftslist" title="search letter CH"><b>CH</b></a> <a href="whlstf1.htm#bms_CL" target="ftslist" title="search letter CL"><b>CL</b></a> <a href="whlstf1.htm#bms_CO" target="ftslist" title="search letter CO"><b>CO</b></a> <a href="whlstf2.htm#bms_CR" target="ftslist" title="search letter CR"><b>CR</b></a> <a href="whlstf2.htm#bms_CU" target="ftslist" title="search letter CU"><b>CU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl20.htm b/doc/salome/gui/SMESH/whgdata/whlstfl20.htm
deleted file mode 100755 (executable)
index 779c1e9..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_V"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_V" target="ftslist" title="search letter V "><b>V </b></a> <a href="whlstf7.htm#bms_VA" target="ftslist" title="search letter VA"><b>VA</b></a> <a href="whlstf7.htm#bms_VE" target="ftslist" title="search letter VE"><b>VE</b></a> <a href="whlstf7.htm#bms_VI" target="ftslist" title="search letter VI"><b>VI</b></a> <a href="whlstf7.htm#bms_VO" target="ftslist" title="search letter VO"><b>VO</b></a> <a href="whlstf7.htm#bms_VT" target="ftslist" title="search letter VT"><b>VT</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl21.htm b/doc/salome/gui/SMESH/whgdata/whlstfl21.htm
deleted file mode 100755 (executable)
index 7aedae7..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_W"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_W" target="ftslist" title="search letter WA"><b>WA</b></a> <a href="whlstf7.htm#bms_WE" target="ftslist" title="search letter WE"><b>WE</b></a> <a href="whlstf7.htm#bms_WH" target="ftslist" title="search letter WH"><b>WH</b></a> <a href="whlstf7.htm#bms_WI" target="ftslist" title="search letter WI"><b>WI</b></a> <a href="whlstf7.htm#bms_WO" target="ftslist" title="search letter WO"><b>WO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl22.htm b/doc/salome/gui/SMESH/whgdata/whlstfl22.htm
deleted file mode 100755 (executable)
index 26a585f..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_Y"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_Y" target="ftslist" title="search letter Y "><b>Y </b></a> <a href="whlstf7.htm#bms_YO" target="ftslist" title="search letter YO"><b>YO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl23.htm b/doc/salome/gui/SMESH/whgdata/whlstfl23.htm
deleted file mode 100755 (executable)
index afed4bf..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_Z"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_Z" target="ftslist" title="search letter Z "><b>Z </b></a> <a href="whlstf7.htm#bms_ZE" target="ftslist" title="search letter ZE"><b>ZE</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl3.htm b/doc/salome/gui/SMESH/whgdata/whlstfl3.htm
deleted file mode 100755 (executable)
index 1f8c82d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_D"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_D" target="ftslist" title="search letter D "><b>D </b></a> <a href="whlstf2.htm#bms_DA" target="ftslist" title="search letter DA"><b>DA</b></a> <a href="whlstf2.htm#bms_DE" target="ftslist" title="search letter DE"><b>DE</b></a> <a href="whlstf2.htm#bms_DI" target="ftslist" title="search letter DI"><b>DI</b></a> <a href="whlstf2.htm#bms_DO" target="ftslist" title="search letter DO"><b>DO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl4.htm b/doc/salome/gui/SMESH/whgdata/whlstfl4.htm
deleted file mode 100755 (executable)
index 2c9f64d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_E"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_E" target="ftslist" title="search letter E "><b>E </b></a> <a href="whlstf2.htm#bms_EA" target="ftslist" title="search letter EA"><b>EA</b></a> <a href="whlstf2.htm#bms_ED" target="ftslist" title="search letter ED"><b>ED</b></a> <a href="whlstf2.htm#bms_EF" target="ftslist" title="search letter EF"><b>EF</b></a> <a href="whlstf2.htm#bms_EI" target="ftslist" title="search letter EI"><b>EI</b></a> <a href="whlstf2.htm#bms_EL" target="ftslist" title="search letter EL"><b>EL</b></a> <a href="whlstf2.htm#bms_EN" target="ftslist" title="search letter EN"><b>EN</b></a> <a href="whlstf3.htm#bms_EQ" target="ftslist" title="search letter EQ"><b>EQ</b></a> <a href="whlstf3.htm#bms_ET" target="ftslist" title="search letter ET"><b>ET</b></a> <a href="whlstf3.htm#bms_EV" target="ftslist" title="search letter EV"><b>EV</b></a> <a href="whlstf3.htm#bms_EX" target="ftslist" title="search letter EX"><b>EX</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl5.htm b/doc/salome/gui/SMESH/whgdata/whlstfl5.htm
deleted file mode 100755 (executable)
index a4c02a3..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_F"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_F" target="ftslist" title="search letter FA"><b>FA</b></a> <a href="whlstf3.htm#bms_FI" target="ftslist" title="search letter FI"><b>FI</b></a> <a href="whlstf3.htm#bms_FL" target="ftslist" title="search letter FL"><b>FL</b></a> <a href="whlstf3.htm#bms_FO" target="ftslist" title="search letter FO"><b>FO</b></a> <a href="whlstf3.htm#bms_FR" target="ftslist" title="search letter FR"><b>FR</b></a> <a href="whlstf3.htm#bms_FU" target="ftslist" title="search letter FU"><b>FU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl6.htm b/doc/salome/gui/SMESH/whgdata/whlstfl6.htm
deleted file mode 100755 (executable)
index 7a68dcf..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_G"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_G" target="ftslist" title="search letter GE"><b>GE</b></a> <a href="whlstf3.htm#bms_GH" target="ftslist" title="search letter GH"><b>GH</b></a> <a href="whlstf3.htm#bms_GI" target="ftslist" title="search letter GI"><b>GI</b></a> <a href="whlstf3.htm#bms_GL" target="ftslist" title="search letter GL"><b>GL</b></a> <a href="whlstf3.htm#bms_GO" target="ftslist" title="search letter GO"><b>GO</b></a> <a href="whlstf3.htm#bms_GR" target="ftslist" title="search letter GR"><b>GR</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl7.htm b/doc/salome/gui/SMESH/whgdata/whlstfl7.htm
deleted file mode 100755 (executable)
index 93f2492..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_H"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_H" target="ftslist" title="search letter H "><b>H </b></a> <a href="whlstf3.htm#bms_HA" target="ftslist" title="search letter HA"><b>HA</b></a> <a href="whlstf3.htm#bms_HE" target="ftslist" title="search letter HE"><b>HE</b></a> <a href="whlstf3.htm#bms_HI" target="ftslist" title="search letter HI"><b>HI</b></a> <a href="whlstf3.htm#bms_HO" target="ftslist" title="search letter HO"><b>HO</b></a> <a href="whlstf3.htm#bms_HY" target="ftslist" title="search letter HY"><b>HY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl8.htm b/doc/salome/gui/SMESH/whgdata/whlstfl8.htm
deleted file mode 100755 (executable)
index c274d4d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_I"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_I" target="ftslist" title="search letter I "><b>I </b></a> <a href="whlstf3.htm#bms_IC" target="ftslist" title="search letter IC"><b>IC</b></a> <a href="whlstf3.htm#bms_ID" target="ftslist" title="search letter ID"><b>ID</b></a> <a href="whlstf3.htm#bms_IF" target="ftslist" title="search letter IF"><b>IF</b></a> <a href="whlstf3.htm#bms_IM" target="ftslist" title="search letter IM"><b>IM</b></a> <a href="whlstf3.htm#bms_IN" target="ftslist" title="search letter IN"><b>IN</b></a> <a href="whlstf4.htm#bms_IS" target="ftslist" title="search letter IS"><b>IS</b></a> <a href="whlstf4.htm#bms_IT" target="ftslist" title="search letter IT"><b>IT</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl9.htm b/doc/salome/gui/SMESH/whgdata/whlstfl9.htm
deleted file mode 100755 (executable)
index 32bf89b..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>\r
-<head>\r
-<title>Search Words letter</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<p class="ftsheader"><a name="subkey_J"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_J" target="ftslist" title="search letter JO"><b>JO</b></a> <a href="whlstf4.htm#bms_JU" target="ftslist" title="search letter JU"><b>JU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstg0.htm b/doc/salome/gui/SMESH/whgdata/whlstg0.htm
deleted file mode 100755 (executable)
index e421241..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-<html>\r
-<head>\r
-<title>Glossary words list</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.glsheader {margin-left:10pt; margin-top:0pt;}\r
-.glsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.glsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; }A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<p class="glsbody">\r
-\r
-<br><a name="bm_C"></a>\r
-<nobr><b>Cell</b></nobr><br>\r
-Element of a mesh. Cells are determined by their connectivity. They can have 0,1,2 or 3 dimension.<br>\r
-\r
-<br><a name=""></a>\r
-<nobr><b>Component</b></nobr><br>\r
-One integer or real value can correspond to each component of a field and to each entity of a mesh<br>\r
-\r
-<br><a name="bm_D"></a>\r
-<nobr><b>Descendant connectivity</b></nobr><br>\r
-It is a description of the entities of the mesh with dimension N. This description is made by an ordered list of geometrical entities (nodes, edges, or faces) with dimension N-1.<br>\r
-\r
-<br><a name="bm_E"></a>\r
-<nobr><b>Edge</b></nobr><br>\r
-An edge of a volumetric or surface mesh. It is composed of 2 or 3 nodes (2 vertex nodes and optionally one middle node).<br>\r
-\r
-<br><a name=""></a>\r
-<nobr><b>Entity of a mesh</b></nobr><br>\r
-Geometrical component of the mesh: node, cell, face and edge. Faces and edges are only intermediate entities allowing to define the cells in descendant connectivity.<br>\r
-\r
-<br><a name=""></a>\r
-<nobr><b>Equivalence</b></nobr><br>\r
-Equivalence represents a list of correspondance 2 by 2 of the entities of the same dimension.<br>\r
-\r
-<br><a name="bm_F"></a>\r
-<nobr><b>Face</b></nobr><br>\r
-Face of a volumetrical cell (triangle, quadrangle).<br>\r
-\r
-<br><a name=""></a>\r
-<nobr><b>Family</b></nobr><br>\r
-Entities of a mesh are described by a certain number&nbsp;  of characteristics (boundary conditions, groups membership). Families represent classes equivalent to these characteristics (two entities of a mesh can belong to the same family if they have the same characteristics). Every family is determined by a set of attributes and a list of groups membership.<br>\r
-\r
-<br><a name=""></a>\r
-<nobr><b>Field</b></nobr><br>\r
-Field consists of one or several scalar components. One definite type is associated to the given field and the values corresponding to different components are all of the same type.<br>\r
-\r
-<br><a name=""></a>\r
-<nobr><b>Field profile</b></nobr><br>\r
-Fields can be defined only on one part of the mesh. Profile&nbsp;  of the field or profile of the component of a field indicates which entities of the mesh contain values.<br>\r
-\r
-<br><a name="bm_G"></a>\r
-<nobr><b>Group</b></nobr><br>\r
-Unordered set of entities of a mesh. One entity can belong to&nbsp;  several groups.<br>\r
-\r
-<br><a name="bm_M"></a>\r
-<nobr><b>Mesh</b></nobr><br>\r
-Mesh is described by its geometry: list of nodes and list of cells which constitute this mesh. Supplementary information is added with the help of families (initial, boundary conditions).<br>\r
-\r
-<br><a name="bm_N"></a>\r
-<nobr><b>Nodal connectivity</b></nobr><br>\r
-It is a description of an entity of the mesh by an ordered list of nodes constituting this entity.<br>\r
-\r
-<br><a name=""></a>\r
-<nobr><b>Node</b></nobr><br>\r
-Node can be an isolated node of a mesh, a vertex or middle node of an edge. A node is associated to a point.<br>\r
-\r
-<br><a name="bm_P"></a>\r
-<nobr><b>Point</b></nobr><br>\r
-Geometrical entity determined by its coordinates in the space.<br>\r
-\r
-<br><a name="bm_R"></a>\r
-<nobr><b>Reference connectivity</b></nobr><br>\r
-For each type of entity of a mesh, reference connectivity define the topology of an entity.<br>\r
-\r
-<br><a name=""></a>\r
-<nobr><b>Result</b></nobr><br>\r
-List of fields referring to one mesh.<br>\r
-\r
-<br><a name="bm_S"></a>\r
-<nobr><b>Study</b></nobr><br>\r
-Study represents a chain of sequences of calculations.<br>\r
-<br><br></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlsti0.htm b/doc/salome/gui/SMESH/whgdata/whlsti0.htm
deleted file mode 100755 (executable)
index 2c881ba..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Index words list</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ndxheader {margin-left:10pt; margin-top:0pt;}\r
-.ndxbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt0.htm b/doc/salome/gui/SMESH/whgdata/whlstt0.htm
deleted file mode 100755 (executable)
index 407854a..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt1.htm#1" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt1.htm b/doc/salome/gui/SMESH/whgdata/whlstt1.htm
deleted file mode 100755 (executable)
index 6ecc52f..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt10.htm b/doc/salome/gui/SMESH/whgdata/whlstt10.htm
deleted file mode 100755 (executable)
index c4b4843..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt1.htm#10" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/creating_groups.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Creating groups</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/editing_groups.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Editing groups</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/using_operations_on_groups.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Using operations on groups</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_groups_of_specific_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing groups of specific elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt11.htm b/doc/salome/gui/SMESH/whgdata/whlstt11.htm
deleted file mode 100755 (executable)
index a3763bf..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt1.htm#11" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/adding_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Adding nodes and elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/removing_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Removing nodes and elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/renumbering_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Renumbering nodes and elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Transforming meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displacing_nodes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Moving nodes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/diagonal_iversion_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Diagonal inversion of elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/uniting_two_triangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Uniting two triangles</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/uniting_a_set_of_triangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Uniting a set of triangles</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/changing_orientation_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Changing orientation of elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/cutting_quadrangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Cutting quadrangles</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/smoothing.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Smoothing</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../extrusion.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Extrusion</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../revolution.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Revolution</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../pattern_mapping.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Pattern mapping</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt12.htm b/doc/salome/gui/SMESH/whgdata/whlstt12.htm
deleted file mode 100755 (executable)
index 2f86578..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt1.htm#11" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/adding_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Adding nodes and elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/removing_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Removing nodes and elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/renumbering_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Renumbering nodes and elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt11.htm#12" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Transforming meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/translation.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Translation</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/rotation.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Rotation</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/symmetry.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Symmetry</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/sewing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Sewing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/merging_nodes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Merging nodes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displacing_nodes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Moving nodes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/diagonal_iversion_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Diagonal inversion of elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/uniting_two_triangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Uniting two triangles</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/uniting_a_set_of_triangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Uniting a set of triangles</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/changing_orientation_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Changing orientation of elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/cutting_quadrangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Cutting quadrangles</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/smoothing.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Smoothing</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../extrusion.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Extrusion</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../revolution.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Revolution</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../pattern_mapping.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Pattern mapping</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt13.htm b/doc/salome/gui/SMESH/whgdata/whlstt13.htm
deleted file mode 100755 (executable)
index 47edf38..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt1.htm#13" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/viewing_mesh_info.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Viewing mesh info</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displaying_nodes_numbers.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displaying nodes numbers</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displaying_elements_numbers.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displaying elements numbers</a></nobr><br>\r
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt2.htm b/doc/salome/gui/SMESH/whgdata/whlstt2.htm
deleted file mode 100755 (executable)
index 269cecd..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt1.htm#2" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/importing_and_exporting_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Importing and exporting meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="3"></a><a href="whlstt3.htm#3" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Defining hypotheses</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt4.htm#4" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Defining meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_submeshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing submeshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt3.htm b/doc/salome/gui/SMESH/whgdata/whlstt3.htm
deleted file mode 100755 (executable)
index 52cd535..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt1.htm#2" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/importing_and_exporting_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Importing and exporting meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="3"></a><a href="whlstt2.htm#3" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Defining hypotheses</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_hypotheses.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About hypotheses</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/arithmetic_1d.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Arithmetic 1D hypothesis</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/local_length_hypothesis.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Average Length hypothesis</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/deflection_1d.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Deflection 1D hypothesis</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/length_from_edges.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Length from edges hypothesis</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/max._element_area_hypothesis.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Max Element Area hypothesis</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/max._element_volume_hypothsis.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Max Element Volume hypothesis</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/number_of_segments_hypothesis.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Number of segments hypothesis</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Non conform mesh allowed hypothesis</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Propagation of 1D Hypothesis on opposite edges</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/start_and_end_length_hypothesis.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Start and End Length hypothesis</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt4.htm#4" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Defining meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_submeshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing submeshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt4.htm b/doc/salome/gui/SMESH/whgdata/whlstt4.htm
deleted file mode 100755 (executable)
index 1ae2766..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt1.htm#2" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/importing_and_exporting_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Importing and exporting meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="3"></a><a href="whlstt3.htm#3" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Defining hypotheses</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt2.htm#4" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Defining meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshing_algorithms.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> 1D meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt6.htm#6" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> 2D meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="7"></a><a href="whlstt7.htm#7" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> 3D meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_submeshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing submeshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt5.htm b/doc/salome/gui/SMESH/whgdata/whlstt5.htm
deleted file mode 100755 (executable)
index 8d35deb..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt1.htm#2" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/importing_and_exporting_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Importing and exporting meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="3"></a><a href="whlstt3.htm#3" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Defining hypotheses</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt2.htm#4" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Defining meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshing_algorithms.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt4.htm#5" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> 1D meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/1d_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Wire discretization</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt6.htm#6" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> 2D meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="7"></a><a href="whlstt7.htm#7" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> 3D meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_submeshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing submeshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt6.htm b/doc/salome/gui/SMESH/whgdata/whlstt6.htm
deleted file mode 100755 (executable)
index f444902..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt1.htm#2" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/importing_and_exporting_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Importing and exporting meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="3"></a><a href="whlstt3.htm#3" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Defining hypotheses</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt2.htm#4" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Defining meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshing_algorithms.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> 1D meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt4.htm#6" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> 2D meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/2d_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Triangle meshing algorithm</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Quadrangle meshing algorithm</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="7"></a><a href="whlstt7.htm#7" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> 3D meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_submeshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing submeshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt7.htm b/doc/salome/gui/SMESH/whgdata/whlstt7.htm
deleted file mode 100755 (executable)
index 2881d92..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt1.htm#2" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/importing_and_exporting_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Importing and exporting meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="3"></a><a href="whlstt3.htm#3" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Defining hypotheses</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt2.htm#4" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Defining meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshing_algorithms.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> 1D meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt6.htm#6" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> 2D meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="7"></a><a href="whlstt4.htm#7" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> 3D meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/3d_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Hexahedron meshing algorithm</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Tetrahedron (Netgen) meshing algorithm</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Tetrahedron (GHS3D) meshing algorithm</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_submeshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing submeshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt8.htm b/doc/salome/gui/SMESH/whgdata/whlstt8.htm
deleted file mode 100755 (executable)
index d80bd46..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt1.htm#8" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/reassigning_hypotheses_and_algorithms.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Reassigning hypotheses and algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/editing_hypotheses.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Editing hypotheses and algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt9.htm b/doc/salome/gui/SMESH/whgdata/whlstt9.htm
deleted file mode 100755 (executable)
index 177d89c..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt1.htm#9" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_quality_controls.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/length_of_edges.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Length of edges</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/area_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Area of elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/taper.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Taper</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/aspect_ratio.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Aspect Ratio</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/minimum_angle.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Minimum angle</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/warp.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Warping</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/skew.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Skew angle</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whnvf30.htm b/doc/salome/gui/SMESH/whgdata/whnvf30.htm
deleted file mode 100755 (executable)
index 7daf4a5..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>toc frame</title>\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-</head>\r
-<frameset rows="100%, *" border="0" frameborder="0">\r
-       <frame name="toctree" title="toc tree frame" src="whlstt0.htm"></frame>\r
-</frameset>\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whnvf31.htm b/doc/salome/gui/SMESH/whgdata/whnvf31.htm
deleted file mode 100755 (executable)
index abe7282..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Index frame</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-</head>\r
-<frameset rows="40, *" border="0" frameborder="0">\r
-       <frame name="ndxletter" title="index letter frame" src="whnvl31.htm" noresize frameborder="1" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>\r
-       <frame name="ndxlist" title="index list frame" src="whlsti0.htm"></frame>\r
-</frameset>\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whnvf32.htm b/doc/salome/gui/SMESH/whgdata/whnvf32.htm
deleted file mode 100755 (executable)
index afdcde9..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>search frame</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-</head>\r
-<frameset rows="40, *" border="0" frameborder="0">\r
-       <frame name="ftsletter" title="search letter frame" src="whnvl32.htm" noresize frameborder="1" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>\r
-       <frame name="ftslist" title="seach word frame" src="whlstf0.htm"></frame>\r
-</frameset>\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whnvf33.htm b/doc/salome/gui/SMESH/whgdata/whnvf33.htm
deleted file mode 100755 (executable)
index 0e897d8..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Glossary frame</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-</head>\r
-<frameset rows="40, *" border="0" frameborder="0">\r
-       <frame name="glsletter" title="glossary letter frame" src="whnvl33.htm" noresize frameborder="1" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>\r
-       <frame name="glslist" title="glossary defination frame" src="whlstg0.htm"></frame>\r
-</frameset>\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whnvl31.htm b/doc/salome/gui/SMESH/whgdata/whnvl31.htm
deleted file mode 100755 (executable)
index bd342a1..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Index Letters</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ndxheader {margin-left:10pt; margin-top:0pt;}\r
-.ndxbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-\r
-<body>\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whnvl32.htm b/doc/salome/gui/SMESH/whgdata/whnvl32.htm
deleted file mode 100755 (executable)
index 16efc2b..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Search Letters</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<p class="ftsheader">\r
-<a name="home"></a> <a href="whlstf0.htm#bm_{" target="ftslist"title="search non-alphabet letter" ><b>#</b></a> \r
- <a href="whlstfl0.htm#subkey_A" target="_self"title="search letter A"><b>A</b></a> \r
- <a href="whlstfl1.htm#subkey_B" target="_self"title="search letter B"><b>B</b></a> \r
- <a href="whlstfl2.htm#subkey_C" target="_self"title="search letter C"><b>C</b></a> \r
- <a href="whlstfl3.htm#subkey_D" target="_self"title="search letter D"><b>D</b></a> \r
- <a href="whlstfl4.htm#subkey_E" target="_self"title="search letter E"><b>E</b></a> \r
- <a href="whlstfl5.htm#subkey_F" target="_self"title="search letter F"><b>F</b></a> \r
- <a href="whlstfl6.htm#subkey_G" target="_self"title="search letter G"><b>G</b></a> \r
- <a href="whlstfl7.htm#subkey_H" target="_self"title="search letter H"><b>H</b></a> \r
- <a href="whlstfl8.htm#subkey_I" target="_self"title="search letter I"><b>I</b></a> \r
- <a href="whlstfl9.htm#subkey_J" target="_self"title="search letter J"><b>J</b></a> \r
- <a href="whlstfl10.htm#subkey_K" target="_self"title="search letter K"><b>K</b></a> \r
- <a href="whlstfl11.htm#subkey_L" target="_self"title="search letter L"><b>L</b></a> \r
- <a href="whlstfl12.htm#subkey_M" target="_self"title="search letter M"><b>M</b></a> \r
- <a href="whlstfl13.htm#subkey_N" target="_self"title="search letter N"><b>N</b></a> \r
- <a href="whlstfl14.htm#subkey_O" target="_self"title="search letter O"><b>O</b></a> \r
- <a href="whlstfl15.htm#subkey_P" target="_self"title="search letter P"><b>P</b></a> \r
- <a href="whlstf5.htm#bm_Q" target="ftslist"title="search letter Q" ><b>Q</b></a> \r
- <a href="whlstfl16.htm#subkey_R" target="_self"title="search letter R"><b>R</b></a> \r
- <a href="whlstfl17.htm#subkey_S" target="_self"title="search letter S"><b>S</b></a> \r
- <a href="whlstfl18.htm#subkey_T" target="_self"title="search letter T"><b>T</b></a> \r
- <a href="whlstfl19.htm#subkey_U" target="_self"title="search letter U"><b>U</b></a> \r
- <a href="whlstfl20.htm#subkey_V" target="_self"title="search letter V"><b>V</b></a> \r
- <a href="whlstfl21.htm#subkey_W" target="_self"title="search letter W"><b>W</b></a> \r
- <a href="whlstf7.htm#bm_X" target="ftslist"title="search letter X" ><b>X</b></a> \r
- <a href="whlstfl22.htm#subkey_Y" target="_self"title="search letter Y"><b>Y</b></a> \r
- <a href="whlstfl23.htm#subkey_Z" target="_self"title="search letter Z"><b>Z</b></a> \r
-</p>\r
-\r
-<body>\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whnvl33.htm b/doc/salome/gui/SMESH/whgdata/whnvl33.htm
deleted file mode 100755 (executable)
index d181711..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Glossary Letters</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.glsheader {margin-left:10pt; margin-top:0pt;}\r
-.glsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.glsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; }A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0">\r
-<p class="glsheader">\r
- <font class="inactive">#</font> \r
- <font class="inactive">A</font> \r
- <font class="inactive">B</font> \r
- <a href="whlstg0.htm#bm_C" target="glslist"title="glossary letter C"><b>C</b></a> \r
- <a href="whlstg0.htm#bm_D" target="glslist"title="glossary letter D"><b>D</b></a> \r
- <a href="whlstg0.htm#bm_E" target="glslist"title="glossary letter E"><b>E</b></a> \r
- <a href="whlstg0.htm#bm_F" target="glslist"title="glossary letter F"><b>F</b></a> \r
- <a href="whlstg0.htm#bm_G" target="glslist"title="glossary letter G"><b>G</b></a> \r
- <font class="inactive">H</font> \r
- <font class="inactive">I</font> \r
- <font class="inactive">J</font> \r
- <font class="inactive">K</font> \r
- <font class="inactive">L</font> \r
- <a href="whlstg0.htm#bm_M" target="glslist"title="glossary letter M"><b>M</b></a> \r
- <a href="whlstg0.htm#bm_N" target="glslist"title="glossary letter N"><b>N</b></a> \r
- <font class="inactive">O</font> \r
- <a href="whlstg0.htm#bm_P" target="glslist"title="glossary letter P"><b>P</b></a> \r
- <font class="inactive">Q</font> \r
- <a href="whlstg0.htm#bm_R" target="glslist"title="glossary letter R"><b>R</b></a> \r
- <a href="whlstg0.htm#bm_S" target="glslist"title="glossary letter S"><b>S</b></a> \r
- <font class="inactive">T</font> \r
- <font class="inactive">U</font> \r
- <font class="inactive">V</font> \r
- <font class="inactive">W</font> \r
- <font class="inactive">X</font> \r
- <font class="inactive">Y</font> \r
- <font class="inactive">Z</font> \r
-</p>\r
-\r
-<body>\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whnvp30.htm b/doc/salome/gui/SMESH/whgdata/whnvp30.htm
deleted file mode 100755 (executable)
index cc65c8f..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<!-- WebHelp version 2002 -->\r
-<html>\r
-<head>\r
-<title> Content Navigation Pane </title>\r
-<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
-<style>\r
-\r
-</style>\r
-</head>\r
-<frameset rows="36, *" border="0" frameborder="0">\r
-       <frame name="toctabs" title="tab selection frame" src="whnvt30.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>\r
-       <frame name="toclist" title="content frame" src="whlstt0.htm"></frame>\r
-</frameset>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whgdata/whnvp31.htm b/doc/salome/gui/SMESH/whgdata/whnvp31.htm
deleted file mode 100755 (executable)
index dfca9ca..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<!-- WebHelp version 2002 -->\r
-<html>\r
-<head>\r
-<title> Index Navigation Pane </title>\r
-<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
-<style>\r
-\r
-</style>\r
-</head>\r
-<frameset rows="36, *" border="0" frameborder="0">\r
-       <frame name="ndxtabs" title="tab selection frame" src="whnvt31.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>\r
-       <frame name="ndxdata" title="index frame" src="whnvf31.htm"></frame>\r
-</frameset>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whgdata/whnvp32.htm b/doc/salome/gui/SMESH/whgdata/whnvp32.htm
deleted file mode 100755 (executable)
index c0b6f6d..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!-- WebHelp version 2002 -->\r
-<html>\r
-<head>\r
-<title> Search Navigation Pane </title>\r
-<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
-<style>\r
-\r
-</style>\r
-<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
-</head>\r
-<frameset rows="36, *" border="0" frameborder="0">\r
-       <frame name="ftstabs" title="tab selection frame" src="whnvt32.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>\r
-       <frame name="ftsdata" title="search frame" src="whnvf32.htm"></frame>\r
-</frameset>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whgdata/whnvp33.htm b/doc/salome/gui/SMESH/whgdata/whnvp33.htm
deleted file mode 100755 (executable)
index 4981265..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<!-- WebHelp version 2002 -->\r
-<html>\r
-<head>\r
-<title> Glossary Navigation Pane </title>\r
-<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
-<style>\r
-\r
-</style>\r
-</head>\r
-<frameset rows="36, *" border="0" frameborder="0">\r
-       <frame name="glstabs" title="tab selection frame" src="whnvt33.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>\r
-       <frame name="glsdata" title="glossary frame" src="whnvf33.htm"></frame>\r
-</frameset>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whgdata/whnvt30.htm b/doc/salome/gui/SMESH/whgdata/whnvt30.htm
deleted file mode 100755 (executable)
index 706e7bd..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Content Navigation Tab</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body class="tabs" marginheight="0"  marginwidth="0">\r
-<table class="tabs" width="100%">\r
- <tr> \r
-   <td class="tabs">\r
-   <nobr><a href="javascript:void(0)"><img src="../wht_tab1.gif" border="0"></a><a href="whnvp32.htm" target="_parent"><img src="../wht_tab6.gif" border="0"></a><a href="whnvp33.htm" target="_parent"><img src="../wht_tab8.gif" border="0"></a></nobr>\r
-   </td>\r
- </tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whnvt31.htm b/doc/salome/gui/SMESH/whgdata/whnvt31.htm
deleted file mode 100755 (executable)
index ebfdb88..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Index Navigation Tab</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ndxheader {margin-left:10pt; margin-top:0pt;}\r
-.ndxbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body class="tabs" marginheight="0"  marginwidth="0">\r
-<table class="tabs" width="100%">\r
- <tr> \r
-   <td class="tabs">\r
-   <nobr><a href="whnvp30.htm" target="_parent"><img src="../wht_tab2.gif" border="0"></a><a href="whnvp32.htm" target="_parent"><img src="../wht_tab6.gif" border="0"></a><a href="whnvp33.htm" target="_parent"><img src="../wht_tab8.gif" border="0"></a></nobr>\r
-   </td>\r
- </tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whnvt32.htm b/doc/salome/gui/SMESH/whgdata/whnvt32.htm
deleted file mode 100755 (executable)
index 93c54b3..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Search Navigation Tab</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body class="tabs" marginheight="0"  marginwidth="0">\r
-<table class="tabs" width="100%">\r
- <tr> \r
-   <td class="tabs">\r
-   <nobr><a href="whnvp30.htm" target="_parent"><img src="../wht_tab2.gif" border="0"></a><a href="javascript:void(0)"><img src="../wht_tab5.gif" border="0"></a><a href="whnvp33.htm" target="_parent"><img src="../wht_tab8.gif" border="0"></a></nobr>\r
-   </td>\r
- </tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdata/whnvt33.htm b/doc/salome/gui/SMESH/whgdata/whnvt33.htm
deleted file mode 100755 (executable)
index 9219c27..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 2002 -->\r
-<title>Glossary Navigation Tab</title>\r
-<base target="bsscright">\r
-<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.glsheader {margin-left:10pt; margin-top:0pt;}\r
-.glsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.glsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; }A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body class="tabs" marginheight="0"  marginwidth="0">\r
-<table class="tabs" width="100%">\r
- <tr> \r
-   <td class="tabs">\r
-   <nobr><a href="whnvp30.htm" target="_parent"><img src="../wht_tab2.gif" border="0"></a><a href="whnvp32.htm" target="_parent"><img src="../wht_tab6.gif" border="0"></a><a href="javascript:void(0)"><img src="../wht_tab7.gif" border="0"></a></nobr>\r
-   </td>\r
- </tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whgdef.htm b/doc/salome/gui/SMESH/whgdef.htm
deleted file mode 100755 (executable)
index 3c5dfae..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-<html>\r
-<head>\r
-<title>Glossary Definition</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-var gsBgColor="#ffffff";\r
-var gsBgImage="";\r
-var goGloFont=null;\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       gsBgImage=sBgImage;\r
-}\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       gsBgColor=sBgColor;\r
-}\r
-\r
-function window_Unload()\r
-{\r
-       UnRegisterListener2(this, WH_MSG_SHOWGLODEF);\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if(gsBgImage&&gsBgImage.length>0)\r
-               document.body.background=gsBgImage;\r
-       if(gsBgColor&&gsBgColor.length>0)\r
-               document.body.bgColor=gsBgColor;\r
-}\r
-\r
-function setFont(sType, sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration)\r
-{\r
-       var vFont = new whFont(sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration);\r
-       if (sType == "Normal")\r
-               goGloFont = vFont;\r
-}\r
-\r
-function textToHtml_nbsp_specialcare(sText)\r
-{\r
-       if (sText == null) return null;\r
-       var sHTML= sText;\r
-       var re = new RegExp("  ","g");\r
-       sHTML=  sHTML.replace(re, "&nbsp; ");\r
-       return  sHTML;\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       var nMsgId = oMsg.nMessageId;\r
-       if (nMsgId == WH_MSG_SHOWGLODEF)\r
-       {\r
-               document.body.innerHTML = sDefHead + textToHtml_nbsp_specialcare(oMsg.oParam.sDef) + sDefTail;\r
-               return true;\r
-       }\r
-}\r
-\r
-function GDefWriteClassStyle()\r
-{\r
-       var sStyle="<STYLE TYPE='text/css'>\n";\r
-       if (gsBgImage)\r
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
-       else\r
-               sStyle+="body {border-top:black 1px solid;}\n";\r
-       sStyle+=".definition {"+getFontStyle(goGloFont)+"margin:2;}\n";\r
-       sStyle+="</STYLE>";\r
-       document.write(sStyle);\r
-}\r
-\r
-if (window.gbWhMsg&&window.gbWhUtil&&window.gbWhProxy&&window.gbWhVer)\r
-{\r
-       window.onload=window_OnLoad;\r
-       window.onunload = window_Unload;\r
-       goGloFont=new whFont("Verdana", "8pt", "#000000", "normal", "normal", "none");\r
-       setBackgroundcolor("White"); \r
-       \r
-       setFont("Normal", "Tahoma","8pt","Black","Normal","Normal","none");\r
-       GDefWriteClassStyle();\r
-       RegisterListener2(this, WH_MSG_SHOWGLODEF);\r
-       var sDefHead = "<p class=\"definition\">";\r
-       var sDefTail = "</p>";\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body bgproperties="fixed" bgcolor="white">\r
-</body>\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/whgdhtml.htm b/doc/salome/gui/SMESH/whgdhtml.htm
deleted file mode 100755 (executable)
index 01b6692..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-<html>\r
-<head>\r
-<title>Glossary</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-</head>\r
-<body bgcolor=#c0c0c0 scroll=no RIGHTMARGIN=0 BOTTOMMARGIN=0 TOPMARGIN=0 LEFTMARGIN=0>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-var gsBgImage="";\r
-var    gsBgColor="";\r
-var goTitleFont=null;\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       gsBgImage=sBgImage;\r
-}\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       gsBgColor=sBgColor;\r
-}\r
-\r
-function setFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
-{\r
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
-       if(sType=="Title")\r
-               goTitleFont=vFont;\r
-}\r
-\r
-function getTermText()\r
-{\r
-       var strString="Term:";\r
-strString = "Term:";\r
-       return strString;\r
-}\r
-\r
-function getDefinitionText()\r
-{\r
-       var strString="Definition for:";\r
-strString = "Definition:";\r
-       return strString;\r
-}\r
-\r
-function getHTML()\r
-{\r
-       var sHTML="";\r
-       sHTML+="<P class=title><nobr>&nbsp;" + getTermText() + "</nobr></p>";\r
-       sHTML+="<iframe id=glossaryIFrame title=\"glossary term\" src=\"whgbody.htm\" width=100% height=200 MARGINHEIGHT=0 MARGINWIDTH=0></iframe>";\r
-       sHTML+="<P class=title><nobr>&nbsp;" + getDefinitionText() + "&nbsp;<b id=Name></b></nobr></p>";\r
-       sHTML+="<iframe id=defIFrame title=\"glossary definition\" src=\"whgdef.htm\" width=100% height=100% MARGINHEIGHT=0 MARGINWIDTH=0></iframe>";\r
-       return sHTML;\r
-}\r
-\r
-function writeStyle()\r
-{\r
-       var sStyle="<style type='text/css'>";\r
-       sStyle+="p.title {" + getFontStyle(goTitleFont) + "margin-top:4;margin-bottom:4}\n";\r
-       if (gsBgImage)\r
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
-       else\r
-               sStyle+="body {border-top:black 1px solid;}\n";\r
-       sStyle+="</style>";\r
-       document.write(sStyle);\r
-}\r
-\r
-\r
-function window_OnResize()\r
-{\r
-       setIFrameHeight();\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if(gsBgImage&&gsBgImage.length>0)\r
-               document.body.background=gsBgImage;\r
-       if(gsBgColor&&gsBgColor.length>0)\r
-               document.body.bgColor=gsBgColor;\r
-       setIFrameHeight();\r
-}\r
-\r
-function setIFrameHeight()\r
-{\r
-       var tH=0;\r
-       if(gbNav6)\r
-       {\r
-               tH=parseInt(window.innerHeight)-30;\r
-       }\r
-       else\r
-       {\r
-               tH=parseInt(document.body.clientHeight)-4;\r
-       }\r
-               \r
-       var oEle=getElement("glossaryIFrame");\r
-       if(oEle)\r
-       {\r
-               tH=tH-2*parseInt(oEle.offsetTop);\r
-               if(tH>0)\r
-               {\r
-                       oEle.style.height=Math.floor(tH*.6);\r
-                       var oEleDef=getElement("defIFrame");\r
-                       if(oEleDef)\r
-                       {\r
-                               oEleDef.style.height=tH-parseInt(oEle.style.height);\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function window_Unload()\r
-{\r
-       UnRegisterListener2(this,WH_MSG_SHOWGLODEF);\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       var nMsgId=oMsg.nMessageId;\r
-       if(nMsgId==WH_MSG_SHOWGLODEF)\r
-       {\r
-               if(getElement("Name"))\r
-                       getElement("Name").innerHTML=oMsg.oParam.sName;\r
-               return true;\r
-       }\r
-}\r
-\r
-if(window.gbWhVer&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhProxy)\r
-{\r
-       goTitleFont=new whFont("Arial","9pt","#000000","normal","normal","none");\r
-       setFont("Title", "Tahoma","8pt","Navy","Normal","Normal","none");\r
-       \r
-       setBackgroundcolor("White");\r
-       window.onresize=window_OnResize;\r
-       window.onload=window_OnLoad;\r
-       window.onunload=window_Unload;\r
-       RegisterListener2(this,WH_MSG_SHOWGLODEF);\r
-       writeStyle();\r
-       document.write(getHTML());\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/whghost.js b/doc/salome/gui/SMESH/whghost.js
deleted file mode 100755 (executable)
index 77751a1..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-var gbXML=false;\r
-var gaDef=new Array();\r
-var gsBgColor="#ffffff";\r
-var gsBgImage="";\r
-var goFont=null;\r
-var goHoverFont=null;\r
-var gsMargin="2pt";\r
-var gsIndent="2pt";\r
-var gsActiveBgColor="#cccccc";\r
-var gbWhGHost=false;\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       gsBgImage=sBgImage;\r
-}\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       gsBgColor=sBgColor;\r
-}\r
-\r
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
-{\r
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
-       if(sType=="Normal")\r
-               goFont=vFont;\r
-       else if(sType=="Hover")\r
-               goHoverFont=vFont;\r
-}\r
-\r
-function setActiveBgColor(sBgColor)\r
-{\r
-       gsActiveBgColor=sBgColor;\r
-}\r
-\r
-function setMargin(sMargin)\r
-{\r
-       gsMargin=sMargin;\r
-}\r
-\r
-function setIndent(sIndent)\r
-{\r
-       gsIndent=sIndent;\r
-}\r
-\r
-function writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,n,aPos,nLevel)\r
-{\r
-\r
-       var sHTML="";\r
-       var nIdxSet=aCurIdxSet[n];\r
-       var nIIdx=aPos[nIdxSet];\r
-       var sRawKName = getItemName(aDataCon,nIdxSet,nIIdx);\r
-       var sKName=_textToHtml(sRawKName);\r
-       var nIndex=insertDef(sKName,_textToHtml_nonbsp(getDef(aDataCon,nIdxSet,nIIdx)));\r
-       if(nLevel==1){\r
-               sHTML+="<p><nobr><a alt=\"" + sKName+"\" href=\"javascript:void(0);\" onclick=\"showDef("+nIndex;\r
-               sHTML+=");return false;\">"+sKName+"</a></nobr></p>";\r
-       }\r
-       oHTML.addHTML(sHTML,1,bDown,true,sRawKName);\r
-}\r
-\r
-function insertDef(sKName,sDef)\r
-{\r
-       var nLength=gaDef.length\r
-       var oGlo=new nameDefPair(sKName,sDef);\r
-       gaDef[nLength]=oGlo;\r
-       return nLength;\r
-}\r
-\r
-function showDef(nDef)\r
-{\r
-       if(nDef<gaDef.length)\r
-       {       \r
-               var oParam=gaDef[nDef];\r
-               var oMsg=new whMessage(WH_MSG_SHOWGLODEF,this,1,oParam);\r
-               SendMessage(oMsg);\r
-       }\r
-}\r
-\r
-function nameDefPair(sName,sDef)\r
-{\r
-       this.sName=sName;\r
-       this.sDef=sDef;\r
-}\r
-\r
-function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)\r
-{\r
-       for(var i=0;i<nLength;i++)\r
-               writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,i,aPos,nLevel);\r
-}\r
-\r
-function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)\r
-{\r
-       if(bDown)\r
-       {\r
-               for(var i=0;i<nLength;i++)\r
-                       aPos[aCurIdxSet[i]]++;\r
-       }\r
-       else{\r
-               for(var i=0;i<nLength;i++)\r
-                       aPos[aCurIdxSet[i]]--;\r
-       }\r
-}\r
-\r
-function getDef(aDataCon,nIdxSet,nIIdx)\r
-{\r
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
-               return aDataCon[nIdxSet].aKs[nIIdx].sDef;\r
-       else\r
-               return null;\r
-}\r
-\r
-function getItemName(aDataCon,nIdxSet,nIIdx)\r
-{\r
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
-               return aDataCon[nIdxSet].aKs[nIIdx].sName;\r
-       else\r
-               return null;\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if(gsBgImage&&gsBgImage.length>0)\r
-               document.body.background=gsBgImage;\r
-       if(gsBgColor&&gsBgColor.length>0)\r
-               document.body.bgColor=gsBgColor;\r
-       document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());\r
-       loadGlo();\r
-       var oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function loadGlo()\r
-{\r
-       if(!gbReady)\r
-       {\r
-               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);\r
-               if(SendMessage(oResMsg)&&oResMsg.oParam)\r
-               {\r
-                       gbReady=true;\r
-                       var oProj=oResMsg.oParam;\r
-                       var aProj=oProj.aProj;\r
-                       gbXML=oProj.bXML;\r
-                       if(aProj.length>0)\r
-                       {\r
-                               var sLangId=aProj[0].sLangId;\r
-                               for(var i=0;i<aProj.length;i++)\r
-                               {\r
-                                       if(aProj[i].sGlo!=null&&aProj[i].sGlo!=""&&aProj[i].sLangId==sLangId)\r
-                                               addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sGlo);\r
-                               }\r
-                       }\r
-                       writeDataIFrame();\r
-                       enEvt();\r
-               }               \r
-       }\r
-}\r
-\r
-function findCKInDom()\r
-{\r
-       return true;\r
-}\r
-\r
-function GloWriteClassStyle()\r
-{\r
-       var sStyle="<STYLE TYPE='text/css'>\n";\r
-       if (gsBgImage)\r
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
-       else\r
-               sStyle+="body {border-top:black 1px solid;}\n";\r
-       sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";margin-left:"+gsIndent+";}\n";\r
-       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";\r
-       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";\r
-       sStyle+="A:active {background-color:"+gsActiveBgColor+";}\n";\r
-       sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";\r
-       sStyle+="</STYLE>";     \r
-       document.write(sStyle);\r
-}\r
-\r
-function window_Unload()\r
-{\r
-       UnRegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       UnRegisterListener2(this,WH_MSG_SHOWGLO);\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       if(oMsg)\r
-       {\r
-               var nMsgId=oMsg.nMessageId;\r
-               if(nMsgId==WH_MSG_SHOWGLO)\r
-               {\r
-                       if(!gbNav6)\r
-                               document.body.focus();\r
-               }\r
-               else if(nMsgId==WH_MSG_PROJECTREADY)\r
-               {\r
-                       loadGlo();\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-if (window.gbWhUtil&&window.gbWhProxy&&window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhHost)\r
-{\r
-       RegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       RegisterListener2(this,WH_MSG_SHOWGLO);\r
-       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");\r
-       goHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");\r
-       window.onload=window_OnLoad;\r
-       window.onbeforeunload=window_BUnload;\r
-       window.onunload=window_Unload;\r
-       gbWhGHost=true;\r
-}\r
-else\r
-       document.location.reload();\r
-\r
diff --git a/doc/salome/gui/SMESH/whhost.js b/doc/salome/gui/SMESH/whhost.js
deleted file mode 100755 (executable)
index 664120f..0000000
+++ /dev/null
@@ -1,1290 +0,0 @@
-var gaChunks=new Array();\r
-var gaFakes=new Array();\r
-var gaDataCon=null;\r
-var gaData=new Array();\r
-\r
-var gbFindCK=false;;\r
-var gbNeedCalc=false;\r
-var gbScrl=false;\r
-var gbProcess=false;\r
-var gbReady=false;\r
-\r
-var gnCheck=0;\r
-var gnNum=0;\r
-var gnIns=-1;\r
-var gnLoad=0;\r
-var gnRef=-1;\r
-var gnMaxItems=0;\r
-var gnMaxMargin=32000;\r
-var gnNeeded=0;\r
-var gnNKI=-1;\r
-var gnRE=0;\r
-var gnScrlMgn=30;\r
-var gnSE=0;\r
-var gnVisible=0;\r
-var gnItems=0;\r
-var gnUHeight=1;\r
-\r
-var gsBCK=null;\r
-var gsChK=null;\r
-var gsCK=null;\r
-var gsLoadingDivID="LoadingDiv";\r
-var gsLoadingMsg="Loading data, please wait...";\r
-var gsSKA=null;\r
-var gsSKB=null;\r
-\r
-var gbLoadInfo=false;\r
-\r
-function putDataXML(xmlDoc,sDocPath)\r
-{\r
-       if(gbLoadInfo)\r
-       {\r
-               var node=xmlDoc.lastChild;\r
-               if(node)\r
-               {\r
-                       var nTotal=0\r
-                       var aChunk=new Array();\r
-                       var oC=node.firstChild;\r
-                       while(oC)\r
-                       {\r
-                               if(oC.nodeName=="chunkinfo")\r
-                               {\r
-                                       var item=new Object();\r
-                                       item.sBK=oC.getAttribute("first");\r
-                                       item.sEK=oC.getAttribute("last");\r
-                                       item.sFileName=oC.getAttribute("url");\r
-                                       item.nNum=parseInt(oC.getAttribute("num"));\r
-                                       nTotal+=item.nNum;\r
-                                       item.nTotal=nTotal;\r
-                                       aChunk[aChunk.length]=item;\r
-                               }\r
-                               oC=oC.nextSibling;\r
-                       }\r
-                       projReady(aChunk);\r
-               }\r
-       }\r
-       else\r
-       {\r
-               var node=xmlDoc.lastChild;\r
-               if(node)\r
-               {\r
-                       var aData=new Array();\r
-                       var nPrev=0;\r
-                       var nNext=0;\r
-                       var oC=node.firstChild;\r
-                       while(oC)\r
-                       {\r
-                               nPrev=nNext;\r
-                               if(oC.nodeName=="key")\r
-                               {\r
-                                       var sName=oC.getAttribute("name");\r
-                                       if(sName&&sName.length>0)\r
-                                       {\r
-                                               var sTarget=oC.getAttribute("target");\r
-                                               var item=new Object();\r
-                                               item.nType=2;\r
-                                               item.sName=sName;\r
-                                               if(sTarget)\r
-                                                       item.sTarget=sTarget;\r
-                                               item.nPKOff=nPrev;\r
-                                               aData[aData.length]=item;\r
-                                               var nCurIndex=aData.length;\r
-                                               processKey(oC,aData,item);\r
-                                               nNext=aData.length-nCurIndex;\r
-                                               item.nNKOff=nNext;\r
-                                       }\r
-                               }\r
-                               else if(oC.nodeName=="letter")\r
-                               {\r
-                                       var name=oC.getAttribute("name");\r
-                                       if(name&&name.length>0)\r
-                                       {\r
-                                               var item=new Object();\r
-                                               item.nType=1;\r
-                                               item.sName=name;\r
-                                               item.nPKOff=nPrev;\r
-                                               nNext=0;\r
-                                               item.nNKOff=nNext;\r
-                                               aData[aData.length]=item;\r
-                                       }\r
-                               }\r
-                               else if(oC.nodeName=="entry")\r
-                               {\r
-                                       var name=oC.getAttribute("name");\r
-                                       var def=oC.getAttribute("value");\r
-                                       if(name&&name.length>0)\r
-                                       {\r
-                                               var item=new Object();\r
-                                               item.sName=name;\r
-                                               item.sDef=def;\r
-                                               item.nPKOff=nPrev;\r
-                                               nNext=0;\r
-                                               item.nNKOff=nNext;\r
-                                               aData[aData.length]=item;\r
-                                       }\r
-                               }\r
-                               oC=oC.nextSibling;\r
-                       }\r
-                       putData(aData);\r
-               }\r
-       }\r
-}\r
-\r
-function processKey(element,aData,item)\r
-{\r
-       var i=0;\r
-       var nPrev=0;\r
-       var nNext=0;\r
-       var oC=element.firstChild;\r
-       while(oC)\r
-       {\r
-               if(oC.nodeName=="topic")\r
-               {\r
-                       var name=oC.getAttribute("name");\r
-                       var url=oC.getAttribute("url");\r
-                       if(url&&url.length!=0)\r
-                       {\r
-                               if(!name||name.length==0)\r
-                                       name=url;\r
-                               var topic=new Object();\r
-                               topic.sName=name;\r
-                               topic.sURL=url;\r
-                               if(!item.aTopics)\r
-                                       item.aTopics=new Array();\r
-                               item.aTopics[item.aTopics.length]=topic;\r
-                       }\r
-               }\r
-               else if(oC.nodeName=="key")\r
-               {\r
-                       nPrev=nNext;\r
-                       var name=oC.getAttribute("name");\r
-                       if(name&&name.length!=0)\r
-                       {\r
-                               var subItem=new Object();\r
-                               subItem.sName=name;\r
-                               subItem.nType=3;\r
-                               subItem.nPKOff=nPrev;\r
-                               aData[aData.length]=subItem;\r
-                               var nCurIndex=aData.length;\r
-                               processKey(oC,aData,subItem);\r
-                               nNext=aData.length-nCurIndex;\r
-                               subItem.nNKOff=nNext;\r
-                       }\r
-               }\r
-               oC=oC.nextSibling;\r
-       }\r
-}\r
-\r
-function putData(aData)\r
-{\r
-       endLoading();\r
-       var oCData=goCData;\r
-       if(oCData)\r
-       {\r
-               oCData.aKs=aData;\r
-               if(gnNKI==-1)\r
-                       setTimeout("checkReady();",1);\r
-               else\r
-               {\r
-                       gsSKA=getKByIdx(oCData,gnNKI);\r
-                       gbNeedCalc=true;\r
-                       gbScrl=true;\r
-                       gnNKI=-1;\r
-                       if(gsSKA)\r
-                               setTimeout("checkReady();",1);\r
-                       else\r
-                       {\r
-                               markEnd();\r
-                               setTimeout("checkAgain();",50);\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function markEnd()\r
-{\r
-       if(gbProcess)\r
-               gbProcess=false;\r
-}\r
-\r
-function endLoading()\r
-{\r
-       var oDiv=getElement(gsLoadingDivID);\r
-       if(oDiv)\r
-               oDiv.style.visibility="hidden";\r
-}\r
-\r
-function markBegin()\r
-{\r
-       gbProcess=true;\r
-}\r
-\r
-function beginLoading()\r
-{\r
-       var oDiv=getElement(gsLoadingDivID);\r
-       if(oDiv)\r
-       {\r
-               oDiv.style.top=document.body.scrollTop;\r
-               oDiv.style.visibility="visible";\r
-       }\r
-}\r
-\r
-function indexHTMLPart()\r
-{\r
-       this.sHTML="";\r
-       this.nNeeded=0;\r
-       this.nCurrent=0;\r
-       this.nConsumed=0;\r
-       this.sFK=null;\r
-       this.sLK=null;\r
-       this.addHTML=function(sHTML,nConsumed,bDown,bK,sK){\r
-               if(bDown)\r
-                       this.sHTML+=sHTML;\r
-               else\r
-                       this.sHTML=sHTML+this.sHTML;\r
-               this.nCurrent++;                        \r
-               this.nConsumed+=nConsumed;\r
-               if(bK)\r
-               {\r
-                       if(!this.sFK)\r
-                               this.sFK=sK;\r
-                       if(!this.sLK)\r
-                               this.sLK=sK;\r
-                       if(bDown)\r
-                               this.sLK=sK;\r
-                       else\r
-                               this.sFK=sK;\r
-               }\r
-       }\r
-       this.appendHTML=function(oHTML,bDown){\r
-               this.addSubHTML(oHTML,bDown);\r
-               if(!this.sFK)\r
-                       this.sFK=oHTML.sFK;\r
-               if(!this.sLK)\r
-                       this.sLK=oHTML.sLK;\r
-               if(bDown)\r
-                       this.sLK=oHTML.sLK;\r
-               else\r
-                       this.sFK=oHTML.sFK;\r
-       }       \r
-       \r
-       this.addSubHTML=function(oHTML,bDown){\r
-               if(bDown)\r
-                       this.sHTML+=oHTML.sHTML;\r
-               else\r
-                       this.sHTML=oHTML.sHTML+this.sHTML;\r
-               this.nCurrent+=oHTML.nCurrent;\r
-               this.nConsumed+=oHTML.nConsumed;                        \r
-       }\r
-}\r
-\r
-function getMaxUnits()\r
-{\r
-       return Math.floor(gnMaxMargin/gnUHeight)+1;\r
-}\r
-\r
-function getFakeItemsHTMLbyCount(nB,nCount)\r
-{\r
-       var nMU=getMaxUnits();\r
-       var nNum=Math.floor(nCount/nMU);\r
-       var sHTML="";\r
-       for(var i=0;i<nNum;i++)\r
-               sHTML+=getFakeItemHTML(nB,nMU-1);\r
-               \r
-       var nRest=nCount%nMU;\r
-       sHTML+=getFakeItemHTML(nB,nRest-1);\r
-       return sHTML;\r
-}\r
-\r
-function getFakeItemHTML(nB,nNum)\r
-{\r
-       return "<h6 name=fk"+nB+" id=fk"+nB+" style=\"margin-top:"+gnUHeight*nNum+";margin-bottom:0\">&nbsp;</h6>";\r
-}\r
-\r
-function fakeItemsArea(nB,n,sKA,sKB,obj)\r
-{\r
-       this.nB=nB;\r
-       this.nNum=n;\r
-       this.sKA=sKA;\r
-       this.sKB=sKB;\r
-       this.obj=obj;\r
-       this.nMargin=(n-1)*gnUHeight;\r
-\r
-       this.setNum=function(n)\r
-       {\r
-               var nLastobj=-1;\r
-               var nDelta=this.nMargin;\r
-               this.nMargin=(n-1)*gnUHeight;\r
-               nDelta=nDelta-this.nMargin;\r
-               if(n>0)\r
-               {\r
-                       this.nNum=n;\r
-                       var nMU=getMaxUnits();\r
-                       nLastobj=Math.floor((n-1)/nMU);\r
-                       if(this.obj.length)\r
-                               this.obj[nLastobj].style.marginTop=((n-1)%nMU)*gnUHeight;\r
-                       else\r
-                               this.obj.style.marginTop=((n-1)%nMU)*gnUHeight;\r
-               }\r
-               if(this.obj.length)\r
-               {\r
-                       for(var i=this.obj.length-1;i>nLastobj;i--)\r
-                               removeThis(this.obj[i]);\r
-               }\r
-               else\r
-               {\r
-                       if(nLastobj==-1)\r
-                               removeThis(this.obj);\r
-               }\r
-               return nDelta;\r
-       }\r
-       this.insertAdjacentHTML=function(sWhere,sHTML)\r
-       {\r
-               if(sWhere=="beforeBegin")\r
-               {\r
-                       if(this.obj.length)\r
-                               this.obj[0].insertAdjacentHTML(sWhere,sHTML);\r
-                       else\r
-                               this.obj.insertAdjacentHTML(sWhere,sHTML);\r
-               }\r
-               else if(sWhere=="afterEnd")\r
-               {\r
-                       if(this.obj.length)\r
-                       {\r
-                               if(gbMac&&gbIE5&&this.obj[this.obj.length-1].nextSibling)\r
-                                       this.obj[this.obj.length-1].nextSibling.insertAdjacentHTML("beforeBegin",sHTML);\r
-                               else\r
-                                       this.obj[this.obj.length-1].insertAdjacentHTML(sWhere,sHTML);\r
-                       }\r
-                       else\r
-                       {\r
-                               if(gbMac&&gbIE5&&this.obj.nextSibling)\r
-                                       this.obj.nextSibling.insertAdjacentHTML("beforeBegin",sHTML);\r
-                               else\r
-                                       this.obj.insertAdjacentHTML(sWhere,sHTML);\r
-                       }\r
-               }\r
-       }\r
-       this.getBtm=function()\r
-       {\r
-               if(this.obj.length)\r
-                       return this.obj[this.obj.length-1].offsetTop;\r
-               else\r
-                       return this.obj.offsetTop;\r
-       }\r
-       this.getTop=function()\r
-       {\r
-               return this.getBtm()-this.nMargin;\r
-       }\r
-}\r
-\r
-function usedItems(nB,nE)\r
-{\r
-       this.nB=nB;\r
-       this.nE=nE;\r
-       this.oN=null;\r
-}\r
-\r
-function checkReady()\r
-{\r
-       var len=gaChunks.length;\r
-       var bNeedLoad=false;\r
-       var aDataCon;\r
-       var s=0;\r
-       var bDown=(gsSKB==null);\r
-       var sK=bDown?gsSKA:gsSKB;\r
-       if(sK==null)\r
-       {\r
-               markEnd();\r
-               setTimeout("checkAgain();",50);\r
-               return;\r
-       }\r
-       if(!gsChK||sK!=gsChK||gnNum==0)\r
-       {\r
-               gnCheck=0;\r
-               gsChK=sK;\r
-               aDataCon=new Array();\r
-       }\r
-       else{\r
-               s=gnNum;\r
-               aDataCon=gaDataCon;\r
-       }\r
-       for(var i=gnCheck;i<len;i++)\r
-       {\r
-               var oCData=getChunkedData(i,bDown,sK);\r
-               if(oCData)\r
-               {\r
-                       if(!oCData.aKs&&oCData.sFileName!=null)\r
-                       {\r
-                               bNeedLoad=true;\r
-                               goCData=oCData;\r
-                               gnNum=s;\r
-                               gnCheck=i;\r
-                               gaDataCon=aDataCon;\r
-                               oCData.nProjId=i;\r
-                               gbLoadInfo=false;\r
-                               beginLoading();\r
-                               loadData2(gaData[i].sPPath+gaData[i].sDPath+oCData.sFileName);\r
-                               return;\r
-                       }\r
-                       else{\r
-                               aDataCon[s++]=oCData;\r
-                       }\r
-               }\r
-       }\r
-       if(!bNeedLoad)\r
-       {\r
-               gnNum=0;\r
-               gsSKA=gsSKB=gsShowK=null;\r
-               \r
-               var oHTML=new indexHTMLPart();\r
-               var aPos=new Array();\r
-               var aOriPos=new Array();\r
-               var aMaxPos=new Array();\r
-               var aMinPos=new Array();\r
-               \r
-               if(gbNeedCalc||gbFindCK) gnIns=0;\r
-               for(i=0;i<aDataCon.length;i++)\r
-               {\r
-                       aPos[i]=getIdxPos(aDataCon[i],bDown,sK);\r
-                       if(gbNeedCalc||gbFindCK)\r
-                       {\r
-                               gnIns+=aPos[i]+aDataCon[i].nTotal-aDataCon[i].nNum;\r
-                               if(!bDown)\r
-                               {\r
-                                       if(aPos[i]!=-1)\r
-                                       {\r
-                                               if(aDataCon[i].aKs)\r
-                                                       gnIns+=aDataCon[i].aKs[aPos[i]].nNKOff;\r
-                                               else\r
-                                               {\r
-                                                       var n=aPos[i]+1;\r
-                                                       while(n<aDataCon[i].aKsOnly.length&&!aDataCon[i].aKsOnly[n])\r
-                                                               n++;\r
-                                                       n=n-aPos[i]-1;\r
-                                                       gnIns+=n;\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-                       aOriPos[i]=aPos[i];\r
-                       getLimit(aDataCon,aPos,aMaxPos,aMinPos,i);\r
-               }\r
-               if((gbNeedCalc||gbFindCK)&&!bDown&&gnIns!=-1)\r
-               {\r
-                       gnIns+=(aDataCon.length-1)\r
-               }\r
-               if(gnIns!=-1||gbFindCK)\r
-               {\r
-                       oHTML.nNeeded=gnNeeded;\r
-                       var bDone=writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,1);\r
-                       if(oHTML.nConsumed!=0)\r
-                       {\r
-                               var nB;\r
-                               if(!bDown)\r
-                                       nB=gnIns-oHTML.nConsumed+1;\r
-                               else\r
-                                       nB=gnIns;\r
-                                       \r
-                               var oldScrollPos=document.body.scrollTop;\r
-                               if(insertIdxKs(nB,oHTML,gbScrl))\r
-                               {\r
-                                       updateUsedK(aDataCon,aOriPos,aPos,bDown);\r
-                                       if(!gbScrl&&gbMac)\r
-                                       {\r
-                                               while(document.body.scrollTop!=oldScrollPos)\r
-                                                       document.body.scrollTop=oldScrollPos;\r
-                                       }\r
-                                       gbScrl=false;\r
-                               }\r
-                               if(gbFindCK)\r
-                               {\r
-                                       gbFindCK=false;\r
-                                       gbNeedCalc=true;\r
-                                       gsSKB=oHTML.sFK;\r
-                                       gnIns=-1;\r
-                                       setTimeout("checkReady();",50);\r
-                                       return;\r
-                               }\r
-                       }\r
-                       else if(gbFindCK)\r
-                       {\r
-                               gbFindCK=false;\r
-                               gbNeedCalc=true;\r
-                               gsSKB=getFirstKeyFromPos(aDataCon,aPos);\r
-                               gnIns=-1;\r
-                               setTimeout("checkReady();",50);\r
-                               return;\r
-                       }\r
-                       if(!findCKInDom()) return;\r
-\r
-                       gnNeeded=gnNeeded-oHTML.nCurrent;\r
-                       gnIns=-1;\r
-                       markEnd();\r
-                       setTimeout("checkAgain();",50);\r
-                       gbNeedCalc=false;\r
-               }\r
-               else\r
-               {\r
-                       if(!findCKInDom()) return;\r
-                       markEnd();\r
-                       setTimeout("checkAgain();",50);\r
-               }\r
-       }\r
-}\r
-\r
-function getFirstKeyFromPos(aDataCon,aPos)\r
-{\r
-       var sCurrentK=getBiggestChar();\r
-       for(var i=0;i<aPos.length;i++)\r
-       {\r
-               if(aDataCon[i].aKs&&aDataCon[i].aKs.length>0&&aPos[i]>=0&&aPos[i]<aDataCon[i].aKs.length)\r
-               {\r
-                       if(sCurrentK==""||\r
-                               compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0)\r
-                       {\r
-                               sCurrentK=aDataCon[i].aKs[aPos[i]].sName;\r
-                       }\r
-               }\r
-       }\r
-       return sCurrentK;\r
-}\r
-\r
-function checkAgain()\r
-{\r
-       if(!gbProcess)\r
-       {\r
-               if(gsBCK!=null)\r
-               {\r
-                       gsCK=gsBCK;\r
-                       gsBCK=null;\r
-                       findCK();\r
-               }\r
-               else\r
-               {\r
-                       markBegin();\r
-                       getUnitIdx(document.body.scrollTop,document.body.clientHeight);\r
-               }\r
-       }\r
-       else\r
-               setTimeout("checkAgain()",50);\r
-}\r
-\r
-function getLimit(aDataCon,aPos,aMaxPos,aMinPos,i)\r
-{\r
-       aMaxPos[i]=aDataCon[i].nNum;\r
-       aMinPos[i]=-1;\r
-       var oPNode=null;\r
-       if(aDataCon[i].oUsedItems)\r
-       {\r
-               var oUsedItems=aDataCon[i].oUsedItems;\r
-               do{\r
-                       if(oUsedItems.nB>aPos[i])\r
-                       {\r
-                               aMaxPos[i]=oUsedItems.nB;\r
-                               break;\r
-                       }\r
-                       oPNode=oUsedItems;\r
-                       oUsedItems=oUsedItems.oN;\r
-               }while(oUsedItems!=null);\r
-               if(oPNode)\r
-                       aMinPos[i]=oPNode.nE;\r
-       }\r
-       else if(aDataCon[i].aKs==null)\r
-       {\r
-               aMaxPos[i]=aMinPos[i]=aPos[i];\r
-       }\r
-       if(aMinPos[i]>=aPos[i]||aMaxPos[i]<=aPos[i])\r
-       {\r
-               aMaxPos[i]=aMinPos[i]=aPos[i];\r
-       }\r
-}\r
-\r
-function getIdxPos(oIdx,bDown,sK)\r
-{\r
-       var aKs=oIdx.aKs;\r
-       var nIdx;\r
-       if(bDown)\r
-               nIdx=oIdx.nNum;\r
-       else\r
-               nIdx=-1;\r
-       if(aKs!=null)\r
-       {\r
-               for(var i=0;i<aKs.length;i++)\r
-               {       \r
-                       if(bDown)\r
-                       {\r
-                               if(compare(aKs[i].sName,sK)>0)\r
-                               {\r
-                                       nIdx=i;\r
-                                       break;\r
-                               }\r
-                       }\r
-                       else\r
-                       {\r
-                               if(compare(aKs[i].sName,sK)<0)\r
-                                       nIdx=i;\r
-                               else\r
-                                       break;\r
-                       }\r
-                       i+=aKs[i].nNKOff;\r
-               }\r
-       }\r
-       else if(oIdx.aKsOnly)\r
-       {\r
-               var aKsOnly=oIdx.aKsOnly;\r
-               for(var i=0;i<aKsOnly.length;i++)\r
-               {       \r
-                       if(aKsOnly[i])\r
-                       {\r
-                               if(bDown)\r
-                               {\r
-                                       if(compare(aKsOnly[i],sK)>0)\r
-                                       {\r
-                                               nIdx=i;\r
-                                               break;\r
-                                       }\r
-                               }\r
-                               else\r
-                               {\r
-                                       if(compare(aKsOnly[i],sK)<0)\r
-                                               nIdx=i;\r
-                                       else\r
-                                               break;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-       return nIdx;\r
-}\r
-\r
-function writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,nLevel)\r
-{\r
-       var aOldPos=new Array();\r
-       for(var i=0;i<aPos.length;i++)\r
-       {\r
-               aOldPos[i]=aPos[i];\r
-       }\r
-       var p;\r
-       do{\r
-               var sCurrentK="";\r
-               var aCurIdxSet=new Array();\r
-               p=0;\r
-               for(i=0;i<aDataCon.length;i++)\r
-               {\r
-                       if(aDataCon[i].aKs&&aDataCon[i].aKs.length&&aPos[i]!=-1&&\r
-                               (bDown&&aPos[i]<aMaxPos[i])||(!bDown&&aPos[i]>aMinPos[i]))\r
-                       {\r
-                               if(sCurrentK==""||\r
-                                       (bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0)||\r
-                                       (!bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)<0))\r
-                               {\r
-                                       sCurrentK=aDataCon[i].aKs[aPos[i]].sName;\r
-                                       p=0;\r
-                                       aCurIdxSet[p++]=i;\r
-                               }\r
-                               else if(sCurrentK==aDataCon[i].aKs[aPos[i]].sName){\r
-                                       aCurIdxSet[p++]=i;\r
-                               }\r
-                       }\r
-                       else if(nLevel==1&&aMaxPos[i]!=aMinPos[i]){\r
-                               if(bDown&&aPos[i]==aMaxPos[i])\r
-                               {\r
-                                       if(aDataCon[i].aKs)\r
-                                       {\r
-                                               gsSKA=aDataCon[i].aKs[aOldPos[i]].sName;\r
-                                               return false;\r
-                                       }\r
-                               }\r
-                               else if(!bDown&&aPos[i]==aMinPos[i])\r
-                               {\r
-                                       if(aDataCon[i].aKs)\r
-                                       {\r
-                                               gsSKB=aDataCon[i].aKs[aOldPos[i]].sName;\r
-                                               return false;\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-               if(p>=1){\r
-                       for(var s=0;s<p;s++)\r
-                       {\r
-                               aOldPos[aCurIdxSet[s]]=aPos[aCurIdxSet[s]];\r
-                       }\r
-                       mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,p,aPos,nLevel);\r
-                       adjustPosition(bDown,aDataCon,aCurIdxSet,p,aPos);\r
-                       \r
-                       if(nLevel==1&&oHTML.nNeeded<=oHTML.nCurrent){\r
-                               return true;\r
-                       }\r
-               }\r
-       }while(p>0);\r
-       return true;\r
-}\r
-\r
-function updateUsedK(aDataCon,aOriPos,aOldPos,bDown)\r
-{\r
-       for(var i=0;i<aDataCon.length;i++)\r
-       {\r
-               if (aOldPos[i]!=aOriPos[i])\r
-               {\r
-                       var nBP=0;\r
-                       var nEP=0;\r
-                       if(bDown)\r
-                       {\r
-                               nBP=aOriPos[i];\r
-                               nEP=aOldPos[i]-1;\r
-                       }\r
-                       else\r
-                       {\r
-                               if (aOldPos[i]!=-1)\r
-                                       nBP=aOldPos[i]+aDataCon[i].aKs[aOldPos[i]].nNKOff+1;\r
-                               else\r
-                                       nBP=0;\r
-                               nEP=aOriPos[i]+aDataCon[i].aKs[aOriPos[i]].nNKOff;\r
-                       }\r
-                       if(nBP<=nEP)\r
-                       {\r
-                               setContentsUsed(aDataCon[i],nBP,nEP);\r
-                               \r
-                               var oFirstPair=aDataCon[i].oUsedItems;\r
-                               if(oFirstPair.oN==null&&oFirstPair.nB==0&&oFirstPair.nE==aDataCon[i].nNum-1)\r
-                               {\r
-                                       storeKeysOnly(aDataCon[i]);\r
-                                       aDataCon[i].oUsedItems=aDataCon[i].aKs=aDataCon[i].sFileName=null;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function storeKeysOnly(oCData)\r
-{\r
-       oCData.aKsOnly=new Array();\r
-       for(var i=0;i<oCData.aKs.length;i++)\r
-       {\r
-               oCData.aKsOnly[i]=oCData.aKs[i].sName;\r
-               i+=oCData.aKs[i].nNKOff;\r
-       }\r
-}\r
-\r
-function setContentsUsed(oIdx,nB,nE)\r
-{\r
-       if(!oIdx.oUsedItems)\r
-               oIdx.oUsedItems=new usedItems(nB,nE);\r
-       else\r
-       {\r
-               var oUsedItems=oIdx.oUsedItems;\r
-               var oPNode=null;\r
-               do{\r
-                       if(oUsedItems.nB>nB)\r
-                       {\r
-                               if(oUsedItems.nB==nE+1)\r
-                               {\r
-                                       oUsedItems.nB=nB;\r
-                               }\r
-                               else{\r
-                                       var oNewNode=new usedItems(oUsedItems.nB,oUsedItems.nE);\r
-                                       oNewNode.oN=oUsedItems.oN;\r
-                                       oUsedItems.nB=nB;\r
-                                       oUsedItems.nE=nE;\r
-                                       oUsedItems.oN=oNewNode;\r
-                               }\r
-                               break;\r
-                       }\r
-                       oPNode=oUsedItems;\r
-                       oUsedItems=oUsedItems.oN;\r
-               }while(oUsedItems);\r
-               if(!oUsedItems)\r
-               {\r
-                       if(oPNode!=null)\r
-                               oPNode.oN=new usedItems(nB,nE);\r
-               }\r
-               if(oPNode!=null){\r
-                       if(oPNode.nE==oPNode.oN.nB-1)\r
-                       {\r
-                               oPNode.nE=oPNode.oN.nE;\r
-                               oPNode.oN=oPNode.oN.oN;\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function projInfo(sPPath,sDPath,sFile)\r
-{\r
-       this.sPPath=sPPath;\r
-       this.sDPath=sDPath;\r
-       this.sFile=sFile;\r
-}\r
-\r
-function addProjInfo(sPPath,sDPath,sFile)\r
-{\r
-       var oIdxInfo=new projInfo(sPPath,sDPath,sFile);\r
-       gaData[gaData.length]=oIdxInfo;\r
-       return oIdxInfo;\r
-}\r
-\r
-function writeDataIFrame()\r
-{\r
-       if(gnLoad<gaData.length)\r
-       {\r
-               gbLoadInfo=true;\r
-               loadData2(gaData[gnLoad].sPPath+gaData[gnLoad].sDPath+gaData[gnLoad].sFile);\r
-       }\r
-       else{\r
-               if(gnItems!=0)\r
-               {\r
-                       markBegin();\r
-                       writeFakeItems();\r
-                       gsSKA="";\r
-                       gnNeeded=gnVisible;\r
-                       gnIns=0;\r
-                       checkReady();\r
-               }\r
-       }\r
-}\r
-\r
-function getH6ById(nPos)\r
-{\r
-       if(document.all)\r
-               return document.all("fk"+nPos);\r
-       else if(document.getElementsByName)\r
-               return document.getElementsByName("fk"+nPos);\r
-       return null;            \r
-}\r
-\r
-function showItemsInEvaluation(nBP)\r
-{\r
-       var bRtn=true;\r
-       var fPer=nBP/gnItems;\r
-       var nB=Math.floor(fPer*gnMaxItems);\r
-       var oCData=getChunkByIdx(gnRef,nB);\r
-       if(oCData)\r
-       {\r
-               if(!oCData.aKs&&oCData.sFileName!=null)\r
-               {\r
-                       gnNKI=nB;\r
-                       goCData=oCData;\r
-                       oCData.nProjId=gnRef;\r
-                       gbLoadInfo=false;\r
-                       beginLoading();\r
-                       loadData2(gaData[gnRef].sPPath+gaData[gnRef].sDPath+oCData.sFileName);\r
-               }\r
-               else{\r
-                       gsSKA=getKByIdx(oCData,nB);\r
-                       if(gsSKA)\r
-                       {\r
-                               gsSKB=null;\r
-                               gbNeedCalc=true;\r
-                               gbScrl=true;\r
-                               checkReady()\r
-                       }\r
-                       else\r
-                       {\r
-                               markEnd();\r
-                               bRtn=false;\r
-                       }\r
-               }\r
-       }\r
-       else\r
-       {\r
-               markEnd();\r
-               bRtn=false;\r
-       }\r
-       return bRtn;\r
-}\r
-\r
-function isUsed(oCData,nPos)\r
-{\r
-       var oUsed=oCData.oUsedItems;\r
-       while(oUsed&&oUsed.nB<=nPos)\r
-       {\r
-               if(oUsed.nE>=nPos) return true;\r
-               oUsed=oUsed.oN;\r
-       }\r
-       return false;\r
-}\r
-\r
-function getKByIdx(oCData,nB)\r
-{\r
-       var nRelPos=nB-(oCData.nTotal-oCData.nNum);\r
-       var aIKs=oCData.aKs;\r
-       if(nRelPos>=0&&aIKs&&nRelPos<aIKs.length)\r
-       {\r
-               var oK=null;\r
-               do{\r
-                       oK=aIKs[nRelPos++];\r
-               }       \r
-               while((oK.nType==3||isUsed(oCData,nRelPos-1))&&nRelPos<aIKs.length);\r
-               if(oK.nType!=3)\r
-               {\r
-                       return oK.sName;\r
-               }\r
-               else{\r
-                       nRelPos=nB-(oCData.nTotal-oCData.nNum)-1;\r
-                       if(nRelPos>=0)\r
-                       {\r
-                               do{\r
-                                       oK=aIKs[nRelPos--];\r
-                               }\r
-                               while((oK.nType==3||isUsed(oCData,nRelPos+1))&&nRelPos>=0);\r
-                       }\r
-                       if(oK.nType!=3)\r
-                       {\r
-                               return oK.sName;\r
-                       }\r
-               }\r
-       }\r
-       return null;\r
-}\r
-\r
-function loadData2(sFileName)\r
-{\r
-       disEvt();\r
-       if(gbXML)\r
-               loadDataXML(sFileName);\r
-       else\r
-               loadData(sFileName);\r
-       enEvt();\r
-}\r
-\r
-function projReady(aChunk)\r
-{\r
-       gaChunks[gnLoad++]=aChunk;\r
-       var len=aChunk.length;\r
-       var nTotal=0;\r
-       if(len>0)\r
-               nTotal=aChunk[len-1].nTotal;\r
-       gnItems+=nTotal;\r
-       if(nTotal>gnMaxItems)\r
-       {\r
-               gnMaxItems=nTotal;\r
-               gnRef=gnLoad-1;\r
-       }\r
-       setTimeout("writeDataIFrame();",1);\r
-}\r
-\r
-function writeFakeItems()\r
-{\r
-       disEvt();\r
-       gnUHeight=15;\r
-       var sHTML=getFakeItemsHTMLbyCount(0,gnItems);\r
-       document.body.insertAdjacentHTML("beforeEnd",sHTML);\r
-       var obj=getH6ById(0);\r
-       if (document.body != null)\r
-       {\r
-               gnVisible=Math.ceil(document.body.clientHeight/gnUHeight);\r
-       }\r
-       gaFakes[0]=new fakeItemsArea(0,gnItems,"",getEndString(),obj);\r
-       enEvt();\r
-}\r
-\r
-function getEndString()\r
-{\r
-       var sBC=getBiggestChar();\r
-       return sBC+sBC+sBC+sBC+sBC+sBC+sBC+sBC;\r
-}\r
-\r
-function getUnitIdx(nScrl,nHeight)\r
-{\r
-       if(gaFakes.length==0)\r
-       {\r
-               markEnd();\r
-               return;\r
-       }\r
-       var nB=0;\r
-       var nE=gaFakes.length-1;\r
-       var nM=-1;\r
-       var nTop=0;\r
-       var nBtm=0;\r
-       var bF=false;\r
-       do{\r
-               nM=(nB+nE)>>1;\r
-               nBtm=gaFakes[nM].getBtm();\r
-               nTop=gaFakes[nM].getTop();\r
-                       \r
-               if(nTop>=nScrl+nHeight)\r
-                       nE=nM-1;\r
-               else if(nBtm<nScrl)\r
-                       nB=nM+1;\r
-               else{\r
-                       bF=true;\r
-                       break;\r
-               }\r
-       }while(nE>=nB);\r
-       if(bF)\r
-       {\r
-               if(nTop>=nScrl){\r
-                       gsSKA=gaFakes[nM].sKA;\r
-                       gsSKB=null;\r
-                       gnNeeded=Math.ceil((nHeight-nTop+nScrl)/gnUHeight);\r
-                       gnIns=gaFakes[nM].nB;\r
-                       checkReady();\r
-               }\r
-               else if(nBtm<=nScrl+nHeight){\r
-                       gsSKB=gaFakes[nM].sKB;\r
-                       gsSKA=null;\r
-                       gnNeeded=Math.ceil((nBtm-nScrl+gnScrlMgn)/gnUHeight);\r
-                       gbNeedCalc=true;\r
-                       checkReady();\r
-               }\r
-               else{\r
-                       gnNeeded=gnVisible;\r
-                       var nUnitIdx=gaFakes[nM].nB+Math.floor((nScrl-nTop)/gnUHeight);\r
-                       if (!showItemsInEvaluation(nUnitIdx))\r
-                       {\r
-                               gsSKA=gaFakes[nM].sKA;\r
-                               gsSKB=null;\r
-                               gnNeeded=Math.ceil(nHeight/gnUHeight);\r
-                               gnIns=gaFakes[nM].nB;\r
-                               checkReady();\r
-                       }\r
-               }\r
-       }\r
-       else\r
-               markEnd();\r
-}\r
-\r
-function disEvt()\r
-{\r
-       window.onscroll=null;\r
-       window.onresize=null;\r
-}\r
-\r
-function enEvt()\r
-{\r
-       window.onscroll=window_OnScroll;\r
-       window.onresize=window_OnResize;\r
-}\r
-\r
-function insertIdxKs(nIns,oHTML,bScrl)\r
-{\r
-       var bRtn=true;\r
-       disEvt();\r
-       var nCount=oHTML.nConsumed;\r
-       var nB=0;\r
-       var nE=gaFakes.length-1;\r
-       var nM=-1;\r
-       var bF=false;\r
-       do{\r
-               nM=(nB+nE)>>1;\r
-               if(gaFakes[nM].nB>nIns)\r
-                       nE=nM-1;\r
-               else if(gaFakes[nM].nB+gaFakes[nM].nNum<=nIns)\r
-                       nB=nM+1;\r
-               else{\r
-                       bF=true;\r
-                       break;\r
-               }\r
-       }while(nE>=nB);\r
-       if(bF)\r
-       {\r
-               var oFIA=gaFakes[nM];\r
-               var nOffsetTop=oFIA.getTop();\r
-               var nOffsetBottom=oFIA.getBtm();\r
-               var nDelta=0;\r
-               var nHDiff=nIns-oFIA.nB;\r
-               var nTDiff=oFIA.nNum+oFIA.nB-(nIns+nCount);\r
-               if(nHDiff>0)\r
-               {\r
-                       nDelta=oFIA.setNum(nHDiff);\r
-                       var sOldKBefore=oFIA.sKB;\r
-                       oFIA.sKB=oHTML.sFK;\r
-                       if(nTDiff>0)\r
-                       {\r
-                               var sHTML=getFakeItemsHTMLbyCount(nIns,nTDiff);\r
-                               oFIA.insertAdjacentHTML("afterEnd",sHTML);\r
-                               var obj=getH6ById(nIns);\r
-                               insertItemIntoArray(gaFakes,nM+1,new fakeItemsArea(nIns+nCount,nTDiff,oHTML.sLK,sOldKBefore,obj));\r
-                       }\r
-                       oFIA.insertAdjacentHTML("afterEnd",oHTML.sHTML);        \r
-                       if(bScrl)\r
-                       {\r
-                               if(gbMac&&gbIE4)\r
-                               {\r
-                                       var nScrollPos=nOffsetBottom-nDelta;\r
-                                       while(document.body.scrollTop!=nScrollPos)\r
-                                               document.body.scrollTop=nScrollPos;\r
-                               }\r
-                               else\r
-                                       window.scrollTo(0,nOffsetBottom-nDelta);\r
-                       }\r
-               }\r
-               else{\r
-                       oFIA.insertAdjacentHTML("beforeBegin",oHTML.sHTML);\r
-                       if(bScrl){\r
-                               if(gbMac&&gbIE4)\r
-                               {\r
-                                       var nScrollPos=nOffsetTop;\r
-                                       while(document.body.scrollTop!=nScrollPos)\r
-                                               document.body.scrollTop=nScrollPos;\r
-                               }\r
-                               else\r
-                                       window.scrollTo(0,nOffsetTop);\r
-                       }\r
-                                       \r
-                       if(nTDiff>0)\r
-                       {\r
-                               oFIA.nB=nIns+nCount;\r
-                               nDelta=oFIA.setNum(nTDiff);\r
-                               oFIA.sKA=oHTML.sLK;\r
-                       }       \r
-                       else{\r
-                               gaFakes[nM].setNum(0);\r
-                               removeItemFromArray(gaFakes,nM);\r
-                       }\r
-               }\r
-       }\r
-       else\r
-               bRtn=false;\r
-       enEvt();\r
-       return bRtn;\r
-}\r
-\r
-function window_OnScroll()\r
-{\r
-       gnSE++;\r
-       setTimeout("procScroll();",50); \r
-}\r
-\r
-function procScroll()\r
-{\r
-       if(gnSE==1&&!gbProcess)\r
-       {\r
-               markBegin();\r
-               getUnitIdx(document.body.scrollTop,document.body.clientHeight);\r
-       }\r
-       gnSE--;\r
-}\r
-\r
-function window_OnResize()\r
-{\r
-       gnRE++;\r
-       setTimeout("procResize();",50);\r
-}\r
-\r
-function procResize()\r
-{\r
-       if(gnRE==1&&!gbProcess)\r
-       {\r
-               markBegin();\r
-               gnVisible=Math.ceil(document.body.clientHeight/gnUHeight);\r
-               if(gnIns==-1)\r
-                       getUnitIdx(document.body.scrollTop,document.body.clientHeight);\r
-       }\r
-       gnRE--;\r
-}\r
-\r
-function getChunkByIdx(nIdx,nPosition)\r
-{\r
-       var oCData=null;\r
-       if(nIdx<gaChunks.length)\r
-       {\r
-               var len=gaChunks[nIdx].length;\r
-               if(len>0)\r
-               {\r
-                       var nB=0;\r
-                       var nE=len-1;\r
-                       var bF=false;\r
-                       do{\r
-                               var nM=(nB+nE)>>1;\r
-                               if(nPosition<gaChunks[nIdx][nM].nTotal)\r
-                               {\r
-                                       bF=true;\r
-                                       nE=nM;\r
-                               }\r
-                               else\r
-                                       nB=nM+1;\r
-                       }while(nE>nB);\r
-                       if(bF)\r
-                               oCData=gaChunks[nIdx][nE];\r
-                       else if(nPosition<gaChunks[nIdx][nB].nTotal)\r
-                               oCData=gaChunks[nIdx][nB];\r
-               }\r
-       }\r
-       return oCData;\r
-}\r
-\r
-function getChunkedData(nIdx,bDown,sK)\r
-{\r
-       var oCData=null;\r
-       var nCandId=-1;\r
-       if(nIdx<gaChunks.length)\r
-       {\r
-               var len=gaChunks[nIdx].length;\r
-               if(len>0)\r
-               {\r
-                       var nB=0;\r
-                       var nE=len-1;\r
-                       var bF=false;\r
-                       do{\r
-                               var nM=(nB+nE+(bDown?0:1))>>1;\r
-                               if(bDown)\r
-                               {\r
-                                       if(compare(sK,gaChunks[nIdx][nM].sEK)<0)\r
-                                       {\r
-                                               bF=true;\r
-                                               nE=nM;\r
-                                       }\r
-                                       else\r
-                                               nB=nM+1;\r
-                               }\r
-                               else\r
-                               {\r
-                                       if(compare(sK,gaChunks[nIdx][nM].sBK)>0)\r
-                                       {\r
-                                               bF=true;\r
-                                               nB=nM;\r
-                                       }\r
-                                       else\r
-                                               nE=nM-1;\r
-                               }\r
-                       }while(nE>nB);\r
-                       if(bF)\r
-                       {\r
-                               if(bDown)\r
-                                       nCandId=nE;\r
-                               else\r
-                                       nCandId=nB;\r
-                       }\r
-                       else\r
-                       {\r
-                               if(bDown)\r
-                               {\r
-                                       if(gaChunks[nIdx].length>nB&&compare(sK,gaChunks[nIdx][nB].sEK)<0)\r
-                                               nCandId=nB;\r
-                                       else\r
-                                               nCandId=gaChunks[nIdx].length-1;\r
-                               }\r
-                               else\r
-                               {\r
-                                       if(0<=nE&&compare(sK,gaChunks[nIdx][nE].sBK)>0)\r
-                                               nCandId=nE;\r
-                                       else\r
-                                               nCandId=0;\r
-                               }\r
-                       }\r
-                       return gaChunks[nIdx][nCandId];\r
-               }\r
-       }\r
-       return null;\r
-}\r
-\r
-function findCK()\r
-{\r
-       if(gsCK!=null)\r
-       {\r
-               gsSKA=gsCK;\r
-               gbFindCK=true;\r
-               gnNeeded=1;\r
-               markBegin();\r
-               checkReady();\r
-       }\r
-}\r
-\r
-function writeLoadingDiv(nIIdx)\r
-{\r
-       return "<div id=\""+gsLoadingDivID+"\" style=\"position:absolute;top:0;left:0;z-index:600;visibility:hidden;padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";\r
-}\r
-\r
-var gbWhHost=true;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whibody.htm b/doc/salome/gui/SMESH/whibody.htm
deleted file mode 100755 (executable)
index 62cbf7a..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-<html>\r
-<head>\r
-<title>Index content</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whlang.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whhost.js"></script>\r
-<script language="javascript1.2" src="whihost.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-var gnPageWidth = 0;\r
-var gnPageHeight = 0;\r
-var goPopup = null;\r
-var gITE = new Array();\r
-var gIndexLetterArray = new Array();\r
-var gbPopupMenuTimeoutExpired=false;\r
-var gBsClientWidth=640;\r
-var gBsClientHeight=480;\r
-var g_bIsPopupMenuInit=false;\r
-\r
-function WritePopupMenuLayer()\r
-{\r
-       if (!g_bIsPopupMenuInit)\r
-       {\r
-               document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");\r
-               document.write("<STYLE TYPE='text/css'>");\r
-               if (gbMac && gbIE4) {\r
-                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:10pt; text-decoration:none;}");\r
-                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:10pt; text-decoration:none;}");\r
-               } else {\r
-                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:8pt; text-decoration:none;}");\r
-                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:8pt; text-decoration:none;}");\r
-               }\r
-               document.write("</STYLE>");\r
-       }\r
-       g_bIsPopupMenuInit = true;\r
-}\r
-\r
-function PopupMenu_Invoke()\r
-{\r
-       if (gbNav6)\r
-               resetHighLight();\r
-       \r
-       if (!gbNav6  && document.readyState != "complete")\r
-               return false;\r
-       var fn_arguments = PopupMenu_Invoke.arguments; \r
-       // Make sure we have reasonable arguments\r
-       var argLen = fn_arguments.length;\r
-       if (argLen < 3) {\r
-               return false;\r
-       }\r
-\r
-       // Check to see if we only have one target\r
-       var strTarget = "";\r
-       \r
-       strTarget = "TARGET='" + fn_arguments[1] + "'";\r
-       \r
-       if (argLen < 5) {\r
-               // Get the place that we will be putting the topic into\r
-               var strURL = fn_arguments[3];\r
-\r
-               if (fn_arguments[1] != null && typeof(fn_arguments[1]) != "undefined")\r
-                       window.open(strURL, fn_arguments[1]);\r
-               else\r
-                       window.open(strURL);\r
-                       \r
-               return false;\r
-       }\r
-       \r
-       var strMenu = '<TABLE STYLE="border:2px outset white;" CELLSPACING=0';\r
-       if (gbMac && gbIE4) {\r
-               strMenu += ' CELLPADDING=4';\r
-       } else {\r
-               strMenu += ' CELLPADDING=2';\r
-       }       \r
-       strMenu += ' BGCOLOR=#c0c0c0>';\r
-\r
-       // Add each of the items\r
-       if (gbIE55)\r
-       {\r
-               var i = 2;\r
-               while (i <= argLen - 1) {\r
-                       strMenu += '<TR><TD><NOBR>'\r
-                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A ';\r
-                       strMenu += ' onclick="parent.PopupMenu_2HandleClick(\'' + fn_arguments[i + 1] + '\', \'' + fn_arguments[1] + '\');"';\r
-                       strMenu += ' onmouseover="parent.PopupMenu_Over(event);"';\r
-                       strMenu += ' onmouseout="parent.PopupMenu_Out(event);"';\r
-                       strMenu += '>';\r
-                       strMenu += '<SPAN CLASS="PopupNotOver">' + fn_arguments[i] + '</SPAN>';\r
-                       strMenu += '</A></DIV></NOBR></TD></TR>';\r
-                       i += 2;\r
-               }\r
-       }\r
-       else\r
-       {\r
-               var i = 2;\r
-               while (i <= argLen - 1) {\r
-                       strMenu += '<TR><TD><NOBR>'\r
-                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + fn_arguments[i + 1] + '" ' + strTarget;\r
-                       strMenu += ' onclick="PopupMenu_HandleClick(event);"';\r
-                       strMenu += ' onmouseover="PopupMenu_Over(event);"';\r
-                       strMenu += ' onmouseout="PopupMenu_Out(event);"';\r
-                       strMenu += '>';\r
-                       strMenu += '<SPAN CLASS="PopupNotOver">' + fn_arguments[i] + '</SPAN>';\r
-                       strMenu += '</A></DIV></NOBR></TD></TR>';\r
-                       i += 2;\r
-               }\r
-       }\r
-       strMenu += "</TABLE>";\r
-\r
-       if (gbMac && gbIE4) {\r
-       // ie5 in mac need something. </TABLE> is one of them.\r
-               strMenu +="<TABLE></TABLE>";\r
-       }\r
-\r
-       var layerPopup = null;\r
-       var stylePopup = null;\r
-       var nEventX = 0;\r
-       var nEventY = 0;\r
-       var nWindowWidth = 0;\r
-       if (gbIE4)\r
-       {\r
-               layerPopup = document.all["PopupMenu"];\r
-               layerPopup.innerHTML = strMenu;\r
-               stylePopup = layerPopup.style;\r
-\r
-               _BSPSGetClientSize();\r
-\r
-               // Get the position of the item causing the event (relative to its parent)\r
-               nEventX = window.event.clientX;\r
-               nEventY = window.event.clientY;\r
-               \r
-               if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) {\r
-                       nEventY += document.body.scrollTop + 10;\r
-               } else {\r
-                       nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20;\r
-               }\r
-               stylePopup.top = nEventY;\r
-\r
-               if (nEventX + layerPopup.scrollWidth + 20 > gBsClientWidth) {\r
-                       if (gBsClientWidth - layerPopup.scrollWidth < 5) {\r
-                               stylePopup.left = 5;\r
-                       } else {\r
-                               stylePopup.left = gBsClientWidth - layerPopup.scrollWidth - 5;\r
-                       }\r
-               } else {\r
-                       stylePopup.left = nEventX + document.body.scrollLeft + 20;\r
-               }\r
-\r
-               if (gbIE55) {\r
-                       var nPosX = window.event.clientX;\r
-                       var nPosY = window.event.clientY;\r
-                       if (window.event.srcElement)\r
-                       {\r
-                               nPosX = window.event.srcElement.offsetLeft + window.event.srcElement.offsetWidth - document.body.scrollLeft;\r
-                               nPosY = window.event.srcElement.offsetTop + window.event.srcElement.offsetHeight - document.body.scrollTop;\r
-                       }\r
-                       goPopup = window.createPopup();\r
-                       var oPopupBody = goPopup.document.body;\r
-                       goPopup.document.createStyleSheet();\r
-                       goPopup.document.styleSheets[0].addRule(".PopupOver", "{font-family:\"Arial\"; cursor: hand;color:white; background:navy; font-size:8pt; text-decoration:none;}");\r
-                       goPopup.document.styleSheets[0].addRule(".PopupNotOver", "{font-family:\"Arial\"; color:black; background:#c0c0c0; font-size:8pt; text-decoration:none;}");\r
-                       oPopupBody.insertAdjacentHTML("afterBegin", strMenu);\r
-                       goPopup.show(nPosX, nPosY, layerPopup.scrollWidth, layerPopup.scrollHeight, document.body);\r
-               }\r
-               else \r
-               {\r
-                       stylePopup.visibility = "visible";\r
-                       document.onclick = PopupMenu_HandleClick;\r
-               }\r
-       } else if (gbNav6) {\r
-               layerPopup = document.getElementById("PopupMenu");\r
-               layerPopup.style.visibility = "hidden";\r
-       \r
-               var e = fn_arguments[0];\r
-               nEventX = e.pageX;\r
-               nEventY = e.pageY;\r
-               _BSPSGetClientSize();\r
-               layerPopup.innerHTML = strMenu;\r
-\r
-               if (nEventY + layerPopup.offsetHeight + 20  <  window.pageYOffset + gBsClientHeight) {\r
-                       nEventY += 20;\r
-               } else {\r
-                       nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20;\r
-               }\r
-\r
-               if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) {\r
-                       if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) {\r
-                               nEventX = 5;\r
-                       } else {\r
-                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20;\r
-                       }\r
-               } else {\r
-                       nEventX += 20;\r
-               }\r
-               layerPopup.style.top = nEventY;\r
-               layerPopup.style.left = nEventX;\r
-\r
-               // set again to avoid the frash in netscape 6.\r
-               layerPopup.innerHTML = strMenu;\r
-               layerPopup.style.visibility = "visible";\r
-               window.onclick = PopupMenu_HandleClick;\r
-       } \r
-\r
-       window.gbPopupMenuTimeoutExpired = false;\r
-       setTimeout("PopupMenu_Timeout();", 100);\r
-       return false;\r
-}\r
-\r
-function PopupMenu_Timeout()\r
-{\r
-       window.gbPopupMenuTimeoutExpired = true;\r
-}\r
-\r
-function PopupMenu_Over(e)\r
-{\r
-       if (gbIE4)\r
-               e.srcElement.className = "PopupOver";\r
-       else if (gbNav6)\r
-               e.target.parentNode.className = "PopupOver";\r
-}\r
-\r
-function PopupMenu_Out(e)\r
-{\r
-       if (gbIE4)\r
-               e.srcElement.className = "PopupNotOver";\r
-       else if (gbNav6)\r
-               e.target.parentNode.className = "PopupNotOver";\r
-}\r
-\r
-function PopupMenu_2HandleClick(surl, starget)\r
-{\r
-       window.open(surl, starget);\r
-       goPopup.hide();\r
-}\r
-\r
-function PopupMenu_HandleClick(e)\r
-{\r
-       if (!window.gbPopupMenuTimeoutExpired) {\r
-               return;\r
-       }\r
-\r
-       var layerPopup = getElement("PopupMenu");\r
-       layerPopup.style.visibility = "hidden";\r
-\r
-       return;\r
-}\r
-\r
-//Get client size info\r
-function _BSPSGetClientSize()\r
-{\r
-       gBsClientWidth  = document.body.clientWidth;\r
-       gBsClientHeight = document.body.clientHeight;\r
-}\r
-\r
-if (window.gbWhIHost)\r
-{\r
-       setBackgroundcolor("White");\r
-       \r
-       setFont("Normal", "Tahoma","8pt","Black","Normal","Normal","none");\r
-       setFont("Empty", "Tahoma","8pt","Black","Normal","Normal","none");\r
-       setFont("Hover", "Tahoma","8pt","Navy","Normal","Normal","underline");\r
-       setActiveBgColor("Silver");\r
-       \r
-       \r
-       IndexWriteClassStyle();\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" scroll="auto" bgcolor="white">\r
-<script languageE="JavaScript">\r
-<!--\r
-WritePopupMenuLayer();\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
-\r
diff --git a/doc/salome/gui/SMESH/whidhtml.htm b/doc/salome/gui/SMESH/whidhtml.htm
deleted file mode 100755 (executable)
index 8a420e4..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<html>\r
-<head>\r
-<title>Index</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-</head>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-var gbIndexLayerInit = false;\r
-if (window.gbWhProxy&&window.gbWhMsg&&window.gbWhVer)\r
-{\r
-       var strWrite;\r
-       if (gbMac)\r
-               strWrite="<FRAMESET ROWS='45,100%' framespacing=0  frameborder=0>";\r
-       else\r
-               strWrite="<FRAMESET ROWS='60,100%' framespacing=0  frameborder=0>";\r
-       strWrite +="<FRAME SRC='whiform.htm' title='index form frame' name='idxform' noresize='yes' scrolling='no'>";\r
-       strWrite +="<FRAME SRC='whibody.htm' title='index content frame' name='idxbody' scrolling='yes'>";\r
-       strWrite +="</FRAMESET>";\r
-       document.write(strWrite);\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/whiform.htm b/doc/salome/gui/SMESH/whiform.htm
deleted file mode 100755 (executable)
index 1f2835d..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-<html>\r
-<head>\r
-<title>Index form</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-</head>\r
-<style>\r
-<!--\r
-body {margin:0;}\r
--->\r
-</style>\r
-<body bgcolor="#c0c0c0">\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whform.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-function indexLookup(bCR)\r
-{\r
-       var strInput = document.IndexInputForm.keywordField.value.toUpperCase();\r
-       if (strInput != "") {\r
-               var oParam = new Object();\r
-               oParam.sInput = strInput;\r
-               oParam.bCR = bCR;\r
-               var oMessage = new whMessage(WH_MSG_SEARCHINDEXKEY, this, 1, oParam);\r
-               SendMessage(oMessage);\r
-       }\r
-       if (gbMac) {\r
-               document.IndexInputForm.keywordField.focus();\r
-       }\r
-}\r
-\r
-function window_Unload()\r
-{\r
-       UnRegisterListener2(this, WH_MSG_SHOWTOC);\r
-       UnRegisterListener2(this, WH_MSG_SHOWIDX);\r
-       UnRegisterListener2(this, WH_MSG_SHOWFTS);\r
-       UnRegisterListener2(this, WH_MSG_SHOWGLO);\r
-}\r
-\r
-function onSendMessage(oMessage)\r
-{\r
-       if (oMessage.nMessageId == WH_MSG_SHOWIDX)\r
-       {\r
-               document.IndexInputForm.keywordField.focus();\r
-       }\r
-       else if (oMessage.nMessageId == WH_MSG_SHOWFTS ||\r
-               oMessage.nMessageId == WH_MSG_SHOWTOC || \r
-               oMessage.nMessageId == WH_MSG_SHOWGLO)\r
-       {\r
-               document.IndexInputForm.keywordField.blur();\r
-       }\r
-       return true;\r
-}\r
-\r
-if (window.gbWhForm)\r
-{\r
-       RegisterListener2(this, WH_MSG_SHOWTOC);\r
-       RegisterListener2(this, WH_MSG_SHOWIDX);\r
-       RegisterListener2(this, WH_MSG_SHOWFTS);\r
-       RegisterListener2(this, WH_MSG_SHOWGLO);\r
-       window.onunload=window_Unload;\r
-       window.onload = init;\r
-       gfunLookUp = indexLookup;\r
-       gfunInit = null;\r
-       gstrFormName = "IndexInputForm"\r
-       gsTitle = "Type in the keyword to find:";\r
-       gsTitle = "Type in the keyword to find:";\r
-\r
-       setBackgroundcolor("White");\r
-       \r
-       setBtnType("none");\r
-       \r
-       \r
-       \r
-       setGoText("Go");\r
-       setFont("Title", "Tahoma","8pt","Navy","Normal","Normal","none");\r
-       \r
-       \r
-       document.write(getFormHTML());\r
-       writeFormStyle();\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</body>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whihost.js b/doc/salome/gui/SMESH/whihost.js
deleted file mode 100755 (executable)
index 7e2ab32..0000000
+++ /dev/null
@@ -1,432 +0,0 @@
-var gsDefaultTarget="bsscright";\r
-var gsBgColor="#ffffff";\r
-var gsBgImage="";\r
-var goIdxFont=null;\r
-var goIdxEmptyFont=null;\r
-var goIdxHoverFont=null;\r
-var gsIdxMargin="0pt";\r
-var gsIdxIndent="8pt";\r
-var gsIdxActiveBgColor="#cccccc";\r
-var gsCK = null;\r
-var gsBCK = null;\r
-var gbCR = false;\r
-var gbBCR = false;\r
-var gbWhIHost=true;\r
-\r
-function myEvent()\r
-{\r
-       this.pageX = 0;\r
-       this.pageY = 0;\r
-}\r
-var _event=new myEvent();\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       gsBgColor=sBgColor;\r
-}\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       gsBgImage=sBgImage;\r
-}\r
-\r
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
-{\r
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
-       if(sType=="Normal")\r
-               goIdxFont=vFont;\r
-       else if(sType=="Empty")\r
-               goIdxEmptyFont=vFont;\r
-       else if(sType=="Hover")\r
-               goIdxHoverFont=vFont;\r
-}\r
-\r
-function setActiveBgColor(sBgColor)\r
-{\r
-       gsIdxActiveBgColor=sBgColor;\r
-}\r
-\r
-function setMargin(sMargin)\r
-{\r
-       gsIdxMargin=sMargin;\r
-}\r
-\r
-function setIndent(sIndent)\r
-{\r
-       gsIdxIndent=sIndent;\r
-}\r
-\r
-function writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)\r
-{\r
-       var sHTML="";\r
-       var nIdxSet=aCurIdxSet[0];\r
-       var nIIdx=aPos[nIdxSet];\r
-       var sKOriName=getItemName(aDataCon,nIdxSet,nIIdx);\r
-       var sKName=_textToHtml(sKOriName);\r
-\r
-       var nIdxIndent=parseInt(gsIdxIndent);\r
-       var sTopics="";\r
-       if(nLevel==1){\r
-               if(getItemType(aDataCon,nIdxSet,nIIdx)==1)\r
-               {\r
-                       sHTML+="<H6><nobr>";\r
-                       sHTML+="<b>"+sKName+"</b></nobr></H6>";\r
-               }\r
-               else{\r
-                       for(var i=0;i<nLength;i++)\r
-                               sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);\r
-                       sHTML+="<p style=\"margin-left:"+gsIdxIndent+"\"><nobr>";\r
-                       sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+getTargetName(aDataCon,nIdxSet,nIIdx)+"'";\r
-                       if(sTopics.length>0)\r
-                               sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></p>";\r
-                       else\r
-                               sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></p>";\r
-               }\r
-       }\r
-       else if(nLevel>=2){\r
-               var nIndent=nIdxIndent*nLevel;\r
-               for(var i=0;i<nLength;i++)\r
-                       sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);\r
-               if (nLevel==2)\r
-                       sHTML+="<h6 class=\"firstsub\" style=\"margin-left:"+nIndent+"pt\"><nobr>";\r
-               else\r
-                       sHTML+="<h6 style=\"margin-left:"+nIndent+"pt\"><nobr>";\r
-               sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+getTargetName(aDataCon,nIdxSet,nIIdx)+"'";\r
-               if(sTopics.length>0)\r
-                       sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></h6>";\r
-               else\r
-                       sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></h6>";\r
-       }\r
-       oHTML.addHTML(sHTML,nLength,bDown,(nLevel==1),sKOriName);\r
-}\r
-\r
-function getTargetName(aDataCon,nIdxSet,nIIdx)\r
-{\r
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
-               if(aDataCon[nIdxSet].aKs[nIIdx].sTarget)\r
-                       return aDataCon[nIdxSet].aKs[nIIdx].sTarget;\r
-       return gsDefaultTarget;\r
-}\r
-\r
-function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)\r
-{\r
-       var oLocalHTML=new indexHTMLPart();\r
-       writeOneItem(oLocalHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel);\r
-       \r
-       var aLocalPos=new Array();\r
-       var aMaxPos=new Array();\r
-       for(var i=0;i<aPos.length;i++)\r
-       {\r
-               aLocalPos[i]=aPos[i];\r
-               aMaxPos[i]=-1;\r
-       }\r
-       \r
-       for(i=0;i<nLength;i++)\r
-       {\r
-               var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aLocalPos[aCurIdxSet[i]]);\r
-               aLocalPos[aCurIdxSet[i]]++;\r
-               if(nNKOff>0)\r
-                       aMaxPos[aCurIdxSet[i]]=aLocalPos[aCurIdxSet[i]]+nNKOff;\r
-       }\r
-       var oSubHTML=new indexHTMLPart();\r
-       writeItems(oSubHTML,aDataCon,aLocalPos,null,aMaxPos,true,nLevel+1);\r
-       oLocalHTML.addSubHTML(oSubHTML,true);\r
-       oHTML.appendHTML(oLocalHTML,bDown);\r
-}\r
-\r
-function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)\r
-{\r
-       if(bDown)\r
-       {\r
-               for(var i=0;i<nLength;i++)\r
-               {\r
-                       var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);\r
-                       aPos[aCurIdxSet[i]]+=(1+nNKOff);\r
-               }\r
-       }\r
-       else{\r
-               for(var i=0;i<nLength;i++)\r
-               {\r
-                       var nPKOff=getPKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);\r
-                       aPos[aCurIdxSet[i]]-=(1+nPKOff);\r
-               }\r
-       }\r
-}\r
-\r
-function getItemName(aDataCon,nIdxSet,nIIdx)\r
-{\r
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
-               return aDataCon[nIdxSet].aKs[nIIdx].sName;\r
-       else\r
-               return null;\r
-}\r
-\r
-function getItemType(aDataCon,nIdxSet,nIIdx)\r
-{\r
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
-               return aDataCon[nIdxSet].aKs[nIIdx].nType;\r
-       else\r
-               return 0;\r
-}\r
-\r
-function getNKOff(aDataCon,nIdxSet,nIIdx)\r
-{\r
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
-               return aDataCon[nIdxSet].aKs[nIIdx].nNKOff;\r
-       else\r
-               return null;\r
-}\r
-\r
-function getPKOff(aDataCon,nIdxSet,nIIdx)\r
-{\r
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
-               return aDataCon[nIdxSet].aKs[nIIdx].nPKOff;\r
-       else\r
-               return null;\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if(gsBgImage&&gsBgImage.length>0)\r
-       {\r
-               document.body.background=gsBgImage;\r
-       }\r
-       if(gsBgColor&&gsBgColor.length>0)\r
-       {\r
-               document.body.bgColor=gsBgColor;\r
-       }\r
-       document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());\r
-       loadIdx();\r
-       var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function loadIdx()\r
-{\r
-       if(!gbReady)\r
-       {\r
-               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);\r
-               if(SendMessage(oResMsg)&&oResMsg.oParam)\r
-               {\r
-                       gbReady=true;\r
-                       var oProj=oResMsg.oParam;\r
-                       var aProj=oProj.aProj;\r
-                       gbXML=oProj.bXML;\r
-                       if(aProj.length>0)\r
-                       {\r
-                               var sLangId=aProj[0].sLangId;\r
-                               for(var i=0;i<aProj.length;i++)\r
-                               {\r
-                                       if(aProj[i].sIdx!=null&&aProj[i].sIdx!=""&&aProj[i].sLangId==sLangId)\r
-                                       {\r
-                                               addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sIdx);\r
-                                       }\r
-                               }\r
-                       }\r
-                       writeDataIFrame();\r
-                       enEvt();\r
-               }               \r
-       }\r
-}\r
-\r
-function getIdxTopics(aDataCon,nIdxSet,nIIdx)\r
-{\r
-       var sTopics="";\r
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
-       {\r
-               if(aDataCon[nIdxSet].aKs[nIIdx].aTopics)\r
-               {\r
-                       var nLen=aDataCon[nIdxSet].aKs[nIIdx].aTopics.length;\r
-                       var nProj=aDataCon[nIdxSet].nProjId;\r
-                       var sPath=gaData[nProj].sPPath;\r
-                       for(var i=0;i<nLen;i++)\r
-                       {\r
-                               var sURL=aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sURL;\r
-                               var sFullPath=_getFullPath(sPath,sURL);\r
-                               sTopics+=",'"+excapeSingleQuot(_textToHtml(aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sName))+"','"+_textToHtml_nonbsp(sFullPath)+"'";\r
-                       }\r
-               }\r
-       }\r
-       return sTopics;         \r
-}\r
-\r
-function excapeSingleQuot(str)\r
-{\r
-       if(str==null) return null;\r
-       var sRes=str;\r
-       var re=new RegExp("'","g");\r
-       sRes=sRes.replace(re,"\\'");\r
-       return sRes;\r
-}\r
-\r
-function findCKInDom()\r
-{\r
-       if(gsCK!=null)\r
-       {\r
-               var sK=gsCK;\r
-               var oP=getElementsByTag(document,"P");\r
-               if(!oP) return false;\r
-               var len=oP.length;\r
-               var nB=0;\r
-               var nE=len-1;\r
-               var nM=0;\r
-               var sItem="";\r
-               var bF=false;\r
-               while(nB<nE){\r
-                       nM=(nB+nE+1)>>1;\r
-                       sItem=getInnerText(oP[nM]);\r
-                       \r
-                       if(compare(sItem,sK)==0)\r
-                       {\r
-                               bF=true;\r
-                               break;\r
-                       }\r
-                       else if(compare(sItem,sK)>0)\r
-                               nE=nM-1;\r
-                       else if(compare(sItem,sK)<0)\r
-                               nB=nM;\r
-               }\r
-               if(!bF)\r
-               {\r
-                       if(nB==nE) nM=nB;\r
-               \r
-                       if(nM+1<len)\r
-                       {\r
-                               sItem=getInnerText(oP[nM+1]);\r
-                               if(compare(sItem,sK)<=0) nM++;\r
-                       }                       \r
-                       if(nM+1<len)\r
-                       {\r
-                               sItem=getInnerText(oP[nM+1]);\r
-                               if(compare(sItem.substring(0,sK.length),sK)==0) nM++;\r
-                       }                       \r
-               }\r
-       \r
-               var oMatch=oP[nM];\r
-               if(oMatch)\r
-               {\r
-                       window.scrollTo(0,oMatch.offsetTop);\r
-                       var tempColl=getElementsByTag(oMatch,"A");\r
-                       if(tempColl&&tempColl.length>0){\r
-                               var nbTag=getElementsByTag(oMatch,"NOBR");\r
-                               if(nbTag&&nbTag.length>0)\r
-                                       HighLightElement(nbTag[0], gsIdxActiveBgColor, "transparent");\r
-                               if (gbCR)\r
-                               {\r
-                                       if (gbIE4)\r
-                                               tempColl(0).click();\r
-                                       else\r
-                                       {\r
-                                               var strCommand = tempColl[0].getAttribute("onClick");\r
-                                               var nstrCommand = strCommand.indexOf(";");\r
-                                               strCommand = strCommand.substring(0, nstrCommand);\r
-                                               strCommand = strCommand.replace("event", "_event");\r
-                                               window._event.pageX = oMatch.offsetLeft ;\r
-                                               window._event.pageY = oMatch.offsetTop + 20;\r
-                                               window.setTimeout(strCommand, 100);\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-               gsCK=gsBCK;\r
-               gbCR=gbBCR;\r
-               if(gsBCK!=null)\r
-               {\r
-                       gsBCK=null;\r
-                       gbBCR=false;\r
-                       findCK();\r
-                       return false;\r
-               }\r
-               \r
-       }\r
-       return true;\r
-}\r
-\r
-function clearHighLight()\r
-{\r
-       resetHighLight(gsBgColor);\r
-}\r
-\r
-function IndexWriteClassStyle()\r
-{\r
-       var sStyle="";\r
-       sStyle+="<STYLE TYPE='text/css'>";\r
-       if (gsBgImage)\r
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
-       else\r
-               sStyle+="body {border-top:black 1px solid;}\n";\r
-       if(gbIE4&&gbMac&&!gbIE5)\r
-       {\r
-               var nMargin=parseInt(gsIdxMargin);\r
-               nMargin-=10;\r
-               sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
-               sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
-               sStyle+="H6.firstsub {"+getFontStyle(goIdxFont)+"margin-top:"+nMargin+"pt;margin-bottom:"+gsIdxMargin+";}\n";\r
-       }\r
-       else\r
-       {\r
-               sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
-               sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
-       }\r
-       sStyle+="DIV {margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
-       sStyle+="A:link {"+getFontStyle(goIdxFont)+"}\n";\r
-       sStyle+="A:visited {"+getFontStyle(goIdxFont)+"}\n";\r
-       sStyle+="A:active {background-color:"+gsIdxActiveBgColor+";}\n";\r
-       sStyle+="A:hover {"+getFontStyle(goIdxHoverFont)+"}\n";\r
-       sStyle+="</STYLE>";     \r
-       document.write(sStyle);\r
-       return;\r
-}\r
-\r
-function window_Unload()\r
-{\r
-       UnRegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       UnRegisterListener2(this,WH_MSG_SEARCHINDEXKEY);\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       if(oMsg)\r
-       {\r
-               var nMsgId=oMsg.nMessageId;\r
-               if(nMsgId==WH_MSG_SEARCHINDEXKEY)\r
-               {\r
-                       if(oMsg.oParam && oMsg.oParam.sInput)\r
-                       {\r
-                               if(gsCK==null)\r
-                               {\r
-                                       gsCK=oMsg.oParam.sInput;\r
-                                       gbCR = oMsg.oParam.bCR;\r
-                                       findCK();\r
-                               }\r
-                               else\r
-                               {\r
-                                       gsBCK=oMsg.oParam.sInput;\r
-                                       gbBCR = oMsg.oParam.bCR;\r
-                               }\r
-                       }\r
-               }\r
-               else if(nMsgId==WH_MSG_PROJECTREADY)\r
-               {\r
-                       loadIdx();\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-if(window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhHost&&window.gbWhProxy)\r
-{\r
-       RegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       RegisterListener2(this,WH_MSG_SEARCHINDEXKEY);\r
-       goIdxFont=new whFont("Verdana","8pt","#000000","normal","normal","none");\r
-       goIdxEmptyFont=new whFont("Verdana","8pt","#666666","normal","normal","none");\r
-       goIdxHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");\r
-\r
-       window.onload=window_OnLoad;\r
-       window.onbeforeunload=window_BUnload;\r
-       window.onunload=window_Unload;\r
-       gbWhIHost=true;\r
-}\r
-else\r
-       document.location.reload();\r
-\r
diff --git a/doc/salome/gui/SMESH/whlang.js b/doc/salome/gui/SMESH/whlang.js
deleted file mode 100755 (executable)
index 055b5b8..0000000
+++ /dev/null
@@ -1,452 +0,0 @@
-var garrSortChar=new Array();\r
-var gaFtsStop=new Array();\r
-var gaFtsStem=new Array();\r
-var gbWhLang=false;\r
-\r
-garrSortChar[0] = 0;\r
-garrSortChar[1] = 1;\r
-garrSortChar[2] = 2;\r
-garrSortChar[3] = 3;\r
-garrSortChar[4] = 4;\r
-garrSortChar[5] = 5;\r
-garrSortChar[6] = 6;\r
-garrSortChar[7] = 7;\r
-garrSortChar[8] = 8;\r
-garrSortChar[9] = 40;\r
-garrSortChar[10] = 41;\r
-garrSortChar[11] = 42;\r
-garrSortChar[12] = 43;\r
-garrSortChar[13] = 44;\r
-garrSortChar[14] = 9;\r
-garrSortChar[15] = 10;\r
-garrSortChar[16] = 11;\r
-garrSortChar[17] = 12;\r
-garrSortChar[18] = 13;\r
-garrSortChar[19] = 14;\r
-garrSortChar[20] = 15;\r
-garrSortChar[21] = 16;\r
-garrSortChar[22] = 17;\r
-garrSortChar[23] = 18;\r
-garrSortChar[24] = 19;\r
-garrSortChar[25] = 20;\r
-garrSortChar[26] = 21;\r
-garrSortChar[27] = 22;\r
-garrSortChar[28] = 23;\r
-garrSortChar[29] = 24;\r
-garrSortChar[30] = 25;\r
-garrSortChar[31] = 26;\r
-garrSortChar[32] = 38;\r
-garrSortChar[33] = 45;\r
-garrSortChar[34] = 46;\r
-garrSortChar[35] = 47;\r
-garrSortChar[36] = 48;\r
-garrSortChar[37] = 49;\r
-garrSortChar[38] = 50;\r
-garrSortChar[39] = 33;\r
-garrSortChar[40] = 51;\r
-garrSortChar[41] = 52;\r
-garrSortChar[42] = 53;\r
-garrSortChar[43] = 88;\r
-garrSortChar[44] = 54;\r
-garrSortChar[45] = 34;\r
-garrSortChar[46] = 55;\r
-garrSortChar[47] = 56;\r
-garrSortChar[48] = 115;\r
-garrSortChar[49] = 119;\r
-garrSortChar[50] = 121;\r
-garrSortChar[51] = 123;\r
-garrSortChar[52] = 125;\r
-garrSortChar[53] = 126;\r
-garrSortChar[54] = 127;\r
-garrSortChar[55] = 128;\r
-garrSortChar[56] = 129;\r
-garrSortChar[57] = 130;\r
-garrSortChar[58] = 57;\r
-garrSortChar[59] = 58;\r
-garrSortChar[60] = 89;\r
-garrSortChar[61] = 90;\r
-garrSortChar[62] = 91;\r
-garrSortChar[63] = 59;\r
-garrSortChar[64] = 60;\r
-garrSortChar[65] = 131;\r
-garrSortChar[66] = 148;\r
-garrSortChar[67] = 150;\r
-garrSortChar[68] = 154;\r
-garrSortChar[69] = 158;\r
-garrSortChar[70] = 168;\r
-garrSortChar[71] = 171;\r
-garrSortChar[72] = 173;\r
-garrSortChar[73] = 175;\r
-garrSortChar[74] = 185;\r
-garrSortChar[75] = 187;\r
-garrSortChar[76] = 189;\r
-garrSortChar[77] = 191;\r
-garrSortChar[78] = 193;\r
-garrSortChar[79] = 197;\r
-garrSortChar[80] = 214;\r
-garrSortChar[81] = 216;\r
-garrSortChar[82] = 218;\r
-garrSortChar[83] = 220;\r
-garrSortChar[84] = 225;\r
-garrSortChar[85] = 230;\r
-garrSortChar[86] = 240;\r
-garrSortChar[87] = 242;\r
-garrSortChar[88] = 244;\r
-garrSortChar[89] = 246;\r
-garrSortChar[90] = 252;\r
-garrSortChar[91] = 61;\r
-garrSortChar[92] = 62;\r
-garrSortChar[93] = 63;\r
-garrSortChar[94] = 64;\r
-garrSortChar[95] = 66;\r
-garrSortChar[96] = 67;\r
-garrSortChar[97] = 131;\r
-garrSortChar[98] = 148;\r
-garrSortChar[99] = 150;\r
-garrSortChar[100] = 154;\r
-garrSortChar[101] = 158;\r
-garrSortChar[102] = 168;\r
-garrSortChar[103] = 171;\r
-garrSortChar[104] = 173;\r
-garrSortChar[105] = 175;\r
-garrSortChar[106] = 185;\r
-garrSortChar[107] = 187;\r
-garrSortChar[108] = 189;\r
-garrSortChar[109] = 191;\r
-garrSortChar[110] = 193;\r
-garrSortChar[111] = 197;\r
-garrSortChar[112] = 214;\r
-garrSortChar[113] = 216;\r
-garrSortChar[114] = 218;\r
-garrSortChar[115] = 220;\r
-garrSortChar[116] = 225;\r
-garrSortChar[117] = 230;\r
-garrSortChar[118] = 240;\r
-garrSortChar[119] = 242;\r
-garrSortChar[120] = 244;\r
-garrSortChar[121] = 246;\r
-garrSortChar[122] = 252;\r
-garrSortChar[123] = 68;\r
-garrSortChar[124] = 69;\r
-garrSortChar[125] = 70;\r
-garrSortChar[126] = 71;\r
-garrSortChar[127] = 27;\r
-garrSortChar[128] = 114;\r
-garrSortChar[129] = 28;\r
-garrSortChar[130] = 82;\r
-garrSortChar[131] = 170;\r
-garrSortChar[132] = 85;\r
-garrSortChar[133] = 112;\r
-garrSortChar[134] = 109;\r
-garrSortChar[135] = 110;\r
-garrSortChar[136] = 65;\r
-garrSortChar[137] = 113;\r
-garrSortChar[138] = 223;\r
-garrSortChar[139] = 86;\r
-garrSortChar[140] = 213;\r
-garrSortChar[141] = 29;\r
-garrSortChar[142] = 255;\r
-garrSortChar[143] = 30;\r
-garrSortChar[144] = 31;\r
-garrSortChar[145] = 80;\r
-garrSortChar[146] = 81;\r
-garrSortChar[147] = 83;\r
-garrSortChar[148] = 84;\r
-garrSortChar[149] = 111;\r
-garrSortChar[150] = 36;\r
-garrSortChar[151] = 37;\r
-garrSortChar[152] = 79;\r
-garrSortChar[153] = 229;\r
-garrSortChar[154] = 222;\r
-garrSortChar[155] = 87;\r
-garrSortChar[156] = 212;\r
-garrSortChar[157] = 32;\r
-garrSortChar[158] = 254;\r
-garrSortChar[159] = 251;\r
-garrSortChar[160] = 39;\r
-garrSortChar[161] = 72;\r
-garrSortChar[162] = 97;\r
-garrSortChar[163] = 98;\r
-garrSortChar[164] = 99;\r
-garrSortChar[165] = 100;\r
-garrSortChar[166] = 73;\r
-garrSortChar[167] = 101;\r
-garrSortChar[168] = 74;\r
-garrSortChar[169] = 102;\r
-garrSortChar[170] = 133;\r
-garrSortChar[171] = 93;\r
-garrSortChar[172] = 103;\r
-garrSortChar[173] = 35;\r
-garrSortChar[174] = 104;\r
-garrSortChar[175] = 75;\r
-garrSortChar[176] = 105;\r
-garrSortChar[177] = 92;\r
-garrSortChar[178] = 122;\r
-garrSortChar[179] = 124;\r
-garrSortChar[180] = 76;\r
-garrSortChar[181] = 106;\r
-garrSortChar[182] = 107;\r
-garrSortChar[183] = 108;\r
-garrSortChar[184] = 77;\r
-garrSortChar[185] = 120;\r
-garrSortChar[186] = 199;\r
-garrSortChar[187] = 94;\r
-garrSortChar[188] = 116;\r
-garrSortChar[189] = 117;\r
-garrSortChar[190] = 118;\r
-garrSortChar[191] = 78;\r
-garrSortChar[192] = 131;\r
-garrSortChar[193] = 131;\r
-garrSortChar[194] = 131;\r
-garrSortChar[195] = 131;\r
-garrSortChar[196] = 131;\r
-garrSortChar[197] = 131;\r
-garrSortChar[198] = 131;\r
-garrSortChar[199] = 150;\r
-garrSortChar[200] = 158;\r
-garrSortChar[201] = 158;\r
-garrSortChar[202] = 158;\r
-garrSortChar[203] = 158;\r
-garrSortChar[204] = 175;\r
-garrSortChar[205] = 175;\r
-garrSortChar[206] = 175;\r
-garrSortChar[207] = 175;\r
-garrSortChar[208] = 154;\r
-garrSortChar[209] = 193;\r
-garrSortChar[210] = 197;\r
-garrSortChar[211] = 197;\r
-garrSortChar[212] = 197;\r
-garrSortChar[213] = 197;\r
-garrSortChar[214] = 197;\r
-garrSortChar[215] = 95;\r
-garrSortChar[216] = 197;\r
-garrSortChar[217] = 230;\r
-garrSortChar[218] = 230;\r
-garrSortChar[219] = 230;\r
-garrSortChar[220] = 230;\r
-garrSortChar[221] = 246;\r
-garrSortChar[222] = 227;\r
-garrSortChar[223] = 224;\r
-garrSortChar[224] = 131;\r
-garrSortChar[225] = 131;\r
-garrSortChar[226] = 131;\r
-garrSortChar[227] = 131;\r
-garrSortChar[228] = 131;\r
-garrSortChar[229] = 131;\r
-garrSortChar[230] = 131;\r
-garrSortChar[231] = 150;\r
-garrSortChar[232] = 158;\r
-garrSortChar[233] = 158;\r
-garrSortChar[234] = 158;\r
-garrSortChar[235] = 158;\r
-garrSortChar[236] = 175;\r
-garrSortChar[237] = 175;\r
-garrSortChar[238] = 175;\r
-garrSortChar[239] = 175;\r
-garrSortChar[240] = 154;\r
-garrSortChar[241] = 193;\r
-garrSortChar[242] = 197;\r
-garrSortChar[243] = 197;\r
-garrSortChar[244] = 197;\r
-garrSortChar[245] = 197;\r
-garrSortChar[246] = 197;\r
-garrSortChar[247] = 96;\r
-garrSortChar[248] = 197;\r
-garrSortChar[249] = 230;\r
-garrSortChar[250] = 230;\r
-garrSortChar[251] = 230;\r
-garrSortChar[252] = 230;\r
-garrSortChar[253] = 246;\r
-garrSortChar[254] = 227;\r
-garrSortChar[255] = 250;\r
-\r
-gaFtsStop[0] = "a";\r
-gaFtsStop[1] = "about";\r
-gaFtsStop[2] = "after";\r
-gaFtsStop[3] = "against";\r
-gaFtsStop[4] = "all";\r
-gaFtsStop[5] = "also";\r
-gaFtsStop[6] = "among";\r
-gaFtsStop[7] = "an";\r
-gaFtsStop[8] = "and";\r
-gaFtsStop[9] = "are";\r
-gaFtsStop[10] = "as";\r
-gaFtsStop[11] = "at";\r
-gaFtsStop[12] = "be";\r
-gaFtsStop[13] = "became";\r
-gaFtsStop[14] = "because";\r
-gaFtsStop[15] = "been";\r
-gaFtsStop[16] = "between";\r
-gaFtsStop[17] = "but";\r
-gaFtsStop[18] = "by";\r
-gaFtsStop[19] = "can";\r
-gaFtsStop[20] = "come";\r
-gaFtsStop[21] = "do";\r
-gaFtsStop[22] = "during";\r
-gaFtsStop[23] = "each";\r
-gaFtsStop[24] = "early";\r
-gaFtsStop[25] = "for";\r
-gaFtsStop[26] = "form";\r
-gaFtsStop[27] = "found";\r
-gaFtsStop[28] = "from";\r
-gaFtsStop[29] = "had";\r
-gaFtsStop[30] = "has";\r
-gaFtsStop[31] = "have";\r
-gaFtsStop[32] = "he";\r
-gaFtsStop[33] = "her";\r
-gaFtsStop[34] = "his";\r
-gaFtsStop[35] = "however";\r
-gaFtsStop[36] = "in";\r
-gaFtsStop[37] = "include";\r
-gaFtsStop[38] = "into";\r
-gaFtsStop[39] = "is";\r
-gaFtsStop[40] = "it";\r
-gaFtsStop[41] = "its";\r
-gaFtsStop[42] = "late";\r
-gaFtsStop[43] = "later";\r
-gaFtsStop[44] = "made";\r
-gaFtsStop[45] = "many";\r
-gaFtsStop[46] = "may";\r
-gaFtsStop[47] = "me";\r
-gaFtsStop[48] = "med";\r
-gaFtsStop[49] = "more";\r
-gaFtsStop[50] = "most";\r
-gaFtsStop[51] = "near";\r
-gaFtsStop[52] = "no";\r
-gaFtsStop[53] = "non";\r
-gaFtsStop[54] = "not";\r
-gaFtsStop[55] = "of";\r
-gaFtsStop[56] = "on";\r
-gaFtsStop[57] = "only";\r
-gaFtsStop[58] = "or";\r
-gaFtsStop[59] = "other";\r
-gaFtsStop[60] = "over";\r
-gaFtsStop[61] = "several";\r
-gaFtsStop[62] = "she";\r
-gaFtsStop[63] = "some";\r
-gaFtsStop[64] = "such";\r
-gaFtsStop[65] = "than";\r
-gaFtsStop[66] = "that";\r
-gaFtsStop[67] = "the";\r
-gaFtsStop[68] = "their";\r
-gaFtsStop[69] = "then";\r
-gaFtsStop[70] = "there";\r
-gaFtsStop[71] = "these";\r
-gaFtsStop[72] = "they";\r
-gaFtsStop[73] = "this";\r
-gaFtsStop[74] = "through";\r
-gaFtsStop[75] = "to";\r
-gaFtsStop[76] = "under";\r
-gaFtsStop[77] = "until";\r
-gaFtsStop[78] = "use";\r
-gaFtsStop[79] = "was";\r
-gaFtsStop[80] = "we";\r
-gaFtsStop[81] = "were";\r
-gaFtsStop[82] = "when";\r
-gaFtsStop[83] = "where";\r
-gaFtsStop[84] = "which";\r
-gaFtsStop[85] = "who";\r
-gaFtsStop[86] = "with";\r
-gaFtsStop[87] = "you";\r
-\r
-gaFtsStem[0] = "s";\r
-gaFtsStem[1] = "e";\r
-gaFtsStem[2] = "ed";\r
-gaFtsStem[3] = "es";\r
-gaFtsStem[4] = "er";\r
-gaFtsStem[5] = "ly";\r
-gaFtsStem[6] = "ing";\r
-gaFtsStem[7] = "ingly";\r
-\r
-\r
-// as javascript 1.3 support unicode instead of ISO-Latin-1\r
-// need to transfer come code back to ISO-Latin-1 for compare purpose\r
-// Note: Different Language(Code page) maybe need different array:\r
-var gaUToC=new Array();\r
-gaUToC[8364]=128;\r
-gaUToC[8218]=130;\r
-gaUToC[402]=131;\r
-gaUToC[8222]=132;\r
-gaUToC[8230]=133;\r
-gaUToC[8224]=134;\r
-gaUToC[8225]=135;\r
-gaUToC[710]=136;\r
-gaUToC[8240]=137;\r
-gaUToC[352]=138;\r
-gaUToC[8249]=139;\r
-gaUToC[338]=140;\r
-gaUToC[381]=142;\r
-gaUToC[8216]=145;\r
-gaUToC[8217]=146;\r
-gaUToC[8220]=147;\r
-gaUToC[8221]=148;\r
-gaUToC[8226]=149;\r
-gaUToC[8211]=150;\r
-gaUToC[8212]=151;\r
-gaUToC[732]=152;\r
-gaUToC[8482]=153;\r
-gaUToC[353]=154;\r
-gaUToC[8250]=155;\r
-gaUToC[339]=156;\r
-gaUToC[382]=158;\r
-gaUToC[376]=159;\r
-\r
-var gsBiggestChar="";\r
-function getBiggestChar()\r
-{\r
-       if(gsBiggestChar.length==0)\r
-       {\r
-               if(garrSortChar.length<256)\r
-                       gsBiggestChar=String.fromCharCode(255);\r
-               else\r
-               {\r
-                       var nBiggest=0;\r
-                       var nBigChar=0;\r
-                       for(var i=0;i<=255;i++)\r
-                       {\r
-                               if(garrSortChar[i]>nBiggest)\r
-                               {\r
-                                       nBiggest=garrSortChar[i];\r
-                                       nBigChar=i;\r
-                               }\r
-                       }\r
-                       gsBiggestChar=String.fromCharCode(nBigChar);\r
-               }\r
-\r
-       }       \r
-       return gsBiggestChar;\r
-}\r
-\r
-function getCharCode(str,i)\r
-{\r
-       var code=str.charCodeAt(i)\r
-       if(code>256)\r
-       {\r
-               code=gaUToC[code];\r
-       }\r
-       return code;\r
-}\r
-\r
-function compare(strText1,strText2)\r
-{\r
-       if(garrSortChar.length<256)\r
-       {\r
-               var strt1=strText1.toLowerCase();\r
-               var strt2=strText2.toLowerCase();\r
-               if(strt1<strt2) return -1;\r
-               if(strt1>strt2) return 1;\r
-               return 0;\r
-       }\r
-       else\r
-       {\r
-               for(var i=0;i<strText1.length&&i<strText2.length;i++)\r
-               {\r
-                       if(garrSortChar[getCharCode(strText1,i)]<garrSortChar[getCharCode(strText2,i)]) return -1;\r
-                       if(garrSortChar[getCharCode(strText1,i)]>garrSortChar[getCharCode(strText2,i)]) return 1;\r
-               }\r
-               if(strText1.length<strText2.length) return -1;\r
-               if(strText1.length>strText2.length) return 1;\r
-               return 0;\r
-       }\r
-}\r
-gbWhLang=true;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whmozemu.js b/doc/salome/gui/SMESH/whmozemu.js
deleted file mode 100755 (executable)
index 699779f..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-if (! window.gbIE4 && window.gbNav6 && !document.childNodes[0].insertAdjacentHTML){\r
-\r
-HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode)\r
-{\r
-       switch (where){\r
-       case 'beforeBegin':\r
-               this.parentNode.insertBefore(parsedNode,this)\r
-               break;\r
-       case 'afterBegin':\r
-               this.insertBefore(parsedNode,this.firstChild);\r
-               break;\r
-       case 'beforeEnd':\r
-               this.appendChild(parsedNode);\r
-               break;\r
-       case 'afterEnd':\r
-               if (this.nextSibling){\r
-               this.parentNode.insertBefore\r
-(parsedNode,this.nextSibling);\r
-               } else {\r
-               this.parentNode.appendChild(parsedNode)\r
-               }\r
-               break;\r
-       }\r
-}\r
-\r
-HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr){\r
-\r
-       var r = this.ownerDocument.createRange();\r
-       r.setStartBefore(this);\r
-       var parsedHTML = r.createContextualFragment(htmlStr);\r
-       this.insertAdjacentElement(where,parsedHTML)\r
-}\r
-\r
-\r
-HTMLElement.prototype.insertAdjacentText = function(where,txtStr){\r
-\r
-       var parsedText = document.createTextNode(txtStr)\r
-       this.insertAdjacentElement(where,parsedText)\r
-}\r
-}\r
-\r
-function testScroll() {\r
-       // Initialize scrollbar cache if necessary\r
-       if (window._pageXOffset==null) {\r
-               window._pageXOffset = window.pageXOffset\r
-               window._pageYOffset = window.pageYOffset\r
-       }\r
-       // Expose Internet Explorer compatible object model\r
-       document.body.scrollTop = window.pageYOffset\r
-       document.body.scrollLeft = window.pageXOffset\r
-       window.document.body.scrollHeight = document.height\r
-       window.document.body.scrollWidth = document.width\r
-       window.document.body.clientWidth = window.innerWidth;\r
-       window.document.body.clientHeight = window.innerHeight;\r
-\r
-       // If cache!=current values, call the onscroll event\r
-       if (((window.pageXOffset!=window._pageXOffset) || \r
-                       (window.pageYOffset!=window._pageYOffset)) && (window.onscroll)) \r
-               window.onscroll()\r
-       // Cache new values\r
-       window._pageXOffset = window.pageXOffset\r
-       window._pageYOffset = window.pageYOffset\r
-       }\r
-\r
-// Create compatibility layer for Netscape\r
-if (window.gbNav6) {\r
-       setInterval("testScroll()",50)\r
-}
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whmsg.js b/doc/salome/gui/SMESH/whmsg.js
deleted file mode 100755 (executable)
index e08cc08..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-var WH_MSG_RESIZEPANE          =0x0100;\r
-var WH_MSG_SHOWPANE                    =0x0101;\r
-var WH_MSG_HIDEPANE                    =0x0102;\r
-var WH_MSG_SYNCTOC                     =0x0103;\r
-var WH_MSG_NEXT                                =0x0104;\r
-var WH_MSG_PREV                                =0x0105;\r
-var WH_MSG_ENABLEPREV          =0x0106;\r
-var WH_MSG_ENABLESYNC          =0x0107;\r
-var WH_MSG_ENABLEWEBSEARCH     =0x0108;\r
-\r
-var WH_MSG_ISPANEVISIBLE       =0x0109;\r
-var WH_MSG_PANESTATUE          =0x010a;\r
-\r
-var    WH_MSG_SYNCINFO                 =0x010b;\r
-var WH_MSG_PANEINFO                    =0x010c;\r
-var WH_MSG_WEBSEARCH           =0x010d;\r
-\r
-var WH_MSG_SEARCHINDEXKEY      =0x0201;\r
-\r
-var WH_MSG_SEARCHFTSKEY        =0x020a;\r
-\r
-var WH_MSG_PROJECTREADY                =0x0301;\r
-var WH_MSG_GETPROJINFO                 =0x0302;\r
-\r
-var WH_MSG_SHOWTOC                     =0x0401;\r
-var WH_MSG_SHOWIDX                     =0x0402;\r
-var WH_MSG_SHOWFTS                     =0x0403;\r
-var WH_MSG_SHOWGLO                     =0x0404;\r
-\r
-var WH_MSG_SHOWGLODEF          =0x0500;\r
-\r
-var WH_MSG_GETTOCPATHS                 =0x0600;\r
-var WH_MSG_GETAVIAVENUES       =0x0601;\r
-var WH_MSG_GETCURRENTAVENUE =0x0602;\r
-var WH_MSG_GETPANEINFO         =0x0603;\r
-var WH_MSG_AVENUEINFO          =0x0604;\r
-\r
-var WH_MSG_GETSTARTFRAME       =0x0701;\r
-var WH_MSG_GETDEFAULTTOPIC     =0x0702;\r
-\r
-var WH_MSG_SEARCHTHIS          =0x0801;\r
-var WH_MSG_GETSEARCHS          =0x0802;\r
-\r
-var WH_MSG_ISINFRAMESET                =0x0900;\r
-\r
-var WH_MSG_TOOLBARORDER                =0x0a00;\r
-var WH_MSG_MINIBARORDER                =0x0a01;\r
-var WH_MSG_ISSYNCSSUPPORT      =0x0a02;\r
-var WH_MSG_ISSEARCHSUPPORT     =0x0a03;\r
-var WH_MSG_GETPANETYPE         =0x0a04;\r
-var WH_MSG_BACKUPSEARCH                =0x0a05;\r
-var WH_MSG_GETPANES                    =0x0a06;\r
-var WH_MSG_INITSEARCHSTRING =0x0a07;\r
-var WH_MSG_RELOADNS6           =0x0a08;\r
-var WH_MSG_ISAVENUESUPPORT     =0x0a09;\r
-\r
-function whMessage(nMessageId,wSender,nVersion,oParam)\r
-{\r
-       this.nMessageId=nMessageId;\r
-       this.wSender=wSender;\r
-       this.nVersion=nVersion;\r
-       this.oParam=oParam;\r
-}\r
-var gbWhMsg=true;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whnjs.htm b/doc/salome/gui/SMESH/whnjs.htm
deleted file mode 100755 (executable)
index ccf9b79..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<html>\r
-<head>\r
-<title>SMESH reference manual</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whstub.js"></script>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whstart.js"></script>\r
-</head>\r
-\r
-<frameset id="whPfset" cols="260,*"><noframes><p>Your browser does not support frames. We recommend that you update your browser to a version that supports frames.</p><p>To view the Help system without frames click on this<a href="whgdata/whnvp30.htm">hyperlink.</a></p></noframes><frame src="whgdata/whnvp30.htm" title="navigation pane" name="navigation pane" scrolling="no"><frame src="files/introduction_to_smesh.htm" title="topic pane" name="bsscright" scrolling="yes"></frameset>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whphost.js b/doc/salome/gui/SMESH/whphost.js
deleted file mode 100755 (executable)
index d4c80bb..0000000
+++ /dev/null
@@ -1,526 +0,0 @@
-var gaProj=new Array();\r
-var gnChecked=0;\r
-var gsProjName="";\r
-var gbReady=false;\r
-var goMan=null;\r
-var gbXML=false;\r
-var gsFirstPane="";\r
-var gServerEnabled=false;\r
-var gsPath="";\r
-var gbWhPHost=false;\r
-var goDiv = null;\r
-var gsHTML = "";\r
-\r
-if (navigator.currentNavPen)\r
-       gsFirstPane = navigator.currentNavPen;\r
-\r
-\r
-function delayLoad()\r
-{\r
-       if (goDiv&&gsHTML)\r
-       {\r
-               goDiv.innerHTML=gsHTML;\r
-               goDiv=null;\r
-               gsHTML="";\r
-       }\r
-}\r
-\r
-function whCom(sName,sComFile)\r
-{\r
-       this.msName=sName;\r
-       this.msDivId=sName+"Div";\r
-       this.msIFrameId=sName+"IFrame";\r
-       this.msComFile=sComFile;\r
-       this.mbloaded=false;\r
-       this.mbShow=false;\r
-       this.show=function(bShow)\r
-       {\r
-               if(this.mbShow!=bShow)\r
-               {\r
-                       if(bShow&&!this.mbloaded)\r
-                       {\r
-                               this.load();\r
-                       }\r
-\r
-                       var oDiv=getElement(this.msDivId);\r
-                       if(oDiv)\r
-                       {\r
-                               if(gbIE55||(gbIE5&&gbMac))\r
-                               {\r
-                                       var oIframe=getElement(this.msIFrameId);\r
-                                       if(oIframe)\r
-                                       {\r
-                                               if(bShow)\r
-                                               {\r
-                                                       oDiv.style.zIndex=3;\r
-                                                       if(oIframe!=null)\r
-                                                       {\r
-                                                               oIframe.style.zIndex=3;\r
-                                                               if (!gbIE55)\r
-                                                                       oIframe.style.visibility="visible";\r
-                                                       }\r
-                                               }\r
-                                               else\r
-                                               {\r
-                                                       oDiv.style.zIndex=2;\r
-                                                       if(oIframe!=null)\r
-                                                       {\r
-                                                               oIframe.style.zIndex=2;\r
-                                                               if (!gbIE55)\r
-                                                                       oIframe.style.visibility="hidden";\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                               }\r
-                               if (!gbIE55)\r
-                                       oDiv.style.visibility=(bShow==true)?'visible':'hidden';\r
-                               this.mbShow=bShow;\r
-                       }\r
-\r
-               }\r
-       }\r
-       this.load=function()\r
-       {\r
-               if(!this.mbloaded)\r
-               {\r
-                       if(this.msComFile.length>0){\r
-                               var strFile= _getFullPath(getPath(), this.msComFile);\r
-                               var oDiv=getElement(this.msDivId);\r
-                               if(oDiv){\r
-                                       if(gbIE4){\r
-                                               var nIFrameHeight=oDiv.style.pixelHeight;\r
-                                               var nIFrameWidth=oDiv.style.pixelWidth;\r
-                                               var sHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:";\r
-                                               if(gbMac){\r
-                                                       sHTML+=nIFrameWidth+"px;height:"+nIFrameHeight+"px;\"></IFRAME>";\r
-                                               }else{\r
-                                                       sHTML+="100%; height:100%;\"></IFRAME>";\r
-                                               }\r
-                                               oDiv.innerHTML=sHTML;\r
-                                       }else if(gbNav6){\r
-                                               gsHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:100%;border:0;height:";\r
-                                               gsHTML+="100%;\"></IFRAME>";\r
-                                               goDiv = oDiv;\r
-                                               setTimeout("delayLoad()", 100);\r
-                                       }\r
-                                       this.mbloaded=true;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-       this.unload=function()\r
-       {\r
-               var oDiv=getElement(this.msDivId);\r
-               if(oDiv)\r
-                       oDiv.innerHTML="";\r
-       }\r
-       this.getDivHTML=function()\r
-       {\r
-               var sHTML="";\r
-               if(gbMac&&gbIE4)\r
-                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;margin:0;padding:0;border:0;\">";\r
-               else\r
-                       if (gbIE5)\r
-                               sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;\">";\r
-                       else\r
-                               sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;visibility:hidden\">";\r
-               sHTML+="</DIV>";\r
-               return sHTML;\r
-       }\r
-}  \r
-\r
-function whComMan()\r
-{\r
-       this.sName="";\r
-       this.maCom=new Array();\r
-       this.addCom=function(sName,sComFile)\r
-       {\r
-               var owhCom=new whCom(sName,sComFile);\r
-               this.maCom[this.maCom.length]=owhCom;\r
-       }\r
-       this.init=function()\r
-       {\r
-               var sHTML="";\r
-               for(var i=0;i<this.maCom.length;i++)\r
-               {\r
-                       sHTML+=this.maCom[i].getDivHTML();\r
-               }\r
-               document.body.insertAdjacentHTML("beforeEnd",sHTML);\r
-\r
-       }\r
-       this.showById=function(nId)\r
-       {\r
-               for(var s=0;s<this.maCom.length;s++)\r
-               {\r
-                       if(s!==nId)\r
-                               this.maCom[s].show(false);\r
-               }\r
-               this.maCom[nId].show(true);\r
-       }\r
-       this.show=function(sName)\r
-       {\r
-               navigator.currentNavPen = sName;\r
-               var bFound=false;\r
-               for(var i=0;i<this.maCom.length;i++)\r
-               {\r
-                       if(sName==this.maCom[i].msName)\r
-                       {\r
-                               bFound=true;\r
-                               break;\r
-                       }\r
-               }\r
-               if(bFound)\r
-               {\r
-                       this.showById(i);\r
-                       this.sName=sName;\r
-               }\r
-       }\r
-       this.unload=function()\r
-       {\r
-               for(var i=0;i<this.maCom.length;i++)\r
-               {\r
-                       this.maCom[i].unload();\r
-               }               \r
-       }\r
-       this.getCurrent=function()\r
-       {\r
-               return this.sName;\r
-       }\r
-}\r
-\r
-function getPath()\r
-{\r
-       if(gsPath=="")\r
-       {\r
-               gsPath=location.href;\r
-               gsPath=_replaceSlash(gsPath);\r
-               var nPosFile=gsPath.lastIndexOf("/");\r
-               gsPath=gsPath.substring(0,nPosFile+1);\r
-       }\r
-       return gsPath;\r
-}\r
-\r
-goMan=new whComMan();\r
-function addPane(sName,sFileName)\r
-{\r
-       goMan.addCom(sName,sFileName);  \r
-}\r
-\r
-function setShowPane(sName, bForce)\r
-{\r
-       if ((gsFirstPane == "") || bForce)\r
-               gsFirstPane=sName;\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if(gsProjName!="")\r
-       {\r
-               goMan.init();\r
-               if(gsFirstPane!="")\r
-                       goMan.show(gsFirstPane);\r
-               else\r
-                       goMan.showById(0);\r
-               loadData2(gsProjName);\r
-       }\r
-       else if (gServerEnabled)\r
-       {\r
-               goMan.init();\r
-               if(gsFirstPane!="")\r
-                       goMan.show(gsFirstPane);\r
-               else\r
-                       goMan.showById(0);\r
-       }\r
-}\r
-\r
-function setServerEnabled()\r
-{\r
-       gServerEnabled = true;\r
-}\r
-\r
-function loadData2(strFile)\r
-{\r
-       if(gbXML)\r
-               loadDataXML(strFile);\r
-       else\r
-               loadData(strFile);\r
-}\r
-\r
-function addProject(bPreferXML,sXMLName,sHTMLName)\r
-{\r
-       var bLoadXML=bPreferXML;\r
-       if(!gbIE4&&!gbNav6)\r
-               return;\r
-       if(gbIE4&&!gbIE5)\r
-               bLoadXML=false;\r
-       if (gbIE5&&!gbMac)\r
-               bLoadXML=true;\r
-       if(gbIE55||gbNav6)\r
-               bLoadXML=true;\r
-       if(bLoadXML)\r
-               addProjectXML(sXMLName);\r
-       else\r
-               addProjectHTML(sHTMLName);\r
-}\r
-\r
-function addProjectHTML(sName)\r
-{\r
-       gbXML=false;\r
-       gsProjName=sName;\r
-}\r
-\r
-function addProjectXML(sName)\r
-{\r
-       gbXML=true;\r
-       gsProjName=sName;\r
-}\r
-\r
-function window_MyBunload()\r
-{\r
-       goMan.unload();\r
-       window_BUnload();\r
-}\r
-\r
-function putDataXML(xmlDoc,sdocPath)\r
-{\r
-       if(xmlDoc!=null)\r
-       {\r
-               var projectNode=xmlDoc.getElementsByTagName("project")[0];\r
-               if(projectNode)\r
-               {\r
-                       var aRProj=new Array();\r
-                       aRProj[0]=new Object();\r
-                       aRProj[0].sPPath=_getPath(sdocPath);\r
-                       var sLangId=projectNode.getAttribute("langid");\r
-                       if(sLangId)\r
-                       {\r
-                               aRProj[0].sLangId=sLangId;\r
-                       }\r
-                       var sDPath=projectNode.getAttribute("datapath");\r
-                       if(sDPath)\r
-                       {\r
-                               if(sDPath.lastIndexOf("/")!=sDPath.length-1)\r
-                                       sDPath+="/";\r
-                               aRProj[0].sDPath=sDPath;\r
-                       }\r
-                       else\r
-                               aRProj[0].sDPath="";\r
-                       aRProj[0].sToc=projectNode.getAttribute("toc");\r
-                       aRProj[0].sIdx=projectNode.getAttribute("index");\r
-                       aRProj[0].sFts=projectNode.getAttribute("fts");\r
-                       aRProj[0].sGlo=projectNode.getAttribute("glossary");\r
-                       var RmtProject=projectNode.getElementsByTagName("remote");\r
-                       var nCount=1;\r
-                       for (var i=0;i<RmtProject.length;i++)\r
-                       {\r
-                               var sURL=RmtProject[i].getAttribute("url");\r
-                               if(sURL)\r
-                               {\r
-                                       aRProj[nCount]=new Object();\r
-                                       aRProj[nCount++].sPPath=_getFullPath(aRProj[0].sPPath,sURL);\r
-                               }\r
-                       }\r
-                       putProjectInfo(aRProj);\r
-               }\r
-               else\r
-               {\r
-                       // on Netscape 6.0 under some situation the xml file cannot be loaded.\r
-                       // so we use pure html instead.\r
-                       setTimeout("redirectToList();",100);\r
-               }\r
-       }\r
-}\r
-\r
-function redirectToList()\r
-{\r
-       if(gbReDirectThis)\r
-               document.location=gsNavReDirect;\r
-       else\r
-               parent.document.location=gsNavReDirect;\r
-}\r
-\r
-function putProjectInfo(aRProj)\r
-{\r
-       if(gnChecked==0||isSamePath(gaProj[gnChecked].sPPath,aRProj[0].sPPath))\r
-       {\r
-               if(gnChecked!=0)\r
-               {\r
-                       if(aRProj[0].sLangId!=gaProj[0].sLangId)\r
-                               alert("The project: "+aRProj[0].sPPath+" is using a different language to the main project, which will cause the index and full text search functionality to be disabled for this remote project.");\r
-               }\r
-               gaProj[gnChecked]=aRProj[0];\r
-               for(var i=1;i<aRProj.length;i++)\r
-               {\r
-                       var bFound=false;\r
-                       for(var j=0;j<gaProj.length;j++)\r
-                       {\r
-                               if(isSamePath(gaProj[j].sPPath,aRProj[i].sPPath))\r
-                               {\r
-                                       bFound=true;\r
-                                       break;\r
-                               }\r
-                       }\r
-                       if(!bFound)\r
-                       {\r
-                               gaProj[gaProj.length]=aRProj[i];\r
-                       }\r
-               }\r
-               gnChecked++;\r
-               checkRemoteProject();\r
-       }\r
-       else\r
-               alert("Could not load correctly, please click Refresh.");\r
-}\r
-\r
-function isSamePath(sPath1,sPath2)\r
-{\r
-       return (sPath1.toLowerCase()==sPath2.toLowerCase());\r
-}\r
-\r
-function checkRemoteProject()\r
-{\r
-       if(gaProj.length!=gnChecked)\r
-       {\r
-               setTimeout("cancelProj("+gnChecked+");",10000);\r
-               loadData2(gaProj[gnChecked].sPPath+gsProjName);\r
-       }\r
-       else{\r
-               var oMsg=new whMessage(WH_MSG_PROJECTREADY,this,1,null);\r
-               gbReady=true;\r
-               SendMessage(oMsg);\r
-       }\r
-}\r
-\r
-function cancelProj(i)\r
-{\r
-       if(i==gnChecked)\r
-       {\r
-               alert("Can't load project::"+gaProj[i].sPPath);\r
-               gnChecked++;\r
-               checkRemoteProject();\r
-       }       \r
-}\r
-\r
-function window_resize()\r
-{\r
-       for(var i=0;i<goMan.maCom.length;i++)\r
-       {\r
-               var oFrame=getElement(goMan.maCom[i].msIFrameId);\r
-               if(oFrame)\r
-               {\r
-                       oFrame.style.height=document.body.clientHeight;\r
-                       oFrame.style.width=document.body.clientWidth;\r
-               }\r
-       }\r
-       window_resize2();\r
-}\r
-\r
-function window_resize2()\r
-{\r
-       if(document.body)\r
-       {\r
-               if(document.body.clientWidth > 1 && document.body.clientHeight>1)\r
-               {\r
-                       var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);\r
-                       SendMessage(oMsg);\r
-               }\r
-       }\r
-}\r
-\r
-function window_unload()\r
-{\r
-       UnRegisterListener2(this,WH_MSG_GETPROJINFO);\r
-       UnRegisterListener2(this,WH_MSG_SHOWTOC);\r
-       UnRegisterListener2(this,WH_MSG_SHOWIDX);\r
-       UnRegisterListener2(this,WH_MSG_SHOWFTS);\r
-       UnRegisterListener2(this,WH_MSG_SHOWGLO);\r
-       UnRegisterListener2(this,WH_MSG_GETPANEINFO);\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       if(oMsg)\r
-       {\r
-               var nMsgId=oMsg.nMessageId;\r
-               if(nMsgId==WH_MSG_GETPROJINFO)\r
-               {\r
-                       if(gbReady)\r
-                       {\r
-                               var oProj=new Object();\r
-                               oProj.aProj=gaProj;\r
-                               oProj.bXML=gbXML;\r
-                               oMsg.oParam=oProj;\r
-                       }\r
-                       else\r
-                               return false;\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWTOC)\r
-               {\r
-                       if(goMan)\r
-                               goMan.show("toc");\r
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");\r
-                       SendMessage(onMsg);\r
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWIDX)\r
-               {\r
-                       if(goMan)\r
-                               goMan.show("idx");\r
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");\r
-                       SendMessage(onMsg);\r
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWFTS)\r
-               {\r
-                       if(goMan)\r
-                               goMan.show("fts");\r
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");\r
-                       SendMessage(onMsg);\r
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWGLO)\r
-               {\r
-                       if(goMan)\r
-                               goMan.show("glo");\r
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");\r
-                       SendMessage(onMsg);\r
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_GETPANEINFO)\r
-               {\r
-                       oMsg.oParam=goMan.getCurrent();\r
-                       return false;\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
-{\r
-       RegisterListener2(this,WH_MSG_GETPROJINFO);\r
-       RegisterListener2(this,WH_MSG_SHOWTOC);\r
-       RegisterListener2(this,WH_MSG_SHOWIDX);\r
-       RegisterListener2(this,WH_MSG_SHOWFTS);\r
-       RegisterListener2(this,WH_MSG_SHOWGLO);\r
-       RegisterListener2(this,WH_MSG_GETPANEINFO);\r
-\r
-       if((gbMac&&gbIE4)||(gbSunOS&&gbIE5))\r
-       {\r
-               window.onresize=window_resize;\r
-       }\r
-       else if(gbIE4)\r
-       {\r
-               window.onresize=window_resize2;\r
-       }\r
-       window.onload=window_OnLoad;\r
-       window.onbeforeunload=window_MyBunload;\r
-       window.onunload=window_unload;\r
-       gbWhPHost=true;\r
-}\r
-else\r
-       document.location.reload();\r
-\r
diff --git a/doc/salome/gui/SMESH/whproj.htm b/doc/salome/gui/SMESH/whproj.htm
deleted file mode 100755 (executable)
index 455bec7..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<html>\r
-<head>\r
-<title>project description</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-</head>\r
-<body>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whproj.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-  setLangId("1033");\r
-  setDataPath("whdata");\r
-  addToc("whtoc.htm");\r
-\r
-  addFts("whfts.htm");\r
-  addGlo("whglo.htm");\r
-\r
-//-->\r
-</script>\r
-</body>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whproj.js b/doc/salome/gui/SMESH/whproj.js
deleted file mode 100755 (executable)
index 0e23515..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-var gaProj=new Array();\r
-\r
-gaProj[0]=new project("");\r
-\r
-function setLangId(sLangId)\r
-{\r
-       gaProj[0].sLangId=sLangId;\r
-}\r
-\r
-function setDataPath(sPath)\r
-{\r
-       if(sPath.length!=0)\r
-       {\r
-               if(sPath.lastIndexOf("/")!=sPath.length-1)\r
-                       sPath+="/";\r
-               gaProj[0].sDPath=sPath; \r
-       }\r
-       else\r
-               gaProj[0].sDPath="";\r
-}\r
-\r
-function addToc(sFile)\r
-{\r
-       gaProj[0].sToc=sFile;\r
-}\r
-\r
-function addIdx(sFile)\r
-{\r
-       gaProj[0].sIdx=sFile;\r
-}\r
-\r
-function addFts(sFile)\r
-{\r
-       gaProj[0].sFts=sFile;\r
-}\r
-\r
-function addGlo(sFile)\r
-{\r
-       gaProj[0].sGlo=sFile;\r
-}\r
-\r
-function addRemoteProject(sProjRelPath)\r
-{\r
-       gaProj[gaProj.length]=new project(sProjRelPath);\r
-}\r
-\r
-function project(sPPath)\r
-{\r
-       this.sPPath=sPPath;\r
-       this.sLangId="";\r
-       this.sDPath="";\r
-       this.sToc="";\r
-       this.sIdx="";\r
-       this.sFts="";\r
-       this.sGlo="";\r
-}\r
-\r
-window.onload=window_OnLoad;\r
-\r
-function window_OnLoad()\r
-{\r
-       gsName=document.location.href;\r
-       gsName=_replaceSlash(gsName);\r
-       var nPos=gsName.lastIndexOf("/");\r
-       if(nPos!=-1)\r
-               gaProj[0].sPPath=gsName.substring(0,nPos+1);\r
-       else\r
-               alert("Error in Loading navigation component. Please regenerate WebHelp.");\r
-       patchPath(gaProj);\r
-       if(parent&&parent!=this&& typeof(parent.putProjectInfo)=="function")\r
-       {\r
-               parent.putProjectInfo(gaProj);\r
-       }\r
-}\r
-\r
-function patchPath(aProj)\r
-{\r
-       for(var i=1;i<aProj.length;i++)\r
-       {\r
-               aProj[i].sPPath=_getFullPath(gaProj[0].sPPath,aProj[i].sPPath);\r
-       }\r
-}
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whproj.xml b/doc/salome/gui/SMESH/whproj.xml
deleted file mode 100755 (executable)
index d16f189..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>\r
-<project langid="1033" datapath="whdata" toc="whtoc.xml" fts="whfts.xml" glossary="whglo.xml" >\r
-</project>\r
diff --git a/doc/salome/gui/SMESH/whproxy.js b/doc/salome/gui/SMESH/whproxy.js
deleted file mode 100755 (executable)
index 222927a..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-var gbInited=false;\r
-var gWndStubPage=null;\r
-function getStubPage()\r
-{\r
-       if(!gbInited)\r
-       {\r
-               gWndStubPage=getStubPage_inter(window);\r
-               gbInited=true;\r
-       }\r
-       return gWndStubPage;\r
-}\r
-\r
-function getStubPage_inter(wCurrent)\r
-{\r
-       if(null==wCurrent.parent||wCurrent.parent==wCurrent)\r
-               return null;\r
-\r
-       if(typeof(wCurrent.parent.whname)=="string"&&"wh_stub"==wCurrent.parent.whname)\r
-               return wCurrent.parent;\r
-       else\r
-               if(wCurrent.parent.frames.length!=0&&wCurrent.parent!=wCurrent)\r
-                       return getStubPage_inter(wCurrent.parent);\r
-               else\r
-                       return null;\r
-}\r
-\r
-function RegisterListener(framename,nMessageId)\r
-{\r
-       var wSP=getStubPage();\r
-       if(wSP&&wSP!=this)\r
-               return wSP.RegisterListener(framename,nMessageId);\r
-       else\r
-               return false;\r
-}\r
-\r
-function RegisterListener2(oframe,nMessageId)\r
-{\r
-       var wSP=getStubPage();\r
-       if(wSP&&wSP!=this)\r
-               return wSP.RegisterListener2(oframe,nMessageId);\r
-       else\r
-               return false;\r
-}\r
-\r
-function UnRegisterListener2(oframe,nMessageId)\r
-{\r
-       var wSP=getStubPage();\r
-       if(wSP&&wSP!=this&&wSP.UnRegisterListener2)\r
-               return wSP.UnRegisterListener2(oframe,nMessageId);\r
-       else\r
-               return false;\r
-}\r
-\r
-function SendMessage(oMessage)\r
-{\r
-       var wSP=getStubPage();\r
-       if(wSP&&wSP!=this&&wSP.SendMessage)\r
-               return wSP.SendMessage(oMessage);\r
-       else\r
-               return false;\r
-}\r
-\r
-var gbWhProxy=true;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whres.xml b/doc/salome/gui/SMESH/whres.xml
deleted file mode 100755 (executable)
index 9634684..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>\r
-<resource>\r
-<item name="Prev" value="&lt;&lt;" />\r
-<item name="Hide" value="Hide" />\r
-<item name="SyncTocTooltip" value="Sync TOC" />\r
-<item name="InTopicSearchBtnText" value="Go" />\r
-<item name="FtsInputPrompt" value="Type in the word(s) to search for:" />\r
-<item name="Done" value="Done" />\r
-<item name="JS_alert_cantLoadProject" value="Can't load project:" />\r
-<item name="Next" value="&gt;&gt;" />\r
-<item name="SyncToc" value="SyncToc" />\r
-<item name="ToolBarSearchBtnText" value="Go" />\r
-<item name="SuggestViewNoFrameMessage" value="To view the Help system without frames click on this" />\r
-<item name="Hide_Navigation_Component" value="Hide Navigation Component" />\r
-<item name="FtsBtnText" value="Go" />\r
-<item name="TopicsFound" value="Topics Found" />\r
-<item name="LoadingContentsData" value="Loading, click here to cancel..." />\r
-<item name="Definition" value="Definition:" />\r
-<item name="CompletingContents" value="Completing Contents..." />\r
-<item name="Seperate" value="|" />\r
-<item name="Contents" value="Contents" />\r
-<item name="Disabled Prev" value="&lt;&lt;" />\r
-<item name="Glossary" value="Glossary" />\r
-<item name="Search" value="Search" />\r
-<item name="CantSearch" value="Cannot search for that phrase." />\r
-<item name="LoadingIndex" value="Loading Index..." />\r
-<item name="LoadingData" value="Loading data, please wait..." />\r
-<item name="Show_Navigation_Component" value="Show Navigation Component" />\r
-<item name="Book" value="Book" />\r
-<item name="Disabled Next" value="&gt;&gt;" />\r
-<item name="Find" value="Find" />\r
-<item name="CantOpenURLorFile" value="Can't open URL or file" />\r
-<item name="Blank_topic_text" value="This topic was created by WinHelp Project Conversion Wizard, and is the destination of a missing topic or broken hyperlink." />\r
-<item name="BrowserLimitedMessage" value="Your browser does not support frames. We recommend that you update your browser to a version that supports frames." />\r
-<item name="LoadingTOCItem" value="Loading Table of Contents:" />\r
-<item name="Display" value="Display" />\r
-<item name="Cancel" value="Cancel" />\r
-<item name="SearchLabel" value="Search" />\r
-<item name="RelateTopicListPrompt" value="Click a topic, then click Display." />\r
-<item name="NextTooltip" value="Next Topic" />\r
-<item name="JS_alert_colorlimitation" value="WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors." />\r
-<item name="TopicsNotFound" value="No Topics Found." />\r
-<item name="Show" value="Show" />\r
-<item name="PreTooltip" value="Previous Topic" />\r
-<item name="SearchPrompt" value="- Search -" />\r
-<item name="IndexBtnText" value="Go" />\r
-<item name="JS_alert_ProjectLoadingFail" value="Could not load correctly, please click Refresh." />\r
-<item name="LoadingContents" value="Loading contents, please wait..." />\r
-<item name="Term" value="Term:" />\r
-<item name="WebSearchButton" value="WebSearch" />\r
-<item name="Remote_Page" value="Remote Page" />\r
-<item name="WebSearch" value="WebSearch" />\r
-<item name="LoadingFTS" value="Reading Search Data..." />\r
-<item name="Index" value="Index" />\r
-<item name="JS_alert_ErrorInLoading" value="Error in Loading navigation component. Please regenerate WebHelp." />\r
-<item name="JS_alert_appletNotLoad" value="Unable to load applet. If you are using an old version of Netscape, the prefs.js file needs to be edited." />\r
-<item name="IndexInputPrompt" value="Type in the keyword to find:" />\r
-<item name="Page" value="Page" />\r
-<item name="SuggestViewNoFrameMsg2" value="hyperlink." />\r
-<item name="Searching" value="Searching..." />\r
-\r
-  <item name="English"   value="" />\r
-  <item name="langorder" value="0,1,2,3,4,5,6,7,8,40,41,42,43,44,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,38,45,46,47,48,49,50,33,51,52,53,88,54,34,55,56,115,119,121,123,125,126,127,128,129,130,57,58,89,90,91,59,60,131,148,150,154,158,168,171,173,175,185,187,189,191,193,197,214,216,218,220,225,230,240,242,244,246,252,61,62,63,64,66,67,131,148,150,154,158,168,171,173,175,185,187,189,191,193,197,214,216,218,220,225,230,240,242,244,246,252,68,69,70,71,27,114,28,82,170,85,112,109,110,65,113,223,86,213,29,255,30,31,80,81,83,84,111,36,37,79,229,222,87,212,32,254,251,39,72,97,98,99,100,73,101,74,102,133,93,103,35,104,75,105,92,122,124,76,106,107,108,77,120,199,94,116,117,118,78,131,131,131,131,131,131,131,150,158,158,158,158,175,175,175,175,154,193,197,197,197,197,197,95,197,230,230,230,230,246,227,224,131,131,131,131,131,131,131,150,158,158,158,158,175,175,175,175,154,193,197,197,197,197,197,96,197,230,230,230,230,246,227,250," />\r
-\r
-  <panes show="0">\r
-    <toc />\r
-    <fts />\r
-    <glossary />\r
-  </panes>\r
-\r
-  <stopwords>\r
-    <word name="a" />\r
-    <word name="about" />\r
-    <word name="after" />\r
-    <word name="against" />\r
-    <word name="all" />\r
-    <word name="also" />\r
-    <word name="among" />\r
-    <word name="an" />\r
-    <word name="and" />\r
-    <word name="are" />\r
-    <word name="as" />\r
-    <word name="at" />\r
-    <word name="be" />\r
-    <word name="became" />\r
-    <word name="because" />\r
-    <word name="been" />\r
-    <word name="between" />\r
-    <word name="but" />\r
-    <word name="by" />\r
-    <word name="can" />\r
-    <word name="come" />\r
-    <word name="do" />\r
-    <word name="during" />\r
-    <word name="each" />\r
-    <word name="early" />\r
-    <word name="for" />\r
-    <word name="form" />\r
-    <word name="found" />\r
-    <word name="from" />\r
-    <word name="had" />\r
-    <word name="has" />\r
-    <word name="have" />\r
-    <word name="he" />\r
-    <word name="her" />\r
-    <word name="his" />\r
-    <word name="however" />\r
-    <word name="in" />\r
-    <word name="include" />\r
-    <word name="into" />\r
-    <word name="is" />\r
-    <word name="it" />\r
-    <word name="its" />\r
-    <word name="late" />\r
-    <word name="later" />\r
-    <word name="made" />\r
-    <word name="many" />\r
-    <word name="may" />\r
-    <word name="me" />\r
-    <word name="med" />\r
-    <word name="more" />\r
-    <word name="most" />\r
-    <word name="near" />\r
-    <word name="no" />\r
-    <word name="non" />\r
-    <word name="not" />\r
-    <word name="of" />\r
-    <word name="on" />\r
-    <word name="only" />\r
-    <word name="or" />\r
-    <word name="other" />\r
-    <word name="over" />\r
-    <word name="several" />\r
-    <word name="she" />\r
-    <word name="some" />\r
-    <word name="such" />\r
-    <word name="than" />\r
-    <word name="that" />\r
-    <word name="the" />\r
-    <word name="their" />\r
-    <word name="then" />\r
-    <word name="there" />\r
-    <word name="these" />\r
-    <word name="they" />\r
-    <word name="this" />\r
-    <word name="through" />\r
-    <word name="to" />\r
-    <word name="under" />\r
-    <word name="until" />\r
-    <word name="use" />\r
-    <word name="was" />\r
-    <word name="we" />\r
-    <word name="were" />\r
-    <word name="when" />\r
-    <word name="where" />\r
-    <word name="which" />\r
-    <word name="who" />\r
-    <word name="with" />\r
-    <word name="you" />\r
-  </stopwords>\r
-\r
-  <stems>\r
-    <stem name="s" />\r
-    <stem name="e" />\r
-    <stem name="ed" />\r
-    <stem name="es" />\r
-    <stem name="er" />\r
-    <stem name="ly" />\r
-    <stem name="ing" />\r
-    <stem name="ingly" />\r
-  </stems>\r
-\r
-       <paneskin>\r
-               <background color="#ffffff" img="" />\r
-               <font name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="none" />\r
-               <toc>\r
-                       <background color="#ffffff" img="" />\r
-                       <icons>\r
-                               <book open="wht_toc2.gif" close="wht_toc1.gif" />\r
-                               <item  local="wht_toc3.gif" remote="wht_toc4.gif" />\r
-                               <newbook open="" close="" />\r
-                               <newitem  local="" remote="" />\r
-                       </icons>\r
-                       <fonts>\r
-                               <normal name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" />\r
-                               <hover name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="underline" />\r
-                       </fonts>\r
-                       <activebackgroundcolor attr="#c0c0c0" />\r
-                       <margin attr="" />\r
-                       <indent attr="" />\r
-               </toc>\r
-               <index>\r
-                       <form>\r
-                               <fonts>\r
-                                       <title name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="none" />\r
-                               </fonts>\r
-                               <button normal="" hover="" />\r
-                               <editwith value="20" />\r
-                       </form>\r
-                       <background color="#ffffff" img="" />\r
-                       <fonts>\r
-                               <normal name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" />\r
-                               <hover name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="underline" />\r
-                               <empty name="" size="8pt" color="" style="" weight="" decoration="" />\r
-                       </fonts>\r
-                       <activebackgroundcolor attr="#c0c0c0" />\r
-                       <margin attr="" />\r
-                       <indent attr="" />\r
-               </index>\r
-               <fts>\r
-                       <form>\r
-                               <fonts>\r
-                                       <title name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="none" />\r
-                               </fonts>\r
-                               <button normal="" hover="" />\r
-                               <editwith value="20" />\r
-                       </form>\r
-                       <background color="#ffffff" img="" />\r
-                       <fonts>\r
-                               <normal name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" />\r
-                               <hover name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="underline" />\r
-                               <error name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" />\r
-                       </fonts>\r
-                       <activebackgroundcolor attr="#c0c0c0" />\r
-                       <margin attr="" />\r
-                       <indent attr="" />\r
-               </fts>\r
-               <glossary>\r
-                       <background color="#ffffff" img="" />\r
-                       <fonts>\r
-                               <normal name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" />\r
-                               <hover name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="underline" />\r
-                       </fonts>\r
-                       <activebackgroundcolor attr="#c0c0c0" />\r
-                       <margin attr="" />\r
-                       <indent attr="" />\r
-               </glossary>\r
-       </paneskin>\r
-</resource>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whrstart.ico b/doc/salome/gui/SMESH/whrstart.ico
deleted file mode 100755 (executable)
index bffcd6e..0000000
Binary files a/doc/salome/gui/SMESH/whrstart.ico and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whskin_banner.htm b/doc/salome/gui/SMESH/whskin_banner.htm
deleted file mode 100755 (executable)
index afe2d3f..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<html>\r
-<head>\r
-<title>About WebHelp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-</head>\r
-<style type="text/css">\r
-<!--\r
-P {margin-left:10pt;font-size:8pt;font-family:Verdana,sans-serif;}\r
-//-->\r
-</style>\r
-<script>\r
-<!--\r
-// this block fix: HTML Dialog Ignores Size Parameters Without SCRIPT Block\r
-//-->\r
-</script> \r
-<body bgcolor="white" scroll=no RIGHTMARGIN=0 BOTTOMMARGIN=0 TOPMARGIN=0 LEFTMARGIN=0>\r
-<table border="0" cellpadding="0" cellspacing="0" width="350">\r
-  <tr>\r
-   <td><img src="wht_spac.gif" width="99" height="1" border="0"></td>\r
-   <td><img src="wht_spac.gif" width="251" height="1" border="0"></td>\r
-   <td><img src="wht_spac.gif" width="1" height="1" border="0"></td>\r
-  </tr>\r
-  <tr>\r
-   <td rowspan="2"><img src="wht_abgw.jpg" width="99" height="190" border="0"></td>\r
-   <td><img src="wht_abtw.jpg" width="211" height="86" border="0"></td>\r
-   <td><img src="wht_spac.gif" width="1" height="86" border="0"></td>\r
-  </tr>\r
-  <tr>\r
-   <td valign="top">\r
-               <p>Author:&nbsp;eHelp Corporation</p>\r
-               <p>Powered by:&nbsp;WebHelp 5.00\r
-               <br>Generated by:&nbsp;RoboHelp 2002</p>\r
-               <p><a class="tail" href="http://www.ehelp.com/webhelp1" target="_blank">www.ehelp.com</a></p>\r
-   </td>\r
-   <td><img src="wht_spac.gif" width="1" height="104" border="0"></td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whskin_blank.htm b/doc/salome/gui/SMESH/whskin_blank.htm
deleted file mode 100755 (executable)
index 5b506c2..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<html>\r
-<head>\r
-<title>Blank Page</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-</head>\r
-<body>\r
-</body>\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/whskin_frmset01.htm b/doc/salome/gui/SMESH/whskin_frmset01.htm
deleted file mode 100755 (executable)
index 6916dee..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-\r
-<html>\r
-<head>\r
-</head>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" >\r
-<!--\r
-if (!window.gbWhVer||!window.gbWhUtil||!window.gbWhMsg)\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-\r
-<script type="text/javascript" language="javascript" src="whproxy.js"></script>\r
-<script type="text/javascript" language="javascript">\r
-<!--\r
-if (!window.gbWhProxy)\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-\r
-\r
-<script language="javascript">\r
-<!--\r
-var gsPane="";\r
-var gnType=3;\r
-\r
-var oMsgPane = new whMessage(WH_MSG_GETPANETYPE, this, 1, null);\r
-if (SendMessage(oMsgPane))\r
-{\r
-       gsPane = oMsgPane.oParam.sPaneURL;\r
-       gnType = oMsgPane.oParam.nType;\r
-}\r
-\r
-       var strDefaultTopic = "about:blank";\r
-       var oParam = new Object();\r
-       oParam.sTopic = "";\r
-       var oMsg = new whMessage(WH_MSG_GETDEFAULTTOPIC, this, 1, oParam);\r
-       if (SendMessage(oMsg) && oParam.sTopic != "")\r
-               strDefaultTopic =  oParam.sTopic;\r
-var strHTML = "";\r
-if (gnType == 4)\r
-{\r
-       //no navipane at all\r
-       strHTML += "<frameset border=\"0\" cols=\"100%,*\">";\r
-       strHTML += "<frame src=\"" + strDefaultTopic + "\" name=\"bsscright\" framespacing=\"0\" frameborder=\"0\" border=\"0\" scrolling=\"auto\">";\r
-       strHTML += "<frame src=\"whskin_blank.htm\" noresize>";\r
-       strHTML += "</frameset>";\r
-}\r
-else\r
-       strHTML += "<frameset cols=\"220,*\" hostof=\"parent:minibar_navpane|topic!startpage:no\" frameborder=\"yes\" id=\"whPfset\"><frame src=\"whskin_frmset010.htm\" id=\"minibar_navpane\" frameborder=\"no\" border=\"0\" scrolling=\"auto\" marginheight=\"0\" marginwidth=\"0\"></frame><frame src=\""+strDefaultTopic+"\" id=\"topic\" frameborder=\"yes\" border=\"1\" scrolling=\"auto\" title=\"Topic\" name=\"bsscright\"></frame></frameset>";\r
-document.write(strHTML);\r
-// handle show pane, hide pane and query pane status message.\r
-RegisterListener2(this, WH_MSG_RESIZEPANE);\r
-RegisterListener2(this, WH_MSG_SHOWPANE);\r
-RegisterListener2(this, WH_MSG_HIDEPANE);\r
-RegisterListener2(this, WH_MSG_ISPANEVISIBLE);\r
-\r
-function window_unload()\r
-{\r
-       UnRegisterListener2(this, WH_MSG_RESIZEPANE);\r
-       UnRegisterListener2(this, WH_MSG_SHOWPANE);\r
-       UnRegisterListener2(this, WH_MSG_HIDEPANE);\r
-       UnRegisterListener2(this, WH_MSG_ISPANEVISIBLE);\r
-}\r
-\r
-window.onunload=window_unload;\r
-\r
-var gbShow=false;\r
-var gstrFrameLastSetting="";\r
-function onSendMessage(oMsg)\r
-{\r
-       var oMsgout = null;\r
-       var nMsgId = oMsg.nMessageId;\r
-       var oFrameset = null;\r
-       if (nMsgId == WH_MSG_SHOWPANE)\r
-       {\r
-               if (!gbShow)\r
-               {\r
-                       oFrameset = getElement("whPfset");\r
-                       if (oFrameset)\r
-                       {\r
-                               if (gstrFrameLastSetting)\r
-                                       oFrameset.cols= gstrFrameLastSetting;\r
-                               else\r
-                                       oFrameset.cols= "220,*";\r
-                       }\r
-                       gbShow=true;\r
-                       oMsgout = new whMessage(WH_MSG_PANESTATUE, this, 1, "visible");\r
-                       SendMessage(oMsgout);\r
-               }\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_HIDEPANE)\r
-       {\r
-               oFrameset = getElement("whPfset");\r
-               if (oFrameset)\r
-               {\r
-                       gstrFrameLastSetting=oFrameset.cols; \r
-                       var oWnd=frames[0];\r
-                       if (oWnd && oWnd.document && oWnd.document.body)\r
-                       {\r
-                               var nPos=0;\r
-                               if ("cols"=="cols")\r
-                                       nPos=oWnd.document.body.offsetWidth;\r
-                               else\r
-                                       nPos=oWnd.document.body.offsetHeight;\r
-                               if(0==0)\r
-                                       gstrFrameLastSetting=nPos+",*";\r
-                               else\r
-                                       gstrFrameLastSetting="*,"+nPos;\r
-                       }\r
-                       oFrameset.cols = "0,*";\r
-               }\r
-               gbShow=false;\r
-               oMsgout = new whMessage(WH_MSG_PANESTATUE, this, 1, "invisible");\r
-               SendMessage(oMsgout);\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_RESIZEPANE)\r
-       {\r
-               if (!gbShow)\r
-               {\r
-                       gbShow=true;\r
-                       oMsgout = new whMessage(WH_MSG_PANESTATUE, this, 1, "visible");\r
-                       SendMessage(oMsgout);\r
-               }\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_ISPANEVISIBLE)\r
-       {\r
-               oMsg.oParam.bVisible = isNavPaneVisible();\r
-               return false;\r
-       }\r
-       return true;\r
-}\r
-\r
-function isNavPaneVisible()\r
-{\r
-       var bVisible = false;\r
-       var sSplit = getElement("whPfset").cols;\r
-       var nSplit = sSplit.indexOf(",");\r
-       if (nSplit != -1)\r
-       {\r
-               var sPart1 = sSplit.substring(0, nSplit);\r
-               var sPart2 = sSplit.substring(nSplit + 1);\r
-               if ("minibar_navpane" == "navpane")\r
-               {\r
-                       var sTemp = sPart1;\r
-                       sPart1 = sPart2;\r
-                       sPart2 = sTemp;\r
-               }\r
-\r
-               if (sPart2 != "*")\r
-               {\r
-                       var n = parseInt(sPart2);\r
-                       if (n>0)\r
-                               bVisible = true;\r
-               }\r
-               else\r
-               {\r
-                       if (sPart1 != "100%")\r
-                               bVisible = true;\r
-               }\r
-       }\r
-       return bVisible;\r
-}\r
-//-->\r
-</script>\r
-\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whskin_frmset010.htm b/doc/salome/gui/SMESH/whskin_frmset010.htm
deleted file mode 100755 (executable)
index 357fc82..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-\r
-<html>\r
-<head>\r
-</head>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" >\r
-<!--\r
-if (!window.gbWhVer||!window.gbWhUtil||!window.gbWhMsg)\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-\r
-<script type="text/javascript" language="javascript" src="whproxy.js"></script>\r
-<script type="text/javascript" language="javascript">\r
-<!--\r
-if (!window.gbWhProxy)\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-\r
-\r
-<script language="javascript">\r
-<!--\r
-var gsPane="";\r
-var gnType=3;\r
-\r
-var oMsgPane = new whMessage(WH_MSG_GETPANETYPE, this, 1, null);\r
-if (SendMessage(oMsgPane))\r
-{\r
-       gsPane = oMsgPane.oParam.sPaneURL;\r
-       gnType = oMsgPane.oParam.nType;\r
-}\r
-var strHTML = "";\r
-if (gnType == 4)\r
-{\r
-       //no navipane at all\r
-       strHTML += "<frameset border=\"0\" cols=\"100%,*\">";\r
-       strHTML += "<frame src='whskin_mbars.htm' id='minibar' frameborder='no' border='0' scrolling='no' marginheight='0' title='Mini Toolbar'></frame>";\r
-       strHTML += "<frame src=\"whskin_blank.htm\" noresize>";\r
-       strHTML += "</frameset>";\r
-}\r
-else\r
-       strHTML += "<frameset rows=\"24,*\" hostof=\"parent:minibar|navpane!startpage:no\" frameborder=\"no\" border=\"0\"><frame src=\"whskin_mbars.htm\" id=\"minibar\" frameborder=\"no\" border=\"0\" scrolling=\"no\" marginheight=\"0\" title=\"Mini Toolbar\"></frame><frame src=\""+gsPane+"\" id=\"navpane\" frameborder=\"no\" border=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" title=\"Navigator Pane\"></frame></frameset>";\r
-\r
-document.write(strHTML);\r
-//-->\r
-</script>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whskin_info.htm b/doc/salome/gui/SMESH/whskin_info.htm
deleted file mode 100755 (executable)
index a7a252f..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<html>\r
-<head>\r
-<title>WebHelp 5.00 </title>\r
-<meta name="description" content="output from robohelp">\r
-<meta name="keywords" content="robohelp,webhelp,webhelp 2002,webhelp enterprise,webehelp enterprise 2002,roboinfo,roboinfo 2002">\r
-</head>\r
-<body>\r
-<h1> WebHelp 5.00 System  Info </h1>\r
-<table>\r
-<tr><td> Start Page </td><td>smesh.htm</td></tr>\r
-<tr><td> Skin Name </td><td>Default</td></tr>\r
-<tr><td> Generating Time </td><td>18:32 11/11/2004</td></tr>\r
-<tr><td> Language ID </td><td>1033</td></tr>\r
-<tr><td> Compile Script </td><td>webhelp5_compile_script.xml</td></tr>\r
-<tr><td> Compile Build Version </td><td>10.00.949</td></tr>\r
-<tr><td> Product Name </td><td>WebHelp 5.00</td></tr>\r
-<tr><td> Authoring Tool Name </td><td>RoboHelp 2002</td></tr>\r
-<table>\r
-</body>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whskin_mbars.htm b/doc/salome/gui/SMESH/whskin_mbars.htm
deleted file mode 100755 (executable)
index 66e8c53..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<html>\r
-<head>\r
-<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
-</head>\r
-<style>\r
-<!--\r
-body {margin:0;}\r
--->\r
-</style>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whtbar.js"></script>\r
-<body marginheight="0"  marginwidth="0"  bgcolor="#99ccff"     scroll="no">\r
-<script language="javascript1.2">\r
-<!--\r
-if (window.gbWhTBar)\r
-{\r
-       setButtonFont("avprev","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("avnext","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("synctoc","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("hide2","Tahoma","8pt","Black","Normal","Normal","none");\r
-\r
-       gsIPrev = "wht_prev.gif";\r
-       gsIPrevD = "wht_prev_g.gif";\r
-       gsINext = "wht_next.gif";\r
-       gsINextD = "wht_next_g.gif";\r
-       gsISync = "wht_sync.gif";\r
-       gsIHide = "wht_hide.gif";\r
-       setBackgroundcolor("#99ccff");\r
-       \r
-       \r
-       addButton("avprev",BTN_TEXT|BTN_IMG,"","","","","",0,0,"","","","","","");\r
-addButton("avnext",BTN_TEXT|BTN_IMG,"","","","","",0,0,"","","","","","");\r
-addButton("synctoc",BTN_TEXT|BTN_IMG,"","","","","",0,0,"","","","","","");\r
-addButton("hide2",BTN_TEXT|BTN_IMG,"","","","","",0,0,"","","","","","");\r
-\r
-       addButton("blankblock");\r
-       writeStyle(true);\r
-       ReSortMinibarButtons();\r
-       writeToolBar();\r
-}\r
-else\r
-       document.location.reload();\r
-\r
-if (window.gbNav6)\r
-{\r
-       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);\r
-       SendMessage(oMsg);\r
-}\r
-//-->\r
-</script>\r
-</body>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whskin_papplet.htm b/doc/salome/gui/SMESH/whskin_papplet.htm
deleted file mode 100755 (executable)
index aab44dd..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-<html>\r
-<head>\r
-<title>Navigation Pane</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<SCRIPT LANGUAGE="JavaScript1.2" ARCHIVE="nsdnsfix.jar" ID="ChangeProfileScriptinNavPane2"> var sd_strAgent    = navigator.userAgent.toLowerCase();    var sd_strVersion  = navigator.appVersion.toLowerCase();  var sd_nVerMajor      = parseInt(sd_strVersion);  var sd_nVerMinor    = parseFloat(sd_strVersion); var        sd_bNS      = ((sd_strAgent.indexOf("mozilla") != -1) && ((sd_strAgent.indexOf('spoofer') == -1) && (sd_strAgent.indexOf('compatible') == -1))); var    sd_bNS4                 = ((sd_bNS) && (sd_nVerMajor >= 4)); if (sd_nVerMinor == 4.60)  {  netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesRead");  var sd_prefValue = navigator.preference("security.lower_java_network_security_by_trusting_proxies"); if (!sd_prefValue) { alert("There are some limitations in Netscape 4.6. Please download and install the latest version of Netscape. Your current Netscape profile needs to be modified. Select 'Remember this decision' and click 'Grant' when prompted to allow the modifications. Click OK to proceed."); netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesWrite"); navigator.preference("security.lower_java_network_security_by_trusting_proxies", true); alert("Please restart Netscape"); window.close(); } } </SCRIPT>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-var gsInitPane="toc";\r
-var gsCurrentPane="";\r
-var gbLoading = "unknown";\r
-var gbTryTime = 0;\r
-var gbMaxTryTime = 6;\r
-var gbPassPhase0 = 0;\r
-var gbretried = 0;\r
-var gbmaxretry = 3;\r
-var gbretrytime = new Array();\r
-\r
-var origWidth = 0;\r
-var origHeight = 0;\r
-\r
-gbretrytime[0]= 5000;\r
-gbretrytime[1]= 30000;\r
-gbretrytime[2]= 60000;\r
-\r
-function addPane(sName, sFile)\r
-{\r
-}\r
-\r
-function setShowPane(sName)\r
-{\r
-       gsInitPane=sName;\r
-}\r
-  addPane("toc","whtdhtml.htm");\r
-  addPane("fts","whfdhtml.htm");\r
-  addPane("glo","whgdhtml.htm");\r
-  setShowPane("toc");\r
-\r
-\r
-function window_unload()\r
-{\r
-       if (!gbNav4 || gbNav6) // resize will call unload, but the register code will never be called on Netscape 4.\r
-       {\r
-               UnRegisterListener2(this, WH_MSG_SHOWTOC);\r
-               UnRegisterListener2(this, WH_MSG_SHOWIDX);\r
-               UnRegisterListener2(this, WH_MSG_SHOWFTS);\r
-               UnRegisterListener2(this, WH_MSG_SHOWGLO);\r
-               UnRegisterListener2(this, WH_MSG_SYNCTOC);\r
-               UnRegisterListener2(this, WH_MSG_SEARCHTHIS);\r
-               UnRegisterListener2(this, WH_MSG_GETPANEINFO);\r
-       }\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if (gsInitPane == "toc")\r
-       {\r
-               var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)\r
-               SendMessage(oMsg);      \r
-       }\r
-       else if (gsInitPane=="idx")\r
-       {\r
-               var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)\r
-               SendMessage(oMsg);      \r
-       }\r
-       else if (gsInitPane=="fts")\r
-       {\r
-               var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)\r
-               SendMessage(oMsg);      \r
-       }\r
-       else if (gsInitPane=="glo")\r
-       {\r
-               var oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)\r
-               SendMessage(oMsg);      \r
-       }\r
-       \r
-}\r
-\r
-function onResize()\r
-{\r
-       if (gbIE4)\r
-       {\r
-               if(document.body)\r
-               {\r
-                       if(document.body.clientWidth > 1 && document.body.clientHeight>1)\r
-                       {\r
-                               var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);\r
-                               SendMessage(oMsg);\r
-                       }\r
-               }\r
-       }\r
-       else \r
-       {\r
-               if (window.innerWidth != 0 && window.innerHeight != 0)\r
-               {\r
-                       var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);\r
-                       SendMessage(oMsg);\r
-               }\r
-       }\r
-}\r
-\r
-function CheckLoadingPhase0()\r
-{\r
-       if (!gbPassPhase0) {\r
-               setTimeout("CheckLoadingPhase0()", 1000);\r
-               document.applets[0];\r
-               gbPassPhase0 = 1;\r
-       }\r
-       else {\r
-               CheckLoadingPhase1();\r
-       }\r
-}\r
-\r
-function CheckLoadingPhase1()\r
-{\r
-       if (gbNav4) {\r
-               if ("unknown" == gbLoading && document.readystate < 4) {\r
-                       setTimeout("CheckLoadingPhase1()", 1000);\r
-               }\r
-               else if ("unknown" == gbLoading) {\r
-                       CheckLoadingPhase2();\r
-               }\r
-       }\r
-}\r
-\r
-function CheckLoadingPhase2()\r
-{\r
-       if (gbNav4) {\r
-               gbTryTime ++;\r
-               if ("unknown" == gbLoading) {\r
-                       if (gbTryTime <= gbMaxTryTime )\r
-                               setTimeout("CheckLoadingPhase2()", 1000);\r
-                       else {\r
-                               if (gnVerMinor != 4.60) {\r
-                                       if (gnVerMinor >= 4.06)\r
-                                               document.location.href = "nsdnsfix.htm"\r
-                                       else {\r
-                                               alert("Unable to load applet. If you are using an old version of Netscape, the prefs.js file needs to be edited.");\r
-                                       }\r
-                               }\r
-                       }       \r
-               }\r
-       }\r
-}\r
-\r
-function CheckAppletLoaded()\r
-{\r
-       if (typeof(document.WebHelp) == "undefined")\r
-       {\r
-               document.location.reload();\r
-               if (gbretried < gbmaxretry)\r
-               {\r
-                       gbretried ++;\r
-                       setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);\r
-               }\r
-       }\r
-}\r
-\r
-function reDo() \r
-{\r
-       if (innerWidth != origWidth || innerHeight != origHeight)  \r
-       {\r
-               //reloaded applet if nessary\r
-               gbretried = 0;\r
-\r
-               if (gnVerMinor == 4.60) \r
-               {\r
-                       //reload the applet again.\r
-                       document.location.reload();\r
-                       gbretried ++;\r
-               }\r
-               setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);\r
-       }\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       if (oMsg)\r
-       {       \r
-               var nMsgId = oMsg.nMessageId;\r
-               var WebHelpApplet = null;\r
-               if (gbNav4)\r
-               {\r
-                       WebHelpApplet = document.applets["WebHelp"];\r
-                       if (!WebHelpApplet.Command)\r
-                               document.location="whskin_plist.htm";\r
-               }\r
-               else\r
-                       WebHelpApplet = window.WebHelp;\r
-\r
-               if (nMsgId == WH_MSG_SHOWTOC)\r
-               {\r
-                       gsCurrentPane="toc";\r
-                       WebHelpApplet.Command("Contents",null);\r
-                       var onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"toc");\r
-                       SendMessage(onMsg);\r
-                       onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWIDX)\r
-               {\r
-                       gsCurrentPane="idx";\r
-                       WebHelpApplet.Command("Index",null);\r
-                       var onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"idx");\r
-                       SendMessage(onMsg);\r
-                       onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWFTS)\r
-               {\r
-                       gsCurrentPane="fts";\r
-                       WebHelpApplet.Command("Search",null);\r
-                       var onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"fts");\r
-                       SendMessage(onMsg);\r
-                       onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWGLO)\r
-               {\r
-                       gsCurrentPane="glo";\r
-                       WebHelpApplet.Command("Glossary",null);\r
-                       var onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"glo");\r
-                       SendMessage(onMsg);\r
-                       onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_SYNCTOC)\r
-               {\r
-                       gsCurrentPane="toc";\r
-                       var oTopicParam=oMsg.oParam;\r
-                       if(oTopicParam&&oTopicParam.aPaths&&oTopicParam.aPaths.length>0&&oTopicParam.sPPath)\r
-                       {\r
-                               var sPPath=_browserURLToAppletURL(oTopicParam.sPPath);\r
-                               var sParam="";\r
-                               for(var i=0;i<oTopicParam.aPaths.length;i++)\r
-                               {\r
-                                       sParam+=oTopicParam.aPaths[i]+"\r\r";\r
-                               }\r
-                               if(gbLoading!="unknown")\r
-                                       WebHelpApplet.Command("SyncToc",sPPath,sParam);\r
-                       }\r
-               }\r
-               else if(nMsgId==WH_MSG_SEARCHTHIS)\r
-               {\r
-                       gsCurrentPane="fts";\r
-                       WebHelpApplet.Command("Search",oMsg.oParam);\r
-                       var onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"fts");\r
-                       SendMessage(onMsg);\r
-                       onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_GETPANEINFO)\r
-               {\r
-                       oMsg.oParam=gsCurrentPane;\r
-                       return false;\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-function _browserURLToAppletURL(sBURL)\r
-{\r
-       var sAURL="";\r
-       var nPos=sBURL.indexOf('%');\r
-       while(nPos!=-1)\r
-       {\r
-               sAURL+=sBURL.substring(0,nPos);\r
-               sBURL=sBURL.substring(nPos+1);\r
-               var sNum="";\r
-               var i=0;\r
-               while(sBURL.charAt(i)>='0'&&sBURL.charAt(i)<='9')\r
-               {\r
-                       sNum+=sBURL.charAt(i++);        \r
-               }\r
-               if(sNum!="")\r
-               {\r
-                       var nNum=parseInt(sNum,16);\r
-                       sAURL+=String.fromCharCode(nNum);\r
-                       sBURL=sBURL.substring(i);\r
-               }\r
-               nPos=sBURL.indexOf('%');\r
-       }\r
-       sAURL+=sBURL;\r
-       return sAURL;\r
-}\r
-\r
-function getInitTocInfo()\r
-{\r
-       var oParam=new Object();\r
-       oParam.oTocInfo=null;\r
-       var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               var oTopicParam=oMsg.oParam.oTocInfo;\r
-               if(oTopicParam&&oTopicParam.aPaths&&oTopicParam.aPaths.length>0&&oTopicParam.sPPath)\r
-               {\r
-                       var sPPath=_browserURLToAppletURL(oTopicParam.sPPath);\r
-                       var sParam="";\r
-                       for(var i=0;i<oTopicParam.aPaths.length;i++)\r
-                       {\r
-                               sParam+=oTopicParam.aPaths[i]+"\r\r";\r
-                       }\r
-                       var WebHelpApplet;\r
-                       if(gbNav4)\r
-                               WebHelpApplet=document.applets["WebHelp"];\r
-                       else\r
-                               WebHelpApplet=WebHelp;\r
-                       WebHelpApplet.Command("SyncToc",sPPath,sParam);\r
-               }\r
-       }\r
-}\r
-\r
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
-{\r
-       RegisterListener2(this, WH_MSG_SHOWTOC);\r
-       RegisterListener2(this, WH_MSG_SHOWIDX);\r
-       RegisterListener2(this, WH_MSG_SHOWFTS);\r
-       RegisterListener2(this, WH_MSG_SHOWGLO);\r
-       RegisterListener2(this, WH_MSG_SYNCTOC);\r
-       RegisterListener2(this, WH_MSG_SEARCHTHIS);\r
-       RegisterListener2(this, WH_MSG_GETPANEINFO);\r
-\r
-       window.onresize=onResize;\r
-       window.onunload = window_unload;\r
-       window.onload=window_OnLoad;\r
-       window.onerror = null;\r
-       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));\r
-\r
-       if (gbNav4 && !gbNav6 && gbWindows) {\r
-               setTimeout("CheckLoadingPhase0()", 1000);\r
-       }\r
-       if (gbNav4)\r
-       {\r
-               origWidth = innerWidth;\r
-               origHeight = innerHeight;\r
-               onresize = reDo;\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" bgcolor="c0c0c0">\r
-<applet code=WebHelp.class name=WebHelp  archive=webhelp.jar width=100% height=100% MAYSCRIPT hspace=0 vspace=0>\r
-<PARAM name=ProjectFile value=whproj.xml><PARAM name=ResourceFile value=whres.xml>\r
-<PARAM name=HideTabs value=true>\r
-<PARAM name=Frame value=bsscright>\r
-<PARAM name=cabbase value=webhelp.cab>\r
-</applet>\r
-</body>\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/whskin_pdhtml.htm b/doc/salome/gui/SMESH/whskin_pdhtml.htm
deleted file mode 100755 (executable)
index ffb2439..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<html>\r
-<head>\r
-<title> Navigation Pane </title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-</head>\r
-<body border=0 topmargin=0 bottommargin=0 rightmargin=0 leftmargin=0 scroll=no>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whphost.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-if (window.gbWhPHost)\r
-{\r
-       var gsNavReDirect="whskin_plist.htm";\r
-       var gbReDirectThis=true;\r
-       var oMsg = new whMessage(WH_MSG_GETPANES, this, 1, null);\r
-       if (SendMessage(oMsg))\r
-       {\r
-               if (oMsg.oParam)\r
-               {\r
-                       for (var i=0;i<oMsg.oParam.aPanes.length;i++)\r
-                       {\r
-                               addPane(oMsg.oParam.aPanes[i].sPaneName, oMsg.oParam.aPanes[i].sPaneURL);\r
-                       }\r
-                       setShowPane(oMsg.oParam.sDefault);\r
-                       setServerEnabled();\r
-               }\r
-               else\r
-                       writeWebHelpPane();\r
-       }\r
-       else\r
-               writeWebHelpPane();\r
-}\r
-else\r
-       document.location.reload();\r
-\r
-function writeWebHelpPane()\r
-{\r
-  var bPreferXML             = false;\r
-  var strProjectFileXML =  "whproj.xml";\r
-  var strProjectFileHTM =  "whproj.htm";       \r
-  addProject(bPreferXML, strProjectFileXML, strProjectFileHTM);\r
-  addPane("toc","whtdhtml.htm");\r
-  addPane("fts","whfdhtml.htm");\r
-  addPane("glo","whgdhtml.htm");\r
-  setShowPane("toc");\r
-\r
-}\r
-//-->\r
-</script>\r
-</body>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whskin_plist.htm b/doc/salome/gui/SMESH/whskin_plist.htm
deleted file mode 100755 (executable)
index 35f0155..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-<html>\r
-<head>\r
-<title> Navigation Pane </title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-</head>\r
-<script language="javascript">\r
-<!--\r
-var strFrmToc = "";\r
-var strFrmNdx = "";\r
-var strFrmFts = "";\r
-var strFrmGls = "";\r
-var strFrmDft = "";\r
-var gstrName = "";\r
-\r
-//set overwrite here\r
-function setListFrames(strToc,strNdx,strFts,strGls,strDefault)\r
-{\r
-       strFrmToc = strToc;\r
-       strFrmNdx = strNdx;\r
-       strFrmFts = strFts;\r
-       strFrmGls = strGls;\r
-       strFrmDft = strDefault;\r
-       if (strFrmDft == strFrmToc)\r
-       {\r
-               gstrName = "toc";\r
-       }\r
-       else if (strFrmDft == strFrmNdx) \r
-       {\r
-               gstrName = "idx";\r
-\r
-       }\r
-       else if (strFrmDft == strFrmFts) \r
-       {\r
-               gstrName = "fts";\r
-       }\r
-       else if (strFrmDft == strFrmGls) \r
-       {\r
-               gstrName = "glo";\r
-       }\r
-}\r
-\r
-function setWebHelpPane()\r
-{\r
-       setListFrames("whgdata/whnvf30.htm","whgdata/whnvf31.htm","whgdata/whnvf32.htm","whgdata/whnvf33.htm","whgdata/whnvf30.htm");\r
-}\r
-\r
-function window_unload()\r
-{\r
-       if (!gbNav4 || gbNav6) // resize will call unload, but the register code will never be called on Netscape 4.\r
-       {\r
-               UnRegisterListener2(this,WH_MSG_SHOWTOC);\r
-               UnRegisterListener2(this,WH_MSG_SHOWIDX);\r
-               UnRegisterListener2(this,WH_MSG_SHOWFTS);\r
-               UnRegisterListener2(this,WH_MSG_SHOWGLO);\r
-               UnRegisterListener2(this, WH_MSG_GETPANEINFO);\r
-       }\r
-}\r
-\r
-function window_onload()\r
-{\r
-       if (gstrName)\r
-       {\r
-               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, gstrName);\r
-               SendMessage(onMsg);\r
-       }\r
-}\r
-\r
-function switchNvp(strName)\r
-{\r
-       var strFile = "";\r
-       if (strName == "toc")           strFile = strFrmToc;\r
-       else if (strName == "idx")      strFile = strFrmNdx;\r
-       else if (strName == "fts")      strFile = strFrmFts;\r
-       else if (strName == "glo")      strFile = strFrmGls;\r
-\r
-       gstrName = strName;\r
-       frames[0].location = strFile;   \r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       if(oMsg)\r
-       {\r
-               var nMsgId=oMsg.nMessageId;\r
-               if (nMsgId==WH_MSG_SHOWTOC)\r
-               {\r
-                       switchNvp("toc");\r
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");\r
-                       SendMessage(onMsg);\r
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWIDX)\r
-               {\r
-                       switchNvp("idx");\r
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");\r
-                       SendMessage(onMsg);\r
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWFTS)\r
-               {\r
-                       switchNvp("fts");\r
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");\r
-                       SendMessage(onMsg);\r
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWGLO)\r
-               {\r
-                       switchNvp("glo");\r
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");\r
-                       SendMessage(onMsg);\r
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if (nMsgId==WH_MSG_GETPANEINFO)\r
-               {\r
-                       oMsg.oParam = gstrName;\r
-                       return false;\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-function onResize()\r
-{\r
-       if (gbIE4)\r
-       {\r
-               if(document.body)\r
-               {\r
-                       if(document.body.clientWidth > 1 && document.body.clientHeight>1)\r
-                       {\r
-                               var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);\r
-                               SendMessage(oMsg);\r
-                       }\r
-               }\r
-       }\r
-       else \r
-       {\r
-               if (window.innerWidth != 0 && window.innerHeight != 0)\r
-               {\r
-                       var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);\r
-                       SendMessage(oMsg);\r
-               }\r
-       }\r
-}\r
-\r
-if (window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
-{\r
-       var oMsg = new whMessage(WH_MSG_GETPANES, this, 1, null);\r
-       if (SendMessage(oMsg))\r
-       {\r
-               if (oMsg.oParam)\r
-               {\r
-                       for (var i=0;i<oMsg.oParam.aPanes.length;i++)\r
-                       {\r
-                               if (oMsg.oParam.aPanes[i].sPaneName == "toc")\r
-                                       strFrmToc = oMsg.oParam.aPanes[i].sPaneURL;\r
-                               else if (oMsg.oParam.aPanes[i].sPaneName == "idx")\r
-                                       strFrmNdx = oMsg.oParam.aPanes[i].sPaneURL;\r
-                               else if (oMsg.oParam.aPanes[i].sPaneName == "fts")\r
-                                       strFrmFts = oMsg.oParam.aPanes[i].sPaneURL;\r
-                               else if (oMsg.oParam.aPanes[i].sPaneName == "glo")\r
-                                       strFrmGls = oMsg.oParam.aPanes[i].sPaneURL;\r
-                               if (oMsg.oParam.sDefault == oMsg.oParam.aPanes[i].sPaneName)\r
-                               {\r
-                                       strFrmDft = oMsg.oParam.aPanes[i].sPaneURL;\r
-                               }\r
-                       }\r
-               }\r
-               else\r
-                       setWebHelpPane();\r
-       }\r
-       else\r
-               setWebHelpPane();\r
-\r
-       RegisterListener2(this,WH_MSG_SHOWTOC);\r
-       RegisterListener2(this,WH_MSG_SHOWIDX);\r
-       RegisterListener2(this,WH_MSG_SHOWFTS);\r
-       RegisterListener2(this,WH_MSG_SHOWGLO);\r
-       RegisterListener2(this, WH_MSG_GETPANEINFO);\r
-\r
-       window.onresize=onResize;\r
-       window.onunload=window_unload;\r
-       window.onload=window_onload;\r
-\r
-       var strHtml = "";\r
-       strHtml += "<frameset rows=\'100%,*\'>";\r
-       strHtml += "<frame name=\'nvplist\' title=\'navpane frame\' src=\'" + strFrmDft +"\'></frame>";\r
-       strHtml += "<frame src=\'whskin_blank.htm\' noresize></frame>";\r
-       strHtml += "</frameset>";\r
-       document.write(strHtml);\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whskin_tbars.htm b/doc/salome/gui/SMESH/whskin_tbars.htm
deleted file mode 100755 (executable)
index 8b70544..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-<html>\r
-<head>\r
-<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
-</head>\r
-<style>\r
-<!--\r
-body {margin:0;}\r
--->\r
-</style>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whtbar.js"></script>\r
-\r
-\r
-<body marginheight="0"  marginwidth="0"  bgcolor="#99ccff"     scroll="no">\r
-<script language="javascript1.2">\r
-<!--\r
-if (window.gbWhTBar)\r
-{\r
-       setButtonFont("toc","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("toc","Tahoma","8pt","White","Normal","Normal","none", true);\r
-setButtonFont("idx","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("idx","Tahoma","8pt","White","Normal","Normal","none", true);\r
-setButtonFont("fts","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("fts","Tahoma","8pt","White","Normal","Normal","none", true);\r
-setButtonFont("glo","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("glo","Tahoma","8pt","White","Normal","Normal","none", true);\r
-setButtonFont("websearch","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("websearch","Tahoma","8pt","White","Normal","Normal","none", true);\r
-setButtonFont("searchform","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("searchform","","","","","","", true);\r
-setButtonFont("banner","","","","","","");\r
-setButtonFont("banner","","","","","","", true);\r
-\r
-       gsIToc = "wht_toc_n.gif";\r
-       gsITocS = "wht_toc_h.gif";\r
-       gsIIndex = "wht_idx_n.gif";\r
-       gsIIndexS = "wht_idx_h.gif";\r
-       gsISearch = "wht_fts_n.gif";\r
-       gsISearchS = "wht_fts_h.gif";\r
-       gsIGlossary = "wht_glo_n.gif";\r
-       gsIGlossaryS = "wht_glo_h.gif";\r
-       gsIWebSearch = "wht_ws.gif";\r
-       gsIWebSearchD = "wht_ws_g.gif";\r
-       gsIBanner = "wht_logo1.gif";\r
-       gsIGo = "wht_go.gif";\r
-       setBackgroundcolor("#99ccff");\r
-       \r
-       setAlignment("left");\r
-       \r
-       \r
-       if (!gsBgImage)\r
-       {\r
-       setButtonBgColor("toc", gsBgColor);\r
-       setButtonBgColor("idx", gsBgColor);\r
-       setButtonBgColor("fts", gsBgColor);\r
-       setButtonBgColor("glo", gsBgColor);\r
-       setButtonBgColor("toc", gsTBSelectedBgColor, true);\r
-       setButtonBgColor("idx", gsTBSelectedBgColor, true);\r
-       setButtonBgColor("fts", gsTBSelectedBgColor, true);\r
-       setButtonBgColor("glo", gsTBSelectedBgColor, true);\r
-       setButtonBgColor("toc","#99ccff");\r
-setButtonBgColor("idx","#99ccff");\r
-setButtonBgColor("fts","#99ccff");\r
-setButtonBgColor("glo","#99ccff");\r
-setButtonBgColor("websearch","#99ccff");\r
-setButtonBgColor("searchform","");\r
-setButtonBgColor("banner","");\r
-\r
-       }\r
-       setButtonBgColor("toc","#639ace", true);\r
-setButtonBgColor("idx","#639ace", true);\r
-setButtonBgColor("fts","#639ace", true);\r
-setButtonBgColor("glo","#639ace", true);\r
-setButtonBgColor("websearch","#639ace", true);\r
-setButtonBgColor("searchform","", true);\r
-setButtonBgColor("banner","", true);\r
-\r
-       addButton("toc",BTN_TEXT|BTN_IMG,"Contents","","","","",0,0,"","","","","","");\r
-addButton("fts",BTN_TEXT|BTN_IMG,"Search","","","","",0,0,"","","","","","");\r
-addButton("glo",BTN_TEXT|BTN_IMG,"Glossary","","","","",0,0,"","","","","","");\r
-addButton("searchform",BTN_TEXT,"","","","","",0,0,"","","","","","");\r
-addButton("banner",BTN_IMG,"eHelp Corporation","","","","",0,0,"","","","","","");\r
-\r
-       addButton("blankblock");\r
-       writeStyle(false);\r
-       ReSortToolbarButtons();\r
-       writeToolBar();\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</body>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whst_topics.xml b/doc/salome/gui/SMESH/whst_topics.xml
deleted file mode 100755 (executable)
index 2a61402..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>\r
-<topictemplate>\r
- <topic type="normal">\r
-  <add tag="head" pos="endbefore" >\r
-   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_MESSAGE_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_PROXY_JS ;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_TOPIC_JS;"\"></script>\r
-";]]>\r
-  </add>\r
-  <add tag="body" pos="beginafter">\r
-    <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       ";\r
-         OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");\r
-         OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");\r
-         OutputInTopicNavBarDataButtons("addButton(%s);\r\n");\r
-       "\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(";WH_WEBSKIN.topic.bar.top.pos;");\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       ";\r
-         OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");\r
-         OutputInTopicNavBarDataWebSearch.href("addSearchFormHref(\"%s\");\r\n");\r
-       "\r
-               autoSync(";WH_USER_OPTIONS.autosync_toc;");\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>"]]>  \r
-  </add>\r
-  <add tag="body" pos="endbefore">\r
-   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(";WH_WEBSKIN.topic.bar.bottom.pos;");\r
-//-->\r
-</script>";\r
-OutputInTopicNavBarDataWebSearch.form();]]>    \r
-  </add>\r
- </topic>\r
- <topic type="frameset">\r
-  <add tag="head" pos="endbefore" >\r
-   <![CDATA["<script type=\"text/javascript1.2\" language=\"javascript\" src=\"";SF_MESSAGE_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_PROXY_JS ;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_FRAMESET_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\">\r
-<!--\r
-if (window.setRelStartPage)\r
-{\r
-";\r
-  OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");\r
-  OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");\r
-  OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");\r
-"\r
-}\r
-if (window.autoSync)\r
-       autoSync(";WH_USER_OPTIONS.autosync_toc;");\r
-//-->\r
-</script>\r
-";]]>\r
-  </add>\r
- </topic>\r
-</topictemplate>\r
diff --git a/doc/salome/gui/SMESH/whstart.ico b/doc/salome/gui/SMESH/whstart.ico
deleted file mode 100755 (executable)
index 365ecea..0000000
Binary files a/doc/salome/gui/SMESH/whstart.ico and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whstart.js b/doc/salome/gui/SMESH/whstart.js
deleted file mode 100755 (executable)
index 0cb5e2c..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-RegisterListener2(this, WH_MSG_GETSTARTFRAME);\r
-RegisterListener2(this, WH_MSG_GETDEFAULTTOPIC);\r
-RegisterListener2(this, WH_MSG_MINIBARORDER);\r
-RegisterListener2(this, WH_MSG_TOOLBARORDER);\r
-RegisterListener2(this, WH_MSG_ISSEARCHSUPPORT);\r
-RegisterListener2(this, WH_MSG_ISSYNCSSUPPORT);\r
-RegisterListener2(this, WH_MSG_ISAVENUESUPPORT);\r
-RegisterListener2(this, WH_MSG_GETPANETYPE);\r
-RegisterListener2(this, WH_MSG_GETPANES);\r
-RegisterListener2(this, WH_MSG_RELOADNS6);\r
-\r
-if (gbNav6)\r
-{\r
-       var gnReload=0;\r
-       setTimeout("delayReload();",5000);\r
-}\r
-\r
-function delayReload()\r
-{\r
-       if(!gnReload)\r
-       {\r
-               if(nViewFrameType&&nViewFrameType==1)\r
-                       document.location=document.location;\r
-       }\r
-}\r
-\r
-var gsToolbarOrder = "toc|fts|glo|blankblock|banner";\r
-var gsMinibarOrder = "blankblock|hide2|";\r
-\r
-var gsTopic = "files/introduction_to_smesh.htm";\r
-\r
-if (location.hash.length > 1)\r
-       gsTopic = location.hash.substring(1);\r
-\r
-function setToolbarOrder(sOrder)\r
-{\r
-       gsToolbarOrder = sOrder;\r
-}\r
-\r
-function setMinibarOrder(sOrder)\r
-{\r
-       gsMinibarOrder = sOrder;\r
-}\r
-\r
-function onSendMessageX(oMsg)\r
-{\r
-       var nMsgId = oMsg.nMessageId;\r
-       if (nMsgId == WH_MSG_GETSTARTFRAME)\r
-       {\r
-               oMsg.oParam.oFrame = this;\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_GETDEFAULTTOPIC)\r
-       {\r
-               if (this.cMRServer && cMRServer.m_strVersion)\r
-               {\r
-                       if (cMRServer.m_strURLTopic);\r
-                       {\r
-                               oMsg.oParam.sTopic = cMRServer.m_strURLTopic;\r
-                               return false;\r
-                       }\r
-\r
-               }\r
-               oMsg.oParam.sTopic = gsTopic;\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_TOOLBARORDER)\r
-       {\r
-               var oMsg1 = new whMessage(WH_MSG_GETPANES, this, 1, null);\r
-               if (SendMessage(oMsg1))\r
-               {\r
-                       if (oMsg1.oParam)\r
-                       {\r
-                               if (this.cMRServer && cMRServer.m_strVersion)\r
-                               {\r
-                                       var aToolbarOrder=cMRServer.m_strAgentList.split(";");\r
-                                       var i=0;\r
-                                       for (i=0;i<aToolbarOrder.length;i++)\r
-                                               aToolbarOrder[i]=transferANToPN2(aToolbarOrder[i]);\r
-                                       aToolbarOrder[aToolbarOrder.length] = "blankblock";\r
-                                       if (cMRServer.m_bShowSearchInput)\r
-                                       {\r
-                                               aToolbarOrder[aToolbarOrder.length] = "searchform";\r
-                                       }\r
-                                       aToolbarOrder[aToolbarOrder.length] = "banner";\r
-                                       var aToolbarOrderNew = new Array();\r
-                                       for (i=0;i<aToolbarOrder.length;i++)\r
-                                       {\r
-                                               if (isAPane(aToolbarOrder[i]))\r
-                                               {\r
-                                                       if (oMsg1.oParam.aPanes && oMsg1.oParam.aPanes.length)\r
-                                                       {\r
-                                                               for (var j=0;j<oMsg1.oParam.aPanes.length;j++)\r
-                                                               {\r
-                                                                       if (aToolbarOrder[i] == oMsg1.oParam.aPanes[j].sPaneName)\r
-                                                                       {\r
-                                                                               aToolbarOrderNew[aToolbarOrderNew.length] = aToolbarOrder[i];\r
-                                                                               break;\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                               }\r
-                                               else\r
-                                                       aToolbarOrderNew[aToolbarOrderNew.length] = aToolbarOrder[i];\r
-                                       }\r
-                                       oMsg.oParam = aToolbarOrderNew.join("|");\r
-                                       return false;\r
-                               }\r
-                       }\r
-               }\r
-               oMsg.oParam = gsToolbarOrder;\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_MINIBARORDER)\r
-       {\r
-               oMsg.oParam = gsMinibarOrder;\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_ISSYNCSSUPPORT)\r
-       {\r
-               if (this.cMRServer && cMRServer.m_strVersion)\r
-               {\r
-                       if (cMRServer.m_bShowSync)\r
-                               oMsg.oParam=true;\r
-                       else\r
-                               oMsg.oParam=false;\r
-                       return false;\r
-               }\r
-               else\r
-               {\r
-                       if(nViewFrameType)\r
-                       {\r
-                               oMsg.oParam= (nViewFrameType < 3);\r
-                               return false;\r
-                       }\r
-               }\r
-       }\r
-       else if (nMsgId == WH_MSG_ISAVENUESUPPORT)\r
-       {\r
-               if (this.cMRServer && cMRServer.m_strVersion)\r
-               {\r
-                       if (cMRServer.m_bShowBrowseSequences)\r
-                               oMsg.oParam=true;\r
-                       else\r
-                               oMsg.oParam=false;\r
-               }\r
-               else\r
-               {\r
-                       oMsg.oParam=true;\r
-               }\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_ISSEARCHSUPPORT)\r
-       {\r
-               if(nViewFrameType)\r
-               {\r
-                       oMsg.oParam= (nViewFrameType < 3);\r
-                       return false;\r
-               }\r
-       }\r
-       else if (nMsgId == WH_MSG_GETPANETYPE)\r
-       {\r
-               if(nViewFrameType)\r
-               {\r
-                       var oPaneInfo = new Object();\r
-                       oPaneInfo.nType = nViewFrameType;\r
-                       oPaneInfo.sPaneURL = strPane;\r
-                       oMsg.oParam = oPaneInfo;\r
-                       return false;\r
-               }\r
-       }\r
-       else if (nMsgId == WH_MSG_GETPANES)\r
-       {\r
-               if (this.cMRServer && cMRServer.m_strVersion)\r
-               {\r
-                       var oPanes = new Object();\r
-                       var aAgentNames = null;\r
-                       if (cMRServer.m_strDefAgent)\r
-                               oPanes.sDefault = transferAgentNameToPaneName(cMRServer.m_strDefAgent);\r
-\r
-                       aPanes = new Array();\r
-                       for(var i=0; i< cMRServer.m_cAgents.length; i++)\r
-                       {\r
-                               var nCur = aPanes.length;\r
-                               aPanes[nCur] = new Object();\r
-                               aPanes[nCur].sPaneName = transferAgentNameToPaneName(cMRServer.m_cAgents[i].m_strID);\r
-                               aPanes[nCur].sPaneURL = cMRServer.m_cAgents[i].m_strURL;\r
-                       }\r
-                       oPanes.aPanes = aPanes;\r
-                       oMsg.oParam = oPanes;\r
-                       return false;\r
-               }\r
-               else\r
-               {\r
-                       oMsg.oParam = null;\r
-                       return false;\r
-               }\r
-       }\r
-       else if(nMsgId==WH_MSG_RELOADNS6)\r
-       {\r
-               if(gbNav6)\r
-                       gnReload=1;\r
-               return false;\r
-       }\r
-       return true;\r
-}\r
-\r
-function transferANToPN2(sAN)\r
-{\r
-       if (sAN =="toc")\r
-               return "toc";\r
-       else if (sAN =="ndx")\r
-               return "idx";\r
-       else if (sAN =="nls")\r
-               return "fts";\r
-       else if (sAN =="Glossary")\r
-               return "glo";\r
-       else if (sAN =="WebSearch")\r
-               return "websearch";\r
-       else if (sAN.indexOf("custom_")==0);\r
-               return "custom" + sAN.substring(7);\r
-       return sAN;\r
-}\r
-\r
-function transferAgentNameToPaneName(sAgentName)\r
-{\r
-       if (sAgentName =="toc")\r
-               return "toc";\r
-       else if (sAgentName =="ndx")\r
-               return "idx";\r
-       else if (sAgentName =="nls")\r
-               return "fts";\r
-       else if (sAgentName =="gls")\r
-               return "glo";\r
-       return "";\r
-}\r
-\r
-function isAPane(sPaneName)\r
-{\r
-       if (sPaneName == "toc" || sPaneName == "idx" || sPaneName == "fts" || sPaneName == "glo")\r
-               return true;\r
-       else\r
-               return false;\r
-}
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whstub.js b/doc/salome/gui/SMESH/whstub.js
deleted file mode 100755 (executable)
index 7a67691..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-window.whname="wh_stub";\r
-function getframehandle(frames,framename)\r
-{\r
-       var frame=null;\r
-       if(null==frames) return null;\r
-       for(var i=0;i<frames.length;i++)\r
-       {\r
-               if(typeof(frames[i].name)!="unknown")\r
-               {\r
-                       if(frames[i].name==framename)\r
-                               return frames[i];\r
-                       if(frames[i].frames.length>0)\r
-                               frame=getframehandle(frames[i].frames,framename);\r
-                               if(null!=frame)\r
-                                       return frame;\r
-               }\r
-       }\r
-       return frame;\r
-}\r
-\r
-function AddToArray(arr,obj)\r
-{\r
-       var bFound=false;\r
-       for(var i=0;i<arr.length;i++){\r
-               if(arr[i]==obj){\r
-                       bFound=true;\r
-                       break;\r
-               }\r
-               else if(arr[i]==null){\r
-                       break;\r
-               }\r
-       }\r
-       if(!bFound) arr[i]=obj;\r
-}\r
-\r
-var gArrayRegistedMessage=new Array();\r
-var gArrayCompoentsArray=new Array();\r
-\r
-function GetComponentsArray(nMessageId)\r
-{\r
-       var len=gArrayRegistedMessage.length;\r
-       for(var i=0;i<len;i++)\r
-       {\r
-               if(gArrayRegistedMessage[i]==nMessageId){\r
-                       if(gArrayCompoentsArray.length>i)\r
-                               return gArrayCompoentsArray[i];\r
-                       else\r
-                               return null;\r
-               }\r
-       }\r
-       return null;\r
-}\r
-\r
-function CreateComponentsArray(nMessageId)\r
-{\r
-       var len=gArrayRegistedMessage.length;\r
-       gArrayRegistedMessage[len]=nMessageId;\r
-       gArrayCompoentsArray[len]=new Array();\r
-       return gArrayCompoentsArray[len];\r
-}\r
-\r
-function listener(sName,oWindow)\r
-{\r
-       this.sName=sName;\r
-       this.oWindow=oWindow;\r
-}\r
-\r
-function RegisterListener(windowName,nMessageId)\r
-{\r
-       var arrayComponents=GetComponentsArray(nMessageId);\r
-       if(arrayComponents==null)\r
-               arrayComponents=CreateComponentsArray(nMessageId);\r
-       \r
-       if(arrayComponents!=null)\r
-       {\r
-               for (var i=0;i<arrayComponents.length;i++)\r
-               {\r
-                       if (arrayComponents[i].sName == windowName)\r
-                               return false;\r
-               }\r
-               var oListener=new listener(windowName,null);\r
-               AddToArray(arrayComponents,oListener);\r
-               return true;\r
-       }\r
-       else\r
-               return false;\r
-}\r
-\r
-function RegisterListener2(oWindow,nMessageId)\r
-{\r
-       var arrayComponents=GetComponentsArray(nMessageId);\r
-       if(arrayComponents==null)\r
-               arrayComponents=CreateComponentsArray(nMessageId);\r
-       \r
-       if(arrayComponents!=null)\r
-       {\r
-               var oListener=new listener("",oWindow);\r
-               AddToArray(arrayComponents,oListener);\r
-               return true;\r
-       }\r
-       else\r
-               return false;\r
-}\r
-\r
-function UnRegisterListener2(oWindow,nMessageId)\r
-{\r
-       var arrayComponents=GetComponentsArray(nMessageId);\r
-       if(arrayComponents!=null)\r
-       {\r
-               for(var i=0;i<arrayComponents.length;i++)\r
-               {\r
-                       if(arrayComponents[i].oWindow==oWindow)\r
-                       {\r
-                               removeItemFromArray(arrayComponents,i);\r
-                               return true;\r
-                       }\r
-               }\r
-       }\r
-       else\r
-               return false;\r
-}\r
-\r
-function SendMessage(oMessage)\r
-{\r
-       var bDelivered=false;\r
-       var arrayComponents=GetComponentsArray(oMessage.nMessageId);\r
-       if(arrayComponents!=null&&arrayComponents.length>0){\r
-               for(var i=0;i<arrayComponents.length;i++)\r
-               {\r
-                       if(null!=arrayComponents[i])\r
-                       {\r
-                               var pFrame;\r
-                               if(arrayComponents[i].oWindow==null)\r
-                                       pFrame=getframehandle(frames,arrayComponents[i].sName);\r
-                               else\r
-                                       pFrame=arrayComponents[i].oWindow;\r
-                               if(null!=pFrame)\r
-                               {\r
-                                       if(pFrame.onSendMessageX)\r
-                                       {\r
-                                               bDelivered=true;\r
-                                               if(!pFrame.onSendMessageX(oMessage))\r
-                                                       break;\r
-                                       }\r
-                                       if(pFrame.onSendMessage)\r
-                                       {\r
-                                               bDelivered=true;\r
-                                               if(!pFrame.onSendMessage(oMessage))\r
-                                                       break;\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-       return bDelivered;\r
-}
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/wht_abge.jpg b/doc/salome/gui/SMESH/wht_abge.jpg
deleted file mode 100755 (executable)
index bfab652..0000000
Binary files a/doc/salome/gui/SMESH/wht_abge.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_abgi.jpg b/doc/salome/gui/SMESH/wht_abgi.jpg
deleted file mode 100755 (executable)
index f0729b7..0000000
Binary files a/doc/salome/gui/SMESH/wht_abgi.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_abgw.jpg b/doc/salome/gui/SMESH/wht_abgw.jpg
deleted file mode 100755 (executable)
index 74de750..0000000
Binary files a/doc/salome/gui/SMESH/wht_abgw.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_abte.jpg b/doc/salome/gui/SMESH/wht_abte.jpg
deleted file mode 100755 (executable)
index 78fabbb..0000000
Binary files a/doc/salome/gui/SMESH/wht_abte.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_abti.jpg b/doc/salome/gui/SMESH/wht_abti.jpg
deleted file mode 100755 (executable)
index 92c2d68..0000000
Binary files a/doc/salome/gui/SMESH/wht_abti.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_abtw.jpg b/doc/salome/gui/SMESH/wht_abtw.jpg
deleted file mode 100755 (executable)
index 1fdd1a8..0000000
Binary files a/doc/salome/gui/SMESH/wht_abtw.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_fts_h.gif b/doc/salome/gui/SMESH/wht_fts_h.gif
deleted file mode 100755 (executable)
index feb79ae..0000000
Binary files a/doc/salome/gui/SMESH/wht_fts_h.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_fts_n.gif b/doc/salome/gui/SMESH/wht_fts_n.gif
deleted file mode 100755 (executable)
index 8483be4..0000000
Binary files a/doc/salome/gui/SMESH/wht_fts_n.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_glo_h.gif b/doc/salome/gui/SMESH/wht_glo_h.gif
deleted file mode 100755 (executable)
index 12223e5..0000000
Binary files a/doc/salome/gui/SMESH/wht_glo_h.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_glo_n.gif b/doc/salome/gui/SMESH/wht_glo_n.gif
deleted file mode 100755 (executable)
index 32803eb..0000000
Binary files a/doc/salome/gui/SMESH/wht_glo_n.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_go.gif b/doc/salome/gui/SMESH/wht_go.gif
deleted file mode 100755 (executable)
index 106f1d1..0000000
Binary files a/doc/salome/gui/SMESH/wht_go.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_hide.gif b/doc/salome/gui/SMESH/wht_hide.gif
deleted file mode 100755 (executable)
index 6ec602d..0000000
Binary files a/doc/salome/gui/SMESH/wht_hide.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_idx_h.gif b/doc/salome/gui/SMESH/wht_idx_h.gif
deleted file mode 100755 (executable)
index 2df1b16..0000000
Binary files a/doc/salome/gui/SMESH/wht_idx_h.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_idx_n.gif b/doc/salome/gui/SMESH/wht_idx_n.gif
deleted file mode 100755 (executable)
index fd193a0..0000000
Binary files a/doc/salome/gui/SMESH/wht_idx_n.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_logo1.gif b/doc/salome/gui/SMESH/wht_logo1.gif
deleted file mode 100755 (executable)
index 2ef5700..0000000
Binary files a/doc/salome/gui/SMESH/wht_logo1.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_logo2.gif b/doc/salome/gui/SMESH/wht_logo2.gif
deleted file mode 100755 (executable)
index 2ac62e8..0000000
Binary files a/doc/salome/gui/SMESH/wht_logo2.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_next.gif b/doc/salome/gui/SMESH/wht_next.gif
deleted file mode 100755 (executable)
index 8ea834d..0000000
Binary files a/doc/salome/gui/SMESH/wht_next.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_next_g.gif b/doc/salome/gui/SMESH/wht_next_g.gif
deleted file mode 100755 (executable)
index c0e9758..0000000
Binary files a/doc/salome/gui/SMESH/wht_next_g.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_prev.gif b/doc/salome/gui/SMESH/wht_prev.gif
deleted file mode 100755 (executable)
index b7eaba8..0000000
Binary files a/doc/salome/gui/SMESH/wht_prev.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_prev_g.gif b/doc/salome/gui/SMESH/wht_prev_g.gif
deleted file mode 100755 (executable)
index 8647909..0000000
Binary files a/doc/salome/gui/SMESH/wht_prev_g.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_spac.gif b/doc/salome/gui/SMESH/wht_spac.gif
deleted file mode 100755 (executable)
index fc25609..0000000
Binary files a/doc/salome/gui/SMESH/wht_spac.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_sync.gif b/doc/salome/gui/SMESH/wht_sync.gif
deleted file mode 100755 (executable)
index 0ef1747..0000000
Binary files a/doc/salome/gui/SMESH/wht_sync.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab0.gif b/doc/salome/gui/SMESH/wht_tab0.gif
deleted file mode 100755 (executable)
index 955c42f..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab0.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab1.gif b/doc/salome/gui/SMESH/wht_tab1.gif
deleted file mode 100755 (executable)
index b3ec41d..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab1.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab2.gif b/doc/salome/gui/SMESH/wht_tab2.gif
deleted file mode 100755 (executable)
index 08fb0ce..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab2.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab3.gif b/doc/salome/gui/SMESH/wht_tab3.gif
deleted file mode 100755 (executable)
index 1819c8e..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab3.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab4.gif b/doc/salome/gui/SMESH/wht_tab4.gif
deleted file mode 100755 (executable)
index 1a6fc4f..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab4.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab5.gif b/doc/salome/gui/SMESH/wht_tab5.gif
deleted file mode 100755 (executable)
index 9340192..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab5.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab6.gif b/doc/salome/gui/SMESH/wht_tab6.gif
deleted file mode 100755 (executable)
index fe312d2..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab6.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab7.gif b/doc/salome/gui/SMESH/wht_tab7.gif
deleted file mode 100755 (executable)
index 3b95ae2..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab7.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab8.gif b/doc/salome/gui/SMESH/wht_tab8.gif
deleted file mode 100755 (executable)
index c80acc8..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab8.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_toc1.gif b/doc/salome/gui/SMESH/wht_toc1.gif
deleted file mode 100755 (executable)
index 515c352..0000000
Binary files a/doc/salome/gui/SMESH/wht_toc1.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_toc2.gif b/doc/salome/gui/SMESH/wht_toc2.gif
deleted file mode 100755 (executable)
index 2e3d6c8..0000000
Binary files a/doc/salome/gui/SMESH/wht_toc2.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_toc3.gif b/doc/salome/gui/SMESH/wht_toc3.gif
deleted file mode 100755 (executable)
index 330f369..0000000
Binary files a/doc/salome/gui/SMESH/wht_toc3.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_toc4.gif b/doc/salome/gui/SMESH/wht_toc4.gif
deleted file mode 100755 (executable)
index 3f9a036..0000000
Binary files a/doc/salome/gui/SMESH/wht_toc4.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_toc_h.gif b/doc/salome/gui/SMESH/wht_toc_h.gif
deleted file mode 100755 (executable)
index fe20f68..0000000
Binary files a/doc/salome/gui/SMESH/wht_toc_h.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_toc_n.gif b/doc/salome/gui/SMESH/wht_toc_n.gif
deleted file mode 100755 (executable)
index ce28310..0000000
Binary files a/doc/salome/gui/SMESH/wht_toc_n.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_ws.gif b/doc/salome/gui/SMESH/wht_ws.gif
deleted file mode 100755 (executable)
index 563db8b..0000000
Binary files a/doc/salome/gui/SMESH/wht_ws.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_ws_g.gif b/doc/salome/gui/SMESH/wht_ws_g.gif
deleted file mode 100755 (executable)
index 3056b75..0000000
Binary files a/doc/salome/gui/SMESH/wht_ws_g.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whtbar.js b/doc/salome/gui/SMESH/whtbar.js
deleted file mode 100755 (executable)
index a183c98..0000000
+++ /dev/null
@@ -1,1990 +0,0 @@
-var gaButtons=new Array();\r
-var    gaTypes=new Array();\r
-var gaBtnBgColor=new Array();\r
-var gaSelBtnBgColor=new Array();\r
-var gaOrders=null;\r
-var gaObjBtns=new Array();\r
-var BTN_TEXT=1;\r
-var BTN_IMG=2;\r
-var BTN_IMG_TOP=4\r
-var BTN_IMG_BOTTOM=8;\r
-var BTN_IMG_LEFT=16;\r
-var BTN_IMG_RIGHT=32;\r
-var gsAlign="left";\r
-var gsBgImage="";\r
-var gsBgColor="#99ccff";\r
-var gsShadow="#cccccc";\r
-var gsTBBgImage="";\r
-var gnShowHideStyle=0;\r
-var goTocInfo=null;\r
-var gbTocInfoInited=false;\r
-var goWebSearch=null;\r
-var gsTBFontFamily="Arial";\r
-var gsTBFontSize="xx-small";\r
-var gsTBFontColor="#003063";\r
-var gsTBDarkColor="#808080";\r
-var gsTBLightColor="#FFFAFA";\r
-var gsTBSelectedBgColor="#639ace";\r
-var gsTBFontSelectedColor="#ffffff";\r
-var gaOnLoads=new Array();\r
-var goWebSearchEnable=true;\r
-\r
-var goShow=null;\r
-var goHide=null;\r
-var goHide2=null;\r
-var goSync=null;\r
-\r
-var goToc=null;\r
-var goIdx=null;\r
-var goFts=null;\r
-var goGlo=null;\r
-var goNext=null;\r
-var goPrev=null;\r
-\r
-var LAYOUT=1;\r
-var HLAYOUT=0;\r
-var VLAYOUT=1;\r
-var ALIGN=2;\r
-var BALIGN=0;\r
-var EALIGN=2;\r
-var goEl=null;\r
-var gnRE=0;\r
-\r
-var gnButtonLayout=0;\r
-var gnShowHide=-1;\r
-\r
-var gbEqualSize=false;\r
-var goCusButton=new Array();\r
-var gsBtnStyle="";\r
-var gaAvenues=null;\r
-var gsCurAveName="";\r
-\r
-var gsIToc=null;\r
-var gsITocS=null;\r
-var gsIIndex=null;\r
-var gsIIndexS=null;\r
-var gsISearch=null;\r
-var gsISearchS=null;\r
-var gsIGlossary=null;\r
-var gsIGlossaryS=null;\r
-var gsIBanner=null;\r
-var gsIGo=null;\r
-\r
-var gsIHide=null;\r
-var gsIPrev=null;\r
-var gsINext=null;\r
-var gsISync=null;\r
-var gsINextD=null;\r
-var gsIPrevD=null;\r
-var gsIWebSearch=null;\r
-var gsIWebSearchD=null;\r
-\r
-var gbAveButttnInited=false;\r
-var goNextParent=null;\r
-var goPrevParent=null;\r
-var gsSearchPrompt="- Search -";\r
-\r
-var gstrSearch="";\r
-var gbPreview=false;\r
-gbPreview=false; \r
-var gsSearchFormTitle="";\r
-var gnHasNavPane=-1;\r
-var gbInitBtn=false;\r
-var gaBtns=new Array();\r
-var gbWhTBar=false;\r
-var goTextFont=null;\r
-var goSelTextFont=null;\r
-var gsPane="";\r
-var gbNeedUpdateAve=false;\r
-var gbUpdateTimerCount=0;\r
-\r
-function setGoImage(sGoImage)\r
-{\r
-       if(sGoImage)\r
-       {\r
-               gsIGo=sGoImage;\r
-       }\r
-}\r
-\r
-function btnBgColor(sType,sColor)\r
-{\r
-       this.sType=sType;\r
-       this.sColor=sColor;\r
-}\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       gsBgImage=sBgImage;\r
-}\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       gsBgColor=sBgColor;\r
-}\r
-\r
-function setAlignment(strAlignment)\r
-{\r
-       gnButtonLayout=0;\r
-       if(strAlignment=="left")\r
-       {\r
-               gnButtonLayout=HLAYOUT|BALIGN;\r
-       }\r
-       else if(strAlignment=="right")\r
-       {\r
-               gnButtonLayout=HLAYOUT|EALIGN;\r
-       }\r
-       else if(strAlignment=="top")\r
-       {\r
-               gnButtonLayout=VLAYOUT|BALIGN;\r
-       }\r
-       else if(strAlignment=="bottom")\r
-       {\r
-               gnButtonLayout=VLAYOUT|EALIGN;\r
-       }\r
-}\r
-\r
-function writeStyle(bMiniBar)\r
-{\r
-       var sStyle="";\r
-       sStyle+="<style type='text/css'>\n";\r
-       sStyle+="<!--\n";\r
-       sStyle+=".clsBtnNormal {\n";\r
-       if(!(gbNav4&&!gbNav6))\r
-               if (bMiniBar)\r
-                       sStyle+="padding:2px;\n";\r
-               else\r
-                       sStyle+="padding:5px;\n";\r
-       sStyle+="cursor:hand;\n";\r
-       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
-       sStyle+="font-size:"+gsTBFontSize+";\n";\r
-       sStyle+="color:"+gsTBFontColor+";}\n";\r
-\r
-       sStyle+=".clsNoBNormal {\n";\r
-       sStyle+="padding-left:2px;padding-right:2px;\n";\r
-       sStyle+="cursor:hand;\n";\r
-       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
-       sStyle+="font-size:"+gsTBFontSize+";\n";\r
-       sStyle+="color:"+gsTBFontColor+";}\n";\r
-\r
-       sStyle+=".clsNotBtn {\n";\r
-       if(!(gbNav4&&!gbNav6))\r
-               if (bMiniBar)\r
-                       sStyle+="padding:2px;\n";\r
-               else\r
-                       sStyle+="padding:5px;\n";\r
-       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
-       sStyle+="font-size:"+gsTBFontSize+";\n";\r
-       sStyle+="color:"+gsTBFontColor+";}\n";\r
-\r
-       sStyle+=".clsBtnUp{\n";\r
-       if(!(gbNav4&&!gbNav6))\r
-               if (bMiniBar)\r
-                       sStyle+="padding:1px;\n";\r
-               else\r
-                       sStyle+="padding:4px;\n";\r
-       sStyle+="border-bottom:"+gsTBDarkColor+" 1px solid;\n";\r
-       sStyle+="border-left:"+gsTBLightColor+" 1px solid;\n";\r
-       sStyle+="border-right:"+gsTBDarkColor+" 1px solid;\n";\r
-       sStyle+="border-top:"+gsTBLightColor+" 1px solid;\n";\r
-       sStyle+="cursor:hand;";\r
-       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
-       sStyle+="font-size:"+gsTBFontSize+";\n";\r
-       sStyle+="color:"+gsTBFontColor+";}\n";\r
-\r
-       sStyle+=".clsNoBUp{\n";\r
-       sStyle+="padding-left:2px;padding-right:2px;\n";\r
-       sStyle+="cursor:hand;";\r
-       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
-       sStyle+="font-size:"+gsTBFontSize+";\n";\r
-       sStyle+="color:"+gsTBFontColor+";}\n";\r
-\r
-       sStyle+=".clsBtnDown{\n";\r
-       if(!(gbNav4&&!gbNav6))\r
-               if (bMiniBar)\r
-                       sStyle+="padding:1px;\n";\r
-               else\r
-                       sStyle+="padding:4px;\n";\r
-       sStyle+="border-bottom:"+gsTBLightColor+" 1px solid;\n";\r
-       sStyle+="border-left:"+gsTBDarkColor+" 1px solid;\n";\r
-       sStyle+="border-right:"+gsTBLightColor+" 1px solid;\n";\r
-       sStyle+="border-top:"+gsTBDarkColor+" 1px solid;\n";\r
-       sStyle+="color:"+gsTBFontColor+";\n";\r
-       sStyle+="cursor:hand;\n";\r
-       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
-       sStyle+="font-size:"+gsTBFontSize+";}\n";\r
-\r
-       sStyle+=".clsNoBDown{\n";\r
-       sStyle+="padding-left:2px;padding-right:2px;\n";\r
-       sStyle+="cursor:hand;";\r
-       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
-       sStyle+="font-size:"+gsTBFontSize+";\n";\r
-       sStyle+="color:"+gsTBFontColor+";}\n";\r
-\r
-       sStyle+=getDefaultButtonFont();\r
-       sStyle+=gsBtnStyle;\r
-       sStyle+=".clsToolbarBackground{\n";\r
-       sStyle+="margin:2px;}\n";\r
-       sStyle+="-->\n";\r
-       sStyle+=" body {\n";\r
-       if (gsBgImage)\r
-               sStyle+="border-top:"+gsBgColor+" 1px solid;}\n";\r
-       else\r
-               sStyle+="border-top:black 1px solid;}\n";\r
-       sStyle+="-->\n";\r
-       sStyle+="</style>\n";\r
-       document.write(sStyle);\r
-}\r
-\r
-function button(sType,sText,nWidth,nHeight)\r
-{\r
-       this.sType=sType;\r
-       this.sText=sText;\r
-       this.nWidth=nWidth;\r
-       this.nHeight=nHeight;\r
-       \r
-       this.aIs=new Array();\r
-       var i=0;\r
-       while(button.arguments.length>i+4)\r
-       {\r
-               if (button.arguments[4+i])\r
-                       this.aIs[i]=_getFullPath(_getPath(document.location.href),button.arguments[4+i]);\r
-               else\r
-                       this.aIs[i]="";\r
-               i++;\r
-       }\r
-}\r
-\r
-function getImage(oImage,sTitle)\r
-{\r
-       if(oImage.aIs[0])\r
-       {\r
-               var sI="";\r
-               if(sTitle=="")\r
-                       sTitle=oImage.sText;\r
-               sI+="<img alt=\""+sTitle+"\" src=\""+oImage.aIs[0]+"\"";\r
-               if(oImage.nWidth>0)\r
-                       sI+=" width="+oImage.nWidth;\r
-               if(oImage.nHeight>0)\r
-                       sI+=" height="+oImage.nHeight;\r
-               sI+=" border=no align=\"absmiddle\">";\r
-               return sI;\r
-       }\r
-       return "";\r
-}\r
-\r
-function getCurrentAveName()\r
-{\r
-       var oSelect=getElement("avenue");\r
-       if(oSelect)\r
-               return oSelect.value;\r
-       else\r
-               return "";\r
-}\r
-\r
-function updateWebSearch(bEnable)\r
-{\r
-       var oWebSearch=getElement("btnwebsearch");\r
-       var oWebSearchParent=null;\r
-       if(oWebSearch)\r
-               oWebSearchParent=getParentNode(oWebSearch);\r
-       goWebSearchEnable=bEnable;\r
-       if(oWebSearchParent)\r
-       {\r
-               if(bEnable)\r
-                       enableButton(oWebSearchParent,goWebSearch);\r
-               else\r
-                       disableButton(oWebSearchParent,goWebSearch);\r
-       }\r
-\r
-}\r
-\r
-function setState(oEL,sState)\r
-{\r
-       if(gbNav6)\r
-               oEL.setAttribute("state",sState);\r
-       else\r
-               oEL.state=sState;       \r
-}\r
-\r
-function updateAvenueIfNeeded()\r
-{\r
-       gbUpdateTimerCount--;\r
-       if (gbNeedUpdateAve&&gbUpdateTimerCount==0)\r
-       {\r
-               updateAvenue();\r
-       }\r
-}\r
-\r
-function updateAvenue()\r
-{\r
-       var sSelect=getAvenueHTML(gaAvenues);\r
-       var oSelect=getElement("avenue");\r
-       if(oSelect)\r
-       {\r
-               if(gbNav6)\r
-               {\r
-                       var oParent=getParentNode(oSelect);\r
-                       \r
-                       if(oParent)\r
-                       {\r
-                               removeThis(oSelect);\r
-                               oParent.insertAdjacentHTML("afterBegin",sSelect);\r
-                       }\r
-               }\r
-               else\r
-                       oSelect.outerHTML=sSelect;      \r
-               oSelect=getElement("avenue");\r
-               if(isValidAvenue(gaAvenues,gsCurAveName))\r
-                       oSelect.value=gsCurAveName;\r
-       }\r
-       updateAveButton();\r
-}\r
-\r
-function initAveButtonObj()\r
-{\r
-       if(!gbAveButttnInited)\r
-       {\r
-               var oNext=getElement("btnavnext");\r
-               if(oNext)\r
-                       goNextParent=getParentNode(oNext);\r
-\r
-               var oPrev=getElement("btnavprev");\r
-               if(oPrev)\r
-                       goPrevParent=getParentNode(oPrev);\r
-       }\r
-       gbAveButttnInited=true;\r
-}\r
-\r
-function disableAveButton()\r
-{\r
-       initAveButtonObj();\r
-       if(goNextParent)\r
-               disableButton(goNextParent,goNext);\r
-       if(goPrevParent)\r
-               disableButton(goPrevParent,goPrev);\r
-}\r
-\r
-function disableButton(oEl,oBtn)\r
-{\r
-       setState(oEl,"disable");\r
-       var sPF=oEl.className.substring(0,6);\r
-       oEl.className=sPF+"Normal";\r
-       var oIs=getElementsByTag(oEl,"img");\r
-       if(oIs.length>0&&oBtn&&oBtn.aIs&&oBtn.aIs.length>3)\r
-       {\r
-               if(oBtn.aIs[3])\r
-                       oIs[0].src=oBtn.aIs[3];\r
-       }\r
-       else\r
-               oEl.style.visibility="hidden";\r
-}\r
-\r
-function enableButton(oEl,oBtn)\r
-{\r
-       setState(oEl,"normal");\r
-       if(oEl==goEl)\r
-       {\r
-               var sPF=oEl.className.substring(0,6);\r
-               oEl.className=sPF+"Up";\r
-       }\r
-       var oIs=getElementsByTag(oEl,"img");\r
-       if(oIs.length>0&&oBtn&&oBtn.aIs&&oBtn.aIs.length>0)\r
-       {\r
-               if(oBtn.aIs[0])\r
-                       oIs[0].src=oBtn.aIs[0];\r
-       }\r
-       oEl.style.visibility="visible";\r
-}\r
-\r
-function updateAveButton()\r
-{\r
-       initAveButtonObj();     \r
-       var strAveName=getCurrentAvenue();\r
-       if(strAveName!="")\r
-       {\r
-               if(gaAvenues)\r
-               {\r
-                       for(var i=0;i<gaAvenues.length;i++)\r
-                       if(gaAvenues[i].sName==strAveName)\r
-                       {\r
-                               if(goNextParent)\r
-                               {\r
-                                       if(gaAvenues[i].sNext!=null&&gaAvenues[i].sNext!="")\r
-                                               enableButton(goNextParent,goNext);\r
-                                       else\r
-                                               disableButton(goNextParent,goNext);\r
-                               }\r
-                               if(goPrevParent)\r
-                               {\r
-                                       if(gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev!="")\r
-                                               enableButton(goPrevParent,goPrev);\r
-                                       else\r
-                                               disableButton(goPrevParent,goPrev);\r
-                               }       \r
-                               break;\r
-                       }\r
-               }\r
-       }\r
-       else\r
-       {\r
-               var bNext=false;\r
-               var bPrev=false;\r
-               if(gaAvenues&&gaAvenues.length>0)\r
-               {\r
-                       for(var i=0;i<gaAvenues.length&&(!bNext||!bPrev);i++)\r
-                       {\r
-                               if(!bNext)\r
-                                       if(gaAvenues[i].sNext!=null&&gaAvenues[i].sNext!="")\r
-                                               bNext=true;     \r
-                               if(!bPrev)\r
-                                       if(gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev!="")\r
-                                               bPrev=true;     \r
-                       }\r
-               }\r
-               if(goNextParent)\r
-               {\r
-                       if(bNext)\r
-                               enableButton(goNextParent,goNext);\r
-                       else\r
-                               disableButton(goNextParent,goNext);\r
-               }\r
-               \r
-               if(goPrevParent)\r
-               {\r
-                       if(bPrev)\r
-                               enableButton(goPrevParent,goPrev);\r
-                       else\r
-                               disableButton(goPrevParent,goPrev);\r
-               }\r
-       }\r
-       \r
-}\r
-\r
-function isValidAvenue(aAvenues,sValue)\r
-{\r
-       if(aAvenues)\r
-       {\r
-               for(var i=0;i<aAvenues.length;i++)\r
-               {\r
-                       if(aAvenues[i].sName==sValue)\r
-                               return true;\r
-               }\r
-       }\r
-       return false;\r
-}\r
-\r
-function getAvenueHTML(aAvenues)\r
-{\r
-       var sSelect="<select id=\"avenue\" size=\"1\" name=\"avenue\" onchange=\"updateAveButton();\">";\r
-       sSelect+="<option value=\"\" selected> - Select Avenue - </option>";\r
-       if(aAvenues)\r
-       {\r
-               for(var i=0;i<aAvenues.length;i++)\r
-               {\r
-                       sSelect+="<option value=\""+aAvenues[i].sName+"\">"+aAvenues[i].sName+"</option>";\r
-               }\r
-       }\r
-       sSelect+="</select>";\r
-       return sSelect;\r
-}\r
-\r
-function addAvenueSelection()\r
-{\r
-       var oMsg=new whMessage(WH_MSG_GETAVIAVENUES,this,1,new Object());\r
-       var sButton="";\r
-       if(SendMessage(oMsg))\r
-       {\r
-               sButton=getAvenueHTML(oMsg.oParam.aAvenues);\r
-       }\r
-       else\r
-       {\r
-               sButton=getAvenueHTML(null);\r
-       }\r
-       gaButtons[gaButtons.length]="<td NOWRAP align=\"center\" valign=\"middle\">"+sButton+"</td>";\r
-}\r
-\r
-function setSearchFormTitle(sTitle)\r
-{\r
-       gsSearchFormTitle=sTitle;\r
-}\r
-\r
-function highLightIfNeeded()\r
-{\r
-       if(document.searchForm.searchString.value==gsSearchPrompt)\r
-       {\r
-               document.searchForm.searchString.select();\r
-       }\r
-}\r
-\r
-function addSearchForm()\r
-{\r
-       var sPropmptString=gsSearchPrompt;\r
-\r
-       var nWidth=20;\r
-       if(!nWidth) nWidth=20;\r
-       if(gbNav4) nWidth=nWidth*.6;\r
-\r
-       if(gsSearchFormTitle)\r
-               sPropmptString="";\r
-       var sButton="<table CELLSPACING=0 CELLPADDING=1><tr><td valign=\"middle\" NOWRAP class=\"clsNotBtn\"><span class=\"btnsearchform\">"+_textToHtml(gsSearchFormTitle)+"</span></td><td NOWRAP valign=\"middle\"><input class=\"inputsearchform\" type=\"text\" onfocus=\"highLightIfNeeded();\" name=\"searchString\" value=\""+sPropmptString+"\" size=\""+nWidth+"\"></td>";\r
-       if(gbNav6)\r
-               sButton="<form name=\"searchForm\" method=\"POST\" action=\"javascript:searchB()\">"+sButton;\r
-       if("image"=="text")\r
-       {\r
-               sButton+="<td NOWRAP valign=\"middle\"><a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\"searchForm.submit(); return false;\"></a></td>";\r
-       }\r
-       else if("image"=="image"&&gsIGo)\r
-       {\r
-               sButton+="<td NOWRAP valign=\"middle\"><a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\"searchForm.submit(); return false;\">"\r
-               sButton+="<img alt=\"Go\" src=\""+gsIGo+"\" border=0 align=\"absmiddle\"></a></td>";\r
-       }\r
-       sButton+="</tr></table>";\r
-       if(gbNav6)\r
-               sButton+="</form>";\r
-       var nBtn=gaButtons.length;\r
-       gaButtons[nBtn]="<td NOWRAP align=\"center\" valign=\"middle\">"+sButton+"</td>";\r
-       gaTypes[nBtn]="searchform";\r
-}\r
-\r
-function getShowHide()\r
-{\r
-       var sText="";\r
-       var sI="";\r
-       if(hasNavPane())\r
-       {\r
-               if(goHide)\r
-               {\r
-                       if(gnShowHideStyle&BTN_TEXT)\r
-                               sText=goHide.sText;\r
-                       if(gnShowHideStyle&BTN_IMG)\r
-                       sI=getImage(goHide,"Hide");\r
-               }\r
-       }\r
-       else\r
-       {\r
-               if(goShow)\r
-               {\r
-                       if(gnShowHideStyle&BTN_TEXT)\r
-                               sText=goShow.sText;\r
-                       if(gnShowHideStyle&BTN_IMG)\r
-                               sI=getImage(goShow,"Show");\r
-               }\r
-       }\r
-       var sButton=genButton(sText,sI,gnShowHideStyle);\r
-       return sButton;\r
-}\r
-\r
-function addBanner(sImage)\r
-{\r
-       if(sImage)\r
-       {\r
-               var nBtn=gaButtons.length;\r
-               gaButtons[nBtn]="<td NOWRAP align=\"center\" valign=\"middle\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"javascript:void(0);\" onclick=\"showBanner();return false;\"><img alt=\"About WebHelp\"src=\""+sImage+"\" border=no align=\"absmiddle\"></a></td>";\r
-               gaTypes[nBtn]="banner";\r
-       }\r
-}\r
-\r
-function showBanner()\r
-{\r
-       if (!gbPreview)\r
-       {\r
-               var nWidth=360;\r
-               var nHeight=240;\r
-               var     nScreenWidth=screen.width;\r
-               var     nScreenHeight=screen.height;\r
-               var nLeft=(nScreenWidth-nWidth)/2;\r
-               var nTop=(nScreenHeight-nHeight)/2;\r
-               if (gbIE4)\r
-               {\r
-                       if (gbIE5)\r
-                               nHeight+=20;\r
-                       else\r
-                               nHeight+=40;\r
-                       window.showModalDialog("whskin_banner.htm","","dialogHeight:"+nHeight+"px;dialogWidth:"+nWidth+"px;resizable:no;status:no;scroll:no;help:no;center:yes;");\r
-               }\r
-               else\r
-                       window.open("whskin_banner.htm","banner","dependent,innerHeight="+nHeight+",innerWidth="+nWidth+",height="+nHeight+",width="+nWidth+",resizable=no,menubar=no,location=no,personalbar=no,status=no,scrollbar=no,toolbar=no,screenX="+nLeft+",screenY="+nTop);\r
-       }\r
-}\r
-\r
-function addButton(sType,nStyle,sTitle,sHref,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6)\r
-{\r
-       var sButton="";\r
-       var bMini=false;\r
-       var sText="";\r
-       var sI="";\r
-       var bState=false;\r
-       var nBtn=gaButtons.length;\r
-       var bHref=false;\r
-       if(sType=="show"&&isShowHideEnable())\r
-       {\r
-               var svTitle="Show Navigation Component";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnshowhide\" class=\"btnshow\" href=\"javascript:void(0);\" onclick=\"showHidePane();return false;\">";\r
-               gnShowHideStyle=nStyle;\r
-               goShow=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3);\r
-               gaObjBtns[nBtn]=goShow;\r
-               if(gnShowHide!=-1)\r
-               {\r
-                       nBtn=gnShowHide;\r
-               }\r
-               else\r
-               {\r
-                       gnShowHide=nBtn;\r
-               }\r
-               sButton+=getShowHide();\r
-               sButton+="</a>";\r
-               bState=true;\r
-       }\r
-       else if(sType=="hide"&&isShowHideEnable())\r
-       {\r
-               var svTitle="Hide Navigation Component";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnshowhide\" class=\"btnhide\" href=\"javascript:void(0);\" onclick=\"showHidePane();return false;\">";\r
-               gnShowHideStyle=nStyle;\r
-               goHide=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3);\r
-               gaObjBtns[nBtn]=goHide;\r
-               if(gnShowHide!=-1)\r
-               {\r
-                       nBtn=gnShowHide;\r
-               }\r
-               else\r
-               {\r
-                       gnShowHide=nBtn;\r
-               }\r
-               sButton+=getShowHide();\r
-               sButton+="</a>";\r
-               bState=true;\r
-       }\r
-       else if(sType=="hide2"&&(!gbNav4))\r
-       {\r
-               var svTitle="Hide Navigation Component";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnhide\" class=\"btnhide\" href=\"javascript:void(0);\" onclick=\"showHidePane();return false;\">";\r
-               gnShowHideStyle=nStyle;\r
-               if(!sI1)\r
-                       sI1=gsIHide;\r
-               goHide2=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3);\r
-               gaObjBtns[nBtn]=goHide2;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goHide2.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goHide2,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-               bMini=true;\r
-       }\r
-       else if(sType=="synctoc")\r
-       {\r
-               var svTitle="Sync TOC";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnsynctoc\" class=\"btnsynctoc\" href=\"javascript:void(0);\" onclick=\"syncWithShow();return false;\">";\r
-               if(!sI1)\r
-                       sI1=gsISync;\r
-               goSync=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3);\r
-               gaObjBtns[nBtn]=goSync;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goSync.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goSync,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-               bMini=true;\r
-       }\r
-       else if(sType=="toc")\r
-       {\r
-               var svTitle="Contents";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btntoc\" class=\"btntoc\" href=\"javascript:void(0);\" onclick=\"showToc();return false;\">";\r
-               if(!sI1)\r
-                       sI1=gsIToc;\r
-               if(!sI2)\r
-                       sI2=gsITocS;\r
-               if(!sI4)\r
-                       sI4=gsITocS;\r
-               goToc=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
-               gaObjBtns[nBtn]=goToc;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goToc.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goToc,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-               bState=true;\r
-       }\r
-       else if(sType=="idx")\r
-       {\r
-               var svTitle="Index";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnidx\" class=\"btnidx\" href=\"javascript:void(0);\" onclick=\"showIndex();return false;\">";\r
-               if(!sI1)\r
-                       sI1=gsIIndex;\r
-               if(!sI2)\r
-                       sI2=gsIIndexS;\r
-               if(!sI4)\r
-                       sI4=gsIIndexS;\r
-               goIdx=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
-               gaObjBtns[nBtn]=goIdx;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goIdx.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goIdx,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-               bState=true;\r
-       }\r
-       else if(sType=="fts")\r
-       {\r
-               var svTitle="Search";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnfts\" class=\"btnfts\" href=\"javascript:void(0);\" onclick=\"showFts();return false;\">";\r
-               if(!sI1)\r
-                       sI1=gsISearch;\r
-               if(!sI2)\r
-                       sI2=gsISearchS;\r
-               if(!sI4)\r
-                       sI4=gsISearchS;\r
-               goFts=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
-               gaObjBtns[nBtn]=goFts;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goFts.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goFts,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-               bState=true;\r
-       }\r
-       else if(sType=="glo")\r
-       {\r
-               var svTitle="Glossary";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnglo\" class=\"btnglo\" href=\"javascript:void(0);\" onclick=\"showGlossary();return false;\">";\r
-               if(!sI1)\r
-                       sI1=gsIGlossary;\r
-               if(!sI2)\r
-                       sI2=gsIGlossaryS;\r
-               if(!sI4)\r
-                       sI4=gsIGlossaryS;\r
-               goGlo=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
-               gaObjBtns[nBtn]=goGlo;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goGlo.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goGlo,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-               bState=true;\r
-       }\r
-       else if(sType=="avnext")\r
-       {\r
-               var svTitle="Next Topic";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnavnext\" class=\"btnavnext\" href=\"javascript:void(0);\" onclick=\"goAveNext();return false;\">";\r
-               if(!sI1)\r
-                       sI1=gsINext;\r
-               if(!sI4)\r
-                       sI4=gsINextD;\r
-               goNext=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
-               gaObjBtns[nBtn]=goNext;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goNext.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goNext,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-               bMini=true;\r
-       }\r
-       else if(sType=="avprev")\r
-       {\r
-               var svTitle="Previous Topic";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnavprev\" class=\"btnavprev\" href=\"javascript:void(0);\" onclick=\"goAvePrev();return false;\">";\r
-               if(!sI1)\r
-                       sI1=gsIPrev;\r
-               if(!sI4)\r
-                       sI4=gsIPrevD;\r
-               goPrev=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
-               gaObjBtns[nBtn]=goPrev;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goPrev.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goPrev,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-               bMini=true;\r
-       }\r
-       else if(sType=="blankblock")\r
-       {\r
-               gaButtons[nBtn]=null;\r
-               gaTypes[nBtn]=sType;\r
-       }\r
-       else if(sType=="websearch")\r
-       {\r
-               var svTitle="WebSearch";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnwebsearch\" class=\"btnwebsearch\" href=\"javascript:void(0);\" onclick=\"doWebSearch();return false;\">";\r
-               if(!sI1)\r
-                       sI1=gsIWebSearch;\r
-               if(!sI4)\r
-                       sI4=gsIWebSearchD;\r
-               goWebSearch=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
-               gaObjBtns[nBtn]=goWebSearch;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goWebSearch.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goWebSearch,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-       }\r
-       else if(sType.indexOf("custom")==0)\r
-       {\r
-               var nCusBtnIdx=goCusButton.length;\r
-               goCusButton[nCusBtnIdx]=new cusButton(sType,sTitle,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight,sI1,sI2,sI3);\r
-               gaObjBtns[nBtn]=goCusButton[nCusBtnIdx];\r
-               var re=new RegExp("\"","g");\r
-               var svTitle=sTitle.replace(re, "&quot;");\r
-               if(sHref&&sHref.length!=0)\r
-               {\r
-                       sButton="<a title=\""+svTitle+"\" id=\"btn"+sType+"\" class=\"btn"+sType+"\" target=\"bsscright\" href=\""+sHref+"\" onclick=\"cusOnClick("+nCusBtnIdx+");";\r
-                       bHref=true;\r
-               }\r
-               else\r
-                       sButton="<a title=\""+svTitle+"\" id=\"btn"+sType+"\" class=\"btn"+sType+"\" href=\"javascript:void(0);\" onclick=\"cusOnClick("+nCusBtnIdx+");return false;";\r
-               sButton+="\" onmouseover=\"cusOnMouseOver("+nCusBtnIdx+");\" title=\""+sType+"\">";\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=sTitle;\r
-               if(nStyle&BTN_IMG)\r
-                       sI+=getImage(goCusButton[nCusBtnIdx],sTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-       }\r
-       if(sButton.length!=0)\r
-       {\r
-               var btnClass="";\r
-               if(sText||bMini)\r
-                       btnClass="clsBtnNormal";\r
-               else\r
-                       btnClass="clsNoBNormal";\r
-\r
-               if(!bState)\r
-               {\r
-                       if(bHref)\r
-                               gaButtons[nBtn]="<td NOWRAP valign=\"middle\" align=\"center\" class="+btnClass+" onclick=\"onBtnClick(event);\" onmousedown=\"onBtnMouseDown(event, "+nBtn+");\" onmouseup=\"onBtnMouseUp(event, "+nBtn+");\" onmouseover=\"onBtnMouseOver(event, "+nBtn+");\" onmouseout=\"onBtnMouseOut(event, "+nBtn+");\">"+sButton+"</td>";\r
-                       else\r
-                               gaButtons[nBtn]="<td NOWRAP valign=\"middle\" align=\"center\" class="+btnClass+" onclick=\"onBtnClick(event);return false;\" onmousedown=\"onBtnMouseDown(event, "+nBtn+");\" onmouseup=\"onBtnMouseUp(event, "+nBtn+");\" onmouseover=\"onBtnMouseOver(event, "+nBtn+");\" onmouseout=\"onBtnMouseOut(event, "+nBtn+");\">"+sButton+"</td>";\r
-               }\r
-               else\r
-                       gaButtons[nBtn]="<td NOWRAP valign=\"middle\" align=\"center\" class="+btnClass+" state=\"up\" onclick=\"onBtnClick(event);return false;\" onmousedown=\"onBtnMouseDown(event, "+nBtn+");\" onmouseup=\"onBtnMouseUp(event, "+nBtn+");\" onmouseover=\"onBtnMouseOver(event, "+nBtn+");\" onmouseout=\"onBtnMouseOut(event, "+nBtn+");\">"+sButton+"</td>";\r
-               gaTypes[nBtn]=sType;\r
-       }\r
-\r
-       if(sType=="avenuesel")\r
-               addAvenueSelection();\r
-       else if(sType=="searchform")\r
-               addSearchForm();\r
-       else if(sType=="banner")\r
-       {\r
-               if(!sI1)\r
-                       sI1=gsIBanner;\r
-               addBanner(sI1);\r
-       }\r
-}\r
-\r
-function isShowHideEnable()\r
-{\r
-       if(gbIE4)\r
-               return true;\r
-       else\r
-               return false;\r
-}\r
-\r
-function genButton(sText,sI,nStyle)\r
-{\r
-       var sButton="";\r
-       var sShowText=_textToHtml(sText);\r
-       if (gbNav4 && !gbNav6)\r
-               sShowText += "&nbsp;";\r
-       if(sText!=""&&sI!="")\r
-       {\r
-               if(nStyle&BTN_IMG_TOP)\r
-                       sButton+=sI+"<br>"+ sShowText;\r
-               else if(nStyle&BTN_IMG_BOTTOM)\r
-                       sButton+=sText+"<br>"+sI;\r
-               else if(nStyle&BTN_IMG_RIGHT)\r
-                       sButton+=sText+"&nbsp;"+sI;\r
-               else\r
-                       sButton+=sI+"&nbsp;"+sShowText;\r
-       }\r
-       else if(sText!="")\r
-       {\r
-               sButton+=sShowText;\r
-       }\r
-       else if(sI!="")\r
-       {\r
-               sButton+=sI;\r
-       }\r
-       return sButton;\r
-}\r
-\r
-function searchB()\r
-{\r
-       var onMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null);\r
-       SendMessage(onMsg);\r
-\r
-       var oMsg=new whMessage(WH_MSG_SEARCHTHIS,this,1,document.searchForm.searchString.value);\r
-       if(!SendMessage(oMsg))\r
-               gstrSearch=document.searchForm.searchString.value;\r
-       else\r
-               gstrSearch="";\r
-}\r
-\r
-function ReSortToolbarButtons()\r
-{\r
-       var bSearchEnabled=isSearchEnabled();\r
-       var strOrder="";\r
-       var oMsg=new whMessage(WH_MSG_TOOLBARORDER,this,1,null);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               strOrder=oMsg.oParam;\r
-       }\r
-       if(strOrder.length>0)\r
-       {\r
-               gaOrders=strOrder.split("|");\r
-               var aTempButtons=new Array();\r
-               var ti=0;\r
-               for(var si=0;si<gaOrders.length;si++)\r
-               {\r
-                       if(gaOrders[si]!="searchform"||bSearchEnabled)\r
-                       {\r
-                               var sb=-1;\r
-                               for(var st=0;st<gaTypes.length;st++)\r
-                               {\r
-                                       if(gaOrders[si]==gaTypes[st])\r
-                                       {\r
-                                               sb=st;\r
-                                               break;\r
-                                       }\r
-                               }\r
-                               if(sb!=-1)\r
-                               {\r
-                                       aTempButtons[aTempButtons.length]=gaButtons[sb];\r
-                               }\r
-                       }\r
-               }\r
-               gaButtons=aTempButtons;\r
-       }\r
-}\r
-\r
-function isSyncEnabled()\r
-{\r
-       var bEnabled=false;\r
-       var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               bEnabled=oMsg.oParam;\r
-       }\r
-       return bEnabled;\r
-}\r
-\r
-function isAvenueEnabled()\r
-{\r
-       var bEnabled=false;\r
-       var oMsg=new whMessage(WH_MSG_ISAVENUESUPPORT,this,1,null);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               bEnabled=oMsg.oParam;\r
-       }\r
-       return bEnabled;\r
-}\r
-\r
-function isSearchEnabled()\r
-{\r
-       var bEnabled=false;\r
-       var oMsg=new whMessage(WH_MSG_ISSEARCHSUPPORT,this,1,null);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               bEnabled=oMsg.oParam;\r
-       }\r
-       return bEnabled;\r
-}\r
-\r
-function ReSortMinibarButtons()\r
-{\r
-       var bSyncEnabled=isSyncEnabled();\r
-       var bAvenueEnabled=isAvenueEnabled();\r
-       var strOrder="";\r
-       var oMsg=new whMessage(WH_MSG_MINIBARORDER,this,1,null);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               strOrder=oMsg.oParam;\r
-       }\r
-       if(strOrder.length>0)\r
-       {\r
-               gaOrders=strOrder.split("|");\r
-               var aTempButtons=new Array();\r
-               var ti=0;\r
-               for(var si=0;si<gaOrders.length;si++)\r
-               {\r
-                       if((gaOrders[si]!="synctoc"||bSyncEnabled)&&\r
-                               ((gaOrders[si]!="avnext"&&gaOrders[si]!="avprev")||bAvenueEnabled))\r
-                       {\r
-                               var sb=-1;\r
-                               for(var st=0;st<gaTypes.length;st++)\r
-                               {\r
-                                       if(gaOrders[si]==gaTypes[st])\r
-                                       {\r
-                                               sb=st;\r
-                                               break;\r
-                                       }\r
-                               }\r
-                               if(sb!=-1)\r
-                               {\r
-                                       aTempButtons[aTempButtons.length]=gaButtons[sb];\r
-                               }\r
-                       }\r
-               }\r
-               gaButtons=aTempButtons;\r
-       }\r
-}\r
-\r
-function writeToolBar()\r
-{\r
-       var sHTML="";\r
-       if(gaButtons.length>0)\r
-       {\r
-               var strHeight="100%";\r
-               var strWidth="100%";\r
-               if (gbNav4)\r
-               {\r
-                       strHeight=window.innerHeight-4;\r
-                       strWidth=window.innerWidth-4;\r
-               }\r
-               if (gbIE4)\r
-               {\r
-                       strHeight=document.body.clientHeight-4;\r
-                       strWidth=document.body.clientWidth-4;\r
-               }\r
-               if(gbNav6)\r
-                       sHTML="<table class=\"clsToolbarBackground\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" height=\""+strHeight+"\" width=\""+strWidth+"\">";\r
-               else\r
-                       sHTML="<form name=\"searchForm\" method=\"POST\" action=\"javascript:searchB()\"><table class=\"clsToolbarBackground\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" height=\""+strHeight+"\" width=\""+strWidth+"\">";\r
-               if((gnButtonLayout&LAYOUT)==HLAYOUT)\r
-               {\r
-                       sHTML+="<tr>";\r
-                       for(var i=0;i<gaButtons.length;i++)\r
-                       {\r
-                               if(gaButtons[i])\r
-                                       sHTML+=gaButtons[i];\r
-                               else\r
-                                       sHTML+="<td width=\"100%\"></td>";\r
-                       }\r
-                       sHTML+="</tr>";\r
-               }\r
-               else\r
-               {\r
-                       for(var i=0;i<gaButtons.length;i++)\r
-                       {\r
-                               if(gaButtons[i])\r
-                                       sHTML+="<tr width=\"100%\">"+gaButtons[i]+"</tr>";\r
-                               else\r
-                                       sHTML+="<tr height=\"100%\"><td></td></tr>";\r
-                       }\r
-               }\r
-               if(gbNav6)\r
-                       sHTML+="</table>";\r
-               else\r
-                       sHTML+="</table></form>";\r
-       }\r
-       document.write(sHTML);\r
-       if(document.body)\r
-               document.body.onselectstart=onSelect;\r
-       updateAveButton();\r
-}\r
-\r
-function hasNavPane()\r
-{\r
-       if(gnHasNavPane==-1)\r
-       {\r
-               gnHasNavPane=0;\r
-               var oParam=new Object();\r
-               oParam.bVisible=false;\r
-               var oMsg=new whMessage(WH_MSG_ISPANEVISIBLE,this,1,oParam);\r
-               if(SendMessage(oMsg))\r
-               {\r
-                       if(oParam.bVisible)\r
-                               gnHasNavPane=1;\r
-               }\r
-               \r
-       }\r
-       if(gnHasNavPane==1)\r
-               return true;\r
-       else\r
-               return false;\r
-}\r
-\r
-function getTocInfo()\r
-{\r
-       var oParam=new Object();\r
-       oParam.oTocInfo=null;\r
-       var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               goTocInfo=oParam.oTocInfo;\r
-               gbTocInfoInited=true;\r
-       }\r
-}\r
-\r
-function onBtnClick(e)\r
-{\r
-       var oEl=null;\r
-       var oElo=null;\r
-       if(gbNav6)\r
-       {\r
-               oElo=e.target;\r
-               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
-               oEl=oElo;\r
-       }\r
-       else\r
-       {\r
-               oElo=event.srcElement;\r
-               oEl=oElo;\r
-               event.cancelBubble=true;\r
-       }\r
-       while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB"))\r
-       {\r
-               oEl=getParentNode(oEl);\r
-               if(!oEl) return;\r
-       }\r
-       if(oElo.tagName=="A"||oElo.tagName=="IMG") return true;\r
-       var oaA=getElementsByTag(oElo,"A");\r
-       if(oaA&&oaA.length)\r
-       {\r
-               var oA=oaA[0];\r
-               if(gbNav6)\r
-               {\r
-                       var sCmd=oA.getAttribute("onclick");\r
-                       var nCmd=sCmd.indexOf("return false;");\r
-                       if(nCmd!=-1);\r
-                               sCmd=sCmd.substring(0,nCmd);\r
-                       setTimeout(sCmd,1);\r
-               }\r
-               else\r
-                       oA.onclick();\r
-       }\r
-}\r
-\r
-function onBtnMouseDown(e,nBtn)\r
-{\r
-       var oEl=null;\r
-       if(gbNav6)\r
-       {\r
-               var oElo=e.target;\r
-               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
-               oEl=oElo;\r
-       }\r
-       else\r
-       {\r
-               oEl=event.srcElement;\r
-               event.cancelBubble=true;\r
-       }\r
-       while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB"))\r
-       {\r
-               oEl=getParentNode(oEl);\r
-               if(!oEl) return;\r
-       }\r
-       var sPF=oEl.className.substring(0,6);\r
-       var oIs=getElementsByTag(oEl,"img");\r
-       if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>2)\r
-       {\r
-               if(gaObjBtns[nBtn].aIs[2])\r
-                       oIs[0].src=gaObjBtns[nBtn].aIs[2];\r
-       }\r
-       var sState=getState(oEl);\r
-       if(sState!="disable")\r
-       {\r
-               oEl.className=sPF+"Down";\r
-       }\r
-}\r
-\r
-function onBtnMouseUp(e,nBtn)\r
-{\r
-       var oEl=null;\r
-       if(gbNav6)\r
-       {\r
-               var oElo=e.target;\r
-               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
-               oEl=oElo;\r
-       }\r
-       else\r
-       {\r
-               oEl=event.srcElement;\r
-               event.cancelBubble=true;\r
-       }\r
-       while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB"))\r
-       {\r
-               oEl=getParentNode(oEl);\r
-               if(!oEl) return;\r
-       }\r
-       var sPF=oEl.className.substring(0,6);\r
-       var sState=getState(oEl);\r
-       if(sState=="down"||sState=="disable")\r
-       {\r
-               var oIs=getElementsByTag(oEl,"img");\r
-               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>3)\r
-               {\r
-                       if(gaObjBtns[nBtn].aIs[3])\r
-                               oIs[0].src=gaObjBtns[nBtn].aIs[3];\r
-               }\r
-       }\r
-       else\r
-       {\r
-               var oIs=getElementsByTag(oEl,"img");\r
-               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>0)\r
-               {\r
-                       if(gaObjBtns[nBtn].aIs[0])\r
-                               oIs[0].src=gaObjBtns[nBtn].aIs[0];\r
-               }\r
-       }\r
-       if(goEl==oEl)\r
-       {\r
-               if(sState!="down"&&sState!="disable")\r
-               {\r
-                       oEl.className=sPF+"Up";\r
-               }\r
-       }\r
-}\r
-\r
-function getState(oEl)\r
-{\r
-       var sState="";\r
-       if(gbNav6)\r
-               sState=oEl.getAttribute("state");\r
-       else\r
-               if(oEl.state)\r
-                       sState=oEl.state;\r
-       return sState;\r
-}\r
-\r
-function onBtnMouseOver(e,nBtn)\r
-{\r
-       markButton(e);\r
-       var oEl=null;\r
-       if(gbNav6)\r
-       {\r
-               var oElo=e.target;\r
-               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
-               oEl=oElo;\r
-       }\r
-       else\r
-       {\r
-               oEl=event.srcElement;\r
-               event.cancelBubble=true;\r
-       }\r
-       while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB"))\r
-       {\r
-               oEl=getParentNode(oEl);\r
-               if(!oEl) return;\r
-       }\r
-       var sPF=oEl.className.substring(0,6);\r
-       var sState=getState(oEl);\r
-       if(sState=="down"||sState=="disable")\r
-       {\r
-               if(sState=="down")\r
-                       oEl.className=sPF+"Down";\r
-               var oIs=getElementsByTag(oEl,"img");\r
-               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>4)\r
-               {\r
-                       if(gaObjBtns[nBtn].aIs[4])\r
-                               oIs[0].src=gaObjBtns[nBtn].aIs[4];\r
-               }\r
-       }\r
-       else\r
-       {\r
-               oEl.className=sPF+"Up";\r
-               var oIs=getElementsByTag(oEl,"img");\r
-               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>1)\r
-               {\r
-                       if(gaObjBtns[nBtn].aIs[1])\r
-                               oIs[0].src=gaObjBtns[nBtn].aIs[1];\r
-               }\r
-       }\r
-}\r
-\r
-function onBtnMouseOut(e,nBtn)\r
-{\r
-       goEl=null;\r
-       var oEl=null;\r
-       if(gbNav6)\r
-       {\r
-               var oElo=e.target;\r
-               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
-               oEl=oElo;\r
-       }\r
-       else\r
-       {\r
-               oEl=event.srcElement;\r
-               event.cancelBubble=true;\r
-       }\r
-       while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB"))\r
-       {\r
-       oEl=getParentNode(oEl);\r
-       if(!oEl) return;\r
-       }\r
-       var sPF=oEl.className.substring(0,6);\r
-       var sState=getState(oEl);\r
-       if(sState=="down"||sState=="disable")\r
-       {\r
-               var oIs=getElementsByTag(oEl,"img");\r
-               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>3)\r
-               {\r
-                       if(gaObjBtns[nBtn].aIs[3])\r
-                               oIs[0].src=gaObjBtns[nBtn].aIs[3];\r
-               }\r
-               if(sState=="down")\r
-                       oEl.className=sPF+"Down";\r
-       }\r
-       else\r
-       {\r
-               var oIs=getElementsByTag(oEl,"img");\r
-               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>0)\r
-               {\r
-                       if(gaObjBtns[nBtn].aIs[0])\r
-                               oIs[0].src=gaObjBtns[nBtn].aIs[0];\r
-               }\r
-               oEl.className=sPF+"Normal";\r
-       }\r
-}\r
-\r
-function showToc()\r
-{\r
-       var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function showIndex()\r
-{\r
-       var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function showFts()\r
-{\r
-       var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function showGlossary()\r
-{\r
-       var oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function syncWithShow()\r
-{\r
-       if(!gbTocInfoInited)\r
-       {\r
-               getTocInfo();\r
-       }\r
-       if(goTocInfo)\r
-       {\r
-               showToc();\r
-               var oParam=goTocInfo;\r
-               var oMsg=new whMessage(WH_MSG_SYNCTOC,this,1,oParam);\r
-               SendMessage(oMsg);\r
-       }\r
-}\r
-\r
-function markButton(e)\r
-{\r
-       var oEl=null;\r
-       if(gbNav6)\r
-       {\r
-               var oElo=e.target;\r
-               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
-               oEl=oElo;\r
-       }\r
-       else\r
-               oEl=event.srcElement;\r
-       while(oEl&&oEl.tagName!="TD") oEl=getParentNode(oEl);\r
-       if(oEl)\r
-               goEl=oEl;\r
-}\r
-\r
-function showHidePane()\r
-{\r
-       var oMsg=null;\r
-       if(hasNavPane())\r
-               oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null);\r
-       else\r
-               oMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function goAveNext()\r
-{\r
-       goAvenue(true);\r
-}\r
-\r
-function goAvePrev()\r
-{\r
-       goAvenue(false);\r
-}\r
-\r
-function doWebSearch()\r
-{\r
-       if (goWebSearchEnable)\r
-       {\r
-               var oMsg=new whMessage(WH_MSG_WEBSEARCH,this,1,null);\r
-               SendMessage(oMsg);\r
-       }\r
-}\r
-\r
-function goAvenue(bNext)\r
-{\r
-       var oMsg=null;\r
-       initAveButtonObj();\r
-       gsCurAveName=getCurrentAveName();\r
-       if(gbNav4&&!gbNav6)\r
-       {\r
-               if(bNext)\r
-               {\r
-                       gaAvenues=null;\r
-                       updateAvenue();\r
-                       oMsg=new whMessage(WH_MSG_NEXT,this,1,null);\r
-                       SendMessage(oMsg);\r
-               }\r
-               else if(!bNext)\r
-               {\r
-                       gaAvenues=null;\r
-                       updateAvenue();\r
-                       oMsg=new whMessage(WH_MSG_PREV,this,1,null);\r
-                       SendMessage(oMsg);\r
-               }\r
-       }\r
-       else\r
-       {\r
-               if(bNext&&goNextParent)\r
-               {\r
-                       var sState=getState(goNextParent);\r
-                       if(sState!="disable")\r
-                       {\r
-                               gaAvenues=null;\r
-                               gbNeedUpdateAve=true;\r
-                               gbUpdateTimerCount++;\r
-                               setTimeout("updateAvenueIfNeeded();", 2000);\r
-                               oMsg=new whMessage(WH_MSG_NEXT,this,1,null);\r
-                               SendMessage(oMsg);\r
-                       }\r
-               }\r
-               else if(!bNext&&goPrevParent)\r
-               {\r
-                       var sState=getState(goPrevParent);\r
-                       if(sState!="disable")\r
-                       {\r
-                               gaAvenues=null;\r
-                               gbNeedUpdateAve=true;\r
-                               gbUpdateTimerCount++;\r
-                               setTimeout("updateAvenueIfNeeded();", 2000);\r
-                               oMsg=new whMessage(WH_MSG_PREV,this,1,null);\r
-                               SendMessage(oMsg);\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function window_Unload()\r
-{\r
-       if(!gbNav4||gbNav6)\r
-       {\r
-               UnRegisterListener2(this,WH_MSG_GETSEARCHS);\r
-               UnRegisterListener2(this,WH_MSG_PANESTATUE);\r
-               UnRegisterListener2(this,WH_MSG_SYNCINFO);\r
-               UnRegisterListener2(this,WH_MSG_PANEINFO);\r
-               UnRegisterListener2(this,WH_MSG_AVENUEINFO);\r
-               UnRegisterListener2(this,WH_MSG_GETCURRENTAVENUE);\r
-               UnRegisterListener2(this,WH_MSG_ENABLEWEBSEARCH);\r
-               UnRegisterListener2(this,WH_MSG_INITSEARCHSTRING);\r
-       }\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if(document.body)\r
-       {\r
-               if(gsBgImage&&gsBgImage.length>0)\r
-               {\r
-                       document.body.background=gsBgImage;\r
-               }\r
-               if(gsBgColor&&gsBgColor.length>0)\r
-               {\r
-                       document.body.bgColor=gsBgColor;\r
-               }\r
-       }\r
-       doCusOnLoad();\r
-       var oMsg=new whMessage(WH_MSG_GETPANEINFO,this,1,null);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               setTimeout("flipPaneButton(\""+oMsg.oParam+"\");",1);\r
-       }\r
-       if (!gaAvenues)\r
-       {\r
-               var oMsg2=new whMessage(WH_MSG_GETAVIAVENUES,this,1,new Object());\r
-               if(SendMessage(oMsg2))\r
-               {\r
-                       gaAvenues=oMsg2.oParam.aAvenues;\r
-                       gbNeedUpdateAve=false;\r
-                       setTimeout("updateAvenue();",1);\r
-               }\r
-       }\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       var nMsgId=oMsg.nMessageId;\r
-       if(nMsgId==WH_MSG_GETSEARCHS)\r
-       {\r
-               if(document.searchForm&&document.searchForm.searchString)\r
-               {\r
-                       oMsg.oParam.sValue=document.searchForm.searchString.value;\r
-                       return false;\r
-               }\r
-       }\r
-       else if(nMsgId==WH_MSG_PANESTATUE)\r
-       {\r
-               if(oMsg.oParam=="visible")\r
-               {\r
-                       if(isShowHideEnable())\r
-                               setTimeout("flipShowHide(true);",1);\r
-                       setTimeout("showPaneButton();",1);\r
-               }\r
-               else\r
-               {\r
-                       if(isShowHideEnable())\r
-                               setTimeout("flipShowHide(false);",1);\r
-                       setTimeout("hidePaneButton();",1);\r
-               }\r
-       }\r
-       else if(nMsgId==WH_MSG_PANEINFO)\r
-       {\r
-               if(oMsg.oParam)\r
-                       setTimeout("flipPaneButton(\""+oMsg.oParam+"\");",1);\r
-               else\r
-                       setTimeout("hidePaneButton();",1);\r
-       }\r
-       else if(nMsgId==WH_MSG_SYNCINFO)\r
-       {\r
-               if(oMsg.oParam)\r
-                       goTocInfo=oMsg.oParam;\r
-               else\r
-                       goTocInfo=null;\r
-               gbTocInfoInited=true;\r
-       }\r
-       else if(nMsgId==WH_MSG_AVENUEINFO)\r
-       {\r
-               gaAvenues=oMsg.oParam;\r
-               gbNeedUpdateAve=false;\r
-               setTimeout("updateAvenue();",1);\r
-       }\r
-       else if(nMsgId==WH_MSG_GETCURRENTAVENUE)\r
-       {\r
-               var sAveName=getCurrentAvenue();\r
-               if(sAveName!="")\r
-               {\r
-                       oMsg.oParam.sAvenue=sAveName;\r
-                       return false;\r
-               }\r
-               else\r
-                       return true;\r
-       }\r
-       else if(nMsgId==WH_MSG_ENABLEWEBSEARCH)\r
-       {\r
-               setTimeout("updateWebSearch("+oMsg.oParam+");",1);\r
-       }\r
-       else if(nMsgId==WH_MSG_INITSEARCHSTRING)\r
-       {\r
-               if(gstrSearch!="")\r
-               {\r
-                       oMsg.oParam=gstrSearch;\r
-                       gstrSearch="";\r
-                       return false;\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-function getCurrentAvenue()\r
-{\r
-       var strAveName="";\r
-       var oSelect=getElement("avenue");\r
-       if(oSelect)\r
-       {\r
-               strAveName=oSelect.value;\r
-       }\r
-       return strAveName;\r
-}\r
-\r
-function initBtn()\r
-{\r
-       var oBtn=null;\r
-       oBtn=getElement("btntoc");\r
-       if(oBtn)\r
-               gaBtns[gaBtns.length]=oBtn;\r
-       oBtn=getElement("btnidx");\r
-       if(oBtn)\r
-               gaBtns[gaBtns.length]=oBtn;\r
-       oBtn=getElement("btnfts");\r
-       if(oBtn)\r
-               gaBtns[gaBtns.length]=oBtn;\r
-       oBtn=getElement("btnglo");\r
-       if(oBtn)\r
-               gaBtns[gaBtns.length]=oBtn;\r
-       gbInitBtn=true;\r
-}\r
-\r
-function showPaneButton()\r
-{\r
-       flipPaneButton(gsPane);\r
-}\r
-\r
-function hidePaneButton()\r
-{\r
-       flipPaneButton("");\r
-}\r
-\r
-function flipPaneButton(sPane)\r
-{\r
-       if (sPane)\r
-               gsPane=sPane;\r
-       if(!gbInitBtn)\r
-               initBtn();\r
-\r
-       var oUp=null;\r
-       if(sPane)\r
-       {\r
-               oUp=getElement("btn"+sPane);\r
-       }\r
-       for(var i=0;i<gaBtns.length;i++)\r
-       {\r
-               if(gaBtns[i])\r
-               {\r
-                       if(gaBtns[i]==oUp)\r
-                       {\r
-                               var oEl=getParentNode(oUp);\r
-                               var sPF=oEl.className.substring(0,6);\r
-                               var sState=getState(oEl);\r
-                               if(sState=="up")\r
-                               {\r
-                                       setState(oEl,"down");\r
-                                       oEl.className=sPF+"Down";\r
-                                       if(sPF=="clsBtn")\r
-                                       {\r
-                                               if(gaBtns[i].id)\r
-                                               {\r
-                                                       var sColor=getBtnColor(gaBtns[i].id.substring(3),true);\r
-                                                       if(sColor)\r
-                                                       {\r
-                                                               oEl.style.backgroundColor=sColor\r
-                                                       }\r
-                                                       else\r
-                                                       {\r
-                                                               oEl.style.backgroundColor="";\r
-                                                       }\r
-                                               }\r
-                                               var oaA=getElementsByTag(oEl,"A");\r
-                                               if(oaA.length>0)\r
-                                               {\r
-                                                       var strClassName=oaA[0].className;\r
-                                                       oaA[0].className="btnsel"+strClassName.substring(3);\r
-                                               }\r
-                                       }\r
-                                       var oIs=getElementsByTag(oEl,"img");\r
-                                       var oBtn=getButtonObjByType(gaBtns[i].id.substring(3));\r
-                                       if(oIs.length>0&&oBtn&&oBtn.aIs&&oBtn.aIs.length>3)\r
-                                       {\r
-                                               if(oBtn.aIs[3])\r
-                                                       oIs[0].src=oBtn.aIs[3];\r
-                                       }\r
-                               }\r
-                       }\r
-                       else\r
-                       {\r
-                               var oEl=getParentNode(gaBtns[i]);\r
-                               var sState=getState(oEl);\r
-                               var sPF=oEl.className.substring(0,6);\r
-                               if(sState=="down")\r
-                               {\r
-                                       setState(oEl,"up");\r
-                                       if(oEl==goEl)\r
-                                               oEl.className=sPF+"Up";\r
-                                       else\r
-                                               oEl.className=sPF+"Normal";\r
-\r
-                                       if(sPF=="clsBtn")\r
-                                       {\r
-                                               if(gaBtns[i].id)\r
-                                               {\r
-                                                       var sColor=getBtnColor(gaBtns[i].id.substring(3),false);\r
-                                                       if(sColor)\r
-                                                       {\r
-                                                               oEl.style.backgroundColor=sColor\r
-                                                       }\r
-                                                       else\r
-                                                       {\r
-                                                               oEl.style.backgroundColor="";\r
-                                                       }\r
-                                               }\r
-\r
-                                               var oaA=getElementsByTag(oEl,"A");\r
-                                               if(oaA.length>0)\r
-                                               {\r
-                                                       var strClassName=oaA[0].className;\r
-                                                       oaA[0].className="btn"+strClassName.substring(6);\r
-                                               }\r
-                                       }\r
-                                       var oIs=getElementsByTag(oEl,"img");\r
-                                       var oBtn=getButtonObjByType(gaBtns[i].id.substring(3));\r
-                                       if(oIs.length>0&&oBtn&&oBtn.aIs&&oBtn.aIs.length>0)\r
-                                       {\r
-                                               if(oBtn.aIs[0])\r
-                                                       oIs[0].src=oBtn.aIs[0];\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function flipShowHide(bShow)\r
-{\r
-       gnHasNavPane=-1;        \r
-       var oA=getElement("btnshowhide");\r
-       if(oA)\r
-       {\r
-               var oEl=getParentNode(oA);\r
-               var sPF=oEl.className.substring(0,6);\r
-               if(oEl&&oEl.state)\r
-               {\r
-                       if(bShow)\r
-                       {\r
-                               oEl.state="down";\r
-                               oEl.className=sPF+"Down";\r
-                       }\r
-                       else\r
-                       {\r
-                               oEl.state="up";\r
-                               \r
-                               if(oEl==goEl)\r
-                                       oEl.className=sPF+"Up";\r
-                               else\r
-                                       oEl.className=sPF+"Normal";\r
-                       }\r
-               }\r
-               oA.innerHTML=getShowHide();\r
-       }\r
-}\r
-\r
-function cusOnClick(nIdx)\r
-{\r
-       if(goCusButton.length>nIdx)\r
-       {\r
-               var sOnClick=goCusButton[nIdx].sOnClick;\r
-               if(sOnClick&&sOnClick.length>0)\r
-               {\r
-                       if(!gbPreview)\r
-                               eval(sOnClick);\r
-                       return false;\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-function cusOnMouseOver(nIdx)\r
-{\r
-       if(goCusButton.length>nIdx)\r
-       {\r
-               var sOnMouseOver=goCusButton[nIdx].sOnMouseOver;\r
-               if(sOnMouseOver&&sOnMouseOver.length>0)\r
-               {\r
-                       if(!gbPreview)\r
-                               eval(sOnMouseOver);\r
-                       return false;\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-function doCusOnLoad()\r
-{\r
-       if(!gbPreview&&gaOrders)\r
-       {\r
-               for(var i=0;i<gaOrders.length;i++)\r
-               {\r
-                       for(var j=0;j<gaOnLoads.length;j++)\r
-                       {\r
-                               if(gaOrders[i]==gaOnLoads[j].sType)\r
-                               {\r
-                                       eval(gaOnLoads[j].sOnLoad);\r
-                                       break;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function registerOnLoad(sOnLoad,sType)\r
-{\r
-       gaOnLoads[gaOnLoads.length]=new cusOnLoad(sType,sOnLoad);       \r
-}\r
-\r
-function cusOnLoad(sType,sOnLoad)\r
-{\r
-       this.sType=sType;\r
-       this.sOnLoad=sOnLoad;\r
-}\r
-\r
-function cusButton(sType,sText,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight)\r
-{\r
-       this.sType=sType;\r
-       this.sText=sText;\r
-       this.sOnClick=sOnClick;\r
-       this.sOnMouseOver=sOnMouseOver;\r
-       this.sOnLoad=sOnLoad;\r
-       this.nWidth=nWidth;\r
-       this.nHeight=nHeight;\r
-       this.aIs=new Array();\r
-       var i=0;\r
-       while(cusButton.arguments.length>i+7)\r
-       {\r
-               if (cusButton.arguments[7+i])\r
-                       this.aIs[i]=_getFullPath(_getPath(document.location.href),cusButton.arguments[7+i]);\r
-               else\r
-                       this.aIs[i]="";\r
-               i++;\r
-       }\r
-       if(sOnLoad)\r
-       {\r
-               registerOnLoad(sOnLoad,sType);\r
-       }\r
-}\r
-\r
-function getBtnColor(sType,bSel)\r
-{\r
-       var aBtnColors=null;\r
-       if(bSel)\r
-               aBtnColors=gaSelBtnBgColor;\r
-       else\r
-               aBtnColors=gaBtnBgColor;\r
-       if(aBtnColors)\r
-       {\r
-               for(var i=0;i<aBtnColors.length;i++)\r
-               {\r
-                       if(aBtnColors[i].sType==sType)\r
-                               return aBtnColors[i].sColor;\r
-               }\r
-       }\r
-       return "";\r
-}\r
-\r
-function setButtonBgColor(sType,sColor,bSel)\r
-{\r
-       if(sColor)\r
-       {\r
-               var aBtnColors=null;\r
-               if(bSel)\r
-                       aBtnColors=gaSelBtnBgColor;\r
-               else\r
-                       aBtnColors=gaBtnBgColor;\r
-               if(aBtnColors!=null)\r
-               {\r
-                       for(var i=0;i<aBtnColors.length;i++)\r
-                       {\r
-                               if(aBtnColors[i].sType==sType)\r
-                               {\r
-                                       aBtnColors[i].sColor=sColor;\r
-                                       return;\r
-                               }\r
-                       }\r
-                       aBtnColors[aBtnColors.length]=new btnBgColor(sType,sColor);\r
-               }\r
-       }\r
-}\r
-\r
-function getDefaultButtonFont()\r
-{\r
-       var strFontStyle="";\r
-       for(var i=0;i<gaTypes.length;i++)\r
-       {\r
-               strFontStyle+=".btnsel"+gaTypes[i]+"{"+getFontStyle(goSelTextFont)+"}";\r
-               strFontStyle+=".btn"+gaTypes[i]+"{"+getFontStyle(goTextFont)+"}";\r
-       }\r
-       return strFontStyle;\r
-}\r
-\r
-function setButtonFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration,bSel)\r
-{\r
-       if(sFontName)\r
-       {\r
-               var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
-               if(bSel)\r
-                       gsBtnStyle+=".btnsel"+sType+"{"+getFontStyle(vFont)+"}\n";\r
-               else\r
-                       gsBtnStyle+=".btn"+sType+"{"+getFontStyle(vFont)+"}\n";\r
-       }\r
-       if (sType=="searchform"&&!bSel)\r
-       {\r
-               var vFont1=new whFont(sFontName,sFontSize,"black",sFontStyle,sFontWeight,sFontDecoration);\r
-               gsBtnStyle+=".inputsearchform {" + getFontStyle(vFont1)+"}\n";\r
-       }\r
-}\r
-\r
-function getButtonObjByType(sType)\r
-{\r
-       for(var i=0;i<gaObjBtns.length;i++)\r
-       {\r
-               if(gaObjBtns[i].sType==sType)\r
-                       return gaObjBtns[i];\r
-       }\r
-       return null;\r
-}\r
-\r
-function onSelect()\r
-{\r
-       if (event.srcElement&&event.srcElement.name)\r
-       {\r
-               if (event.srcElement.name=="searchString")\r
-                       return true;\r
-       }\r
-       return false;\r
-}\r
-\r
-function window_onResize()\r
-{\r
-       gnRE++;\r
-       setTimeout("tryReload();", 100);\r
-}\r
-\r
-function tryReload()\r
-{\r
-       if (gnRE==1)\r
-               document.location.reload();\r
-       gnRE--;\r
-}\r
-\r
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
-{\r
-       RegisterListener2(this,WH_MSG_GETSEARCHS);\r
-       RegisterListener2(this,WH_MSG_PANESTATUE);\r
-       RegisterListener2(this,WH_MSG_SYNCINFO);\r
-       RegisterListener2(this,WH_MSG_PANEINFO);\r
-       RegisterListener2(this,WH_MSG_AVENUEINFO);\r
-       RegisterListener2(this,WH_MSG_GETCURRENTAVENUE);\r
-       RegisterListener2(this,WH_MSG_ENABLEWEBSEARCH);\r
-       RegisterListener2(this,WH_MSG_INITSEARCHSTRING);\r
-       window.onload=window_OnLoad;\r
-       window.onunload=window_Unload;\r
-       window.onresize=window_onResize;\r
-       goTextFont=new whFont("Verdana","8pt","#003063","normal","normal","none");\r
-       goSelTextFont=new whFont("Verdana","8pt","white","normal","normal","none");\r
-       gbWhTBar=true;\r
-}\r
-else\r
-       document.location.reload();\r
-\r
diff --git a/doc/salome/gui/SMESH/whtdhtml.htm b/doc/salome/gui/SMESH/whtdhtml.htm
deleted file mode 100755 (executable)
index 00ca4e3..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<html>\r
-<head>\r
-<title>Table of contents</title>\r
-<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name "description" content="WebHelp 2002">\r
-<base target="bsscright">\r
-</head>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whthost.js"></script>\r
-<script LANGUAGE="javascript1.2">\r
-<!--\r
-if (window.gbWhTHost)\r
-{\r
-       setBackgroundcolor( "White");  \r
-       \r
-       setFont("Normal", "Tahoma","8pt","Black","Normal","Normal","none");\r
-       setFont("Hover", "Tahoma","8pt","Navy","Normal","Normal","underline");\r
-       setActiveBgColor("Silver");\r
-       \r
-       \r
-       setIcon("BookOpen","wht_toc2.gif");\r
-       setIcon("BookClose","wht_toc1.gif");\r
-       setIcon("Item","wht_toc3.gif");\r
-       setIcon("RemoteItem","wht_toc4.gif");\r
-       \r
-       \r
-       \r
-       \r
-       TocWriteClassStyle();\r
-       TocWriteFixedWidth(true,400);\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" bgcolor="white" scroll="auto">\r
-<script LANGUAGE="javascript1.2">\r
-<!--\r
-TocWriteFixedWidth(false,400);\r
-TocInitPage();\r
-//-->\r
-</script>\r
-</body>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whthost.js b/doc/salome/gui/SMESH/whthost.js
deleted file mode 100755 (executable)
index 80806d7..0000000
+++ /dev/null
@@ -1,1372 +0,0 @@
-var gaHSLoad=new Array();\r
-var gnMinIdx=0;\r
-var gnInsIdx=-1;\r
-var gsLoadingDivID="LoadingDiv";\r
-var gsLoadingMsg="Loading, click here to cancel...";\r
-var gaProj=null;\r
-var gaTocs=new Array();\r
-var goChunk=null;\r
-var gbReady=false;\r
-var gbLoadToc=false;\r
-var gbXML=false;\r
-var gaRoot=new Array();\r
-var gnCC=-1;\r
-var gsTP="";\r
-var gaBTPs="";\r
-var gsCTPath="";\r
-var gnLT=-1;\r
-var gsPathSplit="\n";\r
-var gsBgColor="#ffffff";\r
-var gsBgImage="";\r
-var goFont=null;\r
-var goHFont=null;\r
-\r
-var gsMargin="0pt";\r
-var gsIndent="15pt";\r
-var gsABgColor="#cccccc";\r
-\r
-var giBookClose="";\r
-var giBookOpen="";\r
-var giBookItem="";\r
-var giURLItem="";\r
-var giNewBookClose="";\r
-var giNewBookOpen="";\r
-var giNewBookItem="";\r
-var giNewURLItem="";\r
-var gnImages=0;\r
-var gnLoadedImages=0;\r
-var gaImgs=new Array();\r
-var gbLoadData=false;\r
-var gobj=null;\r
-var gaTocsNs61Fix=null;\r
-var gbWhTHost=false;\r
-var gBookItems=new Array();\r
-var gInSync=false;\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       gsBgImage=sBgImage;\r
-}\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       gsBgColor=sBgColor;\r
-}\r
-\r
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
-{\r
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
-       if(sType=="Normal") goFont=vFont;\r
-       else if(sType=="Hover") goHFont=vFont;\r
-}\r
-\r
-function setActiveBgColor(sBgColor){gsABgColor=sBgColor;}\r
-\r
-function setMargin(sMargin){gsMargin=sMargin;}\r
-\r
-function setIndent(sIndent){gsIndent=sIndent;}\r
-\r
-function setIcon(sType,sURL)\r
-{\r
-       if(sType=="BookOpen")\r
-               giBookOpen=sURL;\r
-       else if(sType=="BookClose")\r
-               giBookClose=sURL;\r
-       else if(sType=="Item")\r
-               giBookItem=sURL;\r
-       else if(sType=="RemoteItem")\r
-               giURLItem=sURL;\r
-       else if(sType=="NewBookClose")\r
-               giNewBookClose=sURL;\r
-       else if(sType=="NewBookOpen")\r
-               giNewBookOpen=sURL;\r
-       else if(sType=="NewItem")\r
-               giNewBookItem=sURL;\r
-       else if(sType=="NewRemoteItem")\r
-               giNewURLItem=sURL;              \r
-}\r
-\r
-function bookItem(sTarget, sURL)\r
-{\r
-       if (sTarget)\r
-               this.sTarget=sTarget;\r
-       else\r
-               this.sTarget="bsscright";\r
-       this.sURL=sURL;\r
-}\r
-\r
-function addBookItem(sBookId, sTarget, sURL)\r
-{\r
-       gBookItems[sBookId] = new bookItem(sTarget, sURL);              \r
-}\r
-\r
-function tocChunk(sPPath,sDPath)\r
-{\r
-       this.sPPath=sPPath;\r
-       this.sDPath=sDPath;\r
-       this.nMI=-1;\r
-       this.aTocs=null;\r
-}\r
-\r
-function addTocChunk(sPPath,sDPath)\r
-{\r
-       var oChunk=new tocChunk(sPPath,sDPath);\r
-       gaTocs[gaTocs.length]=oChunk;\r
-       return oChunk;\r
-}\r
-\r
-function isHSLoad(nIdx)\r
-{\r
-       for(var i=0;i<gaHSLoad.length;i++){\r
-               if(gaHSLoad[i]==nIdx)\r
-                       return true;\r
-       }\r
-       return false;\r
-}\r
-\r
-function setHSLoad(nIdx)\r
-{\r
-       if(!isHSLoad(nIdx))\r
-       {\r
-               var len=gaHSLoad.length;\r
-               for(var i=0;i<len;i++){\r
-                       if(gaHSLoad[i]==-1)\r
-                       {\r
-                               gaHSLoad[i]=nIdx;\r
-                               return;\r
-                       }\r
-               }\r
-               gaHSLoad[len]=nIdx;\r
-       }\r
-}\r
-\r
-function setHSUnLoad(nIdx)\r
-{\r
-       if(isHSLoad(nIdx))\r
-       {\r
-               for(var i=0;i<gaHSLoad.length;i++){\r
-                       if(gaHSLoad[i]==nIdx)\r
-                       {\r
-                               gaHSLoad[i]=-1;\r
-                               return;\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function cancelLoading(nIdx)\r
-{\r
-       var oObj=getElement(getCBId(nIdx));\r
-       if(oObj)\r
-       {\r
-               oObj.innerHTML="";\r
-               setHSUnLoad(nIdx)\r
-               ExpandIt(nIdx);\r
-       }\r
-}\r
-\r
-function cancelAll()\r
-{\r
-       var eLoadingDivs=getElement(gsLoadingDivID);\r
-       if(eLoadingDivs)\r
-               cancelHSLoading(eLoadingDivs);\r
-}\r
-\r
-function cancelHSLoading(eLoadingDiv)\r
-{\r
-       var eParent=eLoadingDiv.parentElement;\r
-       if(eParent){\r
-               var sId=eParent.id;\r
-               sId=sId.substring(5);\r
-               var nIdx=parseInt(sId);\r
-               if(!isNaN(nIdx))\r
-                       cancelLoading(nIdx)\r
-       }\r
-}\r
-\r
-function checkBookItem(nIdx)\r
-{\r
-       if(!gInSync)\r
-       {\r
-               var sBookId=getBookId(nIdx);\r
-               if(gBookItems[sBookId])\r
-               {\r
-                       window.open(gBookItems[sBookId].sURL,gBookItems[sBookId].sTarget);\r
-               }\r
-       }\r
-}\r
-\r
-function insertBookItems(nIdx,num)\r
-{\r
-       checkBookItem(nIdx);\r
-       var sChildBookId=getCBId(nIdx);\r
-       var eChildDiv=getElement(sChildBookId);\r
-       if(eChildDiv){\r
-               if((eChildDiv.childNodes&&eChildDiv.childNodes.length==0)||\r
-                       (eChildDiv.all&&eChildDiv.all.length==0)){\r
-                       var sHTML=writeBookItems(nIdx,num);\r
-                       eChildDiv.innerHTML=sHTML;\r
-                       setTimeout("syncInit()",1);\r
-               }\r
-       }\r
-       ExpandIt(nIdx);\r
-}\r
-\r
-function writeBook(nIdx,bLocal)\r
-{\r
-       var sIcon=getBookImage(nIdx,true);\r
-       var sName=_textToHtml(getItemName(nIdx));\r
-       sIcon=_textToHtml_nonbsp(sIcon);\r
-       \r
-       var sHTML="<div id=\""+getPBId(nIdx)+"\" class=parent>";\r
-       sHTML+="<p><nobr><a id=\""+getBookId(nIdx)+"\" href=\"javascript:void(0);\" onfocus=\"markBook("+nIdx+");\" onclick=\"";\r
-\r
-       if(getItemType(nIdx)==1)\r
-               sHTML+="insertBookItems("+nIdx+", "+getItemContentsNum(nIdx);\r
-       else\r
-               sHTML+="tocExpandHelpSet("+nIdx+","+bLocal;\r
-       sHTML+=");return false;\" title=\""+sName+"\"><img alt=\"Book\" name=\""+getBId(nIdx)+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">";\r
-       var sURL=_textToHtml_nonbsp(getItemURL(nIdx));\r
-       if(sURL!="")\r
-               addBookItem(getBookId(nIdx),_textToHtml_nonbsp(getTopicTarget(nIdx)),sURL);\r
-       sHTML+="&nbsp;"+sName+"</a></nobr></p></div><div id=\""+getCBId(nIdx)+"\" class=child></div>";\r
-       return sHTML;\r
-}\r
-\r
-function getBookId(nIdx){return "B_"+nIdx;}\r
-\r
-function getItemId(nIdx){return "I_"+nIdx;}\r
-\r
-function markBook(nIdx)\r
-{\r
-       var obj=getElement(getItemId(nIdx));\r
-       if(obj==null)\r
-               obj=getElement(getBookId(nIdx));\r
-       if(gbNav6)\r
-       {\r
-               gobj=obj;\r
-               setTimeout("delayMarkObj();",1);\r
-       }\r
-       else\r
-               markObj(obj);\r
-}\r
-\r
-function delayMarkObj()\r
-{\r
-       if(gobj)\r
-       {\r
-               markObj(gobj);\r
-               gobj=null;\r
-       }\r
-}\r
-\r
-function markObj(obj)\r
-{\r
-       if(obj!=null)\r
-       {\r
-               HighLightElement(obj,gsABgColor,"transparent");\r
-               var sPath=calTocPath(obj);\r
-               if(gsCTPath!=sPath)\r
-                       gsCTPath=sPath;\r
-       }\r
-}\r
-\r
-function markItem(nIdx)\r
-{\r
-       var obj=getElement(getItemId(nIdx));\r
-       if(gbNav6)\r
-       {\r
-               gobj=obj;\r
-               setTimeout("delayMarkObj();",1);\r
-       }\r
-       else\r
-               markObj(getElement(getItemId(nIdx)));\r
-}\r
-\r
-function calTocPath(obj)\r
-{\r
-       var sPath=getInnerText(obj).substring(1);\r
-       var pObj=getParentNode(obj);\r
-       do\r
-       {\r
-               while(pObj!=null&&!isCBId(pObj.id)) pObj=getParentNode(pObj);\r
-               if(pObj!=null)\r
-               {\r
-                       var nId=getIdByCBId(pObj.id);\r
-                       var sObj=getElement(getPBId(nId));\r
-                       if(sObj!=null)\r
-                       {\r
-                               var objs=getItemsByBook(sObj);\r
-                               for(var i=0;i<objs.length;i++)\r
-                               {\r
-                                       var sText=getInnerText(objs[i]);\r
-                                       \r
-                                       if(sText.length!=0)\r
-                                       {\r
-                                               sPath=sText.substring(1)+gsPathSplit+sPath;\r
-                                               break;\r
-                                       }\r
-                               }\r
-                       }\r
-                       pObj=getParentNode(pObj);\r
-               }\r
-       }while(pObj!=null);\r
-       return sPath;\r
-}\r
-\r
-function writeAnItem(nIdx)\r
-{\r
-       var sTarget=_textToHtml_nonbsp(getTopicTarget(nIdx));\r
-       var sIcon=getItemIcon(nIdx,0);\r
-       if(sIcon=="")\r
-       {\r
-               var nItemType=getItemType(nIdx);\r
-               if(nItemType&2)\r
-                       sIcon=getItemImage(nIdx,false);\r
-               else\r
-                       sIcon=getItemImage(nIdx,true);\r
-       }\r
-       sIcon=_textToHtml_nonbsp(sIcon);\r
-       var sName=_textToHtml(getItemName(nIdx));\r
-       var sHTML="<p><nobr><a id=\""+getItemId(nIdx)+"\" onfocus=\"markItem("+nIdx+");\""\r
-       var sAltString="";\r
-       if (nItemType&2)\r
-               sAltString="Page";\r
-       else\r
-               sAltString="Remote Page";\r
-       if(sTarget!="")\r
-               sHTML+="target=\""+sTarget+"\" ";\r
-       sHTML+="href=\""+_textToHtml_nonbsp(getItemURL(nIdx))+"\" title=\""+sName+"\"><img alt=\""+sAltString+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">&nbsp;"+sName+"</a></nobr></p>";\r
-       return sHTML;\r
-}\r
-\r
-function writeBookItems(nIdx,num)\r
-{\r
-       var sHTML="";\r
-       if(num>0){\r
-               var nCIdx=0;\r
-               do{\r
-                       nCIdx++;\r
-                       var i=nIdx+nCIdx;\r
-                       var nItemType=getItemType(i);\r
-                       if(nItemType==1){\r
-                               sHTML+=writeBook(i);    \r
-                               nCIdx+=getItemContentsNum(i);           \r
-                       }\r
-                       else if(nItemType==2||nItemType==16){\r
-                               sHTML+=writeAnItem(i);\r
-                       }else if(nItemType==4){\r
-                               sHTML+=writeBook(i,false);\r
-                       }else if(nItemType==8){\r
-                               sHTML+=writeBook(i,true);\r
-                       }\r
-               }\r
-               while(nCIdx<num);\r
-       }\r
-       return sHTML;\r
-}\r
-\r
-function tocExpandHelpSet(nIdx,bLocal)\r
-{\r
-       checkBookItem(nIdx);\r
-       cancelAll();\r
-       if(isHSLoad(nIdx))\r
-               ExpandIt(nIdx);\r
-       else{\r
-               setHSLoad(nIdx);\r
-               var sSrc="";\r
-               if(bLocal){\r
-                       var oChunk=getChunk(nIdx);\r
-                       if(oChunk)\r
-                       {\r
-                               goChunk=addTocChunk(oChunk.sPPath,oChunk.sDPath);\r
-                               sSrc=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;\r
-                       }\r
-               }\r
-               else{\r
-                       sSrc=getRefURL(nIdx);\r
-                       var nProj=getProject(sSrc);\r
-                       if(nProj!=-1)\r
-                       {\r
-                               goChunk=addTocChunk(gaProj[nProj].sPPath,gaProj[nProj].sDPath);\r
-                               sSrc=gaRoot[nProj].sToc;\r
-                       }\r
-                       else\r
-                               goChunk=null;\r
-               }\r
-               if(goChunk)\r
-               {\r
-                       PrepareLoading(nIdx);\r
-                       ExpandIt(nIdx);\r
-                       gbLoadToc=false;\r
-                       loadData2(goChunk.sPPath+goChunk.sDPath+sSrc);\r
-               }\r
-       }\r
-}\r
-\r
-function getProject(sSrc)\r
-{\r
-       for(var i=0;i<gaProj.length;i++)\r
-       {\r
-               if(isSamePath(getPath(sSrc),gaProj[i].sPPath))\r
-               {\r
-                       return i;\r
-               }\r
-       }\r
-       return -1;\r
-}\r
-\r
-function getPath(sPath)\r
-{\r
-       if(sPath!="")\r
-       {\r
-               sPath=_replaceSlash(sPath);\r
-               var nPosFile=sPath.lastIndexOf("/");\r
-               sPath=sPath.substring(0,nPosFile+1);\r
-       }\r
-       return sPath;\r
-}\r
-\r
-function isSamePath(sPath1,sPath2)\r
-{\r
-       return (sPath1.toLowerCase()==sPath2.toLowerCase());\r
-}\r
-\r
-function PrepareLoading(nIdx)\r
-{\r
-       gnInsIdx=nIdx;\r
-       if(!gsTP)\r
-       {\r
-               var oObj=getElement(getCBId(gnInsIdx));\r
-               if(oObj)\r
-                       oObj.innerHTML=writeLoadingDiv(nIdx);\r
-       }\r
-}\r
-\r
-function writeLoadingDiv(nIdx)\r
-{\r
-       return"<div id=\""+gsLoadingDivID+"\" class=parent onclick=\"cancelLoading("+nIdx+");\" style=\"padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";\r
-}\r
-\r
-function getItemName(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-               return oChunk.aTocs[nIdx-oChunk.nMI].sItemName;\r
-       else\r
-               return null;\r
-}\r
-\r
-function getItemContentsNum(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-               return oChunk.aTocs[nIdx-oChunk.nMI].nContents;\r
-       else\r
-               return null;\r
-}\r
-\r
-function getItemType(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-               return oChunk.aTocs[nIdx-oChunk.nMI].nType;\r
-       else\r
-               return 0;\r
-}\r
-\r
-function getItemURL(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-       {\r
-               var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sItemURL;\r
-               if(!(sPath==null||sPath==""))\r
-               {\r
-                       return _getFullPath(oChunk.sPPath,sPath);\r
-               }\r
-       }\r
-       return "";\r
-}\r
-\r
-function getRefURL(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-       {\r
-               var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;\r
-               if(!(sPath==null||sPath==""))\r
-               {\r
-                       return _getFullPath(oChunk.sPPath,sPath)\r
-               }\r
-       }\r
-       return "";\r
-}\r
-\r
-function getTopicTarget(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-       {\r
-               if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sTarget)!="undefined")\r
-                       return oChunk.aTocs[nIdx-oChunk.nMI].sTarget;\r
-       }\r
-       return "";\r
-}\r
-\r
-function getItemIcon(nIdx,nIconIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-       {\r
-               if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sIconRef)!="undefined")\r
-               {\r
-                       var sIconRef=oChunk.aTocs[nIdx-oChunk.nMI].sIconRef;\r
-                       var nIndex=sIconRef.indexOf(";");\r
-                       while(nIconIdx-->0&&nIndex!=-1)\r
-                       {\r
-                               sIconRef=sIconRef.substring(nIndex+1);\r
-                               nIndex=sIconRef.indexOf(";");\r
-                       }\r
-                       if(nIconIdx<0)\r
-                       {\r
-                               if(nIndex!=-1)\r
-                                       sIconRef=sIconRef.substring(0,nIndex);\r
-                               return _getFullPath(oChunk.sPPath,sIconRef)\r
-                       }\r
-               }\r
-       }\r
-       return "";\r
-}\r
-\r
-function TocWriteClassStyle()\r
-{\r
-       var sStyle="<STYLE TYPE='text/css'>\n";\r
-       if (gsBgImage)\r
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
-       else\r
-               sStyle+="body {border-top:black 1px solid;}\n";\r
-       sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";\r
-       sStyle+="DIV {margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";\r
-       sStyle+=".parent {margin-left:0pt;}\n";\r
-       sStyle+=".child {display:none;margin-left:"+gsIndent+";}\n";\r
-       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";\r
-       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";\r
-       sStyle+="A:active {background-color:"+gsABgColor+";}\n";\r
-       sStyle +="A:hover {"+getFontStyle(goHFont)+"}\n";\r
-       sStyle+="</STYLE>";\r
-       document.write(sStyle);\r
-}\r
-\r
-function TocWriteFixedWidth(bBegin,nWidth)\r
-{\r
-       if((gbIE4)&&(gbMac)&&(!gbIE5)){\r
-               if(bBegin)\r
-                       document.write("<table width="+nWidth+" border=0><tr><td>");\r
-               else\r
-                       document.write("</td></tr></table>");\r
-       }\r
-}\r
-\r
-function TocInitPage()\r
-{\r
-       var tempColl=getItemsByBook(document.body);\r
-       if(tempColl.length>0)\r
-               tempColl[0].focus();\r
-}\r
-\r
-function getItemsFromObj(obj)\r
-{\r
-       var aAnchor=new Array();\r
-       var tempColl=getChildrenByTag(obj,"P");\r
-       if(tempColl&&tempColl.length>0)\r
-       {\r
-               var anobr=new Array();\r
-               for(var i=0;i<tempColl.length;i++)\r
-               {\r
-                       var tempNobr=getChildrenByTag(tempColl[i],"NOBR");\r
-                       if(tempNobr&&tempNobr.length>0)\r
-                       {\r
-                               for(var j=0;j<tempNobr.length;j++)\r
-                                       anobr[anobr.length]=tempNobr[j];\r
-                       }\r
-               }\r
-               for(var s=0;s<anobr.length;s++)\r
-               {\r
-                       var tempAnchor=getChildrenByTag(anobr[s],"A");\r
-                       if(tempAnchor&&tempAnchor.length>0)\r
-                       {\r
-                               for(var u=0;u<tempAnchor.length;u++)\r
-                                       aAnchor[aAnchor.length]=tempAnchor[u];\r
-                       }\r
-               }\r
-       }\r
-       return aAnchor;\r
-}\r
-\r
-function getItemsByBook(obj)\r
-{\r
-       var aAnchor=new Array();\r
-       var aTAnchor=getItemsFromObj(obj);\r
-       for(var i=0;i<aTAnchor.length;i++)\r
-       {\r
-               aAnchor[aAnchor.length]=aTAnchor[i];\r
-       }\r
-       var tempBook=getChildrenByTag(obj,"DIV");\r
-       if(tempBook&&tempBook.length>0)\r
-       {\r
-               for(var j=0;j<tempBook.length;j++)\r
-               {\r
-                       var aTAnchorDiv=getItemsFromObj(tempBook[j]);\r
-                       for(var s=0;s<aTAnchorDiv.length;s++)\r
-                       {\r
-                               aAnchor[aAnchor.length]=aTAnchorDiv[s];\r
-                       }\r
-               }\r
-       }       \r
-       return aAnchor;\r
-}\r
-\r
-function ExpandIt(nId)\r
-{\r
-       if(!gsTP)\r
-               ExpandIt2(nId,false);\r
-}\r
-\r
-function ExpandIt2(nId,bForceOpen)\r
-{\r
-       if(gbIE4||gbNav6){\r
-               var oC=TocExpand(nId,true,bForceOpen);\r
-               var nNewScroll=document.body.scrollTop;\r
-               if(oC.style.display=="block"){\r
-                       var nTop=oC.offsetTop;\r
-                       var nBottom=nTop+oC.offsetHeight;\r
-                       if(document.body.scrollTop+document.body.clientHeight<nBottom){\r
-                               nNewScroll=nBottom-document.body.clientHeight;\r
-                       }\r
-                       if(nBottom-nTop>document.body.clientHeight){\r
-                               nNewScroll=nTop-20;\r
-                       }\r
-               }\r
-               document.body.scrollTop=nNewScroll;\r
-       }\r
-}\r
-\r
-function TocExpand(nId,bChangeImg,bForceOpen)\r
-{\r
-       var oDiv=getElement(getCBId(nId));\r
-       if(oDiv==null) return null;\r
-\r
-       var whichIm=document.images[getBId(nId)];\r
-       if((oDiv.style.display!="block")||bForceOpen){\r
-               oDiv.style.display="block";\r
-               if(bChangeImg){\r
-                       var sPath=getPath(whichIm.src);\r
-                       sPath=_getFullPath(sPath,getBookImage(nId,false));\r
-                       whichIm.src=sPath;              \r
-               }\r
-       }else{\r
-               oDiv.style.display="none";\r
-               if(bChangeImg){\r
-                       var sPath=getPath(whichIm.src);\r
-                       sPath=_getFullPath(sPath,getBookImage(nId,true));\r
-                       whichIm.src=sPath;\r
-               }\r
-               if(gbMac&&gbIE5){\r
-                       this.parent.document.getElementById("tocIFrame").style.width="101%";\r
-                       this.parent.document.getElementById("tocIFrame").style.width="100%";\r
-               }\r
-       }\r
-       return oDiv;\r
-}\r
-\r
-function getChunkId(n)\r
-{\r
-       var nCandidate=-1;\r
-       for(var i=0;i<gaTocs.length;i++){\r
-               if(gaTocs[i].nMI<=n){\r
-                       nCandidate=i;\r
-               }\r
-               else\r
-                       break;\r
-       }\r
-       if(nCandidate!=-1&&gaTocs[nCandidate].nMI!=-1)\r
-               return nCandidate;\r
-       else\r
-               return -1;\r
-}\r
-\r
-function getChunk(n)\r
-{\r
-       if(gnCC!=-1&&gaTocs[gnCC].nMI<=n&&(gnCC==gaTocs.length-1||\r
-               gaTocs[gnCC+1].nMI>n))\r
-       {       \r
-               return gaTocs[gnCC];\r
-       }\r
-       else{\r
-               gnCC=getChunkId(n);\r
-               if(gnCC!=-1)\r
-                       return gaTocs[gnCC];\r
-               else\r
-                       return null;\r
-       }\r
-}\r
-\r
-function getBookImage(nIdx,bClosed)\r
-{\r
-       var nIdx=bClosed?0:1;\r
-       var sIcon=getItemIcon(nIdx,nIdx);\r
-       if(sIcon=="")\r
-               if(bClosed)\r
-                       sIcon=giBookClose;\r
-               else\r
-                       sIcon=giBookOpen;\r
-       return _getFullPath(gaProj[0].sPPath,sIcon);\r
-}\r
-\r
-function getItemImage(nIdx,bRemote)\r
-{\r
-       var sIcon=getItemIcon(nIdx,0);\r
-       if(sIcon=="")\r
-               if(bRemote)\r
-                       sIcon=giURLItem;\r
-               else\r
-                       sIcon=giBookItem;\r
-       return _getFullPath(gaProj[0].sPPath,sIcon);\r
-}\r
-\r
-function expandToc(oObj,sRest,aIdList)\r
-{\r
-       var len=aIdList.length;\r
-       var nPos=sRest.indexOf(gsPathSplit);\r
-       if(nPos!=-1)\r
-       {\r
-               sPart=sRest.substring(0,nPos);\r
-               sRest=sRest.substring(nPos+1);\r
-       }\r
-       else\r
-       {\r
-               sPart=sRest;\r
-               var aTagAs=getItemsByBook(oObj);\r
-               for(var s=0;s<aTagAs.length;s++)\r
-               {\r
-                       var sText=getInnerText(aTagAs[s]);\r
-                       if(sText.length>0)\r
-                               sText=sText.substring(1);\r
-                       if(sText==sPart)\r
-                       {\r
-                               aIdList[len]=aTagAs[s];\r
-                               return 1;\r
-                       }\r
-               }\r
-               return 0;\r
-       }\r
-               \r
-       var aChildren=getChildrenByTag(oObj,"DIV");\r
-       for(var i=0;i<aChildren.length;i++)\r
-       {\r
-               var sPId=aChildren[i].id;\r
-               if(!isPBId(sPId))\r
-                       continue;\r
-               var sText=getInnerText(aChildren[i]);\r
-               if(sText.substring(1)!=sPart)\r
-                       continue;\r
-               aIdList[len]=getIdByPBId(sPId);\r
-               var sCId=getCBId(aIdList[len]);\r
-               var oCObj=getElement(sCId);\r
-               if(oCObj)\r
-               {\r
-                       if(oCObj.innerHTML=="")\r
-                       {\r
-                               var obj=getItemsByBook(aChildren[i]);\r
-                               if(obj.length>0)\r
-                               {\r
-                                       if(gbNav6)\r
-                                       {\r
-                                               var sCommand=obj[0].getAttribute("onClick");\r
-                                               var nCommand=sCommand.indexOf(";");\r
-                                               sCommand=sCommand.substring(0,nCommand);\r
-                                               setTimeout(sCommand,1);\r
-                                       }\r
-                                       else\r
-                                               obj[0].click();\r
-                               }\r
-                               return -1;\r
-                       }\r
-                       var nRet=expandToc(oCObj,sRest,aIdList);\r
-                       if(nRet)\r
-                               return nRet;\r
-               }\r
-       }\r
-       aIdList.length=len;\r
-       return 0;\r
-}\r
-\r
-function getIdByPBId(sPId)\r
-{\r
-       return parseInt(sPId.substring(5,sPId.length-6));\r
-}\r
-\r
-function getIdByCBId(sCId)\r
-{\r
-       return parseInt(sCId.substring(5,sCId.length-5));\r
-}\r
-\r
-function isPBId(sId)\r
-{\r
-       return (sId&&sId.indexOf("Book_")==0&&sId.lastIndexOf("Parent")==sId.length-6);\r
-}\r
-\r
-function isCBId(sId)\r
-{\r
-       return (sId&&sId.indexOf("Book_")==0&&sId.lastIndexOf("Child")==sId.length-5);\r
-}\r
-\r
-function getBId(nIdx)\r
-{\r
-       return "Book_"+nIdx;\r
-}\r
-\r
-function getPBId(nIdx)\r
-{\r
-       return getBId(nIdx)+"Parent";\r
-}\r
-\r
-function getCBId(nIdx)\r
-{\r
-       return getBId(nIdx)+"Child";\r
-}\r
-\r
-function getClosestTocPath(aPaths)\r
-{\r
-       var nMaxSimilarity=0;\r
-       var nThatIndex=-1;\r
-       var sPath=null;\r
-       if(aPaths.length==0) return sPath;\r
-       for(var i=0;i<aPaths.length;i++)\r
-       {\r
-               var nSimilarity=comparePath(gsCTPath,aPaths[i]);\r
-               if(nSimilarity>nMaxSimilarity)\r
-               {\r
-                       nMaxSimilarity=nSimilarity;\r
-                       nThatIndex=i;\r
-               }\r
-       }\r
-       if(nThatIndex!=-1)\r
-       {\r
-               sPath=aPaths[nThatIndex];\r
-       }\r
-       else\r
-       {\r
-               sPath=aPaths[0];\r
-       }\r
-       return sPath;\r
-}\r
-\r
-function comparePath(sPath1,sPath2)\r
-{\r
-       var nMaxSimilarity=0;\r
-       var nStartPos1=0;\r
-       var nPos1=-1;\r
-       var nStartPos2=0;\r
-       var nPos2=-1;\r
-       do{\r
-               var sCheck1=null;\r
-               var sCheck2=null;\r
-               nPos1=sPath1.indexOf(gsPathSplit,nStartPos1);\r
-               if(nPos1!=-1)\r
-               {\r
-                       sCheck1=sPath1.substring(nStartPos1,nPos1);\r
-                       nStartPos1=nPos1+1;\r
-               }\r
-               else\r
-               {\r
-                       sCheck1=sPath1.substring(nStartPos1);\r
-                       nStartPos1=-1;\r
-               }\r
-               nPos2=sPath2.indexOf(gsPathSplit,nStartPos2);\r
-               if(nPos1!=-1)\r
-               {\r
-                       sCheck2=sPath2.substring(nStartPos2,nPos2);\r
-                       nStartPos2=nPos2+1;\r
-               }\r
-               else\r
-               {\r
-                       sCheck2=sPath2.substring(nStartPos2);\r
-                       nStartPos2=-1;\r
-               }\r
-               if(sCheck1==sCheck2)\r
-                       nMaxSimilarity++;\r
-               else\r
-                       break;\r
-       }while(nStartPos1!=-1&&nStartPos2!=-1);\r
-       return nMaxSimilarity;\r
-}\r
-\r
-function getTocPaths(oTopicParam)\r
-{\r
-       var aRelTocPaths=oTopicParam.aPaths;\r
-       var aPaths=new Array();\r
-       for(var i=0;i<gaProj.length;i++)\r
-       {\r
-               if(isSamePath(gaProj[i].sPPath,oTopicParam.sPPath))\r
-               {\r
-                       for(var j=0;j<aRelTocPaths.length;j++)\r
-                       {\r
-                               aPaths[j]=gaRoot[i].sRPath+aRelTocPaths[j];\r
-                               aPaths[j]=aPaths[j].substring(1);\r
-                       }\r
-                       break;\r
-               }\r
-       }\r
-       return aPaths;\r
-}\r
-\r
-function syncInit()\r
-{\r
-       if(gsTP)\r
-       {\r
-               gInSync=true;\r
-               var obj=document.body;\r
-               var aIdList=new Array();\r
-               var nRet=expandToc(obj,gsTP,aIdList);\r
-               if(nRet!=-1)\r
-               {\r
-                       if(nRet==1)\r
-                       {\r
-                               if(aIdList.length)\r
-                                       for(var i=0;i<aIdList.length-1;i++)\r
-                                       {\r
-                                               ExpandIt2(aIdList[i],true);\r
-                                       }\r
-                               gsCTPath=gsTP;\r
-                               if(!gbIE55)\r
-                                       aIdList[aIdList.length-1].focus();\r
-                               else\r
-                                       HighLightElement(aIdList[aIdList.length-1],gsABgColor,"transparent");\r
-                       }\r
-                       var aPaths=gaBTPs;\r
-                       gsTP=null;\r
-                       gaBTPs=null;\r
-                       if(aPaths!=null)\r
-                       {\r
-                               var sPath=getClosestTocPath(aPaths);\r
-                               if(sPath!=null)\r
-                               {       \r
-                                       gsTP=sPath;             \r
-                                       setTimeout("syncInit()",1);\r
-                               }\r
-                       }\r
-               }\r
-               gInSync=false;\r
-       }\r
-}\r
-\r
-function loadToc()\r
-{\r
-       if(!gbReady)\r
-       {\r
-               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);\r
-               if(SendMessage(oResMsg)&&oResMsg.oParam)\r
-               {\r
-                       var oProj=oResMsg.oParam;\r
-                       gaProj=oProj.aProj;\r
-                       gbXML=oProj.bXML;\r
-                       load1B1();\r
-               }\r
-       }\r
-}\r
-\r
-function load1B1()\r
-{\r
-       if(gnLT+1<gaProj.length)\r
-       {\r
-               for(var i=gnLT+1;i<gaProj.length;i++)\r
-               {\r
-                       if(gaProj[i].sToc!=null&&gaProj[i].sToc!="")\r
-                       {\r
-                               gbLoadToc=true;\r
-                               gnLT=i;\r
-                               setTimeout("loadTocInfo()",1);\r
-                               return true;\r
-                       }\r
-               }\r
-       }\r
-       return false;\r
-}\r
-\r
-function loadTocInfo()\r
-{\r
-       loadData2(gaProj[gnLT].sPPath+gaProj[gnLT].sDPath+gaProj[gnLT].sToc);\r
-}\r
-\r
-function loadData2(sFile)\r
-{\r
-       if(gbXML)\r
-               loadDataXML(sFile);\r
-       else\r
-               loadData(sFile);\r
-}\r
-\r
-function projReady(sRoot,aProj)\r
-{\r
-       if(gaRoot.length<=gnLT||!gaRoot[gnLT])\r
-               gaRoot[gnLT]=new Object();\r
-       gaRoot[gnLT].sToc=sRoot;\r
-       \r
-       if(gnLT==0)\r
-               gaRoot[gnLT].sRPath=gsPathSplit;\r
-\r
-       updatePTPath(gnLT,aProj);\r
-\r
-       if(!((gnLT+1<gaProj.length)&&load1B1()))\r
-       {\r
-               gbReady=true;\r
-               if(gbIE4)\r
-                       setTimeout("loadImages();",1);\r
-               else\r
-                       setTimeout("loadTData();",1);\r
-       }\r
-}\r
-\r
-function loadTData()\r
-{\r
-       if(gaProj[0].sToc!="")\r
-       {\r
-               goChunk=addTocChunk(gaProj[0].sPPath,gaProj[0].sDPath);\r
-               gbLoadToc=false;\r
-               loadData2(gaProj[0].sPPath+gaProj[0].sDPath+gaRoot[0].sToc);\r
-       }\r
-}\r
-\r
-function updatePTPath(n,aProj)\r
-{\r
-       if(aProj)\r
-       {\r
-               for(var i=0;i<aProj.length;i++)\r
-               {\r
-                       var sFullPath=_getFullPath(gaProj[n].sPPath,aProj[i].sPPath);\r
-                       for(var j=0;j<gaProj.length;j++)\r
-                       {\r
-                               if(isSamePath(sFullPath,gaProj[j].sPPath))\r
-                               {\r
-                                       if(gaRoot.length<=j||!gaRoot[j])\r
-                                               gaRoot[j]=new Object();\r
-                                       if(!gaRoot[j].sRPath)\r
-                                       {\r
-                                               if(gaRoot[n].sRPath)\r
-                                                       gaRoot[j].sRPath=gaRoot[n].sRPath+aProj[i].sRPath;\r
-                                               else\r
-                                                       gaRoot[j].sRPath=aProj[i].sRPath;\r
-                                       }\r
-                                       break;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function putDataXML(xmlDoc,sDocPath)\r
-{\r
-       if(gbLoadToc)\r
-       {\r
-               var tocNode=xmlDoc.getElementsByTagName("toc")[0];\r
-               if(tocNode)\r
-               {\r
-                       var sRoot=tocNode.getAttribute("root");\r
-                       var rmtProject=tocNode.getElementsByTagName("project");\r
-                       var aRProj=new Array();\r
-                       if(rmtProject.length>0)\r
-                       {\r
-                               for(var i=0;i<rmtProject.length;i++)\r
-                               {\r
-                                       aRProj[i]=new Object();\r
-                                       aRProj[i].sPPath=rmtProject[i].getAttribute("url");\r
-                                       aRProj[i].sRPath=rmtProject[i].getAttribute("path");\r
-                               }\r
-                       }\r
-                       projReady(sRoot,aRProj);\r
-               }\r
-       }\r
-       else\r
-       {\r
-               var chunkNode=xmlDoc.getElementsByTagName("tocdata")[0];\r
-               if(chunkNode)\r
-               {\r
-                       var aToc=new Array();\r
-                       processBook(chunkNode,aToc);\r
-                       putData(aToc);\r
-               }\r
-       }\r
-}\r
-\r
-function processBook(node,aToc)\r
-{\r
-       var i=0;\r
-       var entry=null;\r
-       var prevEntry=null;\r
-       var oChild=node.firstChild;\r
-       do{\r
-               if(oChild)\r
-               {\r
-                       if(oChild.nodeName.indexOf("#")!=0)\r
-                       {\r
-                               var sName=oChild.getAttribute("name");\r
-                               var sURL=oChild.getAttribute("url");\r
-                               var sRef=oChild.getAttribute("ref");\r
-                               var sTarget=oChild.getAttribute("target");\r
-                               var sIcons=oChild.getAttribute("images");\r
-                               var item=new Object();\r
-                               item.sItemName=sName;\r
-                               if(sTarget)\r
-                                       item.sTarget=sTarget;\r
-                               if(sIcons)\r
-                                       item.sIconRef=sIcons;\r
-                               if(sURL==null) sURL="";\r
-                               item.sItemURL=sURL;\r
-                               \r
-                               if(oChild.nodeName=="book")\r
-                               {\r
-                                       item.nType=1;\r
-                                       aToc[aToc.length]=item;\r
-                                       var nCurrPos=aToc.length;\r
-                                       processBook(oChild,aToc);\r
-                                       item.nContents=aToc.length-nCurrPos;\r
-                               }\r
-                               else if(oChild.nodeName=="item")\r
-                               {\r
-                                       item.nType=2;\r
-                                       item.nContents=0;\r
-                                       aToc[aToc.length]=item;\r
-                               }\r
-                               else if(oChild.nodeName=="remoteitem")\r
-                               {\r
-                                       item.nType=16;\r
-                                       item.nContents=0;\r
-                                       aToc[aToc.length]=item;\r
-                               }\r
-                               else if(oChild.nodeName=="project")\r
-                               {\r
-                                       item.nType=4;\r
-                                       item.sRefURL=sRef;\r
-                                       item.nContents=0;\r
-                                       aToc[aToc.length]=item;\r
-                               }\r
-                               else if(oChild.nodeName=="chunk")\r
-                               {\r
-                                       item.nType=8;\r
-                                       item.sRefURL=sRef;\r
-                                       item.nContents=0;\r
-                                       aToc[aToc.length]=item;\r
-                               }\r
-                       }\r
-               }\r
-               else\r
-                       break;\r
-               oChild=oChild.nextSibling;\r
-       }while(true);\r
-}\r
-\r
-function putData(aTocs)\r
-{\r
-       gaTocsNs61Fix=aTocs;\r
-       setTimeout("realPutData();",1);\r
-}\r
-\r
-function realPutData()\r
-{\r
-       var aTocs=gaTocsNs61Fix;\r
-       if(!aTocs) return;\r
-       if(goChunk)\r
-       {\r
-               var n=gnMinIdx;\r
-               goChunk.nMI=gnMinIdx;\r
-               goChunk.aTocs=aTocs;\r
-               gnMinIdx+=aTocs.length;\r
-               if(gnInsIdx!=-1)\r
-               {\r
-                       var oObj=getElement(getCBId(gnInsIdx));\r
-                       if(oObj)\r
-                       {\r
-                               oObj.innerHTML=writeBookItems(n-1,aTocs.length);\r
-                               setTimeout("syncInit()",1);\r
-                       }\r
-               }\r
-               else{\r
-                       document.body.insertAdjacentHTML("beforeEnd",writeBookItems(n-1,aTocs.length));\r
-                       var oParam=new Object();\r
-                       oParam.oTocInfo=null;\r
-                       var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);\r
-                       if(SendMessage(oMsg))\r
-                       {\r
-                               if (oMsg.oParam.oTocInfo)\r
-                                       syncWithPaths(oMsg.oParam.oTocInfo);\r
-                       }\r
-               }       \r
-       }\r
-}\r
-\r
-function syncWithPaths(oTopicParam)\r
-{\r
-       var aPaths=getTocPaths(oTopicParam);\r
-       if(gsTP)\r
-               gaBTPs=aPaths;\r
-       else{\r
-               var sPath=getClosestTocPath(aPaths);\r
-               if(sPath!=null)\r
-               {\r
-                       gsTP=sPath;\r
-                       setTimeout("syncInit()",1);\r
-               }\r
-       }\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if(gsBgImage&&gsBgImage.length>0)\r
-       {\r
-               document.body.background=gsBgImage;\r
-       }\r
-       if(gsBgColor&&gsBgColor.length>0)\r
-       {\r
-               document.body.bgColor=gsBgColor;\r
-       }\r
-       loadToc();\r
-       var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function loadImages()\r
-{\r
-       if(giBookClose)\r
-       {\r
-               gaImgs[gnImages]=giBookClose;\r
-               gnImages++;\r
-       }               \r
-       if(giBookOpen)\r
-       {\r
-               gaImgs[gnImages]=giBookOpen;\r
-               gnImages++;\r
-       }               \r
-       if(giBookItem)\r
-       {\r
-               gaImgs[gnImages]=giBookItem;\r
-               gnImages++;\r
-       }               \r
-       if(giURLItem)\r
-       {\r
-               gaImgs[gnImages]=giURLItem;\r
-               gnImages++;\r
-       }               \r
-       if(giNewBookClose)\r
-       {\r
-               gaImgs[gnImages]=giNewBookClose;\r
-               gnImages++;\r
-       }               \r
-       if(giNewBookOpen)\r
-       {\r
-               gaImgs[gnImages]=giNewBookOpen;\r
-               gnImages++;\r
-       }               \r
-       if(giNewBookItem)\r
-       {\r
-               gaImgs[gnImages]=giNewBookItem;\r
-               gnImages++;\r
-       }               \r
-       if(giNewURLItem)\r
-       {\r
-               gaImgs[gnImages]=giNewURLItem;\r
-               gnImages++;\r
-       }\r
-       if(gnImages>0)\r
-       {\r
-               setTimeout("loadDataAfter();",1000);\r
-               loadImage(gaImgs[0]);\r
-       }\r
-       else\r
-               loadDataAfter();\r
-}\r
-\r
-function loadImage(sURL)\r
-{\r
-       var oImg=new Image();\r
-       oImg.onload=checkImageLoading;\r
-       oImg.onerror=errorImageLoading;\r
-       oImg.src=_getFullPath(gaProj[0].sPPath,sURL);\r
-}\r
-\r
-function loadDataAfter()\r
-{\r
-       if(!gbLoadData)\r
-       {\r
-               gbLoadData=true;\r
-               loadTData();\r
-       }\r
-}\r
-\r
-function errorImageLoading()\r
-{\r
-       gnLoadedImages++;\r
-       if(gnImages==gnLoadedImages)\r
-               loadDataAfter();\r
-       else\r
-               loadImage(gaImgs[gnLoadedImages]);      \r
-}\r
-\r
-function checkImageLoading()\r
-{\r
-       gnLoadedImages++;\r
-       if(gnImages==gnLoadedImages)\r
-               loadDataAfter();\r
-       else\r
-               loadImage(gaImgs[gnLoadedImages]);      \r
-}\r
-\r
-function window_unload()\r
-{\r
-       UnRegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       UnRegisterListener2(this,WH_MSG_SYNCTOC);\r
-       UnRegisterListener2(this,WH_MSG_SHOWTOC);\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       if(oMsg)\r
-       {\r
-               var nMsgId=oMsg.nMessageId;\r
-               if(nMsgId==WH_MSG_PROJECTREADY)\r
-               {\r
-                       loadToc();\r
-               }\r
-               else if(nMsgId==WH_MSG_SYNCTOC)\r
-               {\r
-                       if(gbReady)\r
-                       {\r
-                               syncWithPaths(oMsg.oParam);\r
-                       }\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWTOC)\r
-               {\r
-                       if(!gbNav6)\r
-                               document.body.focus();\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-if (window.gbWhUtil&&window.gbWhVer&&window.gbWhMsg&&window.gbWhProxy)\r
-{\r
-       RegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       RegisterListener2(this,WH_MSG_SYNCTOC);\r
-       RegisterListener2(this,WH_MSG_SHOWTOC);\r
-       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");\r
-       goHFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");\r
-\r
-       window.onload=window_OnLoad;\r
-       window.onbeforeunload=window_BUnload;\r
-       window.onunload=window_unload;\r
-       gbWhTHost=true;\r
-}\r
-else\r
-       document.location.reload();\r
-\r
diff --git a/doc/salome/gui/SMESH/whtopic.js b/doc/salome/gui/SMESH/whtopic.js
deleted file mode 100755 (executable)
index 3adaa25..0000000
+++ /dev/null
@@ -1,662 +0,0 @@
-var gsPPath = "";\r
-var gaPaths = new Array();\r
-var gaAvenues = new Array();\r
-\r
-var goFrame = null;\r
-var gsStartPage = "";\r
-var gsRelCurPagePath = "";\r
-var gsSearchFormHref  = "";\r
-var gnTopicOnly = -1;\r
-var gnOutmostTopic = -1;\r
-\r
-var BTN_TEXT=1;\r
-var BTN_IMG=2;\r
-\r
-var goSync = null;\r
-\r
-var goShow = null;\r
-var goHide = null;\r
-\r
-var goPrev = null;\r
-var goNext = null;\r
-var gnForm = 0;\r
-var goShowNav = null;\r
-var goHideNav = null;\r
-\r
-var goWebSearch = null;\r
-\r
-var gsBtnStyle = "";\r
-var gaButtons = new Array();\r
-var gaTypes = new Array();\r
-var whtopic_foldUnload = null;\r
-var gbWhTopic=false;\r
-var gbCheckSync=false;\r
-var gbSyncEnabled=false;\r
-\r
-function setButtonFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
-{\r
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
-       gsBtnStyle += ".whtbtn" + sType + "{"+getFontStyle(vFont) + "}";\r
-}\r
-\r
-function writeBtnStyle()\r
-{\r
-       if (gaButtons.length > 0)\r
-       {\r
-               if (gsBtnStyle.length > 0)\r
-               {\r
-                       var sStyle = "<style type='text/css'>";\r
-                       sStyle+= gsBtnStyle + "</style>";\r
-                       document.write(sStyle);\r
-               }\r
-       }\r
-}\r
-\r
-function button(sText, nWidth, nHeight)\r
-{\r
-       this.sText = sText;\r
-       this.nWidth = nWidth;\r
-       this.nHeight = nHeight;\r
-       \r
-       this.aImgs = new Array();\r
-       var i = 0;\r
-       while (button.arguments.length > i + 3)\r
-       {\r
-               this.aImgs[i] = button.arguments[3 + i];\r
-               i ++;\r
-       }\r
-}\r
-\r
-// project info\r
-function setRelStartPage(sPath)\r
-{\r
-       if (gsPPath.length == 0)\r
-       {\r
-               gsPPath = _getFullPath(_getPath(document.location.href),  _getPath(sPath));\r
-               gsStartPage = _getFullPath(_getPath(document.location.href), sPath);\r
-               gsRelCurPagePath = _getRelativeFileName(gsStartPage, document.location.href);\r
-       }\r
-}\r
-\r
-function getImage(oImage, sType)\r
-{\r
-       var sImg="";\r
-       if (oImage && oImage.aImgs && (oImage.aImgs.length > 0))\r
-       {\r
-               sImg+="<img alt=\""+ sType + "\" src=\"" + oImage.aImgs[0] + "\"";\r
-               if (oImage.nWidth > 0)\r
-                       sImg+=" width=" + oImage.nWidth;\r
-               if (oImage.nHeight > 0)\r
-                       sImg+=" height=" + oImage.nHeight;\r
-               sImg+=" border=no>";\r
-       }\r
-       return sImg;\r
-}\r
-\r
-function addTocInfo(sTocPath)\r
-{\r
-       gaPaths[gaPaths.length] = sTocPath;\r
-}\r
-\r
-function addAvenueInfo(sName, sPrev, sNext)\r
-{\r
-       gaAvenues[gaAvenues.length] = new avenueInfo(sName, sPrev, sNext);      \r
-}\r
-\r
-function addButton(sType, nStyle, sText, sHref, sOnClick, sOnMouseOver, sOnLoad, nWidth, nHeight, sImg1, sImg2, sImg3)\r
-{\r
-       var sButton = "";\r
-       var nBtn=gaButtons.length;\r
-       if (sType == "prev")\r
-       {\r
-               if (canGo(false))\r
-               {\r
-                       var sTitle = "Previous Topic";\r
-                       goPrev = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
-                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnprev\" href=\"javascript:void(0);\" onclick=\"goAvenue(false);return false;\">";\r
-                       if (nStyle == BTN_TEXT)\r
-                               sButton += goPrev.sText;\r
-                       else\r
-                               sButton += getImage(goPrev, sTitle);\r
-                       sButton += "</a>";\r
-               }\r
-       }\r
-       else if (sType == "next")\r
-       {\r
-               if (canGo(true))\r
-               {\r
-                       var sTitle = "Next Topic";\r
-                       goNext = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
-                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnnext\" href=\"javascript:void(0);\" onclick=\"goAvenue(true);return false;\">";\r
-                       if (nStyle == BTN_TEXT)\r
-                               sButton += goNext.sText;\r
-                       else\r
-                               sButton += getImage(goNext, sTitle);\r
-                       sButton += "</a>";\r
-               }\r
-       }\r
-       else if (sType == "show")\r
-       {\r
-               if (isTopicOnly())\r
-               {\r
-                       var sTitle = "Show Navigation Component";\r
-                       goShow = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
-                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnshow\" href=\"javascript:void(0);\" onclick=\"show();return false;\">";\r
-                       if (nStyle == BTN_TEXT)\r
-                               sButton += goShow.sText;\r
-                       else\r
-                               sButton += getImage(goShow, sTitle);\r
-                       sButton += "</a>";\r
-               }\r
-       }\r
-       else if (sType == "hide")\r
-       {\r
-               if (!isTopicOnly())\r
-               {\r
-                       var sTitle = "Hide Navigation Component";\r
-                       goHide = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
-                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnhide\" href=\"javascript:void(0);\" onclick=\"hide();return false;\">";\r
-                       if (nStyle == BTN_TEXT)\r
-                               sButton += goHide.sText;\r
-                       else\r
-                               sButton += getImage(goHide, sTitle);\r
-                       sButton += "</a>";\r
-               }\r
-       }\r
-       else if (sType == "shownav")\r
-       {\r
-               \r
-               if (isShowHideEnable())\r
-               {\r
-                       var sTitle = "Show Navigation Component";\r
-                       goShowNav = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
-                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnshownav\" href=\"javascript:void(0);\" onclick=\"showHidePane(true);return false;\">";\r
-                       if (nStyle == BTN_TEXT)\r
-                               sButton += goShowNav.sText;\r
-                       else\r
-                               sButton += getImage(goShowNav, sTitle);\r
-                       sButton += "</a>";\r
-               }\r
-       }\r
-       else if (sType == "hidenav")\r
-       {\r
-               if (isShowHideEnable())\r
-               {\r
-                       var sTitle = "Hide Navigation Component";\r
-                       goHideNav = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
-                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnhidenav\" href=\"javascript:void(0);\" onclick=\"showHidePane(false);return false;\">";\r
-                       if (nStyle == BTN_TEXT)\r
-                               sButton += goHideNav.sText;\r
-                       else\r
-                               sButton += getImage(goHideNav, sTitle);\r
-                       sButton += "</a>";\r
-               }\r
-       }\r
-       else if (sType == "synctoc")\r
-       {\r
-               if (gaPaths.length > 0)\r
-               {\r
-                       var sTitle = "Sync TOC";\r
-                       goSync = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
-                       sButton = "<a title=\""+ sTitle + "\" class=\"whtbtnsynctoc\" href=\"javascript:void(0);\" onclick=\"syncWithShow();return false;\">";\r
-                       if (nStyle == BTN_TEXT)\r
-                               sButton += goSync.sText;\r
-                       else\r
-                               sButton += getImage(goSync, sTitle);\r
-                       sButton += "</a>";\r
-               }\r
-       }\r
-       else if (sType == "websearch")\r
-       {\r
-               if (gsSearchFormHref.length > 0)\r
-               {\r
-                       var sTitle = "WebSearch";\r
-                       goWebSearch = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
-                       sButton = "<a title=\""+ sTitle + "\" class=\"whtbtnwebsearch\" href=\"" + gsSearchFormHref + "\">";\r
-                       if (nStyle == BTN_TEXT)\r
-                               sButton += goWebSearch.sText;\r
-                       else\r
-                               sButton += getImage(goWebSearch, sTitle);\r
-                       sButton += "</a>";\r
-               }\r
-       }\r
-       else if (sType == "searchform")\r
-       {\r
-               gaButtons[nBtn] = "NeedSearchForm";\r
-               gaTypes[nBtn] = sType;\r
-       }\r
-       if (sButton.length != 0)\r
-       {\r
-               if (nStyle == BTN_TEXT)\r
-                       sButton += "&nbsp;";\r
-               gaButtons[nBtn] = "<td>" + sButton + "</td>";\r
-               gaTypes[nBtn] = sType;\r
-       }\r
-}\r
-\r
-function isSyncEnabled()\r
-{\r
-       if (!gbCheckSync)\r
-       {\r
-               var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null);\r
-               if(SendMessage(oMsg))\r
-               {\r
-                       gbSyncEnabled=oMsg.oParam;\r
-               }\r
-               gbCheckSync=true;\r
-       }\r
-       return gbSyncEnabled;\r
-}\r
-\r
-function isInPopup()\r
-{\r
-       return (window.name.indexOf("BSSCPopup") != -1);\r
-}\r
-\r
-function getIntopicBar(sAlign)\r
-{\r
-       var sHTML = "";\r
-       if (gaButtons.length > 0)\r
-       {\r
-               sHTML += "<div align="+ sAlign + ">";\r
-\r
-               sHTML += "<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\"><tr>";\r
-               for (var i = 0; i < gaButtons.length; i++)\r
-               {\r
-                       if (gaTypes[i]!="synctoc" || isSyncEnabled())\r
-                       {\r
-                               if (gaButtons[i] == "NeedSearchForm")\r
-                                       sHTML += getSearchFormHTML();\r
-                               else\r
-                                       sHTML += gaButtons[i];\r
-                       }\r
-               }\r
-               sHTML += "</tr></table>";\r
-\r
-               sHTML += "</div>";\r
-       }\r
-       return sHTML;\r
-}\r
-\r
-\r
-function writeIntopicBar(nAligns)\r
-{\r
-       if (isInPopup()) return;\r
-       if (gaButtons.length > 0)\r
-       {\r
-               var sHTML = "";\r
-               if (nAligns != 0)\r
-               {\r
-                       sHTML += "<table width=100%><tr>"\r
-                       if (nAligns & 1)\r
-                               sHTML += "<td width=33%>" + getIntopicBar("left") + "</td>";\r
-                       if (nAligns & 2)\r
-                               sHTML += "<td width=34%>" + getIntopicBar("center") + "</td>";\r
-                       if (nAligns & 4)\r
-                               sHTML += "<td width=33%>" + getIntopicBar("right") + "</td>";\r
-                       sHTML += "</tr></table>";\r
-                       document.write(sHTML);\r
-               }\r
-       }\r
-}\r
-\r
-function sendAveInfoOut()\r
-{\r
-       if (!isInPopup())\r
-               setTimeout("sendAveInfo();", 100);\r
-}\r
-\r
-function sendAveInfo()\r
-{\r
-       var oMsg = new whMessage(WH_MSG_AVENUEINFO, this, 1, gaAvenues);\r
-       SendMessage(oMsg);\r
-}\r
-\r
-\r
-function onNext()\r
-{\r
-       var oMsg = new whMessage(WH_MSG_NEXT, this, 1, null);\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function onPrev()\r
-{\r
-       var oMsg = new whMessage(WH_MSG_PREV, this, 1, null);\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function createSyncInfo()\r
-{\r
-       var oParam = new Object();\r
-       if (gsPPath.length == 0)\r
-               gsPPath = _getPath(document.location.href);\r
-       oParam.sPPath = gsPPath;\r
-       oParam.sTPath = document.location.href;\r
-       oParam.aPaths = gaPaths;\r
-       return oParam;\r
-}\r
-\r
-function syncWithShow()\r
-{\r
-       if (isTopicOnly())\r
-               show();\r
-       else \r
-       {\r
-               sync();\r
-               showTocPane();\r
-       }\r
-}\r
-\r
-function showTocPane()\r
-{\r
-       var oMsg = new whMessage(WH_MSG_SHOWTOC, this, 1, null);\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function sendSyncInfo()\r
-{\r
-       if (!isInPopup())\r
-       {\r
-               var oParam = null;\r
-               if (gaPaths.length > 0)\r
-               {\r
-                       oParam = createSyncInfo();\r
-               }\r
-               var oMsg = new whMessage(WH_MSG_SYNCINFO, this, 1, oParam);\r
-               SendMessage(oMsg);\r
-       }\r
-}\r
-\r
-function sendInvalidSyncInfo()\r
-{\r
-       if (!isInPopup())\r
-       {\r
-               var oMsg = new whMessage(WH_MSG_SYNCINFO, this, 1, null);\r
-               SendMessage(oMsg);\r
-       }\r
-}\r
-\r
-function enableWebSearch(bEnable)\r
-{\r
-       if (!isInPopup())\r
-       {\r
-               var oMsg = new whMessage(WH_MSG_ENABLEWEBSEARCH, this, 1, bEnable);\r
-               SendMessage(oMsg);\r
-       }\r
-}\r
-\r
-function autoSync(nSync)\r
-{\r
-       if (nSync == 0) return;\r
-       if (isInPopup()) return;\r
-       if (isOutMostTopic())\r
-               sync();\r
-}\r
-\r
-function isOutMostTopic()\r
-{\r
-       if (gnOutmostTopic == -1)\r
-       {\r
-               var oMessage = new whMessage(WH_MSG_ISINFRAMESET, this, 1 , null);\r
-               if (SendMessage(oMessage))\r
-                       gnOutmostTopic = 0;\r
-               else\r
-                       gnOutmostTopic = 1;\r
-       }\r
-       return (gnOutmostTopic == 1);\r
-}\r
-\r
-function sync()\r
-{\r
-       if (gaPaths.length > 0)\r
-       {\r
-               var oParam = createSyncInfo();\r
-               var oMessage = new whMessage(WH_MSG_SYNCTOC, this, 1, oParam);\r
-               SendMessage(oMessage);\r
-       }\r
-}\r
-\r
-\r
-function avenueInfo(sName, sPrev, sNext)\r
-{\r
-       this.sName = sName;\r
-       this.sPrev = sPrev;\r
-       this.sNext = sNext;\r
-}\r
-\r
-function getCurrentAvenue()\r
-{\r
-       var oParam = new Object();\r
-       oParam.sAvenue = null;\r
-       var oMessage = new whMessage(WH_MSG_GETCURRENTAVENUE, this, 1, oParam);\r
-       SendMessage(oMessage);\r
-       return oParam.sAvenue;\r
-}\r
-\r
-function unRegisterListener()\r
-{\r
-       sendInvalidSyncInfo();\r
-       enableWebSearch(false);\r
-       if (whtopic_foldUnload)\r
-               whtopic_foldUnload();\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       var nMsgId = oMsg.nMessageId;\r
-       if (nMsgId == WH_MSG_GETAVIAVENUES)\r
-       {\r
-               oMsg.oParam.aAvenues = gaAvenues;\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_GETTOCPATHS)\r
-       {\r
-               if (isOutMostTopic())\r
-               {\r
-                       oMsg.oParam.oTocInfo = createSyncInfo();\r
-                       return false;           \r
-               }\r
-               else\r
-                       return true;\r
-       }\r
-       else if (nMsgId == WH_MSG_NEXT)\r
-       {\r
-               goAvenue(true);\r
-       }\r
-       else if (nMsgId == WH_MSG_PREV)\r
-       {\r
-               goAvenue(false);\r
-       }\r
-       else if (nMsgId == WH_MSG_WEBSEARCH)\r
-       {\r
-               websearch();\r
-       }\r
-       return true;\r
-}\r
-\r
-function goAvenue(bNext)\r
-{\r
-       var sTopic = null;\r
-       var sAvenue = getCurrentAvenue();\r
-       var nAvenue = -1;\r
-       if (sAvenue != null && sAvenue != "")\r
-       {\r
-               for (var i = 0; i < gaAvenues.length ; i ++)\r
-               {\r
-                       if (gaAvenues[i].sName == sAvenue)\r
-                       {\r
-                               nAvenue = i;\r
-                               break;\r
-                       }\r
-               }\r
-               if (nAvenue != -1)\r
-               {\r
-                       if (bNext)\r
-                               sTopic = gaAvenues[nAvenue].sNext;\r
-                       else\r
-                               sTopic = gaAvenues[nAvenue].sPrev;\r
-               }\r
-       }\r
-       else\r
-       { \r
-               for (var i = 0; i < gaAvenues.length ; i ++)\r
-               {\r
-                       if (gaAvenues[i].sNext != null && gaAvenues[i].sNext.length > 0 && bNext)\r
-                       {\r
-                               sTopic = gaAvenues[i].sNext;\r
-                               break;\r
-                       }\r
-                       else if (gaAvenues[i].sPrev != null && gaAvenues[i].sPrev.length > 0 && !bNext)\r
-                       {\r
-                               sTopic = gaAvenues[i].sPrev;\r
-                               break;\r
-                       }\r
-               }\r
-       }\r
-       \r
-       if (sTopic != null && sTopic != "")\r
-       {\r
-               if (gsPPath != null && gsPPath != "")\r
-               {\r
-                       sFullTopicPath = _getFullPath(gsPPath, sTopic);\r
-                       document.location = sFullTopicPath;\r
-               }\r
-       }\r
-}\r
-\r
-function canGo(bNext)\r
-{\r
-       for (var i = 0; i < gaAvenues.length ; i ++)\r
-       {\r
-               if ((gaAvenues[i].sNext != null && gaAvenues[i].sNext.length > 0 && bNext) ||\r
-                       (gaAvenues[i].sPrev != null && gaAvenues[i].sPrev.length > 0 && !bNext))\r
-                       return true;\r
-       }\r
-       return false;\r
-}\r
-\r
-function show()\r
-{\r
-       if (gsStartPage != "")\r
-               window.location =  gsStartPage + "#" + gsRelCurPagePath;\r
-}\r
-\r
-function hide()\r
-{\r
-       if (goFrame != null)\r
-       {\r
-               goFrame.location = window.location;\r
-       }\r
-}\r
-\r
-function isTopicOnly()\r
-{\r
-       if (gnTopicOnly == -1)\r
-       {\r
-               var oParam = new Object();\r
-               oParam.oFrame = null;\r
-               var oMsg = new whMessage(WH_MSG_GETSTARTFRAME, this, 1, oParam);\r
-               if (SendMessage(oMsg))\r
-               {\r
-                       goFrame = oParam.oFrame;\r
-                       gnTopicOnly = 0;\r
-               }\r
-               else\r
-                       gnTopicOnly = 1;\r
-       }\r
-       if (gnTopicOnly == 1)\r
-               return true;\r
-       else\r
-               return false;\r
-}\r
-\r
-function websearch()\r
-{\r
-       if (gbNav4)\r
-       {\r
-               if (document.ehelpform)\r
-                       document.ehelpform.submit();\r
-       }\r
-       else\r
-       {\r
-               if (window.ehelpform)\r
-                       window.ehelpform.submit();\r
-       }\r
-}\r
-\r
-function addSearchFormHref(sHref)\r
-{\r
-       gsSearchFormHref = sHref;\r
-       enableWebSearch(true);\r
-}\r
-\r
-function searchB(nForm)\r
-{\r
-       var sValue = eval("document.searchForm" + nForm + ".searchString.value");\r
-       var oMsg = new whMessage(WH_MSG_SEARCHTHIS, this, 1, sValue);\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function getSearchFormHTML()\r
-{\r
-       var sHTML = "";\r
-       gnForm ++;\r
-       var sFormName = "searchForm" + gnForm;\r
-       var sButton = "<form name=\"" + sFormName + "\" method=\"POST\" action=\"javascript:searchB("+ gnForm + ")\">"\r
-       sButton += "<input type=\"text\" name=\"searchString\" value=\"- Full Text search -\" size=\"20\"/>";\r
-       if ("" == "text")\r
-       {\r
-               sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\"" + sFormName + ".submit(); return false;\"></a>";\r
-       }\r
-       else if ("" == "image")\r
-       {\r
-               sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\"" + sFormName + ".submit(); return false;\">"\r
-               sButton+="<img src=\"\" border=0></a>";\r
-       }\r
-       sButton += "</form>";\r
-       sHTML ="<td align=\"center\">" + sButton + "</td>";\r
-       return sHTML;\r
-}\r
-\r
-function showHidePane(bShow)\r
-{\r
-       var oMsg=null;\r
-       if (bShow)\r
-               oMsg=new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-       else\r
-               oMsg=new whMessage(WH_MSG_HIDEPANE, this, 1, null);\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function isShowHideEnable()\r
-{\r
-       if (gbIE4)\r
-               return true;\r
-       else\r
-               return false;\r
-}\r
-\r
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
-{\r
-       RegisterListener("bsscright", WH_MSG_GETAVIAVENUES);\r
-       RegisterListener("bsscright", WH_MSG_GETTOCPATHS);\r
-       RegisterListener("bsscright", WH_MSG_NEXT);\r
-       RegisterListener("bsscright", WH_MSG_PREV);\r
-       RegisterListener("bsscright", WH_MSG_WEBSEARCH);\r
-       if (gbMac && gbIE4)\r
-       {\r
-               if (typeof(window.onunload) != "unknown")\r
-                       whtopic_foldUnload = window.onunload;\r
-       }\r
-       else\r
-       {\r
-               if (window.onunload)\r
-                       whtopic_foldUnload = window.onunload;\r
-       }\r
-       window.onunload = unRegisterListener;\r
-       setButtonFont("show","","10pt","","","","");\r
-\r
-       gbWhTopic=true;\r
-}\r
-else\r
-       document.location.reload();
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whutils.js b/doc/salome/gui/SMESH/whutils.js
deleted file mode 100755 (executable)
index 7fa6c28..0000000
+++ /dev/null
@@ -1,463 +0,0 @@
-var gsFileName="";\r
-var xmlDoc=null;\r
-var sdocPath=null;\r
-var gsInsertBeforeEndHTML="";\r
-var sReplaceStringsSrc=new Array();\r
-sReplaceStringsSrc[0]="&amp;";\r
-sReplaceStringsSrc[1]="&gt;";\r
-sReplaceStringsSrc[2]="&lt;";\r
-sReplaceStringsSrc[3]="&quot;";\r
-sReplaceStringsSrc[4]="&nbsp;";\r
-var sReplaceStringsDst=new Array();\r
-sReplaceStringsDst[0]="&";\r
-sReplaceStringsDst[1]=">";\r
-sReplaceStringsDst[2]="<";\r
-sReplaceStringsDst[3]="\"";\r
-sReplaceStringsDst[4]=" ";\r
-var goHighLighted=null;\r
-\r
-function _getRelativePath(strParentPath,strCurrentPath)\r
-{\r
-       if(_isAbsPath(strCurrentPath)) return _getPath(strCurrentPath);\r
-       strParentPath=_replaceSlash(strParentPath);\r
-       strParentPath=_getPath(strParentPath);\r
-       strCurrentPath=_replaceSlash(strCurrentPath);\r
-       strCurrentPath=_getPath(strCurrentPath);\r
-       for(var i=0;i<strParentPath.length&&i<strCurrentPath.length;i++)\r
-       {\r
-               if(strParentPath.charAt(i)!=strCurrentPath.charAt(i))\r
-                       break;\r
-       }\r
-       \r
-       strParentPath=strParentPath.substring(i);\r
-       strCurrentPath=strCurrentPath.substring(i);     \r
-       \r
-       var nPathPos=0;\r
-       while(nPathPos!=-1)\r
-       {\r
-               nPathPos=strParentPath.indexOf("/");\r
-               if(nPathPos!=-1)\r
-               {\r
-                       strParentPath=strParentPath.substring(nPathPos+1);\r
-                       strCurrentPath="../"+strCurrentPath;\r
-               }\r
-       }\r
-       return strCurrentPath;\r
-}\r
-\r
-function _getRelativeFileName(strParentPath, strCurrentPath)\r
-{\r
-       strParentPath=_replaceSlash(strParentPath);\r
-       strParentPath=_getPath(strParentPath);\r
-       strCurrentPath=_replaceSlash(strCurrentPath);\r
-       for(var i=0;i<strParentPath.length&&i<strCurrentPath.length;i++)\r
-       {\r
-               if(strParentPath.charAt(i)!=strCurrentPath.charAt(i))\r
-                       break;\r
-       }\r
-       \r
-       strParentPath=strParentPath.substring(i);\r
-       strCurrentPath=strCurrentPath.substring(i);     \r
-       \r
-       var nPathPos=0;\r
-       while(nPathPos!=-1)\r
-       {\r
-               nPathPos=strParentPath.indexOf("/");\r
-               if(nPathPos!=-1)\r
-               {\r
-                       strParentPath=strParentPath.substring(nPathPos+1);\r
-                       strCurrentPath="../"+strCurrentPath;\r
-               }\r
-       }\r
-       return strCurrentPath;\r
-}\r
-\r
-function _isAbsPathToHost(sPath)\r
-{\r
-       return (sPath.indexOf("/")==0);\r
-}\r
-\r
-function _getHost(sPath)\r
-{\r
-       var nPos=sPath.indexOf("//");\r
-       if(nPos>0)\r
-       {\r
-               var nPosx=sPath.indexOf("/",nPos+2);\r
-               if(nPosx>0)\r
-                       return sPath.substring(0,nPosx);\r
-               else\r
-                       return sPath;\r
-       }\r
-       return sPath;\r
-}\r
-\r
-function _getFullPath(sPath,sRelPath)\r
-{\r
-       if(_isAbsPath(sRelPath))\r
-               return sRelPath;\r
-       else if(_isAbsPathToHost(sRelPath))\r
-               return _getHost(sPath)+sRelPath;\r
-       else\r
-       {\r
-               var sFullPath=sPath;\r
-               var nPathPos=0;\r
-               while(nPathPos!=-1)\r
-               {\r
-                       var nPathPos=sRelPath.indexOf("../");\r
-                       if(nPathPos!=-1)\r
-                       {\r
-                               sRelPath=sRelPath.substring(nPathPos+3);\r
-                               sFullPath=sFullPath.substring(0,sFullPath.length-1);\r
-                               var nPos2 = sFullPath.lastIndexOf("/");\r
-                               if(nPos2!=-1)\r
-                                       sFullPath=sFullPath.substring(0,nPos2+1);\r
-                               else\r
-                                       break;\r
-                       }\r
-               }\r
-               sFullPath+=sRelPath;\r
-               return sFullPath;\r
-       }       \r
-}\r
-\r
-function _isAbsPath(strPath)\r
-{\r
-       var strUpper=strPath.toUpperCase();\r
-       return (strUpper.indexOf(":")!=-1);\r
-}\r
-\r
-function _replaceSlash(strURL)\r
-{      \r
-       var re=new RegExp("\\\\","g");\r
-       var strReplacedURL=strURL.replace(re,"/");\r
-       return strReplacedURL;\r
-}\r
-\r
-function _getPath(strURL)\r
-{\r
-       pathpos=strURL.lastIndexOf("/");\r
-       if(pathpos>0)\r
-               return strURL.substring(0,pathpos+1);\r
-       else\r
-               return "";\r
-}\r
-\r
-function removeItemFromArray(oArray,i)\r
-{\r
-       if(oArray.length&&i>=0&&i<oArray.length)\r
-       {\r
-               var len=oArray.length;\r
-               for(var s=i;s<len-1;s++)\r
-                       oArray[s]=oArray[s+1];\r
-               oArray.length=len-1;\r
-       }\r
-}\r
-\r
-function insertItemIntoArray(oArray,i,obj)\r
-{\r
-       if(oArray.length&&i>=0&&i<=oArray.length)\r
-       {\r
-               var len=oArray.length;\r
-               for(var s=len;s>i;s--)\r
-                       oArray[s]=oArray[s-1];\r
-               oArray[i]=obj;          \r
-       }\r
-}\r
-\r
-function loadData(sFileName)\r
-{\r
-       if(!getElement("dataDiv"))\r
-       {\r
-               if(!insertDataDiv())\r
-               {\r
-                       gsFileName=sFileName;\r
-                       return;\r
-               }\r
-       }\r
-       var sHTML="";\r
-       if(gbMac)\r
-               sHTML+="<iframe src="+sFileName+"></iframe>";\r
-       else\r
-               sHTML+="<iframe style=\"visibility:hidden;width:0;height:0\" src="+sFileName+"></iframe>";\r
-       \r
-       var oDivCon=getElement("dataDiv");\r
-       if(oDivCon)\r
-       {\r
-               if(gbNav6)\r
-               {\r
-                       if(oDivCon.getElementsByTagName&&oDivCon.getElementsByTagName("iFrame").length>0)\r
-                       {\r
-                               oDivCon.getElementsByTagName("iFrame")[0].src=sFileName;\r
-                       }\r
-                       else\r
-                               oDivCon.innerHTML=sHTML;\r
-               }\r
-               else\r
-                       oDivCon.innerHTML=sHTML;\r
-       }\r
-}\r
-\r
-function loadDataXML(sFileName)\r
-{\r
-       var sCurrentDocPath=_getPath(document.location.href);\r
-       sdocPath=_getFullPath(sCurrentDocPath,sFileName);\r
-       if(gbIE5)\r
-       {\r
-               xmlDoc=new ActiveXObject("Microsoft.XMLDOM");\r
-               xmlDoc.async=true;\r
-               xmlDoc.onreadystatechange=checkState;\r
-               if(document.body!=null)\r
-                       xmlDoc.load(sdocPath);\r
-       }\r
-       else if(gbNav6)\r
-       {\r
-               xmlDoc=document.implementation.createDocument("","",null);\r
-               xmlDoc.addEventListener("load",initializeData,false);\r
-               xmlDoc.load(sdocPath,"text/xml");\r
-       }\r
-}\r
-\r
-function initializeData()\r
-{\r
-       if(xmlDoc!=null)\r
-               putDataXML(xmlDoc,sdocPath);\r
-}\r
-\r
-function checkState()\r
-{\r
-       if(xmlDoc!=null)\r
-       {\r
-               var state=xmlDoc.readyState;\r
-               if(state==4)\r
-               {\r
-                       var err=xmlDoc.parseError;\r
-                       if(err.errorCode!=0)\r
-                               alert(err.reason);\r
-                       else\r
-                               putDataXML(xmlDoc,sdocPath);\r
-               }\r
-       }\r
-}\r
-\r
-function insertDataDiv()\r
-{\r
-       var sHTML="";\r
-       if(gbMac)\r
-               sHTML+="<div id=dataDiv style=\"display:none;\"></div>";\r
-       else\r
-               sHTML+="<div id=dataDiv style=\"visibility:hidden\"></div>";\r
-       if((gbIE5||gbNav6)&&document.body)\r
-               document.body.insertAdjacentHTML("beforeEnd",sHTML);\r
-       else\r
-       {\r
-               gsInsertBeforeEndHTML=sHTML;\r
-               setTimeout("insertWhenBodyReady();",100);\r
-               return false;\r
-       }\r
-       return true;\r
-}\r
-\r
-function insertWhenBodyReady()\r
-{\r
-       if(gsInsertBeforeEndHTML=="") return;\r
-       if(document.body)\r
-       {\r
-               document.body.insertAdjacentHTML("beforeEnd",gsInsertBeforeEndHTML);\r
-               gsInsertBeforeEndHTML="";\r
-               loadData(gsFileName);\r
-       }\r
-       else\r
-       {\r
-               setTimeout("insertWhenBodyReady();",100);\r
-       }\r
-}\r
-\r
-function window_BUnload()\r
-{\r
-       var oDivCon=getElement("dataDiv");\r
-       if(oDivCon)\r
-               oDivCon.innerHTML="";\r
-}\r
-\r
-function removeThis(obj)\r
-{\r
-       if(obj.parentNode)\r
-               obj.parentNode.removeChild(obj);\r
-       else\r
-               obj.outerHTML="";\r
-}\r
-\r
-function getParentNode(obj)\r
-{\r
-       if(obj.parentNode)\r
-               return obj.parentNode;\r
-       else if(obj.parentElement)\r
-               return obj.parentElement;\r
-       return null;\r
-}\r
-\r
-function getElement(sID)\r
-{\r
-       if(document.getElementById)\r
-               return document.getElementById(sID);\r
-       else if(document.all)\r
-               return document.all(sID);\r
-       return null;\r
-}\r
-\r
-function getChildrenByTag(obj,sTagName)\r
-{\r
-       if(obj.getElementsByTagName)\r
-       {\r
-               var aChildren=new Array();\r
-               var aElements=getElementsByTag(obj,sTagName);\r
-               if(aElements!=null)\r
-               {\r
-                       for(var i=0;i<aElements.length;i++)\r
-                       {\r
-                               if(aElements[i].parentNode==obj)\r
-                                       aChildren[aChildren.length]=aElements[i];\r
-                       }\r
-                       return aChildren;\r
-               }\r
-               else\r
-                       return new Array();\r
-       }\r
-       else if(obj.children)\r
-               return obj.children.tags(sTagName);\r
-}\r
-\r
-function getElementsByTag(obj,sTagName)\r
-{\r
-       if(obj.getElementsByTagName)\r
-               return obj.getElementsByTagName(sTagName);\r
-       else if(obj.all)\r
-               return obj.all.tags(sTagName);\r
-       return null;\r
-}\r
-\r
-function _htmlToText(sHTML)\r
-{\r
-       if(sHTML==null) return null;\r
-       var sText=sHTML;\r
-       for(var i=0;i<sReplaceStringsSrc.length;i++)\r
-       {\r
-               var re=new RegExp(sReplaceStringsSrc[i],"g");\r
-               sText=sText.replace(re,sReplaceStringsDst[i]);\r
-       }       \r
-       return sText;\r
-}\r
-\r
-function _textToHtml_nonbsp(sText)\r
-{\r
-       if(sText==null) return null;\r
-       var sHTML=sText;\r
-       for(var i=0;i<sReplaceStringsSrc.length-1;i++)\r
-       {\r
-               var re=new RegExp(sReplaceStringsDst[i],"g");\r
-               sHTML=sHTML.replace(re,sReplaceStringsSrc[i]);\r
-       }       \r
-       return sHTML;\r
-}\r
-\r
-function _textToHtml(sText)\r
-{\r
-       if(sText==null) return null;\r
-       var sHTML=sText;\r
-       for(var i=0;i<sReplaceStringsSrc.length;i++)\r
-       {\r
-               var re=new RegExp(sReplaceStringsDst[i],"g");\r
-               sHTML=sHTML.replace(re,sReplaceStringsSrc[i]);\r
-       }       \r
-       return sHTML;\r
-}\r
-\r
-\r
-function getInnerText(obj)\r
-{\r
-       var renbsp2sp=new RegExp("\xa0","g");\r
-       if(obj.innerText)\r
-       {\r
-               var sText=obj.innerText;\r
-               sText=sText.replace(renbsp2sp," ");\r
-               return sText;\r
-       }\r
-       else\r
-       {\r
-               if(obj.nodeValue)\r
-               {\r
-                       var sValue=obj.nodeValue;\r
-                       sValue=sValue.replace(renbsp2sp," ");\r
-                       return sValue;\r
-               }\r
-               else\r
-               {\r
-                       var sText="";\r
-                       var oChild=obj.firstChild;\r
-                       while(oChild!=null)\r
-                       {\r
-                               sText+=getInnerText(oChild);\r
-                               oChild=oChild.nextSibling;\r
-                       }\r
-                       return sText;\r
-               }\r
-       }\r
-               \r
-}\r
-\r
-function HighLightElement(obj,sHighLightColor,sNormalColor)\r
-{\r
-       if(obj!=null)\r
-       {\r
-               resetHighLight(sNormalColor);\r
-               obj.style.backgroundColor=sHighLightColor;\r
-               goHighLighted=obj;\r
-       }\r
-}\r
-\r
-function resetHighLight(sNormalColor)\r
-{\r
-       if(goHighLighted!=null)\r
-       {\r
-               goHighLighted.style.backgroundColor=sNormalColor;\r
-               goHighLighted=null;\r
-       }\r
-}\r
-\r
-function whFont(sName,sSize,sColor,sStyle,sWeight,sDecoration)\r
-{\r
-       this.sName=sName;\r
-       this.sSize=sSize;\r
-       this.sColor=sColor;\r
-       this.sStyle=sStyle;\r
-       this.sWeight=sWeight;\r
-       this.sDecoration=sDecoration;\r
-}\r
-\r
-function getFontStyle(oFont)\r
-{\r
-       var sStyle="";\r
-       if(oFont)\r
-       {\r
-               sStyle+="font-family:"+oFont.sName+";";\r
-               if(gbMac)\r
-               {\r
-                       var nSize=parseInt(oFont.sSize);\r
-                       if(gbIE5)\r
-                               nSize+=2;\r
-                       else\r
-                               nSize+=4;\r
-                       sStyle+="font-size:"+nSize+"pt;";\r
-               }\r
-               else\r
-                       sStyle+="font-size:"+oFont.sSize+";";\r
-                       \r
-               sStyle+="font-style:"+oFont.sStyle+";";\r
-               sStyle+="font-weight:"+oFont.sWeight+";";\r
-               sStyle+="text-decoration:"+oFont.sDecoration+";";\r
-               sStyle+="color:"+oFont.sColor+";";\r
-       }\r
-       return sStyle;\r
-}\r
-\r
-var gbWhUtil=true;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whver.js b/doc/salome/gui/SMESH/whver.js
deleted file mode 100755 (executable)
index 50a8e40..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-var gbNav6=false;\r
-var gbNav61=false;\r
-var gbNav4=false;\r
-var gbIE4=false;\r
-var gbIE=false;\r
-var gbIE5=false;\r
-var gbIE55=false;\r
-\r
-var gAgent=navigator.userAgent.toLowerCase();\r
-var gbMac=(gAgent.indexOf("mac")!=-1);\r
-var gbSunOS=(gAgent.indexOf("sunos")!=-1);\r
-var gbOpera=(gAgent.indexOf("opera")!=-1);\r
-\r
-var gVersion=navigator.appVersion.toLowerCase();\r
-\r
-var gnVerMajor=parseInt(gVersion);\r
-var gnVerMinor=parseFloat(gVersion);\r
-\r
-gbIE=(navigator.appName.indexOf("Microsoft")!=-1);\r
-if(gnVerMajor>=4)\r
-{\r
-       if(navigator.appName=="Netscape")\r
-       {\r
-               gbNav4=true;\r
-               if(gnVerMajor>=5)\r
-                       gbNav6=true;\r
-       }\r
-       gbIE4=(navigator.appName.indexOf("Microsoft")!=-1);\r
-}\r
-if(gbNav6)\r
-{\r
-       document.gnPageWidth=innerWidth;\r
-       document.gnPageHeight=innerHeight;\r
-       var nPos=gAgent.indexOf("netscape");\r
-       if(nPos!=-1)\r
-       {\r
-               var nVersion=parseFloat(gAgent.substring(nPos+10));\r
-               if(nVersion>=6.1)\r
-                       gbNav61=true;\r
-       }\r
-}else if(gbIE4)\r
-{\r
-       var nPos=gAgent.indexOf("msie");\r
-       if(nPos!=-1)\r
-       {\r
-               var nVersion=parseFloat(gAgent.substring(nPos+5));\r
-               if(nVersion>=5)\r
-                       gbIE5=true;\r
-               if(nVersion>=5.5)\r
-                       gbIE55=true;\r
-       }\r
-}\r
-\r
-var gbWhVer=true;
\ No newline at end of file
diff --git a/doc/salome/tui/Makefile.in b/doc/salome/tui/Makefile.in
deleted file mode 100644 (file)
index 894cc0c..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#  Copyright (C) 2003  CEA/DEN, EDF R&D
-#
-#
-#
-#  File   : Makefile.in
-#  Author : Vasily Rusyaev (Open Cascade NN)
-#  Module : doc
-#  $Header: 
-
-top_srcdir=@top_srcdir@
-top_builddir=../../..
-root_srcdir=@ROOT_SRCDIR@
-srcdir=@srcdir@
-VPATH=.:@srcdir@
-doxygen=@DOXYGEN@
-
-@COMMENCE@
-
-PYTHON_SCRIPTS = \
-       smesh.py
-
-docs:
-       cp -fr $(srcdir)/SMESH ./INPUT; \
-       cd INPUT; \
-       sed 's|../../../share/salome|$(root_srcdir)|' ./doxyfile > ./doxyfile1; \
-       mv -f doxyfile1 doxyfile; \
-       $(doxygen) ./doxyfile; \
-       mkdir py1; mkdir py2; \
-       cd ..
-       for file in $(PYTHON_SCRIPTS) dummy; do \
-         if [ $$file != "dummy" ]; then \
-           cp $(root_srcdir)/src/SMESH_SWIG/$$file INPUT/py1/; \
-         fi ; \
-       done
-       cd INPUT; \
-       python $(KERNEL_ROOT_DIR)/doc/salome/tui/KERNEL/pythfilter.py ./py1 ./py2; \
-       sed 's|list_py_files_to_process|$(PYTHON_SCRIPTS)|' ./doxyfile_py > py2/doxyfile_py; \
-       cd py2; \
-       $(doxygen) ./doxyfile_py; \
-       cd ../..; \
-       cp -fr $(srcdir)/SMESH/sources/static/*.* ./SMESH/
-       cp -fr $(srcdir)/SMESH/sources/ SMESH/
-       cp -fr $(srcdir)/SMESH/HTML/ SMESH/
-       rm -fr INPUT
-
-clean:
-       rm -fr SMESH
-
-distclean: clean
-       rm -fr INPUT
-
-install:
-       $(INSTALL) -d $(docdir); \
-       mkdir -p $(docdir)/tui
-       cp -fr SMESH $(docdir)/tui
-
-uninstall:
-       rm -fr $(docdir)/tui/SMESH
diff --git a/doc/salome/tui/SMESH/HTML/SMESH_BasicHypothesis.html b/doc/salome/tui/SMESH/HTML/SMESH_BasicHypothesis.html
deleted file mode 100644 (file)
index 8007326..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-<HTML><b>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface StdMeshers_LocalLength</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void SetLength ( in double length )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>SetLength ( length )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>double  GetLength (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetLength (  )</b></div></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface StdMeshers_NumberOfSegments</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void SetNumberOfSegments ( in long segmentsNumber )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>SetNumberOfSegments ( segmentsNumber )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  GetNumberOfSegments (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetNumberOfSegments (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void SetScaleFactor ( in double scaleFactor )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>SetScaleFactor ( scaleFactor )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>double  GetScaleFactor (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetScaleFactor (  )</b></div></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface StdMeshers_Arithmetic1D</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void SetLength ( in double length, in boolean isStartLength )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>SetLength ( length, isStartLength )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>double  GetLength ( in boolean isStartLength )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetLength ( isStartLength )</b></div></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface StdMeshers_MaxElementArea</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void SetMaxElementArea ( in double area )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>SetMaxElementArea ( area )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>double  GetMaxElementArea (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetMaxElementArea (  )</b></div></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface StdMeshers_LengthFromEdges</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void SetMode ( in long mode )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>SetMode ( mode )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  GetMode (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetMode (  )</b></div></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface StdMeshers_StartEndLength</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void SetLength ( in double length, in boolean isStartLength )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>SetLength ( length, isStartLength )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>double  GetLength ( in boolean isStartLength )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetLength ( isStartLength )</b></div></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface StdMeshers_Deflection1D</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void SetDeflection ( in double deflection )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>SetDeflection ( deflection )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>double  GetDeflection (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetDeflection (  )</b></div></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface StdMeshers_MaxElementVolume</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void SetMaxElementVolume ( in double volume )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>SetMaxElementVolume ( volume )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>double  GetMaxElementVolume (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetMaxElementVolume (  )</b></div></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface StdMeshers_NotConformAllowed</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface StdMeshers_Propagation</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface StdMeshers_Regular_1D</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface StdMeshers_MEFISTO_2D</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface StdMeshers_Quadrangle_2D</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface StdMeshers_Hexa_3D</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-</table><br>
-</b></HTML>
diff --git a/doc/salome/tui/SMESH/HTML/SMESH_Gen.html b/doc/salome/tui/SMESH/HTML/SMESH_Gen.html
deleted file mode 100644 (file)
index 8fdf3b2..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<HTML><b>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Gen</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>FilterManager  CreateFilterManager (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = CreateFilterManager (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>SMESH_Pattern  GetPattern (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetPattern (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void SetCurrentStudy ( in Study theStudy )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>SetCurrentStudy ( theStudy )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>Study  GetCurrentStudy (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetCurrentStudy (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>SMESH_Hypothesis  CreateHypothesis ( in string theHypName, in string theLibName )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = CreateHypothesis ( theHypName, theLibName )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>SMESH_Mesh  CreateMesh ( in GEOM_Object theObject )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = CreateMesh ( theObject )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>SMESH_Mesh  CreateMeshesFromUNV ( in string theFileName )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = CreateMeshesFromUNV ( theFileName )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>mesh_array  CreateMeshesFromMED ( in string theFileName, out DriverMED_ReadStatus theStatus )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>[ return_value,  theStatus ] = CreateMeshesFromMED ( theFileName )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>SMESH_Mesh  CreateMeshesFromSTL ( in string theFileName )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = CreateMeshesFromSTL ( theFileName )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  Compute ( in SMESH_Mesh theMesh, in GEOM_Object theSubObject )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = Compute ( theMesh, theSubObject )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  IsReadyToCompute ( in SMESH_Mesh theMesh, in GEOM_Object theSubObject )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = IsReadyToCompute ( theMesh, theSubObject )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long_array  GetSubShapesId ( in GEOM_Object theMainObject, in object_array theListOfSubObjects )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetSubShapesId ( theMainObject, theListOfSubObjects )</b></div></td>
-</tr>
-</table><br>
-</b></HTML>
diff --git a/doc/salome/tui/SMESH/HTML/SMESH_Hypothesis.html b/doc/salome/tui/SMESH/HTML/SMESH_Hypothesis.html
deleted file mode 100644 (file)
index ff9d3d6..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<HTML><b>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Hypothesis</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>string  GetName (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetName (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>string  GetLibName (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetLibName (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  GetId (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetId (  )</b></div></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Algo</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>ListOfHypothesisName  GetCompatibleHypothesis (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetCompatibleHypothesis (  )</b></div></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_1D_Algo</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_2D_Algo</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_3D_Algo</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-</table><br>
-</b></HTML>
diff --git a/doc/salome/tui/SMESH/HTML/SMESH_Mesh.html b/doc/salome/tui/SMESH/HTML/SMESH_Mesh.html
deleted file mode 100644 (file)
index 527298f..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-<HTML><b>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Mesh</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>SMESH_subMesh  GetSubMesh ( in GEOM_Object aSubObject, in string name )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetSubMesh ( aSubObject, name )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void RemoveSubMesh ( in SMESH_subMesh aSubMesh )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>RemoveSubMesh ( aSubMesh )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>SMESH_Group  CreateGroup ( in ElementType elem_type, in string name )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = CreateGroup ( elem_type, name )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>SMESH_Group  CreateGroupFromGEOM ( in ElementType elem_type, in string name, in GEOM_Object theGEOMGroup )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = CreateGroupFromGEOM ( elem_type, name, theGEOMGroup )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void RemoveGroup ( in SMESH_Group aGroup )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>RemoveGroup ( aGroup )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void RemoveGroupWithContents ( in SMESH_Group aGroup )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>RemoveGroupWithContents ( aGroup )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>SMESH_Group  UnionGroups ( in SMESH_Group aGroup1, in SMESH_Group aGroup2, in string name )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = UnionGroups ( aGroup1, aGroup2, name )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>SMESH_Group  IntersectGroups ( in SMESH_Group aGroup1, in SMESH_Group aGroup2, in string name )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = IntersectGroups ( aGroup1, aGroup2, name )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>SMESH_Group  CutGroups ( in SMESH_Group aMainGroup, in SMESH_Group aToolGroup, in string name )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = CutGroups ( aMainGroup, aToolGroup, name )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>Hypothesis_Status  AddHypothesis ( in GEOM_Object aSubObject, in SMESH_Hypothesis anHyp )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = AddHypothesis ( aSubObject, anHyp )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>Hypothesis_Status  RemoveHypothesis ( in GEOM_Object aSubObject, in SMESH_Hypothesis anHyp )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = RemoveHypothesis ( aSubObject, anHyp )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>ListOfHypothesis  GetHypothesisList ( in GEOM_Object aSubObject )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetHypothesisList ( aSubObject )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>log_array  GetLog ( in boolean clearAfterGet )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetLog ( clearAfterGet )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void ClearLog (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>ClearLog (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  GetId (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetId (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  GetStudyId (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetStudyId (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>SMESH_MeshEditor  GetMeshEditor (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetMeshEditor (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void ExportDAT ( in string file )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>ExportDAT ( file )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void ExportMED ( in string file, in boolean auto_groups )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>ExportMED ( file, auto_groups )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void ExportUNV ( in string file )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>ExportUNV ( file )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void ExportSTL ( in string file, in boolean isascii )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>ExportSTL ( file, isascii )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>MESH  GetMEDMesh (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetMEDMesh (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  NbNodes (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbNodes (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  NbEdges (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbEdges (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  NbFaces (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbFaces (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  NbTriangles (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbTriangles (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  NbQuadrangles (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbQuadrangles (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  NbVolumes (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbVolumes (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  NbTetras (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbTetras (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  NbHexas (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbHexas (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  NbPyramids (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbPyramids (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  NbPrisms (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbPrisms (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  NbSubMesh (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbSubMesh (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>string  Dump (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = Dump (  )</b></div></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_subMesh</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  GetNumberOfElements (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetNumberOfElements (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  GetNumberOfNodes ( in boolean all )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetNumberOfNodes ( all )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long_array  GetElementsId (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetElementsId (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long_array  GetElementsByType ( in ElementType theType )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetElementsByType ( theType )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long_array  GetNodesId (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetNodesId (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>SMESH_Mesh  GetFather (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetFather (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>long  GetId (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetId (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>FAMILY  GetFamily (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetFamily (  )</b></div></td>
-</tr>
-</table><br>
-<table width="100%" BORDER>
-<tr bgcolor="#FFFFCC">
-<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_MeshEditor</i></div></b></font></td>
-</tr>
-<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
-<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  RemoveElements ( in long_array IDsOfElements )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = RemoveElements ( IDsOfElements )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  RemoveNodes ( in long_array IDsOfNodes )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = RemoveNodes ( IDsOfNodes )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  AddNode ( in double x, in double y, in double z )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = AddNode ( x, y, z )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  AddEdge ( in long_array IDsOfNodes )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = AddEdge ( IDsOfNodes )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  AddFace ( in long_array IDsOfNodes )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = AddFace ( IDsOfNodes )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  AddVolume ( in long_array IDsOfNodes )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = AddVolume ( IDsOfNodes )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  MoveNode ( in long NodeID, in double x, in double y, in double z )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = MoveNode ( NodeID, x, y, z )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  InverseDiag ( in long NodeID1, in long NodeID2 )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = InverseDiag ( NodeID1, NodeID2 )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  DeleteDiag ( in long NodeID1, in long NodeID2 )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = DeleteDiag ( NodeID1, NodeID2 )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  Reorient ( in long_array IDsOfElements )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = Reorient ( IDsOfElements )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  TriToQuad ( in long_array IDsOfElements, in NumericalFunctor Criterion, in double MaxAngle )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = TriToQuad ( IDsOfElements, Criterion, MaxAngle )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  QuadToTri ( in long_array IDsOfElements, in NumericalFunctor Criterion )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = QuadToTri ( IDsOfElements, Criterion )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  SplitQuad ( in long_array IDsOfElements, in boolean Diag13 )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = SplitQuad ( IDsOfElements, Diag13 )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  Smooth ( in long_array IDsOfElements, in long_array IDsOfFixedNodes, in long MaxNbOfIterations, in double MaxAspectRatio, in Smooth_Method Method )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = Smooth ( IDsOfElements, IDsOfFixedNodes, MaxNbOfIterations, MaxAspectRatio, Method )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void RenumberNodes (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>RenumberNodes (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void RenumberElements (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>RenumberElements (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void RotationSweep ( in long_array IDsOfElements, in AxisStruct Axix, in double AngleInRadians, in long NbOfSteps, in double Tolerance )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>RotationSweep ( IDsOfElements, Axix, AngleInRadians, NbOfSteps, Tolerance )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void ExtrusionSweep ( in long_array IDsOfElements, in DirStruct StepVector, in long NbOfSteps )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>ExtrusionSweep ( IDsOfElements, StepVector, NbOfSteps )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void Mirror ( in long_array IDsOfElements, in AxisStruct Mirror, in MirrorType theMirrorType, in boolean Copy )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>Mirror ( IDsOfElements, Mirror, theMirrorType, Copy )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void Translate ( in long_array IDsOfElements, in DirStruct Vector, in boolean Copy )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>Translate ( IDsOfElements, Vector, Copy )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void Rotate ( in long_array IDsOfElements, in AxisStruct Axis, in double AngleInRadians, in boolean Copy )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>Rotate ( IDsOfElements, Axis, AngleInRadians, Copy )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void FindCoincidentNodes ( in double Tolerance, out array_of_long_array GroupsOfNodes )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>GroupsOfNodes = FindCoincidentNodes ( Tolerance )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void MergeNodes ( in array_of_long_array GroupsOfNodes )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>MergeNodes ( GroupsOfNodes )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>void MergeEqualElements (  )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>MergeEqualElements (  )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  SewFreeBorders ( in long FirstNodeID1, in long SecondNodeID1, in long LastNodeID1, in long FirstNodeID2, in long SecondNodeID2, in long LastNodeID2 )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = SewFreeBorders ( FirstNodeID1, SecondNodeID1, LastNodeID1, FirstNodeID2, SecondNodeID2, LastNodeID2 )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  SewConformFreeBorders ( in long FirstNodeID1, in long SecondNodeID1, in long LastNodeID1, in long FirstNodeID2, in long SecondNodeID2 )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = SewConformFreeBorders ( FirstNodeID1, SecondNodeID1, LastNodeID1, FirstNodeID2, SecondNodeID2 )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  SewBorderToSide ( in long FirstNodeIDOnFreeBorder, in long SecondNodeIDOnFreeBorder, in long LastNodeIDOnFreeBorder, in long FirstNodeIDOnSide, in long LastNodeIDOnSide )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = SewBorderToSide ( FirstNodeIDOnFreeBorder, SecondNodeIDOnFreeBorder, LastNodeIDOnFreeBorder, FirstNodeIDOnSide, LastNodeIDOnSide )</b></div></td>
-</tr>
-<tr>
-<td bgcolor= "lightgreen"><div align="center"><b>boolean  SewSideElements ( in long_array IDsOfSide1Elements, in long_array IDsOfSide2Elements, in long NodeID1OfSide1ToMerge, in long NodeID1OfSide2ToMerge, in long NodeID2OfSide1ToMerge, in long NodeID2OfSide2ToMerge )</b></div></td>
-<td bgcolor= "lightgreen"><div align="center"><b>return_value = SewSideElements ( IDsOfSide1Elements, IDsOfSide2Elements, NodeID1OfSide1ToMerge, NodeID1OfSide2ToMerge, NodeID2OfSide1ToMerge, NodeID2OfSide2ToMerge )</b></div></td>
-</tr>
-</table><br>
-</b></HTML>
diff --git a/doc/salome/tui/SMESH/doxyfile b/doc/salome/tui/SMESH/doxyfile
deleted file mode 100755 (executable)
index 883136c..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-# Doxyfile 1.3-rc1
-
-#---------------------------------------------------------------------------
-# General configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME           = "SALOME - SMESH - v.2.1.0"
-PROJECT_NUMBER         = id#1.1
-OUTPUT_DIRECTORY       = ../
-OUTPUT_LANGUAGE        = English
-EXTRACT_ALL            = YES
-EXTRACT_PRIVATE        = YES
-EXTRACT_STATIC         = YES
-EXTRACT_LOCAL_CLASSES  = YES
-HIDE_UNDOC_MEMBERS     = NO
-HIDE_UNDOC_CLASSES     = NO
-HIDE_FRIEND_COMPOUNDS  = NO
-HIDE_IN_BODY_DOCS      = NO
-BRIEF_MEMBER_DESC      = YES
-REPEAT_BRIEF           = NO
-ALWAYS_DETAILED_SEC    = YES
-INLINE_INHERITED_MEMB  = YES
-FULL_PATH_NAMES        = NO
-STRIP_FROM_PATH        = 
-INTERNAL_DOCS          = YES
-CASE_SENSE_NAMES       = YES
-SHORT_NAMES            = NO
-HIDE_SCOPE_NAMES       = NO
-VERBATIM_HEADERS       = YES
-SHOW_INCLUDE_FILES     = YES
-JAVADOC_AUTOBRIEF      = YES
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP         = NO
-INHERIT_DOCS           = YES
-INLINE_INFO            = YES
-SORT_MEMBER_DOCS       = NO
-DISTRIBUTE_GROUP_DOC   = NO
-TAB_SIZE               = 5
-GENERATE_TODOLIST      = YES
-GENERATE_TESTLIST      = YES
-GENERATE_BUGLIST       = YES
-GENERATE_DEPRECATEDLIST= YES
-ALIASES                = 
-ENABLED_SECTIONS       = 
-MAX_INITIALIZER_LINES  = 25
-OPTIMIZE_OUTPUT_FOR_C  = YES
-OPTIMIZE_OUTPUT_JAVA   = YES
-SHOW_USED_FILES        = NO
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET                  = NO
-WARNINGS               = YES
-WARN_IF_UNDOCUMENTED   = YES
-WARN_FORMAT            = "$file:$line: $text"
-WARN_LOGFILE           = log.txt
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT                  = ../../../share/salome/idl/SMESH_Gen.idl \
-                         ../../../share/salome/idl/SMESH_Mesh.idl \
-                         ../../../share/salome/idl/SMESH_BasicHypothesis.idl \
-                         ../../../share/salome/idl/SMESH_Hypothesis.idl
-FILE_PATTERNS          = 
-RECURSIVE              = NO
-EXCLUDE                = 
-EXCLUDE_SYMLINKS       = NO
-EXCLUDE_PATTERNS       = 
-EXAMPLE_PATH           = 
-EXAMPLE_PATTERNS       = 
-EXAMPLE_RECURSIVE      = NO
-IMAGE_PATH             = sources/
-INPUT_FILTER           = 
-FILTER_SOURCE_FILES    = YES
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER         = NO
-INLINE_SOURCES         = NO
-STRIP_CODE_COMMENTS    = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION    = YES
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = NO
-COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML          = YES
-HTML_OUTPUT            = SMESH
-HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = sources/myheader.html
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
-GENERATE_HTMLHELP      = NO
-CHM_FILE               = 
-HHC_LOCATION           = 
-GENERATE_CHI           = NO
-BINARY_TOC             = YES
-TOC_EXPAND             = YES
-DISABLE_INDEX          = YES
-ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = YES
-TREEVIEW_WIDTH         = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX         = NO
-LATEX_OUTPUT           = latex
-LATEX_CMD_NAME         = latex
-MAKEINDEX_CMD_NAME     = makeindex
-COMPACT_LATEX          = NO
-PAPER_TYPE             = a4wide
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
-PDF_HYPERLINKS         = NO
-USE_PDFLATEX           = NO
-LATEX_BATCHMODE        = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF           = NO
-RTF_OUTPUT             = rtf
-COMPACT_RTF            = NO
-RTF_HYPERLINKS         = NO
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN           = NO
-MAN_OUTPUT             = man
-MAN_EXTENSION          = .3
-MAN_LINKS              = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML           = NO
-XML_SCHEMA             = 
-XML_DTD                = 
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF   = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD       = NO
-PERLMOD_LATEX          = NO
-PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING   = YES
-MACRO_EXPANSION        = YES
-EXPAND_ONLY_PREDEF     = NO
-SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = 
-EXPAND_AS_DEFINED      = 
-SKIP_FUNCTION_MACROS   = NO
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references   
-#---------------------------------------------------------------------------
-TAGFILES               = 
-GENERATE_TAGFILE       = 
-ALLEXTERNALS           = NO
-EXTERNAL_GROUPS        = YES
-PERL_PATH              = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS         = YES
-HIDE_UNDOC_RELATIONS   = NO
-HAVE_DOT               = YES
-CLASS_GRAPH            = YES
-COLLABORATION_GRAPH    = NO
-TEMPLATE_RELATIONS     = YES
-INCLUDE_GRAPH          = YES
-INCLUDED_BY_GRAPH      = NO
-GRAPHICAL_HIERARCHY    = YES
-DOT_IMAGE_FORMAT       = jpg
-DOT_PATH               = 
-DOTFILE_DIRS           = 
-MAX_DOT_GRAPH_WIDTH    = 1024
-MAX_DOT_GRAPH_HEIGHT   = 1200
-GENERATE_LEGEND        = NO
-DOT_CLEANUP            = YES
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine   
-#---------------------------------------------------------------------------
-SEARCHENGINE           = NO
-CGI_NAME               = search.cgi
-CGI_URL                = 
-DOC_URL                = 
-DOC_ABSPATH            = 
-BIN_ABSPATH            = /usr/local/bin/
-EXT_DOC_PATHS          = 
diff --git a/doc/salome/tui/SMESH/doxyfile_py b/doc/salome/tui/SMESH/doxyfile_py
deleted file mode 100755 (executable)
index 8569636..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-# Doxyfile 1.3-rc1
-
-#---------------------------------------------------------------------------
-# General configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME           = "SALOME - SMESH - v.2.1.0"
-PROJECT_NUMBER         = id#1.1
-OUTPUT_DIRECTORY       = ../
-OUTPUT_LANGUAGE        = English
-EXTRACT_ALL            = YES
-EXTRACT_PRIVATE        = YES
-EXTRACT_STATIC         = YES
-EXTRACT_LOCAL_CLASSES  = YES
-HIDE_UNDOC_MEMBERS     = NO
-HIDE_UNDOC_CLASSES     = NO
-HIDE_FRIEND_COMPOUNDS  = NO
-HIDE_IN_BODY_DOCS      = NO
-BRIEF_MEMBER_DESC      = YES
-REPEAT_BRIEF           = NO
-ALWAYS_DETAILED_SEC    = YES
-INLINE_INHERITED_MEMB  = YES
-FULL_PATH_NAMES        = NO
-STRIP_FROM_PATH        = 
-INTERNAL_DOCS          = YES
-CASE_SENSE_NAMES       = YES
-SHORT_NAMES            = NO
-HIDE_SCOPE_NAMES       = NO
-VERBATIM_HEADERS       = YES
-SHOW_INCLUDE_FILES     = YES
-JAVADOC_AUTOBRIEF      = YES
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP         = NO
-INHERIT_DOCS           = YES
-INLINE_INFO            = YES
-SORT_MEMBER_DOCS       = NO
-DISTRIBUTE_GROUP_DOC   = NO
-TAB_SIZE               = 5
-GENERATE_TODOLIST      = YES
-GENERATE_TESTLIST      = YES
-GENERATE_BUGLIST       = YES
-GENERATE_DEPRECATEDLIST= YES
-ALIASES                = 
-ENABLED_SECTIONS       = 
-MAX_INITIALIZER_LINES  = 25
-OPTIMIZE_OUTPUT_FOR_C  = YES
-OPTIMIZE_OUTPUT_JAVA   = YES
-SHOW_USED_FILES        = NO
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET                  = NO
-WARNINGS               = YES
-WARN_IF_UNDOCUMENTED   = YES
-WARN_FORMAT            = "$file:$line: $text"
-WARN_LOGFILE           = log.txt
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT                  = list_py_files_to_process
-FILE_PATTERNS          = 
-RECURSIVE              = NO
-EXCLUDE                = 
-EXCLUDE_SYMLINKS       = NO
-EXCLUDE_PATTERNS       = 
-EXAMPLE_PATH           = 
-EXAMPLE_PATTERNS       = 
-EXAMPLE_RECURSIVE      = NO
-IMAGE_PATH             = ../sources/
-INPUT_FILTER           = 
-FILTER_SOURCE_FILES    = YES
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER         = NO
-INLINE_SOURCES         = NO
-STRIP_CODE_COMMENTS    = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION    = YES
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = NO
-COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML          = YES
-HTML_OUTPUT            = ../SMESH/meshpy_doc
-HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = ../sources/myheader_py2.html
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
-GENERATE_HTMLHELP      = NO
-CHM_FILE               = 
-HHC_LOCATION           = 
-GENERATE_CHI           = NO
-BINARY_TOC             = YES
-TOC_EXPAND             = YES
-DISABLE_INDEX          = YES
-ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = YES
-TREEVIEW_WIDTH         = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX         = NO
-LATEX_OUTPUT           = latex
-LATEX_CMD_NAME         = latex
-MAKEINDEX_CMD_NAME     = makeindex
-COMPACT_LATEX          = NO
-PAPER_TYPE             = a4wide
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
-PDF_HYPERLINKS         = NO
-USE_PDFLATEX           = NO
-LATEX_BATCHMODE        = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF           = NO
-RTF_OUTPUT             = rtf
-COMPACT_RTF            = NO
-RTF_HYPERLINKS         = NO
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN           = NO
-MAN_OUTPUT             = man
-MAN_EXTENSION          = .3
-MAN_LINKS              = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML           = NO
-XML_SCHEMA             = 
-XML_DTD                = 
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF   = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD       = NO
-PERLMOD_LATEX          = NO
-PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING   = YES
-MACRO_EXPANSION        = YES
-EXPAND_ONLY_PREDEF     = NO
-SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = 
-EXPAND_AS_DEFINED      = 
-SKIP_FUNCTION_MACROS   = NO
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references   
-#---------------------------------------------------------------------------
-TAGFILES               = 
-GENERATE_TAGFILE       = 
-ALLEXTERNALS           = NO
-EXTERNAL_GROUPS        = YES
-PERL_PATH              = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS         = YES
-HIDE_UNDOC_RELATIONS   = NO
-HAVE_DOT               = YES
-CLASS_GRAPH            = YES
-COLLABORATION_GRAPH    = NO
-TEMPLATE_RELATIONS     = YES
-INCLUDE_GRAPH          = YES
-INCLUDED_BY_GRAPH      = NO
-GRAPHICAL_HIERARCHY    = YES
-DOT_IMAGE_FORMAT       = jpg
-DOT_PATH               = 
-DOTFILE_DIRS           = 
-MAX_DOT_GRAPH_WIDTH    = 1024
-MAX_DOT_GRAPH_HEIGHT   = 1200
-GENERATE_LEGEND        = NO
-DOT_CLEANUP            = YES
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine   
-#---------------------------------------------------------------------------
-SEARCHENGINE           = NO
-CGI_NAME               = search.cgi
-CGI_URL                = 
-DOC_URL                = 
-DOC_ABSPATH            = 
-BIN_ABSPATH            = /usr/local/bin/
-EXT_DOC_PATHS          = 
diff --git a/doc/salome/tui/SMESH/sources/Application-About.png b/doc/salome/tui/SMESH/sources/Application-About.png
deleted file mode 100755 (executable)
index 7b58330..0000000
Binary files a/doc/salome/tui/SMESH/sources/Application-About.png and /dev/null differ
diff --git a/doc/salome/tui/SMESH/sources/Application-About1.jpg b/doc/salome/tui/SMESH/sources/Application-About1.jpg
deleted file mode 100755 (executable)
index cf7ab8b..0000000
Binary files a/doc/salome/tui/SMESH/sources/Application-About1.jpg and /dev/null differ
diff --git a/doc/salome/tui/SMESH/sources/application.gif b/doc/salome/tui/SMESH/sources/application.gif
deleted file mode 100644 (file)
index 0b05d5c..0000000
Binary files a/doc/salome/tui/SMESH/sources/application.gif and /dev/null differ
diff --git a/doc/salome/tui/SMESH/sources/application.jpg b/doc/salome/tui/SMESH/sources/application.jpg
deleted file mode 100755 (executable)
index a6979ab..0000000
Binary files a/doc/salome/tui/SMESH/sources/application.jpg and /dev/null differ
diff --git a/doc/salome/tui/SMESH/sources/bg_salome.gif b/doc/salome/tui/SMESH/sources/bg_salome.gif
deleted file mode 100755 (executable)
index 677b704..0000000
Binary files a/doc/salome/tui/SMESH/sources/bg_salome.gif and /dev/null differ
diff --git a/doc/salome/tui/SMESH/sources/logocorp.gif b/doc/salome/tui/SMESH/sources/logocorp.gif
deleted file mode 100755 (executable)
index 7697e08..0000000
Binary files a/doc/salome/tui/SMESH/sources/logocorp.gif and /dev/null differ
diff --git a/doc/salome/tui/SMESH/sources/myheader.html b/doc/salome/tui/SMESH/sources/myheader.html
deleted file mode 100755 (executable)
index 83ca543..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-   <title>Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-</head>
-<body>
-&nbsp;
-<center><table WIDTH="96%" >
-<tr>
-<td><a href="http://www.opencascade.com"><img src="sources/logocorp.gif" BORDER=0 height=46 width=122></a></td>
-
-
-<td>
-<div align=right><a href="http://www.opencascade.org/SALOME/"><img src="sources/application.gif" BORDER=0 height=46 width=108></a></div>
-</td>
-</tr>
-</table></center>
-
-
-</body>
-</html>
diff --git a/doc/salome/tui/SMESH/sources/myheader_py2.html b/doc/salome/tui/SMESH/sources/myheader_py2.html
deleted file mode 100755 (executable)
index 372b224..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-   <title>Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-</head>
-<body>
-&nbsp;
-<center><table WIDTH="96%" >
-<tr>
-<td><a href="http://www.opencascade.com"><img src="../sources/logocorp.gif" BORDER=0 height=46 width=122></a></td>
-
-
-<td>
-<div align=right><a href="http://www.opencascade.org/SALOME/"><img src="../sources/application.gif" BORDER=0 height=46 width=108></a></div>
-</td>
-</tr>
-</table></center>
-
-
-</body>
-</html>
diff --git a/doc/salome/tui/SMESH/sources/occ.gif b/doc/salome/tui/SMESH/sources/occ.gif
deleted file mode 100755 (executable)
index ce017c8..0000000
Binary files a/doc/salome/tui/SMESH/sources/occ.gif and /dev/null differ
diff --git a/doc/salome/tui/SMESH/sources/static/PluginMeshers.html b/doc/salome/tui/SMESH/sources/static/PluginMeshers.html
deleted file mode 100755 (executable)
index f860aef..0000000
+++ /dev/null
@@ -1,344 +0,0 @@
-<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-    
-  <meta http-equiv="Content-Type"
- content="text/html; charset=iso-8859-1">
-    
-  <meta name="GENERATOR"
- content="Mozilla/4.79 [en] (X11; U; SunOS 5.6 sun4u) [Netscape]">
-  <title>Main Page</title>
-     
-  <link href="doxygen.css" rel="stylesheet" type="text/css">
-</head>
-  <body>
- &nbsp; 
-<center>
-<table width="96%">
- <tbody>
-    <tr>
- <td> 
-      <h1> <a href="http://www.opencascade.com"><img
- src="sources/logocorp.gif" border="0" height="46" width="122"
- align="left">
-      </a></h1>
- </td>
-  <td> 
-      <div align="right"><a href="http://www.opencascade.org/SALOME/"><img
- src="sources/application.gif" border="0" height="46" width="108"
- align="right">
-      </a></div>
- </td>
- </tr>
-  </tbody>
-</table>
-</center>
-  
-<center> 
-<h1> <a name="page2"></a>How to add your own mesher</h1>
-</center>
-  
-<center> 
-<h1> (as a set of hypotheses and algorithms)</h1>
-</center>
-  
-<center> 
-<h1> to the application.</h1>
-</center>
-  
-<h2> <a name="cont"></a>Table of contents</h2>
-  
-<ul>
- <li> <b><i><a href="#1">1. Introduction</a></i></b></li>
-  <li> <b><i><a href="#2">2. Implementation steps</a></i></b></li>
-  
-  <ul>
- <li> <b><i><a href="#2_1">2.1. Mesher plugin package</a></i></b></li>
-    <li>     <b><i><a href="#2_2">2.2. List of available hypotheses and algorithms</a></i></b></li>
-  <li> <b><i><a href="#2_3">2.3. Build server plugin library</a></i></b></li>
-  
-    <ul>
- <li> <b><i><a href="#2_3_1">2.3.1. Define interface to your hypotheses and
-algorithms</a></i></b></li>
-  <li> <b><i><a href="#2_3_2">2.3.2. Implement functionality of your hypotheses 
-and algorithms</a></i></b></li>
-  <li> <b><i><a href="#2_3_3">2.3.3. Implement interface to your hypotheses
-and algorithms</a></i></b></li>
-  <li> <b><i><a href="#2_3_4">2.3.4. Implement being exported method</a></i></b></li>
-    </ul>
-  <li> <b><i><a href="#2_4">2.4. Build client (GUI) plugin library</a></i></b></li>
-  
-    <ul>
- <li> <b><i><a href="#2_4_1">2.4.1. Implement the required GUI</a></i></b></li>
-  <li> <b><i><a href="#2_4_2">2.4.2. Provide icons and messages for your
-GUI</a></i></b></li>
-  <li> <b><i><a href="#2_4_3">2.4.3. Implement your hypotheses creator and
-being exported method</a></i></b></li>
-    </ul>
-  <li> <b><i><a href="#2_5">2.5. Provide icons for Object Browser</a></i></b></li>
-    <li> <b><i><a href="#2_6">2.6. Setup SALOME environment</a></i></b></li>
-    <ul type="square">
-      <li><b><i><a href="#2_6_1">2.6.1. Set LD_LIBRARY_PATH, PYTHONPATH,
-PATH environment variables</a></i></b></li>
-      <li><b><i><a href="#2_6_2">2.6.2. Set mesher plugin resources environment
-variable</a><br>
-        </i></b></li>
-    </ul>
-  </ul>
-</ul>
-  
-<h2> <a name="1"></a>1. Introduction</h2>
- All hypotheses and algorithms are available in SMESH module via plugin mechanism.
-Such approach allows easily to introduce new hypotheses and algorithms types
-to the application. Also, it makes possible the customization of available
-hypotheses and algorithms list for different users without recompilation
-of sources.<br>
-The goal of this document is to describe the process of creation external
-mesher plugins. 
-<p><i><a href="#cont">Back to the contents</a></i> </p>
-<h2> <a name="2"></a>2. Implementation steps</h2>
-  
-<h3> 
-<h3> <a name="2_1"></a>2.1. <small>Mesher plugin package</small></h3>
-</h3>
-Create your mesher plugin package which will contain the sources files, e.g.
-&nbsp;MyMesherPlugin.<br>
-<br>
-<i><a
- href="file:///home/vsr-local/work/SALOME/SALOME2/SMESH_SRC/doc/salome/tui/SMESH/sources/static/PluginMeshers.html#cont">Back
-to the contents</a></i><br>
-<h3><a name="2_2"></a>2.2. List of available hypotheses and algorithms</h3>
-Create XML file to describe all algorithms and hypotheses, provided by your
-plugin package (see SMESH_SRC/resources/SMESH_Meshers.xml for example).<br>
-<blockquote><small><tt><big>&lt;meshers-group name="MyName"<br>
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;resources="MyResourceKey"<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-server-lib="libMyServerLib.so"<br>
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gui-lib="libMyClientLib.so"&gt;<br>
-&nbsp; &nbsp; &nbsp;&lt;hypotheses&gt;<br>
-&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;hypothesis type="MyHypType1"<br>
-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;
-&nbsp;&nbsp;&nbsp; label-id="My beautiful hypothesis name"<br>
-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
-&nbsp;&nbsp; icon-id="my_hypo_1_icon.png"/&gt;<br>
-&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &lt;/hypotheses&gt;<br>
-&nbsp;&nbsp;&nbsp;&nbsp; &lt;algorithms&gt;<br>
-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;algorithm type="MyAlgType1"<br>
-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
-&nbsp;&nbsp;&nbsp; &nbsp;label-id="My beautiful algorithm name"<br>
-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
-&nbsp;&nbsp;&nbsp; icon-id="my_algo_1_icon.png"/&gt;<br>
-&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/algorithms&gt;<br>
-&lt;/meshers-group&gt;<br>
-  </big></tt></small><br>
-  <ul>
-    <li>Attributes of &lt;meshers-group&gt; tag:</li>
-  </ul>
-  <blockquote>
-    <ul type="circle">
-      <li>value of &lt;name&gt; attribute is used to collect hypotheses/algoritms
-in groups; you can also use this attribute for short description of your
-mesher plugin.</li>
-      <li>value of &lt;resources&gt; attribute (MyResourceKey) is used to
-access resources (messages and icons) from GUI (see paragraphs <a
- href="#2_4_2">2.4.2</a> and <a href="#2_5">2.5</a>); in the current implementation
-it should coincide with the name of plugin package; this limitation will
-be eliminated in the further development.</li>
-      <li>value of &lt;server-lib&gt; attribute describes the name of your
-mesher's server plugin library (See paragraph <a href="#2_3">2.3</a>)</li>
-      <li>value of &lt;gui-lib&gt; attribute describes the name of your mesher's
-client plugin library (See paragraph <a href="#2_4">2.4</a>)</li>
-    </ul>
-  </blockquote>
-  <ul>
-    <li>Attributes of &lt;hypothesis/algorithm&gt; tag:</li>
-  </ul>
-  <blockquote>
-    <ul type="circle">
-      <li>value of &lt;type&gt; attribute is an unique name of the hypothesis/algorithm</li>
-    </ul>
-    <ul type="circle">
-      <ul type="square">
-        <li>It is a value of _name field of your hypothesis class (see paragraph
-          <a href="#2_3">2.3</a>, implementation of constructor of StdMeshers_LocalLength
-class: _name = "LocalLength")</li>
-        <li>It is a key to each certain hypothesis class (see paragraph <a
- href="#2_3">2.3</a>, implementation of "GetHypothesisCreator()" method in
-StdMeshers_i.cxx)</li>
-        <li>It is a key to each certain hypothesis GUI (see paragraph <a
- href="#2_4">2.4</a>, implementation of "StdMeshersGUI_HypothesisCreator::CreateHypothesis()"
-and "StdMeshersGUI_HypothesisCreator::EditHypothesis()" methods in StdMeshersGUI.cxx)</li>
-        <li>It is a key to each certain hypothesis icon in Object Browser
-(see paragraph <a href="#2_4_2_1">2.4.2.1</a>)</li>
-      </ul>
-    </ul>
-  </blockquote>
-  <blockquote>
-    <ul type="circle">
-      <li>value of &lt;label-id&gt; attribute is displayed in the GUI in
-the list of available hypotheses/algorithms ("Create Hypothesis/Algorithm"
-dialog)</li>
-      <li>value of &lt;icon-id&gt; attribute is a name of icon file, which
-is displayed in GUI in the list of available hypotheses/algorithms ("Create
-Hypothesis/Algorithm" dialog)</li>
-    </ul>
-  </blockquote>
-Note: All attributes values are accessible in your GUI via HypothesisData
-class (see paragraph <a href="#2_4_1">2.4.1</a>)<br>
-  <br>
-Note: The environment variable SMESH_MeshersList contains the list of plugins
-names, separated by colon (":") symbol, e.g.:<br>
-  <br>
-  <tt>&nbsp;&nbsp;&nbsp; setenv SMESH_MeshersList StdMeshers:NETGENPlugin</tt><br>
-  <br>
-Please, pay attention that StdMeshers should also be included into this environment
-variable, if you want to use standard hypotheses/algorithms, provided with
-SMESH module.<br>
-  <br>
-The SALOME automatically locates XML files, searching them in the following
-directories:<br>
-  <tt><br>
-&nbsp;&nbsp;&nbsp; ${&lt;PLUGINNAME&gt;_ROOT_DIR}/share/salome/resources<br>
-&nbsp;&nbsp;&nbsp; ${SALOME_&lt;PluginName&gt;Resources}<br>
-&nbsp;&nbsp;&nbsp; ${HOME}/.salome/resources<br>
-&nbsp;&nbsp;&nbsp; ${KERNEL_ROOT_DIR}/share/salome/resources</tt><br>
-  <br>
-where &lt;PluginName&gt; is a name of each mesher plugin package<br>
-</blockquote>
-<i><a href="#cont">Back to the contents</a></i> 
-<h3> <a name="2_3"></a>2.3. Build server plugin library &lt;libMyServerLib.so&gt;.</h3>
-  
-<h4> <a name="2_3_1"></a>2.3.1. Define interface to your hypotheses and algorithms.</h4>
-  
-<blockquote><tt>Example: SMESH_SRC/idl/SMESH_BasicHypothesis.idl<br>
-&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NETGENPLUGIN_SRC/src/NETGENPlugin_Algorithm.idl<br>
-  </tt><tt></tt></blockquote>
-  
-<h4> <a name="2_3_2"></a>2.3.2. Implement functionality of your hypotheses
-and algorithms.</h4>
-  
-<blockquote>Inherit corresponding classes from SMESH. 
-  <p><tt>Example: SMESH_SRC/src/StdMeshers/StdMeshers_*<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NETGENPLUGIN_SRC/src/NETGENPlugin_NETGEN_3D<br>
-  </tt><tt></tt></p>
-</blockquote>
-  
-<h4> <a name="2_3_3"></a>2.3.3.Implement interface to your hypotheses and
-algorithms.</h4>
-  
-<blockquote><tt>Inherit corresponding classes from SMESH_I.</tt> 
-  <p><tt>Example: SMESH_SRC/src/StdMeshers_I/SMESH_*_i<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NETGENPLUGIN_SRC/src/NETGENPlugin_NETGEN_3D_i<br>
-  </tt><tt></tt></p>
-</blockquote>
-  
-<h4> <a name="2_3_4"></a>2.3.4. Implement being exported method.</h4>
-  
-<blockquote><tt>GenericHypothesisCreator_i* GetHypothesisCreator (const char*
-aHypType)</tt> 
-  <p>&lt;aHypType&gt; is a value of &lt;type&gt; attribute in the XML-description
-file</p>
-</blockquote>
-  
-<blockquote><tt>Example: SMESH_SRC/src/StdMeshers_I/StdMeshers_i.cxx<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NETGENPLUGIN_SRC/src/NETGENPlugin_i.cxx<br>
-  </tt><tt></tt></blockquote>
- <i><a href="#cont">Back to the contents</a></i> 
-<h3> <a name="2_4"></a>2.4. Build client (GUI) plugin library &lt;libMyClientLib.so&gt;.</h3>
-  
-<blockquote>This step is required only if your hypotheses/algorithms need 
-specific GUI for their construction.</blockquote>
-  
-<h4> <a name="2_4_1"></a>2.4.1. Implement the required GUI (e.g. construction
-dialog boxes).</h4>
-  
-<blockquote><tt>Example: SMESH_SRC/src/StdMeshersGUI/StdMeshersGUI_*Dlg</tt> 
-  <p>Note: all data from XML-description files is accessible in your GUI
-via HypothesisData class&nbsp; (mySMESHGUI-&gt;GetHypothesisData (aHypType),
-see SMESHGUI_Hypotheses.h for HypothesisData definition)</p>
-</blockquote>
-  
-<h4> <a name="2_4_2"></a>2.4.2. Provide icons and messages for your GUI.</h4>
-  
-<h5> <a name="2_4_2_1"></a>2.4.2.1. Implement resource files</h5>
-  
-<blockquote><tt>MyResourceKey_icons.po and MyResourceKey_msg_en.po</tt> 
-  <p><tt>Example: SMESH_SRC/src/StdMeshersGUI/StdMeshers_*.po<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NETGENPLUGIN_SRC/src/NETGENPlugin_icons.po<br>
-  </tt><br>
-Note: ICON_SMESH_TREE_HYPO_MyHypType1 is ID of icon for Object Browser for
-hypothesis with type="MyHypType1"; ICON_SMESH_TREE_ALGO_MyAlgType1 is ID
-of icon for Object Browser for algorithm with type="MyAlgType1".<br>
-See paragraph 2 for definition of MyResourceKey, MyHypType1, MyAlgType1.<tt><br>
-  </tt></p>
-</blockquote>
-  
-<h5> <a name="2_4_2_2"></a>2.4.2.2. Define environment variable SALOME_&lt;MyResourceKey&gt;Resources</h5>
-<blockquote>It should point to the directory where resources are situated.</blockquote>
-  
-<blockquote><tt>Example: setenv SALOME_StdMeshersResources ${SMESH_ROOT_DIR}/share/salome/resources</tt></blockquote>
-  
-<h4> <a name="2_4_3"></a>2.4.3. Implement your Hypothesis Creator and being
-exported method</h4>
-  
-<blockquote><tt>SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator</tt> 
-  <br>
-  <tt>&nbsp; (QString aHypType, QString aServerLibName, SMESHGUI* aSMESHGUI)</tt> 
-  <p>&lt;aHypType&gt; is to pass a value of &lt;type&gt; attribute in XML-description
-file;<br>
-&lt;aServerLibName&gt; is to pass a value of &lt;server-lib&gt; attribute
-in XML-description file. </p>
-  <p><tt>Example: SMESH_SRC/src/StdMeshersGUI/StdMeshersGUI.cxx</tt></p>
-</blockquote>
- <i><a href="#cont">Back to the contents</a></i> 
-<h3> <a name="2_5"></a>2.5. Provide icons for object browser.</h3>
-  
-<blockquote>If your hypotheses/algorithms do not need specific GUI, but you
-want to provide icons for object browser, see <a href="#2_4_2">2.4.2</a> paragrath.<br>
-</blockquote>
-<div align="left">
-<p><i><a
- href="file:///home/vsr-local/work/SALOME/SALOME2/SMESH_SRC/doc/salome/tui/SMESH/sources/static/PluginMeshers.html#cont">Back
-to the contents</a></i> </p>
-</div>
-<h3> <a name="2_6"></a>2.6. Setup your SALOME environment.</h3>
-  
-<h4> <a name="2_6_1"></a>2.6.1.&nbsp; Add your plugin to the LD_LIBRARY_PATH,
-PYTHONPATH (and maybe PATH) environment variables.<br>
-</h4>
-<blockquote><tt>setenv PATH &lt;path-to-my-plugin&gt;/bin/salome:${PATH}<br>
-setenv LD_LIBRARY_PATH &lt;path-to-my-plugin&gt;/lib/salome:${LD_LIBRARY_PATH}<br>
-Setenv PYTHONPATH &lt;path-to-my-plugin&gt;/lib/python2.2/site-packages/salome:${PYTHONPATH}<br>
-  </tt>&nbsp;&nbsp; <br>
-</blockquote>
-<h4> <a name="2_6_2"></a>2.6.2.&nbsp; Set mesher plugin resources environment
-variable</h4>
-<blockquote>&nbsp;This enviroment variable is used to set meshers plugins
-which should be loaded by SMESH module (see <a href="#2_4_2_2">2.4.2.2</a>
-paragraph). Add your plugin to this variable. All plugins are separated by
-colon (":") symbol.<br>
-  <br>
-Note: If you use runSalome.py script from KERNEL package to launch SALOME,
-you may not to set environment variables, because this script sets them itself.
-All what you should do is to add &lt;plugin&gt; section to your ${HOME}/.salome/salome.launch
-file for SMESH module section:<br>
-  <tt><br>
-...<br>
-&lt;modules-list&gt;<br>
-&nbsp;&nbsp;&nbsp; ...<br>
-&nbsp;&nbsp;&nbsp; &lt;module name="SMESH"&gt;<br>
-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;plugin name="MyMesher"/&gt;<br>
-&nbsp;&nbsp;&nbsp; &lt;/module&gt;<br>
-&nbsp;&nbsp;&nbsp; ...<br>
-&lt;/modules-list&gt;<br>
-...</tt><br>
-</blockquote>
-<i><a href="#cont">Back to the contents</a></i> <br>
-&nbsp; <br>
-</body>
-</html>
diff --git a/doc/salome/tui/SMESH/sources/static/doxygen.css b/doc/salome/tui/SMESH/sources/static/doxygen.css
deleted file mode 100755 (executable)
index 0a8e93d..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-H1 { text-align: center; }
-CAPTION { font-weight: bold }
-A.qindex {}
-A.qindexRef {}
-A.el { text-decoration: none; font-weight: bold }
-A.elRef { font-weight: bold }
-A.code { text-decoration: none; font-weight: normal; color: #4444ee }
-A.codeRef { font-weight: normal; color: #4444ee }
-A:hover { text-decoration: none; background-color: lightblue }
-DL.el { margin-left: -1cm }
-DIV.fragment { width: 100%; border: none; background-color: #CCCCCC }
-DIV.ah { background-color: #CCCCCC; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
-TD.md { background-color: lightblue; font-weight: bold; }
-TD.mdname1 { background-color: lightblue; font-weight: bold; color: #602020; }
-TD.mdname { background-color: lightblue; font-weight: bold; color: #602020; width: 600px; }
-DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold }
-DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller }
-BODY { background: url(sources/bg_salome.gif) }
-TD.indexkey { 
-   background-color: #CCCCCC; 
-   font-weight: bold; 
-   padding-right  : 10px; 
-   padding-top    : 2px; 
-   padding-left   : 10px; 
-   padding-bottom : 2px; 
-   margin-left    : 0px; 
-   margin-right   : 0px; 
-   margin-top     : 2px; 
-   margin-bottom  : 2px  
-}
-TD.indexvalue { 
-   background-color: #CCCCCC; 
-   font-style: italic; 
-   padding-right  : 10px; 
-   padding-top    : 2px; 
-   padding-left   : 10px; 
-   padding-bottom : 2px; 
-   margin-left    : 0px; 
-   margin-right   : 0px; 
-   margin-top     : 2px; 
-   margin-bottom  : 2px  
-}
-span.keyword       { color: #008000 }
-span.keywordtype   { color: #604020 }
-span.keywordflow   { color: #e08000 }
-span.comment       { color: #800000 }
-span.preprocessor  { color: #806020 }
-span.stringliteral { color: #002080 }
-span.charliteral   { color: #008080 }
diff --git a/doc/salome/tui/SMESH/sources/static/page2.html b/doc/salome/tui/SMESH/sources/static/page2.html
deleted file mode 100755 (executable)
index 0e5c0ad..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-    
-  <meta http-equiv="Content-Type"
- content="text/html; charset=iso-8859-1">
-    
-  <meta name="GENERATOR"
- content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-  <title>Main Page</title>
-     
-  <link href="doxygen.css" rel="stylesheet" type="text/css">
-</head>
-  <body>
- &nbsp; 
-<center>
-<table width="96%">
- <tbody>
-    <tr>
- <td><a href="http://www.opencascade.com"><img
- src="sources/logocorp.gif" border="0" height="46" width="122">
-      </a></td>
-   <td> 
-      <div align="right"><a href="http://www.opencascade.org/SALOME/"><img
- src="sources/application.gif" border="0" height="46" width="108">
-      </a></div>
- </td>
- </tr>
-  </tbody>
-</table>
-</center>
-   <!-- Generated by Doxygen 1.3-rc2 --> 
-<ul>
- <li><b>SALOME SMESH module</b>
-    <ul>
- <li><a href="HTML/SMESH_Gen.html">Mapping of SMESH_Gen functions</a></li>
-      <li><a href="HTML/SMESH_BasicHypothesis.html">Mapping of SMESH_BasicHypothesis functions</a></li>
-      <li><a href="HTML/SMESH_Hypothesis.html">Mapping of SMESH_Hypothesis functions</a></li>
-      <li><a href="HTML/SMESH_Mesh.html">Mapping of SMESH_Mesh functions</a></li>
-      <li><a href="HTML/SMESH_Filter.html">Mapping of SMESH_Filter functions</a></li>
-      <li><a href="HTML/SMESH_Gen.html">Mapping of SMESH_Gen functions</a></li>
-      <li><a href="HTML/SMESH_Group.html">Mapping of SMESH_Group functions</a></li>
-      <li><a href="HTML/SMESH_Pattern.html">Mapping of SMESH_Pattern functions</a></li>
-    </ul>
- </li>
-</ul>
- <br>
-</body>
-</html>
diff --git a/doc/salome/tui/SMESH/sources/static/tree.js b/doc/salome/tui/SMESH/sources/static/tree.js
deleted file mode 100755 (executable)
index b2a9953..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-foldersTree = gFld("<b>SALOME v.2.1.0 </b>", "", "")
-     insDoc(foldersTree, gLnk("Main Page", "", "main.html"))
-
-aux1 = insFld(foldersTree, gFld("TUI Reference Guide", ""))
-  aux2 = insFld(aux1, gFld("Modules", ""))
-    aux3 = insFld(aux2, gFld("SALOME SMESH module", ""))
-/*!             insDoc(aux3, gLnk("Overview", "", "overview_SMESH.html"))*/
-      aux4 = insFld(aux3, gFld("Packages", ""))                
-               insDoc(aux4, gLnk("SMESH", "", "namespaceSMESH.html"))
-/*!             insDoc(aux3, gLnk("Examples", "", "examples_SMESH.html"))
-*/
-
-         insDoc(aux1, gLnk("Data Structures", "", "annotated.html"))
-         insDoc(aux1, gLnk("Class Hierarchy", "", "hierarchy.html"))
-         insDoc(aux1, gLnk("Class methods list", "", "functions.html"))
-         insDoc(aux1, gLnk("Namespace Members", "", "namespacemembers.html"))
-         insDoc(aux1, gLnk("File List", "", "files.html"))
-
-aux1 = insFld(foldersTree, gFld("IDL/Python mapping", ""))
-         insDoc(aux1, gLnk("Mapping of SMESH IDL definitions to Python language", "", "page2.html"))
-
-aux1 = insFld(foldersTree, gFld("Python Commands", "", "meshpy_doc/main.html"))
-         insDoc(aux1, gLnk("Package List", "", "meshpy_doc/namespaces.html"))
-         insDoc(aux1, gLnk("Data Structures", "", "meshpy_doc/annotated.html"))
-         insDoc(aux1, gLnk("Namespace Members", "", "meshpy_doc/namespacemembers.html"))
-         insDoc(aux1, gLnk("File List", "", "meshpy_doc/files.html"))
-
-aux1 = insFld(foldersTree, gFld("Adding meshers in SMESH", ""))
-        insDoc(aux1, gLnk("Using Plugin mechanism in SMESH", "", "PluginMeshers.html"))
diff --git a/doc/salome/tui/SMESH/sources/static/treeview.js b/doc/salome/tui/SMESH/sources/static/treeview.js
deleted file mode 100644 (file)
index 55eb43d..0000000
+++ /dev/null
@@ -1,505 +0,0 @@
-//**************************************************************** 
-// You are free to copy the "Folder-Tree" script as long as you  
-// keep this copyright notice: 
-// Script found in: http://www.geocities.com/Paris/LeftBank/2178/ 
-// Author: Marcelino Alves Martins (martins@hks.com) December '97. 
-//**************************************************************** 
-//Log of changes: 
-//       17 Feb 98 - Fix initialization flashing problem with Netscape
-//       
-//       27 Jan 98 - Root folder starts open; support for USETEXTLINKS; 
-//                   make the ftien4 a js file 
-//       
-// DvH:  Dec 2000 -  Made some minor changes to support external 
-//                   references
-// Definition of class Folder 
-// ***************************************************************** 
-function Folder(folderDescription, tagName, hreference) //constructor 
-{ 
-  //constant data 
-  this.desc = folderDescription 
-  this.tagName = tagName
-  this.hreference = hreference 
-  this.id = -1   
-  this.navObj = 0  
-  this.iconImg = 0  
-  this.nodeImg = 0  
-  this.isLastNode = 0 
-  //dynamic data 
-  this.isOpen = true 
-  this.iconSrc = "ftv2folderopen.png"   
-  this.children = new Array 
-  this.nChildren = 0 
-  //methods 
-  this.initialize = initializeFolder 
-  this.setState = setStateFolder 
-  this.addChild = addChild 
-  this.createIndex = createEntryIndex 
-  this.hide = hideFolder 
-  this.display = display 
-  this.renderOb = drawFolder 
-  this.totalHeight = totalHeight 
-  this.subEntries = folderSubEntries 
-  this.outputLink = outputFolderLink 
-} 
-function setStateFolder(isOpen) 
-{ 
-  var subEntries 
-  var totalHeight 
-  var fIt = 0 
-  var i=0 
-  if (isOpen == this.isOpen) 
-    return 
-  if (browserVersion == 2)  
-  { 
-    totalHeight = 0 
-    for (i=0; i < this.nChildren; i++) 
-      totalHeight = totalHeight + this.children[i].navObj.clip.height 
-      subEntries = this.subEntries() 
-    if (this.isOpen) 
-      totalHeight = 0 - totalHeight 
-    for (fIt = this.id + subEntries + 1; fIt < nEntries; fIt++) 
-      indexOfEntries[fIt].navObj.moveBy(0, totalHeight) 
-  }  
-  this.isOpen = isOpen 
-  propagateChangesInState(this) 
-} 
-function propagateChangesInState(folder) 
-{   
-  var i=0 
-  if (folder.isOpen) 
-  { 
-    if (folder.nodeImg) 
-      if (folder.isLastNode) 
-        folder.nodeImg.src = "ftv2mlastnode.png" 
-      else 
-         folder.nodeImg.src = "ftv2mnode.png" 
-    folder.iconImg.src = "ftv2folderopen.png" 
-    for (i=0; i<folder.nChildren; i++) 
-      folder.children[i].display() 
-  } 
-  else 
-  { 
-    if (folder.nodeImg) 
-      if (folder.isLastNode) 
-        folder.nodeImg.src = "ftv2plastnode.png" 
-      else 
-         folder.nodeImg.src = "ftv2pnode.png" 
-    folder.iconImg.src = "ftv2folderclosed.png" 
-    for (i=0; i<folder.nChildren; i++) 
-      folder.children[i].hide() 
-  }  
-} 
-function hideFolder() 
-{ 
-  if (browserVersion == 1 || browserVersion == 3) { 
-    if (this.navObj.style.display == "none") 
-      return 
-    this.navObj.style.display = "none" 
-  } else { 
-    if (this.navObj.visibility == "hidden") 
-      return 
-    this.navObj.visibility = "hidden" 
-  } 
-   
-  this.setState(0) 
-} 
-function initializeFolder(level, lastNode, leftSide) 
-{ 
-var j=0 
-var i=0 
-var numberOfFolders 
-var numberOfDocs 
-var nc 
-      
-  nc = this.nChildren 
-   
-  this.createIndex() 
-  var auxEv = "" 
-  if (browserVersion > 0) 
-    auxEv = "<a href='javascript:clickOnNode("+this.id+")'>" 
-  else 
-    auxEv = "<a>" 
-  if (level>0) 
-    if (lastNode) //the last 'brother' in the children array 
-    { 
-      this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mlastnode.png' width=16 height=22 border=0></a>") 
-//    leftSide = leftSide + "<img src='ftv2blank.png' width=16 height=22>"  
-      this.isLastNode = 1 
-    } 
-    else 
-    { 
-      this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mnode.png' width=16 height=22 border=0></a>") 
-      leftSide = leftSide + "<img src='ftv2vertline.png' width=16 height=22>" 
-      this.isLastNode = 0 
-    } 
-  else 
-    this.renderOb("") 
-   
-  if (nc > 0) 
-  { 
-    level = level + 1 
-    for (i=0 ; i < this.nChildren; i++)  
-    { 
-      if (i == this.nChildren-1) 
-        this.children[i].initialize(level, 1, leftSide) 
-      else 
-        this.children[i].initialize(level, 0, leftSide) 
-      } 
-  } 
-} 
-function drawFolder(leftSide) 
-{ 
-  if (browserVersion == 2) { 
-    if (!doc.yPos) 
-      doc.yPos=8 
-    doc.write("<layer id='folder" + this.id + "' top=" + doc.yPos + " visibility=hidden>") 
-  } 
-  if (browserVersion == 3) 
-  {
-    doc.write("<div id='folder" + this.id + "' style='visibility:hide;'>") 
-  }
-   
-  doc.write("\n<table ") 
-  if (browserVersion == 1) 
-    doc.write(" id='folder" + this.id + "' style='position:block;' ") 
-  doc.write(" border=0 cellspacing=0 cellpadding=0>") 
-  doc.write("\n<tr><td>") 
-  doc.write(leftSide) 
-  this.outputLink() 
-  doc.write("<img name='folderIcon" + this.id + "' ") 
-  doc.write("src='" + this.iconSrc+"' border=0></a>") 
-  doc.write("</td>\n<td valign=middle nowrap>") 
-  if (USETEXTLINKS) 
-  { 
-    this.outputLink() 
-    doc.write(this.desc + "</a>") 
-  } 
-  else 
-    doc.write(this.desc)
-
-/*! 
-  if (this.tagName!="")
-  {
-    doc.write(" [external]")
-  }
-*/
-  doc.write("</td>")  
-  doc.write("\n</table>\n") 
-   
-  if (browserVersion == 2) { 
-    doc.write("</layer>") 
-  } 
-  if (browserVersion == 3) { 
-    doc.write("</div>") 
-  } 
-  if (browserVersion == 1) { 
-    this.navObj = doc.all["folder"+this.id] 
-    this.iconImg = doc.all["folderIcon"+this.id] 
-    this.nodeImg = doc.all["nodeIcon"+this.id] 
-  } else if (browserVersion == 2) { 
-    this.navObj = doc.layers["folder"+this.id] 
-    this.iconImg = this.navObj.document.images["folderIcon"+this.id] 
-    this.nodeImg = this.navObj.document.images["nodeIcon"+this.id] 
-    doc.yPos=doc.yPos+this.navObj.clip.height 
-  } else if (browserVersion == 3) {
-    this.navObj = doc.getElementById("folder"+this.id)
-    this.iconImg = doc.images.namedItem("folderIcon"+this.id)
-    this.nodeImg = doc.images.namedItem("nodeIcon"+this.id)
-  }
-} 
-function outputFolderLink() 
-{ 
-  if (this.hreference) 
-  { 
-    doc.write("<a ")
-    if (this.tagName)
-    {
-      doc.write("doxygen='" + this.tagName + "' ");
-    }
-    doc.write("href='" + this.hreference + "' TARGET=\"basefrm\" ") 
-    if (browserVersion > 0) 
-      doc.write("onClick='javascript:clickOnFolder("+this.id+")'") 
-    doc.write(">") 
-  } 
-  else 
-    doc.write("<a>") 
-} 
-function addChild(childNode) 
-{ 
-  this.children[this.nChildren] = childNode 
-  this.nChildren++ 
-  return childNode 
-} 
-function folderSubEntries() 
-{ 
-  var i = 0 
-  var se = this.nChildren 
-  for (i=0; i < this.nChildren; i++){ 
-    if (this.children[i].children) //is a folder 
-      se = se + this.children[i].subEntries() 
-  } 
-  return se 
-} 
-// Definition of class Item (a document or link inside a Folder) 
-// ************************************************************* 
-function Item(itemDescription, tagName, itemLink) // Constructor 
-{ 
-  // constant data 
-  this.desc = itemDescription 
-  this.tagName = tagName
-  this.link = itemLink 
-  this.id = -1 //initialized in initalize() 
-  this.navObj = 0 //initialized in render() 
-  this.iconImg = 0 //initialized in render() 
-  this.iconSrc = "ftv2doc.png" 
-  // methods 
-  this.initialize = initializeItem 
-  this.createIndex = createEntryIndex 
-  this.hide = hideItem 
-  this.display = display 
-  this.renderOb = drawItem 
-  this.totalHeight = totalHeight 
-} 
-function hideItem() 
-{ 
-  if (browserVersion == 1 || browserVersion == 3) { 
-    if (this.navObj.style.display == "none") 
-      return 
-    this.navObj.style.display = "none" 
-  } else { 
-    if (this.navObj.visibility == "hidden") 
-      return 
-    this.navObj.visibility = "hidden" 
-  }     
-} 
-function initializeItem(level, lastNode, leftSide) 
-{  
-  this.createIndex() 
-  if (level>0) 
-    if (lastNode) //the last 'brother' in the children array 
-    { 
-      this.renderOb(leftSide + "<img src='ftv2lastnode.png' width=16 height=22>") 
-      leftSide = leftSide + "<img src='ftv2blank.png' width=16 height=22>"  
-    } 
-    else 
-    { 
-      this.renderOb(leftSide + "<img src='ftv2node.png' width=16 height=22>") 
-      leftSide = leftSide + "<img src='ftv2vertline.png' width=16 height=22>" 
-    } 
-  else 
-    this.renderOb("")   
-} 
-function drawItem(leftSide) 
-{ 
-  if (browserVersion == 2) 
-    doc.write("<layer id='item" + this.id + "' top=" + doc.yPos + " visibility=hidden>") 
-  if (browserVersion == 3) 
-    doc.write("<div id='item" + this.id + "' style='display:block;'>") 
-     
-  doc.write("\n<table ") 
-  if (browserVersion == 1) 
-    doc.write(" id='item" + this.id + "' style='position:block;' ") 
-  doc.write(" border=0 cellspacing=0 cellpadding=0>\n") 
-  doc.write("<tr><td>") 
-  doc.write(leftSide) 
-  if (this.link!="")
-  {
-    doc.write("<a href=" + this.link + ">") 
-  }
-  doc.write("<img id='itemIcon"+this.id+"' ") 
-  doc.write("src='"+this.iconSrc+"' border=0>") 
-  if (this.link!="")
-  {
-    doc.write("</a>")
-  } 
-  doc.write("</td>\n<td valign=middle nowrap>") 
-  if (USETEXTLINKS && this.link!="") 
-    doc.write("<a href=" + this.link + ">" + this.desc + "</a>") 
-  else 
-    doc.write(this.desc) 
-/*!
-  if (this.tagName!="")
-  {
-    doc.write(" [external]");
-  }
-*/
-  doc.write("\n</table>\n") 
-   
-  if (browserVersion == 2) 
-    doc.write("</layer>") 
-  if (browserVersion == 3) 
-    doc.write("</div>")
-  if (browserVersion == 1) { 
-    this.navObj = doc.all["item"+this.id] 
-    this.iconImg = doc.all["itemIcon"+this.id] 
-  } else if (browserVersion == 2) { 
-    this.navObj = doc.layers["item"+this.id] 
-    this.iconImg = this.navObj.document.images["itemIcon"+this.id] 
-    doc.yPos=doc.yPos+this.navObj.clip.height 
-  } else if (browserVersion == 3) {
-    this.navObj = doc.getElementById("item"+this.id)
-    this.iconImg = doc.images.namedItem("itemIcon"+this.id)
-  }
-} 
-// Methods common to both objects (pseudo-inheritance) 
-// ******************************************************** 
-function display() 
-{ 
-  if (browserVersion == 1 || browserVersion == 3) 
-    this.navObj.style.display = "block" 
-  else 
-    this.navObj.visibility = "show" 
-} 
-function createEntryIndex() 
-{ 
-  this.id = nEntries 
-  indexOfEntries[nEntries] = this 
-  nEntries++ 
-} 
-// total height of subEntries open 
-function totalHeight() //used with browserVersion == 2 
-{ 
-  var h = this.navObj.clip.height 
-  var i = 0 
-   
-  if (this.isOpen) //is a folder and _is_ open 
-    for (i=0 ; i < this.nChildren; i++)  
-      h = h + this.children[i].totalHeight() 
-  return h 
-} 
-// Events 
-// ********************************************************* 
-function clickOnFolder(folderId) 
-{ 
-  var clicked = indexOfEntries[folderId] 
-  if (!clicked.isOpen) 
-    clickOnNode(folderId) 
-  return  
-  if (clicked.isSelected) 
-    return 
-} 
-function clickOnNode(folderId) 
-{ 
-  var clickedFolder = 0 
-  var state = 0 
-  clickedFolder = indexOfEntries[folderId] 
-  state = clickedFolder.isOpen 
-  clickedFolder.setState(!state) //open<->close  
-} 
-function initializeDocument() 
-{ 
-  doc = document;
-  if (doc.all) 
-    browserVersion = 1 //IE4   
-  else 
-    if (doc.layers) 
-      browserVersion = 2 //NS4 
-    else if(navigator.userAgent.toLowerCase().indexOf('gecko') != -1)
-        browserVersion = 3 //mozilla
-      else 
-        browserVersion = 0 //other 
-
-  foldersTree.initialize(0, 1, "") 
-  foldersTree.display()
-  
-  if (browserVersion > 0) 
-  { 
-    if(browserVersion != 3)
-      doc.write("<layer top="+indexOfEntries[nEntries-1].navObj.top+">&nbsp;</layer>") 
-    // close the whole tree 
-    clickOnNode(0) 
-    // open the root folder 
-    clickOnNode(0) 
-  } 
-} 
-// Auxiliary Functions for Folder-Treee backward compatibility 
-// ********************************************************* 
-function gFld(description, tagName, hreference) 
-{ 
-  folder = new Folder(description, tagName, hreference) 
-  return folder 
-} 
-function gLnk(description, tagName, linkData) 
-{ 
-  fullLink = "" 
-  if (linkData!="")
-  {
-    fullLink = "'"+linkData+"' target=\"basefrm\"" 
-  } 
-  linkItem = new Item(description, tagName, fullLink)   
-  return linkItem 
-} 
-function insFld(parentFolder, childFolder) 
-{ 
-  return parentFolder.addChild(childFolder) 
-} 
-function insDoc(parentFolder, document) 
-{ 
-  parentFolder.addChild(document) 
-} 
-// Global variables 
-// **************** 
-USETEXTLINKS = 1
-indexOfEntries = new Array 
-nEntries = 0 
-doc = document 
-browserVersion = 0 
-selectedFolder=0
diff --git a/idl/Makefile.in b/idl/Makefile.in
deleted file mode 100644 (file)
index 8bc4e84..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-#
-# generate dependencies for idl file :
-#
-
-# source path
-top_srcdir=@top_srcdir@
-top_builddir=..
-srcdir=@srcdir@
-VPATH=.:${KERNEL_ROOT_DIR}/idl/salome:${GEOM_ROOT_DIR}/idl/salome:${MED_ROOT_DIR}/idl/salome
-
-@COMMENCE@
-
-IDL_FILES = \
-  SMESH_Gen.idl \
-  SMESH_Mesh.idl \
-  SMESH_Hypothesis.idl \
-  SMESH_BasicHypothesis.idl \
-  SMESH_Filter.idl \
-  SMESH_Group.idl \
-  SMESH_Pattern.idl
-
-PY_CLIENT_IDL = $(IDL_FILES)
-
-# we copy all idl file in $(top_builddir)/idl
-inc: $(top_builddir)/idl/salome $(IDL_FILES:%=$(top_builddir)/idl/salome/%)
-
-$(top_builddir)/idl/salome:
-       mkdir $@
-
-$(IDL_FILES:%=$(top_builddir)/idl/salome/%):$(IDL_FILES:%=$(top_srcdir)/idl/%)
-#      $(CP) $< $@
-       cp -f $^ $(top_builddir)/idl/salome
-
-
-lib: pyidl
-
-PYTHON_BUILD_SITE=$(top_builddir)/lib/python$(PYTHON_VERSION)/site-packages/@PACKAGE@
-
-pyidl: $(PYTHON_BUILD_SITE) $(IDL_FILES:%.idl=$(PYTHON_BUILD_SITE)/%_idl.py)
-
-$(PYTHON_BUILD_SITE):
-       $(INSTALL) -d  $@
-
-$(PYTHON_BUILD_SITE)/%_idl.py: $(top_builddir)/idl/salome/%.idl
-       $(OMNIORB_IDL) $(OMNIORB_IDLPYFLAGS) -C$(PYTHON_BUILD_SITE) $<
-
-
-# install python client (generated from idl file
-install: install-pyidl install-idl
-
-# create directory $(idldir) and copy idl files into it
-install-idl: $(IDL_FILES:%=$(top_builddir)/idl/salome/%)
-       $(INSTALL) -d  $(idldir)
-       $(INSTALL_DATA) $^ $(idldir)
-
-
-install-pyidl: $(IDL_FILES:%=$(top_builddir)/idl/salome/%)
-       $(INSTALL) -d  $(PYTHON_SITE_INSTALL)
-       @for file in $^ dummy; do \
-         if [ $$file != "dummy" ]; then \
-           $(OMNIORB_IDL) $(OMNIORB_IDLPYFLAGS) -C$(PYTHON_SITE_INSTALL) $$file ; \
-         fi ; \
-       done ;
-
-#@ CONCLUDE @
-
-cleandep:
-       -$(RM) .dep*
-
-distclean:
-       -$(RM) *.py
-       -$(RM) $(IDL_FILES:%=$(top_builddir)/idl/salome/%)
-       -$(RM) Makefile
-
diff --git a/idl/SMESH_BasicHypothesis.idl b/idl/SMESH_BasicHypothesis.idl
deleted file mode 100644 (file)
index 78ca9b7..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_BasicHypothesis.idl
-//  Author : Paul RASCLE, EDF
-//  $Header$
-
-#ifndef _SMESH_BASICHYPOTHESIS_IDL_
-#define _SMESH_BASICHYPOTHESIS_IDL_
-
-#include "SALOME_Exception.idl"
-#include "SMESH_Hypothesis.idl"
-#include "SMESH_Mesh.idl"
-
-
-/*!
- * StdMeshers: interfaces to standard hypotheses and algorithms
- */
-module StdMeshers
-{
-  /*!
-   * StdMeshers_LocalLength: interface of "Average length" hypothesis
-   */
-  interface StdMeshers_LocalLength : SMESH::SMESH_Hypothesis
-  {
-    /*!
-     * Sets <length> parameter value
-     */
-    void SetLength(in double length) 
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Returns <length> parameter value
-     */
-    double GetLength();
-  };
-
-  /*!
-   * StdMeshers_NumberOfSegments: interface of "Nb. Segments" hypothesis
-   */
-  interface StdMeshers_NumberOfSegments : SMESH::SMESH_Hypothesis
-  {
-    /*!
-     * Sets <number of segments> parameter value
-     */
-    void SetNumberOfSegments(in long segmentsNumber) 
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Returns <number of segments> parameter value
-     */
-    long GetNumberOfSegments();
-
-    /*!
-     * Sets <distribution type> parameter value
-     */
-    void SetDistrType(in long typ)
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Returns <distribution type> parameter value
-     */
-    long GetDistrType();
-
-    /*!
-     * Sets <scale factor> parameter value
-     */
-    void SetScaleFactor(in double scaleFactor)
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Returns <scale factor> parameter value
-     */
-    double GetScaleFactor()
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Sets <table function> parameter value for distribution DT_TabFunc
-     */
-    void SetTableFunction(in SMESH::double_array table)
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Returns <table function> parameter value for distribution DT_TabFunc
-     */
-    SMESH::double_array GetTableFunction()
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Sets <expression function> parameter value for distribution DT_ExprFunc
-     */
-    void SetExpressionFunction(in string expr)
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Returns <expression function> parameter value for distribution DT_ExprFunc
-     */
-    string GetExpressionFunction()
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Sets <exponent mode> parameter value for functional distributions
-     */
-    void SetExponentMode(in boolean isExponent)
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Returns <exponent mode> parameter value for functional distributions
-     */
-    boolean IsExponentMode()
-      raises (SALOME::SALOME_Exception);
-  };
-
-  /*!
-   * StdMeshers_Arithmetic1D: interface of "Arithmetic 1D" hypothesis
-   */
-  interface StdMeshers_Arithmetic1D : SMESH::SMESH_Hypothesis
-  {
-    /*!
-     * Sets <start segment length> or <end segment length> parameter value
-     */
-    void SetLength(in double length, in boolean isStartLength) 
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Returns <start segment length> or <end segment length> parameter value
-     */
-    double GetLength(in boolean isStartLength);
-  };
-
-  /*!
-   * StdMeshers_MaxElementArea: interface of "Max. Triangle Area" hypothesis
-   */
-  interface StdMeshers_MaxElementArea : SMESH::SMESH_Hypothesis
-  {
-    /*!
-     * Sets <maximum element area> parameter value
-     */
-    void SetMaxElementArea(in double area) 
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Returns <maximum element area> parameter value
-     */
-    double GetMaxElementArea();
-  };
-
-  /*!
-   * StdMeshers_LengthFromEdges: interface of "Length From Edges (2D Hyp. for Triangulator)" hypothesis
-   */
-  interface StdMeshers_LengthFromEdges : SMESH::SMESH_Hypothesis
-  {
-    /*!
-     * Sets <mode> parameter value
-     */
-    void SetMode(in long mode) 
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Returns <mode> parameter value
-     */
-    long GetMode();
-  };
-
-  /*!
-   * StdMeshers_StartEndLength: interface of "Start and End Length" hypothesis
-   */
-  interface StdMeshers_StartEndLength : SMESH::SMESH_Hypothesis
-  {
-    /*!
-     * Sets <start segment length> or <end segment length> parameter value
-     */
-    void SetLength(in double length, in boolean isStartLength) 
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Returns <start segment length> or <end segment length> parameter value
-     */
-    double GetLength(in boolean isStartLength);
-  };
-
-
-  /*!
-   * StdMeshers_Deflection1D: interface of "Deflection 1D" hypothesis
-   */
-  interface StdMeshers_Deflection1D : SMESH::SMESH_Hypothesis
-  {
-    /*!
-     * Sets <deflection> parameter value
-     */
-    void SetDeflection(in double deflection)
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Returns <deflection> parameter value
-     */
-    double GetDeflection();
-  };
-
-
-  /*!
-   * StdMeshers_MaxElementVolume: interface of "Max. Hexahedron or Tetrahedron Volume" hypothesis
-   */
-  interface StdMeshers_MaxElementVolume : SMESH::SMESH_Hypothesis
-  {
-    /*!
-     * Sets <maximum element volume> parameter value
-     */
-    void SetMaxElementVolume(in double volume) 
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Returns <maximum element volume> parameter value
-     */
-    double GetMaxElementVolume();
-  };
-
-  /*!
-   * StdMeshers_NotConformAllowed: interface of "Not Conform Mesh Allowed" hypothesis.
-   * Presence of this hypothesis permits to algorithm generation of not conform mesh.
-   */
-  interface StdMeshers_NotConformAllowed : SMESH::SMESH_Hypothesis
-  {
-  };
-
-  /*!
-   * StdMeshers_Propagation: interface of "Propagation" hypothesis.
-   * Presence of this hypothesis on any edge propagates any other 1D
-   * hypothesis from this edge on all edges, opposite to it.
-   * It concerns only edges of quadrangle faces.
-   */
-  interface StdMeshers_Propagation : SMESH::SMESH_Hypothesis
-  {
-  };
-
-  /*!
-   * StdMeshers_Regular_1D: interface of "Wire discretisation" algorithm
-   */
-  interface StdMeshers_Regular_1D : SMESH::SMESH_1D_Algo
-  {
-  };
-
-  /*!
-   * StdMeshers_MEFISTO_2D: interface of "Triangle (Mefisto)" algorithm
-   */
-  interface StdMeshers_MEFISTO_2D : SMESH::SMESH_2D_Algo
-  {
-  };
-
-  /*!
-   * StdMeshers_Quadrangle_2D: interface of "Quadrangle (Mapping)" algorithm
-   */
-  interface StdMeshers_Quadrangle_2D : SMESH::SMESH_2D_Algo
-  {
-  };
-
-  /*!
-   * StdMeshers_Hexa_3D: interface of "Hexahedron (i,j,k)" algorithm
-   */
-  interface StdMeshers_Hexa_3D : SMESH::SMESH_3D_Algo
-  {
-  };
-
-};
-
-#endif
diff --git a/idl/SMESH_Filter.idl b/idl/SMESH_Filter.idl
deleted file mode 100644 (file)
index 929afb6..0000000
+++ /dev/null
@@ -1,435 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Filter.idl
-//  Author : Alexey Petrov, OCC
-
-#ifndef _SMESH_FILTER_IDL_
-#define _SMESH_FILTER_IDL_
-
-#include "SALOME_Exception.idl"
-#include "SALOME_GenericObj.idl"
-#include "SMESH_Mesh.idl"
-
-
-module GEOM
-{
-  interface GEOM_Object;
-};
-
-
-module SMESH
-{
-
-  /*!
-  * Enumeration of functor types
-  */
-  enum FunctorType
-  {
-    FT_AspectRatio,
-    FT_AspectRatio3D,
-    FT_Warping,   
-    FT_MinimumAngle,
-    FT_Taper,       
-    FT_Skew,         
-    FT_Area,          
-    FT_FreeBorders,
-    FT_FreeEdges,
-    FT_MultiConnection,
-    FT_MultiConnection2D,
-    FT_Length,
-    FT_Length2D,
-    FT_BelongToGeom,
-    FT_BelongToPlane,
-    FT_BelongToCylinder,
-    FT_LyingOnGeom,
-    FT_RangeOfIds,
-    FT_BadOrientedVolume,
-    FT_LessThan,
-    FT_MoreThan,
-    FT_EqualTo,
-    FT_LogicalNOT,
-    FT_LogicalAND,
-    FT_LogicalOR,
-    FT_Undefined
-  };
-
-  /*!
-  * Base interface for all functors ( i.e. numerical functors and predicates )
-  */
-  interface Functor: SALOME::GenericObj
-  {
-    void            SetMesh( in SMESH_Mesh theMesh );
-    FunctorType     GetFunctorType();
-    ElementType     GetElementType();
-  };
-
-
-
-  /*!
-  * Numerical functors are intended for calculating value by Id of mesh entity
-  */
-  interface NumericalFunctor: Functor
-  {
-    double GetValue( in long theElementId );
-
-    /*!
-    * Set precision for calculation. It is a position after point which is
-    * used to functor value after calculation.
-    */
-    void   SetPrecision( in long thePrecision );
-    long   GetPrecision();
-  };
-  interface MinimumAngle    : NumericalFunctor{};
-  interface AspectRatio     : NumericalFunctor{};
-  interface AspectRatio3D   : NumericalFunctor{};
-  interface Warping         : NumericalFunctor{};
-  interface Taper           : NumericalFunctor{};
-  interface Skew            : NumericalFunctor{};
-  interface Area            : NumericalFunctor{};
-  interface Length          : NumericalFunctor{};
-  interface Length2D        : NumericalFunctor
-  {
-    struct Value
-    {
-      double myLength;
-      long myPnt1, myPnt2;
-    };
-    typedef sequence<Value> Values;
-    Values GetValues();
-  };
-  interface MultiConnection   : NumericalFunctor{};
-  interface MultiConnection2D : NumericalFunctor
-  {
-    struct Value
-    {
-      long myNbConnects;
-      long myPnt1, myPnt2;
-    };
-    
-    typedef sequence<Value> Values;
-    Values GetValues();
-  };
-
-  /*!
-  * Predicates are intended for verification of criteria,
-  *            must return bool value by mesh id
-  */
-  interface Predicate: Functor
-  {
-    boolean IsSatisfy( in long thEntityId );
-  };
-
-  /*!
-  * Logical functor (predicate) "Bad Oriented Volume".
-  * Verify whether a mesh volume is incorrectly oriented from
-  * the point of view of MED convention
-  */
-  interface BadOrientedVolume: Predicate {};
-
-  /*!
-  * Logical functor (predicate) "Belong To Geometry".
-  * Verify whether mesh element or node belong to pointed Geom Object
-  */
-  interface BelongToGeom: Predicate
-  {
-    void SetGeom( in GEOM::GEOM_Object theGeom );
-    void SetElementType( in ElementType theType );
-
-    void   SetShapeName( in string theName );
-    string GetShapeName();    
-  };
-
-  /*!
-  * Logical functor (predicate) "Belong To Surface".
-  * Base interface for "belong to plane" and "belong to cylinder interfaces"
-  */
-  interface BelongToSurface: Predicate
-  {
-    void   SetTolerance( in double theToler );
-    double GetTolerance();
-    void   SetShapeName( in string theName, in ElementType theType );
-    string GetShapeName();
-  };
-
-
-  /*!
-  * Logical functor (predicate) "Belong To Plane".
-  * Verify whether mesh element lie in pointed Geom planar object
-  */
-  interface BelongToPlane: BelongToSurface
-  {
-    void   SetPlane( in GEOM::GEOM_Object theGeom, in ElementType theType );
-  };
-
-  /*!
-  * Logical functor (predicate) "Belong To Culinder".
-  * Verify whether mesh element lie in pointed Geom cylindrical object
-  */
-  interface BelongToCylinder: BelongToSurface
-  {
-    void   SetCylinder( in GEOM::GEOM_Object theGeom, in ElementType theType );
-  };
-
-  /*!
-  * Logical functor (predicate) "Lying On Geometry".
-  * Verify whether mesh element or node lying or partially lying on the pointed Geom Object
-  */
-  interface LyingOnGeom: Predicate
-  {
-    void SetGeom( in GEOM::GEOM_Object theGeom );
-    void SetElementType( in ElementType theType );
-
-    void   SetShapeName( in string theName );
-    string GetShapeName();    
-  };
-  /*!
-  * Logical functor (predicate) "Free borders".
-  * Verify whether 1D mesh element is free ( i.e. connected to one face only )
-  */
-  interface FreeBorders: Predicate{};
-
-  /*!
-  * Logical functor (predicate) "Free edges".
-  * Verify whether 2D mesh element has free edges( i.e. edges connected to one face only )
-  */
-  interface FreeEdges: Predicate
-
-  {
-    struct Border
-    {
-      long myElemId;
-      long myPnt1, myPnt2;
-    };
-    typedef sequence<Border> Borders;
-    Borders GetBorders();
-  };
-
-
-  /*!
-  * Abstract logical functor (predicate) "RangeOfIds".
-  * Verify whether an Entity Id belongs to defined sequence of id's
-  */
-  interface RangeOfIds: Predicate
-  {
-    void            SetRange( in long_array theIds );
-    boolean         SetRangeStr( in string theRange );
-    string          GetRangeStr();
-
-    void            SetElementType( in ElementType theType );
-  };
-
-  /*!
-  * Comparator. Predicate for compare value calculated
-  *             by numerical functor with threshold value
-  */
-  interface Comparator: Predicate
-  {
-    void    SetMargin( in double theValue );
-    void    SetNumFunctor( in NumericalFunctor theFunct );
-    double  GetMargin();
-  };
-  interface LessThan: Comparator{};
-  interface MoreThan: Comparator{};
-  interface EqualTo : Comparator
-  {
-    void    SetTolerance( in double theToler );
-    double  GetTolerance();
-  };
-
-  /*!
-  * Logical predicates are intended for compose predicates using boolean operations
-  */
-  interface Logical: Predicate{};
-
-  interface LogicalNOT: Logical
-  {
-    void SetPredicate(in Predicate thePredicate);
-  };
-
-  interface LogicalBinary: Logical
-{
-    void SetPredicate1( in Predicate thePredicate );
-    void SetPredicate2( in Predicate thePredicate );
-  };
-
-  interface LogicalAND: LogicalBinary{};
-  interface LogicalOR : LogicalBinary{};
-
-  /*!
-  *  Filter
-  */
-  interface Filter: SALOME::GenericObj, SMESH_IDSource
-  {
-    /*!
-    * Structure containing information about one criterion
-    *   Type          - FT_Taper, FT_Skew ...
-    *   Compare       - FT_LessThan, FT_MoreThan, FT_EqualTo
-    *   Threshold     - threshold value
-    *   UnaryOp       - unary logical operation: FT_LogicalNOT or FT_Undefined
-    *   BinaryOp      - binary logical operation FT_LogicalAND, FT_LogicalOR or
-    *                   (FT_Undefined must be for the last criterion)
-    *   ThresholdStr  - Threshold value defined as string. Used for:
-    *                   1. Diaposon of identifiers. Example: "1,2,3,5-10,12,27-29"
-    *                   2. BelongToGeom predicate for storing name of shape
-    *   Tolerance     - Tolerance is used for comparators (EqualTo comparision) and for
-    *                   "Belong to plane" and "Belong to cylinder" predicates
-    *   TypeOfElement - type of element SMESH::NODE, SMESH::FACE (used by BelongToGeom predicate only)
-    *   Precision     - Precision of numerical functors
-    */
-    struct Criterion
-    {
-      long        Type;
-      long        Compare;
-      double      Threshold;
-      string      ThresholdStr;
-      long        UnaryOp;
-      long        BinaryOp;
-      double      Tolerance;
-      ElementType TypeOfElement;
-      long        Precision;
-    };
-
-    typedef sequence<Criterion> Criteria;
-
-    void          SetPredicate( in Predicate thePredicate );
-    void          SetMesh( in SMESH_Mesh theMesh );
-
-    long_array    GetElementsId( in SMESH_Mesh theMesh );
-    ElementType   GetElementType();
-    Predicate     GetPredicate();
-
-    boolean       GetCriteria( out Criteria theCriteria );
-    boolean       SetCriteria( in Criteria theCriteria );
-  };
-
-
-  /*!
-  *  Interface for working with library of filters
-  */
-  interface FilterLibrary : SALOME::GenericObj
-  {
-    /*!
-    *  Copy filter from library by name (new filter is created)
-    */
-    Filter        Copy( in string theFilterName );
-
-    /*!
-    * Methods for editing library
-    */
-    boolean       Add     ( in string theFilterName, in Filter theFilter );
-    boolean       AddEmpty( in string theFilterName, in ElementType theType ); // add empty filter
-    boolean       Delete  ( in string theFilterName );
-    boolean       Replace ( in string theFilterName, in string theNewName, in Filter theFilter );
-
-    /*!
-    *  Save library on disk
-    */
-    boolean       Save();
-    boolean       SaveAs( in string aFileName );
-
-    /*!
-    * Query methods
-    */
-    boolean       IsPresent( in string aFilterName );
-    long          NbFilters( in ElementType aType );
-    string_array  GetNames( in ElementType aType );
-    string_array  GetAllNames();
-    void          SetFileName( in string aFilterName );
-    string        GetFileName();
-  };
-
-
-  /*!
-  * Interface of Filter manager
-  */
-  interface FilterManager: SALOME::GenericObj
-  {
-    /*!
-    *  Create numerical functors
-    */
-    MinimumAngle      CreateMinimumAngle();
-    AspectRatio       CreateAspectRatio();
-    AspectRatio3D     CreateAspectRatio3D();
-    Warping           CreateWarping();
-    Taper             CreateTaper();
-    Skew              CreateSkew();
-    Area              CreateArea();
-    Length            CreateLength();
-    Length2D          CreateLength2D();
-    MultiConnection   CreateMultiConnection();
-    MultiConnection2D CreateMultiConnection2D();
-
-    /*!
-    *  Create logical functors ( predicates )
-    */
-    BelongToGeom      CreateBelongToGeom();
-    BelongToPlane     CreateBelongToPlane();
-    BelongToCylinder  CreateBelongToCylinder();
-
-    LyingOnGeom       CreateLyingOnGeom();
-
-    FreeBorders       CreateFreeBorders();
-    FreeEdges         CreateFreeEdges();
-
-    RangeOfIds        CreateRangeOfIds();
-
-    BadOrientedVolume CreateBadOrientedVolume();
-
-    /*!
-    *  Create comparators ( predicates )
-    */
-    LessThan          CreateLessThan();
-    MoreThan          CreateMoreThan();
-    EqualTo           CreateEqualTo();
-
-    /*!
-    *  Create boolean operations ( predicates )
-    */
-    LogicalNOT        CreateLogicalNOT();
-    LogicalAND        CreateLogicalAND();
-    LogicalOR         CreateLogicalOR();
-
-    /*!
-    *  Create filter
-    */
-    Filter            CreateFilter();
-
-    /*!
-    *  Load filter library. If libary does not exist it is created
-    */
-    FilterLibrary     LoadLibrary( in string aFileName );
-
-    /*!
-    *  Create new library
-    */
-    FilterLibrary     CreateLibrary();
-
-    /*!
-    *  Delete library
-    */
-    boolean           DeleteLibrary( in string aFileName );
-  };
-};
-
-
-#endif
diff --git a/idl/SMESH_Gen.idl b/idl/SMESH_Gen.idl
deleted file mode 100644 (file)
index 32486e5..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Gen.idl
-//  Author : Paul RASCLE, EDF
-//  $Header$
-
-#ifndef _SMESH_GEN_IDL_
-#define _SMESH_GEN_IDL_
-
-#include "SALOME_Exception.idl"
-#include "SALOME_Component.idl"
-#include "SALOMEDS.idl"
-
-#include "GEOM_Gen.idl"
-
-#include "SMESH_Mesh.idl"
-#include "SMESH_Hypothesis.idl"
-
-module SMESH
-{
-  typedef sequence<GEOM::GEOM_Object> object_array;
-  typedef sequence<SMESH_Mesh> mesh_array;
-
-  interface FilterManager;
-  interface SMESH_Pattern;
-
-  interface SMESH_Gen : Engines::Component, SALOMEDS::Driver
-  {
-
-    FilterManager CreateFilterManager();
-
-    SMESH_Pattern GetPattern();
-
-    /*!
-      Set the current study
-     */
-    void SetCurrentStudy( in SALOMEDS::Study theStudy );
-
-    /*!
-      Get the current study
-     */
-    SALOMEDS::Study GetCurrentStudy();
-
-    /*!
-     * Create a hypothesis that can be shared by differents parts of the mesh.
-     * An hypothesis is either:
-     * - a method used to generate or modify a part of the mesh (algorithm).
-     * - a parameter or a law used by an algorithm.
-     * Algorithms are 1D, 2D or 3D.
-     */
-    SMESH_Hypothesis CreateHypothesis( in string theHypName,
-                                      in string theLibName )
-      raises ( SALOME::SALOME_Exception );
-
-    /*!
-     * Create a Mesh object, given a geometry shape.
-     * Mesh is created empty (no points, no elements).
-     * Shape is explored via GEOM_Client to create local copies.
-     * of TopoDS_Shapes and bind CORBA references of shape & subshapes
-     * with TopoDS_Shapes
-     */
-    SMESH_Mesh CreateMesh( in GEOM::GEOM_Object theObject )
-      raises ( SALOME::SALOME_Exception );
-    
-    /*!
-     * Create Mesh object importing data from given UNV file
-     */
-    SMESH_Mesh CreateMeshesFromUNV( in string theFileName )
-      raises ( SALOME::SALOME_Exception );
-
-    /*!
-     * Create Mesh object(s) importing data from given MED file
-     */
-     mesh_array CreateMeshesFromMED( in string theFileName,
-                                    out SMESH::DriverMED_ReadStatus theStatus )
-       raises ( SALOME::SALOME_Exception );
-
-    /*!
-     * Create Mesh object importing data from given STL file
-     */
-    SMESH_Mesh CreateMeshesFromSTL( in string theFileName )
-      raises ( SALOME::SALOME_Exception );
-
-    /*!
-     * Create a Mesh object, without a geometry shape reference
-     */
-//      SMESH_Mesh NewEmpty()
-//        raises ( SALOME::SALOME_Exception );
-
-    /*!
-     * Mesh a subShape. 
-     * First, verify list of hypothesis associated with the subShape,
-     * return NOK if hypothesis are not sufficient
-     */
-    boolean Compute( in SMESH_Mesh       theMesh, 
-                    in GEOM::GEOM_Object theSubObject )
-      raises ( SALOME::SALOME_Exception );
-
-    /*!
-     * 
-     */
-
-    boolean IsReadyToCompute( in SMESH_Mesh       theMesh, 
-                             in GEOM::GEOM_Object theSubObject )
-      raises ( SALOME::SALOME_Exception );
-
-    /*!
-     * 
-     */
-    long_array GetSubShapesId( in GEOM::GEOM_Object theMainObject,
-                            in object_array theListOfSubObjects )
-       raises ( SALOME::SALOME_Exception );
-    
-    /*!
-     * 
-     */
-    //    long_array GetSubMeshesState( in object_array theListOfSubShape )
-    //  raises ( SALOME::SALOME_Exception );
-    
-  };
-
-};
-
-#endif
diff --git a/idl/SMESH_Group.idl b/idl/SMESH_Group.idl
deleted file mode 100644 (file)
index 3765767..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-//  Copyright (C) 2004  CEA 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Group.idl
-//  Author : Sergey ANIKIN, OCC
-//  $Header$
-
-
-#ifndef _SMESH_GROUP_IDL_
-#define _SMESH_GROUP_IDL_
-
-#include "SALOME_Exception.idl"
-#include "SALOME_GenericObj.idl"
-
-#include "SMESH_Mesh.idl"
-
-module SMESH
-{
-  interface Predicate;
-
-  /*!
-   * SMESH_Group: base interface of group object
-   */
-  interface SMESH_GroupBase : SALOME::GenericObj, SMESH_IDSource
-  {
-    /*!
-     * Sets group name
-     */
-    void SetName( in string name );
-
-    /*!
-     * Returns group name
-     */
-    string GetName();
-
-    /*!
-     * Returns group type (type of elements in the group)
-     */
-    ElementType GetType();
-
-    /*!
-     * Returns the number of elements in the group
-     */
-    long Size();
-
-    /*!
-     * Returns true if the group does not contain any elements
-     */
-    boolean IsEmpty();
-
-    /*!
-     * returns true if the group contains an element with ID == <elem_id> 
-     */
-    boolean Contains( in long elem_id );
-
-    /*!
-     * Returns ID of an element at position <elem_index>
-     */
-    long GetID( in long elem_index );
-
-    /*!
-     * Returns a sequence of all element IDs in the group
-     */
-    long_array GetListOfID();
-
-    /*!
-     * Returns the mesh object this group belongs to
-     */
-    SMESH_Mesh GetMesh();
-  }; 
-
-  /*!
-   * SMESH_Group: interface of group object
-   */
-  interface SMESH_Group : SMESH_GroupBase
-  {
-    /*!
-     * Clears the group's contents
-     */
-    void Clear();
-
-    /*!
-     * Adds elements to the group
-     */
-    long Add( in long_array elem_ids );
-    long AddByPredicate( in Predicate thePredicate );
-
-    /*!
-     * Removes elements from the group
-     */
-    long Remove( in long_array elem_ids );
-    long RemoveByPredicate( in Predicate thePredicate );
-
-  };
-  /*!
-   * SMESH_Group: interface of group object linked to geometry
-   */
-  interface SMESH_GroupOnGeom : SMESH_GroupBase
-  {
-    GEOM::GEOM_Object GetShape();
-  };
-
-};
-
-
-#endif
diff --git a/idl/SMESH_Hypothesis.idl b/idl/SMESH_Hypothesis.idl
deleted file mode 100644 (file)
index 69832b9..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Hypothesis.idl
-//  Author : Paul RASCLE, EDF
-//  $Header$
-
-#ifndef _SMESH_HYPOTHESIS_IDL_
-#define _SMESH_HYPOTHESIS_IDL_
-
-#include "SALOME_Exception.idl"
-#include "SALOME_GenericObj.idl"
-
-module SMESH
-{
-  enum Dimension
-  {
-    DIM_1D,
-    DIM_2D,
-    DIM_3D
-  };
-  
-  interface SMESH_Hypothesis : SALOME::GenericObj
-  {
-    /*!
-     * Get the Hypothesis typeName 
-     */
-    string GetName();
-
-    /*!
-     * Get the Hypothesis plugin library Name 
-     */
-    string GetLibName();
-
-    /*!
-     * Get the internal Id 
-     */
-    long GetId();
-    
-    /*!
-     * Verify whether hypothesis supports given entity type 
-     */
-    boolean IsDimSupported( in Dimension type );
-  };
-
-  typedef sequence<string> ListOfHypothesisName;
-
-  interface SMESH_Algo : SMESH_Hypothesis
-  {
-    /*!
-     * Get list of hypothesis that can be used with this algorithm
-     */
-    ListOfHypothesisName GetCompatibleHypothesis();
-
-  };
-
-  interface SMESH_1D_Algo : SMESH_Algo
-  {
-    /*!
-     * 
-     */
-  };
-
-  interface SMESH_2D_Algo : SMESH_Algo
-  {
-    /*!
-     * 
-     */
-  };
-
-  interface SMESH_3D_Algo : SMESH_Algo
-  {
-    /*!
-     * 
-     */
-  };
-};
-
-  // -----------------------------------------------------------------
-  // Specific Algorithms in separate idl file
-  // -----------------------------------------------------------------
-
-
-#endif
diff --git a/idl/SMESH_Mesh.idl b/idl/SMESH_Mesh.idl
deleted file mode 100644 (file)
index 7dee0ce..0000000
+++ /dev/null
@@ -1,773 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESH_Mesh.idl
-//  Author : Paul RASCLE, EDF
-//  $Header$
-
-#ifndef _SMESH_MESH_IDL_
-#define _SMESH_MESH_IDL_
-
-#include "SALOME_Exception.idl"
-#include "SALOME_GenericObj.idl"
-
-module GEOM
-{
-  interface GEOM_Object;
-};
-
-
-module SALOME_MED
-{
-  interface MESH;
-  interface FAMILY;
-};
-
-
-module SMESH
-{
-  interface SMESH_Hypothesis;
-  typedef sequence<SMESH_Hypothesis> ListOfHypothesis;
-
-  typedef sequence<double> double_array ;
-  typedef sequence<long> long_array ;
-  typedef sequence<string> string_array ;
-  typedef sequence<long_array> array_of_long_array ;
-
-  enum log_command
-    {
-      ADD_NODE,
-      ADD_EDGE,
-      ADD_TRIANGLE,
-      ADD_QUADRANGLE,
-      ADD_POLYGON,
-      ADD_TETRAHEDRON,
-      ADD_PYRAMID,
-      ADD_PRISM,
-      ADD_HEXAHEDRON,
-      ADD_POLYHEDRON,
-      REMOVE_NODE,
-      REMOVE_ELEMENT,
-      MOVE_NODE,
-      CHANGE_ELEMENT_NODES,
-      CHANGE_POLYHEDRON_NODES,
-      RENUMBER
-    };
-
-  struct log_block
-  {
-    long commandType;
-    long number;
-    double_array coords;
-    long_array indexes;
-  };
-
-  struct PointStruct { double x;
-                      double y;
-                      double z; } ;
-  struct DirStruct   { PointStruct PS ; } ;          // analog to Occ Direction
-
-  struct AxisStruct  { double x;
-                      double y;
-                      double z;
-                      double vx;
-                      double vy;
-                      double vz; } ;
-
-
-  /*!
-   * Enumeration for element type, like in SMDS
-   */
-  enum ElementType
-  {
-    ALL,
-    NODE,
-    EDGE,
-    FACE,
-    VOLUME
-  };
-
-  /*!
-   * Enumeration for hypothesis status (used by AddHypothesis() and RemoveHypothesis() methods)
-   */
-  enum Hypothesis_Status // in the order of severity
-  {
-    HYP_OK,
-    HYP_MISSING,      // algo misses a hypothesis
-    HYP_CONCURENT,    // several applicable hypotheses
-    HYP_BAD_PARAMETER,// hypothesis has a bad parameter value
-    HYP_UNKNOWN_FATAL,//  --- all statuses below should be considered as fatal
-                      //      for Add/RemoveHypothesis operations
-    HYP_INCOMPATIBLE, // hypothesis does not fit algo
-    HYP_NOTCONFORM,   // not conform mesh is produced appling a hypothesis
-    HYP_ALREADY_EXIST,// such hypothesis already exist
-    HYP_BAD_DIM       // bad dimension
-  };
-
-  /*!
-   * Enumeration for DriverMED read status (used by ImportMEDFile() method)
-   */
-  enum DriverMED_ReadStatus // in the order of severity
-  {
-    DRS_OK,
-    DRS_EMPTY,          // a MED file contains no mesh with the given name
-    DRS_WARN_RENUMBER,  // a MED file has overlapped ranges of element numbers,
-                        // so the numbers from the file are ignored
-    DRS_WARN_SKIP_ELEM, // some elements were skipped due to incorrect file data
-    DRS_FAIL            // general failure (exception etc.)
-  };
-
-  /*!
-   * Enumeration for DriverMED (used by Perform() method)
-   */
-  enum MED_VERSION // in the order of severity
-  {
-    MED_V2_1,
-    MED_V2_2
-  };
-
-  typedef sequence<log_block> log_array;
-
-
-  interface SMESH_IDSource
-  {
-    /*!
-     * Returns a sequence of all element IDs
-     */
-    long_array GetIDs();
-  };
-
-  interface SMESH_GroupBase;
-  interface SMESH_Group;
-  interface SMESH_GroupOnGeom;
-  interface SMESH_subMesh;
-  interface SMESH_MeshEditor;
-  interface SMESH_Mesh : SALOME::GenericObj, SMESH_IDSource
-  {
-    ///*!
-    // * Associate a Shape to a Mesh created with NewEmpty
-    // */
-    //boolean SetMesh(in GEOM::GEOM_Object anObject)
-    //  raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Get the subMesh object associated to a subShape. The subMesh object
-     * gives access to nodes and elements IDs.
-     * SubMesh will be used instead of SubShape in a next idl version to
-     * adress a specific subMesh...
-     */
-    SMESH_subMesh GetSubMesh(in GEOM::GEOM_Object aSubObject, in string name)
-      raises (SALOME::SALOME_Exception);
-
-    ///*!
-    // * Create a subMesh without reference to a subShape
-    // */
-    //SMESH_subMesh NewEmpty()
-    //  raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Get geom shape to mesh. A result may be nil
-     */
-    GEOM::GEOM_Object GetShapeToMesh()
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Remove a submesh
-     */
-    void RemoveSubMesh(in SMESH_subMesh aSubMesh)
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Create a group
-     */
-    SMESH_Group CreateGroup( in ElementType elem_type,
-                            in string name )
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Create a group from geometry group
-     */
-    SMESH_GroupOnGeom CreateGroupFromGEOM( in ElementType elem_type,
-                                          in string name,
-                                          in GEOM::GEOM_Object theGeomObject )
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Remove a group
-     */
-    void RemoveGroup(in SMESH_GroupBase aGroup)
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     *  Remove group with its contents
-     */
-    void RemoveGroupWithContents( in SMESH_GroupBase aGroup )
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Union of two groups
-     *    New group is created. All mesh elements that are
-     *    present in initial groups are added to the new one
-     */
-    SMESH_Group UnionGroups (in SMESH_GroupBase aGroup1,
-                             in SMESH_GroupBase aGroup2,
-                             in string          name )
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     *  Intersection of two groups
-     *  New group is created. All mesh elements that are
-     *  present in both initial groups are added to the new one.
-     */
-    SMESH_Group IntersectGroups (in SMESH_GroupBase aGroup1,
-                                 in SMESH_GroupBase aGroup2,
-                                 in string          name )
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     *  Cut of two groups
-     *  New group is created. All mesh elements that are present in
-     *  main group but do not present in tool group are added to the new one
-     */
-    SMESH_Group CutGroups (in SMESH_GroupBase aMainGroup,
-                          in SMESH_GroupBase aToolGroup,
-                          in string          name )
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Add hypothesis to the mesh, under a particular subShape
-     * (or the main shape itself)
-     * The Add method is only used to prepare the build of the mesh and store
-     * the algorithms and associated parameters.
-     * Actual job of mesh the shape is done by MESH_Gen.
-     * @params
-     * - aSubShape : subShape obtained by a shape explode in GEOM
-     *   (or main shape)
-     * - anHyp : hypothesis object
-     * @return
-     * - OK if the hypothesis is compatible with the subShape
-     *   (and all previous hypothesis on the subShape)
-     * - NOK if the hypothesis is not compatible with the subShape
-     *   (or one previous hypothesis on the subShape)
-     * raises exception if hypothesis has not been created
-     */
-    Hypothesis_Status AddHypothesis(in GEOM::GEOM_Object aSubObject,
-                                   in SMESH_Hypothesis anHyp)
-      raises (SALOME::SALOME_Exception);
-//     boolean AddHypothesis(in SMESH_subMesh aSubMesh, in SMESH_Hypothesis anHyp)
-//       raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Remove an hypothesis previouly added with AddHypothesis.
-     */
-    Hypothesis_Status RemoveHypothesis(in GEOM::GEOM_Object aSubObject,
-                                      in SMESH_Hypothesis anHyp)
-      raises (SALOME::SALOME_Exception);
-//     boolean RemoveHypothesis(in SMESH_subMesh aSubMesh,
-//                          in SMESH_Hypothesis anHyp)
-//       raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Get the list of hypothesis added on a subShape
-     */
-    ListOfHypothesis GetHypothesisList(in GEOM::GEOM_Object aSubObject)
-      raises (SALOME::SALOME_Exception);
-//     ListOfHypothesis GetHypothesisList(in SMESH_subMesh aSubMesh)
-//       raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Get the log of nodes and elements added or removed since previous
-     * clear of the log.
-     * @params
-     * - clearAfterGet : log is emptied after Get (safe if concurrents access)
-     */
-    //    string_array GetLog(in boolean clearAfterGet)
-    //      raises (SALOME::SALOME_Exception);
-    log_array GetLog(in boolean clearAfterGet)
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Clear the log of nodes and elements added or removed since previous
-     * clear. Must be used immediately after GetLog if clearAfterGet is false.
-     */
-    void ClearLog()
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Get the internal Id
-     */
-    long GetId();
-
-    /*!
-     * Get the study Id
-     */
-    long GetStudyId();
-
-    /*!
-     * Obtain instance of SMESH_MeshEditor
-     */
-    SMESH_MeshEditor GetMeshEditor()
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Export Mesh to different MED Formats
-     * @params
-     * - auto_groups : boolean parameter for creating/not creating
-     *   the groups Group_On_All_Nodes, Group_On_All_Faces, ... ;
-     *   the typical use is auto_groups=false.
-     * - theVersion : define the version of format of MED file, that will be created
-     */
-    void ExportToMED( in string file, in boolean auto_groups, in MED_VERSION theVersion )
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Export Mesh to MED_V2_1 MED format
-     * Works, just the same as ExportToMED, with MED_VERSION parameter equal to MED_V2_1.
-     * The method is kept in order to support old functionality
-     */
-    void ExportMED( in string file, in boolean auto_groups )
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Export Mesh to DAT, UNV and STL Formats
-     */
-    void ExportDAT( in string file )
-      raises (SALOME::SALOME_Exception);
-    void ExportUNV( in string file )
-      raises (SALOME::SALOME_Exception);
-    void ExportSTL( in string file, in boolean isascii )
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Get MED Mesh
-     */
-    SALOME_MED::MESH GetMEDMesh()
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Get informations about mesh contents
-     */
-    long NbNodes()
-      raises (SALOME::SALOME_Exception);
-
-    long NbElements()
-      raises (SALOME::SALOME_Exception);
-
-    long NbEdges()
-      raises (SALOME::SALOME_Exception);
-
-    long NbFaces()
-      raises (SALOME::SALOME_Exception);
-
-    long NbTriangles()
-      raises (SALOME::SALOME_Exception);
-
-    long NbQuadrangles()
-      raises (SALOME::SALOME_Exception);
-
-    long NbPolygons()
-      raises (SALOME::SALOME_Exception);
-
-    long NbVolumes()
-      raises (SALOME::SALOME_Exception);
-
-    long NbTetras()
-      raises (SALOME::SALOME_Exception);
-
-    long NbHexas()
-      raises (SALOME::SALOME_Exception);
-
-    long NbPyramids()
-      raises (SALOME::SALOME_Exception);
-
-    long NbPrisms()
-      raises (SALOME::SALOME_Exception);
-
-    long NbPolyhedrons()
-      raises (SALOME::SALOME_Exception);
-
-    long NbSubMesh()
-      raises (SALOME::SALOME_Exception);
-
-    long_array GetElementsId()
-      raises (SALOME::SALOME_Exception);
-
-    long_array GetElementsByType( in ElementType theType )
-      raises (SALOME::SALOME_Exception);
-
-    long_array GetNodesId()
-      raises (SALOME::SALOME_Exception);
-    
-    /*!
-     * Returns type of mesh element
-     */    
-    ElementType GetElementType( in long id, in boolean iselem )
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Get mesh description
-     */
-    string Dump();
-  };
-
-  interface SMESH_subMesh : SALOME::GenericObj, SMESH_IDSource
-  {
-    /*!
-     *
-     */
-    long GetNumberOfElements()
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     *
-     */
-    long GetNumberOfNodes( in boolean all )
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     *
-     */
-    long_array GetElementsId()
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     *
-     */
-    long_array GetElementsByType( in ElementType theType )
-      raises (SALOME::SALOME_Exception);
-    
-    /*!
-     * Return type of submesh element
-     */
-    ElementType GetElementType( in long id, in boolean iselem )
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     *
-     */
-    long_array GetNodesId()
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Get geom shape the submesh is dedicated to
-     */
-    GEOM::GEOM_Object GetSubShape()
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Get SMESH_Mesh which stores nodes coordinates & elements definition
-     */
-    SMESH_Mesh GetFather()
-      raises (SALOME::SALOME_Exception);
-
-    /*!
-     * Get the internal Id
-     */
-    long GetId();
-
-    /*!
-     * Get MED subMesh
-     */
-    SALOME_MED::FAMILY GetFamily()
-      raises (SALOME::SALOME_Exception);
-  };
-
-  /*!
-   * This interface makes modifications on the Mesh - removing elements and nodes etc.
-   */
-  interface NumericalFunctor;
-  interface SMESH_MeshEditor
-  {
-    boolean RemoveElements(in long_array IDsOfElements);
-
-    boolean RemoveNodes(in long_array IDsOfNodes);
-
-    boolean AddNode(in double x, in double y, in double z);
-
-    boolean AddEdge(in long_array IDsOfNodes);
-
-    boolean AddFace(in long_array IDsOfNodes);
-
-    boolean AddVolume(in long_array IDsOfNodes);
-
-    /*!
-     *  Create volume of many faces, giving nodes for each face.
-     *  \param IdsOfNodes List of node IDs for volume creation face by face.
-     *  \param Quantities List of integer values, Quantities[i]
-     *         gives quantity of nodes in face number i.
-     */
-    boolean AddPolyhedralVolume (in long_array IdsOfNodes,
-                                in long_array Quantities);
-
-    /*!
-     *  Create volume of many faces, giving IDs of existing faces.
-     *  \param IdsOfFaces List of face IDs for volume creation.
-     *  \note The created volume will refer only to nodes
-     *        of the given faces, not to the faces itself.
-     */
-    boolean AddPolyhedralVolumeByFaces (in long_array IdsOfFaces);
-
-    boolean MoveNode(in long NodeID, in double x, in double y, in double z);
-
-    boolean InverseDiag(in long NodeID1, in long NodeID2);
-
-    boolean DeleteDiag(in long NodeID1, in long NodeID2);
-
-    boolean Reorient(in long_array IDsOfElements);
-
-    boolean ReorientObject(in SMESH_IDSource theObject);
-
-    /*!
-     * \brief Fuse neighbour triangles into quadrangles.
-     * \param theElems     The triangles to be fused.
-     * \param theCriterion Is used to choose a neighbour to fuse with.
-     * \param theMaxAngle  Is a max angle between element normals at which fusion
-     *                     is still performed; theMaxAngle is mesured in radians.
-     * \return TRUE in case of success, FALSE otherwise.
-     */
-    boolean TriToQuad (in long_array       IDsOfElements,
-                      in NumericalFunctor Criterion,
-                      in double           MaxAngle);
-
-    /*!
-     * \brief Fuse neighbour triangles into quadrangles.
-     *
-     * Behaves like the above method, taking list of elements from \a theObject
-     */
-    boolean TriToQuadObject (in SMESH_IDSource   theObject,
-                            in NumericalFunctor Criterion,
-                            in double           MaxAngle);
-
-    /*!
-     * \brief Split quadrangles into triangles.
-     * \param theElems     The faces to be splitted.
-     * \param theCriterion Is used to choose a diagonal for splitting.
-     * \return TRUE in case of success, FALSE otherwise.
-     */
-    boolean QuadToTri (in long_array       IDsOfElements,
-                      in NumericalFunctor Criterion);
-
-    /*!
-     * \brief Split quadrangles into triangles.
-     *
-     * Behaves like the above method, taking list of elements from \a theObject
-     */
-    boolean QuadToTriObject (in SMESH_IDSource   theObject,
-                            in NumericalFunctor Criterion);
-
-    /*!
-     * \brief Split quadrangles into triangles.
-     * \param theElems  The faces to be splitted.
-     * \param the13Diag Is used to choose a diagonal for splitting.
-     * \return TRUE in case of success, FALSE otherwise.
-     */
-    boolean SplitQuad (in long_array IDsOfElements,
-                      in boolean    Diag13);
-
-    /*!
-     * \brief Split quadrangles into triangles.
-     *
-     * Behaves like the above method, taking list of elements from \a theObject
-     */
-    boolean SplitQuadObject (in SMESH_IDSource theObject,
-                            in boolean        Diag13);
-
-    /*!
-     *  Find better splitting of the given quadrangle.
-     *  \param IDOfQuad  ID of the quadrangle to be splitted.
-     *  \param Criterion A criterion to choose a diagonal for splitting.
-     *  \return 1 if 1-3 diagonal is better, 2 if 2-4
-     *          diagonal is better, 0 if error occurs.
-     */
-    long BestSplit (in long             IDOfQuad,
-                   in NumericalFunctor Criterion);
-
-    enum Smooth_Method { LAPLACIAN_SMOOTH, CENTROIDAL_SMOOTH };
-
-    boolean Smooth(in long_array    IDsOfElements,
-                   in long_array    IDsOfFixedNodes,
-                   in long          MaxNbOfIterations,
-                   in double        MaxAspectRatio,
-                   in Smooth_Method Method);
-
-    boolean SmoothObject(in SMESH_IDSource  theObject,
-                        in long_array      IDsOfFixedNodes,
-                        in long            MaxNbOfIterations,
-                        in double          MaxAspectRatio,
-                        in Smooth_Method   Method);
-
-    boolean SmoothParametric(in long_array    IDsOfElements,
-                             in long_array    IDsOfFixedNodes,
-                             in long          MaxNbOfIterations,
-                             in double        MaxAspectRatio,
-                             in Smooth_Method Method);
-
-    boolean SmoothParametricObject(in SMESH_IDSource  theObject,
-                                   in long_array      IDsOfFixedNodes,
-                                   in long            MaxNbOfIterations,
-                                   in double          MaxAspectRatio,
-                                   in Smooth_Method   Method);
-
-    void RenumberNodes();
-
-    void RenumberElements();
-
-    void RotationSweep(in long_array       IDsOfElements,
-                       in AxisStruct       Axix,
-                       in double           AngleInRadians,
-                       in long             NbOfSteps,
-                       in double           Tolerance);
-
-    void RotationSweepObject(in SMESH_IDSource  theObject,
-                            in AxisStruct      Axix,
-                            in double          AngleInRadians,
-                            in long            NbOfSteps,
-                            in double          Tolerance);
-
-    void ExtrusionSweep(in long_array      IDsOfElements,
-                        in DirStruct       StepVector,
-                        in long            NbOfSteps);
-
-    void ExtrusionSweepObject(in SMESH_IDSource  theObject,
-                             in DirStruct       StepVector,
-                             in long            NbOfSteps);
-
-    void ExtrusionSweepObject1D(in SMESH_IDSource theObject,
-                               in DirStruct      StepVector,
-                               in long           NbOfSteps);
-
-    void ExtrusionSweepObject2D(in SMESH_IDSource theObject,
-                               in DirStruct      StepVector,
-                               in long           NbOfSteps);
-
-    enum Extrusion_Error {
-      EXTR_OK,
-      EXTR_NO_ELEMENTS,
-      EXTR_PATH_NOT_EDGE,
-      EXTR_BAD_PATH_SHAPE,
-      EXTR_BAD_STARTING_NODE,
-      EXTR_BAD_ANGLES_NUMBER,
-      EXTR_CANT_GET_TANGENT
-      };
-
-    Extrusion_Error ExtrusionAlongPath(in long_array        IDsOfElements,
-                                      in SMESH_Mesh        PathMesh,
-                                      in GEOM::GEOM_Object PathShape,
-                                      in long              NodeStart,
-                                      in boolean           HasAngles,
-                                      in double_array      Angles,
-                                      in boolean           HasRefPoint,
-                                      in PointStruct       RefPoint);
-
-    Extrusion_Error ExtrusionAlongPathObject(in SMESH_IDSource    theObject,
-                                            in SMESH_Mesh        PathMesh,
-                                            in GEOM::GEOM_Object PathShape,
-                                            in long              NodeStart,
-                                            in boolean           HasAngles,
-                                            in double_array      Angles,
-                                            in boolean           HasRefPoint,
-                                            in PointStruct       RefPoint);
-
-    enum MirrorType { POINT, AXIS, PLANE };
-
-    void Mirror (in long_array       IDsOfElements,
-                 in AxisStruct       Mirror,
-                 in MirrorType       theMirrorType,
-                 in boolean          Copy);
-
-    void MirrorObject (in SMESH_IDSource  theObject,
-                      in AxisStruct      Mirror,
-                      in MirrorType      theMirrorType,
-                      in boolean         Copy);
-
-    void Translate (in long_array      IDsOfElements,
-                    in DirStruct       Vector,
-                    in boolean         Copy);
-
-    void TranslateObject (in SMESH_IDSource  theObject,
-                         in DirStruct       Vector,
-                         in boolean         Copy);
-
-    void Rotate (in long_array       IDsOfElements,
-                 in AxisStruct       Axis,
-                 in double           AngleInRadians,
-                 in boolean          Copy);
-
-    void RotateObject (in SMESH_IDSource  theObject,
-                      in AxisStruct      Axis,
-                      in double          AngleInRadians,
-                      in boolean         Copy);
-
-    void FindCoincidentNodes (in  double              Tolerance,
-                              out array_of_long_array GroupsOfNodes);
-
-    void MergeNodes (in array_of_long_array GroupsOfNodes);
-
-    void MergeEqualElements();
-
-    enum Sew_Error {
-      SEW_OK,
-      SEW_BORDER1_NOT_FOUND,
-      SEW_BORDER2_NOT_FOUND,
-      SEW_BOTH_BORDERS_NOT_FOUND,
-      SEW_BAD_SIDE_NODES,
-      SEW_VOLUMES_TO_SPLIT,
-      // for SewSideElements() only:
-      SEW_DIFF_NB_OF_ELEMENTS,
-      SEW_TOPO_DIFF_SETS_OF_ELEMENTS,
-      SEW_BAD_SIDE1_NODES,
-      SEW_BAD_SIDE2_NODES
-      };
-
-    Sew_Error SewFreeBorders (in long FirstNodeID1,
-                              in long SecondNodeID1,
-                              in long LastNodeID1,
-                              in long FirstNodeID2,
-                              in long SecondNodeID2,
-                              in long LastNodeID2,
-                             in boolean CreatePolygons,
-                             in boolean CreatePolyedrs);
-
-    Sew_Error SewConformFreeBorders (in long FirstNodeID1,
-                                     in long SecondNodeID1,
-                                     in long LastNodeID1,
-                                     in long FirstNodeID2,
-                                     in long SecondNodeID2);
-
-    Sew_Error SewBorderToSide (in long FirstNodeIDOnFreeBorder,
-                               in long SecondNodeIDOnFreeBorder,
-                               in long LastNodeIDOnFreeBorder,
-                               in long FirstNodeIDOnSide,
-                               in long LastNodeIDOnSide,
-                              in boolean CreatePolygons,
-                              in boolean CreatePolyedrs);
-
-    Sew_Error SewSideElements (in long_array IDsOfSide1Elements,
-                               in long_array IDsOfSide2Elements,
-                               in long       NodeID1OfSide1ToMerge,
-                               in long       NodeID1OfSide2ToMerge,
-                               in long       NodeID2OfSide1ToMerge,
-                               in long       NodeID2OfSide2ToMerge);
-
-  };
-};
-
-#endif
diff --git a/idl/SMESH_Pattern.idl b/idl/SMESH_Pattern.idl
deleted file mode 100644 (file)
index d2324a0..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-// File    : SMESH_Pattern.idl
-// Created : Mon Aug  2 10:48:36 2004
-// Author  : Edward AGAPOV (eap)
-//  $Header:
-
-#ifndef _SMESH_PATTERN_IDL_
-#define _SMESH_PATTERN_IDL_
-
-#include "SMESH_Mesh.idl"
-
-module SMESH
-{
-  
-  typedef sequence<SMESH::PointStruct> point_array;
-
-  /*!
-   * SMESH_Pattern: interface of mesh pattern
-   */
-  interface SMESH_Pattern {
-
-    /*!
-     * Load a pattern from the string <theFileContents>
-     */
-    boolean LoadFromFile(in string theFileContents);
-
-    /*!
-     * Create a pattern from the mesh built on <theFace>.
-     * <theProject>==true makes override nodes positions
-     * on <theFace> computed by mesher
-     */
-    boolean LoadFromFace(in SMESH_Mesh        theMesh,
-                         in GEOM::GEOM_Object theFace,
-                         in boolean           theProject);
-
-    /*!
-     * Create a pattern from the mesh built on <theBlock>
-     */
-    boolean LoadFrom3DBlock(in SMESH_Mesh        theMesh,
-                            in GEOM::GEOM_Object theBlock);
-
-    /*!
-     * Compute nodes coordinates applying
-     * the loaded pattern to <theFace>. The first key-point
-     * will be mapped into <theVertexOnKeyPoint1>, which must
-     * be in the outer wire of theFace
-     */
-    point_array  ApplyToFace(in GEOM::GEOM_Object theFace,
-                             in GEOM::GEOM_Object theVertexOnKeyPoint1,
-                             in boolean           theReverse);
-
-    /*!
-     * Compute nodes coordinates applying
-     * the loaded pattern to <theBlock>. The (0,0,0) key-point
-     * will be mapped into <theVertex000>. The (0,0,1) 
-     * key-point will be mapped into <theVertex001>.
-     */
-    point_array  ApplyTo3DBlock(in GEOM::GEOM_Object theBlock,
-                                in GEOM::GEOM_Object theVertex000,
-                                in GEOM::GEOM_Object theVertex001);
-
-    /*!
-     * Compute nodes coordinates applying
-     * the loaded pattern to mesh faces. The first key-point
-     * will be mapped into <theNodeIndexOnKeyPoint1>-th node of each face
-     */
-    point_array  ApplyToMeshFaces(in SMESH_Mesh theMesh,
-                                  in long_array theFacesIDs,
-                                  in long       theNodeIndexOnKeyPoint1,
-                                  in boolean    theReverse);
-
-    /*!
-     * Compute nodes coordinates applying
-     * the loaded pattern to hexahedrons. The (0,0,0) key-point
-     * will be mapped into <theNode000Index>-th node of each volume.
-     * The (0,0,1) key-point will be mapped into <theNode001Index>-th
-     * node of each volume.
-     */
-    point_array  ApplyToHexahedrons(in SMESH_Mesh theMesh,
-                                    in long_array theVolumesIDs,
-                                    in long       theNode000Index,
-                                    in long       theNode001Index);
-
-    /*!
-     * Create nodes and elements in <theMesh> using nodes
-     * coordinates computed by either of Apply...() methods.
-     * If CreatePolygons is TRUE, replace adjacent faces by polygons
-     * to keep mesh conformity.
-     * If CreatePolyedrs is TRUE, replace adjacent volumes by polyedrs
-     * to keep mesh conformity.
-     */
-    boolean MakeMesh (in SMESH_Mesh theMesh,
-                     in boolean    CreatePolygons,
-                     in boolean    CreatePolyedrs);
-
-    /*!
-     * Return the loaded pattern in the string form to be saved in file
-     */
-    string GetString();
-
-    /*!
-     * error code of the last of one of above operations
-     */
-    enum ErrorCode {
-      ERR_OK,
-      // Load(file)
-      ERR_READ_NB_POINTS, // couldn't read nb of points
-      ERR_READ_POINT_COORDS, // invalid nb of point coordinates
-      ERR_READ_TOO_FEW_POINTS,  // too few points in a pattern
-      ERR_READ_3D_COORD,  // coordinate of 3D point out of [0,1] range
-      ERR_READ_NO_KEYPOINT, // no key-points in 2D pattern
-      ERR_READ_BAD_INDEX, // invalid point index
-      ERR_READ_ELEM_POINTS, // invalid nb of points in element
-      ERR_READ_NO_ELEMS, // no elements in a pattern
-      ERR_READ_BAD_KEY_POINT, // a key-point not on a boundary
-      // Save(file)
-      ERR_SAVE_NOT_LOADED, // pattern was not loaded
-      // Load(shape)
-      ERR_LOAD_EMPTY_SUBMESH, // no elements to load
-      // Load(face)
-      ERR_LOADF_NARROW_FACE, // too narrow face
-      ERR_LOADF_CLOSED_FACE, // closed face
-      // Load(volume)
-      ERR_LOADV_BAD_SHAPE, // volume is not a brick of 6 faces
-      ERR_LOADV_COMPUTE_PARAMS, // cant compute point parameters
-      // Apply(shape)
-      ERR_APPL_NOT_LOADED, // pattern was not loaded
-      ERR_APPL_BAD_DIMENTION, // wrong shape dimention
-      ERR_APPL_BAD_NB_VERTICES, // keypoints - vertices mismatch
-      // Apply(face)
-      ERR_APPLF_BAD_TOPOLOGY, // bad pattern topology
-      ERR_APPLF_BAD_VERTEX, // first vertex not on an outer face boundary
-      ERR_APPLF_INTERNAL_EEROR, // program error
-      // Apply(volume)
-      ERR_APPLV_BAD_SHAPE, // volume is not a brick of 6 faces
-      // MakeMesh
-      ERR_MAKEM_NOT_COMPUTED // mapping failed
-      };
-
-    /*!
-     * Return error code of the last operation
-     */
-    ErrorCode GetErrorCode();
-
-    /*!
-     * Return true if the loaded pattern is a 2D one
-     */
-    boolean Is2D();
-
-    /*!
-     * Return coordinates of pattern points
-     */
-    point_array GetPoints();
-
-    /*!
-     * Return indices of key-points within the arrays returned by
-     * GetPoints()
-     */
-    long_array GetKeyPoints();
-
-    /*!
-     * Return nodal connectivity of the elements of the pattern
-     * or of all elements to be crated
-     */
-    array_of_long_array GetElementPoints(in boolean all);
-  };
-};
-
-#endif
diff --git a/resources/ModuleMesh.png b/resources/ModuleMesh.png
deleted file mode 100755 (executable)
index 5e781ac..0000000
Binary files a/resources/ModuleMesh.png and /dev/null differ
diff --git a/resources/SMESH.config b/resources/SMESH.config
deleted file mode 100644 (file)
index ec67557..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-language=en
-resources=StdMeshers:NETGENPlugin
\ No newline at end of file
diff --git a/resources/SMESHCatalog.xml b/resources/SMESHCatalog.xml
deleted file mode 100644 (file)
index e66eb08..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-<?xml version='1.0' encoding='us-ascii' ?>
-<!-- XML component catalog -->
-<begin-catalog>
-
-<!-- Path prefix information -->
-
-<path-prefix-list>
-</path-prefix-list>
-
-<!-- Component list -->
-<component-list>
-       <component>
-               <!-- Component identification -->
-               <component-name>SMESH</component-name>
-               <component-username>Mesh</component-username>
-               <component-type>MESH</component-type>
-               <component-author>NRI</component-author>
-               <component-version>3.0.0</component-version>
-               <component-comment>Mesh component</component-comment>
-               <component-multistudy>1</component-multistudy>
-               <component-icone>ModuleMesh.png</component-icone>
-
-            <component-interface-list>
-                <component-interface-name>SMESH</component-interface-name>
-                <component-interface-comment></component-interface-comment>
-                <component-service-list>
-                    <component-service>
-                        <service-name>CreateHypothesis</service-name>
-                        <service-author></service-author>
-                        <service-version></service-version>
-                        <service-comment></service-comment>
-                        <service-by-default>1</service-by-default>
-                        <inParameter-list>
-                            <inParameter>
-                                <inParameter-type>string</inParameter-type>
-                                <inParameter-name>anHyp</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                            <inParameter>
-                                <inParameter-type>long</inParameter-type>
-                                <inParameter-name>studyId</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                        </inParameter-list>
-                        <outParameter-list>
-                           <outParameter>
-                                <outParameter-type>SMESH_Hypothesis</outParameter-type>
-                                <outParameter-name>aHyp</outParameter-name>
-                                <outParameter-comment></outParameter-comment>
-                           </outParameter>
-                       </outParameter-list>
-                    </component-service>
-                    <component-service>
-                        <service-name>Init</service-name>
-                        <service-author></service-author>
-                        <service-version></service-version>
-                        <service-comment></service-comment>
-                        <service-by-default>1</service-by-default>
-                        <inParameter-list>
-                            <inParameter>
-                                <inParameter-type>GEOM_Gen</inParameter-type>
-                                <inParameter-name>geomEngine</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                            <inParameter>
-                                <inParameter-type>long</inParameter-type>
-                                <inParameter-name>studyId</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                            <inParameter>
-                                <inParameter-type>GEOM_Shape</inParameter-type>
-                                <inParameter-name>aShape</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                        </inParameter-list>
-                        <outParameter-list>
-                           <outParameter>
-                               <outParameter-type>SMESH_Mesh</outParameter-type>
-                               <outParameter-name>aMesh</outParameter-name>
-                               <outParameter-comment></outParameter-comment>
-                           </outParameter>
-                       </outParameter-list>
-                    </component-service>
-                    <component-service>
-                        <service-name>Compute</service-name>
-                        <service-author></service-author>
-                        <service-version></service-version>
-                        <service-comment></service-comment>
-                        <service-by-default>1</service-by-default>
-                        <inParameter-list>
-                            <inParameter>
-                                <inParameter-type>SMESH_Mesh</inParameter-type>
-                                <inParameter-name>aMesh</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                            <inParameter>
-                                <inParameter-type>GEOM_Shape</inParameter-type>
-                                <inParameter-name>aSubShape</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                        </inParameter-list>
-                        <outParameter-list>
-                            <outParameter>
-                                <outParameter-type>boolean</outParameter-type>
-                                <outParameter-name>res</outParameter-name>
-                                <outParameter-comment>Result</outParameter-comment>
-                            </outParameter>
-                       </outParameter-list>
-                    </component-service>
-                    <component-service>
-                        <service-name>IsReadyToCompute</service-name>
-                        <service-author></service-author>
-                        <service-version></service-version>
-                        <service-comment></service-comment>
-                        <service-by-default>1</service-by-default>
-                        <inParameter-list>
-                            <inParameter>
-                                <inParameter-type>SMESH_Mesh</inParameter-type>
-                                <inParameter-name>aMesh</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                            <inParameter>
-                                <inParameter-type>GEOM_Shape</inParameter-type>
-                                <inParameter-name>aSubShape</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                        </inParameter-list>
-                        <outParameter-list>
-                                <outParameter-type>boolean</outParameter-type>
-                                <outParameter-name>res</outParameter-name>
-                                <outParameter-comment>Result</outParameter-comment>
-                       </outParameter-list>
-                    </component-service>
-                </component-service-list>
-                <component-interface-name>SMESH_Mesh</component-interface-name>
-                <component-interface-comment></component-interface-comment>
-                <component-service-list>
-                    <component-service>
-                        <service-name>AddHypothesis</service-name>
-                        <service-author></service-author>
-                        <service-version></service-version>
-                        <service-comment></service-comment>
-                        <service-by-default>1</service-by-default>
-                        <inParameter-list>
-                            <inParameter>
-                                <inParameter-type>GEOM_Shape</inParameter-type>
-                                <inParameter-name>aSubShape</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                            <inParameter>
-                                <inParameter-type>SMESH_Hypothesis</inParameter-type>
-                                <inParameter-name>aHyp</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                        </inParameter-list>
-                        <outParameter-list>
-                            <outParameter>
-                                <outParameter-type>boolean</outParameter-type>
-                                <outParameter-name>res</outParameter-name>
-                                <outParameter-comment>Result</outParameter-comment>
-                            </outParameter>
-                       </outParameter-list>
-                    </component-service>
-                </component-service-list>
-            </component-interface-list>
-       <constraint>hostname = localhost</constraint>
-       </component>
-</component-list>
-</begin-catalog>
diff --git a/resources/SMESH_en.xml b/resources/SMESH_en.xml
deleted file mode 100644 (file)
index 7d314c7..0000000
+++ /dev/null
@@ -1,483 +0,0 @@
-<?xml version='1.0' encoding='us-ascii'?>
-<!DOCTYPE application PUBLIC "" "desktop.dtd">
-
-<!--  GUI customization for MESH component  -->
-
-<application
-       title="Mesh component"
-       date="13/05/2002"
-       author="Nicolas REJNERI"
-       appId="Mesh for Salome" >
-
-<desktop>
-<menubar>
-
-<!-- ************************** File  (menubar)  ************************************ -->
-<menu-item label-id="File" item-id="1" pos-id="">
-     <submenu label-id="Import" item-id="11" pos-id="8">
-       <popup-item item-id="111" pos-id="" label-id="DAT file" icon-id="" tooltip-id="" accel-id="Ctrl+B" toggle-id="" execute-action=""/>
-               <popup-item item-id="112" pos-id="" label-id="UNV File" icon-id="" tooltip-id="" accel-id="Ctrl+U" toggle-id="" execute-action=""/> 
-               <popup-item item-id="113" pos-id="" label-id="MED File" icon-id="" tooltip-id="" accel-id="Ctrl+M" toggle-id="" execute-action=""/> 
-      </submenu>
-      <endsubmenu />
-      <submenu label-id="Export" item-id="12" pos-id="9">
-        <popup-item item-id="121" pos-id="" label-id="DAT File" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="122" pos-id="" label-id="MED File" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="123" pos-id="" label-id="UNV File" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-      </submenu>
-      <endsubmenu />
-      <separator pos-id="10"/>
-</menu-item>
-
-<!-- ************************* Edit (menubar) ************************************** -->
-
-<menu-item label-id="Edit" item-id="3" pos-id="2">
-    <separator pos-id=""/>
-    <popup-item item-id="33" pos-id="" label-id="Delete" icon-id="delete.png" tooltip-id="" accel-id="" toggle-id="" execute-action="" />
-</menu-item>
-
-<!-- ************************* Tools (menubar) ************************************** -->
-
-<menu-item label-id="Tools" item-id="5" pos-id="">
-   <separator pos-id=""/>
-   <popup-item item-id="5105" pos-id="" label-id="Selection filters library" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-</menu-item>
-
-<!-- ************************** Hypothesis  (menubar)  ************************************ -->
-<menu-item label-id="Hypotheses" item-id="50" pos-id="3">
-       <popup-item item-id="5000" pos-id="" label-id="Create Hypotheses" icon-id="mesh_hypo_length.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="5010" pos-id="" label-id="Create Algorithms" icon-id="mesh_algo_mefisto.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-</menu-item>
-
-<!-- ************************** Mesh  (menubar)  ************************************ -->
-<menu-item label-id="Mesh" item-id="70" pos-id="4">
-     <popup-item item-id="703" pos-id="" label-id="Global Hypothesis" icon-id="mesh_init.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="702" pos-id="" label-id="Local Hypothesis" icon-id="mesh_add_sub.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="704" pos-id="" label-id="Edit Hypothesis" icon-id="mesh_edit.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <separator pos-id=""/>
-     <popup-item item-id="701" pos-id="" label-id="Compute" icon-id="mesh_compute.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <separator pos-id=""/>
-     <popup-item item-id="801" pos-id="" label-id="Create Group" icon-id="mesh_tree_group.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="802" pos-id="" label-id="Construct Group" icon-id="mesh_make_group.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="803" pos-id="" label-id="Edit Group" icon-id="mesh_edit_group.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <separator pos-id=""/>
-     <popup-item item-id="810" pos-id="" label-id="Union Groups" icon-id="mesh_unionGroups.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="811" pos-id="" label-id="Intersect Groups" icon-id="mesh_intersectGroups.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="812" pos-id="" label-id="Cut Groups" icon-id="mesh_cutGroups.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <separator pos-id=""/>
-     <popup-item item-id="813" pos-id="" label-id="Delete Groups" icon-id="mesh_deleteGroups.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <separator pos-id=""/>
-     <popup-item item-id="900" pos-id="" label-id="Advanced Mesh Infos" icon-id="advanced_mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="902" pos-id="" label-id="Standard Mesh Infos" icon-id="standard_mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-</menu-item>
-
-<!-- ************************** Control  (menubar)  ************************************ -->
-<menu-item label-id="Controls" item-id="60" pos-id="5">
-       <popup-item item-id="6003" pos-id="" label-id="Free Borders" icon-id="mesh_free_edges.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6001" pos-id="" label-id="Length" icon-id="mesh_length.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6004" pos-id="" label-id="Borders at Multi-Connection" icon-id="mesh_multi_edges.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <separator pos-id=""/>
-       <popup-item item-id="6002" pos-id="" label-id="Free Edges" icon-id="mesh_free_edges_2d.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6018" pos-id="" label-id="Length 2D" icon-id="mesh_length_2d.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="6019" pos-id="" label-id="Borders at Multi-Connection 2D" icon-id="mesh_multi_edges_2d.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6011" pos-id="" label-id="Area" icon-id="mesh_area.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="6012" pos-id="" label-id="Taper" icon-id="mesh_taper.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="6013" pos-id="" label-id="Aspect Ratio" icon-id="mesh_aspect.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6014" pos-id="" label-id="Minimum Angle" icon-id="mesh_angle.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6015" pos-id="" label-id="Warping" icon-id="mesh_wrap.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6016" pos-id="" label-id="Skew" icon-id="mesh_skew.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>  
-        <separator pos-id=""/>
-        <popup-item item-id="6017" pos-id="" label-id="Aspect Ratio 3D" icon-id="mesh_aspect_3d.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-</menu-item>
-        
-<!-- ************************** Entity  (menubar)  ************************************ -->
-<menu-item label-id="Modification" item-id="40" pos-id="6">
-     <submenu label-id="Add" item-id="402" pos-id="">
-     <popup-item item-id="400" pos-id="" label-id="Node" icon-id="mesh_vertex.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="401" pos-id="" label-id="Edge" icon-id="mesh_line.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4021" pos-id="" label-id="Triangle" icon-id="mesh_triangle.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4022" pos-id="" label-id="Quadrangle" icon-id="mesh_quad.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4023" pos-id="" label-id="Polygon" icon-id="mesh_polygon.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4031" pos-id="" label-id="Tetrahedron" icon-id="mesh_tetra.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4032" pos-id="" label-id="Hexahedron" icon-id="mesh_hexa.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4033" pos-id="" label-id="Polyhedron" icon-id="mesh_polyhedron.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     </submenu>
-     <endsubmenu />
-     <submenu label-id="Remove" item-id="403" pos-id="">
-     <popup-item item-id="4041" pos-id="" label-id="Nodes" icon-id="mesh_rem_node.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4042" pos-id="" label-id="Elements" icon-id="mesh_rem_element.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     </submenu>
-     <endsubmenu />
-     <submenu label-id="Renumbering" item-id="404" pos-id="">
-     <popup-item item-id="4051" pos-id="" label-id="Nodes" icon-id="mesh_renumbering_nodes.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4052" pos-id="" label-id="Elements" icon-id="mesh_renumbering_elements.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     </submenu>
-     <endsubmenu />
-     <submenu label-id="Transformation" item-id="405" pos-id="">
-     <popup-item item-id="4061" pos-id="" label-id="Translation" icon-id="mesh_translation_vector.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4062" pos-id="" label-id="Rotation" icon-id="mesh_rotation.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4063" pos-id="" label-id="Symmetry" icon-id="mesh_symmetry_plane.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4064" pos-id="" label-id="Sewing" icon-id="mesh_sew_freeborders.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4065" pos-id="" label-id="Merge nodes" icon-id="mesh_merge_nodes.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     </submenu>
-     <endsubmenu />
-     <popup-item item-id="406" pos-id="" label-id="Move Node" icon-id="mesh_move_node.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="407" pos-id="" label-id="Diagonal Inversion" icon-id="mesh_diagonal.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="408" pos-id="" label-id="Union of two triangles" icon-id="mesh_union2tri.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="409" pos-id="" label-id="Orientation" icon-id="mesh_orientation.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="410" pos-id="" label-id="Union of triangles" icon-id="mesh_uniontri.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="411" pos-id="" label-id="Cutting of quadrangles" icon-id="mesh_cutquad.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="412" pos-id="" label-id="Smoothing" icon-id="mesh_smoothing.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="413" pos-id="" label-id="Extrusion" icon-id="mesh_extrusion.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="416" pos-id="" label-id="Extrusion along a path" icon-id="mesh_extrusionpath.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="414" pos-id="" label-id="Revolution" icon-id="mesh_revolution.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="415" pos-id="" label-id="Pattern mapping" icon-id="mesh_pattern.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-</menu-item>
-
-<!-- ********************************* Settings  (menubar) ********************************* -->
-<menu-item label-id="Preferences" item-id="4" pos-id="">
-   <submenu label-id="Mesh" item-id="100" pos-id="-1">
-   <submenu label-id="Display Mode" item-id="1000" pos-id="">
-       <popup-item item-id="10001" pos-id="" label-id="Wireframe" icon-id="mesh_wireframe.png" tooltip-id="" accel-id="" toggle-id="false" execute-action=""/>
-       <popup-item item-id="10002" pos-id="" label-id="Shading" icon-id="mesh_shading.png" tooltip-id="" accel-id="" toggle-id="true" execute-action=""/>
-       <popup-item item-id="10004" pos-id="" label-id="Nodes" icon-id="mesh_points.png" tooltip-id="" accel-id="" toggle-id="false" execute-action=""/>
-        <separator pos-id=""/>
-       <popup-item item-id="10003" pos-id="" label-id="Shrink" icon-id="mesh_shrink.png" tooltip-id="" accel-id="" toggle-id="false" execute-action=""/>
-    </submenu>
-    <endsubmenu /> 
-    <popup-item item-id="1001" pos-id="" label-id="Automatic Update" icon-id="" tooltip-id="" accel-id="" toggle-id="false" execute-action=""/>
-    <separator pos-id=""/>
-    <popup-item item-id="1003" pos-id="" label-id="Colors / Size" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-    <separator pos-id=""/>
-    <popup-item item-id="1005" pos-id="" label-id="Scalar Bar" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-    <separator pos-id=""/>
-    <popup-item item-id="1006" pos-id="" label-id="Selection" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-    <separator pos-id=""/>
-    <submenu label-id="Quality controls" item-id="1007" pos-id="">
-       <popup-item item-id="10070" pos-id="" label-id="Precision" icon-id="" tooltip-id="" accel-id="" toggle-id="false" execute-action=""/>
-       <popup-item item-id="10071" pos-id="" label-id="Display Entity" icon-id="" tooltip-id="" accel-id="" toggle-id="true" execute-action=""/>
-    </submenu>
-    <endsubmenu /> 
-   </submenu>
-   <endsubmenu />
-   <separator pos-id="-1"/>
-</menu-item>
-
-<!-- ********************************* View  (menubar) ********************************* -->
-<menu-item label-id="View" item-id="2" pos-id="">
-    <separator pos-id=""/>
-    <popup-item item-id="214" pos-id="" label-id="Update" icon-id="mesh_update.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-</menu-item>
-
-<!-- ################################# POPUP MENU #################################  -->
-
-<popupmenu label-id="Popup for ObjectBrowser" context-id="" parent-id="ObjectBrowser" object-id="Mesh">
-   <popup-item item-id="705" pos-id="" label-id="Edit Global Hypothesis" icon-id="mesh_edit.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <separator pos-id=""/>
-   <popup-item item-id="701" pos-id="" label-id="Compute" icon-id="mesh_compute.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <popup-item item-id="214" pos-id="" label-id="Update" icon-id="mesh_update.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <popup-item item-id="900" pos-id="" label-id="Show Advanced Info" icon-id="advanced_mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <popup-item item-id="902" pos-id="" label-id="Show Standard Info" icon-id="standard_mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <separator pos-id=""/>
-   <popup-item item-id="801" pos-id="" label-id="Create Group" icon-id="mesh_tree_group.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <separator pos-id=""/>
-   <popup-item item-id="1101" pos-id="" label-id="Rename" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <separator pos-id=""/>
-   <popup-item item-id="122" pos-id="" label-id="Export to MED" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <popup-item item-id="123" pos-id="" label-id="Export to UNV" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-</popupmenu>
-
-<popupmenu label-id="Popup for ObjectBrowser" context-id="" parent-id="ObjectBrowser" object-id="SubMesh">
-   <popup-item item-id="706" pos-id="" label-id="Edit Local Hypothesis" icon-id="mesh_edit.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <separator pos-id=""/>
-   <popup-item item-id="214" pos-id="" label-id="Update" icon-id="mesh_update.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <popup-item item-id="900" pos-id="" label-id="Show Info" icon-id="mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <separator pos-id=""/>
-   <popup-item item-id="802" pos-id="" label-id="Construct Group" icon-id="mesh_make_group.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <separator pos-id=""/>
-   <popup-item item-id="1101" pos-id="" label-id="Rename" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <separator pos-id=""/>
-   <popup-item item-id="33" pos-id="" label-id="Delete" icon-id="delete.png" tooltip-id="" accel-id="" toggle-id="" execute-action="" />
-</popupmenu>
-
-<popupmenu label-id="Popup for ObjectBrowser" context-id="" parent-id="ObjectBrowser" object-id="Group">
-   <popup-item item-id="803" pos-id="" label-id="Edit" icon-id="mesh_edit_group.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <separator pos-id=""/>
-   <popup-item item-id="214" pos-id="" label-id="Update" icon-id="mesh_update.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <popup-item item-id="900" pos-id="" label-id="Show Info" icon-id="mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <separator pos-id=""/>
-   <popup-item item-id="1101" pos-id="" label-id="Rename" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <separator pos-id=""/>
-   <popup-item item-id="33" pos-id="" label-id="Delete" icon-id="delete.png" tooltip-id="" accel-id="" toggle-id="" execute-action="" />
-</popupmenu>
-
-<popupmenu label-id="Popup for ObjectBrowser" context-id="" parent-id="ObjectBrowser" object-id="Hypothesis">
-   <popup-item item-id="1100" pos-id="" label-id="Edit" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <popup-item item-id="1102" pos-id="" label-id="Unassign Hypothesis" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <popup-item item-id="1101" pos-id="" label-id="Rename" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-</popupmenu>
-
-<popupmenu label-id="Popup for ObjectBrowser" context-id="" parent-id="ObjectBrowser" object-id="Algorithm">
-   <popup-item item-id="1102" pos-id="" label-id="Unassign Algorithm" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <popup-item item-id="1101" pos-id="" label-id="Rename" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-</popupmenu>
-
-
-<popupmenu label-id="Popup for Viewer" context-id="" parent-id="Viewer" object-id="Mesh">
-   <popup-item item-id="214" pos-id="" label-id="Update" icon-id="mesh_update.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/> 
-   <popup-item item-id="900" pos-id="" label-id="Show Advanced Info" icon-id="advanced_mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <popup-item item-id="902" pos-id="" label-id="Show Standard Info" icon-id="standard_mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <separator pos-id=""/>   
-   <submenu label-id="Numbering" item-id="114" pos-id="">
-     <popup-item item-id="9010" pos-id="" label-id="Display Nodes #" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="9011" pos-id="" label-id="Display Elements #" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   </submenu>
-   <endsubmenu />
-   <separator pos-id=""/>   
-   <submenu label-id="Display Mode" item-id="1131" pos-id="">
-        <popup-item item-id="211" pos-id="" label-id="Wireframe" icon-id="mesh_wireframe.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="212" pos-id="" label-id="Shading" icon-id="mesh_shading.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="215" pos-id="" label-id="Nodes" icon-id="mesh_points.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <separator pos-id=""/>
-       <popup-item item-id="213" pos-id="" label-id="Shrink" icon-id="mesh_shrink.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   </submenu>
-   <endsubmenu />
-   <submenu label-id="Display Entity" item-id="1135" pos-id="">
-       <popup-item item-id="217" pos-id="" label-id="Edges" icon-id="mesh_line.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="218" pos-id="" label-id="Faces" icon-id="mesh_triangle.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="219" pos-id="" label-id="Volumes" icon-id="mesh_tetra.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <separator pos-id=""/>
-       <popup-item item-id="220" pos-id="" label-id="All" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   </submenu>
-   <endsubmenu />
-   <popup-item item-id="1132" pos-id="" label-id="Colors / Size" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <popup-item item-id="1133" pos-id="" label-id="Transparency" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <popup-item item-id="1134" pos-id="" label-id="Clipping" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <separator pos-id=""/>
-   <submenu label-id="Control" item-id="2000" pos-id="">
-       <popup-item item-id="200" pos-id="" label-id="Reset" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <separator pos-id=""/>
-       <popup-item item-id="6003" pos-id="" label-id="Free Borders" icon-id="mesh_free_edges.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="6001" pos-id="" label-id="Length" icon-id="mesh_length.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6004" pos-id="" label-id="Borders at Multi-Connection" icon-id="mesh_multi_edges.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <separator pos-id=""/>
-       <popup-item item-id="6002" pos-id="" label-id="Free Edges" icon-id="mesh_free_edges_2d.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6018" pos-id="" label-id="Length 2D" icon-id="mesh_length_2d.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="6019" pos-id="" label-id="Borders at Multi-Connection 2D" icon-id="mesh_multi_edges_2d.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6011" pos-id="" label-id="Area" icon-id="mesh_area.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="6012" pos-id="" label-id="Taper" icon-id="mesh_taper.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="6013" pos-id="" label-id="Aspect Ratio" icon-id="mesh_aspect.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="6014" pos-id="" label-id="Minimum Angle" icon-id="mesh_angle.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6015" pos-id="" label-id="Warping" icon-id="mesh_wrap.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6016" pos-id="" label-id="Skew" icon-id="mesh_skew.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>  
-        <separator pos-id=""/>
-       <popup-item item-id="6017" pos-id="" label-id="Aspect Ratio 3D" icon-id="mesh_aspect_3d.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <separator pos-id=""/>
-        <popup-item item-id="201" pos-id="" label-id="Scalar Bar Properties" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   </submenu>
-   <endsubmenu />
-   <separator pos-id=""/>
-</popupmenu>
-
-<popupmenu label-id="Popup for Viewer" context-id="" parent-id="Viewer" object-id="SubMesh">
-   <popup-item item-id="214" pos-id="" label-id="Update" icon-id="mesh_update.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/> 
-   <popup-item item-id="900" pos-id="" label-id="Show Info" icon-id="mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <separator pos-id=""/>   
-   <submenu label-id="Numbering" item-id="114" pos-id="">
-     <popup-item item-id="9010" pos-id="" label-id="Display Nodes #" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="9011" pos-id="" label-id="Display Elements #" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   </submenu>
-   <endsubmenu />
-   <separator pos-id=""/>   
-   <submenu label-id="Display Mode" item-id="1131" pos-id="">
-        <popup-item item-id="211" pos-id="" label-id="Wireframe" icon-id="mesh_wireframe.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="212" pos-id="" label-id="Shading" icon-id="mesh_shading.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="215" pos-id="" label-id="Nodes" icon-id="mesh_points.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <separator pos-id=""/>
-       <popup-item item-id="213" pos-id="" label-id="Shrink" icon-id="mesh_shrink.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   </submenu>
-   <endsubmenu />
-   <submenu label-id="Display Entity" item-id="1135" pos-id="">
-       <popup-item item-id="217" pos-id="" label-id="Edges" icon-id="mesh_line.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="218" pos-id="" label-id="Faces" icon-id="mesh_triangle.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="219" pos-id="" label-id="Volumes" icon-id="mesh_tetra.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <separator pos-id=""/>
-       <popup-item item-id="220" pos-id="" label-id="All" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   </submenu>
-   <endsubmenu />
-   <popup-item item-id="1132" pos-id="" label-id="Colors / Size" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <popup-item item-id="1133" pos-id="" label-id="Transparency" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <popup-item item-id="1134" pos-id="" label-id="Clipping" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <separator pos-id=""/>
-   <submenu label-id="Control" item-id="2000" pos-id="">
-       <popup-item item-id="200" pos-id="" label-id="Reset" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <separator pos-id=""/>
-        <popup-item item-id="6001" pos-id="" label-id="Length" icon-id="mesh_length.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6003" pos-id="" label-id="Free Borders" icon-id="mesh_free_edges.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6004" pos-id="" label-id="Borders at Multi-Connection" icon-id="mesh_multi_edges.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <separator pos-id=""/>
-       <popup-item item-id="6002" pos-id="" label-id="Free Edges" icon-id="mesh_free_edges_2d.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6018" pos-id="" label-id="Length 2D" icon-id="mesh_length_2d.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="6019" pos-id="" label-id="Borders at Multi-Connection 2D" icon-id="mesh_multi_edges_2d.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6011" pos-id="" label-id="Area" icon-id="mesh_area.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="6012" pos-id="" label-id="Taper" icon-id="mesh_taper.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="6013" pos-id="" label-id="Aspect Ratio" icon-id="mesh_aspect.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="6014" pos-id="" label-id="Minimum Angle" icon-id="mesh_angle.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6015" pos-id="" label-id="Warping" icon-id="mesh_wrap.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6016" pos-id="" label-id="Skew" icon-id="mesh_skew.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>  
-        <separator pos-id=""/>
-       <popup-item item-id="6017" pos-id="" label-id="Aspect Ratio 3D" icon-id="mesh_aspect_3d.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <separator pos-id=""/>
-        <popup-item item-id="201" pos-id="" label-id="Scalar Bar Properties" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   </submenu>
-   <endsubmenu />
-   <separator pos-id=""/>
-</popupmenu>
-
-<popupmenu label-id="Popup for Viewer" context-id="" parent-id="Viewer" object-id="Group">
-   <popup-item item-id="803" pos-id="" label-id="Edit" icon-id="mesh_edit_group.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <separator pos-id=""/>
-   <popup-item item-id="214" pos-id="" label-id="Update" icon-id="mesh_update.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/> 
-   <popup-item item-id="900" pos-id="" label-id="Show Info" icon-id="mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <separator pos-id=""/>   
-   <submenu label-id="Numbering" item-id="114" pos-id="">
-     <popup-item item-id="9010" pos-id="" label-id="Display Nodes #" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="9011" pos-id="" label-id="Display Elements #" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   </submenu>
-   <endsubmenu />
-   <separator pos-id=""/>   
-   <submenu label-id="Display Mode" item-id="1131" pos-id="">
-        <popup-item item-id="211" pos-id="" label-id="Wireframe" icon-id="mesh_wireframe.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="212" pos-id="" label-id="Shading" icon-id="mesh_shading.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="215" pos-id="" label-id="Nodes" icon-id="mesh_points.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <separator pos-id=""/>
-       <popup-item item-id="213" pos-id="" label-id="Shrink" icon-id="mesh_shrink.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   </submenu>
-   <endsubmenu />
-   <submenu label-id="Display Entity" item-id="1135" pos-id="">
-       <popup-item item-id="217" pos-id="" label-id="Edges" icon-id="mesh_line.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="218" pos-id="" label-id="Faces" icon-id="mesh_triangle.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="219" pos-id="" label-id="Volumes" icon-id="mesh_tetra.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <separator pos-id=""/>
-       <popup-item item-id="220" pos-id="" label-id="All" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   </submenu>
-   <endsubmenu />
-   <popup-item item-id="1132" pos-id="" label-id="Colors / Size" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <popup-item item-id="1133" pos-id="" label-id="Transparency" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <popup-item item-id="1134" pos-id="" label-id="Clipping" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <separator pos-id=""/>
-   <submenu label-id="Control" item-id="2000" pos-id="">
-       <popup-item item-id="200" pos-id="" label-id="Reset" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <separator pos-id=""/>
-       <popup-item item-id="6003" pos-id="" label-id="Free Borders" icon-id="mesh_free_edges.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="6001" pos-id="" label-id="Length" icon-id="mesh_length.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6004" pos-id="" label-id="Borders at Multi-Connection" icon-id="mesh_multi_edges.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <separator pos-id=""/>
-       <popup-item item-id="6002" pos-id="" label-id="Free Edges" icon-id="mesh_free_edges_2d.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6018" pos-id="" label-id="Length 2D" icon-id="mesh_length_2d.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="6019" pos-id="" label-id="Borders at Multi-Connection 2D" icon-id="mesh_multi_edges_2d.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6011" pos-id="" label-id="Area" icon-id="mesh_area.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="6012" pos-id="" label-id="Taper" icon-id="mesh_taper.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="6013" pos-id="" label-id="Aspect Ratio" icon-id="mesh_aspect.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="6014" pos-id="" label-id="Minimum Angle" icon-id="mesh_angle.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6015" pos-id="" label-id="Warping" icon-id="mesh_wrap.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6016" pos-id="" label-id="Skew" icon-id="mesh_skew.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>  
-        <separator pos-id=""/>
-       <popup-item item-id="6017" pos-id="" label-id="Aspect Ratio 3D" icon-id="mesh_aspect_3d.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <separator pos-id=""/>
-        <popup-item item-id="201" pos-id="" label-id="Scalar Bar Properties" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   </submenu>
-   <endsubmenu />
-   <separator pos-id=""/>
-</popupmenu>
-
-<popupmenu label-id="Elements" context-id="" parent-id="Viewer" object-id="Elements">
-   <popup-item item-id="804" pos-id="" label-id="Add" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <popup-item item-id="805" pos-id="" label-id="Remove" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-</popupmenu>
-
-</menubar>
-
-<!-- ///////////////////////////////////// TOOLBARS ////////////////////////////////////// -->
-<toolbar label-id="Mesh Toolbar">
-   <toolbutton-item item-id="703" pos-id="" label-id="Init" icon-id="mesh_init.png" tooltip-id="Global Hypothesis" accel-id="" toggle-id="" execute-action=""/>
-   <toolbutton-item item-id="702" pos-id="" label-id="Add SubMesh" icon-id="mesh_add_sub.png" tooltip-id="Local Hypothesis" accel-id="" toggle-id="" execute-action=""/>
-   <toolbutton-item item-id="704" pos-id="" label-id="Edit" icon-id="mesh_edit.png" tooltip-id="Edit Hypothesis" accel-id="" toggle-id="" execute-action=""/>
-   <separatorTB/>
-   <toolbutton-item item-id="701" pos-id="" label-id="Compute" icon-id="mesh_compute.png" tooltip-id="Compute" accel-id="" toggle-id="" execute-action=""/>
-   <separatorTB/>
-   <toolbutton-item item-id="801" pos-id="" label-id="Create Group" icon-id="mesh_tree_group.png" tooltip-id="Create Group" accel-id="" toggle-id="" execute-action=""/>
-   <toolbutton-item item-id="802" pos-id="" label-id="Construct Group" icon-id="mesh_make_group.png" tooltip-id="Construct Group" accel-id="" toggle-id="" execute-action=""/>
-   <toolbutton-item item-id="803" pos-id="" label-id="Edit Group" icon-id="mesh_edit_group.png" tooltip-id="Edit Group" accel-id="" toggle-id="" execute-action=""/>
-   <separatorTB/>
-   <toolbutton-item item-id="900" pos-id="" label-id="Advanced Mesh Infos" icon-id="advanced_mesh_info.png" tooltip-id="Advanced Mesh Infos" accel-id="" toggle-id="" execute-action=""/>
-   <toolbutton-item item-id="902" pos-id="" label-id="Standard Mesh Infos" icon-id="standard_mesh_info.png" tooltip-id="Standard Mesh Infos" accel-id="" toggle-id="" execute-action=""/>    
-</toolbar>
-
-<toolbar label-id="Hypotheses Toolbar">
-   <toolbutton-item item-id="5000" label-id="Create Hypotheses" icon-id="mesh_hypo_length.png" tooltip-id="Create Hypotheses" accel-id="" toggle-id="" execute-action=""/>
-   <toolbutton-item item-id="5010" label-id="Create Algorithms" icon-id="mesh_algo_mefisto.png" tooltip-id="Create Algorithms" accel-id="" toggle-id="" execute-action=""/>
-</toolbar>
-
-<toolbar label-id="Controls toolbar">
-       <toolbutton-item item-id="6001" label-id="Length" icon-id="mesh_length.png" tooltip-id="Length" accel-id="" toggle-id="" execute-action=""/>
-       <toolbutton-item item-id="6003" label-id="Free Borders" icon-id="mesh_free_edges.png" tooltip-id="Free borders" accel-id="" toggle-id="" execute-action=""/>
-        <toolbutton-item item-id="6004" label-id="Borders at Multi-Connection" icon-id="mesh_multi_edges.png" tooltip-id="Borders at multi-connection" accel-id="" toggle-id="" execute-action=""/>
-        <separatorTB/>
-       <toolbutton-item item-id="6002" label-id="Free Edges" icon-id="mesh_free_edges_2d.png" tooltip-id="Free edges" accel-id="" toggle-id="" execute-action=""/>
-       <toolbutton-item item-id="6018" label-id="Length 2D" icon-id="mesh_length_2d.png" tooltip-id="Length2D" accel-id="" toggle-id="" execute-action=""/>
-        <toolbutton-item item-id="6019" label-id="Borders at Multi-Connection 2D" icon-id="mesh_multi_edges_2d.png" tooltip-id="Multiconnection 2D" accel-id="" toggle-id="" execute-action=""/>
-       <toolbutton-item item-id="6011" label-id="Area" icon-id="mesh_area.png" tooltip-id="Area" accel-id="" toggle-id="" execute-action=""/>
-       <toolbutton-item item-id="6012" label-id="Taper" icon-id="mesh_taper.png" tooltip-id="Taper" accel-id="" toggle-id="" execute-action=""/>
-       <toolbutton-item item-id="6013" label-id="Aspect Ratio" icon-id="mesh_aspect.png" tooltip-id="Aspect Ratio" accel-id="" toggle-id="" execute-action=""/>
-        <toolbutton-item item-id="6014" label-id="Minimum Angle" icon-id="mesh_angle.png" tooltip-id="Minimum angle" accel-id="" toggle-id="" execute-action=""/>
-       <toolbutton-item item-id="6015" label-id="Warping" icon-id="mesh_wrap.png" tooltip-id="Warping angle" accel-id="" toggle-id="" execute-action=""/>
-       <toolbutton-item item-id="6016" label-id="Skew" icon-id="mesh_skew.png" tooltip-id="Skew" accel-id="" toggle-id="" execute-action=""/>  
-        <separatorTB/>
-        <toolbutton-item item-id="6017" label-id="Aspect Ratio 3D" icon-id="mesh_aspect_3d.png" tooltip-id="Aspect Ratio 3D" accel-id="" toggle-id="" execute-action=""/>
-</toolbar>
-
-<toolbar label-id="Add/Remove toolbar">
-     <toolbutton-item item-id="400" label-id="Node" icon-id="mesh_vertex.png" tooltip-id="Add Node" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="401" label-id="Edge" icon-id="mesh_line.png" tooltip-id="Add Edge" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="4021" label-id="Triangle" icon-id="mesh_triangle.png" tooltip-id="Add Triangle" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="4022" label-id="Quadrangle" icon-id="mesh_quad.png" tooltip-id="Add Quadrangle" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="4023" label-id="Polygon" icon-id="mesh_polygon.png" tooltip-id="Add Polygon" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="4031" label-id="Tetrahedron" icon-id="mesh_tetra.png" tooltip-id="Add Tetrahedron" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="4032" label-id="Hexahedron" icon-id="mesh_hexa.png" tooltip-id="Add Hexahedron" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="4033" label-id="Polyhedron" icon-id="mesh_polyhedron.png" tooltip-id="Add Polyhedron" accel-id="" toggle-id="" execute-action=""/>
-   <separatorTB/>
-     <toolbutton-item item-id="4041" label-id="Nodes" icon-id="mesh_rem_node.png" tooltip-id="Remove Nodes" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="4042" label-id="Elements" icon-id="mesh_rem_element.png" tooltip-id="Remove Elements" accel-id="" toggle-id="" execute-action=""/>
-   <separatorTB/>
-     <toolbutton-item item-id="4051" label-id="Nodes" icon-id="mesh_renumbering_nodes.png" tooltip-id="Renumbering Nodes" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="4052" label-id="Elements" icon-id="mesh_renumbering_elements.png" tooltip-id="Renumbering Elements" accel-id="" toggle-id="" execute-action=""/>    
-   <separatorTB/>
-     <toolbutton-item item-id="4061" label-id="Translation" icon-id="mesh_translation_vector.png" tooltip-id="Displacement of a mesh by Translation" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="4062" label-id="Rotation" icon-id="mesh_rotation.png" tooltip-id="Displacement of a mesh by Rotation" accel-id="" toggle-id="" execute-action=""/>         
-     <toolbutton-item item-id="4063" label-id="Symmetry" icon-id="mesh_symmetry_plane.png" tooltip-id="Displacement of a mesh by Symmetry" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="4064" label-id="Sewing" icon-id="mesh_sew_freeborders.png" tooltip-id="Sewing of meshes" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="4065" label-id="Merge nodes" icon-id="mesh_merge_nodes.png" tooltip-id="Merge nodes" accel-id="" toggle-id="" execute-action=""/>
-</toolbar>
-
-<toolbar label-id="Modification toolbar">
-     <toolbutton-item item-id="406" label-id="Move Node" icon-id="mesh_move_node.png" tooltip-id="Move Node" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="407" label-id="Diagonal Inversion" icon-id="mesh_diagonal.png" tooltip-id="Diagonal Inversion" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="408" label-id="Union of two triangles" icon-id="mesh_union2tri.png" tooltip-id="Union of two triangles" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="409" label-id="Orientation" icon-id="mesh_orientation.png" tooltip-id="Orientation" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="410" label-id="Union of triangles" icon-id="mesh_uniontri.png" tooltip-id="Union of triangles" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="411" label-id="Cutting of quadrangles" icon-id="mesh_cutquad.png" tooltip-id="Cutting of quadrangles" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="412" label-id="Smoothing" icon-id="mesh_smoothing.png" tooltip-id="Smoothing" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="413" label-id="Extrusion" icon-id="mesh_extrusion.png" tooltip-id="Extrusion along a line" accel-id="" toggle-id="" execute-action=""/> 
-     <toolbutton-item item-id="416" label-id="Extrusion along a path" icon-id="mesh_extrusionpath.png" tooltip-id="Extrusion along a path" accel-id="" toggle-id="" execute-action=""/> 
-     <toolbutton-item item-id="414" label-id="Revolution" icon-id="mesh_revolution.png" tooltip-id="Revolution around an axis" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="415" label-id="Pattern mapping" icon-id="mesh_pattern.png" tooltip-id="2D and 3D pattern mapping" accel-id="" toggle-id="" execute-action=""/>     
-</toolbar>
-
-<toolbar label-id="Display Mode Toolbar">
-   <toolbutton-item item-id="214" pos-id="" label-id="Update" icon-id="mesh_update.png" tooltip-id="Update View" accel-id="" toggle-id="" execute-action=""/>
-</toolbar>
-
-</desktop>     
-
-</application>
diff --git a/resources/SMESH_fr.xml b/resources/SMESH_fr.xml
deleted file mode 100644 (file)
index d5dbf46..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-<?xml version='1.0' encoding='us-ascii'?>
-<!DOCTYPE application PUBLIC "" "desktop.dtd">
-
-<!--  GUI customization for MESH component  -->
-
-<application
-       title="Mesh component"
-       date="13/05/2002"
-       author="Nicolas REJNERI"
-       appId="Mesh for Salome" >
-
-<desktop>
-<menubar>
-
-<!-- ************************** File  (menubar)  ************************************ -->
-<menu-item label-id="File" item-id="1" pos-id="">
-     <submenu label-id="Import" item-id="11" pos-id="8">
-       <popup-item item-id="111" pos-id="" label-id="DAT file" icon-id="" tooltip-id="" accel-id="Ctrl+B" toggle-id="" execute-action=""/>
-               <popup-item item-id="112" pos-id="" label-id="UNV File" icon-id="" tooltip-id="" accel-id="Ctrl+I" toggle-id="" execute-action=""/> 
-               <popup-item item-id="113" pos-id="" label-id="MED File" icon-id="" tooltip-id="" accel-id="Ctrl+M" toggle-id="" execute-action=""/> 
-      </submenu>
-      <endsubmenu />
-      <submenu label-id="Export" item-id="12" pos-id="9">
-        <popup-item item-id="121" pos-id="" label-id="DAT File" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="122" pos-id="" label-id="MED File" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="123" pos-id="" label-id="UNV File" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-      </submenu>
-      <endsubmenu />
-      <separator pos-id="10"/>
-</menu-item>
-
-<!-- ************************* Edit (menubar) ************************************** -->
-<menu-item label-id="Edit" item-id="3" pos-id="2">
-    <separator pos-id=""/>
-    <popup-item item-id="33" pos-id="" label-id="Delete" icon-id="delete.png" tooltip-id="" accel-id="" toggle-id="" execute-action="" />
-</menu-item>
-
-<!-- ************************** Hypothesis  (menubar)  ************************************ -->
-<menu-item label-id="Hypotheses" item-id="50" pos-id="3">
-       <popup-item item-id="5000" pos-id="" label-id="Create Hypothesis" icon-id="mesh_hypo_length.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="5010" pos-id="" label-id="Create Algorithm" icon-id="mesh_algo_mefisto.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-</menu-item>
-
-<!-- ************************** Mesh  (menubar)  ************************************ -->
-<menu-item label-id="Mesh" item-id="70" pos-id="4">
-     <popup-item item-id="703" pos-id="" label-id="Global Hyp." icon-id="mesh_init.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="702" pos-id="" label-id="Local Hyp." icon-id="mesh_add_sub.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="704" pos-id="" label-id="Edit Hyp." icon-id="mesh_edit.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <separator pos-id=""/>
-     <popup-item item-id="701" pos-id="" label-id="Compute" icon-id="mesh_compute.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <separator pos-id=""/>
-     <popup-item item-id="801" pos-id="" label-id="Create Group" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <separator pos-id=""/>
-     <popup-item item-id="900" pos-id="" label-id="Mesh Infos" icon-id="mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-</menu-item>
-
-<!-- ************************** Control  (menubar)  ************************************ -->
-<menu-item label-id="Controls" item-id="60" pos-id="5">
-       <popup-item item-id="6001" pos-id="" label-id="Length" icon-id="mesh_length.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6002" pos-id="" label-id="Connectivity" icon-id="mesh_connectivity.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6011" pos-id="" label-id="Area" icon-id="mesh_area.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6012" pos-id="" label-id="Taper" icon-id="mesh_taper.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6013" pos-id="" label-id="Aspect Ratio" icon-id="mesh_aspect.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6014" pos-id="" label-id="Minimum angle" icon-id="mesh_angle.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6015" pos-id="" label-id="Warp" icon-id="mesh_wrap.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="6016" pos-id="" label-id="Skew" icon-id="mesh_skew.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>  
-</menu-item>
-        
-<!-- ************************** Entity  (menubar)  ************************************ -->
-<menu-item label-id="Modification" item-id="40" pos-id="6">
-     <submenu label-id="Add" item-id="402" pos-id="">
-     <popup-item item-id="400" pos-id="" label-id="Node" icon-id="mesh_vertex.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="401" pos-id="" label-id="Edge" icon-id="mesh_line.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4021" pos-id="" label-id="Triangle" icon-id="mesh_triangle.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4022" pos-id="" label-id="Quadrangle" icon-id="mesh_quad.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4031" pos-id="" label-id="Tetrahedron" icon-id="mesh_tetra.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4032" pos-id="" label-id="Hexahedron" icon-id="mesh_hexa.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     </submenu>
-     <endsubmenu />
-     <submenu label-id="Remove" item-id="403" pos-id="">
-     <popup-item item-id="4041" pos-id="" label-id="Nodes" icon-id="mesh_rem_node.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4042" pos-id="" label-id="Elements" icon-id="mesh_rem_element.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     </submenu>
-     <endsubmenu />
-     <submenu label-id="Renumbering" item-id="404" pos-id="">
-     <popup-item item-id="4051" pos-id="" label-id="Nodes" icon-id="mesh_renumbering_nodes.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="4052" pos-id="" label-id="Elements" icon-id="mesh_renumbering_elements.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     </submenu>
-     <endsubmenu />
-     <popup-item item-id="405" pos-id="" label-id="Move Node" icon-id="mesh_move_node.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="406" pos-id="" label-id="Orientation" icon-id="mesh_orientation.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="407" pos-id="" label-id="Diagonal Inversion" icon-id="mesh_diagonal.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="408" pos-id="" label-id="Union of two triangles" icon-id="mesh_union2tri.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="406" pos-id="" label-id="Orientation" icon-id="mesh_orientation.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="409" pos-id="" label-id="Union of triangles" icon-id="mesh_uniontri.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="410" pos-id="" label-id="Cutting of quadrangles" icon-id="mesh_cutquad.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="411" pos-id="" label-id="Smoothing" icon-id="mesh_smoothing.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="412" pos-id="" label-id="Extrusion" icon-id="mesh_extrusion.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-     <popup-item item-id="413" pos-id="" label-id="Revolution" icon-id="mesh_revolution.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-</menu-item>
-
-<!-- ************************** Numbering  (menubar)  ************************************ -->
-<menu-item label-id="Numbering" item-id="80" pos-id="7">
-     <popup-item item-id="9010" pos-id="" label-id="Display Nodes #" icon-id="" tooltip-id="" accel-id="" toggle-id="false" execute-action=""/>
-     <popup-item item-id="9011" pos-id="" label-id="Display Elements #" icon-id="" tooltip-id="" accel-id="" toggle-id="false" execute-action=""/>
-</menu-item>
-
-<!-- ********************************* Settings  (menubar) ********************************* -->
-<menu-item label-id="Preferences" item-id="4" pos-id="">
-   <submenu label-id="Mesh" item-id="100" pos-id="-1">
-    <submenu label-id="Display Mode" item-id="1000" pos-id="">
-       <popup-item item-id="10001" pos-id="" label-id="Wireframe" icon-id="" tooltip-id="" accel-id="" toggle-id="false" execute-action=""/>
-       <popup-item item-id="10002" pos-id="" label-id="Shading" icon-id="" tooltip-id="" accel-id="" toggle-id="true" execute-action=""/>
-       <popup-item item-id="10003" pos-id="" label-id="Shrink" icon-id="" tooltip-id="" accel-id="" toggle-id="false" execute-action=""/>
-    </submenu>
-    <endsubmenu /> 
-    <popup-item item-id="1001" pos-id="" label-id="Automatic Update" icon-id="" tooltip-id="" accel-id="" toggle-id="false" execute-action=""/>
-    <separator pos-id=""/>
-    <popup-item item-id="1003" pos-id="" label-id="Colors - Size" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-    <separator pos-id=""/>
-    <popup-item item-id="1005" pos-id="" label-id="Scalars Bar" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   </submenu>
-   <endsubmenu />
-   <separator pos-id="-1"/>
-</menu-item>
-
-<!-- ********************************* View  (menubar) ********************************* -->
-<menu-item label-id="View" item-id="2" pos-id="">
-    <submenu label-id="Display Mode" item-id="21" pos-id="">
-       <popup-item item-id="211" pos-id="" label-id="Wireframe" icon-id="mesh_wireframe.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="212" pos-id="" label-id="Shading" icon-id="mesh_shading.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       <popup-item item-id="213" pos-id="" label-id="Shrink" icon-id="mesh_shrink.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-    </submenu>
-    <endsubmenu />
-    <separator pos-id=""/>
-    <popup-item item-id="214" pos-id="" label-id="Update" icon-id="mesh_update.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-</menu-item>
-
-<!-- ################################# POPUP MENU #################################  -->
-
-<popupmenu label-id="Popup for ObjectBrowser" context-id="" parent-id="ObjectBrowser" object-id="Mesh">
-   <popup-item item-id="705" pos-id="" label-id="Edit Global Hyp." icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <separator pos-id=""/>
-   <popup-item item-id="701" pos-id="" label-id="Compute" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <popup-item item-id="214" pos-id="" label-id="Update" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <separator pos-id=""/>
-   <popup-item item-id="801" pos-id="" label-id="Create Group" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <separator pos-id=""/>
-   <popup-item item-id="1101" pos-id="" label-id="Rename" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-</popupmenu>
-
-<popupmenu label-id="Popup for ObjectBrowser" context-id="" parent-id="ObjectBrowser" object-id="SubMesh">
-   <popup-item item-id="706" pos-id="" label-id="Edit Local Hyp." icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <separator pos-id=""/>
-   <popup-item item-id="802" pos-id="" label-id="Construct Group" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
-   <separator pos-id=""/>
-   <popup-item item-id="1101" pos-id="" label-id="Rename" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-</popupmenu>
-
-<popupmenu label-id="Popup for ObjectBrowser" context-id="" parent-id="ObjectBrowser" object-id="Hypothesis">
-   <popup-item item-id="1100" pos-id="" label-id="Edit" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <popup-item item-id="1102" pos-id="" label-id="Unassign Hyp." icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <popup-item item-id="1101" pos-id="" label-id="Rename" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-</popupmenu>
-
-<popupmenu label-id="Popup for ObjectBrowser" context-id="" parent-id="ObjectBrowser" object-id="Algorithm">
-   <popup-item item-id="1102" pos-id="" label-id="Unassign Algo." icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <popup-item item-id="1101" pos-id="" label-id="Rename" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-</popupmenu>
-
-
-<popupmenu label-id="Popup for Viewer" context-id="" parent-id="Viewer" object-id="Mesh">
-   <popup-item item-id="214" pos-id="" label-id="Update" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/> 
-   <separator pos-id=""/>   
-   <submenu label-id="Properties" item-id="113" pos-id="">
-        <submenu label-id="Display Mode" item-id="1131" pos-id="">
-               <popup-item item-id="211" pos-id="" label-id="Wireframe" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-               <popup-item item-id="212" pos-id="" label-id="Shading" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-               <popup-item item-id="213" pos-id="" label-id="Shrink" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-       </submenu>
-       <endsubmenu />
-        <separator pos-id=""/>
-        <popup-item item-id="1132" pos-id="" label-id="Colors - Size" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-        <popup-item item-id="1133" pos-id="" label-id="Transparency" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   </submenu>
-   <endsubmenu />
-</popupmenu>
-
-<popupmenu label-id="ScalarBar" context-id="" parent-id="Viewer" object-id="ScalarBar">
-   <popup-item item-id="200" pos-id="" label-id="Erase" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <popup-item item-id="201" pos-id="" label-id="Edit" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
-   <popup-item item-id="202" pos-id="" label-id="Update View" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>  
-</popupmenu>
-
-</menubar>
-
-<!-- ///////////////////////////////////// TOOLBARS ////////////////////////////////////// -->
-<toolbar label-id="Mesh Toolbar">
-   <toolbutton-item item-id="703" pos-id="" label-id="Init" icon-id="mesh_init.png" tooltip-id="Global Hyp." accel-id="" toggle-id="" execute-action=""/>
-   <toolbutton-item item-id="702" pos-id="" label-id="Add SubMesh" icon-id="mesh_add_sub.png" tooltip-id="Local Hyp." accel-id="" toggle-id="" execute-action=""/>
-   <toolbutton-item item-id="704" pos-id="" label-id="Edit" icon-id="mesh_edit.png" tooltip-id="Edit Hyp." accel-id="" toggle-id="" execute-action=""/>
-   <separatorTB/>
-   <toolbutton-item item-id="701" pos-id="" label-id="Compute" icon-id="mesh_compute.png" tooltip-id="Compute" accel-id="" toggle-id="" execute-action=""/>
-   <separatorTB/>
-   <toolbutton-item item-id="900" pos-id="" label-id="Mesh Infos" icon-id="mesh_info.png" tooltip-id="Mesh Infos" accel-id="" toggle-id="" execute-action=""/>
-</toolbar>
-
-<toolbar label-id="Hypotheses Toolbar">
-   <toolbutton-item item-id="5000" label-id="Create Hypothesis" icon-id="mesh_hypo_length.png" tooltip-id="Create Hypothesis" accel-id="" toggle-id="" execute-action=""/>
-   <toolbutton-item item-id="5010" label-id="Create Algorithm" icon-id="mesh_algo_mefisto.png" tooltip-id="Create Algorithm" accel-id="" toggle-id="" execute-action=""/>
-</toolbar>
-
-<toolbar label-id="Controls toolbar">
-       <toolbutton-item item-id="6001" label-id="Length" icon-id="mesh_length.png" tooltip-id="Length" accel-id="" toggle-id="" execute-action=""/>
-       <toolbutton-item item-id="6002" label-id="Connectivity" icon-id="mesh_connectivity.png" tooltip-id="Connectivity" accel-id="" toggle-id="" execute-action=""/>
-       <toolbutton-item item-id="6011" label-id="Area" icon-id="mesh_area.png" tooltip-id="Area" accel-id="" toggle-id="" execute-action=""/>
-       <toolbutton-item item-id="6012" label-id="Taper" icon-id="mesh_taper.png" tooltip-id="Taper" accel-id="" toggle-id="" execute-action=""/>
-       <toolbutton-item item-id="6013" label-id="Aspect Ratio" icon-id="mesh_aspect.png" tooltip-id="Aspect Ratio" accel-id="" toggle-id="" execute-action=""/>
-       <toolbutton-item item-id="6014" label-id="Minimum angle" icon-id="mesh_angle.png" tooltip-id="Minimum angle" accel-id="" toggle-id="" execute-action=""/>
-       <toolbutton-item item-id="6015" label-id="Warp" icon-id="mesh_wrap.png" tooltip-id="Warp" accel-id="" toggle-id="" execute-action=""/>
-       <toolbutton-item item-id="6016" label-id="Skew" icon-id="mesh_skew.png" tooltip-id="Skew" accel-id="" toggle-id="" execute-action=""/>  
-</toolbar>
-
-<toolbar label-id="Add/Remove toolbar">
-     <toolbutton-item item-id="400" label-id="Node" icon-id="mesh_vertex.png" tooltip-id="Add Node" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="401" label-id="Edge" icon-id="mesh_line.png" tooltip-id="Add Edge" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="4021" label-id="Triangle" icon-id="mesh_triangle.png" tooltip-id="Add Triangle" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="4022" label-id="Quadrangle" icon-id="mesh_quad.png" tooltip-id="Add Quadrangle" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="4031" label-id="Tetrahedron" icon-id="mesh_tetra.png" tooltip-id="Add Tetrahedron" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="4032" label-id="Hexahedron" icon-id="mesh_hexa.png" tooltip-id="Add Hexahedron" accel-id="" toggle-id="" execute-action=""/>
-   <separatorTB/>
-     <toolbutton-item item-id="4041" label-id="Nodes" icon-id="mesh_rem_node.png" tooltip-id="Remove Nodes" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="4042" label-id="Elements" icon-id="mesh_rem_element.png" tooltip-id="Remove Elements" accel-id="" toggle-id="" execute-action=""/>
-   <separatorTB/>
-     <toolbutton-item item-id="4051" label-id="Nodes" icon-id="mesh_renumbering_nodes.png" tooltip-id="Renumbering Nodes" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="4052" label-id="Elements" icon-id="mesh_renumbering_elements.png" tooltip-id="Renumbering Elements" accel-id="" toggle-id="" execute-action=""/>
-</toolbar>
-
-<toolbar label-id="Modification toolbar">
-     <toolbutton-item item-id="405" label-id="Move Node" icon-id="mesh_move_node.png" tooltip-id="Move Node" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="406" label-id="Orientation" icon-id="mesh_orientation.png" tooltip-id="Orientation" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="407" label-id="Diagonal Inversion" icon-id="mesh_diagonal.png" tooltip-id="Diagonal Inversion" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="408" label-id="Union of two triangles" icon-id="mesh_union2tri.png" tooltip-id="Union of two triangles" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="406" label-id="Orientation" icon-id="mesh_orientation.png" tooltip-id="Orientation" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="409" label-id="Union of triangles" icon-id="mesh_uniontri.png" tooltip-id="Union of triangles" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="410" label-id="Cutting of quadrangles" icon-id="mesh_cutquad.png" tooltip-id="Cutting of quadrangles" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="411" label-id="Smoothing" icon-id="mesh_smoothing.png" tooltip-id="Smoothing" accel-id="" toggle-id="" execute-action=""/>
-     <toolbutton-item item-id="412" label-id="Extrusion" icon-id="mesh_extrusion.png" tooltip-id="Extrusion along a line" accel-id="" toggle-id="" execute-action=""/> 
-     <toolbutton-item item-id="413" label-id="Revolution" icon-id="mesh_revolution.png" tooltip-id="Revolution around an axis" accel-id="" toggle-id="" execute-action=""/> 
-</toolbar>
-
-<toolbar label-id="Display Mode Toolbar">
-   <toolbutton-item item-id="214" pos-id="" label-id="Update" icon-id="mesh_update.png" tooltip-id="Update View" accel-id="" toggle-id="" execute-action=""/>
-   <separatorTB/>
-   <toolbutton-item item-id="211" pos-id="" label-id="Wireframe" icon-id="mesh_wireframe.png" tooltip-id="Wireframe" accel-id="" toggle-id="" execute-action=""/>
-   <toolbutton-item item-id="212" pos-id="" label-id="Shading" icon-id="mesh_shading.png" tooltip-id="shading" accel-id="" toggle-id="" execute-action=""/>
-   <toolbutton-item item-id="213" pos-id="" label-id="Shrink" icon-id="mesh_shrink.png" tooltip-id="shrink" accel-id="" toggle-id="" execute-action=""/>
-</toolbar>
-
-</desktop>     
-
-</application>
diff --git a/resources/StdMeshers.xml b/resources/StdMeshers.xml
deleted file mode 100644 (file)
index 60aec65..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version='1.0' encoding='us-ascii'?>
-<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
-
-<!--  GUI customization for MESH component  -->
-
-<meshers>
-
-<meshers-group name="Standard Meshers"
-               resources="StdMeshers"
-               server-lib="libStdMeshersEngine.so"
-               gui-lib="libStdMeshersGUI.so">
-  <hypotheses>
-
-    <hypothesis type="LocalLength"
-                label-id="Average length"
-                icon-id="mesh_hypo_length.png"
-                dim="1"/>
-
-    <hypothesis type="Arithmetic1D"
-                label-id="Arithmetic 1D"
-                icon-id="mesh_hypo_length.png"
-                dim="1"/>
-
-    <hypothesis type="StartEndLength"
-                label-id="Start and End Length"
-                icon-id="mesh_hypo_length.png"
-                dim="1"/>
-
-    <hypothesis type="NumberOfSegments"
-                label-id="Nb. Segments"
-                icon-id="mesh_hypo_segment.png"
-                dim="1"/>
-
-    <hypothesis type="Deflection1D"
-                label-id="Deflection 1D"
-                icon-id="mesh_hypo_length.png"
-                dim="1"/>
-
-    <hypothesis type="Propagation"
-                label-id="Propagation of 1D Hyp. on opposite edges"
-                icon-id="mesh_hypo_length.png"
-                dim="1"
-                auxiliary="true"/>
-
-    <hypothesis type="LengthFromEdges"
-                label-id="Length From Edges (2D Hyp. for Triangulator)"
-                icon-id="mesh_hypo_length.png"/>
-
-    <hypothesis type="MaxElementArea"
-                label-id="Max. Element Area"
-                icon-id="mesh_hypo_area.png"
-                dim="2"/>
-                
-    <hypothesis type="NotConformAllowed"
-                label-id="Not Conform Mesh Allowed"
-                icon-id="mesh_hypo_length.png"
-                dim="1,2,3"
-                auxiliary="true"/>                
-
-    <hypothesis type="MaxElementVolume"
-                label-id="Max. Element Volume"
-                icon-id="mesh_hypo_volume.png"
-                dim="3"/>
-  </hypotheses>
-
-  <algorithms>
-
-    <algorithm type="Regular_1D"
-              label-id="Wire discretisation"
-              icon-id="mesh_algo_regular.png"
-         dim="1"/>
-
-    <algorithm type="MEFISTO_2D"
-              label-id="Triangle (Mefisto)"
-              icon-id="mesh_algo_mefisto.png"
-         dim="2"/>
-
-    <algorithm type="Quadrangle_2D"
-               label-id="Quadrangle (Mapping)"
-               icon-id="mesh_algo_quad.png"
-               dim="2"/>
-
-    <algorithm type="Hexa_3D"
-               label-id="Hexahedron (i,j,k)"
-               icon-id="mesh_algo_hexa.png"
-               dim="3"/>
-  </algorithms>
-</meshers-group>
-
-<meshers-group name="Your Meshers Group"
-               resources=""
-               server-lib=""
-               gui-lib="">
-  <hypotheses>
-
-    <hypothesis type=""
-                label-id=""
-                icon-id=""/>
-  </hypotheses>
-
-  <algorithms>
-
-    <algorithm type=""
-               label-id=""
-               icon-id=""/>
-  </algorithms>
-</meshers-group>
-
-</meshers>
diff --git a/resources/advanced_mesh_info.png b/resources/advanced_mesh_info.png
deleted file mode 100644 (file)
index 01eaea2..0000000
Binary files a/resources/advanced_mesh_info.png and /dev/null differ
diff --git a/resources/delete.png b/resources/delete.png
deleted file mode 100644 (file)
index 8ae8475..0000000
Binary files a/resources/delete.png and /dev/null differ
diff --git a/resources/flight_solid.brep b/resources/flight_solid.brep
deleted file mode 100644 (file)
index a1717af..0000000
+++ /dev/null
@@ -1,13835 +0,0 @@
-DBRep_DrawableShape
-
-CASCADE Topology V1, (c) Matra-Datavision
-Locations 0
-Curve2ds 739
-7 0 0  9 18 3  0.41008236 0.84752031  0.410288721116551 0.848018210013126  0.410512694715336 0.848494001779385  0.410754282080313 0.848947688294738  0.411013480343025 0.849379262905495  0.411290293807721 0.849788735468964  0.411584718084984 0.850176095891108  0.41189675616236 0.850541351160252  0.412226406649857 0.850884498036808  0.412686516107917 0.851309861938193  0.412801222124165 0.851411851893701  0.412917788015902 0.851511507336148  0.413036213782896 0.851608828265284  0.413156499424904 0.851703814680868  0.413278644941687 0.851796466582653  0.413402650333006 0.851886783970395  0.41352851559862 0.851974766843847  0.413656240738291 0.852060415202764 
- 0 10 0.1 8 0.132495842436784 10
-7 0 0  3 4 2  0 55.31736968  0.071577424652243 55.3201286844149  0.116887749292198 55.3262592484463  0.17703176 55.33417125 
- 0 4 0.132495842436784 4
-7 0 0  9 18 3  0.413656240738291 0.852060415202764  0.413725040954009 0.852106550408289  0.413794380817468 0.852152008247789  0.413864260328631 0.852196788721226  0.41393467948746 0.852240891828562  0.414005638293919 0.852284317569758  0.414077136747969 0.852327065944776  0.414149174849574 0.852369136953578  0.414221752598695 0.852410530596126  0.414503727223458 0.852567551459183  0.414716988400245 0.852678329380334  0.414934647672889 0.852783578856898  0.415156725998107 0.85288330626268  0.41538317726183 0.852977497561363  0.415614069921756 0.85306617362111  0.415849333157221 0.853149312823977  0.416089017338431 0.853226930589878  0.4163331 0.85329902 
- 0.132495842436784 10 0.15 8 0.2 10
-7 0 0  5 6 2  0.17703176 55.33417125  0.195417119112928 55.3365899096272  0.192524267410444 55.3362808334757  0.283278462165895 55.3483207401871  0.230231261368446 55.3412658576374  0.25286332 55.34428547 
- 0.132495842436784 6 0.2 6
-8 0.625 0.75
-7 0 0  10 29 4  0.47919147 55.3732371  0.458962850543076 55.3707757236626  0.443802301295076 55.3689231730498  0.431227964617491 55.367380124404  0.420500793869518 55.3660572085357  0.410923058136591 55.3648699802239  0.402212000179146 55.3637838927784  0.394032435629815 55.3627579772731  0.386189843456487 55.3617680239735  0.378476264305612 55.3607879518754  0.366799407238582 55.3592942621059  0.362889229703656 55.3587924170077  0.358936068462618 55.3582834148439  0.354914121206614 55.3577639263097  0.350796456467887 55.3572304503062  0.346554151140419 55.3566792020948  0.342154984231222 55.3561059414163  0.337561686842193 55.3555057395169  0.33272974838302 55.3548726862563  0.322479809645869 55.3535263862486  0.31706158729616 55.352813109873  0.31129610018702 55.3520525123972  0.305116424404339 55.3512356588456  0.298444256401293 55.3503520779771  0.291180511243476 55.3493885022517  0.28319654366915 55.3483276905218  0.274324676485957 55.3471471550415  0.264333848297687 55.345815889593  0.25286332 55.34428547 
- 0.625 11 0.6875 9 0.71875 9 0.75 11
-7 0 0  9 26 4  0.421419233714204 0.854378375383088  0.421408724578323 0.85437703174307  0.421398214712478 0.85437568379662  0.421387704119531 0.854374331544096  0.421377192802346 0.85437297498586  0.421366680763785 0.854371614122278  0.421356168006712 0.854370248953719  0.421345654533991 0.854368879480552  0.421335140348488 0.854367505703154  0.421049278519141 0.85433004067742  0.420773444667682 0.85429100241145  0.420497175524154 0.854249019606855  0.420220522807335 0.854204100486739  0.419943538329829 0.854156254714823  0.419666273997255 0.854105493394876  0.419388781809199 0.854051829071366  0.41911111385837 0.853995275728881  0.418555530803956 0.853876421856185  0.418277616358952 0.853814121520681  0.417999625134002 0.85374896144515  0.417721630115384 0.853680964544785  0.417443636848365 0.853610135441177  0.417165765713599 0.853536513684488  0.416887996993909 0.853460099322532  0.416610432380243 0.853380929179368  0.4163331 0.85329902 
- 0.625 10 0.627342019607739 8 0.688671009803869 8 0.75 10
-7 0 0  9 10 2  0.421419233714204 0.854378375383088  0.42162626646769 0.854404845446442  0.421833015921969 0.854429644181601  0.422039460194169 0.854452768845145  0.42224557748412 0.854474217174743  0.422451346087938 0.854493987387354  0.422656744411601 0.854512078177426  0.422861750984535 0.854528488715104  0.423066344473184 0.854543218644425  0.423270503694597 0.854556268081525 
- 0.301909390322789 10 0.339524884162641 10
-7 0 0  3 4 2  0.47919147 55.3732371  0.503954646308396 55.3762502176997  0.529339233015005 55.3794060043009  0.55492435 55.38255655 
- 0.301909390322789 4 0.339524884162641 4
-8 0.375 0.5
-7 0 0  11 32 4  0.67801019 55.39702465  0.666584190893305 55.3957142897046  0.656983787670606 55.3946116915496  0.648669368121809 55.3936552615707  0.641337265061191 55.3928103137286  0.634756968014638 55.3920504857651  0.628786283131536 55.3913594929417  0.623288997234573 55.3907217000789  0.618179377950216 55.3901272256352  0.613372164353592 55.3895662080309  0.608800514777051 55.3890308563824  0.602201728162073 55.3882552033493  0.600045255855038 55.3880012157352  0.597924063677702 55.3877508694956  0.595830811474013 55.387503297567  0.59375817685397 55.3872576302006  0.59169891738079 55.3870130020925  0.589645935881049 55.3867685603869  0.587592091769012 55.3865234416853  0.585529788530008 55.386276722624  0.583450654637167 55.3860273808104  0.579241190192661 55.3855212961428  0.577110813907899 55.3852645476316  0.574945954811114 55.3850030075051  0.572736933395688 55.384735480921  0.570473132214319 55.3844606522241  0.568142729099653 55.3841770516709  0.565732260796604 55.383883000953  0.563226016998262 55.3835765367239  0.56060526479206 55.3832553129161  0.557847303512234 55.3829164811933  0.55492435 55.38255655 
- 0.375 12 0.4375 10 0.46875 10 0.5 12
-7 0 0  11 22 3  0.42617692 0.85458915  0.425907172004119 0.854600711756659  0.426146286684528 0.854589536135972  0.424262395934449 0.854661159226996  0.427511202983691 0.85452530299163  0.422652069617444 0.854716866925565  0.42706813152373 0.854531674372239  0.423797101657499 0.854658906241426  0.425160158179562 0.854597204250858  0.424601242002163 0.854613758995449  0.424556237197151 0.854609194726696  0.424345913668217 0.85460463847709  0.424246410619118 0.854602297943986  0.424150535851109 0.854599760720235  0.424056258929567 0.854596892521203  0.423961549420351 0.854593559066635  0.42386437688891 0.854589626069788  0.423762710900766 0.854584959251571  0.423654521021808 0.854579424325638  0.423537776817281 0.85457288701117  0.423410447853057 0.854565213023994  0.423270503694597 0.854556268081525 
- 0.375 12 0.4375 10 0.5 12
-8 0.4 0.6
-7 0 0  9 26 4  0.42617692 0.85458915  0.426194113228556 0.854588412226726  0.426226435714986 0.854588330491922  0.426273887457241 0.854588904796454  0.426336468453217 0.854590135140843  0.426414178700862 0.854592021526122  0.426507018198108 0.85459456395275  0.426614986942859 0.854597762421684  0.426738084933068 0.854601616933541  0.426945425783436 0.854608382766914  0.427018321712828 0.854610802055249  0.427094999954214 0.854613385354197  0.427175460507028 0.854616132663505  0.427259703370657 0.85461904398356  0.427347728544505 0.854622119313817  0.427439536028012 0.854625358654751  0.427535125820547 0.854628762005996  0.427733870022533 0.85463589672939  0.427837024809266 0.854639628115687  0.427943959376763 0.854643523417337  0.428054684132618 0.854647583025675  0.428169176179377 0.854651806079854  0.428287469508571 0.854656193857644  0.428409528947264 0.854660745037018  0.428535379503884 0.854665460557793  0.42866501 0.85467034 
- 0.4 10 0.5 8 0.55 8 0.6 10
-7 0 0  9 10 2  0.678010189999999 55.3970246499999  0.679466766105051 55.397191692687  0.672267258065191 55.3963580504787  0.711168432408913 55.4008606633961  0.659851366595554 55.3948832074081  0.750100967508816 55.405466964986  0.691864748842144 55.3986254774015  0.753036540660531 55.4058336509712  0.757377707818412 55.4063476047459  0.77912526 55.40891471 
- 0.4 10 0.6 10
-8 0.125 0.25
-7 0 0  9 10 2  0.85471089 55.4176593  0.841623799434198 55.4161539556967  0.829709307777954 55.4147820913976  0.818964941821067 55.4135434221775  0.809396870013699 55.4124386586811  0.800996291262819 55.4114667869151  0.793771218352117 55.4106287302393  0.787716775469767 55.4099239263145  0.782835018684141 55.4093526130069  0.77912526 55.40891471 
- 0.125 10 0.25 10
-7 0 0  7 8 2  0.43002793 0.85464274  0.429622733922243 0.854650945479358  0.431215957113761 0.854618681692231  0.427290723357091 0.854698170182226  0.430575420468532 0.854631652968227  0.4283619302953 0.854676477557579  0.428775912899907 0.854668094145483  0.42866501 0.85467034 
- 0.125 8 0.25 8
-8 0.8 1
-7 0 0  11 32 4  0.43002793 0.85464274  0.430129530886392 0.854636490001381  0.430238847795081 0.854631893266681  0.430355920314158 0.854628947657  0.430480635879583 0.854627659376971  0.430613204036399 0.854628016790392  0.430753344683226 0.854630035508681  0.430901334863621 0.854633700049561  0.431056970943397 0.854639021809332  0.431220362248338 0.854645994660571  0.431391467802293 0.85465462090159  0.431659712046024 0.8546700395318  0.431751057504888 0.854675592301993  0.43184433367563 0.854681558298956  0.431939540558868 0.854687937522967  0.432036678155895 0.854694729973602  0.432135746466822 0.854701935651772  0.432236745493416 0.854709554556371  0.432339675235586 0.854717586688705  0.432444535694899 0.854726032047792  0.432551326871768 0.854734890634369  0.432768770662643 0.85475343426196  0.432879424002827 0.854763119378869  0.432992004451029 0.854773217346934  0.433106522586754 0.85478372926856  0.433222966595374 0.854794653911966  0.433341337959124 0.854805991434995  0.433461647109929 0.85481774291822  0.433583888041142 0.854829907741832  0.433708048021654 0.854842484578363  0.433834150906707 0.854855475908872  0.43396218 0.85486888 
- 0.8 12 0.9 10 0.95 10 1 12
-7 0 0  6 7 2  0.85471089 55.4176593  0.870478258648852 55.4194729460974  0.828066493724232 55.4146179511299  0.938973869688871 55.4272271260317  0.913091011192183 55.4246736069713  0.962212494798925 55.4306342887528  1 55.43536728 
- 0.8 7 1 7
-7 0 0  11 12 2  0.483898951543211 0.0757973607092663  0.484718833285831 0.0689709430393895  0.485534263180288 0.0621348936230656  0.486345359392154 0.0552881545346237  0.487152238645572 0.0484296618410228  0.487955016328154 0.0415583446147901  0.488753806614351 0.034673123761602  0.489548722590598 0.0277729107857078  0.490339876342338 0.0208566068127285  0.491127378969461 0.0139231021763989  0.491911340532775 0.00697127665354478  0.49269187 1.38777878078145e-017 
- 0.950938201119073 12 1 12
-7 0 0  7 8 2  0.4722801 0.85484443  0.466789500252486 0.854845331879234  0.461307614478533 0.854844788135968  0.4558372040934 0.854854296625448  0.45036014228203 0.854840336164391  0.444901618916856 0.854862492730337  0.439427352726877 0.854851909558305  0.43396218 0.85486888 
- 0.950938201119073 8 1 8
-7 0 0  11 42 5  0.45321307 0.30680907  0.453729790864326 0.30325473646253  0.454244312741397 0.299705515137932  0.454756671257376 0.296161176361939  0.455266841107241 0.292621911516964  0.455774963254162 0.289086759882457  0.456280887149921 0.285556776286988  0.456784807441019 0.28203062865387  0.4572866277577 0.278508993537445  0.457786431213128 0.274991307817124  0.458284218216135 0.271477578022367  0.459275813349804 0.264457674152131  0.459769620920646 0.260951503965957  0.460261460604498 0.257448971282021  0.46075135428148 0.253949932445049  0.461239323602217 0.250454244391026  0.461725389988911 0.246961764647602  0.462209574633848 0.24347235133332  0.462691898501022 0.239985863158712  0.463172382324756 0.236502159425124  0.463651046610616 0.233021100025678  0.465081641683601 0.222585436282666  0.466028174889952 0.215638344993907  0.466967673699282 0.208700154232853  0.467900301154371 0.201769723945616  0.468826203727843 0.194846021567394  0.469745546489084 0.187927857014599  0.470658477628715 0.181014149777405  0.471565134320155 0.17410388491043  0.472465677567411 0.167195850726739  0.473360239809705 0.160289033435849  0.475154366903634 0.146345993993304  0.476053709942175 0.139309780976316  0.476947143739439 0.132272513241352  0.47783481430802 0.125233036746644  0.478716865286771 0.118190196664911  0.479593438256426 0.111142834837518  0.480464672810608 0.104089789119832  0.48133070657936 0.0970298931024687  0.482191675287788 0.089961975545034  0.483047712859508 0.0828848594174753  0.483898951543211 0.0757973607092663 
- 0.8 12 0.825 10 0.85 10 0.9 10 0.950938201119073 12
-7 0 0  4 5 2  0.593687291780516 0.851774647070098  0.56211649610672 0.853976786248088  0.531587010329472 0.854551512833234  0.501840719572529 0.854839573814472  0.472280100000001 0.854844430000001 
- 0.8 5 0.950938201119073 5
-7 0 0  10 11 2  0.593687291780516 0.851774647070098  0.601211595549467 0.851249808726209  0.608508131880417 0.850666146028417  0.615646646265907 0.85001822246774  0.622692130963994 0.849299101164707  0.629708540557657 0.848500022217949  0.636761998014721 0.847609912997879  0.643924629484319 0.846614601458954  0.651279076737211 0.845495632753651  0.658925997187374 0.844228279713016  0.66699988 0.84277681 
- 0.30821290778553 11 0.4 11
-7 0 0  4 5 2  0.45321307 0.30680907  0.448101330665096 0.341970848641403  0.443257345042937 0.374038380578519  0.438345127130327 0.406167980874987  0.432258371063966 0.443982329876691 
- 0.30821290778553 5 0.4 5
-7 0 0  9 10 2  0.66699988 0.84277681  0.667938270303744 0.842608112356231  0.668872300236765 0.842438706496576  0.669802149862391 0.842268574349855  0.670727994846164 0.842097697836668  0.671650006719177 0.841926058852686  0.672568353123644 0.841753639252599  0.673483198042765 0.841580420834599  0.67439470201664 0.841406385325249  0.675303022345725 0.841231514364644 
- 0.4 10 0.412299566132293 10
-7 0 0  3 4 2  0.432258371063966 0.443982329876691  0.431409448239406 0.449256315496198  0.430570518843949 0.45443086372581  0.42973718 0.45953245 
- 0.4 4 0.412299566132293 4
-8 0.4 0.6
-7 0 0  10 38 5  0.38054399 0.71278377  0.381858843641531 0.707244910868633  0.383161939181277 0.701691661402556  0.384454033652945 0.69612141011009  0.385735881853231 0.690531463673992  0.38700818746178 0.684919258760369  0.388271651778481 0.679282156165054  0.389526960154723 0.673617502312056  0.390774762860894 0.667922713119528  0.392015716521283 0.662195096431368  0.39448519228334 0.650668866895156  0.395713713976883 0.64487025647532  0.396936661133765 0.639033439038814  0.398154640977216 0.633155790859591  0.399368296470634 0.627234417900331  0.400578208596298 0.621266657870917  0.401784966108566 0.615249726865773  0.402989206375491 0.609180510543193  0.404191476129224 0.603056273002096  0.406593290012002 0.590691501859338  0.407792833223947 0.584450972536027  0.408991595957577 0.57814929709361  0.410190167314135 0.571783360596611  0.411389135764613 0.56534996922178  0.412589088865184 0.558845851367277  0.413790616463853 0.552267640170009  0.414994314688262 0.545611851432073  0.416200788011688 0.538874870933102  0.4186205053619 0.525231059322123  0.419833750294925 0.518324223005699  0.421050986862503 0.511328752494501  0.422272857970793 0.504240638227735  0.423499938197085 0.497056192422785  0.424732955711649 0.4897707301368  0.42597247779148 0.482380432728587  0.427219236983064 0.474880411188326  0.428473898238721 0.467266082883004  0.42973718 0.45953245 
- 0.4 11 0.45 9 0.5 9 0.55 9 0.6 11
-7 0 0  10 11 2  0.8127628 0.80236953  0.799936179726446 0.806753591009002  0.80061344413641 0.806482847477998  0.745984146017852 0.824916631504725  0.806071456029577 0.804202975554392  0.708645458768151 0.836958406882081  0.76178471272223 0.818236151065207  0.712191139681367 0.834238558518749  0.709219946699497 0.833951908634456  0.691826391693781 0.838050414726336  0.675303022345724 0.841231514364644 
- 0.4 11 0.6 11
-8 0.6 0.8
-7 0 0  11 62 7  0.8127628 0.80236953  0.819083030051482 0.800209312944397  0.824584397565109 0.798329257858517  0.829445562917497 0.796668248546164  0.833786896900119 0.795185109054417  0.837697378361423 0.793849402293345  0.841244846510488 0.792637922889737  0.844482433986026 0.791532496496559  0.847452858149205 0.790518511793586  0.850190773558357 0.789584115767987  0.852724866178385 0.788719497290184  0.857433286845732 0.787113440171498  0.859607616120375 0.786372001109954  0.861626007278488 0.785683963082816  0.863507692821434 0.785042749126469  0.865268503568357 0.784442946093252  0.86692170866957 0.78388001729784  0.868478568577771 0.783350113369844  0.869948729417529 0.782849937348101  0.871340534025818 0.782376638302466  0.872661271670931 0.781927725926675  0.876429462484849 0.780647598493936  0.878682897768131 0.77988299168231  0.880728767533842 0.779189734564644  0.882604100030896 0.778555191878507  0.88433747882604 0.77796962214564  0.885951480769491 0.777425342416218  0.887465057686227 0.776915918607548  0.888893692154263 0.776436109728541  0.890250957487546 0.775981338021297  0.891548839707472 0.775547582639378  0.894047566459856 0.774714863201055  0.895248411867357 0.774315898862942  0.896411661609934 0.773930689893944  0.897547130578147 0.773555992426683  0.898664073824855 0.773188775165004  0.899771701534496 0.77282605164266  0.90087943547579 0.772464799246971  0.901997357831381 0.772101817371828  0.903136943785894 0.771733497299643  0.904311893314484 0.771355569215018  0.906153761120751 0.770766102529403  0.906780958326902 0.770565850991564  0.907423601108319 0.770361155164651  0.908084149864754 0.77015125627596  0.908765351629815 0.769935309333635  0.909470342799155 0.769712351469793  0.910202739131048 0.769481274584239  0.910966735827026 0.769240795155029  0.911767281775541 0.768989401158503  0.912610366862131 0.768725264253023  0.914396372400094 0.768167005113901  0.9153392941159 0.767872882484937  0.916339518393998 0.767561515403388  0.917405853686524 0.76723021983683  0.918548878454024 0.766875774116401  0.919781632347438 0.76649420870767  0.921120258801298 0.766080611074874  0.922585309614215 0.765628729070073  0.924203750723593 0.765130360979465  0.92601196270906 0.764574443830203  0.92806391 0.76394457 
- 0.6 12 0.625 10 0.65 10 0.7 10 0.75 10 0.775 10 0.8 12
-7 0 0  10 29 4  0.38054399 0.71278377  0.374842599920762 0.73680104141338  0.377238815242729 0.726081240886808  0.351930486502475 0.830311949321813  0.389443889885197 0.673060373518486  0.338750712896314 0.883157406931875  0.376227355771103 0.725974559689369  0.352922434730347 0.822150661176888  0.358653036166761 0.797357662882107  0.356105791221009 0.807130787936398  0.353632468729015 0.815852076064742  0.352515743588215 0.819763840887901  0.351505934501222 0.823276149890377  0.350590021416018 0.826438426490969  0.349754984281584 0.829300094111153  0.348987803045754 0.831910576168948  0.348275457657346 0.834319296085838  0.347604928064547 0.836575677280563  0.346963194215831 0.838729143173563  0.345085319747138 0.845029065206369  0.34373078705905 0.849457104657451  0.342472083641388 0.853552890340945  0.341398793778824 0.857075119692648  0.34049164039711 0.860101532784885  0.339622485059375 0.863028912320684  0.33855432797049 0.866573083640533  0.336941307972971 0.871768914716076  0.334328702550049 0.879970316154875  0.330152927823851 0.89285024119753 
- 0.6 11 0.65 9 0.7 9 0.8 11
-7 0 0  11 12 2  0.32546703 0.907144330000001  0.325898021911402 0.905843945630701  0.326328001858043 0.904543776591601  0.326756972783441 0.903243815638316  0.327184939223215 0.901944050577702  0.327611905626647 0.900644469422363  0.328037876135703 0.899345061068711  0.328462854709165 0.898045814915048  0.328886845248807 0.896746720473686  0.329309851661913 0.89544776717892  0.329731877874922 0.894148944345332  0.330152927823851 0.89285024119753 
- 0.2 12 0.214883998084454 12
-7 0 0  3 4 2  0.938183832958998 0.760874129742791  0.934774321696946 0.761896373944402  0.931401913716968 0.762919923083032  0.92806391 0.76394457 
- 0.2 4 0.214883998084454 4
-8 0 0.2
-7 0 0  9 18 3  0.29266018 1  0.294668145224848 0.994625237976582  0.296650976404109 0.989282746493952  0.298609114837995 0.983971403350465  0.300543063022448 0.978689902358005  0.302453183070055 0.973437293067843  0.304339952238217 0.968212299880731  0.306203750053424 0.963013885099063  0.308044978459857 0.957840935015388  0.311683052848662 0.947543822205248  0.313479898791562 0.942419659573335  0.315254934744575 0.937318812545983  0.317008548553221 0.932240158171779  0.318741036354825 0.927182823483997  0.320452837866402 0.922145488414491  0.322144201649125 0.917127372871065  0.323815499644607 0.912127310817357  0.32546703 0.90714433 
- 0 10 0.1 8 0.2 10
-7 0 0  4 5 2  1.00922414 0.74147285  0.989425757284546 0.74632170688145  0.971219550891217 0.751216057882008  0.954218158149659 0.756066697036722  0.938183832958998 0.760874129742791 
- 0 5 0.2 5
-8 1.00922414 1.18410863
-7 0 0  9 26 4  1.00922414 0.74147285  1.01408204262137 0.741472850000007  1.01893991725357 0.741472849999973  1.02379789700094 0.741472850000054  1.02865568399904 0.741472849999932  1.03351369698859 0.741472850000059  1.03837153130044 0.741472849999964  1.04322945942915 0.741472850000014  1.04808735750741 0.741472849999997  1.05780316265395 0.741472850000001  1.06266106522385 0.741472849999994  1.06751896779078 0.741472850000018  1.07237687035488 0.741472849999968  1.07723477291685 0.741472850000039  1.08209267547655 0.741472849999968  1.08695057803479 0.741472850000017  1.09180848059155 0.741472849999996  1.10638218825893 0.741472850000005  1.11609799416097 0.741472849999982  1.12581379732145 0.741472850000037  1.13552960307218 0.741472849999943  1.14524541019272 0.741472850000066  1.15496121435441 0.741472849999946  1.16467701682554 0.741472850000029  1.17439282483558 0.741472849999991  1.18410863 0.74147285 
- 1.00922414 10 1.0529452625 8 1.096666385 8 1.18410863 10
-8 1.00922414 1.18410863
-7 0 0  9 26 4  1.00922414 0.74147285  1.01408204262138 0.741472850000004  1.01893991725356 0.741472849999982  1.02379789700094 0.741472850000037  1.02865568399905 0.741472849999951  1.03351369698859 0.741472850000045  1.03837153130042 0.741472849999971  1.04322945942916 0.741472850000011  1.04808735750741 0.741472849999998  1.05780316265395 0.741472849999998  1.06266106522389 0.741472850000014  1.06751896779066 0.741472849999965  1.07237687035506 0.741472850000056  1.07723477291666 0.741472849999939  1.0820926754767 0.741472850000044  1.08695057803472 0.741472849999981  1.09180848059156 0.741472850000003  1.10638218825892 0.741472849999996  1.11609799416097 0.741472850000007  1.12581379732147 0.741472849999992  1.13552960307215 0.741472850000007  1.14524541019274 0.741472849999994  1.1549612143544 0.741472850000004  1.16467701682554 0.741472849999998  1.17439282483558 0.74147285  1.18410863 0.74147285 
- 1.00922414 10 1.0529452625 8 1.096666385 8 1.18410863 10
-8 0 0.25852715
-7 0 0  5 6 2  0 0  0.311126674396231 0  0.622253201920746 0  0.933380364971317 0  1.24450640850895 0  1.5556334 0 
- 0 6 0.25852715 6
-8 0 0.25852715
-7 0 0  9 34 5  1.18410863 1  1.18410863 0.985637380555556  1.18410862999999 0.971274751719565  1.18410863000001 0.956912139516071  1.18410862999998 0.942549514730978  1.18410863000002 0.928186892306275  1.18410862999999 0.913824278003367  1.18410863000001 0.899461656095281  1.18410863 0.885099038190717  1.18410863 0.863555110367713  1.18410862999999 0.856373801131478  1.18410863000002 0.849192491918724  1.18410862999997 0.842011182714583  1.18410863000003 0.834829873504627  1.18410862999998 0.827648564273864  1.18410863000001 0.820467255007849  1.18410863 0.813285945691731  1.18410863 0.802513981620461  1.18410863000002 0.79892332689718  1.18410862999996 0.795332672140347  1.18410863000004 0.79174201734918  1.18410862999997 0.788151362523099  1.18410863000002 0.784560707661195  1.18410862999999 0.780970052762942  1.18410863 0.777379397827496  1.18410862999999 0.770198087880887  1.18410863000004 0.766607430411617  1.18410862999991 0.763016789445456  1.18410863000014 0.759426098306542  1.18410862999986 0.755835494828376  1.1841086300001 0.752244800439501  1.18410862999996 0.748654153268587  1.18410863000001 0.745063506584214  1.18410863 0.74147285 
- 0 10 0.129263575 8 0.1938953625 8 0.22621125625 8 0.25852715 10
-8 0 1.18410863
-7 0 0  8 9 2  0 0  0.371269587115106 0  0.742539179280128 0  1.1138087782994 0  1.48507836667744 0  1.85634795748295 0  2.22761755620468 0  2.59888714994868 0  2.97015674 0 
- 0 9 1.18410863 9
-8 0 1.18410863
-7 0 0  1 2 2  0 1  1.18410863 1 
- 0 2 1.18410863 2
-8 0.84752031 1
-7 0 0  11 22 3  0 1  0 0.993069104406396  0 0.986138208849539  0 0.979207313332654  0 0.972276417858363  0 0.965345522430293  0 0.958414627050844  0 0.951483731723526  0 0.944552836451119  0 0.937621941236727  0 0.930691046083379  0 0.916829255904823  0 0.909898361518517  0 0.902967460911541  0 0.896036589709656  0 0.889105631219491  0 0.882174852971717  0 0.875243805133201  0 0.868313052649494  0 0.861382067381547  0 0.85445120504469  0 0.84752031 
- 0.84752031 12 0.923760155 10 1 12
-8 0.84752031 1
-7 0 0  9 26 4  3.42297087 0  3.39397456123907 0  3.36497825252016 0  3.33598194383491 0  3.3069856351764 0  3.27798932653539 0  3.24899301790543 0  3.21999670927749 0  3.1910004006444 0  3.14750593767475 0  3.13300778336002 0  3.11850962905526 0  3.10401147476118 0  3.08951332047997 0  3.07501516621183 0  3.06051701195894 0  3.04601885772198 0  3.01702254928302 0  3.00252439259124 0  2.98802625260231 0  2.97352806201412 0  2.95902995975216 0  2.94453176638976 0  2.9300336198709 0  2.91553547426346 0  2.90103732 0 
- 0.84752031 10 0.923760155 8 0.9618800775 8 1 10
-8 0 0.41008236
-7 0 0  11 12 2  0 0.84752031  0.0372802149724388 0.847520309999987  0.0745604094268512 0.847520310000054  0.111840727592314 0.847520309999866  0.149120648933534 0.847520310000239  0.186401419070602 0.84752030999968  0.223680885866641 0.847520310000326  0.260961831183704 0.847520309999749  0.298241532177005 0.847520310000144  0.335521998090816 0.847520309999941  0.372802137083162 0.847520310000014  0.41008236 0.84752031 
- 0 12 0.41008236 12
-8 0 0.41008236
-7 0 0  11 12 2  0 0.84752031  0.0372802149724377 0.847520310000014  0.0745604094268389 0.847520309999941  0.111840727592367 0.847520310000144  0.14912064893342 0.847520309999749  0.186401419070743 0.847520310000326  0.223680885866531 0.84752030999968  0.260961831183748 0.847520310000239  0.298241532177001 0.847520309999866  0.335521998090812 0.847520310000054  0.372802137083161 0.847520309999987  0.41008236 0.84752031 
- 0 12 0.41008236 12
-8 0.15247929 0.84752031
-7 0 0  11 32 4  0 0.847520310000001  0 0.815927538358542  0 0.784334734909756  0 0.752742051420888  0 0.721149143880304  0 0.689556481526776  0 0.657963671185674  0 0.626370880620017  0 0.594778134932641  0 0.563185351384169  0 0.531592577823446  0 0.484203415523367  0 0.468407028049005  0 0.452610640749739  0 0.43681425377191  0 0.421017867189485  0 0.405221481008008  0 0.389425095159994  0 0.373628709509155  0 0.357832323847323  0 0.342035937896227  0 0.310443164717159  0 0.294646776405038  0 0.278850391159865  0 0.263054004525883  0 0.247257614923636  0 0.231461225388395  0 0.215664839606931  0 0.199868456917252  0 0.184072070955527  0 0.168275676615318  0 0.15247929 
- 0.15247929 12 0.4999998 10 0.673760055 10 0.84752031 12
-8 0.15247929 0.84752031
-7 0 0  9 34 5  2.90103732 0  2.83495106794814 0  2.76886480826467 0  2.70277854943329 0  2.63669233638168 0  2.57060603185903 0  2.50451982218345 0  2.43843355289609 0  2.37234730226667 0  2.24017479459073 0  2.17408854063064 0  2.10800228656112 0  2.04191603239451 0  1.97582977814386 0  1.90974352382117 0  1.84365726943959 0  1.77757101501133 0  1.64539850608703 0  1.57931225167175 0  1.51322599731703 0  1.44713974303517 0  1.38105348884079 0  1.31496723474567 0  1.24888098076422 0  1.18279472690899 0  1.05062221947805 0  0.984535969644205 0  0.91844969428098 0  0.852363496377609 0  0.786277163154294 0  0.720190969031909 0  0.654104703164648 0  0.58801843539655 0  0.52193218 0 
- 0.15247929 10 0.326239545 8 0.4999998 8 0.673760055 8 0.84752031 10
-8 0 0.41008734
-7 0 0  5 6 2  0.41008734 0.15247929  0.328069871407767 0.15247929  0.246052404373543 0.15247929  0.164034933809258 0.152479289999999  0.082017469374599 0.15247929  0 0.15247929 
- 0 6 0.41008734 6
-8 0 0.41008734
-7 0 0  5 6 2  0.41008734 0.15247929  0.328069871407767 0.15247929  0.246052404373544 0.152479289999999  0.164034933809258 0.15247929  0.0820174693745991 0.15247929  -2.77555756156289e-017 0.15247929 
- 0 6 0.41008734 6
-7 0 0  9 26 4  0.41008734 0.15247929  0.410021345790742 0.152760187178713  0.409970096044097 0.153052251782977  0.409934050632413 0.153355322079789  0.409913622824187 0.153669201938993  0.409909182253005 0.153993618839877  0.409921037241531 0.154328275415787  0.409949439927267 0.154672798637842  0.40999457376101 0.155026778604441  0.410118535029869 0.155752726977817  0.410197362436128 0.156124695516046  0.410293151992492 0.156505197150426  0.410405950164464 0.156893723225939  0.410535731210226 0.157289721231675  0.410682395498354 0.157692599220996  0.410845769438848 0.158101731108935  0.411025607026243 0.158516462846037  0.411328037055361 0.159164043715956  0.411439244559788 0.159393420689383  0.411555165019092 0.159624142260701  0.411675741895178 0.159856098436327  0.4118009127671 0.160089177697258  0.411930609526628 0.160323267337522  0.412064758604308 0.160558253801764  0.412203281225999 0.16079402302196  0.412346093699899 0.161030460753262 
- 0 10 0.125 8 0.25 8 0.317890101713215 10
-7 0 0  4 5 2  0 55.09513178  0.05835199350951 55.0943239795164  0.135344794742906 55.0971578697083  0.254368086645081 55.1059530172545  0.39369133 55.11954557 
- 0 5 0.317890101713215 5
-7 0 0  9 18 3  0.412346093699899 0.161030460753262  0.412466229119535 0.161229354766455  0.412589400192579 0.161428721842103  0.412715557099722 0.161628493973553  0.412844647559141 0.161828603065609  0.412976616947409 0.162028981076  0.413111408431197 0.162229560156546  0.413248963109793 0.162430272794013  0.413389220168411 0.162631051950658  0.413844884351858 0.163271289292823  0.414170298049521 0.163710747711571  0.41450770251876 0.16414951043323  0.414856399763867 0.164586893175792  0.41521566204383 0.165022235230671  0.415584735166873 0.165454899969593  0.415962847612104 0.165884280582411  0.416349223468138 0.16630980929328  0.41674308 0.16673095 
- 0.317890101713215 10 0.375 8 0.5 10
-7 0 0  3 4 2  0.39369133 55.11954557  0.500110251989145 55.1299279316035  0.620085977754412 55.1433938928359  0.744100615116397 55.1587559264803 
- 0.317890101713215 4 0.5 4
-7 0 0  11 12 2  0.86723898 55.17442391  0.855761851301078 55.1729268433062  0.844341433589788 55.1714443389572  0.832977264819737 55.1699763370424  0.821669975345255 55.1685229186213  0.810419078858408 55.1670840216664  0.799224471177881 55.1656596326067  0.788086599460285 55.1642498085906  0.777005477246084 55.1628545514222  0.765980596940289 55.1614737962571  0.755012330890908 55.1601075906742  0.744100615116397 55.1587559264802 
- 0.5 12 0.559785527676533 12
-7 0 0  4 5 2  0.418581908921481 0.16842585654686  0.418074205511971 0.168029849638425  0.417601107703569 0.167609834589518  0.417159600579378 0.1671763236143  0.41674308 0.16673095 
- 0.5 5 0.559785527676533 5
-8 0.25 0.5
-7 0 0  11 12 2  0.93354024 55.18312422  0.92603097290166 55.1821352561468  0.918818039010463 55.1811858920062  0.911901751831456 55.1802761686374  0.905280953854896 55.1794059345418  0.89895841584889 55.1785755521431  0.892929391683737 55.1777844009748  0.887199967007804 55.1770332762774  0.881764261508744 55.1763214098963  0.876626507672835 55.1756493545654  0.871784490104115 55.1750168210419  0.86723898 55.17442391 
- 0.25 12 0.5 12
-7 0 0  4 5 2  0.419693477235591 0.169203422685851  0.419332683718347 0.168979420400613  0.419031873479082 0.168768746087214  0.418782984576078 0.168582694863971  0.418581908921481 0.16842585654686 
- 0.25 5 0.5 5
-8 0 0.25
-7 0 0  11 12 2  1 55.19186736  0.993958206427339 55.1910725294581  0.987915788578306 55.190277616789  0.981876321463449 55.1894830923061  0.975829693171504 55.1886876257291  0.969794615493756 55.1878936787005  0.963746286601417 55.1870979884037  0.957708965631414 55.1863037462515  0.951665099460813 55.1855086430548  0.945623897422081 55.1847138903274  0.939582030981543 55.1839190502016  0.93354024 55.18312422 
- 0 12 0.25 12
-7 0 0  3 4 2  0.42090498 0.16985645  0.42048374492839 0.169663059904517  0.420080541694459 0.169443735549516  0.419693477235591 0.169203422685851 
- 0 4 0.25 4
-8 0.8 1
-7 0 0  10 29 4  2.54253999 0.84589577  2.54179279180027 0.850535209335359  2.54105836540743 0.855115895464505  2.54033641425725 0.859639557431345  2.5396266541985 0.864107864034413  2.53892881234366 0.868522430782738  2.53824262661508 0.872884822414279  2.53756784564881 0.877196553218039  2.53690422868161 0.881459087388566  2.53625154509632 0.885673841656686  2.53496760139647 0.894010543193322  2.53433634130445 0.898132490310909  2.5337155698136 0.902209420133409  2.53310507467794 0.906242666295107  2.53250465225548 0.910233524495259  2.53191410669731 0.914183257637844  2.53133324996675 0.918093095597134  2.5307619020469 0.92196423387365  2.53019989066188 0.925797835413837  2.52854136829337 0.937189448747403  2.52747236931527 0.944638267964325  2.52643872864698 0.951950592643216  2.52543923164934 0.959135096439069  2.52447277673131 0.966199993713758  2.52353834175023 0.973153305488493  2.52263501830184 0.980002586490149  2.52176196015315 0.986755347702323  2.52091841988631 0.993418778033492  2.52010372 1 
- 0.8 11 0.85 9 0.9 9 1 11
-7 0 0  4 5 2  0.484640253200537 0.194861846390272  0.46419871559807 0.188422276517317  0.447848165577824 0.182179163959945  0.433597967261165 0.176047855774695  0.42090498 0.16985645 
- 0.8 5 1 5
-7 0 0  11 22 3  2.56182051530947 0.730892495636628  2.56129854269883 0.733910056171408  2.56077982915707 0.736913172694053  2.56026438467347 0.739901788249163  2.55975221908612 0.742875846557381  2.55924334207736 0.745835292040886  2.55873776317611 0.748780069809206  2.55823549177663 0.751710125550935  2.55773653717866 0.754625405303879  2.5572409086226 0.757525855255826  2.55674861520181 0.760411422250686  2.55487579569093 0.771406783507642  2.55351871216566 0.779411878898473  2.55218860480064 0.787296229601509  2.55088570782835 0.795058436741985  2.54961007982496 0.802698156072551  2.54836211449223 0.810212987148063  2.54714168751533 0.817603667007413  2.54594920491214 0.824867688439523  2.54478464575289 0.83200512874535  2.54364820651605 0.839014725092356  2.54253999 0.84589577 
- 0.664667925968128 12 0.7 10 0.8 12
-7 0 0  3 4 2  0.53782595 0.20914955  0.517283185420326 0.204470912379206  0.499684644605854 0.199601187017902  0.484640253200537 0.194861846390272 
- 0.664667925968128 4 0.8 4
-7 0 0  11 12 2  2.57291933 0.66753805  2.57185773834826 0.673528376162893  2.57080645558847 0.67947371196638  2.56976555842203 0.685373636817168  2.56873511522454 0.691227775326542  2.56771519806255 0.697035729092691  2.56670587701709 0.702797108997507  2.56570721918325 0.708511540840756  2.56471929035878 0.714178655708386  2.56374215509124 0.719798089734369  2.56277587632541 0.725369486115831  2.56182051530947 0.730892495636628 
- 0.6 12 0.664667925968128 12
-7 0 0  3 4 2  0.569295382630129 0.215719216039619  0.558124218293994 0.213575572864934  0.547642233288241 0.21138521953766  0.53782595 0.20914955 
- 0.6 4 0.664667925968128 4
-7 0 0  10 11 2  0.569295382630129 0.215719216039619  0.582236061809498 0.21820241275609  0.595799938013076 0.220627270377371  0.609986664835455 0.222993645364223  0.624795819260835 0.225301401204649  0.640226902854916 0.22755040865478  0.656279341254303 0.229740545686536  0.672952483083518 0.231871697328995  0.690245599427379 0.233943755590184  0.708157884991659 0.235956619646429  0.726688462077035 0.237910196485819 
- 0.550748293513788 11 0.747780415043284 11
-7 0 0  3 4 2  2.57291933 0.66753805  2.58794957857627 0.582725665799181  2.60537850840012 0.487626081264505  2.62565605 0.38838725 
- 0.550748293513788 4 0.747780415043284 4
-7 0 0  10 29 4  0.726688462077035 0.237910196485819  0.726897210730903 0.237932203708453  0.727106037847384 0.237954203407403  0.727314943425224 0.237976195582536  0.727523927463166 0.237998180233719  0.727732989959954 0.23802015736082  0.72794213091433 0.238042126963705  0.728151350325033 0.238064089042244  0.728360648190804 0.238086043596302  0.728570024510381 0.238107990625748  0.740575309145083 0.239365493598966  0.752619958440018 0.240577191715929  0.764913196168762 0.241765000357371  0.77745480344161 0.24292889879119  0.790244487490752 0.244068861789236  0.803282039616639 0.24518487427924  0.816567140917062 0.246276913118901  0.830099527676631 0.247344962796845  0.84387889237424 0.248389005906655  0.86173823708523 0.249687798815237  0.865589973020326 0.249964776150744  0.869460126966472 0.250239958918018  0.873348692475899 0.250513346807977  0.877255663037762 0.250784939518383  0.88118103209001 0.251054736754427  0.885124793012042 0.251322738228362  0.889086939117603 0.251588943659145  0.893067463651521 0.251853352772281  0.897066359789266 0.252115965299792 
- 0.747780415043284 11 0.75 9 0.875 9 0.909162471422618 11
-7 0 0  3 4 2  2.62565605 0.38838725  2.64226466480508 0.307104226455839  2.66083027560171 0.222994549808893  2.6820843 0.13957584 
- 0.747780415043284 4 0.909162471422618 4
-8 0 0.2
-7 0 0  8 23 4  2.72079289 0  2.7183319724904 0.00811253117801628  2.71587815716197 0.0163085346106228  2.71343112298143 0.0245889827857283  2.71099063771137 0.0329545849415767  2.70855633696646 0.0414065316366137  2.70612800204665 0.0499455547115631  2.70370531353511 0.0585727629439577  2.70007934303179 0.0716473254264106  2.69887203033031 0.0760278029694986  2.69766602546172 0.0804307015271723  2.69646129329963 0.0848561499656131  2.69525779934673 0.0893042770547248  2.69405550919449 0.0937752134714036  2.69285438797794 0.0982690938027341  2.69045441169143 0.107303023295728  2.68925555579495 0.111843075667666  2.68805780269671 0.11640633187481  2.68686111158898 0.120992953586234  2.68566544895462 0.125603076983201  2.68447078362425 0.130236831538155  2.68327707859496 0.134894371116535  2.6820843 0.13957584 
- 0 9 0.1 7 0.15 7 0.2 9
-7 0 0  4 5 2  1.00922544 0.25852666  0.981420455807856 0.257150663090619  0.953452536922146 0.255639042707618  0.925336860032921 0.253972524526952  0.897066359789266 0.252115965299792 
- 0 5 0.2 5
-8 1.00922544 1.18410863
-7 0 0  10 20 3  1.18410863 0.25852666  1.17536447044898 0.258526660000002  1.16662030599648 0.258526659999992  1.15787615350554 0.258526660000019  1.14913199280541 0.258526659999969  1.14038782892639 0.258526660000037  1.13164367163173 0.258526659999968  1.12289951559045 0.258526660000019  1.11415535250283 0.258526659999993  1.1054111943689 0.258526660000002  1.08792287573986 0.258526659999999  1.07917871970279 0.258526660000007  1.07043454012966 0.258526659999984  1.06169044079557 0.258526660000026  1.05294617184267 0.258526659999971  1.04420214643111 0.258526660000023  1.03545787594513 0.258526659999988  1.02671377676156 0.258526660000004  1.01796959944013 0.258526659999999  1.00922544 0.25852666 
- 1.00922544 11 1.096667035 9 1.18410863 11
-8 1.00922544 1.18410863
-7 0 0  10 20 3  1.18410863 0.25852666  1.17536447044898 0.258526659999999  1.16662030599648 0.258526660000004  1.15787615350558 0.258526659999988  1.14913199280531 0.258526660000023  1.14038782892653 0.258526659999971  1.13164367163159 0.258526660000026  1.12289951559053 0.258526659999984  1.11415535250281 0.258526660000007  1.1054111943689 0.258526659999999  1.08792287573986 0.258526660000002  1.07917871970275 0.258526659999993  1.07043454012976 0.258526660000019  1.06169044079538 0.258526659999968  1.05294617184292 0.258526660000037  1.04420214643089 0.258526659999969  1.03545787594526 0.258526660000019  1.0267137767615 0.258526659999992  1.01796959944014 0.258526660000002  1.00922544 0.25852666 
- 1.00922544 11 1.096667035 9 1.18410863 11
-8 0.5 0.74147334
-7 0 0  9 34 5  1.18410863 0.25852666  1.18410862999999 0.271941851633635  1.18410863000003 0.285357040940475  1.18410862999995 0.298772228326612  1.18410863000007 0.312187414198338  1.18410862999994 0.325602598961624  1.18410863000004 0.339017783022826  1.18410862999998 0.35243296678795  1.18410863 0.365848150663242  1.18410863 0.385970927250619  1.18410862999999 0.392678519425328  1.18410863000001 0.399386111595992  1.18410863 0.406093703779739  1.18410862999999 0.412801295993526  1.18410863000002 0.419508888254556  1.18410862999999 0.426216480579753  1.18410863000001 0.432924072986291  1.18410862999999 0.442985461743612  1.18410863000003 0.446339258015292  1.18410862999994 0.449693054307884  1.18410863000009 0.4530468506233  1.1841086299999 0.456400646963006  1.18410863000007 0.459754443329086  1.18410862999996 0.463108239722974  1.18410863000001 0.466462036146624  1.18410862999999 0.473169629056732  1.18410863000004 0.47652351425593  1.18410862999992 0.479876804193706  1.18410863000012 0.483231899432756  1.18410862999987 0.486583844621953  1.1841086300001 0.48993903851969  1.18410862999995 0.493292562835508  1.18410863000001 0.4966460536118  1.18410863 0.49999985 
- 0.5 10 0.62073667 8 0.681105005 8 0.7112891725 8 0.74147334 10
-8 0.5 0.74147334
-7 0 0  11 32 4  1.4508111 0  1.41783813714872 0  1.38486515974655 0  1.35189216046134 0  1.31891923555563 0  1.28594619229624 0  1.25297327364433 0  1.22000025997118 0  1.18702729810195 0  1.15405431587567 0  1.12108133789871 0  1.05513537959425 0  1.02216239982497 0  0.989189419406406 0  0.956216438403269 0  0.92324345694558 0  0.890270475197337 0  0.85729749332389 0  0.824324511461846 0  0.791351529685517 0  0.758378547976952 0  0.659459602625368 0  0.593513638623584 0  0.52756767640179 0  0.461621711902032 0  0.395675747613401 0  0.329729787560796 0  0.263783831111237 0  0.197837873664426 0  0.131891913677626 0  0.065945956889569 0  0 0 
- 0.5 12 0.560368335 10 0.62073667 10 0.74147334 12
-8 0.25852715 0.5
-7 0 0  5 6 2  1.5556334 0  1.84623598140308 0  2.1368383276968 0  2.42744107994131 0  2.71804353902199 0  3.00864606 0 
- 0.25852715 6 0.5 6
-8 0.25852715 0.5
-7 0 0  9 34 5  1.18410863 0.74147285  1.18410863 0.72805769669167  1.18410863000001 0.714642529667241  1.18410862999998 0.701227364318415  1.18410863000003 0.687812205631773  1.18410862999998 0.674397051861455  1.18410863000001 0.660981898201875  1.18410863 0.647566740460332  1.18410863 0.634151578729775  1.18410863 0.614028842227237  1.18410862999999 0.607321263444672  1.18410863000001 0.600613684695745  1.18410862999998 0.593906105962522  1.18410863000002 0.587198527227005  1.18410862999998 0.580490948471253  1.18410863000002 0.573783369677305  1.18410862999999 0.567075790827178  1.18410863000001 0.557014422440808  1.18410862999994 0.553660632951267  1.18410863000014 0.550306843440955  1.18410862999979 0.546953053916342  1.18410863000021 0.543599264384185  1.18410862999986 0.540245474850918  1.18410863000006 0.536891685323229  1.18410862999999 0.533537895807669  1.18410863 0.526830316814005  1.18410863000001 0.523476616055325  1.18410862999996 0.520122320011292  1.18410863000006 0.516769829284679  1.18410862999994 0.513414188569352  1.18410863000004 0.510061796340561  1.18410862999998 0.506707734837085  1.18410863000001 0.503353639583496  1.18410863 0.49999985 
- 0.25852715 10 0.379263575 8 0.4396317875 8 0.46981589375 8 0.5 10
-8 0.8 1
-7 0 0  9 18 3  0.12786832 2.68510674  0.120296116125506 2.6870605838962  0.112782478520506 2.68901807649004  0.105327592934346 2.69097916876426  0.0979309038932307 2.69294400657431  0.0905932999244442 2.69491235601499  0.0833138195878083 2.6968844699046  0.0760930998017088 2.6988601811754  0.0689308639012173 2.70083956200524  0.0547234529473224 2.70480563948981  0.0476782758882974 2.70679233649938  0.0406916116836793 2.70878269631196  0.0337634606973503 2.71077671860483  0.0268938103821156 2.71277440709736  0.0200826432392625 2.71477576713099  0.0133299541017127 2.71678080036226  0.00663574926620494 2.71878950499734  -3.46944695195361e-018 2.72080189 
- 0.8 10 0.9 8 1 10
-7 0 0  4 5 2  0.905948157513261 0.747319411003955  0.931926140519115 0.745645249624567  0.957840659308173 0.74412544950758  0.983637378291133 0.742738973109192  1.00922414 0.74147285 
- 0.8 5 1 5
-7 0 0  9 50 7  0.28937250360486 2.64669271659733  0.288433480023675 2.64689979379268  0.287495315059453 2.64710686477944  0.286558007709503 2.64731392977154  0.285621556977604 2.64752098898201  0.284685961885107 2.64772804262055  0.283751221482169 2.64793509089104  0.282817334850416 2.64814213399087  0.28188430107858 2.64834917211624  0.277301442062136 2.64936700427958  0.273663832018681 2.65017772967108  0.270039235060847 2.65098839327797  0.266427584680414 2.65179900966346  0.262828824846192 2.65260959116343  0.259242906947756 2.65342014855875  0.255669777632186 2.65423069380486  0.252109374476999 2.65504124100484  0.245013918420006 2.65666236268298  0.241478864680711 2.65747293735042  0.237956431623724 2.65828353807226  0.234446560043 2.65909417857043  0.23094921279635 2.65990486744782  0.227464326926774 2.66071561948829  0.223991832419661 2.66152645128557  0.220531709681057 2.66233736772409  0.213636065795149 2.66395940396049  0.210200548677308 2.6647705228192  0.206777286643296 2.66558175447877  0.203366229034148 2.66639311134463  0.199967324873323 2.66720460602088  0.196580523466868 2.66801625117071  0.193205775003468 2.66882805936825  0.189843031154652 2.66964004295897  0.183141460195026 2.67126438486759  0.179802632011699 2.67207674343925  0.176475712807636 2.67288930211231  0.17316065639006 2.67370207289807  0.169857402831587 2.67451507145407  0.166565916660859 2.67532830746421  0.163286167050771 2.67614178952281  0.160018078253904 2.6769555375681  0.153505159405941 2.6785835837536  0.150260326238464 2.67939788267574  0.147027080148899 2.68021246834134  0.143805364151188 2.68102735643053  0.140595151471733 2.68184255486759  0.13739638613984 2.68265807929089  0.134209004908092 2.68347394740962  0.131033007453919 2.68429016076603  0.12786832 2.68510674 
- 0.668616376685245 10 0.675 8 0.7 8 0.725 8 0.75 8 0.775 8 0.8 10
-7 0 0  4 5 2  0.79063868 0.75601331  0.819754263988397 0.753454178688467  0.848684846305856 0.751191630102131  0.877419247037757 0.749157967912063  0.905948157513261 0.747319411003955 
- 0.668616376685245 5 0.8 5
-7 0 0  9 10 2  0.79063868 0.75601331  0.783318512686967 0.756656720930977  0.776141293526371 0.757300655569526  0.769101919751214 0.757945364738127  0.762195565810469 0.758591093561238  0.755417656616066 0.759238082656639  0.748763846774954 0.759886568975609  0.742230003867887 0.76053678643106  0.735812193839944 0.761188966456727  0.729506666565393 0.76184333863788 
- 0.5 10 0.553192694020208 10
-7 0 0  3 4 2  0.28937250360486 2.64669271659733  0.322170685650815 2.63945993172711  0.35360688034215 2.63281978228129  0.38388975 2.6266127 
- 0.5 4 0.553192694020208 4
-7 0 0  9 26 4  0.729506666565393 0.76184333863788  0.728403367084342 0.76195783635654  0.727303505216937 0.762072401189546  0.726207060874012 0.76218703436677  0.725114014138807 0.762301737116354  0.724024345264592 0.762416510664806  0.722938034672307 0.762531356237115  0.721855062948198 0.762646275056851  0.72077541084143 0.762761268346282  0.712471191833672 0.763649043335999  0.705392154984034 0.764425162628197  0.69845618062134 0.765205063518305  0.69165777659207 0.765989117791098  0.684991858114125 0.766777683595265  0.678453475391214 0.767571134852811  0.67203804172864 0.768369834119328  0.665741146905031 0.769174152282425  0.648357320925121 0.771452551152456  0.637531404806373 0.772940308285088  0.627055979548052 0.774449952360412  0.616908464451982 0.775983739629034  0.607068236131674 0.777543986316236  0.5975163520128 0.77913309070396  0.588235325597114 0.780753556175548  0.579208939777134 0.782408016400612  0.570422084485564 0.784099263837749 
- 0.553192694020208 10 0.5625 8 0.625 8 0.738235102006945 10
-7 0 0  4 5 2  0.38388975 2.6266127  0.462898934579973 2.61041817491542  0.534912783272737 2.5968765412288  0.601873284806845 2.58460528120047  0.665345 2.57334584 
- 0.553192694020208 5 0.738235102006945 5
-8 0.2 0.4
-7 0 0  11 52 6  0.83003831 2.54514399  0.82843902301987 2.54540503605748  0.82683161700297 2.54566778222135  0.8252161212768 2.54593222422928  0.823592587631116 2.54619835410353  0.821961067848465 2.54646616384764  0.820321606962792 2.54673564652308  0.818674246269178 2.54700679579572  0.817019030145024 2.54727960477042  0.815356010698591 2.54755406527355  0.813685244305484 2.54783016838652  0.810328303806228 2.54838564629802  0.808642133427752 2.5486650204806  0.806948304996186 2.54894602330666  0.805246872447545 2.54922864619126  0.803537891293141 2.54951288026393  0.80182141458082 2.54979871701909  0.800097493089005 2.55008614831429  0.798366177705625 2.55037516594159  0.796627521990409 2.55066576123644  0.794881582867196 2.5509579249335  0.789622086588141 2.55183909324844  0.786086848007467 2.55243277551041  0.782523141569377 2.55303262272643  0.778931426064053 2.55363855947842  0.775312170219339 2.5542505082034  0.771665850055883 2.55486838963801  0.767992950070324 2.55549212261369  0.76429396574535 2.55612162363564  0.760569404872093 2.55675680665855  0.756819785186772 2.55739758348498  0.749271466428959 2.55869014693777  0.745472769696304 2.55934193316301  0.741650053405061 2.55999913523653  0.737803856975803 2.56066166031191  0.733934717752373 2.56132941548287  0.730043178072679 2.56200230653789  0.72612979442461 2.56268023638411  0.722195135112595 2.56336310542738  0.718239768028174 2.56405081373324  0.714264255212641 2.56474326195412  0.70627411693695 2.56613742916601  0.702259487029802 2.56683914894871  0.698225952224782 2.56754538860821  0.694173668876899 2.56825611949051  0.690104463945428 2.56897101831363  0.686016673181299 2.56969037608521  0.681913730872843 2.57041358567125  0.677793715729296 2.57114098274264  0.673658834395407 2.5718721753282  0.669508991881257 2.5726071767445  0.665345 2.57334584 
- 0.2 12 0.225 10 0.25 10 0.3 10 0.35 10 0.4 12
-7 0 0  4 5 2  0.491680637984723 0.802993637520819  0.50740408077076 0.798283473309672  0.525886299012917 0.793365251561515  0.547107455425676 0.788586740339516  0.570422084485564 0.784099263837749 
- 0.2 5 0.4 5
-8 0 0.2
-7 0 0  9 18 3  1 2.52012912  0.992061759955903 2.52111220521841  0.983998400361719 2.52213833073325  0.975798143574128 2.52320858112978  0.967448892928555 2.52432421282793  0.958938123449775 2.52548665993822  0.950252762662118 2.52669754423127  0.941379061498422 2.52795868922292  0.93230245530956 2.5292721383743  0.913712374634653 2.53200821643757  0.904198905732437 2.53343084441518  0.89445142207234 2.53491035588156  0.884453613375276 2.53644924923614  0.874187402665746 2.53805038980275  0.863634446675219 2.53971677291974  0.852773682885322 2.54145191414789  0.841583139101652 2.54325956763946  0.83003831 2.54514399 
- 0 10 0.1 8 0.2 10
-7 0 0  4 5 2  0.42089936 0.83014305  0.43467823182042 0.82342175586927  0.450323307798048 0.816724098565623  0.468464039837767 0.809948475032199  0.491680637984723 0.802993637520819 
- 0 5 0.2 5
-8 0.75 1
-7 0 0  8 16 3  0.06616403 55.20420903  0.0620287704289727 55.2047535559312  0.0578936326526455 55.2052980659253  0.0537582084127802 55.2058426137422  0.0496229962481993 55.2063871337338  0.0454878416518414 55.2069316462462  0.0413524855895481 55.2074761853883  0.037217265770299 55.2080207066913  0.0289467643450649 55.209109757635  0.024811578207446 55.2096542747054  0.0206760152713119 55.2101988414913  0.0165414778155853 55.2107432733475  0.0124053035696455 55.2112879208315  0.00827078401609165 55.2118323505318  0.00413524394440041 55.2123769147119  0 55.21292144 
- 0.75 9 0.875 7 1 9
-7 0 0  3 4 2  0.419704598752335 0.830807056488716  0.420085024692346 0.830561730595137  0.420480012145971 0.830335578946966  0.42089936 0.83014305 
- 0.75 4 1 4
-8 0.5 0.75
-7 0 0  11 12 2  0.13222607 55.19553183  0.12770598573368 55.1961219408333  0.122888836583308 55.1967517908068  0.117774560741705 55.1974213873805  0.112362668810278 55.1981307969865  0.106655689793962 55.1988796826538  0.100647371810077 55.1996688732972  0.0943476508420914 55.2004970544339  0.0877454354333364 55.2013656916158  0.0808496312265721 55.2022736090304  0.07365522065788 55.2032214687955  0.06616403 55.20420903 
- 0.5 12 0.75 12
-7 0 0  3 4 2  0.4186083787104 0.831593543767701  0.418873997153163 0.831384470615429  0.419230823539424 0.831112580679465  0.419704598752335 0.830807056488716 
- 0.5 4 0.75 4
-7 0 0  9 18 3  0.4186083787104 0.831593543767701  0.418099308812231 0.831994242029576  0.417568420842887 0.832447907367605  0.417019769727589 0.832954818997003  0.416458727614933 0.833513586154644  0.415891975095116 0.834120749178688  0.415327264532486 0.834770529021443  0.414772847490227 0.835454963653342  0.414236608175241 0.836164711691804  0.413564521484672 0.837118324498774  0.413406002965015 0.837348317275255  0.413250201109205 0.837579528842635  0.413097325313558 0.837811643753213  0.412947574095536 0.838044343632654  0.412801133418135 0.838277309907364  0.412658175273358 0.838510226518514  0.412518856576365 0.838742782495551  0.412383318385601 0.83897467430126 
- 0.0901996913858489 10 0.25 8 0.300346391715297 10
-7 0 0  4 5 2  0.13222607 55.19553183  0.226212394641144 55.1832616094896  0.34838005121977 55.1677950399005  0.484704283971534 55.1524243362964  0.60518057 55.1406414 
- 0.0901996913858489 5 0.300346391715297 5
-7 0 0  10 56 7  0.931530229241678 55.1168642957768  0.931203177617892 55.1168745131372  0.930875787541128 55.1168847954812  0.930548059043906 55.1168951428093  0.930219992158895 55.116905555122  0.929891586918915 55.11691603242  0.929562843356933 55.1169265747036  0.929233761506065 55.1169371819735  0.92890434139958 55.11694785423  0.928574583070898 55.1169585914736  0.924196550033659 55.1171018602522  0.92009777407405 55.1172440986761  0.915948167285881 55.117396112146  0.911747817491986 55.1175578997398  0.907496823405729 55.1177294598007  0.903195256505902 55.1179107913723  0.898843153123674 55.1181018949891  0.894440536722011 55.1183027712345  0.889987470387053 55.1185134186792  0.880980808644399 55.1189542410441  0.876427176698873 55.1191844174963  0.871823311700103 55.1194243571604  0.867169286497262 55.1196740574022  0.862465178769929 55.1199335149425  0.857711071024328 55.1202027259434  0.852907050598356 55.1204816859288  0.848053209656245 55.1207703898338  0.843149645193061 55.1210688319909  0.833243272870431 55.121685180251  0.828240461497605 55.1220030864228  0.823188084878979 55.1223307211275  0.81808625386711 55.1226680771229  0.812935090501537 55.1230151459293  0.807734704869166 55.1233719198151  0.802485188521929 55.1237383917262  0.797186624456012 55.1241145551371  0.791839113647598 55.124500401769  0.781046522652088 55.1252914360383  0.775601384125868 55.1256966279311  0.770107541708224 55.126111483279  0.764565119187612 55.1265359916659  0.758974230505319 55.1269701431117  0.753334985260022 55.1274139277089  0.747647494208444 55.1278673351247  0.741911874769806 55.128330354256  0.736128256527332 55.128802972751  0.718633847140125 55.1302495843591  0.706779579714055 55.1312523258357  0.694733951114412 55.1322933974342  0.682502411216992 55.1333722913862  0.670074856800599 55.1344899098816  0.657470149188339 55.1356445270412  0.644671374946687 55.1368376439008  0.631691649788178 55.1380680535268  0.618527247044867 55.1393360557521  0.60518057 55.1406414 
- 0.0599516605892503 11 0.0625 9 0.09375 9 0.125 9 0.15625 9 0.1875 9 0.25 11
-7 0 0  6 7 2  0.40993166 0.84570494  0.40998600372797 0.844675906046194  0.410249527947446 0.843597929411718  0.410571583766898 0.842591463332663  0.411083228200071 0.841362353654924  0.411668652875925 0.840197392965145  0.412383318385601 0.83897467430126 
- 0.0599516605892503 7 0.25 7
-7 0 0  10 11 2  1 55.11607678  0.994003646258079 55.1159942734591  0.987817645626544 55.1159474922749  0.981442182507501 55.1159364884438  0.974877464159309 55.1159613079137  0.96812372446209 55.1160219904009  0.961181227679555 55.1161185694257  0.954050272225494 55.1162510720768  0.946731194425638 55.1164195190475  0.939224372283087 55.1166239244501  0.931530229241678 55.1168642957768 
- 0 11 0.0599516605892503 11
-7 0 0  10 29 4  0.41008236 0.84752031  0.410062955999925 0.847437725411345  0.41004474121411 0.847354087033706  0.41002774232312 0.847269420308121  0.410011986006785 0.847183750674914  0.409997498946228 0.847097103575583  0.409984307820825 0.847009504450142  0.409972439311811 0.846920978740105  0.409961920098859 0.846831551885762  0.409952776862662 0.846741249328194  0.409941165993796 0.846604520098056  0.409937644205956 0.8465587326108  0.409934472450182 0.846512738291254  0.409931652256272 0.846466541383594  0.409929185155022 0.846420146133534  0.409927072675728 0.846373556784442  0.409925316349406 0.846326777582419  0.409923917705555 0.84627981277113  0.409922878274685 0.846232666595859  0.409921520898969 0.846138020006435  0.409921154701026 0.846091224182221  0.409921516743372 0.846038290390025  0.409920887779725 0.846010349767829  0.409923667458428 0.845917206111469  0.409922328161312 0.845932023146309  0.4099255284263 0.845834033360559  0.409926979631516 0.845801366186882  0.409929088596713 0.845753632076508  0.40993166 0.84570494 
- 0 11 0.0299758302946251 9 0.0449637454419377 9 0.0599516605892503 11
-8 0 0.15247929
-7 0 0  11 22 3  0 0.15247929  0 0.145548413128915  0 0.138617572785782  0 0.131686594948997  0 0.124755877430608  0 0.117824829630903  0 0.110894083330534  0 0.103963135487357  0 0.0970322852568474  0 0.0901014021450404  0 0.083170525988808  0 0.0693087721278791  0 0.0623778951246226  0 0.0554470180557387  0 0.0485161409283545  0 0.0415852637496623  0 0.0346543865267658  0 0.0277235092668633  0 0.0207926319770746  0 0.0138617546645689  0 0.00693087733649289  0 8.38250590400241e-019 
- 0 12 0.076239645 10 0.15247929 12
-8 0 0.15247929
-7 0 0  9 26 4  0.52193218 0  0.507434063747883 0  0.492935961109469 0  0.478437856970967 0  0.463939678605514 0  0.449441644579506 0  0.434943470607215 0  0.420445376833049 0  0.405947256617991 0  0.376951024079543 0  0.36245290781737 0  0.347954791560891 0  0.333456675308974 0  0.318958559060083 0  0.304460442813244 0  0.289962326566876 0  0.275464210319896 0  0.231969861572979 0  0.202973629040611 0  0.173977396469614 0  0.144981163855897 0  0.115984931195201 0  0.0869886984834624 0  0.0579924657164359 0  0.0289962328900111 0  0 0 
- 0 10 0.0381198225 8 0.076239645 8 0.15247929 10
-8 0 1.18410863
-7 0 0  1 2 2  0 0  1.18410863 0 
- 0 2 1.18410863 2
-8 0 1.18410863
-7 0 0  8 9 2  0 1  0.371269587115113 1  0.742539179280126 0.999999999999988  1.11380877829939 1.00000000000002  1.48507836667746 0.999999999999982  1.85634795748294 1.00000000000001  2.22761755620468 0.999999999999995  2.59888714994868 1  2.97015674 1 
- 0 9 1.18410863 9
-8 0.74147334 1
-7 0 0  9 26 4  1.4508111 0  1.49395752055349 0  1.53710389484095 0  1.5802503172861 0  1.62339669341872 0  1.6665431017033 0  1.70968949393606 0  1.75283589163933 0  1.795982288527 0  1.88227508273768 0  1.92542147994536 0  1.96856787722321 0  2.0117142745392 0  2.05486067186103 0  2.09800706915678 0  2.14115346639417 0  2.18429986354113 0  2.31373905461433 0  2.40003184788015 0  2.48632464203414 0  2.57261743602084 0  2.65891022827271 0  2.74520301803508 0  2.83149580580389 0  2.9177885928741 0  3.00408138 0 
- 0.74147334 10 0.806105005 8 0.87073667 8 1 10
-8 0.74147334 1
-7 0 0  10 29 4  1.18410863 0.25852666  1.18410863000002 0.252063489510114  1.18410862999991 0.245600328236197  1.18410863000019 0.239137196588179  1.18410862999971 0.232673936704402  1.18410863000033 0.226210879341565  1.18410862999972 0.219747635212336  1.18410863000017 0.213284503544328  1.18410862999993 0.2068213273765  1.18410863000002 0.200358162430836  1.18410862999997 0.187431830007468  1.18410863000013 0.180968663853982  1.1841086299997 0.174505497747245  1.18410863000049 0.168042331676139  1.18410862999945 0.161579165628906  1.18410863000045 0.155115999594724  1.18410862999974 0.148652833561706  1.1841086300001 0.142189667518912  1.18410862999998 0.135726501454751  1.18410863000002 0.116337003164399  1.18410862999996 0.103410671089233  1.18410863000008 0.0904843386349666  1.1841086299999 0.077558005675355  1.1841086300001 0.0646316723087097  1.18410862999991 0.0517053387106199  1.18410863000006 0.0387790049873666  1.18410862999997 0.0258526710286416  1.18410863000001 0.012926336360848  1.18410863 1.00898853335041e-017 
- 0.74147334 11 0.806105005 9 0.87073667 9 1 11
-7 0 0  10 11 2  1.00922544 0.25852666  1.0006240513357 0.25642002619265  0.992728400970777 0.254433616696504  0.98532887753901 0.252523059013841  0.978282635574226 0.25065710483155  0.971477985072832 0.248810376859446  0.964823689369477 0.246961134074298  0.958239595731204 0.245089248089859  0.951651731816183 0.243175040593446  0.944987550040863 0.241198070374494  0.93817111158698 0.239135718447365 
- 0 11 0.0918409922080835 11
-7 0 0  4 5 2  2.72494532 1  2.71512919182863 0.973730201644435  2.70750693718564 0.952356676860187  2.70003652906738 0.930989919272212  2.69212772 0.90713174 
- 0 5 0.0918409922080835 5
-7 0 0  11 42 5  2.6430183054988 0.737367675843688  2.64358614866108 0.7396529691489  2.64415594062545 0.74193554292068  2.64472769365356 0.744215454066447  2.64530142011012 0.746492759262634  2.64587713248588 0.74876751505025  2.6464548434283 0.751039777963291  2.64703456574067 0.753309604528018  2.647616312296 0.755577050911937  2.64820009589863 0.757842172356531  2.64878592931229 0.760105023297419  2.65053371487335 0.766825777122192  2.65170163418751 0.77127727306976  2.65287768865984 0.775720586639089  2.65406196241364 0.780156073514799  2.65525460394693 0.784584314777509  2.65645567535544 0.78900556515337  2.65766528459213 0.793420240908067  2.65888358554305 0.797828917547157  2.66011064654679 0.802231845076633  2.66134660208174 0.806629511136928  2.6638365254152 0.815415105179208  2.66509049404352 0.819803036190585  2.66635358327853 0.824186502765259  2.66762592067828 0.828565944313318  2.66890760689038 0.832941703252365  2.67019878850219 0.837314266300471  2.67149958455278 0.841684020158261  2.67281010004627 0.846051297034579  2.67413049847524 0.850416615657502  2.67546088922712 0.854780306291075  2.67814194142889 0.863505299803783  2.67949260310688 0.867866603030984  2.6808535231668 0.872227083204394  2.68222489810258 0.8765873271051  2.68360668831864 0.880947193189935  2.68499939717774 0.885308196204243  2.68640267227907 0.889669214902875  2.68781714297814 0.894032139290339  2.68924264054111 0.898396395956371  2.69067945869909 0.902762827111708  2.69212772 0.90713174 
- 0.624657200339206 12 0.65 10 0.7 10 0.75 10 0.8 12
-7 0 0  4 5 2  0.82853129 0.2030414  0.854248257095329 0.21189477141112  0.880608132660651 0.220820319259028  0.908076811552104 0.23003051811549  0.93817111158698 0.239135718447365 
- 0.624657200339206 5 0.8 5
-7 0 0  11 12 2  2.63704064 0.7127592  2.63757517114683 0.715010799102995  2.63811144823561 0.717259342368701  2.6386494825649 0.719504887007003  2.63918928462085 0.721747486239304  2.63973086497066 0.723987193016327  2.64027423442936 0.726224060719323  2.64081940398222 0.728458142843687  2.64136638469891 0.730689492645151  2.64191518770795 0.732918163033689  2.64246582421018 0.735144206628973  2.6430183054988 0.737367675843688 
- 0.6 12 0.624657200339206 12
-7 0 0  3 4 2  0.814114745698882 0.198106711462962  0.818906298254293 0.199736543532826  0.823709433467134 0.201381417942606  0.82853129 0.2030414 
- 0.6 4 0.624657200339206 4
-7 0 0  10 38 5  2.59117950984538 0.479697286203414  2.59209392550287 0.485179449242017  2.5930044222894 0.490602326821964  2.59391127225528 0.495967757283147  2.59481474227193 0.501277521008615  2.59571509428414 0.506533342592766  2.59661258596195 0.511736895319249  2.59750747145612 0.516889806172528  2.59840000196126 0.521993659607466  2.59929042579054 0.527049998300009  2.60138874269861 0.538881747050971  2.60259504713777 0.545617879838277  2.60379851912383 0.552272499204983  2.60499977081229 0.558849265485357  2.6061994061004 0.565351708265505  2.6073980225137 0.571783238076689  2.6085962148644 0.578147166956654  2.60979457841491 0.584446725721645  2.6109937091391 0.590685065778373  2.61339468847434 0.60304540085642  2.61459653602056 0.609167390808045  2.6158003554981 0.615234362600128  2.61700670162442 0.62124909219368  2.61821621847177 0.627214726398113  2.61942950249907 0.633134085525506  2.6206471425417 0.639009868017002  2.62186978865714 0.644844999206138  2.62309805677017 0.650642140828584  2.62556713650205 0.662165935502869  2.62680794699625 0.667892582900321  2.62805567592029 0.673586714198443  2.62931096733389 0.679250959654666  2.63057451482527 0.684888098619702  2.63184698192474 0.69050067263091  2.63312909345173 0.696091429600471  2.63442156746847 0.701662979852892  2.63572515661758 0.707218004738819  2.63704064 0.7127592 
- 0.413275132100674 11 0.45 9 0.5 9 0.55 9 0.6 11
-7 0 0  6 7 2  0.68608119 0.16093914  0.710920015977125 0.166147162488298  0.733481680809916 0.171893880912946  0.754328794085754 0.178375809732587  0.774364053600123 0.184726244688904  0.794097785779316 0.191298003253921  0.814114745698882 0.198106711462962 
- 0.413275132100674 7 0.6 7
-7 0 0  11 12 2  0.68608119 0.16093914  0.685072028009351 0.160727546218615  0.684069328956655 0.160518923388344  0.683072882187869 0.160313208312554  0.682082482970821 0.160110339909804  0.681097932171522 0.159910259110785  0.68011903595918 0.159712908763611  0.679145605535196 0.1595182335463  0.67817745688232 0.159326179885492  0.677214410530883 0.159136695880619  0.676256291339683 0.158949731232889  0.675302928289615 0.15876523717856 
- 0.4 12 0.411315319709357 12
-7 0 0  3 4 2  2.59117950984538 0.479697286203414  2.59002516498361 0.472776684305172  2.5889191221429 0.46606933227442  2.58784952 0.4595214 
- 0.4 4 0.411315319709357 4
-7 0 0  11 32 4  0.675302928289615 0.15876523717856  0.67204358204575 0.158134491102395  0.668839826112228 0.157532621598673  0.665684826706073 0.156957680108366  0.662572313171756 0.156407927778798  0.659496481595735 0.155881804300384  0.656451918769852 0.155377903598598  0.653433536102597 0.154894953548081  0.650436512898149 0.154431799128169  0.647456250821028 0.153987389100426  0.644488336345632 0.153560765359748  0.637702897426394 0.152621496004462  0.633890787309427 0.152120189589651  0.63008294061659 0.151645241120984  0.626270532470769 0.151194989365054  0.622445004802412 0.150767969029981  0.618597949824501 0.150362883500424  0.61472100476798 0.149978583307754  0.610805752768644 0.149614049276019  0.606843624805791 0.149268379297795  0.602825797577685 0.14894077767941  0.598286138102024 0.148595824377124  0.597828381168172 0.148561320330506  0.59736979853369 0.148527032889379  0.596910377259831 0.148492961090192  0.596450104348334 0.14845910398458  0.595988966739534 0.148425460639227  0.595526951310431 0.148392030135721  0.595064044872734 0.148358811570427  0.594600234170875 0.14832580405435  0.594135505879991 0.148293006713014  0.593669846603879 0.148260418686337 
- 0.411315319709357 12 0.45 10 0.5 10 0.505596080964352 12
-7 0 0  5 6 2  2.58784952 0.4595214  2.58250227525829 0.426786449473237  2.57790998768025 0.397373176612322  2.57348308657198 0.368539570555499  2.56906524843505 0.339068167388737  2.56437509 0.30680216 
- 0.411315319709357 6 0.505596080964352 6
-7 0 0  11 42 5  2.53513158141861 0.0877166749488884  2.53585834482156 0.0937032221449259  2.5365886828234 0.099683507697649  2.53732267832843 0.105658257346883  2.53806041519553 0.111628193904847  2.53880197827948 0.1175940376458  2.5395474534348 0.12355650638223  2.54029692748392 0.129516315254774  2.54105048823345 0.135474176917694  2.54180822475996 0.141430803863956  2.54257022802878 0.147386913295507  2.54422507163049 0.160248662904776  2.54511941186373 0.167154371559663  2.546019751217 0.174061438911804  2.54692624654885 0.180971061269528  2.5478390077789 0.187884069658507  2.5487582627425 0.194802155353323  2.54968405910879 0.201725648527253  2.55061665178669 0.208656408935061  2.55155613700127 0.215595093381931  2.55250270263727 0.222543026034134  2.55393341107182 0.232980438880554  2.55441212410726 0.236462163806487  2.55489266799941 0.239946618017965  2.55537506360857 0.243433944102005  2.55585933204535 0.246924285257504  2.55634549462727 0.25041778529523  2.55683357294351 0.253914588637939  2.55732358877768 0.257414840320157  2.55781556418186 0.260918685988431  2.55830952141983 0.264426271901127  2.55930144458269 0.27144921795596  2.55979940999272 0.274964574520103  2.56029940616467 0.27848399203911  2.56080143642786 0.282007483807493  2.56130557601623 0.285535558953036  2.56181174808073 0.28906767444739  2.56232011538479 0.292604943569464  2.56283056859351 0.296146594251458  2.56334321081839 0.299693326870651  2.56385804302007 0.303245130485731  2.56437509 0.30680216 
- 0.0568724255241282 12 0.1 10 0.15 10 0.175 10 0.2 12
-7 0 0  4 5 2  0.47839695 0.14515792  0.506461938427874 0.145180270954121  0.534737057016871 0.145495256090693  0.563713540502916 0.146163999797197  0.593669846603879 0.148260418686337 
- 0.0568724255241282 5 0.2 5
-7 0 0  11 12 2  2.52655024482567 0.0146345759481185  2.52731191069448 0.0213459576706141  2.52807695617477 0.0280407990254084  2.5288454832526 0.0347201279565897  2.52961759474167 0.0413849622600353  2.53039339433011 0.0480363102480111  2.53117298682662 0.0546751727619274  2.53195647793834 0.0613025416702205  2.53274397437094 0.0679194009200159  2.53353558403229 0.0745267283374578  2.53433141616607 0.0811254968164204  2.53513158141862 0.0877166749488884 
- 0.00938904044701609 12 0.0568724255241282 12
-7 0 0  3 4 2  0.44128756 0.14514773  0.453637039413593 0.145151124414626  0.465979659663563 0.145154513637083  0.478396949999999 0.14515792 
- 0.00938904044701609 4 0.0568724255241282 4
-8 0.8 1
-7 0 0  10 29 4  0.44128756 0.14514773  0.441104548554555 0.145147304500127  0.440921529874539 0.145146878997354  0.440738534026284 0.145146453561587  0.440555507617226 0.14514602806869  0.440372499007402 0.145145602631088  0.440189496492224 0.145145177221591  0.440006474207828 0.145144751780037  0.439823468142443 0.145144326390127  0.439640455416967 0.145143900998643  0.439274432260012 0.145143050248864  0.439091420666705 0.145142624887844  0.438908409058487 0.145142199540765  0.438725397435515 0.145141774207462  0.438542385797503 0.145141348888209  0.438359374144822 0.14514092358266  0.438176362477069 0.145140498291155  0.437993350794559 0.145140073013433  0.437810339097092 0.145139647749647  0.437261303960048 0.145138371999905  0.436895281467943 0.14513752155794  0.436529251781964 0.145136671154921  0.436163246360448 0.145135820863994  0.435797189469095 0.145134970509147  0.435431206339182 0.145134120381355  0.435065148881466 0.145133270136583  0.434699143280583 0.145132420067949  0.434333113959648 0.145131569999906  0.43396709 0.14513072 
- 0.8 11 0.85 9 0.9 9 1 11
-7 0 0  11 12 2  2.52655024482567 0.0146345759481185  2.52639963821584 0.0133075131377156  2.52624916374345 0.0119798036252657  2.52609882062002 0.0106514394636793  2.52594860805837 0.00932241269035335  2.52579852527255 0.00799271532697062  2.52564857147786 0.00666233937937919  2.52549874589088 0.00533127683761026  2.52534904772949 0.00399951967611696  2.525199476213 0.00266705985435147  2.52505003056226 0.00133388931784315  2.52490071 -1.38777878078145e-017 
- 0.8 12 1 12
-8 0.875 1
-7 0 0  11 32 4  0.1565789 55.41588432  0.150548828476561 55.4165756824858  0.145430190103914 55.4171637388136  0.140960167479133 55.4176783631002  0.136982413095536 55.4181373357246  0.13339147699164 55.4185526557808  0.13010893599575 55.4189332533005  0.12707476405681 55.4192859710086  0.12424317691484 55.4196160364446  0.121577878175949 55.4199276021501  0.119047327617797 55.4202242832781  0.114205365095857 55.4207936716461  0.111893863319371 55.4210663888771  0.109666089008816 55.4213300923293  0.107501175250834 55.4215871932003  0.105381368435975 55.4218397548008  0.103290888471927 55.4220896223468  0.101215227879828 55.422338504401  0.0991406966312459 55.4225880244394  0.0970540195947745 55.4228397693082  0.0949417934516194 55.4230953537188  0.0884852429349642 55.4238788697674  0.0840215285028713 55.4244235049156  0.0792834266641181 55.4250044050559  0.0741580459252911 55.4256353969373  0.0684532971229534 55.4263403958357  0.0620781498125947 55.4271305943068  0.0545660830732412 55.4280644696992  0.0458004686278358 55.4291565189457  0.0347609427428446 55.4305347840863  0.0207786138578454 55.4322831728699  -1.38777878078145e-017 55.4348855 
- 0.875 12 0.90625 10 0.9375 10 1 12
-7 0 0  10 29 4  0.43089701 0.14540341  0.430914789061213 0.145403985501985  0.430935837865607 0.145404150195346  0.430960183607296 0.145403904572794  0.430987778030864 0.145403247664596  0.431018664791235 0.145402180398566  0.431052833363999 0.14540070252983  0.43109026038943 0.145398813568629  0.431130978307822 0.145396514220383  0.431174966520877 0.145393804029972  0.431269497579606 0.145387562279424  0.431320039380429 0.145384030695906  0.431373857453743 0.145380088404184  0.431430951800031 0.145375735404103  0.431491322420826 0.145370971695894  0.431554969316172 0.145365797279216  0.43162189248774 0.145360212154389  0.431692091935815 0.145354216321134  0.431765567661595 0.14534780977959  0.431995823674303 0.145327358029867  0.432162433813884 0.145312080590057  0.432342141779864 0.145295161077706  0.432534979765723 0.145276596130798  0.432740870294543 0.145256393839971  0.432959941495141 0.145234540825573  0.433192041845369 0.145211052908691  0.433437300441065 0.145185916611195  0.433695639921257 0.145159140008246  0.43396709 0.14513072 
- 0.875 11 0.90625 9 0.9375 9 1 11
-7 0 0  10 20 3  0.43089701 0.14540341  0.430725428487636 0.145397858838736  0.430545519411181 0.14539240604962  0.43035739987376 0.145387082858216  0.430161210644643 0.14538192053917  0.429957298788866 0.145376955380085  0.429746083310431 0.14537222351543  0.429528105318645 0.145367761480199  0.429304099818962 0.145363607403753  0.429074881154548 0.145359796415356  0.428801048424096 0.145355768326732  0.428760561334234 0.145355185884408  0.428719952015852 0.14535461486741  0.42867922548115 0.145354055445035  0.428638386848512 0.14535350778434  0.428597441339052 0.145352972049917  0.428556394273041 0.145352448403674  0.428515251066201 0.145351937004628  0.428474017225883 0.145351438008702  0.428432698347115 0.145350951568534 
- 0.25 11 0.3125 9 0.323304246662853 11
-7 0 0  4 5 2  0.1565789 55.41588432  0.17757357499726 55.4134772333813  0.139838369460081 55.4178041631687  0.198839855731313 55.4110481419577  0.22896476 55.40748034 
- 0.25 5 0.323304246662853 5
-8 0.625 0.75
-7 0 0  11 22 3  0.32499996 55.39620377  0.322717077332313 55.3964653033542  0.320226329305913 55.3967518980291  0.317525728040808 55.3970637825028  0.314621076879065 55.3974002890334  0.31150081063855 55.397762749607  0.308181549033208 55.3981492485756  0.304645878668294 55.3985617940093  0.300906896100145 55.3989988756697  0.296957702621325 55.3994612886722  0.292800759393006 55.3999487496083  0.28407027908823 55.4009738932221  0.279496773925058 55.4015115723278  0.2747151948391 55.4020743361016  0.26972491775346 55.4026622584543  0.264527095403844 55.4032752028483  0.259120554263047 55.4039133083298  0.253505564055656 55.4045765428257  0.247683189732147 55.4052647803858  0.241651645991026 55.4059782322774  0.235412400314917 55.4067167248206  0.22896476 55.40748034 
- 0.625 12 0.6875 10 0.75 12
-7 0 0  3 4 2  0.426177215634701 0.14534344097593  0.426581780191565 0.145340998152446  0.4273326808245 0.145338001248377  0.428432698347115 0.145350951568534 
- 0.625 4 0.75 4
-8 0.5 0.625
-7 0 0  10 20 3  0.46774262 55.37928407  0.45690313125758 55.3806248055594  0.448270851615531 55.3816884427367  0.440894744616537 55.3825937531538  0.434390511076232 55.3833886205485  0.428475035104922 55.3841082366787  0.422955537277219 55.3847764515481  0.417698431873232 55.3854096517096  0.412571924725931 55.3860239101282  0.407468618250395 55.3866321139836  0.397071003243798 55.3878645733196  0.39177674609484 55.3884888213352  0.386268887935998 55.3891350930677  0.380425550771371 55.3898176388326  0.374102003213527 55.3905532483758  0.367112599824479 55.391363251411  0.359226583682484 55.3922741221112  0.3500533872024 55.3933304419654  0.339078502416305 55.3945908992069  0.32499996 55.39620377 
- 0.5 11 0.5625 9 0.625 11
-7 0 0  10 11 2  0.42351021 0.14542923  0.423605442207539 0.145417328378714  0.423734955420757 0.145405551603784  0.423902103562258 0.145394098420091  0.424109883481863 0.145383181962414  0.424359941898306 0.14537308529463  0.424652660185351 0.145364066272314  0.42498601275535 0.145356409554315  0.425355633169521 0.145350333865374  0.425755198857194 0.145345989178627  0.426177215634701 0.14534344097593 
- 0.5 11 0.625 11
-8 0.5 0.75
-7 0 0  11 32 4  0.42351021 0.14542923  0.423318800709215 0.145453150934071  0.423136378226642 0.145475918602672  0.422962919950222 0.145497535829199  0.422798490155305 0.14551799458405  0.422642969173155 0.145537309817212  0.422496516950701 0.14555546154661  0.422358975275107 0.145572469537842  0.422230460425329 0.145588319264105  0.422110909965777 0.145603018525542  0.422000347291517 0.145616564399396  0.421847976651102 0.145635154166591  0.421799432155694 0.14564106256219  0.421753133378088 0.145646682764475  0.421709080316988 0.145652014773278  0.421667272973082 0.14565705858909  0.421627711344191 0.14566181421138  0.421590395431381 0.145666281640867  0.421555325232787 0.145670460877039  0.42152250074867 0.145674351920368  0.421491921978062 0.14567795477069  0.421435255863018 0.145684584085643  0.421409168948104 0.145687610515203  0.421385325607911 0.145690348926475  0.421363732118866 0.14569279880583  0.421344381449145 0.145694960731013  0.421327274500702 0.145696834624746  0.421312417483497 0.14569841997785  0.421299806798812 0.145699717089876  0.421289434860709 0.145700726582642  0.421281315919864 0.145701447271932  0.42127544 0.14570188 
- 0.5 12 0.625 10 0.6875 10 0.75 12
-7 0 0  6 7 2  0.46774262 55.37928407  0.496340954110395 55.3757467408258  0.400953422659636 55.3875480606534  0.57382370236175 55.3661414659626  0.504498072659137 55.3748088337821  0.514880554347713 55.3734865583473  0.51663621 55.37327277 
- 0.5 7 0.75 7
-8 0.25 0.375
-7 0 0  11 42 5  0.74578591 55.34399089  0.734597920387493 55.3454846337438  0.724936653272533 55.3467730482347  0.716420536351824 55.3479073519964  0.708806152691325 55.3489202050576  0.70192341347228 55.3498344349724  0.695632159542908 55.3506688162684  0.689843067548269 55.3514353351446  0.684467711006366 55.3521458202669  0.67944436840987 55.3528085280091  0.674718507296344 55.3534307401577  0.665771308048582 55.3546062266709  0.661549949677186 55.3551595037563  0.65753562273824 55.3556843401123  0.65369137172525 55.3561856474136  0.649986099858036 55.3566675444484  0.646392843020545 55.3571335879169  0.642887553566618 55.3575869346007  0.639448234294633 55.3580304560364  0.636054262939302 55.3584668268956  0.632685747484863 55.3588986085185  0.625959757791053 55.3597580886961  0.622602311557313 55.3601857837082  0.619230418850407 55.3606139877131  0.615824878408792 55.3610451389355  0.612363371137429 55.361482037657  0.608829475251886 55.3619267457307  0.60519184311785 55.362383153934  0.601432257598923 55.3628535060092  0.597516013517578 55.3633420759111  0.593409615491692 55.3638529608298  0.584729354494646 55.3649299984036  0.580155577846773 55.3654961404624  0.575304455469011 55.3660952385729  0.570125764282006 55.3667334071506  0.564556523057478 55.3674183007844  0.558520903089541 55.3681591225917  0.551923941008323 55.3689673857266  0.544641146332151 55.3698581711951  0.536506977609107 55.3708515223455  0.527292487596802 55.371975145262  0.51663621 55.37327277 
- 0.25 12 0.28125 10 0.3125 10 0.34375 10 0.375 12
-7 0 0  9 18 3  0.415669812049734 0.146917127401513  0.4163959466149 0.146615071225696  0.416909832388797 0.146438123760218  0.417282003279915 0.146338255683749  0.417568769078563 0.146278270055905  0.417812215456505 0.146231802316994  0.418040203967459 0.146183320288401  0.418266372046562 0.146128124172137  0.418490133010824 0.14607234655125  0.418903219106818 0.145993558227824  0.418861280527643 0.145975804939371  0.42048306780623 0.145833627917714  0.41690173598331 0.146088759281657  0.423388377352643 0.145574573135416  0.417015679832377 0.146051489493082  0.421945971385667 0.14565145300658  0.420636114405132 0.145748956612726  0.42127544 0.14570188 
- 0.25 10 0.3125 8 0.375 10
-8 0.125 0.25
-7 0 0  11 22 3  0.81865078 55.33426732  0.81834245750182 55.3343080450466  0.817733726961923 55.334388900478  0.81682467158632 55.33450987525  0.815615328037556 55.3346709644055  0.814105582862337 55.3348721830249  0.812295350733752 55.335113542605  0.810184696019442 55.3353950345069  0.80777375938175 55.3357166399956  0.805062551266185 55.3360783576058  0.802050874335968 55.3364802137421  0.795426799787681 55.3373641740438  0.791814360185152 55.3378462838267  0.787901749264374 55.3383684923804  0.783688002115888 55.3389309285775  0.779175693009071 55.339533248641  0.774360034667232 55.3401760918422  0.769247536513031 55.3408585889711  0.763831621096519 55.3415816183054  0.758117208340568 55.3423445229005  0.752101659962121 55.343147655039  0.74578591 55.34399089 
- 0.125 12 0.1875 10 0.25 12
-7 0 0  4 5 2  0.413786066706607 0.147911857528494  0.413830045702653 0.147882776011928  0.414152101459438 0.147666042212949  0.414747511397736 0.147300784400172  0.415669812049734 0.146917127401513 
- 0.125 5 0.25 5
-8 0 0.125
-7 0 0  11 12 2  1 55.31688457  0.984462494561633 55.3174847930303  0.970074629867905 55.3182292547837  0.956220402775526 55.3191148741629  0.942520977914117 55.3201476671273  0.928589860584466 55.3213464559976  0.91418378971617 55.3227273691498  0.898871737877632 55.3243315104225  0.882333270337612 55.3261971462785  0.864001555321915 55.3283966061498  0.843188833224874 55.3310262056729  0.81865078 55.33426732 
- 0 12 0.125 12
-7 0 0  7 8 2  0.41008734 0.15247929  0.410367122686552 0.151804196530941  0.410655950745377 0.151200414654309  0.411121403029022 0.150511239126142  0.4113702900796 0.150008140893992  0.412140878286153 0.149183688116685  0.412786038594384 0.148573135336682  0.413786066706607 0.147911857528494 
- 0 8 0.125 8
-7 0 0  9 74 10  2.57033879 0.50000087  2.57018215327951 0.499959821424722  2.57002554590105 0.499918797765833  2.56986891439843 0.499877785002269  2.56971231393114 0.499836797503236  2.56955535311041 0.49979573291719  2.56939858637994 0.499754736367817  2.56924165580985 0.499713714121952  2.56908470879211 0.499672704793468  2.56877069378384 0.499590688908229  2.56861362942978 0.499549683305786  2.5684565089105 0.499508680225857  2.56829933273858 0.499467679805768  2.56814210125466 0.499426682137945  2.56798481462666 0.499385687269677  2.56782747285127 0.499344695203469  2.56767007575205 0.499303705896659  2.56719771743931 0.499180745991851  2.56688259028655 0.499098783690744  2.56656724155595 0.499016832394089  2.56625167128049 0.498934892137422  2.56593587949349 0.498852962956545  2.56561986622764 0.498771044886908  2.56530363151645 0.498689137964316  2.56498717539263 0.498607242224302  2.56403714288314 0.49836158865905  2.56340290236741 0.498197864493097  2.56276777664723 0.498034185496188  2.56213176602516 0.497870551959657  2.56149487080797 0.497706964175134  2.5608570912969 0.497543422433842  2.56021842779872 0.497379927027432  2.559578880616 0.497216478247212  2.55765758892898 0.496726272659655  2.55637319411329 0.496399656599396  2.55508526833308 0.496073230546471  2.553793814315 0.495746996843231  2.55249883478531 0.495420957832365  2.55120033247079 0.495095115856137  2.54989831009778 0.494769473257228  2.5485927703928 0.494444032377997  2.54466560746169 0.493468321926985  2.54203344134037 0.492818664568474  2.53938724109281 0.492169842286629  2.53672703114963 0.491521873908928  2.53405283700548 0.49087477828968  2.53136468520706 0.490228574309247  2.52866260336742 0.489583280874965  2.52594662015273 0.488938916920277  2.51775705556941 0.487008670375549  2.51224185934582 0.485725632919718  2.50667141438864 0.484446540934734  2.50104597564621 0.483171546395752  2.49536581525049 0.48190080135669  2.48963122251304 0.480634457949549  2.48384250392935 0.479372668385194  2.47799998317508 0.478115584952643  2.46031203697571 0.474358910153438  2.44830622863356 0.471873893635868  2.43608930094865 0.469409527036381  2.42366425760978 0.466967024413719  2.41103437718959 0.464547594032714  2.39820320920529 0.462152435080346  2.38517457018075 0.459782734382906  2.37195253970671 0.457439663121957  2.3510035919374 0.453823036519228  2.34340600281739 0.452530476151255  2.33574945895753 0.451246896993551  2.32803475576534 0.449972501729616  2.3202627137958 0.448707490982629  2.31243417826312 0.447452063123104  2.30455001851001 0.446206414081851  2.29661112743417 0.444970737168251  2.28861842087227 0.443745222893856 
- 0 10 0.00065104166015625 8 0.0013020833203125 8 0.002604166640625 8 0.00520833328125 8 0.0104166665625 8 0.020833333125 8 0.04166666625 8 0.0833333325 8 0.106752595681131 10
-7 0 0  4 5 2  1 0.06075625  0.975155584051176 0.0619100874558675  0.94649659797079 0.0630050799161219  0.914138768346783 0.0639324065529099  0.87898407 0.06464678 
- 0 5 0.106752595681131 5
-7 0 0  9 18 3  2.28861842087227 0.443745222893856  2.26817048571348 0.440609959985732  2.24737032695765 0.437541211785518  2.2262332796408 0.434542168274111  2.2047756614423 0.431615899580757  2.18301470516841 0.42876533665038  2.16096847928198 0.425993253401173  2.13865579647882 0.423302250372441  2.1160961103096 0.420694739862657  2.07054741434539 0.41565386156619  2.04755889775227 0.413220308198521  2.02436376785992 0.410874476578857  2.00098247007798 0.40861837144726  1.97743587026609 0.406453785993001  1.95374513971211 0.404382292267859  1.92993163667359 0.402405234439353  1.90601678823666 0.400523724971345  1.882021975585 0.398738643647066 
- 0.106752595681131 10 0.166666665 8 0.226515723937158 10
-7 0 0  3 4 2  0.87898407 0.06464678  0.826398473757192 0.0657153660287013  0.766582973506242 0.0661785927508086  0.70550968 0.06622642 
- 0.106752595681131 4 0.226515723937158 4
-8 0.625 0.75
-7 0 0  9 18 3  0.6046294 0.06608293  0.613624007648967 0.0661064731567844  0.621661403882583 0.0661266736044409  0.628953158932934 0.0661441702380138  0.635645184929371 0.0661593883050562  0.641849259860904 0.0661726383429675  0.64765395564776 0.0661841487958463  0.653132742883033 0.0661940893623691  0.65834875978588 0.066202582337381  0.668369104611577 0.0662168350662663  0.673173433259177 0.0662225948217866  0.677828832749249 0.0662270689043181  0.68238600477956 0.0662302969901631  0.686893429567052 0.0662322826803808  0.691400311049448 0.0662329938154845  0.695960480301905 0.0662323550335256  0.700636248496493 0.0662302375497549  0.70550968 0.06622642 
- 0.625 10 0.6875 8 0.75 10
-7 0 0  6 7 2  1.64326070115387 0.38531898163311  1.70730885323159 0.387784887909226  1.74961920914742 0.390117602642382  1.78588441358853 0.392121365147878  1.81735352995674 0.394162191079026  1.84753864659435 0.396173274728631  1.882021975585 0.398738643647066 
- 0.625 7 0.75 7
-7 0 0  10 20 3  0.543222487858905 0.0659335805384061  0.544794679153542 0.0659368841438723  0.546386548632608 0.0659402787755437  0.548000054587055 0.0659437679207412  0.549637188588484 0.0659473553281233  0.551299990108199 0.0659510450280432  0.552990561309033 0.0659548413568371  0.554711083033676 0.0659587489864637  0.556463831513465 0.0659627729586058  0.558251190927103 0.0659669187146691  0.563621304755777 0.065979496949062  0.567307157234879 0.0659882839609982  0.571151716987028 0.0659975964713223  0.575175360113526 0.0660074842713542  0.579400869966192 0.0660180048443815  0.583854140140803 0.0660292251531832  0.588565030932894 0.0660412239037624  0.593568495333825 0.0660540945944465  0.598906247109956 0.0660679501022897  0.6046294 0.06608293 
- 0.530339034103805 11 0.5625 9 0.625 11
-7 0 0  5 6 2  1.49732765 0.38125063  1.51934846534438 0.381630081368396  1.54316010593927 0.382125682291735  1.57033190448692 0.382814988434717  1.60211169245367 0.383734711119157  1.64326070115387 0.385318981633109 
- 0.530339034103805 6 0.625 6
-7 0 0  10 11 2  0.5289847 0.06590575  0.530368607712421 0.0659082270567238  0.531756977377323 0.0659107667985276  0.533151507326002 0.0659133709362855  0.534553858922593 0.0659160413482231  0.535965656701879 0.0659187800576659  0.53738850493663 0.0659215892454628  0.538824001176052 0.0659244712611671  0.540273747604311 0.0659274286336488  0.541739361840252 0.0659304640835326  0.543222487858905 0.0659335805384061 
- 0.5 11 0.530339034103805 11
-7 0 0  3 4 2  1.46344236641377 0.380743095505887  1.4744239518484 0.380883258254898  1.48556478904807 0.381047938278289  1.49732765 0.38125063 
- 0.5 4 0.530339034103805 4
-7 0 0  9 26 4  1.46344236641377 0.380743095505887  1.43756261964025 0.380412781046916  1.41108606916866 0.380171677065926  1.38404053087244 0.380023099174431  1.35645796100044 0.379970097041478  1.32837445190987 0.380015399282592  1.29983017624804 0.380161358509804  1.27086903803419 0.380409898978076  1.24153840499738 0.380762475567093  1.19487668718217 0.381482574413431  1.17775971831032 0.381779669986125  1.16054717231021 0.38211150811515  1.14324887121311 0.382478214525283  1.12587492796599 0.382879858618365  1.10843571376496 0.383316451927377  1.09094182211366 0.38378794705545  1.07340402961073 0.384294237098513  1.04106037460302 0.385289940402325  1.02626417982316 0.385769203546115  1.01145115808274 0.386272846042191  0.996627870291961 0.386800739064911  0.981800921539201 0.387352724416196  0.96697695759222 0.387928614088878  0.952162647943192 0.388528190527945  0.937364653828645 0.38915120770909  0.922589615817229 0.389797391625992 
- 0.344046308627282 10 0.416666665 8 0.4583333325 8 0.493365173226304 10
-7 0 0  4 5 2  0.5289847 0.06590575  0.478690296430512 0.0658157223092564  0.422173199062303 0.0657754474918033  0.361617721403325 0.0659537914815382  0.30221679 0.06638239 
- 0.344046308627282 5 0.493365173226304 5
-7 0 0  9 18 3  0.922589615817229 0.389797391625992  0.919791309597855 0.389919775099532  0.916993826817475 0.390042989567491  0.914197212589447 0.390167033168379  0.911401512000538 0.390291904004704  0.908606770107896 0.390417600143088  0.905813031936931 0.390544119614362  0.903020342480398 0.390671460413611  0.900228746699048 0.390799620500181  0.8543395986117 0.39292065584682  0.811512510457075 0.395107659717802  0.769122433763545 0.397481961335438  0.727331992068711 0.400033924664596  0.686297092224374 0.402752094094882  0.646163092205387 0.40562349369339  0.607061681861267 0.408633999874275  0.569108774471459 0.411768737626115  0.532403391212581 0.415012458030018 
- 0.493365173226304 10 0.5 8 0.602475089373382 10
-7 0 0  3 4 2  0.30221679 0.06638239  0.244343051237851 0.0667999712879464  0.187805125444445 0.067483536659256  0.13858066 0.0683359 
- 0.493365173226304 4 0.602475089373382 4
-7 0 0  10 29 4  0.0596871747500459 0.0698968908722486  0.0605619531957373 0.0698779220542209  0.0614305513531467 0.0698591140876834  0.0622931090349687 0.0698404638103763  0.0631497630174323 0.0698219681355254  0.0640006471674792 0.0698036240489007  0.0648458925699407 0.0697854286058755  0.065685627654717 0.0697673789284845  0.0665199783239553 0.0697494722024824  0.0673490680792206 0.0697317056744046  0.0708981112698566 0.0696557712504276  0.0735669834252473 0.0695989699355412  0.0761840168219969 0.0695435752667643  0.07875331837617 0.0694894968138596  0.0812787582182416 0.0694366502742661  0.0837640048573355 0.0693849566819965  0.086212557002725 0.0693343417046883  0.0886277720444363 0.0692847350287655  0.0910128911911111 0.069236069832812  0.0980874014176804 0.0690927073815149  0.102695947391883 0.0690006432162316  0.107221886223142 0.0689115794627476  0.111688906368597 0.0688250542305521  0.116120046908006 0.0687406372312306  0.120538173030761 0.0686579206220693  0.124967005296588 0.068576501604082  0.129431437583662 0.068495978467081  0.133958929671349 0.0684159296326439  0.13858066 0.0683359 
- 0.146801354201132 11 0.15625 9 0.1875 9 0.25 11
-7 0 0  5 6 2  0.34480012 0.43452143  0.390147331923848 0.428974881982615  0.427656077540485 0.42497195095324  0.462446698016548 0.421423161577788  0.496050037160526 0.418225068982948  0.532403391212581 0.415012458030018 
- 0.146801354201132 6 0.25 6
-7 0 0  10 20 3  0.03779578 0.07037827  0.0395049817248071 0.0703402266041751  0.041188697666045 0.0703028202278088  0.0428478436909338 0.0702660295855473  0.0444834213893917 0.0702298315850274  0.0460960506195444 0.0701942116661887  0.0476868498139299 0.0701591442978185  0.0492563780162837 0.0701246164331286  0.0508054987854735 0.0700906083245715  0.0523349092252828 0.0700571040006353  0.0544423581312618 0.0700110363207862  0.0550364317866361 0.0699980614847354  0.0556275791193147 0.0699851618638023  0.0562158427345484 0.0699723364867751  0.0568012646073013 0.0699595843979794  0.0573838860974301 0.0699469046569272  0.0579637479648616 0.0699342963379654  0.0585408903847717 0.0699217585299251  0.0591153529627635 0.0699092903357707  0.0596871747500459 0.0698968908722486 
- 0.125 11 0.140625 9 0.146801354201132 11
-7 0 0  4 5 2  0.292853383143588 0.44117714741059  0.306999353810418 0.439281672842096  0.320266366023218 0.437564717124493  0.332825270417433 0.435986109493388  0.34480012 0.43452143 
- 0.125 5 0.146801354201132 5
-8 0 0.125
-7 0 0  10 20 3  0 0.07121022  0.00110999490450371 0.0711865237136546  0.00228564986983823 0.0711612863661483  0.00352877784035738 0.0711344737013042  0.00484179051082043 0.071106037194092  0.00622745081841692 0.0710759195304447  0.00768926633330155 0.0710440463169739  0.00923110547709872 0.0710103343437567  0.0108576298033373 0.0709746823565186  0.0125741387961103 0.0709369743475971  0.0161994687426301 0.0708571746119661  0.0181082887116314 0.0708150829066132  0.0201194297106075 0.0707706636379191  0.022239895658825 0.0707237619804414  0.0244776540659377 0.0706742012376572  0.0268417860793118 0.0706217795148277  0.0293426832248074 0.0705662653364042  0.0319923131918947 0.0705073917074735  0.0348045770147187 0.0704448481195041  0.03779578 0.07037827 
- 0 11 0.0625 9 0.125 11
-7 0 0  6 7 2  0.20327796 0.45411017  0.212031114087676 0.452753917459781  0.222654496371833 0.451130318657426  0.235347952765811 0.449223391708901  0.25063629646005 0.446986673341991  0.269196331872767 0.444347049293292  0.292853383143588 0.44117714741059 
- 0 7 0.125 7
-7 0 0  10 11 2  0.20327796 0.45411017  0.200096099272467 0.454729269900308  0.196991900490075 0.455339333838763  0.193962671826092 0.455940780769885  0.191005876495484 0.456534008892542  0.188119120597378 0.457119397396151  0.185300142274191 0.457697308033005  0.182546802011996 0.458268086538498  0.179857073934082 0.45883206391826  0.177229037962459 0.459389557618823  0.174660872740947 0.459940872596311 
- 0 11 0.11097547291231 11
-7 0 0  3 4 2  0 36.84377716  0.0780187214301323 36.8399372641308  0.147510664310045 36.8370032433385  0.21070762 36.8342907 
- 0 4 0.11097547291231 4
-7 0 0  10 11 2  0.174660872740947 0.459940872596311  0.171216528711955 0.460680279249317  0.167879876281904 0.461408572018397  0.1646465215973 0.462126486582022  0.161512390213815 0.462834718206611  0.158473696387605 0.463533926383877  0.15552691679893 0.464224738874713  0.152668767878126 0.464907755272827  0.149896186102389 0.465583550179336  0.147206310776766 0.466252676061949  0.144596468920789 0.466915665859125 
- 0.11097547291231 11 0.25981235625939 11
-7 0 0  3 4 2  0.21070762 36.8342907  0.295465430345778 36.830652716587  0.368895221832376 36.8273429051638  0.43419735 36.82418923 
- 0.11097547291231 4 0.25981235625939 4
-8 0.5 0.66666667
-7 0 0  9 34 5  0.67713246 36.81712964  0.668323810415358 36.8171517809638  0.660253201316873 36.817183262589  0.652768305811015 36.8172231420472  0.645758233792029 36.8172708310708  0.639137543555951 36.8173259664174  0.632837012365878 36.8173883436259  0.626798849353166 36.8174578906236  0.620974034142018 36.8175346569179  0.609664895021208 36.8177029328718  0.604180565678877 36.8177944430815  0.598823485082383 36.8178934787872  0.593556532993983 36.8180003049014  0.58834649566398 36.8181152872679  0.583162486155305 36.8182388960757  0.577974679649574 36.8183717196575  0.572753293644104 36.8185144849404  0.562182192255721 36.8188216766476  0.556832419767189 36.8189861053439  0.551387872453572 36.8191622521167  0.545816688421124 36.8193511844464  0.540085055874694 36.8195541634281  0.53415603947079 36.8197726877104  0.527987874053783 36.8200085698209  0.521531725784801 36.8202640450735  0.507926115524475 36.820819780719  0.500776614691399 36.8211200432942  0.493221671579913 36.821445502774  0.485192038792341 36.8217995650547  0.476606652850684 36.8221862921971  0.467361264953846 36.8226109983543  0.45733316355603 36.823080029575  0.446354673101374 36.8236021085788  0.43419735 36.82418923 
- 0.5 10 0.5416666675 8 0.583333335 8 0.6250000025 8 0.66666667 10
-7 0 0  5 6 2  0.112620972747793 0.476447432665769  0.120796530583272 0.473469199861339  0.12379391068276 0.472740959702865  0.129853618206912 0.470876578570637  0.132935462161493 0.469877963551037  0.144596468920789 0.466915665859125 
- 0.5 6 0.66666667 6
-7 0 0  10 11 2  0.112620972747793 0.476447432665769  0.111392853992997 0.476894817864048  0.110194762991694 0.477341919868944  0.109026240109188 0.477788900720945  0.107886854008857 0.478235922071652  0.106776200668128 0.478683145519872  0.105693902518944 0.479130732945528  0.104639607703806 0.479578846844315  0.103612989440991 0.480027650666016  0.102613745494379 0.480477309159494  0.101641597745167 0.480927988727755 
- 0.483275274148006 11 0.590805291191008 11
-7 0 0  3 4 2  0.67713246 36.81712964  0.708889757828281 36.817049816732  0.73764355388071 36.8171499592905  0.764213660000001 36.8171798100001 
- 0.483275274148006 4 0.590805291191008 4
-8 0.16666667 0.33333333
-7 0 0  11 32 4  0.90074562 36.81686472  0.897082266243251 36.8168799198677  0.893412976408336 36.8168948587124  0.88973941807025 36.8169095249095  0.886069046409812 36.8169238846419  0.882393672825806 36.8169379658492  0.878733478322415 36.8169516857974  0.875072791046906 36.8169651027553  0.8714289607819 36.8169781461582  0.867797317920682 36.8169908324105  0.864183693395037 36.8170031371945  0.856997356767851 36.8170269632796  0.85342471061992 36.8170384843317  0.849875632024755 36.8170496006604  0.846353162800186 36.817060300237  0.842860327659722 36.8170705716384  0.839400120690734 36.8170804043614  0.835975491812442 36.8170897884973  0.83258933325932 36.8170987152178  0.829244466038011 36.8171071764164  0.825943626406964 36.8171151650636  0.816181104206942 36.8171376951245  0.809859490263722 36.8171508004807  0.803745468092877 36.8171619428361  0.797859199695371 36.8171710880807  0.792217997731418 36.8171782201452  0.786837306972746 36.8171833387055  0.781730602834941 36.8171864599095  0.776908410660567 36.8171876153089  0.772378210378977 36.8171868516431  0.768145691180943 36.8171842266755  0.76421366 36.81717981 
- 0.16666667 12 0.208333335 10 0.25 10 0.33333333 12
-7 0 0  4 5 2  0.0868737295748928 0.490307523452096  0.0903435767207467 0.486926954562923  0.095081468598451 0.484041175471148  0.0990040681574102 0.482150725391859  0.101641597745167 0.480927988727755 
- 0.16666667 5 0.33333333 5
-8 0 0.16666667
-7 0 0  10 29 4  1 36.81695782  0.994354359486993 36.8169093987847  0.989315191343669 36.8168703909399  0.984686474144149 36.816838449751  0.980348959443397 36.8168122270797  0.976206520225756 36.8167907662226  0.972194331075857 36.8167734615857  0.968243492725017 36.8167598343786  0.964302093807652 36.8167496087874  0.960312754870038 36.8167426016144  0.954167977228527 36.8167368378494  0.952092935037039 36.8167357076644  0.949983583945369 36.816735361735  0.94783233490202 36.8167358002722  0.945631104518365 36.8167370309496  0.943371137562187 36.8167390688935  0.941042929394909 36.8167419372667  0.938636094584339 36.8167456677441  0.936139027937216 36.8167503021088  0.930937380429831 36.8167614867392  0.928232797009678 36.8167680371571  0.925411054509608 36.8167755992339  0.922456906537648 36.816784239812  0.919353054124791 36.8167940395669  0.916079618431547 36.8168050957454  0.912613291763075 36.8168175266229  0.908926166889136 36.8168314782591  0.904984244671939 36.8168471329713  0.90074562 36.81686472 
- 0 11 0.083333335 9 0.1250000025 9 0.16666667 11
-7 0 0  5 6 2  0.08150659 0.50000033  0.0818207500208935 0.497630374271205  0.0823958106068094 0.496295789611764  0.0834518030945842 0.494528774193683  0.0839539252893805 0.493152201939411  0.0868737295748928 0.490307523452096 
- 0 6 0.16666667 6
-8 0 0.08150659
-7 0 0  2 3 2  0.0815065892490915 0.50000033  0.040753292366406 0.50000033  7.50908543678541e-010 0.50000033 
- 0 3 0.08150659 3
-8 0 0.08150659
-7 0 0  2 3 2  0.0815065892490916 0.50000033  0.0407532923664056 0.50000033  7.50908439595133e-010 0.50000033 
- 0 3 0.08150659 3
-8 0.49999967 1
-7 0 0  9 26 4  0 0.50000033  0 0.486111431955032  0 0.472222513256102  0 0.458333672272959  0 0.444444688782876  0 0.430555872422634  0 0.4166669239346  0 0.402778044839883  0 0.388889143529007  0 0.361111347571513  0 0.347222449597914  0 0.333333551628694  0 0.319444653662946  0 0.305555755699975  0 0.291666857738848  0 0.277777959778835  0 0.263889061819072  0 0.222222367938141  0 0.194444572013818  0 0.16666677608054  0 0.138888980133113  0 0.111111184166238  0 0.0833333881747504  0 0.0555555921533563  0 0.0277777960968568  0 0 
- 0.49999967 10 0.6249997525 8 0.749999835 8 1 10
-8 0.49999967 1
-7 0 0  10 29 4  1.88324107 0.50000033  1.88324107000001 0.487500321759534  1.88324106999997 0.475000292244931  1.88324107000004 0.462500345947151  1.88324106999996 0.450000236366262  1.88324107000003 0.437500338777545  1.88324106999997 0.425000247214749  1.88324107000003 0.412500281585464  1.88324106999998 0.400000259826733  1.88324107000001 0.387500253731142  1.88324106999999 0.362500237369381  1.88324107000004 0.350000229192649  1.88324106999995 0.337500221019441  1.88324107000002 0.325000212849255  1.88324107000003 0.312500204681465  1.88324106999995 0.30000019651551  1.88324107000003 0.287500188350856  1.88324106999999 0.275000180186876  1.88324107 0.262500172023041  1.88324107000001 0.225000147530203  1.88324106999994 0.200000131198679  1.88324107000013 0.175000114860528  1.88324106999982 0.150000098512083  1.88324107000018 0.125000082149669  1.88324106999985 0.100000065769655  1.88324107000009 0.0750000493683219  1.88324106999996 0.0500000329420617  1.88324107000001 0.0250000164871695  1.88324107 8.54683369596916e-026 
- 0.49999967 11 0.6249997525 9 0.749999835 9 1 11
-8 0 0.50000087
-7 0 0  3 4 2  0 0.50000087  0 0.33333391128273  0 0.166666958760574  0 0 
- 0 4 0.50000087 4
-8 0 0.50000087
-7 0 0  9 26 4  2.97015674 0.50000087  2.97015673999998 0.486111956773562  2.97015674000008 0.472223054653506  2.97015673999987 0.458334110755184  2.97015674000012 0.444445243623615  2.97015673999993 0.430556286489527  2.97015674000002 0.416667400571964  2.97015674 0.402778477283351  2.97015674 0.388889565988211  2.97015673999999 0.361111739842346  2.97015674000004 0.347222826784757  2.97015673999994 0.333333913740226  2.97015674000005 0.319445000706565  2.97015673999998 0.305556087681449  2.97015674 0.291667174662679  2.97015674000001 0.277778261647985  2.97015674 0.263889348635111  2.97015673999998 0.222222609595217  2.9701567400001 0.194444783561792  2.9701567399998 0.166666957508005  2.97015674000026 0.13888913142033  2.97015673999976 0.111111305285231  2.97015674000016 0.0833334790891804  2.97015673999992 0.0555556528186448  2.97015674000002 0.0277778264600953  2.97015674 5.55111512312578e-017 
- 0 10 0.1250002175 8 0.250000435 8 0.50000087 10
-8 2.57033879 2.97015674
-7 0 0  11 12 2  2.97015674 0.50000087  2.93380965449239 0.500000870000008  2.89746252253813 0.500000869999965  2.8611156589232 0.500000870000084  2.82476797836058 0.500000869999854  2.78842196976991 0.500000870000193  2.75207349148943 0.500000869999803  2.71572771212688 0.500000870000156  2.67937974931867 0.500000869999908  2.64303306312603 0.500000870000038  2.60668587511204 0.500000869999991  2.57033879 0.50000087 
- 2.57033879 12 2.97015674 12
-8 2.57033879 2.97015674
-7 0 0  11 12 2  2.97015674 0.50000087  2.9338096544923 0.500000869999991  2.89746252253848 0.500000870000038  2.86111565892238 0.500000869999908  2.82476797836199 0.500000870000156  2.78842196976802 0.500000869999803  2.75207349149142 0.500000870000193  2.71572771212527 0.500000869999854  2.67937974931965 0.500000870000084  2.64303306312563 0.500000869999965  2.60668587511213 0.500000870000008  2.57033879 0.50000087 
- 2.57033879 12 2.97015674 12
-8 0.50000087 1
-7 0 0  9 26 4  2.97015674 0.50000087  2.97015673999998 0.513889734721227  2.97015674000007 0.527778610792842  2.97015673999984 0.541667444313104  2.97015674000024 0.555556355768084  2.97015673999974 0.569445175856436  2.97015674000019 0.583334068152375  2.97015673999991 0.597222922526091  2.97015674000002 0.611111789035472  2.97015673999998 0.638889518408022  2.97015674000007 0.652778383088859  2.97015673999989 0.66666724776493  2.97015674000013 0.680556112436945  2.97015673999989 0.694444977105598  2.97015674000007 0.708333841771539  2.97015673999997 0.722222706435527  2.97015674 0.73611157109819  2.97015674 0.777778165084378  2.97015673999998 0.805555894407632  2.97015674000004 0.833333623734167  2.97015673999994 0.861111353068365  2.97015674000004 0.88888908241419  2.97015673999998 0.916666811776156  2.97015674000001 0.94444454115823  2.97015674 0.972222270564798  2.97015674 1 
- 0.50000087 10 0.6250006525 8 0.750000435 8 1 10
-8 0.50000087 1
-7 0 0  1 2 2  0 0.500000869991061  0 1.00000000004157 
- 0.50000087 2 1 2
-8 0 0.49999967
-7 0 0  10 29 4  1.88324107 0.50000033  1.88324107000001 0.51250032190514  1.88324106999996 0.52500029247335  1.8832410700001 0.537500346342558  1.88324106999986 0.550000236722664  1.88324107000014 0.562500339301266  1.8832410699999 0.575000247688602  1.88324107000007 0.587500282118518  1.88324106999996 0.600000260348969  1.88324107000002 0.61250025424393  1.88324106999996 0.637500237835303  1.8832410700002 0.650000229623133  1.88324106999955 0.662500221403787  1.8832410700007 0.675000213179203  1.88324106999922 0.687500204948933  1.88324107000065 0.700000196715905  1.88324106999962 0.712500188479355  1.88324107000014 0.725000180241665  1.88324106999998 0.737500172003158  1.88324106999999 0.775000147289107  1.8832410700001 0.800000130817119  1.88324106999975 0.825000114355612  1.88324107000038 0.850000097912286  1.88324106999959 0.875000081492471  1.88324107000032 0.900000065104785  1.88324106999983 0.925000048754319  1.88324107000006 0.950000032449129  1.88324106999999 0.975000016195329  1.88324107 1 
- 0 11 0.1249999175 9 0.249999835 9 0.49999967 11
-8 0 0.49999967
-7 0 0  9 26 4  0 0.50000033  0 0.513889209894611  0 0.527778069062903  0 0.541667006031533  0 0.555555800284514  0 0.569444761846441  0 0.583333591103589  0 0.597222489814467  0 0.611111366266625  0 0.638889125812616  0 0.652778005575671  0 0.666666885330358  0 0.680555765078019  0 0.694444644820377  0 0.708333524558684  0 0.722222404294633  0 0.736111284029606  0 0.777777923236224  0 0.805555682712269  0 0.833333442202963  0 0.861111201718134  0 0.888888961267309  0 0.916666720860467  0 0.944444480507083  0 0.972222240217046  0 1 
- 0 10 0.1249999175 8 0.249999835 8 0.49999967 10
-8 0.83333333 1
-7 0 0  11 22 3  0.90093908 1.37508615  0.908397882340601 1.37511789551397  0.914976386463459 1.37514355409623  0.920885357295594 1.37516432732012  0.926270898144847 1.37518101441146  0.931236427854085 1.3751941232728  0.935859672781538 1.3752040676649  0.940219872396141 1.3752111048199  0.944356976950594 1.3752154077437  0.948329922186802 1.37521708882118  0.952177585956753 1.37521617564774  0.959706733655903 1.37520908663438  0.963388054530177 1.3752029107645  0.967027498282775 1.37519406399888  0.970663638564187 1.37518243709385  0.974335585762615 1.37516784402371  0.978084707416639 1.37515001556828  0.981956977752844 1.37512857782966  0.986006249995863 1.37510301797999  0.990298791225448 1.37507263341605  0.994921465827136 1.37503642994975  1 1.37499288 
- 0.83333333 12 0.916666665 10 1 12
-7 0 0  5 6 2  0.086853206421423 0.509679206490503  0.084032069299139 0.506923770749196  0.0834418699990379 0.505498309184647  0.0824075265306424 0.503743882731178  0.0818174507570432 0.502345412319621  0.08150659 0.50000033 
- 0.83333333 6 1 6
-8 0.66666667 0.83333333
-7 0 0  11 22 3  0.76431717 1.37477091  0.767985318514328 1.37476674090643  0.772041799742182 1.37476426943552  0.776486828709346 1.37476362312478  0.7813207048126 1.37476492139064  0.786520011759617 1.37476824804766  0.792086650110804 1.37477368693424  0.797973400184317 1.37478125945455  0.804163244917724 1.37479097424178  0.810610524289137 1.3748027913904  0.817274391264952 1.37481663739709  0.830943000805527 1.37484817620684  0.837947796281036 1.37486586904922  0.845077200937532 1.374885379369  0.852282673578362 1.37490656968873  0.859514324634959 1.37492927355281  0.866722868529091 1.37495330211291  0.8738615440822 1.37497845237624  0.880887598370994 1.37500451546419  0.887763197878284 1.37503128391304  0.894455899198023 1.37505855777874  0.90093908 1.37508615 
- 0.66666667 12 0.75 10 0.83333333 12
-7 0 0  4 5 2  0.101624718349277 0.519071755635629  0.099164412899412 0.517930834970797  0.0948247038742984 0.515933929108478  0.0899183671929698 0.512672982821351  0.086853206421423 0.509679206490503 
- 0.66666667 5 0.83333333 5
-7 0 0  11 12 2  0.101624718349277 0.519071755635629  0.102732079706668 0.51958527376654  0.103874284111854 0.520097469294138  0.105051732385784 0.520608582208445  0.106264863496939 0.521118849863533  0.107514155293466 0.5216285075852  0.10880012541719 0.522137789260522  0.110123332404438 0.52264692791539  0.11148437698176 0.523156156285566  0.112883903567741 0.523665707386437  0.114322601995888 0.524175815086677  0.115801209478417 0.524686714691289 
- 0.409120244843595 12 0.543968604417467 12
-7 0 0  3 4 2  0.76431717 1.37477091  0.731021989874177 1.37480874967554  0.694277491112666 1.37498238083873  0.65252552 1.37471381 
- 0.409120244843595 4 0.543968604417467 4
-8 0.33333333 0.5
-7 0 0  8 30 5  0.42945929 1.36753154  0.442488634426464 1.36816158585058  0.454116343349695 1.36871580874671  0.464644612421862 1.36920987028907  0.474281015563621 1.36965442480614  0.483176479163603 1.37005717043982  0.491454681044649 1.37042430607694  0.499212004941024 1.37076057740937  0.513846887181929 1.3713791560637  0.520724497403062 1.37166146558045  0.527242920931582 1.37192065962551  0.533466844004618 1.37215970907577  0.539450257205643 1.37238096001497  0.54524043961026 1.37258632485819  0.550880664763563 1.37277739592872  0.561942592211133 1.37313356705213  0.567364332005258 1.37329866832858  0.572717603512002 1.37345209957632  0.57804107852668 1.37359490700136  0.583373027953093 1.37372793275535  0.588753426162042 1.3738518561876  0.594226476754899 1.37396721235581  0.605460642705284 1.37418156322911  0.611221798534691 1.37428055819706  0.61717834584797 1.37437175835898  0.623390004671927 1.3744554140624  0.629926692320886 1.37453162008077  0.636876956965312 1.37460031769398  0.64435448682883 1.37466124771494  0.65252552 1.37471381 
- 0.33333333 9 0.3749999975 7 0.416666665 7 0.4583333325 7 0.5 9
-7 0 0  5 6 2  0.14522680218064 0.533247098871843  0.134112796714545 0.530437717104447  0.130958088057959 0.529427278707453  0.125481625620456 0.527817825842717  0.122591748752992 0.527033033015441  0.115801209478417 0.524686714691289 
- 0.33333333 6 0.5 6
-7 0 0  11 12 2  0.14522680218064 0.533247098871842  0.147537503637425 0.533831194548454  0.149909987743957 0.534420096434956  0.152346047202526 0.535014159878386  0.154847581495481 0.53561375145831  0.157416604082514 0.536219250221059  0.160055250408495 0.536831049013025  0.162765786835428 0.537449555931079  0.165550620635617 0.538075195911031  0.168412311212122 0.538708412478557  0.171353582748036 0.539349669691052  0.174377338529506 0.539999454303556 
- 0.743934327122079 12 0.887898366733494 12
-7 0 0  3 4 2  0.42945929 1.36753154  0.365890020941815 1.36445758330428  0.294654165642281 1.3612633738537  0.21279921 1.3577497 
- 0.743934327122079 4 0.887898366733494 4
-7 0 0  11 12 2  0.174377338529506 0.539999454303555  0.176731870693348 0.540505427298824  0.179136416309958 0.541016570793195  0.181592346146173 0.541533114604756  0.184101096815626 0.542055296896329  0.186664174879127 0.54258336479553  0.189283161318153 0.543117575064782  0.191959716423955 0.543658194827024  0.194695585150671 0.544205502353522  0.197492602987485 0.544759787920826  0.200352702412546 0.54532135474475  0.20327792 0.54589052 
- 0.887898366733494 12 1 12
-7 0 0  3 4 2  0.21279921 1.3577497  0.149060555761036 1.35501368077307  0.0788984755053684 1.35205610556599  1.38777878078145e-017 1.34817287 
- 0.887898366733494 4 1 4
-8 0.875 1
-7 0 0  10 20 3  0.07037813 0.0377961  0.0704499426869137 0.0345681548164226  0.0705159654563911 0.0315982669073528  0.0705769848588014 0.0288512066588311  0.0706336264183882 0.0262989361723267  0.0706863996167464 0.0239185967144787  0.0707357284896106 0.0216911391816053  0.0707819714963668 0.0196004336151033  0.0708254343262612 0.0176326938034808  0.0708663793003677 0.0157760530071601  0.0709436907651144 0.0122642006765379  0.0709800571021766 0.0106089961260095  0.0710143627652237 0.00904412289620943  0.0710467991909085 0.00756083799264718  0.0710775375670998 0.00615125947513862  0.0711067145142684 0.00480903933938631  0.0711344662214359 0.00352776604925062  0.0711608964323466 0.00230245230955844  0.071186108777507 0.00112800963909492  0.07121019 -8.67361737988404e-019 
- 0.875 11 0.9375 9 1 11
-7 0 0  6 7 2  0.292853996512273 0.558823680902877  0.267324465259208 0.55540286807992  0.249130739015365 0.552788417482159  0.234404200628063 0.550637077242087  0.222402588493264 0.548829693310337  0.212173132094285 0.547268788391822  0.20327792 0.54589052 
- 0.875 7 1 7
-7 0 0  8 16 3  0.0698967092057798 0.0596872562155088  0.0699173044628521 0.0587379593450928  0.0699381161313903 0.0577801677457936  0.0699591502803325 0.056813610894843  0.0699804131783438 0.0558380101073412  0.0700019113072075 0.0548530779529296  0.0700236513752154 0.0538585176724655  0.0700456403305598 0.0528540225946948  0.0701040612536585 0.0501890488386233  0.0701409143960235 0.0485117093814221  0.0701784762027226 0.0468058737805824  0.0702167778740569 0.0450701746654927  0.0702558569229707 0.0433029658087883  0.0702957480087893 0.0415027386217731  0.0703364916683205 0.0396677260747343  0.07037813 0.0377961 
- 0.849766973181494 9 0.859375 7 0.875 9
-7 0 0  4 5 2  0.34480012 0.56547934  0.332967436702522 0.564032044882102  0.320486969202548 0.562463962947263  0.307196876280102 0.560745545685334  0.292853996512273 0.558823680902877 
- 0.849766973181494 5 0.875 5
-7 0 0  8 30 5  0.06855952 0.12599594  0.0686060508956445 0.123443721444552  0.0686523734690961 0.120928712511283  0.0686986128973645 0.118443132091556  0.0687448861906601 0.115979880791496  0.0687913045976996 0.113532375057738  0.0688379758273821 0.111094401335934  0.0688850060867181 0.108659990261752  0.0689799977835502 0.103786631507548  0.0690279591846604 0.101347685606851  0.0690764928123559 0.0989006361585669  0.0691257053475821 0.0964398012879232  0.0691757055853389 0.0939595335354975  0.0692266061576057 0.091454126070681  0.0692785252006407 0.0889177275865702  0.0693846513890724 0.0837707676331971  0.0694388585638577 0.0811602047676904  0.0694943354280622 0.0785064670053409  0.0695512153222684 0.0758032097813292  0.0696096411491599 0.0730437465663444  0.0696697678399199 0.0702209343522129  0.0697317654566045 0.0673270340309319  0.069808156757815 0.0637810208752886  0.0698205669495402 0.0632055455413722  0.0698330548555482 0.0626270589394621  0.0698456218512422 0.0620454993131167  0.0698582693388753 0.061460803819062  0.0698709987488409 0.0608729084710057  0.0698838115409616 0.0602817480834508  0.0698967092057798 0.0596872562155088 
- 0.75 9 0.78125 7 0.8125 7 0.84375 7 0.849766973181494 9
-7 0 0  4 5 2  0.502430083744267 0.582273314723503  0.463619884081318 0.578670451937887  0.428648542294595 0.575091895706327  0.391584479334934 0.571201692288573  0.34480012 0.565479339999999 
- 0.75 5 0.849766973181494 5
-7 0 0  11 12 2  0.502430083744267 0.582273314723503  0.522501663186258 0.584136617341065  0.542976113011614 0.5859693979723  0.56383871644875 0.587769125398031  0.585073292810326 0.589533285490213  0.606662228571089 0.591259396444165  0.628586527041634 0.592945024604801  0.650825877296698 0.594587800588423  0.673358742035027 0.596185435326258  0.696162463167186 0.597735735624371  0.719213383148094 0.599236618846785  0.742486979392384 0.600686126384672 
- 0.388108130442962 12 0.458397371248378 12
-7 0 0  3 4 2  0.06855952 0.12599594  0.0679961312025538 0.156898302596973  0.0674937765389551 0.190973145070398  0.06708392 0.22674332 
- 0.388108130442962 4 0.458397371248378 4
-7 0 0  11 32 4  0.742486979392384 0.600686126384672  0.756262100209903 0.60154405746033  0.770115228780121 0.60238399065138  0.784041280441872 0.603205519848021  0.79803506437323 0.604008254161498  0.812091293355079 0.604791818902465  0.826204594097137 0.60555585650716  0.840369518058716 0.606300027402817  0.854580552686244 0.607024010804566  0.868832132980287 0.607727505437332  0.883118653296366 0.608410230177853  0.926110203815611 0.610397350572973  0.954903515452315 0.61163839619357  0.983769089186947 0.612792967079421  1.01266137989942 0.61385931009982  1.04153397334368 0.61483599567896  1.07034236818034 0.615722014538298  1.09904061196152 0.616516646794217  1.12758577970924 0.617219615540303  1.15593507259641 0.617830955573276  1.18404799773671 0.618351074519563  1.21845825328772 0.618882138445721  1.22501535251886 0.618978528771721  1.23155660788941 0.619069884703224  1.23808151620627 0.619156216920335  1.24458958051358 0.619237537122628  1.25108031028417 0.619313858015604  1.25755322159892 0.619385193296466  1.26400783731497 0.619451557639239  1.27044368722367 0.619512966679235  1.27686030819888 0.619569436996878  1.28325724433633 0.619620986100931 
- 0.458397371248378 12 0.5 10 0.583333335 10 0.603008108383431 12
-7 0 0  4 5 2  0.06708392 0.22674332  0.0664514980136923 0.281937593812552  0.0660201617958299 0.340830340174219  0.0658626482918891 0.399203526854614  0.065844 0.45339225 
- 0.458397371248378 5 0.603008108383431 5
-7 0 0  11 12 2  1.28325724433633 0.619620986100931  1.3039548018292 0.61978777540786  1.3244462839915 0.619903045838727  1.34471624841828 0.619967390450874  1.36475004417459 0.619981504042133  1.38453386117681 0.619946177201283  1.40405476914654 0.619862289660439  1.42330074801604 0.619730803041945  1.44226070961195 0.619552753163055  1.46092450839156 0.619329242127378  1.47928293695478 0.619061430509943  1.4973277 0.61875053 
- 0.603008108383431 12 0.66666667 12
-7 0 0  4 5 2  0.065844 0.45339225  0.0658357872605889 0.477246469933229  0.0658536737774236 0.500321756070562  0.0658910123888447 0.522366341383861  0.0659340686464917 0.543222394527479 
- 0.603008108383431 5 0.66666667 5
-7 0 0  9 10 2  0.06604976 0.59201791  0.0660330364552352 0.585611354854732  0.0660174769769041 0.579517079616863  0.066002976078619 0.573700673612952  0.065989445460411 0.568132760038515  0.0659768102346407 0.562787823911149  0.0659650063302675 0.557643391728085  0.0659539786536799 0.552679435254906  0.0659436797246696 0.547877911941166  0.0659340686464917 0.543222394527479 
- 0.375 10 0.41045693926711 10
-7 0 0  4 5 2  1.61331836212274 0.61576988267499  1.5790856767609 0.616938598025865  1.5492600901306 0.617732037046776  1.52225080980301 0.618321120168623  1.4973277 0.61875053 
- 0.375 5 0.41045693926711 5
-8 0.25 0.375
-7 0 0  11 32 4  0.06622745 0.68027135  0.0662249617422559 0.676327523715387  0.0662222282362122 0.672873988095422  0.0662192487746604 0.669724990888826  0.0662160098166212 0.666778643112277  0.0662124911671566 0.66395981881058  0.0662086644628992 0.661212876262881  0.0662044942239083 0.65849023049417  0.0661999352779993 0.655749982102431  0.0661949304267246 0.652951051318653  0.0661894062361583 0.650050769693855  0.0661801937874518 0.645475215145041  0.0661769686147643 0.643912510047743  0.0661735768074134 0.642306188774598  0.0661700045819582 0.64064979335027  0.0661662363313223 0.638936353802124  0.0661622543022349 0.637158243793873  0.0661580382042005 0.635307016013435  0.0661535646795615 0.633373191459627  0.0661488065713732 0.631345976795835  0.0661437319188159 0.629212883922825  0.0661328733123762 0.624705567937472  0.0661270893572923 0.622331344490672  0.0661209126014347 0.61982185298855  0.0661142987788384 0.617160203986058  0.0661071958680381 0.614326706603127  0.0660995424167349 0.611298246607044  0.0660912649045486 0.608047309255978  0.0660822740343289 0.604540607541912  0.0660724596328476 0.600737200212827  0.0660616825913633 0.596585522922818  0.06604976 0.59201791 
- 0.25 12 0.3125 10 0.34375 10 0.375 12
-7 0 0  7 8 2  1.82243701492879 0.605418142870447  1.79314661649893 0.607325803168772  1.77603857669341 0.608318155756781  1.7545231352709 0.609479674042788  1.73858666581076 0.610556692117729  1.7087596066923 0.611771948890432  1.68150162747433 0.613442083145185  1.61331836212274 0.615769882674991 
- 0.25 8 0.375 8
-7 0 0  8 16 3  1.82243701492879 0.605418142870447  1.85704378901435 0.603164231264085  1.89156921790408 0.60070598110988  1.92594744408152 0.598044934272556  1.96011165522021 0.595183736121992  1.99399491567649 0.592126151449912  2.02753107366233 0.588877045130956  2.0606556768397 0.585442323085112  2.10378946698009 0.580668725702695  2.11422334860896 0.579490185753496  2.12460637498729 0.578293447031874  2.13493652307908 0.577078746472272  2.14521179934256 0.575846330788774  2.15543024246294 0.574596456129768  2.16558992595918 0.573329387700741  2.17568896064473 0.57204539935976 
- 0.757022074411284 9 0.833333335 7 0.857833183419821 9
-7 0 0  3 4 2  0.06622745 0.68027135  0.0662600002586235 0.731861495571935  0.066071003871452 0.783202082049036  0.06544933 0.8306101 
- 0.757022074411284 4 0.857833183419821 4
-7 0 0  8 9 2  2.17568896064473 0.57204539935976  2.23429126655193 0.564594719182665  2.2908514020851 0.55657431072021  2.34500023722083 0.548037683370255  2.39641092670016 0.539048156893567  2.44481509975849 0.529676200014164  2.49001347652848 0.519995726434809  2.53187651037283 0.51008035950624  2.57033879 0.50000087 
- 0.857833183419821 9 1 9
-7 0 0  4 5 2  0.06544933 0.8306101  0.0647918081833654 0.880752244040605  0.0637268608521369 0.927027559065475  0.0622921412548716 0.966928948778884  0.06075625 1 
- 0.857833183419821 5 1 5
-8 0 55.21292144
-7 0 0  11 12 2  0 55.21292144  0 50.1935649403198  0 45.1742088735556  0 40.1548507332976  0 35.1354977241614  0 30.116136289694  0 25.0967847290392  0 20.0774247530174  0 15.0580699358463  0 10.0387129269252  0 5.01935650168796  0 -5.15367502986138e-015 
- 0 12 55.21292144 12
-8 0 55.21292144
-7 0 0  10 20 3  1 2.52012912  1 2.39412266365863  0.999999999999985 2.26811627384546  1.00000000000003 2.14210959374573  0.999999999999961 2.01610355062153  1.00000000000004 1.89009659637101  0.999999999999975 1.76409054778864  1.00000000000001 1.63808386844942  0.999999999999996 1.51207748770569  1 1.38607101930746  1 1.13405810685792  0.999999999999988 1.00805165061462  1.00000000000002 0.882045194352718  0.999999999999963 0.756038738072331  1.00000000000005 0.630032281773265  0.999999999999954 0.504025825455808  1.00000000000004 0.378019369119629  0.99999999999998 0.252012912765009  1.00000000000001 0.126006456391774  1 0 
- 0 11 27.60646072 9 55.21292144 11
-8 0 1
-7 0 0  11 32 4  2.77555756156289e-017 0  0.0454545454545524 0  0.090909018600636 0  0.136364097864244 0  0.18181672377039 0  0.227275428498608 0  0.272723958197112 0  0.318183872316266 0  0.363635697765604 0  0.409090941474244 0  0.454545532719968 0  0.522727346377397 0  0.545454616381054 0  0.568181775202725 0  0.590909063510762 0  0.613636436020497 0  0.636363726275171 0  0.659090915332787 0  0.681818149217452 0  0.704545492428793 0  0.727272747112523 0  0.772727272728162 0  0.795454554762829 0  0.81818184726602 0  0.84090910882119 0  0.863636335243012 0  0.886363562012609 0  0.909090829954948 0  0.931818144963694 0  0.954545462442222 0  0.977272727272764 0  1 0 
- 0 12 0.5 10 0.75 10 1 12
-8 0 1
-7 0 0  9 130 17  8.71417242 0.85810406  8.72010671487786 0.857286845569454  8.72602716238065 0.856351876801175  8.73193223984309 0.855303740939545  8.73782042645557 0.854147024899107  8.74369020328675 0.852886315265377  8.74954005325127 0.85152619829356  8.7553684611454 0.850071259910111  8.76117391361634 0.848526085711279  8.76984539196607 0.846079848590558  8.77272976686283 0.84524302377225  8.77560783430614 0.844385359773355  8.77847940472216 0.843507429858183  8.78134428854858 0.842609807290734  8.78420229620877 0.841693065335432  8.7870532381398 0.840757777256273  8.7898969247685 0.839804516317561  8.7955694082867 0.837863195249356  8.79839834862678 0.836875121771589  8.80121913308274 0.835870270479452  8.80403229413738 0.83484914745426  8.8068385101943 0.833812245199008  8.80963823980813 0.832760076668873  8.8124318396533 0.831693164301046  8.8152197745939 0.830612020466432  8.82078528206614 0.828422291096367  8.82356284626603 0.827313706424674  8.82633564719776 0.826191916643458  8.82910423514508 0.82505742992972  8.83186895223975 0.823910765700799  8.83463018363273 0.822752441052485  8.83738861162208 0.821582957040358  8.84014489214571 0.82040281613687  8.84565145436764 0.818022388282796  8.84840187183256 0.81682209400419  8.85114924601435 0.815612266951401  8.85389339726666 0.814393454701264  8.85663414595834 0.813166204831528  8.85937131243956 0.811931064918804  8.86210471707822 0.810688582540795  8.86483418022914 0.809439305274393  8.87028486427983 0.806928256119498  8.87300616389328 0.805666371303003  8.87572256457962 0.804399644927308  8.87843655700553 0.803124793639073  8.88114191212064 0.801851043567619  8.88384616448719 0.80056787550528  8.88654498596995 0.799281788100189  8.88924065431021 0.797989803608726  8.89462538193967 0.795395054238824  8.89731449906522 0.794092206392907  8.90000070715852 0.79278369075162  8.90268434387487 0.791469312680149  8.90536574687161 0.790148877544388  8.90804525380423 0.788822190709328  8.91072320232956 0.78748905754085  8.91339993010352 0.786149283404142  8.91875161946183 0.783456063925493  8.92142667017012 0.782102601672385  8.92410040886305 0.780742254648928  8.92677231749087 0.77937499059765  8.92944187801373 0.778000777262708  8.932108572378 0.776619582386082  8.93477188254465 0.775231373711966  8.93743129046285 0.773836118982837  8.94274126571488 0.771031452901492  8.94539175937448 0.769622183903817  8.94803781009952 0.768204826910553  8.9506768184001 0.766783440410601  8.95331281393284 0.765349050919613  8.95593900821557 0.763913952268704  8.95855982217862 0.762468401123379  8.96117360216221 0.761014596582506  8.96638765763751 0.758087268848398  8.96898790471009 0.756613801517266  8.97158132978091 0.755129560000932  8.97416789151184 0.753633573578166  8.97674754856661 0.752124871527921  8.97932025960704 0.750602483128875  8.98188598329666 0.749065437660042  8.98444467829759 0.747512764400119  8.98954792824834 0.744374220855922  8.99209261860689 0.742788311118308  8.99462888752844 0.741185213901434  8.99716325306338 0.739562047081663  8.99968128458306 0.737922033033361  9.00219377413311 0.736261044096632  9.00469127465916 0.734580850454755  9.00717571540018 0.732879907129056  9.01211360970985 0.729435974021651  9.01456713095515 0.727692966521647  9.01700397674227 0.725928288417601  9.01942207351488 0.724141584567384  9.02182034480689 0.722332167650432  9.02419756486951 0.720499400074731  9.02655156785102 0.718642957451459  9.02888037715023 0.716762452332329  9.03348974621098 0.712950512979629  9.03577007117633 0.711019156972917  9.03802583252999 0.709061436656014  9.04025682623083 0.707076374048553  9.04246284822885 0.705062991171129  9.04464369448397 0.703020310043047  9.04679916094799 0.700947352684929  9.04892904357763 0.698843141116378  9.05208518570231 0.695638475478174  9.0531307607161 0.694562223926386  9.05416992705927 0.693477720767548  9.0552025804297 0.69238493181677  9.05622864630788 0.691283789603147  9.05724815322801 0.690174111482033  9.0582611815468 0.689055656892157  9.05926768770529 0.687928323760948  9.06126672027463 0.685656644349723  9.06225926822408 0.684512273996756  9.0632445438215 0.683359562016299  9.0642222430453 0.682198697427905  9.06519206188264 0.681029869251695  9.06615369630901 0.679853266507035  9.06710684231157 0.678669078214046  9.06805119586871 0.677477493392281  9.07085696715352 0.673881116400246  9.07269109561411 0.671454701477404  9.07448640615027 0.669000968558531  9.07624046656604 0.666521429909358  9.0779508446663 0.664017597795072  9.07961510825532 0.661490984481634  9.08123082513756 0.658943102234172  9.08279556311769 0.656375463318496  9.08430689 0.65378958 
- 0 10 0.125 8 0.1875 8 0.25 8 0.3125 8 0.375 8 0.4375 8 0.5 8 0.5625 8 0.625 8 0.6875 8 0.75 8 0.8125 8 0.875 8 0.90625 8 0.9375 8 1 10
-8 0 55.31736968
-7 0 0  11 12 2  1 0  0.999999999999979 5.01055243742526  1.00000000000009 10.0211048217798  0.999999999999798 15.0316576183568  1.00000000000035 20.0422088675203  0.999999999999541 25.0527637704289  1.00000000000049 30.0633126980327  0.999999999999595 35.0738686576139  1.00000000000026 40.0844186104698  0.999999999999882 45.0949722142143  1.00000000000003 50.1055243443264  1 55.11607678 
- 0 12 55.31736968 12
-8 0 55.31736968
-7 0 0  9 18 3  0 9.62275446028575e-016  0 3.07318720700961  0 6.14637441389696  0 9.21956162066097  0 12.2927488273033  0 15.3659360338224  0 18.4391232402191  0 21.5123104464933  0 24.5854976526446  0 30.7318720647026  0 33.8050592104033  0 36.8782467501872  0 39.9514330890524  0 43.0246216466821  0 46.0978074984557  0 49.1709955579907  0 52.2441824748387  0 55.31736968 
- 0 10 27.65868484 8 55.31736968 10
-8 0 1
-7 0 0  10 38 5  0 0  0.0250000000000009 0  0.0499999935982559 0  0.0749999951115954 0  0.100000005706131 0  0.125000018349978 0  0.150000022765503 0  0.175000010382173 0  0.199999979288816 0  0.224999939186311 0  0.274999893493831 0  0.299999860945725 0  0.325000012430857 0  0.349999539230054 0  0.375001005301938 0  0.399999458593392 0  0.425000319885521 0  0.449999954067061 0  0.475000055708348 0  0.525000081923469 0  0.550000063826084 0  0.574999942038634 0  0.599999918468625 0  0.624999993447079 0  0.650000089978594 0  0.675000066260017 0  0.699999890279141 0  0.724999960709841 0  0.775000025744176 0  0.800000070824655 0  0.825000026156557 0  0.84999992844648 0  0.874999851592024 0  0.899999842281814 0  0.92499989303318 0  0.949999952652911 0  0.974999974137886 0  1 0 
- 0 11 0.25 9 0.5 9 0.75 9 1 11
-8 0 1
-7 0 0  11 232 24  9.08430689 0.65378958  9.08508284878552 0.649023057634539  9.08556488405621 0.644120886110153  9.08575432501281 0.639117360424039  9.08565250090079 0.634046775572625  9.08526074087754 0.628943426553749  9.08458037423481 0.6238416083632  9.08361273010158 0.618775615999201  9.08235913776507 0.613779744457585  9.08082092638903 0.608888288736121  9.07899942521361 0.604135543831295  9.07584423255725 0.597265935194777  9.07472201132118 0.595019317533022  9.07352946596792 0.592820238578348  9.07226676272958 0.590672985152841  9.07093406783661 0.588581844080954  9.06953154753184 0.586551102183763  9.06805936802888 0.584585046286107  9.06651769558478 0.582687963209481  9.06490669641066 0.580864139777775  9.06322653675331 0.579117862813493  9.05972822892558 0.575788975466071  9.05791016328993 0.574206206879086  9.05602864635833 0.572699254653611  9.05408913855769 0.571262260063659  9.05209710031347 0.569889364384597  9.05005799205418 0.568574708890074  9.04797727420245 0.567312434855298  9.04586040718934 0.56609668355455  9.04371285143705 0.564921596262332  9.04154006737459 0.563781314253332  9.03825123945369 0.562114311076325  9.03715002149503 0.561565879995439  9.03604454410693 0.561023953220054  9.03493548983777 0.560487798411537  9.03382354124741 0.559956683229671  9.03270938088474 0.559429875337181  9.03159369130211 0.558906642392537  9.03047715505942 0.558386252059068  9.02936045470135 0.557867971995701  9.02824427278816 0.557351069864503  9.02601431095095 0.556318556787143  9.02490075301549 0.555802685384149  9.0237877289477 0.555288310941245  9.02268033703368 0.554769519828005  9.02157437442052 0.55425131210463  9.02046983983329 0.553733757884169  9.01936802910315 0.553215405167419  9.0182676174064 0.552697877097873  9.01716841320553 0.552181466938608  9.01607039912075 0.551666263672921  9.01277872307835 0.550125893123371  9.0105875236918 0.549105852009951  9.00839744348638 0.548095733828487  9.00620635031953 0.547098588925188  9.00401211208315 0.546117467645254  9.00181259661358 0.545155420335542  8.99960567181534 0.544215497340615  8.99738920552787 0.543300749007648  8.99516106563923 0.54241422568143  8.99291912000926 0.54155897770845  8.98953229476053 0.540327594297213  8.98839922944729 0.539925941527947  8.98726297985933 0.539531510979102  8.98611842023471 0.539152612456654  8.98497695353454 0.538770586917952  8.98382077689848 0.538414428573102  8.98266499263712 0.538059442366149  8.98150321617556 0.537715992073234  8.98033709931785 0.537381328939358  8.97916715267653 0.537054566292128  8.9768198560428 0.536416316760472  8.97564253729798 0.536104778899009  8.97446185486582 0.535800273879792  8.97327811548189 0.535502247639629  8.97209162589183 0.535210146117235  8.97090269282783 0.53492341524885  8.96971162303482 0.534641500973121  8.96851872324972 0.534363849226954  8.96732430021152 0.534089905948144  8.966128660661 0.533819117074222  8.9637355620119 0.5332827400112  8.96253810291232 0.533017151822198  8.96134004077601 0.532753609914236  8.96014168234461 0.532491560226159  8.95894333435148 0.532230448696115  8.95774530354626 0.531969721263465  8.95654789665393 0.531708823865887  8.9553514204283 0.531447202442935  8.95415618159706 0.531184302932489  8.95296248690598 0.530919571273599  8.95057879927765 0.530385335535819  8.94938888179289 0.530115692434918  8.9482005080735 0.529844240111591  8.94701700862454 0.529564853111399  8.94583033548749 0.529292371169174  8.94465677568417 0.528996796075961  8.94347482749564 0.528717756487004  8.9423056498211 0.528416277643856  8.94113691673964 0.528115081521516  8.93997230233905 0.527807409620025  8.93648768158404 0.526870773665613  8.93417715819225 0.526227709354557  8.93187684946778 0.525570409641345  8.92958441297771 0.524903279465876  8.92729750626435 0.524230723766894  8.92501378691084 0.523557147484873  8.92273091244775 0.522886955558214  8.9204465404594 0.522224552927327  8.91815832848623 0.521574344531043  8.9158639340971 0.520940735309188  8.91240955522143 0.52002182764706  8.91125596138529 0.519720781887026  8.91009994554373 0.519425533894347  8.9089412160496 0.519136632064487  8.90777947871178 0.51885462966722  8.9066144381507 0.518580082301097  8.90544579906753 0.518313545343577  8.90427326764197 0.518055571407715  8.90309655277596 0.517806707790968  8.9019153674852 0.517567493931509  8.89954349287097 0.517109423786374  8.89835289635364 0.516890388929962  8.89715794638743 0.516680753162023  8.89595894874807 0.516479915354004  8.89475620918217 0.516287274379226  8.89355003348352 0.516102229108037  8.89234072738382 0.515924178414423  8.89112859668099 0.515752521168869  8.88991394711632 0.515586656244528  8.8886970844692 0.51542598251295  8.88504077456033 0.514957731513383  8.88259560534575 0.514663924454373  8.88014525296213 0.514383668642823  8.87769216352933 0.514112155051425  8.8752387831421 0.513844574654188  8.8727875579334 0.513576118423298  8.87034093398798 0.513301977332934  8.86790135744077 0.513017342355536  8.86547127438408 0.51271740446475  8.86305313093928 0.512397354633575  8.85944749434878 0.511879898436099  8.85824935146861 0.511700920423304  8.85705426161359 0.511516707729181  8.85586531165175 0.511321430077167  8.85467972245889 0.511120286693688  8.85349738217728 0.510913461764539  8.85231898316167 0.510699627209688  8.85114355795927 0.510480575969959  8.84997087533704 0.510256716563381  8.84880079450106 0.510028287556911  8.84646508981279 0.509563641699114  8.84529948080399 0.509327396911271  8.84413582452765 0.509087750499166  8.84297383036808 0.508845222697497  8.84181320773732 0.508600333740979  8.84065366600339 0.50835360386434  8.83949491458863 0.508105553302191  8.83833666286224 0.50785670228939  8.83717862023476 0.507607571060469  8.83602049609141 0.507358679850265  8.83370350356706 0.506862417936553  8.83254463520838 0.506615047241278  8.83138510414184 0.506368957038407  8.83022461976242 0.506124667559355  8.82906289144867 0.505882699034242  8.8278996286094 0.50564357169536  8.82673454061112 0.505407805772157  8.8255673368665 0.505175921497002  8.82439772674837 0.504948439099926  8.82322541965681 0.504725878812382  8.82146247763755 0.50440020189163  8.82087408314383 0.504293003963982  8.82028490524361 0.504187231954852  8.81969490770179 0.504082950735242  8.81910405424583 0.503980225179253  8.8185123086652 0.503879120156456  8.81791963466772 0.503779700541573  8.81732599604746 0.50368203120469  8.81673135652587 0.503586177019212  8.81613567987201 0.503492202856665  8.81494217979175 0.503308144322122  8.8143443688041 0.503218036452382  8.81374553465518 0.503129774987318  8.81314571511162 0.503043284934263  8.81254494797801 0.502958491299975  8.81194327100534 0.502875319092414  8.81134072200236 0.502793693317656  8.81073733872959 0.502713538984051  8.8101331589787 0.502634781097822  8.8095282205261 0.502557344666721  8.80649992366341 0.502176394821522  8.80406575123184 0.501891578375669  8.80162246205324 0.501621905854459  8.79917247434137 0.501362577753725  8.79671820627054 0.501108794566549  8.79426207607773 0.50085575678994  8.79180650192045 0.500598664916463  8.78935390203699 0.500332719442707  8.78690669460021 0.500053120862348  8.78446729782438 0.499755069670725  8.78082354594424 0.499273114708323  8.7796114734086 0.499106738315851  8.77840252722177 0.498933434819672  8.77719609498628 0.498754366804217  8.7759938505332 0.498566291484616  8.77479532906868 0.498370086978597  8.77360008541866 0.498166593742038  8.77240967647685 0.497952794208601  8.77122492118106 0.497727092921974  8.7700437520661 0.4974934563149  8.76768953916743 0.497008441260479  8.76651637812818 0.496757288831323  8.76534688380167 0.49649801098869  8.76418077747348 0.496231127221307  8.76301778046165 0.495957157017343  8.76185761403591 0.495676619865876  8.76069999952385 0.495390035254814  8.75954465819676 0.495097922673265  8.75839131137031 0.494800801609364  8.75723968033229 0.494499191551857  8.75378909848708 0.493582452863905  8.7514944576916 0.492955415343671  8.74920333514876 0.4923166555505  8.74691350200968 0.491670329605959  8.7446227294231 0.491020593632438  8.74232878854491 0.490371603751161  8.74002945051849 0.48972751608463  8.73772248650284 0.489092486754237  8.73540566764223 0.488470671882148  8.73307676509158 0.487866227590093  8.73073355 0.48728331 
- 0 12 0.125 10 0.1875 10 0.25 10 0.28125 10 0.3125 10 0.375 10 0.40625 10 0.4375 10 0.46875 10 0.5 10 0.5625 10 0.59375 10 0.625 10 0.6875 10 0.71875 10 0.75 10 0.78125 10 0.796875 10 0.8125 10 0.875 10 0.90625 10 0.9375 10 1 12
-8 0 2.52492265
-7 0 0  8 9 2  1 7.105427357601e-015  1 6.92942092010763  1 13.858841881843  1 20.7882625760624  0.999999999999995 27.7176839784132  1.00000000000001 34.6471042549407  0.999999999999997 41.5765256355166  1 48.5059463649497  1 55.43536728 
- 0 9 2.52492265 9
-8 0 2.52492265
-7 0 0  10 20 3  3.01761452 0  2.89136838715582 0  2.7651222543313 0  2.6388761215265 0  2.51262998874125 0  2.38638385597588 0  2.2601377232299 0  2.13389159050386 0  2.00764545779732 0  1.8813993251105 0  1.62890705977622 0  1.50266091733515 0  1.37641484530259 0  1.25016853348531 0  1.12392272811173 0  0.997676195579593 0  0.871430394579796 0  0.7451840821463 0  0.618938002783951 0  0.49269187 0 
- 0 11 1.262461325 9 2.52492265 11
-8 0 1
-7 0 0  11 352 36  8.71417242 0.85810406  8.66490715429855 0.865980023914049  8.61559248658661 0.873574387795598  8.56623099814832 0.880890740230876  8.51682527098765 0.887932669707493  8.46737788781893 0.89470376460983  8.41789143208361 0.90120761322706  8.36836848792617 0.907447803741921  8.31881164022235 0.913427924243525  8.26922347455214 0.919151562715384  8.21960657722077 0.92462230704455  8.14514201425829 0.932454464001723  8.1203139562303 0.935002856520232  8.09547968422149 0.937489371090979  8.07063952128644 0.939914456234512  8.04579379049047 0.942278560469289  8.02094281488184 0.944582132316827  7.99608691753013 0.946825620295129  7.97122642148374 0.94900947292539  7.9463616498077 0.95113413872652  7.9214929255569 0.953200066218699  7.87174821802481 0.957215341624456  7.84687224148305 0.959164688493601  7.82199286469362 0.961056208653495  7.79711087176296 0.962890279057449  7.77222567427271 0.964667489710213  7.74733808633593 0.966388212908191  7.72244942342931 0.968052743118521  7.69755906472904 0.969661675380441  7.67266537513865 0.971215762171357  7.64776987229435 0.972715266580858  7.59797361600325 0.97560636007587  7.57307297767539 0.976997931291562  7.54816970995578 0.978336044148526  7.52326369362773 0.979621215817826  7.49835480949001 0.980853963474605  7.47344293831702 0.982034804287762  7.4485279609129 0.983164255433708  7.42360975805317 0.984242834081655  7.39868821053517 0.985271057406318  7.37376319914318 0.98624944257909  7.32390601019163 0.988107570966713  7.29897391041481 0.988987303628704  7.27403747819468 0.989818317976584  7.2490994188497 0.990600747978746  7.22415369368224 0.991335913903124  7.19920558206362 0.992023600498361  7.17425646183983 0.99266412182843  7.14930207602941 0.993258556438582  7.12434731163469 0.993806742307332  7.09939036796847 0.994309424732858  7.04947435063386 0.995224482347997  7.02451519171679 0.995636869103167  6.99955534289922 0.996004552349433  6.97459526452617 0.996327970629028  6.94963541695131 0.996607562486819  6.92467626051511 0.996843766463488  6.89971825557399 0.997037021105009  6.87476186246887 0.997187764951942  6.84980754155274 0.997296436549335  6.82485575317117 0.997363474439251  6.7749581621753 0.997415159891365  6.75001227661638 0.997399797095871  6.72507045168257 0.997343753523473  6.70013159621276 0.997247273981923  6.67519510150596 0.997110663526211  6.65026087739168 0.996934291952016  6.62532869421683 0.996718511647293  6.60039794771612 0.996463628213868  6.57546808607107 0.996169953810417  6.55053906143608 0.995837863519816  6.50068151956109 0.995097467611508  6.475753078667 0.994689163923938  6.45082439599549 0.994243102121004  6.42589541472742 0.993759587108802  6.40096557121191 0.993238965829057  6.37603427104486 0.992681587770783  6.35110130734788 0.992087770286609  6.32616658620036 0.99145782136056  6.3012294435907 0.990792096257114  6.27628875914587 0.990090988086863  6.22640322350431 0.988618364073199  6.20145823424969 0.987846859680982  6.17651156817549 0.987040417925207  6.15156376989639 0.986199293825693  6.12661538402567 0.98532374240597  6.10166695518129 0.984414018684395  6.07671902797166 0.983470377684971  6.05177214701829 0.982493074426757  6.02682685692988 0.981482363932352  6.00188370232418 0.980438501222256  5.95200275330478 0.978284981413737  5.92706487633709 0.977175324454284  5.90213078047747 0.976033024378178  5.87719883362557 0.974858339893144  5.8522734751408 0.973651519422884  5.82735277167765 0.972412822182931  5.8024322562595 0.971142511696036  5.77752730301052 0.969840817837524  5.75262186132857 0.968508023766149  5.72772306356203 0.967144373331431  5.67793356722847 0.964355880423713  5.65304311708238 0.962931037529217  5.62815643652966 0.961475855035217  5.60327299713861 0.959990589781369  5.57839227048462 0.958475498610051  5.55351372813496 0.956930838359851  5.52863684166362 0.955356865873482  5.50376108264055 0.953753837990082  5.47888592263757 0.952122011551273  5.45401083322561 0.950461643397306  5.40425973872679 0.947084337340717  5.37938349144727 0.945367414663593  5.35450830229934 0.9436223354284  5.32962341569894 0.941849999415617  5.3047562399593 0.940048907210694  5.2798565353352 0.938222440746723  5.25498016831603 0.936367311643688  5.23008851924464 0.934486171301356  5.20520134301332 0.932578001484729  5.18031286891735 0.930643388579726  5.1305371758184 0.926721481766138  5.10564982389034 0.92473419621277  5.080763565467 0.922720764490115  5.05587899942491 0.920681372573898  5.03099672465338 0.918616206442882  5.00611734002348 0.916525452071456  4.98124144442686 0.91440929543892  4.95636963673622 0.91226792252013  4.93150251583892 0.910101519293274  4.90664068061259 0.907910271734429  4.85692877926819 0.903478459907169  4.83207897741117 0.901237888501572  4.80723387150833 0.898972892969865  4.78240059802841 0.896683482789859  4.75757069418704 0.894370088569272  4.73274641927132 0.892032851474741  4.70792926812639 0.889671933304271  4.68311486762309 0.887287654238357  4.65830531543883 0.884880159799165  4.6334988509731 0.882449699657303  4.58389144829772 0.877543269776798  4.5590904768674 0.875067300949405  4.53429162552125 0.872568796835572  4.50949428442583 0.87004797603434  4.48469784376669 0.867505057147791  4.45990169370181 0.864940258773707  4.43510522442131 0.862353799514659  4.4103078260849 0.85974589796898  4.38550888887565 0.857116772737991  4.3607078029622 0.854466642421338  4.31110011407819 0.849124808817472  4.28629359671398 0.846433101311865  4.26148503645524 0.843720760617285  4.23667506332419 0.840987944248098  4.21186430735171 0.838234809719013  4.18705339855871 0.835461514544713  4.1622429669744 0.832668216239329  4.13743364262343 0.829855072318054  4.11262605553136 0.827022240294895  4.08782083572477 0.824169877684763  4.03821639073333 0.818426406319438  4.01341729503066 0.815535299245335  3.98862083513135 0.812624963741463  3.96383223360562 0.809695616943437  3.93904049384272 0.806747265426999  3.9142660558766 0.803780323884026  3.88948662840744 0.800794652261359  3.8647194124268 0.797790623199078  3.83996047135917 0.794768334927047  3.81520734610698 0.791727904858107  3.76571342998845 0.78561106892078  3.74097248253552 0.782534661019645  3.71623689399829 0.779440404061758  3.69150601268799 0.776328438922408  3.66677918691145 0.773198906477441  3.64205576498391 0.770051947602338  3.61733509520805 0.76688770317243  3.59261652590117 0.763706314063744  3.56789940536731 0.760507921151377  3.54318308191977 0.757292665311191  3.50610881484068 0.752444698472374  3.49375076216306 0.750824529012944  3.48139266437318 0.749200196650194  3.46903444000919 0.747571718992592  3.45667600761082 0.745939113651361  3.44431728571579 0.744302398233538  3.43195819286369 0.742661590351186  3.41959864759285 0.741016707611528  3.40723856844212 0.739367767625513  3.39487787395036 0.737714788001835  3.37015509136211 0.734400784698618  3.35779296818664 0.732739762446993  3.34543008146751 0.731074735177651  3.3330664894246 0.729405714813925  3.32070229176975 0.727732711589972  3.30833759532334 0.726055735450986  3.2959724935786 0.724374796883908  3.28360706029821 0.722689907179871  3.27124135704503 0.721001078125657  3.25887545473994 0.71930832112783  3.22177749804561 0.714218295042219  3.19704514193278 0.710809272977024  3.17231305813882 0.707384667159969  3.14758190396416 0.703944565179111  3.12285233671092 0.700489054625459  3.09812501368184 0.697018223085743  3.07340059217467 0.693532158151551  3.0486797294963 0.690030947410082  3.02396308294312 0.686514678451714  2.99925130982005 0.682983438864969  2.96219194623053 0.677664254926384  2.94984017573031 0.675887478261979  2.93748995948876 0.674106976668331  2.92514125371432 0.67232278239022  2.91279409336856 0.67053491435795  2.90044864580813 0.668743369114932  2.88810510514052 0.666948138683262  2.87576354059089 0.665149236198446  2.86342381201949 0.663346710196756  2.85108566590485 0.661540628384319  2.82641258398443 0.657921395144492  2.81407762684554 0.656108247323941  2.80174416512687 0.654291608090766  2.78941211043136 0.6524715172317  2.77708137435304 0.650648014535972  2.76475186850155 0.648821139789028  2.7524235044648 0.646990932780889  2.74009619385471 0.645157433297126  2.72776984826223 0.643320681126779  2.71544437929257 0.641480716056749  2.67847033704598 0.635951301511358  2.65382412843812 0.632252332701078  2.62918036552176 0.628540989745774  2.60453834109616 0.624817590946007  2.57989734796545 0.62108245460422  2.55525667892672 0.617335899020449  2.53061562678479 0.613578242497045  2.50597348433784 0.609809803334729  2.4813295443886 0.606030899834999  2.45668309973724 0.602241850299157  2.4073837866331 0.594644095757837  2.38273103217414 0.59083538655885  2.35807344602754 0.587017201491949  2.33341276528685 0.583189768952942  2.30874995402705 0.579353345768627  2.28408516667518 0.575508218543135  2.259418786314 0.57165466547246  2.23475178752731 0.567792942996718  2.21008505567612 0.56392331083766  2.18541867642353 0.560046058129519  2.13608850669955 0.552276826907638  2.11142460685135 0.548384824617415  2.08676275035905 0.544485836199189  2.06210314782028 0.540579888958988  2.03744665628433 0.536667382703632  2.0127941634414 0.532748734894583  1.9881460584375 0.528824075722845  1.96350259724179 0.52489345863724  1.93886478201998 0.520957367064967  1.914234185277 0.517016613073664  1.86498373674319 0.509123464740112  1.84036407976073 0.505171182650492  1.81574938737164 0.50121275130766  1.79113905688661 0.497247729380374  1.76653248561173 0.493275675538804  1.7419290708618 0.48929614845145  1.71732820993902 0.485308706788251  1.69272930015984 0.481312909218308  1.66813173882805 0.477308314410942  1.64353492325616 0.473294481035607  1.60663991450021 0.467259211124536  1.59434161401452 0.46524503451276  1.58204327395941 0.46322838275977  1.56974481899757 0.46120920069971  1.55744617379518 0.459187433165447  1.54514726301289 0.457163024991896  1.53284801131816 0.455135921011393  1.52054834337176 0.453106066058863  1.50824818383971 0.451073404967147  1.49594745738478 0.449037882570424  1.47134471995782 0.444961004833987  1.45904271200126 0.442919649402071  1.44674002094557 0.440875321276278  1.43443645097013 0.438827968979406  1.42213193537636 0.436777537080238  1.40982658656813 0.434723964665288  1.39752060854658 0.432667188015048  1.38521416545432 0.430607144632044  1.37290729980601 0.428543775741104  1.360599993941 0.426477024410546  1.32367741707025 0.420266430432903  1.29906135051283 0.416112251971594  1.27444504863964 0.41194380737221  1.24982929144323 0.407760612972731  1.22521485891943 0.403562185111394  1.20060253105987 0.399348040126197  1.17599308786035 0.395117694355207  1.15138730931342 0.390870664136651  1.12678597541361 0.386606465808457  1.10218986615452 0.382324615708835  1.06530470921787 0.375874637409319  1.05301113902766 0.373720111372902  1.040719198586 0.371560990060026  1.02842896742048 0.369397213568308  1.01614051192326 0.367228722401098  1.00385391822021 0.365055456452431  0.991569302944949 0.36287735467325  0.979286801921723 0.360694355422012  0.967006536749435 0.358506397496076  0.954728559296949 0.35631342184719  0.930176988902362 0.351917326110084  0.917903380221585 0.349714206508435  0.905631873523765 0.347505960030893  0.893362394276573 0.345292531534625  0.881094867945128 0.343073865876851  0.868829219998678 0.340849907914745  0.856565375901128 0.338620602505492  0.844303261121978 0.336385894506313  0.832042801125995 0.334145728774362  0.819783921381114 0.331900050166855  0.783011799298804 0.325146310289229  0.758503074122086 0.320621544965371  0.733999775573149 0.316074066429743  0.709501307400814 0.311503433542032  0.685007073355367 0.306909205163069  0.660516477185223 0.302290940152191  0.636028922640554 0.297648197370226  0.611543813470335 0.292980535676854  0.587060553424079 0.288287513932441  0.562578546251196 0.283568690997025  0.513615845150921 0.274078560464545  0.489134897145232 0.269307256076272  0.464655666688461 0.264509247085296  0.440171994775105 0.259684163226902  0.41568838333407 0.254831497811781  0.391211780668872 0.249950715567654  0.366729638421076 0.24504152444547  0.342256363233821 0.240103295426424  0.317784241413954 0.235135676227071  0.29331771772033 0.230138162333957  0.244395826089671 0.220082448045822  0.219940565586381 0.215024246540705  0.195491869303712 0.209935240694337  0.17105061614992 0.204814970526222  0.146617685033879 0.199662976056375  0.12219395486359 0.194478797304138  0.0977803045480152 0.189261974289543  0.0733776129952767 0.184012047032068  0.048986759114082 0.178728555551537  0.0246086218128154 0.173411039867608  0.000244080000000035 0.16805904 
- 0 12 0.0625 10 0.09375 10 0.125 10 0.15625 10 0.1875 10 0.21875 10 0.25 10 0.28125 10 0.3125 10 0.34375 10 0.375 10 0.40625 10 0.4375 10 0.46875 10 0.5 10 0.53125 10 0.5625 10 0.59375 10 0.609375 10 0.625 10 0.65625 10 0.671875 10 0.6875 10 0.71875 10 0.75 10 0.78125 10 0.8125 10 0.828125 10 0.84375 10 0.875 10 0.890625 10 0.90625 10 0.9375 10 0.96875 10 1 12
-8 0 1
-7 0 0  8 51 8  1 0  0.984375000774147 0  0.968750001386624 0  0.953125001865166 0  0.937500002220135 0  0.921875002444373 0  0.906250002513341 0  0.890625002385045 0  0.859375001615033 0  0.843750000087245 0  0.828125003788836 0  0.812499993343597 0  0.796875000511569 0  0.781250001194506 0  0.765625000025975 0  0.73437499766231 0  0.718749996702288 0  0.703124992925731 0  0.687499995659139 0  0.671874999688788 0  0.656249998477326 0  0.640624998915187 0  0.609374999128777 0  0.593749999582341 0  0.578124999385275 0  0.562499999730391 0  0.546875001384623 0  0.531250003649526 0  0.515625004897816 0  0.484375004475271 0  0.468750003241562 0  0.45312499937109 0  0.437499998668617 0  0.421874999525723 0  0.406249998585838 0  0.390624998474697 0  0.359374999855157 0  0.343750000928138 0  0.328125002434728 0  0.312500000809015 0  0.296874999221871 0  0.281250000338318 0  0.265624999947567 0  0.218749999907064 0  0.187500000011456 0  0.156250000064604 0  0.125000000035467 0  0.093749999977093 0  0.0624999999590653 0  0.0312500000000001 0  0 0 
- 0 9 0.125 7 0.25 7 0.375 7 0.5 7 0.625 7 0.75 7 1 9
-8 0 1
-7 0 0  11 252 26  0.00024407999999998 0.16805904  0.0251430908304699 0.168161570414973  0.0500467988029904 0.168226375233833  0.074954604046646 0.168253933086278  0.0998659066905673 0.168244722601897  0.124780106863781 0.168199222410499  0.14969660469549 0.168117911141539  0.174614800314665 0.168001267424939  0.199534093850519 0.167849769890118  0.224453885432063 0.167663897166929  0.249373575188442 0.167444127884933  0.299211551309025 0.166937753462743  0.324129949405078 0.166651145154435  0.349046467602423 0.166331613892273  0.373962264239998 0.165979588568612  0.398874649568705 0.165595606916411  0.423783395004662 0.16518013705937  0.448689809772061 0.164733603619691  0.473592074452496 0.164256519701459  0.498487000991705 0.163749437123146  0.523378421005259 0.163212709179881  0.573153156610956 0.162080916740493  0.598036594967209 0.161485848770865  0.622916598824473 0.160862056711309  0.647793663129275 0.160209988221692  0.672668282830387 0.159530090962148  0.697540952872959 0.158822812592428  0.722412168206817 0.158088600772704  0.747282423776903 0.157327903162794  0.772152214532281 0.156541167422741  0.797022035419239 0.155728841212482  0.846762727351791 0.154053903171497  0.871633496889005 0.15319129477537  0.896506220408789 0.152303959644523  0.921376313427733 0.151392517229014  0.946259864408228 0.150456887808571  0.97112481634639 0.149498619969142  0.996018382141811 0.1485165813449  1.0208973532616 0.147512697672759  1.04578559821239 0.146486626107199  1.07067361031477 0.14543915256993  1.12045228917444 0.143302224821183  1.14534273756927 0.142212777995158  1.17023381420231 0.141102828876489  1.19512503834324 0.13997285812398  1.22001592926864 0.13882334639682  1.24490600624484 0.137654774353661  1.26979478855011 0.136467622653724  1.29468179545169 0.135262371955772  1.31956654622493 0.134039502918841  1.34444856014043 0.132799496201853  1.39420615280158 0.130286168725668  1.41908190098745 0.129012842127363  1.44395268041666 0.127723382944722  1.46882339112511 0.126418086420151  1.49368297094513 0.125097797839281  1.51853989554645 0.123762689231349  1.54339658730862 0.122413141216545  1.56824560758263 0.121049874216194  1.59309458413014 0.119673089479091  1.61794047959676 0.118283355761564  1.66762909558063 0.115478815614982  1.69247168870894 0.114064013575804  1.71731306336421 0.112637126558171  1.74215371593641 0.111198601549486  1.76699414281654 0.109748885537184  1.79183484039404 0.108288425508681  1.81667630506038 0.106817668451386  1.84151903320486 0.105337061352739  1.86636352121865 0.103847051200142  1.89121026549161 0.102348084981025  1.94090925933712 0.0993331343845875  1.96576138258088 0.0978172108989139  1.99061749411859 0.0962928689926534  2.01547645475802 0.0947613440277901  2.04033758836855 0.0932236481329104  2.06520077719353 0.0916805242714543  2.09006578420881 0.0901327729142649  2.11493198750593 0.0885813800584796  2.13979880110271 0.0870273143857638  2.16466614557599 0.0854713003860739  2.21440069700606 0.0823573262587966  2.23926798381264 0.0807993467433584  2.26413465952812 0.0792412673644031  2.28900067727877 0.0776839620355358  2.31386544573171 0.0761283223438927  2.33872831982346 0.0745752416200134  2.36358906071491 0.0730256000087705  2.38844757657122 0.0714802728833859  2.41330320881918 0.0699401540139568  2.43815478143465 0.0684061539654499  2.48785238618365 0.0653520525699928  2.51269832042999 0.0638319544003991  2.53754189751435 0.062319664559134  2.56238362840822 0.0608160388464033  2.5872240240714 0.0593219330623715  2.61206359548347 0.057838203007299  2.63690285359759 0.0563657044812878  2.66174230939503 0.0549052932846316  2.6865824738333 0.0534578252174526  2.71142385788562 0.0520241560799847  2.76111008714917 0.0491861272648394  2.78595479130469 0.0477817037923345  2.81080268014783 0.0463932174094186  2.83565050662185 0.045019824242729  2.86050616222328 0.0436657181369992  2.88536225622998 0.0423281812654677  2.91022087807797 0.0410087832874794  2.935090596292 0.0397120241773578  2.9599609675448 0.0384338055550872  2.98483633564685 0.0371767167020943  3.03459372031686 0.0347045350867781  3.05947587155193 0.0334895032303059  3.08436102313564 0.0322959476775459  3.10924871650878 0.0311242857809583  3.13413849312739 0.0299749348931166  3.15902989442469 0.0288483123664421  3.18392246186103 0.0277448355535199  3.20881573687066 0.0266649218067916  3.23370926090824 0.0256089884788023  3.2586025754156 0.0245774529220357  3.30838786826608 0.0225640120559737  3.33327989132426 0.0215821052753804  3.35817067719183 0.0206254346072355  3.38305947371188 0.0196944270619446  3.40794843190065 0.0187894141481778  3.43283157258152 0.0179109948225061  3.45771120874254 0.0170594952652418  3.48259323388727 0.01623512387306  3.50747073979614 0.0154385101638886  3.53234846690487 0.0146699004651941  3.5821023938204 0.0131895584178489  3.60697878431735 0.0124778197958278  3.6318549946735 0.0117949029209087  3.65673141770556 0.0111411971385227  3.68160844623613 0.0105170917941374  3.70648647308009 0.00992297623316847  3.73136589106014 0.00935923980109021  3.75624709299252 0.00882627184332262  3.78113047169815 0.00832446170532785  3.8060164199948 0.00785419873254051  3.85579424140955 0.00697754580827957  3.88068606130384 0.00657114460063459  3.90558125206792 0.00619707255330623  3.93048066957251 0.00585581696051386  3.95538398882777 0.00554761534058223  3.98029042098456 0.00527260710275947  4.00519963102824 0.00503102764602361  4.03011181225948 0.00482322412719392  4.05502692194714 0.00464949377485429  4.07994412991696 0.00450996726186032  4.12978303020129 0.00429999531429121  4.15470464213276 0.00422953287826439  4.17962818552469 0.00419385152776757  4.2045534300404 0.00419320881056122  4.229480145357 0.00422786227442765  4.25440810113319 0.00429806946711733  4.27933706704675 0.00440408793641806  4.30426681276002 0.00454617523008204  4.32919710794499 0.00472458889588916  4.35412772226918 0.0049395864816019  4.42891983166597 0.00569510364177022  4.47878167779285 0.00634601841139322  4.52864138147444 0.00714735952472559  4.57850018067968 0.00809648410307554  4.62834820793217 0.00920770437051597  4.67819800635143 0.0104611174573548  4.72802940835443 0.011886761116124  4.77785689171283 0.0134617788165489  4.8276695813162 0.0152020211180208  4.87746667373967 0.01710796186728  4.97703304180171 0.0212445777395994  5.02680208725829 0.0234756043082411  5.07655727313448 0.0258681706758664  5.12629887842481 0.028421098008985  5.17602718212373 0.0311332074740823  5.22574246322557 0.0340033202376991  5.27544500072499 0.037030257466282  5.32513507361559 0.0402128403263983  5.37481296089313 0.0435498899844986  5.42447894155061 0.0470402276071172  5.49896047109983 0.0525038977375608  5.52378474070342 0.0543631483963527  5.54860613827377 0.0562602789830113  5.57342469868031 0.0581951421433447  5.5982404568109 0.0601675905233161  5.62305344752844 0.0621774767686683  5.64786370572208 0.0642246535253893  5.67267126625922 0.0663089734392485  5.69747616402153 0.0684302891561735  5.72227843388314 0.0705884533219978  5.77187778756005 0.0749781838432062  5.79667488103728 0.0772097633860232  5.82146935871139 0.0794778179567225  5.84626138146982 0.0817823722247315  5.87105100789447 0.084123311170625  5.8958381283389 0.0865002901876626  5.92062253868009 0.0889128356448586  5.94540406313461 0.0913605126531845  5.97018263617107 0.0938430367825133  5.99495825295125 0.0963602064718093  6.06927558869549 0.104014185692281  6.11880803155602 0.109253637816164  6.16832585593788 0.114626960092738  6.21783466096596 0.12013226303196  6.26731333073302 0.125764082525184  6.31680393933042 0.131525409626135  6.36624304457812 0.137405116758387  6.4156890769361 0.143408383531806  6.46510911330897 0.149528165991202  6.5145160997086 0.155763557693538  6.58860342295541 0.165285621880671  6.61329541400197 0.168487848944685  6.6379836813682 0.171717840137921  6.66266828006537 0.174975392242167  6.68734926664214 0.178260224572936  6.71202669990619 0.181571939402062  6.73670063888795 0.184910129645376  6.76137114030165 0.188274504847521  6.78603825830276 0.191664906522306  6.81070204882685 0.195081083882092  6.86002311357606 0.201963118136848  6.88468038783779 0.205428973178986  6.90933447000961 0.208918899596241  6.93398542610568 0.212432130848448  6.95863332215446 0.215967900396378  6.98327822416778 0.219525441699531  7.00792019817088 0.223103988218757  7.03255931018296 0.226702773413767  7.05719562622215 0.230321030745042  7.08182921231085 0.233957993672642  7.15572197878209 0.244922699625161  7.20497309093209 0.252304247632317  7.25421432596627 0.259751459474272  7.30344595498902 0.26725816184661  7.35266772138303 0.274818097315233  7.40188104656107 0.282425275968674  7.45108808770763 0.290073825197103  7.50028966412386 0.297757659095581  7.54948579987469 0.305470564979963  7.59867877845541 0.313206690376744  7.74624995294185 0.336466348199009  7.84462041065208 0.352041164799277  7.94299161808946 0.367636400497407  8.04136771555015 0.383202967935867  8.1397560104544 0.398692294903516  8.23816412304941 0.414055860188884  8.33659839878075 0.429244935322105  8.43506535591744 0.444210819978107  8.53357248059731 0.458904971132736  8.63212621882153 0.473278676350862  8.73073355 0.48728331 
- 0 12 0.03125 10 0.0625 10 0.09375 10 0.125 10 0.15625 10 0.1875 10 0.21875 10 0.25 10 0.28125 10 0.3125 10 0.34375 10 0.375 10 0.40625 10 0.4375 10 0.46875 10 0.5 10 0.5625 10 0.625 10 0.65625 10 0.6875 10 0.75 10 0.78125 10 0.8125 10 0.875 10 1 12
-8 0 1
-7 0 0  11 62 7  3.01761452 1  3.01761452000003 0.977272727272754  3.01761451999989 0.954545458952347  3.01761452000024 0.931818180579275  3.01761451999962 0.909090941508644  3.01761452000048 0.886363580318583  3.01761451999951 0.863636386800601  3.0176145200004 0.840909079708789  3.01761451999975 0.818181816768186  3.01761452000011 0.795454549680564  3.01761451999998 0.772727275300118  3.01761452000001 0.738636364426379  3.01761451999997 0.727272727449474  3.01761452000005 0.715909090646184  3.01761451999994 0.704545454128683  3.01761452000003 0.693181817930106  3.01761452000003 0.681818182022945  3.01761451999994 0.670454546311371  3.01761452000006 0.659090910655758  3.01761451999995 0.647727274864778  3.01761452000003 0.63636363871418  3.01761451999995 0.613636365181345  3.01761452000028 0.602272727943593  3.01761451999922 0.590909087840968  3.01761452000148 0.579545450469745  3.01761451999796 0.568181815810649  3.01761452000211 0.556818180633238  3.01761451999837 0.545454543729989  3.01761452000092 0.534090907016914  3.01761451999965 0.52272727167765  3.01761452000006 0.511363634755547  3.01761451999993 0.477272723718002  3.0176145200002 0.454545449727639  3.0176145199996 0.431818164255781  3.01761452000057 0.409090906987681  3.0176145199994 0.386363641806255  3.01761452000046 0.363636356339733  3.01761451999975 0.34090907869922  3.01761452000008 0.318181816780743  3.01761452000001 0.295454543612041  3.01761451999997 0.272727273863953  3.01761452000004 0.238636365550922  3.01761451999977 0.227272727949315  3.01761452000052 0.215909095605142  3.01761451999922 0.204545450266751  3.01761452000083 0.193181810640359  3.01761451999933 0.181818182637572  3.01761452000041 0.170454551298017  3.0176145199998 0.159090911620822  3.01761452000008 0.147727276662507  3.01761451999998 0.136363639670457  3.01761452000003 0.113636365754823  3.01761451999988 0.102272728825826  3.01761452000025 0.0909090919594786  3.01761451999966 0.0795454551795924  3.01761452000033 0.068181818499561  3.01761451999976 0.0568181819230542  3.01761452000012 0.045454545443056  3.01761451999997 0.0340909090429393  3.01761452 0.0227272726954942  3.01761452 0.0113636363636379  3.01761452 0 
- 0 12 0.25 10 0.375 10 0.5 10 0.75 10 0.875 10 1 12
-8 0.29266018 3.01761452
-7 0 0  11 22 3  0 2.72080189  0 2.59712907646943  0 2.47345635130272  0 2.34978320717007  0 2.22611108576215  0 2.10243730236467  0 1.97876544519257  0 1.8550919650648  0 1.73141947044543  0 1.60774656103064  0 1.48407376163755  0 1.23672813473882  0 1.11305532128488  0 0.98938250782675  0 0.865709694363718  0 0.742036880896868  0 0.618364067424868  0 0.494691253949019  0 0.371018440468329  0 0.247345626983373  0 0.123672813493905  0 -1.01377830984962e-016 
- 0.29266018 12 1.65513735 10 3.01761452 12
-8 0.29266018 3.01761452
-7 0 0  11 12 2  0.292660179999999 0.999999999999999  0.540383302249042 1.00000000000002  0.788106376004919 0.999999999999917  1.03582967948996 1.00000000000019  1.2835524219986 0.999999999999708  1.53127607643145 1.00000000000035  1.77899867300501 0.999999999999671  2.02672216179261 1.00000000000025  2.27444510841769 0.999999999999855  2.52216828340486 1.00000000000006  2.76989139782454 0.999999999999985  3.01761452 1 
- 0.29266018 12 3.01761452 12
-8 0 1.95653393
-7 0 0  11 22 3  1 0.06075625  0.999999999999989 0.149689610540508  1.00000000000004 0.238622918591813  0.999999999999915 0.327556475341045  1.00000000000013 0.416489424881262  0.999999999999851 0.505423361124478  1.00000000000015 0.594356153671739  0.999999999999872 0.683289909856496  1.00000000000009 0.772223080783251  0.999999999999954 0.861156498034186  1.00000000000002 0.950089849901488  0.999999999999974 1.12795657025245  1.00000000000013 1.21688993039163  0.999999999999671 1.30582329049364  1.00000000000055 1.39475665056055  0.99999999999934 1.48369001058888  1.00000000000059 1.57262337058302  0.999999999999597 1.66155673053869  1.00000000000021 1.75049009045914  0.999999999999918 1.83942345034246  1.00000000000002 1.92835681018951  1 2.01729017 
- 0 12 0.978266965 10 1.95653393 12
-8 0 1.95653393
-7 0 0  11 22 3  0.06075625 1  0.149689610540547 1.00000000000002  0.238622918591639 0.999999999999918  0.327556475341512 1.00000000000021  0.416489424880369 0.999999999999597  0.505423361125748 1.00000000000059  0.594356153670389 0.99999999999934  0.683289909857567 1.00000000000055  0.772223080782628 0.999999999999671  0.861156498034439 1.00000000000013  0.950089849901427 0.999999999999974  1.12795657025251 1.00000000000002  1.21688993039134 0.999999999999954  1.30582329049433 1.00000000000009  1.39475665055941 0.999999999999872  1.48369001059027 1.00000000000015  1.57262337058171 0.999999999999851  1.66155673053964 1.00000000000013  1.75049009045862 0.999999999999915  1.83942345034267 1.00000000000004  1.92835681018946 0.999999999999989  2.01729017 1 
- 0 12 0.978266965 10 1.95653393 12
-8 0 1
-7 0 0  11 82 9  1 2.01729017  0.977272727272724 2.01729017000003  0.954545454295335 2.01729016999987  0.931818186108257 2.01729017000034  0.909090900886391 2.01729016999937  0.886363655512493 2.01729017000088  0.863636346830899 2.01729016999906  0.840909106973765 2.01729017000077  0.818181816625671 2.01729016999954  0.795454545383319 2.01729017000019  0.772727273258435 2.01729016999996  0.738636365032973 2.01729017000002  0.727272728621812 2.01729016999992  0.715909093396735 2.01729017000021  0.704545456684803 2.01729016999963  0.693181818712266 2.01729017000052  0.681818181335921 2.01729016999942  0.670454545248849 2.0172901700005  0.659090909339886 2.01729016999968  0.647727272682762 2.01729017000014  0.636363636474201 2.01729016999998  0.613636363613231 2.01729017  0.602272726981702 2.01729017000006  0.590909090086397 2.0172901699998  0.579545453070897 2.01729017000041  0.568181816123531 2.01729016999939  0.556818179373834 2.01729017000068  0.545454542840569 2.01729016999944  0.534090906441066 2.01729017000033  0.522727270049743 2.01729016999988  0.511363633618162 2.01729017000002  0.477272724803062 2.01729016999998  0.454545452905612 2.01729017000008  0.431818181507489 2.01729016999982  0.409090910338248 2.0172901700003  0.386363639395896 2.01729016999962  0.363636365750591 2.01729017000036  0.340909088501278 2.01729016999975  0.318181813034406 2.01729017000012  0.295454543922811 2.01729016999997  0.272727272507805 2.01729017  0.244318182740536 2.01729017000001  0.238636364693953 2.01729016999997  0.232954546620145 2.01729017000006  0.22727272851318 2.01729016999998  0.221590910325119 2.01729016999988  0.215909091990959 2.01729017000027  0.210227273460852 2.01729016999969  0.204545454723548 2.01729017000022  0.198863635838509 2.01729016999992  0.19318181696098 2.01729017  0.181818179782503 2.01729017000004  0.176136361420087 2.01729016999974  0.170454543121784 2.01729017000069  0.164772724962679 2.01729016999883  0.159090907046532 2.01729017000143  0.153409089375498 2.0172901699987  0.147727271807445 2.01729017000089  0.142045454089971 2.01729016999954  0.136363635982371 2.01729017000017  0.130681817455864 2.01729016999996  0.119318180502217 2.01729017000004  0.113636361898355 2.01729016999984  0.107954543363076 2.01729017000036  0.10227272501304 2.01729016999943  0.0965909068987371 2.01729017000068  0.0909090890148474 2.01729016999936  0.085227271314145 2.0172901700005  0.0795454537171954 2.01729016999969  0.0738636361261527 2.01729017000015  0.0681818184352736 2.01729016999994  0.0568181826518812 2.01729017000009  0.0511363643941505 2.01729016999952  0.0454545457337553 2.01729017000121  0.039772727344993 2.01729016999795  0.034090909566717 2.01729017000256  0.0284090921763329 2.01729016999759  0.0227272746599311 2.01729017000174  0.0170454566456454 2.01729016999905  0.0113636381771453 2.01729017000037  0.00568181949486899 2.01729016999992  -6.93889390390723e-018 2.01729017 
- 0 12 0.25 10 0.375 10 0.5 10 0.75 10 0.8125 10 0.875 10 0.9375 10 1 12
-8 0 1
-7 0 0  11 32 4  0.000126649999999673 0.89142684  0.347482824926461 0.91235210410736  0.694952401556145 0.932606135238641  1.04224405969436 0.951348300868163  1.39015435122504 0.96839857475423  1.73779294031391 0.982582911811502  2.08527614969377 0.993310502908847  2.43349387257227 1.00041225124145  2.78209414666498 1.00298600656342  3.12980810904059 0.999719791848694  3.47765565738034 0.990899458421025  3.99931557440465 0.968628136835156  4.17316668730421 0.959692549121209  4.34701847583653 0.949225757814763  4.52073250000143 0.937160813938153  4.69419427911569 0.923440933176403  4.86738987576989 0.908037080515894  5.04039535327459 0.890940031918557  5.21331399676993 0.872141529273933  5.38619618865269 0.851619144934744  5.55897682851656 0.829339472079632  5.90395354781298 0.781249042315971  6.07624269040541 0.755426058102447  6.24754699893371 0.727915405427532  6.42139749534939 0.698078225612449  6.58558689858239 0.668121102062421  6.76631184237894 0.632939031501274  6.93024098748477 0.598995450176349  7.10167676620893 0.561464069314949  7.27124934773016 0.522129790071542  7.44048979930555 0.480646942376525  7.60893367 0.43705553 
- 0 12 0.5 10 0.75 10 1 12
-8 0.07121022 2.01729017
-7 0 0  11 22 3  0 2.01729017  0 1.92883199091819  0 1.84037381179449  0 1.75191563262723  0 1.66345745342024  0 1.57499927416703  0 1.48654109487616  0 1.39808291553862  0 1.30962473616206  0 1.22116655674126  0 1.13270837727902  0 0.95579201826944  0 0.867333836787705  0 0.778875670414204  0 0.690417446880194  0 0.601959358986412  0 0.513501047624198  0 0.425043001375136  0 0.336584726309973  0 0.248126591974326  0 0.159668399927801  0 0.0712102200000001 
- 0.07121022 12 1.044250195 10 2.01729017 12
-8 0.0712102200000002 2.01729017
-7 0 0  8 9 2  0 3.32701216511258e-015  0 4.60547214481023  0 9.21094428793428  0 13.8164164430734  0 18.4218885616398  0 23.0273607429041  0 27.6328328584068  0 32.2383050151898  0 36.84377716 
- 0.07121022 9 2.01729017 9
-8 0 1
-7 0 0  7 20 4  0 0  0.0714285714285722 0  0.142857145117323 0  0.214285717135627 0  0.285714286194275 0  0.357142853645558 0  0.428571423483165 0  0.535714291771835 0  0.571428606654919 0  0.607142833493042 0  0.642857071913042 0  0.678571368569323 0  0.714285666500745 0  0.785714273384903 0  0.821428561907346 0  0.857142721630493 0  0.892857382663097 0  0.928571292550354 0  0.964285714285713 0  1 0 
- 0 8 0.5 6 0.75 6 1 8
-8 0 1
-7 0 0  10 47 6  7.60893367 0.43705553  7.63067378230924 0.429277735772104  7.65246817184998 0.421656274112611  7.67429126022898 0.414106704973386  7.69611091623787 0.406548937946926  7.7178958645965 0.398902442706185  7.73961865482035 0.3910841821826  7.76125419023141 0.383009268485398  7.78277381708495 0.374594341558339  7.80413497384184 0.365763670577734  7.83583211392237 0.351805131844107  7.84633754099951 0.347031560523056  7.85680307958427 0.342126065389591  7.8671599016112 0.337054212730188  7.87745174251784 0.331810846343518  7.88770830353961 0.326387170474516  7.89786076622004 0.320748773156115  7.9078238646391 0.314856964469676  7.91762290742537 0.308701808779404  7.93198567809356 0.299025947427563  7.93671692221253 0.295732284809995  7.94139092763034 0.29232523851021  7.94597301219639 0.288843975828444  7.95047037271179 0.285222628269066  7.95488553028213 0.281407271291546  7.959184706319 0.27743519726472  7.96332758200262 0.273360108653609  7.96731419313212 0.269134383383669  7.97301392047527 0.262613442084645  7.97486699191407 0.260413080321384  7.97667102736047 0.258154566626171  7.97840737417027 0.255875317035328  7.9800771534664 0.253528107562264  7.98167968147189 0.251074018587534  7.98319739660481 0.248546842330502  7.98460935604089 0.245994883270756  7.98591311729808 0.243386985910249  7.98827202593027 0.238114071634718  7.989327356486 0.235439574221551  7.99025242474338 0.232789912872415  7.99103633878144 0.229845140928864  7.99168356031082 0.227379147986885  7.99216769325987 0.224088296057274  7.99250201432156 0.221270748025632  7.99266927175899 0.218233116249939  7.99266756089451 0.215286447202363  7.99248988 0.21240573 
- 0 11 0.5 9 0.75 9 0.875 9 0.9375 9 1 11
-8 1.37499288 38.1919507
-7 0 0  11 12 2  1 -4.44089209285582e-016  0.999999999999992 3.34699616120019  1.00000000000004 6.69399235686738  0.999999999999904 10.0409882925469  1.00000000000018 13.387985209083  0.99999999999975 16.7349798138378  1.00000000000026 20.0819781920561  0.999999999999808 23.4289721564618  1.0000000000001 26.7759698620877  0.999999999999959 30.1229653055451  1.00000000000001 33.4699616572426  1 36.81695782 
- 1.37499288 12 38.1919507 12
-8 1.37499288 38.1919507
-7 0 0  8 9 2  1 38.1919507  1 33.5898309783501  0.999999999999988 28.9877112797469  1.00000000000002 24.3855914300879  0.999999999999982 19.7834719819657  1.00000000000001 15.1813518857906  0.999999999999997 10.5792324382749  1 5.97711260379112  1 1.37499288 
- 1.37499288 9 38.1919507 9
-8 0 1
-7 0 0  11 32 4  0.000126649999999895 0.89142684  0.33897424571357 0.812202564870591  0.678046857895864 0.733620771477464  1.01719914504832 0.656559194842077  1.35724662902095 0.581060891243014  1.69750978742503 0.50843328936794  2.03820294069169 0.439239107077584  2.38023176070723 0.373494881356353  2.72340152343174 0.312149208976976  3.06668287492734 0.256709332728399  3.41103287926726 0.206721432657571  3.92897326139915 0.140669624285575  4.10184008125329 0.120148494050239  4.27496588087195 0.10113650834974  4.44822549856895 0.0837230099411851  4.62151567386264 0.0679832809928071  4.7948275673999 0.0539482916820069  4.96823770853009 0.0416143031180695  5.14184929533161 0.0309720322815727  5.31571577158857 0.0220350866743401  5.48977860554822 0.0148473763718523  5.837923784429 0.00405104597164846  6.01209992172211 0.000438778442330958  6.18559004671604 -0.00134386859592186  6.3619823624414 -0.00126287080055919  6.52887225615856 0.000566156368508808  6.71294220085935 0.00475574448180907  6.88024805865163 0.0105579780931912  7.05555830614353 0.0186302826778351  7.22933614627826 0.0287939187607358  7.40314911298187 0.0411313801678024  7.57653262 0.05568158 
- 0 12 0.5 10 0.75 10 1 12
-8 0 1
-7 0 0  11 82 9  2.01729017 1  2.01729016999996 0.977272727272724  2.01729017000018 0.954545454295312  2.01729016999957 0.931818186108351  2.01729017000071 0.909090900886276  2.01729016999911 0.886363655512467  2.01729017000086 0.863636346831114  2.01729016999936 0.840909106973519  2.01729017000037 0.818181816625807  2.01729016999984 0.795454545383281  2.01729017000005 0.772727273258436  2.01729016999996 0.738636365032985  2.0172901700002 0.727272728621731  2.01729016999947 0.715909093396953  2.01729017000095 0.704545456684443  2.01729016999875 0.693181818712687  2.01729017000125 0.681818181335562  2.01729016999905 0.670454545249082  2.01729017000053 0.659090909339783  2.01729016999979 0.647727272682794  2.01729017000005 0.636363636474197  2.01729016999996 0.61363636361323  2.01729017000017 0.602272726981723  2.01729016999956 0.590909090086333  2.01729017000079 0.579545453071019  2.01729016999894 0.568181816123367  2.01729017000108 0.556818179373994  2.01729016999917 0.545454542840459  2.01729017000045 0.534090906441118  2.01729016999984 0.522727270049726  2.01729017000001 0.51136363361817  2.01729017000004 0.477272724803049  2.01729016999972 0.454545452905636  2.01729017000076 0.43181818150743  2.01729016999865 0.409090910338352  2.01729017000176 0.386363639395766  2.01729016999825 0.363636365750694  2.01729017000133 0.340909088501216  2.01729016999924 0.318181813034428  2.01729017000031 0.295454543922804  2.01729016999992 0.27272727250781  2.01729017000002 0.244318182740533  2.01729016999991 0.238636364693976  2.01729017000022 0.232954546620085  2.01729016999963 0.227272728513286  2.01729017000047 0.221590910324991  2.01729016999956 0.215909091991078  2.01729017000031 0.210227273460772  2.01729016999984 0.204545454723592  2.01729017000005 0.198863635838494  2.01729016999999 0.193181816960983  2.01729017000001 0.181818179782501  2.01729016999998 0.176136361420091  2.01729017000005 0.170454543121775  2.01729016999988 0.164772724962693  2.01729017000017 0.159090907046524  2.01729016999982 0.153409089375512  2.01729017000013 0.147727271807443  2.01729016999993 0.142045454089972  2.01729017000002 0.136363635982369  2.01729017 0.130681817455863  2.01729017 0.119318180502218  2.01729017000002 0.113636361898358  2.01729016999994 0.107954543363073  2.01729017000011 0.102272725013054  2.01729016999989 0.0965909068987187  2.01729017000006 0.0909090890148676  2.01729016999999 0.0852272713141246  2.01729017 0.0795454537172043  2.01729017 0.073863636126146  2.01729017000001 0.0681818184352741  2.01729016999998 0.0568181826518785  2.01729017000015 0.0511363643941594  2.01729016999959 0.0454545457337328  2.01729017000071 0.03977272734503  2.01729016999911 0.0340909095666706  2.01729017000084 0.0284090921763756  2.0172901699994 0.0227272746599004  2.01729017000033 0.0170454566456619  2.01729016999987 0.0113636381771385  2.01729017000003 0.00568181949487062  2.01729017 6.93889390390723e-018 
- 0 12 0.25 10 0.375 10 0.5 10 0.75 10 0.8125 10 0.875 10 0.9375 10 1 12
-8 0 1
-7 0 0  10 47 6  7.57653262 0.05568158  7.59927325403158 0.0596803461183721  7.62204101188675 0.0635158606740607  7.64482493101527 0.0672756758037402  7.66760685142842 0.0710441521509246  7.69036952974536 0.0749059378633095  7.71309991628752 0.0789475095161865  7.7357875952705 0.08325677496172  7.75841838802759 0.0879207381043414  7.7809631193356 0.093021225601995  7.81456076050582 0.101432400439219  7.82572091964797 0.10436529041284  7.83686401752246 0.107434942828718  7.84792802039159 0.110686908145558  7.85895690768428 0.114118891654787  7.86998143957808 0.117734553420106  7.88093958858328 0.121579421035477  7.89175383701355 0.125706013002672  7.90245080792863 0.130119853677599  7.91824003961536 0.137234038963162  7.92345911346554 0.139682335110537  7.9286408965738 0.142252045734181  7.93374459695145 0.144910416199971  7.93878841968509 0.147721156434327  7.94378394668515 0.150736992723626  7.948691593147 0.153926866276058  7.95346255872094 0.157244646191439  7.95810491076255 0.160737264542883  7.96482302909929 0.166203199735308  7.96702074239722 0.168059411377222  7.96917993278207 0.169981214066535  7.97127590310677 0.171934874554126  7.97331772469636 0.173966751040373  7.97531128899589 0.176115320813977  7.9772335855744 0.178350238417031  7.9790558231182 0.180627424483715  7.98078084979665 0.182978000151575  7.98399548847705 0.187777393253323  7.98548688047145 0.190235524221389  7.98684568661374 0.192691151974867  7.98811514947376 0.19546146701959  7.98916910424907 0.19778294160769  7.99020146748829 0.200944940475067  7.99100631833602 0.203665719323841  7.99168362618447 0.206631598461975  7.99217904069946 0.209536325701182  7.99248988 0.21240573 
- 0 11 0.5 9 0.75 9 0.875 9 0.9375 9 1 11
-8 0 1
-7 0 0  7 20 4  0 38.1919507  0.0714285714285716 38.1919506999999  0.142857145117315 38.1919507000004  0.214285717135611 38.1919506999993  0.285714286194273 38.1919507000008  0.357142853645566 38.1919506999996  0.42857142348319 38.1919507000001  0.53571429177184 38.1919507  0.571428606654827 38.1919507000001  0.607142833492968 38.1919506999997  0.642857071913193 38.1919507000004  0.678571368569571 38.1919506999997  0.714285666500807 38.1919507000001  0.785714273384821 38.1919506999999  0.821428561907317 38.1919507000003  0.857142721630875 38.1919506999995  0.89285738266266 38.1919507000005  0.928571292550456 38.1919506999997  0.964285714285717 38.1919507000001  1 38.1919507 
- 0 8 0.5 6 0.75 6 1 8
-8 1.34817287 38.1919507
-7 0 0  10 11 2  0.0712101900000001 0  0.265818189231975 0  0.460426152693828 0  0.655034271191777 0  0.849642048848226 0  1.04425031359222 0  1.23885809376947 0  1.43346621105781 0  1.62807416854172 0  1.82268217262929 0  2.01729017 0 
- 1.34817287 11 38.1919507 11
-8 1.34817287 38.1919507
-7 0 0  9 10 2  0 1.34817287  0 5.44192595893886  0 9.53567934249462  0 13.6294315589082  0 17.7231860306616  0 21.8169377384492  0 25.9106917129042  0 30.0044444606133  0 34.0981976110612  0 38.1919507 
- 1.34817287 10 38.1919507 10
-8 0 1
-7 0 0  1 2 2  0 1  0 0 
- 0 2 1 2
-8 0 1
-7 0 0  6 7 2  1.11022302462516e-016 1  0.313873509999999 1  0.627747021213052 1  0.941620533821613 0.999999999999999  1.25549404454256 1  1.56936755666667 0.999999999999999  1.88324107 1 
- 0 7 1 7
-8 0 1
-7 0 0  1 2 2  3.42297087 0  3.42297087 1 
- 0 2 1 2
-8 0 1
-7 0 0  6 7 2  1.88324107 0  1.56936755666667 0  1.25549404454258 0  0.941620533821613 0  0.62774702121304 0  0.313873509999999 0  0 0 
- 0 7 1 7
-8 1.20676907 1.78417229
-7 0 0  9 26 4  1.20676907 0  1.22280804805787 0  1.23884702974807 0  1.25488601107094 0  1.27092497265607 0  1.28696397278988 0  1.30300293556488 0  1.31904191977425 0  1.33508089692565 0  1.36715885334346 0  1.38319783155388 0  1.39923680976669 0  1.41527578798299 0  1.43131476620344 0  1.44735374442938 0  1.46339272266135 0  1.47943170090057 0  1.52754863564249 0  1.55962659220858 0  1.59170454884447 0  1.6237825055471 0  1.6558604623159 0  1.68793841914701 0  1.7200163760399 0  1.75209433299142 0  1.78417229 0 
- 1.20676907 10 1.351119875 8 1.49547068 8 1.78417229 10
-8 1.20676907 1.78417229
-7 0 0  11 22 3  2.31521104 1  2.36556375897663 1.00000000000002  2.41591646145813 0.999999999999915  2.46626922613211 1.00000000000019  2.51662187416885 0.99999999999971  2.56697466988839 1.00000000000034  2.6173273311953 0.999999999999677  2.66768008213272 1.00000000000024  2.71803278979129 0.999999999999863  2.76838551198729 1.00000000000005  2.81873823114176 0.999999999999992  2.91944367018376 0.999999999999999  2.96979638979501 1.00000000000003  3.02014910949279 0.999999999999916  3.07050182927902 1.00000000000015  3.12085454914516 0.999999999999828  3.17120726909713 1.00000000000015  3.22155998912532 0.999999999999898  3.27191270923337 1.00000000000005  3.3222654294158 0.999999999999982  3.37261814967223 1  3.42297087 1 
- 1.20676907 12 1.49547068 10 1.78417229 12
-8 0.57740334 1.20676907
-7 0 0  9 26 4  2.31521104 1  2.24813043121012 1  2.18104980603644 0.999999999999986  2.11396923903274 1.00000000000003  2.04688856257493 0.999999999999962  1.97980801405831 1.00000000000004  1.91272736407771 0.99999999999997  1.84564676760964 1.00000000000002  1.77856615426511 0.999999999999996  1.67794523841517 1  1.64440493319503 1.00000000000001  1.61086462802881 0.99999999999999  1.57732432290733 1.00000000000001  1.5437840178213 1  1.51024371276156 0.999999999999994  1.47670340771881 1  1.44316310268388 1  1.37608249261114 0.999999999999997  1.34254218229722 1.00000000000002  1.30900190732801 0.999999999999969  1.27546152507912 1.00000000000004  1.24192132992847 0.999999999999964  1.2083809417011 1.00000000000003  1.17484065263126 0.999999999999986  1.1413003654683 1  1.10776006 1 
- 0.57740334 10 0.892086205 8 1.0494276375 8 1.20676907 10
-8 0.57740334 1.20676907
-7 0 0  10 29 4  1.20676907 0  1.17530078381152 0  1.14383251380024 0  1.11236417896872 0  1.08089597007369 0  1.04942759742584 0  1.01795937436364 0  0.986491054243712 0  0.955022777464331 0  0.923554488710774 0  0.876352058130795 0  0.860617914630653 0  0.844883771153397 0  0.829149627696121 0  0.81341548425443 0  0.797681340826148 0  0.781947197406589 0  0.766213053993261 0  0.750478910582192 0  0.71901062375813 0  0.703276481892531 0  0.687542327247066 0  0.671808224720329 0  0.656073989480849 0  0.640339976777163 0  0.624605722564598 0  0.608871619946307 0  0.593137483597116 0  0.57740334 0 
- 0.57740334 11 0.892086205 9 1.0494276375 9 1.20676907 11
-8 0 0.57740334
-7 0 0  10 29 4  2.77555756156289e-017 0  0.0288701670523694 0  0.0577403340657856 0  0.0866105010329885 0  0.115480667946584 0  0.14435083479943 0  0.173221001584016 0  0.202091168293261 0  0.230961334919682 0  0.259831501456093 0  0.303136751114669 0  0.317571834318388 0  0.332006917509426 0  0.346442000690779 0  0.360877083865694 0  0.375312167037053 0  0.389747250208155 0  0.404182333381924 0  0.418617416561543 0  0.447487582938584 0  0.461922667682895 0  0.476357739693725 0  0.490792863748989 0  0.505227855379776 0  0.519663069172597 0  0.534098041954116 0  0.548533166092303 0  0.562968256625208 0  0.57740334 0 
- 0 11 0.28870167 9 0.433052505 9 0.57740334 11
-8 0 0.57740334
-7 0 0  9 26 4  0 1  0.0615422259798095 0.999999999999993  0.123084451866241 1.00000000000003  0.184626677639244 0.999999999999934  0.246168903278889 1.00000000000009  0.307711128765047 0.999999999999913  0.369253354077838 1.00000000000006  0.430795579197136 0.999999999999975  0.492337804103011 1  0.584651141111606 1  0.615422253409593 1  0.646193365677936 0.999999999999993  0.676964477925504 1.00000000000002  0.707735590160605 0.999999999999974  0.738506702392312 1.00000000000002  0.769277814628911 0.999999999999987  0.800048926879302 1  0.861591151424753 0.999999999999998  0.892362258492393 1.00000000000001  0.923133400673403 0.999999999999975  0.953904436507895 1.00000000000004  0.984675658015256 0.999999999999951  1.01544668816331 1.00000000000004  1.04621781670473 0.999999999999977  1.07698894730089 1.00000000000001  1.10776006 1 
- 0 10 0.28870167 8 0.433052505 8 0.57740334 10
-8 0 1
-7 0 0  9 10 2  1.15245074 1  1.02440065720316 1  0.896350567744475 0.999999999999985  0.768300522990695 1.00000000000002  0.640250357274025 0.999999999999971  0.512200381767934 1.00000000000003  0.384150216933849 0.999999999999977  0.256100172076722 1.00000000000001  0.128050082239948 0.999999999999996  0 1 
- 0 10 1 10
-7 0 0  4 5 2  1 0  0.863340413930186 0  0.735176185600528 0  0.614335192870819 0  0.5 0 
- 0 5 1 5
-8 0 1
-7 0 0  1 2 2  0 1  0 0 
- 0 2 1 2
-8 0 1
-7 0 0  5 6 2  1 0  0.799999999291919 0  0.599999998999466 0  0.399999999616473 0  0.19999999769002 0  1.11022302462516e-016 0 
- 0 6 1 6
-8 0 1
-7 0 0  1 2 2  0 0  1.15245074 0 
- 0 2 1 2
-8 0 1
-7 0 0  10 11 2  0 1.11022302462516e-016  0 0.152068152185004  0 0.304136281475966  0 0.456204466332198  0 0.608272535610324  0 0.760340782856035  0 0.912408850478254  0 1.06447703942306  0 1.21654517480863  0 1.36861332376717  0 1.52068147 
- 0 11 1 11
-8 0 0.5
-7 0 0  9 18 3  1.15245074 -5.55111512312578e-017  1.15245074 0.0555555555555557  1.15245073999998 0.111111111116116  1.15245074000003 0.166666667531817  1.15245073999996 0.22222222565278  1.15245074000005 0.277777786329154  1.15245073999996 0.333333350411048  1.15245074000002 0.388888918748614  1.15245074 0.444444492191974  1.15245074 0.555555650990539  1.15245074000001 0.61111044061216  1.15245073999997 0.666670552049266  1.15245074000005 0.722214075283864  1.15245073999996 0.777789211527317  1.15245074000002 0.833324383533255  1.15245074 0.888893655284878  1.15245074 0.944444349180754  1.15245074 1 
- 0 10 0.25 8 0.5 10
-8 0 0.5
-7 0 0  4 5 2  1.12886001 0.5  1.12886001 0.375000000058529  1.12886001 0.249999999935807  1.12886001 0.125  1.12886001 0 
- 0 5 0.5 5
-8 0 1.48870447
-7 0 0  9 18 3  1 0  0.999999999999999 0.089892838532626  1.00000000000001 0.179790521642252  0.999999999999975 0.269669932424109  1.00000000000004 0.359582903153954  0.999999999999952 0.449456513241746  1.00000000000003 0.53936126118228  0.999999999999986 0.629249664112954  1 0.71914330936352  0.999999999999997 0.898929042104648  1.00000000000001 0.988821914144237  0.99999999999998 1.07871479129143  1.00000000000002 1.16860767298502  0.999999999999982 1.25850055866347  1.00000000000001 1.34839344776557  1 1.43828633972995  0.999999999999998 1.52817923399518  1 1.61807213 
- 0 10 0.744352235 8 1.48870447 10
-8 0 1.48870447
-7 0 0  5 6 2  0 -1.11022302462516e-016  0 0.2977408897595  0 0.59548178463372  0 0.893222679199177  0 1.19096357619219  0 1.48870447 
- 0 6 1.48870447 6
-8 0 1
-1 1 1.61807213 -1 0 
-8 0 1.82687438
-7 0 0  7 8 2  0 1.61807213  0 1.38691896861617  0 1.15576580628647  0 0.924612641377626  0 0.693459482832089  0 0.462306318723421  0 0.231153158439249  0 -1.70066688892096e-017 
- 0 8 1.82687438 8
-8 0 1.82687438
-7 0 0  7 8 2  1.82687438 0  1.56589232737771 0  1.30491027318021 0  1.0439282154995 0  0.782946164361323 0  0.52196410666827 0  0.260982052523557 0  1.11022302462516e-016 0 
- 0 8 1.82687438 8
-8 0 1
-7 0 0  9 10 2  1 0  1 0.149214037827723  0.999999999999985 0.298428084787751  1.00000000000002 0.447642078270868  0.999999999999971 0.596856213329659  1.00000000000003 0.74607012685746  0.999999999999977 0.895284261775339  1.00000000000001 1.04449825535379  0.999999999999996 1.19371230222192  1 1.34292634 
- 0 10 1 10
-7 0 0  4 5 2  0.5 0  0.385664807051278 0  0.264823814827912 0  0.136659585668982 0  0 0 
- 0 5 1 5
-8 0 1.61807207
-7 0 0  9 26 4  1 -5.55111512312578e-017  1 0.0413529264329582  1 0.0827015201192849  0.999999999999998 0.124066433639995  1.00000000000001 0.165401399612487  0.999999999999988 0.206771488852768  1.00000000000001 0.248113802937041  0.999999999999989 0.289470701706362  1.00000000000001 0.330822927906434  0.999999999999989 0.413528776948552  1.00000000000005 0.454881700350476  0.99999999999989 0.496234622624708  1.00000000000016 0.537587543762775  0.999999999999849 0.57894046375606  1.0000000000001 0.620293382596143  0.999999999999955 0.661646300274383  1.00000000000001 0.702999216782344  0.999999999999986 0.827057962769609  1.00000000000004 0.909763788642009  0.999999999999919 0.992469610136004  1.00000000000011 1.0751754276604  0.999999999999888 1.15788124162148  1.00000000000008 1.24058705242882  0.999999999999962 1.32329286048873  1.00000000000001 1.40599866621  1 1.48870447 
- 0 10 0.4045180175 8 0.809036035 8 1.61807207 10
-8 0 1.61807207
-7 0 0  5 6 2  1.61807207 0  1.29445766042458 0  0.970843245192979 0  0.64722883052217 0  0.32361441343933 0  0 0 
- 0 6 1.61807207 6
-8 0 1
-1 1 1.48870447 -1 0 
-8 0 1
-7 0 0  10 38 5  0 0  0.0282215020923101 0  0.0564429966276207 0  0.0846645015100594 0  0.112886001451254 0  0.141107498267012 0  0.169328998928296 0  0.197550500946033 0  0.225771998854649 0  0.253993499759292 0  0.310436500435937 0  0.338658000511576 0  0.366879501534188 0  0.395101002744601 0  0.423322503245608 0  0.451544002878438 0  0.479765502308966 0  0.507987002466732 0  0.536208503503469 0  0.592651503328598 0  0.620873002932361 0  0.649094502630444 0  0.67731600257834 0  0.705537502762561 0  0.733759003073738 0  0.761980503388104 0  0.790202003638854 0  0.81842350389734 0  0.874866504995944 0  0.903088006218329 0  0.931309503151528 0  0.959531015276684 0  0.987752492361548 0  1.01597402478905 0  1.04419549688738 0  1.07241701572036 0  1.10063851024319 0  1.12886001 0 
- 0 11 0.25 9 0.5 9 0.75 9 1 11
-8 0 1
-7 0 0  5 6 2  1 0  0.799999998377 0  0.599999999673636 0  0.400000000319857 0  0.200000001627906 0  5.55111512312578e-017 0 
- 0 6 1 6
-8 0 1
-1 -9.59518922649671e-017 1 9.59518922649671e-017 -1 
-8 0 1
-7 0 0  9 10 2  -1.11022302462516e-016 0  0.128045938854511 0  0.256091885653204 0  0.384137786331314 0  0.512183809507973 0  0.640229641001412 0  0.768275663007673 0  0.896321564260143 0  1.02436751073719 0  1.15241345 0 
- 0 10 1 10
-7 0 0  4 5 2  1.61807207 0.5  1.61807206999998 0.385664808412349  1.61807207 0.264823815243716  1.61807207000002 0.136659586185943  1.61807207 0 
- 0 5 1 5
-8 0 1
-7 0 0  5 6 2  1 0  1 0.268644077998361  1 0.537288155825674  0.999999999999999 0.805932234223934  1 1.07457631207818  1 1.34322039 
- 0 6 1 6
-7 0 0  4 5 2  1.61807207 1  1.61807207 0.863340413756017  1.61807206999999 0.735176184034568  1.61807207000001 0.614335191962566  1.61807207 0.5 
- 0 5 1 5
-8 0 1.82687438
-7 0 0  7 8 2  1.61807207 1  1.38691892013218 0.999999999999998  1.15576576841944 1.00000000000001  0.924612612882194 0.999999999999991  0.69345946290809 1.00000000000001  0.462306306570669 0.999999999999997  0.231153152812406 1  -1.70066641020411e-017 1 
- 0 8 1.82687438 8
-8 0 1.82687438
-7 0 0  7 8 2  -1.92365834798148e-017 1  0.260982052523556 1  0.52196410666827 0.999999999999997  0.782946164361319 1.00000000000001  1.0439282154995 0.999999999999991  1.30491027318021 1.00000000000001  1.56589232737772 0.999999999999998  1.82687438 1 
- 0 8 1.82687438 8
-8 2.78088653 5.56177307
-7 0 0  8 23 4  0 0  0.0364104119095881 0  0.0728208239647636 0  0.109231238706418 0  0.145641656393508 0  0.182052067036896 0  0.218462483564498 0  0.254872897655543 0  0.327693726739259 0  0.364104141291552 0  0.400514555847953 0  0.436924970402023 0  0.473335384947521 0  0.509745799477958 0  0.546156213987067 0  0.655387457431195 0  0.728208286303289 0  0.801029115252506 0  0.873849944293437 0  0.946670773353551 0  1.01949160233896 0  1.0923124312006 0  1.16513326 0 
- 2.78088653 9 3.476108165 7 4.1713298 7 5.56177307 9
-8 2.78088653 5.56177307
-7 0 0  11 22 3  2.78088653 1  2.90729045960056 0.999999999999995  3.0336944394577 1.00000000000002  3.16009819784812 0.999999999999971  3.28650250787856 1.00000000000001  3.41290590496158 1.00000000000003  3.53931037334963 0.999999999999931  3.66571393151963 1.00000000000006  3.79211804562029 0.999999999999968  3.91852192472455 1.00000000000001  4.04492586636968 0.999999999999998  4.29773373363029 1  4.42413766726297 0.999999999999996  4.55054160089755 0.999999999999987  4.67694553453467 1.00000000000006  4.80334946817054 0.99999999999988  4.92975340181144 1.00000000000014  5.05615733544765 0.999999999999882  5.18256126908841 1.00000000000007  5.30896520272573 0.999999999999971  5.43536913636372 1.00000000000001  5.56177307 1 
- 2.78088653 12 4.1713298 10 5.56177307 12
-8 0.60294418 0.79736362
-7 0 0  7 8 2  0 0.79736362  0 0.769589414285875  0 0.741815210248582  0 0.714040998723605  0 0.68626680120742  0 0.658492589841049  0 0.630718385714596  0 0.60294418 
- 0.60294418 8 0.79736362 8
-7 0 0  3 4 2  1.16513326 1  1.16513325999999 0.671247149536677  1.16513326000002 0.33797764114207  1.16513326 1.11022302462516e-016 
- 0.60294418 4 0.79736362 4
-8 0 1
-7 0 0  9 26 4  1.16513326 1  1.10040363427343 1  1.03567400854571 0.999999999999986  0.970944382815507 1.00000000000002  0.906214757081435 0.999999999999975  0.841485131342169 1.00000000000002  0.776755505596325 0.999999999999981  0.712025879842566 1.00000000000001  0.647296254079521 0.999999999999997  0.550201815418995 0.999999999999999  0.517837002532539 1.00000000000001  0.485472189648371 0.999999999999984  0.453107376768598 1.00000000000002  0.420742563894984 0.999999999999985  0.388377751029715 1.00000000000001  0.356012938174585 0.999999999999998  0.323648125331662 1  0.258918499674082 0.999999999999998  0.226553686596679 1.00000000000001  0.194188875344442 0.999999999999983  0.16182405832853 1.00000000000002  0.129459252370422 0.999999999999984  0.0970944332469287 1.00000000000001  0.0647296230421442 0.999999999999997  0.0323648112133912 1  -2.77555756156289e-017 1 
- 0 10 0.5 8 0.75 8 1 10
-8 0 1
-7 0 0  4 5 2  0 0  0 0.335805097499999  0 0.671610195680635  0 1.00741529232776  0 1.34322039 
- 0 5 1 5
-8 0 1
-7 0 0  7 8 2  0 1  0 0.857142854990173  0 0.71428571867533  0 0.571428563870542  0 0.428571433221326  0 0.285714284178413  0 0.142857141494259  0 0 
- 0 8 1 8
-8 0 1
-7 0 0  5 6 2  0 1.3088836  0.199999997999686 1.3088836  0.400000001236192 1.3088836  0.599999998384548 1.3088836  0.800000001908034 1.3088836  1 1.3088836 
- 0 6 1 6
-8 0.5 1
-7 0 0  5 6 2  0 0  0.201333763085333 0  0.401996202900362 0  0.601991784089002 0  0.801324929812359 0  1 0 
- 0.5 6 1 6
-7 0 0  3 4 2  0 0.797363620000357  0 0.863511248791802  0 0.931027169094537  0 0.999999999999647 
- 0.5 4 1 4
-8 0 1
-7 0 0  5 6 2  1 1.34322039  0.79999999883525 1.34322039  0.599999998412672 1.34322039  0.399999999107195 1.34322039  0.199999998067233 1.34322039  0 1.34322039 
- 0 6 1 6
-8 0 1
-7 0 0  1 2 2  0 0  0 1 
- 0 2 1 2
-8 0 0.5
-7 0 0  1 2 2  1.15241345 0  1.15241345 1 
- 0 2 0.5 2
-8 0 0.5
-7 0 0  11 12 2  0 0  0 0.0454544701819247  0 0.0909127055905363  0 0.136353170437431  0 0.181837060879128  0 0.227250401615514  0 0.272745541202072  0 0.318171757448794  0 0.363639848813339  0 0.409090310789355  0 0.454545454583984  0 0.5 
- 0 12 0.5 12
-8 0 1
-7 0 0  9 42 6  0 1.52499365  0 1.44027178088413  0 1.35554991117709  0 1.27082804146504  0 1.18610617195849  0 1.10138430262025  0 1.01666243329384  0 0.931940563831656  0 0.847218694222917  0 0.720135889971818  0 0.677774955210816  0 0.63541402043662  0 0.593053085646577  0 0.550692150838214  0 0.508331216008801  0 0.465970281155883  0 0.423609346276787  0 0.360067943915052  0 0.338887476450433  0 0.317707008977442  0 0.296526541498467  0 0.275346074015801  0 0.254165606531858  0 0.232985139048935  0 0.211804671569416  0 0.180033970358746  0 0.169443736624022  0 0.158853502892221  0 0.148263269164196  0 0.137673035440635  0 0.127082801722432  0 0.116492568010287  0 0.10590233430504  0 0.0847218669098685  0 0.074131634012385  0 0.063541395992177  0 0.0529511732764732  0 0.0423609235227812  0 0.0317707037617147  0 0.0211804649995803  0 0.0105902285085298  0 0 
- 0 10 0.5 8 0.75 8 0.875 8 0.9375 8 1 10
-8 0 1
-7 0 0  1 2 2  0 1  1.15241345 1 
- 0 2 1 2
-8 0 1
-7 0 0  10 11 2  0 0  0.196208622530365 0  0.392417390538429 0  0.588625216923938 0  0.784835855600817 0  0.981041407829617 0  1.1772530447449 0  1.37345975575091 0  1.56966910527409 0  1.76587759780704 0  1.96208622 0 
- 0 11 1 11
-7 0 0  4 5 2  1 0.5  1.00000000000007 0.381185003861604  0.999999999999915 0.258450427594587  1.00000000000004 0.131506978875905  1 0 
- 0 5 1 5
-8 0.5 1
-7 0 0  9 18 3  1.96208622 -2.77555756156289e-017  1.96208621999998 0.0555555523035814  1.96208622000006 0.11111111397286  1.96208621999989 0.166666668761289  1.96208622000015 0.222222208285801  1.96208621999985 0.27777778810819  1.96208622000009 0.333333328456881  1.96208621999996 0.38888889008864  1.96208622000001 0.444444444448868  1.96208621999999 0.555555555238185  1.96208622000005 0.611111110938788  1.96208621999991 0.666666665271072  1.9620862200001 0.722222221938749  1.96208621999993 0.777777779266299  1.96208622000003 0.833333334071772  1.96208622 0.888888888499725  1.96208622 0.944444448173889  1.96208622 1 
- 0.5 10 0.75 8 1 10
-8 0.5 1
-7 0 0  9 10 2  1 0  0.944444444616847 0  0.888888889580116 0  0.833333331900517 0  0.777777782510201 0  0.722222217071936 0  0.666666671611277 0  0.611111109388471 0  0.555555555855359 0  0.5 0 
- 0.5 10 1 10
-8 0 1
-7 0 0  6 7 2  1.96208622 1  1.63507185184914 0.999999999999999  1.30805747762177 1  0.98104311980038 0.999999999999999  0.654028738199671 1  0.327014374301247 1  0 1 
- 0 7 1 7
-8 0 1
-7 0 0  7 8 2  0 0  0 0.18698337216296  0 0.373966744889951  0 0.56095011520507  0 0.747933491572343  0 0.934916858063026  0 1.12190022994666  0 1.3088836 
- 0 8 1 8
-8 0 1
-7 0 0  9 10 2  0 1  0 0.888888891321088  0 0.777777768308211  0 0.666666697148778  0 0.555555506494124  0 0.444444497385197  0 0.333333297409667  0 0.222222238431217  0 0.111111105870627  0 0 
- 0 10 1 10
-8 0 1
-7 0 0  9 10 2  5.55111512312578e-017 1.52499365  0.111111110358824 1.52499365  0.222222223840445 1.52499365  0.333333322868476 1.52499365  0.444444468942103 1.52499365000001  0.555555520649817 1.52499364999998  0.666666693786343 1.52499365000003  0.777777763554574 1.52499364999998  0.888888894129374 1.52499365000001  1 1.52499365 
- 0 10 1 10
-8 0.5 1
-7 0 0  11 12 2  -5.55111512312578e-017 0  0.0909090896502861 0  0.181818180721328 0  0.27272726945024 0  0.363636372038099 0  0.454545435064013 0  0.545454576104464 0  0.636363596219469 0  0.72727275867978 0  0.818181805265519 0  0.909090914249097 0  1 0 
- 0.5 12 1 12
-8 0.5 1
-7 0 0  10 11 2  0 0.5  0 0.549999999983016  0 0.599999998345583  0 0.650000004014295  0 0.699999993228581  0 0.750000006850331  0 0.799999995174032  0 0.850000001937854  0 0.899999999639318  0 0.950000000000011  0 1 
- 0.5 11 1 11
-8 0.5 1
-7 0 0  8 16 3  1 -5.55111512312578e-017  1 0.0953121078049919  0.999999999999998 0.190614493583351  1 0.285961269240173  0.999999999999992 0.38122461470222  1.00000000000001 0.476569384981238  0.999999999999996 0.571872052846062  1 0.667183947513085  1 0.857809655149615  0.999999999999997 0.953121743874874  1.00000000000001 1.04845480594896  0.999999999999986 1.14369818624137  1.00000000000001 1.23907465069676  0.999999999999992 1.33438169956076  1 1.42968154767915  1 1.52499365 
- 0.5 9 0.75 7 1 9
-8 0.5 1
-7 0 0  11 62 7  1 1  0.999999999999969 0.99431818181816  1.00000000000013 0.988636363737565  0.99999999999965 0.982954544821883  1.00000000000065 0.97727272608913  0.999999999999094 0.971590923388496  1.00000000000096 0.965909067531029  0.999999999999226 0.96022728760003  1.00000000000046 0.954545450602659  0.999999999999814 0.948863637821561  1.00000000000004 0.943181819031002  0.999999999999973 0.931818182932264  1.00000000000008 0.926136364845761  0.999999999999825 0.920454546736101  1.00000000000029 0.914772728612151  0.999999999999611 0.909090910478306  1.00000000000042 0.903409092333494  0.999999999999654 0.897727274171865  1.00000000000022 0.892045455983158  0.999999999999909 0.88636363775114  1.00000000000002 0.880681819455704  0.999999999999984 0.869318182686522  1.00000000000007 0.863636364708883  0.999999999999823 0.857954543472136  1.00000000000035 0.852272733546789  0.99999999999949 0.846590910406027  1.00000000000057 0.840909089101921  0.99999999999952 0.835227275629674  1.0000000000003 0.829545454415114  0.999999999999873 0.823863636896218  1.00000000000003 0.81818181849911  0.999999999999972 0.806818181911553  1.00000000000012 0.801136363668812  0.999999999999704 0.795454545251684  1.00000000000053 0.78977272672355  0.999999999999265 0.784090908244072  1.00000000000078 0.778409089938551  0.999999999999358 0.77272727182502  1.00000000000039 0.767045453808399  0.999999999999846 0.761363635726832  1.00000000000003 0.755681817468179  0.999999999999974 0.738636362483049  1.00000000000007 0.727272725619848  0.99999999999986 0.715909088295049  1.00000000000024 0.70454545205656  0.999999999999676 0.693181815806376  1.00000000000033 0.681818178277321  0.999999999999752 0.670454540387947  1.00000000000014 0.659090904368011  0.999999999999949 0.647727270300953  1.00000000000001 0.636363634686063  1 0.613636364101506  0.999999999999993 0.60227272847319  1 0.590909094427322  1.00000000000004 0.579545458487552  0.99999999999988 0.568181820714172  1.00000000000018 0.556818183251012  0.999999999999818 0.545454546947337  1.00000000000012 0.534090910585628  0.999999999999945 0.522727273288495  1.00000000000001 0.511363636752357  1 0.5 
- 0.5 12 0.5625 10 0.625 10 0.6875 10 0.75 10 0.875 10 1 12
-8 0 0.5
-7 0 0  11 12 2  1.16510272 1.11022302462516e-016  1.16510271999999 0.0915153499115751  1.16510272000003 0.182908638685773  1.16510271999992 0.274180128338194  1.16510272000015 0.365330133059749  1.16510271999978 0.456358837201827  1.16510272000027 0.54726661085126  1.16510271999974 0.638053636678727  1.16510272000019 0.728720238349052  1.1651027199999 0.819266650868679  1.16510272000003 0.909693150732382  1.16510272 1 
- 0 12 0.5 12
-7 0 0  3 4 2  0 0.2026364  0 0.268784036312586  0 0.333563330640592  0 0.39705586 
- 0 4 0.5 4
-8 0.5 1
-7 0 0  6 7 2  1 1.34292634  0.834437441367002 1.34292634  0.668436164132433 1.34292634  0.501993992292434 1.34292634  0.335108721278925 1.34292634  0.167778137767802 1.34292634  0 1.34292634 
- 0.5 7 1 7
-7 0 0  3 4 2  0 1.47493128821452e-013  0 0.0689728390320898  0 0.136488763690295  0 0.202636400000395 
- 0.5 4 1 4
-8 0 1
-1 1.82687438 0 0 1 
-8 0 1
-7 0 0  10 20 3  0 0.60294418  0 0.592649764216289  0 0.582355348443213  0 0.572060932678271  0 0.561766516919441  0 0.551472101163936  0 0.54117768540989  0 0.530883269654575  0 0.520588853895906  0 0.510294438131408  0 0.489705606586193  0 0.479411201103391  0 0.469116721656516  0 0.45882249440564  0 0.448527734131027  0 0.438233739240613  0 0.427938974337642  0 0.417644747695293  0 0.407350275753428  0 0.39705586 
- 0 11 0.5 9 1 11
-8 0 1
-7 0 0  3 4 2  5.56177307 1  5.56177307 0.666666664949986  5.56177307 0.333333335062264  5.56177307 0 
- 0 4 1 4
-8 0 1
-7 0 0  5 6 2  0 1.34292634  0 1.07434107474412  0 0.805755802632449  0 0.537170537042451  0 0.268585266273248  0 -1.11022302462516e-016 
- 0 6 1 6
-8 0 1
-7 0 0  8 16 3  1.16510272 0  1.09228380042731 0  1.01946488075598 0  0.946645961015007 0  0.873827041233277 0  0.801008121439839 0  0.728189201663553 0  0.655370281933446 0  0.509732442623431 0  0.436913523931127 0  0.364094598906441 0  0.291275690976483 0  0.218456754988162 0  0.145637847206749 0  0.0728189229184326 0  0 0 
- 0 9 0.5 7 1 9
-8 0 2.78088653
-7 0 0  10 20 3  1.16510272 1  1.10684758409168 1  1.04859244821643 0.999999999999994  0.990337312429701 1.00000000000001  0.93208217670746 1  0.87382704100828 0.999999999999988  0.815571905307726 1.00000000000002  0.757316769612159 0.999999999999985  0.699061633942589 1.00000000000001  0.640806498298637 0.999999999999998  0.524296226889166 1  0.466041091297891 0.999999999999988  0.407785954258587 1.00000000000003  0.349530823130246 0.999999999999956  0.291275675945237 1.00000000000005  0.23302055820821 0.999999999999957  0.174765401721485 1.00000000000003  0.116510280626449 0.99999999999999  0.0582551392152425 1  5.55111512312578e-017 1 
- 0 11 1.390443265 9 2.78088653 11
-8 0 2.78088653
-7 0 0  11 22 3  5.56177307 0  5.43536913583475 0  5.30896520178526 0  5.18256126784634 0  5.05615733402047 0  4.92975340029273 0  4.80334946667817 0  4.67694553315177 0  4.55054159973066 0  4.42413766639697 0  4.29773373315549 0  4.0449258668446 0  3.91852192107422 0  3.79211807494853 0  3.66571385190948 0  3.53931052663034 0  3.41290571978653 0  3.28650267533674 0  3.16009810625426 0  3.03369447849409 0  2.90729046392144 0  2.78088653 0 
- 0 12 1.390443265 10 2.78088653 12
-8 0 1
-7 0 0  7 8 2  0 1  0 0.857142858511134  0 0.714285715932997  0 0.571428566879807  0 0.428571437019646  0 0.285714280897039  0 0.142857145867568  0 0 
- 0 8 1 8
-8 0 1
-7 0 0  7 8 2  1 0  0.857142858511129 0  0.714285715324754 0  0.571428569392098 0  0.428571430723744 0  0.285714284624755 0  0.14285714151723 0  0 0 
- 0 8 1 8
-8 0.5 1
-7 0 0  5 6 2  1 1.3090632  0.800000001104403 1.3090632  0.599999998792295 1.3090632  0.400000000721726 1.3090632  0.199999996927193 1.3090632  -5.55111512312578e-017 1.3090632 
- 0.5 6 1 6
-8 0.5 1
-7 0 0  1 2 2  -3.73390207641933e-012 1.66079697  0.500000000169238 1.66079697 
- 0.5 2 1 2
-8 0 1
-7 0 0  6 7 2  0 1.3090632  0 1.09088599985582  0 0.872708800645047  0 0.654531597141147  0 0.436354401745033  0 0.218177196325256  0 0 
- 0 7 1 7
-8 0 1
-7 0 0  9 10 2  1.94845075 0  1.73195622349702 0  1.51546169773443 0  1.29896715437693 0  1.08247265879091 0  0.865978085634337 0  0.649483593599106 0  0.432989045066847 0  0.216494534441434 0  -1.11022302462516e-016 0 
- 0 10 1 10
-8 2.78088653 5.56177307
-7 0 0  8 9 2  1 -1.11022302462516e-016  1 0.1636328947308  0.999999999999991 0.327265801238538  1.00000000000002 0.490898695014202  0.999999999999968 0.65453160059615  1.00000000000003 0.818164499356699  0.999999999999979 0.981797399309678  1.00000000000001 1.14543029952776  1 1.3090632 
- 2.78088653 9 5.56177307 9
-8 2.78088653 5.56177307
-7 0 0  11 22 3  2.78088653 0  2.65448259702444 0  2.52807874497192 0  2.40167450880193 0  2.2752712100686 0  2.14886638760496 0  2.02246333118869 0  1.89605878638813 0  1.76965514545665 0  1.64325112391645 0  1.51684720321175 0  1.26403933606331 0  1.13763540248407 0  1.01123146889928 0  0.884827535309349 0  0.75842360171282 0  0.632019668111194 0  0.505615734502199 0  0.379211800887454 0  0.252807867265334 0  0.126403933636378 0  0 0 
- 2.78088653 12 4.1713298 10 5.56177307 12
-8 0 2.78088653
-7 0 0  11 22 3  2.78088653 1  2.65448259664406 0.999999999999948  2.5280787118236 1.00000000000021  2.40167459687621 0.999999999999487  2.27527104367287 1.00000000000088  2.14886657746748 0.999999999998866  2.02246316957588 1.00000000000113  1.89605886974685 0.999999999999136  1.76965511168116 1.00000000000049  1.64325112547786 0.999999999999811  1.5168471997533 1.00000000000004  1.26403933292207 0.99999999999998  1.13763539952713 1.00000000000004  1.01123146615298 0.999999999999914  0.884827532801418 1.00000000000013  0.758423599471083 0.999999999999843  0.632019666165282 1.00000000000017  0.505615732881716 0.99999999999985  0.379211799623639 1.00000000000011  0.252807866389771 0.999999999999944  0.126403933181838 1.00000000000002  0 1 
- 0 12 1.390443265 10 2.78088653 12
-8 0 2.78088653
-7 0 0  7 8 2  1 1.3088836  1 1.12190023063868  0.999999999999991 0.934916854783302  1.00000000000001 0.747933491100822  0.999999999999993 0.560950113941828  1 0.373966744561544  1 0.186983372191844  1 1.11022302462516e-016 
- 0 8 2.78088653 8
-8 0 1.66079697
-7 0 0  4 5 2  0 1  0 0.749999999447045  0 0.499999999338884  0 0.250000001663566  0 0 
- 0 5 1.66079697 5
-8 0 1.66079697
-7 0 0  8 9 2  0 0  0 0.207599620459176  0 0.415199241299651  0 0.622798861535063  0 0.830398484153901  0 1.03799810094248  0 1.24559772397368  0 1.45319734611858  0 1.66079697 
- 0 9 1.66079697 9
-8 0 0.5
-7 0 0  7 26 5  0 0  0.0357142853571433 0  0.0714285708477501 0  0.107142856448995 0  0.142857142138037 0  0.178571427892057 0  0.214285713688213 0  0.267857142411415 0  0.285714285114668 0  0.303571428824012 0  0.32142857055597 0  0.339285714103659 0  0.357142857234118 0  0.39285714266462 0  0.410714285861968 0  0.428571428547306 0  0.446428571302388 0  0.464285714343074 0  0.48214285721109 0  0.571428571653931 0  0.642857143272796 0  0.714285715000469 0  0.785714286770207 0  0.8571428584043 0  0.928571429614109 0  1 0 
- 0 8 0.125 6 0.1875 6 0.25 6 0.5 8
-8 0 0.5
-7 0 0  9 10 2  0.5 0  0.44444444444265 0  0.388888886589609 0  0.333333337900726 0  0.277777771194801 0  0.222222227004 0  0.166666663984062 0  0.111111111458594 0  0.0555555554295097 0  -2.77555756156289e-017 0 
- 0 10 0.5 10
-8 0 1.55787992
-7 0 0  2 3 2  1 -4.96072405375969e-010  1 0.830398480125371  1 1.66079697049607 
- 0 3 1.55787992 3
-8 0 1.55787992
-7 0 0  11 12 2  0 -4.90420586846931e-017  0 0.141625447124879  0 0.28325089520749  0 0.424876337380632  0 0.56650179862753  0 0.70812722131623  0 0.849752698867709  0 0.99137812094727  0 1.13300358299717  0 1.27462902473884  0 1.41625447291787  0 1.55787992 
- 0 12 1.55787992 12
-8 0 0.5
-7 0 0  1 2 2  1.00000000000265 1.66079697  0.499999999830761 1.66079697 
- 0 2 0.5 2
-8 0 0.5
-7 0 0  11 12 2  1.94845075 1  1.94845075000001 0.909090909902146  1.94845074999995 0.818181810093745  1.94845075000008 0.72727275718617  1.94845074999989 0.636363591813676  1.94845075000012 0.545454594439164  1.94845074999988 0.454545404772688  1.94845075000009 0.363636407660912  1.94845074999994 0.272727242721281  1.94845075000002 0.181818191717389  1.94845074999999 0.0909090882620897  1.94845075 5.55111512312578e-017 
- 0 12 0.5 12
-8 0 1
-7 0 0  1 2 2  0 0  1 0 
- 0 2 1 2
-8 0 1
-7 0 0  6 7 2  1 0  0.914144088788573 0  0.828288183214944 0  0.742432277591041 0  0.656576361215102 0  0.570720458577047 0  0.48486454 0 
- 0 7 1 7
-8 0 2.03028442
-7 0 0  5 6 2  1 -2.22044604925031e-016  0.999999999999999 0.311575984209246  1 0.623151968114862  0.999999999999998 0.934727951560437  1 1.24630393589731  1 1.55787992 
- 0 6 2.03028442 6
-8 0 2.03028442
-7 0 0  5 6 2  1 2.03028442  1 1.62422753572731  0.999999999999998 1.2181706518503  1 0.812113768572859  0.999999999999999 0.406056884133826  1 0 
- 0 6 2.03028442 6
-8 0 1
-7 0 0  1 2 2  1 1.55787992  0 1.55787992 
- 0 2 1 2
-8 0 1
-7 0 0  9 18 3  0 0.48486452  0 0.5134831629328  0 0.542101775382266  0 0.570720472435231  0 0.599339027744309  0 0.627957742167297  0 0.656576333189345  0 0.685194987922986  0 0.713813622405997  0 0.771050897507752  0 0.799669534973713  0 0.828288172415858  0 0.8569068098957  0 0.885525447474039  0 0.914144085212598  0 0.942762723172165  0 0.971381361414274  0 1 
- 0 10 0.5 8 1 10
-8 0 1
-7 0 0  11 12 2  0 0.48486452  0 0.44078592708327  0 0.396707316876254  0 0.352628792934228  0 0.30855005962914  0 0.264471662125775  0 0.220392877710133  0 0.176314419389356  0 0.13223576262473  0 0.0881571892885173  0 0.0440785934326898  0 2.77555756156289e-017 
- 0 12 1 12
-8 0 1
-7 0 0  1 2 2  1 0  0 0 
- 0 2 1 2
-8 0 1
-7 0 0  1 2 2  1 2.03028442  0 2.03028442 
- 0 2 1 2
-8 0 1
-7 0 0  3 4 2  0.48486454 0  0.323243029864074 0  0.16162151335535 0  2.77555756156289e-017 0 
- 0 4 1 4
-8 0 3.67726025
-7 0 0  5 6 2  0 2.03028442  0 1.62422753483625  0 1.2181706500412  0 0.812113769909915  0 0.406056885034227  0 0 
- 0 6 3.67726025 6
-8 0 3.67726025
-7 0 0  5 6 2  1 3.67726025  0.999999999999999 2.9418081998922  1 2.20635614950741  0.999999999999999 1.47090410652343  1 0.735452053873191  1 0 
- 0 6 3.67726025 6
-8 0 1
-7 0 0  6 12 3  1 1  0.916666666666666 1  0.833333333246833 1  0.750000000459229 1  0.666666665648958 0.999999999999999  0.583333334276045 1  0.41666666749509 0.999999999999999  0.333333332845459 1  0.250000000344898 0.999999999999997  0.166666666569951 1  0.0833333333333334 0.999999999999999  0 1 
- 0 7 0.5 5 1 7
-8 0 1
-7 0 0  1 2 2  1 0  0 0 
- 0 2 1 2
-8 7.7471244 11.44318406
-7 0 0  6 37 8  0 1  0 0.997396697811275  0 0.994789854731891  0 0.99218932826108  0 0.989582356468773  0 0.986979259179871  0 0.981771650375325  0 0.979166784189066  0 0.976562358014029  0 0.973958322976891  0 0.971354166576317  0 0.963541666019163  0 0.958333332941531  0 0.953125000226874  0 0.947916667611032  0 0.942708334829833  0 0.927083335197692  0 0.916666668738112  0 0.906250002198549  0 0.895833335537144  0 0.885416668712063  0 0.854166667620251  0 0.833333333785895  0 0.812500000074151  0 0.791666666380819  0 0.770833332601645  0 0.708333330693968  0 0.666666668834446  0 0.625000008888808  0 0.583333346692011  0 0.541666678079  0 0.416666640496201  0 0.333333364679301  0 0.250000011525638  0 0.166666641808083  0 0.0833333371175927  0 0 
- 7.7471244 7 7.8048753321875 5 7.862626264375 5 7.97812812875 5 8.2091318575 5 8.671139315 5 9.59515423 5 11.44318406 7
-8 7.7471244 11.44318406
-7 0 0  10 20 3  7.74712417 1  7.93192728547397 1.00000000000003  8.11673172065963 0.999999999999887  8.30153009113798 1.00000000000026  8.48634083175846 0.999999999999611  8.67113527289716 1.00000000000043  8.85594465777044 0.999999999999635  9.0407444312365 1.00000000000023  9.22554841504506 0.999999999999904  9.41035124702442 1.00000000000002  9.77995721297578 0.99999999999999  9.96476019596232 1.00000000000002  10.1495631789583 0.999999999999959  10.3343661619587 1.00000000000007  10.5191691449678 0.999999999999909  10.7039721279746 1.00000000000009  10.8887751109867 0.999999999999934  11.0735780939943 1.00000000000003  11.2583810770001 0.999999999999991  11.44318406 1 
- 7.7471244 11 9.59515423 9 11.44318406 11
-8 0 1.10976049
-7 0 0  9 10 2  1.12886001 1  1.00342768997398 1  0.878015496455446 0.999999999999987  0.752547402525934 1.00000000000003  0.627175383522143 0.999999999999963  0.501692263556591 1.00000000000004  0.376297206042746 0.999999999999962  0.250855490921177 1.00000000000003  0.125428896643021 0.999999999999991  2.47944830040419e-017 1 
- 0 10 1.10976049 10
-8 0 1.10976049
-7 0 0  11 42 5  1 1.10976049  1.00000000000001 1.05931683136365  0.999999999999962 1.0088731725829  1.00000000000009 0.958429519255552  0.999999999999856 0.907985846839667  1.00000000000018 0.857542212133173  0.999999999999816 0.807098525805361  1.00000000000015 0.75665488781198  0.99999999999991 0.706211218225612  1.00000000000004 0.655767562780678  0.99999999999999 0.605323904362354  1.00000000000001 0.529658416876651  0.999999999999975 0.504436587034878  1.00000000000007 0.479214762062585  0.999999999999859 0.453992919068916  1.00000000000021 0.42877111166013  0.999999999999757 0.403549255185357  1.0000000000002 0.378327446635967  0.999999999999876 0.353105607980849  1.00000000000005 0.327883782189324  0.999999999999992 0.302661952701742  0.999999999999999 0.26482920888495  1.00000000000002 0.252218293498788  0.99999999999992 0.239607382841914  1.00000000000016 0.226996458068415  0.999999999999772 0.214385551063233  1.00000000000025 0.201774639980741  0.999999999999805 0.189163716416968  1.00000000000011 0.176552804503556  0.999999999999967 0.163941891750751  0.999999999999997 0.151330976397031  1.00000000000002 0.126109146305859  0.999999999999864 0.113498231089364  1.00000000000035 0.100887317199798  0.999999999999392 0.0882764037682846  1.00000000000078 0.0756654898265021  0.999999999999225 0.0630545751413675  1.00000000000059 0.0504436601081525  0.999999999999659 0.0378327451903315  1.00000000000014 0.0252218303975076  0.999999999999965 0.0126109152898778  1 0 
- 0 12 0.554880245 10 0.8323203675 10 0.97104042875 10 1.10976049 12
-8 0 1
-7 0 0  10 20 3  1 1.10976049  0.950000000000004 1.10976048999999  0.899999999993938 1.10976049000003  0.850000000040888 1.10976048999995  0.799999999894132 1.10976049000005  0.750000000108814 1.10976048999997  0.700000000055725 1.10976049000001  0.649999999723437 1.10976049  0.600000000255969 1.10976049  0.550000000109299 1.10976049  0.449999998763695 1.10976049000001  0.39999999759406 1.10976048999996  0.349999995948303 1.10976049000011  0.299999995273113 1.10976048999982  0.249999999313948 1.10976049000022  0.199999994579504 1.10976048999981  0.149999997178248 1.10976049000012  0.0999999967626193 1.10976048999995  0.049999998006787 1.10976049000001  0 1.10976049 
- 0 11 0.5 9 1 11
-8 0 1
-7 0 0  7 14 3  1 1  0.999999999999999 0.928571428571427  1 0.857142856792674  0.99999999999999 0.785714286832605  1.00000000000001 0.714285712842501  0.999999999999992 0.642857143460724  1 0.571428571921622  0.999999999999998 0.428571427593852  1 0.357142856278644  0.999999999999994 0.285714286878605  1.00000000000001 0.214285713268776  0.999999999999996 0.142857143204011  1 0.0714285714285722  1 2.77555756156289e-017 
- 0 8 0.5 6 1 8
-8 3.65967968 7.7471244
-7 0 0  10 20 3  7.74712417 1  7.54275196094592 1.00000000000001  7.3383816693846 0.999999999999958  7.13400366803808 1.00000000000009  6.92964090855589 0.999999999999852  6.72525836371454 1.00000000000017  6.52089384776809 0.999999999999856  6.31651768558919 1.00000000000009  6.11214670775867 0.999999999999961  5.90777427475701 1.00000000000001  5.49902980080448 0.99999999999999  5.29465756486534 1.00000000000003  5.0902853296732 0.999999999999938  4.88591309494131 1.00000000000008  4.6815408603778 0.999999999999924  4.47716862569652 1.00000000000005  4.2727963906066 0.999999999999978  4.06842415481992 1.00000000000001  3.8640519180474 0.999999999999998  3.65967968 1 
- 3.65967968 11 5.70340204 9 7.7471244 11
-8 3.65967968 7.7471244
-7 0 0  10 29 4  0 -5.25973662476286e-018  0 0.0277440126268422  0 0.0554881059947595  0 0.0832322679477913  0 0.110974981068965  0 0.138720229519954  0 0.166464989144673  0 0.194207338500423  0 0.221952294067733  0 0.249696113347553  0 0.305184136483414  0 0.332928148370127  0 0.360672160507772  0 0.388416172827756  0 0.416160185262881  0 0.443904197743986  0 0.471648210204042  0 0.499392222574223  0 0.527136234786857  0 0.610368270747512  0 0.665856382687525  0 0.721343819955899  0 0.776833745366783  0 0.832317877956471  0 0.887811407981532  0 0.943293896171295  0 0.99878585268618  0 1.05427201394165  0 1.10976049 
- 3.65967968 11 4.68154086 9 5.70340204 9 7.7471244 11
-8 0.5 1
-7 0 0  3 4 2  1.12886001 0.5  1.12886001 0.66666666649191  1.12886001 0.833333515238157  1.12886001 1 
- 0.5 4 1 4
-8 0.5 1
-7 0 0  10 11 2  0 1.52068147  0.099999998718934 1.52068147000002  0.199999997250452 1.52068146999992  0.300000007347172 1.52068147000018  0.399999978351613 1.52068146999971  0.500000038203663 1.52068147000033  0.599999952604801 1.52068146999973  0.700000033765418 1.52068147000016  0.799999986603413 1.52068146999993  0.900000005194768 1.52068147000002  1 1.52068147 
- 0.5 11 1 11
-8 0 1
-7 0 0  10 11 2  5.55111512312578e-017 0  0.099999999000435 0  0.19999999783188 0  0.300000004660058 0  0.399999984674565 0  0.500000025317384 0  0.599999967850364 0  0.700000022322396 0  0.799999992259453 0  0.900000002848119 0  1 0 
- 0 11 1 11
-8 0 1
-7 0 0  11 12 2  0 0  0 0.0909090870005873  0 0.181818194699957  0 0.272727243223232  0 0.3636364028566  0 0.454545417493743  0 0.545454578812931  0 0.636363609214597  0 0.727272746354653  0 0.818181811433325  0 0.909090911680101  0 1 
- 0 12 1 12
-8 0.5 1
-7 0 0  9 18 3  1 1  0.972222223107143 0.999999999999996  0.944444445260269 1.00000000000001  0.916666666971317 0.99999999999998  0.888888888618995 1.00000000000001  0.861111110448061 1.00000000000001  0.833333332570161 0.999999999999983  0.805555554963123 1.00000000000001  0.777777777471372 0.999999999999998  0.722222222140174 0.999999999999998  0.694444440737269 1.00000000000001  0.66666668661602 0.999999999999976  0.638888849063158 1.00000000000003  0.611111169227293 0.999999999999985  0.583333288546101 1  0.555555579821702 1  0.527777777490575 0.999999999999999  0.5 1 
- 0.5 10 0.75 8 1 10
-7 0 0  4 5 2  1 1.52068147  1 1.17720178811077  1 0.811610086521991  1 0.420780379991539  1 0 
- 0.5 5 1 5
-8 0 1
-7 0 0  4 5 2  1.94845075 1  1.46133806234165 1  0.974225374608466 1  0.487112687637795 1  -1.11022302462516e-016 1 
- 0 5 1 5
-7 0 0  4 5 2  5.55111512312578e-017 1  0.138352569460285 0.999999999999956  0.26685716841291 1.00000000000001  0.387063898265423 1.00000000000004  0.5 1 
- 0 5 1 5
-8 0 3.65967968
-7 0 0  9 26 4  0 0  0.0555555565558975 0  0.111111112347649 0  0.166666667882863 0  0.22222222349947 0  0.277777779366071 0  0.333333335481409 0  0.388888891674995 0  0.444444447606518 0  0.527777780346183 0  0.555555557789258 0  0.583333335137524 0  0.611111112432472 0  0.63888888971651 0  0.666666667030835 0  0.694444444417863 0  0.722222221919072 0  0.777777777233893 0  0.805555547810258 0  0.833333368302565 0  0.861111027280528 0  0.888889005370496 0  0.916666564009156 0  0.944444504677849 0  0.972222202870418 0  1 0 
- 0 10 1.82983984 8 2.74475976 8 3.65967968 10
-8 0 3.65967968
-7 0 0  11 32 4  3.54324898762612e-017 1  0.166349076363619 0.999999999999997  0.332698152727337 1.00000000000002  0.49904722909074 0.999999999999956  0.665396305454837 1.00000000000008  0.831745381817779 0.999999999999905  0.998094458182237 1.00000000000007  1.16444353454511 0.999999999999973  1.3307926109093 0.999999999999989  1.49714168727263 1.00000000000002  1.6634907636364 0.999999999999988  1.91301437818178 1.00000000000001  1.99618891636397 0.999999999999916  2.07936345454524 1.00000000000023  2.16253799272871 0.999999999999565  2.24571253090888 1.00000000000059  2.32888706909276 0.99999999999938  2.41206160727334 1.00000000000049  2.49523614545587 0.999999999999703  2.57841068363729 1.00000000000012  2.66158522181878 0.999999999999974  2.82793429818123 1.00000000000002  2.91110883680859 0.999999999999933  2.99428337184251 1.00000000000014  3.07745792024613 0.999999999999816  3.16063244070584 1.00000000000016  3.24380699277148 0.999999999999911  3.32698151552843 1.00000000000002  3.41015607347226 1.00000000000001  3.49333059414949 0.999999999999993  3.57650513990764 1  3.65967968 1 
- 0 12 1.82983984 10 2.74475976 10 3.65967968 12
-8 0 1
-7 0 0  11 32 4  0 1  0 0.977272727220067  0 0.954545453624753  0 0.931818186168602  0 0.909090899445788  0 0.88636364776312  0 0.863636353991642  0 0.840909095589628  0 0.818181816177811  0 0.795454545347626  0 0.77272727231941  0 0.727272726812242  0 0.704545454061328  0 0.681818181312959  0 0.659090908567418  0 0.636363635824184  0 0.61363636308402  0 0.590909090346039  0 0.568181817611056  0 0.545454544878479  0 0.52272727214864  0 0.454545453966938  0 0.40909090852297  0 0.36363636308955  0 0.318181817666517  0 0.272727272254191  0 0.227272726852105  0 0.181818181460788  0 0.136363636079766  0 0.0909090907093733  0 0.0454545453494261  0 0 
- 0 12 0.25 10 0.5 10 1 12
-8 0 1
-7 0 0  1 2 2  0.999999999420943 0  -5.78139536244748e-010 0 
- 0 2 1 2
-8 1.23049347 1.78417229
-7 0 0  10 29 4  -4.42139104810896e-017 0  0.177557083724617 0  0.355114179164191 0  0.532671265723126 0  0.710228350979233 0  0.88778544052934 0  1.06534253139195 0  1.24289961830775 0  1.42045670227528 0  1.59801379066455 0  1.86434942203471 0  1.9531279660713 0  2.04190651021952 0  2.1306850543818 0  2.21946359850005 0  2.30824214255179 0  2.39702068655557 0  2.48579923056503 0  2.57457777467395 0  2.75213486335206 0  2.84091340476899 0  2.92969196890499 0  3.01847045132397 0  3.10724911167726 0  3.19602750485484 0  3.28480617666664 0  3.37358464875575 0  3.46236321662454 0  3.55114176 0 
- 1.23049347 11 1.50733288 9 1.645752585 9 1.78417229 11
-8 1.23049347 1.78417229
-7 0 0  10 29 4  1.38090458579697e-017 1  0.0276839413856586 0.999999999999987  0.0553678827232684 1.00000000000005  0.0830518240218066 0.99999999999988  0.110735765290407 1.00000000000019  0.138419706537915 0.999999999999767  0.166103647773587 1.00000000000022  0.193787589006213 0.999999999999849  0.221471530245007 1.00000000000007  0.249155471498878 0.99999999999998  0.290681383415914 1.00000000000001  0.304523354065416 0.99999999999995  0.318365324724551 1.00000000000012  0.332207295392484 0.999999999999819  0.346049266068338 1.0000000000002  0.35989123675129 0.999999999999839  0.373733207440461 1.00000000000009  0.387575178135026 0.999999999999968  0.40141714883411 1  0.429101090239648 1  0.442943061779962 0.99999999999998  0.456785026416304 1.00000000000005  0.470627019206511 0.999999999999936  0.484468940307674 1.00000000000006  0.498310981591275 0.999999999999962  0.512152892421255 1.00000000000001  0.525994885112835 0.999999999999996  0.539836859545316 1  0.55367883 1 
- 1.23049347 11 1.50733288 9 1.645752585 9 1.78417229 11
-8 0.55367874 1.23049347
-7 0 0  10 38 5  1.23049356 1  1.21357319156174 1  1.19665281925741 0.999999999999989  1.17973242857977 1.00000000000003  1.16281212085985 0.99999999999995  1.14589168109816 1.00000000000008  1.12897136308299 0.999999999999917  1.11205097251655 1.00000000000007  1.09513061046629 0.999999999999965  1.07821024143755 1.00000000000001  1.0443695050728 0.999999999999989  1.02744913688487 1.00000000000005  1.01052876868973 0.999999999999891  0.993608400485952 1.00000000000016  0.976688032271822 0.999999999999837  0.959767664045847 1.00000000000012  0.942847295806527 0.999999999999938  0.925926927552128 1.00000000000002  0.909006559281252 0.999999999999996  0.875165822703216 1  0.85824545439859 0.999999999999995  0.841325086081774 1.00000000000001  0.824404717756554 0.999999999999973  0.807484349426089 1.00000000000004  0.790563981094322 0.999999999999949  0.773643612764468 1.00000000000004  0.756723244440234 0.999999999999981  0.739802876125107 1  0.705962139520118 1  0.689041772058309 0.999999999999991  0.672121397800164 1.00000000000002  0.655201051386918 0.999999999999965  0.638280634163597 1.00000000000004  0.621360335795543 0.999999999999971  0.604439908527925 1.00000000000002  0.587519562235686 0.999999999999994  0.570599198004511 1  0.55367883 1 
- 0.55367874 11 0.7228824225 9 0.892086105 9 1.0612897875 9 1.23049347 11
-8 0.55367874 1.23049347
-7 0 0  9 34 5  7.89204289 0  7.77146229205754 0  7.65088172851121 0  7.53030116626264 0  7.40972046482044 0  7.28914002952841 0  7.16855932685043 0  7.04797878730685 0  6.92739819345864 0  6.68623702064032 0  6.56565643206094 0  6.44507584784013 0  6.32449525956051 0  6.20391466924563 0  6.08333408407792 0  5.96275350227569 0  5.842172911813 0  5.60101173579473 0  5.48043114949974 0  5.3598505627863 0  5.23926997519365 0  5.11868938725656 0  4.99810879983884 0  4.87752821345553 0  4.75694762760484 0  4.51578645258266 0  4.39520586637987 0  4.2746252722845 0  4.1540446849511 0  4.03346410315783 0  3.9128835164437 0  3.79230292585595 0  3.67172234655226 0  3.55114176 0 
- 0.55367874 10 0.7228824225 8 0.892086105 8 1.0612897875 8 1.23049347 10
-8 0 0.55367874
-7 0 0  9 26 4  7.89204289 0  7.99068570888011 0  8.08932851035561 0  8.18797133458052 0  8.2866141284304 0  8.38525693788119 0  8.48389976357459 0  8.58254255743162 0  8.68118536914935 0  8.87847099525057 0  8.97711381050956 0  9.07575662006887 0  9.17439942683395 0  9.27304223527023 0  9.37168504650287 0  9.47032785768819 0  9.56897066574816 0  9.86489909466331 0  10.0621847168576 0  10.2594703319995 0  10.4567559438124 0  10.6540416005815 0  10.8513271944277 0  11.0486128271671 0  11.2458984391937 0  11.44318406 0 
- 0 10 0.138419685 8 0.27683937 8 0.55367874 10
-8 0 0.55367874
-7 0 0  10 29 4  1.23049356 1  1.24433552850671 0.999999999999984  1.25817749298298 1.00000000000007  1.27201943886836 0.999999999999853  1.28586146816808 1.00000000000023  1.29970336455019 0.999999999999745  1.31354538339506 1.00000000000022  1.32738732920117 0.999999999999863  1.34122930369363 1.00000000000005  1.35507127115464 0.999999999999994  1.38275520778502 0.999999999999995  1.39659717610442 1.00000000000004  1.41043914442817 0.999999999999893  1.42428111275722 1.00000000000018  1.43812308109109 0.999999999999797  1.45196504943114 1.00000000000017  1.46580701777693 0.999999999999905  1.47964898612938 1.00000000000004  1.49349095448863 0.999999999999992  1.53501685958818 1.00000000000001  1.56270079632804 0.99999999999995  1.59038473307061 1.00000000000012  1.61806866981182 0.999999999999816  1.64575260654753 1.00000000000021  1.6734365432736 0.999999999999814  1.70112047998608 1.00000000000012  1.72880441668062 0.999999999999944  1.75648835335334 1.00000000000001  1.78417229 1 
- 0 11 0.138419685 9 0.27683937 9 0.55367874 11
-8 0 1
-7 0 0  1 2 2  11.44318406 -5.8042859407692e-010  11.44318406 0.999999999421405 
- 0 2 1 2
-8 0 1
-7 0 0  1 2 2  -5.80428149987711e-010 3.67726025  0.999999999421403 3.67726025 
- 0 2 1 2
-8 8.022e-005 1.00008022
-7 0 0  10 11 2  1.00008022 10.70174454  0.900080220691835 10.7017445399999  0.80008016872875 10.7017445400003  0.700080392644256 10.7017445399995  0.600079947282026 10.7017445400005  0.500080493829118 10.7017445399998  0.400080043761691 10.7017445399998  0.300080304672485 10.7017445400003  0.200080203789985 10.7017445399998  0.100080220544766 10.70174454  8.02199999998532e-005 10.70174454 
- 8.022e-005 11 1.00008022 11
-8 8.02200000000752e-005 1.00008022
-7 0 0  7 20 4  1 0  0.928571405290599 0  0.857142841923268 0  0.785714286697053 0  0.714285725515053 0  0.642857153384565 0  0.571428574416945 0  0.464285715533088 0  0.428571391555464 0  0.392857156960854 0  0.357142952061166 0  0.321428668565348 0  0.285714287730597 0  0.214285749296371 0  0.178571609022626 0  0.142857691581956 0  0.107142733134823 0  0.0714286179547425 0  0.0357142820465784 0  -2.77555756156289e-017 0 
- 8.022e-005 8 0.50008022 6 0.75008022 6 1.00008022 8
-8 0.00020743 46.24578153
-7 0 0  3 4 2  8.022e-005 10.70174454  8.022e-005 7.13451286431973  8.022e-005 3.56728118147016  8.022e-005 4.9500000001446e-005 
- 0.00020743 4 46.24578153 4
-8 0.000207430000003228 46.24578153
-7 0 0  7 8 2  1.00034374 46.24578153  1.00034374 39.6392709503669  1.00034374 33.0327603095913  1.00034373999999 26.4262498523667  1.00034374000002 19.8197391231767  1.00034373999999 13.2132286154134  1.00034374 6.6067180119622  1.00034374 0.000207430000006781 
- 0.00020743 8 46.24578153 8
-8 8.022e-005 1.00008022
-7 0 0  9 18 3  8.02199999998809e-005 4.95e-005  0.0556357606383708 4.94999999999994e-005  0.111191303890827 4.95000000000021e-005  0.166746938925969 4.94999999999954e-005  0.222302401817526 4.95000000000067e-005  0.277857960957205 4.9499999999993e-005  0.333413613161736 4.95000000000052e-005  0.388969090394135 4.94999999999975e-005  0.444524664200662 4.95000000000006e-005  0.555635780083466 4.94999999999997e-005  0.611191342569405 4.95000000000006e-005  0.666746881308704 4.9499999999999e-005  0.722302526833658 4.95000000000014e-005  0.777857798814903 4.94999999999987e-005  0.833413731036291 4.95000000000008e-005  0.888969031263523 4.94999999999997e-005  0.944524675547781 4.95000000000001e-005  1.00008022 4.95e-005 
- 8.022e-005 10 0.50008022 8 1.00008022 10
-8 8.02200000000752e-005 1.00008022
-7 0 0  6 27 6  1 4.45537137  0.999999999999999 4.08409064500845  1 3.71280954332189  0.999999999999996 3.34152828558409  1 2.97024747045353  0.999999999999998 2.59896707971167  1 2.13486508428653  0.999999999999999 2.04204486653467  1 1.94922475307073  0.999999999999998 1.85640466684943  1 1.7635845308255  0.999999999999999 1.62435413651776  1 1.57794395866149  0.999999999999999 1.53153358330699  1 1.48512285937647  0.999999999999999 1.43871163579206  1 1.34588788715981  0.999999999999996 1.29947381886895  1.00000000000001 1.25306475246647  0.999999999999996 1.20665824914299  1 1.16024991993606  0.999999999999998 0.928205871503354  1 0.74255733963797  0.999999999999997 0.556924676182699  1 0.371279879901405  0.999999999999999 0.18564047273382  1 1.11082684003667e-016 
- 8.022e-005 7 0.50008022 5 0.62508022 5 0.68758022 5 0.75008022 5 1.00008022 7
-8 4.95e-005 10.70174454
-7 0 0  6 7 2  1.00008022 4.94999999993695e-005  1.00008022 1.78366533834248  1.00008022 3.56728118718778  1.00008022 5.35089700214743  1.00008022 7.13451287410224  1.00008022 8.91812869820214  1.00008022 10.70174454 
- 4.95e-005 7 10.70174454 7
-8 4.94999999993695e-005 10.70174454
-7 0 0  10 11 2  1.00005543 7.14491407  1.00005543000001 6.43042608664393  1.00005542999996 5.71593815697054  1.0000554300001 5.00145000433524  1.00005542999982 4.28696231021984  1.00005543000022 3.5724740201257  1.0000554299998 2.85798624264157  1.00005543000014 2.14349818880025  1.00005542999994 1.42901020594359  1.00005543000002 0.714522232453753  1.00005543 3.42500000005685e-005 
- 4.95e-005 11 10.70174454 11
-8 0.00034374 1.00034374
-7 0 0  11 52 6  1 4.45537137  0.97727512767128 4.45537137000003  0.954549327562179 4.45537136999986  0.93182274977946 4.45537137000035  0.909095544432258 4.45537136999939  0.886367861625119 4.45537137000079  0.863639851469544 4.45537136999923  0.840911664068547 4.45537137000055  0.818183449533582 4.45537136999971  0.795455357969267 4.45537137000012  0.772727539484659 4.45537136999995  0.727272748888535 4.4553713700001  0.70456047965547 4.4553713699995  0.681719813570529 4.45537137000128  0.659352848897423 4.4553713699978  0.636043992317676 4.4553713700028  0.613879413127025 4.45537136999725  0.590772437586996 4.45537137000211  0.568226498992893 4.45537136999875  0.545447447440316 4.45537137000054  0.522727287109376 4.45537136999986  0.488636357502175 4.45537137000008  0.477272805548352 4.45537136999969  0.465909313311678 4.45537137000073  0.45454584925959 4.45537136999882  0.443182381861823 4.45537137000138  0.431818879584616 4.45537136999884  0.42045531089837 4.4553713700007  0.409091644269537 4.4553713699997  0.397727848167577 4.4553713700001  0.386363891060114 4.45537136999996  0.363635591771201 4.45537137000009  0.352267177912036 4.45537136999948  0.340901118576086 4.45537137000143  0.329538588671444 4.45537136999734  0.318178099006253 4.45537137000367  0.306817541307829 4.45537136999617  0.295455498554919 4.45537137000299  0.284091820591499 4.45537136999831  0.272727465056574 4.45537137000062  0.261363603598927 4.45537136999991  0.227272773001565 4.45537137000005  0.204545532031698 4.45537137000002  0.181818273898881 4.45537136999976  0.159091002011588 4.45537137000059  0.13636371977859 4.4553713699991  0.113636430608293 4.45537137000096  0.0909091379094693 4.45537136999926  0.0681818450905971 4.45537137000042  0.045454555560341 4.45537136999983  0.0227272727272726 4.45537137000004  0 4.45537137 
- 0.00034374 12 0.25034374 10 0.50034374 10 0.62534374 10 0.75034374 10 1.00034374 12
-8 0.000343739999999926 1.00034374
-7 0 0  11 42 5  1.00034374 0.00020743  0.977616493888741 0.000207430000000008  0.95488913795499 0.000207429999999967  0.932162083238209 0.000207430000000083  0.90943459571591 0.000207429999999855  0.886707009947719 0.000207430000000189  0.863980915639475 0.000207429999999813  0.841252069303054 0.000207430000000141  0.818525951433066 0.000207429999999921  0.795798275483191 0.00020743000000003  0.773071043187773 0.000207429999999994  0.727616471370123 0.000207430000000003  0.704889217295523 0.000207429999999996  0.682161960576593 0.000207430000000002  0.659434686545194 0.000207430000000005  0.636707395034759 0.000207429999999984  0.61398009506681 0.000207430000000022  0.591252799544316 0.00020742999999998  0.568525519936852 0.000207430000000013  0.54579826097387 0.000207429999999994  0.523071015331338 0.000207430000000002  0.477616501314267 0.000207429999999998  0.454889289623612 0.000207430000000007  0.432161781415383 0.000207429999999981  0.40943470175341 0.000207430000000039  0.386707513056481 0.00020742999999994  0.36398002603401 0.000207430000000069  0.341252697024919 0.000207429999999941  0.318525631654824 0.000207430000000036  0.295798334556349 0.000207429999999986  0.273071010642786 0.000207430000000002  0.22761645935256 0.00020743  0.204889243603897 0.000207429999999996  0.182162026881326 0.000207430000000013  0.15943459895072 0.000207429999999974  0.136707284771218 0.000207430000000036  0.113980125734277 0.000207429999999964  0.0912528665483132 0.000207430000000027  0.0685255031953503 0.000207429999999985  0.0457982978327127 0.000207430000000006  0.0230710210041008 0.000207429999999999  0.000343740000000009 0.00020743 
- 0.00034374 12 0.25034374 10 0.50034374 10 0.75034374 10 1.00034374 12
-8 5.799e-005 1.00005799
-7 0 0  10 29 4  0 4.45537137  0 4.34399764389714  0 4.23251650220087  0 4.12148276991122  0 4.00939256506556  0 3.89889166226731  0 3.78679002931944  0 3.67578485509394  0 3.56427732628911  0 3.45291293554463  0 3.23014408850958  0 3.11875972842914  0 3.00737541972277  0 2.89599115032893  0 2.78460690818257  0 2.6732226812245  0 2.56183845738823  0 2.45045422461419  0 2.33906997083782  0 2.00491711031607  0 1.78214853681189  0 1.55937996385882  0 1.33661139182976  0 1.11384282109963  0 0.891074252040694  0 0.668305685028014  0 0.445537120434288  0 0.222768558633796  0 2.22044604925031e-016 
- 5.799e-005 11 0.25005799 9 0.50005799 9 1.00005799 11
-8 5.79899999999522e-005 1.00005799
-7 0 0  11 122 13  1.00005799 3.574e-005  0.997217074881069 3.57399999999993e-005  0.994376178445408 3.57400000000032e-005  0.991535270255704 3.5739999999992e-005  0.988694355262974 3.5740000000014e-005  0.985853442634206 3.57399999999818e-005  0.983012534285705 3.57400000000179e-005  0.980171626068293 3.57399999999867e-005  0.977330714609382 3.57400000000074e-005  0.974489802754918 3.57399999999971e-005  0.971648896608216 3.57400000000006e-005  0.965967077638978 3.57399999999995e-005  0.963126167943042 3.57400000000015e-005  0.960285259053338 3.57399999999972e-005  0.957444351153267 3.57400000000034e-005  0.954603443857032 3.57399999999978e-005  0.95176253648633 3.57399999999998e-005  0.948921628330006 3.57400000000017e-005  0.946080718923655 3.57399999999985e-005  0.943239808310156 3.57400000000005e-005  0.940398897315151 3.574e-005  0.931876168808541 3.57399999999996e-005  0.926194347978344 3.57400000000024e-005  0.920512547354844 3.57399999999934e-005  0.914830713599236 3.57400000000123e-005  0.909148989573916 3.57399999999829e-005  0.903466910037855 3.57400000000182e-005  0.897785432196611 3.57399999999851e-005  0.8921033699598 3.57400000000092e-005  0.886421630205502 3.5739999999996e-005  0.880739805039871 3.5740000000001e-005  0.869376169955158 3.57399999999991e-005  0.863694350934584 3.57400000000036e-005  0.858012534823186 3.57399999999922e-005  0.852330719842665 3.5740000000012e-005  0.846648902824239 3.57399999999855e-005  0.840967082224435 3.57400000000143e-005  0.835285259328209 3.57399999999882e-005  0.829603437711101 3.57400000000077e-005  0.823921620880371 3.57399999999962e-005  0.818239808169468 3.57400000000012e-005  0.809717079158118 3.57399999999992e-005  0.806876168919218 3.57400000000039e-005  0.804035258556415 3.57399999999904e-005  0.801194348411266 3.57400000000155e-005  0.79835343872157 3.57399999999819e-005  0.795512529621849 3.57400000000158e-005  0.792671621143667 3.57399999999897e-005  0.789830713214362 3.57400000000051e-005  0.786989805658849 3.57399999999982e-005  0.784148898197969 3.57400000000003e-005  0.778467082701081 3.57399999999997e-005  0.775626173858472 3.57400000000009e-005  0.772785272736888 3.57399999999982e-005  0.76994435144636 3.5740000000002e-005  0.767103424848904 3.57399999999989e-005  0.764262517928382 3.57399999999992e-005  0.761421626698455 3.5740000000002e-005  0.758580723283862 3.57399999999983e-005  0.755739800653122 3.57400000000006e-005  0.752898897502245 3.574e-005  0.738694353245886 3.57399999999992e-005  0.727330713385101 3.5740000000004e-005  0.715967073767087 3.57399999999903e-005  0.704603436538154 3.57400000000167e-005  0.693239801950169 3.57399999999784e-005  0.681876169023066 3.57400000000216e-005  0.670512536201288 3.57399999999837e-005  0.659148902016668 3.57400000000092e-005  0.647785265745526 3.57399999999962e-005  0.636421628070187 3.57400000000009e-005  0.619376173571342 3.57399999999995e-005  0.613694355194034 3.57400000000021e-005  0.608012536805792 3.57399999999953e-005  0.602330718539708 3.57400000000067e-005  0.596648900461538 3.57399999999934e-005  0.590967082569894 3.57400000000046e-005  0.585285264796492 3.57399999999974e-005  0.579603447005364 3.57400000000012e-005  0.573921628993963 3.57399999999995e-005  0.568239810492125 3.57400000000002e-005  0.556876171833425 3.57399999999997e-005  0.551194381716412 3.57400000000018e-005  0.545512338750805 3.57399999999951e-005  0.539831124223778 3.57400000000087e-005  0.534148472830326 3.57399999999889e-005  0.528467367864546 3.57400000000104e-005  0.522785127254883 3.57399999999927e-005  0.517103476029795 3.57400000000038e-005  0.511421614850711 3.57399999999987e-005  0.505739801558959 3.57400000000001e-005  0.477330709444077 3.57400000000002e-005  0.45460343459111 3.57399999999986e-005  0.431876168855726 3.57400000000031e-005  0.409148892941062 3.57399999999959e-005  0.386421616401226 3.57400000000038e-005  0.363694353094423 3.57399999999974e-005  0.340967094735787 3.57400000000016e-005  0.3182398195524 3.5739999999999e-005  0.295512529039206 3.57400000000007e-005  0.27278526174066 3.57399999999995e-005  0.238694352586961 3.57400000000006e-005  0.227330716242957 3.57399999999965e-005  0.215967079932214 3.57400000000091e-005  0.204603443647389 3.57399999999842e-005  0.193239807381152 3.57400000000201e-005  0.18187617112625 3.57399999999809e-005  0.170512534875218 3.57400000000138e-005  0.15914889862092 3.57399999999927e-005  0.14778526235586 3.57400000000026e-005  0.136421626072833 3.57399999999996e-005  0.11369435345609 3.574e-005  0.102330720164933 3.57400000000006e-005  0.0909670720224507 3.5739999999998e-005  0.0796034515750348 3.5740000000004e-005  0.0682398130430839 3.57399999999938e-005  0.0568761602582731 3.57400000000073e-005  0.0455125336292754 3.57399999999935e-005  0.0341489129281276 3.57400000000043e-005  0.0227852491190059 3.5739999999998e-005  0.0114216268927474 3.57400000000005e-005  5.79899999999939e-005 3.574e-005 
- 5.799e-005 12 0.03130799 10 0.06255799 10 0.12505799 10 0.18755799 10 0.21880799 10 0.25005799 10 0.37505799 10 0.43755799 10 0.50005799 10 0.75005799 10 0.87505799 10 1.00005799 12
-8 0 1
-7 0 0  11 12 2  0 0  0.0909090901741543 0  0.181818184108565 0  0.272727343983139 0  0.363636084535339 0  0.454545975255027 0  0.545453860419655 0  0.636364187834514 0  0.727272474909878 0  0.818181870562669 0  0.909090908561348 0  1 0 
- 0 12 1 12
-8 0 1
-7 0 0  2 3 2  0 1.07764908108265e-011  0 0.499999976118536  0 0.999999999989224 
- 0 3 1 3
-8 6.281e-005 1.00006281
-7 0 0  11 52 6  2.22139684312905e-016 0  0.159445921344642 0  0.318891844450831 0  0.47833776870749 0  0.637783693505315 0  0.797229618231324 0  0.956675542278511 0  1.1161214650321 0  1.27556738588548 0  1.43501330422508 0  1.59445921944215 0  1.91335104240829 0  2.07279862626797 0  2.23223255313714 0  2.39171925574075 0  2.55107620757855 0  2.71065119525303 0  2.86996902109924 0  3.02948460396835 0  3.18892600440825 0  3.34836312230645 0  3.66725396373815 0  3.82670434855582 0  3.98618024347122 0  4.14550903373577 0  4.30516394215646 0  4.46435927562755 0  4.6240173097608 0  4.78337254913853 0  4.9428294724407 0  5.10227108944369 0  5.34143895191086 0  5.42116184728818 0  5.50088537457551 0  5.58060964899185 0  5.66033446589812 0  5.74005932432541 0  5.81978355172696 0  5.8995065299841 0  5.97922802264097 0  6.05894860338187 0  6.21839176811596 0  6.29811400146086 0  6.37783667457054 0  6.45755961260225 0  6.5372826771078 0  6.61700576599509 0  6.69672881357544 0  6.77645179051782 0  6.85617470388367 0  6.93589759710626 0  7.01562055 0 
- 6.281e-005 12 0.25006281 10 0.50006281 10 0.75006281 10 0.87506281 10 1.00006281 12
-8 6.28099999999687e-005 1.00006281
-7 0 0  9 18 3  1.00006281 3.88e-005  0.944507237358673 3.88e-005  0.888951652809529 3.88e-005  0.833396218670292 3.88000000000001e-005  0.7778405439425 3.87999999999995e-005  0.722284967812953 3.88000000000011e-005  0.666729534788824 3.87999999999988e-005  0.611173909425782 3.88000000000008e-005  0.555618358179738 3.87999999999998e-005  0.444507252754543 3.88000000000002e-005  0.388951734360358 3.87999999999993e-005  0.333396022232517 3.88000000000013e-005  0.277840815075917 3.87999999999985e-005  0.222284742967548 3.88000000000012e-005  0.166729704962631 3.87999999999994e-005  0.111173807719118 3.88000000000003e-005  0.0556183700697033 3.87999999999999e-005  6.28100000001075e-005 3.88e-005 
- 6.281e-005 10 0.50006281 8 1.00006281 10
-8 0 1
-1 7.01562055 0 0 1 
-8 5.543e-005 1.00005543
-7 0 0  10 29 4  7.01562055 1  6.84023003682772 1  6.66484004973113 0.99999999999999  6.48945006516268 1.00000000000003  6.31405975646539 0.999999999999938  6.13866899387289 1.00000000000009  5.96327784450889 0.999999999999918  5.7878865723882 1.00000000000005  5.61249563841569 0.999999999999979  5.43710570038679 1  5.08632952558854 1  4.91096763054934 0.999999999999972  4.73545031445841 1.00000000000007  4.56040863674769 0.99999999999989  4.38449022132834 1.00000000000012  4.20956487724138 0.999999999999907  4.03389988431036 1.00000000000005  3.85859492206002 0.999999999999987  3.68320064219735 0.999999999999998  3.1570295314241 1.00000000000002  2.80624867078815 0.999999999999923  2.45546771118764 1.00000000000018  2.10468667377609 0.999999999999717  1.75390557971188 1.00000000000032  1.40312445014609 0.999999999999721  1.05234330623828 1.00000000000018  0.701562169140263 0.999999999999919  0.350781060009398 1.00000000000002  0 1 
- 5.543e-005 11 0.25005543 9 0.50005543 9 1.00005543 11
-8 5.54299999999675e-005 1.00005543
-7 0 0  8 23 4  5.54299999999813e-005 7.14491407  0.0313054258217603 7.14491407000003  0.0625554279719316 7.14491406999989  0.0938054298787953 7.14491407000019  0.125055429993017 7.14491406999978  0.156305429501241 7.14491407000017  0.187555430039607 7.14491406999992  0.218805431407366 7.14491407000002  0.281305427153427 7.14491407  0.312555438035834 7.14491406999997  0.343805409089175 7.14491407000004  0.375055437251669 7.14491406999997  0.406305457103626 7.14491407  0.437555414912181 7.14491407000001  0.468805428244396 7.14491407  0.562555435124715 7.14491406999999  0.625055410412666 7.14491407000003  0.687555500400519 7.14491406999993  0.750055317824769 7.1449140700001  0.812555531560356 7.14491406999991  0.875055392858892 7.14491407000005  0.937555434355485 7.14491406999999  1.00005543 7.14491407 
- 5.543e-005 9 0.25005543 7 0.50005543 7 1.00005543 9
-8 3.88e-005 8.09360706
-7 0 0  2 3 2  5.543e-005 7.14491407029497  5.543e-005 3.5724741632494  5.543e-005 3.42497050276336e-005 
- 3.88e-005 3 8.09360706 3
-8 3.88000000004496e-005 8.09360706
-7 0 0  10 20 3  6.281e-005 3.88000000000264e-005  6.28100000000002e-005 0.404717214062959  6.28099999999994e-005 0.809395615605185  6.28100000000003e-005 1.21407403623817  6.28100000000014e-005 1.61875245715844  6.28099999999963e-005 2.02343086719106  6.28100000000048e-005 2.42810927361238  6.28099999999962e-005 2.83278768771172  6.28100000000019e-005 3.23746610703796  6.28099999999994e-005 3.64214451629207  6.28100000000007e-005 4.45150134133179  6.28099999999971e-005 4.85617973684956  6.2810000000007e-005 5.26085825409687  6.28099999999884e-005 5.66553635636097  6.28100000000141e-005 6.07021533536986  6.28099999999878e-005 6.47489305553737  6.28100000000076e-005 6.87957204197316  6.28099999999968e-005 7.28425014323844  6.28100000000008e-005 7.68892864784028  6.281e-005 8.09360706 
- 3.88e-005 11 4.04682293 9 8.09360706 11
-8 5.543e-005 1.00005543
-7 0 0  10 11 2  5.54300000000785e-005 3.425e-005  0.10005545327349 3.42500000000009e-005  0.200055324657142 3.42499999999963e-005  0.300055662485614 3.42500000000084e-005  0.400055158026799 3.42499999999869e-005  0.500055620126499 3.42500000000149e-005  0.600055344652079 3.42499999999875e-005  0.700055458153806 3.42500000000075e-005  0.800055425654538 3.42499999999969e-005  0.90005543187508 3.42500000000007e-005  1.00005543 3.425e-005 
- 5.543e-005 11 1.00005543 11
-8 5.54299999999675e-005 1.00005543
-7 0 0  8 16 3  2.77555756156289e-017 1.82448587  0.0625000144690981 1.82448587  0.125000014464461 1.82448587  0.187500001770316 1.82448587000001  0.249999989421712 1.82448586999998  0.312499991198303 1.82448587000002  0.375000011118271 1.82448586999999  0.437500032932087 1.82448587  0.562499986300738 1.82448587  0.625000121917143 1.82448587000001  0.687499775377622 1.82448586999998  0.7500000340545 1.82448587000003  0.812500076573746 1.82448586999997  0.874999965719539 1.82448587000002  0.937499999703886 1.82448586999999  1 1.82448587 
- 5.543e-005 9 0.50005543 7 1.00005543 9
-8 6.281e-005 1.00006281
-7 0 0  9 18 3  1.00006281 8.09360706  0.944507262123437 8.09360705999998  0.888951632699342 8.09360706000008  0.83339626900489 8.0936070599998  0.777840456749281 8.09360706000038  0.72228509180494 8.09360705999948  0.666729482521586 8.09360706000045  0.611173902735136 8.09360705999974  0.555618364121602 8.09360706000007  0.444507254115184 8.09360705999993  0.388951680536548 8.09360706000022  0.333396173807954 8.09360705999962  0.277840563533612 8.09360706000047  0.222285018814967 8.09360705999955  0.166729516055836 8.09360706000032  0.111173885702575 8.09360705999984  0.0556183656141817 8.09360706000004  6.28099999999965e-005 8.09360706 
- 6.281e-005 10 0.50006281 8 1.00006281 10
-8 6.28099999999687e-005 1.00006281
-7 0 0  9 34 5  2.07179401 1  2.07179400999999 0.972222223863225  2.07179401000001 0.94444443843988  2.07179401 0.916666703954082  2.07179400999997 0.888888815180695  2.07179401000004 0.861111037920439  2.07179400999996 0.833333377038953  2.07179401000002 0.805555564553543  2.07179401 0.777777787350623  2.07179400999998 0.722222223069936  2.07179401000009 0.694444431046355  2.07179400999983 0.666666705911611  2.07179401000022 0.638888849631174  2.0717940099998 0.611111078291679  2.07179401000013 0.583333407902705  2.07179400999995 0.555555571521531  2.07179401000001 0.527777641824197  2.07179400999999 0.472222104014092  2.07179401000002 0.444444486025565  2.07179400999998 0.416666844772189  2.07179401 0.388888582870524  2.07179401000003 0.361111351569702  2.07179400999996 0.333333217176735  2.07179401000003 0.305555577557909  2.07179400999999 0.277777777380392  2.07179401000001 0.222222222012139  2.07179401 0.194444441954192  2.07179400999997 0.166666661641139  2.07179401000007 0.138888882453199  2.07179400999991 0.111111105032001  2.07179401000007 0.0833333292807435  2.07179400999996 0.0555555543640008  2.07179401000001 0.0277777787079004  2.07179401 -1.38642352802046e-017 
- 6.281e-005 10 0.25006281 8 0.50006281 8 0.75006281 8 1.00006281 10
-8 3.88e-005 8.09360706
-7 0 0  9 18 3  1.00006281 3.87999999991173e-005  1.00006281 0.449681481039108  1.00006280999998 0.899324096853196  1.00006281000004 1.34896697113894  1.00006280999995 1.79860934603414  1.00006281000004 2.24825233294654  1.00006280999998 2.69789481803233  1.00006281000001 3.14753757469811  1.00006281 3.59718024225551  1.00006281 4.49646560460157  1.00006281000002 4.94610830258812  1.00006280999996 5.39575089012877  1.00006281000005 5.84539381376743  1.00006280999994 6.29503611630151  1.00006281000004 6.74467917602574  1.00006280999998 7.19432161781887  1.00006281 7.64396437929334  1.00006281 8.09360706 
- 3.88e-005 10 4.04682293 8 8.09360706 10
-8 3.88000000004496e-005 8.09360706
-7 0 0  9 18 3  5.799e-005 3.57399999999707e-005  5.79900000000002e-005 0.428094351372108  5.79899999999992e-005 0.856152918921198  5.79900000000013e-005 1.28421166064277  5.79899999999987e-005 1.71227006615661  5.79900000000007e-005 2.14032888392304  5.799e-005 2.56838736386191  5.79899999999998e-005 2.99644602677515  5.79900000000001e-005 3.42450462979809  5.79899999999998e-005 4.2806218543772  5.79900000000011e-005 4.7086804579054  5.79899999999973e-005 5.13673911920207  5.79900000000042e-005 5.56479760462291  5.79899999999954e-005 5.9928564152031  5.79900000000034e-005 6.42091482932701  5.79899999999983e-005 6.84897356705444  5.79900000000005e-005 7.27703213737074  5.799e-005 7.70509075 
- 3.88e-005 10 4.04682293 8 8.09360706 10
-8 5.799e-005 1.00005799
-7 0 0  11 22 3  1.00005799 7.70509075  0.954603407580899 7.70509074999959  0.909149067890989 7.70509075000166  0.863693887762444 7.70509074999612  0.818240717793713 7.70509075000643  0.772784058791765 7.70509074999189  0.727331742842822 7.70509075000799  0.681875648622276 7.70509074999384  0.63642176049988 7.70509075000362  0.590967076371366 7.70509074999849  0.545512530797722 7.70509075000034  0.454603450176526 7.70509074999971  0.409148898743847 7.70509075000107  0.363694369317895 7.70509074999746  0.318239781021119 7.70509075000443  0.272785250852391 7.70509074999412  0.227330754631083 7.70509075000602  0.181876181767242 7.70509074999526  0.136421588614998 7.70509075000281  0.0909671093936988 7.70509074999883  0.0455125321542873 7.70509075000029  5.79900000000633e-005 7.70509075 
- 5.799e-005 12 0.50005799 10 1.00005799 12
-8 5.79899999999522e-005 1.00005799
-7 0 0  10 47 6  1.98405473 1  1.98405472999996 0.993749999999979  1.98405473000017 0.987501010538497  1.98405472999965 0.981250143598927  1.98405473000051 0.974999362400682  1.98405472999946 0.968749735856847  1.98405473000043 0.96250044642989  1.98405472999974 0.956250318308421  1.9840547300001 0.949999632876465  1.98405472999998 0.943749998396367  1.98405473 0.931250083342912  1.98405473000005 0.925000050696024  1.98405472999987 0.918750017113937  1.98405473000022 0.912500010677875  1.98405472999975 0.906250027877974  1.98405473000021 0.900000048129629  1.98405472999987 0.893750048284903  1.98405473000005 0.88750001714921  1.98405472999999 0.881249969993403  1.98405473 0.862499949220526  1.98405473000003 0.849999959763311  1.98405472999996 0.837499980959357  1.98405473000001 0.825000002537759  1.98405473000005 0.812500017693341  1.98405472999992 0.800000023088577  1.98405473000007 0.787500018851834  1.98405472999997 0.775000008578436  1.98405473 0.762499999330354  1.98405473000001 0.725000006247591  1.98405472999991 0.700000350498769  1.9840547300002 0.674996486762471  1.98405472999968 0.650007686697422  1.98405473000035 0.624991474489992  1.98405472999973 0.600005682245333  1.98405473000015 0.574997740730977  1.98405472999994 0.550000439097731  1.98405473000001 0.524999995741942  1.98405472999996 0.449999999528852  1.98405473000014 0.40000000113115  1.98405472999969 0.350000001971501  1.98405473000045 0.300000002210569  1.98405472999952 0.250000002008464  1.98405473000037 0.200000001526079  1.98405472999979 0.150000000923435  1.98405473000009 0.100000000361322  1.98405472999998 0.0499999999999964  1.98405473 -5.55111512312578e-017 
- 5.799e-005 11 0.06255799 9 0.12505799 9 0.25005799 9 0.50005799 9 1.00005799 11
-8 0.00020743 46.24578153
-7 0 0  4 5 2  1.00005799 3.57400000003949e-005  1.00005799 1.92629949072116  1.00005799 3.85256323841487  1.00005799 5.77882699422172  1.00005799 7.70509075 
- 0.00020743 5 46.24578153 5
-8 0.000207430000003228 46.24578153
-7 0 0  10 11 2  0.00034374 0.000207429999999286  0.000343740000000005 4.62476482606811  0.000343739999999984 9.24932228893823  0.000343740000000034 13.8738794491178  0.000343739999999949 18.4984374085628  0.000343740000000058 23.1229939899904  0.000343739999999951 27.7475523153813  0.000343740000000031 32.3721090590755  0.000343739999999986 36.9966667961182  0.000343740000000003 41.6212241209749  0.00034374 46.24578153 
- 0.00020743 11 46.24578153 11
-8 0.00034374 1.00034374
-7 0 0  6 22 5  1.00034374 46.24578153  0.958677071650599 46.24578153  0.917010447139227 46.2457815299999  0.875343762317089 46.2457815300002  0.833677068698062 46.2457815299998  0.792010424068354 46.2457815300001  0.708677062123799 46.2457815299999  0.667010336655569 46.2457815300003  0.62534387426246 46.2457815299997  0.583677010082887 46.2457815300003  0.542010425148763 46.2457815299999  0.458677091242933 46.2457815300001  0.417010362128915 46.2457815299999  0.375343770968326 46.2457815300001  0.333677072792701 46.24578153  0.292010405879796 46.24578153  0.208677057109782 46.24578153  0.167010433442731 46.24578153  0.125343748252506 46.2457815300001  0.0836770509214932 46.2457815299999  0.0420104048748928 46.24578153  0.000343740000000009 46.24578153 
- 0.00034374 7 0.25034374 5 0.50034374 5 0.75034374 5 1.00034374 7
-8 0.000343739999999926 1.00034374
-7 0 0  10 29 4  1 0  0.950000024955944 0  0.899999996798145 0  0.849999948840411 0  0.799999905629308 0  0.749999882946107 0  0.699999887804226 0  0.649999918451849 0  0.599999964369802 0  0.550000006272922 0  0.475000021027584 0  0.449995269226255 0  0.425024202491394 0  0.399946682111777 0  0.375053906040032 0  0.349969226815634 0  0.325009943364576 0  0.299998634070113 0  0.274999893344682 0  0.225000103904678 0  0.20000560074254 0  0.174981436573636 0  0.149999878782888 0  0.125016095508731 0  0.0999806152668234 0  0.0750097040431328 0  0.049997810442273 0  0.0249999989263508 0  -1.38777878078145e-017 0 
- 0.00034374 11 0.50034374 9 0.75034374 9 1.00034374 11
-8 0.48181163 12.06882334
-7 0 0  10 11 2  0 11.58701171  0 10.4283105398355  0 9.26960932710873  0 8.11090829996033  0 6.95220686281626  0 5.79350601461831  0 4.63480457588211  0 3.47610355319894  0 2.31740233219096  0 1.1587011700806  0 -1.37824154703343e-015 
- 0.48181163 11 12.06882334 11
-8 0.481811629999999 12.06882334
-7 0 0  11 12 2  0.0792074399999997 1  0.252375374203454 1.00000000000003  0.425543359551064 0.999999999999889  0.59871110344283 1.00000000000027  0.771879437724079 0.999999999999529  0.945046812318046 1.00000000000061  1.11821530078407 0.999999999999387  1.2913828501376 1.00000000000047  1.46455097025993 0.999999999999725  1.63771885026562 1.00000000000012  1.8108867941332 0.999999999999972  1.98405473 1 
- 0.48181163 12 12.06882334 12
-8 0.19391992 2.76255331
-7 0 0  2 3 2  1 -3.04465785916364e-010  1 5.61082069513139  1 11.2216414103045 
- 0.19391992 3 2.76255331 3
-8 0.19391992 2.76255331
-7 0 0  6 7 2  0 0  0 0.428105565911718  0 0.856211133737532  0 1.28431669137203  0 1.71242226731611  0 2.14052782546412  0 2.56863339 
- 0.19391992 7 2.76255331 7
-8 0 0.09090909
-7 0 0  11 22 3  1 11.22164141  0.998070983243245 11.2219748896762  0.9961089067382 11.2223165137146  0.994109756255573 11.2226669036589  0.992066627925749 11.2230272030845  0.989978606641132 11.2233975366598  0.987835342234588 11.2237796804743  0.985636773545764 11.2241736444904  0.983373434173871 11.2245810833801  0.981041384124558 11.2250027102487  0.978633361339818 11.2254398296213  0.973651588164366 11.2263475679635  0.971077821888384 11.2268181896145  0.968414079334354 11.2273068569465  0.965652734495061 11.227814971045  0.962785419963412 11.2283440800889  0.959802935364425 11.228895896047  0.956695138304173 11.2294723153094  0.95345074839591 11.2300754553079  0.950057063676501 11.2307077083176  0.946499657160258 11.2313717988602  0.942762190000001 11.23207082 
- 0 12 0.045454545 10 0.09090909 12
-7 0 0  7 8 2  1.2763119 0.65056074  1.2761892741829 0.650815451387967  1.27603993643422 0.65108397936635  1.27590621199672 0.651378175653639  1.27572570925855 0.65170044506319  1.27554497216911 0.652065805209218  1.2753268840792 0.652485454086663  1.27506871855941 0.652985405529875 
- 0 8 0.09090909 8
-7 0 0  11 12 2  0.942762190000001 11.23207082  0.939960314677771 11.2325948556375  0.937387403142818 11.2330756149436  0.935007302571951 11.2335199072641  0.932791854933754 11.2339330344071  0.93071850256379 11.2343192419955  0.928768761555735 11.2346820073594  0.926927202744974 11.2350242315405  0.925180750418341 11.2353483713643  0.923518182940206 11.2356565334784  0.921929763569305 11.2359505438637  0.920406957829693 11.2362320010235 
- 0.09090909 12 0.109634221545924 12
-7 0 0  4 5 2  1.27506871855941 0.652985405529875  1.2748993715054 0.653313355227138  1.2747753046873 0.6535533781779  1.27466957977923 0.653757905222991  1.27457777 0.65393546 
- 0.09090909 5 0.109634221545924 5
-7 0 0  11 22 3  0.920406957829693 11.2362320010235  0.918233210525194 11.2366337704197  0.916193160686883 11.2370099607643  0.914261984386188 11.2373652215669  0.912419849510035 11.2377032578455  0.910650240665427 11.238027145364  0.908939016360462 11.2383395077592  0.907273671471029 11.2386426546013  0.90564276223303 11.2389386878931  0.904035541615462 11.2392295686927  0.902442040906436 11.239517104172  0.898148023823803 11.2402895646017  0.895454079850674 11.2407716477164  0.892720045165465 11.2412584083405  0.889896039710571 11.2417586918366  0.886931121928895 11.2422814591955  0.883753789406898 11.2428391376774  0.880297094277138 11.2434432864178  0.87644407691601 11.2441140528144  0.872047089486371 11.2448767168203  0.866880031137277 11.2457699821667  0.86046065 11.24687623 
- 0.109634221545924 12 0.136363635 10 0.18181818 12
-7 0 0  7 8 2  1.27457777 0.65393546  1.27437552851933 0.654326579926238  1.27424377225826 0.654608009358054  1.27409928666095 0.654885194752602  1.27398811159714 0.655125482712034  1.27382318684184 0.655458022751369  1.27366391706507 0.655786407927048  1.27334147610436 0.656453911880128 
- 0.109634221545924 8 0.18181818 8
-7 0 0  10 11 2  1.2729392 0.65728834  1.2729820004056 0.657199405818655  1.2730242290814 0.657111691936532  1.27306588602602 0.657025198356451  1.27310697123841 0.65693992508063  1.27314748471774 0.656855872110753  1.27318742646344 0.656773039448038  1.2732267964751 0.656691427093294  1.27326559475252 0.656611035046984  1.27330382129559 0.65653186330928  1.27334147610436 0.656453911880128 
- 0.6 11 0.633484377590191 11
-7 0 0  8 9 2  0.84647518 11.24929061  0.848223366721428 11.2489888122028  0.849971566075599 11.2486870121632  0.85171971437114 11.2483852208762  0.853467981126687 11.2480834090775  0.855216065536353 11.2477816286963  0.856964314971532 11.2474798197642  0.8587124693038 11.2471780271886  0.86046065 11.24687623 
- 0.6 9 0.633484377590191 9
-8 0.27272727 0.36363636
-7 0 0  10 29 4  0.84647518 11.24929061  0.842421385941215 11.2499929270255  0.838680216515283 11.2506442794008  0.835197775445094 11.2512536836733  0.831932553933594 11.2518281040313  0.828851534248018 11.252373099032  0.825927595132777 11.252893253451  0.8231378865983 11.2533924497624  0.820462841642635 11.2538740342308  0.817885492451023 11.2543409320767  0.812896024809033 11.2552506012185  0.810483923867752 11.2556933693465  0.80813933264208 11.2561267033384  0.805849294793766 11.2565528826331  0.803601978137562 11.2569740198868  0.801386525972044 11.2573920822839  0.79919291972088 11.257808913492  0.797011538019915 11.258226314796  0.794832665180111 11.2586461373977  0.788274978997787 11.2599184181711  0.783875055194636 11.2607836968111  0.779369914101869 11.2616810261009  0.774681737247538 11.2626260143096  0.769721500499504 11.2636370290822  0.764388320673333 11.2647352699268  0.758545292943835 11.2659499053641  0.752012087751825 11.267319798196  0.744527655171355 11.2689014749327  0.73560521 11.2708009 
- 0.27272727 11 0.2954545425 9 0.318181815 9 0.36363636 11
-7 0 0  9 18 3  1.2729392 0.657288339999999  1.27275855454563 0.657663695016555  1.27340345747101 0.656328626868788  1.27134263989192 0.660582655955935  1.27384330712594 0.655367661012608  1.27137599190512 0.660484222976582  1.27264662599304 0.657811900979999  1.27203754026811 0.659059317269334  1.27201316957581 0.659084152443856  1.27178961345928 0.659494763475301  1.27168100464153 0.659694105413195  1.27156985314144 0.659896992135768  1.27145044703858 0.660112932006966  1.27131707440842 0.660351433388263  1.27116402333153 0.660622004644244  1.27098558188368 0.660934154136542  1.27077603814406 0.661297390228917  1.27052968019006 0.661721221283981 
- 0.27272727 10 0.318181815 8 0.36363636 10
-7 0 0  9 18 3  1.26914508582996 0.664044173172146  1.26921966581855 0.663922129766095  1.26929452009627 0.663799264502761  1.2693695917321 0.663675668197376  1.26944482266119 0.663551434280105  1.26952015394561 0.663426658392303  1.26959552605394 0.663301437943886  1.26967087915595 0.663175871636984  1.26974615342833 0.663050058961068  1.26990128660093 0.662789990804151  1.26998112701312 0.662655715747612  1.2700607387348 0.66252139498754  1.27014005029312 0.662387149371015  1.2702189909952 0.662253099462722  1.2702974913203 0.662119364876925  1.27037548329971 0.66198606361563  1.27045290086986 0.661853311438825  1.27052968019006 0.661721221283981 
- 0.48389543156306 10 0.5 8 0.517146533720261 10
-7 0 0  3 4 2  0.68082736 11.28239685  0.698850208113797 11.27863500758  0.717630162781317 11.2746274550465  0.73560521 11.2708009 
- 0.48389543156306 4 0.517146533720261 4
-7 0 0  9 10 2  1.26861337345316 0.664905705801424  1.26867121075329 0.664812943990424  1.26872942116647 0.66471934465519  1.26878797902892 0.664624946804857  1.26884685781868 0.664529791114731  1.26890603021811 0.664433919838782  1.26896546818412 0.66433737670811  1.26902514302531 0.66424020681654  1.26908502548507 0.664142456494476  1.26914508582996 0.664044173172146 
- 0.470926189373896 10 0.48389543156306 10
-7 0 0  3 4 2  0.66023824 11.28670238  0.666899996877013 11.2853022403314  0.673797738092064 11.283864117416  0.68082736 11.28239685 
- 0.470926189373896 4 0.48389543156306 4
-7 0 0  10 38 5  0.66023824 11.28670238  0.654874163858785 11.2878297756157  0.649939895854102 11.2888737803654  0.645359981347406 11.289849528495  0.641075966782311 11.2907687985359  0.637043290812959 11.2916405960617  0.633223316291641 11.2924727884244  0.629585906322221 11.2932715416005  0.626103724698107 11.294042506276  0.6227539649058 11.2947904432009  0.617897302749234 11.2958842879185  0.616306410911348 11.2962442261399  0.614740976604074 11.2966000243972  0.613198623356011 11.296952188892  0.611677118071778 11.2973011990947  0.610174352866694 11.2976475116037  0.608688326895372 11.2979915639016  0.607217128187252 11.2983337782312  0.605758915475769 11.2986745653583  0.602864884588597 11.2993540914832  0.601429071089034 11.2996928294763  0.600002667284059 11.3000309467273  0.59858397874539 11.3003688293835  0.597171342077771 11.3007068611584  0.595763108876315 11.3010454269568  0.594357655390972 11.3013849104916  0.59295339286286 11.3017256917043  0.59154875349316 11.3020681501304  0.589230123639454 11.3026360602116  0.588317286641091 11.3028603107643  0.587403181519157 11.30308553814  0.586487372675561 11.3033118498475  0.585569422216148 11.3035393547714  0.584648888772369 11.3037681634689  0.583725326315289 11.3039983884703  0.582798282939805 11.3042301445915  0.581867299596913 11.3044635492629  0.580931908751862 11.3046987228826 
- 0.54545455 11 0.5681818225 9 0.57954545875 9 0.590909095 9 0.598276846616651 11
-7 0 0  5 6 2  1.26861337345316 0.664905705801424  1.26796393912124 0.665947294959543  1.26756166189023 0.66656295649156  1.26717073982347 0.667150217633228  1.26682293338974 0.667671623059082  1.26640452 0.6682432 
- 0.54545455 6 0.598276846616651 6
-7 0 0  10 11 2  1.26428285310632 0.671006307371842  1.26449334488105 0.670745510328659  1.26470410323145 0.670481468162803  1.26491516660836 0.670214109326707  1.26512657406385 0.669943359937039  1.26533836530453 0.669669143655632  1.26555058074762 0.669391381562435  1.26576326157404 0.669109992027756  1.26597644976448 0.668824890602664  1.26619018808903 0.668535989966614  1.26640452 0.6682432 
- 0.384100626478303 11 0.4 11
-7 0 0  3 4 2  0.51639486 11.32193444  0.536783985791201 11.3162884947045  0.558030319104041 11.3104565831008  0.580931908751862 11.3046987228826 
- 0.384100626478303 4 0.4 4
-8 0.63636364 0.72727273
-7 0 0  10 38 5  0.51639486 11.32193444  0.514127900976736 11.3225621827762  0.511937474820656 11.3231690816184  0.509818780838796 11.3237564538558  0.507767444272568 11.3243255003509  0.505779470285174 11.3248773180943  0.5038512008916 11.3254129119445  0.501979274818926 11.3259332056732  0.500160590312166 11.3264390521174  0.498392270870261 11.3269312426384  0.494950996979526 11.3278897888118  0.493278068642943 11.3283561371835  0.491650155150356 11.3288103024698  0.490064795928529 11.3292529624604  0.488519720367337 11.329684743088  0.487012814940149 11.3301062274771  0.485542100678721 11.3305179621938  0.484105720996033 11.3309204605312  0.482701939863251 11.3313142029938  0.478583571281779 11.3324704985642  0.475961951117587 11.3332081219353  0.473451156284829 11.3339161450608  0.471040193797969 11.3345976224622  0.46871831465979 11.335255555184  0.466477722314083 11.335892125015  0.464309047100013 11.3365099713405  0.462205696835537 11.3371109623896  0.460160408841278 11.3376971686212  0.454179683186378 11.3394169118857  0.450399319190988 11.3405115921032  0.446774229695154 11.34156926681  0.443259294363613 11.3426031740508  0.439813768269339 11.3436255163916  0.436394465540458 11.3446495510073  0.432959457563365 11.3456884775451  0.429457272841364 11.3467588135508  0.425826101412469 11.3478808051031  0.42197703 11.34908406 
- 0.63636364 11 0.64772727625 9 0.6590909125 9 0.681818185 9 0.72727273 11
-7 0 0  5 6 2  1.26428285310632 0.671006307371842  1.26303466822787 0.672552795000965  1.26245949580055 0.673164916680664  1.26185615574349 0.673855450111334  1.26142661707783 0.674318357221275  1.26080958600737 0.674960552107723 
- 0.63636364 6 0.72727273 6
-8 0.72727273 0.81818182
-7 0 0  9 18 3  0.42197703 11.34908406  0.415980690719686 11.3509585698258  0.4101304366521 11.3528271316506  0.404393119119065 11.3546986194999  0.398738093080379 11.3565817105857  0.393139350585892 11.3584841131144  0.387569837100871 11.3604143185855  0.382005606926226 11.3623802638283  0.376421521257756 11.3643907000638  0.365163364756301 11.3685190019798  0.359489287364656 11.3706368689337  0.353744889461134 11.3728177391148  0.34790454181795 11.3750714505797  0.341941016917537 11.377408884707  0.335825340256547 11.3798420280899  0.329525835741807 11.3823843818077  0.323006343013529 11.3850517329154  0.31622551 11.38786254 
- 0.72727273 10 0.772727275 8 0.81818182 10
-7 0 0  5 6 2  1.26080958600737 0.674960552107723  1.25994445923467 0.675860960557384  1.259109438707 0.676680662711418  1.25820876083757 0.677519305417183  1.25721056910586 0.678406487417102  1.25592726076431 0.679433059270539 
- 0.72727273 6 0.81818182 6
-7 0 0  10 20 3  1.24899664963209 0.68404912640032  1.24940037579701 0.683827255380109  1.24979971057319 0.683602565672839  1.25019483722801 0.683374976029874  1.25058593331827 0.683144402667796  1.25097317117649 0.68291075909574  1.2513567183633 0.682673955931806  1.2517367380859 0.682433900708535  1.25211338958262 0.68219049766745  1.25248682847352 0.681943647542672  1.2531731288954 0.681479663480256  1.25348682422714 0.681263496701809  1.2537983876128 0.681044683099097  1.25410791190433 0.680823156755555  1.25441548841329 0.680598849642955  1.25472120705808 0.680371691514806  1.25502515651014 0.680141609787402  1.25532742433928 0.679908529408519  1.25562809715789 0.679672372713757  1.25592726076431 0.679433059270539 
- 0.274729071771431 11 0.3 9 0.321555342341725 11
-7 0 0  3 4 2  0.2017635 11.44137215  0.237018052337933 11.4220720075448  0.275017974542339 11.4049439935631  0.316225510000001 11.38786254 
- 0.274729071771431 4 0.321555342341725 4
-7 0 0  10 20 3  1.23463578 0.689720950000001  1.2358163824156 0.689387858998465  1.23695353292919 0.689049645957188  1.23805067324879 0.688705885896978  1.23911083306573 0.688356166211563  1.24013683748374 0.688000040113008  1.24113113688194 0.687637084774294  1.24209607651861 0.68726683143201  1.24303373719694 0.686888815739619  1.24394607749755 0.686502540837318  1.24527449828719 0.685912102796156  1.24570834238384 0.685714570079349  1.24613665300656 0.68551482746691  1.24655964044426 0.685312810639037  1.24697750726975 0.685108453630299  1.24739044889532 0.684901688713108  1.24779865409844 0.684692446271582  1.24820230551773 0.684480654665821  1.24860158011909 0.684266240086575  1.24899664963209 0.68404912640032 
- 0.2 11 0.25 9 0.274729071771431 11
-7 0 0  4 5 2  0.0393362703298748 11.5538234236251  0.082233705750673 11.5186904088694  0.121002384279037 11.4902107293552  0.15956699697509 11.4644726761407  0.2017635 11.44137215 
- 0.2 5 0.274729071771431 5
-7 0 0  10 11 2  0.0393362703298748 11.5538234236251  0.0355092350271834 11.5569577668893  0.031660377094284 11.5601313868157  0.0277890195494411 11.563344894027  0.0238944737034269 11.566598917869  0.0199760384397717 11.5698941071066  0.016032999410372 11.5732311307094  0.0120646281180384 11.5766106787542  0.00807018085756455 11.5800334634677  0.00404889748689899 11.5835002204349  0 11.58701171 
- 0.983770113025408 11 1 11
-7 0 0  3 4 2  1.23463578 0.68972095  1.23332396645803 0.690091063540609  1.23194546508382 0.690447278875847  1.23049356 0.69078273 
- 0.983770113025408 4 1 4
-7 0 0  9 18 3  1.2763119 0.65056074  1.2795802089108 0.640837613268172  1.28258842662084 0.631114047559318  1.2853365588186 0.621390025352046  1.28782459278323 0.611665585640551  1.29005254639861 0.601940673717498  1.2920204023694 0.592215342442264  1.29372817235888 0.582489556200178  1.29517585106192 0.572763331170267  1.29657892186313 0.561271808837366  1.29678584102129 0.559506940244664  1.29698419743507 0.557742057083267  1.29717399110479 0.555977159357011  1.29735522203018 0.554212247062809  1.29752789021088 0.552447320196296  1.29769199564659 0.550682378754047  1.29784753833715 0.548917422734124  1.29799451828249 0.547152452135888 
- 0 10 0.5 8 0.590722431411216 10
-7 0 0  4 5 2  0 2.56863339  0.144164643962134 2.549444149143  0.290151503907789 2.5345307167232  0.437406086503872 2.52286309406687  0.58576992 2.5142589 
- 0 5 0.590722431411216 5
-7 0 0  9 10 2  1.29799451828249 0.547152452135888  1.29865759128139 0.539190111799102  1.29914639551863 0.531227474764861  1.29946093098874 0.523264540974378  1.29960119773122 0.515301310906554  1.29956719580283 0.507337785229822  1.29935892473626 0.499373958329322  1.29897638551548 0.491409842133733  1.29841957705492 0.483445423335088  1.2976885 0.47548071 
- 0.590722431411216 10 1 10
-7 0 0  4 5 2  0.58576992 2.5142589  0.688562679122694 2.50829754655923  0.791921385660117 2.50380333951751  0.895705008966056 2.50071901850037  1 2.49917007 
- 0.590722431411216 5 1 5
-8 0.66666667 1
-7 0 0  10 38 5  0.57369412 0.16862534  0.583531818908411 0.169106873283514  0.593428177849613 0.169569688039045  0.603382075699869 0.170013680972164  0.6133924113185 0.17043875634263  0.623458051673828 0.170844823752435  0.633577825119598 0.171231797901025  0.643750538050735 0.171599599355853  0.653974993158393 0.171948155385584  0.664249987514396 0.172277399904712  0.684898549896295 0.172897143248457  0.695272119359376 0.173187642182696  0.705693740847552 0.173458707702648  0.71616215590757 0.173710285211599  0.726676088504725 0.173942326309224  0.737234247995175 0.174154788873807  0.747835330422003 0.174347637107137  0.758478018165362 0.174520841545823  0.769160977915177 0.17467437903531  0.790604736070896 0.174942086303927  0.801365521853324 0.175056256009471  0.812164010535648 0.17515072618136  0.822998349186515 0.175225482143132  0.833868147803271 0.175280528239443  0.844770769332884 0.175315855787672  0.855705904140312 0.175331483228311  0.866671526766104 0.17532741951962  0.877666469287707 0.175303688463767  0.89971205277522 0.175216945612163  0.910762698219543 0.175153933924891  0.921839794538032 0.175071309433361  0.932941911148946 0.174969106171806  0.944067619737002 0.174847364303858  0.955215497195062 0.174706130059974  0.966384115610232 0.174545455850903  0.977572033388829 0.174365400346981  0.988777801652607 0.174166028314662  1 0.17394741 
- 0.66666667 11 0.7500000025 9 0.833333335 9 0.9166666675 9 1 11
-7 0 0  6 7 2  1.27806415187964 0.368547891748681  1.28306907016081 0.384882348058484  1.28752929190375 0.40196431131988  1.29131070202547 0.419673540394115  1.2943138124956 0.437917356226014  1.29645562676565 0.456566877421156  1.2976885 0.47548071 
- 0.66666667 7 1 7
-7 0 0  10 29 4  1.27806415187964 0.368547891748681  1.27733907536754 0.366181473369245  1.27660000763965 0.363818448816778  1.2758469788278 0.361458938635611  1.27508002089391 0.359103063014397  1.27429916762317 0.35675094175115  1.27350445461613 0.354402694218394  1.27269591927962 0.352058439328408  1.27187360081663 0.34971829549858  1.27103754021501 0.347382380616876  1.26787409374552 0.338702526705394  1.26545884851774 0.332386462010016  1.26294290764026 0.326104986091066  1.26032723166943 0.319860436284313  1.2576128767342 0.313655113949982  1.25480099224577 0.307491279552674  1.25189281822922 0.301371147973047  1.24888968225469 0.295296884038498  1.24579299599166 0.289270598285761  1.2415317926002 0.281284370939317  1.24044892059225 0.279280058111341  1.2393556921717 0.277281482632895  1.2382521650771 0.275288721767496  1.23713839809263 0.273301852064066  1.2360144510198 0.271320949324279  1.23488038463944 0.269346088557528  1.23373626068687 0.267377343955402  1.232582141835 0.265414788877995  1.23141809167887 0.263458495843353 
- 0.408181166309187 11 0.5 9 0.75 9 0.834081581640313 11
-7 0 0  4 5 2  0.57369412 0.16862534  0.463513448824709 0.16323224472903  0.355120059168907 0.154693212054554  0.250282910653485 0.142388280782469  0.15044892 0.12565888 
- 0.408181166309187 5 0.834081581640313 5
-7 0 0  10 11 2  1.23141809167887 0.263458495843353  1.22912106827577 0.259598137369789  1.22678537313026 0.255762162813843  1.22441149489971 0.251951129396252  1.22199993622376 0.24816558157006  1.21955121326316 0.244406050704722  1.2170658553298 0.240673054954837  1.21454440387705 0.236967098297783  1.211987409935 0.233288667479993  1.20939544149301 0.229638242816745  1.20676907 0.22601628 
- 0.834081581640313 11 1 11
-7 0 0  3 4 2  0.15044892 0.12565888  0.0985923600462589 0.116969162175933  0.048356476095935 0.106945353340889  0 0.0954315 
- 0.834081581640313 4 1 4
-8 0 0.22601628
-7 0 0  9 26 4  1.20676907 0.22601628  1.20676907000001 0.219738050016548  1.20676906999998 0.213459803236317  1.20676907000005 0.20718161960739  1.20676906999993 0.200903320172189  1.20676907000006 0.194625156537015  1.20676906999997 0.188346885537016  1.20676907000001 0.182068670918783  1.20676907 0.175790438246499  1.20676907 0.163233978312979  1.20676907000003 0.156955748348477  1.20676906999994 0.150677518386259  1.20676907000008 0.144399288426403  1.20676906999992 0.138121058468883  1.20676907000005 0.131842828513823  1.20676906999998 0.12556459856119  1.20676907 0.119286368611071  1.20676907 0.100451678768316  1.20676906999998 0.0878952188832814  1.20676907000005 0.0753387590087188  1.20676906999993 0.0627822991449571  1.20676907000008 0.0502258392923426  1.20676906999994 0.0376693794512005  1.20676907000003 0.025112919621874  1.20676906999999 0.0125564598046948  1.20676907 0 
- 0 10 0.05650407 8 0.11300814 8 0.22601628 10
-8 0 0.22601628
-7 0 0  9 26 4  1.20676907 0.22601628  1.20676906999999 0.219738050016546  1.20676907000003 0.213459803236325  1.20676906999993 0.207181619607371  1.20676907000009 0.200903320172216  1.20676906999992 0.194625156536987  1.20676907000005 0.188346885537036  1.20676906999998 0.182068670918775  1.20676907 0.1757904382465  1.20676907 0.16323397831298  1.20676906999999 0.156955748348474  1.20676907000001 0.150677518386269  1.20676907 0.144399288426389  1.20676906999999 0.138121058468898  1.20676907000001 0.131842828513814  1.20676906999999 0.125564598561194  1.20676907 0.11928636861107  1.20676906999999 0.100451678768316  1.20676907000002 0.0878952188832842  1.20676906999995 0.0753387590087117  1.20676907000008 0.0627822991449662  1.20676906999992 0.0502258392923335  1.20676907000006 0.0376693794512061  1.20676906999997 0.0251129196218712  1.20676907000001 0.0125564598046953  1.20676907 -6.93889390390723e-018 
- 0 10 0.05650407 8 0.11300814 8 0.22601628 10
-8 0 1
-7 0 0  1 2 2  1.78417229 3.86028986554265e-011  1.78417229 1.00000000011581 
- 0 2 1 2
-8 0 1
-7 0 0  1 2 2  0 1.56619606173081e-010  0 4.05709804046985 
- 0 2 1 2
-8 0.69078273 1
-7 0 0  8 9 2  1.23049356 1  1.23049356000001 0.961347841151065  1.23049355999998 0.922695683390375  1.23049356000005 0.884043519662025  1.23049355999994 0.845391372099344  1.23049356000005 0.806739199218751  1.23049355999998 0.768087051467067  1.23049356000001 0.72943488858991  1.23049356 0.69078273 
- 0.69078273 9 1 9
-8 0.69078273 1
-7 0 0  8 9 2  1.23049356 1  1.23049356000001 0.961347841151067  1.23049355999998 0.922695683390373  1.23049356000005 0.88404351966202  1.23049355999994 0.84539137209936  1.23049356000005 0.806739199218732  1.23049355999998 0.768087051467078  1.23049356000001 0.729434888589907  1.23049356 0.69078273 
- 0.69078273 9 1 9
-7 0 0  10 20 3  0.55367883 0.69078275  0.554092120542089 0.690876352509526  0.554504279876802 0.690965937350908  0.554915309737323 0.691051504909554  0.555325207068619 0.691133054506088  0.555733974648744 0.691210586759935  0.556141611812068 0.691284101522476  0.556548117080241 0.691353598463827  0.556953492519029 0.691419078044755  0.557357736819609 0.69148053997262  0.557829211316113 0.691547725889667  0.557897539683077 0.69155735189432  0.557965835531715 0.691566862361291  0.55803409886202 0.691576257290576  0.558102329673988 0.691585536682175  0.558170527967613 0.691594700536086  0.558238693742891 0.691603748852307  0.558306826999817 0.691612681630836  0.558374927738386 0.691621498871673  0.558442995958592 0.691630200574814 
- 0 11 0.03125 9 0.0365494431488469 11
-7 0 0  3 4 2  1.90484754 1  1.9069746670639 0.997504267501124  1.90909560330242 0.995324422644333  1.91118283 0.993162 
- 0 4 0.0365494431488469 4
-7 0 0  10 11 2  0.558442995958592 0.691630200574814  0.558773567192057 0.691672460130479  0.559103371470327 0.691711994695445  0.559432408792824 0.691748804269525  0.559760679158968 0.691782888852533  0.560088182568173 0.69181424844429  0.560414919019887 0.691842883044571  0.560740888513486 0.691868792653275  0.56106609104844 0.691891977270101  0.561390526624132 0.691912436894956  0.561714195240008 0.691930171527613 
- 0.0365494431488469 11 0.0622860270214097 11
-7 0 0  3 4 2  1.91118283 0.993162  1.91265256686044 0.991639312362698  1.91409015813018 0.990148253592962  1.915532 0.98858095 
- 0.0365494431488469 4 0.0622860270214097 4
-7 0 0  10 29 4  0.561714195240007 0.691930171527613  0.561716886208558 0.691930318972674  0.561719577124096 0.691930466229378  0.561722267986619 0.691930613297725  0.561724958796129 0.691930760177715  0.561727649552625 0.691930906869349  0.561730340256108 0.691931053372626  0.561733030906576 0.691931199687546  0.561735721504031 0.691931345814109  0.561738412048472 0.691931491752315  0.562134039338063 0.691952923754415  0.56252584537091 0.691970192435708  0.562916520637047 0.691983443546566  0.563306065134312 0.691992677086529  0.56369447886205 0.691997893057195  0.564081761817387 0.691999091456936  0.564467913999979 0.691996272288038  0.564852935407231 0.691989435549081  0.565236826038096 0.69197858124136  0.566002345743375 0.691948837487997  0.566383974703956 0.691929948058767  0.566764473764611 0.691907040942101  0.567143838918329 0.691880116683593  0.567522080332035 0.691849173905362  0.567899180156233 0.691814215019459  0.568275161042156 0.691775236977224  0.568650002079016 0.691732242581509  0.569023716993094 0.691685230000956  0.5693963 0.6916342 
- 0.0622860270214097 11 0.0625 9 0.09375 9 0.125 11
-7 0 0  6 7 2  1.915532 0.988580949999999  1.917288720057 0.986671379685847  1.91904798662786 0.984673474195285  1.92064522630782 0.982827946373936  1.92257589954775 0.980477480289714  1.92413438721136 0.978537659484705  1.92581296 0.976356 
- 0.0622860270214097 7 0.125 7
-8 0.80952381 0.85714286
-7 0 0  11 12 2  1.93442335 0.96340193  1.93373359642299 0.964646284749983  1.93304874331018 0.965834897004273  1.93236074984078 0.966984942932673  1.93166209010196 0.968111085694746  1.93094620500901 0.969225098839624  1.93020519306335 0.970339970399669  1.92943200453574 0.971466153208711  1.92861746637073 0.972616611830435  1.92775167046244 0.973804178723761  1.92682216054156 0.975044330137597  1.92581296 0.976356 
- 0.80952381 12 0.85714286 12
-7 0 0  10 29 4  0.575760441157504 0.690115264049866  0.57547977878412 0.690217964118478  0.575200450536556 0.69031616911943  0.574921415641058 0.690410220167916  0.574641633323649 0.690500458378728  0.574360062810575 0.690587224867277  0.574075663328083 0.690670860748299  0.573787394102035 0.690751707137056  0.57349421435898 0.690830105148531  0.573195083324746 0.690906395897771  0.572735898676154 0.691018182800941  0.572581082283445 0.691054942429499  0.572424376486814 0.691091202599597  0.572265646724586 0.691126966523947  0.57210475843676 0.691162237417746  0.571941577061078 0.691197018492705  0.571775968037631 0.691231312964336  0.571607796804614 0.691265124044889  0.571436928801392 0.691298454948805  0.571089530132214 0.691364162830015  0.570920610201144 0.691395460118083  0.570689304165743 0.691434666100074  0.570676402268529 0.691441593716491  0.570151309146928 0.691521996339706  0.570391483962445 0.691488621654998  0.569872503573977 0.691567588238779  0.569780083251934 0.69158017324198  0.569602342170593 0.691605979761762  0.5693963 0.6916342 
- 0.80952381 11 0.833333335 9 0.8452380975 9 0.85714286 11
-8 0.76190476 0.80952381
-7 0 0  9 26 4  1.94080727 0.94944064  1.94066601212516 0.94982882257534  1.94052217501372 0.950217873948559  1.94037581503828 0.950607617046903  1.94022687451437 0.950998184535788  1.94007551605315 0.951389123552017  1.93992162464551 0.951780726165032  1.93976533390682 0.952172625088767  1.93960663134154 0.952564847391261  1.93928449542553 0.953349684767435  1.93912106092833 0.953742303089256  1.93895529293502 0.954135029495101  1.93878722842007 0.954527766724518  1.93861690615432 0.954920416777972  1.93844436559268 0.955312883509145  1.93826964679337 0.95570507283894  1.938092791359 0.956096890590253  1.9375559505058 0.95727093265191  1.93718968784614 0.958051751384909  1.93681541459414 0.958829913882799  1.93643347627074 0.959604709913551  1.93604429179377 0.960375335876309  1.93564826696779 0.961141060240794  1.93524579737434 0.961901217859903  1.93483735106812 0.962655050697246  1.93442335 0.96340193 
- 0.76190476 10 0.7738095225 8 0.785714285 8 0.80952381 10
-7 0 0  4 5 2  0.580535470821911 0.687679143844734  0.579547194292696 0.688355302219083  0.578416193063627 0.689016286958931  0.577138730382161 0.689610920000394  0.575760441157504 0.690115264049867 
- 0.76190476 5 0.80952381 5
-8 0.71428571 0.76190476
-7 0 0  9 18 3  1.94439319 0.93775271  1.94417432086634 0.938568904817766  1.94396086146547 0.939353228228349  1.94375204529926 0.940108808533583  1.94354720413216 0.940838309733982  1.9433456704142 0.941544298885141  1.94314687925189 0.942228883990704  1.94295023331238 0.942894202746216  1.94275519252445 0.943542103180465  1.94236722021942 0.944806658197058  1.94217429057089 0.945423306990147  1.94198186395174 0.94602612776867  1.94178942827873 0.946616709112234  1.94159639495054 0.947196764951491  1.94140227501348 0.947767640591339  1.94120644083064 0.948330972338505  1.94100832921614 0.948888123264217  1.94080727 0.94944064 
- 0.71428571 10 0.738095235 8 0.76190476 10
-7 0 0  4 5 2  0.583403528425449 0.685311831786704  0.582616794045971 0.686085923698913  0.581907705060018 0.686682139500429  0.581238798770231 0.687197941399759  0.580535470821911 0.687679143844733 
- 0.71428571 5 0.76190476 5
-8 0.66666667 0.71428571
-7 0 0  11 22 3  1.94884185 0.91682829  1.94863326524917 0.918076768189013  1.94843342253581 0.919246998445068  1.94824041254502 0.920352090617507  1.94805262756871 0.921402756656059  1.94786871657916 0.922407745275004  1.94768744172768 0.923374740916632  1.94750766996428 0.924310471081898  1.94732834811746 0.925220882056301  1.94714842597496 0.926111578750255  1.94696685548485 0.926987814748748  1.94659824596264 0.928721581898206  1.94641120529656 0.929579120308595  1.94622035313145 0.930432376458812  1.94602450696904 0.931286570255098  1.94582259084088 0.932146135145097  1.945613107039 0.933017081121342  1.94539475277075 0.933904155633271  1.9451657404447 0.934813912455234  1.94492416106863 0.935752928707559  1.94466761675431 0.936729327754963  1.94439319 0.93775271 
- 0.66666667 12 0.69047619 10 0.71428571 12
-7 0 0  5 6 2  0.587084813270479 0.680718288020093  0.586284027862026 0.681960067758119  0.5856512577536 0.682802143567232  0.585002762828827 0.68360443515737  0.584368051003604 0.684362808652132  0.583403528425449 0.685311831786704 
- 0.66666667 6 0.71428571 6
-8 0.61904762 0.66666667
-7 0 0  9 18 3  1.95387979 0.87425567  1.95364361442539 0.877133106261122  1.95340556894966 0.879902719593967  1.95316494094418 0.882576609124954  1.95292099734777 0.885165811460621  1.95267306985702 0.887679534694289  1.95242038044545 0.890127132630461  1.9521622133811 0.892516319711729  1.95189774988292 0.89485493467692  1.95135451969203 0.899445448389223  1.95107575223368 0.901697354715867  1.95078897279379 0.903913176304788  1.95049326063127 0.906099814655991  1.95018761873297 0.908263942768147  1.94987095335936 0.910412139390183  1.94954204828454 0.912551021721951  1.94919953373111 0.914687376577705  1.94884185 0.91682829 
- 0.61904762 10 0.642857145 8 0.66666667 10
-7 0 0  5 6 2  0.591872613550153 0.670814033050775  0.590944689403003 0.673273508638251  0.590057293952948 0.675343776644359  0.58915386281337 0.677217976731742  0.588208341970092 0.678976029532931  0.587084813270479 0.680718288020093 
- 0.61904762 6 0.66666667 6
-7 0 0  11 22 3  1.95495491240121 0.86004919638079  1.95492446783613 0.860478730051908  1.95489466289562 0.860898116600048  1.95486544821325 0.861308067567818  1.95483677755773 0.861709246198773  1.95480860738953 0.862102273917762  1.95478089647598 0.86248773592168  1.95475360554908 0.862866186112903  1.95472669700752 0.863238151352326  1.95470013468373 0.86360413472804  1.95467388365703 0.863964618110201  1.95457800945955 0.86527665014896  1.95451011599114 0.866196788024225  1.95444356592971 0.867089563682689  1.95437773756307 0.867963265429535  1.95431203591898 0.868825619970437  1.95424583324092 0.869684544541156  1.95417846626365 0.870548175047827  1.95410919580993 0.871425343825128  1.95403712651161 0.872326524179322  1.9539611583378 0.873264321754933  1.95387979 0.87425567 
- 0.586390813604534 12 0.595238095 10 0.61904762 12
-7 0 0  5 6 2  0.59307675 0.66742789  0.592796417403245 0.668261962277093  0.592569051741754 0.668912655496401  0.592351579242839 0.669521793560653  0.59214057737488 0.670103791284496  0.591872613550153 0.670814033050775 
- 0.586390813604534 6 0.61904762 6
-7 0 0  11 12 2  1.95567354 0.84970832  1.95558808763771 0.850954504534697  1.9555083603736 0.85211430494205  1.95543358419912 0.853199210484388  1.95536313095451 0.854218531028882  1.95529647251141 0.855180077085206  1.95523316256762 0.856090433285265  1.95517281686566 0.85695525187742  1.95511509992323 0.857779449464604  1.95505971553901 0.858567347464277  1.95500639929068 0.859322782566608  1.95495491240121 0.86004919638079 
- 0.57142857 12 0.586390813604534 12
-7 0 0  4 5 2  0.593909167290605 0.664953675963996  0.593632835669931 0.665773998418988  0.593419989895103 0.666406902040234  0.593237298892547 0.666950210402956  0.59307675 0.66742789 
- 0.57142857 5 0.586390813604534 5
-8 0.52380952 0.57142857
-7 0 0  11 22 3  1.95747084 0.82504194  1.95737284874349 0.826274223015519  1.95728435252989 0.827396485383459  1.95720277510489 0.828439872385491  1.9571263581809 0.82942579801752  1.95705378201496 0.830370491430925  1.95698397949523 0.83128723422907  1.95691604816864 0.832187429667258  1.9568491960114 0.833081273741436  1.95678268794389 0.833978426865302  1.95671579148626 0.834888713796064  1.9565797108223 0.836756302603835  1.95651052551326 0.837713618813298  1.95643944321132 0.838704776079447  1.95636565534928 0.839741093844462  1.95628832652971 0.840834460167047  1.95620642221264 0.841999776573641  1.95611881083287 0.84325350331831  1.95602396742193 0.844617985758307  1.95592006427051 0.846120154875581  1.95580452241047 0.847798138509612  1.95567354 0.84970832 
- 0.52380952 12 0.547619045 10 0.57142857 12
-7 0 0  5 6 2  0.595912292258761 0.659055839824978  0.595465530871195 0.660349704157464  0.595222651857474 0.661070538981641  0.594870052602272 0.662105533929618  0.594586875743061 0.662941819846589  0.593909167290605 0.664953675963996 
- 0.52380952 6 0.57142857 6
-7 0 0  11 22 3  1.95970161035693 0.798742628519546  1.95959490428809 0.799950587770102  1.95949299668386 0.801106648111251  1.95939540431944 0.802216204199119  1.9593017040956 0.80328399249751  1.95921152091501 0.804314225758133  1.95912451868995 0.805310693067415  1.95904039316503 0.806276840020828  1.95895886629784 0.807215831831887  1.95887968298895 0.808130590525064  1.95880260388573 0.809023876571973  1.95860107105185 0.811367315096859  1.95848004368449 0.812783084371046  1.95836325894885 0.814157973681549  1.95824976459074 0.815503235101708  1.95813867209627 0.816829555075282  1.95802911774946 0.818147526952009  1.95792022790388 0.819468087957306  1.95781108057692 0.820803014629487  1.95770065303765 0.822165618996816  1.9575877419292 0.823571835887772  1.95747084 0.82504194 
- 0.485827660893864 12 0.5 10 0.52380952 12
-7 0 0  5 6 2  0.5981687 0.65279432  0.597537737890411 0.654487356885709  0.597093881178523 0.655696063555506  0.596695441925308 0.65680635976922  0.596337409685662 0.657824658502932  0.595912292258761 0.659055839824978 
- 0.485827660893864 6 0.52380952 6
-7 0 0  11 12 2  1.96065211 0.788049900000001  1.96054851157482 0.789209718675471  1.9604491624102 0.790322990666332  1.96035373406128 0.791393353021102  1.96026193279988 0.79242406049818  1.96017349530073 0.793418033008894  1.96008818413109 0.794377905450237  1.96000578402461 0.795306068900473  1.95992609887587 0.796204703858652  1.95984894927007 0.797075807584623  1.95977417041072 0.797921217055789  1.95970161035693 0.798742628519546 
- 0.47619048 12 0.485827660893864 12
-7 0 0  4 5 2  0.599113545079743 0.65025232950052  0.598831703371486 0.651010589314807  0.598587451207332 0.651667719910444  0.598368304677137 0.652257307283129  0.5981687 0.65279432 
- 0.47619048 5 0.485827660893864 5
-7 0 0  11 12 2  1.96189831621882 0.774008721238536  1.96181058041611 0.775006589814294  1.9617191925403 0.776043885657193  1.9616237839267 0.777124746710639  1.96152394303248 0.778253780007271  1.96141920690771 0.779436156718791  1.96130905057751 0.780677730191992  1.96119287346136 0.781985186680838  1.96106998148504 0.783366243698886  1.9609395633746 0.784829912674745  1.96080065996133 0.786386838522533  1.96065211 0.7880499 
- 0.463237442359126 12 0.47619048 12
-7 0 0  4 5 2  0.60035469 0.64691319  0.600112033205885 0.647566025580183  0.599836808005269 0.648306482686035  0.59951767726932 0.649165062463602  0.599113545079742 0.65025232950052 
- 0.463237442359126 5 0.47619048 5
-7 0 0  11 22 3  1.96382484 0.75114736  1.96370537693461 0.752655869150113  1.96359206086613 0.754072390361285  1.96348271658307 0.755426118569833  1.96337574166536 0.756738274922121  1.96326983037159 0.75802588611892  1.96316384598516 0.759303513078893  1.96305674459557 0.760584262171244  1.96294751371838 0.761880584357675  1.96283511991476 0.76320493766324  1.96271846105252 0.764570356852511  1.96254058432518 0.766639270076353  1.96248373214619 0.767298751283835  1.96242561588195 0.767971159420823  1.96236611177473 0.768657924646714  1.96230508823009 0.769360558704155  1.96224240479411 0.770080666782829  1.96217791051975 0.770819966101546  1.96211144196464 0.771580308510051  1.96204282085793 0.772363706686688  1.9619718512968 0.773172365483295  1.96189831621882 0.774008721238536 
- 0.42857143 12 0.452380955 10 0.463237442359126 12
-7 0 0  5 6 2  0.602272496442653 0.641459358341834  0.601883891185403 0.64261525829052  0.601571475911531 0.643517389592125  0.601232704655668 0.644484602395185  0.60086723298489 0.645514876879786  0.60035469 0.64691319 
- 0.42857143 6 0.463237442359126 6
-8 0.38095238 0.42857143
-7 0 0  11 22 3  1.9700491 0.62814999  1.96987391485199 0.634541424127404  1.96968919632562 0.64080754701908  1.96949484768832 0.646957465717424  1.96929075568842 0.652999405208814  1.96907675958448 0.658941885238066  1.96885270404651 0.664791882402765  1.96861837010538 0.670557332537053  1.96837354211994 0.676244752479178  1.96811795464127 0.681861141460664  1.96785132109679 0.687412939107941  1.96729531619497 0.698400131349307  1.96700594484282 0.703835524269666  1.96670488275012 0.70921907616634  1.96639177401318 0.714556995338308  1.96606622921939 0.719855342657138  1.96572782098787 0.725120094564171  1.96537608113559 0.730357179779355  1.96501049861619 0.735572498747641  1.96463051519485 0.740771963781755  1.96423551849052 0.74596156373635  1.96382484 0.75114736 
- 0.38095238 12 0.404761905 10 0.42857143 12
-7 0 0  4 5 2  0.609875901124084 0.611630757447247  0.60823263799465 0.62024165989788  0.606532689105603 0.627698971631196  0.604566335856786 0.634636370717201  0.602272496442653 0.641459358341834 
- 0.38095238 5 0.42857143 5
-8 0.33333333 0.38095238
-7 0 0  11 22 3  1.97152657 0.554107540000001  1.97144753333553 0.559180976597245  1.9713727849601 0.563884608818213  1.97130152889872 0.568275711548174  1.9712331147149 0.572400070406147  1.97116699360532 0.576295304206115  1.97110268734946 0.579993140401413  1.97103976723916 0.583520912745181  1.97097783906596 0.58690258633329  1.97091653043933 0.590159566472739  1.97085547851052 0.593311414166114  1.97073315991638 0.599441331231826  1.97067189316829 0.602419404154224  1.97061015537182 0.605328820426953  1.97054757836089 0.608186624557016  1.97048378965522 0.611008822346319  1.97041837332116 0.613811890407742  1.97035090342038 0.616611547168343  1.97028086667028 0.619425526650522  1.97020770272143 0.622271947232936  1.97013072580126 0.62517193140431  1.9700491 0.628149990000001 
- 0.33333333 12 0.357142855 10 0.38095238 12
-7 0 0  5 6 2  0.612983757502479 0.593443878167867  0.612127665325399 0.598937411013122  0.611535842163381 0.602451831173291  0.610985714300154 0.605636036058628  0.610488437735424 0.608420989691122  0.609875901124084 0.611630757447247 
- 0.33333333 6 0.38095238 6
-7 0 0  11 22 3  1.97160670068336 0.548932228154997  1.97160548838637 0.549010707289708  1.97160428471831 0.549088624941061  1.97160308967917 0.549165981107863  1.97160190326899 0.549242775788757  1.97160072548779 0.549319008982363  1.97159955633559 0.549394680687527  1.97159839581238 0.549469790903679  1.97159724391817 0.549544339631381  1.97159610065292 0.549618326873069  1.97159496601655 0.549691752634083  1.97158516182609 0.550326184713513  1.97157699621673 0.550854399403713  1.9715693429259 0.551349277293674  1.97156220303263 0.551810749262528  1.97155557366218 0.552238999618487  1.97154946016703 0.552633685040818  1.97154385526749 0.552995272587993  1.97153876632109 0.553323290136638  1.97153418782391 0.553618090892493  1.97153012273029 0.553879485263612  1.97152657 0.55410754 
- 0.306434487924756 12 0.30952381 10 0.33333333 12
-7 0 0  3 4 2  0.61318127 0.59217018  0.613086106516271 0.592786850359111  0.613019986732055 0.5932113956526  0.61298375750248 0.593443878167867 
- 0.306434487924756 4 0.33333333 4
-7 0 0  11 12 2  1.97171749 0.54175305  1.97170547740221 0.542531993072374  1.97169385301376 0.543285675396294  1.97168261669514 0.544014105973124  1.9716717686118 0.544717274156458  1.97166130871596 0.545395182941971  1.97165123695043 0.54604783613002  1.97164155334702 0.546675231598813  1.97163225793909 0.547277367211931  1.97162335069137 0.547854245248704  1.97161483160428 0.548405865683045  1.97160670068336 0.548932228154997 
- 0.28571429 12 0.306434487924756 12
-7 0 0  3 4 2  0.613454602532188 0.590403147144828  0.61334559855282 0.591106154068834  0.613254574674235 0.591695158372925  0.61318127 0.59217018 
- 0.28571429 4 0.306434487924756 4
-8 0.23809524 0.28571429
-7 0 0  10 38 5  1.97282039 0.47997479  1.97278538215258 0.481590894518991  1.9727521216268 0.483141424351589  1.97272037129726 0.484636355916171  1.97268993280114 0.486084108741229  1.97266063666891 0.487491950788498  1.97263233579273 0.488866265560843  1.97260490065678 0.490212749830985  1.97257821546703 0.491536577981403  1.97255217505448 0.492842536105882  1.97251393716533 0.49478137621125  1.972501328316 0.495424307035466  1.97248884454493 0.496064447767288  1.97247647434224 0.496702339086991  1.9724642066664 0.497338505787069  1.97245203089008 0.497973459321944  1.97243993674248 0.498607700358963  1.97242791425507 0.499241721327704  1.97241595370437 0.499876008971002  1.97239213740992 0.501146084818287  1.97238028168449 0.501781872108207  1.97236846881427 0.502418894461001  1.9723566894702 0.503057631937657  1.97234493450479 0.503698562389819  1.97233319487536 0.504342164413064  1.97232146161803 0.504988919842337  1.97230972578816 0.505639315772052  1.97229797844783 0.506293846117185  1.97223913939836 0.509589679046381  1.97219174058933 0.51230052814841  1.97214343988979 0.515117732036134  1.97209365291765 0.51807576776078  1.97204174328443 0.521213808603559  1.97198698799443 0.524577826381845  1.97192850832057 0.528225109296631  1.97186520199284 0.532228905812855  1.97179559882714 0.536688156315301  1.97171749 0.54175305 
- 0.23809524 11 0.2500000025 9 0.25595238375 9 0.261904765 9 0.28571429 11
-7 0 0  6 7 2  0.615865270592698 0.575200528183971  0.615434829533785 0.577850579198309  0.615130848965071 0.579751610914945  0.614823031849282 0.581669962379581  0.614479200096972 0.583850276562349  0.614098941337427 0.586247568200662  0.613454602532188 0.590403147144828 
- 0.23809524 7 0.28571429 7
-7 0 0  11 22 3  1.97418937676635 0.424193023169849  1.97414727295315 0.425766406943205  1.97410597381579 0.427315127025188  1.97406544257756 0.42884051808252  1.97402564434077 0.430343854912248  1.97398654591285 0.431826358623685  1.97394811565102 0.433289202212099  1.97391032332221 0.434733515641788  1.97387313997586 0.436160390526147  1.97383653782796 0.437570884462347  1.97380049015563 0.43896602504822  1.97366576597299 0.444203386808607  1.9735706852086 0.44794800249775  1.97347916785648 0.451602469471273  1.97339070977601 0.455187078836117  1.97330485251746 0.458720998981934  1.97322115635076 0.462223460235763  1.97313921120518 0.465713250681062  1.97305859518047 0.469210677056231  1.97297889254083 0.472736853767431  1.97289965447418 0.476315707661576  1.97282039 0.47997479 
- 0.205761069651825 12 0.214285715 10 0.23809524 12
-7 0 0  5 6 2  0.61815104 0.56148505  0.617598073827388 0.564712370351046  0.617136945464844 0.567460429330412  0.616711267282509 0.57002240910709  0.61630202903492 0.572511583602929  0.615865270592698 0.575200528183972 
- 0.205761069651825 6 0.23809524 6
-7 0 0  11 12 2  1.97520533 0.38726097  1.97509121021274 0.391326478944059  1.97498266664496 0.395207854263088  1.97487918757756 0.3989227496892  1.97478032667264 0.402486616285116  1.97468569109333 0.405913107509503  1.97459493221632 0.409214396974902  1.97450773834365 0.412401428728533  1.97442382892539 0.415484116680937  1.97434294989848 0.418471506601709  1.97426486984451 0.421371910896007  1.97418937676635 0.424193023169849 
- 0.19047619 12 0.205761069651825 12
-7 0 0  4 5 2  0.619704552199201 0.552406391229385  0.619235077795086 0.555154866434463  0.618835244670284 0.557490499559363  0.618477784884294 0.559578042541019  0.61815104 0.56148505 
- 0.19047619 5 0.205761069651825 5
-7 0 0  10 29 4  1.97626491246814 0.349337349659825  1.97625947964007 0.349533987274137  1.97625401703633 0.349731646941871  1.97624852386213 0.3499303575068  1.97624299931259 0.35013014815646  1.97623744257204 0.350331048446098  1.9762318528134 0.350533088322848  1.97622622919745 0.35073629815007  1.97622057087222 0.350940708731743  1.97621487697224 0.351146351336738  1.97617868431167 0.352453162786685  1.97614719182962 0.353588781552889  1.97611453686841 0.354764891061199  1.97608057584649 0.355986659147662  1.97604515021511 0.357259777439735  1.97600808272065 0.35859059542632  1.97596917277859 0.359986286055604  1.9759281900871 0.361455073316617  1.97588486564221 0.36300655225681  1.97579289293237 0.366297711526549  1.97574424459499 0.368037394432548  1.97569261426991 0.369882584225989  1.97563762968522 0.371846538112112  1.97557885504821 0.373944767227313  1.97551577184815 0.376195719217404  1.97544775451371 0.378621643436785  1.97537403591747 0.381249817039671  1.97529364987676 0.384114588126986  1.97520533 0.38726097 
- 0.16442722501096 11 0.166666665 9 0.1785714275 9 0.19047619 11
-7 0 0  6 7 2  0.62128791 0.54308159  0.621131691338104 0.54401924099364  0.620955050946605 0.545061970155311  0.620753204726769 0.546256184613878  0.620498376860182 0.547753433641782  0.620186382620268 0.549585579373079  0.619704552199201 0.552406391229385 
- 0.16442722501096 7 0.19047619 7
-7 0 0  10 11 2  1.97674449 0.33168639  1.97669168462482 0.333670208905329  1.97664277230289 0.335497515517267  1.97659610540601 0.337232041761061  1.9765506677277 0.338912828006488  1.97650565260618 0.340570630986732  1.9764604059277 0.342230145249433  1.97641432101342 0.343914046667183  1.97636680709367 0.34564417762242  1.97631724098057 0.347443353804699  1.97626491246814 0.349337349659825 
- 0.14285714 11 0.16442722501096 11
-7 0 0  5 6 2  0.622000743676933 0.538738887163246  0.621842949528895 0.539715341811963  0.621711357628224 0.540520942586517  0.621579501537659 0.541324471886604  0.621443140399718 0.542149873383308  0.62128791 0.54308159 
- 0.14285714 6 0.16442722501096 6
-8 0.0952381 0.14285714
-7 0 0  8 16 3  1.97906567 0.20832799  1.97901633858566 0.215159194432692  1.9789547594075 0.221917938267826  1.97888119765251 0.22865725922874  1.97879564379903 0.235424888841481  1.9786978742814 0.242265380999785  1.97858743785988 0.249223896319555  1.97846366154864 0.25634664050519  1.9781875219514 0.271021995019375  1.97803515873849 0.278574598595102  1.97786755049477 0.286392691669505  1.97768346875991 0.294531079976813  1.97748136126882 0.303051144381573  1.97725927997115 0.312023668784039  1.97701474305491 0.321533376717525  1.97674449 0.33168639 
- 0.0952381 9 0.11904762 7 0.14285714 9
-7 0 0  5 6 2  0.626196129160615 0.508284020466012  0.6256139055767 0.513702436003971  0.624965208497744 0.518905579727557  0.624206149323094 0.524500731441122  0.623292866529717 0.530743030650156  0.622000743676933 0.538738887163246 
- 0.0952381 6 0.14285714 6
-7 0 0  9 26 4  0.626196129160615 0.508284020466012  0.626375856394234 0.50661140385936  0.626544760496132 0.504966572431627  0.626703105275748 0.503347649093498  0.626851122679809 0.501752853410485  0.62698901500509 0.500180488273096  0.627116956666424 0.498628927930064  0.627235095519966 0.497096607384662  0.627343553741606 0.495582013154047  0.627588818192983 0.491865292282153  0.627714200083123 0.489682543406569  0.627818888989608 0.487530657582764  0.627903079237975 0.485405064525727  0.627966848886429 0.483301336451229  0.628010160457809 0.481215129606699  0.62803285794198 0.479142125729859  0.628034660064178 0.477077973434504  0.628004268501652 0.473869461750035  0.627986757821806 0.472722064945031  0.627962545471801 0.471575268668467  0.627931545804336 0.470428291537454  0.627893659540036 0.469280341052788  0.627848772813867 0.468130607782352  0.627796756276359 0.46697826162714  0.627737463994285 0.465822447694868  0.627670732073834 0.46466228134557 
- 0.916393161028006 10 0.9375 8 0.96875 8 0.986178862274954 10
-7 0 0  4 5 2  1.97906567 0.20832799  1.97942817897546 0.158128751407591  1.9788782974445 0.115372890363099  1.97765667097592 0.0751166767024129  1.97524312 0.0334885 
- 0.916393161028006 5 0.986178862274954 5
-7 0 0  9 10 2  0.627670732073834 0.46466228134557  0.627617813469701 0.463742266106212  0.627560216422604 0.46281951383398  0.627497859201542 0.461893583374258  0.627430652972875 0.460964021808509  0.627358501368562 0.460030362900581  0.627281299985365 0.459092125337099  0.627198935799883 0.458148810676049  0.627111286512081 0.457199901236591  0.62701822 0.45624486 
- 0.986178862274954 10 1 10
-7 0 0  3 4 2  1.97524312 0.0334885  1.9746057777518 0.0224958228776549  1.97387435381486 0.01138680246768  1.97302096 0 
- 0.986178862274954 4 1 4
-7 0 0  10 20 3  0.62701822 0.45624486  0.626578677056948 0.451545829833278  0.626094388734111 0.447141801340734  0.625564836978654 0.442928933164298  0.624987971481874 0.438834099034169  0.624360617611801 0.434798189421269  0.623678434513707 0.430770412476256  0.622935834553153 0.426703789940681  0.62212571886306 0.422552255005031  0.621239054113323 0.418267595584689  0.620185444090915 0.413435212100837  0.620106248384809 0.413073398265097  0.620026472176196 0.412710339310864  0.619946109173764 0.412346006670773  0.619865152967953 0.411980371520569  0.619783597027914 0.411613404765676  0.619701434698388 0.411245077027622  0.619618659196498 0.410875358630283  0.619535263608444 0.410504219585901  0.619451240886078 0.410131629580822 
- 0 11 0.166666665 9 0.180106373495116 11
-7 0 0  5 6 2  0.01152171 0  0.0145987835532756 0.0435237130931196  0.0179526208017665 0.0803678383431967  0.0215449705012737 0.116920455681316  0.0256157757245953 0.154624437669632  0.03059095 0.19744373 
- 0 6 0.180106373495116 6
-8 0.66666667 0.83333333
-7 0 0  10 29 4  0.04567056 0.32068046  0.04515376585308 0.316591050587293  0.0446501854966428 0.312600769997741  0.0441590781669446 0.308703853281094  0.0436797450746797 0.304894851000344  0.0432115429757919 0.301168738109325  0.0427538730459694 0.297520826847849  0.0423061695288323 0.29394667752756  0.041867898114817 0.290442086167783  0.0414385594913178 0.287003113019581  0.0405967984921446 0.280248889184296  0.0401843761078349 0.276933638410326  0.0397799376808404 0.273676495757779  0.0393830357886999 0.270473907330023  0.0389932468622211 0.267322495778868  0.0386101685322157 0.264219039398337  0.0382334172042125 0.261160452886168  0.0378626258623617 0.258143769777118  0.0374974421013264 0.255166126543837  0.0364176949587387 0.246341992019126  0.035718935865397 0.240604297187558  0.0350385306269539 0.23498944681633  0.0343739735888398 0.229476702140125  0.0337228821987564 0.224046060824603  0.0330830091555598 0.218678359903803  0.0324521163424738 0.213354202447494  0.0318280002025641 0.208054142987581  0.0312083991955097 0.20275786362874  0.03059095 0.19744373 
- 0.66666667 11 0.708333335 9 0.75 9 0.83333333 11
-7 0 0  5 6 2  0.612361326426256 0.381449780130372  0.614363669512824 0.389044327558124  0.615874059414133 0.395003082503  0.6171749393396 0.400298381048954  0.618333299727608 0.405174236030784  0.619451240886078 0.410131629580821 
- 0.66666667 6 0.83333333 6
-8 0.5 0.66666667
-7 0 0  7 8 2  0.05192274 0.36997388  0.0506133285490218 0.359663968395003  0.0494426640171155 0.350443382709616  0.0484107494691164 0.342312147054885  0.0475175798441837 0.335270221652979  0.0467631588800982 0.329317635807326  0.0461474859103143 0.324454384408322  0.04567056 0.32068046 
- 0.5 8 0.66666667 8
-7 0 0  3 4 2  0.609297860587819 0.370020242130715  0.610813048069585 0.375591631152778  0.611822364714738 0.379405589847836  0.612361326426256 0.381449780130372 
- 0.5 4 0.66666667 4
-7 0 0  9 26 4  0.0619449186344799 0.449444284630742  0.0618382620997701 0.448588048803597  0.061731104526723 0.447728195471606  0.0616234151907732 0.446864477009541  0.0615151630822231 0.445996643829967  0.0614063168507227 0.445124443933893  0.0612968447489508 0.444247622456356  0.0611867145748575 0.443365921201664  0.0610758936117301 0.442479078162248  0.0605901917959274 0.438593939230301  0.0602078876088785 0.435540198992401  0.0598161812663701 0.432415569429794  0.0594137411932596 0.429209438134148  0.0589991384277245 0.425910452222014  0.0585708168907918 0.422506282240871  0.058127054474838 0.418983314922015  0.0576659149507604 0.415326274775657  0.0567044664373606 0.407709274288903  0.0562041568873424 0.403749309525666  0.055682052688866 0.399620479418027  0.0551356662686294 0.395303217451907  0.0545621682938523 0.390775293161667  0.0539583055063518 0.386011167740359  0.0533202818812298 0.380981062752226  0.0526435850589449 0.375649601174756  0.05192274 0.36997388 
- 0.404244838774849 10 0.416666665 8 0.4583333325 8 0.5 10
-7 0 0  5 6 2  0.60421347 0.35165085  0.604983289168265 0.354391454773492  0.60579874760555 0.357305167620019  0.606729637840556 0.360657203780323  0.607819087217837 0.364582748870781  0.609297860587819 0.370020242130715 
- 0.404244838774849 6 0.5 6
-7 0 0  9 10 2  0.06732328 0.49316312  0.0666764988320849 0.487835767633053  0.066060520612289 0.482780537556557  0.0654649357659956 0.477909764980001  0.0648819284481093 0.473158005433226  0.0643049583449636 0.468470843127561  0.0637282358874011 0.463800465502714  0.0631463142668568 0.459102249194088  0.0625537804604209 0.454332211193989  0.0619449186344799 0.449444284630742 
- 0.33333333 10 0.404244838774849 10
-7 0 0  5 6 2  0.601387555006221 0.341577403675895  0.602005645326975 0.343784340271282  0.602561949700037 0.345768107211971  0.603101557860718 0.347691351610726  0.603643380459581 0.349621294430133  0.604213469999999 0.35165085 
- 0.33333333 6 0.404244838774849 6
-7 0 0  11 12 2  0.0737667969251898 0.547374694350679  0.0732215031502526 0.542677620629974  0.0726687795000524 0.537939627751566  0.0721084199094129 0.533159037066309  0.0715402108589464 0.528334124941012  0.0709639298620303 0.523463110479549  0.0703793491432348 0.518544185980364  0.0697862317363207 0.513575485143867  0.0691843273256575 0.508555049288436  0.0685733773942555 0.503480870187897  0.0679531236217151 0.498350959585574  0.06732328 0.49316312 
- 0.297103147762731 12 0.33333333 12
-7 0 0  5 6 2  0.59791576 0.32911896  0.598569460918832 0.331490545441361  0.599245629209148 0.333915014807148  0.599938129418867 0.336399355243593  0.600651894843495 0.33895067538009  0.601387555006221 0.341577403675895 
- 0.297103147762731 6 0.33333333 6
-7 0 0  11 32 4  0.0913447299999999 0.715532649999999  0.0904963111790493 0.706200451301805  0.0896323577192773 0.696887627555456  0.0887516452403923 0.68757742538305  0.0878530187760875 0.678254738404011  0.086935042941158 0.668902270462438  0.0859965789581961 0.659506725376441  0.0850360438373014 0.650050741025684  0.0840520756415536 0.640520126885509  0.0830430458559684 0.630898521039772  0.0820073002221456 0.621170053544618  0.0804109083304109 0.606392056586726  0.079871649023837 0.601435176989023  0.0793250364492411 0.596445338442777  0.0787708387344558 0.591420431426442  0.0782088160850342 0.586358309809427  0.0776387201419189 0.581256785421949  0.0770602933394382 0.576113622633453  0.0764732682628639 0.570926532921032  0.0758773670064403 0.565693169447297  0.075272300531004 0.56041112163096  0.0745775865292525 0.554382055743448  0.0744972438943882 0.553685330810559  0.0744167394429279 0.552987729365618  0.0743360724997343 0.552289245852792  0.0742552423879896 0.551589874710631  0.0741742484285103 0.550889610366445  0.0740930899392423 0.550188447232164  0.0740117662348977 0.549486379701358  0.0739302766266984 0.548783402147144  0.0738486204222028 0.548079508920771  0.0737667969251898 0.547374694350679 
- 0.16666667 12 0.25 10 0.291666665 10 0.297103147762731 12
-7 0 0  4 5 2  0.588030771105816 0.290659941332366  0.590170449712138 0.299816583133491  0.592460967307398 0.30890501319961  0.594973934941205 0.318446185193987  0.59791576 0.32911896 
- 0.16666667 5 0.297103147762731 5
-8 0 0.16666667
-7 0 0  9 10 2  0.10836658 1  0.107658100538701 0.970367952486721  0.106657705036611 0.940400688103318  0.105366441460749 0.910033129619932  0.10378357355058 0.87919963829568  0.101906592384323 0.847831675018637  0.0997312653128484 0.815858699441601  0.0972515184692884 0.783205484518925  0.0944593769101453 0.749792283644273  0.09134473 0.71553265 
- 0 10 0.16666667 10
-7 0 0  5 6 2  0.57740334 0.22601628  0.578317786763577 0.23811863954492  0.579833006956004 0.25049454933861  0.582004754198583 0.26328124460529  0.584745987498226 0.276602883043307  0.588030771105817 0.290659941332366 
- 0 6 0.16666667 6
-8 0 0.22601628
-7 0 0  11 22 3  0.57740334 0.22601628  0.577403340000002 0.215742812981225  0.57740333999999 0.205469311605531  0.577403340000028 0.195195973064021  0.577403339999946 0.184922236988444  0.577403340000077 0.174649146921186  0.577403339999915 0.164375308081853  0.577403340000071 0.154102100148817  0.577403339999954 0.143828509055662  0.577403340000024 0.133555079241959  0.577403339999989 0.123281606631646  0.57740334000002 0.102734672311002  0.577403339999896 0.0924612051372938  0.577403340000258 0.0821877379504031  0.577403339999562 0.0719142707504179  0.577403340000557 0.0616408035376491  0.577403339999457 0.0513673363120816  0.577403340000403 0.0410938690740794  0.577403339999778 0.0308204018236485  0.577403340000086 0.0205469345610711  0.57740333999998 0.0102734672864566  0.57740334 2.65910746569326e-018 
- 0 12 0.11300814 10 0.22601628 12
-8 0 0.22601628
-7 0 0  11 22 3  0.57740334 0.22601628  0.57740333999998 0.215742812981233  0.577403340000086 0.205469311605505  0.577403339999778 0.19519597306407  0.577403340000403 0.18492223698838  0.577403339999457 0.174649146921253  0.577403340000557 0.164375308081794  0.577403339999562 0.154102100148857  0.577403340000258 0.143828509055644  0.577403339999896 0.133555079241963  0.57740334000002 0.123281606631646  0.577403339999989 0.102734672311001  0.577403340000024 0.092461205137297  0.577403339999954 0.0821877379503969  0.577403340000071 0.0719142707504271  0.577403339999915 0.0616408035376411  0.577403340000077 0.0513673363120875  0.577403339999946 0.041093869074077  0.577403340000028 0.0308204018236495  0.57740333999999 0.0205469345610711  0.577403340000002 0.0102734672864567  0.57740334 0 
- 0 12 0.11300814 10 0.22601628 12
-8 0.83333333 1
-7 0 0  9 10 2  0.09134529 0.28446737  0.0944599438226219 0.250207732190921  0.0972520907121525 0.21679453969962  0.099731845932075 0.184141304968772  0.101907176686121 0.152168329558986  0.10378416431982 0.120800383711978  0.105367037391815 0.0899668633461406  0.106658305657614 0.059599322555451  0.107658706033004 0.0296320503312597  0.10836719 0 
- 0.83333333 10 1 10
-7 0 0  5 6 2  1.19614163363155 0.290659939797332  1.1994264168191 0.276602881072571  1.2021676500943 0.263281242752326  1.20433939801217 0.250494549683452  1.20585462019821 0.238118639222945  1.20676907 0.22601628 
- 0.83333333 6 1 6
-7 0 0  11 22 3  0.0737673431417201 0.45262530433427  0.0744762842084175 0.446518603624923  0.0751726666746893 0.440481067973563  0.0758569437863812 0.434509005116552  0.0765295481868687 0.428598845586053  0.0771908936328445 0.422747129193188  0.0778413760900294 0.416950496373523  0.0784813739944967 0.411205686306615  0.0791112498682197 0.405509523754447  0.0797313564986338 0.399858867408228  0.0803420278682206 0.394250682346849  0.0820078511618632 0.378829963852425  0.0830435980052378 0.369101493356542  0.0840526270547483 0.359479905532062  0.0850366014621972 0.349949233533071  0.0859971261837972 0.340493372708981  0.0869356071307365 0.33109765236292  0.0878535674444252 0.321745364087779  0.0887522065676232 0.312422549090648  0.08963291446097 0.303112407276653  0.0904968704178619 0.293799566552231  0.09134529 0.28446737 
- 0.702896862227506 12 0.75 10 0.83333333 12
-7 0 0  4 5 2  1.18625665 0.32911895  1.18919847308686 0.318446177937178  1.19171143910573 0.30890500893676  1.1940019562357 0.299816577873038  1.19614163363155 0.290659939797332 
- 0.702896862227506 5 0.83333333 5
-7 0 0  11 12 2  0.06732382 0.50683689  0.0679536642094862 0.501649049413337  0.0685739197192156 0.496519128319759  0.0691848681086084 0.491444965606367  0.0697867736555298 0.486424524096771  0.070379892966129 0.48145581127454  0.0709644737852453 0.476536889572493  0.0715407544594214 0.471665881336457  0.0721089643872501 0.466840965525304  0.0726693247039646 0.462060372362742  0.0732220488717613 0.457322378691483  0.0737673431417201 0.45262530433427 
- 0.66666667 12 0.702896862227506 12
-7 0 0  5 6 2  1.18278485474595 0.341577394560763  1.18352051498107 0.338950666007563  1.18423428036575 0.336399346019039  1.184926780955 0.333915004214082  1.18560294902315 0.331490535651878  1.18625665 0.32911895 
- 0.66666667 6 0.702896862227506 6
-7 0 0  9 10 2  0.0619454509369303 0.550555722766231  0.0625543136221414 0.545667795839402  0.0631468482879982 0.540897757460859  0.0637287706465414 0.536199541822945  0.0643054938882444 0.531529164603679  0.0648824660213891 0.526841992633514  0.0654654720053174 0.522090251357865  0.066061059741688 0.517219462676534  0.0666770380778206 0.512164239775711  0.06732382 0.50683689 
- 0.59575517380927 10 0.66666667 10
-7 0 0  5 6 2  1.17995894 0.35165084  1.18052902951734 0.349621284512292  1.18107085247616 0.347691340410312  1.18161046014577 0.345768097762253  1.18216676477296 0.343784329913509  1.18278485474595 0.341577394560763 
- 0.59575517380927 6 0.66666667 6
-7 0 0  9 26 4  0.05192326 0.63002613  0.0526441053116105 0.624350413179063  0.0533208023782567 0.619018955675301  0.053958827548031 0.61398884420312  0.0545626895728969 0.609224730213041  0.0551361879616269 0.604696807858579  0.0556825761655834 0.60037953682195  0.0562046800875089 0.59625071367811  0.0567049904117416 0.59229074745706  0.0576664401125355 0.584673746600663  0.0581275797380933 0.581016710004877  0.0585713436939493 0.577493734782492  0.0589996657995196 0.574089564444337  0.0594142682493003 0.570790585052769  0.0598167088889891 0.567584453252444  0.0602084167614431 0.564459815535435  0.0605907210275388 0.561406078526201  0.0610764236959044 0.557520937819413  0.0611872449340922 0.556634093735971  0.0612973753825629 0.555752391439066  0.0614068477604628 0.554875568901474  0.0615156942699925 0.554003367926629  0.0616239466577047 0.553135533656256  0.0617316362729867 0.552271814099649  0.0618387941247213 0.551411959676439  0.0619454509369303 0.550555722766231 
- 0.5 10 0.5416666675 8 0.583333335 8 0.59575517380927 10
-7 0 0  5 6 2  1.17487454732213 0.370020230653315  1.1763533203152 0.364582741317736  1.17744277040648 0.36065719549727  1.17837366121183 0.357305158967741  1.17918912023729 0.35439144548592  1.17995894 0.35165084 
- 0.5 6 0.59575517380927 6
-8 0.33333333 0.5
-7 0 0  4 5 2  0.04567107 0.67931955  0.0465056900874428 0.672715194308066  0.0478259281176727 0.662298175035368  0.0496317850043979 0.648068484965373  0.05192326 0.63002613 
- 0.33333333 5 0.5 5
-7 0 0  3 4 2  1.17181108032962 0.381449767861762  1.17235004124898 0.379405581447932  1.17335935843405 0.375591622245512  1.17487454732213 0.370020230653315 
- 0.33333333 4 0.5 4
-8 0.16666667 0.33333333
-7 0 0  9 26 4  0.03059144 0.80255628  0.0312774961760819 0.796651684515529  0.0319662396528051 0.790769427622821  0.0326610584008135 0.784878502294036  0.0333651271483642 0.778950467587187  0.0340816328673224 0.77295738685565  0.0348137229882589 0.76687220627137  0.0355647394455922 0.760666725207016  0.0363382127290277 0.754311656707208  0.037537933348081 0.744507062956475  0.0379444252772077 0.741193533736758  0.0383579873121365 0.73783070918492  0.0387791259552348 0.734414477418582  0.0392083726394971 0.730940550249598  0.0396462877782642 0.727404430556199  0.0400934653866326 0.723801375476566  0.0405505382746159 0.720126355426935  0.0414858293494274 0.712621662457414  0.0419640470484137 0.708791993419467  0.0424535185097829 0.704879606670172  0.0429549515908204 0.70087892098166  0.0434691493179271 0.696783620600102  0.0439969117643358 0.692587439323138  0.044539155545877 0.68828320786648  0.0450968536293839 0.683863338580951  0.04567107 0.67931955 
- 0.16666667 10 0.25 8 0.291666665 8 0.33333333 10
-7 0 0  5 6 2  1.16472116397153 0.410131615670975  1.16583910574461 0.405174220254121  1.1669974655328 0.400298369308289  1.1682983465528 0.395003067786363  1.16980873641148 0.389044315232951  1.17181108032962 0.381449767861762 
- 0.16666667 6 0.33333333 6
-7 0 0  10 29 4  1.16472116397153 0.410131615670975  1.16463714120216 0.410504205819946  1.16455374556836 0.410875345006588  1.16447097002197 0.411245063544589  1.16438880764919 0.411613391421737  1.16430725166711 0.411980358314189  1.16422629542049 0.412345993600447  1.16414593237846 0.412710326375118  1.16406615613146 0.413073385462487  1.16398696038816 0.413435199429946  1.1634208446313 0.416031689698026  1.16295543127886 0.41822080086075  1.16251062712592 0.420369881085363  1.1620851315297 0.422485317818533  1.16167779020499 0.42457325180349  1.16128757570661 0.426639680567258  1.16091357238823 0.428690556828209  1.16055496501954 0.430731890088259  1.1602110302693 0.432769859690313  1.1595512302066 0.436852035522525  1.15923536493673 0.438896241581472  1.15893289645026 0.440950049757891  1.15864327309641 0.443020241053069  1.15836602159906 0.445114047493984  1.15810074625136 0.447239285300139  1.15784712655975 0.44940456606296  1.1576049179691 0.451619561950213  1.1573739607778 0.45389532584534  1.15715419 0.45624484 
- 0.819893620897672 11 0.833333335 9 0.9166666675 9 1 11
-7 0 0  5 6 2  0.03059144 0.80255628  0.0256162615055831 0.845375575835192  0.0215454517262361 0.883079567509442  0.0179530997213153 0.919632168923602  0.0145992580912778 0.956476300165538  0.01152218 1 
- 0.819893620897672 6 1 6
-8 0.95238095 1
-7 0 0  11 12 2  0.00992432 0.01565901  0.0100200272780714 0.0142275044655274  0.0101167718386408 0.0127976096477753  0.010214560665559 0.0113692205433015  0.0103133748347515 0.00994262334039353  0.0104132473739023 0.00851731457222071  0.0105141380011249 0.00709391556061794  0.010616081497651 0.00567187944069551  0.0107190574221378 0.00425153961485812  0.0108230727887155 0.00283277010448512  0.0109281272428452 0.00141558767143496  0.01103422 8.67361737988404e-019 
- 0.95238095 12 1 12
-7 0 0  8 30 5  1.15680965029242 0.460183043874983  1.15681925617559 0.460059347152079  1.15682898122755 0.459935228544936  1.15683873331072 0.459811852458051  1.15684869419605 0.459686986334159  1.15685861195543 0.459563714366519  1.156868425119 0.45944278198196  1.15687863162603 0.45931807069201  1.15689899958258 0.459071335128202  1.15690926696619 0.458948005499707  1.15691961766675 0.458824715520599  1.1569300515963 0.458701466686957  1.15694056866619 0.458578260494702  1.15695116878849 0.458455098439911  1.15696185187478 0.458331982018565  1.1569833837989 0.45808584343479  1.1569942325646 0.457962821736292  1.15700516432604 0.457839845936462  1.15701617927577 0.457716914340715  1.15702727760556 0.457594025254234  1.15703845950813 0.457471176982474  1.15704972517538 0.457348367830662  1.15707242442403 0.457102824377658  1.15708386779644 0.456980004070078  1.15709506372058 0.456860655138224  1.15710769901854 0.456727133644948  1.15711825023203 0.456616469677338  1.1571305858498 0.456487928851324  1.15714225853476 0.456367279359252  1.15715419 0.45624484 
- 0.95238095 9 0.9642857125 7 0.976190475 7 0.9880952375 7 1 9
-7 0 0  11 12 2  0.00604403560224287 0.0976197411686703  0.00626870213996237 0.0899138097079333  0.00651781083008766 0.0822825916843202  0.00679161618777302 0.0747179227978116  0.0070904380825137 0.0672118299911649  0.00741466328183968 0.0597564849966344  0.00776474772423031 0.0523441602869657  0.00814121953955524 0.0449671868877856  0.00854468292678559 0.0376179127264714  0.00897582321889605 0.03028865597524  0.00943541350067638 0.0229716451188031  0.00992432000000001 0.01565901 
- 0.929879242695092 12 0.95238095 12
-7 0 0  4 5 2  1.15618823 0.48072882  1.15611292594389 0.475432186197534  1.15619203614034 0.470295233572656  1.15641708838123 0.465238135748288  1.15680965029242 0.460183043874983 
- 0.929879242695092 5 0.95238095 5
-7 0 0  10 20 3  1.15618823 0.48072882  1.15621182033281 0.482388149904415  1.15624531784567 0.484002926752861  1.15628824304018 0.485580788131087  1.15634023583293 0.487128346189039  1.15640103292563 0.488651492587151  1.15647045240182 0.490155537686529  1.15654838392006 0.491645353970972  1.15663478218757 0.493125499545744  1.15672966231643 0.494600275857587  1.1569023817993 0.497060842942585  1.15697550413541 0.498047310441059  1.15705248722927 0.499034471096024  1.15713336500263 0.500023535391104  1.15721818288403 0.501015690270811  1.15730699771964 0.502012108274091  1.1573998778439 0.503013956016934  1.1574969033149 0.504022402282972  1.15759816631886 0.505038625981444  1.15770377174819 0.506063824231818 
- 0.125 11 0.15625 9 0.177182002986322 11
-7 0 0  4 5 2  0.00604403560224287 0.0976197411686703  0.00523602956254487 0.125333877973273  0.00493504768138352 0.149511427243877  0.00480787082176291 0.173608790283708  0.00493494 0.19936977 
- 0.125 5 0.177182002986322 5
-8 0.85714286 0.9047619
-7 0 0  11 22 3  0.00706201 0.32223301  0.00687710146822796 0.315103333321966  0.00670408139917526 0.30824637789236  0.00654211073443794 0.301634920748467  0.00639046658772291 0.29524473386505  0.00624852244213882 0.289053947896529  0.00611573887408807 0.283042858047227  0.00599164603384736 0.277193272491385  0.0058758362753103 0.271488249612433  0.00576796410059705 0.265912137406608  0.00566773298586681 0.260450004049063  0.00548206042118976 0.24972523567881  0.0053966189195666 0.2444625999087  0.00531832601334422 0.239285479411824  0.00524698463774126 0.234180373959566  0.00518244164408558 0.229133956116951  0.00512459113897169 0.224133776665809  0.00507336456920362 0.219166603482849  0.00502874179956438 0.21422013970726  0.00499074189518771 0.209280921051415  0.00495943453559047 0.204335577590766  0.00493494 0.19936977 
- 0.85714286 12 0.88095238 10 0.9047619 12
-7 0 0  5 6 2  1.16182353748536 0.536411045142013  1.1605990685778 0.528687870226675  1.15967914694525 0.522426214462651  1.15891381105662 0.516777642683665  1.15826200589711 0.511483059553337  1.15770377174819 0.506063824231818 
- 0.85714286 6 0.9047619 6
-8 0.80952381 0.85714286
-7 0 0  9 26 4  0.00875086 0.38373641  0.00865986440340725 0.380497409467172  0.00857551870620454 0.37749270230661  0.00849691911033711 0.374690294614368  0.00842334175509056 0.372064547674941  0.00835419750714322 0.369594582313611  0.00828898516789808 0.367262620183079  0.00822728378119564 0.365053714691917  0.00816872709797485 0.362954844685754  0.00805726691782629 0.358954519546038  0.00800436337446579 0.357053062763004  0.00795396801258821 0.355238974625307  0.00790580905197734 0.353502555840722  0.00785965007152752 0.351835346665151  0.00781528202680317 0.350229843003888  0.00777251754403077 0.348679292476323  0.00773118652347007 0.347177536004622  0.00761102320844719 0.342801509452582  0.00753602073615774 0.340056485196552  0.00746486951909043 0.337438076525532  0.0073965295671725 0.334907848336523  0.00733004640357743 0.332429881288167  0.00726449285273363 0.329968616391742  0.00719884698765557 0.327483996104936  0.00713192710919425 0.324928835574208  0.00706201 0.32223301 
- 0.80952381 10 0.8214285725 8 0.833333335 8 0.85714286 10
-7 0 0  6 7 2  1.16431660337733 0.551540022700136  1.16350444616466 0.546762206749304  1.16307769035792 0.544162243815551  1.16270037552831 0.541879988301636  1.16241056286636 0.540082033755734  1.16213921109061 0.538402114457371  1.16182353748536 0.536411045142013 
- 0.80952381 7 0.85714286 7
-7 0 0  11 12 2  0.00909064694457245 0.395882219887666  0.009062062227876 0.394855622200121  0.00903305685300032 0.393814920682742  0.00900361844236404 0.392759682081006  0.0089737341280238 0.391689456391472  0.00894339052220106 0.390603775840232  0.0089125736855287 0.389502153783101  0.00888126909281066 0.388384083520415  0.00884946159607354 0.387249037018834  0.00881713538467461 0.386096463532049  0.00878427394221593 0.384925788111782  0.00875086 0.38373641 
- 0.804942507297722 12 0.80952381 12
-7 0 0  3 4 2  1.16482661 0.55452589  1.16466782368687 0.553600567791137  1.1644988540824 0.552612180051156  1.16431660337733 0.551540022700136 
- 0.804942507297722 4 0.80952381 4
-7 0 0  11 22 3  0.01101028 0.46988747  0.010932239748402 0.466471693136854  0.0108552515937301 0.463159885983849  0.0107786477230667 0.459918468798578  0.01070186600218 0.456720059036761  0.0106243709878907 0.453539605842363  0.0105456969020087 0.450356031917904  0.0104653377391696 0.447147339690037  0.0103828203434367 0.443893739452215  0.010297619890378 0.440573968615253  0.0102091819104403 0.437166304597892  0.0100423426684138 0.430804770413042  0.00996528447217942 0.42788974761594  0.00988537983323518 0.424889374781816  0.00980227244932146 0.421790322689462  0.0097155709915268 0.41857818013626  0.0096248396427297 0.415237106644651  0.00952958673262927 0.411749424468541  0.00942925092792059 0.408095129569824  0.00932318303687112 0.404251253599222  0.00921062008816836 0.400190961271776  0.00909064694457245 0.395882219887666 
- 0.76190476 12 0.785714285 10 0.804942507297722 12
-7 0 0  5 6 2  1.16788888234853 0.572720066171718  1.16733894752605 0.569379578466071  1.16685918354506 0.566501007921239  1.16632006454002 0.563290332164677  1.16572161221846 0.559741496099339  1.16482661 0.55452589 
- 0.76190476 6 0.804942507297722 6
-8 0.71428571 0.76190476
-7 0 0  11 22 3  0.01227327 0.53758166  0.0122021660264087 0.532991927724206  0.0121368288514335 0.528837309508138  0.012075932001973 0.525025701554431  0.0120184998600981 0.521490269389102  0.0119637640596063 0.518179246761492  0.0119110885016536 0.515050715564339  0.0118599270278734 0.512069688712588  0.0118097937706867 0.509206097229321  0.0117602377892838 0.506433158974258  0.011710820801669 0.503726079631207  0.0116113784635588 0.498396133608497  0.0115613529531453 0.495773259005153  0.0115105801871475 0.493168735245432  0.0114586052117043 0.490559513304991  0.0114049594969707 0.487923005765879  0.0113490976876604 0.485234171956695  0.0112904370248512 0.482467265899467  0.0112282364364204 0.479590630707974  0.0111616360020968 0.476568566962185  0.0110894975743582 0.473354726037626  0.01101028 0.46988747 
- 0.71428571 12 0.738095235 10 0.76190476 12
-7 0 0  5 6 2  1.17055929004495 0.589376325329759  1.16978674308901 0.58440546985396  1.1693534789157 0.581734434530918  1.16889412736152 0.578863577632124  1.16850652716929 0.576471847011659  1.16788888234853 0.572720066171718 
- 0.71428571 6 0.76190476 6
-7 0 0  10 11 2  0.0124007899364611 0.545841455231958  0.0123880376598415 0.54501547605539  0.0123752854455191 0.544189496763857  0.0123625332918292 0.543363517249527  0.012349781198742 0.542537537510479  0.0123370291704303 0.541711557816976  0.0123242772137971 0.540885578616115  0.0123115253244109 0.540059599620894  0.0122987734756791 0.539233619108924  0.0122860217088639 0.53840763975268  0.01227327 0.537581660000001 
- 0.688716234519205 11 0.71428571 11
-7 0 0  3 4 2  1.17087384 0.59140941  1.17076947536309 0.59073172937687  1.1706646167737 0.590054036816847  1.17055929004495 0.589376325329759 
- 0.688716234519205 4 0.71428571 4
-7 0 0  10 11 2  0.01251076 0.552964200000001  0.0124997627830087 0.552251925767335  0.0124887655913925 0.551539650092223  0.0124777684723271 0.550827376030156  0.0124667713958103 0.550115101637936  0.0124557743624856 0.549402826957243  0.0124447773786249 0.548690552394307  0.0124337804457815 0.547978278049735  0.0124227835623036 0.547266003816535  0.0124117867262193 0.546553729566992  0.0124007899364611 0.545841455231958 
- 0.66666667 11 0.688716234519205 11
-7 0 0  3 4 2  1.1711451525737 0.593162467933147  1.17105426022413 0.592578153447188  1.17096383766092 0.591993800661399  1.17087384 0.59140941 
- 0.66666667 4 0.688716234519205 4
-8 0.61904762 0.66666667
-7 0 0  9 18 3  0.01405168 0.62979303  0.0139443449852295 0.625942449702343  0.0138458863180714 0.622260655924187  0.0137541108259737 0.618683690559154  0.0136674515552209 0.615162916867949  0.013584657260439 0.611656578624458  0.0135046925112499 0.608126978786159  0.0134266355580819 0.604537097170301  0.0133496349306881 0.600848897051465  0.0131960510075816 0.593191346321852  0.0131194677179322 0.58922199365856  0.0130422463459228 0.585069855150375  0.0129635446999062 0.580688468822623  0.0128824717013991 0.576024575555884  0.0127980225056127 0.571014008984676  0.0127090099296265 0.565577066104092  0.0126139444993747 0.559609925510137  0.01251076 0.5529642 
- 0.61904762 10 0.642857145 8 0.66666667 10
-7 0 0  6 7 2  1.17433224279194 0.612034956614046  1.17379882073302 0.609205333608813  1.17336626249936 0.606759554301473  1.17292705881374 0.604238401988825  1.17245049281207 0.601380856304864  1.1719083833069 0.598069006004151  1.1711451525737 0.593162467933147 
- 0.61904762 7 0.66666667 7
-7 0 0  11 32 4  1.17433224279194 0.612034956614046  1.17458838335775 0.61339369539406  1.1748396841739 0.614694666327968  1.17508733534142 0.615945436701823  1.17533240988957 0.617152565702489  1.17557589850167 0.618321847327933  1.17581873530246 0.619458482775295  1.17606181897911 0.620567213493395  1.17630603099606 0.621652427115853  1.17655225283955 0.622718249196141  1.17680138285556 0.623768620944303  1.17731082155939 0.625860482922133  1.1775712369668 0.626901649654212  1.17783657482973 0.627934874163388  1.17810784484301 0.628964037209942  1.1783861147599 0.629992989017157  1.17867253147423 0.631025625813736  1.17896834444316 0.632065966215473  1.17927493460578 0.633118236323779  1.17959385217495 0.634186972456106  1.17992686646408 0.635277150389838  1.18041872007625 0.636850902833559  1.18056410620259 0.637311968304189  1.18071232974674 0.637777927555955  1.18086353887691 0.638249178417643  1.18101789054234 0.638726137678399  1.18117555137341 0.639209243323251  1.18133669866652 0.639698956954653  1.18150152150458 0.64019576652672  1.18167022204889 0.640700189480416  1.18184301703811 0.641212776364747  1.18202013954388 0.641734115061065 
- 0.406675816552983 12 0.4375 10 0.46875 10 0.4815205691812 12
-7 0 0  5 6 2  0.01405168 0.62979303  0.0148776453392194 0.659424096435276  0.0157936089342203 0.681537846607377  0.0169057479237536 0.703144445621927  0.01807951836636 0.72419293338828  0.02032222 0.75230479 
- 0.406675816552983 6 0.4815205691812 6
-8 0.52380952 0.57142857
-7 0 0  11 22 3  0.02349338 0.78906361  0.0232016678408236 0.785797739499792  0.0229501956818601 0.782976667689194  0.0227288701628223 0.780488225400435  0.0225312172498049 0.778260374719751  0.0223526122065348 0.776241576625797  0.0221894813731077 0.774391905849015  0.0220391374466859 0.772681236362571  0.0218993193743777 0.771084104715985  0.0217682047200934 0.769579841289704  0.0216442009956327 0.768150222699987  0.0214075921428467 0.765407547385419  0.0212949870384399 0.764094491210498  0.0211866662965583 0.762823313785348  0.0210813873909557 0.761579382837295  0.0209779861744298 0.760348733745845  0.0208753111237305 0.759117295481495  0.0207721499226731 0.757869967797824  0.0206671466659337 0.756589550151377  0.0205586943998766 0.755255339985708  0.020444726349087 0.753840374979318  0.02032222 0.75230479 
- 0.52380952 12 0.547619045 10 0.57142857 12
-7 0 0  6 7 2  1.18514547453576 0.650493544781998  1.18408868281196 0.647646645422741  1.18361811721769 0.646309912010288  1.18315326621881 0.645022930658788  1.18280988739955 0.644027738789154  1.18247754698609 0.643080438604606  1.18202013954388 0.641734115061065 
- 0.52380952 7 0.57142857 7
-7 0 0  11 12 2  0.0238348542154167 0.792893145357802  0.0238055635665154 0.792564048232601  0.0237759457926424 0.792231401260291  0.0237459935777369 0.791895123410698  0.0237156993845072 0.791555131230117  0.0236850554442694 0.791211338729292  0.0236540537460929 0.790863657263769  0.0236226860251638 0.790511995405626  0.0235909437502549 0.790156258805349  0.0235588181101702 0.789796350042379  0.0235262999990016 0.789432168462517  0.02349338 0.78906361 
- 0.520588390320385 12 0.52380952 12
-7 0 0  3 4 2  1.18548451 0.65140388  1.18537734689021 0.651117061905989  1.18526473510458 0.650814821746317  1.18514547453576 0.650493544781996 
- 0.520588390320385 4 0.52380952 4
-7 0 0  11 22 3  0.02665329 0.825912910000001  0.0265386019412422 0.824462099938464  0.0264266704309445 0.823060359056727  0.0263163203258581 0.821691656539312  0.0262066077037742 0.82034331894325  0.0260966309122728 0.819003520436921  0.0259856682937489 0.817662953780976  0.025872896703994 0.816311249171635  0.025757605625983 0.814939660920745  0.0256389843608642 0.813538382095101  0.0255162009067546 0.812097555266506  0.0252777364145877 0.809316700860453  0.0251633418086438 0.807989408050457  0.0250445309947175 0.806617335398288  0.0249206447225478 0.80519288810161  0.024790960484886 0.803707822580973  0.0246546589918439 0.802152866564178  0.0245108058398007 0.800517512853695  0.0243583203568216 0.798789672272513  0.0241959222283109 0.796955080867733  0.0240220703079991 0.79499662480162  0.0238348542154167 0.792893145357802 
- 0.47619048 12 0.5 10 0.520588390320385 12
-7 0 0  5 6 2  1.18835200447941 0.659262136302128  1.18785059644875 0.657842561785145  1.18742025466232 0.656650768305608  1.18692117397287 0.655279033471583  1.18637075156496 0.653775865761281  1.18548451 0.65140388 
- 0.47619048 6 0.520588390320385 6
-7 0 0  10 20 3  0.0278932350697893 0.842648892677029  0.0278403445652367 0.841891802103585  0.0277901305518117 0.841175465353814  0.0277421884116688 0.840493975100643  0.0276961788761013 0.839842400780225  0.0276518090883182 0.839216509725198  0.02760882058671 0.838612591099054  0.02756697989162 0.838027318908646  0.0275260714580649 0.837457650872437  0.0274858928625045 0.83690076124055  0.0273744939168511 0.835364249807223  0.0273044892535617 0.834407566297033  0.0272350652525299 0.833467778869531  0.0271651599084328 0.832530588352063  0.0270935817359974 0.831580351593916  0.0270191884367288 0.830602414208008  0.0269403588894761 0.829576263919692  0.0268552271872972 0.828478763930848  0.0267610749148876 0.827276410594824  0.02665329 0.82591291 
- 0.439226064907278 11 0.452380955 9 0.47619048 11
-7 0 0  5 6 2  1.18972319 0.66326176  1.1893876068655 0.662242905902267  1.18915694352065 0.661573541103217  1.18891893215488 0.660879437553825  1.18870867292527 0.660271927541581  1.18835200447941 0.659262136302128 
- 0.439226064907278 6 0.47619048 6
-7 0 0  10 11 2  0.02843456 0.85048174  0.0283646252220122 0.849462023668996  0.0282995410513983 0.848514595573224  0.0282386340838159 0.847629510483806  0.0281813625931402 0.846798774713539  0.0281272797576247 0.846015801695631  0.0280760097047385 0.84527505759275  0.0280272313331912 0.844571822124702  0.027980666818157 0.843902018760294  0.0279360730571914 0.843262088499642  0.0278932350697893 0.842648892677029 
- 0.42857143 11 0.439226064907278 11
-7 0 0  4 5 2  1.19034199744208 0.665137556196831  1.19014022393904 0.664527071172727  1.18998127696954 0.664045027272314  1.18984410072407 0.663628853542497  1.18972319 0.66326176 
- 0.42857143 5 0.439226064907278 5
-7 0 0  11 12 2  0.0295851430584376 0.866721597110353  0.0295030424173013 0.865624468732253  0.0294196157895989 0.864495683755398  0.0293339967222896 0.863323891617491  0.0292453042716024 0.86209716560269  0.0291525933417906 0.860802365883081  0.0290548054327103 0.859424462383049  0.0289507084498607 0.857945674645153  0.0288388174385918 0.856344307341226  0.0287172785051279 0.854593026970906  0.0285836658302899 0.852655837186934  0.02843456 0.85048174 
- 0.400518874948611 12 0.42857143 12
-7 0 0  5 6 2  1.1916409 0.66902158  1.19143989009598 0.668445820850433  1.19123716460395 0.667828502313173  1.19099687603274 0.667117986421417  1.1907205675793 0.666282956340352  1.19034199744208 0.665137556196831 
- 0.400518874948611 6 0.42857143 6
-7 0 0  11 12 2  0.03023112 0.874933409999999  0.0301655205992715 0.874141530103735  0.0301026391464892 0.873373973090629  0.0300418908695621 0.872624293154913  0.0299827930528082 0.87188708347884  0.0299249330984329 0.871157640611815  0.0298679469524316 0.87043173098827  0.0298115040312728 0.869705424609988  0.0297552959689539 0.868974968159889  0.0296990274133551 0.868236677632811  0.0296424077809247 0.867486837810487  0.0295851430584376 0.866721597110353 
- 0.38095238 12 0.400518874948611 12
-7 0 0  4 5 2  1.19235074284817 0.670975712718757  1.1921552847542 0.670458836951191  1.19198452571843 0.669992399630153  1.19181615177494 0.669523566023736  1.1916409 0.66902158 
- 0.38095238 5 0.400518874948611 5
-8 0.33333333 0.38095238
-7 0 0  9 18 3  0.03529606 0.917321930000001  0.0349360868241647 0.915185377867076  0.0345913475148285 0.913053642720672  0.0342602809440505 0.910919661831718  0.0339415553266128 0.908776916536387  0.0336339217308661 0.906618643158531  0.0333363304884457 0.904438580383653  0.0330477651795393 0.902230004486973  0.0327673231081541 0.899986193276908  0.0322209707632699 0.895413766430213  0.0319550605184531 0.893085149046086  0.0316955652967407 0.890707013825408  0.0314416797226053 0.888271735738403  0.0311926777106298 0.885771563796402  0.0309478126786792 0.883197570935579  0.0307064050153912 0.880540537560574  0.0304677414682853 0.877789760907654  0.03023112 0.874933410000001 
- 0.33333333 10 0.357142855 8 0.38095238 10
-7 0 0  4 5 2  1.19718068974824 0.680826804111174  1.19576370396408 0.678656131232607  1.19462515425407 0.676451512383773  1.19350442368552 0.674026544005482  1.19235074284817 0.670975712718757 
- 0.33333333 5 0.38095238 5
-8 0.28571429 0.33333333
-7 0 0  11 22 3  0.03977078 0.93815762  0.0394918900281569 0.937124943915015  0.0392315197920095 0.936141449139086  0.0389866332049127 0.935197162867943  0.0387547839773354 0.934283864003295  0.0385339355151585 0.93339449228728  0.0383223667055562 0.932522888169167  0.038118578879407 0.931663474194667  0.0379212165432236 0.930810951222475  0.0377290372922763 0.929960192679676  0.037540914643547 0.929106277405798  0.0371705480966609 0.927381735341096  0.0369883057222351 0.926511114546196  0.0368079024235218 0.925627017847772  0.0366282617178155 0.924724085469863  0.0364483704499232 0.923796991219585  0.0362670767322847 0.922839271255928  0.0360833477477987 0.921844842410835  0.0358958468502306 0.920805492594414  0.0357032711759 0.919712824847317  0.0355039803406225 0.918555993504656  0.03529606 0.91732193 
- 0.28571429 12 0.30952381 10 0.33333333 12
-7 0 0  5 6 2  1.20085071207735 0.685398205381529  1.19988404644341 0.68443934745858  1.19925395344545 0.683681816067817  1.19860853530681 0.68288420159938  1.1979809469242 0.682052713761885  1.19718068974824 0.680826804111174 
- 0.28571429 6 0.33333333 6
-8 0.23809524 0.28571429
-7 0 0  9 10 2  0.0423906 0.94698261  0.0421161859608369 0.946161839377729  0.0418381197288348 0.945302669126723  0.041556191658955 0.94440456269717  0.0412701801738961 0.943466880112293  0.0409798766577991 0.942488981161454  0.0406850231312947 0.941469987985604  0.0403854006692708 0.940409115370197  0.0400807403259703 0.939305342466363  0.03977078 0.93815762 
- 0.23809524 10 0.28571429 10
-7 0 0  3 4 2  1.20292701545684 0.687210224474421  1.20228349699944 0.686720583245947  1.20158322890817 0.686124805709782  1.20085071207735 0.685398205381529 
- 0.23809524 4 0.28571429 4
-7 0 0  9 34 5  0.0461083979788055 0.956415984746819  0.0459866239695226 0.956149248437085  0.0458659432785366 0.955882526092577  0.0457463385567529 0.955615782176497  0.0456277926852196 0.955348980822443  0.045510290526006 0.955082089694021  0.0453938192268216 0.954815080693365  0.0452783567005522 0.954547904544461  0.0451638936012913 0.954280539159944  0.0448880018030585 0.953629969552845  0.0447276035930686 0.953246526643353  0.0445691760255746 0.952862516645396  0.0444126768823888 0.952477836169071  0.0442580654246168 0.952092381645874  0.0441053029479412 0.951706050799089  0.0439543525363129 0.951318741993327  0.043805178014125 0.95093035147567  0.0435840241381341 0.950345977007684  0.0435107405342423 0.950150886618299  0.04343788784849 0.949955486605772  0.0433654624262997 0.949759765778714  0.0432934585449365 0.949563706853757  0.0432218705511358 0.949367292320202  0.0431506953732283 0.949170511547747  0.0430799317948118 0.948973358894998  0.0429392139582996 0.948578266253918  0.0428692605311166 0.948380328601523  0.0427997074585248 0.948181982608984  0.0427305515230066 0.94798321659395  0.0426617896133263 0.947784018905439  0.0425934178378735 0.947584375333015  0.0425254315638416 0.947384269214293  0.0424578263824459 0.947183684247031  0.0423906 0.94698261 
- 0.205967571246725 10 0.214285715 8 0.2261904775 8 0.23214285875 8 0.23809524 10
-7 0 0  3 4 2  1.20575727 0.68899085  1.20469173918903 0.688449786025928  1.20377792647501 0.687857666846069  1.20292701545684 0.687210224474422 
- 0.205967571246725 4 0.23809524 4
-7 0 0  10 11 2  1.20575727 0.68899085  1.20591429673261 0.689070586195467  1.20607285726031 0.689149360395013  1.20623294345823 0.689227158911896  1.20639454693961 0.689303968311119  1.206557658855 0.689379775319369  1.20672226985774 0.689454566817782  1.20688837011018 0.689528329854675  1.20705594929345 0.689601051659717  1.20722499661353 0.68967271965589  1.2073955008045 0.689743321469603 
- 0.875 11 0.885661287061455 11
-7 0 0  3 4 2  0.0461083979788055 0.956415984746819  0.0468015281525145 0.957934231421863  0.047532272442626 0.959431599646572  0.0482957999999999 0.960907430000001 
- 0.875 4 0.885661287061455 4
-7 0 0  10 20 3  1.2073955008045 0.689743321469603  1.20772477266655 0.68987966527754  1.20805947778481 0.69001203286318  1.20839953502093 0.690140335110773  1.20874485667262 0.690264485733906  1.20909534855929 0.690384401547124  1.20945090995672 0.690500002641689  1.2098114334587 0.690611212501892  1.21017680640582 0.690717958876031  1.21054690898713 0.690820172944625  1.21129569472537 0.691015244135238  1.21167436239081 0.691108116651918  1.21205749488225 0.691196343993651  1.21244496197274 0.691279866303085  1.21283662788799 0.6913586280956  1.21323235156118 0.69143257844352  1.21363198691179 0.691501671137602  1.214035383148 0.691565864825748  1.21444238509298 0.691625123128943  1.21485283353482 0.691679414734434 
- 0.885661287061455 11 0.90625 9 0.926804154260539 11
-7 0 0  3 4 2  0.0482958 0.96090743  0.0512423154735146 0.966602793240655  0.0546623499074065 0.971714384775479  0.05834572 0.976490549999999 
- 0.885661287061455 4 0.926804154260539 4
-7 0 0  10 20 3  1.21485283353482 0.691679414734434  1.21506642019775 0.691707666669781  1.21528094013416 0.691734573677962  1.21549637090926 0.69176013134665  1.21571268979237 0.691784335635009  1.21592987377029 0.691807182877252  1.21614789956114 0.69182866978574  1.21636674362862 0.691848793453642  1.2165863821968 0.691867551357125  1.21680679126537 0.69188494135711  1.21755943985558 0.691939462707674  1.21809524337632 0.691970053062333  1.21863502116751 0.691992708414503  1.21917843014043 0.692007417284099  1.21972512141128 0.692014181140765  1.22027474158084 0.692013014389987  1.22082693402297 0.692003944266792  1.22138134017884 0.691987010635631  1.22193760085936 0.691962265697531  1.22249535755445 0.691929773603968 
- 0.926804154260539 11 0.9375 9 0.963204869208055 11
-7 0 0  3 4 2  0.0583457199999999 0.976490549999999  0.0616045424943351 0.980716211514631  0.0650506797598575 0.984809785299053  0.06857136 0.9886335 
- 0.926804154260539 4 0.963204869208055 4
-7 0 0  10 20 3  1.22249535755445 0.691929773603968  1.22261567848662 0.691922764312963  1.22273606903792 0.691915394497227  1.22285652560928 0.691907664800773  1.22297704460311 0.691899575893496  1.22309762242387 0.691891128470993  1.22321825547875 0.691882323254368  1.22333894017822 0.691873160990036  1.2234596729367 0.691863642449518  1.22358045017312 0.691853768429214  1.22390561240053 0.691826239615252  1.2241100734941 0.691807924938795  1.22431463428708 0.69178859969199  1.22451927751683 0.691768268049479  1.22472398597048 0.691746934385615  1.22492874249249 0.691724603270807  1.2251335299921 0.691701279467817  1.22533833145071 0.691676967928073  1.22554312992933 0.691651673787973  1.22574790857607 0.6916254023652 
- 0.963204869208055 11 0.96875 9 0.978128680339632 11
-7 0 0  3 4 2  0.06857136 0.9886335  0.0700147885269828 0.990201174810364  0.0714496316841416 0.991688433493362  0.07289849 0.9931894 
- 0.963204869208055 4 0.978128680339632 4
-7 0 0  10 20 3  1.22574790857607 0.6916254023652  1.22588429374337 0.69160790526554  1.22602067011378 0.691589974669832  1.22615703270883 0.691571612149051  1.22629337656717 0.691552819309842  1.22642969674556 0.691533597794036  1.22656598831982 0.691513949278164  1.22670224638586 0.691493875472973  1.2268384660606 0.691473378122946  1.22697464248295 0.691452459005813  1.22745129216199 0.69137774081521  1.2277915125417 0.691321733880066  1.22813135639119 0.691263127429367  1.22847074866235 0.691201951093741  1.22880961536395 0.691138235733123  1.22914788389659 0.691072013293694  1.22948548280718 0.691003316804648  1.22982234125435 0.690932180470856  1.2301583891998 0.690858639615802  1.23049356 0.69078273 
- 0.978128680339632 11 0.984375 9 1 11
-7 0 0  3 4 2  0.07289849 0.9931894  0.0750218367025939 0.995389114911367  0.0771428778215308 0.997577672974491  0.07920744 1 
- 0.978128680339632 4 1 4
-8 0.69078275 1
-7 0 0  9 18 3  0.55367883 1  0.553678829999996 0.982821264072413  0.553678830000014 0.965642528157859  0.55367882999997 0.948463792255267  0.553678830000041 0.931285056364312  0.553678829999958 0.91410632048343  0.55367883000003 0.896927584612626  0.553678829999987 0.879748848750359  0.553678830000003 0.862570112896267  0.553678829999999 0.828212641202362  0.553678829999998 0.811033898936538  0.553678830000012 0.793855199599479  0.553678829999973 0.776676366245425  0.553678830000036 0.759497788122592  0.553678829999969 0.742318887193752  0.553678830000017 0.725140261558044  0.553678829999995 0.7079614858136  0.55367883 0.69078275 
- 0.69078275 10 0.845391375 8 1 10
-8 0.69078275 1
-7 0 0  9 18 3  0.55367883 1  0.553678829999995 0.982821264072429  0.553678830000017 0.965642528157803  0.553678829999969 0.948463792255373  0.553678830000036 0.931285056364173  0.553678829999973 0.914106320483564  0.553678830000012 0.896927584612531  0.553678829999998 0.879748848750404  0.553678829999999 0.862570112896256  0.553678830000003 0.82821264120237  0.553678829999987 0.811033898936518  0.55367883000003 0.793855199599508  0.553678829999958 0.776676366245401  0.553678830000041 0.759497788122605  0.55367882999997 0.742318887193747  0.553678830000014 0.725140261558046  0.553678829999996 0.707961485813599  0.55367883 0.69078275 
- 0.69078275 10 0.845391375 8 1 10
-8 0 1
-7 0 0  1 2 2  0 1.00000000011596  0 3.85753651244158e-011 
- 0 2 1 2
-8 0 1
-7 0 0  1 2 2  1 4.05709804047046  1 1.56492596659064e-010 
- 0 2 1 2
-7 0 0  9 10 2  0.57740334 0.22601628  0.574485168908269 0.230040655317211  0.571610003858814 0.234100601017076  0.568778663871953 0.238195462185682  0.565991953752192 0.242324554650541  0.563250657170415 0.246487173446383  0.560555538570483 0.250682589073487  0.557907341465324 0.254910048926469  0.55530678704319 0.259168778433677  0.552754573108648 0.263457981879367 
- 0 10 0.165915009955367 10
-7 0 0  3 4 2  1 0.09543064  0.951643863855859 0.106944389065374  0.901408723094909 0.116968263826342  0.849553149999999 0.12565764 
- 0 4 0.165915009955367 4
-7 0 0  9 26 4  0.552754573108648 0.263457981879367  0.551461122423653 0.265631731132839  0.550180087593486 0.267813307365621  0.548911559448753 0.270002607002378  0.54765562727749 0.272199525072947  0.546412378789764 0.274403955239825  0.545181900087934 0.276615789820284  0.543964275642805 0.278834919802865  0.54275958825891 0.281061234881667  0.53802486891365 0.289934895368286  0.534596896409032 0.296637696670766  0.531286131970515 0.30340009685179  0.528094572408515 0.310219068115244  0.525024073137441 0.317091493565328  0.522076341473048 0.324014175793399  0.519252930899961 0.330983846028743  0.516555236309304 0.337997173852992  0.513040306038245 0.347641426498714  0.512113246560009 0.350237508514583  0.511203372833194 0.35283885597271  0.510310742967963 0.355445300384091  0.509435412097712 0.358056672391112  0.508577432356582 0.360672801835383  0.507736852859911 0.363293517826386  0.506913719687604 0.365918648810802  0.506108075870396 0.368548022642323 
- 0.165915009955367 10 0.25 8 0.5 8 0.59182005246956 10
-7 0 0  4 5 2  0.84955315 0.12565764  0.74971792440844 0.142386914660135  0.644880274891697 0.154692662408025  0.536486617040378 0.163231121212432  0.42630538 0.16862434 
- 0.165915009955367 5 0.59182005246956 5
-8 0 0.33333333
-7 0 0  11 22 3  0 0.17394647  0.0204040624885866 0.174343954670496  0.0407543900046298 0.174678452342288  0.0610426122775305 0.17494955249586  0.0812603650401261 0.175156905069795  0.101399306601644 0.175300221874242  0.121451134853296 0.175379277741699  0.141407604703769 0.175393911406883  0.161260545948439 0.175344026126827  0.181001881567782 0.175229590028668  0.200623646459511 0.175050636196882  0.239612366741796 0.174563888784773  0.258979328097728 0.174256094908462  0.278210990551605 0.173883981319552  0.297299920480676 0.173447699088525  0.316237790519249 0.172947507398559  0.335018697274662 0.172383635067243  0.353633310010963 0.171756522794685  0.372076683671907 0.171066502433411  0.390340551331236 0.170314110116557  0.408418983829516 0.169499854565367  0.42630538 0.16862434 
- 0 12 0.166666665 10 0.33333333 12
-7 0 0  6 7 2  0.48648389 0.47548073  0.487716767050042 0.456566836109428  0.489858557257757 0.437917241539643  0.492861732970719 0.419672974441571  0.496643053044708 0.401964176744109  0.501103267259162 0.384882179887825  0.506108075870396 0.368548022642323 
- 0 7 0.33333333 7
-7 0 0  10 11 2  0.48648389 0.47548073  0.48582589152821 0.482649280356779  0.485307320158107 0.489817593023097  0.484928175750765 0.496985669684817  0.484688458584679 0.504153507061068  0.484588168350756 0.511321108786716  0.484627305251437 0.518488472484628  0.48480586922495 0.525655598878253  0.485123860265631 0.53282248803329  0.485581278380601 0.5399891398635  0.486178123570706 0.54715555435555 
- 0 11 0.409295174620928 11
-7 0 0  4 5 2  0 2.49916951  0.104299473595229 2.50071850505137  0.208087609374514 2.50380272387037  0.311450567702593 2.50829779236144  0.41424785 2.51425894 
- 0 5 0.409295174620928 5
-7 0 0  10 20 3  0.486178123570706 0.54715555435555  0.486310391777378 0.548743719609874  0.486449507525203 0.550331873208048  0.48659547081419 0.551920015149928  0.486748281644332 0.553508145435544  0.486907940015599 0.555096264065223  0.487074445927926 0.556684371039675  0.487247799381223 0.558272466359926  0.487428000375412 0.559860550026858  0.487615048910542 0.561448622039875  0.488877774984199 0.571790683889172  0.490154677056385 0.580544331106311  0.491639651492372 0.589297624922005  0.493332697173543 0.598050561947289  0.495233816793106 0.606803150354172  0.497343005903742 0.615555376650506  0.499660269767944 0.624307256805282  0.502185603906874 0.633058777197851  0.504919010981265 0.641809945944253  0.50786049 0.65056076 
- 0.409295174620928 11 0.5 9 1 11
-7 0 0  4 5 2  0.41424785 2.51425894  0.562607407121899 2.52286221303333  0.70985539597643 2.53453500163556  0.855839674083193 2.54944400051588  1 2.56863264 
- 0.409295174620928 5 1 5
-8 0.9 1
-7 0 0  11 22 3  0.05942176 11.23696609  0.0552265172854449 11.236181132573  0.0513114411473243 11.2354498511421  0.04764027484064 11.2347653967168  0.0441830651455495 11.2341221208646  0.0409146572277524 11.2335152903986  0.0378135636055425 11.2329408731244  0.0348611348320886 11.23239538132  0.0320409594988455 11.2318757587418  0.0293384211692585 11.2313792980245  0.0267403398486086 11.2309035742517  0.0217289113486621 11.2299891885314  0.0193155412618645 11.229550522662  0.0169826589974425 11.2291282184156  0.0147183521313002 11.2287201311753  0.0125149823351038 11.2283248845079  0.0103582414857482 11.2279399726215  0.0082452376185174 11.227564894137  0.00616030703086554 11.2271969619241  0.00409892160822844 11.2268354489195  0.00204868526429301 11.2264783003139  0 11.22612399 
- 0.9 12 0.95 10 1 12
-7 0 0  7 8 2  0.509151648434261 0.653078376570388  0.508861513862964 0.652517288851792  0.508634717688235 0.652080827854647  0.508451422881105 0.651712055286479  0.508274001699678 0.651393323502238  0.508140395818763 0.651101878864762  0.507990722728367 0.650831272790385  0.50786049 0.65056076 
- 0.9 8 1 8
-7 0 0  8 9 2  0.0796872526852902 11.2407395912722  0.0777584528321941 11.2403829338694  0.0757165228439116 11.2400046061477  0.0735401546064573 11.2396006116658  0.0712034043107755 11.2391660760774  0.0686738438974643 11.2386948987936  0.0659094143286826 11.2381791599885  0.0628537216175662 11.2376082330736  0.05942176 11.23696609 
- 0.880853970078994 9 0.9 9
-7 0 0  4 5 2  0.50959725 0.65393945  0.509512560161921 0.65377590671475  0.509415714693759 0.653588829724309  0.509302687813702 0.653370469789236  0.509151648434261 0.653078376570388 
- 0.880853970078994 5 0.9 5
-8 0.2 0.4
-7 0 0  10 20 3  0.50959725 0.65393945  0.509631241026504 0.654005089051155  0.509670564920697 0.654082082051294  0.509715225826002 0.654170437050703  0.50976521400539 0.654270135151866  0.509820544223992 0.654381204984624  0.509881200591413 0.654503615760592  0.509947195566871 0.654637391602903  0.510018522097534 0.654782518865664  0.510095182952016 0.654939002901996  0.510259171947152 0.655274681891585  0.510346500168553 0.655453877000802  0.510439162113859 0.655644427724537  0.510537157782908 0.655846334062759  0.510640487176057 0.656059596015614  0.510749150292851 0.656284213583032  0.510863147133808 0.656520186765184  0.510982477698531 0.656767515561993  0.511107141987295 0.6570261999736  0.51123714 0.65729624 
- 0.2 11 0.3 9 0.4 11
-7 0 0  6 7 2  0.0796872526852901 11.2407395912722  0.0848481570916091 11.241693902192  0.112877789325687 11.2466180784537  0.0518984161356361 11.236261945529  0.175901974854275 11.2576430208145  0.120223384774473 11.24803806818  0.1418269 11.25176309 
- 0.2 7 0.4 7
-8 0.7 0.8
-7 0 0  10 29 4  0.26635512 11.27572027  0.255342889130292 11.2733729727402  0.246831286237603 11.2715730624251  0.239698881902237 11.2700771697141  0.233543111820422 11.2687983626561  0.228034609795169 11.2676656580586  0.222999420301308 11.2666421907801  0.218279160807069 11.2656944910642  0.213758325879119 11.2647989194031  0.209330978462961 11.2639342463492  0.202670939582103 11.2626529644662  0.200447737648758 11.2622284877354  0.198208080408287 11.2618040765598  0.195938845703171 11.2613772541082  0.19362573024455 11.2609453714888  0.191254337035411 11.2605058092176  0.188808624536307 11.2600556922945  0.186269529244773 11.2595916422421  0.183616009594531 11.2591099847797  0.17802752817087 11.2581023415357  0.175092592460548 11.2575763606655  0.171990821323568 11.2570236930362  0.168691429941215 11.2564390439398  0.165157451680504 11.2558160877388  0.161343375156906 11.2551470701052  0.157192162496967 11.2544223045802  0.152630232617688 11.2536293236513  0.147557370432875 11.2527511755747  0.1418269 11.25176309 
- 0.7 11 0.75 9 0.775 9 0.8 11
-7 0 0  10 11 2  0.513684740124091 0.661805814675191  0.513136809727546 0.660864420744725  0.512506441289287 0.659630070672593  0.514426400258583 0.663729200155072  0.507562019205369 0.649425342643341  0.52010967919241 0.675682247073766  0.503455927023289 0.640991000824194  0.517989230604255 0.671277042713695  0.508908059954085 0.652477406007722  0.511696909449295 0.658251304665698  0.51123714 0.65729624 
- 0.7 11 0.8 11
-7 0 0  10 20 3  0.513684740124091 0.661805814675191  0.513755364277266 0.661927153351711  0.513826496957493 0.662048982659072  0.513898094134561 0.662171224651301  0.513970110504806 0.662293799830163  0.51404249964202 0.662416627421657  0.514115214161374 0.662539625670115  0.514188205894164 0.662662712145745  0.514261426070569 0.662785804060478  0.514334825507005 0.662908818586041  0.514456738660087 0.663112514146974  0.514505178750714 0.663193285872369  0.514553660988063 0.663273964821983  0.514602171252598 0.663354527526658  0.514650695406184 0.663434950608192  0.514699219315482 0.66351521081805  0.5147477288754 0.663595285075719  0.51479621003239 0.663675150506366  0.514844648807405 0.663754784477525  0.514893031318344 0.663834164634536 
- 0.482462206547696 11 0.5 9 0.511540248577535 11
-7 0 0  3 4 2  0.26635512 11.27572027  0.282044366945169 11.2790644919784  0.298282012580075 11.2825371526078  0.31415251 11.28585527 
- 0.482462206547696 4 0.511540248577535 4
-7 0 0  10 11 2  0.514893031318344 0.663834164634536  0.51496497175353 0.663952195776982  0.515036787794408 0.664069665761453  0.515108433804811 0.664186501099006  0.515179864622456 0.664302629658649  0.515251035722096 0.664417980924949  0.515321903373167 0.66453248624225  0.51539242478924 0.66464607904137  0.515462558267051 0.664758695045509  0.515532263313361 0.664870272452974  0.515601500758393 0.66498075209519 
- 0.511540248577535 11 0.528699558598993 11
-7 0 0  3 4 2  0.31415251 11.28585527  0.323517886911792 11.2878133289176  0.332726441450526 11.2897294157878  0.34154549 11.29158637 
- 0.511540248577535 4 0.528699558598993 4
-7 0 0  10 29 4  0.422657966469266 11.3101236360822  0.421440937968388 11.309814594463  0.420233235230539 11.3095089909581  0.419033850450325 11.3092065621938  0.417841805030536 11.3089070544247  0.416656144711576 11.3086102222303  0.415475935117293 11.3083158273396  0.414300257599974 11.3080236375509  0.413128205261074 11.3077334257123  0.411958878988007 11.3074449687204  0.407975256130987 11.3064659587046  0.405169779251886 11.30578280037  0.40236236536182 11.3051054789146  0.3995406995738 11.3044310371172  0.396691775076687 11.303756428967  0.393802733074188 11.3030787119239  0.39085970848749 11.3023947813862  0.387846911314504 11.30170116554  0.384747680952079 11.3009942831346  0.378336793440339 11.2995455985535  0.375025154058302 11.2988038006774  0.371587702905658 11.2980403917443  0.368002198296504 11.2972507220374  0.364243181491293 11.2964295264115  0.360280790751457 11.2955706844746  0.356079341710501 11.2946669353966  0.351595421398961 11.2937094976693  0.346774629875178 11.292687420429  0.34154549 11.29158637 
- 0.439635627177706 11 0.45 9 0.475 9 0.5 11
-7 0 0  5 6 2  0.5178806 0.6683963  0.517433739011863 0.66779156106082  0.517072586071234 0.667254277821101  0.516670169888177 0.666654298757384  0.516262344479962 0.66603523609421  0.515601500758393 0.66498075209519 
- 0.439635627177706 6 0.5 6
-7 0 0  9 10 2  0.5178806 0.6683963  0.518112242154857 0.668709781847376  0.518343070742294 0.669018655767906  0.51857314446045 0.66932304176768  0.51880252054434 0.669623055151025  0.519031254844936 0.6699188067541  0.519259401924885 0.670210403188074  0.519487015156392 0.670497947073864  0.519714146815628 0.670781537262057  0.51994084817201 0.67106126903675 
- 0.6 10 0.614734712035438 10
-7 0 0  3 4 2  0.422657966469266 11.3101236360822  0.444704190665417 11.3157218622674  0.465219731834965 11.3213606902932  0.48491685 11.32682113 
- 0.6 4 0.614734712035438 4
-8 0.3 0.4
-7 0 0  9 18 3  0.57922482 11.35399331  0.574827877830719 11.3526134271855  0.570775205314887 11.3513584202101  0.566910567316348 11.3501763133654  0.563138671699647 11.349036014295  0.559384290550527 11.3479134660905  0.555581137614919 11.3467879974788  0.551666822121973 11.3456407278371  0.547574333107235 11.3444518536527  0.538874951496234 11.3419453723686  0.534268067112464 11.3406277661714  0.52932465152708 11.3392229379619  0.523953843191186 11.3377051713267  0.518040730458314 11.3360423279469  0.511442296287179 11.3341946885283  0.503951696273567 11.3321051142673  0.495284934346975 11.3296953729071  0.48491685 11.32682113 
- 0.3 10 0.35 8 0.4 10
-7 0 0  5 6 2  0.523417356271674 0.675009456362825  0.522781974984806 0.674348823828004  0.522377201248506 0.673912936591592  0.521766561815082 0.673212366901729  0.52122961310116 0.672651504342558  0.51994084817201 0.67106126903675 
- 0.3 6 0.4 6
-8 0.2 0.3
-7 0 0  6 17 4  0.68476969 11.39282464  0.674623106140842 11.3886105246263  0.665081310299121 11.3847309896225  0.655981681639087 11.3811133477542  0.647203276676091 11.3777061797719  0.638640529995324 11.3744670875255  0.625969706812221 11.3698053269751  0.621774975776005 11.3682842164131  0.617596573172545 11.3667913014812  0.613422253990748 11.3653222916629  0.609239645393266 11.3638730784761  0.600831985891441 11.3610061095838  0.596606994153556 11.359588374162  0.592347682773453 11.3581822473405  0.588040968007826 11.3567838473661  0.583672010688376 11.355388961844  0.57922482 11.35399331 
- 0.2 7 0.25 5 0.275 5 0.3 7
-7 0 0  4 5 2  0.528291828785647 0.679476362881167  0.52669306641889 0.678195801685654  0.525538969751749 0.6771280082593  0.524488427005237 0.676123093462799  0.523417356271674 0.675009456362825 
- 0.2 5 0.3 5
-7 0 0  9 18 3  0.528291828785647 0.679476362881167  0.528689784376291 0.679795113495713  0.529090209704162 0.680108022345966  0.529493319006296 0.680415296466551  0.529899328739415 0.68071713260804  0.530308458310668 0.681013718074823  0.530720930814563 0.681305231467077  0.531136973789987 0.681591843345074  0.531556820011195 0.681873716834098  0.532325432879117 0.68237651366798  0.532672830733178 0.682598988679619  0.533023030353554 0.682818517259563  0.533376162861413 0.683035180433051  0.533732362332802 0.683249056408909  0.534091766110753 0.683460220758885  0.534454515134816 0.683668746583559  0.53482075429194 0.683874704666642  0.535190632793723 0.684078163619316 
- 0.674965095271805 10 0.7 8 0.720359481525137 10
-7 0 0  3 4 2  0.68476969 11.39282464  0.725986018962399 11.4099427419598  0.763786976355746 11.4270402492404  0.79876482 11.44623253 
- 0.674965095271805 4 0.720359481525137 4
-7 0 0  9 10 2  0.535190632793723 0.684078163619316  0.536637492607827 0.684874037348189  0.538140039946908 0.685631670569478  0.539707205905392 0.686355170021179  0.541348934137578 0.687048133772452  0.543076526378162 0.687713783419162  0.544903082469978 0.688355060578684  0.546844105434993 0.688974710670579  0.548918402917954 0.689575367021342  0.55114967 0.69015964 
- 0.720359481525137 10 0.8 10
-7 0 0  3 4 2  0.79876482 11.44623253  0.860130420936333 11.4799037170199  0.912351838353414 11.5177413762378  0.976195632636491 11.5713201237537 
- 0.720359481525137 4 0.8 4
-7 0 0  10 11 2  1 11.59164008  0.997577041548979 11.589537880172  0.995163966710509 11.5874517014116  0.99276060874937 11.5853813807783  0.990366803275716 11.583326758546  0.987982388116733 11.5812876780816  0.98560720320151 11.5792639857365  0.983241090457849 11.577255530747  0.980883893719742 11.5752621651465  0.978535458644247 11.5732837436844  0.976195632636491 11.5713201237537 
- 0 11 0.0107143665106604 11
-7 0 0  3 4 2  0.55367883 0.69078275  0.552809975306701 0.690582007392303  0.551967413984352 0.690373770188761  0.55114967 0.69015964 
- 0 4 0.0107143665106604 4
-8 0 2.49917007
-7 0 0  2 3 2  1 -1.29143584715052e-010  1 1.24958503831894  1 2.49917007012914 
- 0 3 2.49917007 3
-8 0 2.49917007
-7 0 0  10 11 2  1 1.82448587  1.00000000000002 1.65943202352431  0.999999999999934 1.49437818139389  1.00000000000014 1.32932430918611  0.999999999999792 1.16427054008857  1.00000000000022 0.99921655363122  0.999999999999822 0.834162879481461  1.00000000000011 0.669108891388316  0.999999999999954 0.504055123247654  1.00000000000001 0.33900125504311  1 0.17394741 
- 0 11 2.49917007 11
-8 0 1.72905437
-7 0 0  9 10 2  0 1.82448587  0 1.63236871688937  0 1.44025156178362  0 1.24813442162655  0 1.0560172370389  0 0.863900135074375  0 0.671782933220025  0 0.479665813019969  0 0.287548651114474  0 0.0954315 
- 0 10 1.72905437 10
-8 0 1.72905437
-7 0 0  10 20 3  2.07179401 0  1.97362266964401 0  1.87545132923854 0  1.77727998878472 0  1.67910864828009 0  1.58093730772852 0  1.48276596712538 0  1.38459462647497 0  1.28642328577419 0  1.18825194502474 0  0.991909263427194 0  0.893737931146988 0  0.795566537211546 0  0.697395353254789 0  0.599223725344616 0  0.50105273478758 0  0.402881102915826 0  0.304709919257487 0  0.206538531254 0  0.10836719 0 
- 0 11 0.864527185 9 1.72905437 11
-8 0.01103422 1.98405473
-7 0 0  10 20 3  2.07179401 1  1.96878041893208 1  1.86576682780783 0.999999999999998  1.76275323662711 1.00000000000001  1.65973964539016 0.999999999999973  1.5567260540965 1.00000000000005  1.45371246274668 0.999999999999941  1.35069887134012 1.00000000000005  1.24768527987719 0.999999999999972  1.14467168835764 1.00000000000001  0.938644505205442 0.999999999999998  0.83563090940557 0.999999999999998  0.732617343458738 1.00000000000002  0.629603675418813 0.999999999999945  0.526590222974921 1.00000000000009  0.423576460775544 0.999999999999895  0.320563010088171 1.00000000000008  0.217549341526449 0.999999999999962  0.114535772166398 1.00000000000001  0.0115221800000001 1 
- 0.01103422 11 0.997544475 9 1.98405473 11
-8 0.01103422 1.98405473
-7 0 0  5 6 2  1.98405473 0  1.58945062622767 0  1.19484652283288 0  0.800242422651778 0  0.405638320236386 0  0.01103422 0 
- 0.01103422 6 1.98405473 6
-8 0 1.72904906
-7 0 0  9 10 2  1 0.09543064  1.00000000000001 0.287547202087267  0.999999999999968 0.479663787252419  1.00000000000006 0.671780282208771  0.999999999999912 0.863896952223124  1.00000000000009 1.05601340820797  0.999999999999933 1.2481300401974  1.00000000000003 1.44024657731642  0.999999999999991 1.63236314591658  1 1.82447971 
- 0 10 1.72904906 10
-8 0 1.72904906
-7 0 0  10 20 3  0.10836658 1  0.206537951718066 1  0.304709378665106 0.999999999999992  0.402880564251975 1.00000000000001  0.501052279270761 0.999999999999994  0.599223236787823 1  0.697394947145429 1  0.795566133121795 0.999999999999994  0.893737567130333 1.00000000000001  0.991908928322369 0.999999999999995  1.18825167084805 1.00000000000001  1.28642304206173 0.999999999999944  1.38459441322607 1.00000000000012  1.48276578434159 0.999999999999836  1.5809371554073 1.00000000000017  1.67910852642457 0.999999999999859  1.77727989739198 1.00000000000009  1.87545126831062 0.999999999999957  1.97362263917988 1.00000000000001  2.07179401 1 
- 0 11 0.86452453 9 1.72904906 11
-8 5.543e-005 1.00005543
-7 0 0  11 12 2  1 1.82447971  0.909090888044948 1.82447971000001  0.818182007963492 1.82447970999995  0.727271568025782 1.8244797100001  0.636367230124829 1.82447970999986  0.545448155878196 1.82447971000013  0.454551906391309 1.82447970999994  0.363632554793476 1.82447971  0.272728557791767 1.82447971000002  0.181817975902205 1.82447970999998  0.0909090909090876 1.82447971000001  0 1.82447971 
- 5.543e-005 12 1.00005543 12
-8 5.54299999999675e-005 1.00005543
-7 0 0  10 11 2  5.54299999999119e-005 7.14491407  0.100055453273508 7.14491407000001  0.200055324657059 7.14491406999994  0.300055662485845 7.14491407000015  0.400055158026452 7.14491406999983  0.500055620126811 7.1449140700001  0.600055344651902 7.14491406999998  0.700055458153884 7.14491406999998  0.800055425654522 7.14491407000001  0.900055431875078 7.14491406999999  1.00005543 7.14491407 
- 5.543e-005 11 1.00005543 11
-8 0.17394647 1.82447971
-7 0 0  11 12 2  0 1.82447971  0 1.67443123290515  0 1.52438275920634  0 1.37433426002839  0 1.22428585702428  0 1.07423722713075  0 0.924188968937252  0 0.774140272944166  0 0.624091951616035  0 0.474043402659847  0 0.323994945792487  0 0.17394647 
- 0.17394647 12 1.82447971 12
-8 0.17394647 1.82447971
-7 0 0  11 22 3  0 -5.87469061401301e-017  0 0.113598614157295  0 0.2271972282901  0 0.340795842398463  0 0.454394456482256  0 0.567993070541712  0 0.681591684576532  0 0.795190298586962  0 0.908788912572912  0 1.02238752653432  0 1.1359861404713  0 1.36318336829624  0 1.47678199187437  0 1.59038053955901  0 1.70397937323109  0 1.81757752730139  0 1.93117680050288  0 2.04477474535732  0 2.15837383629772  0 2.27197222192398  0 2.38557089644618  0 2.49916951 
- 0.17394647 12 0.99921309 10 1.82447971 12
-8 0.01152171 2.07179401
-7 0 0  2 3 2  0.011521710116174 0  1.04165786549234 0  2.07179400988383 0 
- 0.01152171 3 2.07179401 3
-8 0.0115217099999998 2.07179401
-7 0 0  10 20 3  1.97302096 0  1.87436991252604 0  1.77571884046276 0  1.67706787549979 0  1.57841667539026 0  1.47976581156843 0  1.38111461338389 0  1.28246364799231 0  1.18381257238223 0  1.08516152904782 0  0.887859433294585 0  0.789208385364565 0  0.690557337381207 0  0.591906289344327 0  0.493255241254115 0  0.394604193110297 0  0.295953144913091 0  0.197302096662269 0  0.0986510483579338 0  -3.32251789273158e-018 0 
- 0.01152171 11 1.04165786 9 2.07179401 11
-8 6.281e-005 1.00006281
-7 0 0  9 34 5  2.07179401 1.35525263554376e-020  2.07179401000001 0.0277777761367734  2.07179400999996 0.0555555615601266  2.07179401000007 0.0833332960458994  2.07179400999991 0.111111184819333  2.07179401000007 0.138888962079544  2.07179400999997 0.166666622961044  2.07179401 0.194444435446457  2.07179401000001 0.222222212649381  2.07179400999999 0.277777776930062  2.07179401000003 0.305555568953645  2.07179400999996 0.333333294088394  2.07179401000003 0.361111150368819  2.07179401 0.388888921708322  2.07179400999998 0.416666592097294  2.07179401000002 0.444444428478471  2.07179400999999 0.472222358175801  2.07179401000001 0.527777895985907  2.07179400999995 0.555555513974443  2.07179401000013 0.583333155227798  2.0717940099998 0.611111417129459  2.07179401000022 0.638888648430348  2.07179400999983 0.666666782823207  2.07179401000009 0.694444422442104  2.07179400999998 0.72222222261961  2.07179401 0.777777777987861  2.07179401000002 0.805555558045828  2.07179400999996 0.833333338358823  2.07179401000004 0.86111111754685  2.07179400999997 0.888888894967946  2.07179401 0.916666670719292  2.07179401000001 0.94444444563598  2.07179400999999 0.972222221292105  2.07179401 1 
- 6.281e-005 10 0.25006281 8 0.50006281 8 0.75006281 8 1.00006281 10
-8 6.28099999999687e-005 1.00006281
-7 0 0  6 12 3  1.00006281 3.88e-005  0.916729488127207 3.88e-005  0.833396113914404 3.88000000000001e-005  0.750062845813491 3.87999999999998e-005  0.666729463197402 3.88000000000002e-005  0.583396143307731 3.87999999999999e-005  0.416729479844628 3.88000000000001e-005  0.333396127970785 3.87999999999999e-005  0.25006283818095 3.88000000000002e-005  0.166729459331795 3.87999999999999e-005  0.0833961434792419 3.88e-005  6.28099999999687e-005 3.88e-005 
- 6.281e-005 7 0.50006281 5 1.00006281 7
-8 3.88e-005 8.09360706
-7 0 0  8 9 2  1.00006281 3.87999999986732e-005  1.00006281 1.01173483408992  1.00006281000001 2.02343084535778  1.00006280999998 3.03512695155291  1.00006281000002 4.04682285824265  1.00006280999998 5.0585190270105  1.00006281000001 6.07021496719345  1.00006281 7.08191103016194  1.00006281 8.09360706 
- 3.88e-005 9 8.09360706 9
-8 3.88000000004496e-005 8.09360706
-7 0 0  9 10 2  5.799e-005 3.57399999999704e-005  5.79899999999992e-005 0.856152965258641  5.79900000000028e-005 1.71227013879958  5.79899999999941e-005 2.56838754045745  5.79900000000083e-005 3.42450443286552  5.79899999999917e-005 4.28062206454708  5.79900000000058e-005 5.13673895351306  5.79899999999973e-005 5.99285635691951  5.79900000000007e-005 6.84897352725582  5.799e-005 7.70509075 
- 3.88e-005 10 8.09360706 10
-8 6.281e-005 1.00006281
-7 0 0  11 22 3  1.00006281 8.09360706  0.95460825049386 8.09360705999999  0.909153719529796 8.09360706000003  0.863699179896275 8.09360705999985  0.818244628309187 8.09360706000046  0.772790074849488 8.0936070599991  0.727335528953224 8.0936070600012  0.681880991971375 8.09360705999892  0.636426456276887 8.09360706000066  0.590971910943287 8.09360705999976  0.545517353972963 8.09360706000002  0.454608268209947 8.09360706000004  0.409153754304189 8.09360705999962  0.363699053036348 8.09360706000111  0.318244965788597 8.09360705999792  0.272789485820291 8.09360706000284  0.22733627564614 8.09360705999714  0.181880374487198 8.09360706000214  0.136426794690996 8.09360705999881  0.0909717839896043 8.09360706000045  0.0455173592202783 8.0936070599999  6.28100000000797e-005 8.09360706 
- 6.281e-005 12 0.50006281 10 1.00006281 12
-8 6.28099999999687e-005 1.00006281
-7 0 0  11 52 6  9.9050420844917e-022 1  0.159445921344673 0.999999999999998  0.318891844450705 1.00000000000001  0.478337768707832 0.999999999999988  0.637783693504755 1  0.797229618232148 1.00000000000004  0.956675542277749 0.999999999999922  1.1161214650328 1.00000000000009  1.27556738588516 0.999999999999939  1.43501330422532 1.00000000000003  1.59445921944214 0.999999999999997  1.91335104240838 0.999999999999997  2.07279862626762 1.00000000000002  2.23223255313817 0.999999999999936  2.39171925573855 1.00000000000011  2.55107620758247 0.999999999999855  2.71065119524873 1.00000000000015  2.86996902110233 0.999999999999873  3.02948460396674 1.00000000000007  3.18892600440883 0.999999999999979  3.34836312230642 0.999999999999996  3.66725396373816 1.00000000000002  3.82670434855595 0.99999999999987  3.98618024347027 1.00000000000033  4.14550903373886 0.999999999999445  4.30516394214961 1.00000000000068  4.46435927563633 0.999999999999365  4.62401730975379 1.00000000000046  4.7833725491417 0.999999999999747  4.94282947244006 1.0000000000001  5.10227108944369 0.999999999999974  5.34143895191098 1.00000000000001  5.42116184728777 0.999999999999939  5.5008853745766 1.00000000000014  5.58060964899005 0.999999999999767  5.66033446590039 1.00000000000027  5.74005932432351 0.99999999999977  5.81978355172821 1.00000000000014  5.8995065299836 0.999999999999935  5.97922802264109 1.00000000000002  6.05894860338195 0.999999999999994  6.21839176811581 1.00000000000001  6.29811400146161 0.999999999999972  6.37783667456844 1.00000000000005  6.45755961260592 0.999999999999953  6.53728267710306 1.00000000000002  6.61700576599972 1.00000000000002  6.69672881357207 0.999999999999973  6.77645179051969 1.00000000000002  6.85617470388298 0.999999999999997  6.9358975971064 0.999999999999999  7.01562055 1 
- 6.281e-005 12 0.25006281 10 0.50006281 10 0.75006281 10 0.87506281 10 1.00006281 12
-8 3.88e-005 8.09360706
-7 0 0  9 18 3  6.281e-005 8.09360706  6.28100000000001e-005 7.64396437881898  6.28099999999998e-005 7.19432163852811  6.28100000000005e-005 6.74467913276919  6.28099999999995e-005 6.29503617407659  6.28100000000003e-005 5.84539377055884  6.28099999999999e-005 5.39575091198857  6.281e-005 4.94610829972747  6.28100000000001e-005 4.49646560676569  6.28099999999997e-005 3.59718024561041  6.28100000000013e-005 3.14753756449985  6.28099999999974e-005 2.69789488334227  6.28100000000033e-005 2.24825220244403  6.28099999999973e-005 1.79860952193173  6.28100000000017e-005 1.34896684175322  6.28099999999993e-005 0.899324161675886  6.28100000000001e-005 0.449681481288565  6.281e-005 3.88000000000264e-005 
- 3.88e-005 10 4.04682293 8 8.09360706 10
-8 3.88000000004496e-005 8.09360706
-7 0 0  2 3 2  5.543e-005 3.42497050267454e-005  5.543e-005 3.57247415675061  5.543e-005 7.14491407029497 
- 3.88e-005 3 8.09360706 3
-8 0 1
-1 7.01562055 0 0 1 
-8 0 1
-7 0 0  11 12 2  1 4.45537137  0.909090908561344 4.45537137000009  0.818181870562903 4.45537136999962  0.727272474909002 4.45537137000098  0.636364187836403 4.45537136999827  0.54545386041735 4.45537137000226  0.454545975256516 4.4553713699978  0.363636084534925 4.45537137000161  0.272727343983109 4.45537136999912  0.181818184108585 4.45537137000035  0.0909090901741503 4.45537136999992  5.55111512312578e-017 4.45537137 
- 0 12 1 12
-8 0 1
-7 0 0  2 3 2  0 1.0773715253265e-011  0 0.500000023881465  0 0.999999999989226 
- 0 3 1 3
-8 5.543e-005 1.00005543
-7 0 0  8 23 4  5.54300000000369e-005 3.425e-005  0.0313054258217708 3.425e-005  0.0625554279719374 3.425e-005  0.0938054298788004 3.42499999999999e-005  0.125055429993016 3.42500000000001e-005  0.156305429501246 3.42499999999998e-005  0.187555430039611 3.42500000000001e-005  0.21880543140737 3.425e-005  0.281305427153432 3.425e-005  0.312555438035821 3.425e-005  0.343805409089177 3.425e-005  0.375055437251671 3.42499999999999e-005  0.40630545710361 3.42500000000001e-005  0.437555414912189 3.425e-005  0.468805428244393 3.425e-005  0.562555435124715 3.425e-005  0.625055410412726 3.42500000000002e-005  0.687555500400406 3.42499999999995e-005  0.75005531782487 3.42500000000005e-005  0.812555531560301 3.42499999999996e-005  0.875055392858908 3.42500000000002e-005  0.93755543435549 3.425e-005  1.00005543 3.425e-005 
- 5.543e-005 9 0.25005543 7 0.50005543 7 1.00005543 9
-8 5.54299999999675e-005 1.00005543
-7 0 0  10 29 4  7.01562055 0  6.84023003682787 0  6.66484004973054 0  6.48945006516399 0  6.31405975646337 0  6.13866899387512 0  5.96327784450699 0  5.78788657238934 0  5.61249563841518 0  5.4371057003869 0  5.08632952558854 0  4.9109676305497 0  4.7354503144573 0  4.56040863674913 0  4.38449022132798 0  4.20956487724054 0  4.03389988431105 0  3.85859492206003 0  3.68320064219728 0  3.15702953142413 0  2.80624867078815 0  2.45546771118766 0  2.10468667377624 0  1.75390557971171 0  1.40312445014636 0  1.05234330623812 0  0.701562169140364 0  0.350781060009377 0  9.50793968322335e-020 0 
- 5.543e-005 11 0.25005543 9 0.50005543 9 1.00005543 11
-8 0.00034374 1.00034374
-7 0 0  11 42 5  1.00034374 46.24578153  0.977616493888739 46.2457815300006  0.954889137955091 46.2457815299974  0.932162083238866 46.2457815300064  0.909434595712866 46.245781529989  0.886707009953973 46.2457815300139  0.863980915631975 46.2457815299868  0.841252069308971 46.2457815300095  0.81852595143018 46.2457815299948  0.795798275483847 46.2457815300021  0.773071043187691 46.2457815299995  0.727616471370085 46.2457815300007  0.704889217295533 46.2457815299969  0.682161960576673 46.2457815300076  0.659434686545274 46.2457815299879  0.636707395034772 46.245781530014  0.613980095066871 46.2457815299878  0.591252799544174 46.2457815300081  0.568525519936845 46.245781529996  0.545798260973786 46.2457815300013  0.52307101533133 46.2457815299999  0.477616501314268 46.2457815299999  0.454889289623569 46.2457815300012  0.432161781415039 46.2457815299967  0.409434701753659 46.2457815300056  0.386707513057072 46.2457815299932  0.363980026033306 46.2457815300064  0.341252697024785 46.2457815299954  0.318525631655204 46.2457815300023  0.295798334556379 46.2457815299993  0.273071010642716 46.24578153  0.227616459352553 46.2457815300002  0.204889243603818 46.245781529999  0.182162026881318 46.2457815300029  0.159434598950831 46.245781529994  0.136707284771353 46.2457815300093  0.11398012573395 46.2457815299894  0.0912528665483094 46.2457815300089  0.0685255031955272 46.2457815299945  0.0457982978325648 46.2457815300024  0.0230710210040975 46.2457815299994  0.000343739999999995 46.24578153 
- 0.00034374 12 0.25034374 10 0.50034374 10 0.75034374 10 1.00034374 12
-8 0.000343739999999926 1.00034374
-7 0 0  11 52 6  1 0  0.977275127671299 0  0.954549327562109 0  0.93182274977962 0  0.909095544432021 0  0.886367861625418 0  0.863639851469271 0  0.840911664068786 0  0.818183449533457 0  0.795455357969336 0  0.77272753948466 0  0.727272748888533 0  0.70456047965549 0  0.681719813570318 0  0.659352848898331 0  0.636043992316036 0  0.613879413128843 0  0.590772437585764 0  0.56822649899333 0  0.545447447440282 0  0.5227272871094 0  0.488636357502206 0  0.477272805548422 0  0.465909313311632 0  0.454545849259763 0  0.443182381861666 0  0.431818879584808 0  0.42045531089825 0  0.409091644269608 0  0.397727848167542 0  0.386363891060109 0  0.363635591771177 0  0.352267177912083 0  0.340901118576007 0  0.329538588671557 0  0.318178099005992 0  0.306817541307962 0  0.29545549855474 0  0.28409182059159 0  0.272727465056575 0  0.261363603598935 0  0.227272773001575 0  0.204545532031739 0  0.181818273898856 0  0.159091002011685 0  0.136363719778514 0  0.113636430608396 0  0.0909091379094149 0  0.0681818450906376 0  0.045454555560329 0  0.0227272727272757 0  2.77555756156289e-017 0 
- 0.00034374 12 0.25034374 10 0.50034374 10 0.62534374 10 0.75034374 10 1.00034374 12
-8 8.022e-005 1.00008022
-7 0 0  6 27 6  1 6.03815022416017e-020  1 0.371280706212315  0.999999999999997 0.742561831507869  1 1.1138430898223  0.999999999999998 1.48512389207806  1 1.856404284172  1 2.32050628516103  1 2.41332650324476  1 2.50614661646899  1 2.59896670208833  1 2.69178683735733  1 2.83101723061722  1 2.87742740824387  1 2.92383778346266  1 2.97024850732583  1 3.01665973088547  1 3.1094834795021  1 3.15589754779991  1 3.20230661418854  1 3.24871311755242  1 3.29512144693572  1 3.5271654968527  1 3.71281403192373  1 3.89844669300604  1 4.08409149032159  0.999999999999999 4.26973089726617  1 4.45537137 
- 8.022e-005 7 0.50008022 5 0.62508022 5 0.68758022 5 0.75008022 5 1.00008022 7
-8 8.02200000000752e-005 1.00008022
-7 0 0  11 32 4  8.0219999999992e-005 10.70174454  0.0455347532495493 10.7017445399998  0.0909892379257091 10.7017445400011  0.136444043423401 10.7017445399972  0.181898128233998 10.7017445400051  0.227353210696058 10.701744539993  0.272807250815849 10.701744540007  0.318262205776428 10.7017445399946  0.363716521997788 10.7017445400031  0.409171141471925 10.7017445399987  0.454625674666092 10.7017445400004  0.522807495880055 10.7017445399998  0.545534770750323 10.7017445400012  0.568262045648732 10.7017445399968  0.590989319783437 10.7017445400059  0.613716592668486 10.701744539992  0.636443864135146 10.7017445400082  0.659171134316099 10.7017445399938  0.68189840366312 10.7017445400034  0.70462567293118 10.7017445399988  0.727352943189844 10.7017445400002  0.772807488443974 10.70174454  0.795534771748931 10.7017445399994  0.818262008838073 10.7017445400017  0.840989335325769 10.7017445399969  0.863716599118179 10.701744540004  0.886443819366105 10.7017445399962  0.909171129974072 10.7017445400027  0.931898452840699 10.7017445399986  0.95462562401606 10.7017445400006  0.977352951814984 10.7017445399999  1.00008022 10.70174454 
- 8.022e-005 12 0.50008022 10 0.75008022 10 1.00008022 12
-8 5.799e-005 1.00005799
-7 0 0  11 122 13  1.00005799 7.70509075  0.997217074881086 7.70509074999979  0.994376178445369 7.70509075000075  0.9915352702558 7.70509074999842  0.988694355262816 7.70509075000218  0.985853442634354 7.70509074999795  0.983012534285616 7.70509075000124  0.980171626068354 7.70509074999964  0.977330714609377 7.70509074999994  0.97448980275493 7.7050907500001  0.971648896608209 7.70509074999996  0.965967077638999 7.70509075000005  0.963126167942884 7.70509074999974  0.960285259053737 7.70509075000059  0.957444351152589 7.70509074999916  0.954603443857863 7.70509075000079  0.951762536485576 7.70509074999961  0.948921628330512 7.70509074999995  0.946080718923401 7.70509075000022  0.94323980831025 7.70509074999988  0.940398897315142 7.70509074999999  0.931876168808581 7.70509075000015  0.926194347978234 7.70509074999914  0.920512547355076 7.7050907500022  0.91483071359887 7.70509074999624  0.909148989574192 7.70509075000476  0.903466910037785 7.70509074999536  0.897785432196583 7.70509075000348  0.892103369959743 7.70509074999805  0.886421630205589 7.70509075000078  0.880739805039836 7.70509074999982  0.869376169955189 7.70509075000018  0.863694350934466 7.70509074999919  0.858012534823471 7.7050907500021  0.852330719842102 7.70509074999629  0.846648902824976 7.70509075000478  0.840967082223676 7.70509074999537  0.835285259328792 7.70509075000346  0.829603437710765 7.70509074999803  0.823921620880513 7.70509075000076  0.818239808169441 7.70509074999989  0.80971707915813 7.70509074999995  0.806876168919211 7.70509075000066  0.804035258556397 7.70509074999798  0.80119434841137 7.70509075000396  0.798353438721378 7.70509074999441  0.795512529622089 7.70509075000585  0.792671621143483 7.70509074999547  0.789830713214463 7.70509075000252  0.786989805658831 7.70509074999911  0.784148898197962 7.7050907500001  0.778467082701118 7.70509075000007  0.775626173858273 7.70509074999932  0.772785272737421 7.70509075000188  0.769944351445433 7.70509074999669  0.767103424850096 7.70509075000421  0.764262517927244 7.70509074999592  0.761421626699285 7.70509075000304  0.758580723283424 7.70509074999831  0.755739800653285 7.70509075000065  0.752898897502226 7.70509074999988  0.738694353245935 7.70509075000035  0.727330713384973 7.70509074999863  0.715967073767339 7.70509075000329  0.704603436537757 7.70509074999437  0.693239801950648 7.70509075000728  0.681876169022619 7.70509074999276  0.670512536201647 7.70509075000552  0.659148902016474 7.70509074999686  0.647785265745616 7.70509075000122  0.636421628070163 7.70509074999977  0.619376173571364 7.70509075000004  0.61369435519401 7.70509075000009  0.608012536805876 7.70509074999966  0.602330718539619 7.70509075000059  0.596648900461624 7.70509074999927  0.590967082569863 7.70509075000074  0.585285264796486 7.70509074999939  0.579603447005392 7.70509075000036  0.573921628993951 7.7050907499999  0.56823981049213 7.70509074999996  0.556876171833421 7.70509075000015  0.551194381716387 7.70509074999911  0.545512338750805 7.70509075000225  0.539831124223782 7.70509074999616  0.534148472830471 7.70509075000481  0.528467367864203 7.70509074999542  0.522785127255278 7.70509075000329  0.517103476029558 7.70509074999829  0.511421614850782 7.70509075000058  0.505739801558947 7.70509074999992  0.47733070944412 7.70509075000015  0.454603434591061 7.70509074999955  0.431876168855809 7.70509075000097  0.409148892940961 7.70509074999843  0.386421616401416 7.70509075000201  0.363694353094242 7.70509074999798  0.340967094735868 7.70509075000156  0.318239819552361 7.70509074999908  0.295512529039267 7.7050907500004  0.272785261740627 7.70509074999987  0.238694352586977 7.70509075000011  0.227330716242959 7.70509074999939  0.21596707993229 7.70509075000151  0.204603443647319 7.70509074999752  0.193239807381297 7.70509075000298  0.181876171126139 7.70509074999733  0.170512534875328 7.70509075000177  0.159148898620866 7.70509074999913  0.147785262355887 7.70509075000031  0.136421626072828 7.70509074999993  0.113694353456098 7.70509075000008  0.10233072016492 7.70509074999968  0.0909670720224964 7.70509075000076  0.0796034515749901 7.70509074999883  0.0682398130431228 7.70509075000127  0.056876160258253 7.70509074999905  0.045512533629319 7.70509075000046  0.0341489129280815 7.70509074999987  0.0227852491190353 7.70509075000002  0.0114216268927452 7.70509075  5.79900000000008e-005 7.70509075 
- 5.799e-005 12 0.03130799 10 0.06255799 10 0.12505799 10 0.18755799 10 0.21880799 10 0.25005799 10 0.37505799 10 0.43755799 10 0.50005799 10 0.75005799 10 0.87505799 10 1.00005799 12
-8 5.79899999999522e-005 1.00005799
-7 0 0  10 29 4  0 1.11022302462516e-016  0 0.111373720469612  0 0.222854868712989  0 0.333888555968671  0 0.4459789374464  0 0.55647954248498  0 0.668581391024805  0 0.779586510305519  0 0.8910940437051  0 1.00245843435129  0 1.22522728159448  0 1.33661164131742  0 1.44799594935506  0 1.55938021792027  0 1.67076445922691  0 1.78214868548745  0 1.89353290891576  0 2.00491714172469  0 2.11630139612762  0 2.45045426075794  0 2.67322283589484  0 2.89599140957459  0 3.11875998162545  0 3.34152855187189  0 3.56429712014344  0 3.78706568626444  0 4.00983425006341  0 4.2326028113662  0 4.45537137 
- 5.799e-005 11 0.25005799 9 0.50005799 9 1.00005799 11
-8 4.95e-005 10.70174454
-7 0 0  10 11 2  1.00005543 3.42499999996804e-005  1.00005543000002 0.714522233356203  1.00005542999994 1.42901016302895  1.00005543000014 2.14349831566587  1.0000554299998 2.85798600977847  1.00005543000022 3.57247429987626  1.00005542999982 4.28696207735667  1.0000554300001 5.00145013120096  1.00005542999996 5.71593811405583  1.00005543000001 6.43042608754641  1.00005543 7.14491407 
- 4.95e-005 11 10.70174454 11
-8 4.94999999993695e-005 10.70174454
-7 0 0  6 7 2  1.00008022 10.70174454  1.00008022 8.91812870165755  1.00008022 7.1345128528121  1.00008022 5.35089703785272  1.00008022 3.56728116589766  1.00008022 1.7836653417979  1.00008022 4.94999999993695e-005 
- 4.95e-005 7 10.70174454 7
-8 8.022e-005 1.00008022
-7 0 0  8 44 7  0 0  0.0312500101853637 0  0.0625000112215282 0  0.0937500063864762 0  0.124999998958206 0  0.156249992214695 0  0.187499989433941 0  0.218749993893925 0  0.281250023851357 0  0.312500188873368 0  0.343749911602939 0  0.374999927826731 0  0.406250075377093 0  0.437499971280698 0  0.468749997131025 0  0.531249998230702 0  0.562499966519099 0  0.593749990653394 0  0.625000041964788 0  0.656250050113951 0  0.687499978196004 0  0.718749897846216 0  0.757812605969801 0  0.765625016513974 0  0.773438369338462 0  0.781249316087704 0  0.789063797699258 0  0.796875769956424 0  0.804688202759971 0  0.820312969096119 0  0.828125370737943 0  0.835937789019035 0  0.843750222104974 0  0.851562668161247 0  0.859375125353431 0  0.867187591847046 0  0.890625013728808 0  0.906249985513582 0  0.921874975494871 0  0.937499978005513 0  0.9531249873785 0  0.968749997946605 0  0.984375004042828 0  1 0 
- 8.022e-005 9 0.25008022 7 0.50008022 7 0.75008022 7 0.81258022 7 0.87508022 7 1.00008022 9
-8 8.02200000000752e-005 1.00008022
-7 0 0  10 11 2  1.00008022 4.95e-005  0.900080220691835 4.95000000000006e-005  0.800080168728752 4.94999999999976e-005  0.70008039264424 4.95000000000046e-005  0.600079947282075 4.94999999999947e-005  0.500080493829049 4.95000000000037e-005  0.400080043761758 4.9499999999999e-005  0.300080304672447 4.94999999999994e-005  0.200080203789997 4.95000000000007e-005  0.100080220544759 4.94999999999997e-005  8.02200000000752e-005 4.95e-005 
- 8.022e-005 11 1.00008022 11
-8 0.00020743 46.24578153
-7 0 0  3 4 2  8.022e-005 10.70174454  8.022e-005 7.13451285852981  8.022e-005 3.56728117568025  8.022e-005 4.9500000001446e-005 
- 0.00020743 4 46.24578153 4
-8 0.000207430000003228 46.24578153
-7 0 0  7 8 2  1.00034374 46.24578153  1.00034374 39.639270948038  1.00034374 33.0327603445863  1.00034373999999 26.4262498368236  1.00034374000002 19.8197391076333  1.00034373999999 13.2132286504086  1.00034374 6.60671800963317  1.00034374 0.000207429999999675 
- 0.00020743 8 46.24578153 8
-8 0.00034374 1.00034374
-7 0 0  10 11 2  0 0  0.0999999500881446 0  0.199999293786438 0  0.300010524487044 0  0.399967295082615 0  0.50005609751992 0  0.599943652496074 0  0.700027448184805 0  0.799994284326663 0  0.900000009864911 0  1 0 
- 0.00034374 11 1.00034374 11
-8 0.000343739999999926 1.00034374
-7 0 0  10 38 5  1.00034374 0.00020743  0.975343738990379 0.000207430000000003  0.950343816191408 0.00020742999999999  0.925343698612731 0.000207430000000019  0.900343641606223 0.000207429999999978  0.875344082777388 0.000207430000000017  0.85034346329948 0.000207429999999992  0.825343838084894 0.000207430000000001  0.800343756061513 0.000207430000000001  0.775343748436166 0.000207429999999999  0.725343732432926 0.000207430000000002  0.700343761249878 0.00020742999999999  0.675343590727321 0.000207430000000023  0.65034388447147 0.000207429999999965  0.625343791333255 0.000207430000000038  0.600343626080944 0.00020742999999997  0.575343832129243 0.000207430000000017  0.550343713900046 0.000207429999999993  0.525343761342508 0.000207430000000001  0.475343755049168 0.00020743  0.450343742879787 0.000207429999999999  0.425343740444252 0.000207430000000002  0.400343716854987 0.00020743  0.375343727721199 0.000207429999999996  0.350343772492064 0.000207430000000006  0.325343765981833 0.000207429999999996  0.300343698635455 0.000207430000000003  0.27534374164966 0.000207429999999998  0.225343727634588 0.000207430000000004  0.200343744945587 0.00020742999999998  0.175343749075031 0.000207430000000049  0.150343745749393 0.000207429999999919  0.125343742413284 0.000207430000000097  0.100343738449423 0.000207429999999914  0.0753437321347001 0.000207430000000057  0.0503437293318024 0.000207429999999975  0.0253437389249381 0.000207430000000006  0.000343739999999981 0.00020743 
- 0.00034374 11 0.25034374 9 0.50034374 9 0.75034374 9 1.00034374 11
-8 0.00020743 46.24578153
-7 0 0  10 11 2  0.00034374 46.24578153  0.000343740000000003 41.621224133932  0.000343739999999986 36.9966666710609  0.000343740000000031 32.3721095108846  0.000343739999999951 27.7475515514332  0.000343740000000058 23.1229949700143  0.000343739999999949 18.4984366446146  0.000343740000000034 13.8738799009271  0.000343739999999984 9.24932216388076  0.000343740000000005 4.62476483902525  0.00034374 0.000207430000006391 
- 0.00020743 11 46.24578153 11
-8 0.000207430000003228 46.24578153
-7 0 0  2 3 2  1.00005799 7.70509074925026  1.00005799 3.85256325005715  1.00005799 3.57407497348916e-005 
- 0.00020743 3 46.24578153 3
-8 5.799e-005 1.00005799
-7 0 0  10 47 6  0 1  0 0.993749999999998  0 0.987501010538419  0 0.981250143599094  0 0.974999362400445  0 0.968749735857093  0 0.962500446429699  0 0.956250318308527  0 0.949999632876425  0 0.943749998396373  0 0.93125008334292  0 0.925000050695985  0 0.918750017114019  0 0.91250001067777  0 0.906250027878066  0 0.900000048129568  0 0.893750048284947  0 0.887500017149191  0 0.881249969993405  0 0.862499949220533  0 0.849999959809184  0 0.837499981048856  0 0.825000002638047  0 0.812500017758865  0 0.80000002307882  0 0.787500018748567  0 0.775000008404132  0 0.762499999165189  0 0.725000006577913  0 0.700000418900636  0 0.674996124150154  0 0.650007788610574  0 0.624991566918328  0 0.600005584507136  0 0.574997782778467  0 0.550000430985358  0 0.524999995742756  0 0.449999999533816  0 0.400000001137488  0 0.350000001978168  0 0.300000002216581  0 0.250000002013479  0 0.200000001529503  0 0.150000000925499  0 0.100000000362059  0 0.0500000000000016  0 5.55111512312578e-017 
- 5.799e-005 11 0.06255799 9 0.12505799 9 0.25005799 9 0.50005799 9 1.00005799 11
-8 5.79899999999522e-005 1.00005799
-7 0 0  10 20 3  1.00005799 3.574e-005  0.950057949338991 3.57400000000003e-005  0.900058111585238 3.57399999999988e-005  0.850057771364433 3.57400000000023e-005  0.80005832105473 3.5739999999997e-005  0.750057570554602 3.57400000000029e-005  0.700058365556268 3.57399999999977e-005  0.650057786149051 3.57400000000014e-005  0.600058042013366 3.57399999999994e-005  0.550057990701193 3.57400000000002e-005  0.450057990273045 3.57399999999998e-005  0.400058015295386 3.57400000000007e-005  0.350057958980397 3.57399999999983e-005  0.300057980805575 3.57400000000025e-005  0.250058019032638 3.57399999999973e-005  0.200057994119238 3.57400000000022e-005  0.150057968731338 3.57399999999987e-005  0.1000580107817 3.57400000000006e-005  0.050057986369708 3.57399999999998e-005  5.79899999998967e-005 3.574e-005 
- 5.799e-005 11 0.50005799 9 1.00005799 11
-8 0.48200245 12.07364253
-7 0 0  10 11 2  1.90484754 1  1.71436278645836 1.00000000000001  1.52387809678395 0.999999999999953  1.33339312691666 1.00000000000011  1.1429087712801 0.999999999999815  0.9524235362114 1.00000000000022  0.76193917455565 0.999999999999816  0.571454204771969 1.00000000000011  0.380969522292609 0.999999999999951  0.190484755371325 1.00000000000001  0 1 
- 0.48200245 11 12.07364253 11
-8 0.48200245 12.07364253
-7 0 0  5 6 2  1 11.59164008  1 9.27331206634654  0.999999999999999 6.95498405939573  1 4.63665603052536  1 2.31832801717221  1 -5.55111512593258e-017 
- 0.48200245 6 12.07364253 6
-8 0.19391945 2.76255209
-7 0 0  10 11 2  0 11.22612399  0 10.1035115891638  0 8.98089927643656  0 7.85828657713474  0 6.73567473366163  0 5.6130616584005  0 4.49044981462292  0 3.36783710980871  0 2.24522481425632  0 1.12261239861635  0 0 
- 0.19391945 11 2.76255209 11
-8 0.19391945 2.76255209
-7 0 0  9 18 3  1 2.56863264  1.00000000000001 2.42593082675304  0.999999999999979 2.28322903912503  1.00000000000004 2.14052714986383  0.999999999999943 1.99782545691053  1.00000000000005 1.85512352331422  0.999999999999968 1.71242178701159  1.00000000000001 1.56971994388737  0.999999999999999 1.42701813579435  0.999999999999999 1.1416145088419  1.00000000000001 0.998912695336978  0.99999999999998 0.856210881803475  1.00000000000003 0.713509068241145  0.999999999999965 0.570807254650344  1.00000000000003 0.428105441030695  0.999999999999988 0.285403627382499  1 0.142701813705574  1 0 
- 0.19391945 10 1.47823577 8 2.76255209 10
-8 0 1
-7 0 0  3 4 2  0 3.67726025  0 2.45150682563609  0 1.22575343236394  0 0 
- 0 4 1 4
-8 0 1
-7 0 0  5 6 2  0 4.05709804  0.200000001799805 4.05709804  0.40000000064645 4.05709804  0.599999999198855 4.05709804  0.799999997982635 4.05709804  1 4.05709804 
- 0 6 1 6
-8 0 1
-7 0 0  11 12 2  -1.11022302462516e-016 0  0.090909090331084 0  0.181818180896727 0  0.272727273142096 0  0.363636360063309 0  0.454545460830504 0  0.545454539117348 0  0.636363640067172 0  0.727272726913188 0  0.818181819206672 0  0.909090909737503 0  1 0 
- 0 12 1 12
-8 0 1
-7 0 0  9 10 2  0 0  0 0.111111110404643  0 0.222222221611554  0 0.333333331798037  0 0.444444447205093  0 0.555555552752463  0 0.666666668320041  0 0.777777778483341  0 0.888888889679183  0 1 
- 0 10 1 10
-8 0 1
-7 0 0  1 2 2  3.00864606 0  3.00864606 1 
- 0 2 1 2
-8 0 1
-7 0 0  1 2 2  0 0  0 1 
- 0 2 1 2
-8 0 3.00864606
-7 0 0  10 11 2  3.00864606 1  2.70778145923607 1  2.40691686155656 0.99999999999999  2.10605224734983 1.00000000000001  1.8051876212115 0.999999999999987  1.50432309089857 1.00000000000001  1.20345833399492 0.999999999999985  0.90259387400944 1.00000000000002  0.601729187608688 0.999999999999986  0.300864611528041 1.00000000000001  -4.4617441654307e-016 0.999999999999999 
- 0 11 3.00864606 11
-8 0 3.00864606
-7 0 0  5 6 2  -9.70839405195408e-017 1  0.260699294310712 1  0.521398585483448 0.999999999999999  0.782097895072832 1  1.04279718572186 1  1.30349648 1 
- 0 6 3.00864606 6
-8 0 1
-7 0 0  1 2 2  0 1  0 0 
- 0 2 1 2
-8 0 1
-7 0 0  1 2 2  1.97290517 0  0 0 
- 0 2 1 2
-8 0 1
-7 0 0  1 2 2  1.30349648 0  1.30349648 1 
- 0 2 1 2
-8 0 1
-7 0 0  1 2 2  0 0  0 1 
- 0 2 1 2
-8 0 1
-7 0 0  1 2 2  0 1  0 0 
- 0 2 1 2
-8 0 1
-7 0 0  1 2 2  1.30349672 1  1.30349672 0 
- 0 2 1 2
-8 0.5 1
-7 0 0  10 11 2  0.99985324 1.31362197  0.99985324000001 1.47868650908338  0.977637803292952 1.65124268601173  0.929801214752552 1.8268282776871  0.854099237851703 1.99922948122372  0.750465218529965 2.16099259904186  0.622153941248319 2.30397333870479  0.476148132824211 2.42286529078029  0.319650129502703 2.51574693988732  0.159246915218279 2.58312625311809  0.000146760000000024 2.62709718 
- 0.5 11 1 11
-7 0 0  5 6 2  0.651748238245532 0  0.548024547120161 0  0.433715645341778 0  0.306606043213288 0  0.163810510482119 0  0 0 
- 0.5 6 1 6
-8 0 0.5
-7 0 0  10 11 2  0.000146760000000024 0.000146759999999913  0.159246915430953 0.0441176869407254  0.319650120426599 0.111496992869133  0.476148153828738 0.204378676287597  0.622153909436436 0.323270540837198  0.750465246512743 0.466251423768605  0.854099220363847 0.628014379625326  0.929801220401464 0.800415710055775  0.97763780125469 0.97600123349003  0.999853240000015 1.14855743091663  0.99985324 1.31362197 
- 0 11 0.5 11
-7 0 0  5 6 2  1.30349648 0  1.13968596903557 0  0.996890429415642 0  0.869780833806151 0  0.755471929370902 0  0.651748238245532 0 
- 0 6 0.5 6
-8 0 1
-7 0 0  4 5 2  0.00014676 2.62709718  0.00014676 1.97035957613165  0.00014676 1.31362195250096  0.00014676 0.656884363868342  0.00014676 0.000146760000000024 
- 0 5 1 5
-8 0 1
-7 0 0  3 4 2  0.00014676 0.000146760000000246  0.00014676 0.875796901824028  0.00014676 1.75144703817597  0.00014676 2.62709718 
- 0 4 1 4
-8 0 0.5
-7 0 0  10 11 2  0.000146760000000024 0.000146759999999968  0.159246915222108 0.0441176868830037  0.319650129459034 0.1114969988117  0.476148133038802 0.204378655949482  0.622153940649458 0.323270584316883  0.750465219360645 0.466251367063505  0.854099236780812 0.62801443240254  0.9298012152712 0.800415678988031  0.977637802879177 0.976001247349965  0.999853240000002 1.14855743098519  0.99985324 1.31362197 
- 0 11 0.5 11
-7 0 0  5 6 2  1.30349672 0  1.13968617949923 0  0.996890613173178 0  0.869780995230209 0  0.755472069793607 0  0.651748359641201 0 
- 0 6 0.5 6
-8 0.5 1
-7 0 0  10 11 2  0.99985324 1.31362197  0.999853240000011 1.47868650900993  0.97763780160512 1.65124269714955  0.929801221813122 1.8268282434144  0.854099220585076 1.9992295398394  0.750465245081546 2.16099253701641  0.622153911743598 2.30397338406251  0.476148153502901 2.42286526950834  0.319650120694749 2.51574694591521  0.159246915471409 2.58312625304813  0.000146760000000024 2.62709718 
- 0.5 11 1 11
-7 0 0  5 6 2  0.651748359641201 0  0.548024649491869 0  0.433715725017794 0  0.306606105319351 0  0.163810540701904 0  0 0 
- 0.5 6 1 6
-8 0 3.00408138
-7 0 0  8 9 2  3.00408138 1  2.62857120902943 1  2.25306103566516 0.999999999999994  1.87755084659461 1.00000000000001  1.50204071660554 0.999999999999977  1.12653049328261 1.00000000000002  0.751020370098095 0.999999999999983  0.375510169180209 1.00000000000001  1.11448944103616e-016 1 
- 0 9 3.00408138 9
-8 0 3.00408138
-7 0 0  5 6 2  -2.07823552837653e-016 1  0.260699347638647 1  0.521398688142469 1  0.782098032357405 1  1.04279737242475 1  1.30349672 1 
- 0 6 3.00408138 6
-8 0 1
-7 0 0  1 2 2  3.00408138 0  3.00408138 1 
- 0 2 1 2
-8 0 1
-7 0 0  1 2 2  0 1  1.97290517 1 
- 0 2 1 2
-8 0 1
-1 1.97290517 0 0 1 
-8 0 55.31688457
-7 0 0  8 9 2  0 55.09513178  0 48.2082403044823  0 41.321349100233  0 34.4344569348827  0 27.5475663622202  0 20.6606741799412  0 13.7737830203081  0 6.88689147792451  0 -1.60204627225624e-015 
- 0 9 55.31688457 9
-8 0 55.31688457
-7 0 0  11 12 2  1 55.31688457  1.00000000000003 50.2880768800848  0.999999999999894 45.259269690319  1.00000000000025 40.2304600882515  0.999999999999559 35.2016564626053  1.00000000000057 30.1728430038668  0.999999999999427 25.1440410564378  1.00000000000044 20.1152293276968  0.999999999999748 15.0864235798192  1.0000000000001 10.0576152990077  0.999999999999975 5.0288076929403  1 0 
- 0 12 55.31688457 12
-8 0 1
-7 0 0  1 2 2  0 0  1 0 
- 0 2 1 2
-8 0 1
-7 0 0  11 152 16  9.03616111 0.33998394  9.03492694683461 0.337881579514934  9.03365802837837 0.335791165727328  9.03235558427816 0.33371345814961  9.03102084419046 0.331649216293567  9.02965503775069 0.329599199672078  9.02825939463153 0.327564167796651  9.02683514445173 0.325544880180061  9.02538351689344 0.323542096334256  9.02390574157916 0.32155657577151  9.02240304817549 0.319589078004088  9.01935028447266 0.315691647084252  9.01779998322769 0.313761456033108  9.01622904544826 0.311852840815746  9.0146300401287 0.30995689339802  9.01302674702583 0.308099544821558  9.01138111725351 0.306237709970532  9.00974022743682 0.304423324895972  9.00807225716937 0.30262025704346  9.00639014678705 0.300842337922438  9.00469097466729 0.299085693157087  9.0012593609245 0.295614679380043  8.99952691475417 0.293900305285298  8.99777791990779 0.292206552033917  8.99601246699389 0.290532907676096  8.99423064665221 0.288878860260763  8.99243254947354 0.287243897838932  8.99061826610716 0.285627508458856  8.98878788714811 0.284029180171739  8.98694150323062 0.282448401026259  8.98507920496701 0.280884659072789  8.98132296099073 0.277790225648909  8.97942910424586 0.27625956609204  8.97751937618067 0.27474487027359  8.97559357205895 0.273245520291675  8.97365262978249 0.271761308099021  8.97169787377269 0.270292164298189  8.96973016625746 0.268837853707068  8.9677498784344 0.267397965010415  8.96575763232713 0.265972176858122  8.96375480234027 0.26456043777009  8.95972880519215 0.261764266721789  8.95770576477109 0.260379877557254  8.95567327145518 0.259008863132638  8.95363239261708 0.25765104559474  8.95158389153097 0.256306155703149  8.94952834457119 0.254973868042499  8.94746648437955 0.253653904195577  8.94539933744776 0.252346074023534  8.94332796449618 0.251050197663334  8.9412528545365 0.249765923414536  8.93709367257399 0.247219134898585  8.93500978002588 0.245956674544508  8.93292157205797 0.244704645341821  8.9308290348222 0.243462544538886  8.92873215445977 0.242229869382316  8.92663091713178 0.241006117121493  8.92452530896977 0.239790785002269  8.92241531614011 0.238583370274144  8.92030092477671 0.237383370183581  8.91818212103724 0.236190281979041  8.91393566109468 0.233816923836932  8.91180807184306 0.23263676723575  8.90967567767313 0.231461899495384  8.90753958385483 0.23029371224334  8.90539856131531 0.229129645621261  8.90325241064379 0.22796888274919  8.90110235455174 0.226813014175672  8.89894888887878 0.225662399708068  8.89679138372977 0.224515493599967  8.89463080264681 0.22337344762677  8.89030358641594 0.221098282614444  8.88813698567773 0.219965221835827  8.88596767773869 0.218836686552217  8.88379594804272 0.21771268053065  8.88162208198972 0.216593207538956  8.87944636504922 0.215478271343872  8.87726908260193 0.214367875713271  8.87509052012049 0.213262024414139  8.8729109630006 0.212160721213962  8.87073069668931 0.211063969880048  8.86636931652507 0.20887957847939  8.86418829296388 0.207791959679875  8.86200674233862 0.206708808708625  8.85982447108231 0.205630016493715  8.85764128559194 0.204555473961956  8.85545699232165 0.203485072042111  8.85327139765241 0.202418701660555  8.8510843080413 0.201356253746017  8.84889552988117 0.200297619225347  8.84670486960842 0.199242689026603  8.8423193976641 0.197140019127858  8.84012462908126 0.196092338739976  8.83792745140638 0.19504796213631  8.83572788151591 0.194007059936877  8.83352578297644 0.192969599604893  8.83132079788812 0.191935254914506  8.82911255073181 0.190903676419803  8.82690091898915 0.189874849932507  8.82468616382446 0.188849269982827  8.82246871555066 0.18782765527041  8.81802809933618 0.185792210900773  8.81580499580823 0.184778466628268  8.81357920574179 0.18376899289593  8.81135083801852 0.182764082331529  8.80912000152282 0.181764027563016  8.80688680513355 0.180769121218078  8.8046513577373 0.17977965592469  8.80241376821259 0.178795924310582  8.80017414544425 0.177818219003645  8.79793259831359 0.176846832631698  8.79344587309266 0.174917283013436  8.79120060344281 0.173959109108919  8.78895384734474 0.17300786502235  8.78670558554548 0.172063828464923  8.78445556686399 0.171127250150222  8.78220346162242 0.170198371652604  8.7799489603727 0.169277436904338  8.7776918182414 0.168364697351617  8.7754318445056 0.167460410747358  8.77316883777939 0.166564833600841  8.76863609523786 0.164791580937565  8.76636641509845 0.163913920027999  8.76409309229951 0.16304543742245  8.76181593238018 0.162186414979667  8.75953474544838 0.161337123546322  8.75724927975361 0.160497801368368  8.75495921803574 0.159668669898028  8.75266423089633 0.158849965974042  8.7503640816641 0.158041969374482  8.74805877701541 0.15724500471952  8.74343873852894 0.155673788720393  8.74112389345964 0.154899519652911  8.73880431912069 0.154136879659932  8.73648011206121 0.153386158883922  8.7341513688443 0.152647647467216  8.73181818601278 0.15192163555239  8.72948066013258 0.151208413281693  8.72713888774862 0.150508270797714  8.7247929654211 0.149821498242772  8.72244298970142 0.149148385759344  8.71538119203165 0.147170898950848  8.7106575027719 0.14590837580232  8.70591875906338 0.144703974735531  8.70116573135895 0.143560016580505  8.69639919084295 0.142478822307231  8.69161990947351 0.141462713023594  8.68682865992383 0.140514009978199  8.68202621564693 0.139635034557232  8.67721335081804 0.138828108287318  8.67239084037618 0.138095552833399  8.66755946 0.13743969 
- 0 12 0.0625 10 0.125 10 0.1875 10 0.25 10 0.3125 10 0.375 10 0.4375 10 0.5 10 0.5625 10 0.625 10 0.6875 10 0.75 10 0.8125 10 0.875 10 1 12
-8 10.79509318 65.98696054
-7 0 0  11 12 2  1 1.77635684038426e-015  0.999999999999996 5.01744249005212  1.00000000000002 10.0348850219412  0.999999999999937 15.0523272149336  1.00000000000015 20.0697706774574  0.99999999999975 25.0872111241826  1.00000000000031 30.1046565240121  0.999999999999712 35.1220960631846  1.00000000000019 40.1395406170041  0.999999999999914 45.156982132875  1.00000000000002 50.1744248719555  1 55.19186736 
- 10.79509318 12 65.98696054 12
-8 10.79509318 65.98696054
-7 0 0  10 20 3  8.9364967910993e-017 1  0.126005186233783 1.00000000000001  0.252010372449022 0.999999999999944  0.378015558645665 1.00000000000013  0.504020744823829 0.999999999999807  0.630025930983324 1.00000000000021  0.756031117124381 0.999999999999821  0.882036303246788 1.00000000000011  1.00804148935069 0.999999999999952  1.13404667543601 1.00000000000001  1.38605704756957 0.999999999999996  1.51206223898351 1  1.63806739182739 1.00000000000001  1.76407267591601 0.999999999999966  1.89007768295249 1.00000000000005  2.01608308776699 0.999999999999944  2.14208809242235 1.00000000000004  2.26809337687042 0.999999999999983  2.39409853381664 1  2.52010372 1 
- 10.79509318 11 38.39102686 9 65.98696054 11
-8 0 1
-7 0 0  8 51 8  0 1  0 0.98437500077415  0 0.968750001386618  0 0.953125001865184  0 0.937500002220123  0 0.921875002444383  0 0.906250002513336  0 0.89062500238504  0 0.859375001615035  0 0.843750000087235  0 0.828125003788859  0 0.812499993343556  0 0.796875000511621  0 0.78125000119448  0 0.765625000025975  0 0.734374997662308  0 0.718749996702289  0 0.70312499292573  0 0.687499995659129  0 0.671874999688806  0 0.656249998477309  0 0.640624998915187  0 0.609374999128773  0 0.593749999582356  0 0.578124999385266  0 0.562499999730399  0 0.546875001384613  0 0.53125000364954  0 0.515625004897823  0 0.48437500447526  0 0.468750003241582  0 0.453124999371074  0 0.437499998668618  0 0.421874999525713  0 0.406249998585848  0 0.390624998474694  0 0.359374999855155  0 0.343750000928147  0 0.328125002434705  0 0.312500000809035  0 0.296874999221877  0 0.281250000338328  0 0.265624999947559  0 0.218749999907059  0 0.187500000011462  0 0.156250000064615  0 0.125000000035463  0 0.093749999977081  0 0.0624999999590517  0 0.0312500000000003  0 0 
- 0 9 0.125 7 0.25 7 0.375 7 0.5 7 0.625 7 0.75 7 1 9
-8 0 1
-7 0 0  11 312 32  8.66755946 0.13743969  8.61853518215067 0.129698935720928  8.56946229401492 0.122238411947448  8.52034335934806 0.115054544174876  8.47118094193558 0.108143757898504  8.42197760550044 0.101502478613629  8.37273591386659 0.0951271318156089  8.32345843072789 0.089014142999637  8.27414771991297 0.0831599376611638  8.22480634513848 0.0775609412953571  8.17543687019457 0.0722135793976128  8.10134435315466 0.0645646264959822  8.07664046359624 0.0620769905554133  8.05193051070067 0.0596509228348969  8.02721481500486 0.0572859765279116  8.00249369705338 0.05498170482778  7.97776747738332 0.052737660928109  7.95303647653398 0.0505533980220963  7.92830101505027 0.0484284693034059  7.9035614134661 0.0463624279652821  7.87881799232649 0.0443548272012637  7.82932415201165 0.040455613208204  7.80457362583695 0.0385639835805082  7.77982032039279 0.0367299620936069  7.75506374559997 0.0349529777131492  7.7303044192413 0.0332326138635983  7.70554329934974 0.0315685214332203  7.68078074126586 0.0299602589535394  7.65601627511752 0.0284072584849918  7.63124937714338 0.0269089438350674  7.60648028720193 0.0254648558328683  7.55693731787212 0.0226840791240721  7.53216343935775 0.0213473905517051  7.50738704740746 0.0200638875069831  7.48260802244817 0.0188330557355289  7.45782624487869 0.017654380982946  7.43304159514465 0.0165273489948748  7.40825395362883 0.0154514455168993  7.38346320078213 0.0144261562946708  7.35866921699635 0.013450967073778  7.33387188270349 0.0125253635998547  7.28427027392662 0.0107722996371657  7.25946584229729 0.00994481813623105  7.23465843709074 0.00916597625075362  7.20984671297901 0.00843509583403856  7.1850306106052 0.0077516706827301  7.16021108268552 0.00711532991986633  7.13538895887125 0.00652568621048924  7.1105644707298 0.00598227225237719  7.08573778258867 0.00548461175204881  7.06090969783721 0.00503231386428646  7.01125137106765 0.00421753181763606  6.98642114980257 0.00385505043325395  6.96159032776934 0.0035370415433001  6.93675936209217 0.00326306800326288  6.91192870987123 0.00303269266862452  6.8870988282442 0.00284547839487721  6.86227017430151 0.00270098803749966  6.83744320518214 0.00259878445198562  6.81261837798452 0.0025384304938152  6.78779614983417 0.00251948901847837  6.73815780585111 0.00256355674444086  6.71334170821037 0.00262656363909578  6.68852941245123 0.00273007212637102  6.66372039309672 0.00287376967424943  6.63891396059261 0.00305736455748094  6.6141096711857 0.00328053388276339  6.58930729573441 0.0035429275347171  6.5645065859003 0.00384419783826879  6.53970707555243 0.00418402473271604  6.51490815590033 0.00456210625310911  6.4653111685814 0.0053940619754165  6.44051297054015 0.00584793832339657  6.41571493522591 0.00633940380545345  6.39091641750304 0.00686810757557636  6.36611694351193 0.00743371266300945  6.3413162919873 0.00803590255546968  6.31651425653449 0.00867436194715742  6.29171037240128 0.00934875460172566  6.2669038908271 0.0100587212802103  6.24209428451718 0.010803920684167  6.19247085026106 0.0123643520438125  6.16765699058001 0.0131795814276479  6.14284152964275 0.014029569779829  6.11802500874047 0.0149140623646791  6.0932079691753 0.0158328044465375  6.068390952234 0.0167855412897272  6.04357449921958 0.0177720181585782  6.01875915142206 0.0187919803174282  5.99394545013906 0.0198451730305963  5.96913393666529 0.0209313415624216  5.9195163679264 0.023169120792037  5.89471018028559 0.0243207315203298  5.86990817505125 0.0255048083911938  5.8451071584477 0.0267210975126431  5.82031529250249 0.0279693424300097  5.79552451199923 0.0292492903464736  5.77073758542487 0.0305606860259811  5.74596366529187 0.0319032727928253  5.7211905298905 0.0332767987853741  5.69642370449429 0.0346810081454568  5.64689832844478 0.0375502853514302  5.62213997465414 0.0390153531540204  5.59738542892185 0.0405105956603977  5.57263416506523 0.0420357583747885  5.5478856569157 0.043590586801323  5.52313937828437 0.0451748264443016  5.49839480300411 0.0467882228077862  5.47365140489033 0.0484305213961047  5.44890865776865 0.0501014677133495  5.42416603546068 0.0518008072637758  5.37467998811701 0.0552557638393334  5.34993632214515 0.0570113661796158  5.32519376272457 0.0587949767013253  5.30044160835248 0.0606057208826049  5.27570712796769 0.0624450378947601  5.25094033635147 0.064309659499401  5.22619681582533 0.0662027501171159  5.20143814258614 0.0681217459930594  5.17668397062655 0.070067622288883  5.15192855819194 0.072039806699524  5.10241908273502 0.0760365802773439  5.07766488746715 0.0780611613863676  5.05291183005919 0.0801117506594152  5.02816050592171 0.0821881619402  5.00341151044199 0.0842902090728302  4.97866543904515 0.0864177059008247  4.9539228871069 0.0885704662683826  4.92918445005519 0.0907483040190877  4.9044507232735 0.0929510329969589  4.87972230217522 0.0951784670457792  4.83027726214171 0.0996823729730702  4.80556074701947 0.101958847453989  4.78084985183218 0.10425963271642  4.75614857312525 0.106584627874438  4.73145347269672 0.108933545649168  4.70676269590854 0.111306138449573  4.68207772952328 0.113702242456323  4.657398324523 0.116121650352922  4.63272158587581 0.118564088491961  4.60804886457263 0.121029389647747  4.55870868838015 0.126005246443998  4.53404135957629 0.128515805228666  4.50937618298597 0.13104877810551  4.48471255152663 0.133603948779951  4.46004985812261 0.13618110095787  4.43538749568954 0.138780018344421  4.41072485715051 0.14140048464563  4.38606133542505 0.144042283566719  4.36139632343215 0.14670519881348  4.33672921409337 0.149389014091398  4.28738958656254 0.15479801212076  4.26271715353838 0.157523198905202  4.23804272770677 0.160268915558003  4.21336693552091 0.163035004177821  4.18869040342988 0.165821306863156  4.16401375789008 0.168627665712816  4.13933762534741 0.171453922825148  4.11466263225984 0.17429992029904  4.08998940507429 0.177165500232881  4.06531857024564 0.180050504725418  4.01598293820308 0.185859047024988  3.99131802299306 0.188782586590739  3.96665737612823 0.191725225624196  3.94199969280281 0.19468683501124  3.91734797713457 0.197667221409498  3.89270233439784 0.200666234684827  3.86806122729651 0.203683749186963  3.84342684977288 0.206719583653756  3.81880277960034 0.209773536194322  3.79418408770645 0.212845531711352  3.74495912461069 0.219025286766964  3.72035265685194 0.22213304923521  3.69575155430975 0.225258557746599  3.67115516841287 0.228401673404179  3.64656285058772 0.231562257310283  3.62197395226457 0.234740170568422  3.59738782486798 0.237935274280538  3.57280381982969 0.241147429550265  3.54822128857418 0.244376497479774  3.52363958253156 0.247622339172228  3.47447652372599 0.254147292288343  3.44989523672914 0.257426406262537  3.42531275299563 0.260721988094972  3.40073287361414 0.264034071458989  3.37613963264693 0.267361923405547  3.35156758239363 0.270706770229077  3.32696128494509 0.274066348142933  3.30237490410673 0.277442644032774  3.27777707478153 0.280834327725259  3.25318081545703 0.284241790371337  3.20398695233589 0.291087872162041  3.17938966777631 0.294526503688348  3.15479268393614 0.297980637454518  3.13019665453501 0.301450185069361  3.10560223328984 0.304935058141884  3.08101007392245 0.308435168280857  3.05642083014741 0.311950427095181  3.03183515568801 0.315480746193846  3.00725370425913 0.319026037185575  2.98267712958207 0.322586211679376  2.93353504116653 0.329736150888782  2.90896936546226 0.333325888537969  2.88441123643586 0.33693056058685  2.8598550444943 0.340549032003965  2.83531491781953 0.344183466067607  2.810778877328 0.347831663362466  2.78624426035531 0.351492981312415  2.7617213389971 0.355168938812574  2.73719896538324 0.358857475356167  2.7126818195645 0.362559175374167  2.66365343813506 0.369987747533758  2.63914240820673 0.373714654046152  2.61463383493251 0.37745386569349  2.59012701417581 0.381205067178499  2.56562124180926 0.384967943203102  2.5411158136913 0.388742178470571  2.51661002569712 0.392527457682337  2.49210317368637 0.396323465541871  2.46759455353013 0.400129886750835  2.4430834610928 0.40394640601214  2.39405492339095 0.411599010043978  2.3695375915393 0.41543509876831  2.34501547123582 0.419280623297908  2.32049029011461 0.423135353112457  2.29596300675057 0.426999030884365  2.27143377421838 0.430871371204985  2.24690297307745 0.434752096596092  2.22237157235923 0.438640950093229  2.19784045232707 0.44253767163777  2.17330969764542 0.446441973436539  2.12425079179517 0.454265221339395  2.0997225318635 0.458184191304955  2.07519631804087 0.462110107180185  2.05067235977775 0.466042941400887  2.0261515088985 0.469982294606614  2.00163464769516 0.473927749812726  1.97712216302827 0.477879176766268  1.95261430943943 0.481836521809393  1.92811208295649 0.485799302118416  1.90361704637343 0.489766706847848  1.8546376845982 0.497713075671331  1.8301535529879 0.501691927724612  1.80567437193895 0.505676887606861  1.78119954273745 0.509668395506349  1.75672846666544 0.513666891609626  1.73226054501137 0.517672816106037  1.70779517905555 0.521686609181269  1.68333177008659 0.525708711024872  1.65886971938633 0.529739561823122  1.63440842824098 0.533779601764497  1.58548616762816 0.541878940308158  1.56102535955948 0.545938243541532  1.53656299075846 0.550007584074978  1.51210310102769 0.554087535189858  1.48763551750918 0.558178262363298  1.46317062104976 0.562280520809453  1.43870479304002 0.566394664069157  1.41422650407809 0.570520818705715  1.38975173000928 0.574659900459045  1.36527325618065 0.578812159691537  1.31631487652251 0.587144119061276  1.29183470307784 0.591323811517337  1.26735432287796 0.595517696398802  1.24287451278675 0.599726253360734  1.21839604966099 0.60394996205635  1.19391971036856 0.608189302141995  1.16944627176357 0.612444753269827  1.14497651071385 0.616716795096447  1.12051120407626 0.62100590727473  1.09605112871459 0.625312569459986  1.04714299426405 0.633961953152676  1.02269521877753 0.638304682881271  0.998251811646476 0.642665851924794  0.973825738927082 0.647046293055032  0.949384145799227 0.651445511637271  0.924988309294321 0.655865739987204  0.900569531474941 0.660305445113613  0.876176182960891 0.664766485440348  0.851783431822624 0.669248598751687  0.827398857486815 0.673752461772003  0.778641426457746 0.682804467234045  0.754268745020105 0.687352614760177  0.72990150538113 0.691923347066194  0.705539115261867 0.6965171041362  0.681180982384741 0.701134325955739  0.656826514470032 0.705775452507965  0.63247511924076 0.710440923779197  0.608126204417085 0.715131179752379  0.583779177721576 0.719846660413343  0.559433446875199 0.724587805745965  0.510743392324265 0.734122305724317  0.486398740856268 0.738915656825848  0.462056385368851 0.743735576174739  0.437707852871457 0.748582418586563  0.413363225728865 0.753456739478751  0.389020228507406 0.758358960415681  0.364677175635513 0.763289509516297  0.340339203919952 0.768248888839402  0.316004249210243 0.773237522387102  0.291674383920436 0.778255878945513  0.243026016494218 0.788352943671568  0.21870754501811 0.79343165216225  0.19439566127952 0.798540992633522  0.170091240779351 0.803681420937085  0.145795159017702 0.808853392926908  0.121508291495962 0.814057364453767  0.097231513713886 0.819293791372026  0.0729657011728806 0.824563129532765  0.0487117293730157 0.829865834789524  0.0244704738152226 0.835202362994346  0.000242809999999927 0.84057317 
- 0 12 0.0625 10 0.09375 10 0.125 10 0.15625 10 0.1875 10 0.21875 10 0.25 10 0.28125 10 0.3125 10 0.34375 10 0.375 10 0.40625 10 0.4375 10 0.46875 10 0.5 10 0.53125 10 0.5625 10 0.59375 10 0.625 10 0.65625 10 0.6875 10 0.71875 10 0.75 10 0.78125 10 0.8125 10 0.84375 10 0.875 10 0.90625 10 0.9375 10 0.96875 10 1 12
-8 0 2.72494532
-7 0 0  8 9 2  0 0  0.340099111137137 0  0.68019821977123 0  1.02029734288953 0  1.3603964272587 0  1.70049557224311 0  2.04059465729369 0  2.38069377876185 0  2.72079289 0 
- 0 9 2.72494532 9
-8 0 2.72494532
-7 0 0  9 18 3  0 1  0.151385851245213 0.999999999999999  0.302771702483559 1  0.454157553715249 0.999999999999991  0.60554340493985 1.00000000000001  0.756929256157999 0.99999999999999  0.908315107369001 1.00000000000001  1.05970095857342 0.999999999999997  1.21108680977093 1  1.51385851215238 0.999999999999998  1.66524435906055 1.00000000000001  1.81663023392999 1  1.96801602372598 0.999999999999986  2.11940197077613 1.00000000000002  2.27078772606933 0.99999999999998  2.42217363788312 1.00000000000001  2.57355946870983 0.999999999999997  2.72494532 1 
- 0 10 1.36247266 8 2.72494532 10
-8 0 1
-7 0 0  11 222 23  9.03616111 0.33998394  9.03694215742438 0.344724203118509  9.03743106834477 0.349599972362949  9.03762909948982 0.354577128541447  9.03753750760005 0.359621552461846  9.03715754939132 0.364699124932557  9.03649048162005 0.36977572676111  9.03553756098884 0.374817238756114  9.03430004425826 0.379789541725138  9.03277918813838 0.384658516476522  9.03097624937433 0.389390043818187  9.02785060235152 0.39622998492821  9.02673851333553 0.398467073128076  9.02555637480118 0.400657004304862  9.02430434390742 0.402795513606199  9.0229825778109 0.404878336178551  9.02159123366959 0.406901207170194  9.02013046864106 0.40885986172719  9.01860043988377 0.410750034997765  9.01700130455369 0.412567462128444  9.01533321981033 0.41430787826682  9.01185946580982 0.41762615885311  9.01005387890149 0.419204180456617  9.00818502534187 0.42070690118611  9.00625834840466 0.422140138857408  9.00427929132679 0.423509711285952  9.00225329740724 0.424821436287783  9.00018580986149 0.426081131678154  8.99808227199527 0.427294615273171  8.99594812703633 0.428467704888192  8.99378881826541 0.42960621833909  8.99052027427123 0.431270850992669  8.98942582946185 0.431818538951593  8.98832713491626 0.43235976454524  8.98722487103686 0.432895255000339  8.98611971823793 0.433425737544087  8.98501235691851 0.433951939403128  8.98390346749051 0.434474587804509  8.98279373036005 0.434994409975189  8.98168382593211 0.435512133141945  8.98057443461562 0.436028484531812  8.97835803901762 0.437059898211499  8.97725119887464 0.43757515234031  8.97614521101321 0.438089295038549  8.97504404333975 0.438606895970718  8.97394529572358 0.439125081804631  8.97284749235944 0.439642059594702  8.97175192520884 0.440159271288301  8.97065874748904 0.44067682791533  8.96956597773181 0.441192345454931  8.96847471366064 0.441707038880307  8.96520309378236 0.443245702080652  8.9630252351487 0.444264634451814  8.96084847091076 0.445273693321173  8.95867067417337 0.446269848281322  8.95648971805251 0.447250068927547  8.9543034756465 0.448211324850921  8.95210982007605 0.449150585647762  8.94990662443931 0.450064820909145  8.94769176185246 0.450951000230351  8.9454631054202 0.451806093203983  8.94209623966957 0.453037557533943  8.94096983210148 0.45343929095662  8.93984024299913 0.453833845780974  8.93870235734653 0.454212965281375  8.9375675544718 0.454595189452477  8.93641806881865 0.454951709340205  8.93526897102352 0.455307062099092  8.93411389027325 0.455650950594202  8.93295447479885 0.455986105813039  8.93179123434619 0.456313408964613  8.92945735933155 0.456952833066316  8.92828675595016 0.457265004672385  8.92711279290848 0.457570186428641  8.92593577639203 0.457868928930109  8.92475601264105 0.458161782771673  8.92357380781558 0.458449298548548  8.92238946816814 0.458732026855396  8.92120329986573 0.45901051828753  8.92001560913933 0.45928532343972  8.91882670218119 0.459556992907047  8.9164470682234 0.460095161661928  8.91525634122088 0.460361660948969  8.91406501040741 0.460626125739731  8.91287338196943 0.460889106627604  8.91168176214672 0.461151154207344  8.91049045709477 0.46141281907178  8.90929977307559 0.461674651815884  8.90811001624233 0.461937203032703  8.90692149283805 0.462201023316705  8.90573450904651 0.462466663261483  8.90336423311719 0.46300268366069  8.902180867732 0.463272929779713  8.90100010134383 0.463546916519983  8.899820618554 0.463822220323762  8.89864545962508 0.464104406265059  8.89747272840835 0.464389985669617  8.89630228245229 0.464678686191054  8.89513708920791 0.464975939454625  8.89397591829617 0.465279477782839  8.89281779722927 0.465587506534339  8.88935308031306 0.466525942085232  8.88705579653783 0.467170085209188  8.88476870157759 0.467828370196426  8.88248945672429 0.468496419486028  8.88021572330758 0.469169855518447  8.87794516260513 0.469844300732484  8.87567543595039 0.470515377568385  8.87340420463 0.471178708465556  8.87112912996108 0.471829915863607  8.86884787324555 0.47246462220229  8.86541320706403 0.473385363780636  8.86426618515897 0.473687052255473  8.86311674274674 0.473982977734289  8.86196458863499 0.47427259522979  8.86080942912444 0.474555354911205  8.85965096927839 0.474830704633745  8.85848891430385 0.475098092471324  8.85732297082089 0.475356969246777  8.85615284821881 0.475606791063139  8.85497825996075 0.475847021835154  8.8526195898625 0.476307249804838  8.85143560068188 0.476527424461191  8.85024726270558 0.476738257208049  8.84905488124303 0.476940345463859  8.84785876165581 0.477134286648007  8.84665920922779 0.477320678178752  8.84545652933326 0.477500117475291  8.8442510272633 0.477673201956346  8.84304300836959 0.477840529040677  8.84183277796919 0.478002696147201  8.83819636824458 0.478475509789707  8.83576447038673 0.478772468650345  8.83332739044344 0.479055956622016  8.83088757102534 0.479330753049182  8.82844745476481 0.479601637278106  8.82600948426362 0.479873388652472  8.8235761021582 0.480150786518819  8.82114975105265 0.480438610221193  8.81873287357638 0.480741639105381  8.81632791234194 0.481064652516188  8.81274200878629 0.481586318440205  8.81155040021314 0.48176659063532  8.81036204521245 0.481952450658458  8.80917931558503 0.482148363514808  8.80800057687679 0.482351296123671  8.80682477855312 0.482559308411347  8.80565261197577 0.482773720206748  8.80448405002656 0.482994506804513  8.80331772186568 0.483219128499009  8.80215419706247 0.483448677296023  8.79983152334695 0.483915377444948  8.79867242568078 0.484152624712907  8.79751527710945 0.484393252203944  8.79635978751373 0.484636742947263  8.79520566681517 0.484882579972676  8.79405262487875 0.485130246309338  8.79290037163138 0.485379224986841  8.79174861694575 0.485628999034714  8.79059707073272 0.485879051482253  8.7894454428814 0.486128865359057  8.78714144370076 0.48662698203001  8.78598907236838 0.486875284824727  8.78483603919565 0.487122315107468  8.78368205406252 0.487367555905983  8.78252682689116 0.487610490250034  8.78137006754048 0.487850601166421  8.78021148594503 0.488087371685389  8.77905079196637 0.488320284833962  8.77788769552289 0.488548823641591  8.77672190649752 0.488772471136266  8.77438436308382 0.489208949557063  8.77321248703947 0.48942155170177  8.77203823175133 0.489629908939999  8.77085743187801 0.489826216707144  8.76967836205925 0.490026064462444  8.76848966435087 0.490208121707891  8.76729746544211 0.490383938270171  8.76610328950893 0.490556409424683  8.7649041747198 0.490719993617191  8.76370239731524 0.490879000142946  8.76008819824389 0.491340719387996  8.75766721949253 0.491628714298285  8.75523714284016 0.491901661242266  8.75280038308338 0.492164330173298  8.75035935502958 0.492421491044815  8.74791647347343 0.492677913810299  8.74547415321923 0.492938368422951  8.74303480906844 0.493207624836463  8.74060085581916 0.493490453003993  8.7381747082751 0.493791622879092  8.73455081771611 0.494278045183148  8.73334538070529 0.49444590898894  8.73214296995342 0.494620471637442  8.73094330822988 0.494801218730858  8.72974753027548 0.494990343970562  8.72855561385878 0.495187822033  8.7273671144923 0.49539281769671  8.72618314497569 0.495607482524653  8.72500505951067 0.495834431126079  8.72383045962155 0.496069080682057  8.72148941106256 0.496556079633611  8.7203228281369 0.496808171551855  8.71915990834473 0.497068339652831  8.71800037344665 0.497336067675272  8.71684394523962 0.497610839360807  8.71569034546856 0.497892138446924  8.71453929593694 0.498179448675754  8.71339051839504 0.498472253785284  8.71224373463294 0.498770037516454  8.71109866641583 0.499072283608532  8.70766777373417 0.499990860187529  8.70538626712111 0.500619027377904  8.70310828559746 0.501258848464632  8.70083160021916 0.50190619420954  8.69855398336033 0.50255693504926  8.69627320841747 0.503206941087213  8.6939870502023 0.50385208210391  8.69169328452097 0.504488227546246  8.68938968853946 0.505111246536561  8.68707404052694 0.505717007866411  8.68474412 0.50630138 
- 0 12 0.125 10 0.1875 10 0.25 10 0.28125 10 0.3125 10 0.375 10 0.40625 10 0.4375 10 0.46875 10 0.5 10 0.5625 10 0.59375 10 0.625 10 0.6875 10 0.71875 10 0.75 10 0.78125 10 0.8125 10 0.875 10 0.90625 10 0.9375 10 1 12
-8 0 1
-7 0 0  10 38 5  1 0  0.975000000000004 0  0.950000006401749 0  0.925000004888471 0  0.899999994293789 0  0.874999981650047 0  0.849999977234337 0  0.824999989617775 0  0.800000020711123 0  0.775000060813665 0  0.72500010650604 0  0.700000139053616 0  0.674999987571804 0  0.650000460765151 0  0.624998994703204 0  0.60000054140304 0  0.574999680116269 0  0.55000004593225 0  0.524999944291789 0  0.474999918076515 0  0.449999934458026 0  0.425000064178845 0  0.400000072687117 0  0.37500001047011 0  0.349999914501244 0  0.324999918250023 0  0.300000139933745 0  0.275000094877938 0  0.225000047207865 0  0.199999975722988 0  0.174999953958752 0  0.150000010217268 0  0.12500009422964 0  0.100000131830193 0  0.0750000942166869 0  0.0500000322013259 0  0.0250000258621326 0  0 0 
- 0 11 0.25 9 0.5 9 0.75 9 1 11
-8 0 1
-7 0 0  11 242 25  8.68474412 0.50630138  8.58667610594276 0.520421918009433  8.48866201111845 0.534909523730818  8.39069534536866 0.549715747721165  8.29276845880819 0.564792331363556  8.19487480447899 0.580090834760861  8.09700793908139 0.595562801105519  7.99916060016539 0.611159908378749  7.90132524859098 0.626833879952443  7.80349551592956 0.642536246419629  7.70566604692046 0.658218371698454  7.55890639335147 0.681639529954779  7.50998398415175 0.689429569444467  7.46105803593038 0.697196573242559  7.41212717760295 0.704934576473211  7.36319058015729 0.712637526807127  7.31424731000717 0.720299388787606  7.26529589421302 0.727914213969369  7.21633480030417 0.735476063513731  7.16736347843119 0.742978840053649  7.11838255904969 0.750416255805406  7.04489483699405 0.761465373205932  7.02039624523251 0.765130571608187  6.99589490192074 0.768777166852696  6.97139073990472 0.77240439651269  6.94688369205976 0.776011498162004  6.92237369121279 0.779597709373482  6.8978606702535 0.783162267721239  6.87334456200656 0.786704410778076  6.84882529935063 0.790223376117924  6.82430281512869 0.793718401313885  6.77525126927542 0.800659046565283  6.7507222076003 0.804104664777407  6.72618978642589 0.807524647660579  6.70165394960774 0.810918745834065  6.67711464300199 0.814286801739238  6.65257180958469 0.81762852653328  6.62802538990857 0.820943515364279  6.60347532466037 0.824231372679689  6.57892155708404 0.827491819362535  6.55436403204452 0.830724653352551  6.48068000389164 0.840338999854331  6.43154174555775 0.846636528164721  6.38239028379314 0.852819073144436  6.33321273836767 0.858885757598402  6.28404184724704 0.864829511756756  6.2348194942877 0.870655599116283  6.18560877011508 0.876352829582298  6.13636782523559 0.881924258487  6.08711765534648 0.88736441004303  6.03785268677187 0.89267141520437  5.96393626684055 0.900427826265665  5.93929423978581 0.902979323505286  5.91464920554515 0.905496360919235  5.89000116853728 0.907978737985289  5.86535019342414 0.910426171625699  5.84069645422062 0.91283822887941  5.81604015310795 0.915214438185742  5.79138139847879 0.917554456523362  5.76672013185408 0.919858169579654  5.74205619321947 0.922125602203318  5.69272303557034 0.926587430439187  5.66805380696755 0.928781839188791  5.64338189361164 0.930939596048003  5.61870726052028 0.933060554495348  5.59402987272428 0.935144568007919  5.56934969523779 0.937191490065635  5.54466669309026 0.939201174144068  5.51998083130134 0.941173473723974  5.49529207489448 0.943108242281325  5.4706003888928 0.945005333295473  5.39651643717131 0.950583134141051  5.34711527775901 0.954150371772692  5.29770198028315 0.957565140963483  5.24827626493673 0.960826269538881  5.19883785192978 0.963932585322771  5.14938646144476 0.966882916141323  5.0999218136995 0.969676089817904  5.05044362887542 0.972310934178779  5.00095162718403 0.974786277047746  4.9514455288171 0.977100946250258  4.8524045791357 0.981406592971657  4.80287009402663 0.983398127265077  4.7533188212271 0.985223403068274  4.70375566922706 0.986889136219669  4.65418188510401 0.988396475998657  4.60459842302655 0.989746126392854  4.55500771993022 0.990941045645065  4.50541197262916 0.991983826964563  4.4558122579238 0.99287536074285  4.40621092736102 0.993618475433981  4.30700835813369 0.99481142624689  4.25740692201845 0.995261348632281  4.2078091275965 0.995566346425931  4.15820861962748 0.995730215130108  4.10862873600428 0.995750409620523  4.05903236173816 0.995637293848612  4.00947175468899 0.995382147048287  3.95990256251469 0.994996878724354  3.91035397608586 0.994477693824713  3.86082212714513 0.993827856846446  3.78654096369736 0.992662594844146  3.76178346178108 0.992242397984291  3.73702845573414 0.99179081300547  3.71227555551919 0.99130822797927  3.68752437111242 0.990795030981046  3.66277451247061 0.99025161008048  3.63802558957225 0.989678353353953  3.61327721237651 0.989075648871515  3.58852899085637 0.988443884708043  3.56378053497679 0.987783448935437  3.51428237443644 0.986406010318728  3.48953248006329 0.985689001597792  3.46478275215435 0.984944133990065  3.44002847537633 0.984171661596518  3.41527652326105 0.983372197471599  3.39052103331593 0.982545960182145  3.36575970522217 0.981693278638062  3.34099848820546 0.980814737257106  3.3162352430755 0.979910669937729  3.29147071889076 0.978981500033335  3.24194033529894 0.977073793240628  3.21717443140338 0.976095254973765  3.19240827237957 0.975092446144914  3.16764231519231 0.974065781061499  3.14287701681871 0.973015674032729  3.11811283421809 0.971942539365646  3.09335022437022 0.970846791369268  3.06858964423599 0.969728844351291  3.04383155079032 0.968589112620027  3.0190764009997 0.96742801048359  2.96957290266988 0.965063894016773  2.9448244202789 0.963860940532382  2.92008086833945 0.962636957567959  2.89533793055485 0.961394529229419  2.87060598816961 0.960129558521711  2.84587652575979 0.958846538370408  2.82114746777664 0.957547034264467  2.79642616132441 0.956228328402877  2.77170476393888 0.954894607886669  2.74698650419011 0.953545027033555  2.69755309137074 0.950816829054876  2.67283807850073 0.949438148196629  2.64812425249649 0.948045737796972  2.62341110668357 0.946640450179829  2.59869813438675 0.945223137676016  2.5739848289346 0.9437946526062  2.54927068364807 0.942355847302851  2.52455519185823 0.940907574087446  2.49983784688647 0.939450685289675  2.47511814206096 0.937986033234354  2.42567299935202 0.935042907262714  2.40094754945893 0.933564432979195  2.37621839208554 0.932079889879012  2.35148608994128 0.930590162956133  2.32675139053722 0.929096142850671  2.30201477081183 0.927598711938904  2.2772764700509 0.926098745336138  2.25253674774407 0.92459711877621  2.22779610322669 0.923094715318002  2.20305519375398 0.921592422845112  2.15357318188714 0.918589805777396  2.12883221405864 0.917089515584263  2.10409145019323 0.915591005311081  2.07935155319306 0.91409527495111  2.0546130211618 0.912603245448651  2.02987610739197 0.911115720327406  2.0051410492238 0.90963349545009  1.9804083324466 0.908157485853965  1.95567871833727 0.906688738713119  1.93095276002464 0.90522820137981  1.88150631036598 0.902324025687229  1.85678584016397 0.900880397467173  1.832067631635 0.899445674483201  1.80735119182063 0.898020302344648  1.78263602776973 0.896604726661578  1.7579216465213 0.895199393043368  1.73320755512479 0.893804747099733  1.7084932606209 0.892421234440502  1.68377827005612 0.891049300675121  1.65906209047392 0.889689391413398  1.60962636736414 0.886994513116536  1.58490695057096 0.885659548205017  1.56018449348925 0.884337470861121  1.53546201876188 0.883028841079718  1.51073193867829 0.881733873632192  1.48600165459207 0.880453270982725  1.46126875744962 0.879187416400322  1.43652481595648 0.877936497202224  1.41178083641626 0.876701333153063  1.38703194482059 0.875482227315368  1.33752816081756 0.873077179762259  1.3127730998466 0.87189123256178  1.28801534905495 0.870722339178138  1.26325538758968 0.869570976849067  1.23849369460111 0.868437622818078  1.21373074923462 0.867322754320202  1.18896703064172 0.866226848600354  1.16420301796764 0.865150382894167  1.1394391903629 0.864093834444334  1.11467602697442 0.863057680489213  1.06515198692765 0.861027116049328  1.04039102108491 0.860032702720722  1.01563205028584 0.859059650246088  0.990874963023737 0.858108417030748  0.966118855030088 0.857179436204423  0.941369268893151 0.856273346458334  0.916623212360691 0.855390514344373  0.891875133824929 0.854531224805385  0.867131869054896 0.85369615776839  0.842388409656881 0.852885615497613  0.792903042546476 0.851314566300716  0.768160929397414 0.850554052825875  0.74341889515444 0.849818996763779  0.718676448315426 0.849109844401721  0.693933097382287 0.848427042030458  0.669188350850987 0.847771035935893  0.644441717224387 0.847142272409182  0.619692704998937 0.846541197737047  0.594940822675892 0.845968258209119  0.570185578753619 0.845423900113564  0.520667384710084 0.844393239364649  0.495904312458489 0.843906933493352  0.471137808741556 0.843450125671688  0.446364062616928 0.843023174782593  0.421586246536745 0.84262662359037  0.396806171484512 0.842260978999752  0.372022535961203 0.841926665960567  0.3472355681804 0.841624149713524  0.322447944759731 0.841353959974822  0.297658514328771 0.841116525650172  0.24807860761157 0.840708153923747  0.223288020179387 0.84053721358575  0.198497396310213 0.840399993748332  0.173707333640297 0.840296969384311  0.148918429806501 0.840228615471421  0.12413128244486 0.840195406980181  0.0993464891922709 0.84019781888949  0.0745646476849273 0.8402363261704  0.0497863555594745 0.840311403799919  0.0250122104523296 0.84042352675141  0.00024281000000001 0.84057317 
- 0 12 0.125 10 0.1875 10 0.21875 10 0.25 10 0.3125 10 0.34375 10 0.375 10 0.4375 10 0.5 10 0.5625 10 0.59375 10 0.625 10 0.65625 10 0.6875 10 0.71875 10 0.75 10 0.78125 10 0.8125 10 0.84375 10 0.875 10 0.90625 10 0.9375 10 0.96875 10 1 12
-8 0 1
-7 0 0  11 62 7  0 0  0 0.011363636363636  0 0.0227272726955003  0 0.0340909090429152  0 0.0454545454430845  0 0.0568181819229988  0 0.0681818184996005  0 0.0795454551795459  0 0.0909090919594956  0 0.10227272882581  0 0.113636365754824  0 0.136363639670449  0 0.147727276662543  0 0.159090911620726  0 0.17045455129816  0 0.181818182637426  0 0.193181810640526  0 0.204545450266624  0 0.215909095605229  0 0.227272727949287  0 0.238636365550928  0 0.272727273863937  0 0.295454543612129  0 0.318181816780574  0 0.340909078699388  0 0.363636356339593  0 0.386363641806436  0 0.409090906987479  0 0.431818164255926  0 0.454545449727582  0 0.477272723718024  0 0.51136363475553  0 0.522727271677702  0 0.53409090701677  0 0.545454543730296  0 0.556818180632824  0 0.568181815811035  0 0.579545450469468  0 0.590909087841127  0 0.602272727943527  0 0.613636365181366  0 0.636363638714159  0 0.647727274864886  0 0.659090910655486  0 0.670454546311849  0 0.681818182022328  0 0.693181817930709  0 0.704545454128235  0 0.715909090646422  0 0.727272727449392  0 0.73863636442639  0 0.772727275300148  0 0.795454549680486  0 0.818181816768056  0 0.840909079709345  0 0.863636386799946  0 0.886363580318735  0 0.909090941508985  0 0.931818180578928  0 0.95454545895252  0 0.977272727272714  0 1 
- 0 12 0.125 10 0.25 10 0.5 10 0.625 10 0.75 10 1 12
-8 0.49271381 3.01761452
-7 0 0  4 5 2  0 55.4348855  0 41.5761641195265  0 27.7174427697608  0 13.8587213905875  0 2.60208521396521e-015 
- 0.49271381 5 3.01761452 5
-8 0.49271381 3.01761452
-7 0 0  1 2 2  2.52490070971683 0  5.84379211687747e-010 0 
- 0.49271381 2 3.01761452 2
-Curves 311
-7 0 0  5 6 2  28.764323306232 -1.33232061328183 0.776095407667552  28.7631626161769 -1.33118958622811 0.785466025745633  28.7644648862387 -1.32985992316495 0.79335818044249  28.768239196418 -1.32839266909526 0.799787920850886  28.7744897667149 -1.3268249520208 0.804772078665621  28.7832164471294 -1.32517199794229 0.80832593387442 
- 0 6 0.2 6
-7 0 0  14 41 4  28.8098298583934 -1.32059808672504 0.816143875492752  28.8083149183215 -1.32082796973596 0.815889182877655  28.8069891582585 -1.3210267897454 0.815683583508889  28.8058128482026 -1.32120332675379 0.815500831497209  28.8047545081524 -1.32136251576135 0.815334554160311  28.8037969481069 -1.32150875376829 0.815169133357454  28.8029112480648 -1.32164304277467 0.815023895657556  28.8021031680264 -1.32177022678071 0.814859010574724  28.8013376779901 -1.32188851878633 0.814719312124089  28.8006268379563 -1.32200227779174 0.814562661115648  28.7999516679242 -1.3221110107969 0.814409973183396  28.7993063378936 -1.32221578680188 0.814258970712224  28.7986903978643 -1.32231819980674 0.814098731704613  28.798094497836 -1.3224184178115 0.813936620551913  28.7967547177724 -1.32264686582235 0.81355232699366  28.7960222977376 -1.32277408182839 0.813327508596982  28.7953062777036 -1.3229004298344 0.813095395235957  28.7945973376699 -1.32302731184042 0.812854622721521  28.7938867476362 -1.32315610484654 0.812603444731591  28.7931659876019 -1.32328822885282 0.812339680055063  28.7924263975668 -1.32342519685932 0.812060598097807  28.7916586475303 -1.32356869786614 0.811762880044666  28.790851987492 -1.32372069787336 0.811442585454453  28.7899934474512 -1.32388355288109 0.811094990335943  28.7890669374072 -1.32406018388948 0.810714238686858  28.788051557359 -1.3242543458987 0.810292969605849  28.7869174573051 -1.324471114909 0.8098224422295  28.7852864672277 -1.32478042092369 0.809159998211036  28.7849453572115 -1.32484500492676 0.809022068784485  28.7845928871947 -1.32491165092992 0.808880041881739  28.7842284171774 -1.32498050693319 0.808733468513777  28.7838512771595 -1.32505173893658 0.808581816056574  28.783460777141 -1.32512552894008 0.8084244689081  28.7830561771217 -1.32520207794372 0.808260718840322  28.7826366971018 -1.3252816109475 0.808089744554201  28.7822015270812 -1.32536437895143 0.807910581160692  28.7817498370597 -1.32545066395553 0.807722078691738  28.7812807670374 -1.32554078995981 0.807522850575275  28.7807934770143 -1.32563512296429 0.807311211254223  28.7802871169902 -1.32573408896899 0.807085103556484  28.7797609069652 -1.32583817597393 0.806842015435937 
- 0.625 15 0.672274639 13 0.734255787 13 0.75 15
-7 0 0  6 7 2  28.7832164471294 -1.32517199794229 0.80832593387442  28.7914793375218 -1.32360689686795 0.811690895844247  28.8001096979317 -1.32207158379503 0.814533341462256  28.8090491683563 -1.32058408072438 0.816819928019863  28.8182268587923 -1.31916069965677 0.818530258462099  28.8275643192358 -1.31781358259278 0.81966044530278  28.8369834496832 -1.31655043853279 0.820220862617399 
- 0.2 7 0.4 7
-7 0 0  9 18 3  28.837212029694 -1.31651983653133 0.820234224483033  28.8350109695895 -1.31681561454538 0.820099489463634  28.8332774695071 -1.31704273155617 0.820036826811657  28.8318383294388 -1.31723420556526 0.819964087973203  28.8306061993802 -1.31739874957308 0.819898529204089  28.8295245493289 -1.31754613358008 0.819820749555394  28.8285534892828 -1.31767994358644 0.819741576363634  28.8276636592405 -1.31780490159237 0.819653651847458  28.8268308692009 -1.31792394559803 0.819558056661917  28.8253991291329 -1.31813296060795 0.819366071954798  28.8247872791039 -1.31822387261227 0.819273930171422  28.8241856290753 -1.31831465861658 0.819174834215715  28.8235838190467 -1.31840673062096 0.819068233406652  28.8229702790176 -1.31850179662547 0.818952661214162  28.8223318889872 -1.31860189363023 0.818825761201135  28.821653098955 -1.31870954063534 0.818684094034406  28.8209112889198 -1.31882845464099 0.81852227582772  28.8200653888796 -1.31896532764749 0.818330998054635 
- 0.375 10 0.444639259 8 0.5 10
-7 0 0  4 5 2  28.8369834496832 -1.31655043853279 0.820220862617399  28.8374470997052 -1.31648826352983 0.820248429679708  28.8399875498258 -1.31612093151239 0.820557380502382  28.8446042000451 -1.31544842048044 0.821147661621419  28.8512877803626 -1.31447021343398 0.822017542732736 
- 0.4 5 0.6 5
-7 0 0  5 10 3  28.8616900808567 -1.31305132736659 0.822754478269739  28.8596917907617 -1.31331593737916 0.82266123877631  28.8579017606767 -1.31355080839031 0.822597422024279  28.8563390706025 -1.31375986840024 0.822514661872348  28.855001340539 -1.31394295040894 0.82241574237665  28.8531212804497 -1.31420579242142 0.82223974185929  28.8524613104183 -1.31429988742589 0.822165755300776  28.8518996203916 -1.31438093942974 0.82209699969451  28.8514344903695 -1.31444866443296 0.822037097422665  28.851064970352 -1.31450290543553 0.821988064078336 
- 0.125 6 0.199338336 4 0.25 6
-7 0 0  4 5 2  28.8593423607451 -1.31336093238129 0.822651636094854  28.8627165609054 -1.31291584736015 0.822800061676904  28.8675518911351 -1.31221184832672 0.82340106936345  28.873844821434 -1.31124906028099 0.824453830151454  28.8815857818017 -1.3100262342229 0.825953884705703 
- 0.8 5 1 5
-7 0 0  14 28 3  29.7795252944515 -1.17556651583641 0.898635472668893  29.7494215730216 -1.18022998805791 0.897425283353412  29.7194628615987 -1.18486855827823 0.896073638636212  29.6896410501822 -1.1894827514974 0.89458867242368  29.659949838772 -1.1940725507154 0.892981689068352  29.6303567073664 -1.1986411519324 0.891247506605983  29.6009010359673 -1.20318300114812 0.889427275436527  29.5714944045705 -1.20770954836312 0.887461291075147  29.54221788318 -1.21220698357674 0.885455180312862  29.5129814517913 -1.2166906497897 0.883305046149736  29.4838272604066 -1.22115019100152 0.881106290579301  29.4547216290241 -1.22559199221249 0.878814434878444  29.4256623476439 -1.23001453742255 0.876456163868432  29.3966378162653 -1.23441901863175 0.87403157430927  29.3331173732482 -1.24402824808817 0.868590518671834  29.2986319716103 -1.24922569333503 0.865549127890376  29.2641657899732 -1.25439935058077 0.862433189800376  29.2297023483363 -1.25955026382542 0.859252295581292  29.1952251866987 -1.26467946606905 0.856015881666571  29.1607179250597 -1.26978797631169 0.852733296330656  29.1261641434185 -1.2748767945534 0.849413863666992  29.0915474117743 -1.27994690279421 0.846066946315022  29.0568511801263 -1.28499925803419 0.842702008647196  29.0220587484738 -1.29003479427336 0.839328681679971  28.9871532568158 -1.29505441051178 0.835956831438817  28.9521175551517 -1.30005897774949 0.832596632098216  28.9169342834806 -1.30504932498651 0.82925864551367  28.8815857818017 -1.3100262392229 0.825953908590704 
- 0.8 15 0.891306872 13 1 15
-7 0 0  12 13 2  29.1024811722936 -1.27830134371605 0.847100938681134  29.2616749298549 -1.25501573061005 0.862419606980731  29.3883294158707 -1.23597266670555 0.873720132031477  29.4953334409531 -1.21963353492948 0.88247538610133  29.588514715379 -1.20525221024641 0.889306178618775  29.6721690193523 -1.19226740662966 0.894647160910458  29.7489788530006 -1.18030879606166 0.898722025016004  29.8213373464375 -1.1690458545267 0.90170505207869  29.8910892397505 -1.15820558301181 0.903662570311667  29.9601033430285 -1.14751396150399 0.904624392417351  30.0303755963662 -1.13665427398818 0.90453573072014  30.1043241198786 -1.12523987844602 0.903267088482883  30.1859472237555 -1.11255269284341 0.900484930273737 
- 0.2 13 0.4 13
-7 0 0  9 18 3  30.1859472237555 -1.11255269284341 0.900484930273737  30.2565114071071 -1.10158446532245 0.898079721124496  30.3226436402482 -1.09124671183144 0.894843704381793  30.386809883296 -1.08115591135215 0.890829558584132  30.4506020063259 -1.07103903287162 0.886023107082837  30.5154086394041 -1.06063934237766 0.880370377533347  30.5825117725913 -1.04969799285798 0.87377556263411  30.6532954659533 -1.03790217629771 0.86608924821303  30.7293636595664 -1.02485763667812 0.85709297084073  30.8298768443405 -1.00688389482442 0.844241206312304  30.8472113251638 -1.00376094667608 0.841994438852588  30.8648723760027 -1.00055422452377 0.839674728249408  30.882878886858 -0.997257940678208 0.837278691605602  30.9012507277306 -0.993865835692092 0.834802657894997  30.9200089286215 -0.990371096721101 0.832242624769402  30.9391757195319 -0.986766271188881 0.829594215388609  30.9587747404628 -0.983043182844043 0.826852635232391  30.9788311014155 -0.979192847362162 0.824012628924498 
- 0.4 10 0.566121971 8 0.6 10
-7 0 0  10 47 6  30.9858701317498 -0.977839270163871 0.823014661591097  30.9722836111045 -0.980456105749164 0.824943199185698  30.9586704504579 -0.983059451071816 0.826865707596012  30.9450273798099 -0.985650381673879 0.828781691613016  30.93134616916 -0.988230140019411 0.830690960943702  30.9176314485086 -0.990799470552447 0.832592411220016  30.9038676778549 -0.993359859618059 0.834486269485969  30.8900577871989 -0.995912091153284 0.836371457703511  30.8761933165404 -0.998457365608178 0.838247617865624  30.8622706758791 -1.00099669554479 0.840114002204272  30.8278562342445 -1.007233103841 0.844680720136179  30.8072928032678 -1.01092464601634 0.847369158930874  30.786579722284 -1.01460904419134 0.8500330192414  30.7657020612924 -1.01828955736616 0.852669824517642  30.7446446502922 -1.02196944454094 0.855276774944465  30.7233920492827 -1.02565198771585 0.85785070025772  30.7019285382633 -1.02934050189105 0.860388007241236  30.680237987233 -1.03303836106669 0.862884624763818  30.6583036361912 -1.03674901024293 0.86533594923325  30.6246076945907 -1.04240697451167 0.868980695246366  30.6130375040412 -1.0443423446036 0.870211039375805  30.6013950534882 -1.04628253969575 0.871427444204581  30.5896782329317 -1.04822800278816 0.872629492661675  30.5778849323715 -1.05017918688083 0.873816732098066  30.5660129918076 -1.0521365499738 0.87498867428673  30.5540602212399 -1.05410055706709 0.876144795421643  30.5420244006682 -1.05607167816071 0.877284536121777  30.5299032700925 -1.05805039125469 0.878407301424106  30.5005922287003 -1.06282032848125 0.881060598077131  30.4833180078798 -1.0656193276142 0.882574177892022  30.4658656570509 -1.06843551474796 0.884051450466189  30.4482288162132 -1.0712702578826 0.885490511643541  30.4304009453664 -1.0741249620182 0.886889284168979  30.4123753845103 -1.0770010701548 0.888245498952395  30.3941452536444 -1.0799000732925 0.889556676368673  30.3757035227684 -1.08282350843135 0.890820107520683  30.3570429518821 -1.08577296857145 0.892032835530284  30.3278762104968 -1.09037052078982 0.893822357797282  30.3175292800053 -1.09199913786717 0.89443709825948  30.3071139895106 -1.09363622594493 0.895035344591896  30.2966289490126 -1.0952820630231 0.895616555015502  30.2860727785112 -1.09693693310171 0.896180159580271  30.2754440480064 -1.09860112618075 0.896725560169177  30.264741317498 -1.10027494026025 0.897252130489187  30.2539631069861 -1.10195867934023 0.897759216085273  30.2431079164705 -1.10365265242069 0.8982461343244  30.2321741959512 -1.10535717650165 0.898712174408536 
- 0.4 11 0.441198284 9 0.501374891 9 0.532553008 9 0.576228162 9 0.6 11
-7 0 0  12 46 5  30.9788311014155 -0.979192847362162 0.824012628924498  31.0384235142459 -0.967752546075777 0.815574260834697  31.0829604763613 -0.95884980103692 0.809214432952621  31.1187352080605 -0.95155721148054 0.804078118782659  31.1481829394592 -0.945439747025976 0.79983136648395  31.1731352906444 -0.94019743987698 0.796220701800452  31.1945204416601 -0.935644890153746 0.793117371240052  31.2132022725475 -0.931637044705383 0.790400352656001  31.2296458233285 -0.928075913873239 0.788004511147204  31.2442988740245 -0.924881544034514 0.78586663353266  31.2574534546493 -0.921994542097389 0.783945436459408  31.2693581452147 -0.919366775652577 0.782205639782773  31.2910523362452 -0.914552734846922 0.779034137379134  31.3008419967102 -0.912366448047079 0.777602409296131  31.3097674871341 -0.910362377002891 0.776297208849137  31.3179733075238 -0.908511192522964 0.775097893775173  31.3255720678848 -0.906789714394198 0.773988336055471  31.3326546082212 -0.905179036829695 0.772955507356415  31.3392959985366 -0.903663383020705 0.771988636245491  31.3455593488341 -0.902229362913593 0.77107867531427  31.3514985991162 -0.900865417484809 0.770217905849386  31.3571608893852 -0.899561343042869 0.769399598640518  31.362588629643 -0.898307898311334 0.768617739085382  31.3730517201399 -0.895885315806267 0.767116091761058  31.3780870803791 -0.894716181577736 0.766396303734869  31.3829648806108 -0.893580677750803 0.765702108733897  31.3877198808366 -0.892471041450098 0.765028643561909  31.3923847010582 -0.891379899407271 0.764371394227691  31.396991041277 -0.890300001124979 0.763726029186038  31.4015706514945 -0.889223996545871 0.763088263235746  31.4061564017123 -0.888144196224584 0.762453719817607  31.4107836219321 -0.887052251011719 0.7618177587814  31.4154919721557 -0.885938689288828 0.761175237409882  31.4203281423854 -0.884792248887375 0.760520171830768  31.4303709928624 -0.882405634115017 0.759170361100656  31.4355776631097 -0.881165466065112 0.758475618622657  31.4410277233686 -0.879864242210307 0.757753649427365  31.4467879536422 -0.87848570903483 0.756996051276381  31.4529477039348 -0.87700752463862 0.756191538996169  31.459605824251 -0.875405599896533 0.755327834410145  31.4669083045979 -0.873643077370818 0.754386589147439  31.4750394649841 -0.871673736234279 0.753344782603955  31.4842521454217 -0.869434081090901 0.752170891796199  31.49495373593 -0.866819169638699 0.750813560780729  31.5077222365364 -0.863681795405682 0.74920044876211  31.5238736173036 -0.85967247649725 0.747163416475356 
- 0.6 13 0.65 11 0.7 11 0.75 11 0.8 13
-7 0 0  13 38 4  31.5669417893492 -0.848882981573776 0.741834860685264  31.5497705185336 -0.853223773892953 0.743916620376142  31.5326284477194 -0.85752310662516 0.746032829314656  31.5155107169064 -0.861781948879444 0.748181984326736  31.498428786095 -0.866000775046828 0.750361645569264  31.4813413152834 -0.870181604513406 0.752572569399277  31.4643047244742 -0.874323531092137 0.754809715409536  31.4472451936639 -0.878429589725165 0.757075786174169  31.4302228128554 -0.882498621726433 0.759365660618932  31.4131892020464 -0.886532936541053 0.761680531913882  31.3961654512378 -0.890532539614024 0.764017624431888  31.379137950429 -0.894498597604402 0.766376149517912  31.36210626962 -0.898431809946219 0.768754586867882  31.3367451884155 -0.904238084434002 0.772322186235334  31.3284220380201 -0.906135537872127 0.773497182354143  31.3200965276247 -0.908025445020892 0.774676457892156  31.3117682472291 -0.909907897642304 0.775859858225364  31.3034367968334 -0.911782986947366 0.777047228606761  31.2951017364375 -0.913650803730082 0.778238414339339  31.2867626660414 -0.915511438156458 0.779433260505092  31.2784191756451 -0.917364980036496 0.78063161231101  31.2700708452486 -0.919211518535202 0.781833314722088  31.2617172548518 -0.92105114242658 0.783038212788318  31.2533580044548 -0.922883939908633 0.784246151400692  31.2449926540574 -0.924709998714366 0.785456975441203  31.2176088327568 -0.930661168307031 0.789426436857742  31.1985633218522 -0.93475862938465 0.792196415098309  31.1794808409458 -0.938822760710686 0.794978535970453  31.1603577800375 -0.942854515829184 0.797770923694084  31.1411907091271 -0.94685484750119 0.800571590783108  31.1219763782145 -0.950824708312748 0.803378437331426  31.1027115172995 -0.954765045571904 0.806189308609936  31.0833927763819 -0.958676797223702 0.809002040384533  31.0640166654615 -0.962560892655187 0.811814457376116  31.0445797245383 -0.966418257997402 0.814624324741577  31.0250786136121 -0.970249822662392 0.817429288584806  31.0055100526826 -0.9740565197972 0.820226876076684  30.9858701317498 -0.977839270163871 0.823014661591097 
- 0.2 14 0.277002434 12 0.314605576 12 0.4 14
-7 0 0  11 12 2  31.8489252827427 -0.773601863627115 0.713410574618182  31.8220562114665 -0.781134310126887 0.71547147970507  31.7954741902039 -0.788515161507459 0.717666815499343  31.7691658789543 -0.795749525970073 0.719984750568439  31.743114867717 -0.802842214477957 0.72241480490586  31.7173152964916 -0.809797873912333 0.724946610083115  31.6917402652768 -0.816620746832402 0.727572388057832  31.666394314073 -0.823315119898368 0.730282554577558  31.6412507428787 -0.829884824293412 0.733070773970992  31.6163034916938 -0.836333676508716 0.73592962873878  31.5915378505175 -0.84266525019745 0.738852957311631  31.5669417893492 -0.848882981573776 0.741834860685264 
- 0 12 0.2 12
-7 1 0  3 4 2  31.8489252827427 -0.773601855954115 0.713410573785182  0.93988417 32.0505522923195 -0.724482736181082 0.749903029068481  0.95992278 32.2407081413514 -0.671765830587163 0.784903062690893  0.97996139 32.4183769697902 -0.614560682900065 0.818500392946681  1
- 1.00922414 4 1.18410863 4
-7 0 0  4 13 10  32.4183772197902 -0.208516963644024 1.41444139018236  32.4183769697902 -0.219472775064397 1.41049133499474  32.4183769697902 -0.241418770796776 1.40195406758924  32.4183769697902 -0.28533279434258 1.38224928165331  32.4183769697902 -0.35050471677808 1.34436762685403  32.4183769697902 -0.423612111790495 1.28718743413812  32.4183769697902 -0.498797019581586 1.2031992711489  32.4183769697902 -0.560492321731956 1.10084265228722  32.4183769697902 -0.597748956941551 0.996775537894295  32.4183769697902 -0.612675038880501 0.90853869682327  32.4183769697902 -0.615074544824472 0.850609804891796  32.4183769697902 -0.614776890290334 0.826062804735876  32.4183769697902 -0.614560682900065 0.818500392946681 
- 0 5 0.01923077 1 0.03846154 1 0.07692308 1 0.11538462 1 0.15384615 1 0.19230769 1 0.23076923 1 0.25 1 0.25852715 5
-7 0 0  3 6 4  25.9893209044264 -1.2407928679345 1.41444127418235  26.7065109884911 -1.21027243248485 1.41444127718235  28.1506004970817 -1.12559133446272 1.41444128718235  30.3018883192624 -0.844083729111824 1.41444131818235  31.7217072867002 -0.463447276602563 1.41444136118236  32.4183772197902 -0.208516963644024 1.41444139018236 
- 0 4 0.39052523 1 0.78105045 1 1.18410863 4
-7 1 0  4 5 2  25.9893209044264 -1.2407928679345 1.41444127418235  1 25.9893209344264 -1.41763458733403 1.22360243311799  0.90854116 25.9893209544264 -1.55287971875783 0.999768089566434  0.83195587 25.9893209844264 -1.640277496909 0.753283430359041  0.76769325 25.9893210144265 -1.67578856559568 0.495540494136909  0.7139803
- 0.84752031 5 1 5
-7 1 0  3 5 3  25.9893210144265 -1.67578856559568 0.495540494136909  0.7139803 26.947889129956 -1.56406817828925 0.592676574200625  0.7454239 27.8775648941132 -1.45450203008514 0.686230593334203  0.77844216 28.7256136843934 -1.33769375553704 0.772171202166162  0.81146043 28.764323326232 -1.33232061228183 0.776095388572551  0.81303509
- 0 4 0.39052523 1 0.41008236 4
-7 1 0  4 9 6  25.9893210144265 -1.67578856559568 0.495540494136909  0.7139803 25.9893210344265 -1.70144306581421 0.309337531622744  0.67962751 25.9893210644265 -1.69899160869777 0.0816351803774628  0.64366663 25.9893210944265 -1.64126602295595 -0.22088238007135  0.60319778 25.9893211344265 -1.47954387927456 -0.574297145927649  0.56361201 25.9893212744265 -0.665660853617193 -1.80079859153334  0.46123605 25.9893212744265 0.889675705037327 -1.79063114005041  0.47001385 25.9893211544265 1.84259967351878 -0.715184450739437  0.53736762 25.9893210144265 1.67578665759559 0.495543775207065  0.71398086
- 0.15247929 5 0.2499996 1 0.26923037 1 0.30769191 1 0.34615345 1 0.84752031 5
-7 1 0  3 5 3  28.7643514962333 1.33236617428399 0.776100352742787  0.81303666 28.7256321143942 1.33773997653924 0.772175194506352  0.8114616 27.8775746041137 1.45453324408662 0.686234055524367  0.778443 26.947888489956 1.56406622428916 0.592679383050759  0.7454244 25.9893210144265 1.67578665759559 0.495543775207065  0.71398086
- 0 4 0.01956211 1 0.41008734 4
-7 0 0  8 9 2  28.7643514962333 1.33236617228399 0.776100376027788  28.7665148763361 1.33297752231303 0.769628534457392  28.7711779565576 1.3333684033316 0.762177387467482  28.7785521169078 1.33347304333657 0.753845316767729  28.788662237388 1.3332316603251 0.74483620342982  28.8012362279853 1.33260497929534 0.735483724686601  28.8156703486708 1.33162007824856 0.726172912508361  28.831316009414 1.33034136118782 0.717207842395543  28.8475721701861 1.3288461991168 0.708805353876446 
- 0 9 0.5 9
-7 0 0  8 37 6  28.8635969109472 1.32726895104189 0.701446176772904  28.862456220893 1.32738860604757 0.70189706753832  28.8613238708393 1.32750608305315 0.702357319301181  28.8601999107859 1.32762143505863 0.70282638224446  28.8590843907329 1.32773471406401 0.703303719859133  28.8579773706803 1.3278459700693 0.703788808944173  28.8568789006281 1.32795525307449 0.704281139608558  28.8557890105764 1.32806261107959 0.704780215268262  28.8530777604476 1.32832710309215 0.706047350307448  28.8514672803711 1.3284818530995 0.706823379399308  28.8498749602955 1.32863256310666 0.70761210936277  28.8482995402206 1.32877944411363 0.708412066896766  28.8467397801466 1.32892270012044 0.709221835969228  28.8451945200732 1.32906252712708 0.710040057810092  28.8436626400004 1.32919911113357 0.710865430916295  28.8405309298516 1.32947428514664 0.712578640729668  28.8389326397757 1.3296124901532 0.713467215522873  28.8373484597005 1.32974739615961 0.714360848447318  28.8357785996259 1.32987914616587 0.715258022919931  28.8342232795521 1.33000787717198 0.716157292744644  28.8326826694789 1.33013372017796 0.717057282123392  28.8311569594064 1.3302567981838 0.717956685650111  28.8280566892592 1.33050395719554 0.719798765373605  28.8264837391844 1.33062775420142 0.720741245169371  28.8249265891105 1.33074861420716 0.721682191341063  28.8233844190372 1.33086653021277 0.722622054045704  28.8218564289647 1.33098149621823 0.723561249954314  28.8203418988927 1.33109351022355 0.72450016225691  28.8188401188214 1.33120257022873 0.725439140656509  28.81565267867 1.33142959823951 0.727449071700975  28.8139705785901 1.33154668124507 0.72852018071385  28.812306248511 1.33165984825045 0.729591554222738  28.8106600984329 1.33176898125563 0.730664144269683  28.8090359983557 1.33187408426062 0.731736012449594  28.8074321082795 1.33197499426541 0.732809698574591  28.8058526882045 1.33207174827001 0.733882719607557  28.8042968881306 1.3321642362744 0.734956607492564 
- 0.5 9 0.532434554 7 0.581329743 7 0.633204096 7 0.687789792 7 0.75 9
-7 0 0  5 6 2  28.8725322913716 1.3263007059959 0.698266208584864  28.8702816712647 1.32655229800785 0.698975729951564  28.8682673711691 1.32677251501831 0.699670023485541  28.8664848210844 1.32696416802741 0.700323549686582  28.8649292810105 1.32712918803525 0.700919516398889  28.8635969109472 1.32726895104189 0.701446176772904 
- 0.25 6 0.5 6
-7 0 0  3 4 2  28.8816743518059 1.32524719294586 0.695787436587128  28.8785997916598 1.32561306096324 0.696481690791104  28.875550471515 1.32596363097989 0.697314801029674  28.8725322913716 1.3263007059959 0.698266208584864 
- 0 4 0.25 4
-7 0 0  6 12 3  29.3247476328507 1.26377048402587 0.616047313029676  29.2959450914827 1.26822368423739 0.619576365166297  29.2680213501564 1.27248978544002 0.623233076075981  29.2409041988684 1.27658089063434 0.627006338975202  29.2145292976156 1.28050764082085 0.630886987012523  29.1888388963954 1.284279451 0.634867498745587  29.1109860926976 1.29554277653498 0.647525485836809  29.0609972403232 1.30253048186688 0.656525171202271  29.013409778063 1.30894354017148 0.665872511224246  28.9678696758999 1.31483929045151 0.675534312953157  28.924058423819 1.3202625617091 0.685500844463541  28.8816743618059 1.32524719994586 0.695787437392128 
- 0.8 7 0.864373661 5 1 7
-7 0 0  12 46 5  29.8455255075863 1.17804480095412 0.580272516141464  29.8316172069257 1.18043860006782 0.58058508181631  29.8177952462692 1.1828130281806 0.580927322185566  29.8040607756169 1.18516793429245 0.581299131666226  29.7904106849685 1.18750336440338 0.58170030169528  29.7768555143247 1.18981874551336 0.582130851974731  29.7633751736844 1.19211490762242 0.582590212541549  29.7499994230491 1.1943904087305 0.583078711972751  29.7366989524173 1.19664650883766 0.583595564153301  29.7234937617901 1.19888221794385 0.584140872315201  29.7103768611671 1.20109778404908 0.584714219883434  29.6973509105484 1.20329301915335 0.585315346759986  29.6702682192621 1.20784670036964 0.586631489241499  29.6562294585952 1.21020113548147 0.587351904567717  29.6423008479337 1.21253101959213 0.588104767686476  29.6284831772774 1.21483623570162 0.588889642053756  29.6147772066264 1.21711667280994 0.589706064330534  29.6011836859807 1.21937222491707 0.590553544365787  29.5877032953404 1.22160279602302 0.591431565214491  29.5743367247056 1.22380829512777 0.592339583122619  29.5610846040761 1.22598863823133 0.593277027540145  29.5479475434521 1.2281437473337 0.594243301108041  29.5349261328336 1.23027355343486 0.595237779668276  29.5157179819213 1.23340580858363 0.596758976202529  29.5094427616233 1.23442757163216 0.59726471435355  29.5031953213265 1.2354432776804 0.59777695195688  29.4969757410311 1.23645291672836 0.598295613046515  29.490784100737 1.23745648377603 0.598820620467452  29.4846204404443 1.2384539718234 0.599351895840686  29.4784848501528 1.23944537587049 0.599889359610214  29.4723773798627 1.24043068791729 0.600432930992033  29.466298079574 1.2414099039638 0.600982528022137  29.4602470292866 1.24238302001002 0.601538067516524  29.4542242790005 1.24335002905595 0.602099465099189  29.437432618203 1.2460417261838 0.603688236792651  29.4267273576945 1.24775270026507 0.604728566747064  29.4161141471904 1.2494438373454 0.605787128890343  29.4055930566907 1.25111512542478 0.606863414531464  29.3951641561953 1.25276655650322 0.607956903378402  29.3848275057043 1.25439812658071 0.609067064504132  29.3745831552178 1.25600983165726 0.610193357260628  29.3644311647356 1.25760167273287 0.611335232260864  29.3543715942578 1.25917365180754 0.612492132284814  29.3444044637844 1.26072577488126 0.61366349325645  29.3345298033153 1.26225804895404 0.614848745166747  29.3247476328507 1.26377048402587 0.616047313029676 
- 0.6 13 0.655705608 11 0.716637454 11 0.74639676 11 0.8 13
-7 0 0  7 14 3  29.6596001887553 1.20962777945423 0.587203269689657  29.8122989560081 1.18405813923974 0.579110702408281  29.977440593852 1.15566238989102 0.575507028593116  30.1534039622098 1.12469733742025 0.576319452436704  30.3383318909934 1.09138266583789 0.581343044372312  30.5302674701098 1.05585148715025 0.590267040324179  30.7273241494695 1.01811461035785 0.602726568181975  31.0578282151676 0.95204564820774 0.628467701132613  31.1893139114128 0.92506420271319 0.639924323437773  31.3216729276996 0.897073473371702 0.652603229655989  31.4543521840015 0.868022972856877 0.666396375236128  31.5868068202927 0.837836960627118 0.681196700197106  31.7185050065481 0.80641298927756 0.696901184080029  31.8489294027429 0.77362090954702 0.713412672832282 
- 0.5 8 0.803241134 6 1 8
-7 0 0  10 20 3  31.8489294127429 0.77362090385602 0.713412653179281  31.8323807119569 0.777781676802646 0.711317619503772  31.8157280711659 0.781942446402272 0.709223803642321  31.79897090037 0.786103426509907 0.707131539490944  31.7821086195691 0.790264830227564 0.705041167004657  31.7651406587631 0.79442686990925 0.702953032199476  31.7480664079522 0.798589757154976 0.700867487146418  31.7308852871361 0.802753702819753 0.6987848899815  31.7135966863149 0.80691891700259 0.696705604896739  31.6962000054886 0.811085609056497 0.694630002144153  31.6541659434921 0.821094765531907 0.689655787583891  31.6294239123169 0.826938855426486 0.686761080875399  31.6044658611315 0.83278682359725 0.683875453542339  31.5792920099358 0.838639258762225 0.680999797448753  31.5538941187295 0.844496675485438 0.678135745773718  31.5282800475129 0.850359723190918 0.675283590477248  31.5024357962853 0.856228863591687 0.672445501680446  31.4763669950471 0.862104723024775 0.669622015420338  31.450068953798 0.867987838649208 0.666814566917991  31.423540272538 0.873878773661013 0.664024343198462 
- 0 11 0.08329130498 9 0.2 11
-7 1 0  3 4 2  32.4183769697902 0.614559651360016 0.818501410646729  1 32.2407093113515 0.671764094897081 0.784904408830957  0.97996156 32.0505548523196 0.724489624011409 0.749904728278562  0.95992312 31.8489294127429 0.773620905355019 0.713412653345281  0.93988468
- 1.00922544 4 1.18410863 4
-7 0 0  4 13 10  32.4183769697902 0.614559651360016 0.818501410646729  32.4183769697902 0.614288263017125 0.809008347865833  32.4183769697902 0.612138687585026 0.765248555047354  32.4183769697902 0.600784069615711 0.686219157443659  32.4183769697902 0.569424242696199 0.590233999654609  32.4183769697902 0.51418802550262 0.492932551593039  32.4183769697902 0.442676084495985 0.404482602531892  32.4183769697902 0.355877809683288 0.32732432491707  32.4183769697902 0.252652863160367 0.268708200192954  32.4183769697902 0.138605139903391 0.233247368748655  32.4183769697902 0.0596177359616904 0.222970747120542  32.4183769697902 0.0198719786838683 0.22125799555919  32.4183769697902 -8.97180042613763e-007 0.221258007919191 
- 0.5 5 0.5107041 1 0.54916564 1 0.58762718 1 0.60685795 1 0.62608872 1 0.66455026 1 0.7030118 1 0.72224257 1 0.74147334 5
-7 0 0  4 11 8  32.4183769697902 -0.614560682900065 0.818500392946681  32.4183769697902 -0.614289290967174 0.809007759075805  32.4183769697902 -0.612139704835075 0.765248386617346  32.4183769697902 -0.600785176575763 0.686219394253671  32.4183769697902 -0.563781888948201 0.57296065804417  32.4183769697902 -0.484434072519383 0.444916593312403  32.4183769697902 -0.373083585980519 0.337094069381108  32.4183769697902 -0.235450488863298 0.258939153868949  32.4183769697902 -0.119238130213507 0.228109187164604  32.4183769697902 -0.0397466489178644 0.221258032639192  32.4183769697902 -8.97180042613763e-007 0.221258007919191 
- 0.25852715 5 0.26923077 1 0.30769231 1 0.34615385 1 0.38461538 1 0.42307692 1 0.46153846 1 0.5 5
-7 0 0  8 16 3  31.4590698742256 -0.865908783142458 0.667790990368369  31.4874241655723 -0.859557568106792 0.670826711469558  31.5155215469069 -0.85321088317034 0.673883359993741  31.5433610882292 -0.846868703485103 0.676959027485827  31.5709416695392 -0.840530994024078 0.680051847255728  31.598265710837 -0.834197742024265 0.683159674571342  31.6253308921225 -0.82786888667266 0.686280791676587  31.6521383633958 -0.821544389164263 0.689413212695369  31.7005847556969 -0.810011431893477 0.695146493661685  31.7223063067286 -0.804801598420023 0.697744317480075  31.743851797752 -0.799594654568706 0.700347574486723  31.765220838767 -0.794390563032525 0.702955259362582  31.7864130597735 -0.789189283530478 0.705566378337603  31.8074280907717 -0.783990772811562 0.708179949182741  31.8282656117614 -0.778794984649775 0.710795001215949  31.8489252927427 -0.773601869849115 0.713410575298183 
- 0.8 9 0.909602415 7 1 9
-7 0 0  11 32 4  30.6873264475697 -1.02513159269114 0.601824542228131  30.7097988986371 -1.02081442648608 0.603221326220474  30.7321328996979 -1.01650736928151 0.604645818509134  30.7543291307522 -1.01221026707741 0.606097056611064  30.7763885417999 -1.00792296287377 0.607574048399217  30.7983109628412 -1.00364527867059 0.60907607322556  30.8200987038761 -0.999377084391862 0.610601883050032  30.8417514049045 -0.995118191580576 0.612150853592604  30.8632683659265 -0.990868400763721 0.613722456346251  30.8846538169423 -0.986627620735295 0.615315088013897  30.9059067279517 -0.982395641230287 0.616928336876522  30.950103790051 -0.973558474310544 0.620345082037809  30.9730224911396 -0.968954957484889 0.622152401915652  30.9957865522208 -0.964361534343713 0.623982083349557  31.0183964132947 -0.959777959073005 0.625833198624481  31.0408561343615 -0.955204038284755 0.62770445558936  31.0631641954211 -0.950639492444951 0.629595200327166  31.0853213964735 -0.94608407536058 0.631504549644855  31.1073312675189 -0.941537579291633 0.633431354439373  31.1291923385572 -0.936999720142096 0.635375031291693  31.1509069895886 -0.932470269373959 0.637334604879768  31.1996524519039 -0.922252163836625 0.641797434253741  31.2265975831837 -0.916568299688656 0.644309580623061  31.2533145144527 -0.910896859739277 0.646844359246457  31.2798019857108 -0.905237295293462 0.649400756295879  31.3060727669586 -0.899589144303189 0.65197669277823  31.3321087981952 -0.893951747886428 0.654572515573525  31.3579394694221 -0.888324745429159 0.657184899404606  31.3835430406382 -0.882707450047352 0.659814529129507  31.4089336118442 -0.877099400175984 0.662459317437128  31.43410839304 -0.871500024566028 0.665118517191433  31.4590698742256 -0.865908783142458 0.667790990368369 
- 0.6 12 0.657654167 10 0.720639234 10 0.8 12
-7 0 0  14 41 4  30.9709463610409 -0.969355198172899 0.6220144492951  30.921260078681 -0.979367729657469 0.618042062666421  30.8723650563586 -0.989120434992698 0.614276964092589  30.8242432240729 -0.998627861566276 0.610716253800464  30.7768629818225 -1.00790452587289 0.607357283262922  30.730198679606 -1.01696342330317 0.604197649709847  30.6842473074235 -1.02581437672357 0.601235191429138  30.6389434352717 -1.03447223613479 0.598467982994703  30.5943225731523 -1.04294167553707 0.595894332351461  30.5503067010616 -1.05123719893109 0.593512776693343  30.5069171090007 -1.05936349731706 0.59132208141429  30.4641095569675 -1.06733073769549 0.589321237274255  30.4218743249614 -1.07514537306666 0.587509460513201  30.3801889829815 -1.08281454243093 0.5858861921241  30.2978814590721 -1.09787456814624 0.583016005680773  30.2572592071426 -1.10526543249729 0.581769087804548  30.2171495652375 -1.11252350984203 0.580710011658244  30.1775340433559 -1.11965467718074 0.579838669843858  30.1383945914969 -1.12666435651368 0.579155181524394  30.0997135496596 -1.13355755184109 0.578659893764869  30.0614736078433 -1.14033887616319 0.57835338376531  30.0236577760472 -1.14701257348017 0.578236462183757  29.9862493842704 -1.15358253979223 0.578310177244258  29.9492320225121 -1.16005234309953 0.578575820014876  29.9125895107717 -1.16642523540222 0.579034930448682  29.8763059090483 -1.17270416270046 0.579689304554763  29.8403654373412 -1.17889176899435 0.580541002416217  29.7335265522667 -1.19718767286336 0.583695066882027  29.6636106789458 -1.2090290544258 0.586596405519833  29.5948798856813 -1.22053336697222 0.590315040503459  29.5272116624672 -1.23171469250331 0.594874024084999  29.4604849392979 -1.2425825580195 0.60030108840977  29.3945791561675 -1.25314189652104 0.606629030155332  29.3293731530704 -1.26339282000794 0.613896188486503  29.2647440800007 -1.27333021447994 0.622147026337397  29.2005661269524 -1.28294311993653 0.631432831411449  29.1367092039194 -1.29221381537686 0.641812559643459  29.0730373008951 -1.30111652679972 0.653353850202641  29.0094067378728 -1.3096155992034 0.666134247514677  28.9456638948452 -1.31766296858563 0.680242672091792  28.8816427018044 -1.32519472994337 0.695781188365831 
- 0.5 15 0.625 13 0.75 13 1 15
-7 0 0  12 35 4  29.3706265150298 -1.25654995568292 0.610659127374751  29.3824114955896 -1.25470063159508 0.609340915032139  29.3943529661568 -1.25281937550572 0.60803980637734  29.4064503867314 -1.25090634141486 0.606757146919417  29.4186973173131 -1.24896195932251 0.605494290491434  29.4311055679024 -1.24698587822865 0.60425244687545  29.4436472984981 -1.24497950113335 0.603033034234531  29.4563547691017 -1.24294161403656 0.601837061871725  29.4691965497117 -1.24087381493834 0.600665888379097  29.4821861003286 -1.23877574883869 0.599520550107697  29.4953149209522 -1.23664804373763 0.598402169821577  29.5085816715824 -1.23449102863517 0.597311774204786  29.5348779228314 -1.23020192543145 0.595229075355863  29.5478974334498 -1.22807198033029 0.594234620942629  29.561039374074 -1.22591566022787 0.59326786228971  29.5743011847039 -1.22373335112421 0.592329631858146  29.5876802453393 -1.22152545801934 0.591420713441975  29.6011738259802 -1.21929240491328 0.590541840728231  29.6147791266265 -1.21703463280604 0.589693695824946  29.6284932972779 -1.21475260169765 0.588876907829151  29.6423133879343 -1.21244678658813 0.588092051357872  29.6562363685956 -1.2101176814775 0.587339645109135  29.6702591792616 -1.20776579436579 0.586620150398961  29.6979052205747 -1.203117203145 0.585276603885146  29.7115205412214 -1.200822328036 0.584649814046375  29.7252216418722 -1.19850749092605 0.584053963285073  29.7390054225269 -1.19617317681517 0.583489360595256  29.7528725031855 -1.19381970070339 0.58295635144694  29.7668067938474 -1.19144817659075 0.582454889967121  29.7808298445134 -1.18905796347722 0.581985636768833  29.7949131451824 -1.18665077436288 0.581548200319056  29.8090730558549 -1.18422622224772 0.581143052865813  29.8232972565305 -1.18178528513179 0.580770020572094  29.8375864572092 -1.17932832401509 0.580429167359905  29.8519372878909 -1.17685590889765 0.58012041325224 
- 0.2 13 0.269349856 11 0.336075946 11 0.4 13
-7 0 0  6 12 3  28.8816427218044 -1.32519473694337 0.695781198726832  28.9240191838171 -1.32020936270658 0.685496049742314  28.9678649458997 -1.3147800114487 0.675520404289496  29.0134545080651 -1.30887587116826 0.665848246645093  29.0610777403271 -1.30245597186334 0.656495869742879  29.1110549327008 -1.29546798953142 0.647501271513659  29.1954184967079 -1.28326072195161 0.633784307095138  29.2280715682588 -1.27844785372301 0.628788981260873  29.2618018098609 -1.27338956348276 0.623960916669552  29.2967188115194 -1.26806809223 0.619315941543927  29.3329456432401 -1.26246291796377 0.614873933166943  29.3706265150298 -1.25654995568292 0.610659127374751 
- 0 7 0.124914392 5 0.2 7
-7 0 0  3 4 2  28.8725411413721 -1.32624420999322 0.698247348627968  28.8755461215148 -1.32590835897726 0.697301197132028  28.878581911659 -1.32555912496068 0.696472385444662  28.8816427118044 -1.32519472794337 0.695781197682832 
- 0.75 4 1 4
-7 0 0  5 6 2  28.8636368209491 -1.32720991303909 0.701411936938278  28.8649620110121 -1.32707078503248 0.700888918047436  28.8665108610856 -1.32690633302467 0.70029633541829  28.86828721117 -1.32671518601559 0.699645906423396  28.8702957812654 -1.32649541500515 0.698954401028551  28.8725411413721 -1.32624420999322 0.698247348627968 
- 0.5 6 0.75 6
-7 0 0  13 14 2  28.8816427018044 -1.32519472994337 0.695781188365831  28.8755222515136 -1.32592130897788 0.697162805132455  28.868013081157 -1.32677168601827 0.699448616989025  28.8590177407297 -1.32774128406432 0.702815451384941  28.8485486002325 -1.32880937611506 0.70740703573803  28.8367860196738 -1.32992323216796 0.713312302218515  28.8242410090779 -1.3310061462194 0.720387980331591  28.8115928384772 -1.33193826126367 0.728419148537051  28.800157537934 -1.33258714729449 0.736549767700235  28.7903531774683 -1.3329999313141 0.744302834031486  28.7824601970934 -1.33319045232315 0.751316459132615  28.776408246806 -1.33321567332434 0.757438945656418  28.7720205165976 -1.33311831231972 0.762636611341294  28.7690560464568 -1.3329368063111 0.766952592424292 
- 0 14 0.5 14
-7 0 0  8 30 5  28.764323326232 -1.33232061228183 0.776095388547551  28.7648122762552 -1.33245871128839 0.774632508741068  28.7654243162843 -1.33258563029442 0.773112303825862  28.7661684063196 -1.33270025829986 0.771541043543231  28.7670499663615 -1.33280158530468 0.769925899656516  28.7680693364099 -1.33288876630882 0.768275056388105  28.7692203264646 -1.33296118331226 0.766597820867441  28.7704887065248 -1.33301851631498 0.764904733565024  28.7729088366398 -1.33309365831855 0.761889212362794  28.7740226766927 -1.33311744331968 0.760568654877071  28.7751926767482 -1.33313204732037 0.759246972780294  28.7764213568066 -1.33313742632063 0.757923462474431  28.7777078068677 -1.33313368732045 0.75659767851046  28.7790537169316 -1.33312102631985 0.755266996647256  28.7804584369984 -1.33309981131884 0.753928345599673  28.7831772771275 -1.33304545331626 0.751417432643411  28.7844759571892 -1.33301447031479 0.750248137676873  28.7858172972529 -1.33297760031304 0.749069462850889  28.7872006473186 -1.33293457731099 0.747884466070604  28.7886250373863 -1.33288550430866 0.746692712419999  28.7900891674558 -1.33283015630603 0.745497155624213  28.7915914175271 -1.33276854430311 0.744298598166285  28.7944445076627 -1.33264252229712 0.742073583118602  28.7957854177264 -1.33257981829414 0.741047555599869  28.7971527977913 -1.33251248929094 0.740020703261096  28.7985470678575 -1.33244055628753 0.738992697373268  28.799968697925 -1.33236405428389 0.737963072552363  28.8014180779939 -1.33228303328005 0.736931265798355  28.8028956180641 -1.33219755327599 0.735896588818211  28.8044018181356 -1.33210769427172 0.734858133632887 
- 0 9 0.08296566455 7 0.147422886 7 0.20273237 7 0.25 9
-7 1 0  4 5 2  25.9893210144265 1.67578665759559 0.495543775207065  0.71398086 25.9893209844264 1.64027518590889 0.753285898569159  0.76769375 25.9893209544264 1.55287732375771 0.999769719386511  0.83195628 25.9893209344264 1.41763240633392 1.22360330111804  0.9085414 25.9893209044264 1.24079115393441 1.41444155318237  1
- 0 5 0.15247929 5
-7 0 0  3 6 4  25.9893209044264 1.24079115393441 1.41444155318237  26.7065109984911 1.21027048648476 1.41444154918237  28.1506003870817 1.1255888294626 1.41444154018237  30.3018881792624 0.844080731411682 1.41444150818236  31.7217071467002 0.463445326412471 1.41444146518236  32.4183773097902 0.208515993143978 1.41444143718236 
- 0 4 0.39052523 1 0.78105045 1 1.18410863 4
-7 0 0  4 12 9  32.4183769697902 0.614559651360016 0.818501410646729  32.4183769697902 0.614775833620284 0.826063385215904  32.4183769697902 0.61507346469442 0.850609945421803  32.4183769697902 0.612673985430451 0.908538408493257  32.4183769697902 0.597748087161509 0.996774824704261  32.4183769697902 0.560491614381922 1.10084200428719  32.4183769697902 0.498796362461555 1.20319866714887  32.4183769697902 0.42361158841047 1.2871869911381  32.4183769697902 0.340060319251998 1.352535736242  32.4183769697902 0.274386795812673 1.38819172293557  32.4183769697902 0.230428868494783 1.40654101280711  32.4183773097902 0.208515993143978 1.41444143718236 
- 0.74147334 5 0.75 1 0.76923077 1 0.80769231 1 0.84615385 1 0.88461538 1 0.92307692 1 0.96153846 1 1 5
-7 0 0  13 14 2  31.8489294027429 0.77362090954702 0.713412672832282  31.7951551301888 0.788698901028186 0.717537605417206  31.7471985679109 0.801848136746741 0.721684376129167  31.7022006357737 0.813986303088273 0.725995719326945  31.6584965436978 0.825590051200421 0.730571922171303  31.6147113016181 0.837032235121896 0.735518512282253  31.5697071794806 0.848602492500454 0.740936609165599  31.5221731772228 0.860585042087594 0.74697464829539  31.4708648047858 0.873272269166205 0.753773572052322  31.4138943920798 0.886989661386746 0.761589035881536  31.3491636990053 0.902166613745613 0.770691025636858  31.2730186753886 0.919344705626528 0.781591987285626  31.1803926909891 0.939356664142045 0.794971441054115  31.0591049452283 0.963541400137759 0.812517825658524 
- 0 14 0.2 14
-7 0 0  13 38 4  30.9858134217471 0.977903962460944 0.823030042269828  31.0054603226803 0.974119616529197 0.820241282048369  31.02503550361 0.970311358604314 0.817442747134445  31.0445428845366 0.966478262527252 0.814636863284173  31.0639857954601 0.962619389787965 0.811826103072669  31.0833675863807 0.95873380561541 0.809012819695045  31.1026917672985 0.954820578544542 0.806199246957408  31.1219618182138 0.950878773828316 0.80338755872786  31.1411811391267 0.946907448140688 0.800579917656504  31.1603530200373 0.942905648765613 0.797778476660443  31.1794807409458 0.938872417630045 0.794985333765775  31.1985677518524 0.934806796439938 0.792202474467597  31.2176177027572 0.930707826028248 0.789431772492995  31.2450057740581 0.924754882988498 0.785461577976421  31.2533710244554 0.922928583551753 0.784250733179909  31.2617301648524 0.921095543323689 0.783042774632534  31.2700836352492 0.9192556741463 0.781837857173304  31.2784318356457 0.917408887371582 0.780636135581225  31.286775196042 0.915555093818531 0.779437764579305  31.2951141364381 0.913694203832144 0.778242898833552  31.303449056834 0.911826127213415 0.777051692950973  31.3117803872297 0.90995077329034 0.775864301483575  31.3201085276253 0.908068050854916 0.774680878922366  31.3284339180207 0.906177868213137 0.773501579705352  31.336756948416 0.90428013315 0.772326558209541  31.3621141596204 0.898473796014213 0.768759376702109  31.3791421104292 0.894540794969406 0.76638136858616  31.3961659412378 0.890574930390037 0.764023253532156  31.4131860720462 0.886575499558075 0.761686549835168  31.4302162028551 0.882541331136462 0.759372040590235  31.4472351336634 0.878472417815199 0.757082504521488  31.4642914144736 0.874366443503176 0.754816737356869  31.4813248252826 0.870224565454447 0.752579867080624  31.4984092860941 0.866043743231869 0.750369182520622  31.5154883869053 0.861824878416483 0.748189724261103  31.5326034477182 0.857565948474195 0.746040735561032  31.5497430585323 0.853266473280981 0.743924653173523  31.5669120893478 0.848925479314795 0.741842979814649 
- 0.6 14 0.685413043 12 0.723015358 12 0.8 14
-7 0 0  10 47 6  30.2321642859507 1.10541675850448 0.898718531898838  30.2431034264703 1.10371136642347 0.898252323556694  30.2539634969861 1.10201661634298 0.897765236006559  30.2647460574982 1.10033218826297 0.897257983647465  30.2754526380068 1.09865776718344 0.896731252389447  30.2860847285118 1.09699304710437 0.896185699659535  30.2966437990133 1.09533772602575 0.895621954391758  30.3071312995114 1.09369151094756 0.895040617040146  30.3175486400062 1.09205411286978 0.894442259563726  30.3278971904978 1.09042525179242 0.893827425441523  30.3570699018834 1.085826806574 0.892037542828508  30.3757338227699 1.08287685343389 0.890824579470895  30.3941776636459 1.07995312429502 0.889560973466877  30.4124087745118 1.07705400915732 0.888249689224594  30.430434295368 1.07417795002071 0.886893440676176  30.4482611962147 1.07132344288513 0.88549471027374  30.4658962470524 1.0684890267505 0.884055767983394  30.4833460778812 1.06567328161676 0.882578690289236  30.5006171387015 1.06287482448384 0.881065379184358  30.5299255000936 1.05810536225731 0.878412329851345  30.5420473306693 1.05612654516332 0.877289497967013  30.554083561241 1.05415536306969 0.876149715288877  30.5660364618088 1.0521913329764 0.874993575713963  30.5779082923726 1.05023397888343 0.873821637270299  30.5897012929328 1.04828282979076 0.872634422113909  30.6014176234893 1.04633742369836 0.871432416531817  30.6130594440422 1.04439730360621 0.870216070940044  30.6246288845918 1.04246201851429 0.868985799883609  30.6583228561921 1.03680424824556 0.865341249594502  30.6802557472339 1.03309372406932 0.862890075913077  30.7019447082641 1.02939598089368 0.860393628578503  30.7234067092834 1.02570753771849 0.857856487950995  30.7446580702928 1.02202498654358 0.855282699272746  30.765714721293 1.01834497736879 0.852675827870927  30.7865922722846 1.01466419319396 0.850039014567685  30.8073061032685 1.01097933901894 0.847375028561152  30.8278713442452 1.00728712084357 0.844686314868445  30.8622775658795 1.0010515595474 0.840120602658586  30.8761896265402 0.998513900384863 0.838255615570003  30.8900442671983 0.995970175573043 0.836380775159953  30.9038451378538 0.993419363625886 0.83449681821747  30.9176007585072 0.990860252738334 0.83260408787657  30.9313082191582 0.988292050633351 0.830703653645304  30.9449831498078 0.985713258904865 0.828795274157661  30.9586209604555 0.98312312204184 0.826880042343693  30.9722299311019 0.980520385930217 0.824958137189407  30.9858134217471 0.977903962460944 0.823030042269828 
- 0.4 11 0.423768824 9 0.467444023 9 0.498631602 9 0.55882774 9 0.6 11
-7 0 0  12 13 2  30.2921827688014 1.09603597105891 0.895836130508931  30.2011782944789 1.11030095673646 0.900691172234533  30.1193358205916 1.1229614403378 0.903570121558276  30.0421995569278 1.1348778259038 0.904950828640856  29.9670678533593 1.14650023945584 0.90503282298175  29.8917452397816 1.15819118201113 0.903918406590818  29.8142046260987 1.17025358258406 0.901603641197873  29.7324770322168 1.18298533518879 0.898041082865661  29.6440426080164 1.19673764084199 0.893060015900073  29.5461059433647 1.21189999556216 0.886436187497458  29.4342162780502 1.22905668337706 0.87771471975121  29.3023663417877 1.2489785763233 0.86624209054029  29.1372734839462 1.27325142047619 0.850442588228854 
- 0.4 13 0.6 13
-7 0 0  14 28 3  28.8816130618029 1.31007156122506 0.825958550520924  28.9169647634821 1.30509472798867 0.829263607191906  28.9521496251533 1.30010464775165 0.83260177028346  28.9871855868174 1.29510049751397 0.835962020150063  29.0220903284753 1.29008140927558 0.839333817245215  29.0568812501277 1.28504647803643 0.842707013224433  29.0915755017756 1.27999476479649 0.846071770126251  29.1261900534197 1.2749252995557 0.849418485912211  29.1607416950608 1.26983708731402 0.852737725161867  29.1952471366998 1.26472911007141 0.856020152884774  29.2297230483373 1.2596003298278 0.859256470564491  29.2641860899742 1.25444968958316 0.862437352194574  29.2986529616113 1.24927612033743 0.865553379419578  29.3331404232493 1.24407853909056 0.868594973747046  29.396651796266 1.23447097963422 0.874035267016446  29.425664687644 1.23006840042511 0.876458920353563  29.4547135890238 1.22564757221513 0.878816417176538  29.4838102504058 1.22120727900423 0.881107675754367  29.5129570517902 1.21674901879247 0.883306011570782  29.5421877531786 1.21226638357956 0.885455893204896  29.5714604745689 1.20776970236598 0.887461994297181  29.6008652259656 1.203243627151 0.889428036555563  29.6303213173647 1.19870192093528 0.891248601485035  29.6599170987704 1.19413313871828 0.892983178815423  29.6896135501809 1.18954279150025 0.894590720032777  29.7194432615977 1.18492767328104 0.896076315637339  29.7494127530212 1.18028777306066 0.897428640215571  29.7795303144517 1.17562254783907 0.898639505287084 
- 0 15 0.108720274 13 0.2 15
-7 0 0  3 4 2  28.9242454838279 1.30404539993883 0.829974324077663  28.9100657831544 1.30605622103434 0.828638383185209  28.8958550324794 1.30806489912975 0.82729979351063  28.8816130518029 1.31007156622506 0.825958539315924 
- 0.8 4 1 4
-7 0 0  12 24 3  28.8601063007814 1.31330906737883 0.82268733031055  28.8614316808444 1.31313434937053 0.82274501861229  28.8624522008929 1.31299965136413 0.822789372112396  28.863297550933 1.31288691135878 0.822833341564485  28.8640210209674 1.31278964735416 0.822875363849481  28.8646584409976 1.31270312735005 0.822917139350465  28.865233751025 1.3126242233463 0.822959526876478  28.8657625710501 1.31255100534282 0.823002262465508  28.8662574610736 1.31248179433954 0.823046042876588  28.866728991096 1.31241510433637 0.823091974164769  28.8671844511176 1.31235001333328 0.823140029021052  28.8676315311389 1.31228535833021 0.823191549941499  28.8686913811892 1.31213016732284 0.823324818417829  28.8693026712182 1.31203913231851 0.823410503047898  28.8699276812479 1.31194446931402 0.823507544505508  28.8705894212793 1.31184376130923 0.823611911505465  28.8712859013124 1.31173386330401 0.82374802881093  28.8720837413503 1.31161192029822 0.823874245944925  28.8729317513906 1.31147237029159 0.8240779478386  28.8739786114403 1.31130977528387 0.824259455528221  28.8751520914961 1.31111389627457 0.824558975871448  28.8766854615689 1.31086840026291 0.824876053215508  28.8785961816596 1.31054810824769 0.825373932987156  28.8816130618029 1.31007156222506 0.825958550559924 
- 0.875 13 0.92751383 11 1 13
-7 0 0  11 12 2  28.8645655309932 1.31271484335061 0.822917849715499  28.8608576008171 1.31321964237458 0.822664123999447  28.8565161106109 1.31381450340284 0.822342806575186  28.8515691703759 1.31449651643523 0.821949454003502  28.8461397301181 1.31524976547101 0.821486235500501  28.8404996098502 1.31603748150842 0.820970087241985  28.8350543495915 1.31680416154484 0.820428928410281  28.8304514793729 1.31745922457595 0.81992676697043  28.8268111092 1.31798406260088 0.819487979869589  28.8241705390746 1.3183719186193 0.819126354713412  28.8224176689913 1.31863697763189 0.818840918771855  28.8214102689435 1.31879804163954 0.818624878022593 
- 0.25 12 0.5 12
-7 0 0  6 12 3  28.8368130696751 1.31662173753617 0.820213447078046  28.8372438596955 1.31656407853344 0.820238455248234  28.8377307797186 1.31649844153032 0.820268244329649  28.8382732997444 1.31642474552682 0.820303881963342  28.8388705597728 1.31634285552293 0.820347117965395  28.8395212198037 1.31625255051864 0.820400783017944  28.8414541498955 1.31597984150569 0.82058911329289  28.8428430499615 1.31577930249616 0.820754275085734  28.8443864700348 1.31555132948533 0.820971929393072  28.8460843401154 1.3152959304732 0.821242067185903  28.8479445002038 1.31501440545983 0.821548027781436  28.8499903503009 1.3147105764454 0.821840538515329 
- 0.625 7 0.670401837 5 0.75 7
-7 0 0  9 18 3  28.8170659787371 1.31950260967301 0.817631542069412  28.8187143188154 1.31923380666024 0.818018112482774  28.8199704988751 1.31902845065049 0.818318092457022  28.821041528926 1.3188560246423 0.818556996768369  28.8219784689705 1.31870636463519 0.818759853132005  28.8228422790115 1.31857072162875 0.818932453323203  28.8236546390501 1.31844476762276 0.81908566842748  28.8244465890877 1.31832406961703 0.819222367787973  28.8252396091253 1.3182054456114 0.819345657781829  28.8268431692015 1.31797098560026 0.819560674746041  28.8276510992399 1.31785530359477 0.819653511585451  28.8285059892805 1.31773499958905 0.819738614286493  28.8294313893244 1.31760724958298 0.819814728100108  28.8304578393732 1.31746693857632 0.819891080647735  28.8316236994286 1.31731099856891 0.819954500111747  28.8329914594935 1.31712849856024 0.820027565955218  28.8346498695723 1.31691127054993 0.820087867103082  28.8368130696751 1.31662173753617 0.820213447078046 
- 0.5 10 0.564002183 8 0.625 10
-7 0 0  4 5 2  28.8214102689435 1.31879804163954 0.818624878022593  28.8156502586699 1.31971895868328 0.817389634033923  28.8116829784814 1.32035071371329 0.816543974222756  28.8095167383786 1.3206941167296 0.816091120395246  28.8091520483612 1.32074919773222 0.816031238844402 
- 0.5 5 0.75 5
-7 0 0  14 41 4  28.7799607669747 1.32584875397443 0.806925949891924  28.7804820969995 1.32574593896955 0.807164483405254  28.7809815970232 1.32564854896492 0.80738568044576  28.7814603370459 1.32555603996053 0.807592197739569  28.7819193970678 1.32546794495635 0.807786148258781  28.7823598570887 1.32538386695235 0.807969235108478  28.7827827871088 1.32530345494853 0.808142852877724  28.7831891671281 1.32522640594487 0.808308161746576  28.7835799571466 1.32515244994136 0.808466139374079  28.7839560471645 1.32508134493798 0.808617616007274  28.7843182871817 1.32501287793473 0.808763297714194  28.7846674671983 1.3249468559316 0.808903783250866  28.7850043372143 1.32488310692857 0.809039579469316  28.7853296072297 1.32482147692564 0.809171120688564  28.7870275873104 1.32449923891034 0.809860800771322  28.788199347366 1.32427493489968 0.810347918319459  28.7892284674149 1.32407801889033 0.810774668213728  28.7901542674589 1.32390153988195 0.811154176507754  28.7910028574992 1.3237406528743 0.811496611238019  28.7917938775368 1.32359171286723 0.811809561684883  28.7925428875723 1.32345185386059 0.812098899804626  28.7932624576065 1.32331874985426 0.812369427981475  28.7939632276398 1.32319043484817 0.812625148146622  28.7946550676727 1.32306515684222 0.812869311934219  28.7953479377056 1.32294125683634 0.813104494710389  28.796052137739 1.32281709883044 0.813332814540234  28.7967786577735 1.32269100382445 0.813556057219837  28.7980987978362 1.32246616281377 0.813934701288822  28.7986754678636 1.32236922880917 0.814091992425293  28.7992762578922 1.32226939680442 0.814248625337733  28.7999097579222 1.32216621279952 0.81439994839692  28.8005814479542 1.32205855479441 0.814548918387996  28.8012907579878 1.32194411878897 0.814712467898764  28.8020686480248 1.3218246877833 0.814849525277274  28.802894068064 1.32169402777709 0.815023795002551  28.8038142581077 1.32155489377049 0.815172375502608  28.8048211881555 1.32140097176318 0.815347617511932  28.8059527782093 1.3212309597551 0.815524058153312  28.8072330982701 1.32103893574598 0.815721839759706  28.8087071183401 1.32081803073549 0.81594866635548  28.8104346584222 1.32055462072298 0.816246845714643 
- 0.25 15 0.264507692 13 0.328367394 13 0.375 15
-7 0 0  6 12 3  28.7716188765785 1.32777682106601 0.801271957808374  28.7716674465808 1.32776265906534 0.801324072537849  28.7718009165871 1.32772365706349 0.801466960270636  28.7720204765976 1.32765991406046 0.80169905458966  28.7723309266123 1.32757175605627 0.802014812455658  28.7727404766318 1.32745984905096 0.802403638025126  28.7739010466869 1.32715956803669 0.803397269349321  28.7747092567253 1.32695948002719 0.804031209697431  28.7757038367725 1.32672676601614 0.804724457663359  28.7769053768296 1.32646336700363 0.805447632101708  28.7783278468972 1.32617079898973 0.806178801376437  28.7799607669747 1.32584875397443 0.806925949891924 
- 0.125 7 0.181002718 5 0.25 7
-7 0 0  10 11 2  28.7643514962333 1.33236617428399 0.776100352762787  28.7640454062188 1.33206785026982 0.778570837303129  28.7639826662158 1.33175198125482 0.780926068983996  28.7640817662205 1.33141705323891 0.783225414119209  28.7643339762325 1.3310566602218 0.785524203166396  28.7647412562518 1.3306631042031 0.787876335077116  28.7653408462803 1.33022821618245 0.790307766929603  28.76617678632 1.32973817215917 0.792885281537028  28.7673572763761 1.3291807771327 0.79559578477977  28.7690306264556 1.32853157210186 0.798494596016456  28.7716188765785 1.32777682106601 0.801271957808374 
- 0 11 0.125 11
-7 0 0  8 24 4  31.5453892183255 -1.51657874603362e-009 1.57010472357597  31.5453883083255 -1.29124022533062e-007 1.57010478257597  31.5453873983254 -2.56731596694096e-007 1.57010484157597  31.5453864883254 -3.84339301355136e-007 1.57010490057598  31.5453855883253 -5.11947136316183e-007 1.57010495957598  31.5453846783253 -6.39555101677236e-007 1.57010501857598  31.5453837683253 -7.67163197538295e-007 1.57010507757599  31.5453828583252 -8.9477142379936e-007 1.57010513657599  31.5453819483252 -1.02237978056043e-006 1.57010519557599  31.4238071425507 -0.0170570573111667 1.57798352495019  31.2867202260394 -0.036442841776942 1.58648465135397  31.1345681188126 -0.0582017511304347 1.59553074478364  30.9684260009212 -0.0820719134452065 1.60501951723433  30.7900713024498 -0.107386502227585 1.61483886970073  30.6019401435141 -0.133126647594176 1.62490890217903  30.4068382842473 -0.158235965141805 1.63518376966706  30.0829897888653 -0.196506227996545 1.65217397247405  29.956724472868 -0.210623006996056 1.65878295378796  29.8295375868269 -0.223898154842591 1.66545311910477  29.7021152707747 -0.236125589944363 1.67217969942427  29.5751287647432 -0.247136068738333 1.67895884274626  29.4492113187624 -0.25680495437358 1.6857852730705  29.3249398628598 -0.265052519066319 1.69265037139657  29.2028253170597 -0.27183839557063 1.6995418177239 
- 0 9 1.533855516e-006 8 0.205015484 7 0.33333333 9
-7 0 0  11 12 2  29.5198405221171 -0.250540240871022 1.68202467189188  29.595777855724 -0.244553236540655 1.67791268869657  29.6587537887151 -0.239133177788216 1.67453742053626  29.7132283113026 -0.234210951743423 1.67163664439848  29.7615812035992 -0.22966349766343 1.66907470927679  29.8055475956875 -0.225404839823155 1.66675338216653  29.8463686876264 -0.221341960301178 1.66460373206443  29.8851070694664 -0.21739925219291 1.66256736296771  29.9226982312518 -0.21349062610226 1.66059338687395  29.9601160930291 -0.20952135469473 1.65862991378069  29.9984639148505 -0.205371588006627 1.65661856168516  30.0394559567975 -0.200835396582169 1.65447111358316 
- 0.625 12 0.75 12
-7 0 0  12 24 3  29.129269883566 -0.275730274348485 1.70371406692207  29.141545064149 -0.275113237801177 1.70301424488883  29.1538864147352 -0.274481082234151 1.70231205285548  29.1663358953266 -0.273831464730296 1.7016050978219  29.1789336159249 -0.273161941410495 1.70089111878799  29.1917186765322 -0.272469924570626 1.70016792975364  29.2047299771502 -0.271752640595557 1.69943337671875  29.2180068877808 -0.271007084628145 1.69868529768322  29.231589888426 -0.270229967968234 1.69792149364694  29.2455211990877 -0.269417654189651 1.69713968860981  29.259845479768 -0.268566079940204 1.6963374975717  29.2746105804693 -0.267670656414673 1.69551238953251  29.3051263419187 -0.26578163852795 1.6938108924517  29.3208769926669 -0.264788092876759 1.69293450241007  29.3371724234409 -0.263739770370966 1.6920297433671  29.3540683842434 -0.262633289998411 1.69109373432264  29.3716269150774 -0.261453951007396 1.69012321127654  29.3899128359459 -0.260212372329424 1.68911500622865  29.4090043168527 -0.258869308570632 1.68806489817878  29.4289797378015 -0.257452605133342 1.68696926112674  29.4499371187969 -0.255916220084368 1.68582291807229  29.4719807098439 -0.254266344425003 1.6846208930152  29.4952341609484 -0.252480240727167 1.68335709995517  29.5198405221171 -0.250540240871022 1.68202467189188 
- 0.5 13 0.5625 11 0.625 13
-7 0 0  8 16 3  29.2028253170597 -0.27183839557063 1.6995418177239  29.0800910612301 -0.278658710669578 1.70646823605289  28.9504753550737 -0.284599020038727 1.71391870540677  28.8146183686209 -0.28943955207164 1.72188511978515  28.6734146019141 -0.292958081824762 1.73034535218699  28.5280284450086 -0.294952795190505 1.73925944661039  28.3798484679704 -0.295272037426669 1.74856567105241  28.2303963908718 -0.293835552323439 1.75817988550906  27.8875461245873 -0.286473085760741 1.78075124358114  27.6943281854099 -0.27933648031277 1.79385060520333  27.5049981964172 -0.269183235492517 1.80707984783168  27.3230443977749 -0.25617312405157 1.8201734894536  27.1515664396301 -0.240681010353734 1.83283718205509  26.9927678020876 -0.223200862065472 1.84480372062347  26.8479659352099 -0.204243778621058 1.8558743091493  26.7177242490237 -0.184290442138326 1.86592110662649 
- 0.33333333 9 0.478381373 7 0.66666667 9
-7 0 0  7 20 4  26.6072784237779 -0.16639063003013 1.87446000803207  26.6164925142155 -0.167967448674025 1.87374662799818  26.6255547846459 -0.169501796540903 1.87304521096487  26.6344717550695 -0.170995851452867 1.8723552539321  26.6432494954864 -0.17245157623501 1.87167628589985  26.651893755897 -0.173870778940418 1.8710078628681  26.6604100463015 -0.175255173073174 1.87034955783683  26.7085333985872 -0.183002351687145 1.86663094766021  26.7455170703438 -0.188656566354706 1.86377829952472  26.7803306119974 -0.193751365728696 1.86109870139744  26.8134074035685 -0.198403605426665 1.8585587912768  26.8451097750742 -0.202702083512832 1.85613078516148  26.8757536865297 -0.206715080145439 1.85379058005032  26.9368850894333 -0.214456041010115 1.84913682682928  26.967301190878 -0.218162538933164 1.84682940371969  26.9972157322989 -0.22167675116708 1.84456834261229  27.0269377437106 -0.225043725086003 1.842330466506  27.0567840151282 -0.228301680947747 1.84009231039969  27.0871000765682 -0.231484590937928 1.83782855529217  27.1183171680509 -0.234623878395036 1.83550800218195 
- 0.125 8 0.13670061 6 0.192082866 6 0.25 8
-7 0 0  8 9 2  26.4173907547587 -0.130843790654746 1.88911937372835  26.4312802954184 -0.133671459454053 1.88805401267775  26.4472918261789 -0.136892483595044 1.88682281061927  26.4655885970479 -0.140519586443322 1.88541340755233  26.4864593380393 -0.144583570641351 1.88380355647586  26.5103123291722 -0.149130629395324 1.88196166438838  26.5377448904752 -0.154222017018152 1.87984137328767  26.569594631988 -0.159941751890825 1.87737759417065  26.6072784237779 -0.16639063003013 1.87446000803207 
- 0 9 0.125 9
-7 0 0  10 11 2  26.4173907547587 -0.130843795363747 1.88911937672835  26.3567195118769 -0.115263839834738 1.89400557996043  26.3094811696332 -0.101604542922957 1.8977797871397  26.2714430878265 -0.0890809856171196 1.90081696228396  26.2405837963608 -0.0772326661653546 1.90328776340131  26.2155186951703 -0.0656905689771344 1.90530944949734  26.1954721342181 -0.0541343529342437 1.90694288157492  26.1799265934797 -0.0422448644935233 1.90822926063602  26.1687265329478 -0.0296394476247982 1.90917105068075  26.1619808026274 -0.0158419111434504 1.90974727370812  26.1604470425545 6.88644543408859e-009 1.90984293371267 
- 0 11 1 11
-7 0 0  8 23 4  26.2259318656649 -0.067715742568325 1.9044854114582  26.2300461658603 -0.0697902440828586 1.90415126244233  26.2335799760281 -0.0714924854057107 1.90386475242872  26.2367425561783 -0.0729724572880056 1.90360893941657  26.239641486316 -0.0742931491807351 1.90337448740543  26.2423591764451 -0.0755044835972704 1.90315472039499  26.2449545865684 -0.0766367350200494 1.90294477138502  26.2474790366883 -0.0777160829223157 1.90274067937533  26.2527221869373 -0.0799124545346377 1.90231789635525  26.2554359270662 -0.0810229971503857 1.90209971734488  26.2581820371967 -0.0821235780726605 1.9018789873344  26.2610158273313 -0.0832366442095283 1.90165119832358  26.2639985074729 -0.0843845442220506 1.9014115023122  26.2672013376251 -0.0855913360503701 1.90115444529999  26.2707175577921 -0.0868861218668691 1.90087307428662  26.2765462380689 -0.0889762506411449 1.90040824026454  26.2784943281614 -0.0896675178809784 1.90025308425717  26.2805574982594 -0.0903918085133803 1.90008898424938  26.2827541083638 -0.091154473298605 1.89991448224109  26.2851060184755 -0.09196178143795 1.89972783823223  26.2876401285958 -0.0928213832317789 1.89952686922268  26.2903911187265 -0.0937432583365656 1.89930860321231  26.2934057288697 -0.0947411496019629 1.89906874020092 
- 0.5 9 0.563946704 7 0.63410039 7 0.66666667 9
-7 0 0  13 50 5  26.1714319830763 -0.0281336217002753 1.90893723466965  26.1722381031145 -0.0292180816067843 1.90886990466645  26.1730712831541 -0.0302889593156483 1.90880036466315  26.1739290331949 -0.0313432450327242 1.90872896665976  26.1748142332369 -0.032394750766668 1.90865434065621  26.1757130732796 -0.0334076425647778 1.9085803096527  26.1766405033237 -0.0344302162213474 1.90850179164897  26.177573893368 -0.0354072443577538 1.90842499364532  26.1785285334133 -0.0363824664830743 1.90834500864152  26.179489163459 -0.0373247885538322 1.90826562663775  26.1804597835051 -0.0382484626217044 1.90818524763393  26.1814348735514 -0.0391463799983532 1.90810488263011  26.1824125135978 -0.0400193617608176 1.9080245736263  26.1839469436707 -0.0413490738639755 1.90789902662034  26.1845039436971 -0.0418233876665042 1.90785355561818  26.1850604537236 -0.0422893617166368 1.90780821561602  26.18561608375 -0.0427471068913785 1.90776302661388  26.1861704337763 -0.0431967355247347 1.90771800761174  26.1867231038025 -0.0436383606997108 1.90767317960961  26.1872737338287 -0.0440720955543121 1.90762856460749  26.1878219138547 -0.044498052580544 1.90758418260538  26.1883672938806 -0.0449163429264117 1.90754005360329  26.1889094939064 -0.0453270756949205 1.9074962006012  26.189448153932 -0.0457303572480753 1.90745264259913  26.1899829239574 -0.0461262905018811 1.90740940159708  26.1909118340015 -0.0468068058552039 1.90733428459351  26.1913078040203 -0.047094550456871 1.90730226159199  26.191701244039 -0.0473782510263461 1.90727043759048  26.1920920240576 -0.047657949070631 1.90723882158898  26.192480004076 -0.0479336846177277 1.90720742158749  26.1928650540943 -0.0482054962166381 1.90717624658601  26.1932470341124 -0.0484734209403638 1.90714530558454  26.1936258241304 -0.0487374943819067 1.90711460658308  26.1940013041482 -0.0489977506562682 1.90708415658163  26.1943733541659 -0.0492542223994499 1.9070539655802  26.1947418641834 -0.0495069407724534 1.90702404157878  26.1951067242007 -0.04975593545328 1.90699439157737  26.1961183742488 -0.0504431608969215 1.90691211657346  26.1967567442791 -0.0508730920153421 1.90686012557099  26.1973823943088 -0.0512909752331905 1.90680911056857  26.1979948443379 -0.051696775417465 1.90675912756619  26.1985936443664 -0.0520904743901647 1.90671023056387  26.1991783643941 -0.0524720702512895 1.9066624645616  26.1997486244212 -0.0528415766918401 1.90661587655939  26.2003040744476 -0.0531990223228179 1.90657050355724  26.2008443844733 -0.0535444499892248 1.90652638355514  26.2013692644982 -0.0538779160950636 1.90648354855311  26.2018784845224 -0.0541994899183375 1.90644202555113  26.2023718245458 -0.0545092529370505 1.90640183754922  26.2028490945685 -0.0548072981472068 1.90636300654738 
- 0.16666667 14 0.226857112 12 0.261165727 12 0.28692533 12 0.33333333 14
-7 0 0  8 16 3  26.1604470425545 1.77635692337242e-018 1.90984293371267  26.1607000625665 -0.00261342196013088 1.90982715271192  26.1610724325842 -0.0048322910525215 1.90979921171059  26.1614839426038 -0.00682925173437204 1.90976687470905  26.1619465926257 -0.0086994314182008 1.90972928470727  26.1624547626499 -0.010506752769044 1.90968720870527  26.1630310326772 -0.0123073737535689 1.90963889970298  26.1636971327089 -0.0141521883591928 1.90958274470031  26.1650169727716 -0.017315307820433 1.90947199269505  26.1655850327985 -0.0185775882593881 1.90942443069279  26.1662235128289 -0.0198946319369443 1.90937107769026  26.1669491828633 -0.0212844779519584 1.90931057468738  26.1677873029031 -0.0227698912045117 1.90924080268407  26.1687719129499 -0.0243782691409056 1.90915893168018  26.1699542630061 -0.0261456898648536 1.90906065767551  26.1714319830763 -0.0281336217002753 1.90893723466965 
- 0 9 0.102114573 7 0.16666667 9
-7 1 0  3 4 2  26.1604470425545 0 1.90984293371267  0.85627786 26.1033286698415 1.16600005538203e-008 1.91340561488189  0.85664204 26.0462845771321 2.31100010976661e-008 1.91696526805096  0.85700622 25.9893209344264 3.43500016315375e-008 1.92052189721989  0.85737039
- 0 4 0.08150659 4
-7 1 0  2 3 2  25.9893209344264 3.43500016315375e-008 1.92052189721989  0.85737039 25.9893209344264 -0.723603771269333 1.92052220221991  0.8573703 25.9893209044264 -1.2407928679345 1.41444127418235  1
- 0.49999967 3 1 3
-7 1 0  2 3 2  32.4183771497902 -9.50500045146328e-008 1.51294273986092  0.81755784 32.4183771297902 -0.127524357907082 1.51294293586093  0.81755753 32.4183772197902 -0.208516963644024 1.41444139018236  1
- 0 3 0.50000087 3
-7 1 0  3 4 2  32.4183771497902 -9.50500045146328e-008 1.51294273986092  0.81755784 32.1295243260704 -7.68100036482792e-008 1.53207982076988  0.81934426 31.8381423422305 -4.48100021283608e-008 1.55113363467489  0.82113067 31.5453892383255 0 1.57010472357597  0.82291708
- 2.57033879 4 2.97015674 4
-7 1 0  2 3 2  32.4183771497902 -9.50500045146328e-008 1.51294273986092  0.81755784 32.4183771797902 0.127523624177047 1.51294254486091  0.81755816 32.4183773097902 0.208515993143978 1.41444143718236  1
- 0.50000087 3 1 3
-7 1 0  2 3 2  25.9893209344264 3.43500016315375e-008 1.92052189721989  0.85737039 25.9893209344264 0.723602733989284 1.92052159121988  0.85737049 25.9893209044264 1.24079115393441 1.41444155318237  1
- 0 3 0.49999967 3
-7 0 0  8 16 3  26.1713970830746 0.0280867553500492 1.90894003966978  26.1699539730061 0.0261416401106612 1.90906071967551  26.1687868129506 0.0243988984198854 1.90915784368013  26.1678081129041 0.0228036109531133 1.909239278684  26.1669703428643 0.0213226307687706 1.90930904368731  26.1662415628297 0.019930480645647 1.90936980369019  26.1655980927992 0.0186058244577292 1.90942355369275  26.1650238327719 0.0173313863651966 1.90947160569503  26.163700322709 0.0141596479355472 1.9095825807003  26.1630312126772 0.012309692981679 1.90963892170298  26.1624508326497 0.0104966731585652 1.90968752370529  26.1619383526253 0.0086739333079897 1.9097299227073  26.1614741726033 0.00678879003845021 1.90976760670909  26.1610623725837 0.00478312311518615 1.90979996071063  26.1606957625663 0.0025690390610228 1.90982741871193  26.1604470425545 0 1.90984293371267 
- 0.83333333 9 0.89855491 7 1 9
-7 0 0  13 50 5  26.2028224445672 0.0547906460574159 1.90636519754748  26.2023770245461 0.0545124133092006 1.90640143254921  26.2019104845239 0.0542195089292884 1.90643943855101  26.2014229045007 0.0539117447716704 1.9064792045529  26.2009144444766 0.0535889641253391 1.90652071255487  26.2003853544515 0.0532510443112888 1.90656393455692  26.1998359844254 0.0528978992595153 1.90660883355906  26.1992667343983 0.0525294821120164 1.90665536556127  26.1986781143704 0.0521457878017919 1.90670347656355  26.1980707143415 0.0517468556478436 1.90675310556591  26.1974452143118 0.0513327719391757 1.90680418156833  26.1968023542813 0.0509036725317946 1.90685662557083  26.19614297425 0.0504597454287092 1.90691034857338  26.1951095442009 0.0497577142563645 1.90699441657737  26.1947466641836 0.0495100815316026 1.90702391157877  26.1943795441662 0.0492583341826452 1.90705372858019  26.1940083441486 0.0490024720844924 1.90708385558162  26.1936332241308 0.0487424960071442 1.90711427858306  26.1932543741128 0.0484784076226007 1.90714498558452  26.1928719540946 0.048210209496862 1.90717596258599  26.1924861740763 0.0479379050939282 1.90720719658748  26.1920972140578 0.0476614987777996 1.90723867458897  26.1917052740392 0.0473809958064764 1.90727038159048  26.1913105640204 0.047096402339959 1.90730230259199  26.1909132940016 0.0468077254322476 1.90733442559352  26.1899790839572 0.0461233298507405 1.90740995559711  26.1894402839316 0.0457243946167921 1.90745350959918  26.1888978039058 0.0453181905484984 1.90749736260126  26.1883521638799 0.0449047458028609 1.90754147960335  26.1878039138539 0.044484094497881 1.90758582360546  26.1872535838277 0.0440562777205608 1.90763036160758  26.1867017438015 0.0436213445499026 1.9076750576097  26.1861489337753 0.0431793530619091 1.90771987561183  26.185595723749 0.0427303713525836 1.90776478161396  26.1850426637227 0.0422744785459299 1.9078097416161  26.1844903036965 0.0418117658139522 1.90785472161823  26.1839391936703 0.0413423373876556 1.90789968762037  26.1823476735947 0.0399632018841501 1.90802983262655  26.1813118835455 0.0390363598131275 1.90811489263059  26.1802867734968 0.0380881202090885 1.9081994026346  26.1792765134489 0.0371216418491833 1.90828295763857  26.1782854134018 0.0361389125775062 1.90836517364248  26.1773158033557 0.0351434711112252 1.90844589064631  26.176374753311 0.0341412782436236 1.90852405265002  26.1754583632675 0.033125399184372 1.90860097365368  26.1745786532257 0.0321183254695385 1.90867390265714  26.1737277931853 0.0310984991010994 1.90874546566054  26.1729151331467 0.0300904355812189 1.90881315766376  26.1721378131098 0.0290851556404707 1.90887809666684  26.1713970830746 0.0280867553500492 1.90894003966978 
- 0.66666667 14 0.713097125 12 0.737756681 12 0.770746153 12 0.83333333 14
-7 0 0  10 11 2  26.1604470425545 6.88644544808859e-009 1.90984293371267  26.1619825026274 0.0158596199022915 1.90974715470812  26.1687284929478 0.029659781555764 1.90917055668073  26.1799226934795 0.0422613242453051 1.90822900063601  26.1954568542174 0.0541432426356659 1.90694336357495  26.2154868651688 0.0656904805501303 1.90531122849742  26.2405334363584 0.0772236153999247 1.90329107040147  26.2713746078233 0.0890644987763365 1.90082188628419  26.3094034796296 0.101584319499996 1.89778566413998  26.3566516718737 0.115246429239911 1.89401094496069  26.4173906747587 0.130843780695746 1.88911926972835 
- 0 11 1 11
-7 0 0  7 20 4  26.2947420389332 0.0951825669969291 1.89896225719586  26.2909502687531 0.0939328659485715 1.89926392221019  26.2875919785936 0.0928087603491794 1.89953002922283  26.2845659484498 0.091780359603333 1.89976994223423  26.2818066083188 0.0908289930571455 1.89998907724463  26.2792663381981 0.0899411425729748 1.90019115725423  26.276906658086 0.089105563976287 1.90037925726317  26.270148067765 0.0866817601061625 1.9009189902888  26.2662398475794 0.0852349088684407 1.9012325743037  26.2627134574119 0.0838957542548343 1.90151646731718  26.2594353972562 0.0826211825922954 1.90178033532971  26.2562894371068 0.0813696042678486 1.90203337434173  26.253179316959 0.0801032625777006 1.90228307035359  26.247851946706 0.0778718401157138 1.90271195337396  26.245684146603 0.0769477443088216 1.90288677738227  26.2434400164965 0.0759738553875643 1.90306782339087  26.2410781863843 0.0749298197269753 1.90325838639992  26.2385435162639 0.0737853707176169 1.90346296240964  26.235765886132 0.0725019408106572 1.9036875034203  26.2326150859823 0.0709962630481414 1.90394302443244 
- 0.33333333 8 0.370941824 6 0.448433655 6 0.5 8
-7 0 0  9 10 2  26.6072797137779 0.166390913513144 1.87445947603204  26.571131682061 0.160204900173324 1.87725790616496  26.5415197306545 0.154893509450047 1.87954860727376  26.5164031294615 0.150255095239734 1.88149022036599  26.4947145384314 0.146150760790788 1.88316556344556  26.4756851075275 0.142481518250509 1.88463425151532  26.4587999167255 0.139170872265261 1.88593611757715  26.4436531860061 0.136159371824223 1.88710247163255  26.4299373153546 0.133398069388068 1.88815692268264  26.4173906847587 0.130843791972746 1.88911928272835 
- 0.875 10 1 10
-7 0 0  7 20 4  27.0541411050027 0.227925169143864 1.84029762140944  27.0321313539573 0.225543144787724 1.84194690348778  27.0106869929387 0.223154149657253 1.84355838856432  26.9896027119373 0.220741500292658 1.84514714763978  26.9687069409448 0.218288335297139 1.84672586171477  26.9478457099539 0.215776997172857 1.84830599978982  26.9268711989577 0.213188057083889 1.84989864786547  26.8756773165261 0.206705541787986 1.85379522405054  26.8451987950785 0.202712858017344 1.85612264816109  26.8137754935859 0.198452075104967 1.8585292822754  26.7809783620282 0.193842057240003 1.86104782639502  26.7463170503818 0.188775299038345 1.86371587452175  26.709202368619 0.183110107801263 1.86657881365773  26.6604715763044 0.175265119746646 1.87034450183659  26.651999925902 0.173888107184242 1.8709993678677  26.6433813154926 0.172473334952043 1.87166580689935  26.6346082150759 0.17101865146195 1.87234440093158  26.6256726746515 0.169521753389851 1.87303576396442  26.616566224219 0.167980114340627 1.8737405529979  26.6072797137779 0.166390913513144 1.87445947603204 
- 0.75 8 0.796268396 6 0.861538591 6 0.875 8
-7 0 0  8 16 3  26.7177242590237 0.184290512227329 1.86592093162648  26.8479645052098 0.204243648119052 1.85587422014929  26.9927653120875 0.223200562146457 1.84480369662347  27.15156329963 0.240680572546713 1.83283719505509  27.3230410577747 0.256172578121544 1.8201735124536  27.5049951164171 0.269182607054487 1.80707984983168  27.6943257854098 0.279335788839737 1.79385055920333  27.8875447845872 0.286472345361706 1.78075112558114  28.2303956808718 0.293834705481399 1.75817972150905  28.3798472179703 0.295271171091627 1.7485655360524  28.5280268450085 0.294951956075466 1.73925932361038  28.673412871914 0.292957312115725 1.73034522118698  28.8146167586208 0.289438886746609 1.72188496178514  28.9504741050737 0.284598485701702 1.71391850140676  29.0800904112301 0.27865832609656 1.70646797205288  29.2028254870597 0.27183817297862 1.69954147872388 
- 0.33333333 9 0.521619607 7 0.66666667 9
-7 0 0  9 18 3  29.4547642790262 0.255517210528416 1.68556186205989  29.383430965638 0.260802167271438 1.6894550472448  29.3195784226052 0.265105946808856 1.69298179141232  29.2614303298433 0.268717273663385 1.6962237875663  29.2077709572946 0.271804821613036 1.69924043570959  29.1576600249145 0.27448294518524 1.7020787678444  29.1103434326671 0.276836016852005 1.7047778469726  29.0651763405217 0.278923836026171 1.70737184009581  29.0215808684511 0.280793253790963 1.70989233721552  28.9519997251461 0.283547610442788 1.71394226040789  28.9254087038831 0.28454244591704 1.71549678448172  28.8990818326327 0.285472358045209 1.71704248855514  28.8728800613882 0.286344300562624 1.71858737162852  28.8466632701429 0.287163652364541 1.72013964970225  28.82028430889 0.287934591056159 1.72170810177674  28.7935838976218 0.288660088743618 1.72330238085247  28.7663843263299 0.289341585202987 1.72493341492994  28.7384762050043 0.289978774745252 1.72661425400977 
- 0.375 10 0.451498985 8 0.5 10
-7 0 0  14 15 2  29.9096498506321 0.214757286947423 1.66128009790657  29.8777571291172 0.218065511273556 1.66295632998618  29.8519558078917 0.220680556017763 1.6643167870508  29.8287849967912 0.222998044760838 1.66553916910886  29.8070504157589 0.225139057483531 1.66668686916337  29.7856825947439 0.227224261483573 1.66781516421697  29.7640259737153 0.229297325768038 1.66896038927136  29.7414337326422 0.231453542408453 1.67015480832809  29.717070201485 0.233712176098732 1.67144652438945  29.6903914102179 0.236184562371164 1.67286135145665  29.6599849487736 0.238905117454384 1.67448028553354  29.6248178671033 0.24202056907036 1.67635640462265  29.5821503750767 0.245639895649268 1.67864535873137  29.528848772545 0.250028424066712 1.68151851886784  29.4547642790262 0.255517210528416 1.68556186205989 
- 0.25 15 0.375 15
-7 0 0  8 16 3  29.2028254870597 0.27183817297862 1.69954147872388  29.3249378528597 0.265052625344324 1.69265012739656  29.4492078687623 0.256805311205597 1.68578509207049  29.575124594743 0.247136586436357 1.67895869674626  29.7021110207745 0.236126172514391 1.67217956342426  29.8295338368268 0.223898707301617 1.66545297110477  29.9567216828679 0.210623443878076 1.65878277578795  30.0829883088652 0.196506481071557 1.65217374847404  30.4068397542473 0.158235744844794 1.63518345066704  30.6019436535143 0.133126081618149 1.62490851517901  30.7900770524501 0.10738555900654 1.6148383977007  30.9684337309216 0.0820706558411468 1.60501895923431  31.134577168813 0.0582003356043675 1.59553012578361  31.2867296660398 0.0364414404928755 1.58648401635394  31.4238159825511 0.0170558049651072 1.57798293795016  31.5453892183255 -1.51657873603362e-009 1.57010472357597 
- 0.66666667 9 0.794985529 7 1 9
-7 0 0  1 2 2  28.8816427118044 -1.32519472694337 0.695781197647832  32.0208866309104 -6.53046184918028 1.31476716144809 
- 0 2 55.21292144 2
-7 0 0  3 12 10  32.0208866309104 -6.53046184918028 1.31476716144809  32.0174108207453 -6.5303949531771 1.31543514747981  32.0123115705031 -6.5302285001692 1.31709785555879  32.0059034301988 -6.52993352415518 1.32004483969876  32.0011686399739 -6.52968809114353 1.32249696181523  31.9965438297542 -6.52943259913139 1.32504963093648  31.9919472195359 -6.52916172411853 1.32775604306502  31.9875125893252 -6.52887544610493 1.33061643320089  31.983276369124 -6.52855022508948 1.33386606035524  31.9796234889505 -6.52817485107165 1.3376170325334  31.9776155188552 -6.52787563105744 1.34060717367542  31.9768135388171 -6.52772034505006 1.34215900474913 
- 0 4 0.2003372 1 0.30051995 1 0.4007027 1 0.50095845 1 0.6012142 1 0.70136214 1 0.80151008 1 0.90075504 1 1 4
-7 0 0  1 2 2  31.9768135388171 -6.52772034505006 1.34215900474913  28.764323326232 -1.33232061228183 0.776095388572551 
- 0 2 55.31736968 2
-7 0 0  3 13 11  31.9768135388171 -6.52772034505006 1.34215900474913  31.9764636788005 -6.52739737503472 1.34538679790244  31.9782710188863 -6.52680712600669 1.35128621018265  31.984897389201 -6.52656153899502 1.35374180329928  31.989697889429 -6.52635515198522 1.35580529939729  31.9951559396883 -6.52629706998246 1.35638671142491  32.000118179924 -6.5261503899755 1.35785351649458  32.005677440188 -6.52615118497553 1.35784651349425  32.0090679103491 -6.52607721797202 1.35858633352939  32.0125978305167 -6.52604328697041 1.35892605054552  32.0163001006926 -6.52604464097047 1.35891314154491  32.019572370848 -6.52595305996612 1.35982898558841  32.0213115109306 -6.52591981196454 1.36016157360421 
- 0 4 0.18739138 1 0.28860531 1 0.38981924 1 0.49147355 1 0.59312786 1 0.69484995 1 0.79657203 1 0.79958851 1 0.89828602 1 1 4
-7 0 0  1 2 2  32.0213115109306 -6.52591981196454 1.36016157360421  28.8815857718017 -1.3100262312229 0.825953907820704 
- 0 2 2.52492265 2
-7 0 0  3 20 18  32.0208866309104 -6.53046184918028 1.31476716144809  32.0599073027638 -6.53130058622012 1.30639122705025  32.1191450255775 -6.53226358526586 1.29677680959359  32.19857216935 -6.53307327830432 1.28869800320987  32.2584536021943 -6.53347889432358 1.2846543290178  32.3182868450362 -6.53371059933459 1.28234875990829  32.3783239178878 -6.53379236833847 1.28154173086996  32.4381797307308 -6.53373951533596 1.28208011489554  32.4982063135819 -6.53357143732798 1.28377011997581  32.5579894764214 -6.53329855631502 1.28650751810583  32.6179377292688 -6.53293795829789 1.29012160227749  32.6776144221033 -6.53249803027699 1.2945284974868  32.7374592549458 -6.5319907352529 1.2996086937281  32.7970201577748 -6.53141960822577 1.30532680299969  32.8567681006127 -6.53080887319676 1.31144079329009  32.9162629034385 -6.53017449516663 1.31779103359171  32.9759893362754 -6.52948805113403 1.32466167791805  33.0354316890987 -6.52871351909724 1.3324126432862  33.0751543109855 -6.52811956706903 1.33835550956847  33.0949317119248 -6.52779751805373 1.34157750972151 
- 0 4 0.11096149 1 0.1664966 1 0.22203172 1 0.27757823 1 0.33312473 1 0.38866776 1 0.4442108 1 0.49975652 1 0.55530224 1 0.61084887 1 0.66639551 1 0.72194273 1 0.77748996 1 0.83303754 1 0.88858512 1 0.94429256 1 1 4
-7 0 0  3 18 16  33.0949317119248 -6.52779751805373 1.34157750972151  33.0749870309775 -6.52769816004901 1.34256712776851  33.0350597490811 -6.52744555603701 1.3450849458881  32.9754666962506 -6.526939984013 1.35012765812762  32.9158161034173 -6.52633654398434 1.35614847341359  32.856418010596 -6.52566978495267 1.36280215672963  32.796898447769 -6.52496807991934 1.36980508006225  32.7375086249481 -6.52429319588728 1.37653997438214  32.6778686421154 -6.52370143985918 1.38244401566256  32.5984294083422 -6.52306348482888 1.38880643396476  32.4985535435984 -6.5226114128074 1.39330760417856  32.398875878864 -6.5227418618136 1.39198694111583  32.3191691150781 -6.52315529183324 1.38784147891893  32.2594855522433 -6.52359702785422 1.38341652970876  32.1998835294123 -6.5241482588804 1.37789726144661  32.1205334756434 -6.52495908791891 1.36978014606106  32.0610295228171 -6.52557503794817 1.36361408176819  32.0213115109306 -6.52591981196454 1.36016157360421 
- 0 4 0.05561239 1 0.11122478 1 0.16678543 1 0.22234607 1 0.27790839 1 0.33347071 1 0.38903003 1 0.44458935 1 0.55565963 1 0.66672992 1 0.72228792 1 0.77784592 1 0.83340755 1 0.88896917 1 1 4
-7 0 0  1 2 2  31.8489252827427 -0.773601855954115 0.713410573785182  33.0949317119248 -6.52779751805373 1.34157750972151 
- 0.29266018 2 3.01761452 2
-7 0 0  1 2 2  31.5453892383255 0 1.57010472357597  33.1092560926052 0 7.84503997861939 
- 0 2 1.95653393 2
-7 0 0  3 14 12  33.1092560926052 0 7.84503997861939  32.9895453769193 -0.0174714467798492 7.84504261961951  32.8098959283864 -0.0429466935898584 7.84504381761957  32.5696040969731 -0.070608380443718 7.84504292161953  32.3889470183924 -0.0869780922712375 7.84504175361947  32.2079753097967 -0.0977326682720524 7.84504084461943  32.0265309411785 -0.10222907288562 7.8450401736194  31.8453674425737 -0.0997574941882265 7.84503972761937  31.6942097353941 -0.0916727632842224 7.84503890461934  31.5738657696781 -0.0813848521755729 7.84503793661929  31.4836215553917 -0.0716292427922063 7.84503776061928  31.3938244411266 -0.0597831102495452 7.8450381676193  31.3340220282861 -0.0504008000939094 7.84503929761935  31.3042272068709 -0.045332982233201 7.84504008261939 
- 0 4 0.2001314 1 0.30012179 1 0.40011218 1 0.50009203 1 0.60007187 1 0.70004513 1 0.80001838 1 0.85001273 1 0.90000708 1 0.95000354 1 1 4
-7 0 0  1 2 2  31.3042272068709 -0.045332982233201 7.84504008261939  26.4173907547587 -0.130843790614746 1.88911937672835 
- 0.07121022 2 2.01729017 2
-7 0 0  3 16 14  31.3042272068709 -0.045332982233201 7.84504008261939  31.2954192964526 -0.0430010329424394 7.8450403266194  31.2849880359571 -0.0404181135897573 7.84504044361941  31.2711565353002 -0.0366831687623569 7.84504048261941  31.2626947448983 -0.0342734346779007 7.84504047961941  31.2555276245578 -0.0320034650000829 7.84504046661941  31.2474899541761 -0.0292649012000082 7.84504045761941  31.2386162737546 -0.0259637195232104 7.84504045761941  31.2282306232613 -0.0211038953923812 7.84504046261941  31.2204445328915 -0.0163844822182211 7.84504046161941  31.2159691826789 -0.0127338964548276 7.84504046261941  31.212855312531 -0.00944111784842901 7.84504046261941  31.210897412438 -0.00656500002182075 7.84504046261941  31.2095850123757 -0.00348249726540974 7.84504046261941  31.2092171223582 -0.0011274605635515 7.84504046261941  31.209191012357 0 7.84504046261941 
- 0 4 0.24987845 1 0.294687 1 0.39290714 1 0.49113232 1 0.5007068 1 0.6257727 1 0.7508386 1 0.8132895 1 0.8757404 1 0.90694145 1 0.9381425 1 0.96907125 1 1 4
-7 0 0  1 2 2  31.209191012357 0 7.84504046261941  26.1604470425545 0 1.90984293371267 
- 1.37499288 2 38.1919507 2
-7 0 0  3 14 12  33.1092560926052 0 7.84503997861939  32.9895453769193 0.0174714467798492 7.84504261961951  32.8098959283864 0.0429466935898584 7.84504381761957  32.5696040969731 0.070608380443718 7.84504292161953  32.3889470183924 0.0869780922712375 7.84504175361947  32.2079753097967 0.0977326682720524 7.84504084461943  32.0265309411785 0.10222907288562 7.8450401736194  31.8453674425737 0.0997574941882265 7.84503972761937  31.6942097353941 0.0916727632842224 7.84503890461934  31.5738657696781 0.0813848521755729 7.84503793661929  31.4836215553917 0.0716292427922063 7.84503776061928  31.3938244411266 0.0597831102495452 7.8450381676193  31.3340220282861 0.0504008000939094 7.84503929761935  31.3042272068709 0.045332982233201 7.84504008261939 
- 0 4 0.2001314 1 0.30012179 1 0.40011218 1 0.50009203 1 0.60007187 1 0.70004513 1 0.80001838 1 0.85001273 1 0.90000708 1 0.95000354 1 1 4
-7 0 0  3 16 14  31.3042272068709 0.045332982233201 7.84504008261939  31.2954192964526 0.0430010329424394 7.8450403266194  31.2849880359571 0.0404181135897573 7.84504044361941  31.2711565353002 0.0366831687623569 7.84504048261941  31.2626947448983 0.0342734346779007 7.84504047961941  31.2555276245578 0.0320034650000829 7.84504046661941  31.2474899541761 0.0292649012000082 7.84504045761941  31.2386162737546 0.0259637195232104 7.84504045761941  31.2282306232613 0.0211038953923812 7.84504046261941  31.2204445328915 0.0163844822182211 7.84504046161941  31.2159691826789 0.0127338964548276 7.84504046261941  31.212855312531 0.00944111784842901 7.84504046261941  31.210897412438 0.00656500002182075 7.84504046261941  31.2095850123757 0.00348249726540974 7.84504046261941  31.2092171223582 0.0011274605635515 7.84504046261941  31.209191012357 0 7.84504046261941 
- 0 4 0.24987845 1 0.294687 1 0.39290714 1 0.49113232 1 0.5007068 1 0.6257727 1 0.7508386 1 0.8132895 1 0.8757404 1 0.90694145 1 0.9381425 1 0.96907125 1 1 4
-7 0 0  1 2 2  26.4173906747587 0.130843792164746 1.88911926872835  31.3042272068709 0.045332982233201 7.84504008261939 
- 1.34817287 2 38.1919507 2
-7 0 0  3 5 3  20.1549001573063 1.36866520500811 1.41444156718237  21.1275192035033 1.36275808372753 1.41444156618237  23.0918736368051 1.3214520967656 1.41444156218237  25.0175634582704 1.28214516389862 1.41444155718237  25.9893209044264 1.24079115393441 1.41444155318237 
- 0 4 0.5 1 1 4
-7 0 0  3 5 3  25.9893209044264 -1.2407928679345 1.41444127418235  25.0175634582704 -1.28214692889871 1.41444127418235  23.0918736368051 -1.32145396176569 1.41444126918235  21.1275192035033 -1.36276005072763 1.41444126418235  20.1549001573063 -1.3686672230082 1.41444126018235 
- 0 4 0.5 1 1 4
-7 1 0  4 5 2  20.1549001573063 -1.6722750014288 -1.30306872289244  0.51628915 20.1549001573063 -2.12609070698389 -0.664735298283231  0.56902713 20.1549001573063 -2.2280313158258 0.134736863629657  0.65761235 20.1549001573063 -1.952167939723 0.891999712877711  0.79192942 20.1549001573063 -1.3686672230082 1.41444126018235  1
- 1.20676907 5 1.78417229 5
-7 1 0  4 5 2  20.1549001573063 -1.6722750014288 -1.30306872289244  0.51628915 20.1549001573063 -1.05878403728954 -2.16600004587948  0.45880508 20.1549001573063 -9.66830045921961e-007 -2.50054346576944  0.44391061 20.1549001573063 1.05878214028945 -2.16600015987948  0.45880507 20.1549001573063 1.67227319742871 -1.30306890389245  0.5162891
- 0.57740334 5 1.20676907 5
-7 1 0  4 5 2  20.1549001573063 1.36866520500811 1.41444156718237  1 20.1549001573063 1.95216618472291 0.892000020827726  0.79192938 20.1549001573063 2.22802971682573 0.134737003109664  0.6576123 20.1549001573063 2.12608908598381 -0.664735369373234  0.56902708 20.1549001573063 1.67227319742871 -1.30306890389245  0.5162891
- 0 5 0.57740334 5
-7 0 0  9 10 2  1.319586737677 0.845840769945279 -1.40924429193551  1.319586659677 0.911201699796756 -1.34202809774291  1.319586580677 0.971165013922861 -1.26677391416853  1.31958650067699 1.02414066164407 -1.1841225882428  1.31958642167699 1.06862271175685 -1.0951809540183  1.31958634567699 1.1033771554076 -1.00152301856979  1.31958627467698 1.12768212356202 -0.905094104071661  1.31958620867698 1.14144614121578 -0.807892187166818  1.31958614967698 1.14508858338879 -0.711738539749765  1.31958609667697 1.13939655511843 -0.618156123250839 
- 0 10 1 10
-7 0 0  3 4 2  1.31958609667697 1.13939655511843 -0.618156123250839  1.66514323309006 1.22851847935149 -0.337326809062163  2.03334541657872 1.23856713582878 -0.0865812842123901  2.42419264614297 1.16954252255029 0.134080451298479 
- 0 4 1 4
-7 0 0  3 4 2  2.42419264614297 1.16954252255029 0.134080451298479  2.35726404496403 1.43069673595445 -0.401872591037923  2.33241626178382 1.39050386204539 -0.916314172062586  2.34964929660235 1.04896390382311 -1.40924429193551 
- 0 4 1 4
-7 0 0  3 4 2  2.34964929660235 1.04896390382311 -1.40924429193551  2.00555960725897 0.985535358690416 -1.40924429193551  1.66190643893632 0.917897397927785 -1.40924429193551  1.31958612467697 0.845840769945279 -1.40924429193551 
- 0 4 0.5 4
-7 1 0  2 3 2  1.31958612467697 0.845840769945279 -1.40924429193551  1 0.394505621298011 0.642110639198617 -1.32940753514347  0.89437537 -5.85000027786009e-009 0 -0.750000037063089  1
- 0 3 1.48870447 3
-7 1 0  2 3 2  -5.85000027786009e-009 0 -0.750000037063089  1 0.432062391501861 0.542313653068515 -0.110187358133618  0.93068591 1.31958587667696 0.752125697664052 0.131521655936943  1
- 0 3 1.82687438 3
-7 0 0  9 10 2  1.31958609667697 1.13939655511843 -0.618156123250839  1.31958604467697 1.13370452684807 -0.524573706687913  1.31958599667697 1.11843521112282 -0.429570341772495  1.31958595567697 1.09299188191433 -0.334753159849921  1.31958592067696 1.05717899721331 -0.241980838797473  1.31958589467696 1.01132950403557 -0.153225526850822  1.31958587767696 0.956395730060357 -0.0703307337745304  1.31958586867696 0.893793348397904 0.00529071017229524  1.31958586867696 0.825151337520584 0.0727226440751401  1.31958587667696 0.752125697664052 0.131521655936943 
- 0 10 1 10
-7 1 0  2 3 2  1.31958612467697 -0.845840762795279 -1.40924429893551  1 0.394505620558011 -0.642110642718618 -1.32940753014347  0.89437537 -5.85000027786009e-009 0 -0.750000037063089  1
- 0 3 1.61807207 3
-7 1 0  2 3 2  1.31958553267695 -0.845840762795279 -1.40924429893551  1 1.31958615867698 6.5900003130082e-009 -2.13022950418047  0.76104147 1.31958612467697 0.845840769945279 -1.40924429193551  1
- 0 3 1 3
-7 0 0  9 10 2  1.31958607367697 -1.13939655511843 -0.618156128230839  1.31958608867697 -1.14508858238879 -0.711738544337765  1.31958610167697 -1.14144614121578 -0.807892191987818  1.31958611267697 -1.12768212256202 -0.905094109628661  1.31958612167697 -1.1033771524076 -1.00152302556979  1.31958612767697 -1.06862270875685 -1.0951809620183  1.31958613067698 -1.02414065664407 -1.1841225962428  1.31958613167698 -0.97116500805686 -1.26677392216853  1.31958612867698 -0.911201693019756 -1.34202810574291  1.31958612467697 -0.845840762795279 -1.40924429893551 
- 0 10 1 10
-7 0 0  9 10 2  1.31958587667696 -0.752125697664052 0.131521655936943  1.31958590167696 -0.825151337388584 0.0727226441901401  1.31958592667697 -0.893793348643904 0.00529070983429522  1.31958595167697 -0.956395731128358 -0.0703307346275305  1.31958597567697 -1.01132950603557 -0.153225529606822  1.31958599967697 -1.05717899821331 -0.241980840241473  1.31958602067697 -1.09299188291433 -0.334753163231921  1.31958604067697 -1.11843521212282 -0.429570346254496  1.31958605867697 -1.13370452784807 -0.524573711815913  1.31958607367697 -1.13939655511843 -0.618156128230839 
- 0 10 1 10
-7 1 0  2 3 2  1.31958587667696 -0.752125697664052 0.131521655936943  1 0.432062391501861 -0.542313653068515 -0.110187358133618  0.93068591 -5.85000027786009e-009 0 -0.750000037063089  1
- 0 3 1.82687438 3
-7 0 0  2 5 4  2.00023807100621 -0.163958005517587 0.96768671484265  1.97195678666292 -0.164035661541275 0.947403402219245  1.77326186422542 -0.164680340701896 0.799426138540702  1.4596446303294 -0.166750159990207 0.507738950436305  1.31958583467696 -0.168220024990022 0.347343154077914 
- 2.78088653 3 2.99095102 1 4.27636204 1 5.56177307 3
-7 0 0  6 7 2  1.31958584867696 -0.472656105287959 0.273205850890581  1.31958584567696 -0.424345904326348 0.291062125421709  1.31958584267696 -0.374834406919678 0.30687310219069  1.31958583967696 -0.324277181791339 0.320505595748198  1.31958583767696 -0.272854209813879 0.331846201256848  1.31958583567696 -0.220765201681784 0.340809716696592  1.31958583467696 -0.168220024785022 0.347343154081914 
- 0.60294418 7 0.79736362 7
-7 0 0  3 4 2  1.31958586967696 -0.472656103389959 0.273205851646581  1.62133537900929 -0.826879248094655 0.310046348786411  1.98951906749708 -1.05922000731025 0.26367793930403  2.42413693614032 -1.16967838155674 0.134100623219438 
- 0 4 1 4
-7 0 0  3 4 2  2.42413693614032 -1.16967838155674 0.134100623219438  2.24551604265628 -0.95101212419065 0.533630074436067  2.10421642094491 -0.615771998917599 0.811492104973805  2.00023807100621 -0.163958005517587 0.96768671484265 
- 0 4 1 4
-7 1 0  2 3 2  1.31958586967696 -0.472656103389959 0.273205851646581  0.98679458 1.31958587967696 -0.620585997516252 0.218528439069543  0.98679458 1.31958587667696 -0.752125697664052 0.131521655936943  1
- 0.5 3 1 3
-7 0 0  3 4 2  1.31958607367697 -1.13939655511843 -0.618156128230839  1.66504253008527 -1.22892561037083 -0.337230843807605  2.03322615057306 -1.23901955185027 -0.0864785933175126  2.42413693614032 -1.16967838155674 0.134100623219438 
- 0 4 1 4
-7 0 0  3 4 2  1.31958612467697 -0.845840762795279 -1.40924429893551  1.66190643893632 -0.917897390397785 -1.40924429893551  2.00555960725897 -0.985535350790415 -1.40924429993551  2.34964929660235 -1.04896389482311 -1.40924429993551 
- 0 4 0.5 4
-7 0 0  3 4 2  2.42413693614032 -1.16967838155674 0.134100623219438  2.35753187697675 -1.43089684996395 -0.401910199549709  2.33270266479743 -1.39065868805274 -0.916358507244692  2.34964929660235 -1.04896389482311 -1.40924429993551 
- 0 4 1 4
-7 0 0  9 10 2  3.38400016073138 -1.63898554684763 0.123910676095441  3.38400016073138 -1.60590036227617 0.306577631105655  3.38400016073138 -1.55181365870719 0.48777462586905  3.38400016073138 -1.47656403813303 0.6634103617933  3.38400016073138 -1.38121541960421 0.829217912826736  3.38400016073138 -1.26819352023596 0.981266358479649  3.38400016073138 -1.14109947419931 1.11671842704128  3.38400016073138 -1.00385725768066 1.2341315946181  3.38400016073138 -0.860222781176388 1.33319288632326  3.38400016073138 -0.713493162199105 1.41444133318236 
- 0 10 1 10
-7 0 0  3 4 2  3.38400016073138 -0.713493162199105 1.41444133318236  3.27445931052846 -0.639131929057136 1.41444134218236  3.17041912258682 -0.554860477054457 1.41444135118236  3.07361411498883 -0.462644191244419 1.41444136118236 
- 0.5 4 1 4
-7 0 0  3 4 2  3.07361411498883 -0.462644191244419 1.41444136118236  2.85458862158568 -0.732749933643753 1.00795785087543  2.63809622830284 -0.968427997007859 0.581177604814454  2.42413693614032 -1.16967838155674 0.134100623219438 
- 0 4 1 4
-7 0 0  3 4 2  2.42413693614032 -1.16967838155674 0.134100623219438  2.77043749558871 -1.23304481456648 0.0801088377749654  3.04682124571624 -1.52801746657693 0.153081894611  3.38400016073138 -1.63898554684763 0.123910676095441 
- 0 4 1 4
-7 0 0  3 4 2  2.34964929660235 -1.04896389482311 -1.40924429993551  2.69373898594573 -1.1123924398358 -1.40924429993551  3.03826519730985 -1.17161156764856 -1.40924429993551  3.38400016073138 -1.22492845218098 -1.40924430093551 
- 0.5 4 1 4
-7 1 0  4 6 3  3.38400016073138 -1.22492845218098 -1.40924430093551  1 3.38400016073138 -1.2271690202874 -1.40661808881077  0.99911678 3.38400016073138 -1.48299770543861 -1.10549465250818  0.90755662 3.38400016073138 -1.65869698678388 -0.72954908182172  0.84661465 3.38400016073138 -1.71654928653171 -0.30432728671477  0.81629087 3.38400016073138 -1.63898554684763 0.123910676095441  0.81629087
- 0.5 5 0.50480769 1 1 5
-7 1 0  2 3 2  1.31958584867696 0.472656068989958 0.273205864366582  0.98679458 1.31958583867696 0.324726155953664 0.327883279403619  0.98679458 1.31958583467696 0.168219952200019 0.347343163127914  1
- 0 3 0.5 3
-7 1 0  2 3 2  1.31958587667696 0.752125697664052 0.131521655936943  1 1.31958585967696 0.620585982016251 0.218528449319544  0.98679458 1.31958584867696 0.472656068989958 0.273205864366582  0.98679458
- 0.5 3 1 3
-7 1 0  2 3 2  1.31958583467696 -0.168220024990022 0.347343154077914  1 1.31958585167696 -3.69600017555058e-008 0.368259531631388  0.99235835 1.31958583467696 0.168219952200019 0.347343163127914  1
- 0 3 1 3
-7 0 0  3 4 2  1.31958584867696 0.472656068989958 0.273205864366582  1.62155162301957 0.826495304876419 0.309755297252586  1.98975388950823 1.05879078928986 0.263380159569886  2.42419264614297 1.16954252255029 0.134080451298479 
- 0 4 1 4
-7 0 0  2 5 4  1.31958583467696 0.168219952200019 0.347343163127914  1.4596446333294 0.166750089070204 0.507738967696306  1.77326187922542 0.164680272451893 0.799426170020704  1.97195680466292 0.164035594161272 0.947403436749246  2.00023808900621 0.163957938237584 0.967686749742652 
- 0 3 1.28541102 1 2.57082205 1 2.78088653 3
-7 0 0  3 4 2  2.00023808900621 0.163957938237584 0.967686749742652  2.10416159294231 0.615567439697883 0.81123155905143  2.24547977765456 0.950762301278784 0.533362792903372  2.42419264614297 1.16954252255029 0.134080451298479 
- 0 4 1 4
-7 0 0  3 4 2  2.8066391803082 0.164126150055573 1.41444143218236  2.8872393151365 0.270266674356978 1.41444144418236  2.97680914339084 0.370427751174373 1.41444145518236  3.07361414598883 0.46264399884441 1.41444146518236 
- 0.5 4 1 4
-7 0 0  3 4 2  3.07361414598883 0.46264399884441 1.41444146518236  2.85456857558473 0.73278062610521 1.00800873287784  2.63809474230277 0.968413467477169 0.581221728086549  2.42419264614297 1.16954252255029 0.134080451298479 
- 0 4 1 4
-7 0 0  2 4 3  2.00023808900621 0.163957938237584 0.967686749742652  2.17329483222596 0.163482751855014 1.09180289485785  2.57776472443725 0.163499698825819 1.319607622678  2.8066391803082 0.164126150055573 1.41444143218236 
- 2.78088653 3 4.06629756 1 5.56177307 3
-7 0 0  2 4 3  2.00023807100621 -0.163958005517587 0.96768671484265  2.17329481122596 -0.163482818485017 1.09180285785785  2.57776470343725 -0.163499765415822 1.31960758567799  2.8066391593082 -0.164126217435577 1.41444139518236 
- 0 3 1.28541102 1 2.78088653 3
-7 1 0  2 3 2  2.8066391593082 -0.164126217435577 1.41444139518236  1 2.8066391693082 -4.41600020974874e-008 1.50762491060834  0.86961586 2.8066391803082 0.164126150055573 1.41444143218236  1
- 0 3 1.66079697 3
-7 0 0  3 4 2  3.07361411498883 -0.462644191244419 1.41444136118236  2.97680910839084 -0.370427905424381 1.41444137218236  2.8872392831365 -0.270266785806983 1.41444138318236  2.8066391593082 -0.164126217435577 1.41444139518236 
- 0 4 0.5 4
-7 1 0  2 3 2  3.38400016073138 -0.713493162199105 1.41444133318236  1 3.38400016073138 -2.00150009506615e-007 1.90799178962474  0.82241132 3.38400016073138 0.713492872779091 1.41444149318236  1
- 0 3 1.55787992 3
-7 0 0  3 4 2  3.38400016073138 0.713492872779091 1.41444149318236  3.27445932652846 0.639131665047124 1.41444148518236  3.17041914858682 0.554860246514446 1.41444147618236  3.07361414598883 0.46264399884441 1.41444146518236 
- 0 4 0.5 4
-7 0 0  3 5 3  3.38400016073138 -0.713493162199105 1.41444133318236  3.80221815059566 -0.997398256103873 1.41444130118235  4.31570353198491 -1.14106831119783 1.41444128518235  4.84213726998917 -1.22700175927945 1.41444127518235  4.85761506672432 -1.22947768939705 1.41444127518235 
- 0 4 0.97061845 1 1 4
-7 1 0  2 3 2  4.85761506672432 -1.22947768939705 1.41444127518235  1 4.85761515072433 -2.74260013026651e-007 2.51879543963636  0.74394828 4.85761506672432 1.22947738839704 1.41444155118237  1
- 0 3 2.03028442 3
-7 0 0  3 5 3  4.85761506672432 1.22947738839704 1.41444155118237  4.84213726798917 1.22700145827944 1.41444155118237  4.31570353398491 1.14106800419782 1.41444154118237  3.80221817559566 0.997397928223857 1.41444152518236  3.38400016073138 0.713492872779091 1.41444149318236 
- 0 4 0.02938155 1 1 4
-7 0 0  3 4 2  4.85761506672432 1.22947738839704 1.41444155118237  5.35344570327501 1.30879371316436 1.41444156018237  5.85990504933054 1.33789804554674 1.41444156418237  6.35000030160882 1.34685307097209 1.41444156518237 
- 0 4 1 4
-7 0 0  3 4 2  4.85761506672432 -1.22947768939705 1.41444127518235  5.35344570927501 -1.30879400916438 1.41444126618235  5.85990504633054 -1.33789834854676 1.41444126318235  6.35000030160882 -1.3468533929721 1.41444126218235 
- 0 4 1 4
-7 1 0  2 3 2  6.35000030160882 -1.3468533929721 1.41444126218235  1 6.35000030160882 -3.13400014885701e-007 2.77044820958922  0.70470804 6.35000030160882 1.34685307097209 1.41444156518237  1
- 0 3 3.67726025 3
-7 0 0  3 10 8  3.38400016073138 -1.22492845218098 -1.40924430093551  3.50690798156918 -1.2434099750588 -1.40885295291692  3.75304017125983 -1.27959269377739 -1.40867256290835  4.1221729047927 -1.33031313618648 -1.40923667193515  4.49244474837966 -1.37659426138472 -1.4098462769641  4.86287561097419 -1.41722414131453 -1.40953009994908  5.23443025562208 -1.45128758493246 -1.4074986558526  5.73056810418737 -1.49426433297374 -1.40825210888838  6.10314154888365 -1.53110727872369 -1.41951769042347  6.35000030160882 -1.56406656428917 -1.43766213928528 
- 0 4 0.12485839 1 0.24971677 1 0.37457514 1 0.49943351 1 0.62429129 1 0.74914907 1 1 4
-7 0 0  4 56 53  6.35000030160882 -1.56406656428917 -1.43766213928528  6.35000030160882 -1.56503501633517 -1.43651043523058  6.35000030160882 -1.56724607444019 -1.43387575410544  6.35000030160882 -1.57055458359734 -1.42991536991733  6.35000030160882 -1.57495915180654 -1.42460670166518  6.35000030160882 -1.57948445502148 -1.41911327440426  6.35000030160882 -1.58386336222947 -1.41376084415003  6.35000030160882 -1.58822788543677 -1.40838893289488  6.35000030160882 -1.59258151264356 -1.4029932126386  6.35000030160882 -1.59692168984971 -1.39757660138132  6.35000030160882 -1.60341384315807 -1.38941765499379  6.35000030160882 -1.60987313446487 -1.38120483860371  6.35000030160882 -1.61630172777021 -1.3729348442109  6.35000030160882 -1.62269449707385 -1.36461311081564  6.35000030160882 -1.62906811837658 -1.35625731041876  6.35000030160882 -1.6348793416526 -1.34854786705258  6.35000030160882 -1.67483234755026 -1.29497145550784  6.35000030160882 -1.71413296241694 -1.23737758477228  6.35000031260882 -1.75055322114681 -1.17883401099161  6.35000030060882 -1.78784490891807 -1.11232406783256  6.35000030160882 -1.79670454133888 -1.09616322806496  6.35000030060882 -1.8054316117534 -1.0798727922912  6.35000030260882 -1.82605691673305 -1.04046361441937  6.35000030060882 -1.84586494567388 -1.0002873635111  6.35000030360882 -1.86629662664433 -0.955879660721845  6.35000030160882 -1.88997241576887 -0.900109907012924  6.35000030160882 -1.90698155157676 -0.857735863910265  6.35000030160882 -1.92569673646568 -0.807535389635871  6.35000030160882 -1.94547816440525 -0.749175207583911  6.35000030160882 -1.96359245826563 -0.689892949298155  6.35000030160882 -1.97998559004426 -0.629757236271862  6.35000030160882 -1.99460568073868 -0.568842395628563  6.35000030160882 -2.00740638434668 -0.507224837511886  6.35000030160882 -2.01834437986621 -0.444986134795706  6.35000030160882 -2.0273825162955 -0.382209341503969  6.35000030160882 -2.03448725163295 -0.318982007460832  6.35000030160882 -2.0396317388773 -0.255392437090489  6.35000030160882 -2.04279320202747 -0.191532650437312  6.35000030160882 -2.04395595008269 -0.127494595025668  6.35000030160882 -2.04310867804245 -0.063373067760059  6.35000030160882 -2.04024739590655 0.000738103995058057  6.35000030160882 -2.03537264767501 0.0647431624351351  6.35000030160882 -2.02849235534821 0.128548250745714  6.35000030160882 -2.01961894492675 0.19205851643229  6.35000030160882 -2.00606039428275 0.270962786250041  6.35000030060882 -1.98589130332477 0.364690056691847  6.35000030260882 -1.95680945794346 0.47225357529084  6.35000030060882 -1.91628365701859 0.5920591599213  6.35000030260882 -1.86887279776669 0.70812623748419  6.35000030060882 -1.8150406642098 0.819896683623001  6.35000030260882 -1.75530927037271 0.926891169014966  6.35000030060882 -1.69023573928189 1.02869898086058  6.35000030260882 -1.58549732230708 1.17314407372135  6.35000029960882 -1.48956503675054 1.28150641286829  6.35000030660882 -1.40890616991945 1.36006180859947  6.35000030160882 -1.3468533929721 1.41444126218235 
- 7.7471244 5 7.75489856 1 7.76489392 1 7.77377867 1 7.78266343 1 7.79154819 1 7.80043295 1 7.80931771 1 7.81820247 1 7.82708723 1 7.8537415 1 7.86262626 1 7.87151102 1 7.88039578 1 7.90705006 1 7.91149244 1 8.20913186 1 8.22690137 1 8.24467089 1 8.28020993 1 8.29797944 1 8.31574896 1 8.4579051 1 8.49344414 1 8.52898317 1 8.60006124 1 8.67113931 1 8.74221738 1 8.81329545 1 8.88437353 1 8.9554516 1 9.02652967 1 9.09760774 1 9.16868581 1 9.23976388 1 9.31084195 1 9.38192002 1 9.45299809 1 9.52407616 1 9.59515423 1 9.6662323 1 9.73731037 1 9.80838844 1 9.87946651 1 10.02162265 1 10.16377879 1 10.30593493 1 10.44809107 1 10.59024722 1 10.73240336 1 10.8745595 1 11.01671564 1 11.44318406 5
-7 1 0  4 10 7  3.38400016073138 1.2249309651811 -1.40924642893561  1 3.38400016073138 1.19329932567867 -1.4547623830975  0.98094125 3.38400016073138 0.835819791189308 -1.91901396914827  0.82129371 3.38400016073138 0.262270601187184 -2.18911475097737  0.75025417 3.38400016073138 -0.387184014110253 -2.1053319619979  0.77093894 3.38400016073138 -0.866821797431824 -1.77217810317394  0.86586424 3.38400016073138 -0.98321933440041 -1.68728329414165  0.89391166 3.38400016073138 -1.08116652435265 -1.59512279276426  0.92649144 3.38400016073138 -1.16208426819604 -1.49968456523119  0.96283113 3.38400016073138 -1.22492845218098 -1.40924430093551  1
- 0 5 0.09851974 1 0.87717512 1 0.88728753 1 0.89739994 1 0.91762475 1 1.10976049 5
-7 0 0  3 10 8  3.38400016073138 1.2249309651811 -1.40924642893561  3.50690798256918 1.2434099760588 -1.40885295191692  3.75304017225983 1.27959268077739 -1.40867257790835  4.1221729057927 1.33031310618648 -1.40923670693515  4.49244475037967 1.37659421838471 -1.4098463289641  4.86287561297419 1.41722408331453 -1.40953016794909  5.23443025762208 1.45128751093245 -1.4074987418526  5.73056810618737 1.49426423997374 -1.40825221788839  6.10314155088365 1.53110718072369 -1.41951781642348  6.35000030160882 1.56406643828917 -1.43766224628529 
- 0 4 0.12485839 1 0.24971677 1 0.37457514 1 0.49943351 1 0.62429129 1 0.74914906 1 1 4
-7 0 0  4 39 36  6.35000030160882 -1.56406656428917 -1.43766213928528  6.35000030160882 -1.56087668413766 -1.44145561046546  6.35000030160882 -1.55156186169523 -1.45246056498817  6.35000030160882 -1.5373982540225 -1.46887876476799  6.35000030160882 -1.51815295810839 -1.49055888279774  6.35000030160882 -1.49696523310203 -1.51368582889622  6.35000030160882 -1.475700256092 -1.53624261796761  6.35000030160882 -1.44253690651682 -1.57034704858748  6.35000030160882 -1.40830251989078 -1.60375210217413  6.35000030160882 -1.37436364727877 -1.63515800666583  6.35000030160882 -1.34229977275582 -1.66341536900799  6.35000030760882 -1.30840676714598 -1.69256358039245  6.35000029960882 -1.27654247863251 -1.71864403563121  6.35000030360882 -1.24245652801352 -1.74524789089482  6.35000029860882 -1.19998609099628 -1.77673806039053  6.35000030560882 -1.16608700238616 -1.80098233854207  6.35000029960882 -1.12829044859092 -1.8266202997598  6.35000030360882 -1.08970144575804 -1.85141809693764  6.35000025760881 -0.939382638728279 -1.94379931232551  6.35000030460882 -0.783807161088841 -2.01855482587621  6.35000030160882 -0.618231422944416 -2.0769283926488  6.35000030160882 -0.445655486767499 -2.11692251654842  6.35000030960882 -0.382553708270325 -2.1304975311932  6.35000029660882 -0.31068994845698 -2.14322195679758  6.35000031460882 -0.14911305225249 -2.16479364782218  6.35000029360882 0.0737504559729585 -2.17192667516098  6.35000030360882 0.290588303112203 -2.15304765926427  6.35000030060882 0.521041608308147 -2.10183263283169  6.35000030160882 0.682523250928113 -2.05064460740039  6.35000030160882 0.809166112923326 -2.00103335504398  6.35000030160882 0.932604324226326 -1.9429211842838  6.35000030160882 1.05218995497634 -1.87653050613041  6.35000030160882 1.16729123144336 -1.80213953659703  6.35000030160882 1.27730312466864 -1.7200860396997  6.35000030160882 1.3816488896248 -1.6307591154569  6.35000030160882 1.46594275062854 -1.54816896053408  6.35000030160882 1.52238723030951 -1.48648207360411  6.35000030160882 1.55445007583241 -1.44909820582847  6.35000030160882 1.56406643828917 -1.43766224628529 
- 3.65967968 5 3.68528616 1 3.73417126 1 3.77141705 1 3.80866284 1 3.84590863 1 3.89246587 1 4.01351469 1 4.05076048 1 4.07869482 1 4.10662916 1 4.23698943 1 4.25561232 1 4.29285812 1 4.3673497 1 4.44184128 1 4.47908707 1 4.51633286 1 5.22400287 1 5.26124867 1 5.29849446 1 5.33574025 1 5.5219692 1 5.59646078 1 6.04341026 1 6.34137659 1 6.49035975 1 6.63934291 1 6.78832607 1 6.93730923 1 7.08629239 1 7.23527556 1 7.38425872 1 7.53324188 1 7.68222504 1 7.7471244 5
-7 0 0  3 4 2  2.34964929660235 1.04896390382311 -1.40924429193551  2.69373898594573 1.1123924478358 -1.40924429193551  3.03826519730985 1.17161157664856 -1.40924429093551  3.38400016073138 1.22492846018098 -1.40924428993551 
- 0.5 4 1 4
-7 0 0  3 4 2  2.42419264614297 1.16954252255029 0.134080451298479  2.77046508259002 1.23319283557351 0.0802219015803357  3.04699638772456 1.52739187354722 0.152755600165501  3.38400016073138 1.63898521684762 0.123909655855393 
- 0 4 1 4
-7 1 0  2 3 2  3.38400016073138 1.2249309651811 -1.40924642893561  1 3.38400016073138 1.79561973928736 -0.74088125163997  0.81629209 3.38400016073138 1.63898521684762 0.123909655855393  0.81629209
- 0.5 3 1 3
-7 0 0  9 10 2  3.38400016073138 0.713492872779091 1.41444149318236  3.38400016073138 0.867860532830161 1.32896323012236  3.38400016073138 1.0167936112951 1.22488173617876  3.38400016073138 1.15664911093788 1.10242486136237  3.38400016073138 1.28361979496867 0.962881171050399  3.38400016073138 1.39415240821868 0.808751490747633  3.38400016073138 1.48559714856207 0.643730709204567  3.38400016073138 1.55672507894047 0.471986537773157  3.38400016073138 1.6075368743539 0.29753830456331  3.38400016073138 1.63898521684762 0.123909655855393 
- 0 10 1 10
-7 0 0  4 20 17  6.35000030160882 1.34685307097209 1.41444156518237  6.35000030160882 1.39020921303139 1.3764466293777  6.35000030060882 1.4747759580481 1.29657054758379  6.35000030360882 1.59428476072446 1.16524941034637  6.35000029960882 1.73527748542125 0.968329296123171  6.35000030360882 1.85426945907307 0.751455380122214  6.35000029960882 1.94779785051543 0.517164088903975  6.35000030360882 2.01269872159806 0.268693744052267  6.35000030060882 2.04208931299403 0.0422534092469292  6.35000030260882 2.04712503723322 -0.188466825981693  6.35000029960882 2.02707971328112 -0.420798429896852  6.35000030660882 1.9879657644233 -0.618945184968317  6.35000029760882 1.926903483523 -0.812790331575467  6.35000030160882 1.8616705484246 -0.969794349982758  6.35000030160882 1.80105181754537 -1.09202145586823  6.35000030160882 1.73223369227668 -1.21022656048267  6.35000030160882 1.66386524302935 -1.31141914428906  6.35000030160882 1.61053579749634 -1.38134698661046  6.35000030160882 1.57652542688094 -1.42284578458155  6.35000030160882 1.56406643828917 -1.43766224628529 
- 0 5 0.29796632 1 0.59593265 1 0.89389897 1 1.19186529 1 1.48983162 1 1.78779794 1 2.08576426 1 2.23474742 1 2.53271375 1 2.83068007 1 2.97966323 1 3.12864639 1 3.27762955 1 3.42661271 1 3.57559588 1 3.65967968 5
-7 0 0  1 2 2  6.35000030160882 1.34685307097209 1.41444156518237  7.21279194058922 1.34821630603684 1.41444156518237 
- 0 2 1 2
-7 1 0  4 5 2  7.21279194058922 1.34821630603684 1.41444156518237  1 7.21279194058922 1.91010410272507 0.923940212774803  0.79865395 7.21279194058922 2.19662408433404 0.213845419037112  0.66599028 7.21279194058922 2.14079379068224 -0.549837299455869  0.57684744 7.21279194058922 1.75566519138962 -1.18857467445427  0.52168057
- 1.23049347 5 1.78417229 5
-7 1 0  4 5 2  7.21279194058922 -1.75566531738962 -1.18857460045426  0.5216806 7.21279194058922 -1.15782027499351 -2.18010316954934  0.45424482 7.21279194058922 -9.18700043635909e-008 -2.57413700826494  0.43757767 7.21279194058922 1.1578201079935 -2.18010321754934  0.4542448 7.21279194058922 1.75566519138962 -1.18857467445427  0.52168057
- 0.55367874 5 1.23049347 5
-7 1 0  4 5 2  7.21279194058922 -1.75566531738962 -1.18857460045426  0.5216806 7.21279194058922 -2.14079380968225 -0.549837342155871  0.57684749 7.21279194058922 -2.19662412933404 0.213845207717102  0.66599032 7.21279194058922 -1.91010430372508 0.923939885424788  0.79865398 7.21279194058922 -1.34821673503686 1.41444126218235  1
- 0 5 0.55367874 5
-7 0 0  1 2 2  7.21279194058922 -1.34821673503686 1.41444126218235  6.35000030160882 -1.3468533929721 1.41444126218235 
- 0 2 1 2
-7 0 0  3 13 10  15.178436250937 -6.33367198983326 -0.437746756651854  15.1343853388447 -6.33367547583343 -0.436113434594276  15.0352413141356 -6.33368261083377 -0.433229486547295  14.891937437329 -6.33369061383415 -0.431634620151543  14.7926607126136 -6.33369456083433 -0.432310291673636  14.6420810954615 -6.33369947183457 -0.434534157059264  14.4471870362045 -6.33370243483471 -0.441194527435615  14.2135702951083 -6.33369850783452 -0.457514709300782  14.082694108892 -6.33369355083429 -0.469730016690978  13.9777072539054 -6.33368883283406 -0.480356019745686  13.8803298892803 -6.3336833968338 -0.491393000689914  13.786676794832 -6.33367670883349 -0.503635333521394  13.7551732833356 -6.33367429383337 -0.507938351705776 
- 8.022e-005 4 0.09279991 1 0.20869951 1 0.3014192 2 0.52503238 1 0.71137669 1 0.79400113 1 0.8014192 1 0.93320092 1 1.00008022 4
-7 0 0  2 4 3  13.7551732833356 -6.33367429383337 -0.507938351705776  15.0025245925816 -8.8175303468102 -0.305345950613154  17.4972272110737 -13.7852424547639 0.0998388515820908  18.7445785303197 -16.2690985127407 0.302431252674713 
- 0.00020743 3 23.12299448 1 46.24578153 3
-7 0 0  3 13 10  18.7445785303197 -16.2690985127407 0.302431252674713  18.7583463509736 -16.2690995627407 0.304311725944031  18.7992747729176 -16.2691024827409 0.309660445368081  18.8418315149389 -16.269104862741 0.314489031607427  18.8877124771182 -16.2691069227411 0.319129711877847  18.944911689835 -16.2691090927412 0.32446878737144  19.047001814684 -16.2691108027413 0.331600704970188  19.1321832887299 -16.2691095127412 0.334510369238389  19.1979807318551 -16.2691073627411 0.335482974464586  19.2413794739164 -16.269105642741 0.335777379528569  19.3039958968906 -16.2691021427408 0.3350811617055  19.3473283089487 -16.2690990227407 0.333820518075623  19.3665796498631 -16.2690975027406 0.333106715941719 
- 8.022e-005 4 0.06695952 1 0.19874124 1 0.20615931 1 0.28878375 1 0.47512806 1 0.69874124 2 0.79146093 1 0.90736053 1 1.00008022 4
-7 0 0  2 3 2  19.3665796498631 -16.2690975027406 0.333106715941719  17.2725079504001 -11.3013847467869 -0.0523200203650675  15.178436250937 -6.33367198983326 -0.437746756651854 
- 4.95e-005 3 10.70174454 3
-7 0 0  3 31 29  18.7445785303197 -16.2690985127407 0.302431252674713  18.7383657600246 -16.2690977327406 0.302444747525354  18.7320197997232 -16.2690970127406 0.302121298909991  18.7248254393814 -16.2690962727406 0.301366516094141  18.7218629192407 -16.2690959727406 0.30103174414824  18.717195029019 -16.2690955327405 0.300392184317862  18.7117647287611 -16.2690950427405 0.299472912274199  18.7070789985385 -16.2690946527405 0.298545220530136  18.7033094483595 -16.2690943627405 0.297708798980409  18.701045568252 -16.2690941927405 0.297165473694602  18.6973949580786 -16.2690939327405 0.296258702231533  18.6925716978495 -16.2690936127404 0.294916421617778  18.6862643475499 -16.2690932727404 0.29281445876794  18.6819269473439 -16.2690930727404 0.291163236809511  18.6782378171686 -16.2690929327404 0.28964460350738  18.6744653869895 -16.2690928127404 0.287983806278496  18.6687113467162 -16.2690926827404 0.285188325765718  18.6637437364802 -16.2690926427404 0.282429784694694  18.6587295362421 -16.2690926627404 0.279362878199024  18.6552624460774 -16.2690927027404 0.277085441310852  18.6520903759267 -16.2690927827404 0.274837030944058  18.6505273858525 -16.2690928327404 0.273683666759276  18.6486964857655 -16.2690928827404 0.272311076414081  18.6468712856788 -16.2690929627404 0.270888193566498  18.6434776655176 -16.2690931127404 0.26811628979484  18.6404659953746 -16.2690932927404 0.26550772764094  18.6373324252257 -16.2690935127404 0.262586288212179  18.6325611049991 -16.2690938827405 0.257956703852285  18.6258536746805 -16.2690945427405 0.250810657642866  18.6202961544166 -16.2690953127405 0.243862286492837  18.6177078042936 -16.2690957227405 0.240354853816242 
- 0.00034374 4 0.12844973 1 0.13092921 1 0.14807888 1 0.18926565 1 0.22666433 1 0.2593107 1 0.28513852 1 0.30371952 1 0.30555395 1 0.35968911 1 0.40366864 1 0.43987085 1 0.45418655 1 0.48522664 1 0.52438856 1 0.58584973 1 0.60243388 1 0.64566678 1 0.67135118 1 0.68258527 1 0.68568331 1 0.7184619 1 0.73014898 1 0.77558629 1 0.79999969 1 0.81719017 1 0.91044076 1 1.00034374 4
-7 0 0  3 53 51  18.6177078042936 -16.2690957227405 0.240354853816242  18.6193550543719 -16.2690947727405 0.238341288930603  18.6216040844787 -16.2690935627404 0.235746947277379  18.6254744246625 -16.2690916427404 0.231601845800497  18.6282029547921 -16.2690903927403 0.22885903458022  18.6307491649131 -16.2690893027402 0.226459921546269  18.6338726350614 -16.2690880027402 0.22359557769022  18.6380820152614 -16.2690863927401 0.220006733239759  18.6429975454948 -16.26908476274 0.216279876522742  18.6456606756213 -16.26908395274 0.214416388654232  18.6476069757138 -16.26908339274 0.213095185531478  18.6487171257665 -16.2690830827399 0.212367093306895  18.6505658358543 -16.2690825827399 0.211195651491255  18.6518920659173 -16.2690822427399 0.210378005372419  18.6580929462118 -16.2690807227398 0.206709231938161  18.6661300765936 -16.2690791527398 0.202741567749707  18.6741954469766 -16.2690780027397 0.199580975239587  18.6770945171143 -16.2690776427397 0.198535120109912  18.6847337074772 -16.2690766827396 0.195808538100406  18.6927523278581 -16.2690759827396 0.193538544022587  18.7010868382539 -16.2690755127396 0.191693838764968  18.7018911882921 -16.2690754627396 0.191519803576702  18.7095456886557 -16.2690750627396 0.189885414169073  18.7194729891272 -16.2690748027396 0.188298638523705  18.732057689725 -16.2690748227396 0.186999616222005  18.7417047001832 -16.2690749727396 0.186282049827922  18.7523150306871 -16.2690752927396 0.185823196876128  18.7630570211973 -16.2690757327396 0.18560597385581  18.7748173117559 -16.2690762427396 0.185485067440068  18.787934472379 -16.2690768127396 0.185392925125691  18.7990130629052 -16.2690772027397 0.185225269537728  18.8048859131841 -16.2690773827397 0.185110024222254  18.8123205735372 -16.2690776027397 0.184957193894995  18.8237582740805 -16.2690779027397 0.184666807031202  18.8440723350454 -16.2690782127397 0.183919672535715  18.8604509858233 -16.2690782527397 0.183051998514503  18.8725101763961 -16.2690781327397 0.182217963684888  18.9065197980115 -16.2690777027397 0.179741542697265  18.9442069198015 -16.2690756027396 0.174805820332831  18.9828896316388 -16.2690737227395 0.170315723969562  18.9914358320448 -16.2690733427395 0.169381817555204  18.9968209923005 -16.2690731027395 0.16880633010787  19.0116798130063 -16.2690724827394 0.16726097540447  19.0512026348835 -16.2690711127394 0.163627565061892  19.0958831370057 -16.2690702727393 0.16077116238622  19.1410530091512 -16.2690699527393 0.158804688432818  19.1628509001865 -16.2690699327393 0.158092576928994  19.1795389409792 -16.2690699727393 0.157651292188034  19.1909516415212 -16.2690700227393 0.157375936444956  19.2131543025758 -16.2690701427393 0.156926655233616  19.3055107069625 -16.2690710227394 0.155707695955718  19.3916959010561 -16.2690727927395 0.15654399209544  19.4649687145364 -16.2690729827395 0.155572182299282 
- 5.799e-005 4 0.00911011 1 0.01184943 1 0.01933622 1 0.02215936 1 0.02361054 1 0.03357248 1 0.04070557 1 0.04443321 1 0.04462717 1 0.04873214 1 0.04898016 1 0.05214827 1 0.05409931 1 0.07388539 1 0.08340877 1 0.08435152 1 0.08463293 1 0.11169353 1 0.11313579 1 0.1140504 1 0.1145288 1 0.14009726 1 0.14853784 1 0.15817185 1 0.1736098 1 0.18544934 1 0.19557634 1 0.2145634 1 0.23110051 1 0.23408285 1 0.2349686 1 0.25693061 1 0.27380952 1 0.30553373 1 0.31387299 1 0.31581004 1 0.42402476 1 0.44619464 1 0.45133548 1 0.45393803 1 0.4650376 1 0.50330337 1 0.59196272 1 0.62060496 1 0.6604875 1 0.66781698 1 0.678677 1 0.70020207 1 0.74507885 1 1.00005799 4
-7 0 0  1 2 2  19.4649687145364 -16.2690729827395 0.155572182299282  19.3665796498631 -16.2690975027406 0.333106715941719 
- 0 2 1 2
-7 0 0  3 13 11  19.4649687145364 -16.2690729827395 0.155572182299282  19.4899993457253 -16.2690743727395 0.156277522982784  19.5415420481734 -16.2690760527396 0.158350777271258  19.6100063214253 -16.2690758927396 0.162486888947713  19.6836233849219 -16.2690743727395 0.167877378613747  19.7486700380114 -16.2690722427394 0.173353668313857  19.811126750978 -16.2690703027393 0.178975915600899  19.8544829430373 -16.2690692527393 0.182955870389937  19.9056394154671 -16.2690684627392 0.187655083153138  19.9844783492117 -16.2690685827393 0.194779951381551  20.1070847350352 -16.2690746827395 0.204729381064123  20.2041447296453 -16.2690900027403 0.209871008458338  20.2590217622519 -16.2691035827409 0.211302165326314 
- 6.281e-005 4 0.09442575 1 0.19433944 1 0.25856568 1 0.37257442 1 0.44027042 1 0.49483365 1 0.53663486 1 0.6339335 1 0.79319117 1 1.00006281 4
-7 0 0  3 19 15  20.2590217622519 -16.2691035827409 0.211302165326314  20.2374981112295 -16.2690992927407 0.214927312588499  20.2009077494916 -16.2690935727404 0.221373680584685  20.1536237172457 -16.2690891627402 0.230168908222436  20.091921974315 -16.2690858527401 0.241979363993403  20.0454316421069 -16.2690863827401 0.251230397152803  20.0012057000062 -16.2690882527402 0.25995733479731  19.9825802591216 -16.2690891627402 0.263625185741524  19.9549764878105 -16.2690909027403 0.269013800647469  19.9168953460017 -16.2690937327405 0.276349123365878  19.8792293042127 -16.2690970327406 0.283428997242154  19.8415842424246 -16.2691005927408 0.290241914215751  19.8128828410614 -16.2691033527409 0.295270698234605  19.7660393488364 -16.2691078127411 0.303169240009766  19.6829660748907 -16.2691150527415 0.31586349777271  19.6092537513895 -16.2691183027416 0.324224538679839  19.4981263761113 -16.2691173227416 0.333158931784199  19.4322681729832 -16.2691117427413 0.335327173117185  19.3665796498631 -16.2690975027406 0.333106715941719 
- 5.543e-005 4 0.07264197 1 0.12345255 1 0.15974582 1 0.28146727 2 0.30978555 1 0.34462514 1 0.3749384 1 0.43859614 1 0.47194039 1 0.5022533 1 0.5355975 1 0.63013701 1 0.78146727 2 1.00005543 4
-7 0 0  2 4 3  20.2590217622519 -16.2691035827409 0.211302165326314  19.4993968861716 -13.7852491647642 -0.0206383583502694  17.9801471540111 -8.81754032981067 -0.484519405703436  17.2205222879309 -6.33368591083392 -0.716459929370019 
- 3.88e-005 3 4.04682293 1 8.09360706 3
-7 0 0  3 19 15  17.2205222879309 -6.33368591083392 -0.716459929370019  17.1720715056296 -6.333687510834 -0.704349721074815  17.0895424517097 -6.33368999283412 -0.684412453257846  16.9823821166198 -6.33369268283425 -0.660041473020286  16.8419193099482 -6.33369571983439 -0.629491992219264  16.7351797248783 -6.33369735683447 -0.608187890327373  16.6334954700486 -6.33369842683452 -0.589284515399511  16.5906758480148 -6.33369882983454 -0.581461927457958  16.5272499150022 -6.33369926683456 -0.570329120559178  16.439766290847 -6.33369964283458 -0.555618916310481  16.3531875767347 -6.33369969183458 -0.541979903582663  16.266494792617 -6.33369940883456 -0.529270515738999  16.200386409477 -6.33369902683455 -0.520051855971136  16.0924788643517 -6.3336981328345 -0.505775628033052  15.9016943952899 -6.33369559383438 -0.483264874763849  15.733138927284 -6.3336917328342 -0.467985540898119  15.4790280452143 -6.33368441883385 -0.449204947796089  15.3287786380779 -6.33367883483359 -0.441686339218974  15.178436250937 -6.33367198983326 -0.437746756651854 
- 5.543e-005 4 0.07264197 1 0.12345255 1 0.15974582 1 0.28146727 2 0.30978555 1 0.34462514 1 0.3749384 1 0.43859614 1 0.47194039 1 0.5022533 1 0.5355975 1 0.63013701 1 0.78146727 2 1.00005543 4
-7 0 0  3 13 11  15.4035701016303 -6.3336158858306 -0.843981276536958  15.4608449143507 -6.33361840283072 -0.842360442489972  15.5787170399493 -6.33362166583087 -0.837609274544304  15.7354255173926 -6.3336221928309 -0.828150550615039  15.903907215395 -6.33362067483083 -0.815831239849903  16.0527312724638 -6.33361818483071 -0.803320766485687  16.1955867992491 -6.33361615783061 -0.790477797945679  16.2947672539599 -6.33361533483057 -0.78138490557379  16.4118575095214 -6.33361522083057 -0.770646112303724  16.5923172280927 -6.33361748183067 -0.754359070240132  16.8729204314207 -6.33363148183134 -0.731594013948849  17.0949563119668 -6.33366082183273 -0.719784291197918  17.2205222879309 -6.33368591083392 -0.716459929370019 
- 6.281e-005 4 0.09442575 1 0.19433944 1 0.25856568 1 0.37257442 1 0.44027042 1 0.49483365 1 0.53663486 1 0.6339335 1 0.79319117 1 1.00006281 4
-7 0 0  1 2 2  19.4649687145364 -16.2690729827395 0.155572182299282  15.4035701016303 -6.3336158858306 -0.843981276536958 
- 3.88e-005 2 8.09360706 2
-7 0 0  3 53 51  13.4648676895469 -6.33366791783307 -0.649981567562466  13.4632048594679 -6.33365203783231 -0.655758151886839  13.4625395894363 -6.33363457683149 -0.663726866155333  13.4642965595197 -6.33361330583048 -0.676666707629942  13.4670970696528 -6.33360328483 -0.685176782364149  13.4709280898347 -6.33359839182977 -0.692171616156386  13.4761928800848 -6.33359459082959 -0.700207466808068  13.4851501305102 -6.33359675482969 -0.709151155032871  13.4974649510952 -6.33360553683011 -0.71712713779171  13.5044626414275 -6.33361101283037 -0.720782745865342  13.5096263516728 -6.33361503683056 -0.723300650344936  13.5125874218134 -6.33361727283066 -0.72464628526885  13.5175400520487 -6.33362089083084 -0.72674514210854  13.5210826222169 -6.33362332083095 -0.728177462686572  13.5374956129965 -6.33363319683142 -0.734409631982584  13.5577367939579 -6.33363728883162 -0.740154104565432  13.577086204877 -6.33363467383149 -0.743894301283082  13.5839447852027 -6.33363317883142 -0.745048125467885  13.6019911560599 -6.33362912283123 -0.748043828710174  13.620247616927 -6.33362107683084 -0.74988112437744  13.6390814078216 -6.33361437383053 -0.751687915403259  13.6408978079079 -6.3336137358305 -0.751860481171455  13.6581699087282 -6.3336075798302 -0.753468392547827  13.6805557997915 -6.33360317482999 -0.755817298019394  13.7092528711545 -6.33360194282993 -0.759129430186711  13.7314234422076 -6.33360257782997 -0.761791091823134  13.7560189733758 -6.3336053358301 -0.764865435479157  13.7810930445668 -6.33360985783031 -0.768081067161891  13.8086398358752 -6.3336158628306 -0.771641069270982  13.8394567973389 -6.33362377183097 -0.775631303400508  13.8654663785743 -6.33363049783129 -0.778891913335379  13.8792397392285 -6.33363390683145 -0.780571489885155  13.8966793600568 -6.33363826783166 -0.782694961186014  13.9234305513274 -6.33364401883193 -0.785784343612752  13.9706848635719 -6.33365075983225 -0.790686414975588  14.0085556253707 -6.33365275583235 -0.794067824006196  14.0363677566917 -6.33365260583234 -0.796276426911099  14.1147511504147 -6.33365110883227 -0.80231423939788  14.2013370145273 -6.33363667983159 -0.806759585419022  14.2900875187427 -6.33362174083088 -0.810635390793113  14.3096906496738 -6.33361857383073 -0.811478385843153  14.3220451802606 -6.33361664883063 -0.812014481908616  14.356119191879 -6.33361130983038 -0.813459830097267  14.4468917061905 -6.33360011282985 -0.817447821036686  14.5499647710862 -6.33359627782967 -0.822445993784087  14.6544602060495 -6.33359726282971 -0.827596122568705  14.7049538784478 -6.33359880382979 -0.830075981796492  14.7436226802845 -6.33360034682986 -0.831952494615621  14.7700676815405 -6.33360147682991 -0.833230552696326  14.8215221339845 -6.33360393383003 -0.835674183472392  15.0354168841439 -6.33361504683056 -0.845530307270533  15.2344341335968 -6.33362486183102 -0.851195051269594  15.4035701016303 -6.3336158858306 -0.843981276536958 
- 5.799e-005 4 0.00911011 1 0.01184943 1 0.01933622 1 0.02215936 1 0.02361054 1 0.03357248 1 0.04070557 1 0.04443321 1 0.04462717 1 0.04873214 1 0.04898016 1 0.05214827 1 0.05409931 1 0.07388539 1 0.08340877 1 0.08435152 1 0.08463293 1 0.11169353 1 0.11313579 1 0.1140504 1 0.1145288 1 0.14009726 1 0.14853784 1 0.15817185 1 0.1736098 1 0.18544934 1 0.19557634 1 0.2145634 1 0.23110051 1 0.23408285 1 0.2349686 1 0.25693061 1 0.27380952 1 0.30553373 1 0.31387299 1 0.31581004 1 0.42402476 1 0.44619464 1 0.45133548 1 0.45393803 1 0.4650376 1 0.50330337 1 0.59196272 1 0.62060496 1 0.6604875 1 0.66781698 1 0.678677 1 0.70020207 1 0.74507885 1 1.00005799 4
-7 0 0  2 4 3  18.6177078042936 -16.2690957227405 0.240354853816242  17.3294977731069 -13.7852387747637 0.0177707484740652  14.7530777207336 -8.81752486880994 -0.427397462210289  13.4648676895469 -6.33366791783307 -0.649981567562466 
- 0.00020743 3 23.12299448 1 46.24578153 3
-7 0 0  3 31 29  13.7551732833356 -6.33367429383337 -0.507938351705776  13.7410455626646 -6.33367991883364 -0.510546119379638  13.7264243219701 -6.33368167983372 -0.513962461971906  13.7100939911945 -6.33368182383373 -0.517435040326845  13.7033859008759 -6.33368177483373 -0.518836209713397  13.6929111303783 -6.3336812948337 -0.520861177339577  13.6808298298045 -6.33368013383365 -0.523124316637071  13.670439259311 -6.33367863683358 -0.525192101125285  13.6620850589142 -6.33367711183351 -0.527012448251747  13.6570592186755 -6.33367603883346 -0.528220327009118  13.6489469482902 -6.33367420383337 -0.530258970305948  13.6380266577715 -6.33367133183323 -0.533358766143181  13.6233938770765 -6.33366737983304 -0.537981139052732  13.6131846365915 -6.33366492383293 -0.541334598022012  13.6044516061767 -6.33366316983284 -0.544194393997845  13.5954809957507 -6.33366173783278 -0.547113666136503  13.581677365095 -6.33366042783271 -0.551700875504384  13.5695549945192 -6.33366032683271 -0.556151408125773  13.5570896639272 -6.33366098483274 -0.561406864565394  13.5483289035111 -6.33366184683278 -0.565530757171268  13.5402414031269 -6.33366299283284 -0.569754445801883  13.5362538629375 -6.33366364183287 -0.571939274515657  13.5315848127158 -6.3336644338329 -0.574549126149618  13.5269394124951 -6.33366531983295 -0.577249409807875  13.5183692620881 -6.33366709783303 -0.582537830359061  13.5108563417312 -6.33366875783311 -0.587629427220899  13.5032698513709 -6.33367030283318 -0.593676022478097  13.4919576008336 -6.33367232683328 -0.60376210355716  13.4770737501266 -6.33367365383334 -0.621468899478187  13.4679253196921 -6.3336707248332 -0.640374273226144  13.4648676895469 -6.33366791783307 -0.649981567562466 
- 0.00034374 4 0.12844973 1 0.13092921 1 0.14807888 1 0.18926565 1 0.22666433 1 0.2593107 1 0.28513852 1 0.30371952 1 0.30555395 1 0.35968911 1 0.40366864 1 0.43987085 1 0.45418655 1 0.48522664 1 0.52438856 1 0.58584973 1 0.60243388 1 0.64566678 1 0.67135118 1 0.68258527 1 0.68568331 1 0.7184619 1 0.73014898 1 0.77558629 1 0.79999969 1 0.81719017 1 0.91044076 1 1.00034374 4
-7 0 0  1 2 2  11.2339737235851 -1.75393664830752 -1.18752892440459  13.4648676895469 -6.33366791783307 -0.649981567562466 
- 0.48181163 2 12.06882334 2
-7 0 0  1 2 2  13.7551732833356 -6.33367429383337 -0.507938351705776  11.7544106983045 -1.87810382820514 -0.947904145423029 
- 0.19391992 2 2.76255331 2
-7 0 0  7 8 2  11.7544106983045 -1.87810382520514 -0.947904145760029  11.7511115481478 -1.87781746519154 -0.948560236622192  11.7476131379817 -1.87750514417671 -0.949270933641948  11.7438178778014 -1.87715942816028 -0.950056136040243  11.7396259576023 -1.87677176214187 -0.950939249624189  11.7349020073779 -1.87632951412087 -0.951948193159111  11.7294703271199 -1.87581629809649 -0.953125736656041  11.7230005468126 -1.87519847706714 -0.954527313500612 
- 0 8 0.09090909 8
-7 0 0  9 18 3  11.7230005468126 -1.87519847706714 -0.954527313500612  11.7182484865869 -1.87474468904559 -0.955556771977509  11.7147218264194 -1.87440932702966 -0.956320251037772  11.7117968162805 -1.87413204301649 -0.956947920193585  11.7093072261622 -1.87389723200534 -0.95748026745087  11.7070775760563 -1.8736879019954 -0.957952890918319  11.7050421059596 -1.87349800198638 -0.95838221302671  11.7031173858682 -1.8733195599779 -0.958785024790843  11.7012501357795 -1.87314767196974 -0.959172910732266  11.6976449056083 -1.87281824595409 -0.959914876058508  11.6959076955258 -1.8726605989466 -0.960269303964342  11.6941189054408 -1.87249937093894 -0.960631631639552  11.6922332853513 -1.87233048093092 -0.961010624738553  11.690184855254 -1.87214815192226 -0.961420330278013  11.6879140251461 -1.87194705291271 -0.961870545825397  11.6852870250213 -1.87171562190172 -0.962389472181045  11.6821623748729 -1.87144139488869 -0.963001560687118  11.6780848446792 -1.87108504887177 -0.963799833250033 
- 0.09090909 10 0.138085007 8 0.18181818 10
-7 0 0  4 5 2  11.6672705041656 -1.87013482582663 -0.965924593252954  11.6844733549827 -1.87166202789917 -0.96251442727198  11.6974458555988 -1.87281494695393 -0.959918134296663  11.7061885860141 -1.87360302699136 -0.958138320939126  11.7107016962285 -1.87402893301159 -0.957175687632403 
- 0.6 5 0.8 5
-7 0 0  9 18 3  11.6705331843206 -1.87042310684033 -0.965280878400379  11.6664259741255 -1.87006122882314 -0.96608956310479  11.6629190439589 -1.86974794380826 -0.966786142260875  11.6598103038112 -1.86946655479489 -0.967411883354597  11.6569909036773 -1.8692078017826 -0.967986890295908  11.6543829635535 -1.86896499577107 -0.968526094385519  11.6519272334368 -1.86873296176005 -0.969041117828981  11.6495786033253 -1.86850762774935 -0.969540783172714  11.6472960732169 -1.86828522173878 -0.970033914189136  11.6419584829633 -1.86775695571369 -0.971206370764825  11.6389286428194 -1.86745054369914 -0.971887377974171  11.6358577326736 -1.86713354368408 -0.972590295376558  11.6326625525218 -1.86679744566812 -0.973333920372878  11.6292411423593 -1.86643099965071 -0.974141618640242  11.625488562181 -1.86602290363133 -0.975041499236984  11.6212205419783 -1.86555156460894 -0.976077554846194  11.6162135917405 -1.86499178158235 -0.977312041408829  11.60988705144 -1.86427362754824 -0.978885058245543 
- 0.27272727 10 0.311110684 8 0.36363636 10
-7 0 0  13 14 2  11.5253851174264 -1.85416340406803 -1.00069086553026  11.5309641976914 -1.85495133410546 -0.999017899189802  11.5382577680378 -1.85593192115203 -0.996931358761696  11.5474563184747 -1.85711904820842 -0.994398228872379  11.5586474690063 -1.8585124352746 -0.991414581982664  11.5717528796287 -1.8600892853495 -0.988021567915504  11.5863414603217 -1.86178862743021 -0.984345385838895  11.601760831054 -1.86352161951252 -0.980566236954395  11.6166787117626 -1.86513983558938 -0.977011169254538  11.6303736224131 -1.86657771165768 -0.973836621456755  11.6423470729818 -1.86779192071535 -0.971144284570876  11.6524481334616 -1.86877903276224 -0.968949018326607  11.6607072138538 -1.86955215479896 -0.967225668346752  11.6672705041656 -1.87013482582663 -0.965924593252954 
- 0.4 14 0.6 14
-7 0 0  9 18 3  11.5686412494809 -1.85959163232586 -0.989067894755202  11.5632220392236 -1.85897247429645 -0.990404714278697  11.5586254190052 -1.85843713327102 -0.991553265726251  11.5545678088125 -1.85795627224818 -0.992585352830272  11.5509009286383 -1.85751379622717 -0.993534217643341  11.5475190584777 -1.85709810120742 -0.994424825258643  11.5443423283268 -1.85670021318852 -0.995276633542101  11.5413109681828 -1.85631308417014 -0.996104126320405  11.5383704480432 -1.85593016115195 -0.996922159387259  11.5314537077146 -1.85501157910832 -0.998885586665517  11.5275161775276 -1.85447407908279 -1.00003543449913  11.5235306773383 -1.85391560405626 -1.00122523955564  11.5193855571414 -1.85332078602801 -1.00248843561564  11.5149455669305 -1.85266844099702 -1.003864526681  11.5100696266989 -1.85193821696234 -1.00540615275423  11.504513016435 -1.85108829792197 -1.00718969883894  11.4979746861245 -1.85007186087369 -1.00933067794063  11.4896716757301 -1.8487498478109 -1.01209293307183 
- 0.54545455 10 0.583550284 8 0.63636364 10
-7 0 0  9 10 2  11.2476413042343 -1.76656090890714 -1.16638962240053  11.26671057514 -1.78237843365843 -1.1395370341251  11.2871293761099 -1.79508003526172 -1.11692149105092  11.3093907871672 -1.80588765777506 -1.0970715151081  11.3339992183361 -1.81535286222463 -1.07918743925865  11.3616030696472 -1.82390046763062 -1.06265331947332  11.392991591138 -1.83180554600609 -1.04700680573015  11.4293728128661 -1.83932332736317 -1.03179823600778  11.4723937949094 -1.84667946971256 -1.01658107428501  11.5253851174264 -1.85416340406803 -1.00069086553026 
- 0.2 10 0.4 10
-7 0 0  14 28 3  11.4896716757301 -1.8487498478109 -1.01209293307183  11.487521775628 -1.84840753779464 -1.0128081651058  11.4854957355317 -1.84808401377928 -1.01348438013792  11.4835809354408 -1.84777736276471 -1.01412530716837  11.4817668053546 -1.84748591675087 -1.01473344819725  11.4800449552729 -1.84720817773768 -1.01530899322459  11.4784003151947 -1.8469433567251 -1.01587232825134  11.4768456651209 -1.84668897171302 -1.01637313427513  11.4753394650494 -1.8464464457015 -1.01690546730042  11.4739157249817 -1.84621216369037 -1.01736680732233  11.4725369649162 -1.8459875506797 -1.01784356934497  11.4712175848536 -1.84577057666939 -1.01828717636604  11.4699450547931 -1.84556115465945 -1.01872075038664  11.4687180347349 -1.84535851364982 -1.0191389854065  11.4647783145477 -1.84470593561883 -1.02048600747048  11.4622481144275 -1.84428351159876 -1.02135752851188  11.4598976543159 -1.84388798957998 -1.02217351955063  11.4576919042111 -1.8435137985622 -1.0229454885873  11.4556022141119 -1.84315628854522 -1.02368282962232  11.453604124017 -1.84281140252884 -1.02439364665609  11.4516757139254 -1.84247541651288 -1.02508535368894  11.4497964138361 -1.84214473849718 -1.02576511772123  11.4479461237482 -1.84181575648155 -1.02644017775329  11.4461042836608 -1.84148466746582 -1.02711816978549  11.4442487335726 -1.8411472604498 -1.02780762181824  11.4423538034826 -1.84079854143323 -1.02851879185202  11.4403873433892 -1.84043211341583 -1.02926512388747  11.4383059532904 -1.84003920239717 -1.03006557492549 
- 0.63636364 15 0.663720479 13 0.72727273 15
-7 0 0  5 14 4  11.4383059532904 -1.84003920239717 -1.03006557492549  11.4357428031686 -1.83955534637419 -1.03105130297231  11.4332318830493 -1.83907106935118 -1.032034270019  11.4307599029319 -1.83858438932807 -1.0330197180658  11.4283154628158 -1.83809345530475 -1.03401254111296  11.4210443224705 -1.83660463423404 -1.03702371725598  11.4162679322436 -1.83558849418577 -1.03907926635361  11.4114830720163 -1.83453250913561 -1.04120668045466  11.4066237617855 -1.83342116208283 -1.04343437456047  11.397685651361 -1.83130159498215 -1.04766024076119  11.39366454117 -1.83032282493567 -1.04960431185353  11.3895148209729 -1.82928666688645 -1.05165460795091  11.3851968107678 -1.82818081783393 -1.05383511905448  11.3806606805524 -1.82698744377724 -1.05618044516588 
- 0.72727273 6 0.747207949 4 0.786983787 4 0.81818182 6
-7 0 0  13 26 3  11.3208351477108 -1.8081960518847 -1.09221848887759  11.3171783675371 -1.80676527781674 -1.0948967360048  11.3135399973643 -1.80528833874659 -1.09765016313558  11.3099189871923 -1.80376460567422 -1.10048591327027  11.3063184570213 -1.80219296859957 -1.10338496740797  11.302732926851 -1.80057313552263 -1.10638583655051  11.2991719266818 -1.79890322544331 -1.1094300476951  11.2956252465134 -1.79718330536162 -1.11258969984517  11.2921042163461 -1.79541118927745 -1.11579753399754  11.2886021761798 -1.79358645719078 -1.11910544915465  11.2851250360147 -1.79170734210153 -1.12248511831518  11.2816724858507 -1.78977264100963 -1.12595062747978  11.278247135688 -1.78778078491503 -1.12949934864834  11.2714552253654 -1.78367955272023 -1.13676778999357  11.2680886852055 -1.78157017462004 -1.14048743017024  11.2647538950471 -1.77940041751698 -1.14429397535104  11.2614535148903 -1.77716855341097 -1.14818901653605  11.2581906347353 -1.77487273730193 -1.15217424472534  11.2549687445823 -1.77251099818975 -1.15625143791899  11.2517918244314 -1.77008123107434 -1.16042245411711  11.2486643742829 -1.7675811909556 -1.16468921631977  11.2455915141369 -1.7650084738334 -1.16905369952707  11.2425790239938 -1.76236051170763 -1.17351790573911  11.2396334538539 -1.75963455457815 -1.17808384995598  11.2367622237175 -1.75682765344483 -1.18275353417778  11.2339737135851 -1.75393664830752 -1.18752892440459 
- 0.90909091 14 0.954545455 12 1 14
-7 0 0  7 8 2  11.7544106583045 -1.87810383020514 -0.947904129004028  12.0783651736915 -1.89769579713571 -0.902928185592786  12.402266709076 -1.91178326380483 -0.867147394679289  12.7261328244588 -1.92138281926078 -0.840884580001872  13.0499763698406 -1.92718805153652 -0.824271077433774  13.3738045752216 -1.92955992964917 -0.81735884869746  13.697618850602 -1.92853900160068 -0.820155925459314  14.0214149259814 -1.92384090537754 -0.832597703716267 
- 0 8 1 8
-7 0 0  13 50 5  15.4046082516796 -1.88091313133858 -0.93821375417976  15.3978077413566 -1.88129073635651 -0.937351763946818  15.3909982510332 -1.88166667337437 -0.936492398574  15.3841798107093 -1.88204094039214 -0.935635675149308  15.377352450385 -1.88241353640984 -0.934781610779742  15.3705161700603 -1.88278446142746 -0.933930222530303  15.3636710097352 -1.883153714445 -0.933081527536992  15.3568169894096 -1.88352129346246 -0.93223554283381  15.3499541290837 -1.88388719747984 -0.931392285578758  15.3430824387573 -1.88425142649714 -0.930551772805835  15.3362019684305 -1.88461397751436 -0.929714021649044  15.3293127181033 -1.8849748515315 -0.928879049177385  15.3224147177756 -1.88533404754856 -0.928046872494859  15.2913195962987 -1.88694363362501 -0.924312953280507  15.2670241551447 -1.8881751036835 -0.921442889486187  15.2426231139857 -1.88938591274101 -0.91860806388454  15.2181179628218 -1.89057600379754 -0.915809214355601  15.193510201653 -1.89174532485308 -0.913047070124407  15.1688013604794 -1.89289382390763 -0.91032235168799  15.143992989301 -1.89402144996119 -0.907635770915384  15.119086658118 -1.89512815701375 -0.904988030933623  15.0940839569305 -1.89621390106532 -0.90237982623674  15.0689865057384 -1.8972786371159 -0.899811842598767  15.0437959545419 -1.89832232816547 -0.897284757130737  15.0185139733411 -1.89934493321404 -0.894799238251681  14.9734693412016 -1.90112295629849 -0.890461450881647  14.9537424802646 -1.90188679633477 -0.888592340906869  14.9339622793251 -1.90263792537045 -0.886748910425311  14.9141293583831 -1.90337633240552 -0.884931449711986  14.8942443274386 -1.90410200543999 -0.883140244684909  14.8743078364917 -1.90481493447385 -0.881375576866092  14.8543205055423 -1.90551511150711 -0.879637723443548  14.8342829645906 -1.90620252653976 -0.877926957190291  14.8141958736365 -1.9068771735718 -0.876243546551333  14.7940598726801 -1.90753904660324 -0.874587755566687  14.7738756017214 -1.90818813863407 -0.872959843927366  14.7536437307604 -1.90882444566429 -0.87136006694338  14.6802281372734 -1.91108177477151 -0.865671145999171  14.6267702747343 -1.91262777884494 -0.861748464979854  14.5730032921805 -1.9140859049142 -0.858025137881005  14.5189342596123 -1.91545624897929 -0.854505131850814  14.4646001770316 -1.91673823904018 -0.851194027395545  14.4099715444369 -1.91793293309692 -0.848093027886255  14.3551209518316 -1.91903900314946 -0.845209412286291  14.3000041192137 -1.92005794819785 -0.84254294146164  14.244681076586 -1.92098883024207 -0.840099578975587  14.1891396939479 -1.92183246828214 -0.837880534953188  14.1334066713008 -1.92258880331806 -0.835889150017602  14.077493188645 -1.92325818434986 -0.834127519602929  14.0214149759814 -1.92384089337753 -0.832597738772269 
- 0.66666667 14 0.68992277 12 0.771369089 12 0.834521425 12 1 14
-7 0 0  8 9 2  14.0214149259814 -1.92384090537754 -0.832597703716267  14.4469519161934 -1.91941914516751 -0.844206113928637  14.8746440165076 -1.90954145869835 -0.870309830529497  15.3002858267245 -1.89368147794504 -0.911214039722342  15.71936963663 -1.87078778785765 -0.966689618380291  16.1273476160079 -1.83925587135996 -1.0358682782011  16.5200163346586 -1.79705184335538 -1.11704284505669  16.8938235024135 -1.7422726037535 -1.20755015635555  17.2459916091406 -1.67360683349206 -1.30407192294009 
- 0 9 1 9
-7 1 0  1 2 2  17.2459916291406 -1.67360684049206 -1.30407191694009  0.51545457 20.1549001573063 -1.6722750014288 -1.30306872289244  0.51628915
- 0 2 0.22601628 2
-7 0 0  1 2 2  20.1549001573063 -1.3686672230082 1.41444126018235  7.21279194058922 -1.34821673503686 1.41444126218235 
- 0 2 1 2
-7 1 0  1 2 2  7.21279194058922 -1.75566531738962 -1.18857460045426  0.5216806 11.2339737235851 -1.75393664830752 -1.18752892440459  0.5228068
- 0.69078273 2 1 2
-7 0 0  4 5 2  11.2339734735851 1.75393601130749 -1.1875290174046  11.2219366830134 1.7412030157027 -1.20856125940358  11.2161503127385 1.72852284410043 -1.22874235436213  11.2166156027606 1.7159510815033 -1.24808465628084  11.2233329330797 1.70353742691368 -1.26660390716045 
- 0 5 0.125 5
-7 0 0  6 12 3  11.2431027540187 1.68196504388905 -1.29813864065827  11.2408827239133 1.68359650096654 -1.29580168054727  11.2388492538167 1.68520934304315 -1.29348151743707  11.2369567337268 1.68682613111994 -1.29114947632631  11.2351752936422 1.68846606119783 -1.28877807021367  11.2334815035617 1.69014832527773 -1.28633739309774  11.2302573734086 1.69361462344237 -1.28127979985752  11.2287250033358 1.69539677152702 -1.27866604573338  11.227255703266 1.69726117461558 -1.27592152160302  11.2258514631993 1.69923059970912 -1.27301195746482  11.2245206231361 1.70133227680894 -1.26989396831672  11.2232964030779 1.70360386691684 -1.26650453215573 
- 0.80952381 7 0.833512563 5 0.85714286 7
-7 0 0  7 20 4  11.2747063555198 1.66523611609447 -1.3217362977791  11.2724905554145 1.66609751913538 -1.32053980272227  11.27028850531 1.66699117917783 -1.31929676266323  11.2681053252063 1.66791611122176 -1.31800751560199  11.2659480851038 1.66887117726712 -1.31667339553863  11.2638213350028 1.66985510131386 -1.31529543147318  11.2617311049035 1.6708664823619 -1.31387558040574  11.2583084247409 1.67259955044421 -1.3114367472899  11.2569531446766 1.67330696047781 -1.31043972424254  11.2556181946132 1.67402558951195 -1.30942536419436  11.2543050745508 1.67475496154659 -1.30839435514539  11.2530152244895 1.67549458758172 -1.30734744709567  11.2517499644294 1.67624395761731 -1.30628545404523  11.2493863043172 1.67769065068603 -1.30423305094774  11.2482833142648 1.67838634271907 -1.30324515690082  11.2472020942134 1.67908923975246 -1.30224575185335  11.2461430641631 1.67979895578617 -1.30123507480535  11.2451066241139 1.68051509682018 -1.30021342075682  11.2440931040657 1.68123726085448 -1.29918113870779  11.2431027540187 1.68196504388905 -1.29813864065827 
- 0.76190476 8 0.78279883 6 0.796812364 6 0.80952381 8
-7 0 0  14 28 3  11.3057201669929 1.65529250362217 -1.33542224342915  11.3038177169025 1.65582096564727 -1.33470145139491  11.3019811068153 1.65633760967181 -1.33399498136136  11.3002050267309 1.65684367469585 -1.33330439032856  11.2984877866493 1.65734000671942 -1.33261553529584  11.2968156865699 1.65782857474263 -1.33197540126543  11.2952067164935 1.65830826376541 -1.33127581423221  11.2936254864184 1.65878308478797 -1.33067404520362  11.2921045063462 1.65925048381017 -1.32999259717126  11.2906103162752 1.65971425583219 -1.32938145714223  11.2891606362063 1.66017325485399 -1.32873824211168  11.287742256139 1.66062931387566 -1.32811440108205  11.2863568960732 1.6610828308972 -1.32748825205231  11.2850010360088 1.66153471391866 -1.32686459102268  11.2829928959134 1.66221653295105 -1.32592237997793  11.2823203458814 1.662447100962 -1.32560357396279  11.2816546758498 1.66267755297294 -1.32528475394765  11.2809955958185 1.66290799498389 -1.32496578193249  11.2803428257875 1.66313853599484 -1.32464651891733  11.2796960657568 1.6633692830058 -1.32432682490215  11.2790550657263 1.66360034701677 -1.32400655888693  11.2784195256962 1.66383183602777 -1.32368557787169  11.2777891956662 1.66406386403879 -1.3233637368564  11.2771637956365 1.66429654304984 -1.32304088684107  11.276543075607 1.66452998806093 -1.32271687682568  11.2759267655778 1.66476431907206 -1.32239154881023  11.2753146155487 1.66499965408324 -1.3220647447947  11.2747063555198 1.66523611609447 -1.3217362977791 
- 0.71428571 15 0.74578602 13 0.76190476 15
-7 0 0  10 29 4  11.3654084298279 1.64206252299378 -1.35325031727594  11.3630723197169 1.64248090601365 -1.35269312624947  11.3608336496106 1.64288656203292 -1.35215172422376  11.3586817795084 1.64328118405166 -1.35162475919873  11.3566081294099 1.64366619506995 -1.35110878917422  11.3546027193147 1.64404311208785 -1.35060816315044  11.3526615492225 1.64441282310541 -1.35011164812686  11.3507753391329 1.6447767181227 -1.34962649610382  11.3489399290457 1.64513565513975 -1.34914599108099  11.3471492189606 1.64549067915661 -1.34867098705843  11.3436474687943 1.64619472819005 -1.34772837901366  11.341936398713 1.64654375620663 -1.34726083699145  11.3402601386334 1.64689071822311 -1.34679580096936  11.3386140085552 1.64723650423953 -1.34633206094734  11.3369936684783 1.64758197525594 -1.34586843292532  11.3353949784023 1.64792797727238 -1.34540373990325  11.3338140083273 1.64827535428887 -1.34493678588107  11.3322469182528 1.64862495530548 -1.34446633385872  11.3306899381789 1.64897765232223 -1.34399108583615  11.3268853679982 1.6498528313638 -1.34280987278004  11.3246448278917 1.65037977138883 -1.34209702074618  11.3224060577854 1.65091794641439 -1.34136792671155  11.3201573676786 1.65147032444063 -1.34061894167598  11.3178868175708 1.65204009746769 -1.33984593563926  11.3155819074613 1.65263076949575 -1.33904419960118  11.3132291073495 1.65324629352498 -1.33820825356148  11.3108133072348 1.65389125655562 -1.33733156451984  11.3083171471162 1.65457111958791 -1.33640617547588  11.3057201669929 1.65529250362217 -1.33542224342915 
- 0.66666667 11 0.680455039 9 0.694243409 9 0.71428571 11
-7 0 0  11 22 3  11.4940436859378 1.62454952916196 -1.37619157236559  11.4897629057344 1.62500140118342 -1.37560923333793  11.4855620055349 1.62545111720478 -1.37502951431039  11.481436915339 1.62589900822606 -1.37445140728294  11.4773844051465 1.62634541024726 -1.37387633525562  11.4733994749572 1.6267906152684 -1.37329860122818  11.4694814447711 1.62723498328951 -1.37272750720106  11.4656234145879 1.62767875631059 -1.3721495421736  11.4618258244075 1.62812230033166 -1.3715768961464  11.4580833742297 1.62856587635272 -1.37100089411905  11.4543941240545 1.62900979737381 -1.37042434309166  11.4420489134681 1.63051797144544 -1.36846321499851  11.4336305030683 1.63158526149614 -1.36707170093242  11.4254623226803 1.6326603025472 -1.36566643186567  11.4175101223026 1.63374717059882 -1.36424226679803  11.4097422619337 1.6348500036512 -1.36279402872924  11.402129121572 1.63597306670455 -1.36131630265905  11.3946423712164 1.63712084375906 -1.35980322058718  11.3872544908655 1.63829813881498 -1.35824822051333  11.379938130518 1.63951019187255 -1.35664380143712  11.3726656101726 1.64076281193205 -1.35498124135815  11.3654084298279 1.64206252299378 -1.35325031727594 
- 0.61904762 12 0.633084236 10 0.66666667 12
-7 0 0  10 11 2  11.5701541695528 1.61709257980777 -1.38573625381894  11.5565882589085 1.61836862986838 -1.38411372374187  11.5463530084223 1.61933918391448 -1.3828827616834  11.5378684680193 1.62014982995298 -1.38184516863412  11.5306096076745 1.62085002798624 -1.38094888359155  11.5241078873657 1.62148357901633 -1.38013327655281  11.5181217870814 1.62207436704439 -1.37937391051674  11.5123987968096 1.62264687307159 -1.37863758248177  11.5066990665389 1.62322634709911 -1.3778930324464  11.5007704262573 1.62383946812823 -1.37710664740905  11.4940436859378 1.62454952916196 -1.37619157236559 
- 0.57142857 11 0.61904762 11
-7 0 0  8 16 3  11.64673082319 1.60964937245424 -1.39514540826585  11.6415692929448 1.61017718347931 -1.39448205623434  11.6370536727304 1.61063562950108 -1.39390590420697  11.6329136925337 1.61105294652091 -1.39338080518203  11.6290120323484 1.61144336453945 -1.39288879815866  11.6252370321691 1.61181835755726 -1.39241542413618  11.6215033819918 1.61218654457475 -1.39194995011407  11.6177280118124 1.61255619659231 -1.39148213609185  11.6097871514353 1.61332830162898 -1.39050496504544  11.605612821237 1.61373144464813 -1.3899947260212  11.6011999110274 1.61415507766825 -1.38945854399574  11.5964374308012 1.61460983468985 -1.38888282896839  11.5911974305523 1.6151078557135 -1.38825274993846  11.5852859202715 1.61566741674008 -1.38754434390482  11.5784521199469 1.6163120527707 -1.38672871686608  11.5701541695528 1.61709257980777 -1.38573625381894 
- 0.52380952 9 0.547237546 7 0.57142857 9
-7 0 0  10 11 2  11.7609727086162 1.59741305187305 -1.41038047298947  11.7415220476923 1.59954192697416 -1.40775573786481  11.7263593269722 1.60119696205277 -1.40569829676708  11.7136148763668 1.60258279711859 -1.40397787868537  11.7025580358417 1.60377924017542 -1.40248858661463  11.6925938153684 1.60485106122633 -1.40115556355131  11.6833678349302 1.60583618927312 -1.39992674549295  11.6745395145108 1.60677089331752 -1.39875905943749  11.6657822640949 1.60768875036111 -1.39760923238287  11.6567435236656 1.60862549340561 -1.39643222332697  11.64673082319 1.60964937245424 -1.39514540826585 
- 0.47619048 11 0.52380952 11
-7 0 0  12 13 2  11.8750858240363 1.58526635829611 -1.42520972769383  11.8665017236286 1.58613092033717 -1.4241649136442  11.8588757832663 1.58690873337412 -1.42322122559938  11.8516629329238 1.58765259340945 -1.42231806455648  11.8445812625874 1.58839030544449 -1.42142268151395  11.8374007922463 1.58914534848035 -1.42050678347045  11.8299087718905 1.58993916151805 -1.41954166742461  11.8219092115105 1.59079318655862 -1.41850387137532  11.8131298310935 1.59173611860341 -1.41735564832078  11.8032795306257 1.59279983465393 -1.41605576825904  11.791874780084 1.59403741071271 -1.41453982518703  11.7782648894375 1.59552041978315 -1.41271393510031  11.7609727086162 1.59741305187305 -1.41038047298947 
- 0.42857143 13 0.47619048 13
-7 0 0  7 8 2  12.2620384124155 1.55536501987587 -1.46042144336629  12.1982259993846 1.55909803305318 -1.45614240816305  12.1387333265589 1.56293043123521 -1.45172253495312  12.0824993938879 1.56690423342395 -1.44709274773321  12.028708781333 1.57106528162159 -1.44220256550094  11.9766526688604 1.57546640183064 -1.43698822425327  11.9256735864391 1.58017132105411 -1.43136702498628  11.8750858240363 1.58526635829611 -1.42520972769383 
- 0.38095238 8 0.42857143 8
-7 0 0  9 10 2  12.4978729636171 1.54304602729075 -1.47438376302947  12.4583060717378 1.54495717938152 -1.47224143092771  12.4259631602016 1.54655090845722 -1.47045485484285  12.3979668388718 1.54795592152396 -1.46886604376739  12.3729873676853 1.54923548058473 -1.46741494769847  12.3499553865914 1.550441253642 -1.46604155763323  12.3281435655554 1.55161109269757 -1.46470910056995  12.3067910445412 1.55278694075342 -1.46336856150627  12.285164153514 1.55401217381161 -1.46197217243995  12.2620384124155 1.55536501987587 -1.46042144336629 
- 0.33333333 10 0.38095238 10
-7 0 0  5 6 2  12.5372930154894 1.54114996220069 -1.47650613213027  12.5247258148925 1.54175276422932 -1.47583238709827  12.5145005944069 1.54224443125268 -1.47528256907216  12.5066168740324 1.54262413027071 -1.47485688905194  12.5010743737691 1.54289139428341 -1.4745571020377  12.4978729636171 1.54304602729075 -1.47438376302947 
- 0.28571429 6 0.33333333 6
-7 0 0  9 18 3  12.7343610748497 1.53144516073974 -1.48727912364196  12.7247541943934 1.53194050476327 -1.48673288161602  12.715882653972 1.53239576878489 -1.48623070559217  12.7075319435754 1.53282218580514 -1.48575998656981  12.6995521731963 1.5332275928244 -1.48531199854853  12.6918270128294 1.53361804084294 -1.48488005152801  12.6842579824699 1.53399861886102 -1.48445855050799  12.6767573921136 1.53437382187884 -1.48404258948824  12.6692439517568 1.5347477748966 -1.48362771446853  12.6511079308954 1.53564601293927 -1.48263089242119  12.6403978603867 1.5361729619643 -1.4820458813934  12.6292848698588 1.53671650599011 -1.48144208536472  12.6175491493014 1.53728751201724 -1.48080756133458  12.6049341487022 1.53789853804626 -1.48012816230231  12.5911369280469 1.53856430507788 -1.47938806626716  12.5757302373151 1.53930553511309 -1.47856340422799  12.5581391864796 1.5401500511532 -1.47762372318336  12.5372930154894 1.54114996220069 -1.47650613213027 
- 0.23809524 10 0.25807507 8 0.28571429 10
-7 0 0  9 10 2  13.029730568879 1.51556611498552 -1.50459785046456  12.980423296537 1.51826033811349 -1.50169357632661  12.9398135146081 1.52048154921899 -1.49927953921195  12.9045599129337 1.52240450031033 -1.49718858911264  12.8730533614372 1.52411537939159 -1.49532328702404  12.8440213100582 1.52568133946597 -1.49361426794287  12.8165760387547 1.5271493625357 -1.49200713586653  12.7898174774837 1.52856586560298 -1.49045236579269  12.7628736662039 1.52997500166991 -1.48890033771897  12.7343610748497 1.53144516073974 -1.48727912364196 
- 0.19047619 10 0.23809524 10
-7 0 0  13 14 2  13.2067962572891 1.5060408855331 -1.51479260394878  13.196056816779 1.50660367155983 -1.51419480492039  13.1867213163356 1.50709556758319 -1.51367162889554  13.1778722059153 1.50756377860543 -1.51317366787189  13.1691423855007 1.50802747262746 -1.51268011284845  13.1601684950744 1.50850570565017 -1.51217156782429  13.1507413546267 1.50900961667411 -1.51163404479876  13.1404793741393 1.50955973970024 -1.51104868977096  13.1291712936021 1.5101673567291 -1.5103990407401  13.1162438229881 1.51086401976219 -1.50965511570477  13.1012543922762 1.51167347780063 -1.50878760566356  13.0831247614151 1.51265573084729 -1.5077335226135  13.0605663703436 1.5138811979055 -1.50641412655083  13.029730568879 1.51556611498552 -1.50459785046456 
- 0.14285714 14 0.19047619 14
-7 0 0  7 14 3  13.6011781260213 1.48824087468765 -1.53339961183257  13.5798940150103 1.48898567072302 -1.5326360677963  13.5588446340105 1.4897557187596 -1.53184360475866  13.5378626030139 1.49055520279757 -1.5310190727195  13.5167994820135 1.49138857883715 -1.53015823067861  13.4955146810025 1.49226075687858 -1.52925590063575  13.4738664799743 1.49317735692212 -1.52830587059063  13.4216938974962 1.49545550503032 -1.52593912847822  13.3907415360261 1.49685965509702 -1.52447628940873  13.3584732644934 1.49837413616895 -1.52289355433356  13.3244875428792 1.50001904724708 -1.52116739725157  13.2883073411607 1.50182016433263 -1.51926944216142  13.2493512393104 1.50381084942718 -1.5171613790613  13.2067962572891 1.5060408855331 -1.51479260394878 
- 0.0952381 8 0.115465374 6 0.14285714 8
-7 0 0  10 11 2  13.1505413946172 1.50901974167459 -1.51162079679813  13.3141227023869 1.50027129725906 -1.52095808824163  13.4536125290123 1.49353754593922 -1.52799715857597  13.57693951487 1.48834884969277 -1.5333475748301  13.6886526701761 1.48445606650788 -1.53730917201826  13.7921738550931 1.48170494237721 -1.54007034514941  13.8901284297457 1.48002003729718 -1.54171981922776  13.9848544842449 1.47937997626678 -1.54228786725474  14.0786412886995 1.47983049428817 -1.541724938228  14.1739947532286 1.4814879153669 -1.53990398514151  14.2745160980031 1.48462394451585 -1.53651035798032 
- 0.875 11 1 11
-7 0 0  12 13 2  14.2745160980031 1.48462394451585 -1.53651035798032  14.3757877128132 1.4876546686598 -1.53322643382434  14.4666377971284 1.49119504582796 -1.52940377264278  14.5529301112271 1.49524710202042 -1.52502600643485  14.6378334352597 1.49985683323937 -1.52003056219757  14.7239976893523 1.50509451248815 -1.5143298089268  14.8137552636156 1.51106512977174 -1.50778606061599  14.9094918081628 1.51790425909658 -1.50023751625746  15.0141639431345 1.52581004947209 -1.49141527883842  15.1311833786926 1.53504324991064 -1.48099649834356  15.2658554050892 1.54600745843141 -1.46841387274591  15.4254657126703 1.55929194806239 -1.45287215000772  15.6256432021782 1.57605418785855 -1.43254562104226 
- 0 13 0.33333333 13
-7 0 0  12 13 2  15.2409906139082 1.54403293233763 -1.4704537228428  15.2001328519675 1.54071130117986 -1.47429363302519  15.1624846501793 1.53768636603618 -1.47777308919045  15.1274487085152 1.534903560904 -1.48095808034173  15.0945445969524 1.53232132478135 -1.48390033548148  15.0634182954739 1.52990616466664 -1.48663962661159  15.0336982040623 1.52763066555856 -1.48921192473377  15.0051441927061 1.52547107245598 -1.49164393084928  14.9774548913909 1.52340685035794 -1.49396245495941  14.9504059801061 1.52141909826353 -1.49618885606515  14.9237399488396 1.51949014317191 -1.49834434116753  14.8972047875792 1.51760250008225 -1.50044853026748  14.8705154663116 1.51573790399368 -1.50252118936592 
- 0.66666667 13 0.83333333 13
-7 0 0  5 6 2  15.3885468509167 1.55619168391514 -1.45627137516918  15.3453959788672 1.55259813374445 -1.46050067737006  15.3090442871406 1.54959636460187 -1.46401048653676  15.279514945738 1.54717332848679 -1.46682263367033  15.2568270146604 1.54532039339878 -1.46896538077211  15.2409906139082 1.54403293233763 -1.4704537228428 
- 0.5 6 0.66666667 6
-7 0 0  13 14 2  15.7556448283529 1.58688135837282 -1.4193056554134  15.7298998971301 1.58475305927173 -1.42193022853806  15.7062021860045 1.5827882251784 -1.42434651565283  15.6835612649292 1.58090510008896 -1.42665424476244  15.6613435538739 1.57905151100092 -1.42891766386994  15.6390223628137 1.57718467291225 -1.43118906897783  15.6161536717275 1.57526719582117 -1.43351416708827  15.5922556805924 1.57326081272588 -1.43593882020343  15.5668529893858 1.57112537462445 -1.43851152432563  15.5393496180795 1.56881256651459 -1.44128867845754  15.5090191866388 1.56626359639353 -1.44433990760246  15.4748805250173 1.56339833525743 -1.44775633276473  15.4355348331485 1.560104779101 -1.45166598995043  15.3885468509167 1.55619168391514 -1.45627137516918 
- 0.33333333 14 0.5 14
-7 0 0  8 16 3  16.4124981395518 1.63647381372833 -1.35562464238871  16.3704973375569 1.63373339659817 -1.35929253056293  16.3286095955673 1.63092208146464 -1.36303756774081  16.2866340735736 1.62802959132725 -1.36686931292281  16.2443868415669 1.62504548818552 -1.37079866510944  16.2016816095385 1.62195881303891 -1.37483775830129  16.1583333974796 1.61875781688687 -1.37899984149897  16.1141476353809 1.61542963672879 -1.38329938170319  16.0328957815216 1.60919677343274 -1.39129776708309  15.9962124497793 1.60634388529724 -1.39494061625612  15.9587587880003 1.60339392815712 -1.39868839643413  15.9204230461795 1.60033899401202 -1.40254939261752  15.8810822643109 1.59717042986152 -1.4065324168067  15.8406070923884 1.59387865970517 -1.41064652300211  15.798849100405 1.59045299954246 -1.4149011862042  15.7556448283529 1.58688135837282 -1.4193056554134 
- 0.16666667 9 0.259447893 7 0.33333333 9
-7 0 0  5 10 3  17.2459916391406 1.67360538349199 -1.3040721009401  17.1335462037997 1.67137476238604 -1.30733039309486  17.0192550783712 1.66801763822658 -1.31216887232467  16.9024750128244 1.66354900201433 -1.31851824562625  16.7825416271279 1.65796314274902 -1.32634457999798  16.6107263889671 1.64862871230566 -1.3391814886077  16.562172776661 1.64585138817374 -1.34297922378809  16.5129843043246 1.64290117403361 -1.3469880629785  16.4631107819558 1.63977612488518 -1.35120469117878  16.4124981395518 1.63647381372833 -1.35562464238871 
- 0 6 0.120137747 4 0.16666667 6
-7 1 0  1 2 2  17.2459916391406 1.67360539449199 -1.3040720999401  0.51545453 20.1549001573063 1.67227319742871 -1.30306890389245  0.5162891
- 0 2 0.22601628 2
-7 0 0  5 10 3  16.4124981595518 -1.63647514272839 -1.3556244743887  16.4631108119558 -1.63977746188525 -1.35120452117877  16.5129843443246 -1.64290252003368 -1.34698789097849  16.562172816661 -1.64585274217381 -1.34297905078808  16.6107264389671 -1.64863007430572 -1.3391813146077  16.7825416771279 -1.65796452974909 -1.32634440299798  16.9024750428244 -1.6635504060144 -1.31851806762624  17.0192550983712 -1.66801905822665 -1.31216869232467  17.1335462037997 -1.67137619738611 -1.30733021109485  17.2459916291406 -1.67360683149206 -1.30407191894009 
- 0.83333333 6 0.879862261 4 1 6
-7 0 0  8 16 3  15.7556449483529 -1.58688263737288 -1.41930548641339  15.798849220405 -1.59045428254252 -1.41490101720419  15.8406072123884 -1.59387994570523 -1.4106463530021  15.8810823843109 -1.59717171986158 -1.40653224680669  15.9204231661795 -1.60034028701208 -1.40254922161751  15.9587589080003 -1.60339522315718 -1.39868822543412  15.9962125697793 -1.6063451842973 -1.39494044425611  16.0328959015217 -1.6091980754328 -1.39129759508309  16.1141477353809 -1.61543094472885 -1.38329920970318  16.1583334974796 -1.61875912788693 -1.37899967049897  16.2016816895386 -1.62196012603897 -1.37483758830128  16.2443869115669 -1.62504680518558 -1.37079849610943  16.2866341235736 -1.62803091132732 -1.3668691439228  16.3286096355673 -1.6309234034647 -1.3630373987408  16.3704973775569 -1.63373472159823 -1.35929236256292  16.4124981595518 -1.63647514272839 -1.3556244743887 
- 0.66666667 9 0.74055212 7 0.83333333 9
-7 0 0  13 14 2  15.3885470009167 -1.55619291391519 -1.45627120916917  15.4355349431485 -1.56010601310106 -1.45166582695042  15.4748806250174 -1.56339957225749 -1.44775616976472  15.5090192866389 -1.56626483739358 -1.44433974460245  15.5393497180795 -1.56881381251465 -1.44128851445753  15.5668530893858 -1.57112662362451 -1.43851136032562  15.5922557905924 -1.57326206572593 -1.43593865520342  15.6161537817275 -1.57526845282123 -1.43351400108826  15.6390224728137 -1.57718593391231 -1.43118890197782  15.6613436738739 -1.57905277500098 -1.42891749586994  15.6835613949292 -1.58090636808902 -1.42665407676243  15.7062023060045 -1.58278949717846 -1.42434634565282  15.7299000271301 -1.58475433527179 -1.42193005853805  15.7556449483529 -1.58688263737288 -1.41930548641339 
- 0.5 14 0.66666667 14
-7 0 0  5 6 2  15.2409907739082 -1.54403413833768 -1.47045355884279  15.2568271446604 -1.54532159939883 -1.4689652187721  15.279515065738 -1.54717453748684 -1.46682247167033  15.3090443971406 -1.54959757860193 -1.46401032553676  15.3453961088672 -1.55259935574451 -1.46050051437005  15.3885470009167 -1.55619291391519 -1.45627120916917 
- 0.33333333 6 0.5 6
-7 0 0  12 13 2  14.8705156463116 -1.51573906099374 -1.50252102936592  14.8972049775792 -1.5176036620823 -1.50044836926747  14.9237401288396 -1.51949130917196 -1.49834417916753  14.9504061601062 -1.52142026826358 -1.49618869406515  14.9774550713909 -1.523408024358 -1.4939622929594  15.0051443727061 -1.52547225045604 -1.49164376884927  15.0336983840623 -1.52763184755862 -1.48921176273376  15.063418465474 -1.5299073496667 -1.48663946461158  15.0945447669524 -1.53232251378141 -1.48390017348147  15.1274488785152 -1.53490475390406 -1.48095791734172  15.1624848101794 -1.53768756303624 -1.47777292519044  15.2001330119675 -1.54071250317991 -1.47429346902518  15.2409907739082 -1.54403413833768 -1.47045355884279 
- 0.16666667 13 0.33333333 13
-7 0 0  12 13 2  15.6256433321782 -1.57605547485861 -1.43254541804225  15.4254658526703 -1.55929320606245 -1.45287195700771  15.2658555550892 -1.54600869243147 -1.4684136877459  15.1311835286926 -1.5350444659107 -1.48099631834355  15.0141640931345 -1.52581124947214 -1.49141510383841  14.9094919581628 -1.51790544409664 -1.50023734325745  14.8137554236156 -1.51106630377179 -1.50778588961598  14.7239978493523 -1.50509567648821 -1.5143296379268  14.6378336052598 -1.49985798923943 -1.52003039019757  14.5529302912271 -1.49524825102048 -1.52502583143484  14.4666379971284 -1.49119618982802 -1.52940359364277  14.3757879328133 -1.48765580765986 -1.53322624782434  14.2745163580031 -1.4846250815159 -1.53651016198031 
- 0.66666667 13 1 13
-7 0 0  3 4 2  14.2235895455842 -1.48319931344818 -1.53805698605378  14.2406525763947 -1.4836229264683 -1.53759586403188  14.257628397201 -1.48409819549088 -1.53708032600739  14.2745163580031 -1.4846250615159 -1.53651018298031 
- 0.95238095 4 1 4
-7 0 0  7 8 2  13.6299348273871 -1.48726313564121 -1.53440132188015  13.7265329319753 -1.48406927948951 -1.53766545503519  13.8169123162681 -1.48183791138352 -1.53991370014197  13.9027079103432 -1.48046879631849 -1.54124504320521  13.9851801242604 -1.47991494329218 -1.54172806922815  14.0654404080725 -1.48016389830401 -1.54138427321182  14.1445352418293 -1.48123668735496 -1.54019339915526  14.2235895455842 -1.48319931344818 -1.53805698605378 
- 0.9047619 8 0.95238095 8
-7 0 0  11 12 2  13.957822802961 -1.48071066232998 -1.54093196319034  13.8797529092529 -1.48111023334896 -1.54059554517436  13.8092175859026 -1.48205305639374 -1.53968428813108  13.7416248026921 -1.48344676645994 -1.53829802706523  13.6744988895038 -1.48527834154693 -1.53645037897747  13.6055975562312 -1.48756495465554 -1.53412115986684  13.5330363127847 -1.49035338978798 -1.53126024973096  13.4544183890506 -1.49372971794835 -1.52776867056511  13.3672150049086 -1.49781189514224 -1.52351831836323  13.267407420168 -1.50280594137945 -1.51826950511393  13.149673724576 -1.50900751267401 -1.51168768880131  13.0022709775747 -1.51706796305686 -1.50297810438763 
- 0.125 12 0.25 12
-7 0 0  7 14 3  13.2369364587207 -1.50447268745861 -1.51645684802783  13.2727282604207 -1.50262278737075 -1.51841678912092  13.3062503620129 -1.50093087329039 -1.52020462820584  13.3379131235169 -1.49937201721635 -1.52184579728379  13.3680362449476 -1.49792773914775 -1.52336081835575  13.3968897263181 -1.49658328008389 -1.5247660764225  13.4247077576394 -1.4953266720242 -1.52607542248469  13.4786048001993 -1.49297353091243 -1.52852034560082  13.5046898314383 -1.49187642586032 -1.52965654965478  13.5301726626487 -1.49084678081142 -1.5307201437053  13.5552468938396 -1.48987671076534 -1.5317201107528  13.5800994450201 -1.48895967472179 -1.53266362079761  13.6049237961992 -1.48809008468048 -1.53355617784001  13.6299348273871 -1.48726313564121 -1.53440132188015 
- 0.85714286 8 0.880996175 6 0.9047619 8
-7 0 0  11 12 2  13.0409571994122 -1.51495405295645 -1.50525837749593  13.0747213010159 -1.51311090086891 -1.50724365359023  13.1006728122485 -1.51170388180208 -1.5087568036621  13.1221326632678 -1.51054516274704 -1.50999835472107  13.140410004136 -1.50956284070038 -1.51104808677093  13.1565285949015 -1.50869975465939 -1.51196852981465  13.1710500555913 -1.50792588662263 -1.51279191585376  13.1845323262317 -1.50721056758866 -1.51355234988988  13.1973548968407 -1.50653387755652 -1.514270868924  13.2099796774403 -1.50587153152506 -1.51497380595739  13.2228697480526 -1.50519972949315 -1.51568656099125  13.2369364587207 -1.50447268745861 -1.51645684802783 
- 0.80952381 12 0.85714286 12
-7 0 0  10 11 2  12.7665140163768 -1.5297769746605 -1.48911799672931  12.7904641375144 -1.52852508660104 -1.49049556879474  12.8127913785749 -1.52734618954505 -1.49179158885629  12.834668149614 -1.52618072148969 -1.49306931391698  12.856815860666 -1.52499162943321 -1.49436947397874  12.8798950817622 -1.52374440437397 -1.49573035904338  12.904588612935 -1.52240308431026 -1.49719051711273  12.9316585342208 -1.52092687024015 -1.498796284189  12.9621946656712 -1.51925786016087 -1.50060794627505  12.9976421573548 -1.51731857906876 -1.50271152137496  13.0409571994122 -1.51495405295645 -1.50525837749593 
- 0.76190476 11 0.80952381 11
-7 0 0  8 16 3  12.5506044261217 -1.54051285417043 -1.47721902516414  12.5695661270223 -1.53960372712725 -1.47823415721235  12.5861097078081 -1.53880869308949 -1.47911862025436  12.6009576185133 -1.53809276805548 -1.47991450229216  12.6145343191582 -1.53743546602426 -1.48064461532684  12.627162259758 -1.53682117599509 -1.48132681735925  12.6390853203243 -1.53623803196739 -1.48197413938999  12.6505125808671 -1.53567577394068 -1.48259812641963  12.6741369319892 -1.53450571288511 -1.4838966074813  12.6862536825647 -1.53390091085638 -1.48456777051318  12.6982554631347 -1.5332970328277 -1.48523706754497  12.710388873711 -1.53268157579847 -1.48591798557731  12.7229077043057 -1.53204146176806 -1.48662477561088  12.7361257049335 -1.53136031173571 -1.48737551764654  12.750431825613 -1.53061760470043 -1.48819297368537  12.7665140163768 -1.5297769746605 -1.48911799672931 
- 0.71428571 9 0.736704105 7 0.76190476 9
-7 0 0  4 5 2  12.5015211137904 -1.54287086928243 -1.47458101303884  12.5137909743731 -1.54227977025435 -1.47524436507034  12.526061494956 -1.54168970622633 -1.47590433910169  12.5383326255388 -1.54110071919835 -1.47656212313293  12.5506044261217 -1.54051285417043 -1.47721902516414 
- 0.66666667 5 0.71428571 5
-7 0 0  10 11 2  12.2568199221677 -1.55567286189049 -1.4600700223496  12.2788344832133 -1.55437664582893 -1.46155669342021  12.2991488041782 -1.55321534777377 -1.46287991548306  12.3188956451161 -1.55211620972156 -1.46413171854252  12.3387526560593 -1.55103864967038 -1.46535989960086  12.3593292770366 -1.54994749361855 -1.46660200265985  12.3812471380777 -1.54881030556454 -1.46789681472135  12.4051883192148 -1.54759200250667 -1.46927740478693  12.4321295404944 -1.54624615644275 -1.47079797185915  12.4633551819776 -1.54471207636988 -1.47251722894081  12.5015211137904 -1.54287086928243 -1.47458101303884 
- 0.61904762 11 0.66666667 11
-7 0 0  13 14 2  12.5242478048698 -1.54177777523051 -1.47580487909697  12.4115901295189 -1.54718985348757 -1.46974956080935  12.3298571156368 -1.55136235668575 -1.4650217525848  12.2630834724652 -1.55499541385832 -1.46087903738803  12.2067551497897 -1.55829177501488 -1.45709255320818  12.156399547398 -1.56146612416566 -1.45342631203404  12.1106448652247 -1.56459296831417 -1.44979497286156  12.0667424031395 -1.56783828746832 -1.44600004468131  12.0240680011126 -1.57125433763057 -1.44199075549088  11.9802657890321 -1.57503493681014 -1.43751431427826  11.9342868768482 -1.5792932050124 -1.43245108503777  11.8830730244157 -1.58435061525261 -1.42637375374911  11.8236605115937 -1.5905549415473 -1.41886209539233  11.7460295679064 -1.59904775895069 -1.40836310489365 
- 0.375 14 0.5 14
-7 0 0  12 13 2  11.7578452284677 -1.59775592088933 -1.40995819996942  11.7763185993451 -1.59573370179328 -1.4124526730879  11.7902231600055 -1.59421806772129 -1.41431969417658  11.8016349405476 -1.59297868266242 -1.41583743124867  11.8112976910065 -1.5919339296128 -1.41711336430927  11.8198222114114 -1.59101688456924 -1.41823162436238  11.8275042817763 -1.5901949305302 -1.41922764940969  11.8346709321167 -1.58943370749405 -1.4201562004538  11.8415270324423 -1.5887106054597 -1.42103154149537  11.8483051727643 -1.58800208642605 -1.42189358253632  11.8552772030954 -1.58728030139177 -1.42277017257795  11.8627587234508 -1.58651384135536 -1.42370183462221  11.8714941938657 -1.58562980031337 -1.424771169673 
- 0.52380952 13 0.57142857 13
-7 0 0  10 11 2  11.6440345330619 -1.60992547746735 -1.39479924724941  11.6539177435314 -1.60891837741952 -1.39606559330955  11.6630512439652 -1.6079747923747 -1.39725135836588  11.6719787543892 -1.60704159333038 -1.39842083442142  11.6810162748185 -1.60608697928503 -1.3996140364781  11.6904539452667 -1.60508117123726 -1.40086907053771  11.7005933657483 -1.60399220418554 -1.40222465960209  11.711766096279 -1.60278458912818 -1.4037280186735  11.7244698568824 -1.60140419706261 -1.40544299075496  11.7393535075893 -1.59978013998548 -1.40746125185082  11.7578452284677 -1.59775592088933 -1.40995819996942 
- 0.47619048 11 0.52380952 11
-7 0 0  9 18 3  11.5677496294386 -1.61731962381856 -1.38544842180527  11.5761810998391 -1.61652629778088 -1.3864575308532  11.5830037001631 -1.61588304875032 -1.38727142189185  11.5888217404395 -1.6153330717242 -1.38796789292493  11.5939091706811 -1.61485063370129 -1.38857844895393  11.5984736208979 -1.61441617568065 -1.38912884898008  11.6026452310961 -1.61401739366171 -1.38963389700407  11.6065357012808 -1.61364365864396 -1.39010730002655  11.6102329914564 -1.61328650862699 -1.39055954704803  11.6169351217748 -1.61263504859605 -1.3913842490872  11.6199668019188 -1.61233868158197 -1.39175933410502  11.6229717920615 -1.61204320056794 -1.39213296012276  11.6260031522055 -1.6117433345537 -1.39251166014075  11.6291146623533 -1.61143367653899 -1.3929021701593  11.632371552508 -1.6111075875235 -1.39331283617881  11.6358553426734 -1.61075668850683 -1.39375423519977  11.6396763828549 -1.61036957048845 -1.39424083322288  11.6440345330619 -1.60992547746735 -1.39479924724941 
- 0.42857143 10 0.454070987 8 0.47619048 10
-7 0 0  10 11 2  11.4919541158385 -1.6247715081725 -1.37590627535204  11.4984897561489 -1.62407746213954 -1.37680102239454  11.504491846434 -1.62345320610989 -1.37760305843263  11.5103516167123 -1.62285458108145 -1.37837284646919  11.5162869469943 -1.62225817205312 -1.37914021950564  11.5224991272893 -1.6216428700239 -1.37993145554322  11.5291987976075 -1.62098791599279 -1.38077360558322  11.5366147279598 -1.62027095395874 -1.38169169462683  11.545104248363 -1.61945842792014 -1.38273024767616  11.5551269288391 -1.61850731187497 -1.38393768973351  11.5677496294386 -1.61731962381856 -1.38544842180527 
- 0.38095238 11 0.42857143 11
-7 0 0  11 22 3  11.3639594397591 -1.6423238890062 -1.35290319325945  11.3713320201093 -1.64099408794303 -1.35467502434361  11.3787196404602 -1.6397134018822 -1.35637546342437  11.3861519708132 -1.63847499082338 -1.35801524550226  11.3936578211697 -1.63727277676628 -1.3596035235777  11.401265671531 -1.63610128571064 -1.36114816465107  11.4090042018986 -1.63495550465622 -1.36265603472269  11.4169029322738 -1.63383075560279 -1.36413326279285  11.424992832658 -1.63272259055016 -1.36558549286183  11.4333069730529 -1.63162669749811 -1.36701812192987  11.4418812934602 -1.63053882144643 -1.36843651599724  11.4542319040468 -1.62902998137477 -1.37039850209043  11.4577544942141 -1.62860583135462 -1.3709493851166  11.4613256543837 -1.62818200333449 -1.37149991114275  11.4649468645557 -1.62775822531436 -1.37204698416873  11.4686230647303 -1.62733427929423 -1.37259931019497  11.4723534749075 -1.62690984227407 -1.37314499322088  11.4761443350876 -1.62648471325387 -1.37369675724709  11.4799960452705 -1.62605857923363 -1.37424598827318  11.4839129754566 -1.62563119121333 -1.37479781929939  11.4878978456458 -1.62520226219296 -1.37535095932566  11.4919541158385 -1.6247715081725 -1.37590627535204 
- 0.33333333 12 0.367547965 10 0.38095238 12
-7 0 0  13 26 3  11.3046116869402 -1.65560230163689 -1.33500039040911  11.3067215270404 -1.65501189560884 -1.33580612144738  11.3087643171375 -1.6544487825821 -1.33657327848382  11.3107502672318 -1.65390964955649 -1.33730680951866  11.3126884073238 -1.65339161453188 -1.33801096455211  11.314586857414 -1.65289214950816 -1.33868941558433  11.3164529775026 -1.65240901748521 -1.33934535761549  11.3182935475901 -1.65194021546295 -1.33998160164571  11.3201149076766 -1.65148392444127 -1.34060064367511  11.3219231077625 -1.65103846942012 -1.3412047287038  11.323723977848 -1.6506022873994 -1.34179589073188  11.3255232379335 -1.65017390337905 -1.34237598675944  11.3273265580191 -1.64975191335901 -1.34294670678654  11.3314356582143 -1.64880696931413 -1.34422239484713  11.3337473383241 -1.64828705828943 -1.34492260488039  11.3360859984352 -1.64777252926499 -1.34561471391327  11.3384637785481 -1.64726072024068 -1.34630064194585  11.3408904686634 -1.64674929421639 -1.34699065597862  11.3433841587818 -1.64623515119197 -1.34767150701096  11.3459479389036 -1.64571669716734 -1.34837885904456  11.3486122890301 -1.64518962814231 -1.34906868407732  11.3513756691614 -1.64465276711681 -1.34980047011208  11.354273389299 -1.64410122509061 -1.35052832914665  11.3573161694435 -1.6435324200636 -1.35129113018288  11.3605345595964 -1.64294164303554 -1.35208010022036  11.3639594397591 -1.6423238890062 -1.35290319325945 
- 0.28571429 14 0.306725198 12 0.33333333 14
-7 0 0  13 14 2  11.2810043058189 -1.66290642198381 -1.32496578293249  11.2824776358889 -1.66238670195913 -1.32568446296663  11.2840056459615 -1.66186065993414 -1.3264122620012  11.2855888860367 -1.66132811990885 -1.3271492540362  11.2872284261146 -1.66078884688323 -1.32789264407151  11.2889232961951 -1.6602428228573 -1.32865099910753  11.2906784562784 -1.65968942483101 -1.32940222114321  11.2924862863643 -1.65912927580441 -1.33018841618056  11.2943599164533 -1.65856096477741 -1.33094761121662  11.2962855565447 -1.65798569875009 -1.33175245025484  11.2982770466393 -1.65740200172237 -1.33253838929217  11.3003261867367 -1.65681052869427 -1.33335037733074  11.302437596837 -1.65621068966578 -1.33417011836968  11.3046116869402 -1.65560230163689 -1.33500039040911 
- 0.23809524 14 0.28571429 14
-7 0 0  9 26 4  11.2480894142556 -1.67853118172595 -1.3030426428912  11.2493581043158 -1.67771062868698 -1.30421052994667  11.2506435143769 -1.67690622664877 -1.30535253100092  11.2519457044387 -1.6761173366113 -1.30647003905399  11.2532674145015 -1.67534329957453 -1.3075670951061  11.254603864565 -1.67458365953845 -1.30863952515704  11.2559600246294 -1.67383776650302 -1.30969334120709  11.2573327146946 -1.67310518246823 -1.31072598825614  11.2587237047607 -1.67238538543404 -1.31173971330429  11.2611864748776 -1.67114886237531 -1.3134789653869  11.2622503149282 -1.67062670035051 -1.31421273642175  11.2633243949792 -1.67011123832602 -1.31493641045613  11.2644088350307 -1.66960228830185 -1.31565025749003  11.2655037650827 -1.66909966827798 -1.31635452552348  11.2666093451352 -1.6686032012544 -1.31704944555649  11.2677257251882 -1.6681127182311 -1.31773522958906  11.2688530852418 -1.66762805520808 -1.31841206862121  11.2711655453516 -1.66665513616187 -1.31976901068566  11.2723513854079 -1.66616723713869 -1.32044860771794  11.2735489254648 -1.6656851861158 -1.32111871474977  11.2747596455223 -1.66520879709317 -1.32178127678124  11.2759809355803 -1.66473794607081 -1.32243214281215  11.277216685639 -1.66427242204869 -1.3230772668428  11.2784650456983 -1.66381210102683 -1.32371349987301  11.2797275057583 -1.66335681600521 -1.32434296590291  11.2810043058189 -1.66290642198381 -1.32496578293249 
- 0.19047619 10 0.209380743 8 0.223517894 8 0.23809524 10
-7 0 0  8 9 2  11.2578643547198 -1.67284334945579 -1.31109645527374  11.2426415339968 -1.68084097483566 -1.29983127373867  11.2301680834043 -1.68991952226687 -1.2868544711223  11.2210538729714 -1.69993431574254 -1.27227502442982  11.215801932722 -1.71064508825128 -1.25633205767257  11.2146886526691 -1.72171682477716 -1.23941424086901  11.217613312808 -1.73280012430359 -1.22201125804242  11.2242121531214 -1.74361043981705 -1.20458565121475  11.2339737335851 -1.75393665630752 -1.18752890240459 
- 0.875 9 1 9
-7 1 0  1 2 2  7.21279194058922 1.75566519138962 -1.18857467445427  0.52168057 11.2339734135851 1.75393602830749 -1.1875289974046  0.52280677
- 0.69078275 2 1 2
-7 0 0  1 2 2  7.21279194058922 1.34821630603684 1.41444156518237  20.1549001573063 1.36866520500811 1.41444156718237 
- 0 2 1 2
-7 0 0  8 9 2  17.2459916091406 1.67360536749199 -1.3040721329401  16.8938187024133 1.74227214975348 -1.2075490303555  16.5200106346584 1.79705144235536 -1.11704135405661  16.1273440860077 1.83925517335993 -1.03586715020105  15.71937003663 1.8707868238576 -0.966689137102268  15.3002902667248 1.89368036494499 -0.911214093493345  14.874650746508 1.90954031569829 -0.870310131872511  14.4469575261936 1.91941807216746 -0.84420638245665  14.0214146759814 1.92383994537749 -0.832597813744272 
- 0 9 1 9
-7 0 0  5 18 5  14.0214147359814 1.92383995137749 -0.832597823147273  14.1672179729067 1.92232488930553 -0.83657525203819  14.311736019771 1.92013380720146 -0.842361039431  14.4545403865538 1.91725810906487 -0.849896857586933  14.5952119732353 1.91369481989562 -0.859083371296269  14.7860901723016 1.90782580961686 -0.873874419382806  14.8384486847885 1.90610491153512 -0.878181430370378  14.8904223072571 1.90428436244865 -0.882702678907126  14.9419926797065 1.90236440335746 -0.887430356702678  15.0591089152693 1.89774151213788 -0.898708625390367  15.1243755783693 1.89497288500638 -0.905390581275743  15.1888937214337 1.8920405388671 -0.912383020540866  15.2526183644605 1.88894582272011 -0.919665823827781  15.3334650083005 1.88476087452133 -0.929373943238891  15.3513541191502 1.88381823447656 -0.931552193977353  15.3691744899966 1.88286252143117 -0.933751893171833  15.3869254808397 1.88189376538515 -0.935972551859309  15.4046064516795 1.88091199733852 -0.938213681074757 
- 0 6 0.165477907 4 0.228630266 4 0.31007727 4 0.33333333 6
-7 0 0  7 8 2  14.0214146759814 1.92383994537749 -0.832597813744272  13.6976186006019 1.92853808760064 -0.820156019786319  13.3738043252216 1.92955905964913 -0.817358932644464  13.0499761198406 1.92718722353648 -0.824271156460777  12.7261325744588 1.92138202926075 -0.840884659578876  12.402266459076 1.91178251080479 -0.867147480227293  12.0783649236915 1.89769507813568 -0.90292828237979  11.7544104083045 1.87810314020511 -0.947904241881033 
- 0 8 1 8
-7 0 0  8 9 2  11.7217974167555 1.87508298106166 -0.954787928982991  11.7281512470573 1.87568982509048 -0.953411785743628  11.7332951873016 1.87617674311361 -0.952294839481576  11.7376899475103 1.87658987813323 -0.951353041119843  11.7415475776936 1.87694897715029 -0.950534297015954  11.7450330378591 1.87726984016553 -0.949805499599338  11.7482632380125 1.87756276817944 -0.949139275329694  11.7513445581589 1.87783704919247 -0.948513904893991  11.7544103983045 1.87810315920511 -0.947904211473032 
- 0.9 9 1 9
-7 0 0  9 18 3  11.6768490646205 1.87097646086661 -0.964041737011523  11.6813374948337 1.87136890588525 -0.963162957851784  11.6847028549936 1.87166430389928 -0.962504829434524  11.6875036651266 1.87191093791099 -0.961951949856264  11.6898950952402 1.87212256092105 -0.961478301719767  11.6920365753419 1.87231294993009 -0.961050208012433  11.6939902254347 1.87248770093839 -0.960657723726791  11.6958319755222 1.87265345894626 -0.960284765082077  11.6976103356067 1.87281460795392 -0.959921994331846  11.7011935557768 1.87314160996945 -0.95918456173682  11.7029975758625 1.87330744797733 -0.958809905302025  11.7048485559504 1.87347881798546 -0.958422685455633  11.706796746043 1.87366035499409 -0.958012098350131  11.7089201261438 1.87385949900355 -0.957562294416766  11.7112802462559 1.87408195001411 -0.957058310054828  11.714039906387 1.87434344702653 -0.956466662586727  11.7173534665444 1.8746585460415 -0.955750421560707  11.7217974167555 1.87508298106166 -0.954787928982991 
- 0.8 10 0.849357845 8 0.9 10
-7 0 0  4 5 2  11.710650046226 1.87402202601127 -0.957189850571076  11.7063992160241 1.87362026999218 -0.958097878172205  11.6977354756126 1.87283978595511 -0.959860682670934  11.6846586649915 1.87167794689993 -0.96247757469723  11.6671681741607 1.87012470482615 -0.965945782344961 
- 0.2 5 0.4 5
-7 0 0  10 20 3  11.6088043513886 1.86415020054238 -0.979154379089335  11.6154770517055 1.86490871657841 -0.97749375378246  11.6204952619439 1.86547106860512 -0.976254606212603  11.6246613521418 1.86593324862707 -0.975242223499518  11.628224442311 1.86632293364558 -0.974385058333805  11.6314133924625 1.86666729266193 -0.973629401466913  11.6343249626008 1.86697646267662 -0.972947248468512  11.6370724427313 1.86726350669025 -0.972312653195371  11.6397243328572 1.86753546270317 -0.971708730031686  11.6423556729822 1.86780019871574 -0.971119123009681  11.6472548032149 1.86828335573869 -0.970042979015567  11.6495041333217 1.86850165574906 -0.969556744519472  11.6518367634325 1.86872452475965 -0.969059895893873  11.6542972735494 1.86895617077065 -0.968543291026336  11.6569459636752 1.86920196778233 -0.967994601994274  11.659847313813 1.86946771979495 -0.967402071096131  11.6630967139673 1.86976173180891 -0.966747433854037  11.666836234145 1.8700961498248 -0.966003430093699  11.6712624843552 1.87048799884341 -0.965135520835475  11.6768490646205 1.87097646086661 -0.964041737011523 
- 0.7 11 0.754871106 9 0.8 11
-7 0 0  11 12 2  11.6671681741607 1.87012470482615 -0.965945782344961  11.6588349637649 1.869384676791 -0.967598178118445  11.6481695832583 1.86837904174324 -0.969838763611867  11.6349910426324 1.86707440068127 -0.97273728835354  11.6193418318891 1.86545493260435 -0.976318883917656  11.6018079810563 1.86356641551465 -0.980474669623046  11.5833392901791 1.86148335541571 -0.98501626557876  11.5663588493725 1.85947645732039 -0.989346801042449  11.5516506786739 1.85766745923447 -0.993228694062829  11.5396754881052 1.85612865816138 -0.996513434029846  11.5303492676622 1.85487207710169 -0.999186427819806  11.5234026273322 1.85388100405462 -1.00128891055867 
- 0.4 12 0.6 12
-7 0 0  10 20 3  11.4889479756957 1.84863372080539 -1.01233376208327  11.4962541560427 1.84979859886071 -1.00990084796771  11.5022323563267 1.8507330399051 -1.00793516187435  11.5073769865711 1.85152523294273 -1.0062708907953  11.5119320167874 1.85221504597549 -1.0048181637263  11.5160687269839 1.85283093400474 -1.00351901766459  11.5199099171663 1.85339255703142 -1.0023317716082  11.5235480673391 1.85391388405618 -1.00122494555563  11.5270670275063 1.85440771107964 -1.00017333250568  11.5305408876713 1.85488433510227 -0.99915512264732  11.5367377179656 1.85571473714172 -0.997380737282041  11.5394459280942 1.85607112915864 -0.996619051686863  11.5422105482256 1.85642864317562 -0.995857140675674  11.5450731583615 1.85679188719288 -0.995078170809675  11.548072918504 1.85716624221066 -0.994279664980748  11.5512661286557 1.85755741422924 -0.993439414087838  11.5547129188194 1.85797275324897 -0.992549989134592  11.5585026289994 1.85842165027029 -0.991586180537814  11.5627536292013 1.85891700529382 -0.9905226775593  11.567673409435 1.85948026632057 -0.989306851204552 
- 0.4 11 0.456633276 9 0.5 11
-7 0 0  10 11 2  11.5234026273322 1.85388100405462 -1.00128891055867  11.4738143649769 1.84680626771859 -1.01629740327153  11.4330275530396 1.83988533138986 -1.0306258179521  11.3983210613912 1.83288208205722 -1.04482383362647  11.3682295299619 1.82560812571173 -1.05927051131265  11.3417048987021 1.8178766633445 -1.07431696902732  11.3180304875776 1.80946917494517 -1.09032314478757  11.2966379365615 1.80012995150158 -1.10769981361292  11.2770853856328 1.78948188199582 -1.12698091952872  11.2589931347735 1.77700944840342 -1.14888336056903  11.2419919239659 1.76167681167515 -1.17463584279221 
- 0.6 11 0.8 11
-7 0 0  14 28 3  11.4376549332594 1.8399157263913 -1.0303164099374  11.4398449433635 1.84033079841102 -1.02947113389725  11.4418830134603 1.84071194242912 -1.02869566686042  11.4438265535526 1.84107076044616 -1.0279647128257  11.4457153836423 1.84141517646252 -1.02726161779231  11.4475804337309 1.84175122647849 -1.02657395875964  11.4494480838196 1.84208393049429 -1.02589151872723  11.4513422739095 1.84241772951014 -1.02520534269464  11.4532860240019 1.84275677052625 -1.02450714266148  11.4553027840977 1.84310515354279 -1.02378875862735  11.4574178741981 1.84346718455999 -1.02304160959187  11.4596599743046 1.84384762957806 -1.02225615955456  11.4620628944187 1.84425198959726 -1.02142132751491  11.4646684745425 1.84468691661792 -1.02052350947226  11.4686715247326 1.8453496966494 -1.01915481940725  11.4698519147887 1.84554458165866 -1.01875239238814  11.4710768848469 1.84574619566824 -1.01833527936833  11.4723488649073 1.84595522267816 -1.01790583834793  11.4736762549704 1.84617202068846 -1.01745164532636  11.4750550150358 1.84639789869919 -1.01699395030462  11.4765026251046 1.84663279671035 -1.0164987062811  11.4780139751764 1.84687833672201 -1.01599250425705  11.4795988052517 1.84713527773421 -1.01546467923198  11.481270135331 1.84740433074699 -1.01489783220506  11.4830279154145 1.84768732376043 -1.01431119217719  11.4848868755028 1.84798533277459 -1.01368800014759  11.4868558655964 1.84830015978954 -1.01303042311636  11.4889479756957 1.84863372080539 -1.01233376208327 
- 0.3 15 0.371532238 13 0.4 15
-7 0 0  5 14 4  11.3801215705267 1.82684482977047 -1.05645936017912  11.3847705207476 1.8280707098287 -1.05405075806472  11.3891986109579 1.82920665788265 -1.05181086795833  11.3934556511601 1.83027080593319 -1.04970520985832  11.3975817713561 1.83127568698092 -1.04770918376351  11.4064881417791 1.83338763208124 -1.04349831256351  11.4112250020041 1.83447219413275 -1.04132482746027  11.4158896322256 1.83550387418175 -1.0392474613616  11.4205398424465 1.83649638722889 -1.03724116626631  11.4276755027854 1.8379638912986 -1.03427402312538  11.4301237429017 1.83845771732205 -1.03327567607796  11.4325955430191 1.83894644834527 -1.03228661203098  11.4351017931382 1.83943183036832 -1.03130184198421  11.4376549332594 1.8399157263913 -1.0303164099374 
- 0.2 6 0.235273769 4 0.277914942 4 0.3 6
-7 0 0  12 24 3  11.2339734135851 1.75393602730749 -1.1875289974046  11.2369856237282 1.75705895445582 -1.18237051615958  11.2400950538758 1.76008308259946 -1.17733619892047  11.2432909140276 1.7630124817386 -1.17242351768713  11.2465637841831 1.76585091887341 -1.16762989045944  11.2499054343418 1.76860188000408 -1.16295272323729  11.2533087445035 1.77126860213074 -1.15838944302054  11.2567674646677 1.77385408725354 -1.15393753280909  11.2602762048344 1.77636112537262 -1.14959455660281  11.2638302350032 1.7787923134881 -1.14535818440159  11.267425465174 1.78115006460008 -1.14122621320533  11.2710583953465 1.78343662470869 -1.13719657601394  11.2783936056949 1.78787153491934 -1.12933813364068  11.2820958958708 1.79001988502138 -1.12550926045882  11.2858297560481 1.79210122712024 -1.12177949128166  11.2895931362269 1.794117441216 -1.11814398610899  11.2933825564069 1.79607045530876 -1.11461023894114  11.2971992565881 1.79796161139859 -1.11115791377717  11.3010373667704 1.79979289848557 -1.1078152026184  11.304901196954 1.80156514956975 -1.10454638046314  11.3087851271384 1.80328015765121 -1.10138230531285  11.312692047324 1.80493872672999 -1.09830045616647  11.3166198775106 1.80654211280614 -1.09531229802454  11.3205692276982 1.80809119887972 -1.09241330088685 
- 0 13 0.05 11 0.1 13
-7 0 0  1 2 2  15.178436250937 -6.33367198983326 -0.437746756651854  14.0214149859814 -1.92384089837754 -0.832597738396269 
- 0 2 2.49917007 2
-7 0 0  1 2 2  17.2205222879309 -6.33368591083392 -0.716459929370019  17.2459916291406 -1.67360684049206 -1.30407191694009 
- 0 2 1.72905437 2
-7 0 0  1 2 2  15.4035701016303 -6.3336158858306 -0.843981276536958  14.2745163580031 -1.4846250625159 -1.53651018298031 
- 0.01103422 2 1.98405473 2
-7 0 0  1 2 2  17.2459916391406 1.67360539449199 -1.3040720999401  17.2205222879309 6.33368591083392 -0.716459929370019 
- 0 2 1.72904906 2
-7 0 0  3 19 15  17.2205222879309 6.33368591083392 -0.716459929370019  17.1720715056296 6.333687510834 -0.704349721074815  17.0895424517097 6.33368999283412 -0.684412453257846  16.9823821166198 6.33369268283425 -0.660041473020286  16.8419193099482 6.33369571983439 -0.629491992219264  16.7351797248783 6.33369735683447 -0.608187890327373  16.6334954700486 6.33369842683452 -0.589284515399511  16.5906758480148 6.33369882983454 -0.581461927457958  16.5272499150022 6.33369926683456 -0.570329120559178  16.439766290847 6.33369964283458 -0.555618916310481  16.3531875767347 6.33369969183458 -0.541979903582663  16.266494792617 6.33369940883456 -0.529270515738999  16.200386409477 6.33369902683455 -0.520051855971136  16.0924788643517 6.3336981328345 -0.505775628033052  15.9016943952899 6.33369559383438 -0.483264874763849  15.733138927284 6.3336917328342 -0.467985540898119  15.4790280452143 6.33368441883385 -0.449204947796089  15.3287786380779 6.33367883483359 -0.441686339218974  15.178436250937 6.33367198983326 -0.437746756651854 
- 5.543e-005 4 0.07264197 1 0.12345255 1 0.15974582 1 0.28146727 2 0.30978555 1 0.34462514 1 0.3749384 1 0.43859614 1 0.47194039 1 0.5022533 1 0.5355975 1 0.63013701 1 0.78146727 2 1.00005543 4
-7 0 0  1 2 2  15.178436250937 6.33367198983326 -0.437746756651854  14.0214147359814 1.92383994737749 -0.832597823546273 
- 0.17394647 2 1.82447971 2
-7 0 0  1 2 2  14.2745160980031 1.48462396151585 -1.53651033998032  15.4035701016303 6.3336158858306 -0.843981276536958 
- 0.01152171 2 2.07179401 2
-7 0 0  3 13 11  15.4035701016303 6.3336158858306 -0.843981276536958  15.4608449143507 6.33361840283072 -0.842360442489972  15.5787170399493 6.33362166583087 -0.837609274544304  15.7354255173926 6.3336221928309 -0.828150550615039  15.903907215395 6.33362067483083 -0.815831239849903  16.0527312724638 6.33361818483071 -0.803320766485687  16.1955867992491 6.33361615783061 -0.790477797945679  16.2947672539599 6.33361533483057 -0.78138490557379  16.4118575095214 6.33361522083057 -0.770646112303724  16.5923172280927 6.33361748183067 -0.754359070240132  16.8729204314207 6.33363148183134 -0.731594013948849  17.0949563119668 6.33366082183273 -0.719784291197918  17.2205222879309 6.33368591083392 -0.716459929370019 
- 6.281e-005 4 0.09442575 1 0.19433944 1 0.25856568 1 0.37257442 1 0.44027042 1 0.49483365 1 0.53663486 1 0.6339335 1 0.79319117 1 1.00006281 4
-7 0 0  1 2 2  15.4035701016303 6.3336158858306 -0.843981276536958  19.4649687145364 16.2690729827395 0.155572182299282 
- 3.88e-005 2 8.09360706 2
-7 0 0  3 13 11  19.4649687145364 16.2690729827395 0.155572182299282  19.4899993457253 16.2690743727395 0.156277522982784  19.5415420481734 16.2690760527396 0.158350777271258  19.6100063214253 16.2690758927396 0.162486888947713  19.6836233849219 16.2690743727395 0.167877378613747  19.7486700380114 16.2690722427394 0.173353668313857  19.811126750978 16.2690703027393 0.178975915600899  19.8544829430373 16.2690692527393 0.182955870389937  19.9056394154671 16.2690684627392 0.187655083153138  19.9844783492117 16.2690685827393 0.194779951381551  20.1070847350352 16.2690746827395 0.204729381064123  20.2041447296453 16.2690900027403 0.209871008458338  20.2590217622519 16.2691035827409 0.211302165326314 
- 6.281e-005 4 0.09442575 1 0.19433944 1 0.25856568 1 0.37257442 1 0.44027042 1 0.49483365 1 0.53663486 1 0.6339335 1 0.79319117 1 1.00006281 4
-7 0 0  2 4 3  20.2590217622519 16.2691035827409 0.211302165326314  19.4993968861716 13.7852491647642 -0.0206383583502694  17.9801471540111 8.81754032981067 -0.484519405703436  17.2205222879309 6.33368591083392 -0.716459929370019 
- 3.88e-005 3 4.04682293 1 8.09360706 3
-7 0 0  1 2 2  19.3665796498631 16.2690975027406 0.333106715941719  19.4649687145364 16.2690729827395 0.155572182299282 
- 0 2 1 2
-7 0 0  3 19 15  20.2590217622519 16.2691035827409 0.211302165326314  20.2374981112295 16.2690992927407 0.214927312588499  20.2009077494916 16.2690935727404 0.221373680584685  20.1536237172457 16.2690891627402 0.230168908222436  20.091921974315 16.2690858527401 0.241979363993403  20.0454316421069 16.2690863827401 0.251230397152803  20.0012057000062 16.2690882527402 0.25995733479731  19.9825802591216 16.2690891627402 0.263625185741524  19.9549764878105 16.2690909027403 0.269013800647469  19.9168953460017 16.2690937327405 0.276349123365878  19.8792293042127 16.2690970327406 0.283428997242154  19.8415842424246 16.2691005927408 0.290241914215751  19.8128828410614 16.2691033527409 0.295270698234605  19.7660393488364 16.2691078127411 0.303169240009766  19.6829660748907 16.2691150527415 0.31586349777271  19.6092537513895 16.2691183027416 0.324224538679839  19.4981263761113 16.2691173227416 0.333158931784199  19.4322681729832 16.2691117427413 0.335327173117185  19.3665796498631 16.2690975027406 0.333106715941719 
- 5.543e-005 4 0.07264197 1 0.12345255 1 0.15974582 1 0.28146727 2 0.30978555 1 0.34462514 1 0.3749384 1 0.43859614 1 0.47194039 1 0.5022533 1 0.5355975 1 0.63013701 1 0.78146727 2 1.00005543 4
-7 0 0  3 31 29  18.7445785303197 16.2690985127407 0.302431252674713  18.7383657600246 16.2690977327406 0.302444747525354  18.7320197997232 16.2690970127406 0.302121298909991  18.7248254393814 16.2690962727406 0.301366516094141  18.7218629192407 16.2690959727406 0.30103174414824  18.717195029019 16.2690955327405 0.300392184317862  18.7117647287611 16.2690950427405 0.299472912274199  18.7070789985385 16.2690946527405 0.298545220530136  18.7033094483595 16.2690943627405 0.297708798980409  18.701045568252 16.2690941927405 0.297165473694602  18.6973949580786 16.2690939327405 0.296258702231533  18.6925716978495 16.2690936127404 0.294916421617778  18.6862643475499 16.2690932727404 0.29281445876794  18.6819269473439 16.2690930727404 0.291163236809511  18.6782378171686 16.2690929327404 0.28964460350738  18.6744653869895 16.2690928127404 0.287983806278496  18.6687113467162 16.2690926827404 0.285188325765718  18.6637437364802 16.2690926427404 0.282429784694694  18.6587295362421 16.2690926627404 0.279362878199024  18.6552624460774 16.2690927027404 0.277085441310852  18.6520903759267 16.2690927827404 0.274837030944058  18.6505273858525 16.2690928327404 0.273683666759276  18.6486964857655 16.2690928827404 0.272311076414081  18.6468712856788 16.2690929627404 0.270888193566498  18.6434776655176 16.2690931127404 0.26811628979484  18.6404659953746 16.2690932927404 0.26550772764094  18.6373324252257 16.2690935127404 0.262586288212179  18.6325611049991 16.2690938827405 0.257956703852285  18.6258536746805 16.2690945427405 0.250810657642866  18.6202961544166 16.2690953127405 0.243862286492837  18.6177078042936 16.2690957227405 0.240354853816242 
- 0.00034374 4 0.12844973 1 0.13092921 1 0.14807888 1 0.18926565 1 0.22666433 1 0.2593107 1 0.28513852 1 0.30371952 1 0.30555395 1 0.35968911 1 0.40366864 1 0.43987085 1 0.45418655 1 0.48522664 1 0.52438856 1 0.58584973 1 0.60243388 1 0.64566678 1 0.67135118 1 0.68258527 1 0.68568331 1 0.7184619 1 0.73014898 1 0.77558629 1 0.79999969 1 0.81719017 1 0.91044076 1 1.00034374 4
-7 0 0  3 13 10  18.7445785303197 16.2690985127407 0.302431252674713  18.7583463509736 16.2690995627407 0.304311725944031  18.7992747729176 16.2691024827409 0.309660445368081  18.8418315149389 16.269104862741 0.314489031607427  18.8877124771182 16.2691069227411 0.319129711877847  18.944911689835 16.2691090927412 0.32446878737144  19.047001814684 16.2691108027413 0.331600704970188  19.1321832887299 16.2691095127412 0.334510369238389  19.1979807318551 16.2691073627411 0.335482974464586  19.2413794739164 16.269105642741 0.335777379528569  19.3039958968906 16.2691021427408 0.3350811617055  19.3473283089487 16.2690990227407 0.333820518075623  19.3665796498631 16.2690975027406 0.333106715941719 
- 8.022e-005 4 0.06695952 1 0.19874124 1 0.20615931 1 0.28878375 1 0.47512806 1 0.69874124 2 0.79146093 1 0.90736053 1 1.00008022 4
-7 0 0  3 53 51  18.6177078042936 16.2690957227405 0.240354853816242  18.6193550543719 16.2690947727405 0.238341288930603  18.6216040844787 16.2690935627404 0.235746947277379  18.6254744246625 16.2690916427404 0.231601845800497  18.6282029547921 16.2690903927403 0.22885903458022  18.6307491649131 16.2690893027402 0.226459921546269  18.6338726350614 16.2690880027402 0.22359557769022  18.6380820152614 16.2690863927401 0.220006733239759  18.6429975454948 16.26908476274 0.216279876522742  18.6456606756213 16.26908395274 0.214416388654232  18.6476069757138 16.26908339274 0.213095185531478  18.6487171257665 16.2690830827399 0.212367093306895  18.6505658358543 16.2690825827399 0.211195651491255  18.6518920659173 16.2690822427399 0.210378005372419  18.6580929462118 16.2690807227398 0.206709231938161  18.6661300765936 16.2690791527398 0.202741567749707  18.6741954469766 16.2690780027397 0.199580975239587  18.6770945171143 16.2690776427397 0.198535120109912  18.6847337074772 16.2690766827396 0.195808538100406  18.6927523278581 16.2690759827396 0.193538544022587  18.7010868382539 16.2690755127396 0.191693838764968  18.7018911882921 16.2690754627396 0.191519803576702  18.7095456886557 16.2690750627396 0.189885414169073  18.7194729891272 16.2690748027396 0.188298638523705  18.732057689725 16.2690748227396 0.186999616222005  18.7417047001832 16.2690749727396 0.186282049827922  18.7523150306871 16.2690752927396 0.185823196876128  18.7630570211973 16.2690757327396 0.18560597385581  18.7748173117559 16.2690762427396 0.185485067440068  18.787934472379 16.2690768127396 0.185392925125691  18.7990130629052 16.2690772027397 0.185225269537728  18.8048859131841 16.2690773827397 0.185110024222254  18.8123205735372 16.2690776027397 0.184957193894995  18.8237582740805 16.2690779027397 0.184666807031202  18.8440723350454 16.2690782127397 0.183919672535715  18.8604509858233 16.2690782527397 0.183051998514503  18.8725101763961 16.2690781327397 0.182217963684888  18.9065197980115 16.2690777027397 0.179741542697265  18.9442069198015 16.2690756027396 0.174805820332831  18.9828896316388 16.2690737227395 0.170315723969562  18.9914358320448 16.2690733427395 0.169381817555204  18.9968209923005 16.2690731027395 0.16880633010787  19.0116798130063 16.2690724827394 0.16726097540447  19.0512026348835 16.2690711127394 0.163627565061892  19.0958831370057 16.2690702727393 0.16077116238622  19.1410530091512 16.2690699527393 0.158804688432818  19.1628509001865 16.2690699327393 0.158092576928994  19.1795389409792 16.2690699727393 0.157651292188034  19.1909516415212 16.2690700227393 0.157375936444956  19.2131543025758 16.2690701427393 0.156926655233616  19.3055107069625 16.2690710227394 0.155707695955718  19.3916959010561 16.2690727927395 0.15654399209544  19.4649687145364 16.2690729827395 0.155572182299282 
- 5.799e-005 4 0.00911011 1 0.01184943 1 0.01933622 1 0.02215936 1 0.02361054 1 0.03357248 1 0.04070557 1 0.04443321 1 0.04462717 1 0.04873214 1 0.04898016 1 0.05214827 1 0.05409931 1 0.07388539 1 0.08340877 1 0.08435152 1 0.08463293 1 0.11169353 1 0.11313579 1 0.1140504 1 0.1145288 1 0.14009726 1 0.14853784 1 0.15817185 1 0.1736098 1 0.18544934 1 0.19557634 1 0.2145634 1 0.23110051 1 0.23408285 1 0.2349686 1 0.25693061 1 0.27380952 1 0.30553373 1 0.31387299 1 0.31581004 1 0.42402476 1 0.44619464 1 0.45133548 1 0.45393803 1 0.4650376 1 0.50330337 1 0.59196272 1 0.62060496 1 0.6604875 1 0.66781698 1 0.678677 1 0.70020207 1 0.74507885 1 1.00005799 4
-7 0 0  2 3 2  19.3665796498631 16.2690975027406 0.333106715941719  17.2725079504001 11.3013847467869 -0.0523200203650675  15.178436250937 6.33367198983326 -0.437746756651854 
- 4.95e-005 3 10.70174454 3
-7 0 0  3 13 10  15.178436250937 6.33367198983326 -0.437746756651854  15.1343853388447 6.33367547583343 -0.436113434594276  15.0352413141356 6.33368261083377 -0.433229486547295  14.891937437329 6.33369061383415 -0.431634620151543  14.7926607126136 6.33369456083433 -0.432310291673636  14.6420810954615 6.33369947183457 -0.434534157059264  14.4471870362045 6.33370243483471 -0.441194527435615  14.2135702951083 6.33369850783452 -0.457514709300782  14.082694108892 6.33369355083429 -0.469730016690978  13.9777072539054 6.33368883283406 -0.480356019745686  13.8803298892803 6.3336833968338 -0.491393000689914  13.786676794832 6.33367670883349 -0.503635333521394  13.7551732833356 6.33367429383337 -0.507938351705776 
- 8.022e-005 4 0.09279991 1 0.20869951 1 0.3014192 2 0.52503238 1 0.71137669 1 0.79400113 1 0.8014192 1 0.93320092 1 1.00008022 4
-7 0 0  2 4 3  18.7445785303197 16.2690985127407 0.302431252674713  17.4972272110737 13.7852424547639 0.0998388515820908  15.0025245925816 8.8175303468102 -0.305345950613154  13.7551732833356 6.33367429383337 -0.507938351705776 
- 0.00020743 3 23.12299448 1 46.24578153 3
-7 0 0  3 31 29  13.7551732833356 6.33367429383337 -0.507938351705776  13.7410455626646 6.33367991883364 -0.510546119379638  13.7264243219701 6.33368167983372 -0.513962461971906  13.7100939911945 6.33368182383373 -0.517435040326845  13.7033859008759 6.33368177483373 -0.518836209713397  13.6929111303783 6.3336812948337 -0.520861177339577  13.6808298298045 6.33368013383365 -0.523124316637071  13.670439259311 6.33367863683358 -0.525192101125285  13.6620850589142 6.33367711183351 -0.527012448251747  13.6570592186755 6.33367603883346 -0.528220327009118  13.6489469482902 6.33367420383337 -0.530258970305948  13.6380266577715 6.33367133183323 -0.533358766143181  13.6233938770765 6.33366737983304 -0.537981139052732  13.6131846365915 6.33366492383293 -0.541334598022012  13.6044516061767 6.33366316983284 -0.544194393997845  13.5954809957507 6.33366173783278 -0.547113666136503  13.581677365095 6.33366042783271 -0.551700875504384  13.5695549945192 6.33366032683271 -0.556151408125773  13.5570896639272 6.33366098483274 -0.561406864565394  13.5483289035111 6.33366184683278 -0.565530757171268  13.5402414031269 6.33366299283284 -0.569754445801883  13.5362538629375 6.33366364183287 -0.571939274515657  13.5315848127158 6.3336644338329 -0.574549126149618  13.5269394124951 6.33366531983295 -0.577249409807875  13.5183692620881 6.33366709783303 -0.582537830359061  13.5108563417312 6.33366875783311 -0.587629427220899  13.5032698513709 6.33367030283318 -0.593676022478097  13.4919576008336 6.33367232683328 -0.60376210355716  13.4770737501266 6.33367365383334 -0.621468899478187  13.4679253196921 6.3336707248332 -0.640374273226144  13.4648676895469 6.33366791783307 -0.649981567562466 
- 0.00034374 4 0.12844973 1 0.13092921 1 0.14807888 1 0.18926565 1 0.22666433 1 0.2593107 1 0.28513852 1 0.30371952 1 0.30555395 1 0.35968911 1 0.40366864 1 0.43987085 1 0.45418655 1 0.48522664 1 0.52438856 1 0.58584973 1 0.60243388 1 0.64566678 1 0.67135118 1 0.68258527 1 0.68568331 1 0.7184619 1 0.73014898 1 0.77558629 1 0.79999969 1 0.81719017 1 0.91044076 1 1.00034374 4
-7 0 0  2 4 3  18.6177078042936 16.2690957227405 0.240354853816242  17.3294977731069 13.7852387747637 0.0177707484740652  14.7530777207336 8.81752486880994 -0.427397462210289  13.4648676895469 6.33366791783307 -0.649981567562466 
- 0.00020743 3 23.12299448 1 46.24578153 3
-7 0 0  3 53 51  13.4648676895469 6.33366791783307 -0.649981567562466  13.4632048594679 6.33365203783231 -0.655758151886839  13.4625395894363 6.33363457683149 -0.663726866155333  13.4642965595197 6.33361330583048 -0.676666707629942  13.4670970696528 6.33360328483 -0.685176782364149  13.4709280898347 6.33359839182977 -0.692171616156386  13.4761928800848 6.33359459082959 -0.700207466808068  13.4851501305102 6.33359675482969 -0.709151155032871  13.4974649510952 6.33360553683011 -0.71712713779171  13.5044626414275 6.33361101283037 -0.720782745865342  13.5096263516728 6.33361503683056 -0.723300650344936  13.5125874218134 6.33361727283066 -0.72464628526885  13.5175400520487 6.33362089083084 -0.72674514210854  13.5210826222169 6.33362332083095 -0.728177462686572  13.5374956129965 6.33363319683142 -0.734409631982584  13.5577367939579 6.33363728883162 -0.740154104565432  13.577086204877 6.33363467383149 -0.743894301283082  13.5839447852027 6.33363317883142 -0.745048125467885  13.6019911560599 6.33362912283123 -0.748043828710174  13.620247616927 6.33362107683084 -0.74988112437744  13.6390814078216 6.33361437383053 -0.751687915403259  13.6408978079079 6.3336137358305 -0.751860481171455  13.6581699087282 6.3336075798302 -0.753468392547827  13.6805557997915 6.33360317482999 -0.755817298019394  13.7092528711545 6.33360194282993 -0.759129430186711  13.7314234422076 6.33360257782997 -0.761791091823134  13.7560189733758 6.3336053358301 -0.764865435479157  13.7810930445668 6.33360985783031 -0.768081067161891  13.8086398358752 6.3336158628306 -0.771641069270982  13.8394567973389 6.33362377183097 -0.775631303400508  13.8654663785743 6.33363049783129 -0.778891913335379  13.8792397392285 6.33363390683145 -0.780571489885155  13.8966793600568 6.33363826783166 -0.782694961186014  13.9234305513274 6.33364401883193 -0.785784343612752  13.9706848635719 6.33365075983225 -0.790686414975588  14.0085556253707 6.33365275583235 -0.794067824006196  14.0363677566917 6.33365260583234 -0.796276426911099  14.1147511504147 6.33365110883227 -0.80231423939788  14.2013370145273 6.33363667983159 -0.806759585419022  14.2900875187427 6.33362174083088 -0.810635390793113  14.3096906496738 6.33361857383073 -0.811478385843153  14.3220451802606 6.33361664883063 -0.812014481908616  14.356119191879 6.33361130983038 -0.813459830097267  14.4468917061905 6.33360011282985 -0.817447821036686  14.5499647710862 6.33359627782967 -0.822445993784087  14.6544602060495 6.33359726282971 -0.827596122568705  14.7049538784478 6.33359880382979 -0.830075981796492  14.7436226802845 6.33360034682986 -0.831952494615621  14.7700676815405 6.33360147682991 -0.833230552696326  14.8215221339845 6.33360393383003 -0.835674183472392  15.0354168841439 6.33361504683056 -0.845530307270533  15.2344341335968 6.33362486183102 -0.851195051269594  15.4035701016303 6.3336158858306 -0.843981276536958 
- 5.799e-005 4 0.00911011 1 0.01184943 1 0.01933622 1 0.02215936 1 0.02361054 1 0.03357248 1 0.04070557 1 0.04443321 1 0.04462717 1 0.04873214 1 0.04898016 1 0.05214827 1 0.05409931 1 0.07388539 1 0.08340877 1 0.08435152 1 0.08463293 1 0.11169353 1 0.11313579 1 0.1140504 1 0.1145288 1 0.14009726 1 0.14853784 1 0.15817185 1 0.1736098 1 0.18544934 1 0.19557634 1 0.2145634 1 0.23110051 1 0.23408285 1 0.2349686 1 0.25693061 1 0.27380952 1 0.30553373 1 0.31387299 1 0.31581004 1 0.42402476 1 0.44619464 1 0.45133548 1 0.45393803 1 0.4650376 1 0.50330337 1 0.59196272 1 0.62060496 1 0.6604875 1 0.66781698 1 0.678677 1 0.70020207 1 0.74507885 1 1.00005799 4
-7 0 0  1 2 2  11.2339734135851 1.75393602830749 -1.1875289974046  13.4648676895469 6.33366791783307 -0.649981567562466 
- 0.48200245 2 12.07364253 2
-7 0 0  1 2 2  11.7544103983045 1.87810315920511 -0.947904211513032  13.7551732833356 6.33367429383337 -0.507938351705776 
- 0.19391945 2 2.76255209 2
-7 1 0  2 3 2  7.21279194058922 -1.34821673503686 1.41444126218235  1 7.21279194058922 -3.70620017603505e-007 2.80803629137456  0.69530859 7.21279194058922 1.34821630603684 1.41444156518237  1
- 0 3 1 3
-7 1 0  2 3 2  20.1549001573063 -1.3686672230082 1.41444126018235  1 20.1549001573063 -1.16040005511604e-006 2.76152380216534  0.71270411 20.1549001573063 1.36866520500811 1.41444156718237  1
- 0 3 1 3
-7 0 0  3 4 2  32.4183769697902 -8.97180042613763e-007 0.221258007919191  32.5955505782055 -6.92920032911934e-007 0.275451984623267  32.7725279766115 -4.78380022721831e-007 0.330344534450523  32.9492818450068 -2.51270011934685e-007 0.385932318830801 
- 0 4 1 4
-7 1 0  3 4 2  32.9492818450068 -2.51270011934685e-007 0.385932318830801  1 32.9492792850067 -0.831730021345054 0.481581306303884  0.4094979 32.9492816250068 -0.831729816895045 1.3187928326393  0.4094979 32.949284715007 -9.00000042747706e-011 1.41444141318236  1
- 0 4 3.00864606 4
-7 0 0  3 4 2  32.949284715007 -9.00000042747706e-011 1.41444141318236  32.7741353166878 -0.0736942506102889 1.41444140518236  32.5970604982772 -0.143131934658402 1.41444139718236  32.4183772197902 -0.208516963644024 1.41444139018236 
- 0 4 1 4
-7 0 0  3 4 2  33.8393312472819 3.1000001472421e-010 1.20936400844171  33.5450377833037 1.00000004749745e-010 1.28623003409265  33.2478993791904 -3.00000014249235e-011 1.35431147932634  32.949284715007 -9.00000042747706e-011 1.41444141318236 
- 0 4 1 4
-7 0 0  3 4 2  32.9492818450068 -2.51270011934685e-007 0.385932318830801  33.2466357191304 -2.06840009824373e-007 0.479447801742548  33.5433570032239 -1.26790006022202e-007 0.574930771547745  33.8393156872812 0 0.672364923065619 
- 0 4 1 4
-7 0 0  10 11 2  33.8392977572803 -0.20435919121254 0.940864465816662  33.8392967772803 -0.20435919123154 0.907122105847986  33.8392963272803 -0.199817963158844 0.87184829298957  33.8392965172803 -0.190039065924371 0.835955334826746  33.8392974472803 -0.174564579440372 0.800712922594821  33.8392991472804 -0.153379125093117 0.767645932553224  33.8393016072805 -0.127150480545323 0.738417393319943  33.8393046572807 -0.0973036963086774 0.714113961327592  33.8393081272808 -0.0653126459411841 0.69512701975076  33.839311857281 -0.0325231257177655 0.681353423136549  33.8393156872812 -5.59165355758928e-010 0.672364921580619 
- 0.5 11 1 11
-7 0 0  10 11 2  33.8393312472819 -2.49199968536363e-010 1.20936400844171  33.8393268972817 -0.0325231254187655 1.20037550701477  33.8393223672815 -0.0653126456581841 1.18660191036056  33.8393177972813 -0.0973036960466773 1.16761496945873  33.8393133372811 -0.127150480311323 1.14331153730438  33.8393091872809 -0.153379124893117 1.1140829989161  33.8393055672807 -0.174564579279372 1.0810160083455  33.8393025972806 -0.190039065803371 1.04577359667158  33.8393003272804 -0.199817963079844 1.00988063896675  33.8392987372804 -0.20435919119254 0.974606825785338  33.8392977572803 -0.20435919121254 0.940864465816662 
- 0 11 0.5 11
-7 0 0  1 2 2  33.8393156872812 0 0.672364923065619  33.8393312472819 3.1000001472421e-010 1.20936400844171 
- 0 2 1 2
-7 0 0  10 11 2  33.8393156872812 5.5916771475904e-010 0.672364923624619  33.839311857281 0.0325231256937655 0.68135342511055  33.8393081272808 0.0653126458971841 0.69512702163476  33.8393046572807 0.0973036962526774 0.714113963103592  33.8393016072805 0.127150480484323 0.738417394969943  33.8392991472804 0.153379125038117 0.767645934061224  33.8392974472803 0.174564579401372 0.800712923953821  33.8392965172803 0.190039065908371 0.835955336033746  33.8392963272803 0.199817963174844 0.87184829404957  33.8392967772803 0.20435919128254 0.907122106767986  33.8392977572803 0.20435919130254 0.940864466608662 
- 0 11 0.5 11
-7 0 0  10 11 2  33.8392977572803 0.20435919130254 0.940864466608662  33.8392987372804 0.20435919132154 0.974606826448338  33.8393003272804 0.199817963253844 1.00988063896675  33.8393025972806 0.190039066029371 1.04577359667158  33.8393055672807 0.174564579562372 1.0810160093455  33.8393091872809 0.153379125238117 1.1140829989161  33.8393133372811 0.127150480718323 1.14331153730438  33.8393177972813 0.0973036965136774 1.16761496945873  33.8393223672815 0.0653126461811841 1.18660191036056  33.8393268972817 0.0325231259927655 1.20037550701477  33.8393312472819 8.69133045081603e-010 1.20936400844171 
- 0.5 11 1 11
-7 1 0  3 4 2  32.949284715007 -9.00000042747706e-011 1.41444141318236  1 32.9492816250068 0.831730547915079 1.31879279163929  0.40949755 32.9492792850067 0.83173034345507 0.481580534523847  0.40949755 32.9492818450068 -2.51270011934685e-007 0.385932318830801  1
- 0 4 3.00408138 4
-7 0 0  3 4 2  32.4183773097902 0.208515993143978 1.41444143718236  32.5970603082772 0.143130653238341 1.41444142918236  32.7741352066878 0.0736935940402577 1.41444142218236  32.949284715007 -9.00000042747706e-011 1.41444141318236 
- 0 4 1 4
-7 0 0  1 2 2  28.7643514962333 1.33236617428399 0.776100352742787  31.9768135388171 6.52772034505006 1.34215900474913 
- 0 2 55.31688457 2
-7 0 0  3 13 11  31.9768135388171 6.52772034505006 1.34215900474913  31.9776257188556 6.52787760605753 1.34058743667448  31.9796644289525 6.52818048507192 1.33756072953072  31.9833584091279 6.52855755808983 1.33379279035176  31.9876254293306 6.5288832181053 1.3305387791972  31.9920575595411 6.52916842511885 1.32768909906185  31.9966522397594 6.52943877313169 1.32498794793355  32.0012638999784 6.52969316214377 1.32244629881283  32.0059658002017 6.52993654115533 1.32001469869733  32.0091598003534 6.5300832841623 1.3185486566277  32.014036060585 6.53028479217187 1.31653555253208  32.0174359507465 6.53039543717712 1.31543031647958  32.0208866309104 6.53046184918028 1.31476716144809 
- 0 4 0.10050716 1 0.20101433 1 0.30117802 1 0.4013417 1 0.50136613 1 0.60139055 1 0.70125099 1 0.7996628 1 0.80111143 1 1 4
-7 0 0  1 2 2  32.0208866309104 6.53046184918028 1.31476716144809  28.8816743618059 1.32524719294586 0.695787436618128 
- 10.79509318 2 65.98696054 2
-7 0 0  3 20 18  32.0208866309104 6.53046184918028 1.31476716144809  32.0599073027638 6.53130058622012 1.30639122705025  32.1191450255775 6.53226358526586 1.29677680959359  32.19857216935 6.53307327830432 1.28869800320987  32.2584536021943 6.53347889432358 1.2846543290178  32.3182868450362 6.53371059933459 1.28234875990829  32.3783239178878 6.53379236833847 1.28154173086996  32.4381797307308 6.53373951533596 1.28208011489554  32.4982063135819 6.53357143732798 1.28377011997581  32.5579894764214 6.53329855631502 1.28650751810583  32.6179377292688 6.53293795829789 1.29012160227749  32.6776144221033 6.53249803027699 1.2945284974868  32.7374592549458 6.5319907352529 1.2996086937281  32.7970201577748 6.53141960822577 1.30532680299969  32.8567681006127 6.53080887319676 1.31144079329009  32.9162629034385 6.53017449516663 1.31779103359171  32.9759893362754 6.52948805113403 1.32466167791805  33.0354316890987 6.52871351909724 1.3324126432862  33.0751543109855 6.52811956706903 1.33835550956847  33.0949317119248 6.52779751805373 1.34157750972151 
- 0 4 0.11096149 1 0.1664966 1 0.22203172 1 0.27757823 1 0.33312473 1 0.38866776 1 0.4442108 1 0.49975652 1 0.55530224 1 0.61084887 1 0.66639551 1 0.72194273 1 0.77748996 1 0.83303754 1 0.88858512 1 0.94429256 1 1 4
-7 0 0  1 2 2  33.0949317119248 6.52779751805373 1.34157750972151  31.8489294127429 0.773620905355019 0.713412653345281 
- 0 2 2.72494532 2
-7 0 0  3 12 10  31.9768135388171 6.52772034505006 1.34215900474913  31.9764636788005 6.52739737503472 1.34538679790244  31.9782710188863 6.52680712600669 1.35128621018265  31.984897389201 6.52656153899502 1.35374180329928  31.989697889429 6.52635515198522 1.35580529939729  31.9951559396883 6.52629706998246 1.35638671142491  32.000118179924 6.5261503899755 1.35785351649458  32.005677440188 6.52615118497553 1.35784651349425  32.0106887004261 6.52604185897034 1.35894000154618  32.0162508506902 6.52604601997054 1.35889935654425  32.019572370848 6.52595305996612 1.35982898558841  32.0213115109306 6.52591981196454 1.36016157360421 
- 0 4 0.18739138 1 0.28860531 1 0.38981924 1 0.49147355 1 0.59312786 1 0.69484995 1 0.79657203 1 0.89828602 1 1 4
-7 0 0  3 18 16  32.0213115109306 6.52591981196454 1.36016157360421  32.0610295228171 6.52557503794817 1.36361408176819  32.1205334756434 6.52495908791891 1.36978014606106  32.1998835294123 6.5241482588804 1.37789726144661  32.2594855522433 6.52359702785422 1.38341652970876  32.3191691150781 6.52315529183324 1.38784147891893  32.398875878864 6.5227418618136 1.39198694111583  32.4985535435984 6.5226114128074 1.39330760417856  32.5984294083422 6.52306348482888 1.38880643396476  32.6778686421154 6.52370143985918 1.38244401566256  32.7375086249481 6.52429319588728 1.37653997438214  32.796898447769 6.52496807991934 1.36980508006225  32.856418010596 6.52566978495267 1.36280215672963  32.9158161034173 6.52633654398434 1.35614847341359  32.9754666962506 6.526939984013 1.35012765812762  33.0350597490811 6.52744555603701 1.3450849458881  33.0749870309775 6.52769816004901 1.34256712776851  33.0949317119248 6.52779751805373 1.34157750972151 
- 0 4 0.11103083 1 0.16659245 1 0.22215408 1 0.27771208 1 0.33327008 1 0.44434037 1 0.55541065 1 0.61096997 1 0.66652929 1 0.72209161 1 0.77765393 1 0.83321457 1 0.88877522 1 0.94438761 1 1 4
-7 0 0  1 2 2  28.8816130618029 1.31007156222506 0.825958550560924  32.0213115109306 6.52591981196454 1.36016157360421 
- 0.49271381 2 3.01761452 2
-Polygon3D 0
-PolygonOnTriangulations 704
-4 1 3 4 2 
-p 0.0217114002497624 1 0 0.058887041083015 0.0956914417598994 0.132495842436784 
-4 2 32 33 29 
-p 0.139833966338934 1 0 0.058887041083015 0.0956914417598994 0.132495842436784 
-4 2 6 7 5 
-p 0.0217114002497624 1 0.132495842436784 0.162497690242658 0.181248845121329 0.2 
-4 29 30 31 28 
-p 0.134067157912031 1 0.132495842436784 0.162497690242658 0.181248845121329 0.2 
-4 8 9 10 5 
-p 0.0217114002497624 1 0.625 0.680555555555556 0.715277777777778 0.75 
-4 23 26 27 28 
-p 0.141289464704623 1 0.625 0.680555555555556 0.715277777777778 0.75 
-4 8 12 13 11 
-p 0.0217114002497624 1 0.301909390322789 0.318627387584946 0.329076135873794 0.339524884162641 
-4 23 24 25 22 
-p 0.134078622671144 1 0.301909390322789 0.318627387584946 0.329076135873794 0.339524884162641 
-4 14 15 16 11 
-p 0.0217114002497624 1 0.375 0.430555555555556 0.465277777777778 0.5 
-4 17 20 21 22 
-p 0.136786295185328 1 0.375 0.430555555555556 0.465277777777778 0.5 
-4 14 18 19 17 
-p 0.0217114002497624 1 0.4 0.488888888888889 0.544444444444444 0.6 
-4 17 18 19 16 
-p 0.135601706769003 1 0.4 0.488888888888889 0.544444444444444 0.6 
-4 20 21 22 17 
-p 0.0217114002497624 1 0.125 0.180555555555556 0.215277777777778 0.25 
-4 11 14 15 16 
-p 0.133706190678966 1 0.125 0.180555555555556 0.215277777777778 0.25 
-4 20 24 25 23 
-p 0.0217114002497624 1 0.8 0.888888888888889 0.944444444444444 1 
-4 11 12 13 10 
-p 0.138398074901815 1 0.8 0.888888888888889 0.944444444444444 1 
-4 26 27 28 23 
-p 0.0884057280462486 1 0.950938201119073 0.972743445066152 0.986371722533076 1 
-4 27 28 29 2 
-p 0.218328324649171 1 0.950938201119073 0.972743445066152 0.986371722533076 1 
-4 29 30 31 26 
-p 0.271277841269355 1 0.8 0.86708364494181 0.909010923030441 0.950938201119073 
-4 22 25 26 27 
-p 0.400787253241069 1 0.8 0.86708364494181 0.909010923030441 0.950938201119073 
-4 29 33 34 32 
-p 0.162794920043528 1 0.30821290778553 0.349007170991961 0.374503585495981 0.4 
-4 22 23 24 19 
-p 0.292539749822413 1 0.30821290778553 0.349007170991961 0.374503585495981 0.4 
-4 32 36 37 35 
-p 0.0217114002497624 1 0.4 0.405466473836574 0.408883019984433 0.412299566132293 
-4 19 20 21 18 
-p 0.148461068651578 1 0.4 0.405466473836574 0.408883019984433 0.412299566132293 
-4 38 39 40 35 
-p 0.310162931019732 1 0.4 0.488888888888889 0.544444444444444 0.6 
-4 13 16 17 18 
-p 0.430040802055804 1 0.4 0.488888888888889 0.544444444444444 0.6 
-4 38 42 43 41 
-p 0.226701566455158 1 0.6 0.688888888888889 0.744444444444444 0.8 
-4 13 14 15 12 
-p 0.346579396586611 1 0.6 0.688888888888889 0.744444444444444 0.8 
-4 44 45 46 41 
-p 0.0217114002497624 1 0.2 0.206615110259757 0.210749554172106 0.214883998084454 
-4 9 10 11 12 
-p 0.14719766463088 1 0.2 0.206615110259757 0.210749554172106 0.214883998084454 
-4 47 48 49 44 
-p 0.112813752801465 1 0 0.0888888888888889 0.144444444444444 0.2 
-4 6 7 8 9 
-p 0.242763564501105 1 0 0.0888888888888889 0.144444444444444 0.2 
-4 47 51 52 50 
-p 0.227780754819001 1 1.00922414 1.08695058 1.135529605 1.18410863 
-4 69 70 71 65 
-p 0.357750925570527 1 1.00922414 1.08695058 1.135529605 1.18410863 
-7 27 31 32 33 34 35 30 
-p 0.119318360526317 1 0 0.06282209745 0.119361985155 0.1702478840895 0.21604519313055 0.237286171565275 0.25852715 
-4 56 57 58 53 
-p 0.642905660536378 1 0 0.526270502222222 0.855189566111111 1.18410863 
-4 53 56 57 58 
-p 0.675398194661762 1 0 0.526270502222222 0.855189566111111 1.18410863 
-4 56 60 61 59 
-p 0.367560392018177 1 0.84752031 0.915289061111111 0.957644530555556 1 
-4 25 26 27 8 
-p 0.497530564519701 1 0.84752031 0.915289061111111 0.957644530555556 1 
-4 59 62 63 1 
-p 0.642905660536378 1 0 0.182258826666667 0.296170593333333 0.41008236 
-4 1 2 3 4 
-p 0.642905660536378 1 0 0.182258826666667 0.296170593333333 0.41008236 
-18 1 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 5 
-p 0.642905660536378 1 0.15247929 0.2046073665 0.25152263535 0.293746377315 0.33597011928 0.378193861245 0.42041760321 0.462641345175001 0.504865087140001 0.547088829105001 0.589312571070001 0.631536313035001 0.673760055000001 0.715983796965001 0.758207538930001 0.800431280895001 0.823975795447501 0.84752031 
-18 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 5 
-p 1.07351294138913 1 0.15247929 0.2046073665 0.25152263535 0.293746377315 0.33597011928 0.378193861245 0.42041760321 0.462641345175001 0.504865087140001 0.547088829105001 0.589312571070001 0.631536313035001 0.673760055000001 0.715983796965001 0.758207538930001 0.800431280895001 0.823975795447501 0.84752031 
-4 22 23 24 5 
-p 0.642905660536378 1 0 0.18226104 0.29617419 0.41008734 
-4 1 2 3 4 
-p 0.642905660536378 1 0 0.18226104 0.29617419 0.41008734 
-4 22 26 27 25 
-p 0.0169516157761017 1 0 0.141284489650318 0.229587295681766 0.317890101713215 
-4 14 15 16 11 
-p 0.167704394738365 1 0 0.141284489650318 0.229587295681766 0.317890101713215 
-4 25 29 30 28 
-p 0.017828509082463 1 0.317890101713215 0.398827834285119 0.44941391714256 0.5 
-4 11 12 13 10 
-p 0.168540461567515 1 0.317890101713215 0.398827834285119 0.44941391714256 0.5 
-4 31 32 33 28 
-p 0.00643026472471604 1 0.5 0.526571345634015 0.543178436655274 0.559785527676533 
-4 7 8 9 10 
-p 0.157605357519707 1 0.5 0.526571345634015 0.543178436655274 0.559785527676533 
-4 34 35 36 31 
-p 0.00359422273581913 1 0.25 0.361111111111111 0.430555555555556 0.5 
-4 4 5 6 7 
-p 0.154767643449415 1 0.25 0.361111111111111 0.430555555555556 0.5 
-4 37 38 39 34 
-p 0.0036674923889251 1 0 0.111111111111111 0.180555555555556 0.25 
-4 1 2 3 4 
-p 0.154850467737342 1 0 0.111111111111111 0.180555555555556 0.25 
-4 40 41 42 37 
-p 0.177477995241493 1 0.8 0.888888888888889 0.944444444444444 1 
-4 21 22 23 2 
-p 0.328428511514088 1 0.8 0.888888888888889 0.944444444444444 1 
-4 43 44 45 40 
-p 0.134184181089731 1 0.664667925968128 0.724815514426738 0.762407757213369 0.8 
-4 18 19 20 21 
-p 0.285130294987161 1 0.664667925968128 0.724815514426738 0.762407757213369 0.8 
-4 46 47 48 43 
-p 0.0744606139709532 1 0.6 0.628741300430279 0.646704613199204 0.664667925968128 
-4 13 16 17 18 
-p 0.225564749987571 1 0.6 0.628741300430279 0.646704613199204 0.664667925968128 
-4 46 50 51 49 
-p 0.331785856142649 1 0.550748293513788 0.638318125304675 0.693049270173979 0.747780415043284 
-4 13 14 15 10 
-p 0.482543745344843 1 0.550748293513788 0.638318125304675 0.693049270173979 0.747780415043284 
-4 49 53 54 52 
-p 0.300293524566547 1 0.747780415043284 0.819505773434099 0.864334122428358 0.909162471422618 
-4 10 11 12 9 
-p 0.451050107007315 1 0.747780415043284 0.819505773434099 0.864334122428358 0.909162471422618 
-4 55 56 57 52 
-p 0.170175817170122 1 0 0.0888888888888889 0.144444444444444 0.2 
-4 6 7 8 9 
-p 0.321349609018735 1 0 0.0888888888888889 0.144444444444444 0.2 
-4 58 59 60 55 
-p 0.227779102818924 1 1.00922544 1.08695130222222 1.13552996611111 1.18410863 
-4 11 14 15 16 
-p 0.378973189191404 1 1.00922544 1.08695130222222 1.13552996611111 1.18410863 
-8 5 6 7 8 9 10 11 1 
-p 0.119318364162317 1 0.5 0.540245556666667 0.580491113333333 0.616712114333333 0.649311015233333 0.681909916133333 0.711691628066666 0.74147334 
-8 30 36 37 38 39 40 41 1 
-p 0.119318360526317 1 0.25852715 0.298772625 0.3390181 0.3752390275 0.40783786225 0.440436697 0.4702183485 0.5 
-4 72 73 74 69 
-p 0.155999474162883 1 0.8 0.888888888888889 0.944444444444444 1 
-4 22 23 24 1 
-p 0.307136950612582 1 0.8 0.888888888888889 0.944444444444444 1 
-4 75 76 77 72 
-p 0.195306672995662 1 0.668616376685245 0.727009098158469 0.763504549079235 0.8 
-4 17 20 21 22 
-p 0.346442914142406 1 0.668616376685245 0.727009098158469 0.763504549079235 0.8 
-4 75 79 80 78 
-p 0.113608929104876 1 0.5 0.523641197342315 0.538416945681261 0.553192694020208 
-4 17 18 19 14 
-p 0.264641402497676 1 0.5 0.523641197342315 0.538416945681261 0.553192694020208 
-4 78 82 83 81 
-p 0.334451310524173 1 0.553192694020208 0.635433764236536 0.68683443312174 0.738235102006945 
-4 14 15 16 13 
-p 0.485348588421557 1 0.553192694020208 0.635433764236536 0.68683443312174 0.738235102006945 
-4 84 85 86 81 
-p 0.192994078484681 1 0.2 0.288888888888889 0.344444444444444 0.4 
-4 10 11 12 13 
-p 0.343713368625824 1 0.2 0.288888888888889 0.344444444444444 0.4 
-4 87 88 89 84 
-p 0.195966610379899 1 0 0.0888888888888889 0.144444444444444 0.2 
-4 7 8 9 10 
-p 0.346794800060204 1 0 0.0888888888888889 0.144444444444444 0.2 
-4 90 91 92 87 
-p 0.00375173355008656 1 0.75 0.861111111111111 0.930555555555556 1 
-4 18 19 20 1 
-p 0.154829221115348 1 0.75 0.861111111111111 0.930555555555556 1 
-4 93 94 95 90 
-p 0.00377599847747661 1 0.5 0.611111111111111 0.680555555555556 0.75 
-4 13 16 17 18 
-p 0.154748676964202 1 0.5 0.611111111111111 0.680555555555556 0.75 
-4 93 97 98 96 
-p 0.0242081863479626 1 0.0901996913858489 0.183598224865604 0.241972308290451 0.300346391715297 
-4 13 14 15 12 
-p 0.174917195661142 1 0.0901996913858489 0.183598224865604 0.241972308290451 0.300346391715297 
-4 99 100 101 96 
-p 0.014310448166988 1 0.0599516605892503 0.14441758921625 0.197208794608125 0.25 
-4 9 10 11 12 
-p 0.165316535098279 1 0.0599516605892503 0.14441758921625 0.197208794608125 0.25 
-4 4 102 103 99 
-p 0.00366833695294249 1 0 0.0266451824841112 0.0432984215366808 0.0599516605892503 
-4 6 7 8 9 
-p 0.154851510657451 1 0 0.0266451824841112 0.0432984215366808 0.0599516605892503 
-4 4 6 7 5 
-p 0.36755919119012 1 0 0.0677685733333333 0.110123931666667 0.15247929 
-4 5 6 7 2 
-p 0.496378701370654 1 0 0.0677685733333333 0.110123931666667 0.15247929 
-4 5 9 10 8 
-p 0.642905660536378 1 0 0.526270502222222 0.855189566111111 1.18410863 
-4 8 9 10 5 
-p 0.675110538081513 1 0 0.526270502222222 0.855189566111111 1.18410863 
-7 5 13 14 15 16 17 12 
-p 0.119318364162317 1 0.74147334 0.784561116666667 0.827648893333333 0.87073667 0.913824446666667 0.956912223333333 1 
-4 16 18 19 17 
-p 0.113045898477635 1 0 0.0408182187591482 0.0663296054836158 0.0918409922080835 
-4 2 31 32 30 
-p 0.241627904162505 1 0 0.0408182187591482 0.0663296054836158 0.0918409922080835 
-4 20 21 22 17 
-p 0.203505505309364 1 0.624657200339206 0.702587333521781 0.75129366676089 0.8 
-4 27 28 29 30 
-p 0.331941134359003 1 0.624657200339206 0.702587333521781 0.75129366676089 0.8 
-4 23 24 25 20 
-p 0.0293856235403936 1 0.6 0.610958755706314 0.61780797802276 0.624657200339206 
-4 24 25 26 27 
-p 0.158137521258689 1 0.6 0.610958755706314 0.61780797802276 0.624657200339206 
-4 26 27 28 23 
-p 0.277878377095838 1 0.413275132100674 0.496263962278152 0.548131981139076 0.6 
-4 19 22 23 24 
-p 0.406270496512281 1 0.413275132100674 0.496263962278152 0.548131981139076 0.6 
-4 26 30 31 29 
-p 0.0240244320866296 1 0.4 0.405029030981936 0.408172175345647 0.411315319709357 
-4 19 20 21 16 
-p 0.152826906387239 1 0.4 0.405029030981936 0.408172175345647 0.411315319709357 
-4 29 33 34 32 
-p 0.181185712181161 1 0.411315319709357 0.453217880267132 0.479406980615742 0.505596080964352 
-4 16 17 18 15 
-p 0.309871669334103 1 0.411315319709357 0.453217880267132 0.479406980615742 0.505596080964352 
-4 35 36 37 32 
-p 0.257364374160822 1 0.0568724255241282 0.120484680846738 0.160242340423369 0.2 
-4 12 13 14 15 
-p 0.385723975286375 1 0.0568724255241282 0.120484680846738 0.160242340423369 0.2 
-4 38 39 40 35 
-p 0.0852479780882632 1 0.00938904044701609 0.0304927671479548 0.0436825963360415 0.0568724255241282 
-4 7 10 11 12 
-p 0.214030691525058 1 0.00938904044701609 0.0304927671479548 0.0436825963360415 0.0568724255241282 
-4 38 42 43 41 
-p 0.017061916651825 1 0.8 0.888888888888889 0.944444444444444 1 
-4 7 8 9 6 
-p 0.145872553425539 1 0.8 0.888888888888889 0.944444444444444 1 
-4 44 45 46 41 
-p 0.0140081717961451 1 0.875 0.930555555555556 0.965277777777778 1 
-4 20 23 24 25 
-p 0.136530447546772 1 0.875 0.930555555555556 0.965277777777778 1 
-4 44 48 49 47 
-p 0.0135352789214262 1 0.25 0.28257966518349 0.302941955923171 0.323304246662853 
-4 20 21 22 19 
-p 0.133756588597998 1 0.25 0.28257966518349 0.302941955923171 0.323304246662853 
-4 50 51 52 47 
-p 0.0135352789214262 1 0.625 0.680555555555556 0.715277777777778 0.75 
-4 16 17 18 19 
-p 0.134099988209206 1 0.625 0.680555555555556 0.715277777777778 0.75 
-4 53 54 55 50 
-p 0.0135352789214262 1 0.5 0.555555555555556 0.590277777777778 0.625 
-4 11 14 15 16 
-p 0.135841310553192 1 0.5 0.555555555555556 0.590277777777778 0.625 
-4 53 57 58 56 
-p 0.0135352789214262 1 0.5 0.611111111111111 0.680555555555556 0.75 
-4 11 12 13 10 
-p 0.132597498359974 1 0.5 0.611111111111111 0.680555555555556 0.75 
-4 59 60 61 56 
-p 0.0137676491777583 1 0.25 0.305555555555556 0.340277777777778 0.375 
-4 7 8 9 10 
-p 0.140747743347293 1 0.25 0.305555555555556 0.340277777777778 0.375 
-4 62 63 64 59 
-p 0.0135352789214262 1 0.125 0.180555555555556 0.215277777777778 0.25 
-4 4 5 6 7 
-p 0.132087090921702 1 0.125 0.180555555555556 0.215277777777778 0.25 
-4 1 65 66 62 
-p 0.0135352789214262 1 0 0.0555555555555556 0.0902777777777778 0.125 
-4 1 2 3 4 
-p 0.138814820443407 1 0 0.0555555555555556 0.0902777777777778 0.125 
-4 1 3 4 2 
-p 0.247128841578528 1 0 0.0474455980805028 0.077099096880817 0.106752595681131 
-4 1 34 35 31 
-p 0.39314651311019 1 0 0.0474455980805028 0.077099096880817 0.106752595681131 
-4 2 6 7 5 
-p 0.355821302354724 1 0.106752595681131 0.15998065268381 0.193248188310484 0.226515723937158 
-4 31 32 33 30 
-p 0.501626510245666 1 0.106752595681131 0.15998065268381 0.193248188310484 0.226515723937158 
-4 8 9 10 5 
-p 0.208021352668102 1 0.625 0.680555555555556 0.715277777777778 0.75 
-4 27 28 29 30 
-p 0.354051875192448 1 0.625 0.680555555555556 0.715277777777778 0.75 
-4 11 12 13 8 
-p 0.126924323465684 1 0.530339034103805 0.572410574502114 0.598705287251057 0.625 
-4 24 25 26 27 
-p 0.27300603451605 1 0.530339034103805 0.572410574502114 0.598705287251057 0.625 
-4 14 15 16 11 
-p 0.0294238459231764 1 0.5 0.513484015157247 0.521911524630525 0.530339034103805 
-4 19 22 23 24 
-p 0.175623540625634 1 0.5 0.513484015157247 0.521911524630525 0.530339034103805 
-4 14 18 19 17 
-p 0.469059716108416 1 0.344046308627282 0.41041024844907 0.451887710837687 0.493365173226304 
-4 19 20 21 16 
-p 0.614669337890339 1 0.344046308627282 0.41041024844907 0.451887710837687 0.493365173226304 
-4 17 21 22 20 
-p 0.336522202215116 1 0.493365173226304 0.541858469291672 0.572166779332527 0.602475089373382 
-4 16 17 18 15 
-p 0.482109256793404 1 0.493365173226304 0.541858469291672 0.572166779332527 0.602475089373382 
-4 23 24 25 20 
-p 0.160526460639545 1 0.146801354201132 0.192667419000629 0.221333709500315 0.25 
-4 12 13 14 15 
-p 0.306443621393575 1 0.146801354201132 0.192667419000629 0.221333709500315 0.25 
-4 26 27 28 23 
-p 0.0441833793613924 1 0.125 0.134689490756059 0.140745422478596 0.146801354201132 
-4 9 10 11 12 
-p 0.190379594598386 1 0.125 0.134689490756059 0.140745422478596 0.146801354201132 
-4 29 30 31 26 
-p 0.0759599795464013 1 0 0.0555555555555556 0.0902777777777778 0.125 
-4 6 7 8 9 
-p 0.2221565503611 1 0 0.0555555555555556 0.0902777777777778 0.125 
-4 29 33 34 32 
-p 0.0243947204967824 1 0 0.049322432405471 0.0801489526588904 0.11097547291231 
-4 17 18 19 14 
-p 0.170398835618514 1 0 0.049322432405471 0.0801489526588904 0.11097547291231 
-4 32 36 37 35 
-p 0.0256666525673765 1 0.11097547291231 0.177125198844345 0.218468777551868 0.25981235625939 
-4 14 15 16 13 
-p 0.171601839773672 1 0.11097547291231 0.177125198844345 0.218468777551868 0.25981235625939 
-4 38 39 40 35 
-p 0.0272782144424809 1 0.5 0.574074075555556 0.620370372777778 0.66666667 
-4 8 11 12 13 
-p 0.173181444538909 1 0.5 0.574074075555556 0.620370372777778 0.66666667 
-4 38 42 43 41 
-p 0.00932543928484648 1 0.483275274148006 0.531066392833785 0.560935842012396 0.590805291191008 
-4 8 9 10 7 
-p 0.15544361864965 1 0.483275274148006 0.531066392833785 0.560935842012396 0.590805291191008 
-4 44 45 46 41 
-p 0.0130633893003221 1 0.16666667 0.240740741111111 0.287037035555556 0.33333333 
-4 4 5 6 7 
-p 0.158702800028615 1 0.16666667 0.240740741111111 0.287037035555556 0.33333333 
-4 47 48 49 44 
-p 0.0117174365470354 1 0 0.0740740755555555 0.120370372777778 0.16666667 
-4 1 2 3 4 
-p 0.157408269034261 1 0 0.0740740755555555 0.120370372777778 0.16666667 
-4 47 51 52 50 
-p 0.0684505232512223 1 0 0.0362251511111111 0.0588658705555556 0.08150659 
-4 14 15 16 11 
-p 0.214651787531248 1 0 0.0362251511111111 0.0588658705555556 0.08150659 
-4 50 54 55 53 
-p 0.496317240913799 1 0.49999967 0.722222038888889 0.861111019444444 1 
-4 1 17 18 14 
-p 0.583442097712011 1 0.49999967 0.722222038888889 0.861111019444444 1 
-4 6 10 11 9 
-p 0.0530907785216762 1 0 0.166666956666667 0.333333913333333 0.50000087 
-4 59 62 63 1 
-p 0.349195244585881 1 2.57033879 2.74803565666667 2.85909619833333 2.97015674 
-4 1 2 3 4 
-p 0.495396510365887 1 2.57033879 2.74803565666667 2.85909619833333 2.97015674 
-4 6 7 8 3 
-p 0.0530907785216762 1 0.50000087 0.666667246666667 0.833333623333333 1 
-4 11 12 13 8 
-p 0.496316527833765 1 0 0.222222075555556 0.361110872777778 0.49999967 
-4 1 2 3 4 
-p 0.583442097712011 1 0 0.222222075555556 0.361110872777778 0.49999967 
-4 17 18 19 14 
-p 0.0116858109642619 1 0.83333333 0.907407405555556 0.953703702777778 1 
-4 16 17 18 19 
-p 0.168520879067806 1 0.83333333 0.907407405555556 0.953703702777778 1 
-4 20 21 22 17 
-p 0.0130815236584581 1 0.66666667 0.740740741111111 0.787037035555556 0.83333333 
-4 11 14 15 16 
-p 0.169835974042751 1 0.66666667 0.740740741111111 0.787037035555556 0.83333333 
-4 20 24 25 23 
-p 0.0120755381645282 1 0.409120244843595 0.469052849098649 0.506510726758058 0.543968604417467 
-4 11 12 13 10 
-p 0.169263013130296 1 0.409120244843595 0.469052849098649 0.506510726758058 0.543968604417467 
-4 26 27 28 23 
-p 0.0251143113646577 1 0.33333333 0.407407405555556 0.453703702777778 0.5 
-4 5 8 9 10 
-p 0.18216778007763 1 0.33333333 0.407407405555556 0.453703702777778 0.5 
-4 26 30 31 29 
-p 0.0248985937008868 1 0.743934327122079 0.807918344727152 0.847908355730323 0.887898366733494 
-4 5 6 7 1 
-p 0.181959069709794 1 0.743934327122079 0.807918344727152 0.847908355730323 0.887898366733494 
-4 29 33 34 32 
-p 0.0246386816164232 1 0.887898366733494 0.937721314851941 0.968860657425971 1 
-4 1 2 3 4 
-p 0.181768256495326 1 0.887898366733494 0.937721314851941 0.968860657425971 1 
-4 35 36 37 32 
-p 0.0759605756093393 1 0.875 0.930555555555556 0.965277777777778 1 
-4 33 34 35 1 
-p 0.233287095553079 1 0.875 0.930555555555556 0.965277777777778 1 
-4 38 39 40 35 
-p 0.0441828666060005 1 0.849766973181494 0.860981651767497 0.867990825883748 0.875 
-4 30 31 32 33 
-p 0.201509065446233 1 0.849766973181494 0.860981651767497 0.867990825883748 0.875 
-4 41 42 43 38 
-p 0.134846336381432 1 0.75 0.794340876969553 0.822053925075523 0.849766973181494 
-4 25 28 29 30 
-p 0.29190338036409 1 0.75 0.794340876969553 0.822053925075523 0.849766973181494 
-4 41 45 46 44 
-p 0.206679500437461 1 0.388108130442962 0.419347793023147 0.438872582135763 0.458397371248378 
-4 25 26 27 22 
-p 0.363525366831892 1 0.388108130442962 0.419347793023147 0.438872582135763 0.458397371248378 
-4 44 48 49 47 
-p 0.468177362943766 1 0.458397371248378 0.522668809975069 0.56283845917925 0.603008108383431 
-4 22 23 24 19 
-p 0.624866087258049 1 0.458397371248378 0.522668809975069 0.56283845917925 0.603008108383431 
-4 47 51 52 50 
-p 0.185781286525067 1 0.603008108383431 0.63130080243524 0.64898373621762 0.66666667 
-4 19 20 21 18 
-p 0.343070991464657 1 0.603008108383431 0.63130080243524 0.64898373621762 0.66666667 
-4 53 54 55 50 
-p 0.100882537737616 1 0.375 0.390758639674271 0.400607789470691 0.41045693926711 
-4 15 16 17 18 
-p 0.258105650464897 1 0.375 0.390758639674271 0.400607789470691 0.41045693926711 
-4 56 57 58 53 
-p 0.182078303635413 1 0.25 0.305555555555556 0.340277777777778 0.375 
-4 10 13 14 15 
-p 0.339287929042992 1 0.25 0.305555555555556 0.340277777777778 0.375 
-4 56 60 61 59 
-p 0.308835532844203 1 0.757022074411284 0.801827011748411 0.829830097584116 0.857833183419821 
-4 10 11 12 7 
-p 0.4657970101622 1 0.757022074411284 0.801827011748411 0.829830097584116 0.857833183419821 
-4 59 62 63 4 
-p 0.34614698191874 1 0.857833183419821 0.921018435233234 0.960509217616617 1 
-4 7 8 9 6 
-p 0.503160226604632 1 0.857833183419821 0.921018435233234 0.960509217616617 1 
-2 1 2 
-p 0.622517224554979 1 0 55.21292144 
-2 7 3 
-p 0.637818569109754 1 0 55.21292144 
-4 2 4 5 3 
-p 0.0176293168373448 1 0 0.444444444444444 0.722222222222222 1 
-4 9 10 11 1 
-p 0.112210986329735 1 0 0.444444444444444 0.722222222222222 1 
-2 3 6 
-p 0.622517224554979 1 0 55.31736968 
-2 1 2 
-p 0.623547928988935 1 0 55.31736968 
-8 1 4 5 6 7 8 9 3 
-p 0.0179392128520661 1 0 0.10935 0.18906615 0.29841615 0.46244115 0.70847865 0.854239325 1 
-8 1 2 3 4 5 6 7 8 
-p 0.112210986329735 1 0 0.10935 0.18906615 0.29841615 0.46244115 0.70847865 0.854239325 1 
-2 3 10 
-p 0.623547928988935 1 0 2.52492265 
-2 1 2 
-p 0.637219664481308 1 0 2.52492265 
-5 9 13 14 15 12 
-p 0.112210986329735 1 0 0.166666666666667 0.388888888888889 0.694444444444444 1 
-5 3 4 5 6 2 
-p 0.51938682146955 1 0 0.166666666666667 0.388888888888889 0.694444444444444 1 
-4 12 16 17 8 
-p 0.112210986329735 1 0 0.444444444444444 0.722222222222222 1 
-4 3 4 5 1 
-p 0.519216869461468 1 0 0.444444444444444 0.722222222222222 1 
-2 1 2 
-p 0.637818569109754 1 0.29266018 3.01761452 
-2 6 3 
-p 0.661844054337434 1 0.29266018 3.01761452 
-2 1 2 
-p 0.68706828063399 1 0 1.95653393 
-2 6 3 
-p 0.713253797014977 1 0 1.95653393 
-4 6 7 8 1 
-p 0.19066308105601 1 0 0.444444444444444 0.722222222222222 1 
-2 3 6 
-p 0.68706828063399 1 0.07121022 2.01729017 
-2 20 17 
-p 0.681352342574739 1 0.07121022 2.01729017 
-5 20 22 23 24 21 
-p 0.0380148813278424 1 0 0.444444444444444 0.888888888888889 0.944444444444444 1 
-5 1 2 3 4 5 
-p 0.19066308105601 1 0 0.444444444444444 0.888888888888889 0.944444444444444 1 
-2 21 1 
-p 0.61738581012425 1 1.37499288 38.1919507 
-2 20 19 
-p 0.645152860483351 1 1.37499288 38.1919507 
-4 6 10 11 9 
-p 0.19066308105601 1 0 0.444444444444444 0.722222222222222 1 
-4 3 4 5 2 
-p 0.68706828063399 1 0 0.444444444444444 0.722222222222222 1 
-5 9 12 13 14 5 
-p 0.0380149807281612 1 0 0.444444444444444 0.888888888888889 0.944444444444444 1 
-5 21 22 23 24 20 
-p 0.1600153225848 1 0 0.444444444444444 0.888888888888889 0.944444444444444 1 
-2 1 2 
-p 0.68706828063399 1 1.34817287 38.1919507 
-2 4 21 
-p 0.683467514267576 1 1.34817287 38.1919507 
-4 5 6 7 4 
-p 0.583442097712011 1 0 0.444444444444444 0.722222222222222 1 
-4 14 15 16 8 
-p 0.583442097712011 1 0 0.444444444444444 0.722222222222222 1 
-5 31 32 33 34 28 
-p 1.07351294138913 1 1.20676907 1.379990036 1.553211002 1.668691646 1.78417229 
-5 59 60 61 62 63 
-p 1.29421084167171 1 1.20676907 1.379990036 1.553211002 1.668691646 1.78417229 
-7 31 36 37 38 39 40 35 
-p 1.07351294138913 1 0.57740334 0.715045625151 0.852687910302 0.9765659669379 1.08805621791021 1.1474126439551 1.20676907 
-7 108 109 110 111 112 113 107 
-p 1.29421084167171 1 0.57740334 0.715045625151 0.852687910302 0.9765659669379 1.08805621791021 1.1474126439551 1.20676907 
-5 1 41 42 43 35 
-p 1.07351294138913 1 0 0.19246778 0.38493556 0.48116945 0.57740334 
-5 11 12 13 14 15 
-p 1.29421084167171 1 0 0.19246778 0.38493556 0.48116945 0.57740334 
-5 1 3 4 5 2 
-p 0.154332494323399 1 0 0.3 0.6 0.8 1 
-5 1 21 22 23 17 
-p 0.154076614787245 1 0 0.3 0.6 0.8 1 
-4 2 7 8 6 
-p 0.154332494323399 1 0 0.432113840210477 0.716056920105239 1 
-4 1 16 17 10 
-p 0.14132715381128 1 0 0.432113840210477 0.716056920105239 1 
-10 6 10 11 12 13 14 15 16 17 9 
-p 0.154332494323399 1 0 0.135 0.2565 0.36585 0.4752 0.58455 0.6939 0.80325 0.901625 1 
-10 5 6 7 8 9 10 11 12 13 1 
-p 0.185198973188079 1 0 0.135 0.2565 0.36585 0.4752 0.58455 0.6939 0.80325 0.901625 1 
-4 9 18 19 1 
-p 0.154332494323399 1 0 0.222222222222222 0.361111111111111 0.5 
-4 34 35 36 33 
-p 0.244985961736207 1 0 0.222222222222222 0.361111111111111 0.5 
-9 1 3 4 5 6 7 8 9 2 
-p 0.154076614787245 1 0 0.248117411666667 0.471423082166667 0.672398185616667 0.873373289066667 1.07434839251667 1.27532349596667 1.38201398298333 1.48870447 
-9 9 10 11 12 13 14 15 16 8 
-p 0.169168173274056 1 0 0.248117411666667 0.471423082166667 0.672398185616667 0.873373289066667 1.07434839251667 1.27532349596667 1.38201398298333 1.48870447 
-2 2 10 
-p 1e-005 1 0 1 
-7 10 12 13 14 15 16 11 
-p 0.154076614787245 1 0 0.304479063333333 0.608958126666667 0.91343719 1.21791625333333 1.52239531666667 1.82687438 
-7 8 9 10 11 12 13 5 
-p 0.156610876042657 1 0 0.304479063333333 0.608958126666667 0.91343719 1.21791625333333 1.52239531666667 1.82687438 
-6 1 3 4 5 6 2 
-p 0.110460699746601 1 0 0.2187 0.4374 0.6561 0.82805 1 
-7 1 3 4 5 6 7 2 
-p 0.169168173274056 1 0 0.269678678333333 0.539357356666667 0.809036035 1.07871471333333 1.34839339166667 1.61807207 
-7 3 4 5 6 7 8 2 
-p 0.157333852363806 1 0 0.269678678333333 0.539357356666667 0.809036035 1.07871471333333 1.34839339166667 1.61807207 
-2 2 8 
-p 1e-005 1 0 1 
-13 1 17 18 19 20 21 22 23 24 25 26 27 9 
-p 0.169168173274056 1 0 0.0833333333333333 0.166666666666667 0.25 0.333333333333333 0.416666666666667 0.5 0.583333333333333 0.666666666666667 0.75 0.833333333333334 0.916666666666667 1 
-13 19 22 23 24 25 26 27 28 29 30 31 32 33 
-p 0.244985961736207 1 0 0.0833333333333333 0.166666666666667 0.25 0.333333333333333 0.416666666666667 0.5 0.583333333333333 0.666666666666667 0.75 0.833333333333334 0.916666666666667 1 
-2 1 2 
-p 1e-005 1 0 1 
-5 9 10 11 12 3 
-p 0.154076615487245 1 0 0.3 0.6 0.8 1 
-5 1 6 7 8 9 
-p 0.154334512315495 1 0 0.3 0.6 0.8 1 
-6 2 6 7 8 9 5 
-p 0.110455126646336 1 0 0.2187 0.4374 0.6561 0.82805 1 
-7 13 17 18 19 20 21 1 
-p 0.154076615487245 1 0 0.304479063333333 0.608958126666667 0.91343719 1.21791625333333 1.52239531666667 1.82687438 
-7 15 16 17 18 19 20 14 
-p 0.156741209765721 1 0 0.304479063333333 0.608958126666667 0.91343719 1.21791625333333 1.52239531666667 1.82687438 
-4 1 3 4 2 
-p 0.110455130146336 1 2.78088653 4.01683610333333 4.78930458666667 5.56177307 
-4 1 17 18 14 
-p 0.148705354563124 1 2.78088653 4.01683610333333 4.78930458666667 5.56177307 
-4 5 6 7 2 
-p 0.110455130146336 1 0.60294418 0.68935282 0.74335822 0.79736362 
-4 21 24 25 26 
-p 0.15042515953281 1 0.60294418 0.68935282 0.74335822 0.79736362 
-7 5 9 10 11 12 13 8 
-p 0.110455130146336 1 0 0.166666666666667 0.333333333333333 0.5 0.666666666666667 0.833333333333333 1 
-7 1 14 15 16 17 18 10 
-p 0.132546133200603 1 0 0.166666666666667 0.333333333333333 0.5 0.666666666666667 0.833333333333333 1 
-7 8 14 15 16 17 18 1 
-p 0.110455130146336 1 0 0.166666666666667 0.333333333333333 0.5 0.666666666666667 0.833333333333333 1 
-7 8 9 10 11 12 13 5 
-p 0.128034097196292 1 0 0.166666666666667 0.333333333333333 0.5 0.666666666666667 0.833333333333333 1 
-4 1 3 4 2 
-p 0.110455126646336 1 0.5 0.722222222222222 0.861111111111111 1 
-4 21 22 23 15 
-p 0.15042515953281 1 0.5 0.722222222222222 0.861111111111111 1 
-5 5 11 12 13 10 
-p 0.110455126646336 1 0 0.333333333333333 0.633333333333333 0.816666666666667 1 
-5 1 2 3 4 5 
-p 0.154334512315495 1 0 0.333333333333333 0.633333333333333 0.816666666666667 1 
-4 9 11 12 10 
-p 0.154334512315495 1 0 0.222222222222222 0.361111111111111 0.5 
-4 19 20 21 16 
-p 0.244985961736207 1 0 0.222222222222222 0.361111111111111 0.5 
-10 5 13 14 15 16 17 18 19 20 10 
-p 0.154334512315495 1 0 0.135 0.2565 0.36585 0.4752 0.58455 0.6939 0.80325 0.901625 1 
-10 13 18 19 20 21 22 23 24 25 1 
-p 0.185201394778594 1 0 0.135 0.2565 0.36585 0.4752 0.58455 0.6939 0.80325 0.901625 1 
-9 1 3 4 5 6 7 8 9 2 
-p 0.130190205264702 1 0 0.135 0.27 0.405 0.54 0.675 0.81 0.905 1 
-9 8 9 10 11 12 13 14 15 5 
-p 0.296600035187744 1 0 0.135 0.27 0.405 0.54 0.675 0.81 0.905 1 
-4 2 11 12 10 
-p 0.124154498297018 1 0.5 0.722222222222222 0.861111111111111 1 
-4 5 6 7 1 
-p 0.14269862349782 1 0.5 0.722222222222222 0.861111111111111 1 
-4 10 14 15 13 
-p 0.130190205264702 1 0 0.444444444444444 0.722222222222222 1 
-4 1 14 15 8 
-p 0.153770329500848 1 0 0.444444444444444 0.722222222222222 1 
-6 13 16 17 18 19 1 
-p 0.130190205264702 1 0 0.1215 0.278092130347508 0.521092130347508 0.760546065173754 1 
-6 13 14 15 16 17 5 
-p 0.154344781515982 1 0 0.1215 0.278092130347508 0.521092130347508 0.760546065173754 1 
-4 1 3 4 2 
-p 0.154344781515982 1 0.5 0.722222222222222 0.861111111111111 1 
-4 16 17 18 15 
-p 0.244985961736207 1 0.5 0.722222222222222 0.861111111111111 1 
-9 2 6 7 8 9 10 11 12 5 
-p 0.154344781515982 1 0.5 0.575 0.65 0.725 0.7925 0.85325 0.914 0.957 1 
-9 16 17 18 19 20 21 22 23 8 
-p 0.296600035187744 1 0.5 0.575 0.65 0.725 0.7925 0.85325 0.914 0.957 1 
-4 1 3 4 2 
-p 0.110460701146601 1 0 0.222222222222222 0.361111111111111 0.5 
-4 5 6 7 1 
-p 0.111788063006744 1 0.5 0.722222222222222 0.861111111111111 1 
-4 2 7 8 9 
-p 0.110460699746601 1 0.5 0.722222222222222 0.861111111111111 1 
-2 8 14 
-p 1e-005 1 0 1 
-4 26 27 28 2 
-p 0.134576070876016 1 0 0.444444444444444 0.722222222222222 1 
-4 14 15 16 11 
-p 0.148705354563124 1 0 0.444444444444444 0.722222222222222 1 
-7 9 11 12 13 14 15 10 
-p 0.110460699746601 1 0 0.166666666666667 0.333333333333333 0.5 0.666666666666667 0.833333333333333 1 
-7 1 14 15 16 17 18 8 
-p 0.134096142399155 1 0 0.166666666666667 0.333333333333333 0.5 0.666666666666667 0.833333333333333 1 
-4 2 6 7 5 
-p 0.110460701146601 1 0 1.23594956888889 2.00841804944444 2.78088653 
-4 11 12 13 8 
-p 0.148705354563124 1 0 1.23594956888889 2.00841804944444 2.78088653 
-7 5 9 10 11 12 13 8 
-p 0.110460701146601 1 0 0.166666666666667 0.333333333333333 0.5 0.666666666666667 0.833333333333333 1 
-7 8 9 10 11 12 13 5 
-p 0.128036121388388 1 0 0.166666666666667 0.333333333333333 0.5 0.666666666666667 0.833333333333333 1 
-4 1 3 4 2 
-p 0.119407219515535 1 0.5 0.722222222222222 0.861111111111111 1 
-4 22 23 24 19 
-p 0.14269862349782 1 0.5 0.722222222222222 0.861111111111111 1 
-4 2 6 7 5 
-p 0.128036121388388 1 0 0.444444444444444 0.722222222222222 1 
-4 15 16 17 10 
-p 0.153211880572423 1 0 0.444444444444444 0.722222222222222 1 
-4 8 14 15 1 
-p 0.128036121388388 1 2.78088653 4.01683610333333 4.78930458666667 5.56177307 
-4 8 9 10 5 
-p 0.148705354563124 1 2.78088653 4.01683610333333 4.78930458666667 5.56177307 
-4 5 6 7 2 
-p 0.128034097196292 1 0 1.23594956888889 2.00841804944444 2.78088653 
-4 2 6 7 5 
-p 0.13130102699646 1 0 0.738131986666667 1.19946447833333 1.66079697 
-4 4 25 26 22 
-p 0.14269862349782 1 0 0.738131986666667 1.19946447833333 1.66079697 
-4 1 3 4 2 
-p 0.119407269523537 1 0 0.222222222222222 0.361111111111111 0.5 
-4 1 2 3 4 
-p 0.14269862349782 1 0 0.222222222222222 0.361111111111111 0.5 
-12 5 9 10 11 12 13 14 15 16 17 18 8 
-p 0.14269862349782 1 0 0.170354169252 0.340708338504 0.4940270908308 0.63201396792492 0.77000084501904 0.90798772211316 1.04597459920728 1.1839614763014 1.32194835339552 1.43991413669776 1.55787992 
-12 1 20 21 22 23 24 25 26 27 28 29 17 
-p 0.245895527779409 1 0 0.170354169252 0.340708338504 0.4940270908308 0.63201396792492 0.77000084501904 0.90798772211316 1.04597459920728 1.1839614763014 1.32194835339552 1.43991413669776 1.55787992 
-4 8 20 21 19 
-p 0.124154485897017 1 0 0.222222222222222 0.361111111111111 0.5 
-4 1 18 19 15 
-p 0.13019269349282 1 0 0.222222222222222 0.361111111111111 0.5 
-4 1 3 4 2 
-p 0.245895527779409 1 0 0.333333333333333 0.666666666666667 1 
-4 5 6 7 1 
-p 0.296600035187744 1 0 0.333333333333333 0.666666666666667 1 
-13 2 6 7 8 9 10 11 12 13 14 15 16 5 
-p 0.245895527779409 1 0 0.169190368333333 0.338380736666667 0.507571105 0.676761473333333 0.845951841666667 1.01514221 1.18433257833333 1.35352294666667 1.522713315 1.69190368333333 1.86109405166667 2.03028442 
-13 5 6 7 8 9 10 11 12 13 14 15 16 1 
-p 0.295074613335291 1 0 0.169190368333333 0.338380736666667 0.507571105 0.676761473333333 0.845951841666667 1.01514221 1.18433257833333 1.35352294666667 1.522713315 1.69190368333333 1.86109405166667 2.03028442 
-4 5 18 19 17 
-p 0.245895527779409 1 0 0.444444444444444 0.722222222222222 1 
-4 10 11 12 1 
-p 0.296600034587744 1 0 0.444444444444444 0.722222222222222 1 
-4 1 3 4 2 
-p 0.269370666394419 1 0 0.444444444444444 0.722222222222222 1 
-4 10 13 14 15 
-p 0.296600034587744 1 0 0.444444444444444 0.722222222222222 1 
-4 5 18 19 17 
-p 0.269370666394419 1 0 0.444444444444444 0.722222222222222 1 
-4 1 2 3 4 
-p 0.296600035187744 1 0 0.444444444444444 0.722222222222222 1 
-15 17 20 21 22 23 24 25 26 27 28 29 30 31 32 2 
-p 0.269370666394419 1 0 0.306438354166667 0.612876708333333 0.9193150625 1.19510958125 1.443324648125 1.691539715 1.939754781875 2.18796984875 2.436184915625 2.6843999825 2.932615049375 3.18083011625 3.429045183125 3.67726025 
-15 2 19 20 21 22 23 24 25 26 27 28 29 30 31 18 
-p 0.324529977020346 1 0 0.306438354166667 0.612876708333333 0.9193150625 1.19510958125 1.443324648125 1.691539715 1.939754781875 2.18796984875 2.436184915625 2.6843999825 2.932615049375 3.18083011625 3.429045183125 3.67726025 
-4 16 25 26 24 
-p 0.296600035187744 1 0 0.444444444444444 0.722222222222222 1 
-4 1 2 3 4 
-p 0.355920021125293 1 0 0.444444444444444 0.722222222222222 1 
-13 24 27 28 29 30 31 32 33 34 35 36 37 4 
-p 0.296600035187744 1 7.7471244 8.05512937166667 8.36313434333333 8.671139315 8.97914428666666 9.28714925833333 9.59515423 9.90315920166666 10.2111641733333 10.519169145 10.8271741166667 11.1351790883333 11.44318406 
-13 49 50 51 52 53 54 55 56 57 58 59 60 48 
-p 0.410646876704678 1 7.7471244 8.05512937166667 8.36313434333333 8.671139315 8.97914428666666 9.28714925833333 9.59515423 9.90315920166666 10.2111641733333 10.519169145 10.8271741166667 11.1351790883333 11.44318406 
-15 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 
-p 0.312813320257834 1 0 0.0924800408333333 0.184960081666667 0.2774401225 0.369920163333333 0.453152200083333 0.528061033158333 0.602969866233333 0.677878699308334 0.752787532383334 0.827696365458334 0.902605198533334 0.996564921280388 1.05316270564019 1.10976049 
-15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 
-p 0.309703803869768 1 0 0.0924800408333333 0.184960081666667 0.2774401225 0.369920163333333 0.453152200083333 0.528061033158333 0.602969866233333 0.677878699308334 0.752787532383334 0.827696365458334 0.902605198533334 0.996564921280388 1.05316270564019 1.10976049 
-4 5 20 21 19 
-p 0.312813320257834 1 0 0.444444444444444 0.722222222222222 1 
-4 29 30 31 16 
-p 0.36131801712756 1 0 0.444444444444444 0.722222222222222 1 
-16 4 22 23 24 25 26 27 28 29 30 31 32 33 34 35 19 
-p 0.312813399155366 1 3.65967968 4.00030007333333 4.30685842733333 4.58276094593333 4.85866346453333 5.13456598313333 5.41046850173333 5.68637102033333 5.96227353893333 6.23817605753333 6.51407857613333 6.78998109473333 7.06588361333333 7.34178613193333 7.54445526596666 7.7471244 
-16 49 61 62 63 64 65 66 67 68 69 70 71 72 73 74 14 
-p 0.410646876704678 1 3.65967968 4.00030007333333 4.30685842733333 4.58276094593333 4.85866346453333 5.13456598313333 5.41046850173333 5.68637102033333 5.96227353893333 6.23817605753333 6.51407857613333 6.78998109473333 7.06588361333333 7.34178613193333 7.54445526596666 7.7471244 
-4 1 3 4 2 
-p 0.154332494323399 1 0.5 0.722222222222222 0.861111111111111 1 
-6 10 11 12 13 14 2 
-p 0.13019269349282 1 0 0.1215 0.278423389270726 0.521423389270726 0.760711694635363 1 
-9 2 19 20 21 22 23 24 25 14 
-p 0.154332494323399 1 0.5 0.575 0.65 0.725 0.7925 0.85325 0.914 0.957 1 
-9 29 32 33 34 35 36 37 38 9 
-p 0.296600034587744 1 0.5 0.575 0.65 0.725 0.7925 0.85325 0.914 0.957 1 
-9 1 3 4 5 6 7 8 9 2 
-p 0.13019269349282 1 0 0.15 0.285 0.4065 0.528 0.6495 0.771 0.8855 1 
-9 1 2 3 4 5 6 7 8 9 
-p 0.296600034587744 1 0 0.15 0.285 0.4065 0.528 0.6495 0.771 0.8855 1 
-14 15 17 18 19 20 21 22 23 24 25 26 27 28 16 
-p 0.296600034587744 1 0 0.304973306666667 0.609946613333333 0.91491992 1.21989322666667 1.52486653333333 1.82983984 2.13481314666667 2.43978645333333 2.74475976 3.04973306666667 3.32420904266667 3.49194436133333 3.65967968 
-14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
-p 0.410646876704678 1 0 0.304973306666667 0.609946613333333 0.91491992 1.21989322666667 1.52486653333333 1.82983984 2.13481314666667 2.43978645333333 2.74475976 3.04973306666667 3.32420904266667 3.49194436133333 3.65967968 
-2 18 3 
-p 0.269643324107369 1 0 1 
-9 15 17 18 19 20 21 22 23 16 
-p 0.410646876704678 1 1.23049347 1.32277327333333 1.40582509633333 1.48057173703333 1.55531837773333 1.63006501843333 1.70481165913333 1.74449197456667 1.78417229 
-9 3 4 5 6 7 8 9 10 1 
-p 1.29421084167171 1 1.23049347 1.32277327333333 1.40582509633333 1.48057173703333 1.55531837773333 1.63006501843333 1.70481165913333 1.74449197456667 1.78417229 
-17 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 16 
-p 0.410646876704678 1 0.55367874 0.60443984475 0.6552009495 0.700885943775 0.7420024386225 0.78311893347 0.8242354283175 0.865351923164999 0.906468418012499 0.947584912859999 0.988701407707499 1.029817902555 1.0709343974025 1.11205089225 1.1531673870975 1.19183042854875 1.23049347 
-17 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 
-p 1.29421084167171 1 0.55367874 0.60443984475 0.6552009495 0.700885943775 0.7420024386225 0.78311893347 0.8242354283175 0.865351923164999 0.906468418012499 0.947584912859999 0.988701407707499 1.029817902555 1.0709343974025 1.11205089225 1.1531673870975 1.19183042854875 1.23049347 
-9 24 41 42 43 44 45 46 47 40 
-p 0.410646876704678 1 0 0.06727196691 0.13454393382 0.20181590073 0.26908786764 0.33635983455 0.40363180146 0.47865527073 0.55367874 
-9 65 66 67 68 69 70 71 72 64 
-p 1.29421084167171 1 0 0.06727196691 0.13454393382 0.20181590073 0.26908786764 0.33635983455 0.40363180146 0.47865527073 0.55367874 
-2 1 2 
-p 0.269643324107369 1 0 1 
-4 9 10 11 8 
-p 0.48746050605313 1 8.022e-005 0.444524664444444 0.722302442222222 1.00008022 
-4 2 6 7 5 
-p 0.993553093791236 1 0.00020743 20.5537959188889 33.3997887244444 46.24578153 
-4 1 11 12 8 
-p 1.13380302101275 1 0.00020743 20.5537959188889 33.3997887244444 46.24578153 
-4 1 19 20 18 
-p 0.084726111024273 1 8.022e-005 0.444524664444444 0.722302442222222 1.00008022 
-4 8 11 12 1 
-p 0.993553093791236 1 4.95e-005 4.75635840666667 7.72905147333333 10.70174454 
-4 4 11 12 8 
-p 1.13380315041275 1 4.95e-005 4.75635840666667 7.72905147333333 10.70174454 
-4 1 3 4 2 
-p 0.050748815742574 1 0.00034374 0.444788184444444 0.722565962222222 1.00034374 
-4 8 9 10 5 
-p 0.108991320200818 1 0.00034374 0.444788184444444 0.722565962222222 1.00034374 
-14 2 6 7 8 9 10 11 12 13 14 15 16 17 5 
-p 0.0847263287280665 1 5.799e-005 0.0203961823242634 0.0387005554161004 0.0551744911987537 0.0716484269814071 0.0933408333781089 0.118051737052089 0.150987683176571 0.200409490524531 0.274542201546471 0.385741268079381 0.552539867878747 0.776298928939373 1.00005799 
-14 14 15 16 17 18 19 20 21 22 23 24 25 26 13 
-p 0.397147393887498 1 5.799e-005 0.0203961823242634 0.0387005554161004 0.0551744911987537 0.0716484269814071 0.0933408333781089 0.118051737052089 0.150987683176571 0.200409490524531 0.274542201546471 0.385741268079381 0.552539867878747 0.776298928939373 1.00005799 
-2 5 18 
-p 0.071013893456975 1 0 1 
-2 1 6 
-p 0.0892442312388724 1 0 1 
-4 1 3 4 2 
-p 0.0892442312388724 1 6.281e-005 0.444507254444444 0.722285032222222 1.00006281 
-4 8 9 10 5 
-p 0.371167894061585 1 6.281e-005 0.444507254444444 0.722285032222222 1.00006281 
-2 2 5 
-p 1e-005 1 0 1 
-4 5 7 8 6 
-p 0.0892443514709342 1 5.543e-005 0.444499874444444 0.722277652222222 1.00005543 
-4 1 2 3 4 
-p 0.410523519930905 1 5.543e-005 0.444499874444444 0.722277652222222 1.00005543 
-4 1 6 7 5 
-p 0.993554176191288 1 3.88e-005 3.59718024888889 5.84539365444444 8.09360706 
-4 5 6 7 2 
-p 1.16127753697519 1 3.88e-005 3.59718024888889 5.84539365444444 8.09360706 
-4 3 4 5 1 
-p 0.491832010960765 1 5.543e-005 0.444499874444444 0.722277652222222 1.00005543 
-4 3 4 5 1 
-p 0.491737079556256 1 6.281e-005 0.444507254444444 0.722285032222222 1.00006281 
-2 8 1 
-p 0.993558382591488 1 3.88e-005 8.09360706 
-2 13 2 
-p 1.15618494809832 1 3.88e-005 8.09360706 
-15 87 88 89 90 91 92 93 94 95 96 97 98 99 100 86 
-p 0.487616129060521 1 5.799e-005 0.00759597456829301 0.015133959136586 0.022671943704879 0.030209928273172 0.0402605743642294 0.0553365435008154 0.0779504972056945 0.111871427763013 0.162752823598991 0.239074917352958 0.353558057983908 0.525282768930333 0.762670379465166 1.00005799 
-4 14 27 28 1 
-p 0.993559351491534 1 0.00020743 20.5537959188889 33.3997887244444 46.24578153 
-4 5 6 7 2 
-p 1.15970801397121 1 0.00020743 20.5537959188889 33.3997887244444 46.24578153 
-4 1 3 4 2 
-p 0.116123231090771 1 0.00034374 0.444788184444444 0.722565962222222 1.00034374 
-4 3 4 5 2 
-p 0.479195312360554 1 0.00034374 0.444788184444444 0.722565962222222 1.00034374 
-2 1 2 
-p 0.479195312360554 1 0.48181163 12.06882334 
-2 4 87 
-p 0.487616129060521 1 0.48181163 12.06882334 
-2 3 6 
-p 0.479195312360554 1 0.19391992 2.76255331 
-2 8 5 
-p 0.48746050605313 1 0.19391992 2.76255331 
-4 6 8 9 7 
-p 0.0126451864386091 1 0 0.04040404 0.065656565 0.09090909 
-4 41 42 43 38 
-p 0.0907182185186287 1 0 0.04040404 0.065656565 0.09090909 
-4 7 11 12 10 
-p 0.0100141437385746 1 0.09090909 0.0992313706870772 0.1044327961165 0.109634221545924 
-4 38 39 40 35 
-p 0.0830761196650173 1 0.09090909 0.0992313706870772 0.1044327961165 0.109634221545924 
-4 10 14 15 13 
-p 0.0131211764058463 1 0.109634221545924 0.141715980858847 0.161767080429423 0.18181818 
-4 35 36 37 34 
-p 0.0912033285610868 1 0.109634221545924 0.141715980858847 0.161767080429423 0.18181818 
-4 16 17 18 13 
-p 0.0100141437385746 1 0.6 0.61488194559564 0.624183161592915 0.633484377590191 
-4 29 32 33 34 
-p 0.0818275746163607 1 0.6 0.61488194559564 0.624183161592915 0.633484377590191 
-4 16 20 21 19 
-p 0.0282641106476433 1 0.27272727 0.31313131 0.338383835 0.36363636 
-4 29 30 31 28 
-p 0.101768141656819 1 0.27272727 0.31313131 0.338383835 0.36363636 
-4 22 23 24 19 
-p 0.0123430858112961 1 0.48389543156306 0.498673699188483 0.507910116454372 0.517146533720261 
-4 25 26 27 28 
-p 0.0901851416798969 1 0.48389543156306 0.498673699188483 0.507910116454372 0.517146533720261 
-4 25 26 27 22 
-p 0.0100141437385746 1 0.470926189373896 0.476690297013524 0.480292864288292 0.48389543156306 
-4 20 23 24 25 
-p 0.0826238169549619 1 0.470926189373896 0.476690297013524 0.480292864288292 0.48389543156306 
-4 25 29 30 28 
-p 0.0174479043018643 1 0.54545455 0.568931126274067 0.583603986445359 0.598276846616651 
-4 20 21 22 19 
-p 0.0954512381089906 1 0.54545455 0.568931126274067 0.583603986445359 0.598276846616651 
-4 31 32 33 28 
-p 0.0145366596294501 1 0.384100626478303 0.391167014710168 0.395583507355084 0.4 
-4 14 17 18 19 
-p 0.0924537686079844 1 0.384100626478303 0.391167014710168 0.395583507355084 0.4 
-4 31 35 36 34 
-p 0.0208727907440547 1 0.63636364 0.67676768 0.702020205 0.72727273 
-4 14 15 16 11 
-p 0.0986670460147735 1 0.63636364 0.67676768 0.702020205 0.72727273 
-4 34 38 39 37 
-p 0.0234240329310566 1 0.72727273 0.76767677 0.792929295 0.81818182 
-4 11 12 13 10 
-p 0.101260543756161 1 0.72727273 0.76767677 0.792929295 0.81818182 
-4 40 41 42 37 
-p 0.024253989995475 1 0.274729071771431 0.295540747580451 0.308548044961088 0.321555342341725 
-4 7 8 9 10 
-p 0.102059045339183 1 0.274729071771431 0.295540747580451 0.308548044961088 0.321555342341725 
-4 43 44 45 40 
-p 0.0298394754897539 1 0.2 0.233212920787303 0.253970996279367 0.274729071771431 
-4 1 5 6 7 
-p 0.10782216894249 1 0.2 0.233212920787303 0.253970996279367 0.274729071771431 
-4 43 46 47 1 
-p 0.0100141437385746 1 0.983770113025408 0.990983396125227 0.995491698062613 1 
-4 1 2 3 4 
-p 0.0866114516325893 1 0.983770113025408 0.990983396125227 0.995491698062613 1 
-4 41 45 46 44 
-p 0.535827250214245 1 0 0.262543302849429 0.426632867130322 0.590722431411216 
-4 5 6 7 1 
-p 0.48746050605313 1 0 0.262543302849429 0.426632867130322 0.590722431411216 
-4 44 48 49 47 
-p 0.371193265912547 1 0.590722431411216 0.772623573006231 0.886311786503115 1 
-4 1 2 3 4 
-p 0.48746050605313 1 0.590722431411216 0.772623573006231 0.886311786503115 1 
-4 10 13 14 2 
-p 0.491832010960765 1 0.66666667 0.814814816666667 0.907407408333333 1 
-4 10 11 12 7 
-p 0.491832010960765 1 0.408181166309187 0.597470239789688 0.715775910715 0.834081581640313 
-4 53 57 58 56 
-p 0.19353881501188 1 0.834081581640313 0.907823100911285 0.953911550455642 1 
-4 7 8 9 6 
-p 0.491832010960765 1 0.834081581640313 0.907823100911285 0.953911550455642 1 
-2 56 59 
-p 1.1635634912663 1 0 0.22601628 
-2 114 108 
-p 1.29421084167171 1 0 0.22601628 
-2 63 64 
-p 1.29421084167171 1 0 1 
-2 17 1 
-p 1.37624017537639 1 0 1 
-2 65 4 
-p 1.29421084167171 1 0.69078273 1 
-2 223 220 
-p 1.29421084167171 1 0.69078273 1 
-4 1 3 4 2 
-p 0.0102024340099068 1 0 0.0162441969550431 0.026396820051945 0.0365494431488469 
-4 1 96 97 93 
-p 0.139973228375296 1 0 0.0162441969550431 0.026396820051945 0.0365494431488469 
-4 2 6 7 5 
-p 0.00719256608931236 1 0.0365494431488469 0.0479879248699859 0.0551369759456978 0.0622860270214097 
-4 93 94 95 90 
-p 0.136874150683582 1 0.0365494431488469 0.0479879248699859 0.0551369759456978 0.0622860270214097 
-4 5 9 10 8 
-p 0.0158877696157515 1 0.0622860270214097 0.0901589039007832 0.107579451950392 0.125 
-4 90 91 92 89 
-p 0.145625993260439 1 0.0622860270214097 0.0901589039007832 0.107579451950392 0.125 
-4 11 12 13 8 
-p 0.012811812915812 1 0.80952381 0.830687832222222 0.843915346111111 0.85714286 
-4 86 87 88 89 
-p 0.142908047116627 1 0.80952381 0.830687832222222 0.843915346111111 0.85714286 
-4 14 15 16 11 
-p 0.0131649358728723 1 0.76190476 0.783068782222222 0.796296296111111 0.80952381 
-4 83 84 85 86 
-p 0.142955221294265 1 0.76190476 0.783068782222222 0.796296296111111 0.80952381 
-4 17 18 19 14 
-p 0.0129058892818563 1 0.71428571 0.735449732222222 0.748677246111111 0.76190476 
-4 80 81 82 83 
-p 0.142648894620346 1 0.71428571 0.735449732222222 0.748677246111111 0.76190476 
-4 20 21 22 17 
-p 0.0240656147159754 1 0.66666667 0.687830687777778 0.701058198888889 0.71428571 
-4 77 78 79 80 
-p 0.154165224242568 1 0.66666667 0.687830687777778 0.701058198888889 0.71428571 
-4 23 24 25 20 
-p 0.0516856684436831 1 0.61904762 0.640211642222222 0.653439156111111 0.66666667 
-4 74 75 76 77 
-p 0.181740501335652 1 0.61904762 0.640211642222222 0.653439156111111 0.66666667 
-4 26 27 28 23 
-p 0.0176969578995838 1 0.586390813604534 0.600904949780297 0.609976284890148 0.61904762 
-4 71 72 73 74 
-p 0.147875653149214 1 0.586390813604534 0.600904949780297 0.609976284890148 0.61904762 
-4 29 30 31 26 
-p 0.0129566826430349 1 0.57142857 0.57807845604646 0.582234634825497 0.586390813604534 
-4 68 69 70 71 
-p 0.143138347604315 1 0.57142857 0.57807845604646 0.582234634825497 0.586390813604534 
-4 32 33 34 29 
-p 0.0309178693073783 1 0.52380952 0.544973542222222 0.558201056111111 0.57142857 
-4 65 66 67 68 
-p 0.160915355289499 1 0.52380952 0.544973542222222 0.558201056111111 0.57142857 
-4 35 36 37 32 
-p 0.032717098436656 1 0.485827660893864 0.502708487163258 0.513259003581629 0.52380952 
-4 62 63 64 65 
-p 0.162793586009717 1 0.485827660893864 0.502708487163258 0.513259003581629 0.52380952 
-4 38 39 40 35 
-p 0.0132252381428934 1 0.47619048 0.480473671508384 0.483150666201124 0.485827660893864 
-4 59 60 61 62 
-p 0.143485238747357 1 0.47619048 0.480473671508384 0.483150666201124 0.485827660893864 
-4 41 42 43 38 
-p 0.0173727528111144 1 0.463237442359126 0.468994347977292 0.472592413988646 0.47619048 
-4 56 57 58 59 
-p 0.147625083719625 1 0.463237442359126 0.468994347977292 0.472592413988646 0.47619048 
-4 44 45 46 41 
-p 0.0284165077934162 1 0.42857143 0.443978546604056 0.453607994481591 0.463237442359126 
-4 53 54 55 56 
-p 0.158597700055786 1 0.42857143 0.443978546604056 0.453607994481591 0.463237442359126 
-4 47 48 49 44 
-p 0.155066143959365 1 0.38095238 0.402116402222222 0.415343916111111 0.42857143 
-4 50 51 52 53 
-p 0.285070167732101 1 0.38095238 0.402116402222222 0.415343916111111 0.42857143 
-4 50 51 52 47 
-p 0.0946171355284612 1 0.33333333 0.354497352222222 0.367724866111111 0.38095238 
-4 47 48 49 50 
-p 0.224617456245596 1 0.33333333 0.354497352222222 0.367724866111111 0.38095238 
-4 53 54 55 50 
-p 0.0066107385804159 1 0.306434487924756 0.318389528847087 0.325861429423543 0.33333333 
-4 44 45 46 47 
-p 0.136892657116145 1 0.306434487924756 0.318389528847087 0.325861429423543 0.33333333 
-4 56 57 58 53 
-p 0.00917079233790759 1 0.28571429 0.294923266855447 0.300678877390102 0.306434487924756 
-4 41 42 43 44 
-p 0.139450723554111 1 0.28571429 0.294923266855447 0.300678877390102 0.306434487924756 
-4 59 60 61 56 
-p 0.0790153552195648 1 0.23809524 0.259259262222222 0.272486776111111 0.28571429 
-4 38 39 40 41 
-p 0.209112928918533 1 0.23809524 0.259259262222222 0.272486776111111 0.28571429 
-4 62 63 64 59 
-p 0.0712640720644629 1 0.205761069651825 0.220131812028791 0.229113526014396 0.23809524 
-4 35 36 37 38 
-p 0.2013840503823 1 0.205761069651825 0.220131812028791 0.229113526014396 0.23809524 
-4 65 66 67 62 
-p 0.0470863886917556 1 0.19047619 0.197269469845255 0.20151526974854 0.205761069651825 
-4 32 33 34 35 
-p 0.177341855484047 1 0.19047619 0.197269469845255 0.20151526974854 0.205761069651825 
-4 68 69 70 65 
-p 0.0483599671907427 1 0.16442722501096 0.176004542783867 0.183240366391933 0.19047619 
-4 29 30 31 32 
-p 0.178611704610463 1 0.16442722501096 0.176004542783867 0.183240366391933 0.19047619 
-4 71 72 73 68 
-p 0.0225204236586315 1 0.14285714 0.152443844449316 0.158435534730138 0.16442722501096 
-4 26 27 28 29 
-p 0.152789892810286 1 0.14285714 0.152443844449316 0.158435534730138 0.16442722501096 
-4 74 75 76 71 
-p 0.158048850651588 1 0.0952381 0.116402117777778 0.129629628888889 0.14285714 
-4 21 24 25 26 
-p 0.288042623110037 1 0.0952381 0.116402117777778 0.129629628888889 0.14285714 
-4 74 78 79 77 
-p 0.226067424710723 1 0.916393161028006 0.947409028248872 0.966793945261913 0.986178862274954 
-4 21 22 23 18 
-p 0.356078068105251 1 0.916393161028006 0.947409028248872 0.966793945261913 0.986178862274954 
-4 77 81 82 80 
-p 0.0436015208786827 1 0.986178862274954 0.992321590152752 0.996160795076376 1 
-4 18 19 20 17 
-p 0.173830295687542 1 0.986178862274954 0.992321590152752 0.996160795076376 1 
-4 80 84 85 83 
-p 0.238780187870613 1 0 0.0800472771089406 0.130076825302028 0.180106373495116 
-4 23 24 25 22 
-p 0.368687641988891 1 0 0.0800472771089406 0.130076825302028 0.180106373495116 
-4 86 87 88 83 
-p 0.148542710287565 1 0.66666667 0.740740741111111 0.787037035555556 0.83333333 
-4 19 20 21 22 
-p 0.278470779086241 1 0.66666667 0.740740741111111 0.787037035555556 0.83333333 
-4 89 90 91 86 
-p 0.0593597856789316 1 0.5 0.574074075555556 0.620370372777778 0.66666667 
-4 16 17 18 19 
-p 0.189312894417765 1 0.5 0.574074075555556 0.620370372777778 0.66666667 
-4 92 93 94 89 
-p 0.0950407558434996 1 0.404244838774849 0.446802688208249 0.473401344104125 0.5 
-4 13 14 15 16 
-p 0.225130475221879 1 0.404244838774849 0.446802688208249 0.473401344104125 0.5 
-4 95 96 97 92 
-p 0.0520276445681425 1 0.33333333 0.364849556122155 0.384547197448502 0.404244838774849 
-4 10 11 12 13 
-p 0.182289090180814 1 0.33333333 0.364849556122155 0.384547197448502 0.404244838774849 
-4 98 99 100 95 
-p 0.0643348525940048 1 0.297103147762731 0.313205450979295 0.323269390489647 0.33333333 
-4 7 8 9 10 
-p 0.194592542695577 1 0.297103147762731 0.313205450979295 0.323269390489647 0.33333333 
-4 101 102 103 98 
-p 0.198723520355401 1 0.16666667 0.224638437894547 0.260870792828639 0.297103147762731 
-4 4 5 6 7 
-p 0.328728915617423 1 0.16666667 0.224638437894547 0.260870792828639 0.297103147762731 
-4 104 105 106 101 
-p 0.33368501608783 1 0 0.0740740755555555 0.120370372777778 0.16666667 
-4 1 2 3 4 
-p 0.463679967977529 1 0 0.0740740755555555 0.120370372777778 0.16666667 
-2 104 107 
-p 1.16356348726629 1 0 0.22601628 
-2 16 15 
-p 1.29385117113892 1 0 0.22601628 
-4 115 116 117 114 
-p 0.333684973238998 1 0.83333333 0.907407405555556 0.953703702777778 1 
-4 27 28 29 2 
-p 0.463679957269252 1 0.83333333 0.907407405555556 0.953703702777778 1 
-4 118 119 120 115 
-p 0.198723443402496 1 0.702896862227506 0.760868625681948 0.797100977840974 0.83333333 
-4 24 25 26 27 
-p 0.328728870023658 1 0.702896862227506 0.760868625681948 0.797100977840974 0.83333333 
-4 121 122 123 118 
-p 0.0643348105808322 1 0.66666667 0.682768977656669 0.692832919942088 0.702896862227506 
-4 21 22 23 24 
-p 0.194592548760773 1 0.66666667 0.682768977656669 0.692832919942088 0.702896862227506 
-4 124 125 126 121 
-p 0.0520275907081086 1 0.59575517380927 0.627271394338483 0.646969032169242 0.66666667 
-4 18 19 20 21 
-p 0.182289084030003 1 0.59575517380927 0.627271394338483 0.646969032169242 0.66666667 
-4 127 128 129 124 
-p 0.0950407922439403 1 0.5 0.542557855026342 0.569156514417806 0.59575517380927 
-4 15 16 17 18 
-p 0.225130469245067 1 0.5 0.542557855026342 0.569156514417806 0.59575517380927 
-4 130 131 132 127 
-p 0.0593598226920847 1 0.33333333 0.407407405555556 0.453703702777778 0.5 
-4 12 13 14 15 
-p 0.189312890373394 1 0.33333333 0.407407405555556 0.453703702777778 0.5 
-4 133 134 135 130 
-p 0.148542739809493 1 0.16666667 0.240740741111111 0.287037035555556 0.33333333 
-4 7 10 11 12 
-p 0.278470770865577 1 0.16666667 0.240740741111111 0.287037035555556 0.33333333 
-4 133 137 138 136 
-p 0.238780122918066 1 0.819893620897672 0.899940900498707 0.949970450249353 1 
-4 7 8 9 6 
-p 0.368687609368394 1 0.819893620897672 0.899940900498707 0.949970450249353 1 
-4 139 140 141 136 
-p 0.0203810482435628 1 0.95238095 0.973544972222222 0.986772486111111 1 
-4 82 83 84 85 
-p 0.150658498666575 1 0.95238095 0.973544972222222 0.986772486111111 1 
-4 142 143 144 139 
-p 0.106316121925179 1 0.929879242695092 0.939880001497273 0.946130475748637 0.95238095 
-4 77 80 81 82 
-p 0.236594447496594 1 0.929879242695092 0.939880001497273 0.946130475748637 0.95238095 
-4 142 146 147 145 
-p 0.131294887429856 1 0.125 0.148192001327254 0.162687002156788 0.177182002986322 
-4 77 78 79 76 
-p 0.261443206217911 1 0.125 0.148192001327254 0.162687002156788 0.177182002986322 
-4 148 149 150 145 
-p 0.157479484103826 1 0.85714286 0.878306877777778 0.891534388888889 0.9047619 
-4 73 74 75 76 
-p 0.287484095373187 1 0.85714286 0.878306877777778 0.891534388888889 0.9047619 
-4 151 152 153 148 
-p 0.0786145930747196 1 0.80952381 0.830687832222222 0.843915346111111 0.85714286 
-4 70 71 72 73 
-p 0.208682081682716 1 0.80952381 0.830687832222222 0.843915346111111 0.85714286 
-4 154 155 156 151 
-p 0.0154852226819401 1 0.804942507297722 0.806978641832068 0.808251225916034 0.80952381 
-4 67 68 69 70 
-p 0.145762397227318 1 0.804942507297722 0.806978641832068 0.808251225916034 0.80952381 
-4 157 158 159 154 
-p 0.0945408909987144 1 0.76190476 0.781032647687876 0.792987577492799 0.804942507297722 
-4 64 65 66 67 
-p 0.224593593898088 1 0.76190476 0.781032647687876 0.792987577492799 0.804942507297722 
-4 160 161 162 157 
-p 0.0866176631184359 1 0.71428571 0.735449732222222 0.748677246111111 0.76190476 
-4 61 62 63 64 
-p 0.216648713372557 1 0.71428571 0.735449732222222 0.748677246111111 0.76190476 
-4 163 164 165 160 
-p 0.0105565828686949 1 0.688716234519205 0.700080445844003 0.707183077922002 0.71428571 
-4 58 59 60 61 
-p 0.140830255173302 1 0.688716234519205 0.700080445844003 0.707183077922002 0.71428571 
-4 166 167 168 163 
-p 0.00909716365124424 1 0.66666667 0.67646647645298 0.682591355486093 0.688716234519205 
-4 55 56 57 58 
-p 0.139378346019285 1 0.66666667 0.67646647645298 0.682591355486093 0.688716234519205 
-4 169 170 171 166 
-p 0.0979604971496308 1 0.61904762 0.640211642222222 0.653439156111111 0.66666667 
-4 50 53 54 55 
-p 0.228168576880219 1 0.61904762 0.640211642222222 0.653439156111111 0.66666667 
-4 169 173 174 172 
-p 0.154416086472857 1 0.406675816552983 0.439940151054413 0.460730360117807 0.4815205691812 
-4 50 51 52 49 
-p 0.284409917969825 1 0.406675816552983 0.439940151054413 0.460730360117807 0.4815205691812 
-4 175 176 177 172 
-p 0.0457616508821367 1 0.52380952 0.544973542222222 0.558201056111111 0.57142857 
-4 46 47 48 49 
-p 0.175755097932461 1 0.52380952 0.544973542222222 0.558201056111111 0.57142857 
-4 178 179 180 175 
-p 0.00473056757536767 1 0.520588390320385 0.522020003511325 0.522914761755662 0.52380952 
-4 43 44 45 46 
-p 0.135014098771924 1 0.520588390320385 0.522020003511325 0.522914761755662 0.52380952 
-4 181 182 183 178 
-p 0.0408825133547353 1 0.47619048 0.495922884586838 0.508255637453611 0.520588390320385 
-4 40 41 42 43 
-p 0.171087993171618 1 0.47619048 0.495922884586838 0.508255637453611 0.520588390320385 
-4 184 185 186 181 
-p 0.0208526534721344 1 0.439226064907278 0.455654693837377 0.465922586918688 0.47619048 
-4 37 38 39 40 
-p 0.151058000508972 1 0.439226064907278 0.455654693837377 0.465922586918688 0.47619048 
-4 187 188 189 184 
-p 0.00977064619936385 1 0.42857143 0.433306823292123 0.436266444099701 0.439226064907278 
-4 34 35 36 37 
-p 0.140028580180301 1 0.42857143 0.433306823292123 0.436266444099701 0.439226064907278 
-4 190 191 192 187 
-p 0.020215307853185 1 0.400518874948611 0.412986677193673 0.420779053596836 0.42857143 
-4 31 32 33 34 
-p 0.150455967263287 1 0.400518874948611 0.412986677193673 0.420779053596836 0.42857143 
-4 193 194 195 190 
-p 0.0101913429976726 1 0.38095238 0.389648599977161 0.395083737462886 0.400518874948611 
-4 28 29 30 31 
-p 0.140437329977215 1 0.38095238 0.389648599977161 0.395083737462886 0.400518874948611 
-4 196 197 198 193 
-p 0.0514490945944431 1 0.33333333 0.354497352222222 0.367724866111111 0.38095238 
-4 25 26 27 28 
-p 0.181474678533149 1 0.33333333 0.354497352222222 0.367724866111111 0.38095238 
-4 199 200 201 196 
-p 0.0240748154949245 1 0.28571429 0.306878307777778 0.320105818888889 0.33333333 
-4 22 23 24 25 
-p 0.154039614728706 1 0.28571429 0.306878307777778 0.320105818888889 0.33333333 
-4 202 203 204 199 
-p 0.00953121483394881 1 0.23809524 0.259259262222222 0.272486776111111 0.28571429 
-4 19 20 21 22 
-p 0.139722452403843 1 0.23809524 0.259259262222222 0.272486776111111 0.28571429 
-4 205 206 207 202 
-p 0.00935291145642339 1 0.205967571246725 0.220246535137069 0.229170887568535 0.23809524 
-4 14 17 18 19 
-p 0.139551383450078 1 0.205967571246725 0.220246535137069 0.229170887568535 0.23809524 
-4 205 209 210 208 
-p 0.0039727489325422 1 0.875 0.879738349805091 0.882699818433273 0.885661287061455 
-4 14 15 16 11 
-p 0.134203962368407 1 0.875 0.879738349805091 0.882699818433273 0.885661287061455 
-4 208 212 213 211 
-p 0.0152958108301195 1 0.885661287061455 0.903947005816603 0.915375580038571 0.926804154260539 
-4 11 12 13 8 
-p 0.145040560067364 1 0.885661287061455 0.903947005816603 0.915375580038571 0.926804154260539 
-4 211 215 216 214 
-p 0.0158385684514437 1 0.926804154260539 0.942982249792768 0.953093559500411 0.963204869208055 
-4 8 9 10 5 
-p 0.14554695168604 1 0.926804154260539 0.942982249792768 0.953093559500411 0.963204869208055 
-4 214 218 219 217 
-p 0.00713462697123868 1 0.963204869208055 0.969837674155422 0.973983177247527 0.978128680339632 
-4 5 6 7 1 
-p 0.136839207718983 1 0.963204869208055 0.969837674155422 0.973983177247527 0.978128680339632 
-4 217 221 222 220 
-p 0.0101272646043819 1 0.978128680339632 0.987849266855351 0.993924633427675 1 
-4 1 2 3 4 
-p 0.139934409862094 1 0.978128680339632 0.987849266855351 0.993924633427675 1 
-2 239 1 
-p 1.29421084167171 1 0.69078275 1 
-2 1 2 
-p 1.29421084167171 1 0.69078275 1 
-2 3 11 
-p 1.29421084167171 1 0 1 
-2 16 18 
-p 1.371690566742 1 0 1 
-4 16 18 19 17 
-p 0.193536381058084 1 0 0.0737400044246074 0.119827507189987 0.165915009955367 
-4 1 13 14 10 
-p 0.491832010960765 1 0 0.0737400044246074 0.119827507189987 0.165915009955367 
-4 10 11 12 7 
-p 0.491832010960765 1 0.165915009955367 0.355206139961675 0.473513096215617 0.59182005246956 
-4 6 8 9 7 
-p 0.491832010960765 1 0 0.148148146666667 0.240740738333333 0.33333333 
-4 23 27 28 26 
-p 0.371208910108275 1 0 0.18190896649819 0.295602070559559 0.409295174620928 
-4 2 10 11 7 
-p 0.48746050605313 1 0 0.18190896649819 0.295602070559559 0.409295174620928 
-4 26 30 31 29 
-p 0.535810994179935 1 0.409295174620928 0.671830652567182 0.835915326283591 1 
-4 7 8 9 6 
-p 0.48746050605313 1 0.409295174620928 0.671830652567182 0.835915326283591 1 
-4 32 33 34 29 
-p 0.0297091816694998 1 0.9 0.944444444444444 0.972222222222222 1 
-4 37 38 39 40 
-p 0.322963115142009 1 0.9 0.944444444444444 0.972222222222222 1 
-4 35 36 37 32 
-p 0.0297091816694998 1 0.880853970078994 0.889363316710552 0.894681658355276 0.9 
-4 32 35 36 37 
-p 0.314379016434775 1 0.880853970078994 0.889363316710552 0.894681658355276 0.9 
-4 35 39 40 38 
-p 0.0297091816694998 1 0.2 0.288888888888889 0.344444444444444 0.4 
-4 32 33 34 31 
-p 0.325375521832221 1 0.2 0.288888888888889 0.344444444444444 0.4 
-4 41 42 43 38 
-p 0.0391015526477439 1 0.7 0.744444444444444 0.772222222222222 0.8 
-4 26 29 30 31 
-p 0.335210119437592 1 0.7 0.744444444444444 0.772222222222222 0.8 
-4 41 45 46 44 
-p 0.0297091816694998 1 0.482462206547696 0.49538578078318 0.503463014680358 0.511540248577535 
-4 26 27 28 23 
-p 0.32042231619826 1 0.482462206547696 0.49538578078318 0.503463014680358 0.511540248577535 
-4 44 48 49 47 
-p 0.0297091816694998 1 0.511540248577535 0.519166608587072 0.523933083593033 0.528699558598993 
-4 23 24 25 22 
-p 0.315866023617048 1 0.511540248577535 0.519166608587072 0.523933083593033 0.528699558598993 
-4 50 51 52 47 
-p 0.0297091816694998 1 0.439635627177706 0.466464237320948 0.483232118660474 0.5 
-4 17 20 21 22 
-p 0.327619839327934 1 0.439635627177706 0.466464237320948 0.483232118660474 0.5 
-4 50 54 55 53 
-p 0.0297091816694998 1 0.6 0.606548760904639 0.610641736470038 0.614734712035438 
-4 17 18 19 16 
-p 0.323711313932535 1 0.6 0.606548760904639 0.610641736470038 0.614734712035438 
-4 56 57 58 53 
-p 0.0297091816694998 1 0.3 0.344444444444444 0.372222222222222 0.4 
-4 13 14 15 16 
-p 0.330400343804413 1 0.3 0.344444444444444 0.372222222222222 0.4 
-4 59 60 61 56 
-p 0.0297091816694998 1 0.2 0.244444444444444 0.272222222222222 0.3 
-4 8 11 12 13 
-p 0.33298724365516 1 0.2 0.244444444444444 0.272222222222222 0.3 
-4 59 63 64 62 
-p 0.0297091816694998 1 0.674965095271805 0.695140378051064 0.7077499297881 0.720359481525137 
-4 8 9 10 5 
-p 0.333731134626364 1 0.674965095271805 0.695140378051064 0.7077499297881 0.720359481525137 
-4 62 66 67 65 
-p 0.033371039475665 1 0.720359481525137 0.755755267513965 0.777877633756982 0.8 
-4 5 6 7 4 
-p 0.342829841077071 1 0.720359481525137 0.755755267513965 0.777877633756982 0.8 
-4 2 68 69 65 
-p 0.0297091816694998 1 0 0.00476194067140462 0.00773815359103251 0.0107143665106604 
-4 1 2 3 4 
-p 0.315076409053202 1 0 0.00476194067140462 0.00773815359103251 0.0107143665106604 
-2 9 4 
-p 0.48746050605313 1 0 2.49917007 
-2 1 2 
-p 0.538475210293698 1 0 2.49917007 
-2 3 6 
-p 0.491832010960765 1 0 1.72905437 
-2 1 2 
-p 0.565929082906187 1 0 1.72905437 
-2 3 6 
-p 0.491737079556256 1 0.01103422 1.98405473 
-2 86 85 
-p 0.553631726230648 1 0.01103422 1.98405473 
-2 1 2 
-p 0.491832010960765 1 0 1.72904906 
-2 1 27 
-p 0.564374454551346 1 0 1.72904906 
-4 2 4 5 3 
-p 0.491832010960765 1 5.543e-005 0.444499874444444 0.722277652222222 1.00005543 
-4 8 9 10 5 
-p 0.993554176191288 1 5.543e-005 0.444499874444444 0.722277652222222 1.00005543 
-2 3 6 
-p 0.491832010960765 1 0.17394647 1.82447971 
-2 1 2 
-p 0.53934960661273 1 0.17394647 1.82447971 
-2 23 26 
-p 0.491737079556256 1 0.01152171 2.07179401 
-2 17 3 
-p 0.553603573335566 1 0.01152171 2.07179401 
-4 26 28 29 27 
-p 0.491737079556256 1 6.281e-005 0.444507254444444 0.722285032222222 1.00006281 
-4 1 2 3 4 
-p 0.993558382591488 1 6.281e-005 0.444507254444444 0.722285032222222 1.00006281 
-2 1 5 
-p 0.993558382591488 1 3.88e-005 8.09360706 
-2 2 28 
-p 1.15846053203392 1 3.88e-005 8.09360706 
-4 3 4 5 2 
-p 0.0892442312388724 1 6.281e-005 0.444507254444444 0.722285032222222 1.00006281 
-4 6 9 10 4 
-p 0.993558382591487 1 3.88e-005 3.59718024888889 5.84539365444444 8.09360706 
-4 1 11 12 8 
-p 1.15845658953373 1 3.88e-005 3.59718024888889 5.84539365444444 8.09360706 
-2 1 2 
-p 1e-005 1 0 1 
-2 6 3 
-p 0.071013893456975 1 0 1 
-2 5 8 
-p 0.084726111024273 1 0 1 
-4 1 7 8 6 
-p 0.0892443514709342 1 5.543e-005 0.444499874444444 0.722277652222222 1.00005543 
-4 1 2 3 4 
-p 0.406877815604543 1 5.543e-005 0.444499874444444 0.722277652222222 1.00005543 
-4 1 3 4 2 
-p 0.050748815742574 1 0.00034374 0.444788184444444 0.722565962222222 1.00034374 
-4 5 8 9 10 
-p 0.111733763715085 1 0.00034374 0.444788184444444 0.722565962222222 1.00034374 
-4 1 6 7 5 
-p 0.084726111024273 1 8.022e-005 0.444524664444444 0.722302442222222 1.00008022 
-4 8 9 10 5 
-p 0.309785921122007 1 8.022e-005 0.444524664444444 0.722302442222222 1.00008022 
-14 2 9 10 11 12 13 14 15 16 17 18 19 20 8 
-p 0.0847263287321059 1 5.799e-005 0.0203961823247482 0.0387005554170216 0.0551744912000676 0.0716484269831136 0.0933408333803895 0.118051737054959 0.150987683180219 0.200409490529357 0.274542201553064 0.385741268088625 0.552539867891966 0.776298928945983 1.00005799 
-14 13 16 17 18 19 20 21 22 23 24 25 26 27 28 
-p 0.399889837401766 1 5.799e-005 0.0203961823247482 0.0387005554170216 0.0551744912000676 0.0716484269831136 0.0933408333803895 0.118051737054959 0.150987683180219 0.200409490529357 0.274542201553064 0.385741268088625 0.552539867891966 0.776298928945983 1.00005799 
-4 4 6 7 5 
-p 0.993554176191288 1 4.95e-005 4.75635840666667 7.72905147333333 10.70174454 
-4 5 6 7 1 
-p 1.17116468916678 1 4.95e-005 4.75635840666667 7.72905147333333 10.70174454 
-4 1 4 5 3 
-p 0.48746050605313 1 8.022e-005 0.444524664444444 0.722302442222222 1.00008022 
-4 8 11 12 2 
-p 0.993553093791236 1 0.00020743 20.5537959188889 33.3997887244444 46.24578153 
-4 5 6 7 1 
-p 1.14573287044676 1 0.00020743 20.5537959188889 33.3997887244444 46.24578153 
-4 1 3 4 2 
-p 0.11612348194347 1 0.00034374 0.444788184444444 0.722565962222222 1.00034374 
-4 41 42 43 44 
-p 0.479195314760554 1 0.00034374 0.444788184444444 0.722565962222222 1.00034374 
-4 10 11 12 2 
-p 0.99355275199122 1 0.00020743 20.5537959188889 33.3997887244444 46.24578153 
-4 13 14 15 1 
-p 1.11189992389557 1 0.00020743 20.5537959188889 33.3997887244444 46.24578153 
-15 2 4 5 6 7 8 9 10 11 12 13 14 15 16 3 
-p 0.487616129060521 1 5.799e-005 0.00759597456829301 0.015133959136586 0.022671943704879 0.030209928273172 0.0402605743642294 0.0553365435008154 0.0779504972056945 0.111871427763013 0.162752823598991 0.239074917352958 0.353558057983908 0.525282768930333 0.762670379465166 1.00005799 
-2 1 2 
-p 0.487616129060521 1 0.48200245 12.07364253 
-2 1 44 
-p 0.499995725765673 1 0.48200245 12.07364253 
-2 40 41 
-p 0.479195314760554 1 0.19391945 2.76255209 
-2 6 3 
-p 0.516794096330643 1 0.19391945 2.76255209 
-16 1 4 5 6 7 8 9 10 11 12 13 14 15 16 17 3 
-p 0.269643324107369 1 0 0.0833333333333333 0.166666666666667 0.241666666666667 0.309166666666667 0.376666666666666 0.444166666666666 0.511666666666666 0.579166666666666 0.646666666666666 0.714166666666666 0.781666666666666 0.849166666666666 0.916666666666666 0.958333333333333 1 
-16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
-p 1.29421084167171 1 0 0.0833333333333333 0.166666666666667 0.241666666666667 0.309166666666667 0.376666666666666 0.444166666666666 0.511666666666666 0.579166666666666 0.646666666666666 0.714166666666666 0.781666666666666 0.849166666666666 0.916666666666666 0.958333333333333 1 
-7 8 9 10 11 12 13 5 
-p 0.583442097712011 1 0 0.166666666666667 0.333333333333333 0.5 0.666666666666667 0.833333333333333 1 
-4 1 3 4 2 
-p 0.119318360526317 1 0 0.444444444444444 0.722222222222222 1 
-4 1 2 3 4 
-p 0.119318364162317 1 0 0.444444444444444 0.722222222222222 1 
-23 2 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 5 
-p 0.119318360526317 1 0 0.20308360905 0.385858857195 0.5503565805255 0.69840453152295 0.831647687420655 0.96489084331836 1.09813399921607 1.23137715511377 1.3512959954217 1.45922295169885 1.56714990797599 1.67507686425313 1.78300382053027 1.89093077680741 1.99885773308455 2.10678468936169 2.24371987282383 2.38942126379797 2.52055251567469 2.68773707533994 2.84819156766997 3.00864606 
-23 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 
-p 0.126714581540419 1 0 0.20308360905 0.385858857195 0.5503565805255 0.69840453152295 0.831647687420655 0.96489084331836 1.09813399921607 1.23137715511377 1.3512959954217 1.45922295169885 1.56714990797599 1.67507686425313 1.78300382053027 1.89093077680741 1.99885773308455 2.10678468936169 2.24371987282383 2.38942126379797 2.52055251567469 2.68773707533994 2.84819156766997 3.00864606 
-4 1 12 13 9 
-p 0.0530907785216762 1 0 0.444444444444444 0.722222222222222 1 
-4 1 3 4 2 
-p 0.102850929435156 1 0 0.444444444444444 0.722222222222222 1 
-4 1 2 3 4 
-p 0.110529385198731 1 0 0.444444444444444 0.722222222222222 1 
-4 5 28 29 27 
-p 0.102850929435156 1 0 0.444444444444444 0.722222222222222 1 
-4 17 18 19 11 
-p 0.110528116198682 1 0 0.444444444444444 0.722222222222222 1 
-7 3 9 10 11 12 13 1 
-p 0.0537059286378936 1 0.5 0.583333333333333 0.666666666666667 0.75 0.833333333333333 0.916666666666667 1 
-7 2 4 5 6 7 8 3 
-p 0.0537059286378936 1 0 0.0833333333333333 0.166666666666667 0.25 0.333333333333333 0.416666666666667 0.5 
-2 1 2 
-p 0.0537059286378936 1 0 1 
-2 1 8 
-p 0.0644410942697753 1 0 1 
-7 1 3 4 5 6 7 2 
-p 0.0537059286378936 1 0 0.0833333333333333 0.166666666666667 0.25 0.333333333333333 0.416666666666667 0.5 
-7 11 12 13 14 15 16 5 
-p 0.102850929435156 1 0 0.0833333333333333 0.166666666666667 0.25 0.333333333333333 0.416666666666667 0.5 
-7 2 9 10 11 12 13 8 
-p 0.0537059286378936 1 0.5 0.583333333333333 0.666666666666667 0.75 0.833333333333333 0.916666666666667 1 
-7 5 6 7 8 9 10 1 
-p 0.102850929435156 1 0.5 0.583333333333333 0.666666666666667 0.75 0.833333333333333 0.916666666666667 1 
-27 4 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 17 
-p 0.102850929435156 1 0 0.182497943835 0.3467460932865 0.49456942779285 0.627610428848565 0.747347329798709 0.867084230748852 0.986821131698996 1.09458434255412 1.19157123232374 1.28855812209336 1.38554501186297 1.48253190163259 1.57951879140221 1.67650568117182 1.77349257094144 1.87047946071105 1.96746635048067 2.06445324025029 2.1614401300199 2.28294164925907 2.41387395044806 2.53171302151814 2.64955209258823 2.80200579261216 2.90304358630608 3.00408138 
-27 18 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4 
-p 0.124035321023271 1 0 0.182497943835 0.3467460932865 0.49456942779285 0.627610428848565 0.747347329798709 0.867084230748852 0.986821131698996 1.09458434255412 1.19157123232374 1.28855812209336 1.38554501186297 1.48253190163259 1.57951879140221 1.67650568117182 1.77349257094144 1.87047946071105 1.96746635048067 2.06445324025029 2.1614401300199 2.28294164925907 2.41387395044806 2.53171302151814 2.64955209258823 2.80200579261216 2.90304358630608 3.00408138 
-4 3 4 5 2 
-p 0.0530907785216762 1 0 0.444444444444444 0.722222222222222 1 
-2 1 2 
-p 1e-005 1 0 1 
-2 14 17 
-p 0.622517224554979 1 0 55.31688457 
-2 1 27 
-p 0.623547928988935 1 0 55.31688457 
-4 17 19 20 18 
-p 0.0176293168373448 1 0 0.333333333333333 0.666666666666667 1 
-4 1 16 17 12 
-p 0.112215331329941 1 0 0.333333333333333 0.666666666666667 1 
-2 18 1 
-p 0.622517224554979 1 10.79509318 65.98696054 
-2 1 2 
-p 0.637818569109754 1 10.79509318 65.98696054 
-5 12 13 14 15 9 
-p 0.112215331329941 1 0 0.166666666666667 0.388888888888889 0.694444444444444 1 
-2 3 6 
-p 0.637818569109754 1 0 2.72494532 
-2 1 2 
-p 0.659847044807075 1 0 2.72494532 
-8 1 3 4 5 6 7 8 2 
-p 0.0179392128520661 1 0 0.10935 0.18906615 0.29841615 0.46244115 0.70847865 0.854239325 1 
-8 27 28 29 30 31 32 33 26 
-p 0.0887162302137796 1 0 0.10935 0.18906615 0.29841615 0.46244115 0.70847865 0.854239325 1 
-4 2 10 11 9 
-p 0.112215331329941 1 0 0.444444444444444 0.722222222222222 1 
-4 3 4 5 1 
-p 0.500365121766059 1 0 0.444444444444444 0.722222222222222 1 
-2 25 26 
-p 0.623547928988935 1 0.49271381 3.01761452 
-2 6 3 
-p 0.637219664481308 1 0.49271381 3.01761452 
-Surfaces 83
-9 1 1 0 0 3 4 6 35 4 32 25.9893209044264 1.24079115393441 1.41444155318237  1 25.9893209144264 1.2822751379048 1.36967410805603  0.97693039 25.9893209244264 1.3627299827262 1.27401077351226  0.93268382 25.9893209444264 1.47127512888182 1.11565706899086  0.87174635 25.9893209744264 1.58512328428931 0.880018332248626  0.80045415 25.9893210044264 1.66384068402819 0.618812053391994  0.73828835 25.9893210344265 1.70030219276002 0.337462372068602  0.68449316 25.9893210644265 1.6897855082605 0.0825492001808764  0.64415145 25.9893210844265 1.64816147328347 -0.137692002530019  0.61400143 25.9893211144265 1.57851686697552 -0.358006185714381  0.58719589 25.9893211344265 1.4795426112745 -0.574296813547634  0.56361201 25.9893211644265 1.34624978294343 -0.775165883678402  0.54384264 25.9893211844265 1.18120730410433 -0.954314886817523  0.52765158 25.9893211944265 0.991078565083704 -1.11361808489402  0.51420981 25.9893212144265 0.778331953498782 -1.24885322531734  0.5034512 25.9893212244265 0.54465051770951 -1.3478598540199  0.49594024 25.9893212344265 0.296990527996292 -1.40701193782948  0.49158247 25.9893212344265 0.0427271076694286 -1.43268506804889  0.4897189 25.9893212344265 -0.213044431039067 -1.42410571364139  0.49034009 25.9893212244265 -0.505014806086915 -1.36465336881755  0.49468841 25.9893212144265 -0.816603772766596 -1.2326388005472  0.50470302 25.9893211944265 -1.09270254090058 -1.04429528560136  0.51991389 25.9893211644265 -1.32308762884329 -0.810072817306392  0.54054774 25.9893211344265 -1.47954387927456 -0.574297145927649  0.56361201 25.9893211144265 -1.57851818297559 -0.358006540334397  0.58719589 25.9893210844265 -1.64816283828353 -0.137692372790036  0.61400143 25.9893210644265 -1.68978692326057 0.0825488205708584  0.64415145 25.9893210344265 -1.70030366476009 0.337461990098584  0.68449316 25.9893210044264 -1.66384222002826 0.618811679601976  0.73828835 25.9893209744264 -1.58512487828939 0.880017976148609  0.80045415 25.9893209444264 -1.48447892450896 1.08833140069297  0.86283482 25.9893209244264 -1.37982669253825 1.24907096232768  0.92252758 25.9893209144264 -1.30169948982741 1.3465796719591  0.96586875 25.9893209144264 -1.26129280790819 1.39231875213159  0.98846519 25.9893209044264 -1.2407928679345 1.41444127418235  1 
-26.7065109984911 1.21027048648476 1.41444154918237  1 26.7213278091949 1.24558332416203 1.37381204925257  0.97946655 26.7515571406307 1.31363351739424 1.28736330014647  0.94008423 26.7975896728172 1.40427928769968 1.14505414838715  0.88584592 26.8591513857412 1.49686369309721 0.934447565713876  0.82239124 26.9211453286857 1.55749285597694 0.702566418670113  0.76705964 26.9824908715995 1.58031314006084 0.454154142881163  0.71917843 27.0341360340525 1.56274270022629 0.229643645327487  0.68327169 27.076423046061 1.51887566714272 0.0360118875004728  0.65643622 27.1170321779899 1.45039909889026 -0.157107980142228  0.63257754 27.1553807398113 1.3563338224224 -0.346337304340138  0.61158636 27.1896150214374 1.23199119851644 -0.522459168235478  0.59399033 27.2192011628426 1.07941564726949 -0.679799770688755  0.57957924 27.2449048240635 0.904807393216043 -0.819594031988626  0.56761519 27.2662717950784 0.710263977475727 -0.938342486678874  0.55803933 27.2816287558078 0.496798980586684 -1.02553062771009  0.55135409 27.2907106162391 0.270770031540886 -1.07764181518524  0.54747539 27.2946338064255 0.0389720961310751 -1.10024787025897  0.54581669 27.2933234263632 -0.194261222626913 -1.09269727590033  0.54636959 27.2842245359311 -0.460730032143501 -1.04026799241008  0.55023988 27.2637480049585 -0.745357876112598 -0.924013897068303  0.55915354 27.2338661935392 -0.99827445118549 -0.758423352063175  0.57269219 27.1955189017178 -1.21057690449931 -0.552832445788131  0.59105766 27.1553807398113 -1.35633539842247 -0.346337463440146  0.61158636 27.1170321779899 -1.45040068989033 -0.157108154972237  0.63257754 27.076423046061 -1.5188772841428 0.0360116864604632  0.65643622 27.0341360340525 -1.56274434022637 0.229643430607477  0.68327169 26.9824908815995 -1.58031480806092 0.454153906161152  0.71917843 26.9211453286857 -1.55749457897702 0.702566171410101  0.76705964 26.8591513857412 -1.49686545709729 0.934447301413863  0.82239124 26.8047982131595 -1.4150717702123 1.12039302921581  0.87791409 26.7588567809774 -1.32797084307523 1.2647962700746  0.93104451 26.7286549295429 -1.2620551999444 1.3528579812573  0.96962097 26.7138425388394 -1.22773734731439 1.39433727022746  0.98973327 26.7065109884911 -1.21027243248485 1.41444127718235  1 
-28.1506003870817 1.1255888294626 1.41444154018237  1 28.1838979086633 1.1508387036619 1.38202397364261  0.98453887 28.2507726118396 1.19906384495247 1.3134474553854  0.95488505 28.3499580765507 1.26229193995565 1.20112752105049  0.91404507 28.4778294026243 1.32465551091776 1.03503591816157  0.86626542 28.6013833784928 1.36213596169798 0.852541449963544  0.82460223 28.7187943440695 1.37034541108791 0.656740721763509  0.78854897 28.8140999785962 1.34829534004059 0.478493511307221  0.76151217 28.8898424021938 1.30652540405662 0.323759373307744  0.74130578 28.9607162955601 1.24513548614076 0.169063565130088  0.72334085 29.0260289786623 1.16333549725547 0.0168410757499081  0.70753505 29.0830505013707 1.0564882841805 -0.126562545831398  0.69428572 29.1313840436664 0.925640577995566 -0.255916218385368  0.68343456 29.172682565628 0.776320905553263 -0.371242212553058  0.67442596 29.2065335872358 0.610076253717066 -0.469747313181799  0.66721559 29.2305984583789 0.426973807490167 -0.542714468587553  0.66218179 29.24472746905 0.232731934034173 -0.586447823104776  0.65926123 29.2508075893387 0.0336059541961971 -0.605421909825996  0.65801228 29.2487783392424 -0.166911773857883 -0.599089180955208  0.6584286 29.234644708571 -0.396046505331199 -0.554983562510303  0.66134282 29.202557877047 -0.640191804457478 -0.457692937649247  0.66805456 29.1550255647893 -0.856629817587731 -0.320151179026364  0.6782488 29.0927656018322 -1.03819581031165 -0.150996809981963  0.6920775 29.0260290386623 -1.16321649124982 0.0168411919799137  0.70753505 28.9607163555602 -1.24502744813563 0.169063681600094  0.72334085 28.8898424721938 -1.30642885505204 0.323759452207748  0.74130578 28.8141000485962 -1.34821061203656 0.478493575457224  0.76151217 28.7187944240695 -1.37027489908456 0.65674073758351  0.78854897 28.6013834684928 -1.36208207569542 0.852541430373543  0.82460223 28.4778295026243 -1.32461812391598 1.03503582516156  0.86626542 28.365206657275 -1.26961740730359 1.18132183610977  0.90807262 28.2667104025966 -1.20914361243124 1.29539928852816  0.94807839 28.2002362094393 -1.16257346221927 1.36526994584684  0.97712541 28.1671195178663 -1.13810082605689 1.39835883341848  0.99226943 28.1506004970817 -1.12559133446272 1.41444128718235  1 
-30.3018881792624 0.844080731411682 1.41444150818236  1 30.3352791008484 0.861588063783235 1.39431348522633  0.99222874 30.4008019839605 0.89546851587247 1.35148542719211  0.97732378 30.4943660884046 0.941799190673059 1.27983350878883  0.95679629 30.6090238638506 0.991697733903113 1.16948537054757  0.9327807 30.713902088832 1.02663141576237 1.04380938057828  0.91183944 30.8085964133297 1.04238241951051 0.903889975212468  0.89371791 30.8821451868231 1.03535339717665 0.771378608878516  0.88012835 30.9385996295046 1.01174128005513 0.652922561462156  0.86997197 30.9899002119412 0.972524739062444 0.532391080447218  0.86094222 31.0359241841272 0.91677449101445 0.411609457150399  0.85299772 31.0751611859909 0.839442628421384 0.294677541886432  0.84633818 31.1077531275389 0.740495013681624 0.187014432592708  0.84088404 31.1351300888393 0.625032615127455 0.0900692181980581  0.83635602 31.1572539098901 0.494174422372024 0.00632167723026354  0.83273186 31.172811930629 0.347181239430223 -0.0565969960882129  0.83020171 31.1818814710598 0.189545165882912 -0.0945044870587221  0.82873374 31.1857697012445 0.0274447231135543 -0.110967986580696  0.82810598 31.1844729811829 -0.136091540084001 -0.105477300889903  0.82831523 31.1754141407526 -0.32246090643607 -0.067120530118054  0.82978002 31.1546700997674 -0.518456339435354 0.0167712304665907  0.83315355 31.1234775582858 -0.68841401761791 0.133779782114198  0.8382775 31.0817606763043 -0.82633217441867 0.275010207732283  0.84522825 31.0359242641272 -0.916659908829007 0.411609880910419  0.85299772 30.9899003119412 -0.97241875496741 0.53239153125724  0.86094222 30.9385997295046 -1.01164467305054 0.652922972232176  0.86997197 30.8821452968231 -1.03526682717253 0.771379014828535  0.88012835 30.8085965433297 -1.04230848350699 0.903890315232484  0.89371791 30.713902238832 -1.02657314875961 1.0438096705783  0.91183944 30.6090240238506 -0.991655972121129 1.16948553054758  0.9327807 30.5083829090704 -0.947824774759259 1.26634406214811  0.95379434 30.4161223646882 -0.903003212690349 1.33975319063486  0.97390253 30.3514747916176 -0.869933533189624 1.38372764772353  0.9885025 30.3185186000523 -0.852792032715446 1.40441666870621  0.99611437 30.3018883192624 -0.844083729111824 1.41444131818235  1 
-31.7217071467002 0.463445326412471 1.41444146518236  1 31.7366649974106 0.482481440186638 1.4024437676125  0.99738245 31.7655748987838 0.520301318582985 1.37601550735723  0.99236209 31.8058725406978 0.575505889705062 1.3287598301127  0.98544793 31.8537414129715 0.642849482753711 1.24935044134096  0.97735889 31.896133824985 0.700080021952015 1.15274732975256  0.97030537 31.9333186867512 0.742403917452292 1.03935310736662  0.96420159 31.9615144780904 0.761747711411073 0.927145044797025  0.95962429 31.9827633190997 0.762408991562482 0.823947474025403  0.95620338 32.0017831500031 0.748575581085431 0.717179860194214  0.95316194 32.0186177208027 0.719217832831012 0.608554745424798  0.95048603 32.0328026314764 0.669001687915874 0.501381754744354  0.94824294 32.0444701220306 0.597459147677785 0.401380615984555  0.94640585 32.0541909024923 0.509664132937746 0.310743913729543  0.9448807 32.0619939328629 0.406625881433692 0.231912568125255  0.94366 32.0674534631222 0.287305702476288 0.172224242540212  0.94280778 32.0706255632729 0.157254995519211 0.136158712457191  0.94231333 32.0719831033374 0.0227817569220753 0.120485102642735  0.94210189 32.0715305233159 -0.11317808804567 0.125710523100929  0.94217237 32.0683643731655 -0.267402066010916 0.16226597496722  0.94266574 32.0610850028198 -0.426495507637449 0.241850492137281  0.94380203 32.0500620722962 -0.559485357584127 0.352005298629354  0.9455279 32.035173381589 -0.660615109577532 0.483470896923634  0.94786909 32.0186178008027 -0.719219974031114 0.608555339334826  0.95048603 32.0017832500031 -0.748577590085526 0.717180500194244  0.95316194 31.9827634290997 -0.762410909232573 0.823948078815432  0.95620338 31.9615146080904 -0.761749518031159 0.927145656597054  0.95962429 31.9333188267512 -0.742405581722371 1.03935365236665  0.96420159 31.896133974985 -0.700081650202093 1.15274782675258  0.97030537 31.8537415829715 -0.642851000933783 1.24935078534098  0.97735889 31.81181331098 -0.583855287361637 1.31890539864464  0.9844368 31.7722523291009 -0.52944233527716 1.36818548098532  0.99120973 31.7438653577526 -0.491897118783858 1.39586195029988  0.99612736 31.7291763270549 -0.472950566343945 1.40845051389781  0.99869122 31.7217072867002 -0.463447276602563 1.41444136118236  1 
-32.4183773097902 0.208515993143978 1.41444143718236  1 32.4183769697902 0.230428868494783 1.40654101280711  1 32.4183769697902 0.274386795812673 1.38819172293557  1 32.4183769697902 0.340060319251998 1.352535736242  1 32.4183769697902 0.42361158841047 1.2871869911381  1 32.4183769697902 0.498796362461555 1.20319866714887  1 32.4183769697902 0.560491614381922 1.10084200428719  1 32.4183769697902 0.597748087161509 0.996774824704261  1 32.4183769697902 0.614200232972944 0.899515794844706  1 32.4183769697902 0.616397663677317 0.797982349572126  1 32.4183769697902 0.603286407844565 0.693878234457446  1 32.4183769697902 0.569424242696199 0.590233999654609  1 32.4183769697902 0.51418802550262 0.492932551593039  1 32.4183769697902 0.442676084495985 0.404482602531892  1 32.4183769697902 0.355877809683288 0.32732432491707  1 32.4183769697902 0.252652863160367 0.268708200192954  1 32.4183769697902 0.138605139903391 0.233247368748655  1 32.4183769697902 0.0201240339958403 0.217832436316485  1 32.4183769697902 -0.0998694037735419 0.222970859380547  1 32.4183769697902 -0.235450488863298 0.258939153868949  1 32.4183769697902 -0.373083585980519 0.337094069381108  1 32.4183769697902 -0.484434072519383 0.444916593312403  1 32.4183769697902 -0.563781888948201 0.57296065804417  1 32.4183769697902 -0.603287652174625 0.693878908917478  1 32.4183769697902 -0.616398762167369 0.797983080002161  1 32.4183769697902 -0.614201228372992 0.899516493914739  1 32.4183769697902 -0.597748956941551 0.996775537894295  1 32.4183769697902 -0.560492321731956 1.10084265228722  1 32.4183769697902 -0.498797019581586 1.2031992711489  1 32.4183769697902 -0.423612111790495 1.28718743413812  1 32.4183769697902 -0.35050471677808 1.34436762685403  1 32.4183769697902 -0.28533279434258 1.38224928165331  1 32.4183769697902 -0.241418770796776 1.40195406758924  1 32.4183769697902 -0.219472775064397 1.41049133499474  1 32.4183772197902 -0.208516963644024 1.41444139018236  1 
-
-0 4
-0.39052523 1
-0.78105045 1
-1.18410863 4
-
-0 5
-0.03846154 1
-0.07692308 1
-0.11538462 1
-0.15384615 1
-0.19230769 1
-0.23076923 1
-0.25 1
-0.26923077 1
-0.30769231 1
-0.34615385 1
-0.36538462 1
-0.38461538 1
-0.42307692 1
-0.46153846 1
-0.48076923 1
-0.5 1
-0.53846154 1
-0.57692308 1
-0.61538462 1
-0.65384615 1
-0.69230769 1
-0.73076923 1
-0.75 1
-0.76923077 1
-0.80769231 1
-0.84615385 1
-0.88461538 1
-0.92307692 1
-0.96153846 1
-0.98076923 1
-1 5
-
-9 0 0 0 0 3 2 20 4 18 3 31.9768135388171 -6.52772034505006 1.34215900474913  31.01492907313 -4.97211271016267 1.17266812269874  29.0911601417559 -1.86089743938788 0.833686358567975  28.1292756760688 -0.305289803630487 0.664195476387591  
-31.9764636788005 -6.52739737503472 1.34538679790244  31.0143909631045 -4.97162784513964 1.17764030293491  29.0902455317125 -1.86008878434947 0.842147311759849  28.1281728160165 -0.304319254304388 0.674400816372318  
-31.9777014388592 -6.52699314101552 1.34942703009434  31.0162679131936 -4.97095567810771 1.18384361722955  29.0934008518623 -1.85888075129209 0.852676791759972  28.1319673261967 -0.302843288144284 0.687093379125183  
-31.9816308290459 -6.52668260400077 1.35253128324179  31.0221954034751 -4.97030522007682 1.1887775764639  29.1033245623337 -1.85755045222891 0.861270161918136  28.1438891367629 -0.301173068524952 0.697516454740252  
-31.9835034791348 -6.52661267499745 1.353230491275  31.0250512936108 -4.97011976506801 1.18987273451592  29.1081469325627 -1.85713394420912 0.863157222517766  28.1496947470387 -0.300641034159682 0.69979946630869  
-31.9866428592839 -6.52648649599146 1.35449209133492  31.029897763841 -4.96979779805272 1.19178877460693  29.1164075729551 -1.85642040217523 0.866382141270942  28.1596624775121 -0.299731703776491 0.703678824472949  
-31.9883847393667 -6.52641453798804 1.35521155436909  31.0325750739682 -4.96961380104398 1.19291129866024  29.1209557231711 -1.85601232815585 0.868310787992547  28.1651460477726 -0.299211591051787 0.706010532433699  
-31.9916632495224 -6.52633423798423 1.35601465740724  31.0375919242064 -4.9693510280315 1.19420364172163  29.1294492735745 -1.85538461012604 0.870581610130406  28.1753779482586 -0.298401400633305 0.708770594404795  
-31.9936058596147 -6.52631217498318 1.35623548441773  31.0405779643483 -4.9692373840261 1.19454376173778  29.1345221838155 -1.85508780011194 0.871160316717893  28.1814942985491 -0.298013008604858 0.709468594297949  
-31.9969259197724 -6.52624475097998 1.35690990744976  31.0457036145917 -4.96899990601482 1.19554477178533  29.1432589842305 -1.8545102160845 0.872814499746462  28.1920366790498 -0.297265370679347 0.71144936381203  
-31.9986822598558 -6.52619487997761 1.35740863147345  31.0484060147201 -4.96885029000771 1.19631807882206  29.1478535444487 -1.85416111106792 0.874136974689276  28.197577309313 -0.296816521068028 0.713046422387886  
-32.002077120017 -6.52615066997551 1.35785104949446  31.0536122749674 -4.96863996599772 1.19703635885617  29.156682584868 -1.85361855704215 0.875406978219598  28.2082177398184 -0.296107853314368 0.714592287951311  
-32.0040059401086 -6.52614984397547 1.35785962949487  31.0565789851083 -4.96856015699393 1.19704484085658  29.1617250651076 -1.85338078203086 0.875415265619992  28.2142981001072 -0.295791094039322 0.7146004777817  
-32.0074207502708 -6.52611315297373 1.35822691351231  31.0618457653584 -4.96836616398472 1.1975779238819  29.1706958055336 -1.8528721870067 0.876279946121062  28.2251208206212 -0.295125198837694 0.715630957130645  
-32.0091448703527 -6.52607647797198 1.35859374052974  31.0644998454845 -4.96823892297868 1.19814180990868  29.175209795748 -1.85256381099206 0.877237949136565  28.2305647708798 -0.294726255258745 0.716786018585507  
-32.0125978305167 -6.52604328697041 1.35892605054552  31.0698047657365 -4.96804558796949 1.19866448193351  29.1842186161759 -1.85205019096766 0.878141344459474  28.2414255413957 -0.294052492146743 0.717879775677458  
-32.014476420606 -6.52604397397044 1.35891950054521  31.0726944658737 -4.96797050196593 1.1986475049327  29.1891305464092 -1.8518235579569 0.878103514097677  28.247348591677 -0.29375008651238 0.717831518655166  
-32.0179362407703 -6.5259988509683 1.35937106356666  31.0780221161268 -4.96776049595595 1.19932877596506  29.1981938868397 -1.85128378693126 0.879244201521857  28.2582797721962 -0.29304543204891 0.719201914170256  
-32.0195981608492 -6.5259525669661 1.35983391758864  31.0805800662483 -4.96762083194932 1.20004355499901  29.2025438770463 -1.85095736191575 0.880462830019738  28.2635257924454 -0.292625626828971 0.720672467560104  
-32.0213115109306 -6.52591981196454 1.36016157360421  31.0832152563734 -4.96750017294359 1.20054947602304  29.2070227372591 -1.85066089390167 0.881325279380702  28.2689264827019 -0.292241255160714 0.721713181239535  
-
-0 4
-0.18739138 1
-0.1976523 1
-0.28860531 1
-0.29795585 1
-0.38981924 1
-0.39825939 1
-0.49147355 1
-0.49862089 1
-0.59312786 1
-0.59898239 1
-0.69484995 1
-0.69928545 1
-0.79657203 1
-0.79958851 1
-0.89828602 1
-0.89979425 1
-1 4
-
-0 3
-33.12627597 1
-66.25255193 3
-
-9 0 0 0 0 2 3 4 26 3 24 28.2689264827019 -0.292241255160714 0.721713181239535  28.3961812587462 -0.284397949308177 0.734133185749454  28.5870343678112 -0.272641093469756 0.753729140240211  28.8126166985258 -0.259167066449775 0.775118303946142  28.9401261245822 -0.251733210446685 0.786186542591855  29.0677133406422 -0.244433847629984 0.796421405117985  29.1817207560573 -0.238115434989876 0.804278298051168  29.3095848921305 -0.231289159275645 0.811337527776463  29.4448216585539 -0.224289548483181 0.817296564549502  29.6159003866797 -0.215994099319169 0.820905054190896  29.8024283255393 -0.207759839438062 0.818960698558544  29.9870924743104 -0.200302810283873 0.812228936158802  30.1608932725655 -0.193980458033577 0.80134281528174  30.2940844088917 -0.189594556135258 0.790225941423716  30.4216250749496 -0.185632528127072 0.778227837773837  30.5371700504377 -0.182306878039112 0.76593838801012  30.6644332564824 -0.178925569838508 0.7512782490838  30.7917710125306 -0.175703373785462 0.73613385993448  30.9073940980224 -0.172967123165497 0.72204592278534  31.0347069540694 -0.170091552488915 0.706833073972768  31.1619371001125 -0.16730603716661 0.69201716031905  31.2782823556386 -0.164848569069887 0.679537620406304  31.4059446117023 -0.162169725972648 0.667247481652553  31.5339495777822 -0.159490988805415 0.656203178347977  31.6510248333429 -0.156998219177015 0.648881518810217  31.7151041563865 -0.155601073240654 0.64594542643076  
-29.2070227372591 -1.85066089390167 0.881325279380702  29.3123933222639 -1.84469222161817 0.891503409684138  29.4704091497693 -1.83572059219205 0.907741891635424  29.6571647386397 -1.82543554670353 0.925580970172735  29.7627281836537 -1.81976610343425 0.934823804381746  29.8683558986707 -1.81420466317009 0.943370328297684  29.9627408331538 -1.80940013494189 0.949921315608839  30.0685981581817 -1.80422136969591 0.955807669588426  30.1805566534995 -1.79892150844418 0.960779981554598  30.3221804902262 -1.79266725114712 0.96381512397876  30.4766107775613 -1.78649618385401 0.962313071137416  30.6295128548237 -1.78094584259038 0.956842638387585  30.773400821658 -1.77627975836876 0.947923972103971  30.8836523668947 -1.7730700562163 0.938791292900192  30.98924270191 -1.77018504607927 0.928929784541795  31.0849239864546 -1.76778033196506 0.918819512091583  31.1902794314587 -1.76535358184979 0.906734400257571  31.2956869464653 -1.76305060474041 0.894241746344202  31.3914083610118 -1.76110457064797 0.882616392752027  31.4967993260176 -1.75906092255091 0.870078785776523  31.6021282910205 -1.75708107845687 0.857876235866933  31.6984698155965 -1.75532985937369 0.84759983239883  31.8041523906161 -1.75341172728258 0.837474428947899  31.9100954156481 -1.75148512419108 0.828368865475408  32.0070153802516 -1.74967320410501 0.822302920967291  32.0600610427711 -1.74865018405642 0.819853447300947  
-31.0832152563734 -4.96750017294359 1.20054947602304  31.1448174592994 -4.96528076583817 1.20624385729351  31.2371586936854 -4.96187958967662 1.21576739474585  31.3462608188674 -4.95797250649105 1.22650630225592  31.4079322917967 -4.95583189038937 1.23209832752153  31.4696410247277 -4.95374629329031 1.23726817476708  31.5247809773467 -4.95196953320592 1.24120735095418  31.5866247002841 -4.95008579111645 1.24474795312235  31.6520266333905 -4.94818542802619 1.24774681526479  31.7347407173192 -4.94601355492303 1.24963526335449  31.8249756616052 -4.94396887382591 1.24901781632516  31.9143536158504 -4.94223190574341 1.24607004318515  31.9984159198431 -4.94087836067912 1.24108628594843  32.0627882629007 -4.9400210566384 1.23592199570314  32.1244779458308 -4.93929008360368 1.23033367843771  32.1804318684884 -4.93872723957695 1.22458176016451  32.2419717614114 -4.93820960755236 1.21764670283511  32.3035188143347 -4.93774506653029 1.21045751949364  32.3594369069907 -4.93737946551293 1.2037573331754  32.420984059914 -4.93699966249489 1.19657020983403  32.4825106628364 -4.93663116047739 1.1895943865027  32.5388447455121 -4.9362924384613 1.18372425622388  32.6005679284438 -4.93589573044246 1.17792832394859  32.6623870813801 -4.9354733944224 1.17270023970027  32.7189964840689 -4.93502317540101 1.16914572553144  32.7499748255403 -4.93474840638796 1.16766948946132  
-32.0213115109306 -6.52591981196454 1.36016157360421  32.0610295228171 -6.52557503794817 1.36361408176819  32.1205334756434 -6.52495908791891 1.36978014606106  32.1908088589813 -6.5242409868848 1.37696896840251  32.2305343508682 -6.52386478386694 1.38073558958142  32.2702835827562 -6.52351710785042 1.38421709774678  32.3058010444431 -6.52325423283794 1.38685036787185  32.3456379663353 -6.52301800082672 1.38921809498432  32.3877616283361 -6.52281738781719 1.39123023207989  32.4410208208657 -6.52268670681098 1.39254533314235  32.4991581136271 -6.52270521881186 1.39237018913403  32.5567739963637 -6.52287493781992 1.39068374505393  32.6109234689357 -6.5231776608343 1.38766744291066  32.6523562209036 -6.52349655684945 1.38448734775962  32.6920955727911 -6.52384260186588 1.38103562459567  32.7281858045053 -6.52420069388289 1.37746288442597  32.7678179363878 -6.52463761990364 1.37310285421888  32.8074347482695 -6.52509229792524 1.36856540600337  32.8434511699801 -6.52551691294541 1.36432780280209  32.8830764318622 -6.52596903296688 1.35981592158779  32.9227018537444 -6.52640620198765 1.35545346238058  32.95903221547 -6.5267737280051 1.35178646820641  32.9987756973577 -6.52713773102239 1.34815527103394  33.038532919246 -6.52746753003806 1.3448659268777  33.0749870309775 -6.52769816004901 1.34256712776851  33.0949317119248 -6.52779751805373 1.34157750972151  
-
-0 3
-1.50880726 1
-3.01761452 3
-
-0 4
-0.11103083 1
-0.16659245 1
-0.196748 1
-0.22215408 1
-0.27771208 1
-0.29593722 1
-0.33327008 1
-0.39512644 1
-0.44434037 1
-0.49514916 1
-0.55541065 1
-0.59517188 1
-0.61096997 1
-0.66652929 1
-0.69603633 1
-0.72209161 1
-0.77765393 1
-0.79690078 1
-0.83321457 1
-0.88877522 1
-0.89845039 1
-0.94438761 1
-1 4
-
-9 1 1 0 0 3 4 6 35 4 32 25.9893209044264 1.24079115393441 1.41444155318237  1 25.9893209144264 1.2822751379048 1.36967410805603  0.97693039 25.9893209244264 1.3627299827262 1.27401077351226  0.93268382 25.9893209444264 1.47127512888182 1.11565706899086  0.87174635 25.9893209744264 1.58512328428931 0.880018332248626  0.80045415 25.9893210044264 1.66384068402819 0.618812053391994  0.73828835 25.9893210344265 1.70030219276002 0.337462372068602  0.68449316 25.9893210644265 1.6897855082605 0.0825492001808764  0.64415145 25.9893210844265 1.64816147328347 -0.137692002530019  0.61400143 25.9893211144265 1.57851686697552 -0.358006185714381  0.58719589 25.9893211344265 1.4795426112745 -0.574296813547634  0.56361201 25.9893211644265 1.34624978294343 -0.775165883678402  0.54384264 25.9893211844265 1.18120730410433 -0.954314886817523  0.52765158 25.9893211944265 0.991078565083704 -1.11361808489402  0.51420981 25.9893212144265 0.778331953498782 -1.24885322531734  0.5034512 25.9893212244265 0.54465051770951 -1.3478598540199  0.49594024 25.9893212344265 0.296990527996292 -1.40701193782948  0.49158247 25.9893212344265 0.0427271076694286 -1.43268506804889  0.4897189 25.9893212344265 -0.213044431039067 -1.42410571364139  0.49034009 25.9893212244265 -0.505014806086915 -1.36465336881755  0.49468841 25.9893212144265 -0.816603772766596 -1.2326388005472  0.50470302 25.9893211944265 -1.09270254090058 -1.04429528560136  0.51991389 25.9893211644265 -1.32308762884329 -0.810072817306392  0.54054774 25.9893211344265 -1.47954387927456 -0.574297145927649  0.56361201 25.9893211144265 -1.57851818297559 -0.358006540334397  0.58719589 25.9893210844265 -1.64816283828353 -0.137692372790036  0.61400143 25.9893210644265 -1.68978692326057 0.0825488205708584  0.64415145 25.9893210344265 -1.70030366476009 0.337461990098584  0.68449316 25.9893210044264 -1.66384222002826 0.618811679601976  0.73828835 25.9893209744264 -1.58512487828939 0.880017976148609  0.80045415 25.9893209444264 -1.48447892450896 1.08833140069297  0.86283482 25.9893209244264 -1.37982669253825 1.24907096232768  0.92252758 25.9893209144264 -1.30169948982741 1.3465796719591  0.96586875 25.9893209144264 -1.26129280790819 1.39231875213159  0.98846519 25.9893209044264 -1.2407928679345 1.41444127418235  1 
-26.7065109984911 1.21027048648476 1.41444154918237  1 26.7213278091949 1.24558332416203 1.37381204925257  0.97946655 26.7515571406307 1.31363351739424 1.28736330014647  0.94008423 26.7975896728172 1.40427928769968 1.14505414838715  0.88584592 26.8591513857412 1.49686369309721 0.934447565713876  0.82239124 26.9211453286857 1.55749285597694 0.702566418670113  0.76705964 26.9824908715995 1.58031314006084 0.454154142881163  0.71917843 27.0341360340525 1.56274270022629 0.229643645327487  0.68327169 27.076423046061 1.51887566714272 0.0360118875004728  0.65643622 27.1170321779899 1.45039909889026 -0.157107980142228  0.63257754 27.1553807398113 1.3563338224224 -0.346337304340138  0.61158636 27.1896150214374 1.23199119851644 -0.522459168235478  0.59399033 27.2192011628426 1.07941564726949 -0.679799770688755  0.57957924 27.2449048240635 0.904807393216043 -0.819594031988626  0.56761519 27.2662717950784 0.710263977475727 -0.938342486678874  0.55803933 27.2816287558078 0.496798980586684 -1.02553062771009  0.55135409 27.2907106162391 0.270770031540886 -1.07764181518524  0.54747539 27.2946338064255 0.0389720961310751 -1.10024787025897  0.54581669 27.2933234263632 -0.194261222626913 -1.09269727590033  0.54636959 27.2842245359311 -0.460730032143501 -1.04026799241008  0.55023988 27.2637480049585 -0.745357876112598 -0.924013897068303  0.55915354 27.2338661935392 -0.99827445118549 -0.758423352063175  0.57269219 27.1955189017178 -1.21057690449931 -0.552832445788131  0.59105766 27.1553807398113 -1.35633539842247 -0.346337463440146  0.61158636 27.1170321779899 -1.45040068989033 -0.157108154972237  0.63257754 27.076423046061 -1.5188772841428 0.0360116864604632  0.65643622 27.0341360340525 -1.56274434022637 0.229643430607477  0.68327169 26.9824908815995 -1.58031480806092 0.454153906161152  0.71917843 26.9211453286857 -1.55749457897702 0.702566171410101  0.76705964 26.8591513857412 -1.49686545709729 0.934447301413863  0.82239124 26.8047982131595 -1.4150717702123 1.12039302921581  0.87791409 26.7588567809774 -1.32797084307523 1.2647962700746  0.93104451 26.7286549295429 -1.2620551999444 1.3528579812573  0.96962097 26.7138425388394 -1.22773734731439 1.39433727022746  0.98973327 26.7065109884911 -1.21027243248485 1.41444127718235  1 
-28.1506003870817 1.1255888294626 1.41444154018237  1 28.1838979086633 1.1508387036619 1.38202397364261  0.98453887 28.2507726118396 1.19906384495247 1.3134474553854  0.95488505 28.3499580765507 1.26229193995565 1.20112752105049  0.91404507 28.4778294026243 1.32465551091776 1.03503591816157  0.86626542 28.6013833784928 1.36213596169798 0.852541449963544  0.82460223 28.7187943440695 1.37034541108791 0.656740721763509  0.78854897 28.8140999785962 1.34829534004059 0.478493511307221  0.76151217 28.8898424021938 1.30652540405662 0.323759373307744  0.74130578 28.9607162955601 1.24513548614076 0.169063565130088  0.72334085 29.0260289786623 1.16333549725547 0.0168410757499081  0.70753505 29.0830505013707 1.0564882841805 -0.126562545831398  0.69428572 29.1313840436664 0.925640577995566 -0.255916218385368  0.68343456 29.172682565628 0.776320905553263 -0.371242212553058  0.67442596 29.2065335872358 0.610076253717066 -0.469747313181799  0.66721559 29.2305984583789 0.426973807490167 -0.542714468587553  0.66218179 29.24472746905 0.232731934034173 -0.586447823104776  0.65926123 29.2508075893387 0.0336059541961971 -0.605421909825996  0.65801228 29.2487783392424 -0.166911773857883 -0.599089180955208  0.6584286 29.234644708571 -0.396046505331199 -0.554983562510303  0.66134282 29.202557877047 -0.640191804457478 -0.457692937649247  0.66805456 29.1550255647893 -0.856629817587731 -0.320151179026364  0.6782488 29.0927656018322 -1.03819581031165 -0.150996809981963  0.6920775 29.0260290386623 -1.16321649124982 0.0168411919799137  0.70753505 28.9607163555602 -1.24502744813563 0.169063681600094  0.72334085 28.8898424721938 -1.30642885505204 0.323759452207748  0.74130578 28.8141000485962 -1.34821061203656 0.478493575457224  0.76151217 28.7187944240695 -1.37027489908456 0.65674073758351  0.78854897 28.6013834684928 -1.36208207569542 0.852541430373543  0.82460223 28.4778295026243 -1.32461812391598 1.03503582516156  0.86626542 28.365206657275 -1.26961740730359 1.18132183610977  0.90807262 28.2667104025966 -1.20914361243124 1.29539928852816  0.94807839 28.2002362094393 -1.16257346221927 1.36526994584684  0.97712541 28.1671195178663 -1.13810082605689 1.39835883341848  0.99226943 28.1506004970817 -1.12559133446272 1.41444128718235  1 
-30.3018881792624 0.844080731411682 1.41444150818236  1 30.3352791008484 0.861588063783235 1.39431348522633  0.99222874 30.4008019839605 0.89546851587247 1.35148542719211  0.97732378 30.4943660884046 0.941799190673059 1.27983350878883  0.95679629 30.6090238638506 0.991697733903113 1.16948537054757  0.9327807 30.713902088832 1.02663141576237 1.04380938057828  0.91183944 30.8085964133297 1.04238241951051 0.903889975212468  0.89371791 30.8821451868231 1.03535339717665 0.771378608878516  0.88012835 30.9385996295046 1.01174128005513 0.652922561462156  0.86997197 30.9899002119412 0.972524739062444 0.532391080447218  0.86094222 31.0359241841272 0.91677449101445 0.411609457150399  0.85299772 31.0751611859909 0.839442628421384 0.294677541886432  0.84633818 31.1077531275389 0.740495013681624 0.187014432592708  0.84088404 31.1351300888393 0.625032615127455 0.0900692181980581  0.83635602 31.1572539098901 0.494174422372024 0.00632167723026354  0.83273186 31.172811930629 0.347181239430223 -0.0565969960882129  0.83020171 31.1818814710598 0.189545165882912 -0.0945044870587221  0.82873374 31.1857697012445 0.0274447231135543 -0.110967986580696  0.82810598 31.1844729811829 -0.136091540084001 -0.105477300889903  0.82831523 31.1754141407526 -0.32246090643607 -0.067120530118054  0.82978002 31.1546700997674 -0.518456339435354 0.0167712304665907  0.83315355 31.1234775582858 -0.68841401761791 0.133779782114198  0.8382775 31.0817606763043 -0.82633217441867 0.275010207732283  0.84522825 31.0359242641272 -0.916659908829007 0.411609880910419  0.85299772 30.9899003119412 -0.97241875496741 0.53239153125724  0.86094222 30.9385997295046 -1.01164467305054 0.652922972232176  0.86997197 30.8821452968231 -1.03526682717253 0.771379014828535  0.88012835 30.8085965433297 -1.04230848350699 0.903890315232484  0.89371791 30.713902238832 -1.02657314875961 1.0438096705783  0.91183944 30.6090240238506 -0.991655972121129 1.16948553054758  0.9327807 30.5083829090704 -0.947824774759259 1.26634406214811  0.95379434 30.4161223646882 -0.903003212690349 1.33975319063486  0.97390253 30.3514747916176 -0.869933533189624 1.38372764772353  0.9885025 30.3185186000523 -0.852792032715446 1.40441666870621  0.99611437 30.3018883192624 -0.844083729111824 1.41444131818235  1 
-31.7217071467002 0.463445326412471 1.41444146518236  1 31.7366649974106 0.482481440186638 1.4024437676125  0.99738245 31.7655748987838 0.520301318582985 1.37601550735723  0.99236209 31.8058725406978 0.575505889705062 1.3287598301127  0.98544793 31.8537414129715 0.642849482753711 1.24935044134096  0.97735889 31.896133824985 0.700080021952015 1.15274732975256  0.97030537 31.9333186867512 0.742403917452292 1.03935310736662  0.96420159 31.9615144780904 0.761747711411073 0.927145044797025  0.95962429 31.9827633190997 0.762408991562482 0.823947474025403  0.95620338 32.0017831500031 0.748575581085431 0.717179860194214  0.95316194 32.0186177208027 0.719217832831012 0.608554745424798  0.95048603 32.0328026314764 0.669001687915874 0.501381754744354  0.94824294 32.0444701220306 0.597459147677785 0.401380615984555  0.94640585 32.0541909024923 0.509664132937746 0.310743913729543  0.9448807 32.0619939328629 0.406625881433692 0.231912568125255  0.94366 32.0674534631222 0.287305702476288 0.172224242540212  0.94280778 32.0706255632729 0.157254995519211 0.136158712457191  0.94231333 32.0719831033374 0.0227817569220753 0.120485102642735  0.94210189 32.0715305233159 -0.11317808804567 0.125710523100929  0.94217237 32.0683643731655 -0.267402066010916 0.16226597496722  0.94266574 32.0610850028198 -0.426495507637449 0.241850492137281  0.94380203 32.0500620722962 -0.559485357584127 0.352005298629354  0.9455279 32.035173381589 -0.660615109577532 0.483470896923634  0.94786909 32.0186178008027 -0.719219974031114 0.608555339334826  0.95048603 32.0017832500031 -0.748577590085526 0.717180500194244  0.95316194 31.9827634290997 -0.762410909232573 0.823948078815432  0.95620338 31.9615146080904 -0.761749518031159 0.927145656597054  0.95962429 31.9333188267512 -0.742405581722371 1.03935365236665  0.96420159 31.896133974985 -0.700081650202093 1.15274782675258  0.97030537 31.8537415829715 -0.642851000933783 1.24935078534098  0.97735889 31.81181331098 -0.583855287361637 1.31890539864464  0.9844368 31.7722523291009 -0.52944233527716 1.36818548098532  0.99120973 31.7438653577526 -0.491897118783858 1.39586195029988  0.99612736 31.7291763270549 -0.472950566343945 1.40845051389781  0.99869122 31.7217072867002 -0.463447276602563 1.41444136118236  1 
-32.4183773097902 0.208515993143978 1.41444143718236  1 32.4183769697902 0.230428868494783 1.40654101280711  1 32.4183769697902 0.274386795812673 1.38819172293557  1 32.4183769697902 0.340060319251998 1.352535736242  1 32.4183769697902 0.42361158841047 1.2871869911381  1 32.4183769697902 0.498796362461555 1.20319866714887  1 32.4183769697902 0.560491614381922 1.10084200428719  1 32.4183769697902 0.597748087161509 0.996774824704261  1 32.4183769697902 0.614200232972944 0.899515794844706  1 32.4183769697902 0.616397663677317 0.797982349572126  1 32.4183769697902 0.603286407844565 0.693878234457446  1 32.4183769697902 0.569424242696199 0.590233999654609  1 32.4183769697902 0.51418802550262 0.492932551593039  1 32.4183769697902 0.442676084495985 0.404482602531892  1 32.4183769697902 0.355877809683288 0.32732432491707  1 32.4183769697902 0.252652863160367 0.268708200192954  1 32.4183769697902 0.138605139903391 0.233247368748655  1 32.4183769697902 0.0201240339958403 0.217832436316485  1 32.4183769697902 -0.0998694037735419 0.222970859380547  1 32.4183769697902 -0.235450488863298 0.258939153868949  1 32.4183769697902 -0.373083585980519 0.337094069381108  1 32.4183769697902 -0.484434072519383 0.444916593312403  1 32.4183769697902 -0.563781888948201 0.57296065804417  1 32.4183769697902 -0.603287652174625 0.693878908917478  1 32.4183769697902 -0.616398762167369 0.797983080002161  1 32.4183769697902 -0.614201228372992 0.899516493914739  1 32.4183769697902 -0.597748956941551 0.996775537894295  1 32.4183769697902 -0.560492321731956 1.10084265228722  1 32.4183769697902 -0.498797019581586 1.2031992711489  1 32.4183769697902 -0.423612111790495 1.28718743413812  1 32.4183769697902 -0.35050471677808 1.34436762685403  1 32.4183769697902 -0.28533279434258 1.38224928165331  1 32.4183769697902 -0.241418770796776 1.40195406758924  1 32.4183769697902 -0.219472775064397 1.41049133499474  1 32.4183772197902 -0.208516963644024 1.41444139018236  1 
-
-0 4
-0.39052523 1
-0.78105045 1
-1.18410863 4
-
-0 5
-0.03846154 1
-0.07692308 1
-0.11538462 1
-0.15384615 1
-0.19230769 1
-0.23076923 1
-0.25 1
-0.26923077 1
-0.30769231 1
-0.34615385 1
-0.36538462 1
-0.38461538 1
-0.42307692 1
-0.46153846 1
-0.48076923 1
-0.5 1
-0.53846154 1
-0.57692308 1
-0.61538462 1
-0.65384615 1
-0.69230769 1
-0.73076923 1
-0.75 1
-0.76923077 1
-0.80769231 1
-0.84615385 1
-0.88461538 1
-0.92307692 1
-0.96153846 1
-0.98076923 1
-1 5
-
-9 1 1 0 0 4 3 20 4 15 2 32.4183772197902 -0.208516963644024 1.41444139018236  1 32.5970604982772 -0.143131934658402 1.41444139718236  1 32.7741353166878 -0.0736942506102889 1.41444140518236  1 32.949284715007 -9.00000042747706e-011 1.41444141318236  1 
-32.4183769697902 -0.219472775064397 1.41049133499474  1 32.5950247081805 -0.154525315509558 1.41140751903826  0.9943221 32.7720870665905 -0.0847712907564201 1.4123410200826  0.98864419 32.949284685007 -0.0099950104147375 1.41329199112776  0.98296629 
-32.4183769697902 -0.241418770796776 1.40195406758924  1 32.5909900479889 -0.177509380711243 1.40465327471745  0.98325746 32.7679577163944 -0.10731144496702 1.40746684385108  0.96651492 32.949284605007 -0.0305025093887914 1.41039966299039  0.94977238 
-32.4183769697902 -0.28533279434258 1.38224928165331  1 32.5830897376136 -0.224119960755126 1.38826324893896  0.96229289 32.7595924259971 -0.153820917666101 1.39481859625033  0.92458578 32.949284435007 -0.0735686563743235 1.40197815559039  0.88687867 
-32.4183769697902 -0.35050471677808 1.34436762685403  1 32.5719988770869 -0.294229175235135 1.35462811534138  0.93434013 32.7471814954076 -0.225355241593799 1.36654019990717  0.86868025 32.9492841450069 -0.141483974010128 1.38048717656962  0.80302038 
-32.4183769697902 -0.423612111790495 1.28718743413812  1 32.5604028665361 -0.374017878514895 1.30088956378894  0.90682413 32.733294264748 -0.309029397378108 1.31789498559665  0.81364825 32.9492837450069 -0.223779306188946 1.33943253961963  0.72047238 
-32.4183769697902 -0.498797019581586 1.2031992711489  1 32.5494676460167 -0.456769884125404 1.2186021878805  0.88236546 32.7192576940813 -0.39792516020043 1.23898965184885  0.76473092 32.9492832350069 -0.314557243260667 1.26697658917816  0.64709638 
-32.4183769697902 -0.568204234498252 1.08804807467951  1 32.5401982155764 -0.533525153331084 1.10242625036243  0.86271117 32.706577983479 -0.482104103058715 1.12258912332012  0.72542235 32.9492826150069 -0.403917878905069 1.15241312073668  0.58813352 
-32.4183769697902 -0.602673077355434 0.98156344848176  1 32.5361827153857 -0.570706214987089 0.994236516563698  0.85455829 32.7008607432075 -0.522313113698541 1.01252473909234  0.70911657 32.9492821550069 -0.446471934676278 1.04054463542322  0.56367486 
-32.4183769697902 -0.613655709577081 0.899267056102891  1 32.5350490553318 -0.582031940285032 0.910741168867882  0.85237448 32.6992369531303 -0.534103355878547 0.927489109533367  0.70474895 32.9492818750068 -0.458504803777809 0.95344004576597  0.55712343 
-32.4183769697902 -0.61502839074228 0.831720436424599  1 32.5349909953291 -0.582947117258501 0.842414448322537  0.85237448 32.6991751431274 -0.534591628891739 0.858093575267256  0.70474895 32.9492816750068 -0.458504821117809 0.882435955593457  0.55712343 
-32.4183769697902 -0.614213577173578 0.780632384818047  1 32.5351601053371 -0.581598379834439 0.790890394815276  0.85281124 32.69943962314 -0.53271261546249 0.80596076025108  0.70562248 32.9492815350068 -0.456075677812431 0.829349488431985  0.55843371 
-32.4183769697902 -0.603287652174625 0.693878908917478  1 32.5364997154007 -0.568953113813822 0.70437908943621  0.85572298 32.7014152232338 -0.518326260279175 0.719713679654564  0.71144597 32.9492813450068 -0.440168153566864 0.743257377152829  0.56716895 
-32.4183769697902 -0.563781888948201 0.57296065804417  1 32.5407843656042 -0.526092289288042 0.586519580248184  0.86489498 32.7075595335256 -0.472516866293346 0.605724400430364  0.72978997 32.9492812050068 -0.393113979361911 0.634109658608591  0.59468495 
-32.4183769697902 -0.484434072519383 0.444916593312403  1 32.5487707759836 -0.444016255369639 0.466036475495544  0.88236546 32.718515614046 -0.389731501741252 0.494321178208995  0.76473092 32.9492811850068 -0.314557422400675 0.533397296455011  0.64709638 
-32.4183769697902 -0.373083585980519 0.337094069381108  1 32.5594737264919 -0.334335296030074 0.369329639212216  0.90682413 32.732304914701 -0.285751536672469 0.409641450116924  0.81364825 32.9492812950068 -0.223779520728956 0.460941301693536  0.72047238 
-32.4183769697902 -0.235450488863298 0.258939153868949  1 32.5724390171078 -0.205716077230989 0.303410972681247  0.93827098 32.7477875854364 -0.171259081204369 0.354851368574535  0.87654197 32.9492814750068 -0.131088921946389 0.414700726137227  0.81481295 
-32.4183769697902 -0.119238130213507 0.228109187164604  1 32.5835958776377 -0.102057795727485 0.279435924852494  0.96709727 32.7601546760238 -0.0834167005920805 0.335082727895575  0.93419454 32.9492816550068 -0.0631687053803524 0.395447484802747  0.90129181 
-32.4183769697902 -0.0397466489178644 0.221258032639192  1 32.5915141680138 -0.0335065327014748 0.274966304700198  0.98864419 32.7684461664176 -0.0270416122144076 0.330623761983785  0.97728838 32.9492817750068 -0.0203427842862304 0.388271711691916  0.96593257 
-32.4183769697902 -8.97180042613763e-007 0.221258007919191  1 32.5955505782055 -6.92920032911934e-007 0.275451984623267  1 32.7725279766115 -4.78380022721831e-007 0.330344534450523  1 32.9492818450068 -2.51270011934685e-007 0.385932318830801  1 
-
-0 5
-0.11571716 1
-0.23143431 1
-0.46286863 1
-0.69430294 1
-0.92573725 1
-1.15717156 1
-1.50432303 3
-1.62004019 1
-1.8514745 1
-2.08290881 1
-2.31434313 1
-2.54577744 1
-2.77721175 1
-3.00864606 5
-
-0 4
-1 4
-
-9 1 1 0 0 3 2 6 4 4 3 25.9893209044264 -1.2407928679345 1.41444127418235  1 25.9893209344264 -0.723604166519352 1.92052181521989  0.85737039 25.9893209344264 0.723602338749265 1.9205219782199  0.85737039 25.9893209044264 1.24079115393441 1.41444155318237  1 
-26.7065109884911 -1.21027243248485 1.41444127718235  1 26.6771494170965 -0.709426906225968 1.87757598918007  0.8529936 26.6771494170965 0.70942484422587 1.87757614918008  0.8529936 26.7065109984911 1.21027048648476 1.41444154918237  1 
-28.1506004970817 -1.12559133446272 1.41444128718235  1 28.0835873238988 -0.666630513403249 1.79034847403699  0.84424001 28.0835872638988 0.666627888893124 1.79034862403699  0.84424001 28.1506003870817 1.1255888294626 1.41444154018237  1 
-30.3018883192624 -0.844083729111824 1.41444131818235  1 30.2330803859942 -0.507891786923564 1.6546025515894  0.83096916 30.2330803059942 0.507888670973416 1.65460266558941  0.83096916 30.3018881792624 0.844080731411682 1.41444150818236  1 
-31.7217072867002 -0.463447276602563 1.41444136118236  1 31.6903881952126 -0.281876920968435 1.56117344415176  0.8220751 31.6903881052126 0.281874858058337 1.56117350815176  0.8220751 31.7217071467002 0.463445326412471 1.41444146518236  1 
-32.4183772197902 -0.208516963644024 1.41444139018236  1 32.4183771297902 -0.12752453053709 1.51294272586092  0.81755784 32.4183771797902 0.127523451547039 1.51294275486092  0.81755784 32.4183773097902 0.208515993143978 1.41444143718236  1 
-
-0 4
-0.97957324 1
-1.95914649 1
-2.97015674 4
-
-0 3
-0.5 1
-1 3
-
-9 1 1 0 0 4 3 5 5 2 3 25.9893209044264 1.24079115393441 1.41444155318237  1 25.0175634582704 1.28214516389862 1.41444155718237  1 23.0918736368051 1.3214520967656 1.41444156218237  1 21.1275192035033 1.36275808372753 1.41444156618237  1 20.1549001573063 1.36866520500811 1.41444156718237  1 
-25.9893212344265 3.87379303799529 -1.42696263277709  0.40019002 25.123349293295 4.29750952712074 -1.5962689568187  0.39300223 23.2580136246963 4.58650414984725 -1.7754363963287  0.37862663 21.2410419088953 5.33284517229654 -2.09114358632399  0.36425103 20.1549001573063 5.3675639999456 -2.16599949987945  0.35706323 
-25.9893214844265 -2.9615001406637e-007 -3.57904640699557  0.44010137 25.0918429517985 -2.64820012578275e-007 -4.0750756145557  0.43647271 23.1372043289582 -3.39050016104011e-007 -4.50801631311928  0.4292154 21.2082447073375 -2.53570012043929e-007 -5.07724453415616  0.42195809 20.1549001573063 -2.8646001360612e-007 -5.01896813038818  0.41832944 
-25.9893212344265 -3.87379411299534 -1.42696350277713  0.40019002 25.123349253295 -4.29751003012076 -1.59626974181874  0.39300223 23.2580136246963 -4.5865052898473 -1.77543742432875  0.37862663 21.2410419688953 -5.33284692229662 -2.09114493332405  0.36425103 20.1549001573063 -5.36756521394566 -2.16600070587951  0.35706323 
-25.9893209044264 -1.2407928679345 1.41444127418235  1 25.0175634582704 -1.28214692889871 1.41444127418235  1 23.0918736368051 -1.32145396176569 1.41444126918235  1 21.1275192035033 -1.36276005072763 1.41444126418235  1 20.1549001573063 -1.3686672230082 1.41444126018235  1 
-
-0 5
-3.42297087 5
-
-0 4
-0.5 1
-1 4
-
-9 1 1 0 0 3 4 6 35 4 32 25.9893209044264 1.24079115393441 1.41444155318237  1 25.9893209144264 1.2822751379048 1.36967410805603  0.97693039 25.9893209244264 1.3627299827262 1.27401077351226  0.93268382 25.9893209444264 1.47127512888182 1.11565706899086  0.87174635 25.9893209744264 1.58512328428931 0.880018332248626  0.80045415 25.9893210044264 1.66384068402819 0.618812053391994  0.73828835 25.9893210344265 1.70030219276002 0.337462372068602  0.68449316 25.9893210644265 1.6897855082605 0.0825492001808764  0.64415145 25.9893210844265 1.64816147328347 -0.137692002530019  0.61400143 25.9893211144265 1.57851686697552 -0.358006185714381  0.58719589 25.9893211344265 1.4795426112745 -0.574296813547634  0.56361201 25.9893211644265 1.34624978294343 -0.775165883678402  0.54384264 25.9893211844265 1.18120730410433 -0.954314886817523  0.52765158 25.9893211944265 0.991078565083704 -1.11361808489402  0.51420981 25.9893212144265 0.778331953498782 -1.24885322531734  0.5034512 25.9893212244265 0.54465051770951 -1.3478598540199  0.49594024 25.9893212344265 0.296990527996292 -1.40701193782948  0.49158247 25.9893212344265 0.0427271076694286 -1.43268506804889  0.4897189 25.9893212344265 -0.213044431039067 -1.42410571364139  0.49034009 25.9893212244265 -0.505014806086915 -1.36465336881755  0.49468841 25.9893212144265 -0.816603772766596 -1.2326388005472  0.50470302 25.9893211944265 -1.09270254090058 -1.04429528560136  0.51991389 25.9893211644265 -1.32308762884329 -0.810072817306392  0.54054774 25.9893211344265 -1.47954387927456 -0.574297145927649  0.56361201 25.9893211144265 -1.57851818297559 -0.358006540334397  0.58719589 25.9893210844265 -1.64816283828353 -0.137692372790036  0.61400143 25.9893210644265 -1.68978692326057 0.0825488205708584  0.64415145 25.9893210344265 -1.70030366476009 0.337461990098584  0.68449316 25.9893210044264 -1.66384222002826 0.618811679601976  0.73828835 25.9893209744264 -1.58512487828939 0.880017976148609  0.80045415 25.9893209444264 -1.48447892450896 1.08833140069297  0.86283482 25.9893209244264 -1.37982669253825 1.24907096232768  0.92252758 25.9893209144264 -1.30169948982741 1.3465796719591  0.96586875 25.9893209144264 -1.26129280790819 1.39231875213159  0.98846519 25.9893209044264 -1.2407928679345 1.41444127418235  1 
-26.7065109984911 1.21027048648476 1.41444154918237  1 26.7213278091949 1.24558332416203 1.37381204925257  0.97946655 26.7515571406307 1.31363351739424 1.28736330014647  0.94008423 26.7975896728172 1.40427928769968 1.14505414838715  0.88584592 26.8591513857412 1.49686369309721 0.934447565713876  0.82239124 26.9211453286857 1.55749285597694 0.702566418670113  0.76705964 26.9824908715995 1.58031314006084 0.454154142881163  0.71917843 27.0341360340525 1.56274270022629 0.229643645327487  0.68327169 27.076423046061 1.51887566714272 0.0360118875004728  0.65643622 27.1170321779899 1.45039909889026 -0.157107980142228  0.63257754 27.1553807398113 1.3563338224224 -0.346337304340138  0.61158636 27.1896150214374 1.23199119851644 -0.522459168235478  0.59399033 27.2192011628426 1.07941564726949 -0.679799770688755  0.57957924 27.2449048240635 0.904807393216043 -0.819594031988626  0.56761519 27.2662717950784 0.710263977475727 -0.938342486678874  0.55803933 27.2816287558078 0.496798980586684 -1.02553062771009  0.55135409 27.2907106162391 0.270770031540886 -1.07764181518524  0.54747539 27.2946338064255 0.0389720961310751 -1.10024787025897  0.54581669 27.2933234263632 -0.194261222626913 -1.09269727590033  0.54636959 27.2842245359311 -0.460730032143501 -1.04026799241008  0.55023988 27.2637480049585 -0.745357876112598 -0.924013897068303  0.55915354 27.2338661935392 -0.99827445118549 -0.758423352063175  0.57269219 27.1955189017178 -1.21057690449931 -0.552832445788131  0.59105766 27.1553807398113 -1.35633539842247 -0.346337463440146  0.61158636 27.1170321779899 -1.45040068989033 -0.157108154972237  0.63257754 27.076423046061 -1.5188772841428 0.0360116864604632  0.65643622 27.0341360340525 -1.56274434022637 0.229643430607477  0.68327169 26.9824908815995 -1.58031480806092 0.454153906161152  0.71917843 26.9211453286857 -1.55749457897702 0.702566171410101  0.76705964 26.8591513857412 -1.49686545709729 0.934447301413863  0.82239124 26.8047982131595 -1.4150717702123 1.12039302921581  0.87791409 26.7588567809774 -1.32797084307523 1.2647962700746  0.93104451 26.7286549295429 -1.2620551999444 1.3528579812573  0.96962097 26.7138425388394 -1.22773734731439 1.39433727022746  0.98973327 26.7065109884911 -1.21027243248485 1.41444127718235  1 
-28.1506003870817 1.1255888294626 1.41444154018237  1 28.1838979086633 1.1508387036619 1.38202397364261  0.98453887 28.2507726118396 1.19906384495247 1.3134474553854  0.95488505 28.3499580765507 1.26229193995565 1.20112752105049  0.91404507 28.4778294026243 1.32465551091776 1.03503591816157  0.86626542 28.6013833784928 1.36213596169798 0.852541449963544  0.82460223 28.7187943440695 1.37034541108791 0.656740721763509  0.78854897 28.8140999785962 1.34829534004059 0.478493511307221  0.76151217 28.8898424021938 1.30652540405662 0.323759373307744  0.74130578 28.9607162955601 1.24513548614076 0.169063565130088  0.72334085 29.0260289786623 1.16333549725547 0.0168410757499081  0.70753505 29.0830505013707 1.0564882841805 -0.126562545831398  0.69428572 29.1313840436664 0.925640577995566 -0.255916218385368  0.68343456 29.172682565628 0.776320905553263 -0.371242212553058  0.67442596 29.2065335872358 0.610076253717066 -0.469747313181799  0.66721559 29.2305984583789 0.426973807490167 -0.542714468587553  0.66218179 29.24472746905 0.232731934034173 -0.586447823104776  0.65926123 29.2508075893387 0.0336059541961971 -0.605421909825996  0.65801228 29.2487783392424 -0.166911773857883 -0.599089180955208  0.6584286 29.234644708571 -0.396046505331199 -0.554983562510303  0.66134282 29.202557877047 -0.640191804457478 -0.457692937649247  0.66805456 29.1550255647893 -0.856629817587731 -0.320151179026364  0.6782488 29.0927656018322 -1.03819581031165 -0.150996809981963  0.6920775 29.0260290386623 -1.16321649124982 0.0168411919799137  0.70753505 28.9607163555602 -1.24502744813563 0.169063681600094  0.72334085 28.8898424721938 -1.30642885505204 0.323759452207748  0.74130578 28.8141000485962 -1.34821061203656 0.478493575457224  0.76151217 28.7187944240695 -1.37027489908456 0.65674073758351  0.78854897 28.6013834684928 -1.36208207569542 0.852541430373543  0.82460223 28.4778295026243 -1.32461812391598 1.03503582516156  0.86626542 28.365206657275 -1.26961740730359 1.18132183610977  0.90807262 28.2667104025966 -1.20914361243124 1.29539928852816  0.94807839 28.2002362094393 -1.16257346221927 1.36526994584684  0.97712541 28.1671195178663 -1.13810082605689 1.39835883341848  0.99226943 28.1506004970817 -1.12559133446272 1.41444128718235  1 
-30.3018881792624 0.844080731411682 1.41444150818236  1 30.3352791008484 0.861588063783235 1.39431348522633  0.99222874 30.4008019839605 0.89546851587247 1.35148542719211  0.97732378 30.4943660884046 0.941799190673059 1.27983350878883  0.95679629 30.6090238638506 0.991697733903113 1.16948537054757  0.9327807 30.713902088832 1.02663141576237 1.04380938057828  0.91183944 30.8085964133297 1.04238241951051 0.903889975212468  0.89371791 30.8821451868231 1.03535339717665 0.771378608878516  0.88012835 30.9385996295046 1.01174128005513 0.652922561462156  0.86997197 30.9899002119412 0.972524739062444 0.532391080447218  0.86094222 31.0359241841272 0.91677449101445 0.411609457150399  0.85299772 31.0751611859909 0.839442628421384 0.294677541886432  0.84633818 31.1077531275389 0.740495013681624 0.187014432592708  0.84088404 31.1351300888393 0.625032615127455 0.0900692181980581  0.83635602 31.1572539098901 0.494174422372024 0.00632167723026354  0.83273186 31.172811930629 0.347181239430223 -0.0565969960882129  0.83020171 31.1818814710598 0.189545165882912 -0.0945044870587221  0.82873374 31.1857697012445 0.0274447231135543 -0.110967986580696  0.82810598 31.1844729811829 -0.136091540084001 -0.105477300889903  0.82831523 31.1754141407526 -0.32246090643607 -0.067120530118054  0.82978002 31.1546700997674 -0.518456339435354 0.0167712304665907  0.83315355 31.1234775582858 -0.68841401761791 0.133779782114198  0.8382775 31.0817606763043 -0.82633217441867 0.275010207732283  0.84522825 31.0359242641272 -0.916659908829007 0.411609880910419  0.85299772 30.9899003119412 -0.97241875496741 0.53239153125724  0.86094222 30.9385997295046 -1.01164467305054 0.652922972232176  0.86997197 30.8821452968231 -1.03526682717253 0.771379014828535  0.88012835 30.8085965433297 -1.04230848350699 0.903890315232484  0.89371791 30.713902238832 -1.02657314875961 1.0438096705783  0.91183944 30.6090240238506 -0.991655972121129 1.16948553054758  0.9327807 30.5083829090704 -0.947824774759259 1.26634406214811  0.95379434 30.4161223646882 -0.903003212690349 1.33975319063486  0.97390253 30.3514747916176 -0.869933533189624 1.38372764772353  0.9885025 30.3185186000523 -0.852792032715446 1.40441666870621  0.99611437 30.3018883192624 -0.844083729111824 1.41444131818235  1 
-31.7217071467002 0.463445326412471 1.41444146518236  1 31.7366649974106 0.482481440186638 1.4024437676125  0.99738245 31.7655748987838 0.520301318582985 1.37601550735723  0.99236209 31.8058725406978 0.575505889705062 1.3287598301127  0.98544793 31.8537414129715 0.642849482753711 1.24935044134096  0.97735889 31.896133824985 0.700080021952015 1.15274732975256  0.97030537 31.9333186867512 0.742403917452292 1.03935310736662  0.96420159 31.9615144780904 0.761747711411073 0.927145044797025  0.95962429 31.9827633190997 0.762408991562482 0.823947474025403  0.95620338 32.0017831500031 0.748575581085431 0.717179860194214  0.95316194 32.0186177208027 0.719217832831012 0.608554745424798  0.95048603 32.0328026314764 0.669001687915874 0.501381754744354  0.94824294 32.0444701220306 0.597459147677785 0.401380615984555  0.94640585 32.0541909024923 0.509664132937746 0.310743913729543  0.9448807 32.0619939328629 0.406625881433692 0.231912568125255  0.94366 32.0674534631222 0.287305702476288 0.172224242540212  0.94280778 32.0706255632729 0.157254995519211 0.136158712457191  0.94231333 32.0719831033374 0.0227817569220753 0.120485102642735  0.94210189 32.0715305233159 -0.11317808804567 0.125710523100929  0.94217237 32.0683643731655 -0.267402066010916 0.16226597496722  0.94266574 32.0610850028198 -0.426495507637449 0.241850492137281  0.94380203 32.0500620722962 -0.559485357584127 0.352005298629354  0.9455279 32.035173381589 -0.660615109577532 0.483470896923634  0.94786909 32.0186178008027 -0.719219974031114 0.608555339334826  0.95048603 32.0017832500031 -0.748577590085526 0.717180500194244  0.95316194 31.9827634290997 -0.762410909232573 0.823948078815432  0.95620338 31.9615146080904 -0.761749518031159 0.927145656597054  0.95962429 31.9333188267512 -0.742405581722371 1.03935365236665  0.96420159 31.896133974985 -0.700081650202093 1.15274782675258  0.97030537 31.8537415829715 -0.642851000933783 1.24935078534098  0.97735889 31.81181331098 -0.583855287361637 1.31890539864464  0.9844368 31.7722523291009 -0.52944233527716 1.36818548098532  0.99120973 31.7438653577526 -0.491897118783858 1.39586195029988  0.99612736 31.7291763270549 -0.472950566343945 1.40845051389781  0.99869122 31.7217072867002 -0.463447276602563 1.41444136118236  1 
-32.4183773097902 0.208515993143978 1.41444143718236  1 32.4183769697902 0.230428868494783 1.40654101280711  1 32.4183769697902 0.274386795812673 1.38819172293557  1 32.4183769697902 0.340060319251998 1.352535736242  1 32.4183769697902 0.42361158841047 1.2871869911381  1 32.4183769697902 0.498796362461555 1.20319866714887  1 32.4183769697902 0.560491614381922 1.10084200428719  1 32.4183769697902 0.597748087161509 0.996774824704261  1 32.4183769697902 0.614200232972944 0.899515794844706  1 32.4183769697902 0.616397663677317 0.797982349572126  1 32.4183769697902 0.603286407844565 0.693878234457446  1 32.4183769697902 0.569424242696199 0.590233999654609  1 32.4183769697902 0.51418802550262 0.492932551593039  1 32.4183769697902 0.442676084495985 0.404482602531892  1 32.4183769697902 0.355877809683288 0.32732432491707  1 32.4183769697902 0.252652863160367 0.268708200192954  1 32.4183769697902 0.138605139903391 0.233247368748655  1 32.4183769697902 0.0201240339958403 0.217832436316485  1 32.4183769697902 -0.0998694037735419 0.222970859380547  1 32.4183769697902 -0.235450488863298 0.258939153868949  1 32.4183769697902 -0.373083585980519 0.337094069381108  1 32.4183769697902 -0.484434072519383 0.444916593312403  1 32.4183769697902 -0.563781888948201 0.57296065804417  1 32.4183769697902 -0.603287652174625 0.693878908917478  1 32.4183769697902 -0.616398762167369 0.797983080002161  1 32.4183769697902 -0.614201228372992 0.899516493914739  1 32.4183769697902 -0.597748956941551 0.996775537894295  1 32.4183769697902 -0.560492321731956 1.10084265228722  1 32.4183769697902 -0.498797019581586 1.2031992711489  1 32.4183769697902 -0.423612111790495 1.28718743413812  1 32.4183769697902 -0.35050471677808 1.34436762685403  1 32.4183769697902 -0.28533279434258 1.38224928165331  1 32.4183769697902 -0.241418770796776 1.40195406758924  1 32.4183769697902 -0.219472775064397 1.41049133499474  1 32.4183772197902 -0.208516963644024 1.41444139018236  1 
-
-0 4
-0.39052523 1
-0.78105045 1
-1.18410863 4
-
-0 5
-0.03846154 1
-0.07692308 1
-0.11538462 1
-0.15384615 1
-0.19230769 1
-0.23076923 1
-0.25 1
-0.26923077 1
-0.30769231 1
-0.34615385 1
-0.36538462 1
-0.38461538 1
-0.42307692 1
-0.46153846 1
-0.48076923 1
-0.5 1
-0.53846154 1
-0.57692308 1
-0.61538462 1
-0.65384615 1
-0.69230769 1
-0.73076923 1
-0.75 1
-0.76923077 1
-0.80769231 1
-0.84615385 1
-0.88461538 1
-0.92307692 1
-0.96153846 1
-0.98076923 1
-1 5
-
-9 0 0 0 0 3 2 13 4 11 3 31.9768135388171 6.52772034505006 1.34215900474913  31.01492907313 4.97211271016267 1.17266812269874  29.0911601417559 1.86089743938788 0.833686358567975  28.1292756760688 0.305289803630487 0.664195476387591  
-31.9776257188556 6.52787760605753 1.34058743667448  31.0159628731791 4.97234342617363 1.17015097357919  29.0926371918261 1.86127506740582 0.829278047298592  28.1309743561495 0.305740887431912 0.658841584043295  
-31.9796644289525 6.52818048507192 1.33756072953072  31.019160623331 4.97273251419211 1.16541305835415  29.098153002088 1.86183657143249 0.821117715620997  28.1376491964666 0.306388600312677 0.648970044164422  
-31.9833584091279 6.52855755808983 1.33379279035176  31.0249405036055 4.97315292021208 1.15967029208138  29.1081046925607 1.86234364445657 0.811425297120632  28.1496867970383 0.30693900613882 0.637302799540257  
-31.9876254293306 6.5288832181053 1.3305387791972  31.0314678639156 4.97349169522817 1.15457946183958  29.1191527530855 1.86270864847391 0.802660826474342  28.1629951876704 0.30731712514678 0.626701508916723  
-31.9920575595411 6.52916842511885 1.32768909906185  31.0382502542377 4.97376464924113 1.15007888362581  29.1306356436309 1.86295709748571 0.794858452093749  28.1768283383275 0.307553321457998 0.617248236277717  
-31.9966522397594 6.52943877313169 1.32498794793355  31.0453044645728 4.97400342325247 1.14584320242463  29.1426089041996 1.86313272349405 0.787553710466792  28.191261129013 0.30769737396484 0.608408964567874  
-32.0012638999784 6.52969316214377 1.32244629881283  31.0523935149095 4.97421614326258 1.14185770023533  29.1546527647716 1.8632621055002 0.780680503590332  28.2057823797027 0.307785086679007 0.600091905042835  
-32.0059658002017 6.52993654115533 1.32001469869733  31.0596181652526 4.97440876527173 1.13803990705399  29.1669228953544 1.86335321450452 0.774090324447316  28.2205752604053 0.307825438490923 0.592115532973977  
-32.0091598003534 6.5300832841623 1.3185486566277  31.0645287154859 4.97451102927658 1.1357304489443  29.1752665557507 1.86336651950516 0.770094032897502  28.2306354708832 0.307794265029442 0.587275825114104  
-32.014036060585 6.53028479217187 1.31653555253208  31.0720285258421 4.97463153828231 1.1325576017936  29.1880134563562 1.86332503050319 0.76460170183663  28.2460059216132 0.307671776593624 0.580623751708147  
-32.0174359507465 6.53039543717712 1.31543031647958  31.0772645760908 4.97466831528406 1.13081204871069  29.1969218267793 1.86321407249792 0.761575513642894  28.2567504421236 0.307486950444846 0.576957245903997  
-32.0208866309104 6.53046184918028 1.31476716144809  31.0825822863434 4.9746334702824 1.1297553436605  29.2059735872092 1.86297671148664 0.759731710075318  28.2676692426422 0.307148332868762 0.574719893107729  
-
-0 4
-0.10050716 1
-0.20101433 1
-0.30117802 1
-0.4013417 1
-0.50136613 1
-0.60139055 1
-0.70125099 1
-0.7996628 1
-0.80111143 1
-1 4
-
-0 3
-32.99348027 1
-65.98696054 3
-
-9 0 0 0 0 2 3 4 27 3 25 33.0949317119248 6.52779751805373 1.34157750972151  33.0751543109855 6.52811956706903 1.33835550956847  33.0354316890987 6.52871351909724 1.3324126432862  32.9759893362754 6.52948805113403 1.32466167791805  32.9162629034385 6.53017449516663 1.31779103359171  32.8567681006127 6.53080887319676 1.31144079329009  32.8076428782793 6.53131102422061 1.30641382305132  32.7679022763918 6.53169881823903 1.30253135786692  32.7281508845037 6.53206964125665 1.29881851069057  32.6919298627833 6.53237668027123 1.29574372754452  32.6521050908917 6.53268608128592 1.29264473139733  32.6122951490008 6.5329718992995 1.28978142926133  32.5763027372913 6.53318839930978 1.28761156415826  32.5363966153958 6.5333971173197 1.28551880705886  32.4988313036116 6.53356580532771 1.28382651697848  32.4604938817907 6.53367703433299 1.28270835392537  32.4205272498923 6.5337551023367 1.28192133588799  32.3848972182 6.53378656433819 1.28160085487277  32.3448926862999 6.53374683633631 1.28199111989131  32.3049120644009 6.53365880533213 1.28286413393277  32.2692945227092 6.53352087632558 1.28423659299796  32.2293816708134 6.53328197131423 1.28661749911105  32.1895057089194 6.53298085329993 1.28962018425367  32.1543253672484 6.53262221928289 1.29319849642363  32.0948969144257 6.53186939524713 1.30071233378052  32.0554701025531 6.53120520921559 1.30734368909549  32.0208866309104 6.53046184918028 1.31476716144809  
-32.7499748255403 4.93474840638796 1.16766948946132  32.7192204240795 4.93564017743032 1.16298702823892  32.6575667711511 4.93741089151442 1.15412881181817  32.5651846167632 4.94004520463955 1.1421308042483  32.472584992365 4.94267194976431 1.13122674473038  32.3801581979749 4.94531115288966 1.1211634432524  32.3039714143562 4.94750503299387 1.11341569388441  32.2422415114242 4.94928912707861 1.10751365360407  32.180486768491 4.95107294916334 1.10190174133752  32.1243025358224 4.95268575923994 1.09726041111707  32.062458792885 4.95445182732382 1.09258553789503  32.0006183199477 4.95620824040725 1.08826206168967  31.9448008672966 4.95776608248124 1.08498480853401  31.8828457843538 4.95947124256223 1.0818390673846  31.8244735415813 4.9610559516375 1.07930980626446  31.7650015787565 4.96261041271134 1.07765987218609  31.7029736558104 4.96419200378646 1.0765272571323  31.6476336431819 4.96556264385156 1.07611284811262  31.5855674002339 4.96700725992017 1.07683585714696  31.523503667286 4.96839015498586 1.07833730021827  31.4681498946568 4.96954612004076 1.08064176932773  31.4062086417148 4.97072058709655 1.08458515251503  31.3443655287774 4.97180469314804 1.08952466074964  31.2897805661848 4.97263065818727 1.09535999902681  31.1975343518033 4.97381913424372 1.10748819660286  31.1362556088927 4.97437685327021 1.11807348310564  31.0825822863434 4.9746334702824 1.1297553436605  
-32.0600610427711 1.74865018405642 0.819853447300947  32.0073526302676 1.7506813981529 0.812250063599806  31.9018369252559 1.75480563634879 0.79756114746212  31.7435751777388 1.76115951265058 0.777069055988798  31.5852291702178 1.76766685795967 0.758098167717729  31.4269384126994 1.77431571427547 0.740608743727026  31.29662849651 1.77989304954038 0.727419435510568  31.1909200014891 1.78446974475776 0.717478243578386  31.0851585464657 1.78907956497672 0.708068202251433  30.9890478919007 1.79330391817736 0.700293778702168  30.8831661868716 1.79798331839962 0.692467150500423  30.7772646518416 1.80268092162275 0.68522332424636  30.6817971173071 1.80692144882416 0.679731297115503  30.5757441222699 1.8116194930473 0.67447958972606  30.4757580275208 1.81603624525709 0.670276383356418  30.3740169726883 1.82047716846802 0.667562910077535  30.2678664576464 1.82506580668597 0.665739098780909  30.1731064831456 1.82911480487829 0.665136832552303  30.0669168181018 1.83352810908791 0.666525331488253  29.9606868630562 1.83785285429332 0.669283633299265  29.8658606385522 1.84159660847114 0.673452121867258  29.7598625835176 1.84559782066119 0.680520458992986  29.6540851684934 1.84945237384427 0.689333611881588  29.5606909840574 1.85264753799603 0.699683003513158  29.4028092365584 1.8577186112369 0.721039922477557  29.297826631572 1.86072014137946 0.739533071485934  29.2059735872092 1.86297671148664 0.759731710075318  
-31.7151041563865 0.155601073240654 0.64594542643076  31.6514187333616 0.158202009114192 0.636881581510251  31.5239720073083 0.163503008365976 0.619277315384093  31.3327704582267 0.171716666386104 0.594538182009047  31.1415512591442 0.180164312727345 0.571533879146401  30.9503285100617 0.188817994238373 0.550331393799337  30.7929570325869 0.196087058173635 0.534421306283649  30.6652592465216 0.202060053337337 0.522460538775543  30.5374944404531 0.208082872803406 0.511151432738389  30.4214205649399 0.213612997176072 0.501810462414717  30.2935198788649 0.21974906441752 0.492407956978122  30.1655878127885 0.225917262300494 0.483703955744704  30.0502952473124 0.231499132155618 0.477104541351249  29.9221932912278 0.237693618419841 0.470799850661792  29.8014002754905 0.243526392546882 0.465759672082396  29.6785246696542 0.249410546986365 0.462514428918256  29.5503128635645 0.255502708045727 0.460345019605214  29.4358429081274 0.260890884931651 0.459648824992147  29.3075915220358 0.266788533021775 0.461370068843901  29.1792784659413 0.272584203627054 0.464756799784762  29.0647160204999 0.27762185237633 0.469857298097023  28.9366895544189 0.283036437433509 0.478488112366965  28.8089449883514 0.288276213802385 0.489238087677561  28.6961461829937 0.292655977140412 0.501844505726334  28.505446673936 0.299668350593482 0.527815785529903  28.3786121379117 0.303891784814085 0.550262865726082  28.2676692426422 0.307148332868762 0.574719893107729  
-
-0 3
-1.50650805 1
-3.0130161 3
-
-0 4
-0.05570744 1
-0.11141488 1
-0.16696246 1
-0.22251004 1
-0.27805727 1
-0.30397683 1
-0.33360449 1
-0.38915113 1
-0.4048358 1
-0.44469776 1
-0.50024348 1
-0.50488387 1
-0.5557892 1
-0.60493193 1
-0.61133224 1
-0.66687527 1
-0.70412236 1
-0.72242177 1
-0.77796828 1
-0.80331279 1
-0.8335034 1
-0.88903851 1
-0.9016564 1
-1 4
-
-9 1 1 0 0 4 3 20 4 17 2 32.4183769697902 -8.97180042613763e-007 0.221258007919191  1 32.5955505782055 -6.92920032911934e-007 0.275451984623267  1 32.7725279766115 -4.78380022721831e-007 0.330344534450523  1 32.9492818450068 -2.51270011934685e-007 0.385932318830801  1 
-32.4183769697902 0.0198719786838683 0.22125799555919  1 32.5935439781102 0.0166567782111545 0.275210549321799  0.99432209 32.7705106865157 0.013365243554815 0.330482605967081  0.98864418 32.9492818150068 0.00999475977472559 0.387081735455395  0.98296628 
-32.4183769697902 0.0596177359616904 0.222970747120542  1 32.5895673579213 0.050361924592063 0.276065393542402  0.98325745 32.7664431163225 0.0406644601914581 0.331701403054971  0.9665149 32.9492817450068 0.0305022608987796 0.389974052952773  0.94977235 
-32.4183769697902 0.138605139903391 0.233247368748655  1 32.5817831575516 0.118902490467565 0.28333205772755  0.96229287 32.758201385931 0.0972974650813814 0.338206541173948  0.92458573 32.9492816250068 0.0735684152643121 0.398395538012772  0.8868786 
-32.4183769697902 0.252652863160367 0.268708200192954  1 32.5708664570331 0.221319688622121 0.311408071501089  0.93434009 32.7459757953503 0.184665518311141 0.361266461449235  0.86868017 32.9492814550068 0.141483752450117 0.419886484193537  0.80302026 
-32.4183769697902 0.355877809683288 0.32732432491707  1 32.5611437165713 0.317771918303355 0.360840726629014  0.91075493 32.7343708747991 0.270482982417252 0.402334067289842  0.82150986 32.9492813150068 0.210886663836579 0.454509442358039  0.73226479 
-32.4183769697902 0.442676084495985 0.404482602531892  1 32.5528538561775 0.402181284982585 0.429149465493505  0.89153739 32.7238902243013 0.349220414277079 0.46132688547185  0.78307479 32.9492812250068 0.278201215013848 0.504378968516714  0.67461218 
-32.4183769697902 0.51418802550262 0.492932551593039  1 32.5458136458431 0.474411141953319 0.510654098994767  0.87581396 32.7145277038566 0.419876638943069 0.534883771065615  0.75162791 32.9492811950068 0.342477898996827 0.569192420665188  0.62744187 
-32.4183769697902 0.569424242696199 0.590233999654609  1 32.5401778555754 0.532158590946176 0.603202827900596  0.86358462 32.7067009834849 0.47891960997746 0.62165613176708  0.72716923 32.9492812250068 0.399567453958435 0.649079376379615  0.59075385 
-32.4183769697902 0.603286407844565 0.693878234457446  1 32.5364995654007 0.568951860643762 0.704378496926182  0.8557229 32.7014151032338 0.518325492839139 0.719713205554541  0.71144579 32.9492813450068 0.44016805630686 0.743257089652816  0.56716869 
-32.4183769697902 0.616397663677317 0.797982349572126  1 32.5348909253243 0.584136639085 0.808262964870429  0.8522288 32.699040453121 0.535617744200476 0.823380807048488  0.7044576 32.9492815750068 0.459317062316389 0.846891879695204  0.5566864 
-32.4183769697902 0.614200232972944 0.899515794844706  1 32.5349779253285 0.582655098754631 0.91093754907721  0.8522288 32.6991329631254 0.534818949032536 0.927618090989493  0.7044576 32.9492818650068 0.45931708834639 0.953481628297945  0.5566864 
-32.4183769697902 0.597748087161509 0.996774824704261  1 32.5367608554131 0.565350224252693 1.00981781896377  0.8557229 32.701693393247 0.516455560750322 1.02855669485382  0.71144579 32.9492822250068 0.440168132956863 1.05711642721033  0.56716869 
-32.4183769697902 0.560491614381922 1.10084200428719  1 32.5412487556263 0.524823580627781 1.11559490998791  0.8648949 32.7080541435491 0.472302576673168 1.13614139496382  0.7297898 32.9492826850069 0.393113914651908 1.16626418339457  0.59468471 
-32.4183769697902 0.498796362461555 1.20319866714887  1 32.5494674360167 0.45676894188536 1.21860172088047  0.88236539 32.7192575440813 0.397924667950407 1.23898936584883  0.76473078 32.9492832350069 0.314557294460669 1.26697655717815  0.64709617 
-32.4183769697902 0.42361158841047 1.2871869911381  1 32.5604026365361 0.374016994114853 1.30088923478892  0.90682407 32.733294124748 0.309028938368086 1.31789479759664  0.81364814 32.9492837450069 0.223779335838948 1.33943253361963  0.72047221 
-32.4183769697902 0.340060319251998 1.352535736242  1 32.5736001771629 0.283213244271907 1.36204763069379  0.93827095 32.7490240054951 0.214261898486894 1.37299118421358  0.87654189 32.9492841950069 0.131088696766379 1.38567307281594  0.81481284 
-32.4183769697902 0.274386795812673 1.38819172293557  1 32.5849312177011 0.212653721140509 1.39335010718058  0.96709725 32.7615764560913 0.142480674927469 1.39891498944489  0.9341945 32.949284475007 0.0631684621303408 1.40492628073041  0.90129175 
-32.4183769697902 0.230428868494783 1.40654101280711  1 32.5929656280827 0.166049587306932 1.4083386898925  0.98864418 32.769991506491 0.0961064613648118 1.41019188898052  0.97728837 32.949284645007 0.0203425346262185 1.41210203107124  0.96593255 
-32.4183773097902 0.208515993143978 1.41444143718236  1 32.5970603082772 0.143130653238341 1.41444142918236  1 32.7741352066878 0.0736935940402577 1.41444142218236  1 32.949284715007 -9.00000042747706e-011 1.41444141318236  1 
-
-0 5
-0.11554159 1
-0.23108318 1
-0.46216637 1
-0.69324955 1
-0.80879114 1
-0.92433273 1
-1.15541592 1
-1.3864991 1
-1.50204069 1
-1.61758228 1
-1.84866547 1
-2.07974865 1
-2.31083183 1
-2.54191502 1
-2.7729982 1
-3.00408138 5
-
-0 4
-1 4
-
-9 0 0 0 0 3 2 27 4 25 3 33.0949317119248 -6.52779751805373 1.34157750972151  32.7499748255403 -4.93474840638796 1.16766948946132  32.0600610427711 -1.74865018405642 0.819853447300947  31.7151041563865 -0.155601073240654 0.64594542643076  
-33.0751543109855 -6.52811956706903 1.33835550956847  32.7192204240795 -4.93564017743032 1.16298702823892  32.0073526302676 -1.7506813981529 0.812250063599806  31.6514187333616 -0.158202009114192 0.636881581510251  
-33.0354316890987 -6.52871351909724 1.3324126432862  32.6575667711511 -4.93741089151442 1.15412881181817  31.9018369252559 -1.75480563634879 0.79756114746212  31.5239720073083 -0.163503008365976 0.619277315384093  
-32.9759893362754 -6.52948805113403 1.32466167791805  32.5651846167632 -4.94004520463955 1.1421308042483  31.7435751777388 -1.76115951265058 0.777069055988798  31.3327704582267 -0.171716666386104 0.594538182009047  
-32.9162629034385 -6.53017449516663 1.31779103359171  32.472584992365 -4.94267194976431 1.13122674473038  31.5852291702178 -1.76766685795967 0.758098167717729  31.1415512591442 -0.180164312727345 0.571533879146401  
-32.8567681006127 -6.53080887319676 1.31144079329009  32.3801581979749 -4.94531115288966 1.1211634432524  31.4269384126994 -1.77431571427547 0.740608743727026  30.9503285100617 -0.188817994238373 0.550331393799337  
-32.8076428782793 -6.53131102422061 1.30641382305132  32.3039714143562 -4.94750503299387 1.11341569388441  31.29662849651 -1.77989304954038 0.727419435510568  30.7929570325869 -0.196087058173635 0.534421306283649  
-32.7679022763918 -6.53169881823903 1.30253135786692  32.2422415114242 -4.94928912707861 1.10751365360407  31.1909200014891 -1.78446974475776 0.717478243578386  30.6652592465216 -0.202060053337337 0.522460538775543  
-32.7281508845037 -6.53206964125665 1.29881851069057  32.180486768491 -4.95107294916334 1.10190174133752  31.0851585464657 -1.78907956497672 0.708068202251433  30.5374944404531 -0.208082872803406 0.511151432738389  
-32.6919298627833 -6.53237668027123 1.29574372754452  32.1243025358224 -4.95268575923994 1.09726041111707  30.9890478919007 -1.79330391817736 0.700293778702168  30.4214205649399 -0.213612997176072 0.501810462414717  
-32.6521050908917 -6.53268608128592 1.29264473139733  32.062458792885 -4.95445182732382 1.09258553789503  30.8831661868716 -1.79798331839962 0.692467150500423  30.2935198788649 -0.21974906441752 0.492407956978122  
-32.6122951490008 -6.5329718992995 1.28978142926133  32.0006183199477 -4.95620824040725 1.08826206168967  30.7772646518416 -1.80268092162275 0.68522332424636  30.1655878127885 -0.225917262300494 0.483703955744704  
-32.5763027372913 -6.53318839930978 1.28761156415826  31.9448008672966 -4.95776608248124 1.08498480853401  30.6817971173071 -1.80692144882416 0.679731297115503  30.0502952473124 -0.231499132155618 0.477104541351249  
-32.5363966153958 -6.5333971173197 1.28551880705886  31.8828457843538 -4.95947124256223 1.0818390673846  30.5757441222699 -1.8116194930473 0.67447958972606  29.9221932912278 -0.237693618419841 0.470799850661792  
-32.4988313036116 -6.53356580532771 1.28382651697848  31.8244735415813 -4.9610559516375 1.07930980626446  30.4757580275208 -1.81603624525709 0.670276383356418  29.8014002754905 -0.243526392546882 0.465759672082396  
-32.4604938817907 -6.53367703433299 1.28270835392537  31.7650015787565 -4.96261041271134 1.07765987218609  30.3740169726883 -1.82047716846802 0.667562910077535  29.6785246696542 -0.249410546986365 0.462514428918256  
-32.4205272498923 -6.5337551023367 1.28192133588799  31.7029736558104 -4.96419200378646 1.0765272571323  30.2678664576464 -1.82506580668597 0.665739098780909  29.5503128635645 -0.255502708045727 0.460345019605214  
-32.3848972182 -6.53378656433819 1.28160085487277  31.6476336431819 -4.96556264385156 1.07611284811262  30.1731064831456 -1.82911480487829 0.665136832552303  29.4358429081274 -0.260890884931651 0.459648824992147  
-32.3448926862999 -6.53374683633631 1.28199111989131  31.5855674002339 -4.96700725992017 1.07683585714696  30.0669168181018 -1.83352810908791 0.666525331488253  29.3075915220358 -0.266788533021775 0.461370068843901  
-32.3049120644009 -6.53365880533213 1.28286413393277  31.523503667286 -4.96839015498586 1.07833730021827  29.9606868630562 -1.83785285429332 0.669283633299265  29.1792784659413 -0.272584203627054 0.464756799784762  
-32.2692945227092 -6.53352087632558 1.28423659299796  31.4681498946568 -4.96954612004076 1.08064176932773  29.8658606385522 -1.84159660847114 0.673452121867258  29.0647160204999 -0.27762185237633 0.469857298097023  
-32.2293816708134 -6.53328197131423 1.28661749911105  31.4062086417148 -4.97072058709655 1.08458515251503  29.7598625835176 -1.84559782066119 0.680520458992986  28.9366895544189 -0.283036437433509 0.478488112366965  
-32.1895057089194 -6.53298085329993 1.28962018425367  31.3443655287774 -4.97180469314804 1.08952466074964  29.6540851684934 -1.84945237384427 0.689333611881588  28.8089449883514 -0.288276213802385 0.489238087677561  
-32.1543253672484 -6.53262221928289 1.29319849642363  31.2897805661848 -4.97263065818727 1.09535999902681  29.5606909840574 -1.85264753799603 0.699683003513158  28.6961461829937 -0.292655977140412 0.501844505726334  
-32.0948969144257 -6.53186939524713 1.30071233378052  31.1975343518033 -4.97381913424372 1.10748819660286  29.4028092365584 -1.8577186112369 0.721039922477557  28.505446673936 -0.299668350593482 0.527815785529903  
-32.0554701025531 -6.53120520921559 1.30734368909549  31.1362556088927 -4.97437685327021 1.11807348310564  29.297826631572 -1.86072014137946 0.739533071485934  28.3786121379117 -0.303891784814085 0.550262865726082  
-32.0208866309104 -6.53046184918028 1.31476716144809  31.0825822863434 -4.9746334702824 1.1297553436605  29.2059735872092 -1.86297671148664 0.759731710075318  28.2676692426422 -0.307148332868762 0.574719893107729  
-
-0 4
-0.05570744 1
-0.11141488 1
-0.16696246 1
-0.22251004 1
-0.27805727 1
-0.30397683 1
-0.33360449 1
-0.38915113 1
-0.4048358 1
-0.44469776 1
-0.50024348 1
-0.50488387 1
-0.5557892 1
-0.60493193 1
-0.61133224 1
-0.66687527 1
-0.70412236 1
-0.72242177 1
-0.77796828 1
-0.80331279 1
-0.8335034 1
-0.88903851 1
-0.9016564 1
-1 4
-
-0 3
-1.50650805 1
-3.0130161 3
-
-9 0 0 0 0 3 2 17 4 15 3 32.0208866309104 -6.53046184918028 1.31476716144809  31.0825822863434 -4.9746334702824 1.1297553436605  29.2059735872092 -1.86297671148664 0.759731710075318  28.2676692426422 -0.307148332868762 0.574719893107729  
-32.0174108207453 -6.5303949531771 1.31543514747981  31.077225846089 -4.97466856928407 1.13081974571105  29.1968558967762 -1.863215800498 0.761588943223532  28.2566709221198 -0.307489416804963 0.576973541944771  
-32.0123115705031 -6.5302285001692 1.31709785555879  31.0693727157159 -4.97461261628141 1.13344564083578  29.1834949961416 -1.86338084650584 0.766141211199753  28.2405561413544 -0.307764961818051 0.582488996446741  
-32.0059369002004 -6.52993506515526 1.32002944469803  31.0595748952506 -4.97440760527167 1.13806254805507  29.166850875351 -1.8633526855045 0.774128754589141  28.2204888704012 -0.307825225570913 0.592161857776178  
-32.0027806400504 -6.5297716511475 1.32166211677558  31.0547235150202 -4.97427822626553 1.14062696317687  29.1586092649596 -1.86329137750159 0.778556656259455  28.2105521399293 -0.307797952679618 0.597521502820747  
-31.9996599799022 -6.52960474713957 1.32332966785478  31.0499279847924 -4.97414225225907 1.14324290430112  29.1504640045727 -1.86321726249807 0.783069375583798  28.2007320094628 -0.307754768047566 0.602982611390136  
-31.9965831497561 -6.52943477113149 1.32502793293545  31.0451996845678 -4.97399995325231 1.14590501842757  29.1424327541912 -1.86313031849394 0.787659189741802  28.1910492890029 -0.307695501554751 0.608536275293921  
-31.9935173996105 -6.52925425412292 1.32683154602111  31.0404909243441 -4.97384035924473 1.14873495756198  29.1344379838115 -1.86301257048834 0.792541783003713  28.1814115085452 -0.307598676510152 0.614445195484579  
-31.9905438394692 -6.52907101711422 1.32866236210807  31.0359338441277 -4.97367142623671 1.15161598369882  29.1267138534446 -1.86287224348168 0.797523227640319  28.1721038481031 -0.307472652404167 0.620476849581068  
-31.9890277493972 -6.52897325810957 1.32963913715447  31.0336148240175 -4.97357776023226 1.15315792377206  29.1227889832582 -1.86278676647762 0.800195497717245  28.1673760578785 -0.307391269690301 0.623714284684837  
-31.9861686792614 -6.52877203910002 1.33164968724996  31.0292394438097 -4.97337603822267 1.15631745292213  29.1153809829063 -1.86258403746799 0.805652985636462  28.1584517474546 -0.307188036660648 0.630320751898628  
-31.9847156291924 -6.52866071909473 1.33276199530279  31.0270153637041 -4.97326009621717 1.15805749400478  29.1116148227274 -1.86245884946204 0.80864849003874  28.1539145572391 -0.307058226254482 0.633943988290722  
-31.9820989290681 -6.52842899308372 1.33507748741278  31.0229698235119 -4.97300958020527 1.16162831617438  29.1047116223996 -1.86217075544836 0.814729973927596  28.1455825168434 -0.306751342619906 0.641280802829202  
-31.9808528690089 -6.52830118407765 1.33635463547344  31.0210205534193 -4.97286678219849 1.16357509426685  29.1013559222402 -1.86199797744015 0.818016010803674  28.1415236066506 -0.306563575560988 0.645236469207086  
-31.9786322689035 -6.52802714406464 1.33909308860351  31.0175416632541 -4.97253552718275 1.16781176646808  29.0953604619554 -1.86155229341899 0.825249121637228  28.1342698663061 -0.306060676767101 0.653967799261802  
-31.9776155188552 -6.52787563105744 1.34060717367542  31.0159498931785 -4.97234052917349 1.17018258458069  29.0926186418252 -1.86127032440559 0.829333408441221  28.1309530161485 -0.305735222561643 0.658908820136488  
-31.9768135388171 -6.52772034505006 1.34215900474913  31.01492907313 -4.97211271016267 1.17266812269874  29.0911601417559 -1.86089743938788 0.833686358567975  28.1292756760688 -0.305289803630487 0.664195476387591  
-
-0 4
-0.2003372 1
-0.30051995 1
-0.39860945 1
-0.4007027 1
-0.50095845 1
-0.5986583 1
-0.6012142 1
-0.69882198 1
-0.70136214 1
-0.79898567 1
-0.80151008 1
-0.89949284 1
-0.90075504 1
-1 4
-
-0 3
-33.00573364 1
-66.01146728 3
-
-9 1 1 0 0 3 2 6 4 4 3 25.9893209044264 -1.2407928679345 1.41444127418235  1 25.9893209344264 -0.723604166519352 1.92052181521989  0.85737039 25.9893209344264 0.723602338749265 1.9205219782199  0.85737039 25.9893209044264 1.24079115393441 1.41444155318237  1 
-26.7065109884911 -1.21027243248485 1.41444127718235  1 26.6771494170965 -0.709426906225968 1.87757598918007  0.8529936 26.6771494170965 0.70942484422587 1.87757614918008  0.8529936 26.7065109984911 1.21027048648476 1.41444154918237  1 
-28.1506004970817 -1.12559133446272 1.41444128718235  1 28.0835873238988 -0.666630513403249 1.79034847403699  0.84424001 28.0835872638988 0.666627888893124 1.79034862403699  0.84424001 28.1506003870817 1.1255888294626 1.41444154018237  1 
-30.3018883192624 -0.844083729111824 1.41444131818235  1 30.2330803859942 -0.507891786923564 1.6546025515894  0.83096916 30.2330803059942 0.507888670973416 1.65460266558941  0.83096916 30.3018881792624 0.844080731411682 1.41444150818236  1 
-31.7217072867002 -0.463447276602563 1.41444136118236  1 31.6903881952126 -0.281876920968435 1.56117344415176  0.8220751 31.6903881052126 0.281874858058337 1.56117350815176  0.8220751 31.7217071467002 0.463445326412471 1.41444146518236  1 
-32.4183772197902 -0.208516963644024 1.41444139018236  1 32.4183771297902 -0.12752453053709 1.51294272586092  0.81755784 32.4183771797902 0.127523451547039 1.51294275486092  0.81755784 32.4183773097902 0.208515993143978 1.41444143718236  1 
-
-0 4
-0.97957324 1
-1.95914649 1
-2.97015674 4
-
-0 3
-0.5 1
-1 3
-
-9 0 0 0 0 2 3 4 26 3 24 32.0213115109306 6.52591981196454 1.36016157360421  32.0610295228171 6.52557503794817 1.36361408176819  32.1205334756434 6.52495908791891 1.36978014606106  32.1908088589813 6.5242409868848 1.37696896840251  32.2305343508682 6.52386478386694 1.38073558958142  32.2702835827562 6.52351710785042 1.38421709774678  32.3058010444431 6.52325423283794 1.38685036787185  32.3456379663353 6.52301800082672 1.38921809498432  32.3877616283361 6.52281738781719 1.39123023207989  32.4410208208657 6.52268670681098 1.39254533314235  32.4991581136271 6.52270521881186 1.39237018913403  32.5567739963637 6.52287493781992 1.39068374505393  32.6109234689357 6.5231776608343 1.38766744291066  32.6523562209036 6.52349655684945 1.38448734775962  32.6920955727911 6.52384260186588 1.38103562459567  32.7281858045053 6.52420069388289 1.37746288442597  32.7678179363878 6.52463761990364 1.37310285421888  32.8074347482695 6.52509229792524 1.36856540600337  32.8434511699801 6.52551691294541 1.36432780280209  32.8830764318622 6.52596903296688 1.35981592158779  32.9227018537444 6.52640620198765 1.35545346238058  32.95903221547 6.5267737280051 1.35178646820641  32.9987756973577 6.52713773102239 1.34815527103394  33.038532919246 6.52746753003806 1.3448659268777  33.0749870309775 6.52769816004901 1.34256712776851  33.0949317119248 6.52779751805373 1.34157750972151  
-31.0832152563734 4.96750017294359 1.20054947602304  31.1448174592994 4.96528076583817 1.20624385729351  31.2371586936854 4.96187958967662 1.21576739474585  31.3462608188674 4.95797250649105 1.22650630225592  31.4079322917967 4.95583189038937 1.23209832752153  31.4696410247277 4.95374629329031 1.23726817476708  31.5247809773467 4.95196953320592 1.24120735095418  31.5866247002841 4.95008579111645 1.24474795312235  31.6520266333905 4.94818542802619 1.24774681526479  31.7347407173192 4.94601355492303 1.24963526335449  31.8249756616052 4.94396887382591 1.24901781632516  31.9143536158504 4.94223190574341 1.24607004318515  31.9984159198431 4.94087836067912 1.24108628594843  32.0627882629007 4.9400210566384 1.23592199570314  32.1244779458308 4.93929008360368 1.23033367843771  32.1804318684884 4.93872723957695 1.22458176016451  32.2419717614114 4.93820960755236 1.21764670283511  32.3035188143347 4.93774506653029 1.21045751949364  32.3594369069907 4.93737946551293 1.2037573331754  32.420984059914 4.93699966249489 1.19657020983403  32.4825106628364 4.93663116047739 1.1895943865027  32.5388447455121 4.9362924384613 1.18372425622388  32.6005679284438 4.93589573044246 1.17792832394859  32.6623870813801 4.9354733944224 1.17270023970027  32.7189964840689 4.93502317540101 1.16914572553144  32.7499748255403 4.93474840638796 1.16766948946132  
-29.2070227372591 1.85066089390167 0.881325279380702  29.3123933222639 1.84469222161817 0.891503409684138  29.4704091497693 1.83572059219205 0.907741891635424  29.6571647386397 1.82543554670353 0.925580970172735  29.7627281836537 1.81976610343425 0.934823804381746  29.8683558986707 1.81420466317009 0.943370328297684  29.9627408331538 1.80940013494189 0.949921315608839  30.0685981581817 1.80422136969591 0.955807669588426  30.1805566534995 1.79892150844418 0.960779981554598  30.3221804902262 1.79266725114712 0.96381512397876  30.4766107775613 1.78649618385401 0.962313071137416  30.6295128548237 1.78094584259038 0.956842638387585  30.773400821658 1.77627975836876 0.947923972103971  30.8836523668947 1.7730700562163 0.938791292900192  30.98924270191 1.77018504607927 0.928929784541795  31.0849239864546 1.76778033196506 0.918819512091583  31.1902794314587 1.76535358184979 0.906734400257571  31.2956869464653 1.76305060474041 0.894241746344202  31.3914083610118 1.76110457064797 0.882616392752027  31.4967993260176 1.75906092255091 0.870078785776523  31.6021282910205 1.75708107845687 0.857876235866933  31.6984698155965 1.75532985937369 0.84759983239883  31.8041523906161 1.75341172728258 0.837474428947899  31.9100954156481 1.75148512419108 0.828368865475408  32.0070153802516 1.74967320410501 0.822302920967291  32.0600610427711 1.74865018405642 0.819853447300947  
-28.2689264827019 0.292241255160714 0.721713181239535  28.3961812587462 0.284397949308177 0.734133185749454  28.5870343678112 0.272641093469756 0.753729140240211  28.8126166985258 0.259167066449775 0.775118303946142  28.9401261245822 0.251733210446685 0.786186542591855  29.0677133406422 0.244433847629984 0.796421405117985  29.1817207560573 0.238115434989876 0.804278298051168  29.3095848921305 0.231289159275645 0.811337527776463  29.4448216585539 0.224289548483181 0.817296564549502  29.6159003866797 0.215994099319169 0.820905054190896  29.8024283255393 0.207759839438062 0.818960698558544  29.9870924743104 0.200302810283873 0.812228936158802  30.1608932725655 0.193980458033577 0.80134281528174  30.2940844088917 0.189594556135258 0.790225941423716  30.4216250749496 0.185632528127072 0.778227837773837  30.5371700504377 0.182306878039112 0.76593838801012  30.6644332564824 0.178925569838508 0.7512782490838  30.7917710125306 0.175703373785462 0.73613385993448  30.9073940980224 0.172967123165497 0.72204592278534  31.0347069540694 0.170091552488915 0.706833073972768  31.1619371001125 0.16730603716661 0.69201716031905  31.2782823556386 0.164848569069887 0.679537620406304  31.4059446117023 0.162169725972648 0.667247481652553  31.5339495777822 0.159490988805415 0.656203178347977  31.6510248333429 0.156998219177015 0.648881518810217  31.7151041563865 0.155601073240654 0.64594542643076  
-
-0 3
-1.50880726 1
-3.01761452 3
-
-0 4
-0.11103083 1
-0.16659245 1
-0.196748 1
-0.22215408 1
-0.27771208 1
-0.29593722 1
-0.33327008 1
-0.39512644 1
-0.44434037 1
-0.49514916 1
-0.55541065 1
-0.59517188 1
-0.61096997 1
-0.66652929 1
-0.69603633 1
-0.72209161 1
-0.77765393 1
-0.79690078 1
-0.83321457 1
-0.88877522 1
-0.89845039 1
-0.94438761 1
-1 4
-
-9 0 0 0 0 3 2 20 4 18 3 32.0213115109306 6.52591981196454 1.36016157360421  31.0832152563734 4.96750017294359 1.20054947602304  29.2070227372591 1.85066089390167 0.881325279380702  28.2689264827019 0.292241255160714 0.721713181239535  
-32.0195981608492 6.5259525669661 1.35983391758864  31.0805800662483 4.96762083194932 1.20004355499901  29.2025438770463 1.85095736191575 0.880462830019738  28.2635257924454 0.292625626828971 0.720672467560104  
-32.0179362407703 6.5259988509683 1.35937106356666  31.0780221161268 4.96776049595595 1.19932877596506  29.1981938868397 1.85128378693126 0.879244201521857  28.2582797721962 0.29304543204891 0.719201914170256  
-32.014476420606 6.52604397397044 1.35891950054521  31.0726944658737 4.96797050196593 1.1986475049327  29.1891305464092 1.8518235579569 0.878103514097677  28.247348591677 0.29375008651238 0.717831518655166  
-32.0125978305167 6.52604328697041 1.35892605054552  31.0698047657365 4.96804558796949 1.19866448193351  29.1842186161759 1.85205019096766 0.878141344459474  28.2414255413957 0.294052492146743 0.717879775677458  
-32.0091448703527 6.52607647797198 1.35859374052974  31.0644998454845 4.96823892297868 1.19814180990868  29.175209795748 1.85256381099206 0.877237949136565  28.2305647708798 0.294726255258745 0.716786018585507  
-32.0074207502708 6.52611315297373 1.35822691351231  31.0618457653584 4.96836616398472 1.1975779238819  29.1706958055336 1.8528721870067 0.876279946121062  28.2251208206212 0.295125198837694 0.715630957130645  
-32.0040059401086 6.52614984397547 1.35785962949487  31.0565789851083 4.96856015699393 1.19704484085658  29.1617250651076 1.85338078203086 0.875415265619992  28.2142981001072 0.295791094039322 0.7146004777817  
-32.002077120017 6.52615066997551 1.35785104949446  31.0536122749674 4.96863996599772 1.19703635885617  29.156682584868 1.85361855704215 0.875406978219598  28.2082177398184 0.296107853314368 0.714592287951311  
-31.9986822598558 6.52619487997761 1.35740863147345  31.0484060147201 4.96885029000771 1.19631807882206  29.1478535444487 1.85416111106792 0.874136974689276  28.197577309313 0.296816521068028 0.713046422387886  
-31.9969259197724 6.52624475097998 1.35690990744976  31.0457036145917 4.96899990601482 1.19554477178533  29.1432589842305 1.8545102160845 0.872814499746462  28.1920366790498 0.297265370679347 0.71144936381203  
-31.9936058596147 6.52631217498318 1.35623548441773  31.0405779643483 4.9692373840261 1.19454376173778  29.1345221838155 1.85508780011194 0.871160316717893  28.1814942985491 0.298013008604858 0.709468594297949  
-31.9916632495224 6.52633423798423 1.35601465740724  31.0375919242064 4.9693510280315 1.19420364172163  29.1294492735745 1.85538461012604 0.870581610130406  28.1753779482586 0.298401400633305 0.708770594404795  
-31.9883847393667 6.52641453798804 1.35521155436909  31.0325750739682 4.96961380104398 1.19291129866024  29.1209557231711 1.85601232815585 0.868310787992547  28.1651460477726 0.299211591051787 0.706010532433699  
-31.9866428592839 6.52648649599146 1.35449209133492  31.029897763841 4.96979779805272 1.19178877460693  29.1164075729551 1.85642040217523 0.866382141270942  28.1596624775121 0.299731703776491 0.703678824472949  
-31.9835034791348 6.52661267499745 1.353230491275  31.0250512936108 4.97011976506801 1.18987273451592  29.1081469325627 1.85713394420912 0.863157222517766  28.1496947470387 0.300641034159682 0.69979946630869  
-31.9816308290459 6.52668260400077 1.35253128324179  31.0221954034751 4.97030522007682 1.1887775764639  29.1033245623337 1.85755045222891 0.861270161918136  28.1438891367629 0.301173068524952 0.697516454740252  
-31.9777014388592 6.52699314101552 1.34942703009434  31.0162679131936 4.97095567810771 1.18384361722955  29.0934008518623 1.85888075129209 0.852676791759972  28.1319673261967 0.302843288144284 0.687093379125183  
-31.9764636788005 6.52739737503472 1.34538679790244  31.0143909631045 4.97162784513964 1.17764030293491  29.0902455317125 1.86008878434947 0.842147311759849  28.1281728160165 0.304319254304388 0.674400816372318  
-31.9768135388171 6.52772034505006 1.34215900474913  31.01492907313 4.97211271016267 1.17266812269874  29.0911601417559 1.86089743938788 0.833686358567975  28.1292756760688 0.305289803630487 0.664195476387591  
-
-0 4
-0.10020575 1
-0.10171398 1
-0.20041149 1
-0.20342797 1
-0.30071455 1
-0.30515005 1
-0.40101761 1
-0.40687214 1
-0.50137911 1
-0.50852645 1
-0.60174061 1
-0.61018076 1
-0.70204415 1
-0.71139469 1
-0.8023477 1
-0.81260862 1
-1 4
-
-0 3
-33.12627597 1
-66.25255193 3
-
-9 0 0 0 0 3 2 24 4 22 3 26.2385734862653 -0.133972769733365 1.67118258137691  27.5049869164167 -0.111812822860824 3.21464695668753  30.0378137767195 -0.067492929105742 6.30157570730877  31.3042272068709 -0.045332982233201 7.84504008261939  
-26.3221248302338 -0.150819505293542 1.66585452612384  27.5748616097356 -0.125674429739215 3.21065072549772  30.0803351787392 -0.0753842786205609 6.30024312424548  31.333071958241 -0.050239203066234 7.84503932261936  
-26.4089476643576 -0.166482214647481 1.66030359286019  27.6474531931835 -0.138597253173016 3.20648738229997  30.1244642508352 -0.0828273302240869 6.29885496117954  31.3629697796611 -0.0549423687496224 7.84503875061933  
-26.5773176623548 -0.193400207166017 1.64952352334816  27.7882119698692 -0.160882582261512 3.19840215691594  30.210000584898 -0.0958473324525038 6.29615942505151  31.4208948824124 -0.0633297075479996 7.84503805861929  
-26.6671877866234 -0.206000402394494 1.64376167707449  27.8633361134374 -0.171357505609044 3.19408073371069  30.2556327770654 -0.102071712038146 6.29471884798309  31.4517811038794 -0.0674288152526967 7.84503790461929  
-26.8340617545495 -0.226727837208994 1.63305734956606  28.0028178000624 -0.188632847959579 3.18605246632936  30.3403298710883 -0.112442869470749 6.29204270185598  31.5090859166012 -0.0743478802213347 7.84503781961928  
-26.9272687289766 -0.236869101680678 1.62707594028196  28.0807210937626 -0.197111936142314 3.18156642311629  30.3876258333347 -0.117597605045586 6.29054738978495  31.5410781981208 -0.0778404395072223 7.84503787261929  
-27.0923852668192 -0.252403219598509 1.61648695577901  28.2187268903175 -0.21014834783151 3.17362475173908  30.4714101173143 -0.125638604297513 6.28790034465923  31.5977517308126 -0.0833837325305146 7.8450381406193  
-27.1879642213589 -0.260064135942383 1.61036194648808  28.2986098741118 -0.216605696228218 3.16903105852089  30.5199011796175 -0.129688816809888 6.2863692805865  31.6305468323703 -0.0862303770957229 7.84503839261931  
-27.4385005532588 -0.277581877764431 1.59433205672671  28.5080015540574 -0.231377759269853 3.15700879694986  30.6470035456545 -0.138969522290698 6.28236227739618  31.7165045364531 -0.09276540379612 7.84503901761934  
-27.6248403021094 -0.286903391567179 1.58244993316234  28.6637460114548 -0.23924905940372 3.14809729352659  30.7415574501456 -0.143940395076802 6.2793920142551  31.7804631694909 -0.0962860629133424 7.84503937461936  
-27.9611700380843 -0.297806707585059 1.56117826715199  28.9448640248072 -0.24843818431018 3.13214366176883  30.9122519982531 -0.149701137750422 6.27407444900253  31.8959459849761 -0.100332614465543 7.84503984361938  
-28.1499816170523 -0.300652547040229 1.5493379885896  29.102679622303 -0.250822399883424 3.12326349434705  31.0080756228045 -0.151162105579814 6.27111450586194  31.9607736180552 -0.10133195843301 7.84504001161939  
-28.4864236030325 -0.299853141422259 1.52852821960119  29.3838787556593 -0.250110963269633 3.10765625460574  31.1787890709129 -0.15062660697438 6.26591232561485  32.0762442235398 -0.100884428831753 7.8450403616194  
-28.6783108021466 -0.29604558607141 1.51683037304557  29.5442574932769 -0.246875488625956 3.09888293018903  31.2761508755374 -0.148535293725048 6.26298804447596  32.1420975666676 -0.0993651962695934 7.84504060161942  
-29.0145723681182 -0.283292751025683 1.49675284409194  29.825306316626 -0.236141293086109 3.08382490747382  31.4467742236416 -0.141838377216961 6.25796903423757  32.2575081721494 -0.0946869192773871 7.84504109761944  
-29.2060504272129 -0.27254200267505 1.48556749456067  29.9853424242273 -0.227127536037979 3.07543597707536  31.543926408256 -0.136298602753836 6.25517294110476  32.3232184052704 -0.0908841361167646 7.84504142361946  
-29.5442646532772 -0.247030494983318 1.4663714446489  30.2680210476538 -0.205857922677726 3.06103910439155  31.715533826407 -0.123512778076542 6.25037442287684  32.4392902107835 -0.0823402057709497 7.84504208261949  
-29.7354326423572 -0.228957257974886 1.45585172814924  30.4278011252429 -0.190835632514206 3.05314942201681  31.8125381010144 -0.114592381592846 6.24774480975194  32.5049065839001 -0.0764707561221658 7.84504250361951  
-30.0754408185067 -0.19215116659669 1.43786412729488  30.7119890087411 -0.160256378111769 3.03965887337604  31.98508539921 -0.096466801151927 6.24324836453837  32.6216335894444 -0.0645720126670059 7.84504311061954  
-30.2633554174322 -0.169264827759648 1.4283356788423  30.8690548262014 -0.14124652326885 3.03251259803661  32.0804536337397 -0.0852099142772536 6.24086643742524  32.6861530425089 -0.0571916097764556 7.84504335661955  
-30.7878702723453 -0.101128406633341 1.4030922776433  31.3074549470242 -0.0845866069976481 3.01358006913737  32.3466242763821 -0.0515030077362615 6.23455565112549  32.8662089410611 -0.0349612081005682 7.84504344261955  
-31.1473124494179 -0.0486549430809857 1.38772885591358  31.6078706812932 -0.0408590690007015 3.00205729659006  32.5289871450439 -0.0252673208601333 6.23071417894303  32.9895453769193 -0.0174714467798492 7.84504261961951  
-31.4968264760189 0 1.37524916732083  31.8999338851655 0 2.99269687014547  32.7061486934586 0 6.22759227579475  33.1092560926052 0 7.84503997861939  
-
-0 4
-0.04840223 1
-0.04999646 1
-0.09680446 1
-0.09999292 1
-0.14548894 1
-0.14998727 1
-0.19417342 1
-0.19998162 1
-0.29260823 1
-0.29995487 1
-0.39104303 1
-0.39992813 1
-0.49098994 1
-0.49990797 1
-0.59093685 1
-0.59988782 1
-0.6924457 1
-0.69987821 1
-0.79395456 1
-0.7998686 1
-1 4
-
-0 3
-1.00864509 1
-2.01729017 3
-
-9 0 0 0 0 3 2 22 4 20 3 31.3042272068709 -0.045332982233201 7.84504008261939  30.0378137767195 -0.067492929105742 6.30157570730877  27.5049869164167 -0.111812822860824 3.21464695668753  26.2385734862653 -0.133972769733365 1.67118258137691  
-31.2954192964526 -0.0430010329424394 7.8450403266194  30.024938176108 -0.0641732514780657 6.30190422532437  27.4839759354187 -0.106517688569318 3.21563202473432  26.2134948050741 -0.127689907114945 1.67249592343929  
-31.2849880359571 -0.0404181135897573 7.84504044361941  30.0097547153868 -0.0602504308117418 6.30232239334424  27.4592880642461 -0.0999150652457107 3.21688629179389  26.1840547336758 -0.119747382467695 1.67416824051872  
-31.2711565353002 -0.0366831687623569 7.84504048261941  29.989631784431 -0.054584658592632 6.30286085336981  27.4265822826927 -0.0903876382531822 3.21850159287062  26.1450575218235 -0.108289128083457 1.67632196262102  
-31.2626947448983 -0.0342734346779007 7.84504047961941  29.9773164338461 -0.0509537275901721 6.30318216238507  27.4065598017417 -0.0843143134147148 3.2194655279164  26.1211814806895 -0.100994606326986 1.67760721068206  
-31.2555276245578 -0.0320034650000829 7.84504046661941  29.9668683033498 -0.0476185928117617 6.30343642239715  27.3895496709337 -0.0788488484351192 3.22022833495263  26.1008903497257 -0.0944639762567979 1.67862429073037  
-31.2487468742358 -0.0296931540403491 7.84504045961941  29.9569815928802 -0.0442119682799557 6.30369688640952  27.3734510401691 -0.073249596749169 3.22100973998975  26.0816857588135 -0.0877684109787756 1.67966616677986  
-31.2441337840167 -0.0280163400307047 7.84504045761941  29.9502569225608 -0.0417295018020449 6.30388836341862  27.3625031996491 -0.0691558253447253 3.22158417501703  26.0686263381933 -0.0828689871260655 1.68043208081624  
-31.2376848837103 -0.0254019436265275 7.84504045861941  29.9408977221163 -0.0378194367463268 6.30421141343396  27.3473233989281 -0.0626544229859253 3.22255332206306  26.050536237334 -0.0750719161057245 1.68172427587761  
-31.2322833934538 -0.0230003371124573 7.84504046061941  29.9330869817453 -0.034205374154668 6.30451057344817  27.3346941483282 -0.0566154482290894 3.22345079910569  26.0354977366197 -0.0678204852713 1.68292091093445  
-31.2268400231952 -0.0202011957395053 7.84504046261941  29.9252038113708 -0.0299911429345028 6.30482938846331  27.321931377722 -0.0495710373144978 3.22440724115112  26.0202951658976 -0.0593609845094953 1.68419616699502  
-31.2230135330135 -0.0179416411721822 7.84504046261941  29.919669971108 -0.0265972898433034 6.30505113947385  27.312982857297 -0.0439085871855459 3.22507249318272  26.0096393053915 -0.0525642358566671 1.68508317003715  
-31.2202117928804 -0.0160547392125592 7.84504046261941  29.9156128509153 -0.0238139574311022 6.30520923548135  27.3064149669851 -0.0393323938781884 3.22554678220524  26.0018160350199 -0.0470916121067314 1.68571555606719  
-31.2177941327656 -0.0142225279255338 7.84504046261941  29.9121203907494 -0.0211252507733955 6.30534365548774  27.3007729167171 -0.034930696479119 3.2259500432244  25.9950991747009 -0.0418334193269807 1.68625323609273  
-31.2155956426612 -0.0122746684130154 7.84504046261941  29.9089590705993 -0.0182088665348747 6.3054669504936  27.2956859164755 -0.0300772627585933 3.22631992524197  25.9890493444135 -0.0360114608804525 1.68674641311615  
-31.2139735025841 -0.0106235524045916 7.84504046261941  29.9066635704902 -0.0157140662463781 6.30555472149776  27.2920437163025 -0.0258950939399509 3.22658323825447  25.9847337942086 -0.0309856077817373 1.68709749713283  
-31.2124867825135 -0.00889975212271552 7.84504046261941  29.9045834103914 -0.0131345461738574 6.30563254850146  27.2887766661473 -0.0216041342861413 3.22681672026556  25.9808732940252 -0.0258389283472832 1.68740880614761  
-31.2113676824603 -0.00725582020463295 7.84504046261941  29.9030427303182 -0.0107210043292204 6.30568901250414  27.2863928160341 -0.0176513725683952 3.22698611327361  25.978067863892 -0.0211165566929826 1.68763466415834  
-31.2103373424114 -0.00524955023934025 7.84504046261941  29.9016044802499 -0.00772706604701593 6.30574444550678  27.284138735927 -0.0126820976423673 3.22715241328151  25.9754058637655 -0.015159613440043 1.68785639616887  
-31.2095343923733 -0.00315845015001833 7.84504046261941  29.9004620401957 -0.00458087260757976 6.30579163950902  27.2823173558405 -0.00742571752270264 3.22729399328823  25.9732450136629 -0.00884813998026408 1.68804517017784  
-31.2092171223582 -0.0011274605635515 7.84504046261941  29.8999609201719 -0.00164308905804254 6.30581745351024  27.2814485357992 -0.00267434605702462 3.22737143629191  25.9721923436129 -0.00318997455151565 1.68814842718274  
-31.209191012357 0 7.84504046261941  29.8998665001674 0 6.30582602951065  27.2812174857882 0 3.22739716329313  25.9718929735987 0 1.68818273118437  
-
-0 4
-0.24987845 1
-0.294687 1
-0.39290714 1
-0.49113232 1
-0.5007068 1
-0.58935751 1
-0.6257727 1
-0.69131083 1
-0.7508386 1
-0.79326416 1
-0.8132895 1
-0.84328602 1
-0.8757404 1
-0.89330787 1
-0.90694145 1
-0.9381425 1
-0.94665394 1
-0.96907125 1
-1 4
-
-0 3
-19.09597535 1
-38.1919507 3
-
-9 1 1 0 0 3 2 5 4 3 3 20.1549001573063 -1.3686672230082 1.41444126018235  1 20.1549001573063 -0.799126971766493 1.97500000380746  0.85635206 20.1549001573063 0.799124827656391 1.97500018380747  0.85635206 20.1549001573063 1.36866520500811 1.41444156718237  1 
-21.1275192035033 -1.36276005072763 1.41444126418235  1 21.1285731335533 -0.79930629359501 1.97484654080017  0.85652178 21.1285731335533 0.799304151064908 1.97484660280018  0.85652178 21.1275192035033 1.36275808372753 1.41444156618237  1 
-23.0918736368051 -1.32145396176569 1.41444126918235  1 23.0936071268874 -0.771101954625376 1.94774472551291  0.85686122 23.0936071268874 0.771099969805282 1.94774489651291  0.85686122 23.0918736368051 1.3214520967656 1.41444156218237  1 
-25.0175634582704 -1.28214692889871 1.41444127418235  1 25.0191922683478 -0.768009936338513 1.97739153592105  0.85720067 25.0191922783478 0.768008160368428 1.97739197892107  0.85720067 25.0175634582704 1.28214516389862 1.41444155718237  1 
-25.9893209044264 -1.2407928679345 1.41444127418235  1 25.9893209344264 -0.723604166519352 1.92052181521989  0.85737039 25.9893209344264 0.723602338749265 1.9205219782199  0.85737039 25.9893209044264 1.24079115393441 1.41444155318237  1 
-
-0 4
-0.94162053 1
-1.88324107 4
-
-0 3
-0.5 1
-1 3
-
-9 1 0 0 0 3 2 4 4 2 3 32.4183772197902 -0.208516963644024 1.41444139018236  1 32.4183771297902 -0.12752453053709 1.51294272586092  0.81755784 32.4183771797902 0.127523451547039 1.51294275486092  0.81755784 32.4183773097902 0.208515993143978 1.41444143718236  1 
-32.5970604982772 -0.143131934658402 1.41444139718236  1 32.6016955784974 -0.0969974994171338 1.49939513121744  0.81755784 32.6016955584974 0.0969963613670797 1.49939560421747  0.81755784 32.5970603082772 0.143130653238341 1.41444142918236  1 
-32.7741353166878 -0.0736942506102889 1.41444140518236  1 32.7741352566878 -0.0450698927207049 1.44727518374188  0.81755784 32.7741351866878 0.045069200000672 1.44727519374188  0.81755784 32.7741352066878 0.0736935940402577 1.41444142218236  1 
-32.949284715007 -9.00000042747706e-011 1.41444141318236  1 32.949284715007 -9.00000042747706e-011 1.41444141318236  0.81755784 32.949284715007 -9.00000042747706e-011 1.41444141318236  0.81755784 32.949284715007 -9.00000042747706e-011 1.41444141318236  1 
-
-0 4
-1.97290517 4
-
-0 3
-0.5 1
-1 3
-
-9 0 0 0 0 3 2 22 4 20 3 26.2385734862653 0.133972769733365 1.67118258137691  27.5049869164167 0.111812822860824 3.21464695668753  30.0378137767195 0.067492929105742 6.30157570730877  31.3042272068709 0.045332982233201 7.84504008261939  
-26.2134948050741 0.127689907114945 1.67249592343929  27.4839759354187 0.106517688569318 3.21563202473432  30.024938176108 0.0641732514780657 6.30190422532437  31.2954192964526 0.0430010329424394 7.8450403266194  
-26.1840547336758 0.119747382467695 1.67416824051872  27.4592880642461 0.0999150652457107 3.21688629179389  30.0097547153868 0.0602504308117418 6.30232239334424  31.2849880359571 0.0404181135897573 7.84504044361941  
-26.1450575218235 0.108289128083457 1.67632196262102  27.4265822826927 0.0903876382531822 3.21850159287062  29.989631784431 0.054584658592632 6.30286085336981  31.2711565353002 0.0366831687623569 7.84504048261941  
-26.1211814806895 0.100994606326986 1.67760721068206  27.4065598017417 0.0843143134147148 3.2194655279164  29.9773164338461 0.0509537275901721 6.30318216238507  31.2626947448983 0.0342734346779007 7.84504047961941  
-26.1008903497257 0.0944639762567979 1.67862429073037  27.3895496709337 0.0788488484351192 3.22022833495263  29.9668683033498 0.0476185928117617 6.30343642239715  31.2555276245578 0.0320034650000829 7.84504046661941  
-26.0816857588135 0.0877684109787756 1.67966616677986  27.3734510401691 0.073249596749169 3.22100973998975  29.9569815928802 0.0442119682799557 6.30369688640952  31.2487468742358 0.0296931540403491 7.84504045961941  
-26.0686263381933 0.0828689871260655 1.68043208081624  27.3625031996491 0.0691558253447253 3.22158417501703  29.9502569225608 0.0417295018020449 6.30388836341862  31.2441337840167 0.0280163400307047 7.84504045761941  
-26.050536237334 0.0750719161057245 1.68172427587761  27.3473233989281 0.0626544229859253 3.22255332206306  29.9408977221163 0.0378194367463268 6.30421141343396  31.2376848837103 0.0254019436265275 7.84504045861941  
-26.0354977366197 0.0678204852713 1.68292091093445  27.3346941483282 0.0566154482290894 3.22345079910569  29.9330869817453 0.034205374154668 6.30451057344817  31.2322833934538 0.0230003371124573 7.84504046061941  
-26.0202951658976 0.0593609845094953 1.68419616699502  27.321931377722 0.0495710373144978 3.22440724115112  29.9252038113708 0.0299911429345028 6.30482938846331  31.2268400231952 0.0202011957395053 7.84504046261941  
-26.0096393053915 0.0525642358566671 1.68508317003715  27.312982857297 0.0439085871855459 3.22507249318272  29.919669971108 0.0265972898433034 6.30505113947385  31.2230135330135 0.0179416411721822 7.84504046261941  
-26.0018160350199 0.0470916121067314 1.68571555606719  27.3064149669851 0.0393323938781884 3.22554678220524  29.9156128509153 0.0238139574311022 6.30520923548135  31.2202117928804 0.0160547392125592 7.84504046261941  
-25.9950991747009 0.0418334193269807 1.68625323609273  27.3007729167171 0.034930696479119 3.2259500432244  29.9121203907494 0.0211252507733955 6.30534365548774  31.2177941327656 0.0142225279255338 7.84504046261941  
-25.9890493444135 0.0360114608804525 1.68674641311615  27.2956859164755 0.0300772627585933 3.22631992524197  29.9089590705993 0.0182088665348747 6.3054669504936  31.2155956426612 0.0122746684130154 7.84504046261941  
-25.9847337942086 0.0309856077817373 1.68709749713283  27.2920437163025 0.0258950939399509 3.22658323825447  29.9066635704902 0.0157140662463781 6.30555472149776  31.2139735025841 0.0106235524045916 7.84504046261941  
-25.9808732940252 0.0258389283472832 1.68740880614761  27.2887766661473 0.0216041342861413 3.22681672026556  29.9045834103914 0.0131345461738574 6.30563254850146  31.2124867825135 0.00889975212271552 7.84504046261941  
-25.978067863892 0.0211165566929826 1.68763466415834  27.2863928160341 0.0176513725683952 3.22698611327361  29.9030427303182 0.0107210043292204 6.30568901250414  31.2113676824603 0.00725582020463295 7.84504046261941  
-25.9754058637655 0.015159613440043 1.68785639616887  27.284138735927 0.0126820976423673 3.22715241328151  29.9016044802499 0.00772706604701593 6.30574444550678  31.2103373424114 0.00524955023934025 7.84504046261941  
-25.9732450136629 0.00884813998026408 1.68804517017784  27.2823173558405 0.00742571752270264 3.22729399328823  29.9004620401957 0.00458087260757976 6.30579163950902  31.2095343923733 0.00315845015001833 7.84504046261941  
-25.9721923436129 0.00318997455151565 1.68814842718274  27.2814485357992 0.00267434605702462 3.22737143629191  29.8999609201719 0.00164308905804254 6.30581745351024  31.2092171223582 0.0011274605635515 7.84504046261941  
-25.9718929735987 0 1.68818273118437  27.2812174857882 0 3.22739716329313  29.8998665001674 0 6.30582602951065  31.209191012357 0 7.84504046261941  
-
-0 4
-0.24987845 1
-0.294687 1
-0.39290714 1
-0.49113232 1
-0.5007068 1
-0.58935751 1
-0.6257727 1
-0.69131083 1
-0.7508386 1
-0.79326416 1
-0.8132895 1
-0.84328602 1
-0.8757404 1
-0.89330787 1
-0.90694145 1
-0.9381425 1
-0.94665394 1
-0.96907125 1
-1 4
-
-0 3
-19.09597535 1
-38.1919507 3
-
-9 0 0 0 0 2 3 4 24 3 22 26.2385734862653 0.133972769733365 1.67118258137691  26.3221248302338 0.150819505293542 1.66585452612384  26.4089476643576 0.166482214647481 1.66030359286019  26.5773176623548 0.193400207166017 1.64952352334816  26.6671877866234 0.206000402394494 1.64376167707449  26.8340617545495 0.226727837208994 1.63305734956606  26.9272687289766 0.236869101680678 1.62707594028196  27.0923852668192 0.252403219598509 1.61648695577901  27.1879642213589 0.260064135942383 1.61036194648808  27.4385005532588 0.277581877764431 1.59433205672671  27.6248403021094 0.286903391567179 1.58244993316234  27.9611700380843 0.297806707585059 1.56117826715199  28.1499816170523 0.300652547040229 1.5493379885896  28.4864236030325 0.299853141422259 1.52852821960119  28.6783108021466 0.29604558607141 1.51683037304557  29.0145723681182 0.283292751025683 1.49675284409194  29.2060504272129 0.27254200267505 1.48556749456067  29.5442646532772 0.247030494983318 1.4663714446489  29.7354326423572 0.228957257974886 1.45585172814924  30.0754408185067 0.19215116659669 1.43786412729488  30.2633554174322 0.169264827759648 1.4283356788423  30.7878702723453 0.101128406633341 1.4030922776433  31.1473124494179 0.0486549430809857 1.38772885591358  31.4968264760189 0 1.37524916732083  
-27.5049869164167 0.111812822860824 3.21464695668753  27.5748616097356 0.125674429739215 3.21065072549772  27.6474531931835 0.138597253173016 3.20648738229997  27.7882119698692 0.160882582261512 3.19840215691594  27.8633361134374 0.171357505609044 3.19408073371069  28.0028178000624 0.188632847959579 3.18605246632936  28.0807210937626 0.197111936142314 3.18156642311629  28.2187268903175 0.21014834783151 3.17362475173908  28.2986098741118 0.216605696228218 3.16903105852089  28.5080015540574 0.231377759269853 3.15700879694986  28.6637460114548 0.23924905940372 3.14809729352659  28.9448640248072 0.24843818431018 3.13214366176883  29.102679622303 0.250822399883424 3.12326349434705  29.3838787556593 0.250110963269633 3.10765625460574  29.5442574932769 0.246875488625956 3.09888293018903  29.825306316626 0.236141293086109 3.08382490747382  29.9853424242273 0.227127536037979 3.07543597707536  30.2680210476538 0.205857922677726 3.06103910439155  30.4278011252429 0.190835632514206 3.05314942201681  30.7119890087411 0.160256378111769 3.03965887337604  30.8690548262014 0.14124652326885 3.03251259803661  31.3074549470242 0.0845866069976481 3.01358006913737  31.6078706812932 0.0408590690007015 3.00205729659006  31.8999338851655 0 2.99269687014547  
-30.0378137767195 0.067492929105742 6.30157570730877  30.0803351787392 0.0753842786205609 6.30024312424548  30.1244642508352 0.0828273302240869 6.29885496117954  30.210000584898 0.0958473324525038 6.29615942505151  30.2556327770654 0.102071712038146 6.29471884798309  30.3403298710883 0.112442869470749 6.29204270185598  30.3876258333347 0.117597605045586 6.29054738978495  30.4714101173143 0.125638604297513 6.28790034465923  30.5199011796175 0.129688816809888 6.2863692805865  30.6470035456545 0.138969522290698 6.28236227739618  30.7415574501456 0.143940395076802 6.2793920142551  30.9122519982531 0.149701137750422 6.27407444900253  31.0080756228045 0.151162105579814 6.27111450586194  31.1787890709129 0.15062660697438 6.26591232561485  31.2761508755374 0.148535293725048 6.26298804447596  31.4467742236416 0.141838377216961 6.25796903423757  31.543926408256 0.136298602753836 6.25517294110476  31.715533826407 0.123512778076542 6.25037442287684  31.8125381010144 0.114592381592846 6.24774480975194  31.98508539921 0.096466801151927 6.24324836453837  32.0804536337397 0.0852099142772536 6.24086643742524  32.3466242763821 0.0515030077362615 6.23455565112549  32.5289871450439 0.0252673208601333 6.23071417894303  32.7061486934586 0 6.22759227579475  
-31.3042272068709 0.045332982233201 7.84504008261939  31.333071958241 0.050239203066234 7.84503932261936  31.3629697796611 0.0549423687496224 7.84503875061933  31.4208948824124 0.0633297075479996 7.84503805861929  31.4517811038794 0.0674288152526967 7.84503790461929  31.5090859166012 0.0743478802213347 7.84503781961928  31.5410781981208 0.0778404395072223 7.84503787261929  31.5977517308126 0.0833837325305146 7.8450381406193  31.6305468323703 0.0862303770957229 7.84503839261931  31.7165045364531 0.09276540379612 7.84503901761934  31.7804631694909 0.0962860629133424 7.84503937461936  31.8959459849761 0.100332614465543 7.84503984361938  31.9607736180552 0.10133195843301 7.84504001161939  32.0762442235398 0.100884428831753 7.8450403616194  32.1420975666676 0.0993651962695934 7.84504060161942  32.2575081721494 0.0946869192773871 7.84504109761944  32.3232184052704 0.0908841361167646 7.84504142361946  32.4392902107835 0.0823402057709497 7.84504208261949  32.5049065839001 0.0764707561221658 7.84504250361951  32.6216335894444 0.0645720126670059 7.84504311061954  32.6861530425089 0.0571916097764556 7.84504335661955  32.8662089410611 0.0349612081005682 7.84504344261955  32.9895453769193 0.0174714467798492 7.84504261961951  33.1092560926052 0 7.84503997861939  
-
-0 3
-1.00864509 1
-2.01729017 3
-
-0 4
-0.04840223 1
-0.04999646 1
-0.09680446 1
-0.09999292 1
-0.14548894 1
-0.14998727 1
-0.19417342 1
-0.19998162 1
-0.29260823 1
-0.29995487 1
-0.39104303 1
-0.39992813 1
-0.49098994 1
-0.49990797 1
-0.59093685 1
-0.59988782 1
-0.6924457 1
-0.69987821 1
-0.79395456 1
-0.7998686 1
-1 4
-
-9 0 0 0 0 1 1 2 2 2 2 33.0960754019792 -6.5257441579562 1.36209953369625  33.0894483416644 -6.53796320553657 1.23997796789579  
-31.9805927989966 -6.51972867467048 1.42203054754282  31.9739657386818 -6.53194772225085 1.29990898074236  
-
-0 2
-9.08881627 2
-
-0 2
-1 2
-
-9 0 0 0 0 1 1 2 2 2 2 33.0914102617576 0.210407268463809 7.8450401756194  33.11146319271 -0.0256241361470811 7.84503995461939  
-31.2048325821499 0.0501260046108573 7.84504053261941  31.2248855131024 -0.185905400000032 7.8450403116194  
-
-0 2
-7.99290962 2
-
-0 2
-1 2
-
-9 1 1 0 0 4 2 5 4 2 3 20.1549001573063 1.36866520500811 1.41444156718237  1 16.9193731036271 1.36355297976529 1.41444156618237  1 10.4483189962685 1.35332853127965 1.41444156518237  1 7.21279194058922 1.34821630603684 1.41444156518237  1 
-20.1549001573063 5.3675639999456 -2.16599949987945  0.35706323 16.9594987755329 5.39184365709882 -2.16948154504484  0.35559326 10.4887791881903 5.4410102044341 -2.17653272037975  0.35265331 7.21279194058922 5.46590217761641 -2.18010257954931  0.35118334 
-20.1549001573063 -2.8646001360612e-007 -5.01896813038818  0.41832944 16.9355044943933 -8.74500041536521e-008 -5.03003175591368  0.41763537 10.4645041870373 3.12540014844853e-007 -5.05226969296992  0.41624723 7.21279194058922 5.13540024391841e-007 -5.06344437550069  0.41555316 
-20.1549001573063 -5.36756521394566 -2.16600070587951  0.35706323 16.9594987755329 -5.39184447709886 -2.1694827560449  0.35559326 10.4887791881903 -5.44101022743411 -2.17653394237981  0.35265331 7.21279194058922 -5.46590179861639 -2.18010380754937  0.35118334 
-20.1549001573063 -1.3686672230082 1.41444126018235  1 16.9193731036271 -1.36355460076537 1.41444126018235  1 10.4483189962685 -1.35332935627969 1.41444126118235  1 7.21279194058922 -1.34821673503686 1.41444126218235  1 
-
-0 5
-1.78417229 5
-
-0 3
-0.5 1
-1 3
-
-9 1 1 0 0 4 2 5 4 2 3 20.1549001573063 1.36866520500811 1.41444156718237  1 16.9193731036271 1.36355297976529 1.41444156618237  1 10.4483189962685 1.35332853127965 1.41444156518237  1 7.21279194058922 1.34821630603684 1.41444156518237  1 
-20.1549001573063 5.3675639999456 -2.16599949987945  0.35706323 16.9594987755329 5.39184365709882 -2.16948154504484  0.35559326 10.4887791881903 5.4410102044341 -2.17653272037975  0.35265331 7.21279194058922 5.46590217761641 -2.18010257954931  0.35118334 
-20.1549001573063 -2.8646001360612e-007 -5.01896813038818  0.41832944 16.9355044943933 -8.74500041536521e-008 -5.03003175591368  0.41763537 10.4645041870373 3.12540014844853e-007 -5.05226969296992  0.41624723 7.21279194058922 5.13540024391841e-007 -5.06344437550069  0.41555316 
-20.1549001573063 -5.36756521394566 -2.16600070587951  0.35706323 16.9594987755329 -5.39184447709886 -2.1694827560449  0.35559326 10.4887791881903 -5.44101022743411 -2.17653394237981  0.35265331 7.21279194058922 -5.46590179861639 -2.18010380754937  0.35118334 
-20.1549001573063 -1.3686672230082 1.41444126018235  1 16.9193731036271 -1.36355460076537 1.41444126018235  1 10.4483189962685 -1.35332935627969 1.41444126118235  1 7.21279194058922 -1.34821673503686 1.41444126218235  1 
-
-0 5
-1.78417229 5
-
-0 3
-0.5 1
-1 3
-
-9 1 1 0 0 4 2 5 4 2 3 20.1549001573063 1.36866520500811 1.41444156718237  1 16.9193731036271 1.36355297976529 1.41444156618237  1 10.4483189962685 1.35332853127965 1.41444156518237  1 7.21279194058922 1.34821630603684 1.41444156518237  1 
-20.1549001573063 5.3675639999456 -2.16599949987945  0.35706323 16.9594987755329 5.39184365709882 -2.16948154504484  0.35559326 10.4887791881903 5.4410102044341 -2.17653272037975  0.35265331 7.21279194058922 5.46590217761641 -2.18010257954931  0.35118334 
-20.1549001573063 -2.8646001360612e-007 -5.01896813038818  0.41832944 16.9355044943933 -8.74500041536521e-008 -5.03003175591368  0.41763537 10.4645041870373 3.12540014844853e-007 -5.05226969296992  0.41624723 7.21279194058922 5.13540024391841e-007 -5.06344437550069  0.41555316 
-20.1549001573063 -5.36756521394566 -2.16600070587951  0.35706323 16.9594987755329 -5.39184447709886 -2.1694827560449  0.35559326 10.4887791881903 -5.44101022743411 -2.17653394237981  0.35265331 7.21279194058922 -5.46590179861639 -2.18010380754937  0.35118334 
-20.1549001573063 -1.3686672230082 1.41444126018235  1 16.9193731036271 -1.36355460076537 1.41444126018235  1 10.4483189962685 -1.35332935627969 1.41444126118235  1 7.21279194058922 -1.34821673503686 1.41444126218235  1 
-
-0 5
-1.78417229 5
-
-0 3
-0.5 1
-1 3
-
-9 1 1 0 0 3 3 4 4 2 2 2.42419264614297 1.16954252255029 0.134080451298479  1 2.03334541657872 1.23856713582878 -0.0865812842123901  1 1.66514323309006 1.22851847935149 -0.337326809062163  1 1.31958609667697 1.13939655511843 -0.618156123250839  1 
-2.35726404496403 1.43069673595445 -0.401872591037923  1 2.01243271658542 1.37765821243525 -0.546829964673028  0.98104034 1.66651124815503 1.29263589439691 -0.716397241947042  0.96208068 1.31958626367698 1.15750248597842 -0.915835043099828  0.94312103 
-2.33241626178382 1.39050386204539 -0.916314172062586  1 2.00273548112483 1.29179416835693 -0.988492350130865  0.98104034 1.66226491995334 1.19968203998184 -1.08869934271044  0.96208068 1.31958648967699 1.0537491750504 -1.19543442578009  0.94312103 
-2.34964929660235 1.04896390382311 -1.40924429193551  1 2.00555960725897 0.985535358690416 -1.40924429193551  1 1.66190643893632 0.917897397927785 -1.40924429193551  1 1.319586737677 0.845840769945279 -1.40924429193551  1 
-
-0 4
-1.15245074 4
-
-0 4
-1 4
-
-9 1 1 0 0 2 2 4 4 3 3 1.31958587667696 0.752125697664052 0.131521655936943  1 0.891755746716123 0.650985935430171 0.0150059799227458  0.96534296 0.20827539713255 0.261421950456876 -0.441578743393864  0.96534296 -5.85000027786009e-009 0 -0.750000037063089  1 
-1.31958583967696 1.11139322878834 -0.157754491992936  0.83664232 0.894255615634861 0.92750749807424 -0.240144307486242  0.79744645 0.20203273896604 0.34449744198275 -0.550822022302641  0.79744645 -5.85000027786009e-009 0 -0.750000037063089  0.83664232 
-1.31958635467699 1.16739988144852 -1.07855775422874  0.83664232 0.888926097521722 0.989964824570804 -1.07602378110838  0.78836882 0.188732380694307 0.37052369753893 -0.901685778877774  0.78836882 -5.85000027786009e-009 0 -0.750000037063089  0.83664232 
-1.319586737677 0.845840769945279 -1.40924429193551  1 0.88283603870246 0.749655391746719 -1.3715516411452  0.94718769 0.186254588936618 0.303154248469053 -1.02355078361605  0.94718769 -5.85000027786009e-009 0 -0.750000037063089  1 
-
-0 3
-0.5 1
-1 3
-
-0 3
-0.80903606 1
-1.61807213 3
-
-9 1 1 0 0 3 3 5 6 3 4 2.42419264614297 1.16954252255029 0.134080451298479  1 2.27937972726472 1.13262527879681 0.177180354055615  1 2.00447310920736 1.03178106700697 0.244952477214618  1 1.63627084371869 0.799485582383526 0.291327614897319  1 1.42024110745783 0.590602480952111 0.28538900865525  1 1.31958584867696 0.472656068989958 0.273205864366582  1 
-2.29391023595488 1.19255072664312 0.0605265394648562  1 2.16902785802329 1.15329688577866 0.107955992457634  0.9977298 1.92910658662764 1.05030922388701 0.186504393618483  0.99459382 1.602170168099 0.822836792902649 0.254900275537113  0.9941031 1.40921128693394 0.619854407571503 0.265146597383787  0.9965848 1.31958585167696 0.505359753263299 0.26111802572244  0.99852785 
-1.91061135574917 1.23521758366968 -0.170163125832314  1 1.8400650803984 1.19714532886135 -0.107421641602254  0.99108277 1.69892783269474 1.09985602824036 0.00806201148292498  0.97886599 1.49620620706598 0.891336723516221 0.144204154819329  0.97739384 1.37502693331027 0.706171740261356 0.20180388161517  0.98764776 1.31958585867696 0.602247199925206 0.221022579678009  0.99558356 
-1.54995752161903 1.19881117094047 -0.430936580458388  1 1.52424455839773 1.17697917390351 -0.348293364563046  0.98492646 1.46993257681805 1.11100023876968 -0.186717805408619  0.9646103 1.38870078195974 0.941079732378887 0.0227773942518681  0.96362887 1.34071576768058 0.782670105474834 0.128120967165419  0.98263645 1.31958586867696 0.693879398917501 0.170048603146875  0.99705571 
-1.31958609667697 1.13939655511843 -0.618156123250839  1 1.31958604367697 1.13359452284285 -0.52276512652001  0.98104034 1.31958595167697 1.09548585203278 -0.33158791620958  0.9557608 1.31958587467696 0.960420377057518 -0.0701285701709282  0.9557608 1.31958586867696 0.826562636019617 0.0715862903601662  0.98104034 1.31958587667696 0.752125697664052 0.131521655936943  1 
-
-0 4
-0.33333333 1
-1 4
-
-0 4
-0.44764211 1
-0.89528423 1
-1.34292634 4
-
-9 1 1 0 0 3 3 8 9 6 7 2.42419264614297 1.16954252255029 0.134080451298479  1 2.41861526287806 1.19130537358397 0.0894176977771125  1 2.40804495137599 1.23064570045253 0.000390961008569651  1 2.38924215248291 1.29258484739448 -0.176467431321753  1 2.37012207257475 1.33861845958096 -0.395299644525725  1 2.35419144681809 1.3436342798192 -0.654313056808201  1 2.34230190425337 1.28335602195614 -0.99488394845445  1 2.34390495132951 1.16281055623054 -1.2449342521312  1 2.34964929660235 1.04896390382311 -1.40924429193551  1 
-2.53961679162532 1.19075929355803 0.116127601395765  1 2.53391830235466 1.21159794154781 0.0720504338522118  0.99940425 2.5229081938317 1.25002106137281 -0.0157380167075156  0.99831205 2.50338132890423 1.31029389623562 -0.1910102603125  0.9965248 2.48355378496247 1.35492587935552 -0.408649177199793  0.99503543 2.46737528019403 1.35879523053931 -0.666427615983612  0.99443969 2.45587057164759 1.29792147364796 -1.00425990869978  0.99523402 2.45818385875746 1.17960180302808 -1.24939093734288  0.99761701 2.46434586005014 1.07010675182734 -1.40924429193551  1 
-2.75496705385391 1.28442588600695 0.108309067874404  1 2.74978798660791 1.30223985385307 0.0645015090636571  0.99821276 2.7400692091463 1.33406416636464 -0.0229466916499093  0.99493614 2.72262776631787 1.38328042170229 -0.198367758641963  0.98957441 2.70500126648066 1.41645427027796 -0.417215303246663  0.9851063 2.69114744282264 1.40977760596084 -0.676678062870482  0.98331906 2.68246913941044 1.33898084359817 -1.01480171720049  0.98570205 2.68660863060706 1.21904082290133 -1.25570940664299  0.99285103 2.69383599095034 1.11145702179137 -1.40924429093551  1 
-3.00952343694469 1.45308167301767 0.126573836841934  1 3.00563047675978 1.46698780967818 0.0827251773192349  0.99672339 2.99918679045372 1.48868008770851 -0.00557844647496198  0.99071626 2.98758246990255 1.51976236318484 -0.183649559162886  0.98088642 2.97662797338224 1.53159320474677 -0.407648276642253  0.97269489 2.96931506303489 1.50226561435378 -0.674310721468039  0.96941828 2.96714691893191 1.40612900078754 -1.02003737044917  0.97378709 2.97364046324034 1.27376877950077 -1.26135803191129  0.98689355 2.98108417259389 1.16049280912045 -1.40924429093551  1 
-3.19269105364468 1.55804852000333 0.131934602026557  1 3.19041165753642 1.56913526952992 0.0880896238140324  0.99568083 3.18694691737185 1.58551531830793 -0.000610481988996337  0.98776235 3.18069775207503 1.60624085129234 -0.180411781619099  0.97480483 3.17512368581028 1.60583552827309 -0.407779760898498  0.9640069 3.17197530466074 1.56300774723888 -0.678633658803368  0.95968773 3.17229773367605 1.4509747599176 -1.02764925481072  0.96544662 3.17733827091546 1.30999705422152 -1.26631039314651  0.98272331 3.18243537415756 1.19326095267685 -1.40924429093551  1 
-3.30058911276956 1.60855069040205 0.129713091341041  1 3.29953207771936 1.61789725984599 0.0859509633524515  0.99508508 3.2980212506476 1.63196010451394 -0.00271838400911631  0.98607439 3.29528183251748 1.64779264626595 -0.183137215058551  0.97132963 3.29292796840568 1.64184741398356 -0.4119273860355  0.95904233 3.29176637735051 1.59295750766142 -0.684350187104888  0.95412741 3.29232954037725 1.47376522700009 -1.03384818210515  0.96068064 3.29500084850413 1.32905418612668 -1.26949237629765  0.98034032 3.29758320762679 1.21151726354398 -1.40924429093551  1 
-3.35591651339747 1.62968577140592 0.126313484549568  1 3.35562035038341 1.63791551479681 0.082593403422976  0.99478721 3.355232904365 1.65077893440779 -0.00600635158528638  0.98523042 3.35447139632883 1.66414363604258 -0.186641300334986  0.96959204 3.3537632002952 1.65585035764867 -0.415937811785985  0.95656005 3.35334338927526 1.60482983222532 -0.688732669043045  0.95134726 3.3534158592787 1.48345068146012 -1.03776382529113  0.95829765 3.35425519731857 1.33785002154446 -1.27121487637946  0.97914882 3.35518891336291 1.22048538696994 -1.40924428993551  1 
-3.38400016073138 1.63898521684762 0.123909655855393  1 3.38400016073138 1.64688968422306 0.080268500472549  0.99463827 3.38400016073138 1.65965826482953 -0.00818193018862081  0.98480843 3.38400016073138 1.67247644443836 -0.1887638144358  0.96872324 3.38400016073138 1.66342220800831 -0.418193177073109  0.95531891 3.38400016073138 1.6112991915326 -0.691102256865594  0.94995718 3.38400016073138 1.48839452869494 -1.03984279838988  0.95710615 3.38400016073138 1.34202071974256 -1.27211268842211  0.97855308 3.38400016073138 1.22492846018098 -1.40924428993551  1 
-
-0 4
-0.33333333 1
-0.66666667 1
-0.83333333 1
-0.91666667 1
-1 4
-
-0 4
-0.12672346 1
-0.25344691 1
-0.50689382 1
-0.76034073 1
-1.01378765 1
-1.52068147 4
-
-9 1 1 0 0 4 3 22 5 19 3 1.31958553267695 -0.845840762795279 -1.40924429893551  1 1.66190643893632 -0.917897390397785 -1.40924429893551  1 2.34921277558161 -1.05317331102305 -1.40924429993551  1 3.03826519730985 -1.17161156764856 -1.40924429993551  1 3.38400016073138 -1.22492845218098 -1.40924430093551  1 
-1.31958554067695 -0.834513074837242 -1.41889989339413  0.9958126 1.66311127499354 -0.906481390365554 -1.42023315545745  0.9965105 2.35137844368448 -1.04147014546718 -1.42289408458384  0.9979063 3.03896348234301 -1.16255637921846 -1.42785537281949  0.9993021 3.38400016073138 -1.2126798005992 -1.42687156877276  1 
-1.31958555767695 -0.811408684579843 -1.43799603430114  0.98763347 1.66548915110649 -0.883111705595553 -1.44204000549322  0.98969456 2.35647529892657 -1.01269338110035 -1.44629742369544  0.99381674 3.04115177644695 -1.13844373007317 -1.46117880740227  0.99793891 3.38400016073138 -1.18726051339185 -1.46200986444174  1 
-1.31958559167695 -0.763417331180376 -1.47524958307059  0.97205792 1.67010912932592 -0.834213042502991 -1.48487380952772  0.97671493 2.36589566837401 -0.956357032144519 -1.49488337700315  0.98602896 3.04487683162388 -1.08891395372064 -1.52952327164845  0.99534299 3.38400016073138 -1.13266850779886 -1.53165046474949  1 
-1.31958564267695 -0.686775787270098 -1.52744761254987  0.95104269 1.67654076763141 -0.754873897264585 -1.5458029534217  0.95920224 2.37916819200442 -0.866368529680295 -1.5644778033087  0.97552135 3.05008214987112 -1.00162597257468 -1.62834997734247  0.99184045 3.38400016073138 -1.03925138436179 -1.63308674756745  1 
-1.31958570167695 -0.590782994830685 -1.58221230215105  0.92994923 1.68323692194946 -0.653600842124373 -1.6109117805142  0.94162436 2.39282278165298 -0.754641485583545 -1.64133548395925  0.96497462 3.05515118911189 -0.882815233931472 -1.73784773254333  0.98832487 3.38400016073138 -0.913117842120768 -1.74435742585253  1 
-1.31958576667696 -0.473149797613408 -1.63484961065119  0.91053863 1.68962359625281 -0.526832905963219 -1.67475428254656  0.92544885 2.40594198327611 -0.615641859111418 -1.71801919160153  0.95526931 3.05983150933419 -0.723356033677566 -1.84823506978645  0.98508977 3.38400016073138 -0.746133687889447 -1.85642849517562  1 
-1.31958582867696 -0.34855514485548 -1.67627187361864  0.89582422 1.69461584948993 -0.390163314851762 -1.72584612497329  0.91318685 2.41625730876606 -0.465612306975397 -1.78038769356387  0.94791211 3.06329581049874 -0.542796538351451 -1.93899381109726  0.98263737 3.38400016073138 -0.558579077761081 -1.94789581152008  1 
-1.31958588067696 -0.235034433413536 -1.70160188882175  0.88705828 1.69765416663424 -0.263879783153617 -1.75751108647729  0.9058819 2.42273869507391 -0.325820731075654 -1.81874580338579  0.94352914 3.06535307959645 -0.369762295562766 -1.99624070581634  0.98117638 3.38400016073138 -0.37992587665551 -2.00548539625544  1 
-1.31958592167697 -0.135477862654853 -1.71503206745965  0.88247974 1.69926067371055 -0.152320155924819 -1.77439814927939  0.90206645 2.42636004924591 -0.201384891495269 -1.83851121032459  0.94123987 3.06640534364643 -0.21417445326274 -2.02711354428272  0.98041329 3.38400016073138 -0.219844259262041 -2.03634579972123  1 
-1.31958595967697 -0.0347898019324268 -1.7216251937728  0.88024931 1.70004821974795 -0.039165639840268 -1.78270715567404  0.90020776 2.42839860834274 -0.0744235365949281 -1.84707788973149  0.94012465 3.06690548267019 -0.0552402538037711 -2.04239826800871  0.98004155 3.38400015973138 -0.0566881002325402 -2.05154485744315  1 
-1.31958599467697 0.0662326885058837 -1.72127654875625  0.88036697 1.70000659574598 0.0745440846406539 -1.78227128065334  0.90030581 2.42881935536272 0.0538707024487209 -1.84426026959766  0.94018349 3.06685117866761 0.105088336581428 -2.04175092197796  0.98006116 3.38400015973138 0.107825662621444 -2.05076104840592  1 
-1.31958603067697 0.183345100748425 -1.71076722925708  0.88392856 1.69875085868633 0.20617359109272 -1.76900305202313  0.9032738 2.42691218627214 0.203291082295808 -1.82454146666107  0.94196428 3.06598615862652 0.290094264188738 -2.01765673683355  0.98065476 3.38400015973138 0.297852470327233 -2.02638573424815  1 
-1.31958606467697 0.314374959132009 -1.68525654704539  0.89269514 1.69569482354118 0.352317344374175 -1.73703209050459  0.91057928 2.42141115701085 0.370260157726413 -1.78112875459907  0.94634757 3.06391574252818 0.491780321298311 -1.95979965008548  0.98211586 3.38400015973138 0.505585230104009 -1.96813226448126  1 
-1.31958609167697 0.440561205645533 -1.64704102323025  0.90615792 1.69109600132275 0.491300761635533 -1.68971112625697  0.92179827 2.41253062758905 0.530434430604282 -1.72031453471055  0.95307896 3.06071154437599 0.677640509616196 -1.87551525108219  0.98435965 3.38400015973138 0.698024423364379 -1.88304183443968  1 
-1.31958611467697 0.582957037438972 -1.58778498941574  0.92785516 1.68391537698168 0.645637776806147 -1.61744742282463  0.9398793 2.39798042989795 0.710776177540055 -1.63184791350861  0.96392758 3.05555534413108 0.874898680755456 -1.74903979407493  0.98797586 3.38400015973138 0.904442985938735 -1.75506127336093  1 
-1.31958612367697 0.68947935426851 -1.52707619053222  0.95118902 1.67649518962924 0.758040536764992 -1.54513304738988  0.95932418 2.38207897314267 0.846661852584278 -1.54976586860993  0.97559451 3.04989296386214 1.00726292384242 -1.62728476629188  0.99186484 3.38400015973138 1.044540214613 -1.63101228146892  1 
-1.31958612567697 0.765080917499392 -1.47432392602663  0.97243898 1.66999464632049 0.835979502046894 -1.48372748947327  0.97703248 2.36768665645908 0.944815449946324 -1.4842543684983  0.98621949 3.04481138562077 1.09089843581489 -1.52729738954273  0.9954065 3.38400016073138 1.13498204490875 -1.52945140364504  1 
-1.31958612567697 0.819060182683269 -1.43153990099449  0.99038364 1.66468596606834 0.890812002421298 -1.43469961114457  0.99198637 2.35545566987814 1.01784484234503 -1.43531939417401  0.99519182 3.04037963241028 1.14645560545372 -1.45025331488333  0.99839727 3.38400016073138 1.1954641837815 -1.45034831288785  1 
-1.31958612467697 0.830329525808534 -1.42233064755708  0.99433319 1.66353896501386 0.902238155024011 -1.424160715644  0.99527766 2.35287964575578 1.03270910805105 -1.42447793265907  0.9971666 3.03950121336855 1.15729700696866 -1.43324455807546  0.99905553 3.38400016073138 1.20801266637752 -1.43326130307626  1 
-1.31958612467697 0.83923074369132 -1.41487860420312  0.99755226 1.66260970096972 0.911233640251273 -1.41565839524016  0.99796022 2.35047760964169 1.04633792469838 -1.41721606531415  0.99877613 3.0384810543201 1.16748288145246 -1.42099029249341  0.99959204 3.38400016073138 1.21777108484102 -1.419549927425  1 
-1.31958612467697 0.845840769945279 -1.40924429193551  1 1.66190643893632 0.917897397927785 -1.40924429193551  1 2.34921277558161 1.05317331902305 -1.40924429193551  1 3.03826519730985 1.17161157664856 -1.40924429093551  1 3.38400016073138 1.2249309651811 -1.40924642893561  1 
-
-0 5
-0.03956326 1
-0.07912651 1
-0.15825303 1
-0.23737954 1
-0.31650606 1
-0.39563257 1
-0.47475909 1
-0.51432235 1
-0.5538856 1
-0.63301212 1
-0.71213863 1
-0.79126515 1
-0.87039166 1
-0.94951818 1
-1.09031566 1
-1.09802453 1
-1.1057334 1
-1.12886001 5
-
-0 4
-0.5 1
-1 4
-
-9 1 1 0 0 2 2 4 4 3 3 1.31958612467697 0.845840769945279 -1.40924429193551  1 0.882835714782444 0.749655391746719 -1.3715516411452  0.94718769 0.186254588936618 0.303154248469053 -1.02355078361605  0.94718769 -5.85000027786009e-009 0 -0.750000037063089  1 
-1.31958613967698 0.480307131283364 -1.72082107973461  0.88052073 0.886558505229267 0.428933874253265 -1.60896504042174  0.82770842 0.184667034601213 0.173457200778775 -1.09258267889489  0.82770842 -5.85000027786009e-009 0 -0.750000037063089  0.88052073 
-1.31958580367696 -0.480307121533363 -1.72082108373461  0.88052073 0.886558326289259 -0.428933870143265 -1.60896504142173  0.82770842 0.184667034411213 -0.173457201878775 -1.09258267789489  0.82770842 -5.85000027786009e-009 0 -0.750000037063089  0.88052073 
-1.31958553267695 -0.845840762795279 -1.40924429893551  1 0.88283540205243 -0.749655389626719 -1.3715516431452  0.94718769 0.186254588606618 -0.303154250159054 -1.02355078161605  0.94718769 -5.85000027786009e-009 0 -0.750000037063089  1 
-
-0 3
-0.5 1
-1 3
-
-0 3
-0.74435223 1
-1.48870447 3
-
-9 1 1 0 0 2 2 4 4 3 3 1.31958587667696 0.752125697664052 0.131521655936943  1 1.31958583267696 0.410089306358196 0.357761232952746  0.91702671 1.31958583267696 -0.410089306358196 0.357761232952746  0.91702671 1.31958587667696 -0.752125697664052 0.131521655936943  1 
-0.891755746716123 0.650985935430171 0.0150059799227458  0.96534296 0.893253836737279 0.356100571543869 0.186873177695999  0.88236967 0.893253836737279 -0.356100571543869 0.186873177695999  0.88236967 0.891755746716123 -0.650985935430171 0.0150059799227458  0.96534296 
-0.20827539713255 0.261421950456876 -0.441578743393864  0.96534296 0.207546073557909 0.143002330632246 -0.38876235909522  0.88236967 0.207546073557909 -0.143002330632246 -0.38876235909522  0.88236967 0.20827539713255 -0.261421950456876 -0.441578743393864  0.96534296 
--5.85000027786009e-009 0 -0.750000037063089  1 -5.85000027786009e-009 0 -0.750000037063089  0.91702671 -5.85000027786009e-009 0 -0.750000037063089  0.91702671 -5.85000027786009e-009 0 -0.750000037063089  1 
-
-0 3
-0.91343719 1
-1.82687438 3
-
-0 3
-0.5 1
-1 3
-
-9 1 1 0 0 2 2 4 4 3 3 -5.85000027786009e-009 0 -0.750000037063089  1 -5.85000027786009e-009 0 -0.750000037063089  0.83664231 -5.85000027786009e-009 0 -0.750000037063089  0.83664231 -5.85000027786009e-009 0 -0.750000037063089  1 
-0.186254588606618 -0.303154250159054 -1.02355078161605  0.94718769 0.18873244576431 -0.370523699708931 -0.901685778007774  0.78836882 0.202032803526043 -0.34449744307275 -0.550822021852641  0.79744645 0.20827539713255 -0.261421950456876 -0.441578743393864  0.96534296 
-0.882835714392444 -0.749655389626719 -1.3715516431452  0.94718769 0.88892605283172 -0.989964825840804 -1.07602378410838  0.78836882 0.894255764064868 -0.92750750046424 -0.240144307976242  0.79744645 0.891755746716123 -0.650985935430171 0.0150059799227458  0.96534296 
-1.31958612467697 -0.845840762795279 -1.40924429893551  1 1.31958614767698 -1.16739987944852 -1.07855776222874  0.83664231 1.31958599867697 -1.11139323078834 -0.157754493832936  0.83664231 1.31958587667696 -0.752125697664052 0.131521655936943  1 
-
-0 3
-0.80903604 1
-1.61807207 3
-
-0 3
-0.5 1
-1 3
-
-9 1 1 0 0 3 3 4 4 2 2 1.31958607367697 -1.13939655511843 -0.618156128230839  1 1.66504253008527 -1.22892561037083 -0.337230843807605  1 2.03322615057306 -1.23901955185027 -0.0864785933175126  1 2.42413693614032 -1.16967838155674 0.134100623219438  1 
-1.31958612167697 -1.15750248497842 -0.915835049989829  0.94312102 1.66652056815548 -1.29310018041896 -0.716362105295373  0.96208068 2.01253799559042 -1.37814992545861 -0.546789587691111  0.98104034 2.35753187697675 -1.43089684996395 -0.401910199549709  1 
-1.31958613967698 -1.0537491720504 -1.19543443378009  0.94312102 1.66233682095676 -1.19985629399011 -1.08868495970976  0.96208068 2.00288635213199 -1.29212058637243 -0.988523311362336  0.98104034 2.33270266479743 -1.39065868805274 -0.916358507244692  1 
-1.31958612467697 -0.845840762795279 -1.40924429893551  1 1.66190643893632 -0.917897390397785 -1.40924429893551  1 2.00555960725897 -0.985535350790415 -1.40924429993551  1 2.34964929660235 -1.04896389482311 -1.40924429993551  1 
-
-0 4
-1.15241345 4
-
-0 4
-1 4
-
-9 1 1 0 0 3 3 5 6 3 4 1.31958586967696 -0.472656103389959 0.273205851646581  1 1.42016903945441 -0.590730484958191 0.285486017359858  1 1.63609852971051 -0.799794273568188 0.291555480648142  1 2.00428221819829 -1.03213503302378 0.24518707116576  1 2.27926431325924 -1.13285892380791 0.177293061910968  1 2.42413693614032 -1.16967838155674 0.134100623219438  1 
-1.31958587167696 -0.505359783523301 0.26111801354244  0.99852786 1.40915002693103 -0.619974747737219 0.265227999307653  0.9965848 1.60202192909195 -0.823128663436512 0.255091729976206  0.9941031 1.92893238561937 -1.05067168290422 0.186710119468254  0.99459382 2.16890695601755 -1.15359505079282 0.108072198453154  0.9977298 2.29383334095123 -1.19279210465458 0.0605742177071208  1 
-1.31958587667696 -0.602247217935207 0.221022570018008  0.99558357 1.37499003730852 -0.706268622175958 0.201850119687366  0.98764777 1.49611776206178 -0.891570687617333 0.144310994224404  0.97739384 1.69880870668908 -1.10019966525668 0.00819262339912871  0.97886599 1.83994813239284 -1.19754665388041 -0.107308190066865  0.99108277 1.91049827674379 -1.23565490469046 -0.170062676817543  1 
-1.31958587767696 -0.693879405727502 0.170048598636875  0.99705571 1.34069359067953 -0.782725213587451 0.128149309836765  0.98263645 1.38865401795752 -0.941209313985041 0.0228402070548516  0.96362887 1.46987940681552 -1.11118992177869 -0.186647256305269  0.9646103 1.52418573139493 -1.17721586091475 -0.348228519749966  0.98492646 1.54989037761584 -1.19908259195336 -0.43087260527535  1 
-1.31958587667696 -0.752125697664052 0.131521655936943  1 1.31958590167696 -0.826562636439617 0.0715862900301662  0.98104034 1.31958595267697 -0.960420378167518 -0.0701285714209283  0.9557608 1.31958602167697 -1.09548585303278 -0.33158791933958  0.9557608 1.31958605767697 -1.13359452284285 -0.52276513094001  0.98104034 1.31958607367697 -1.13939655511843 -0.618156128230839  1 
-
-0 4
-0.33333333 1
-1 4
-
-0 4
-0.44774013 1
-0.89548026 1
-1.34322039 4
-
-9 1 1 0 0 3 3 8 7 4 5 2.00023807100621 -0.163958005517587 0.96768671484265  1 2.03489752065244 -0.314562669980924 0.915621844889702  1 2.11251003633884 -0.589866694887163 0.784454900379607  1 2.23025972093165 -0.869233465956372 0.552903208261492  1 2.33689989299678 -1.05386892705609 0.327106047676703  1 2.39436678672631 -1.13323400482572 0.200688865082209  1 2.42413693614032 -1.16967838155674 0.134100623219438  1 
-1.98138388111068 -0.164009776200046 0.95416450643038  1 2.01504411070946 -0.312385186227499 0.903362128677397  0.99996293 2.09023358728076 -0.583990171228043 0.77560964416948  0.99991351 2.20403387768599 -0.860991457974898 0.550560562000222  0.99991351 2.30705065557902 -1.04512455964075 0.33126285025414  0.99995058 2.36257833021644 -1.12458131441474 0.20846277010145  0.99998147 2.39130647758096 -1.16133450216043 0.143888722034347  1 
-1.96265344722103 -0.164065846862709 0.940474777060153  1 1.99491238575325 -0.310816731043002 0.891751841965938  0.99992586 2.06753723720274 -0.578790921771092 0.767713537284435  0.99982702 2.17792843244604 -0.852359185904887 0.548119195694264  0.99982702 2.27762002318114 -1.03549304618328 0.334785579801461  0.99990115 2.33121681972685 -1.11510570796468 0.215637798732245  0.99996293 2.3588550990396 -1.15229515073108 0.153202023216705  1 
-1.83019016592936 -0.164495632963123 0.841823267944458  1 1.85416547706813 -0.296687479231898 0.80459500050621  0.99966197 1.91022013373058 -0.537223610496751 0.705047458307956  0.99921127 1.99596376180319 -0.788341846404227 0.526939293198272  0.99921127 2.07123821337853 -0.964298845591735 0.357341915672829  0.9995493 2.11073489225452 -1.04388093058168 0.263952815307085  0.99983099 2.13052836519466 -1.08299171843934 0.21612444244536  1 
-1.72099232574275 -0.165025310578281 0.750811607191636  1 1.73885368059111 -0.281781516483903 0.722134653769554  0.99943515 1.78308796569213 -0.493934152800612 0.641436519246598  0.99868201 1.85075662490622 -0.719267860203389 0.496181355417349  0.99868201 1.90698885557711 -0.882657111663961 0.361459885758422  0.99924687 1.93499312590724 -0.95908497806409 0.288924944153198  0.99971757 1.94846807054726 -0.997382061603104 0.25243017736979  1 
-1.51191416881207 -0.166405190103822 0.556353481785371  1 1.51951449017306 -0.246449390155717 0.542092091377991  0.9989815 1.54204818424336 -0.394265980376628 0.497368471233734  0.99762351 1.57623454086712 -0.558404644222796 0.415830091230869  0.99762351 1.59979668198626 -0.68294656852822 0.344075986692732  0.998642 1.60911907042905 -0.74350161106443 0.30735819398873  0.99949075 1.61273576060083 -0.774080653576856 0.289485285659813  1 
-1.41295836511192 -0.167240114993479 0.454273684986841  1 1.41630714827098 -0.226014923805132 0.445727350470912  0.99875468 1.42774374981419 -0.337166772504562 0.417990721203493  0.99709425 1.44500484663404 -0.464995688236109 0.367139210968176  0.99709425 1.45524431912039 -0.563614526410252 0.323085389885732  0.99833957 1.45828385726476 -0.612172068896612 0.301015419117465  0.99937734 1.45906374530181 -0.636388902176849 0.290234659035406  1 
-1.31958583467696 -0.168220024990022 0.347343154077914  1 1.31958583967696 -0.202819713033419 0.343041048563575  0.99852786 1.31958584967696 -0.271740193206966 0.331774555398445  0.996565 1.31958585967696 -0.35659725493746 0.311109877006925  0.996565 1.31958586567696 -0.423380963929516 0.290706506737818  0.99803714 1.31958586767696 -0.456316308323861 0.27924531866344  0.99926393 1.31958586967696 -0.472656103389959 0.273205851646581  1 
-
-0 4
-0.08801262 2
-0.62657294 2
-1.16513326 4
-
-0 4
-0.33333333 1
-0.66666667 1
-0.83333333 1
-1 4
-
-9 1 1 0 0 2 2 6 4 5 3 2.8066391803082 0.164126150055573 1.41444143218236  1 2.8066391753082 0.0877860075896114 1.45778393424102  0.93480793 2.8066391643082 -0.0877860847096151 1.45778391524102  0.93480793 2.8066391593082 -0.164126217435577 1.41444139518236  1 
-2.57776472443725 0.163499698825819 1.319607622678  1 2.56650351790237 0.0866858236373555 1.35019340213074  0.94305882 2.56650350690237 -0.0866858986973591 1.35019338213074  0.94305882 2.57776470343725 -0.163499765415822 1.31960758567799  1 
-2.14274171277477 0.163481471704953 1.07459482804051  1 2.11985345168763 0.0851855702760973 1.08772681066425  0.95956061 2.11985344068763 -0.0851856428761007 1.08772679166425  0.95956061 2.14274169177476 -0.163481538334956 1.07459479004051  1 
-1.77326187922542 0.164680272451893 0.799426170020704  1 1.75205970121837 0.0844597695316236 0.805574293662724  0.97490342 1.75205969321837 -0.084459841471627 0.805574277512723  0.97490342 1.77326186422542 -0.164680340701896 0.799426138540702  1 
-1.4596446333294 0.166750089070204 0.507738967696306  1 1.45021434788148 0.0842949151737935 0.514985808490512  0.98908726 1.45021434588148 -0.0842949876837969 0.514985799770512  0.98908726 1.4596446303294 -0.166750159990207 0.507738950436305  1 
-1.31958583467696 0.168219952200019 0.347343163127914  1 1.31958584267696 0.0844325598103312 0.357761235222746  0.99617917 1.31958584267696 -0.0844326331603347 0.357761230682746  0.99617917 1.31958583467696 -0.168220024990022 0.347343154077914  1 
-
-0 3
-1.49547551 1
-2.99095102 1
-4.27636204 1
-5.56177307 3
-
-0 3
-0.5 1
-1 3
-
-9 0 0 0 0 3 3 6 7 4 4 3.07361411498883 -0.462644191244419 1.41444136118236  2.95582892039433 -0.607898777433641 1.19584699279968  2.83877628783463 -0.743197021369963 0.971382893078209  2.65580223414383 -0.940362616654825 0.609062659318923  2.55618206841213 -1.04319434354907 0.40819202783808  2.45710311770613 -1.13867034808394 0.202984852991263  2.42413693614032 -1.16967838155674 0.134100623219438  
-3.04134577945617 -0.431905429304406 1.41444136518236  2.92145942776187 -0.561999162443527 1.21372068264864  2.80004749599511 -0.685200475105275 1.01080032501044  2.60845905189515 -0.870980548019354 0.687476856073397  2.5037597429222 -0.970071136875904 0.509208434616102  2.39924118095784 -1.0658929696272 0.328335491625098  2.36459663831231 -1.09678962909471 0.267277106954981  
-2.97841692646721 -0.368662386800523 1.41444137218236  2.85082380640686 -0.471444862962428 1.25349867353799  2.72029614320713 -0.572026468689798 1.09321270592481  2.51425035042048 -0.728588994946119 0.838706317116411  2.40265130311981 -0.812779906704972 0.697249796597587  2.29088073981099 -0.897737162110225 0.554837037643344  2.25380965805021 -0.925106820160214 0.506592869841869  
-2.88923255023118 -0.26893801941387 1.41444138318236  2.7465453114539 -0.328708662862823 1.3119505043143  2.60472786171793 -0.386844604694132 1.20435016420356  2.38463558326411 -0.476953721134085 1.02584820372517  2.26799496772398 -0.523368207758655 0.922452844384157  2.15146739918921 -0.573048783158355 0.81890692627599  2.11251003633884 -0.589866694887163 0.784454900379607  
-2.8335058675843 -0.199506406896045 1.41444139118236  2.68306070143854 -0.221843683387009 1.34122520470478  2.53606373245656 -0.243257614734116 1.25915754080677  2.31025832273138 -0.275489761955061 1.11613971101379  2.19076498205575 -0.291173623430004 1.0321690330254  2.07376893549873 -0.308423620369335 0.944852886058102  2.03489752065244 -0.314562669980924 0.915621844889702  
-2.8066391593082 -0.164126217435577 1.41444139518236  2.6540561890609 -0.16370858275574 1.35121885517945  2.5052608679935 -0.163496727565677 1.27877211973841  2.27716058115932 -0.163487170365224 1.15030192963641  2.15561091138602 -0.163589285980074 1.07592130710352  2.03869512483282 -0.163852408392571 0.995268079952695  2.00023807100621 -0.163958005517587 0.96768671484265  
-
-0 4
-0.33333333 1
-0.66666667 1
-1 4
-
-0 4
-0.70387747 2
-1.10721489 1
-1.3088836 4
-
-9 0 0 0 0 3 4 8 15 6 12 2.34964929660235 -1.04896389482311 -1.40924429993551  2.34962109460101 -1.04953254385012 -1.40842403889655  2.34956489459834 -1.05066835790407 -1.40678341081862  2.34948121259436 -1.05236762498478 -1.40432214970172  2.34936167558869 -1.0548124741009 -1.40076630453283  2.3464648664511 -1.11454227593791 -1.31349252238754  2.34304618328872 -1.21528196872279 -1.14133668721058  2.34457102936114 -1.3175929185823 -0.881477839057949  2.35716887995951 -1.35205004121893 -0.588354694915347  2.37403613676066 -1.33062613520135 -0.350352063290829  2.39032353153427 -1.28831377419162 -0.169972884403278  2.40263657611911 -1.24960776035318 -0.0489692164159129  2.41296244460956 -1.21270492160039 0.04234669613136  2.42033128395956 -1.18460377126566 0.103474265184764  2.42413693614032 -1.16967838155674 0.134100623219438  
-2.46434586005014 -1.07010674382734 -1.40924429993551  2.46432620304921 -1.0706491678531 -1.40845555889805  2.46428712604735 -1.07173236590455 -1.4068776948231  2.46422893504459 -1.07335383598157 -1.40451085071068  2.46414620304066 -1.07568638309236 -1.40109042554822  2.46214886194579 -1.13269591280017 -1.31715197256136  2.46016843985173 -1.22982248941343 -1.15085267066257  2.46280371897689 -1.33123972023049 -0.897176159883579  2.47528689956981 -1.36800685597684 -0.606169275691494  2.49161447334533 -1.34835709804352 -0.368206524348871  2.50732894809173 -1.30727396009218 -0.187680544644347  2.5191647956539 -1.26936310829151 -0.0666066753636472  2.52901720512187 -1.23308950356861 0.0246340517600546  2.53603135245502 -1.2053131062493 0.0855248924822142  2.53957045562312 -1.19080052555999 0.116103361404614  
-2.69383599095034 -1.11145701379137 -1.40924429993551  2.69375012594626 -1.11242668983743 -1.40885742091713  2.69376620694702 -1.11323088187563 -1.40719049683796  2.69371126094441 -1.11491343295554 -1.40506588773705  2.69366794694236 -1.11712467006057 -1.40182860958328  2.69247962488591 -1.17211207867233 -1.32307479684268  2.69154916584172 -1.26791793022287 -1.16491051733028  2.69415151396532 -1.37436552827886 -0.917622474674727  2.70415517844047 -1.42379473762662 -0.62565023393679  2.71708945605482 -1.41614680226336 -0.383993145058695  2.72946526964264 -1.38454652876243 -0.200118354035111  2.73879732208589 -1.35308881126827 -0.076874738901354  2.74657657745538 -1.32175811678014 0.0157579120384606  2.75199910871294 -1.29758209363184 0.0774275866776128  2.75490042685074 -1.28451286301108 0.108323247175078  
-2.98108417259389 -1.16049280112045 -1.40924429993551  2.98090652458546 -1.16203062319349 -1.40934699194039  2.98097339758863 -1.16255474221838 -1.40754356685473  2.98089542558493 -1.16441554930677 -1.40568306476636  2.98086191658334 -1.16662370041165 -1.40261955962085  2.97971240552874 -1.22271079907564 -1.32894388512144  2.97810392645234 -1.32356738186607 -1.17762603293423  2.97780336143806 -1.44478122262342 -0.932633855817729  2.9818189966288 -1.51949897617233 -0.634208558503289  2.98816539093023 -1.53559303293675 -0.384011197299552  2.9946261082371 -1.5225344083165 -0.192891717841865  2.99975236948059 -1.5035354914141 -0.064876177951453  3.0042940156963 -1.48149347536716 0.0310876587065845  3.00735767284182 -1.46397864753525 0.0949609630104035  3.00942613994006 -1.45335844503082 0.126706513498236  
-3.18243537415756 -1.19326094367685 -1.40924430093551  3.18229333815082 -1.19460263674058 -1.40923159593491  3.18234929715347 -1.19523082977042 -1.40758784085683  3.18228959715064 -1.19703877285629 -1.40580154077199  3.18226688014956 -1.199264488962 -1.40291697863498  3.18144120211034 -1.25541827162917 -1.33327835432732  3.18009810304655 -1.35852918352667 -1.1880763954306  3.1791117119997 -1.48821154168625 -0.946934079056953  3.18028402605538 -1.57814387395781 -0.645688041768535  3.18282615617612 -1.60863399340601 -0.390410371283497  3.18558474930715 -1.60715659733584 -0.194854404705087  3.1878891784166 -1.59613049981213 -0.0637899280798589  3.19005242151935 -1.58021252705606 0.0343966424537528  3.19146242058632 -1.56676639741741 0.0996674759439509  3.19261795364121 -1.55828895801475 0.132057217152381  
-3.29758320762679 -1.21151725554398 -1.40924430093551  3.29750499662308 -1.21248980359017 -1.40897026492249  3.29753616962456 -1.2133009096287 -1.40752897585404  3.29750367962301 -1.21499482070915 -1.40574047776909  3.29749175562245 -1.21722780981522 -1.40298675863829  3.29705046660149 -1.27284433145686 -1.33596412145489  3.29630264056597 -1.37617961936502 -1.19505426076203  3.29564154853457 -1.50923171168466 -0.957446587626271  3.29590698954717 -1.60605078628332 -0.655657637822065  3.29678444558885 -1.64315495604567 -0.398149184771071  3.29777858963607 -1.64720978823826 -0.200583695787214  3.29864534767724 -1.64010804390095 -0.0680862704639242  3.29949866771777 -1.62731559629334 0.0311699092604912  3.30003168774309 -1.61579569974617 0.0970559413299096  3.3005498087677 -1.60868790840857 0.129784810234447  
-3.35518891336291 -1.22048537796994 -1.40924430093551  3.35515959736152 -1.22117309600261 -1.40876371791268  3.35517131736208 -1.22212307704773 -1.4074671238511  3.3551591933615 -1.22372646412389 -1.40566050776529  3.3551548333613 -1.22596061023 -1.40298379963815  3.3549928083536 -1.28104821984652 -1.33740161252316  3.3547655133428 -1.38387972773076 -1.19899338694913  3.35467861133868 -1.51750336607754 -0.963777748696985  3.35490538634945 -1.61650110577968 -0.662236761864557  3.35518633336279 -1.65613343066211 -0.403917028975029  3.35540158837302 -1.66268310197321 -0.205551218763159  3.3555654253808 -1.65752571672824 -0.072442100270815  3.355717081388 -1.64643314520137 0.027295803466481  3.35578078939103 -1.63596463470415 0.093440218248172  3.35590191739678 -1.62973820740841 0.126341610970904  
-3.38400016073138 -1.22492845218098 -1.40924430093551  3.38400016073138 -1.22544504920551 -1.40863878690675  3.38400016073138 -1.22647791225457 -1.40742699784919  3.38400016073138 -1.22802637332812 -1.40560651276272  3.38400016073138 -1.23026038643423 -1.40297166663758  3.38400016073138 -1.28501268103482 -1.33814808855862  3.38400016073138 -1.38764131790942 -1.20105164204689  3.38400016073138 -1.52198104829022 -0.967070649443389  3.38400016073138 -1.62247285906332 -0.665657587487037  3.38400016073138 -1.66325943400058 -0.407000902781505  3.38400016073138 -1.67063232935077 -0.208364577446786  3.38400016073138 -1.66600580313103 -0.0750673966955099  3.38400016073138 -1.65529696062238 0.0247951568877067  3.38400016073138 -1.64495198913102 0.0909692943408094  3.38400016073138 -1.63898554684763 0.123910676095441  
-
-0 4
-0.33333333 1
-0.66666667 1
-0.83333333 1
-0.91666667 1
-1 4
-
-0 5
-0.00338386 1
-0.00676772 1
-0.01015158 1
-0.0146634 1
-0.36320115 1
-0.7117389 1
-1.06027665 1
-1.1764559 1
-1.29263515 1
-1.4088144 1
-1.52499365 5
-
-9 1 1 0 0 4 3 9 11 6 9 3.38400016073138 -1.63898554684763 0.123910676095441  1 3.35590191739678 -1.62973820740841 0.126341610970904  1 3.3005498087677 -1.60868790840857 0.129784810234447  1 3.19261795364121 -1.55828895801475 0.132057217152381  1 3.06176665842611 -1.4833385914548 0.128235285970849  1 2.90761585510434 -1.38582021282292 0.119353206968973  1 2.75270491474646 -1.29226863737946 0.11253950853534  1 2.6199532764411 -1.22723528129055 0.113888528799415  1 2.5097410092063 -1.18873674246196 0.122366077442077  1 2.45299531551102 -1.17495891780755 0.129601307765732  1 2.42413693614032 -1.16967838155674 0.134100623219438  1 
-3.38400016073138 -1.62962242840291 0.175605490660813  0.99381499 3.35624418241304 -1.62005353494841 0.177760787143184  0.9939868 3.30187716683074 -1.59786217089438 0.180526174854533  0.99433041 3.19580430879255 -1.54600628443135 0.181633556937131  0.99501763 3.06728977168844 -1.46989973181649 0.176562669256276  0.99587666 2.91598587650189 -1.37157487814631 0.166438482485403  0.9969075 2.76423437929408 -1.27737021367183 0.1583895573531  0.99793833 2.63464810413906 -1.21139940153838 0.15850282239848  0.99879736 2.52738055004413 -1.17148495864255 0.1656152057763  0.99948458 2.47227232142663 -1.1565357209325 0.171911311745349  0.99982819 2.44419561909306 -1.15081115766059 0.17601409024022  1 
-3.38400016073138 -1.60687981832269 0.278763023740533  0.98258052 3.35669113743427 -1.59730627286797 0.280561543355958  0.98306439 3.30385210892455 -1.57402469676216 0.282294362908262  0.98403214 3.20106899204261 -1.52059348722431 0.281315390621763  0.98596764 3.07734074416584 -1.44243764451211 0.273478879609549  0.98838701 2.93245712128423 -1.34159530972236 0.260083781973316  0.99129026 2.78782467441456 -1.24497710113324 0.248813717878017  0.99419351 2.66485103657363 -1.1769284839011 0.246273169207347  0.99661288 2.56322371974659 -1.13502600491084 0.251065355434964  0.99854838 2.51106301626909 -1.11864287613268 0.255951356967037  0.99951613 2.48435256600041 -1.11253877784275 0.259523887796723  1 
-3.38400016073138 -1.54539565240235 0.482548279189812  0.96457321 3.3579362134934 -1.53555276993484 0.483581096718868  0.96555729 3.30845504914318 -1.51050536974515 0.483376452679148  0.96752544 3.21280599660009 -1.45499548410857 0.478534851879185  0.97146175 3.09905810019735 -1.37510701231408 0.465704131419758  0.97638214 2.96724470293655 -1.27281894345565 0.446308566818518  0.9822866 2.83674628873821 -1.17476391079829 0.428889100671138  0.98819107 2.72651648750258 -1.10460712846602 0.420945883793856  0.99311146 2.63556669218269 -1.05968386733228 0.420892733061331  0.99704777 2.5889159169669 -1.04085199043781 0.422932230088202  0.99901592 2.56482477982263 -1.03384228910487 0.425274936949475  1 
-3.38400016073138 -1.40809479788091 0.769737930640588  0.95047013 3.3606183476208 -1.39836719041887 0.769834117555157  0.95184596 3.31678500253883 -1.37361296724311 0.76768355091301  0.95459762 3.23297207455793 -1.31984222168914 0.758927949287142  0.96010094 3.13498056290358 -1.24353276906463 0.741091099809937  0.96698009 3.02323053959574 -1.14622760544289 0.715355902897581  0.97523507 2.91374468639544 -1.05231054298207 0.691008169851125  0.98349004 2.82166089002169 -0.983492227053372 0.676528442413375  0.99036919 2.74551939940517 -0.937514642709554 0.670588730341254  0.99587251 2.70636039054521 -0.917246927316889 0.669400620634822  0.99862417 2.68600805457853 -0.909342365861443 0.670095872757845  1 
-3.38400016073138 -1.19086198756291 1.06367976252208  0.9518099 3.36495603082683 -1.18207687314564 1.06306852149304  0.95314851 3.32899198511863 -1.16107598914815 1.06010723435239  0.95582574 3.2608340388813 -1.11526732697235 1.05029535888635  0.96118019 3.18199457013663 -1.05071823690644 1.03206433302042  0.96787326 3.09328753592327 -0.968073443551019 1.00596751678089  0.97590495 3.00714621183177 -0.886890278245026 0.980354532874339  0.98393663 2.93484229439752 -0.825345934981827 0.963210946850063  0.9906297 2.87494943255276 -0.782409928762476 0.953935902279522  0.99598416 2.84406755008595 -0.762975365959384 0.950830453922021  0.99866139 2.82808118832664 -0.75467863677531 0.950170409260671  1 
-3.38400016073138 -0.96133668617104 1.26210326194669  0.96988195 3.36967345405089 -0.953884514857081 1.2615456789202  0.97071857 3.3419878757359 -0.937582801832791 1.25956431582609  0.97239179 3.28918031222767 -0.901999836532691 1.25313523952073  0.97573824 3.22735005529089 -0.852626796837598 1.24135750096131  0.9799213 3.15737986596749 -0.789258687797774 1.22427301414985  0.98494098 3.08949147274296 -0.725520178170358 1.20707163733282  0.98996065 3.03285576605291 -0.675005774231052 1.19494587675688  0.99414371 2.98643509484805 -0.637853082126394 1.18787487442103  0.99749016 2.96268229971985 -0.620525594343383 1.18536927330202  0.99916339 2.95057059414458 -0.612426941398717 1.18452584126196  1 
-3.38400016073138 -0.79695880412351 1.36822398598715  0.98885491 3.37311287721426 -0.790377912850935 1.36800344097667  0.9891645 3.35166190219539 -0.776771988534688 1.36728105894236  0.98978367 3.30991739321263 -0.748013760988746 1.36489278482893  0.99102201 3.25964841682498 -0.7096002127842 1.36048005461933  0.99256994 3.20154854106539 -0.660917248151883 1.35398355331076  0.99442746 3.14489151537432 -0.61100881063136 1.34733454599495  0.99628497 3.09820442915681 -0.569498346739719 1.34253118976681  0.9978329 3.06078422737944 -0.537012049396702 1.33965170163004  0.99907124 3.04198504648653 -0.521119834681863 1.33861888158098  0.99969041 3.03254683503824 -0.513289017939919 1.33822570356231  1 
-3.38400016073138 -0.713493162199105 1.41444133318236  1 3.3748717562978 -0.707296392774774 1.41444133418236  1 3.35669134643428 -0.694765211989575 1.41444133518236  1 3.32064414772213 -0.669161381703459 1.41444133818236  1 3.27618824961058 -0.636158400655901 1.41444134218236  1 3.22385431012486 -0.595012308321567 1.41444134618236  1 3.17258169068954 -0.55237829491656 1.41444135118236  1 3.13077909270402 -0.515655511232321 1.41444135518236  1 3.0979158561431 -0.485587917784187 1.41444135918236  1 3.081681199372 -0.470328881729422 1.41444136018236  1 3.07361411498883 -0.462644191244419 1.41444136118236  1 
-
-0 5
-0.24526078 1
-0.49052156 1
-0.98104311 1
-1.47156467 1
-1.96208622 5
-
-0 4
-0.08333333 1
-0.16666667 1
-0.33333333 1
-0.5 1
-0.66666667 1
-0.83333333 1
-0.91666667 1
-1 4
-
-9 1 1 0 0 3 4 11 51 9 48 6.35000030160882 -1.3468533929721 1.41444126218235  1 6.35000030660882 -1.40890616991945 1.36006180859947  1 6.35000029960882 -1.48956503675054 1.28150641286829  1 6.35000030260882 -1.58549732230708 1.17314407372135  1 6.35000030060882 -1.69023573928189 1.02869898086058  1 6.35000030260882 -1.75530927037271 0.926891169014966  1 6.35000030060882 -1.8150406642098 0.819896683623001  1 6.35000030260882 -1.86887279776669 0.70812623748419  1 6.35000030060882 -1.91628365701859 0.5920591599213  1 6.35000030260882 -1.96694090842468 0.442302179138225  1 6.35000030060882 -2.00159832407081 0.302834670053874  1 6.35000030460882 -2.02333409810321 0.176402059638648  1 6.35000030160882 -2.03537264767501 0.0647431624351351  1 6.35000030160882 -2.04024739590655 0.000738103995058057  1 6.35000030160882 -2.04310867804245 -0.063373067760059  1 6.35000030160882 -2.04395595008269 -0.127494595025668  1 6.35000030160882 -2.04279320202747 -0.191532650437312  1 6.35000030160882 -2.0396317388773 -0.255392437090489  1 6.35000030160882 -2.03448725163295 -0.318982007460832  1 6.35000030160882 -2.0273825162955 -0.382209341503969  1 6.35000030160882 -2.01834437986621 -0.444986134795706  1 6.35000030160882 -2.00740638434668 -0.507224837511886  1 6.35000030160882 -1.99460568073868 -0.568842395628563  1 6.35000030160882 -1.97998559004426 -0.629757236271862  1 6.35000030160882 -1.96359245826563 -0.689892949298155  1 6.35000030160882 -1.94547816440525 -0.749175207583911  1 6.35000030160882 -1.92569673646568 -0.807535389635871  1 6.35000030160882 -1.90698155157676 -0.857735863910265  1 6.35000030160882 -1.88997241576887 -0.900109907012924  1 6.35000030360882 -1.86629662664433 -0.955879660721845  1 6.35000030060882 -1.84586494567388 -1.0002873635111  1 6.35000030260882 -1.82605691673305 -1.04046361441937  1 6.35000030060882 -1.8054316117534 -1.0798727922912  1 6.35000030160882 -1.79670454133888 -1.09616322806496  1 6.35000030060882 -1.78784490891807 -1.11232406783256  1 6.35000031260882 -1.75055322114681 -1.17883401099161  1 6.35000030160882 -1.71413296241694 -1.23737758477228  1 6.35000030160882 -1.67483234755026 -1.29497145550784  1 6.35000030160882 -1.6348793416526 -1.34854786705258  1 6.35000030160882 -1.62906811837658 -1.35625731041876  1 6.35000030160882 -1.62269449707385 -1.36461311081564  1 6.35000030160882 -1.614170805669 -1.37570875534266  1 6.35000030160882 -1.60558024126097 -1.38670781986508  1 6.35000030160882 -1.59693715585044 -1.3975950763822  1 6.35000030160882 -1.58822788543677 -1.40838893289488  1 6.35000030160882 -1.58386336222947 -1.41376084415003  1 6.35000030160882 -1.57948445502148 -1.41911327440426  1 6.35000030160882 -1.57399923876095 -1.42577197372053  1 6.35000030160882 -1.56959008055152 -1.43107552097244  1 6.35000030160882 -1.56628089639435 -1.43502879216021  1 6.35000030160882 -1.56406656428917 -1.43766213928528  1 
-6.0964431935655 -1.34222038475204 1.41444126318235  1 6.1014624688039 -1.40475526972229 1.3616162896733  0.99822755 6.10768342309938 -1.48594810957874 1.2849890340337  0.99604608 6.11466209743085 -1.58235887715801 1.17882474699117  0.99362222 6.12182155177091 -1.6874127101478 1.03668747924001  0.99116807 6.12610866997453 -1.75266186624697 0.936161497985283  0.98971375 6.1299018251547 -1.8124593470872 0.830277739456075  0.98844123 6.13319716231122 -1.8662328416413 0.719455500502301  0.98735049 6.13599134344394 -1.91344657288383 0.60418529087726  0.98644154 6.13885467257994 -1.96367759726968 0.455223436701952  0.9855326 6.14067148466623 -1.99769226988529 0.316325942574675  0.98498723 6.14169320971476 -2.01865634888103 0.190285430388073  0.98471454 6.14214157073606 -2.02986413941337 0.0788852126068464  0.98463501 6.14227038574218 -2.03421836262018 0.0150086388728721  0.98463501 6.14227179474224 -2.03651299772917 -0.0489888066868434  0.98468046 6.14214583573626 -2.0367473657403 -0.113009097067644  0.98477135 6.14189257572423 -2.03492557365377 -0.17695602219496  0.98490769 6.14151212370616 -2.03105910647013 -0.240732534784181  0.98508948 6.14100461868205 -2.02516408219013 -0.30424434741083  0.98531672 6.14037023765192 -2.01726375381488 -0.367397256730433  0.9855894 6.13960918961577 -2.0073856913457 -0.430100707768686  0.98590754 6.13872172257362 -1.99556419878421 -0.492265079461336  0.98627111 6.13770811552548 -1.98183742313222 -0.553805199064334  0.98668014 6.13656868247136 -1.96624970239185 -0.614637574553717  0.98713461 6.13530377241128 -1.94884861956534 -0.674683845635762  0.98763453 6.13391377034526 -1.92968729765522 -0.733867951946856  0.9881799 6.13239908827331 -1.90882122266414 -0.792119519633656  0.98877072 6.13096492020519 -1.88912374772856 -0.842218522673231  0.98932745 6.12965821714313 -1.87125015487961 -0.884498732041433  0.98983305 6.1278342440565 -1.84640583369957 -0.940117682893192  0.99053748 6.12625213498135 -1.82499717368271 -0.98439540119627  0.99114676 6.12470722390797 -1.80426182069783 -1.02444925565873  0.99174042 6.12308587683096 -1.7826872556731 -1.06373107252451  0.99236248 6.12239789279828 -1.77356457223979 -1.0799611572954  0.9926264 6.121697241765 -1.76430625280005 -1.09606022006006  0.99289507 6.11873979162453 -1.72537885095109 -1.16225114120396  0.99402965 6.11580653848521 -1.68740276514733 -1.22049662197048  0.99515287 6.11257586233176 -1.64644099420175 -1.27778386869147  0.99638874 6.10920888217184 -1.6047978002238 -1.33106339922212  0.99767612 6.10871831114854 -1.59874762293643 -1.33872088358583  0.99786392 6.1081785181229 -1.59211223162127 -1.34701968598  0.99807056 6.10745528208855 -1.58324066319989 -1.35803649650327  0.9983475 6.10672343405378 -1.57430060877526 -1.3689557110219  0.99862776 6.10598298901862 -1.56530537534801 -1.37976333353524  0.99891133 6.10523396598304 -1.55624253691755 -1.39047622604407  0.99919822 6.10485768796517 -1.55170143170186 -1.39580679129726  0.99934237 6.10447959094721 -1.54714588348548 -1.4011173215495  0.99948724 6.10400471492465 -1.54143948721444 -1.40772333386327  0.9996692 6.10362237090649 -1.53685322299661 -1.41298409311314  0.99981573 6.10333424189281 -1.53341037283308 -1.41690581529941  0.99992615 6.10314154888365 -1.53110727872369 -1.41951769042347  1 
-5.71012113421619 -1.32720369003879 1.41444126418235  1 5.72114553573982 -1.39071551205544 1.36349287576243  0.99557289 5.73490556939339 -1.47311298496911 1.28916996123228  0.99012415 5.75047673113298 -1.57084330561105 1.18558917931246  0.98406999 5.7666149078995 -1.67722291566381 1.04607286268579  0.97794015 5.77635050736191 -1.74337060580566 0.946911033475859  0.97430766 5.78502188077378 -1.80394961568301 0.842130894729069  0.97112922 5.79260753913408 -1.85835861626729 0.732161307165794  0.96840485 5.79908878444192 -1.9060350755318 0.617507194240017  0.96613454 5.80579327676037 -1.95661183393407 0.468999011396257  0.96386423 5.81012311596603 -1.99058203954757 0.330275710137254  0.96250204 5.8126342820853 -2.01122724252816 0.204205471929239  0.96182095 5.81382452514183 -2.02193419403672 0.0926433658703236  0.9616223 5.81421668716046 -2.0259360752268 0.0286429730604682  0.9616223 5.8143207511654 -2.02781158831588 -0.0355023781062724  0.96173581 5.81413693015667 -2.02755960230391 -0.0996910155950689  0.96196284 5.81366564113429 -2.02518421919108 -0.16382289581117  0.96230339 5.81290750709828 -2.02069705197796 -0.227797336539792  0.96275745 5.81186334904868 -2.01411478666531 -0.291516273076279  0.96332503 5.81053418898555 -2.0054613702543 -0.354881969575988  0.96400612 5.80892124890894 -1.99476548674627 -0.417800239404446  0.96480073 5.80702594681892 -1.98206266014292 -0.480178117507236  0.96570886 5.80484989271556 -1.96739265544613 -0.541927026320151  0.9667305 5.80239489059896 -1.9508015066581 -0.602960394789081  0.96786565 5.79966293046919 -1.93233886278117 -0.663196754750154  0.96911432 5.79665618932638 -1.91205995381797 -0.722557295709628  0.97047651 5.79337702017063 -1.89002273277126 -0.78096888855403  0.97195221 5.79027072302309 -1.86925358878478 -0.831197742409772  0.97334277 5.78744069988867 -1.8504299048907 -0.873578468692749  0.97460563 5.78349433370123 -1.82429684864945 -0.929291635918982  0.97636512 5.78007292553872 -1.80180318858106 -0.973634235275142  0.97788694 5.77673375838012 -1.78003132554695 -1.01374407115026  0.97936974 5.77323229621381 -1.75739051947157 -1.05307404201833  0.98092348 5.77174835814332 -1.74782377801717 -1.06931301378964  0.9815827 5.77023780007158 -1.73811733355614 -1.08541876055462  0.98225374 5.76387666376944 -1.69735882162021 -1.15154195069531  0.98508764 5.75757905147032 -1.65762979473319 -1.20971638045844  0.98789316 5.75065814614159 -1.61478456669815 -1.26692959617592  0.99098002 5.74346331179986 -1.5712128586286 -1.32013961870326  0.99419556 5.7424178137502 -1.56489199532838 -1.32777352806586  0.99466462 5.74126793869558 -1.55795995999912 -1.33604614445878  0.99518076 5.73972841962246 -1.54869482255905 -1.34702380098019  0.9958725 5.73817159754851 -1.53935929011564 -1.3579023644969  0.99657251 5.73659755047375 -1.52996511366944 -1.36866968800832  0.9972808 5.73500644939818 -1.52050156321995 -1.37934030851515  0.99799737 5.73420762336023 -1.51576058099476 -1.38464846076727  0.99835742 5.73340523832212 -1.51100518176889 -1.3899357550184  0.99871926 5.73239791427428 -1.50504856248597 -1.39651226733077  0.99917376 5.73158720623577 -1.50026200825862 -1.40174848357948  0.99953973 5.73097645620676 -1.4966677890879 -1.40565261576491  0.99981554 5.73056810418737 -1.49426433297374 -1.40825210888838  1 
-5.19407969370554 -1.27869059673454 1.41444127018235  1 5.21012167746749 -1.34386529783017 1.3655932408622  0.99204003 5.23032429242706 -1.42846529984846 1.29384455345432  0.98224314 5.25344150952507 -1.52887885861785 1.1931293976706  0.9713577 5.27771454467798 -1.63837764681876 1.05644642017851  0.9603362 5.29250296738039 -1.70673648406563 0.95866579902418  0.95380494 5.30578770401138 -1.76945955204481 0.854912449066161  0.94809009 5.31751119756822 -1.82589693172545 0.7456210863351  0.94319164 5.32762272604849 -1.87544014507862 0.631310767235651  0.93910961 5.33820234955099 -1.92811588758059 0.482779432760792  0.93502757 5.34517421188214 -1.9635686822645 0.34369151960447  0.93257835 5.34935494208071 -1.98520165429201 0.217024751468122  0.93135374 5.35149017718213 -1.99650172882874 0.104739860464876  0.93099656 5.35227443121938 -2.00076024403101 0.040279805563188  0.93099656 5.35262243123591 -2.0028086251283 -0.0243614152071051  0.93120066 5.35253477723175 -2.00264462312051 -0.089076763480919  0.93160886 5.35201263720695 -2.00027193400781 -0.153760537333233  0.93222117 5.35105775116159 -1.99570204179076 -0.218306658569009  0.93303758 5.34967241709579 -1.98895220847016 -0.282611458983323  0.93405809 5.34785949000968 -1.98004721104719 -0.346571945141283  0.9352827 5.34562236790343 -1.9690172405233 -0.41008854454816  0.93671141 5.34296498777721 -1.95589954790024 -0.473063329339301  0.93834422 5.33989180163124 -1.94073625418002 -0.535402701310262  0.94018114 5.33640777546576 -1.92357592336495 -0.597015559126716  0.94222216 5.33251836228102 -1.90447130445753 -0.657815905154577  0.94446728 5.32822949507731 -1.88348083546054 -0.717720944829914  0.9469165 5.32354755785493 -1.8606662223769 -0.776653609089065  0.94956983 5.31911058364418 -1.83915952235539 -0.827323765635768  0.95207008 5.31506929545223 -1.81966567842948 -0.870067329945979  0.95434071 5.30944184418494 -1.79261488514463 -0.92620826441253  0.95750429 5.30456715995341 -1.76933093303871 -0.970881878524413  0.96024053 5.29981414872765 -1.74678809796798 -1.01129154803377  0.96290661 5.29483666349123 -1.72334173685434 -1.05091019891555  0.96570025 5.29273068239121 -1.71344074438406 -1.06725392169184  0.96688553 5.29058840228945 -1.70339554390694 -1.08346134946165  0.96809207 5.28159466986227 -1.66127514390633 -1.14987502661613  0.97318744 5.27271535644053 -1.62021395495603 -1.20830349939133  0.97823179 5.26298933597857 -1.57590644185154 -1.26577623112114  0.98378201 5.25291602250011 -1.5308043057093 -1.31924293366067  0.98956356 5.25145727643083 -1.52427387239912 -1.32689569302416  0.99040695 5.24985393235467 -1.51711184505894 -1.33518827141804  0.99133497 5.24770937825281 -1.50754312160445 -1.34618685694044  0.99257872 5.2455427391499 -1.49790224314654 -1.35708440145805  0.99383735 5.24335420104595 -1.48819889268565 -1.36787123797039  0.99511086 5.24114421194098 -1.47842454522139 -1.37855880347803  0.99639925 5.24003556688832 -1.47352904298887 -1.38387372573047  0.99704664 5.23892255883546 -1.46861934075567 -1.38916670698187  0.99769721 5.23752610776913 -1.46246954546357 -1.39574973929455  0.99851441 5.23640287171578 -1.45752852122889 -1.40098993654345  0.99917243 5.2355570416756 -1.4538170510526 -1.40489815772908  0.99966833 5.23499170464875 -1.45133621893477 -1.40749950885264  1 
-4.93755719352137 -1.24296438103764 1.41444127418235  1 4.95475587233827 -1.30899047317371 1.36659835290994  0.9902756 4.97650882237147 -1.39476358724771 1.29609309056112  0.97830711 5.0015338795601 -1.49668095308853 1.1967759468438  0.96500879 5.02797569381602 -1.6080358703776 1.06148391441778  0.95154424 5.04416398258492 -1.67774345268853 0.96437874678553  0.94356525 5.05876598527848 -1.74182056673203 0.861120858761044  0.93658363 5.07170541889307 -1.79958955047591 0.752144589424949  0.93059939 5.08291460342548 -1.85041506989 0.637973539242116  0.92561252 5.09470346898542 -1.90461232046423 0.489375527454089  0.92062565 5.10254012535764 -1.94126355620507 0.350040847336047  0.91763352 5.10730434758393 -1.96381715027631 0.223005990042216  0.91613746 5.10980754470282 -1.97579954984544 0.110289214018456  0.91570111 5.11076099374811 -1.98040988806442 0.045556699423827  0.91570111 5.11123697477072 -1.98277090117656 -0.0193770502903605  0.91595045 5.11123629677069 -1.98287952718172 -0.084402070348883  0.91644914 5.11076054474809 -1.98073905508005 -0.149409565626573  0.91719717 5.10981207470304 -1.97636074487209 -0.214290493488252  0.91819455 5.10839400063568 -1.96976203355867 -0.278938108578849  0.91944126 5.10651018554621 -1.96096804714098 -0.343246522153334  0.92093733 5.10416522443483 -1.95000970862049 -0.407113204556839  0.92268273 5.1013644263018 -1.936925143999 -0.470437501334581  0.92467748 5.0981137931474 -1.92175771227859 -0.533123070931986  0.92692157 5.09441999697195 -1.90455732146161 -0.595076341214608  0.929415 5.09029035177581 -1.88537839155066 -0.656208864168247  0.93215778 5.08573278655933 -1.8642811015486 -0.716435700888868  0.93514991 5.08075581732294 -1.84132919245844 -0.775677685482711  0.93839137 5.0760388970989 -1.81967587642996 -0.826610644901897  0.94144583 5.07174367489489 -1.80003906549726 -0.869571245322416  0.94421978 5.06576737961103 -1.7727879092029 -0.925972142881315  0.9480846 5.06059338536528 -1.7493212240883 -0.970848213042814  0.95142736 5.0555515041258 -1.72659094400867 -1.0114416440409  0.95468441 5.0502755238752 -1.70294176588539 -1.05123812293113  0.9580973 5.04804518876927 -1.69295749541116 -1.06764787271055  0.95954531 5.04577728266155 -1.68282711693 -1.08391972748342  0.9610193 5.03627105421003 -1.64037830791379 -1.15053302664738  0.96724412 5.02690026276494 -1.59897987394747 -1.20913827743098  0.9734066 5.01665441127829 -1.55428472682456 -1.26679187216938  0.98018709 5.00606418177528 -1.50875820966217 -1.32043677871738  0.9872502 5.00453322370256 -1.50217270534937 -1.32810603708165  0.98828053 5.00285108262266 -1.49495005800631 -1.33641631947637  0.98941426 5.00060225151585 -1.48530221754807 -1.34743564299976  0.9909337 4.99833137240799 -1.47558161908636 -1.3583529685183  0.99247132 4.99603868129909 -1.46579690362161 -1.3691598760316  0.99402712 4.99372474918919 -1.45594068115347 -1.37986624954013  0.9956011 4.99256444113408 -1.45100475091902 -1.38518972179298  0.99639199 4.99139988107876 -1.44605479268391 -1.39049071604476  0.99718677 4.98993919700938 -1.43985460938942 -1.3970834743579  0.99818512 4.9887646459536 -1.43487339215283 -1.40233084460714  0.99898899 4.98788037491159 -1.43113112097508 -1.40624500079305  0.99959482 4.98728944588353 -1.42863017185629 -1.40884987791678  1 
-4.68255544940944 -1.20045432001852 1.41444127818235  1 4.69999955923799 -1.26728057219259 1.36762374395864  0.98851117 4.72215832529047 -1.35418579132037 1.29839987767068  0.97437108 4.74778861150785 -1.45760112323234 1.20054175002267  0.95865987 4.77504472680244 -1.57087148861239 1.06672530266673  0.94275226 4.79181575759903 -1.64199644699064 0.97035399519934  0.93332553 4.80700844932064 -1.70752262810297 0.86764827249108  0.92507715 4.8205304789629 -1.76674285191578 0.759039660942448  0.9180071 4.83229936652189 -1.81899269639751 0.645054390738438  0.91211539 4.84474624711309 -1.87491501505368 0.496437647089522  0.90622369 4.85309924150983 -1.91297179186128 0.35688841869129  0.90268866 4.85825338875464 -1.93664531098571 0.229504898400897  0.90092115 4.86104270888713 -1.94949388859599 0.116366332727104  0.90040563 4.86214359293942 -1.95456349783678 0.0513653940697252  0.90040563 4.86275079696826 -1.95734667596897 -0.0138583065882342  0.90070021 4.8628653219737 -1.95783934999238 -0.0791916973514036  0.90128938 4.86248912995583 -1.95604424490711 -0.144522692994459  0.90217314 4.86162513591479 -1.9519722647137 -0.209739086912072  0.90335148 4.86027719585077 -1.94564092741298 -0.274730850109015  0.90482441 4.85845008776398 -1.93707563600615 -0.339388998440112  0.90659192 4.85614948565471 -1.92630800749472 -0.403607846870343  0.90865402 4.85338193552326 -1.91337703188053 -0.46728383057479  0.9110107 4.85015482236998 -1.89832731916571 -0.530317690328738  0.91366197 4.84647633819526 -1.88121015735268 -0.592613229867617  0.91660782 4.84235544099953 -1.86208169044413 -0.654079412837104  0.91984826 4.83780181778325 -1.84100390344299 -0.714629043453057  0.92338328 4.8328258355469 -1.81804265435239 -0.774180765781612  0.92721289 4.82810830532283 -1.79635610132233 -0.825376473253277  0.93082156 4.82381285911881 -1.77667459038751 -0.868553670314084  0.93409882 4.81784042083513 -1.74935569008993 -0.925212942505255  0.93866489 4.81267188858964 -1.72581550697183 -0.97028979140629  0.94261417 4.80763776635053 -1.70299977888815 -1.01106520702302  0.9464622 4.80237352310049 -1.67925091476013 -1.0510374459216  0.95049433 4.80015004899488 -1.66922669628401 -1.0675121547041  0.95220507 4.79788993388753 -1.65905468080087 -1.08384731647998  0.9539465 4.78843119943827 -1.61646038477774 -1.15065425965314  0.96130078 4.77912066199604 -1.57489561180352 -1.20943067144487  0.96858141 4.76895841451336 -1.52999143767069 -1.26725924619158  0.97659217 4.75847544201544 -1.48421762849655 -1.32107647874776  0.98493683 4.75696262494359 -1.47760295918237 -1.32876130211277  0.98615411 4.75530097386467 -1.47034802783778 -1.33708826950828  0.98749355 4.75308063975921 -1.46065894937757 -1.34812695703259  0.98928868 4.75083962065276 -1.45089665391389 -1.35906269655201  0.99110529 4.74857818854535 -1.44106874344709 -1.3698883160662  0.99294338 4.746297010437 -1.43116899297688 -1.38061215057556  0.99480295 4.74515360038269 -1.42621183874142 -1.38594349582878  0.99573734 4.7440063043282 -1.42124086150532 -1.39125183008091  0.99667633 4.74256771425987 -1.41501437720957 -1.39785347439447  0.99785582 4.74141127220494 -1.41001228197199 -1.40310735064402  0.99880555 4.7405408291636 -1.40625371779346 -1.40702694283019  0.9995213 4.73995924213597 -1.40374233467418 -1.40963501395407  1 
-4.42851606234322 -1.1510048706698 1.41444128418235  1 4.44528673013978 -1.2185813188795 1.36867207500843  0.98674274 4.4666840091561 -1.30657662705906 1.30077112078331  0.97042611 4.49157290233825 -1.41147985404169 1.20443765820772  0.95229652 4.51822253560405 -1.52671827851522 1.07218729592616  0.93394032 4.5347087123871 -1.59932525996387 0.976612153496586  0.92306256 4.54971419209982 -1.66639227614938 0.874519004537422  0.91354453 4.56313595373732 -1.7271812330367 0.766333922068906  0.90538622 4.57488129729519 -1.7809966285928 0.652583653876059  0.89858762 4.58738588288913 -1.83884865134062 0.503998469358642  0.89178903 4.59587550029236 -1.87852094822495 0.364267820831792  0.88770987 4.60120988154573 -1.90351779041224 0.236554828105751  0.88567029 4.6041987426877 -1.91742107107261 0.123003570292356  0.88507541 4.60542532574596 -1.92306033634046 0.0577374724123827  0.88507541 4.60616976478131 -1.92637836649806 -0.00777454124927088  0.88541534 4.60643319679383 -1.92736986254515 -0.0734160890270769  0.8860952 4.6062178657836 -1.92603679848183 -0.139071574155545  0.88711499 4.60552710475079 -1.9223895623086 -0.204625401389185  0.88847471 4.60436531669561 -1.91644563402628 -0.269964025352603  0.89017436 4.60273795261831 -1.90823059763609 -0.334975140890465  0.89221394 4.60065147951921 -1.89777670713955 -0.399549684117591  0.89459345 4.59811334439865 -1.88512378253857 -0.463580972698914  0.89731288 4.59513193225705 -1.87031767383532 -0.526966633599571  0.90037225 4.59171652109482 -1.8534110620323 -0.58960767382486  0.90377155 4.58787723291247 -1.83446184913226 -0.651410313840328  0.90751078 4.58362497971049 -1.81353387113823 -0.712284974611719  0.91158993 4.57897140548946 -1.79069516105345 -0.77214800564506  0.91600902 4.5745551722797 -1.76909213302736 -0.823607349979248  0.92017316 4.57053258908864 -1.74946703009522 -0.867001455310357  0.92395488 4.5649419598231 -1.7222166138009 -0.923918385833767  0.92922379 4.5601038885933 -1.69871501568463 -0.969194982214289  0.93378097 4.55539244236952 -1.67591840360185 -1.0101511619796  0.93822131 4.55046786213562 -1.65217546447412 -1.05029759888646  0.9428741 4.5483895310369 -1.6421556029982 -1.06683638167201  0.94484817 4.54627754693659 -1.63198644551519 -1.08323390445085  0.94685765 4.53745264651743 -1.58943306649402 -1.15022904863295  0.95534394 4.52877560210529 -1.54787576452015 -1.20917141443256  0.96374525 4.51931897865612 -1.502943814386 -1.26716942518732  0.97298908 4.50958135719361 -1.45710204020863 -1.32115336075141  0.98261821 4.50817862812699 -1.45048435589431 -1.32885282811712  0.98402286 4.50663838305383 -1.44322573054954 -1.33719547751337  0.98556848 4.50458129495612 -1.43353359908919 -1.34825217003854  0.98763992 4.50250598985755 -1.42376791762534 -1.35920496555877  0.98973616 4.50041275775813 -1.41393523815832 -1.37004794607378  0.99185718 4.49830232765789 -1.40403054568787 -1.3807878925839  0.99400298 4.49724493160766 -1.39907147645233 -1.38612643483747  0.9950812 4.49618421755728 -1.39409881621614 -1.39144143108992  0.99616472 4.49485458849413 -1.3878702289203 -1.39805111540386  0.99752577 4.49378604144337 -1.38286665368264 -1.40331082165368  0.99862169 4.49298192740518 -1.37910635850403 -1.40723534684009  0.99944761 4.49244474837966 -1.37659426138472 -1.4098462769641  1 
-4.05926400180469 -1.04819425778655 1.41444129618235  1 4.07304843745941 -1.11721201606472 1.37027526008458  0.98409609 4.09074662930003 -1.20730415534387 1.30442085995666  0.96452205 4.1114987382857 -1.31508945246339 1.2104798314947  0.94277311 4.13393725835147 -1.43417631911972 1.08073100533197  0.92075231 4.14792702801595 -1.50965545170478 0.986458826064278  0.90770295 4.16074605862482 -1.57973388703333 0.885391702393847  0.89628476 4.17229183817322 -1.64362590206804 0.777942178050269  0.88649774 4.18247109165671 -1.70058674877353 0.664633341228388  0.87834189 4.19340524217605 -1.76238833370895 0.516186617837548  0.87018604 4.20093972753392 -1.80548632275599 0.376243051600585  0.86529253 4.20578066876385 -1.83339447308156 0.248069035942646  0.86284577 4.20860410089796 -1.84971423785671 0.133913116120531  0.86213213 4.20981206795533 -1.85669099818809 0.0682537742318802  0.86213213 4.21061371499341 -1.86129959840698 0.00231063799974941  0.86253993 4.21101021501224 -1.86353243851304 -0.0637945574500787  0.86335551 4.21100388101194 -1.86338997050627 -0.129940520481843  0.86457889 4.21059815499267 -1.86088146238712 -0.196006135779791  0.86621006 4.20979757895465 -1.85602405115641 -0.261872130378258  0.86824902 4.20860777089813 -1.84884336181534 -0.327420776941652  0.87069578 4.20703537582345 -1.8393724273655 -0.39253750827453  0.87355033 4.20508803173095 -1.82765217980882 -0.457110562691586  0.87681267 4.20277430662106 -1.81373025414756 -0.521032517297715  0.8804828 4.20010365249421 -1.79766137338433 -0.584199852058003  0.88456072 4.19708633535089 -1.779506063522 -0.646514378247784  0.88904644 4.19373337619164 -1.75933094656373 -0.707882704402623  0.89393995 4.19005647801699 -1.73720734951292 -0.768217546228374  0.89924126 4.18656265385105 -1.71619716351499 -0.8200756282015  0.90423672 4.18337909169984 -1.69705938760599 -0.863797044508156  0.90877341 4.17895811448985 -1.67045131934218 -0.921101075919952  0.91509419 4.17513310730817 -1.64744858224961 -0.966676920134688  0.92056116 4.17140990813133 -1.62508964018761 -1.00790332887284  0.92588795 4.16752164394665 -1.60176637607982 -1.04830947279203  0.93146961 4.16588278986881 -1.59192474361236 -1.06494332058209  0.93383778 4.16421821778974 -1.58193188813773 -1.08143322636532  0.93624843 4.15727980546019 -1.54015681415352 -1.14870359856049  0.94642891 4.15047089313678 -1.49927220421161 -1.20788785037159  0.95650744 4.14306902678521 -1.45498177510792 -1.26613218713805  0.96759669 4.13546992842427 -1.40970748095751 -1.32035783271363  0.97914815 4.13437825437242 -1.40318248064759 -1.32807795508032  0.98083322 4.13318016731551 -1.3960244423076 -1.33644269147762  0.9826874 4.13158128023957 -1.38646926085375 -1.34752446400397  0.98517239 4.12996941416301 -1.3768402203964 -1.35850091652533  0.98768711 4.12834484308585 -1.36714229893577 -1.36936801904149  0.99023156 4.12670825900812 -1.35737246047173 -1.38013022255267  0.99280575 4.12588879296919 -1.35248160623943 -1.3854786048067  0.99409922 4.12506709093016 -1.3475775450065 -1.39080264005958  0.99539906 4.12403754888126 -1.34143472271473 -1.39742319837404  0.99703182 4.12321054184198 -1.33650013648035 -1.40269070562423  0.99834653 4.12258840581243 -1.33279067030416 -1.40662192381095  0.99933734 4.1221729047927 -1.33031313618648 -1.40923667193515  1 
-3.70730817208768 -0.908164617365503 1.41444131118235  1 3.71562704148281 -0.979147440957006 1.3718862401611  0.98144944 3.72637415499327 -1.07207267092072 1.30811477813212  0.95861798 3.73907751659664 -1.1837350512244 1.2166464117876  0.9332497 3.75295209525565 -1.30799431712639 1.08952866274983  0.90756431 3.76167288466987 -1.38729240489285 0.99665479046856  0.89234334 3.76972098205213 -1.4613922194124 0.896707239121306  0.87902499 3.77702407239901 -1.52946051764547 0.790077942726687  0.86760926 3.78351557870734 -1.59070137055426 0.677280305059087  0.85809615 3.79055753904181 -1.65794993174839 0.529032479267693  0.84858305 3.79549088527614 -1.70589103302547 0.388899747761746  0.84287518 3.7987387354304 -1.73801890055146 0.260259371011656  0.84002125 3.80071318052418 -1.75793406249738 0.145474057349647  0.83918885 3.80159212656593 -1.7669307739247 0.0794022457014041  0.83918885 3.8022210425958 -1.77351979623767 0.0130044533176784  0.83966451 3.80260078361384 -1.77769057143577 -0.0535916965854689  0.84061582 3.80273304462012 -1.77944144751893 -0.120258627321978  0.84204279 3.80262035061477 -1.77878004548751 -0.186869098405805  0.84394541 3.80226602959794 -1.7757227103423 -0.253297481320984  0.84632368 3.80167419056983 -1.77029471408448 -0.319420015491636  0.84917762 3.80084968553066 -1.76252955171566 -0.385116027532029  0.8525072 3.79979807348072 -1.75246900123781 -0.450268118436587  0.85631245 3.79852557342028 -1.74016228065327 -0.514763291839943  0.86059334 3.79703901734967 -1.72566598996473 -0.578493043346944  0.8653499 3.79534579526924 -1.70904316317519 -0.641354370982697  0.87058211 3.79345380417938 -1.69036311228794 -0.703249746072569  0.87628997 3.79137138608047 -1.66970038730651 -0.76408798928223  0.88247349 3.78938763098625 -1.64993866736788 -0.816371106085545  0.88830027 3.78757792090029 -1.63185232550882 -0.86044116622876  0.89359193 3.78506572078097 -1.60664086031134 -0.91815794519016  0.90096459 3.78289117667768 -1.58475261627171 -0.964052657240042  0.90734135 3.78077440857714 -1.5634018682576 -1.00556662276185  0.91355459 3.7785649394722 -1.54107076419693 -1.04624887269415  0.92006513 3.77763484442802 -1.53164617874929 -1.06298406648903  0.9228274 3.77669051738317 -1.52206876229438 -1.07957248027694  0.92563921 3.77276422119668 -1.48206497739431 -1.14714010248623  0.93751388 3.76891685201394 -1.44276785152779 -1.20658558330974  0.94926962 3.76474386581573 -1.4000625984994 -1.2650952810888  0.96220429 3.76047176361282 -1.35627975741983 -1.3195802786767  0.97567809 3.75985982258375 -1.34998105112066 -1.32732340404448  0.97764358 3.75918856455187 -1.34306943279237 -1.33571278044295  0.97980632 3.75829345350935 -1.33384548135426 -1.34682299297066  0.98270485 3.75739172846652 -1.32454755491263 -1.35782645549329  0.98563806 3.75648356842339 -1.31517904546765 -1.36872103501076  0.98860595 3.75556944937997 -1.30573914301928 -1.37950885552315  0.99160852 3.75511202535824 -1.30101390479484 -1.38486874677773  0.99311724 3.75465354033647 -1.2962758575698 -1.39020349203112  0.99463339 3.75407935930919 -1.29034054328788 -1.39683700834619  0.99653787 3.7536183432873 -1.28557242506141 -1.40211399059684  0.99807137 3.75327165127083 -1.28198690289111 -1.40605315778394  0.99922706 3.75304017125983 -1.27959269377739 -1.40867256290835  1 
-3.48843621269182 -0.784389029886478 1.41444132518235  1 3.49152880483871 -0.85725510046743 1.37294927221159  0.97968501 3.4955392700292 -0.95284821791786 1.31056668024857  0.95468194 3.50030282525546 -1.06810277273216 1.22076750698334  0.92690076 3.50553653050404 -1.19708506985849 1.09544913603104  0.89877231 3.50884235966106 -1.27981521578796 1.00354365866576  0.8821036 3.51190558180656 -1.35751790847864 0.904378223255659  0.86751847 3.51469658093912 -1.4293293938895 0.798326705398482  0.85501694 3.51718787105745 -1.49441944598111 0.685892268638133  0.844599 3.51990347418644 -1.56659460640925 0.537789175473614  0.83418105 3.52181965627745 -1.61897218089705 0.397522763111317  0.82793029 3.52309365133796 -1.6550173366091 0.268548565145372  0.8248049 3.52388041637533 -1.67831851071585 0.153311232851892  0.82389333 3.5242356423922 -1.68923300223426 0.0869427620495594  0.82389333 3.52449620140458 -1.69771833163729 0.0202175193602806  0.82441423 3.52466244941248 -1.70376154292433 -0.04673261514968  0.82545602 3.52473510241593 -1.70735918709521 -0.113775507074046  0.82701872 3.52471522141498 -1.70851742415022 -0.180779453796563  0.82910231 3.52460420540971 -1.7072517430901 -0.247614196481043  0.83170679 3.52440378140019 -1.70358689091603 -0.314151569051398  0.83483217 3.52411598438652 -1.6975564186296 -0.380266449991686  0.83847846 3.52374314136881 -1.68920244223281 -0.445837333076136  0.84264563 3.52328784934719 -1.67857505172803 -0.510747180339188  0.84733371 3.52275295532178 -1.66573192711802 -0.574883880715518  0.85254268 3.52214152729274 -1.65073763840583 -0.638140974530068  0.85827255 3.52145683626022 -1.63366316059483 -0.700417976338067  0.86452332 3.52070232322438 -1.61458508468867 -0.761620952325052  0.87129498 3.51998310019022 -1.59619173981504 -0.814212067112996  0.87767597 3.51932696315905 -1.57926692101115 -0.858534922708219  0.88347095 3.51841682411582 -1.55560112588709 -0.916552300923896  0.89154486 3.51762934707842 -1.53495665890653 -0.96267949514482  0.89852814 3.51686322804203 -1.51474151794636 -1.00440304470658  0.90533236 3.51606422800408 -1.49353631693917 -1.04528666964845  0.91246214 3.51572821698812 -1.48458322751392 -1.06209630244687  0.91548714 3.51538721197192 -1.47547637308136 -1.07875716223821  0.9185664 3.5139719419047 -1.43745530727546 -1.14654899345815  0.93157052 3.51258749183895 -1.39995357849422 -1.20619192529104  0.94444441 3.51108905776777 -1.35906407255208 -1.26490191507961  0.95860936 3.50955879769509 -1.31701759555498 -1.31958203467678  0.97336472 3.5093400266847 -1.31097678526805 -1.32734357804543  0.97551715 3.50910014667331 -1.30434623895312 -1.33575273744485  0.97788561 3.50878044865812 -1.29549859353288 -1.34688635297367  0.98105982 3.50845857264283 -1.28657699410913 -1.35791225949737  0.98427202 3.50813458762744 -1.27758376968197 -1.36882959301591  0.98752221 3.50780868361196 -1.26851980225145 -1.37963892852933  0.99081037 3.50764567660422 -1.26398280603596 -1.38500870278438  0.99246259 3.50748234159646 -1.25943326381987 -1.39035279603821  0.99412295 3.50727786158675 -1.25373351854914 -1.39699771035383  0.99620857 3.50711374057896 -1.24915422033164 -1.40228321560488  0.99788792 3.5069903505731 -1.24570970516803 -1.40622933779231  0.99915354 3.50690798156918 -1.2434099750588 -1.40885295291692  1 
-3.38400016073138 -0.713493162199105 1.41444133318236  1 3.38400016073138 -0.787478258183208 1.37347363923649  0.97880279 3.38400016073138 -0.88464457074836 1.31178054030623  0.95271392 3.38400016073138 -1.00200193759254 1.22281625408065  0.92372629 3.38400016073138 -1.13373159184936 1.09840456017141  0.89437631 3.38400016073138 -1.2184464518731 1.00698990682945  0.87698373 3.38400016073138 -1.29823026166263 0.908222147198235  0.86176522 3.38400016073138 -1.37220464217622 0.802464740075028  0.84872078 3.38400016073138 -1.43952240337364 0.690214486283427  0.83785042 3.38400016073138 -1.51455640193757 0.542181971062261  0.82698006 3.38400016073138 -1.56952182754828 0.401841201056432  0.82045784 3.38400016073138 -1.60786451636946 0.272688170201992  0.81719673 3.38400016073138 -1.63316315157108 0.157210365147091  0.81624557 3.38400016073138 -1.6452125561434 0.0906842718472716  0.81624557 3.38400016073138 -1.65482373459991 0.0237851409297335  0.81678909 3.38400016073138 -1.66198238493992 -0.0433529107991527  0.81787613 3.38400016073138 -1.66668402416324 -0.110595349502997  0.81950668 3.38400016073138 -1.66893394927011 -0.177808116905432  0.82168075 3.38400016073138 -1.66874710626123 -0.244858509520155  0.82439834 3.38400016073138 -1.66614786813777 -0.311616032220967  0.82765945 3.38400016073138 -1.66116971590132 -0.377953215241814  0.83146408 3.38400016073138 -1.65385484755389 -0.443746384066821  0.83581223 3.38400016073138 -1.64425370809786 -0.50887637308033  0.84070389 3.38400016073138 -1.632424451536 -0.573229175216924  0.84613907 3.38400016073138 -1.61843234787141 -0.636696521061461  0.85211777 3.38400016073138 -1.6023491481075 -0.699176382609095  0.85863999 3.38400016073138 -1.58425240824795 -0.760573398285296  0.86570572 3.38400016073138 -1.56670913441469 -0.813328447431027  0.87236382 3.38400016073138 -1.55050755864515 -0.857785969572645  0.87841046 3.38400016073138 -1.52780447556682 -0.915964104105958  0.88683499 3.38400016073138 -1.50793657162314 -0.962215787722795  0.89412153 3.38400016073138 -1.48843240169674 -1.00405158568989  0.90122124 3.38400016073138 -1.4679336097231 -1.04504317063688  0.90866064 3.38400016073138 -1.45927594131188 -1.06189294143721  0.91181701 3.38400016073138 -1.45046407489334 -1.07859291123041  0.91503 3.38400016073138 -1.41368092814624 -1.14650811645621  0.92859884 3.38400016073138 -1.37730356441841 -1.20625992529427  0.94203181 3.38400016073138 -1.33755542153047 -1.26508032208809  0.95681189 3.38400016073138 -1.29660562458546 -1.31986784669036  0.97220803 3.38400016073138 -1.29072660530622 -1.32763997305951  0.97445394 3.38400016073138 -1.28427243299966 -1.33606052045947  0.97692525 3.38400016073138 -1.27566061559062 -1.34720782098893  0.98023731 3.38400016073138 -1.26697488117808 -1.35824693051326  0.98358901 3.38400016073138 -1.2582170277621 -1.36917762203244  0.98698033 3.38400016073138 -1.24938884934278 -1.37999969754647  0.99041129 3.38400016073138 -1.24496982213289 -1.3853753988018  0.99213526 3.38400016073138 -1.24053837692241 -1.3907251520559  0.99386773 3.38400016073138 -1.23498619765869 -1.39737699637184  0.99604392 3.38400016073138 -1.23052515244681 -1.40266774962314  0.9977962 3.38400016073138 -1.2271690202874 -1.40661808881077  0.99911678 3.38400016073138 -1.22492845218098 -1.40924430093551  1 
-
-0 4
-0.25085093 1
-0.37570871 1
-0.50000003 1
-0.50056649 1
-0.62542486 1
-0.75028323 1
-0.87514161 1
-1 4
-
-0 5
-0.11538462 1
-0.15384615 1
-0.19230769 1
-0.23076923 1
-0.26923077 1
-0.30769231 1
-0.34615385 1
-0.38461538 1
-0.46153846 1
-0.48076923 1
-0.5 1
-0.51923077 1
-0.53846154 1
-0.55769231 1
-0.57692308 1
-0.59615385 1
-0.61538462 1
-0.63461538 1
-0.65384615 1
-0.67307692 1
-0.69230769 1
-0.71153846 1
-0.73076923 1
-0.75 1
-0.76923077 1
-0.78846154 1
-0.79807692 1
-0.80769231 1
-0.84615385 1
-0.85096154 1
-0.85576923 1
-0.86538462 1
-0.87019231 1
-0.875 1
-0.95552885 1
-0.95673077 1
-0.96394231 1
-0.96634615 1
-0.96875 1
-0.97115385 1
-0.98317308 1
-0.98557692 1
-0.98798077 1
-0.99038462 1
-0.99278846 1
-0.99519231 1
-1 5
-
-9 1 1 0 0 3 2 4 4 2 3 2.8066391593082 -0.164126217435577 1.41444139518236  1 2.8066391643082 -0.0877860847096151 1.45778391524102  0.93480793 2.8066391753082 0.0877860075896114 1.45778393424102  0.93480793 2.8066391803082 0.164126150055573 1.41444143218236  1 
-2.9678394079648 -0.376407354178389 1.41444137118236  1 2.96457251080963 -0.203037540443765 1.51656393003292  0.92694051 2.96457253380963 0.203037363253757 1.51656397603292  0.92694051 2.9678394499648 0.376407198668382 1.41444145618236  1 
-3.16491845932555 -0.564770695925167 1.41444135018236  1 3.15608173590583 -0.311965934527586 1.59196289061418  0.91907308 3.15608175590583 0.311965655927573 1.59196295561418  0.91907308 3.16491849232555 0.564770457305156 1.41444147718236  1 
-3.38400016073138 -0.713493162199105 1.41444133318236  1 3.38400016073138 -0.391510587305754 1.63716903376135  0.91120566 3.38400016073138 0.391510247845738 1.63716912176136  0.91120566 3.38400016073138 0.713492872779091 1.41444149318236  1 
-
-0 4
-1 4
-
-0 3
-0.83039848 1
-1.66079697 3
-
-9 1 1 0 0 3 3 8 7 4 5 2.42419264614297 1.16954252255029 0.134080451298479  1 2.39440716772823 1.13307915281837 0.200627508239295  1 2.33691369499744 1.05368493204735 0.326976423470546  1 2.23023667693055 0.869026571046545 0.552693459381529  1 2.11247152233701 0.589697519729128 0.784250764499911  1 2.03487925665157 0.314494438727684 0.915535019515578  1 2.00023808900621 0.163957938237584 0.967686749742652  1 
-2.39137571758425 1.16117648415292 0.143847579992393  1 2.362632197219 1.1244056484064 0.208382305257628  0.99998147 2.30707680458026 1.04492423163124 0.331118886747302  0.99995058 2.20402069668536 0.860774663704601 0.550343860959929  0.99991351 2.09020096527921 0.583816953169816 0.775404684559744  0.99991351 2.01502798070869 0.312315915684209 0.903275538513284  0.99996293 1.98138389911068 0.164009708860043 0.954164541080382  1 
-2.35893674104348 1.15211690472261 0.153141533493832  1 2.33128359173002 1.11490987995538 0.215538829667545  0.99996293 2.27765880618298 1.03527498417292 0.334626152813889  0.99990115 2.17792600944593 0.852129688423987 0.547892770913509  0.99982702 2.06751081420149 0.578612322102609 0.767505451784551  0.99982702 1.99489823375258 0.310746458799664 0.891664792141803  0.99992586 1.96265346522103 0.164065779442706 0.940474811450154  1 
-2.13069026720235 1.08268322442469 0.215937764566493  1 2.11088363626159 1.04356036356646 0.263737495466858  0.99983099 2.0713555313841 0.9639780893465 0.357091959490957  0.9995493 1.9960271868062 0.788046253840187 0.526665184275253  0.99921127 1.91023285973119 0.537019318997048 0.704831242847686  0.99921127 1.85416461506809 0.296612250308325 0.80450909163213  0.99966197 1.83019018192936 0.16449556496312 0.841823300294459  1 
-1.94865672055622 0.99703396760657 0.252195786988657  1 1.93516982091563 0.958729570227209 0.288670095331093  0.99971757 1.90713580358409 0.882309640247457 0.361184548155345  0.99924687 1.85084826491057 0.718961191648823 0.495904472044197  0.99868201 1.78311984069364 0.493733176421066 0.641232867536925  0.99868201 1.73885954459139 0.28171007658051 0.722056485405841  0.99943515 1.72099233874275 0.165025241888278 0.750811636301638  1 
-1.61289343060832 0.773798061943434 0.289276971169918  1 1.60926817743613 0.743218084900963 0.307140681738399  0.99949075 1.59992533399237 0.682674126445279 0.343852614872122  0.998642 1.57632217387128 0.558174349971858 0.415623300931047  0.9976235 1.54208662124518 0.394124630659915 0.497230575347184  0.9976235 1.51952443417353 0.246401605973448 0.542042907525655  0.9989815 1.51191417481207 0.166405119633819 0.556353501425372  1 
-1.45916368930655 0.636211413348419 0.290100132939016  1 1.45837822226925 0.611995772288238 0.300875806260833  0.99937734 1.45532690712432 0.563445012512201 0.322941777508911  0.99833957 1.44506266063679 0.464854358879396 0.367008382541962  0.99709425 1.42777067981547 0.337082388840554 0.417907376789534  0.99709425 1.41631445427132 0.225986991713806 0.445699399369585  0.99875468 1.41295836711192 0.167240043453475 0.454273699506842  1 
-1.31958584867696 0.472656068989958 0.273205864366582  1 1.31958584767696 0.456316271853859 0.279245331643441  0.99926393 1.31958584567696 0.423380923289514 0.290706520087818  0.99803714 1.31958584167696 0.356597205797458 0.311109890506926  0.99656499 1.31958583767696 0.271740133306963 0.331774567888446  0.99656499 1.31958583567696 0.202819644513416 0.343041058973575  0.99852785 1.31958583467696 0.168219952200019 0.347343163127914  1 
-
-0 4
-0.08801032 2
-0.62655652 2
-1.16510272 4
-
-0 4
-0.16666667 1
-0.33333333 1
-0.66666667 1
-1 4
-
-9 0 0 0 0 3 3 6 7 4 4 2.42419264614297 1.16954252255029 0.134080451298479  2.45715001570836 1.13855318407837 0.202974587470775  2.55620528041323 1.04312784054591 0.408207383838809  2.6558100141442 0.940330514783301 0.609091343720285  2.83876589983414 0.743208037040486 0.971420971340018  2.95581815539382 0.607915193964421 1.19587440380098  3.07361414598883 0.46264399884441 1.41444146518236  
-2.3646216903135 1.09661578208645 0.26717456517011  2.39925954795871 1.06574094261998 0.328248236720954  2.5037619269223 0.969977747781469 0.509161756533885  2.60845088989476 0.87092846667688 0.687457565192481  2.8000283239942 0.68520205208535 1.01081447201111  2.92144350176111 0.562010166684049 1.2137367306494  3.04134581145617 0.431905249624398 1.41444146218236  
-2.25378970704926 0.924892381310029 0.506381998361853  2.29085611680982 0.897547764761229 0.5546487330244  2.40261884511827 0.812655904219082 0.697120418171442  2.51421737241891 0.728509136512326 0.838617183662177  2.72026519720566 0.572009581078996 1.09318660692358  2.85080311140588 0.471443480812363 1.25349298753772  2.97841695946721 0.368662233590516 1.41444145518236  
-2.11247152233701 0.589697519729128 0.784250764499911  2.15142654818727 0.572896908651142 0.818721994037206  2.26795240072195 0.523260141993522 0.922316014887658  2.38460040626244 0.476872713840237 1.02573989572003  2.60470216471671 0.3868123460026 1.20430061420121  2.74653018845318 0.328695847952214 1.31192884231327  2.88923258023118 0.268937908253865 1.41444144418236  
-2.03487925665157 0.314494438727684 0.915535019515578  2.07374991449783 0.30836161229639 0.944773654634338  2.19074575405483 0.291127093867794 1.03210832002251  2.31024353373067 0.275452141023274 1.11608873601137  2.53605382545609 0.243239750533268 1.25913146880553  2.68305514043827 0.221835933136641 1.3412131157042  2.8335058915843 0.199506324826042 1.41444143618236  
-2.00023808900621 0.163957938237584 0.967686749742652  2.03869514383282 0.163852341262568 0.995268115342697  2.15561093238602 0.163589219210071 1.07592134410352  2.27716060215932 0.16348710374522 1.15030196763641  2.5052608889935 0.163496660975674 1.27877215673842  2.6540562100609 0.163708515905737 1.35121889217945  2.8066391803082 0.164126150055573 1.41444143218236  
-
-0 4
-0.33333333 1
-0.66666667 1
-1 4
-
-0 4
-0.20169638 1
-0.60508915 2
-1.3090632 4
-
-9 1 1 0 0 3 3 9 11 7 9 2.42419264614297 1.16954252255029 0.134080451298479  1 2.45304868251355 1.17484671580222 0.129592238825301  1 2.50979212820872 1.18865716645818 0.122371261762323  1 2.62000735344367 1.22717357928761 0.113896599719798  1 2.75277233674966 1.29216176737439 0.112514758254164  1 2.90770088310837 1.38561935781338 0.119267929254922  1 3.0618570414304 1.48307220044215 0.128105484034684  1 3.19269105364468 1.55804852000333 0.131934602026557  1 3.30058911276956 1.60855069040205 0.129713091341041  1 3.35591651339747 1.62968577140592 0.126313484549568  1 3.38400016073138 1.63898521684762 0.123909655855393  1 
-2.44201782098962 1.15278176875419 0.171342224368319  1 2.47017210232687 1.15850596802608 0.167150602059227  0.99985106 2.52544453995217 1.17340579173378 0.160652740670595  0.99955319 2.63301057706129 1.21327000862723 0.153171215085242  0.99895744 2.76293640923243 1.27920018175875 0.152599805308101  0.99821276 2.91503987445696 1.3733496122306 0.160078945003342  0.99731913 3.06666735165888 1.47159192489686 0.16962659060683  0.99642551 3.19544768177561 1.54761137350759 0.174219059904961  0.99568083 3.30172693282361 1.59938420296667 0.172743652284883  0.99508508 3.35620916541137 1.6214996340171 0.169788979024543  0.99478721 3.38400016073138 1.63108074947217 0.167550811238236  0.99463827 
-2.47770388868461 1.11878104013925 0.245583072274569  1 2.50460743996246 1.12489275842954 0.241757385452859  0.99957801 2.55719824346039 1.14116148220226 0.23629921962361  0.99873404 2.65967155732761 1.18296549718784 0.230447917435688  0.99704608 2.78371115221918 1.25095056441696 0.23166107051331  0.99493614 2.92954952014613 1.3474724030015 0.241264817559463  0.99240421 3.07555654008109 1.44813925178292 0.252955231824728  0.98987229 3.20013548599827 1.52609300848552 0.259360789758976  0.98776235 3.30349605990764 1.57932049901369 0.25922423625249  0.98607439 3.35662054043091 1.60240449311013 0.256915844072847  0.98523042 3.38400016073138 1.6120148985666 0.254860654175231  0.98480843 
-2.54921889908139 1.0488627058183 0.392933975203361  1 2.57373914124604 1.05587893915156 0.390011798254566  0.9991312 2.62133387550667 1.07453675403775 0.386708913177687  0.9973936 2.71418980891709 1.11943199417016 0.384399157157979  0.99391841 2.82688292526973 1.18981399451313 0.389410462636004  0.98957441 2.96025512260457 1.28824088618816 0.403213774111626  0.98436162 3.09478151499423 1.39077939605847 0.418939525228559  0.97914882 3.21057171549397 1.47069101585407 0.428695680291951  0.97480483 3.30760334110272 1.52602661948237 0.431116543996936  0.97132963 3.35774255948421 1.55076732565749 0.430071773287312  0.96959204 3.38400016073138 1.56068114412837 0.428466449881063  0.96872324 
-2.63888055134009 0.957870644016412 0.575002367181146  1 2.66058765737113 0.96572955308969 0.573211488546084  0.99875886 2.7024756133607 0.98605401159505 0.572239190279902  0.99627658 2.78411085423816 1.03280111105542 0.574057660476274  0.99131201 2.88316305294289 1.10363511841985 0.583598682789449  0.9851063 3.00092660253636 1.20095852904247 0.602228292054308  0.97765945 3.12068385322452 1.30194741583918 0.622406131232704  0.97021261 3.2249668381777 1.38100742359433 0.635710196184613  0.9640069 3.31347033838139 1.43642603522657 0.640861284029276  0.95904233 3.35956840957093 1.46169544842681 0.64115821536338  0.95656005 3.38400016073138 1.4717316539035 0.640145033235256  0.95531891 
-2.74690315647089 0.842929538817003 0.790092058877357  1 2.76530159934477 0.851328018045909 0.78950240932935  0.99860992 2.80077120302949 0.871888161392464 0.790550180919117  0.99582976 2.86975437730601 0.917903336908067 0.795990721547529  0.99026945 2.95332321927532 0.985391975693605 0.809117865971035  0.98331906 3.05292725200626 1.07606898211053 0.830899400925602  0.97497859 3.15498362385367 1.16928847753822 0.853662880016809  0.96663812 3.2448774021234 1.24229089800565 0.869112553330629  0.95968773 3.3220078717869 1.29389208645657 0.876299048441969  0.95412741 3.36249739871005 1.31755327958042 0.877748565640818  0.95134726 3.38400016073138 1.32719939403859 0.877435319965939  0.94995718 
-2.8915047933391 0.682007223913603 1.07235514293413  1 2.90548586700317 0.690575739830586 1.07287849795899  0.9988085 2.93265203929349 0.709714299869619 1.07524771407152  0.99642551 2.9854612928018 0.751360428217704 1.08263592442244  0.99165953 3.04946842384197 0.809542189831189 1.09638490307549  0.98570205 3.12594505847442 0.884696430270824 1.11676749904361  0.97855308 3.20483791722163 0.96041893799745 1.13732113701985  0.9714041 3.27493895655125 1.0195748614272 1.15139523968834  0.96544662 3.33538718842238 1.06189653743738 1.15864461003266  0.96068064 3.36727654093705 1.08128005235804 1.16060272312567  0.95829765 3.38400016073138 1.08978505076201 1.16091398514045  0.95710615 
-3.0005989555208 0.552689541261343 1.27896388774752  1 3.01109917801953 0.560832904608132 1.27949441177272  0.99940425 3.03187295800623 0.577635969416235 1.28099172084384  0.99821276 3.07276393094845 0.612913712841838 1.28543220905475  0.99582976 3.12311577434003 0.659409197110255 1.29313543942063  0.99285103 3.1838046392226 0.716612076557246 1.30399829093659  0.98927654 3.24630866519138 0.772866502369187 1.31468619944424  0.98570205 3.30115338479636 0.816907342621015 1.32192124878789  0.98272331 3.34751012699819 0.849187251484228 1.32572670696864  0.98034032 3.37165328114493 0.864127310453843 1.32680122401967  0.97914882 3.38400016073138 0.871243803631858 1.32708980603338  0.97855308 
-3.07361414598883 0.46264399884441 1.41444146518236  1 3.081681229372 0.470328686149413 1.41444146618236  1 3.0979158851431 0.485587715914178 1.41444146818236  1 3.13077912070402 0.515655297052311 1.41444147118236  1 3.17258171568954 0.552378065896549 1.41444147518236  1 3.22385433012486 0.595012062451555 1.41444148018236  1 3.27618826361058 0.636158139015889 1.41444148518236  1 3.32064415672213 0.669161107873446 1.41444148818236  1 3.35669135043428 0.694764929029562 1.41444149118236  1 3.3748717582978 0.707296105464761 1.41444149318236  1 3.38400016073138 0.713492872779091 1.41444149318236  1 
-
-0 4
-0.1623709 1
-0.32474179 1
-0.64948358 1
-0.97422537 1
-1.29896717 1
-1.94845075 4
-
-0 4
-0.08333333 1
-0.16666667 1
-0.33333333 1
-0.5 1
-0.66666667 1
-0.83333333 1
-0.91666667 1
-1 4
-
-9 1 1 0 0 3 2 5 4 3 3 3.38400016073138 -0.713493162199105 1.41444133318236  1 3.38400016073138 -0.391510587305754 1.63716903376135  0.91120566 3.38400016073138 0.391510247845738 1.63716912176136  0.91120566 3.38400016073138 0.713492872779091 1.41444149318236  1 
-3.80221815059566 -0.997398256103873 1.41444130118235  1 3.7881361569268 -0.555027453182388 1.7151552854655  0.89851271 3.7881361709268 0.555027057862369 1.71515541046551  0.89851271 3.80221817559566 0.997397928223857 1.41444152518236  1 
-4.31570353198491 -1.14106831119783 1.41444128518235  1 4.30098725628592 -0.644354361975188 1.79784072039285  0.88543554 4.30098725728592 0.64435396878517 1.79784086539285  0.88543554 4.31570353398491 1.14106800419782 1.41444154118237  1 
-4.84213726998917 -1.22700175927945 1.41444127518235  1 4.84126886794792 -0.703853656261253 1.88448450850821  0.87235837 4.84126886694792 0.703853249831234 1.88448466750821  0.87235837 4.84213726798917 1.22700145827944 1.41444155118237  1 
-4.85761506672432 -1.22947768939705 1.41444127518235  1 4.85761510272433 -0.704996763805548 1.88554606055863  0.87197414 4.85761510272433 0.704996357555529 1.88554621955864  0.87197414 4.85761506672432 1.22947738839704 1.41444155118237  1 
-
-0 4
-0.97061845 1
-1 4
-
-0 3
-0.77893996 1
-1.55787992 3
-
-9 1 1 0 0 3 2 4 4 2 3 6.35000030160882 1.34685307097209 1.41444156518237  1 6.35000030160882 0.790078313186704 1.97500018280747  0.85235402 6.35000030160882 -0.790078761286726 1.97500000480746  0.85235402 6.35000030160882 -1.3468533929721 1.41444126218235  1 
-5.85990504933054 1.33789804554674 1.41444156418237  1 5.85232922597071 0.778849161293348 1.94472809936962  0.85889406 5.85232922397071 -0.778849583033368 1.94472792436962  0.85889406 5.85990504633054 -1.33789834854676 1.41444126318235  1 
-5.35344570327501 1.30879371316436 1.41444156018237  1 5.3459271439179 0.756148567085128 1.91491354395351  0.8654341 5.3459271469179 -0.756148974995147 1.9149133739535  0.8654341 5.35344570927501 -1.30879400916438 1.41444126618235  1 
-4.85761506672432 1.22947738839704 1.41444155118237  1 4.85761510272433 0.704996357555529 1.88554621955864  0.87197414 4.85761510272433 -0.704996763805548 1.88554606055863  0.87197414 4.85761506672432 -1.22947768939705 1.41444127518235  1 
-
-0 4
-1 4
-
-0 3
-1.01514221 1
-2.03028442 3
-
-9 1 1 0 0 4 3 19 11 16 9 6.35000030160882 1.34685307097209 1.41444156518237  1 6.0964431785655 1.34222007275203 1.41444156418237  1 5.71012109321619 1.32720338603878 1.41444156218237  1 5.19407965870553 1.27869029573453 1.41444155718237  1 4.93755715652137 1.24296407903762 1.41444155318237  1 4.68255541440944 1.2004540150185 1.41444154818237  1 4.42851600934321 1.15100455266978 1.41444154318237  1 4.05926397180468 1.04819393178654 1.41444153118236  1 3.70730816508768 0.908164296745487 1.41444151518236  1 3.48843621369182 0.784388726686464 1.41444150118236  1 3.38400016073138 0.713492872779091 1.41444149318236  1 
-6.35000030160882 1.39020921303139 1.3764466293777  1 6.09998311873364 1.38592824882806 1.37753207542926  0.99874932 5.71789054858522 1.37161625114827 1.37883753249127  0.99687613 5.20537455924201 1.32429350290056 1.38029172056034  0.99438325 4.94966089909627 1.28917550223255 1.3809857345933  0.99313823 4.69482641799228 1.24723709324058 1.3816931866269  0.99189321 4.44030830890332 1.19832384091733 1.38241590866123  0.99064536 4.06895061626477 1.09654057008288 1.38352003371367  0.98877782 3.71315083436519 0.957908578908214 1.38462763376628  0.98691028 3.49060746279495 0.835469997342694 1.38535716280093  0.98566526 3.38400016073138 0.765368177103036 1.385716494818  0.98504274 
-6.35000030060882 1.4747759580481 1.29657054758379  1 6.10671687405347 1.47124053888017 1.29960790472806  0.99638373 5.73275609129129 1.45846423827333 1.30321412989935  0.99096751 5.22715088227633 1.41379236215153 1.30719704808853  0.9837595 4.9730838862088 1.38006296554947 1.3091039311791  0.9801596 4.71866203012441 1.33946108962098 1.31106105627206  0.97655969 4.46330092899541 1.29183261635875 1.31307375836765  0.9729516 4.0879415701668 1.19245047363836 1.31617292951486  0.96755172 3.72466758091221 1.05698785720423 1.31930621866368  0.96215184 3.49490190099892 0.937484221888109 1.32138186176227  0.95855192 3.38400016073138 0.869103762020212 1.32240742681098  0.95675196 
-6.35000030360882 1.59428476072446 1.16524941034637  1 6.11575258748265 1.59175530360432 1.17069915960522  0.99324266 5.75290182924816 1.58126533010607 1.17700921090494  0.98312194 5.25704075369602 1.54081654618486 1.18384123722944  0.96965311 5.00543358274533 1.5094011336927 1.18711906838513  0.96292635 4.75178770369779 1.47110187487359 1.19051843554659  0.95619958 4.49546120952294 1.42576107972001 1.19404964271431  0.94945754 4.1147514474402 1.33062638720136 1.1995508179756  0.93936736 3.7410767236916 1.20067257402888 1.20517376924268  0.92927718 3.5010554032912 1.08612425858813 1.20892721342096  0.92255039 3.38400016073138 1.02061429147658 1.2107891765094  0.91918699 
-6.35000029960882 1.73527748542125 0.968329296123171  1 6.12562385895151 1.73361052634208 0.976072885470972  0.9898692 5.77520738330762 1.72569627796617 0.984607769706357  0.97469592 5.29070755429511 1.69071209530451 0.993412163544544  0.95450305 5.04217417949041 1.6624955999643 0.997612476144048  0.9444181 4.78972995849996 1.62750913630253 1.0020348765941  0.93433313 4.5326307142884 1.58558760031137 1.00669531081546  0.92422526 4.146138430931 1.49689806409884 1.0140734391659  0.90909776 3.76054263161618 1.37532820432458 1.02171192052871  0.89397027 3.50841265364065 1.26821074523678 1.02684773277265  0.88388527 3.38400016073138 1.20697562832826 1.029402672894  0.87884277 
-6.35000030360882 1.85426945907307 0.751455380122214  1 6.13328560331542 1.85286845300652 0.760503806031991  0.98731037 5.79276666514164 1.8468507267207 0.769744044910878  0.96830463 5.31769536157696 1.81683113329484 0.778425326963217  0.94301146 5.07188373790154 1.7917403531031 0.782469885385324  0.93037926 4.82069154897055 1.76011327960089 0.786816058841756  0.91774703 4.5632660907435 1.72178007678016 0.791482908883419  0.90508612 4.17237710217727 1.64002013989677 0.799018560901343  0.88613773 3.77706124240077 1.5276020785572 0.806906582196004  0.86718934 3.51470969393974 1.42858730885425 0.812221892778468  0.85455708 3.38400016073138 1.37201163016705 0.814860777993808  0.84824095 
-6.35000029960882 1.94779785051543 0.517164088903975  1 6.13870295157273 1.94582691442181 0.526724904628089  0.98556616 5.80538534374099 1.94059787317345 0.53542559558135  0.96394808 5.33748208351678 1.91435406492693 0.542210772593628  0.93517833 5.09386908094579 1.8919268808617 0.545161020953758  0.92080983 4.84383199806966 1.86329091750157 0.548455111360219  0.90644129 4.58642762284361 1.82827659383847 0.552111253743876  0.89204012 4.19252939913445 1.75324061527446 0.558205532533339  0.87048726 3.78996847101383 1.65002488537197 0.564646577479272  0.84893439 3.51967388117553 1.55929993506277 0.568952823573808  0.83456582 3.38400016073138 1.50752617060365 0.571063283324049  0.82738153 
-6.35000030360882 2.01269872159806 0.268693744052267  1 6.1418518977223 2.00916011242998 0.278236686685533  0.98463659 5.81292749409923 2.00330843015204 0.285551660152975  0.96162625 5.34969375909681 1.97913592600391 0.289208089496647  0.93100367 5.10762751159928 1.95860573902878 0.290398516793189  0.9157098 4.85853396876797 1.93225770977731 0.291939073416361  0.90041589 4.60141597055552 1.89992746324171 0.293843121066799  0.88508726 4.20588286476871 1.83081039495882 0.297309413751439  0.86214634 3.79874910343089 1.73618975246458 0.301016116347498  0.83920543 3.52309055433781 1.65347444153582 0.30339398294044  0.82391148 3.38400016073138 1.60640377030008 0.304496756282819  0.81626451 
-6.35000030060882 2.04208931299403 0.0422534092469292  1 6.14261107975836 2.03624770971657 0.0515923275005039  0.98453602 5.81502081719866 2.02849239634821 0.0573895526058573  0.96137505 5.353571734281 2.00440584020416 0.0578540209379184  0.930552 5.11222483381764 1.98471620826896 0.0572548371794587  0.91515801 4.863713808014 1.95958485207528 0.0569945688370966  0.89976399 4.60703552582244 1.9288551936157 0.057080412361174  0.884335 4.21126309802425 1.86388241852966 0.057783777664582  0.86124391 3.80256084361194 1.77586860834923 0.0585857072926716  0.83815282 3.52461642241029 1.69963195972818 0.0589047120778236  0.82275875 3.38400016073138 1.65643869467661 0.0589302309490356  0.81506172 
-6.35000030260882 2.04712503723322 -0.188466825981693  1 6.14170538271534 2.03823987281119 -0.179292494845936  0.98502945 5.81334966111928 2.02749289030074 -0.174952057749776  0.9626075 5.35175101119452 2.00209078309421 -0.177595565945336  0.93276796 5.11058629573981 1.98256647916685 -0.179941190576748  0.91786517 4.86244752195385 1.95799655699984 -0.181958165812549  0.90296234 4.6063611407904 1.92823435758621 -0.183645305792684  0.88802567 4.21134153702798 1.86651018865447 -0.185635112127194  0.86567137 3.80311175063811 1.78428447074896 -0.187665755363645  0.84331707 3.52490810642414 1.71403282841219 -0.189356129243933  0.8284142 3.38400016073138 1.67448842853393 -0.190382752802695  0.82096277 
-6.35000029960882 2.02707971328112 -0.420798429896852  1 6.13913979459348 2.01448902968309 -0.411512329925786  0.98611688 5.8079455238626 1.99977942598442 -0.408191503658055  0.96532361 5.34431877884151 1.9718194896564 -0.413313425371333  0.93765155 5.10282898737136 1.95186653970868 -0.417068678799698  0.92383126 4.85487872159436 1.92728507754112 -0.420489401042174  0.91001095 4.59955543446715 1.8979397591473 -0.423578511248899  0.89615924 4.20628362178774 1.83869140133315 -0.427671492643305  0.87542871 3.80052129551507 1.76155183166922 -0.431899154394108  0.85469818 3.52401538638174 1.69686255459664 -0.435147494918396  0.84087783 3.38400016073138 1.66077069188237 -0.436991634375988  0.83396765 
-6.35000030660882 1.9879657644233 -0.618945184968317  1 6.13552639442185 1.97175708565343 -0.609181874564585  0.9875581 5.80016247549292 1.95301791476337 -0.606134504409843  0.96892341 5.3332737083169 1.92208682329422 -0.612522079073236  0.94412403 5.09111774181511 1.90140879731207 -0.617029058297306  0.93173844 4.84321406104031 1.87648307412816 -0.621176686614308  0.91935283 4.58872255595262 1.84718503273658 -0.624969110474438  0.90693909 4.19780817338518 1.78964629000363 -0.630077038107052  0.88836063 3.79579944729079 1.71652073053036 -0.635345643457297  0.86978216 3.52231502630098 1.65640912567521 -0.639335121516787  0.85739651 3.38400016073138 1.62319422509759 -0.641572380553051  0.85120369 
-6.35000029760882 1.926903483523 -0.812790331575467  1 6.13051062518362 1.90679220856777 -0.802143589619774  0.98950847 5.7892918989766 1.88364722346844 -0.798734635927858  0.97379492 5.31772947557859 1.84933498583869 -0.805491387768786  0.95288305 5.07458157702968 1.82776690081427 -0.810278974406184  0.942439 4.82666539825429 1.80235924260747 -0.814665658244541  0.93199494 4.57322422021648 1.77299932221295 -0.818654823584016  0.92152715 4.18553608380229 1.71706206455607 -0.823984549667164  0.90586101 3.78882694495961 1.64791453327174 -0.82945654859707  0.89019488 3.51978462418079 1.59239996063494 -0.833602636473999  0.87975078 3.38400016073138 1.56208582419509 -0.835932597874666  0.87452874 
-6.35000030160882 1.8616705484246 -0.969794349982758  1 6.12540831394127 1.83825939531263 -0.958021442083575  0.99147321 5.77824701845199 1.81141209603745 -0.953711255388852  0.97870232 5.30197079683009 1.77431868827561 -0.959946544295012  0.96170659 5.05784234523461 1.75206052721841 -0.964540257023202  0.95321839 4.80993046645943 1.72632517099604 -0.968689100240261  0.94473017 4.55754644847183 1.69700986060364 -0.972394591766263  0.93622268 4.17312429821276 1.64259180701892 -0.977220887605499  0.92349032 3.78176015062396 1.57699058990303 -0.982151453959689  0.91075796 3.5172225640591 1.52548536145666 -0.985941141809689  0.90226973 3.38400016073138 1.49768452413619 -0.988100923762273  0.89802561 
-6.35000030160882 1.80105181754537 -1.09202145586823  1 6.12078076272147 1.77506410731102 -1.07904775025202  0.99324866 5.76826501197787 1.74537529090087 -1.0735628979915  0.98313692 5.28780054315704 1.70626863304341 -1.07876793423873  0.96968004 5.04283235152167 1.68358619596605 -1.08289646043482  0.96295925 4.79496332074853 1.65773082773799 -1.086542596608  0.95623845 4.54355324080719 1.62860705135468 -1.08970578375824  0.94950239 4.16208514968843 1.5756613878399 -1.09365363994576  0.93942116 3.77549182932623 1.51317727287206 -1.09767111513658  0.92933993 3.51495694795149 1.46507555958735 -1.10085353628773  0.92261911 3.38400016073138 1.43938500836712 -1.10271545137617  0.9192587 
-6.35000030260882 1.72252371981548 -1.22690484527485  1 6.11488404844139 1.69374008844833 -1.212233447578  0.99550701 5.75559930537628 1.66105837189604 -1.20492180423071  0.98877768 5.26992987030823 1.62004410694796 -1.20831140639171  0.97982218 5.02396484862551 1.5970942108579 -1.21159319354759  0.97534952 4.77620925285776 1.57133161963424 -1.21435264067865  0.97087685 4.52606790797668 1.5426680752728 -1.21658640678475  0.96639402 4.14835427303625 1.49178031785576 -1.21907363390289  0.959685 3.76772685995741 1.43324206407534 -1.22159956902286  0.95297598 3.51216088281868 1.38928343898742 -1.22379450212712  0.9485033 3.38400016073138 1.36612925188765 -1.22517089419249  0.94626696 
-6.35000030060882 1.65282992950521 -1.32731866804425  1 6.10970973719563 1.62200433904107 -1.31112769627522  0.9974862 5.7445358868508 1.58722249838902 -1.30210935384687  0.99372118 5.25442189457164 1.5450766993872 -1.30372935492382  0.98871064 5.00764937585057 1.52211286429648 -1.30618356804039  0.98620821 4.76004735609011 1.49662678408595 -1.30809064213097  0.98370578 4.51104567926316 1.46853523775168 -1.30944488519529  0.98119767 4.13661746847878 1.41958691542676 -1.31057410624893  0.97744402 3.76112100764365 1.36447773280921 -1.31173387130401  0.97369036 3.50979202770617 1.32399512288639 -1.31303273236571  0.97118793 3.38400016073138 1.30294446488654 -1.31397043841024  0.96993671 
-6.35000030160882 1.59860071892946 -1.39659336333462  1 6.105696403005 1.56641528840073 -1.37921463750918  0.99902173 5.73598998544489 1.53030001468535 -1.36883585001621  0.99755653 5.24251255700597 1.48759484865696 -1.36902375902514  0.99560662 4.99515856225729 1.46475364757206 -1.37081078711002  0.99463278 4.7477118805042 1.43960138537739 -1.3720378951683  0.99365893 4.49961306472014 1.41205797606915 -1.37269759819963  0.99268287 4.12772674305649 1.36470961382023 -1.37276694120293  0.9912221 3.75613992640707 1.31227027432949 -1.37287266320795  0.98976132 3.50801234662164 1.27442142053177 -1.37348602623708  0.98878747 3.38400016073138 1.25494977860691 -1.37408973626576  0.98830055 
-6.35000030160882 1.56406643828917 -1.43766224628529  1 6.10314155088365 1.53110718072369 -1.41951781642348  1 5.73056810618737 1.49426423997374 -1.40825221788839  1 5.23499173464875 1.45133614793476 -1.40749959485264  1 4.98728947588353 1.42863011185629 -1.40884995191678  1 4.73995927213597 1.40374228467418 -1.40963507695407  1 4.49244475037967 1.37659421838471 -1.4098463289641  1 4.1221729057927 1.33031310618648 -1.40923670693515  1 3.75304017225983 1.27959268077739 -1.40867257790835  1 3.50690798256918 1.2434099760588 -1.40885295191692  1 3.38400016073138 1.2249309651811 -1.40924642893561  1 
-
-0 5
-0.08141869 1
-0.16283738 1
-0.24425607 1
-0.32567476 1
-0.40709345 1
-0.48851214 1
-0.56993083 1
-0.61064017 1
-0.69205886 1
-0.77347755 1
-0.81418689 1
-0.85489624 1
-0.89560558 1
-0.93631493 1
-1 5
-
-0 4
-0.25085094 1
-0.37570871 1
-0.5 1
-0.50056649 1
-0.62542486 1
-0.75028323 1
-0.87514161 1
-1 4
-
-9 1 1 0 0 2 2 4 4 3 3 7.21279194058922 1.34821630603684 1.41444156518237  1 7.21279194058922 0.79526291551296 1.98600616733023  0.84765429 7.21279194058922 -0.795263472082986 1.98600598933022  0.84765429 7.21279194058922 -1.34821673503686 1.41444126218235  1 
-6.99709403034412 1.34787549802065 1.41444156518237  1 6.99616834030015 0.79523954900185 1.98613718533645  0.84882922 6.99616834030015 -0.795240078991875 1.98613700633644  0.84882922 6.99709403034412 -1.34787589902067 1.41444126218235  1 
-6.56569821085392 1.34719387998827 1.41444156518237  1 6.56480499081149 0.791369096308013 1.97774028493762  0.85117909 6.56480499081149 -0.791369571418036 1.97774010693761  0.85117909 6.56569821085392 -1.34719422898829 1.41444126218235  1 
-6.35000030160882 1.34685307097209 1.41444156518237  1 6.35000030160882 0.790078313186704 1.97500018280747  0.85235402 6.35000030160882 -0.790078761286726 1.97500000480746  0.85235402 6.35000030160882 -1.3468533929721 1.41444126218235  1 
-
-0 3
-0.5 1
-1 3
-
-0 3
-1.83863013 1
-3.67726025 3
-
-9 1 1 0 0 3 4 10 36 8 33 6.35000030160882 -1.56406656428917 -1.43766213928528  1 6.35000030160882 -1.56087668413766 -1.44145561046546  1 6.35000030160882 -1.55156186169523 -1.45246056498817  1 6.35000030160882 -1.5373982540225 -1.46887876476799  1 6.35000030160882 -1.51815295810839 -1.49055888279774  1 6.35000030160882 -1.49696523310203 -1.51368582889622  1 6.35000030160882 -1.475700256092 -1.53624261796761  1 6.35000030160882 -1.43743485327449 -1.57559388383669  1 6.35000030160882 -1.39903314145051 -1.61271153559968  1 6.35000030160882 -1.3606583726278 -1.64762826925814  1 6.35000030760882 -1.30840676714598 -1.69256358039245  1 6.35000029960882 -1.27654247863251 -1.71864403563121  1 6.35000030360882 -1.24245652801352 -1.74524789089482  1 6.35000029860882 -1.19998609099628 -1.77673806039053  1 6.35000030560882 -1.16608700238616 -1.80098233854207  1 6.35000029960882 -1.12829044859092 -1.8266202997598  1 6.35000030360882 -1.08970144575804 -1.85141809693764  1 6.35000025760881 -0.939382638728279 -1.94379931232551  1 6.35000030460882 -0.783807161088841 -2.01855482587621  1 6.35000030160882 -0.618231422944416 -2.0769283926488  1 6.35000030160882 -0.445655486767499 -2.11692251654842  1 6.35000030960882 -0.382553708270325 -2.1304975311932  1 6.35000029660882 -0.31068994845698 -2.14322195679758  1 6.35000031460882 -0.14911305225249 -2.16479364782218  1 6.35000029360882 0.0737504559729585 -2.17192667516098  1 6.35000030360882 0.290588303112203 -2.15304765926427  1 6.35000030060882 0.521041608308147 -2.10183263283169  1 6.35000030160882 0.682523250928113 -2.05064460740039  1 6.35000030160882 0.809166112923326 -2.00103335504398  1 6.35000030160882 0.932604324226326 -1.9429211842838  1 6.35000030160882 1.05218995497634 -1.87653050613041  1 6.35000030160882 1.16729123144336 -1.80213953659703  1 6.35000030060882 1.31678681654401 -1.69063672330093  1 6.35000030260882 1.4294894888971 -1.58772208741275  1 6.35000029960882 1.51030049273542 -1.50160309932232  1 6.35000030160882 1.56406643828917 -1.43766224628529  1 
-6.10314154888365 -1.53110727872369 -1.41951769042347  1 6.10344724489817 -1.52805006957848 -1.42326077860126  0.99988754 6.10433321694026 -1.51911811515424 -1.4341232431172  0.99956176 6.10564702300266 -1.50552466450858 -1.45033405488717  0.99907904 6.10736822908441 -1.48703084963017 -1.47175044890439  0.99844734 6.10918759117083 -1.46664183466175 -1.49460881799011  0.99778049 6.11094833225446 -1.44614988268843 -1.51691852604976  0.99713597 6.11399471939915 -1.4092083889338 -1.55587963690031  0.9960228 6.11681747153323 -1.37205425216908 -1.59265616564711  0.99499356 6.11942884565726 -1.33485347740214 -1.62727503129141  0.99404329 6.1227415248146 -1.28409365099117 -1.67187154840963  0.99284043 6.12463956690476 -1.25308395551829 -1.69777760664011  0.99215255 6.12655166599558 -1.21987031394073 -1.72421450689579  0.99146053 6.12878671010173 -1.17843050097244 -1.75552354538289  0.99065286 6.13049234118275 -1.14531077839934 -1.77964565652863  0.99003739 6.13227266126731 -1.10834397164351 -1.80516135374056  0.98939577 6.13397242434804 -1.07056221584897 -1.8298477049131  0.98878397 6.14025232464632 -0.922986541169506 -1.92200940129054  0.98653015 6.14499905287178 -0.769855101256153 -1.99651596882942  0.98483341 6.14847174903672 -0.606588336361399 -2.05460735858861  0.98359576 6.1506607841407 -0.436174667077184 -2.09427767347285  0.9828172 6.15139052017536 -0.373806288914845 -2.10774151811235  0.98255793 6.152035571206 -0.302767448980681 -2.12032459871001  0.98232886 6.15302192125285 -0.143006802522458 -2.14154956071814  0.98197881 6.15291706724786 0.0772315452783014 -2.14808877402874  0.982016 6.15121518016703 0.291207545701616 -2.12857777410201  0.98262022 6.14750871499098 0.518139561260307 -2.07675478264055  0.98393867 6.14397659082321 0.676731464023018 -2.0252728801953  0.98519841 6.14062431666399 0.800794694435705 -1.97556856383447  0.98639699 6.1367486094799 0.921403896104335 -1.91754311307841  0.98778635 6.13235391427117 1.03790351829777 -1.85147115894016  0.98936651 6.12744525303802 1.14966162160599 -1.77768657343558  0.99113746 6.12008921668863 1.29417243146989 -1.66755515920462  0.99380328 6.1132588363642 1.40253270161673 -1.56635938039807  0.99629147 6.10747995008972 1.47986014128958 -1.48198655239058  0.99840636 6.10314155088365 1.53110718072369 -1.41951781642348  1 
-5.73056810418737 -1.49426433297374 -1.40825210888838  1 5.73122741521868 -1.49135472683555 -1.41191871606254  0.99971911 5.7331394903095 -1.48284824043151 -1.42256457056819  0.99890538 5.73597834644434 -1.46988882381597 -1.43845939832315  0.99769968 5.73970374162129 -1.45223106997727 -1.45947266332123  0.99612186 5.74364929480869 -1.43273084305106 -1.48191887538737  0.99445624 5.74747528499041 -1.41309806811855 -1.50384777442893  0.99284639 5.75411255130567 -1.37762201743353 -1.54220360925074  0.99006599 5.76028261859873 -1.34184843373438 -1.57844721497222  0.98749524 5.76600789487067 -1.30594536702907 -1.61259754659427  0.98512172 5.77329469921677 -1.25682527169599 -1.65665607268694  0.98211729 5.77748191541565 -1.22674856126743 -1.68228254990413  0.98039913 5.78170909861643 -1.19448393973494 -1.70845018914703  0.97867066 5.78666169885167 -1.15415914781962 -1.73946481162014  0.9766533 5.79044949803158 -1.12187414628616 -1.76338611175634  0.97511601 5.79441090321974 -1.08579181457234 -1.78869962795867  0.97351344 5.79820042439973 -1.04886512781842 -1.8132004871224  0.97198531 5.81226401606771 -0.90406266656067 -1.90496987148121  0.96635586 5.82296013957575 -0.753357870342577 -1.97904779199972  0.96211786 5.83082179994916 -0.592349947955111 -2.03666702973649  0.95902653 5.8357933191853 -0.42400044462894 -2.07580982259567  0.95708188 5.83745335226414 -0.36230408059852 -2.08909229122655  0.95643431 5.8389219073339 -0.292024171010403 -2.10144735081339  0.95586215 5.84116950844065 -0.133931871271422 -2.12211829579521  0.95498781 5.8409304824293 0.083769278148827 -2.12772744306163  0.95508071 5.83705436124519 0.294776395751127 -2.10724690408885  0.95658987 5.82863854784546 0.517838628286014 -2.05452202458455  0.95988302 5.82065130946609 0.673108022090914 -2.00263053311984  0.96302951 5.81310013610743 0.794121096738726 -1.95282821375436  0.96602325 5.80440532769445 0.911322758965506 -1.89499054500722  0.96949353 5.79459188422833 1.02405517564001 -1.82946916989512  0.97344035 5.78368769771041 1.1316966327527 -1.75667800843772  0.97786371 5.76745835293956 1.27002429532291 -1.64872284131013  0.98452221 5.75250720322942 1.3730191002149 -1.55019531463032  0.99073706 5.73994579663278 1.446077682685 -1.46849307774968  0.99601952 5.73056810618737 1.49426423997374 -1.40825221788839  1 
-5.23443025562208 -1.45128758493246 -1.4074986558526  1 5.23536636766655 -1.44853333980164 -1.41106146202182  0.9994947 5.23808357779561 -1.44047466841887 -1.42141275351348  0.99803087 5.24212435398753 -1.42818494383514 -1.43687652024797  0.99586192 5.24743890023996 -1.41141435703858 -1.45733736121981  0.99302357 5.25308228550801 -1.39286188215739 -1.47921571525897  0.99002725 5.25856922076862 -1.37414831426854 -1.50061681527547  0.98713129 5.26812205022236 -1.34024235165809 -1.53812615105707  0.98212959 5.27704157164601 -1.30596111402982 -1.5736172427428  0.97750503 5.28535202804074 -1.27147177839167 -1.60709976033314  0.97323527 5.29597664654538 -1.22414449514374 -1.65038155438891  0.96783056 5.30210611383652 -1.19508978876372 -1.67559920858669  0.96473974 5.30831212313128 -1.1638687262808 -1.70136993681073  0.96163037 5.31560630247774 -1.12477322642386 -1.73194605426302  0.95800133 5.32120190674352 -1.093406151934 -1.75556391738481  0.95523588 5.32706976102222 -1.05829962326653 -1.78056951057251  0.95235298 5.33269817128956 -1.02231822455751 -1.80478547372271  0.94960403 5.35371683628789 -0.880492719981158 -1.89590087205046  0.93947714 5.36984175505379 -0.732438314758952 -1.9692910425363  0.93185333 5.3817711366204 -0.573937009690544 -2.02617716523825  0.9262923 5.38934916698034 -0.407886517873569 -2.06452803005981  0.92279405 5.3918854591008 -0.346920643977846 -2.07753760367774  0.92162912 5.39413169520749 -0.277473716389294 -2.08955474524852  0.92059985 5.397574023371 -0.121223284637797 -2.10941548919185  0.91902699 5.3972076923536 0.0935528608835222 -2.11370320039551  0.91919411 5.39127558907184 0.300987754366151 -2.09188784735934  0.92190896 5.37845161746273 0.519287967424854 -2.03798643479916  0.92783306 5.36635082488797 0.670419514693217 -1.98561734031176  0.93349332 5.35497294934756 0.787618622419875 -1.93577290094427  0.93887879 5.34194621272882 0.900564461404515 -1.87830626521476  0.94512151 5.32733822503498 1.00861374590658 -1.81366836914462  0.9522215 5.31122319426955 1.11117780077811 -1.74237231575824  0.96017875 5.28746263014099 1.24195950798991 -1.63755798077983  0.97215681 5.26580752811242 1.33854437557744 -1.5427670402775  0.98333678 5.24778467825639 1.40661282781052 -1.46472811757085  0.99283946 5.23443025762208 1.45128751093245 -1.4074987418526  1 
-4.86287561097419 -1.41722414131453 -1.40953009994908  1 4.86387354502159 -1.41457555118873 -1.41301380711455  0.99932677 4.86677210315926 -1.40682183182045 -1.42314020559553  0.99737648 4.87108779636424 -1.39499037925848 -1.43827383631434  0.99448673 4.8767734766343 -1.37883103349096 -1.45830971226599  0.99070512 4.88282287292163 -1.36093650964101 -1.4797488982843  0.98671304 4.88871636420156 -1.34286537478268 -1.50073942228129  0.98285467 4.89900487769023 -1.31006481822474 -1.53758445403134  0.97619078 4.90864340514804 -1.27684913864708 -1.57247941368876  0.97002935 4.91765179757592 -1.2433825750575 -1.60542805225374  0.96434064 4.92920827712482 -1.19736816887193 -1.64808117927965  0.95713981 4.93589564144245 -1.16907001052784 -1.67296391646152  0.95302182 4.94268170376477 -1.13862896408197 -1.69840699467  0.94887913 4.95067725814454 -1.10046181626913 -1.72861759110493  0.94404405 4.95682532043656 -1.06979366781247 -1.75197917421454  0.94035958 4.96328600574342 -1.03543768718065 -1.7767227833898  0.93651861 4.96949606903839 -1.00019083050651 -1.80069446152839  0.93285611 4.99280019914527 -0.860715793571805 -1.89121037682767  0.91936378 5.01080059900025 -0.71484850151348 -1.96398676428436  0.90920638 5.02418636063604 -0.558495316557103 -2.02023531995602  0.90179727 5.03272016404137 -0.394483524886961 -2.05791761574584  0.89713646 5.03558167917728 -0.334179641272681 -2.07069624635279  0.89558439 5.03811818729776 -0.265492298740207 -2.08243148391018  0.89421308 5.04200943448259 -0.110936432329198 -2.10162503782183  0.89211751 5.04159509746291 0.101172874695453 -2.10485643097531  0.89234017 5.03489336214459 0.305428276357064 -2.08201017789017  0.89595724 5.02045567445884 0.519607296730021 -2.02725601828949  0.90385007 5.00689458881472 0.667253568572842 -1.97459121978805  0.91139138 4.99419857821169 0.781305205520004 -1.92479212742272  0.91856658 4.97972760552436 0.890802924790867 -1.86770554671125  0.92688394 4.96358192375748 0.995127907736037 -1.80385320867843  0.93634344 4.94587014491622 1.09373052394941 -1.73381565535182  0.94694509 4.91994397468479 1.21875506488776 -1.63154399549418  0.96290378 4.89650885257168 1.31058378324939 -1.53969068113138  0.97779915 4.87714377765189 1.37504058631092 -1.46447348455875  0.99045982 4.86287561297419 1.41722408331453 -1.40953016794909  1 
-4.49244474837966 -1.37659426138472 -1.4098462769641  1 4.49338004442409 -1.37405770526424 -1.41324966612575  0.99915885 4.49609845355321 -1.36662804091135 -1.42314733159587  0.99672209 4.50015084374569 -1.35528528137259 -1.43794430229869  0.99311154 4.50549864899969 -1.33978111563619 -1.45754518222968  0.98838666 4.51119983627048 -1.32259610081994 -1.47853279822654  0.98339883 4.51676531253483 -1.30522220099473 -1.49909906220338  0.97857805 4.52650783199758 -1.2736325114943 -1.53525254992058  0.97025196 4.53566572243255 -1.24159676197268 -1.56952197154829  0.96255366 4.54425202484038 -1.20927477343747 -1.60190606108645  0.95544599 4.5553055963654 -1.1647488953226 -1.64388751008046  0.94644903 4.56172183967015 -1.13731930601977 -1.66840882324516  0.94130388 4.56824775198012 -1.10778185861681 -1.69349605643674  0.93612786 4.57595621334625 -1.0707017288556 -1.72330649685266  0.93008676 4.58189786362846 -1.04086209343829 -1.74638453794881  0.92548325 4.58815512592567 -1.00740426784913 -1.77083654311022  0.92068422 4.59418272321196 -0.973045591827183 -1.79453458423582  0.91610816 4.61691706129178 -0.836532227533147 -1.88434518550159  0.8992504 4.6346025901318 -0.693512018110052 -1.95641115592454  0.8865594 4.64782565275986 -0.54003131094011 -2.01193481956177  0.87730221 4.65628776216179 -0.378830346473475 -2.0488741413163  0.87147884 4.65913084329683 -0.319470188204019 -2.06139553691103  0.86953963 4.66165337441664 -0.251865778402982 -2.07282046845368  0.86782626 4.66552749360065 -0.0997372415372646 -2.09128764433083  0.86520799 4.66511473458105 0.108667241491417 -2.09339915043112  0.86548619 4.65844670326434 0.308700816942501 -2.06949506729574  0.87000547 4.64413415758453 0.517624201085829 -2.01392117965612  0.87986704 4.63075556994908 0.660987618415226 -1.96102439814366  0.88928941 4.61828704635685 0.771273374263518 -1.91134711478411  0.89825435 4.60414168068498 0.876734682232661 -1.85474003109542  0.90864633 4.58844205793929 0.976789118794991 -1.79179164810553  0.92046535 4.571319183126 1.07093803186682 -1.7231430048449  0.93371141 4.54644099894435 1.18963819650478 -1.62358975611637  0.95365074 4.52414114688516 1.27635807562375 -1.53480044789911  0.97226151 4.50584730101625 1.33700406650428 -1.46247548246385  0.98808018 4.49244475037967 1.37659421838471 -1.4098463289641  1 
-4.1221729047927 -1.33031313618648 -1.40923667193515  1 4.12292104182823 -1.32789211907149 -1.41255852409293  0.99899092 4.12509690593158 -1.3207971797345 -1.42222360755199  0.99606769 4.12834446508583 -1.30996066421979 -1.43667735423851  0.99173634 4.13263741828974 -1.29513806851575 -1.45583310014836  0.9860682 4.13722316750755 -1.27869474973474 -1.47635655412317  0.98008461 4.14170885872061 -1.26205340494432 -1.4964845930792  0.97430142 4.1495829190946 -1.23174495450474 -1.53191853976222  0.96431313 4.15700980644736 -1.20096861204295 -1.56553194935877  0.95507796 4.16399555777917 -1.16987866356625 -1.5973194638686  0.94655133 4.17302076220784 -1.12697086452824 -1.63858393082856  0.93575824 4.17827625645746 -1.10049431227067 -1.66271567697475  0.92958592 4.18363418171195 -1.07195516591514 -1.687416965148  0.92337658 4.18997944401334 -1.03608556721142 -1.71679003354315  0.91612944 4.19488253724622 -1.00717646483831 -1.73955505162443  0.9106069 4.20005759349202 -0.974734470557401 -1.76368325077046  0.9048498 4.20505391472933 -0.941387895743524 -1.78707557088153  0.89936019 4.22399820762914 -0.808334968443849 -1.87606324610822  0.87913698 4.23884521933434 -0.668719583732474 -1.94730996749226  0.86391238 4.25000941586461 -0.51874112156888 -2.00200970509035  0.8528071 4.25718263720532 -0.361036617548318 -2.03812176480558  0.84582117 4.25959772632003 -0.302871154515607 -2.05035603238668  0.84349482 4.2617426534219 -0.23663945100977 -2.06143850491307  0.8414394 4.26504075057856 -0.0875990598707319 -2.07911269675255  0.83829842 4.26468913856186 0.116152986896971 -2.08003483979635  0.83863216 4.25901634329241 0.311005105781949 -2.05504693360949  0.84405367 4.24688720871631 0.513628569546047 -1.99869665193299  0.85588397 4.23560740718055 0.651980626187417 -1.94564324041309  0.86718741 4.2251448586836 0.75794154832029 -1.89617535606349  0.87794208 4.21333317112258 0.858842028362806 -1.84015928840287  0.89040869 4.20029518350331 0.954148119969602 -1.77824519846211  0.90458723 4.18616031083194 1.04342359955996 -1.71112656227415  0.92047771 4.16577997386392 1.15533630887553 -1.61447813168359  0.94439768 4.14766757700363 1.23667888073909 -1.5288841286181  0.96672386 4.13291758630304 1.29337722843212 -1.45952338932364  0.98570054 4.1221729057927 1.33031310618648 -1.40923670693515  1 
-3.75304017125983 -1.27959269377739 -1.40867256290835  1 3.75347656328056 -1.27728691866787 -1.4119116560622  0.998823 3.75474659134088 -1.27052622834675 -1.42134030051004  0.9954133 3.75664446943103 -1.26019657285612 -1.43544422117994  0.99036114 3.75915753755039 -1.24605897518462 -1.45414459306816  0.98374974 3.76184737967815 -1.23036433543917 -1.47419109502032  0.97677039 3.76448391780338 -1.21446559268402 -1.49386665395486  0.97002479 3.76912495702382 -1.18546325730648 -1.52855228360233  0.9583743 3.77351759723246 -1.15598087990614 -1.56147810116623  0.94760226 3.77766283342935 -1.12616641649003 -1.59263559264613  0.93765667 3.78303773768464 -1.08494715153222 -1.63313534056976  0.92506745 3.78617778583379 -1.05947272532225 -1.65684763069604  0.91786797 3.78938677498621 -1.03198950401687 -1.68113082384943  0.91062529 3.79319725116719 -0.997408763834372 -1.7100265112219  0.90217212 3.79614923630741 -0.969496638518617 -1.73244660328679  0.89573055 3.79927214245574 -0.938149498469708 -1.75621595641578  0.88901538 3.80229421159928 -0.905900512377963 -1.77926745451067  0.88261221 3.81381591714653 -0.776658783389311 -1.86730135969205  0.85902356 3.82291610257876 -0.640871732849773 -1.93760604703134  0.84126535 3.82980015490574 -0.494900423746508 -1.99136926758496  0.828312 3.83424209111672 -0.341262224639085 -2.02655828125635  0.8201635 3.83574093218791 -0.284500837923064 -2.03847131182219  0.81745001 3.8370735152512 -0.219886104524029 -2.04917479933058  0.81505254 3.83912511734865 -0.0744966154083992 -2.06598077212882  0.81138885 3.83890624633825 0.123779212809197 -2.06563741211251  0.81177813 3.83537996417076 0.312604177777901 -2.03954121787301  0.81810186 3.82787136481413 0.508008633469114 -1.98247036616229  0.8319009 3.82092623748425 0.640715701032361 -1.92934932863917  0.8450854 3.8145165191798 0.741873368217092 -1.88019123830429  0.85762982 3.80731724383786 0.837774063202131 -1.82489136367768  0.87217106 3.79941569546255 0.927944421554993 -1.76415518679287  0.88870912 3.7909024530582 1.01202140806844 -1.69871932668483  0.907244 3.77872378547974 1.11681708604596 -1.60517353424165  0.93514462 3.76799451797013 1.19262221964651 -1.5229112733344  0.96118621 3.75932171555819 1.24531728514939 -1.45658827818423  0.9833209 3.75304017225983 1.27959268077739 -1.40867257790835  1 
-3.50690798156918 -1.2434099750588 -1.40885295291692  1 3.50706729957675 -1.24118055395291 -1.41203619606812  0.99871105 3.50753116359878 -1.23464148664232 -1.42130506550837  0.99497703 3.50822490763173 -1.22464855916768 -1.43517208316701  0.98944435 3.50914456867542 -1.21096733051786 -1.45356312904054  0.9822041 3.51013023872223 -1.19577309279617 -1.47328446097725  0.97456091 3.51109770176818 -1.18037221006467 -1.49265029989708  0.96717371 3.51280390184922 -1.15224898972889 -1.52682067052009  0.95441508 3.51442254792611 -1.12364273037016 -1.55926998006135  0.94261846 3.51595339999882 -1.09469688899531 -1.58998813952038  0.9317269 3.51794326309333 -1.05463410609243 -1.62995028641848  0.91794025 3.51910831614867 -1.02984992691524 -1.65336541653064  0.91005599 3.52030090820531 -1.00309727964456 -1.67735093366989  0.90212443 3.5217196182727 -0.96941268698463 -1.70590465402612  0.89286724 3.52282062632499 -0.942196816091945 -1.72807577407919  0.88581298 3.5239872223804 -0.911617783759519 -1.75158490219581  0.8784591 3.52511795343411 -0.88014243328452 -1.77438805027891  0.8714469 3.52944525163965 -0.753613188164704 -1.86170613542629  0.84561461 3.53288151280286 -0.620596354906744 -1.93130677773215  0.82616734 3.53549184092684 -0.477565352673136 -1.98437542525277  0.81198193 3.53718115900708 -0.326947922419192 -2.01888931689209  0.80305838 3.5377520740342 -0.271236597383046 -2.03056683244674  0.8000868 3.53826003805833 -0.207833714371571 -2.04099487394205  0.7974613 3.5390427780955 -0.0651884594262855 -2.05717531971058  0.79344914 3.53895923309154 0.128976772006068 -2.05594230665201  0.79387545 3.53761453902767 0.313308541611356 -2.02909475637682  0.80080065 3.53475952389206 0.50338619493956 -1.97158189264511  0.81591219 3.5321287357671 0.631978485167366 -1.91847303412258  0.83035073 3.52970922065218 0.729671116827517 -1.86958445280049  0.84408831 3.52700129952356 0.822000366382921 -1.81483914820023  0.86001263 3.52404089338295 0.908539919543329 -1.75497527435685  0.87812371 3.5208648872321 0.988981063374078 -1.69075239630643  0.89842154 3.51634574101745 1.08886560971834 -1.59939092996699  0.92897591 3.51238793882947 1.16090303713993 -1.51942827416897  0.95749444 3.50920469167827 1.21090699951499 -1.45517205711696  0.98173447 3.50690798256918 1.2434099760588 -1.40885295191692  1 
-3.38400016073138 -1.22492845218098 -1.40924430093551  1 3.38400016073138 -1.22273605707684 -1.41239941808537  0.99865507 3.38400016073138 -1.21630449177136 -1.42158776552179  0.9947589 3.38400016073138 -1.20647513230449 -1.43533523617476  0.98898595 3.38400016073138 -1.19301603766522 -1.45356990304086  0.98143128 3.38400016073138 -1.17806590695513 -1.47312648796975  0.97345617 3.38400016073138 -1.16290835223518 -1.49233503488211  0.96574816 3.38400016073138 -1.13521568791985 -1.52624280649264  0.95243547 3.38400016073138 -1.10704030758159 -1.55844833202232  0.94012656 3.38400016073138 -1.07852336522711 -1.58894089247064  0.92876201 3.38400016073138 -1.03903351835144 -1.62862564935556  0.91437666 3.38400016073138 -1.01459240619055 -1.65188675346041  0.90615001 3.38400016073138 -0.988203922457165 -1.67571751859231  0.897874 3.38400016073138 -0.954967367148514 -1.70409281894006  0.8882148 3.38400016073138 -0.928100336062398 -1.72613346198694  0.88085419 3.38400016073138 -0.897907275468305 -1.74950583909706  0.87318096 3.38400016073138 -0.866821797431824 -1.77217810317394  0.86586424 3.38400016073138 -0.741663184697109 -1.85911261130311  0.83891014 3.38400016073138 -0.610062640166419 -1.92833658259107  0.81861833 3.38400016073138 -0.468549687754915 -1.98103504609411  0.80381689 3.38400016073138 -0.319504073825628 -2.01519189971647  0.79450583 3.38400016073138 -0.264340523295501 -2.0267446762652  0.7914052 3.38400016073138 -0.20157103521411 -2.03702756675361  0.78866568 3.38400016073138 -0.0603632220870991 -2.05288008850657  0.78447928 3.38400016073138 0.131644860142795 -2.05118767442618  0.7849241 3.38400016073138 0.313621417856217 -2.02396114413299  0.79215005 3.38400016073138 0.500918594732355 -1.96624083439142  0.80791783 3.38400016073138 0.627375390128731 -1.91315732987009  0.82298339 3.38400016073138 0.723279112373913 -1.8644242805554  0.83731755 3.38400016073138 0.813774288512203 -1.8099813409695  0.85393342 3.38400016073138 0.898460097664563 -1.75058157114816  0.872831 3.38400016073138 0.977056523967692 -1.68699410812792  0.8940103 3.38400016073138 1.07446881103453 -1.59676110184208  0.92589156 3.38400016073138 1.14462675836685 -1.51797248209982  0.95564856 3.38400016073138 1.19329932567867 -1.4547623830975  0.98094125 3.38400016073138 1.2249309651811 -1.40924642893561  1 
-
-0 4
-0.25085093 1
-0.37570871 1
-0.50056649 1
-0.62542486 1
-0.75028323 1
-0.87514161 1
-1 4
-
-0 5
-0.00695228 1
-0.02022482 1
-0.03033722 1
-0.04044963 1
-0.05056204 1
-0.06320255 1
-0.10618028 1
-0.11376458 1
-0.12134889 1
-0.15674232 1
-0.16179852 1
-0.17191093 1
-0.19213574 1
-0.21236056 1
-0.22247297 1
-0.23258537 1
-0.42472112 1
-0.43483352 1
-0.44494593 1
-0.45505834 1
-0.50562038 1
-0.52584519 1
-0.64719408 1
-0.72809334 1
-0.76854297 1
-0.8089926 1
-0.84944223 1
-0.88989186 1
-0.93034149 1
-0.97079112 1
-1.01124075 1
-1.10976049 5
-
-9 1 1 0 0 4 2 106 4 103 3 7.21279194058922 1.34821630603684 1.41444156518237  1 6.99709403034412 1.34787549802065 1.41444156518237  1 6.56569821085392 1.34719387998827 1.41444156518237  1 6.35000030160882 1.34685307097209 1.41444156518237  1 
-7.21279194058922 1.38651705285602 1.3810068325943  0.98310562 6.99432584721264 1.38747810690167 1.37988059454081  0.98732921 6.56295355672355 1.38929791798811 1.37757217343116  0.9957764 6.35000030160882 1.39020921303139 1.3764466293777  1 
-7.21279194058922 1.4621606594489 1.31043436724229  0.95028396 6.9887395629473 1.46553907960937 1.30693455907606  0.96271297 6.5575542554671 1.47174120990395 1.2999056407422  0.98757099 6.35000030060882 1.4747759580481 1.29657054758379  1 
-7.21279194058922 1.57010560557601 1.19522065276993  0.90386361 6.98033234454798 1.57691368189938 1.18739086739804  0.92789771 6.54976290809703 1.58868654845856 1.17218866767597  0.9759659 6.35000030360882 1.59428476072446 1.16524941034637  1 
-7.21279194058922 1.69968679573079 1.02487540767897  0.84725591 6.96918417001847 1.7104518022421 1.00938649694328  0.88544193 6.54000723763366 1.72743958204897 0.980782074934647  0.96181398 6.35000029960882 1.73527748542125 0.968329296123171  1 
-7.21279194058922 1.81413242216666 0.835852788420875  0.79561473 6.958036861489 1.82731389579275 0.811617913939781  0.84671105 6.53085367919889 1.84585616567346 0.769146275042486  0.94890368 6.35000030360882 1.85426945907307 0.751455380122214  1 
-7.21279194058922 1.91021170273018 0.629178767264386  0.74863908 6.94696960396333 1.92392159838137 0.595470073343309  0.81147931 6.52230804379299 1.9402915371589 0.539534491666512  0.93715977 6.35000029960882 1.94779785051543 0.517164088903975  1 
-7.21279194058922 1.98464404526553 0.40646120293587  0.70604653 6.93606687244548 1.99672452083932 0.363035859753277  0.7795349 6.51437250941608 2.00735396834419 0.294940105498903  0.92651163 6.35000030360882 2.01269872159806 0.268693744052267  1 
-7.21279194058922 2.02770075531061 0.200988942886462  0.6723824 6.92679320000501 2.03646231372676 0.148917998223225  0.7542868 6.50797021011198 2.0394548888689 0.0713165534773544  0.9180956 6.35000030060882 2.04208931299403 0.0422534092469292  1 
-7.21279194058922 2.05092144241354 -0.0134662888396144  0.64154305 6.91773289357467 2.05454071458544 -0.0731756501856567  0.73115729 6.50200124682847 2.04779386326498 -0.157636384837326  0.91038576 6.35000030260882 2.04712503723322 -0.188466825981693  1 
-7.21279194058922 2.05234961848137 -0.234903884957335  0.61340451 6.90894861615743 2.04925056733417 -0.300847193809474  0.71005339 6.49646612856557 2.03136948348487 -0.38924133395797  0.90335113 6.35000029960882 2.02707971328112 -0.420798429896852  1 
-7.21279194058922 2.03350610158635 -0.427442342502421  0.59149884 6.90173842881497 2.02355368011364 -0.497647960837009  0.69362413 6.49209703935805 1.99546599177954 -0.587405787570276  0.89787471 6.35000030660882 1.9879657644233 -0.618945184968317  1 
-7.21279194058922 1.99408569071398 -0.619120805066659  0.57168198 6.89491417049083 1.97631469386991 -0.692448670159545  0.67876148 6.48809837916812 1.93765664103375 -0.78179166530311  0.89292049 6.35000029760882 1.926903483523 -0.812790331575467  1 
-7.21279194058922 1.94691251047338 -0.778047304585262  0.55650414 6.8894815112328 1.9222549063022 -0.852622767907407  0.6673781 6.48500566002123 1.87500878805813 -0.939790722907662  0.88912603 6.35000030160882 1.8616705484246 -0.969794349982758  1 
-7.21279194058922 1.90021685525545 -0.904443886598777  0.54514222 6.88529174703379 1.870016302821 -0.979003015470146  0.65885667 6.48267315891044 1.81630058526964 -1.06317735149821  0.88628556 6.35000030160882 1.80105181754537 -1.09202145586823  1 
-7.21279194058922 1.84472828261989 -1.02872931186202  0.53454046 6.88128349384341 1.8090087309233 -1.10247453236473  0.65090534 6.48048318780642 1.74924662808475 -1.18277812017894  0.88363511 6.35000030160882 1.73223369227668 -1.21022656048267  1 
-7.21279194058922 1.78047102656783 -1.15019805363147  0.5246798 6.87746684366213 1.73937452361585 -1.22232404505727  0.64350985 6.47843447570911 1.67411130451602 -1.29794609264913  0.88116995 6.35000030160882 1.65550970563249 -1.32378622987647  1 
-7.21279194058922 1.70753418710352 -1.26813303223308  0.51554235 6.87385144449041 1.66132463390868 -1.3378444895442  0.63665676 6.47652576661845 1.59121634157872 -1.40805473587901  0.87888559 6.35000030160882 1.57122741662929 -1.43209992302109  1 
-7.21279194058922 1.62607441423439 -1.38181234463256  0.5071114 6.87044650232868 1.57513806481504 -1.44834366979263  0.63033355 6.47475581153438 1.50094210429092 -1.51250891584032  0.87677785 6.35000030160882 1.47979009728625 -1.53460148988966  1 
-7.21279194058922 1.53631782497118 -1.49051648679573  0.49937137 6.86726068517736 1.48116099135137 -1.55315122277072  0.62452853 6.47312339945685 1.40372063667315 -1.61074604850633  0.87484284 6.35000030160882 1.3816488896248 -1.6307591154569  1 
-7.21279194058922 1.43856104932798 -1.59353597968889  0.49230787 6.86430214203684 1.37980411553718 -1.65162671944806  0.6192309 6.47162735338579 1.30003552674837 -1.70224637785236  0.87307697 6.35000030160882 1.27730312466864 -1.7200860396997  1 
-7.21279194058922 1.33317134232224 -1.6901792832792  0.48590765 6.86157841390747 1.27153974539489 -1.74316656479597  0.61443074 6.47026655632116 1.19041359254161 -1.78653317285577  0.87147691 6.35000030160882 1.16729123144336 -1.80213953659703  1 
-7.21279194058922 1.22058567797471 -1.77978086653505  0.48015863 6.85909645878958 1.15689731894967 -1.82721090978786  0.61011897 6.4690399472629 1.07542356807988 -1.86318192649639  0.87003966 6.35000030160882 1.05218995497634 -1.87653050613041  1 
-7.21279194058922 1.10130881630936 -1.86170929042644  0.4750499 6.85686256368348 1.03645858122914 -1.90324998539952  0.60628742 6.46794654421096 0.955666741621732 -1.93181927075649  0.86876247 6.35000030160882 0.932604324226326 -1.9429211842838  1 
-7.21279194058922 0.975910287743249 -1.93537515592538  0.47057168 6.85488239558943 0.910851604783128 -1.97082914560936  0.60292876 6.46698544116531 0.831774805197181 -1.99213081962113  0.86764292 6.35000030160882 0.809166112923326 -2.00103335504398  1 
-7.21279194058922 0.84502033459631 -2.00023875300624  0.4667154 6.85316090350766 0.780744474453371 -2.02955436439866  0.60003655 6.46615582612591 0.704399835187195 -2.04385859107807  0.86667885 6.35000030160882 0.682523250928113 -2.05064460740039  1 
-7.21279194058922 0.675103814045709 -2.06983358631182  0.46266316 6.85133585342098 0.613196446955267 -2.09154058734284  0.59699737 6.46528206208441 0.541626604205882 -2.09755708562861  0.86566579 6.35000030060882 0.521041608308147 -2.10183263283169  1 
-7.21279194058922 0.427527016726443 -2.14456254086125  0.45840919 6.8494035823292 0.371371627979205 -2.15623631541572  0.59380689 6.46436260004073 0.308739412964335 -2.15192296421085  0.8646023 6.35000030360882 0.290588303112203 -2.15304765926427  1 
-7.21279194058922 0.189458714538806 -2.18034729656093  0.45641085 6.84849509128605 0.141161505074811 -2.18448420275743  0.59230814 6.46392988402018 0.0890294569586721 -2.17303859821379  0.86410271 6.35000029360882 0.0737504559729585 -2.17192667516098  1 
-7.21279194058922 -0.060550282445984 -2.18463207376445  0.456172 6.84839638328136 -0.0982741943877735 -2.18340898570636  0.592129 6.46387814701772 -0.137423861007283 -2.16741207494654  0.864043 6.35000031460882 -0.14911305225249 -2.16479364782218  1 
-7.21279194058922 -0.244794796437128 -2.16668735791212  0.45717223 6.84886542130364 -0.27347680082945 -2.16351558076147  0.59287917 6.46409480802801 -0.301976054163092 -2.14632499194496  0.86429306 6.35000029660882 -0.31068994845698 -2.14322195679758  1 
-7.21279194058922 -0.327096319206241 -2.15465597334066  0.45784579 6.84917848031851 -0.351590272749641 -2.15101174816757  0.59338434 6.46424066003494 -0.375210716831552 -2.13369629834513  0.86446145 6.35000030960882 -0.382553708270325 -2.1304975311932  1 
-7.21279194058922 -0.399690782584293 -2.14090490968752  0.45861891 6.8495361873355 -0.420363437616191 -2.13717660851044  0.59396418 6.46440798004289 -0.439560486708002 -2.12010262369947  0.86465473 6.35000030160882 -0.445655486767499 -2.11692251654842  1 
-7.21279194058922 -0.597534685641373 -2.09972672873166  0.46095078 6.85060932038647 -0.608047238430693 -2.09607908055841  0.59571309 6.46491221606684 -0.615474903743488 -2.07996481579302  0.8652377 6.35000030160882 -0.618231422944416 -2.0769283926488  1 
-7.21279194058922 -0.788894907920496 -2.0341008796146  0.46472524 6.85232729746807 -0.789053732298039 -2.03312078656805  0.59854393 6.46572695510554 -0.784489582981254 -2.02064002497525  0.86618131 6.35000030460882 -0.783807161088841 -2.01855482587621  1 
-7.21279194058922 -0.970432022773046 -1.94523159539354  0.46996388 6.85468022057982 -0.960296250601622 -1.94984545161268  0.60247291 6.4668547681591 -0.943587895508018 -1.94399329733472  0.86749097 6.35000025760881 -0.939382638728279 -1.94379931232551  1 
-7.21279194058922 -1.14654987245819 -1.82979608791065  0.4770287 6.85780123172806 -1.12645758050386 -1.84369360857074  0.60777152 6.46837044323109 -1.09750072912849 -1.84845167979674  0.86925717 6.35000030360882 -1.08970144575804 -1.85141809693764  1 
-7.21279194058922 -1.19115892357701 -1.79903332144949  0.4789509 6.85864063176793 -1.16880048951504 -1.81530950222257  0.60921317 6.46878174925063 -1.13694561900202 -1.82282237157941  0.86973772 6.35000029960882 -1.12829044859092 -1.8266202997598  1 
-7.21279194058922 -1.23478719364924 -1.76701821192886  0.48097267 6.85951903880966 -1.2102607794843 -1.78583387182255  0.6107295 6.46921388027116 -1.17557943983702 -1.79628945031917  0.87024317 6.35000030560882 -1.16608700238616 -1.80098233854207  1 
-7.21279194058922 -1.2738600865051 -1.73654513248146  0.48291796 6.86035988184959 -1.24743792525012 -1.75783864149285  0.61218847 6.46962918129088 -1.21022896248279 -1.77116517912583  0.87072949 6.35000029860882 -1.19998609099628 -1.77673806039053  1 
-7.21279194058922 -1.32258304281932 -1.69691518559914  0.48547629 6.86145943490182 -1.29390762345731 -1.72143178276362  0.61410722 6.47017466331679 -1.25361698954361 -1.73851584657507  0.87136907 6.35000030360882 -1.24245652801352 -1.74524789089482  1 
-7.21279194058922 -1.36156047667065 -1.66327911600152  0.48767488 6.86239866394643 -1.33115839422663 -1.69057118229782  0.61575616 6.47064279833903 -1.28843038219716 -1.7109024652635  0.87191872 6.35000029960882 -1.27654247863251 -1.71864403563121  1 
-7.21279194058922 -1.39788942539618 -1.6301338504272  0.4898669 6.86332991799066 -1.36594352887883 -1.66020390185545  0.61740018 6.47110895636117 -1.32096730174258 -1.68380042197622  0.87246673 6.35000030760882 -1.30840676714598 -1.69256358039245  1 
-7.21279194058922 -1.43640313222548 -1.59288801365812  0.49236143 6.8643833990407 -1.40290073063421 -1.62613122423709  0.61927108 6.47163872238633 -1.35556668838596 -1.65347225453571  0.87309036 6.35000030160882 -1.34229977275582 -1.66341536900799  1 
-7.21279194058922 -1.47258275594392 -1.55687143994742  0.49480167 6.86540765508935 -1.43773316028866 -1.59313436766982  0.62110125 6.47215623041091 -1.38826972393927 -1.62407402313937  0.87370042 6.35000030160882 -1.37436364727877 -1.63515800666583  1 
-7.21279194058922 -1.51069777575429 -1.51667349203812  0.49756248 6.86655895414403 -1.47453081803645 -1.5563404129222  0.62317186 6.47274085343868 -1.42286924658266 -1.59136431758575  0.87439062 6.35000030160882 -1.40830251989078 -1.60375210217413  1 
-7.21279194058922 -1.54893282057036 -1.47370134799705  0.50055899 6.86779962320296 -1.51156425379545 -1.51705050505603  0.62541924 6.47337434346877 -1.45775088623945 -1.55652729193108  0.87513975 6.35000030160882 -1.44253690651682 -1.57034704858748  1 
-7.21279194058922 -1.58571909731761 -1.42962715190364  0.50368224 6.86908299826392 -1.54733140149429 -1.47678756914364  0.62776168 6.47403347350008 -1.49151634084322 -1.52091579523962  0.87592056 6.35000030160882 -1.475700256092 -1.53624261796761  1 
-7.21279194058922 -1.60913523842982 -1.40048629751953  0.50577362 6.86993686330448 -1.57018219857965 -1.45014558787822  0.62933021 6.47447418252101 -1.51314786087066 -1.49735467312053  0.8764434 6.35000030160882 -1.49696523310203 -1.51368582889622  1 
-7.21279194058922 -1.63232690253136 -1.3705894570995  0.50794213 6.87081759834631 -1.5928833556579 -1.42280348357954  0.6309566 6.47493059054269 -1.53468508889363 -1.47318757997265  0.87698553 6.35000030160882 -1.51815295810839 -1.49055888279774  1 
-7.21279194058922 -1.65327528952636 -1.34250516676557  0.51000127 6.87164958038583 -1.61345013063477 -1.39712308735978  0.63250095 6.47536345556325 -1.5542351238222 -1.45051674989585  0.87750032 6.35000030160882 -1.5373982540225 -1.46887876476799  1 
-7.21279194058922 -1.66967245930518 -1.31972095268338  0.51168799 6.87232797241805 -1.62959583440165 -1.37629006137027  0.63376599 6.47571765358007 -1.56961360355264 -1.43214322202315  0.877922 6.35000030160882 -1.55254729874204 -1.45131826293392  1 
-7.21279194058922 -1.68209263089511 -1.30199776284157  0.51301006 6.87285776844321 -1.64185193298378 -1.36008714160067  0.63475755 6.47599504259324 -1.58130299210786 -1.41786650934504  0.87825252 6.35000030160882 -1.56406762528922 -1.43768045428615  1 
-7.21279194058922 -1.68905019022558 -1.29192861736331  0.51376492 6.87315959245755 -1.6487327983106 -1.35087229316299  0.63532369 6.47615332860076 -1.58788041142027 -1.40973964595904  0.87844123 6.35000030160882 -1.57055458359734 -1.42991536991733  1 
-7.21279194058922 -1.69374917444877 -1.28506879603749  0.51428075 6.87336556046733 -1.65338963153179 -1.34458564086439  0.63571056 6.4762614526059 -1.59234291463223 -1.40418668869529  0.87857019 6.35000030160882 -1.57495915180654 -1.42460670166518  1 
-7.21279194058922 -1.6985628086774 -1.27797754470067  0.51481539 6.87357876847746 -1.65816616375866 -1.33808353655555  0.63611154 6.47637348661122 -1.59692587484991 -1.39844110842239  0.87870385 6.35000030160882 -1.57948445502148 -1.41911327440426  1 
-7.21279194058922 -1.70320018089766 -1.27108601537334  0.51533634 6.87378627548731 -1.66277581597761 -1.3317578832551  0.63650225 6.4764826176164 -1.60135773306041 -1.39284520015659  0.87883408 6.35000030160882 -1.58386336222947 -1.41376084415003  1 
-7.21279194058922 -1.70780726511649 -1.26417925904529  0.51585979 6.87399452449721 -1.66736164519542 -1.32541411095379  0.63689484 6.47659224262161 -1.60577300927012 -1.38722996288988  0.87896495 6.35000030160882 -1.58822788543677 -1.40838893289488  1 
-7.21279194058922 -1.71238402033387 -1.25725742671652  0.51638576 6.87420352950713 -1.67192475241216 -1.31905051565153  0.63728932 6.47670236162684 -1.61017466547919 -1.38159172562208  0.87909644 6.35000030160882 -1.59258151264356 -1.4029932126386  1 
-7.21279194058922 -1.71693040754981 -1.25032067338704  0.51691425 6.87441327751709 -1.67646424362778 -1.3126683893484  0.63768569 6.47681297363209 -1.61456050968751 -1.37593300035331  0.87922856 6.35000030160882 -1.59692168984971 -1.39757660138132  1 
-7.21279194058922 -1.7237009018714 -1.23989873889203  0.51771077 6.87472892453209 -1.68323658794944 -1.30306933189247  0.63828307 6.47697962164001 -1.62111680599891 -1.36741256194861  0.87942769 6.35000030160882 -1.60341384315807 -1.38941765499379  1 
-7.21279194058922 -1.73039762918947 -1.22943681339511  0.51851359 6.87504649854717 -1.68995122426837 -1.29342190043424  0.63888519 6.47714751264798 -1.62763449530849 -1.3588392055414  0.8796284 6.35000030160882 -1.60987313446487 -1.38120483860371  1 
-7.21279194058922 -1.73702035950404 -1.21893549589633  0.51932274 6.87536598956235 -1.69660858858458 -1.28372498597366  0.63949206 6.47731665065602 -1.63411536361631 -1.35021019813154  0.87983069 6.35000030160882 -1.61630172777021 -1.3729348442109  1 
-7.21279194058922 -1.74356886781507 -1.2083953863957  0.52013824 6.87568738657761 -1.70320675089798 -1.27398127051086  0.64010368 6.47748703566411 -1.64055498392218 -1.34153026371927  0.88003456 6.35000030160882 -1.62269449707385 -1.36461311081564  1 
-7.21279194058922 -1.7500646101236 -1.19784555089461  0.52095756 6.87600969659292 -1.70976512620948 -1.26421567304702  0.64071817 6.47765813867224 -1.6469706452269 -1.3328188553055  0.88023939 6.35000030160882 -1.62906811837658 -1.35625731041876  1 
-7.21279194058922 -1.75595167940323 -1.18813892243357  0.52171443 6.87630691060704 -1.71572344549249 -1.25521974461974  0.64128582 6.47781613067974 -1.65281526050451 -1.32478453792389  0.88042861 6.35000030160882 -1.6348793416526 -1.34854786705258  1 
-7.21279194058922 -1.79585494529853 -1.12144109426559  0.5269801 6.87836036270457 -1.75634201242177 -1.19311739567003  0.64523508 6.47891342573186 -1.69291481440914 -1.26904359527633  0.88174503 6.35000030160882 -1.67483234755026 -1.29497145550784  1 
-7.21279194058922 -1.83337161008047 -1.05109704792443  0.53269208 6.88056086180909 -1.7952353142691 -1.12708305853357  0.64951906 6.48010002778822 -1.73211287127094 -1.20928847743812  0.88317302 6.35000030160882 -1.71413296241694 -1.23737758477228  1 
-7.21279194058922 -1.86656446965705 -0.98098678697437  0.53855636 6.88279150591504 -1.83028678593395 -1.06071362538119  0.65391727 6.4813142918459 -1.76820974198545 -1.14872232956138  0.88463909 6.35000031260882 -1.75055322114681 -1.17883401099161  1 
-7.21279194058922 -1.89891027019339 -0.902836150332414  0.5453101 6.88532523203538 -1.86512566858871 -0.986131093578711  0.65898257 6.48270773091208 -1.80492805872948 -1.08010237930211  0.88632752 6.35000030060882 -1.78784490891807 -1.11232406783256  1 
-7.21279194058922 -1.90642570455036 -0.884124621733664  0.54695552 6.88593677706443 -1.87329119197655 -0.968169070265561  0.66021664 6.48304641592817 -1.81362400814251 -1.06346597951192  0.88673888 6.35000030160882 -1.79670454133888 -1.09616322806496  1 
-7.21279194058922 -1.91373568989756 -0.8653580443223  0.54861903 6.88655279909369 -1.8812737323557 -0.950116826968126  0.66146428 6.48338850394441 -1.82217549954869 -1.04670865971599  0.88715476 6.35000030060882 -1.8054316117534 -1.0798727922912  1 
-7.21279194058922 -1.93071353370397 -0.82038468641618  0.55265511 6.88803805716424 -1.89994085324234 -0.906693060915608  0.66449133 6.48421716098377 -1.84233742050633 -1.00622788379326  0.88816378 6.35000030260882 -1.82605691673305 -1.04046361441937  1 
-7.21279194058922 -1.94647757645272 -0.775094034394989  0.55680061 6.88955008523605 -1.91750861407677 -0.862745514928211  0.66760046 6.48506632302411 -1.86161538542198 -0.965034393986672  0.88920015 6.35000030060882 -1.84586494567388 -1.0002873635111  1 
-7.21279194058922 -1.96211743819557 -0.725654608756743  0.56142381 6.89122045431539 -1.93521102491759 -0.814529736028085  0.67106786 6.48601101106898 -1.88140184536179 -0.919586921338033  0.89035595 6.35000030360882 -1.86629662664433 -0.955879660721845  1 
-7.21279194058922 -1.97940782101682 -0.664438587379138  0.56729435 6.893317542415 -1.95515730886498 -0.754491761226434  0.67547076 6.48720704012579 -1.90419501544441 -0.862631920822816  0.89182359 6.35000030160882 -1.88997241576887 -0.900109907012924  1 
-7.21279194058922 -1.99133452258331 -0.618629322603315  0.57178807 6.89490485449039 -1.96914275752926 -0.709300353779957  0.67884105 6.48811990816914 -1.92048515821815 -0.819458602092193  0.89294702 6.35000030160882 -1.90698155157676 -0.857735863910265  1 
-7.21279194058922 -2.00382574917661 -0.565059282488874  0.57716446 6.89678389257964 -1.98409092023926 -0.656188045687258  0.68287335 6.48920907422088 -1.93830261206443 -0.768412616827639  0.89429112 6.35000030160882 -1.92569673646568 -0.807535389635871  1 
-7.21279194058922 -2.01617025276294 -0.503677672923405  0.58349476 6.89896874568342 -1.99928745796105 -0.594994305740712  0.68762107 6.49048729328159 -1.95698884495198 -0.709201234015249  0.89587369 6.35000030160882 -1.94547816440525 -0.749175207583911  1 
-7.21279194058922 -2.0265826262575 -0.442287516507529  0.59001339 6.90118789078882 -2.01257027259195 -0.533436166546857  0.69251004 6.49179883034388 -1.97394479875734 -0.649199362855314  0.89750335 6.35000030160882 -1.96359245826563 -0.689892949298155  1 
-7.21279194058922 -2.03508360666128 -0.380954928294387  0.59672291 6.90344006189579 -2.02393154713159 -0.471591357339387  0.69754218 6.49314380940777 -1.98912675847845 -0.588479094961256  0.89918073 6.35000030160882 -1.97998559004426 -0.629757236271862  1 
-7.21279194058922 -2.04169628297536 -0.319744240667036  0.60362593 6.90572396000427 -2.03336748957977 -0.409538590432038  0.70271945 6.49452235147324 -2.00249359911334 -0.527117169666721  0.90090648 6.35000030160882 -1.99460568073868 -0.568842395628563  1 
-7.21279194058922 -2.04644597220096 -0.258717925178441  0.61072515 6.9080382811142 -2.04087854393652 -0.34735591380852  0.70804386 6.49593457454032 -2.01400961666032 -0.465191890105428  0.90268129 6.35000030160882 -2.00740638434668 -0.507224837511886  1 
-7.21279194058922 -2.04936009633938 -0.19793652266148  0.61802328 6.9103817022255 -2.04646921020207 -0.285121749692556  0.71351746 6.497380590609 -2.02364242011785 -0.40278562933129  0.90450582 6.35000030160882 -2.01834437986621 -0.444986134795706  1 
-7.21279194058922 -2.050468052392 -0.137458581608932  0.62552313 6.91275290333813 -2.05014811337681 -0.222913307217813  0.71914235 6.4988605096793 -2.03136553848468 -0.339981708208264  0.90638078 6.35000030160882 -2.0273825162955 -0.382209341503969  1 
-7.21279194058922 -2.04980108436032 -0.0773406045034814  0.63322756 6.91515055045201 -2.05192785246134 -0.160807571267949  0.72492067 6.5003744337512 -2.03715626675973 -0.276866837790469  0.90830689 6.35000030160882 -2.03448725163295 -0.318982007460832  1 
-7.21279194058922 -2.0473921572459 -0.0176370020477126  0.64113948 6.91757331756709 -2.05182495345645 -0.0988797975065381  0.73085461 6.50192246282473 -2.04099820994221 -0.213527961462033  0.91028487 6.35000030160882 -2.0396317388773 -0.255392437090489  1 
-7.21279194058922 -2.04327582705039 0.0415999448658913  0.64926186 6.92001987168329 -2.04985974736311 -0.0372044473271163  0.7369464 6.50350468889988 -2.04287906803154 -0.150054644967213  0.91231547 6.35000030160882 -2.04279320202747 -0.191532650437312  1 
-7.21279194058922 -2.03748811777549 0.10032011582495  0.65759776 6.92248889280056 -2.04605621418245 0.0241462190368838  0.74319832 6.50512119997666 -2.04279310202746 -0.0865358964902343  0.91439944 6.35000030160882 -2.04395595008269 -0.127494595025668  1 
-7.21279194058922 -2.03006639242298 0.158475574327186  0.66615027 6.92497905891884 -2.04044188291578 0.0851012601720928  0.7496127 6.50677207505507 -2.04073885592989 -0.0230625182154108  0.91653757 6.35000030160882 -2.04310867804245 -0.063373067760059  1 
-7.21279194058922 -2.02104923199468 0.216020584270427  0.67492253 6.92748906403806 -2.03304759056457 0.145592350945265  0.7561919 6.50845738813512 -2.03672153273908 0.040276079453011  0.91873063 6.35000030160882 -2.04024739590655 0.000738103995058057  1 
-7.21279194058922 -2.0104763134925 0.272911619802606  0.68391778 6.93001760615816 -2.02390738413044 0.205552948613241  0.76293834 6.51017720521681 -2.03075065445548 0.10338954874074  0.92097945 6.35000030160882 -2.03537264767501 0.0647431624351351  1 
-7.21279194058922 -1.99838829191835 0.32910736884176  0.69313929 6.93256340227908 -2.01305824661513 0.264919477312999  0.76985447 6.51193158530014 -2.02284233607985 0.166189778463591  0.92328482 6.35000030160882 -2.02849235534821 0.128548250745714  1 
-7.21279194058922 -1.9848266812742 0.384568730516034  0.7025904 6.93512517340075 -2.00053993402054 0.323630528681625  0.7769428 6.51372057738511 -2.01301688861317 0.228588570687374  0.9256476 6.35000030160882 -2.01961894492675 0.19205851643229  1 
-7.21279194058922 -1.96614899338706 0.452699748122083  0.71469553 6.93833829755337 -1.9829001001827 0.39595706262695  0.78602165 6.51599865149331 -1.99838156791803 0.305928396030818  0.92867388 6.35000030160882 -2.00606039428275 0.270962786250041  1 
-7.21279194058922 -1.94101673819334 0.53275471061449  0.7296946 6.94221722373761 -1.95861032702899 0.481140171552931  0.79727095 6.51880082462641 -1.97711183690777 0.397570998303608  0.93242365 6.35000030060882 -1.98589130332477 0.364690056691847  1 
-7.21279194058922 -1.9078436066177 0.623775000747721  0.74789857 6.94677921995429 -1.92587265047404 0.578129982129699  0.81092393 6.52217161978651 -1.94703825147935 0.502489894536988  0.93697464 6.35000030260882 -1.95680945794346 0.47225357529084  1 
-7.21279194058922 -1.86485454657583 0.724528900333275  0.76969916 6.9520428432043 -1.88271813542431 0.685494116539222  0.82727437 6.52616555297622 -1.90578283451982 0.619106901355999  0.94242479 6.35000030060882 -1.91628365701859 0.5920591599213  1 
-7.21279194058922 -1.81728047431619 0.821448151516692  0.79252588 6.95733426445563 -1.83433903312642 0.788784017855229  0.84439441 6.53029826817251 -1.85809152625461 0.731807170038974  0.94813147 6.35000030260882 -1.86887279776669 0.70812623748419  1 
-7.21279194058922 -1.7654778748557 0.914371303470304  0.81640976 6.96264450170785 -1.7811713746011 0.887733515735077  0.86230732 6.53456945337538 -1.80443814870621 0.840106778102929  0.95410244 6.35000030060882 -1.8150406642098 0.819896683623001  1 
-7.21279194058922 -1.70980088021118 1.00316732164789  0.84138281 6.96796488496056 -1.72365747486933 0.982129213448632  0.88103711 6.5389786175848 -1.74534151189927 0.943598028648499  0.9603457 6.35000030260882 -1.75530927037271 0.926891169014966  1 
-7.21279194058922 -1.65059899139924 1.08773399866459  0.86747799 6.97328703021335 -1.66223963695214 1.07180589690805  0.90060849 6.54352506280075 -1.68134518885961 1.04194057648952  0.9668695 6.35000030060882 -1.69023573928189 1.02869898086058  1 
-7.21279194058922 -1.5584267750213 1.20632143929719  0.90835484 6.98117315858792 -1.56598743038041 1.19766339688596  0.93126613 6.55052481813322 -1.57920575900825 1.1808549450876  0.97708871 6.35000030260882 -1.58549732230708 1.17314407372135  1 
-7.21279194058922 -1.47453201303651 1.29793958164882  0.94490001 6.98779579890248 -1.47857271022843 1.29377007045078  0.95867501 6.55665999442462 -1.48596425957951 1.28544255805524  0.986225 6.35000029960882 -1.48956503675054 1.28150641286829  1 
-7.21279194058922 -1.40344449766003 1.36623002689244  0.97581968 6.99310997815488 -1.40487304372789 1.36469978381976  0.98186476 6.56176269166699 -1.40756566485578 1.36157572767137  0.99395492 6.35000030660882 -1.40890616991945 1.36006180859947  1 
-7.21279194058922 -1.34821673503686 1.41444126218235  1 6.99709403034412 -1.34787589902067 1.41444126218235  1 6.56569821085392 -1.34719422898829 1.41444126218235  1 6.35000030160882 -1.3468533929721 1.41444126218235  1 
-
-0 5
-0.29796632 1
-0.59593265 1
-0.89389897 1
-1.19186529 1
-1.48983162 1
-1.78779794 1
-2.08576426 1
-2.23474742 1
-2.53271375 1
-2.83068007 1
-2.97966323 1
-3.12864639 1
-3.27762955 1
-3.42661271 1
-3.57559588 1
-3.72457904 1
-3.8735622 1
-4.02254536 1
-4.17152852 1
-4.32051168 1
-4.46949485 1
-4.61847801 1
-4.76746117 1
-4.91644433 1
-5.06542749 1
-5.36339381 1
-5.8103433 1
-5.88483488 1
-6.07106383 1
-6.10830962 1
-6.14555541 1
-6.1828012 1
-6.89047122 1
-6.92771701 1
-6.9649628 1
-7.03945438 1
-7.11394596 1
-7.15119175 1
-7.16981465 1
-7.30017491 1
-7.32810926 1
-7.3560436 1
-7.39328939 1
-7.51433821 1
-7.56089545 1
-7.59814124 1
-7.63538703 1
-7.67263282 1
-7.72151792 1
-7.7471244 1
-7.75489856 1
-7.76489392 1
-7.77377867 1
-7.78266343 1
-7.79154819 1
-7.80043295 1
-7.80931771 1
-7.81820247 1
-7.82708723 1
-7.8537415 1
-7.86262626 1
-7.87151102 1
-7.88039578 1
-7.90705006 1
-7.91149244 1
-8.20913186 1
-8.22690137 1
-8.24467089 1
-8.28020993 1
-8.29797944 1
-8.31574896 1
-8.4579051 1
-8.49344414 1
-8.52898317 1
-8.60006124 1
-8.67113931 1
-8.74221738 1
-8.81329545 1
-8.88437353 1
-8.9554516 1
-9.02652967 1
-9.09760774 1
-9.16868581 1
-9.23976388 1
-9.31084195 1
-9.38192002 1
-9.45299809 1
-9.52407616 1
-9.59515423 1
-9.6662323 1
-9.73731037 1
-9.80838844 1
-9.87946651 1
-10.02162265 1
-10.16377879 1
-10.30593493 1
-10.44809107 1
-10.59024722 1
-10.73240336 1
-10.8745595 1
-11.01671564 1
-11.44318406 5
-
-0 3
-0.5 1
-1 3
-
-9 0 0 0 0 3 2 13 4 10 3 18.7445520703184 -16.2691444627429 0.30242823434457  17.4971732610711 -13.7852654247649 0.0998317797017549  15.0024156525765 -8.81750736180911 -0.305361129593875  13.7550368433292 -6.33362832883119 -0.507957584226689  
-18.7583363009731 -16.2691455127429 0.304311143584003  17.5153967719367 -13.785266824765 0.102321118299992  15.0295177038638 -8.81750943980921 -0.30165893222803  13.7865781648273 -6.3336307468313 -0.503648957492041  
-18.7992809629179 -16.269148442743 0.309662271148168  17.5695280345078 -13.7852706947652 0.109396452826052  15.1100221676875 -8.81751518880948 -0.291135183808179  13.8802692292774 -6.33363743883162 -0.491401002120294  
-18.84185401494 -16.2691508227432 0.314492708177601  17.6258116971811 -13.7852738347653 0.115779607059236  15.1937270716633 -8.8175198628097 -0.281646595197495  13.9776847539044 -6.33364287683188 -0.48035969631586  
-18.8877347071192 -16.2691528827433 0.319133360768021  17.6864690000622 -13.7852765547655 0.121916604180728  15.283937585948 -8.81752391580989 -0.272516908983858  14.082671878891 -6.3336475948321 -0.469733665581151  
-18.944933569836 -16.2691550427434 0.324472404451612  17.7620872836538 -13.7852794247656 0.12897472174597  15.3963947012895 -8.81752817481009 -0.262020643675312  14.2135484051073 -6.33365255083234 -0.457518326380953  
-19.047023094685 -16.2691567627434 0.331604279550357  17.8970587600646 -13.7852816947657 0.138403684163822  15.5971300908239 -8.81753154981025 -0.247997506619249  14.4471657562035 -6.33365647883253 -0.441198102015784  
-19.1322040487309 -16.2691554627434 0.334513926468558  18.0096681254133 -13.7852799747656 0.14225101627656  15.7645962587781 -8.81752900281013 -0.242274804087435  14.6420603254605 -6.33365351483238 -0.434537714289433  
-19.1980011118561 -16.2691533227433 0.335486525904754  18.0966609195452 -13.7852771447655 0.143536433647614  15.8939805249235 -8.81752478380993 -0.240363750856665  14.7926403326127 -6.33364860383215 -0.432313843113805  
-19.2413995939174 -16.2691515927432 0.335780929208738  18.1540290222701 -13.7852748647654 0.143926154446125  15.9792878889754 -8.81752139180977 -0.2397833950791  14.8919173173281 -6.33364465683196 -0.431638169831712  
-19.3040323068923 -16.269148102743 0.33508453020566  18.2368391662033 -13.7852702347652 0.143005031422374  16.1024528648254 -8.81751451380945 -0.241153966144198  15.0352597141365 -6.33363665183158 -0.433233464937484  
-19.3473811189512 -16.2691449827429 0.333823109855746  18.2941463689253 -13.785266114765 0.141337528893172  16.1876768588734 -8.81750837980915 -0.243633633051976  15.1344420988474 -6.33362951383125 -0.43611921401455  
-19.3666489898664 -16.2691434527428 0.333108428571801  18.3196195401352 -13.7852640947649 0.140392680868294  16.2255606506727 -8.81750538180901 -0.245038814538719  15.1785312109415 -6.33362602483108 -0.437754562232225  
-
-0 4
-0.06695952 1
-0.19874124 1
-0.20615931 1
-0.28878375 1
-0.47512806 1
-0.69874124 2
-0.79146093 1
-0.90736053 1
-1.00016043 4
-
-0 3
-5.35089702 1
-10.70179404 3
-
-9 0 0 0 0 3 2 14 4 11 3 13.7551732833356 -6.33367429383337 -0.507938351705776  13.2172205577843 -5.13568794493208 -0.626233644924501  12.1413151166815 -2.73971524812949 -0.86282423137195  11.6033624011301 -1.54172890022819 -0.981119524590675  
-13.8487526177804 -6.33368146883371 -0.49515648972867  13.3251534529108 -5.13408364685588 -0.611552162677168  12.2779551131715 -2.7348880029002 -0.844343508574163  11.7543559483019 -1.53529018092237 -0.96073918152266  
-13.946053502402 -6.33368741083399 -0.483559831317858  13.4373873882416 -5.13245597177857 -0.598255595735615  12.4200551699209 -2.72999309466771 -0.827647124571127  11.9113890557606 -1.52876165561228 -0.942342888988883  
-14.0871638491043 -6.3336937518343 -0.46927762028949  13.6001138359707 -5.13016742766987 -0.581923291859872  12.6260138297034 -2.72311477934101 -0.807214635000636  12.1389638165698 -1.51958845517658 -0.919860306581018  
-14.1814603935832 -6.33369725283446 -0.460554341775156  13.7088657111362 -5.12866043159829 -0.571959959706639  12.7636763562421 -2.71858678912594 -0.794771195569604  12.291081673795 -1.51354996788976 -0.906176813501087  
-14.3197623001522 -6.33370031183461 -0.45007511454742  13.8684021487137 -5.12651688149647 -0.56002712134986  12.9656818358368 -2.71215002082021 -0.779931134954739  12.5143216743984 -1.50496659148207 -0.889883141757179  
-14.461997306908 -6.33370123583465 -0.441773539863116  14.0324498765056 -5.12439065839548 -0.550625048003285  13.1733550257008 -2.70576950351715 -0.768328064293623  12.7438075952984 -1.49645892507798 -0.877179572443792  
-14.6049677636987 -6.33369993283459 -0.435917894104988  14.1973643243386 -5.12233486229784 -0.544049363630957  13.3821574356183 -2.69960472122434 -0.760312302662895  12.9745539962582 -1.48823965068759 -0.868443772188864  
-14.7005230482373 -6.33369756583448 -0.433671045288268  14.3075330395713 -5.12102093223543 -0.541580913203712  13.5215530222393 -2.69566766403734 -0.757400649044599  13.1285630035733 -1.48299103043829 -0.865310516960042  
-14.7960859627763 -6.33369444883433 -0.432259705141233  14.4177110148045 -5.11973741717447 -0.540073261732102  13.6609611088608 -2.69182335285474 -0.75570037491384  13.282586160889 -1.47786632019488 -0.863513931494709  
-14.891557237311 -6.33369059983415 -0.431668949883174  14.5278180000343 -5.11848420411494 -0.539511857455437  13.8003395354809 -2.68807141267654 -0.755197672619963  13.4366003082042 -1.47286501695733 -0.863040580202226  
-15.0348614941176 -6.33368260583377 -0.433253927668456  14.693063507883 -5.1166999900302 -0.541519173950779  14.009467525414 -2.68273475942306 -0.758049666505425  13.6676695291794 -1.46575214461949 -0.866314912787748  
-15.1305883186643 -6.33367577683344 -0.435972591527586  14.8035063031288 -5.11557325697668 -0.544764356224917  14.1493422820577 -2.67936821926316 -0.76234788560958  13.8222602665221 -1.46126570040639 -0.871139650306911  
-15.178436250937 -6.33367198983326 -0.437746756651854  14.8586968057502 -5.11502808695079 -0.546862668744582  14.2192179353766 -2.67774027918583 -0.765094492920037  13.8994785001898 -1.45909637530336 -0.874210405012764  
-
-0 4
-0.19866102 1
-0.20607909 1
-0.29814751 1
-0.39778789 1
-0.49780437 1
-0.59782084 1
-0.69866102 2
-0.79857637 1
-0.89928819 1
-1 4
-
-0 3
-1.38127666 1
-2.76255331 3
-
-9 0 0 0 0 3 2 31 4 29 3 18.6177012342933 -16.2691402927427 0.240318612104521  17.329478313106 -13.7852610447647 0.017715015531418  14.7530324907314 -8.81750256380888 -0.427492177594788  13.4648095695441 -6.33362332183095 -0.650095774167891  
-18.6202984044167 -16.2691398727426 0.243840170321786  17.3321907732348 -13.7852614447648 0.0227678249014136  14.7559755208712 -8.81750458180897 -0.419376865929331  13.4678678896894 -6.33362614983109 -0.640449211339704  
-18.6258652646811 -16.2691391127426 0.25080230947247  17.3386552235419 -13.7852616047648 0.0327259340443984  14.7642351512635 -8.81750659680907 -0.403426816831745  13.4770251201243 -6.33362909183123 -0.621503192259816  
-18.6325841650002 -16.2691384527426 0.257960568982469  17.3474217539583 -13.7852607747647 0.0425289345700159  14.7770969518744 -8.81750543480901 -0.38833433426489  13.4919345408325 -6.33362776283116 -0.603765968687343  
-18.6373554452268 -16.2691380727426 0.262590128862361  17.3538282942626 -13.7852599947647 0.0485226308647012  14.786773982334 -8.81750382280894 -0.379612365130619  13.5032468213698 -6.33362573883107 -0.593679863128279  
-18.6404890053757 -16.2691378527425 0.265511554271122  17.3580750844643 -13.7852594347647 0.052225352240571  14.7932472526415 -8.81750260880888 -0.37434705183053  13.5108333417301 -6.33362419383099 -0.587633253851081  
-18.6435006555187 -16.2691376827425 0.268120105295021  17.3622120646608 -13.7852588947646 0.0554546675039552  14.7996348729449 -8.81750132080882 -0.369876208068176  13.518346272087 -6.33362253383091 -0.582541645859242  
-18.6468942456799 -16.2691375227425 0.270891997776679  17.3668998048834 -13.7852583347646 0.0588556948354954  14.8069109032905 -8.81749994780876 -0.365216911076872  13.526916452494 -6.33362075583083 -0.577253214018055  
-18.6487194357666 -16.2691374527425 0.272314874894262  17.3694300450036 -13.7852580547646 0.0605979250182469  14.8108512534777 -8.81749926580872 -0.362835974753783  13.5315618627147 -6.33361986983079 -0.574552924629798  
-18.6505503258536 -16.2691373927425 0.273687459689456  17.3719704751243 -13.7852578147646 0.062279827898133  14.8148107736657 -8.81749865580869 -0.360535435664514  13.5362309229364 -6.33361907683075 -0.571943067455837  
-18.6521133059278 -16.2691373427425 0.274840819244238  17.3741395952273 -13.7852576147646 0.0636910559151627  14.8181921838263 -8.81749815780867 -0.358608470762988  13.5402184731258 -6.33361842883072 -0.569758234102063  
-18.6552853560785 -16.2691372727425 0.277089220751031  17.3785405154363 -13.7852572747646 0.0664332813954114  14.8250508341521 -8.81749727980863 -0.354878597275828  13.54830599351 -6.33361728283066 -0.565534536611448  
-18.6587524162431 -16.2691372227425 0.279366649359203  17.3833310056639 -13.7852570247645 0.0691723280955091  14.8324881945054 -8.8174966218086 -0.351216314461879  13.5570667839261 -6.33361642083062 -0.561410635735573  
-18.6637665864813 -16.2691372027425 0.282433546044873  17.3902079759905 -13.7852568447645 0.0727863671571668  14.8430907550089 -8.81749612380857 -0.346507990598246  13.5695321445182 -6.33361576283059 -0.556155169465952  
-18.6687341567173 -16.2691372427425 0.285192079515896  17.3969642563114 -13.7852569047645 0.0759679023282816  14.8534244454998 -8.81749620980858 -0.342480452056948  13.5816545450939 -6.3336158638306 -0.551704629264562  
-18.6744881669906 -16.2691373727425 0.287987551998674  17.4047306766803 -13.7852573247646 0.0792113110423352  14.8652156960598 -8.81749722480862 -0.338341170890342  13.5954582057496 -6.33361717383066 -0.547117411856681  
-18.6782605771697 -16.2691375027425 0.289648343587557  17.4098026369212 -13.7852577747646 0.0811867241661623  14.8728867764242 -8.81749832880868 -0.335736514666628  13.6044288461757 -6.33361860583073 -0.544198134078023  
-18.681949687345 -16.2691376427425 0.291166970869688  17.4147527371563 -13.7852583147646 0.0830406451342188  14.8803588467791 -8.81749967980874 -0.33321200633672  13.6131618965905 -6.33362035983081 -0.54133833208219  
-18.686287057551 -16.2691378327425 0.292818185188117  17.4205580774321 -13.7852590747646 0.0851174225328604  14.8891001371943 -8.81750156980883 -0.330284102807652  13.6233711670754 -6.33362281583093 -0.537984865472909  
-18.6925943678506 -16.2691381727426 0.294920136737954  17.4289467678305 -13.7852603247647 0.0878494822426263  14.9016515777904 -8.81750461980898 -0.326291826758029  13.6380039777704 -6.33362676783111 -0.533362481263357  
-18.6974175980796 -16.2691384927426 0.296262409461709  17.435294278132 -13.7852612847647 0.0896311377172504  14.9110476282367 -8.81750685380908 -0.323631405791666  13.6489243082891 -6.33362963983125 -0.530262677546124  
-18.701068188253 -16.2691387627426 0.297169175854778  17.4400602883584 -13.7852619347648 0.0908208745937599  14.9180444985691 -8.81750829580915 -0.321875727918276  13.6570365986744 -6.33363147483134 -0.528224029169294  
-18.7033320583606 -16.2691389327426 0.297712498160584  17.4430146584987 -13.7852623347648 0.0915303367674575  14.922379848775 -8.81750914280919 -0.320833986028796  13.6620624489131 -6.33363254783139 -0.527016147431923  
-18.7071015885396 -16.2691392227426 0.298548915300312  17.4479303587322 -13.7852629347648 0.0926127374988688  14.9295878991173 -8.81751035980925 -0.319259618094017  13.6704166693099 -6.33363407283146 -0.525195795895461  
-18.7117872887622 -16.2691396127426 0.299476601924375  17.4540422790225 -13.7852636047649 0.0938254498764695  14.9385522695431 -8.81751157980931 -0.317476854239341  13.6808072598034 -6.33363556983153 -0.523128006287246  
-18.7172175590201 -16.2691400927427 0.300395867938037  17.4611353193594 -13.7852642547649 0.09508068571609  14.948970830038 -8.81751257180935 -0.315549678737805  13.6928885903773 -6.33363673083159 -0.520864860959752  
-18.7218854292418 -16.2691405427427 0.301035421558415  17.46725491965 -13.7852647047649 0.0960665943929182  14.9579939004666 -8.81751304380938 -0.313871059958075  13.7033633908748 -6.33363721083161 -0.518839887123571  
-18.7248479293825 -16.2691408427427 0.301370188724315  17.4711538198352 -13.7852649447649 0.0966679633014817  14.9637656007407 -8.81751315480938 -0.312736487524185  13.7100714911934 -6.33363725983161 -0.517438712957019  
-18.732058989725 -16.2691415727427 0.302126715100248  17.4806542102865 -13.7852654647649 0.0981055252097622  14.9778446414094 -8.81751323080939 -0.30993685456121  13.7264398519709 -6.33363711583161 -0.513958044451696  
-18.7384215700272 -16.2691423027428 0.302450094075608  17.4890912006872 -13.7852655647649 0.0992046250919666  14.9904304720072 -8.81751208480933 -0.307286312875316  13.7411001026672 -6.33363534583152 -0.510531781868957  
-18.7446509103231 -16.2691430827428 0.30243477163488  17.4973043310773 -13.7852647247649 0.099845824882422  15.0026111725858 -8.81750803280914 -0.305332068632494  13.75526459334 -6.33362968383125 -0.507921015384952  
-
-0 4
-0.09024672 1
-0.18349731 1
-0.20068779 1
-0.22510119 1
-0.2705385 1
-0.28222558 1
-0.31500417 1
-0.31810221 1
-0.3293363 1
-0.3550207 1
-0.3982536 1
-0.41483775 1
-0.47629892 1
-0.51546084 1
-0.54650093 1
-0.56081663 1
-0.59701884 1
-0.64099837 1
-0.69513353 1
-0.69696796 1
-0.71554896 1
-0.74137678 1
-0.77402315 1
-0.81142183 1
-0.8526086 1
-0.86975827 1
-0.87223775 1
-1.0006874 4
-
-0 3
-23.12299448 1
-46.24598896 3
-
-9 0 0 0 0 3 3 19 33 17 31 19.4649687145364 -16.2690729827395 0.155572182299282  19.4383240532708 -16.2690729127395 0.155925567686067  19.3783694704231 -16.2690723727394 0.15621997389005  19.3050875669424 -16.2690712227394 0.156128143365689  19.2451328240947 -16.2690704527393 0.156501618733428  19.1960397617629 -16.2690699827393 0.157155131684468  19.152039759673 -16.2690698827393 0.158326525030106  19.0958831370057 -16.2690702727393 0.16077116238622  19.0512026348835 -16.2690711127394 0.163627565061892  19.0116798130063 -16.2690724827394 0.16726097540447  18.9968209923005 -16.2690731027395 0.16880633010787  18.9541744602749 -16.2690749627396 0.173376626924947  18.9143585983838 -16.2690775927397 0.179170758230154  18.8725101763961 -16.2690781327397 0.182217963684888  18.8556045855931 -16.2690783027397 0.183388212280472  18.8326370245022 -16.2690781327397 0.184446664990746  18.8112069034843 -16.2690775827397 0.184985178986324  18.7990130629052 -16.2690772027397 0.185225269537728  18.7909728725233 -16.2690769127396 0.185346944143507  18.7816649620812 -16.2690765427396 0.185434786117679  18.7698980415223 -16.2690760327396 0.185534242252403  18.7561294408683 -16.2690754127396 0.185658239418293  18.7417047001832 -16.2690749727396 0.186282049827922  18.732057689725 -16.2690748227396 0.186999616222005  18.7190712991081 -16.2690748027396 0.188340101045674  18.7006776382345 -16.2690753027396 0.191324906077445  18.6851232574957 -16.2690766327396 0.195669437073799  18.6691777067383 -16.2690786327397 0.201363302914243  18.6606987863356 -16.2690800827398 0.205167473044932  18.6507599658635 -16.2690825227399 0.211047813654233  18.6374974252336 -16.2690861027401 0.219520027926641  18.6257833946772 -16.2690910827403 0.230482785097344  18.6177078042936 -16.2690957227405 0.240354853816242  
-19.4620202243963 -16.2690737127395 0.160892476841982  19.4355596131395 -16.2690736827395 0.161307570771698  19.3760187603115 -16.2690732127395 0.161745475152497  19.3032420168548 -16.2690721427394 0.161814046885754  19.2436993340266 -16.2690714127394 0.162287220178229  19.1949433717108 -16.2690709827394 0.163003467872249  19.1512459396353 -16.2690708727394 0.164203269379236  19.0954761769864 -16.2690712527394 0.166644454165186  19.0511035248788 -16.2690720427394 0.169460988038965  19.0118509230144 -16.2690733527395 0.173016635837849  18.9970932923135 -16.2690739427395 0.17452601363954  18.9547367403016 -16.2690757127396 0.17898791994147  18.9151874284231 -16.2690782327397 0.184624793339207  18.8736292164492 -16.2690787027397 0.1875869242099  18.8568410156518 -16.2690788527397 0.188724298963923  18.8340344245686 -16.2690786527397 0.189751554312715  18.8127547935579 -16.2690780927397 0.190271561467414  18.8006465229827 -16.2690777027397 0.190502522768384  18.7926627126035 -16.2690774127397 0.190618983243915  18.7834199021645 -16.2690770327397 0.190701944347856  18.7717351916095 -16.2690765327396 0.190795230142287  18.7580626109601 -16.2690759027396 0.190910932257782  18.7437390602798 -16.2690754527396 0.191510163486244  18.7341600998248 -16.2690752827396 0.192201845289097  18.7212658892124 -16.2690752427396 0.193495836030559  18.7030021783449 -16.2690757027396 0.196381012377597  18.6875466676108 -16.2690769627397 0.200584823007267  18.6716901468576 -16.2690788627397 0.206096011329035  18.6632514564568 -16.2690802527398 0.209779028963969  18.6533477559864 -16.2690826027399 0.21547368350445  18.6401270253585 -16.2690860427401 0.223678914114178  18.6284214448025 -16.2690908427403 0.234299087538609  18.6202961544166 -16.2690953127405 0.243862286492837  
-19.456013454111 -16.2690752127396 0.171731171386793  19.4299365928724 -16.2690752427396 0.17226588859219  19.3712583800854 -16.2690749327396 0.172982426556224  19.2995349266787 -16.2690740427395 0.173361023724206  19.2408515238914 -16.2690734127395 0.174023599155677  19.192798481609 -16.2690730227395 0.174856428765234  19.1497319595634 -16.2690729327395 0.176104044864493  19.0947688869528 -16.2690732627395 0.178525357359499  19.0510381448757 -16.2690739727395 0.181250448508934  19.0123491230381 -16.2690751627396 0.184638607609863  18.9978025423472 -16.2690756927396 0.186071277747911  18.9560509203641 -16.2690772927397 0.190302562958886  18.917057928512 -16.2690795827398 0.195609862830969  18.8761047465668 -16.2690799227398 0.198389097702976  18.8595612757811 -16.2690800227398 0.199455632383634  18.8370901847137 -16.2690797727398 0.200414089249158  18.8161241837179 -16.2690791827398 0.200891503401834  18.8041942831513 -16.2690787827397 0.201101082821788  18.7963279627776 -16.2690784927397 0.201205084856728  18.7872208623451 -16.2690781127397 0.201275975070095  18.7757075217982 -16.2690775927397 0.201353999823801  18.7622350911583 -16.2690769627397 0.201449651708345  18.748122460488 -16.2690764927396 0.201995512494272  18.7386853100398 -16.2690763027396 0.202632259564515  18.7259831494364 -16.2690762227396 0.203828572091337  18.7079902285818 -16.2690765827396 0.206506582828536  18.6927414278575 -16.2690777027397 0.210420050454416  18.6770718971133 -16.2690794127398 0.215555202978322  18.6687182267165 -16.2690806727398 0.218989270191432  18.6588898662497 -16.2690828227399 0.224303015863821  18.645759455626 -16.2690859827401 0.231960787337546  18.6340760250711 -16.2690904127403 0.241879614608665  18.6258536746805 -16.2690945427405 0.250810657642866  
-19.4494429037989 -16.2690768527396 0.183587167219922  19.4238052125812 -16.2690769627397 0.184238688690868  19.366114299841 -16.2690768427396 0.185228407397877  19.2955964064916 -16.2690761427396 0.185907500190132  19.237896603751 -16.2690756327396 0.186745649799942  19.1906482515068 -16.2690753127396 0.187680122914327  19.1483039394956 -16.2690752427396 0.188956844974968  19.0942641669288 -16.2690755427396 0.191326815377536  19.0512681748866 -16.2690761727396 0.1939283133411  19.0132245430797 -16.2690772227397 0.197112353402334  18.9989197124002 -16.2690777027397 0.198453243316023  18.95786104045 -16.2690791227398 0.202409654393942  18.9195059086283 -16.2690811627399 0.207335228287894  18.879245076716 -16.2690813727399 0.209892312519349  18.8629816459435 -16.2690814227399 0.210872438205903  18.8408942448944 -16.2690811227399 0.211743551417279  18.8202869239156 -16.2690805127398 0.212163098567206  18.8085609733587 -16.2690801027398 0.212342870765745  18.8008290529914 -16.2690798127398 0.212429011379836  18.7918771625662 -16.2690794227398 0.212481792082343  18.7805598620287 -16.2690789027397 0.212536919134962  18.7673164013997 -16.2690782627397 0.212603372378118  18.7534449907408 -16.2690777727397 0.213083251240911  18.7441699903003 -16.2690775627397 0.213654830488059  18.7316873397074 -16.2690774327397 0.214737474109482  18.7140040088675 -16.2690776927397 0.217179193715458  18.6989929881545 -16.2690786627397 0.220766622005851  18.6835403574205 -16.2690801727398 0.225481500889796  18.6752864970285 -16.2690813027399 0.228638330329737  18.665548906566 -16.26908324274 0.233529368222049  18.6525286059475 -16.2690860927401 0.240580109966942  18.6408803153943 -16.2690901227403 0.249723872481247  18.6325611049991 -16.2690938827405 0.257956703852285  
-19.4450201635889 -16.2690779527397 0.191567609028973  19.4196860223855 -16.2690781227397 0.192292173823388  19.3626775096778 -16.2690781227397 0.193453220928535  19.2929928863679 -16.2690775727397 0.194319238519668  19.2359730036596 -16.2690771527397 0.195263016154495  19.1892808914419 -16.2690768827397 0.196255627201642  19.1474357894544 -16.2690768227396 0.197542727272776  19.0940342269179 -16.2690771127397 0.199866379603143  19.0515460948998 -16.2690776927397 0.202375324082312  19.0139486831141 -16.2690786527397 0.205413663146625  18.9998110124426 -16.2690790927398 0.206689647347231  18.9592315305151 -16.2690804027398 0.210452057045936  18.9213177387143 -16.2690822727399 0.215112257377283  18.8815354068248 -16.2690824027399 0.217511035311219  18.8654655060615 -16.2690824127399 0.218429454844842  18.843643195025 -16.2690820827399 0.219236974473197  18.823283654058 -16.2690814627399 0.219613091551062  18.8116986235077 -16.2690810527399 0.219770250678526  18.8040595431449 -16.2690807427398 0.219842686891967  18.7952149127248 -16.2690803527398 0.219881329293802  18.7840330621937 -16.2690798427398 0.219918579225572  18.7709478315721 -16.2690792027398 0.219962492177657  18.7572430809212 -16.2690787027397 0.220394938038197  18.748080080486 -16.2690784727397 0.220920635303167  18.7357490399003 -16.2690783127397 0.221924056730827  18.7182795590705 -16.2690785027397 0.224202879949065  18.7034333583654 -16.2690793727398 0.227567492008875  18.6881317776386 -16.2690807527398 0.231995926159215  18.6799478672499 -16.2690817927399 0.2349641881402  18.6702747967904 -16.26908358274 0.239568293278883  18.6573332261757 -16.2690862327401 0.246207182654213  18.6457130456238 -16.2690899927403 0.25482610341359  18.6373324252257 -16.2690935127404 0.262586288212179  
-19.4421655334533 -16.2690786627397 0.196718548053629  19.4170289822593 -16.2690788727397 0.197488196720186  19.3604646695727 -16.2690789627397 0.198755188350364  19.2913224562886 -16.2690785027397 0.199736186276959  19.2347451736013 -16.2690781327397 0.200743502424804  19.1884151714008 -16.2690778927397 0.201769839893553  19.1468950394287 -16.2690778527397 0.203060233904843  19.093908906912 -16.2690781327397 0.205349645433584  19.0517513649096 -16.2690786827397 0.207795392689751  19.0144444531376 -16.2690795927398 0.210736620789452  19.0004156124713 -16.2690800027398 0.211969556398013  18.9601481105587 -16.2690812327399 0.215603430770613  18.9225216787715 -16.2690830027399 0.220089232663677  18.8830508168967 -16.2690830727399 0.222382590672606  18.8671068861395 -16.2690830627399 0.223259873084274  18.8454571151111 -16.2690827227399 0.224024572420596  18.8252588441518 -16.2690820827399 0.22437100275705  18.8137655336059 -16.2690816727399 0.224512624353777  18.8061868832459 -16.2690813727399 0.224575593766768  18.7974120528291 -16.2690809727398 0.224604390668136  18.7863183723022 -16.2690804627398 0.224629191299314  18.7733361316856 -16.2690798227398 0.224657489240658  18.7597398510398 -16.2690793127398 0.225058203919691  18.750649750608 -16.2690790727398 0.225553541723218  18.738417360027 -16.2690788927397 0.226504828208402  18.7210870692039 -16.2690790427398 0.228677089801578  18.7063482485038 -16.2690798527398 0.231896646664499  18.6911452177817 -16.2690811427399 0.236138883735995  18.6830070473952 -16.2690821227399 0.238984713421164  18.6733763369377 -16.26908382274 0.243402731581009  18.6604865563255 -16.2690863427401 0.249774591173656  18.6488854557745 -16.2690899327403 0.258053597046888  18.6404659953746 -16.2690932927404 0.26550772764094  
-19.4379463232529 -16.2690797127398 0.204331732465236  19.413105532073 -16.2690799827398 0.205161766284661  19.3572061294179 -16.2690802027398 0.206571284211609  19.2888758461724 -16.2690798827398 0.207705038715459  19.2329610935166 -16.2690796027398 0.208792204287097  19.1871731213418 -16.2690794127398 0.209856875207666  19.1461394393928 -16.2690793927398 0.211141817138698  19.0937751769056 -16.2690796627398 0.21336744839441  19.0521124949267 -16.2690801627398 0.215709303175642  19.0152404731754 -16.2690809927398 0.218497696068083  19.0013745725168 -16.2690813727399 0.219663502233456  18.9615741506264 -16.2690825027399 0.223097340506555  18.9243780788597 -16.26908411274 0.227315937346927  18.8853734170071 -16.26908411274 0.229443655147988  18.8696180362587 -16.26908407274 0.230256167446581  18.8482264752427 -16.26908370274 0.23095219943964  18.8282695542948 -16.2690830627399 0.231249735143773  18.8169134937554 -16.2690826427399 0.231365536279273  18.8094252733997 -16.2690823327399 0.23141262993151  18.8007549229879 -16.2690819427399 0.231424692372083  18.7897931924672 -16.2690814227399 0.231428332282255  18.7769651018579 -16.2690807827398 0.23143031790235  18.7635311512199 -16.2690802627398 0.231780750918994  18.7545501307933 -16.2690800127398 0.232228958010283  18.7424653802193 -16.2690798127398 0.233100152451663  18.725343359406 -16.2690798927398 0.235110606537154  18.7107654887136 -16.2690806027398 0.238112011639713  18.6957104879986 -16.2690817727399 0.242075066677948  18.6876412176153 -16.2690826627399 0.244737749564419  18.6780747171609 -16.26908423274 0.248878037031072  18.6652636565524 -16.2690865627401 0.2548515790148  18.6536928360028 -16.2690898927403 0.262624673244002  18.6452177456003 -16.2690930127404 0.269623458936426  
-19.4336854430505 -16.2690807827398 0.212020132330415  19.4091492718851 -16.2690811027399 0.212902649512333  19.3539347292625 -16.2690814527399 0.21443698046521  19.2864407360567 -16.2690812927399 0.215701630165277  19.2312084434333 -16.2690811027399 0.216850312669837  19.1859788212851 -16.2690809827398 0.217938037711501  19.1454462193599 -16.2690809827398 0.219203439561604  19.0937224869031 -16.2690812427399 0.221346749263406  19.0525695349485 -16.2690817027399 0.223569426338977  19.0161455432184 -16.2690824627399 0.226190823193487  19.0024475225678 -16.2690828027399 0.227284073495414  18.9631283807002 -16.26908382274 0.230502221658268  18.9263759089546 -16.2690852927401 0.234438135645213  18.8878513971248 -16.26908521274 0.236385213077695  18.8722901963856 -16.26908515274 0.237126918652924  18.8511645253822 -16.26908475274 0.237746291582342  18.8314560944461 -16.26908410274 0.237987627293805  18.8202413639135 -16.26908367274 0.238073469627882  18.8128462735622 -16.26908337274 0.238101969249236  18.8042835031555 -16.2690829827399 0.238094163928865  18.7934576526413 -16.2690824627399 0.238072680377845  18.7807883020395 -16.2690818327399 0.238043697376468  18.7675215114094 -16.2690813027399 0.238338752530483  18.7586528109882 -16.2690810327398 0.238736291609365  18.7467200304214 -16.2690808027398 0.239522474886707  18.7298124396183 -16.2690808327398 0.241363665544158  18.7154006889338 -16.2690814427399 0.244139654166011  18.700498968226 -16.2690824827399 0.247815357840597  18.6925013678461 -16.26908329274 0.250290107068142  18.683002257395 -16.26908473274 0.254146261181299  18.6702741567904 -16.2690868627401 0.259712597075686  18.6587372562424 -16.2690899427403 0.266970007030394  18.6502088458373 -16.2690928227404 0.273504881890784  
-19.4294968528515 -16.2690818227399 0.219578079239399  19.4052646917006 -16.2690822027399 0.220504926053421  19.3507336091105 -16.2690827027399 0.22214561005135  19.2840742359443 -16.2690826927399 0.22351896014658  19.2295230633533 -16.2690825927399 0.224711773583236  19.1848507012315 -16.2690825327399 0.225808779265341  19.14481817933 -16.2690825627399 0.227042978223962  19.0937337069036 -16.2690828227399 0.229090055231193  19.0530894649731 -16.26908325274 0.231183390370621  19.0171126732643 -16.26908394274 0.23362981248682  19.0035822426217 -16.26908425274 0.234647667105166  18.9647435207769 -16.26908517274 0.237642095137393  18.9284339890523 -16.2690864927401 0.241289150680619  18.8903886372453 -16.2690863427401 0.243047231344123  18.8750212265154 -16.2690862527401 0.243714719275827  18.8541608355245 -16.2690858427401 0.24425248349137  18.8347003446002 -16.26908517274 0.244432742039932  18.8236266240742 -16.26908475274 0.244485815052453  18.8163244437274 -16.26908444274 0.244493847002834  18.8078690133258 -16.26908405274 0.244463974411415  18.797178752818 -16.26908354274 0.244414585589069  18.7846678022238 -16.2690829027399 0.244351402066068  18.7715677916016 -16.2690823727399 0.24458808802731  18.7628111411857 -16.2690820927399 0.244933193603702  18.7510299806261 -16.2690818427399 0.245632280216907  18.7343363098332 -16.2690818027399 0.247302073436218  18.7200905991565 -16.2690823327399 0.249852103467338  18.7053424484561 -16.26908325274 0.253240706798288  18.6974168880796 -16.26908397274 0.255528166446936  18.6879859976317 -16.2690852827401 0.259101881236678  18.6753420970311 -16.2690872227401 0.264263686971851  18.6638411064848 -16.2690900527403 0.271010082012288  18.6552624460774 -16.2690927027404 0.277085441310852  
-19.4266927127183 -16.2690825227399 0.224637899259727  19.4026666715772 -16.2690829427399 0.225590725744984  19.3485989890091 -16.26908353274 0.227294290145899  19.2825054858698 -16.26908363274 0.228730243274103  19.2284161333007 -16.26908360274 0.229944281241767  19.1841216111968 -16.26908358274 0.231040687153843  19.1444281593115 -16.26908363274 0.232247890381182  19.0937771069057 -16.26908390274 0.234222749254983  19.0534777849916 -16.26908430274 0.236223289750004  19.0178042532972 -16.26908494274 0.238547067040377  19.0043874526599 -16.26908523274 0.239512374006227  18.9658745408307 -16.2690860927401 0.242351076831058  18.9298654491203 -16.2690873227401 0.245799164434833  18.8921449673287 -16.2690871327401 0.247424902782052  18.876908926605 -16.2690870227401 0.248040356101284  18.8562283656227 -16.2690865927401 0.24852030365408  18.8369359447064 -16.2690859227401 0.248656704450559  18.825957804185 -16.2690854927401 0.248686149771958  18.8187186138411 -16.26908519274 0.248679364741635  18.810335953443 -16.26908480274 0.248633427379454  18.7997376029396 -16.26908429274 0.248563723566143  18.7873340423504 -16.26908366274 0.248475730941963  18.7743470917336 -16.2690831127399 0.248671339231254  18.7656663913213 -16.2690828327399 0.248980005655915  18.7539879807666 -16.2690825627399 0.249618987606265  18.7374393099806 -16.2690824927399 0.251171486810005  18.7233063193093 -16.2690829527399 0.253568021143834  18.7086626286137 -16.26908379274 0.256762064965543  18.7007862182396 -16.26908446274 0.258922844318175  18.6914021077939 -16.2690856827401 0.26230588245886  18.6788160871961 -16.2690874927402 0.267194712141067  18.6673405966511 -16.2690901627403 0.273596920555156  18.6587295362421 -16.2690926627404 0.279362878199024  
-19.4227152325294 -16.26908351274 0.231814923330618  19.3989845214023 -16.26908399274 0.232799547417385  19.3455808288657 -16.26908472274 0.234580934561996  19.280298185765 -16.26908497274 0.236091790593758  19.2268705932273 -16.26908504274 0.237324565202311  19.1831175011491 -16.26908509274 0.238410810563905  19.1439099192869 -16.26908517274 0.239571377849029  19.0938799269106 -16.2690854427401 0.241433150577459  19.0540748450199 -16.2690858227401 0.243293590085825  19.0188358833462 -16.2690864027401 0.245435881877578  19.0055819527167 -16.2690866527401 0.246323821359753  18.9675359609096 -16.2690874327402 0.248933505823707  18.9319575392197 -16.2690885227402 0.252091737363714  18.8947025274502 -16.2690882727402 0.253521811131639  18.8796547267354 -16.2690881327402 0.254060248027214  18.8592318057654 -16.2690876927402 0.254453838165908  18.8401801748605 -16.2690870227401 0.254523973259239  18.8293389743456 -16.2690865927401 0.254517595388937  18.822190014006 -16.2690862827401 0.254488270497544  18.8139116136128 -16.2690859027401 0.254417781644196  18.8034449531157 -16.2690853927401 0.25431703051941  18.7911952625338 -16.26908476274 0.254191233893435  18.7783702819247 -16.26908421274 0.254325841489829  18.7697983915175 -16.26908392274 0.254580995041948  18.7582671809698 -16.26908363274 0.255132268168132  18.7419262401937 -16.26908350274 0.256514910873804  18.7279549095301 -16.26908388274 0.258690683667148  18.7134612988417 -16.26908460274 0.261605540275596  18.7056556284709 -16.26908520274 0.263584861619609  18.6963391580284 -16.2690862927401 0.266695261977345  18.6838369874346 -16.2690879327402 0.271193947911021  18.6723993168913 -16.2690903627403 0.277105111371786  18.6637437364802 -16.2690926427404 0.282429784694694  
-19.4188712623469 -16.26908447274 0.238751034230065  19.3954297412334 -16.26908501274 0.23976003979799  19.3426762187278 -16.2690858827401 0.241602352695495  19.2781875556647 -16.2690862927401 0.243168138249866  19.2254079631578 -16.2690864527401 0.244404735868601  19.1821850711049 -16.2690865627401 0.245469464319173  19.1434532492652 -16.2690866827401 0.246574476851659  19.0940314069178 -16.2690869627401 0.248313578804262  19.0547102850501 -16.2690873127401 0.250027968045691  19.0198969033966 -16.2690878327402 0.251985415398664  19.0068024827746 -16.2690880627402 0.252795026047119  18.9692138009893 -16.2690887527402 0.255173161670074  18.9340572693194 -16.2690897227403 0.258041676216321  18.8972580275716 -16.2690894127402 0.25927266992479  18.8823945368656 -16.2690892527402 0.259732643996638  18.8622238459075 -16.2690887927402 0.260037312071109  18.8434079350138 -16.2690881227402 0.260038309191156  18.8327007945052 -16.2690876927402 0.259994409609071  18.8256401841699 -16.2690873927402 0.259941387946553  18.8174638537815 -16.2690870027401 0.259844954481972  18.8071261232905 -16.2690865027401 0.259711394025629  18.7950270727158 -16.2690858727401 0.259545778067762  18.7823606721142 -16.2690853227401 0.259617996571193  18.7738953017121 -16.26908502274 0.259819138840746  18.7625081711713 -16.26908471274 0.260282563542758  18.7463705904048 -16.26908453274 0.261496675650425  18.7325577597487 -16.26908483274 0.263455280213454  18.7182115690673 -16.2690854427401 0.266096278768894  18.7104755886999 -16.2690859627401 0.267898008854472  18.7012261082605 -16.2690869427401 0.270742189829563  18.6888071476707 -16.2690884027402 0.274860127735155  18.6774081671292 -16.2690906127403 0.28029316253321  18.6687113467162 -16.2690926827404 0.285188325765718  
-19.4128963820631 -16.2690859627401 0.249532179182142  19.3899117909713 -16.2690866027401 0.250566111891251  19.3381855785145 -16.2690876927402 0.252473941761868  19.274951475511 -16.2690883527402 0.2540894389486  19.2231958330528 -16.2690886827402 0.255302795886232  19.1808107210396 -16.2690888927402 0.25631018221408  19.1428306992356 -16.2690890727402 0.257307424361446  19.0943697769339 -16.2690893627402 0.258828517023694  19.0558133651025 -16.2690896927403 0.260294131263307  19.0216725534809 -16.2690901227403 0.261944957871717  19.0088302228709 -16.2690903127403 0.262625548494044  18.9719643111199 -16.2690908827403 0.264622901248913  18.9374747794817 -16.2690916627404 0.26702150097284  18.9013956377681 -16.2690912727403 0.267922658875643  18.8868233470759 -16.2690910827403 0.268252437831306  18.8670511061368 -16.2690906027403 0.268407728328682  18.8486075452608 -16.2690899227403 0.268290848643131  18.8381121947623 -16.2690894927403 0.268182700597994  18.8311911244335 -16.2690891927402 0.268088936623541  18.8231760440528 -16.2690888127402 0.26794764642683  18.8130420035715 -16.2690883227402 0.267757359927792  18.8011809630081 -16.2690877027402 0.267523141096667  18.7887650624184 -16.2690871527401 0.267491365455158  18.7804679420243 -16.2690868327401 0.267603867340501  18.7693083814943 -16.2690864927401 0.267924444905728  18.753491990743 -16.2690862427401 0.268867662030528  18.7399299900989 -16.2690864227401 0.270480913047153  18.7258176994286 -16.2690868627401 0.272687981921984  18.7181926390664 -16.2690872627401 0.274209128844234  18.7090504886322 -16.2690880627402 0.276633927669406  18.6967652080486 -16.2690892627402 0.280152490176529  18.6854305075103 -16.2690911127403 0.284835058898939  18.6766731570943 -16.2690928627404 0.289056405569442  
-19.4057194117222 -16.2690877427402 0.262482412657245  19.383294520657 -16.2690885127402 0.263527890966903  19.3328266882599 -16.2690898827403 0.265473026729292  19.2711293553295 -16.2690908527403 0.267097646206457  19.2206280729308 -16.2690913927403 0.268241693980796  19.1792692809664 -16.2690917427404 0.269146305863763  19.1422101992062 -16.2690920027404 0.269983714893538  19.0949263869603 -16.2690923327404 0.271204163531506  19.0573067251735 -16.2690926227404 0.272340084565459  19.023989933591 -16.2690929627404 0.273595214775075  19.0114564929957 -16.2690931127404 0.27411051639955  18.9754762212867 -16.2690935327404 0.275620866971288  18.9418042396874 -16.2690941027405 0.277427217777085  18.9066071380156 -16.2690936127404 0.277903250449695  18.8923915273404 -16.2690933927404 0.278064957577376  18.8731072164244 -16.2690928927404 0.278024985465478  18.8551196355701 -16.2690922127404 0.277751744552499  18.8448836250839 -16.2690917927404 0.277558015563298  18.8381334547633 -16.2690915027403 0.277409767426256  18.830315854392 -16.2690911227403 0.277208170756681  18.8204312739225 -16.2690906427403 0.27694161965402  18.808861713373 -16.2690900427403 0.27661547867853  18.7967525827978 -16.2690894827402 0.276448829450614  18.7886614824135 -16.2690891527402 0.276448207850585  18.7777805418967 -16.2690887827402 0.276588262757237  18.7623574411641 -16.2690884427402 0.27719340327598  18.7491032605346 -16.2690884727402 0.278380757482376  18.735278809878 -16.2690887227402 0.280054879591892  18.7277907895223 -16.2690889827402 0.281232546687829  18.7187822290944 -16.2690895627403 0.283145666428697  18.7066638385188 -16.2690904527403 0.285933541061114  18.6954124579844 -16.2690918827404 0.289704320010216  18.6865875775652 -16.2690932427404 0.293107478511858  
-19.3997666414394 -16.2690892327402 0.273223673297428  19.377819230397 -16.2690901027403 0.274255714046447  19.3284249580509 -16.2690917227404 0.276180011327846  19.2680387051827 -16.2690929727404 0.277748909202365  19.2186076428348 -16.2690936927404 0.278783689181514  19.178124520912 -16.2690941727405 0.279560654978418  19.1418511691891 -16.2690945027405 0.280227489620091  19.0955716169909 -16.2690948827405 0.281150072553911  19.0587511552421 -16.2690951627405 0.281973924413042  19.026137563693 -16.2690954327405 0.282866594895442  19.0138677431102 -16.2690955427405 0.283231902692793  18.9786433714371 -16.2690958627406 0.284301281493586  18.945669529871 -16.2690962527406 0.285581640384399  18.9112248382349 -16.2690957027405 0.285668873968543  18.8973134775742 -16.2690954627405 0.285676563598908  18.878445286678 -16.2690949427405 0.285454831058376  18.8608465458421 -16.2690942727405 0.285033425158361  18.8508316853664 -16.2690938627405 0.284758197225288  18.8442272550527 -16.2690935727404 0.284557822145771  18.8365780846894 -16.2690932127404 0.284298168363438  18.82690625423 -16.2690927327404 0.28395819640729  18.8155853236923 -16.2690921527404 0.283543907457612  18.8037378131296 -16.2690915927403 0.283252935203792  18.7958223727536 -16.2690912627403 0.283150167958911  18.7851789622481 -16.2690908627403 0.28312931437792  18.7700912115315 -16.2690904527403 0.283438183642591  18.7571003109144 -16.2690903627403 0.284258451411551  18.7435230502695 -16.2690904527403 0.285475880279376  18.7361533299195 -16.2690906127403 0.286360593321398  18.7272612694971 -16.2690910127403 0.287839405061637  18.7152890289285 -16.2690916427404 0.290007814694631  18.7041141983977 -16.2690927327404 0.293009402247199  18.6952396579762 -16.2690937727405 0.295722919916084  
-19.3958792812548 -16.2690902027403 0.280238069820593  19.3742485002274 -16.2690911427403 0.281253132318806  19.3255661379151 -16.2690929227404 0.283145364458683  19.2660493150882 -16.2690943627405 0.284655315830401  19.2173279627741 -16.2690952127405 0.285600283415285  19.1774255608788 -16.2690957827405 0.286278778147512  19.1416732791807 -16.2690961627406 0.28682067563325  19.0960596870141 -16.2690965727406 0.287531453687011  19.0597692052904 -16.2690968527406 0.288137750775808  19.0276219837635 -16.2690970827406 0.288781511846385  19.015527033189 -16.2690971727406 0.289044271038866  18.9808040315398 -16.2690974327406 0.289812478335353  18.9482933599956 -16.2690977127406 0.290736955399264  18.9143475983833 -16.2690971227406 0.290557391040735  18.9006379877321 -16.2690968627406 0.290459293006075  18.882045676849 -16.2690963427406 0.290111805739571  18.8647047260254 -16.2690956827405 0.289587057994647  18.8548364955566 -16.2690952727405 0.289254860248868  18.8483286852475 -16.2690949827405 0.289017972147616  18.8407911848895 -16.2690946327405 0.288717540323347  18.8312604144368 -16.2690941627405 0.288325998894749  18.8201043339069 -16.2690935927404 0.287849902842136  18.8084302733525 -16.2690930327404 0.287473303944249  18.800631292982 -16.2690926927404 0.287300867326058  18.790145342484 -16.2690922827404 0.287170950769888  18.7752798917779 -16.2690918327404 0.2872806913851  18.7624638211692 -16.2690916727404 0.28785630770244  18.7490510405321 -16.2690916527404 0.288770277795852  18.7417602701858 -16.2690917427404 0.28946080823865  18.7329463697672 -16.2690920227404 0.290652470925251  18.7210723692032 -16.2690924827404 0.292411568388804  18.7099502386749 -16.2690933627404 0.294906240137294  18.701045568252 -16.2690941927405 0.297165473694602  
-19.3858695007793 -16.2690926927404 0.298299853918482  19.3650537597907 -16.2690938227405 0.29926722620443  19.3182039575654 -16.2690960427406 0.30106795505996  19.2609251748448 -16.2690979627407 0.302415198783951  19.2140307626174 -16.2690991427407 0.303119966287425  19.1756232207932 -16.2690999327407 0.303537583867261  19.1412122491588 -16.2691004527408 0.303751214097408  19.0973129470737 -16.2691009527408 0.303908232024866  19.0623867354147 -16.2691012227408 0.303947670286739  19.0314400439449 -16.2691013427408 0.303944587076593  19.0197951933918 -16.2691013827408 0.303941061606425  18.9863628218038 -16.2691014727408 0.303927371995775  18.9550444303163 -16.2691014727408 0.303929467775874  18.9223829887649 -16.2691007927408 0.303056663784418  18.9091926981384 -16.2691004927408 0.302683644566701  18.8913105472891 -16.2690999527407 0.302008925984654  18.8746331964969 -16.2690993127407 0.301214888616939  18.8651423960461 -16.2690989127407 0.300734181044106  18.8588833257489 -16.2690986427407 0.300402076268332  18.8516332754045 -16.2690983027407 0.299995255469009  18.8424656349691 -16.2690978627406 0.299469170384022  18.8317339044593 -16.2690973227406 0.298831868833751  18.820506333926 -16.2690967627406 0.298232635175289  18.8130071335698 -16.2690964127406 0.29787936713851  18.802926503091 -16.2690959627406 0.297466688658909  18.7886333124122 -16.2690954027405 0.297060943569637  18.7762672618248 -16.2690950527405 0.297004204386942  18.7632778712078 -16.2690947727405 0.297134251543119  18.7561902908712 -16.2690946727405 0.297323378122102  18.7475775304621 -16.2690946627405 0.297773933723502  18.7359563599101 -16.2690946927405 0.298476754076884  18.7249697793883 -16.2690949927405 0.299663906933271  18.7159874089617 -16.2690953027405 0.300751476534928  
-19.3759198803068 -16.2690951727405 0.316253079791215  19.3559120093564 -16.2690965027406 0.317115755702189  19.3108785972175 -16.2690991727407 0.318696622467277  19.2558181046022 -16.2691016127408 0.319724581296102  19.2107344924609 -16.2691031427409 0.320061683642114  19.173808610707 -16.2691041827409 0.320114431464619  19.1407270991357 -16.269104862741 0.319907154864774  19.0985269571313 -16.269105472741 0.319392990910352  19.0649529655366 -16.269105742741 0.318772850130897  19.0351961841233 -16.269105782741 0.318041523036161  19.0239974535913 -16.269105772741 0.317741201701897  18.9918442620642 -16.269105712741 0.316858104869952  18.9617075206327 -16.269105462741 0.315856815092393  18.9303190891419 -16.269104692741 0.314204845153929  18.9176435385398 -16.269104372741 0.313522174711504  18.9004653177239 -16.2691038327409 0.312472888161665  18.884445736963 -16.2691032127409 0.311365186369052  18.87532905653 -16.2691028327409 0.310710682277965  18.8693165262444 -16.2691025727409 0.310266665026875  18.8623513959136 -16.2691022527409 0.309734085721579  18.8535436954952 -16.2691018427408 0.309048959829037  18.8432325950055 -16.2691013327408 0.308221783309748  18.8324475844932 -16.2691007927408 0.307370245349303  18.8252455441511 -16.2691004327408 0.306816524893002  18.8155666736914 -16.2690999527407 0.30609495558873  18.8018407230395 -16.2690992927407 0.305137335323245  18.7899206124733 -16.2690987527407 0.304417595259059  18.7773506018763 -16.2690982127407 0.303731951696493  18.7704641915492 -16.2690979427407 0.30340261532085  18.7620503711495 -16.2690976427406 0.30309185207609  18.7506791906094 -16.2690972627406 0.302711351078017  18.7398260500939 -16.2690970027406 0.302566656401144  18.7307653496636 -16.2690967827406 0.302462184136182  
-19.3665796498631 -16.2690975027406 0.333106715941719  19.3473283089487 -16.2690990227407 0.333820518075623  19.3039958968906 -16.2691021427408 0.3350811617055  19.251012764374 -16.269105102741 0.335670269103482  19.2076248923132 -16.2691069827411 0.335548397807693  19.1720865206252 -16.2691082727411 0.335165412789502  19.1402500091131 -16.2691091127412 0.334479465476921  19.0996410771842 -16.2691098527412 0.333228604997509  19.0673333956497 -16.2691101427412 0.331904401934612  19.0386908942893 -16.2691101227412 0.330414124903828  19.0279099237772 -16.2691100727412 0.329806830924983  18.9969546023069 -16.2691098927412 0.328026154210406  18.967924360928 -16.2691094127412 0.326006511304478  18.9377280594938 -16.2691085927412 0.323543544877493  18.9255345589146 -16.2691082427411 0.322538062719735  18.90901555813 -16.2691077127411 0.321093614371128  18.8936119873984 -16.2691071227411 0.3196508470026  18.884845676982 -16.2691067727411 0.318810074552665  18.8790640267074 -16.2691065327411 0.318245751395861  18.8723657263892 -16.269106232741 0.317577447944119  18.8638951059869 -16.269105852741 0.316720676963424  18.8539778955159 -16.269105382741 0.315689084004426  18.8436073650233 -16.269104862741 0.31457331485143  18.8366835946944 -16.269104492741 0.313813134045323  18.8273809942526 -16.2691039927409 0.312777020076111  18.8141862736259 -16.2691032427409 0.311266457754363  18.8026836730795 -16.2691025427409 0.30989390789917  18.7905061925011 -16.2691017627408 0.308410321068703  18.783807992183 -16.2691013227408 0.307576551969102  18.7755801317922 -16.2691007627408 0.306529318489361  18.7644425412632 -16.2690999927407 0.305102360751584  18.7537136507536 -16.2690992127407 0.303678969303976  18.7445785303197 -16.2690985127407 0.302431252674713  
-
-0 4
-0.08990298 1
-0.18315357 1
-0.20034405 1
-0.22475745 1
-0.27019476 1
-0.32899256 1
-0.35467696 1
-0.39790986 1
-0.41449401 1
-0.47595518 1
-0.5151171 1
-0.5966751 1
-0.69478979 1
-0.69662422 1
-0.71520522 1
-1 4
-
-0 4
-0.41310065 1
-0.92947641 1
-1.13602676 1
-1.34257706 1
-1.69060417 1
-1.81821598 1
-2.21322631 1
-2.38371453 1
-2.43316723 1
-2.44476256 1
-3.04857872 1
-3.057209 1
-3.0943635 1
-3.31090845 1
-3.41270371 1
-3.42599114 1
-3.49967011 1
-3.53721249 1
-3.57026275 1
-3.6821336 1
-3.7509154 1
-3.79383849 1
-3.83144441 1
-3.95156777 1
-4.0785586 1
-4.07981239 1
-4.21459722 1
-4.22328983 1
-4.25766328 1
-4.45537137 4
-
-9 0 0 0 0 3 2 19 4 15 3 17.2206187079355 -6.33363828283166 -0.716492118871548  17.9802354340153 -8.81751651680954 -0.484544512034628  19.499468896175 -13.7852729847653 -0.020649298340789  20.2590856322549 -16.2691512227432 0.211298308496131  
-17.1721309556324 -6.33363988383174 -0.704372038225875  17.9384846320323 -8.81751664280955 -0.474547546629798  19.471191994832 -13.7852701647652 -0.0148985634276438  20.2375456712318 -16.269146922743 0.214925928168433  
-17.0895647317107 -6.33364236683186 -0.684425253888454  17.8674083186563 -8.81751707480957 -0.457975197992654  19.4230954925475 -13.785266494765 -0.00507508619105365  20.2009390794931 -16.2691412027427 0.221374969714746  
-16.9823669166191 -6.33364505883198 -0.660045740160489  17.7751849142759 -8.81751799180961 -0.437491011279707  19.3608209195896 -13.7852638547649 0.00761844648185677  20.1536389172464 -16.2691367927425 0.230173175362639  
-16.8419037299475 -6.33364809483213 -0.629496169529462  17.6544121885395 -8.81751944080968 -0.411626241831196  19.2794290957237 -13.7852621347648 0.0241136135953351  20.0919375543158 -16.2691334727423 0.241983541303601  
-16.7351638648776 -6.3336497318322 -0.608192009867569  17.5627347741851 -8.81752080080975 -0.393335378232427  19.2178765928001 -13.7852629347648 0.0363778850578567  20.0454475121076 -16.2691340027424 0.251234516692999  
-16.6334793300478 -6.33365080283226 -0.589288586159705  17.4754149600376 -8.8175220708098 -0.376976088225403  19.1592862100172 -13.7852646047649 0.0476489076232016  20.001221840007 -16.2691358727425 0.259961405557504  
-16.590659598014 -6.33365120583228 -0.581465978298151  17.4386438282911 -8.81752260180983 -0.370192174573184  19.1346122888453 -13.7852653947649 0.0523554328767495  19.9825965191224 -16.2691367927425 0.263629236591716  
-16.5272334850014 -6.3336516418323 -0.570333143869369  17.3841733457039 -8.81752336380987 -0.360495401912612  19.0980530571088 -13.785266804765 0.0591800820009029  19.9549929178113 -16.2691385227426 0.26901782395766  
-16.4397496208462 -6.33365201783231 -0.555622904270671  17.3090402221353 -8.81752435280992 -0.347628900381486  19.0476214147134 -13.7852690247651 0.0683591074268832  19.9169120160025 -16.2691413527427 0.276353111326068  
-16.3531706767339 -6.33365206783232 -0.541983860102851  17.2346895586038 -8.81752521580995 -0.335629656641552  18.9977273323436 -13.7852715147652 0.077078750291044  19.8792462142135 -16.2691446627429 0.283432953762342  
-16.2664776526162 -6.3336517848323 -0.529274443989186  17.1602585850685 -8.81752589380999 -0.324394372377905  18.9478204499731 -13.7852741147654 0.0853657708546564  19.8416013724254 -16.269148222743 0.290245842475937  
-16.2003690894762 -6.33365140283228 -0.520055764141322  17.1035018523727 -8.81752629681001 -0.316223171499794  18.9097673881657 -13.7852760847654 0.0914420137732624  19.8129001610622 -16.2691509827432 0.295274606404791  
-16.0924612543509 -6.33365050883224 -0.505779505633236  17.0108601779725 -8.81752674181003 -0.30354134982744  18.8476580352157 -13.7852792047656 0.100934961794153  19.7660569588373 -16.2691554427434 0.30317311760995  
-15.9016762752891 -6.33364796983212 -0.483268705304031  16.8470032601897 -8.81752664581002 -0.2834846969048  18.7376572199909 -13.7852839947658 0.116083319913662  19.6829842048915 -16.2691626727437 0.315867328312892  
-15.7331203472831 -6.33364410883194 -0.4679893382883  16.7021583433099 -8.81752456180992 -0.26993491969122  18.6402343353636 -13.7852854647659 0.126173917472939  19.6092723313904 -16.2691659227439 0.324228336060019  
-15.4789707052116 -6.33363679283159 -0.449205883866134  16.4837602729366 -8.81751883180965 -0.25361340772599  18.4933394183864 -13.7852829047658 0.137571544554297  19.4981289961114 -16.2691649527438 0.333164020704441  
-15.3286827680733 -6.33363120783133 -0.44168625086897  16.3545756868006 -8.81751324780939 -0.247431688882374  18.4063615242552 -13.7852773247655 0.141077435090818  19.4322544429825 -16.2691593627436 0.335331997077414  
-15.1783018009306 -6.333624360831 -0.437747455361887  16.2253637906634 -8.81750454880897 -0.245033411298462  18.3194877701289 -13.7852649247649 0.140394676838389  19.3665497498617 -16.2691451127429 0.333108720911814  
-
-0 4
-0.07264197 1
-0.12345255 1
-0.15974582 1
-0.28146727 2
-0.30978555 1
-0.34462514 1
-0.3749384 1
-0.43859614 1
-0.47194039 1
-0.5022533 1
-0.5355975 1
-0.63013701 1
-0.78146727 2
-1.00011086 4
-
-0 3
-3.57247416 1
-7.14494832 3
-
-9 0 0 0 0 3 2 53 4 51 3 19.4650375445396 -16.2691190627417 0.155576155089471  18.4496948263134 -13.7852317447633 -0.0943131308496331  16.4190093898611 -8.81745711380672 -0.59409170274784  15.4036666716349 -6.33356979682841 -0.843980988696944  
-19.3917485210586 -16.2691188827416 0.156548989795678  18.3524343516938 -13.7852338547634 -0.0953887367507217  16.2738060029643 -8.81746380680704 -0.59926418986352  15.2344918235995 -6.33357878282884 -0.85120191641992  
-19.3055471769642 -16.2691171027416 0.155712119985928  18.2380193062594 -13.7852300747633 -0.0946000924532631  16.1029635548497 -8.81745600080667 -0.595224517331646  15.0354356841448 -6.33356896582837 -0.845536729780838  
-19.2131746725768 -16.2691162327415 0.156931259153834  18.1152564504285 -13.7852266347631 -0.0912212524827768  15.9194199961318 -8.81744744580626 -0.587526275755999  14.8215017639835 -6.33355785082784 -0.835678787392611  
-19.1909721515222 -16.2691161027415 0.157380531115174  18.0857409090266 -13.7852259247631 -0.0902733884977557  15.8752784140352 -8.81744557080617 -0.585581227753615  14.7700471715396 -6.33355539382772 -0.833235147366544  
-19.1795595209802 -16.2691160627415 0.157655882208252  18.070570168306 -13.7852256147631 -0.0897473595027706  15.8525914529577 -8.81744471280613 -0.584553842924816  14.7436021002835 -6.33355426382767 -0.831957084635839  
-19.1628715801875 -16.2691160227415 0.158097160289212  18.0483869772523 -13.785225194763 -0.0889472710747685  15.819417791382 -8.81744354480607 -0.583036133802729  14.7049331984468 -6.3335527208276 -0.830080565156709  
-19.1410738191522 -16.2691160427415 0.158809263593035  18.0194152058763 -13.785224824763 -0.0877932267399543  15.7760979993244 -8.81744239480602 -0.580998207395933  14.6544393960485 -6.33355117982753 -0.827600697728922  
-19.0959042170067 -16.2691163627415 0.160775722776437  17.9594140830264 -13.785224814763 -0.0850308464587483  15.6864338250656 -8.81744173580599 -0.576643984939118  14.5499436910852 -6.33355019482748 -0.822450554174303  
-19.0512239848845 -16.2691171927416 0.163632115532108  17.9001355802108 -13.7852264047631 -0.0816390062376445  15.5979587608633 -8.81744482080614 -0.57218124974715  14.4468703561895 -6.33355402982766 -0.817452371496902  
-19.0117014030073 -16.2691185627416 0.167265524224686  17.847800457725 -13.7852302347633 -0.0779169515608564  15.5199985471603 -8.81745356180655 -0.568281903131941  14.356097591878 -6.33356522682819 -0.813464378917483  
-18.9968426823016 -16.2691191927417 0.168810879388086  17.8281378867911 -13.7852320347634 -0.0763965982486435  15.4907282957701 -8.81745772080675 -0.566811553552103  14.3220235002596 -6.33357056582845 -0.812019031188833  
-18.9914575420458 -16.2691194227417 0.16938636702542  17.8210103964525 -13.7852326847634 -0.0758309585617771  15.480116085266 -8.81745922380682 -0.566265609726172  14.3096689396728 -6.33357249082854 -0.811482935303369  
-18.9829114016399 -16.2691198027417 0.170320273859779  17.8096999859153 -13.7852337647634 -0.0749197797684984  15.4632771644662 -8.81746169480694 -0.565399887045052  14.2900657487417 -6.33357565782869 -0.810639940673329  
-18.9442289198025 -16.2691216927418 0.174810373063047  17.7585004434835 -13.7852389147637 -0.0705832547425245  15.3870434908453 -8.81747336980749 -0.561370510353667  14.2013150145262 -6.3335905968294 -0.806764138159239  
-18.9065420280125 -16.2691237827419 0.179746097707481  17.7085887511128 -13.7852440947639 -0.0657701253239132  15.3126821973133 -8.81748471480803 -0.556802571376702  14.1147289204136 -6.33360502583008 -0.802318794408096  
-18.8725326063972 -16.2691242227419 0.182222502175104  17.6634857889705 -13.785244794764 -0.0624033647140006  15.2453921441172 -8.81748594680809 -0.55165509850221  14.0363453266906 -6.33360652283015 -0.796280965401315  
-18.8604734858244 -16.2691243427419 0.183056530634718  17.6474883982107 -13.785244924764 -0.0612256910580641  15.2215182129833 -8.8174860898081 -0.549790134433629  14.0085331253696 -6.33360667283016 -0.794072356126411  
-18.8440949350464 -16.2691243027419 0.18392419299593  17.6257367671775 -13.7852443947639 -0.0597295891170031  15.1890204314397 -8.81748458180802 -0.547037153322869  13.9706622635708 -6.33360467683007 -0.790690935435802  
-18.8237810040816 -16.2691239827419 0.184671308211416  17.5986877058928 -13.7852424647639 -0.0579437300421794  15.1485011195152 -8.81747944680778 -0.54317380653937  13.9234078213264 -6.33359793582975 -0.785788844792966  
-18.8123433735383 -16.2691236927419 0.184961682095208  17.5834216651677 -13.7852408147638 -0.0569536007751507  15.1255782584264 -8.81747506180757 -0.540784166515868  13.8966565600557 -6.33359218482947 -0.782699449386227  
-18.8049087531852 -16.2691234627419 0.185114503282467  17.5734857846957 -13.7852395547637 -0.0563081147744918  15.1106398577168 -8.81747173480741 -0.539153350888409  13.8792168892274 -6.33358782382926 -0.780575968945367  
-18.7990359529063 -16.2691232827419 0.18522974134794  17.565637834323 -13.7852385647637 -0.0558017902804427  15.0988416071565 -8.81746913180729 -0.537864853517208  13.8654434885732 -6.3335844148291 -0.778896385145591  
-18.7879574223801 -16.2691228927418 0.185397382585903  17.5508265336195 -13.7852365947636 -0.054860903275753  15.0765647360984 -8.81746398980705 -0.535377474999064  13.8394338373378 -6.33357768882878 -0.77563576086072  
-18.774840341757 -16.2691223327418 0.185489506820278  17.5332844627863 -13.7852341947635 -0.0537942470450895  15.0501726848448 -8.81745791780676 -0.532361754775825  13.8086167958741 -6.33356977982841 -0.771645508651193  
-18.7630801311984 -16.2691218127418 0.18561039728602  17.5175775820403 -13.7852323047634 -0.0528135746885101  15.0265724837239 -8.81745328480654 -0.529661518617571  13.7810699345657 -6.33356377482812 -0.768085490592101  
-18.7523382006882 -16.2691213827418 0.185827606396337  17.5032526013598 -13.7852308447633 -0.0518467564525887  15.0050814027031 -8.81744978380637 -0.527195482150441  13.7559957933747 -6.33355925282791 -0.764869844999367  
-18.7417279401843 -16.2691210527417 0.186286447218131  17.4891460006898 -13.7852299147633 -0.0507340368797373  14.9839821317009 -8.81744763480627 -0.524775005105474  13.7314002022065 -6.33355649482778 -0.761795489213342  
-18.7320809897261 -16.2691209027417 0.187004004592213  17.4763681300829 -13.7852296447632 -0.0495304511925701  14.9649424307966 -8.81744711980625 -0.522599362772137  13.7092295811534 -6.33355585882775 -0.75913381855692  
-18.7194963591283 -16.2691208827417 0.188303017563913  17.4597553692938 -13.7852299347633 -0.0477281560969657  14.9402734096249 -8.81744803880629 -0.519790503408723  13.6805324297904 -6.3335570908278 -0.755821677059602  
-18.7095691186568 -16.2691211427418 0.189889789669281  17.4467134586744 -13.7852312347633 -0.0459508497625481  14.9210021387095 -8.81745140780645 -0.517632128616206  13.6581464787271 -6.33356149682801 -0.753472768048034  
-18.7019146582932 -16.2691215527418 0.19152417919691  17.4366545781966 -13.7852330747634 -0.0443230798052332  14.9061344180034 -8.81745612680667 -0.51601759779952  13.6408743379067 -6.33356765282831 -0.751864856791663  
-18.701110318255 -16.2691215927418 0.191698214395176  17.4355972181464 -13.7852332647634 -0.0441494119569844  14.9045710279291 -8.8174566168067 -0.515844664681306  13.6390579278205 -6.33356829082834 -0.751692291033466  
-18.6927758578592 -16.2691220627418 0.193542919832795  17.4246379176259 -13.7852352947635 -0.0423141851798159  14.8883620271592 -8.81746176180694 -0.514028395175038  13.6202240869259 -6.33357499382866 -0.749885500187648  
-18.6847572874783 -16.2691227727418 0.195812915910614  17.4140598571234 -13.7852378347636 -0.0401523646871349  14.8726650064136 -8.81746797180724 -0.512082925922633  13.6019675860588 -6.33358303982904 -0.748048206520382  
-18.6771181471155 -16.2691237227419 0.19853949667012  17.403818896637 -13.7852395647637 -0.0373585030044336  14.8572204056801 -8.81747125280739 -0.50915450235354  13.5839211552016 -6.33358709582923 -0.745052502028093  
-18.6742190969778 -16.2691240927419 0.199585351299795  17.3999299564523 -13.7852402147637 -0.0362856558634761  14.8513516954013 -8.81747246580745 -0.508027670180018  13.5770625548758 -6.3335885908293 -0.74389867734329  
-18.6661537665947 -16.2691252427419 0.202745941129915  17.3890436059352 -13.7852417347638 -0.0329801636364736  14.8348232646163 -8.81747471380756 -0.504432373179251  13.5577131039568 -6.33359120582943 -0.74015847794564  
-18.6581166962129 -16.269126802742 0.206713597068369  17.3779554854086 -13.7852418847638 -0.0285683014769214  14.8176330737998 -8.81747203680743 -0.499132098567501  13.5374718629954 -6.33358711382923 -0.734413997122791  
-18.6519158659184 -16.2691283227421 0.210382358612625  17.3692016049928 -13.7852405547638 -0.0242586850222257  14.8037730831415 -8.8174650108071 -0.493540772291928  13.5210588322158 -6.33357723782876 -0.728181815926779  
-18.6505896458554 -16.2691286727421 0.211200001881461  17.3673212949035 -13.7852402047637 -0.0232873717160908  14.8007845929995 -8.81746327380701 -0.492262118911195  13.5175162420475 -6.33357480782865 -0.726749492498747  
-18.6487409557676 -16.2691291627421 0.212371439397102  17.3646966147788 -13.7852396747637 -0.0218840782894379  14.7966079328011 -8.81746068280689 -0.490395113672517  13.5125636018123 -6.33357118982847 -0.724650631369057  
-18.6476308057149 -16.2691294727421 0.213099528761684  17.3631237347041 -13.7852393447637 -0.0210016018275225  14.7941095926825 -8.81745908380681 -0.489203862985936  13.5096025116717 -6.33356895382837 -0.723304993575142  
-18.6456845256225 -16.2691300427422 0.214420726334438  17.3603730945734 -13.7852387647637 -0.0193812261305588  14.7897502324754 -8.81745620680668 -0.486985131070551  13.5044388014264 -6.33356492882818 -0.720787083545548  
-18.643021405496 -16.2691308427422 0.216284205892948  17.3566263243955 -13.7852379947636 -0.0170697123707678  14.7838361621945 -8.81745230080649 -0.4837775488882  13.497441081094 -6.33355945382792 -0.717131467161915  
-18.6381059152625 -16.2691324827423 0.220011042899963  17.3498609940741 -13.7852370247636 -0.0122805840032964  14.7733711516974 -8.8174461228062 -0.476863837799816  13.4851262305091 -6.3335506718275 -0.709155464693076  
-18.6338965550626 -16.2691340827424 0.223599862510423  17.3444646538178 -13.7852376947636 -0.00735304102925069  14.7656008613284 -8.81744490180614 -0.469258848098598  13.4761689600836 -6.3335485078274 -0.700211751628272  
-18.6307730949142 -16.2691353827424 0.226464182376471  17.340805863644 -13.7852396147637 -0.00319583246179389  14.7608713911037 -8.81744807680629 -0.462515862148324  13.4709041498336 -6.33355230782758 -0.692175876986588  
-18.6282268947933 -16.2691364727425 0.228863274100422  17.3379384535078 -13.7852416547638 0.000352200096728606  14.757361570937 -8.81745201980648 -0.456669947890658  13.4670731296516 -6.33355720182781 -0.685181021884351  
-18.6254983646637 -16.2691377327425 0.231606058570697  17.3351919333774 -13.785245104764 0.00453681382548708  14.7545790608049 -8.81745984880685 -0.449601675654933  13.4642726195186 -6.33356722182829 -0.676670920400143  
-18.6216163744793 -16.2691396527426 0.235763588408169  17.3318398732182 -13.7852518747643 0.0108996631977062  14.752286870696 -8.81747633180763 -0.438828187223219  13.4625103694349 -6.3335885578293 -0.663692112433682  
-18.619356844372 -16.2691408727427 0.238370956152012  17.3303145131457 -13.7852571847646 0.0148572386456809  14.7522298606933 -8.81748981280827 -0.432170196366982  13.4631875294671 -6.33360612683013 -0.655683913873313  
-18.6177000542933 -16.2691418227427 0.240397685668277  17.3294940131068 -13.7852619047648 0.0178295854368598  14.7530819307338 -8.81750206180885 -0.427306615035974  13.4648758895473 -6.33362214083089 -0.649874715287391  
-
-0 4
-0.25503713 1
-0.29991391 1
-0.32143898 1
-0.332299 1
-0.33962848 1
-0.37951102 1
-0.40815326 1
-0.49681261 1
-0.53507838 1
-0.54617795 1
-0.5487805 1
-0.55392134 1
-0.57609122 1
-0.68430594 1
-0.68624299 1
-0.69458225 1
-0.72630646 1
-0.74318537 1
-0.76514738 1
-0.76603313 1
-0.76901547 1
-0.78555258 1
-0.80453964 1
-0.81466664 1
-0.82650618 1
-0.84194413 1
-0.85157814 1
-0.86001872 1
-0.88558718 1
-0.88606558 1
-0.88698019 1
-0.88842245 1
-0.91548305 1
-0.91576446 1
-0.91670721 1
-0.92623059 1
-0.94601667 1
-0.94796771 1
-0.95113582 1
-0.95138384 1
-0.95548881 1
-0.95568277 1
-0.95941041 1
-0.9665435 1
-0.97650544 1
-0.97795662 1
-0.98077976 1
-0.98826655 1
-0.99100587 1
-1.00011599 4
-
-0 3
-3.85256324 1
-7.70512649 3
-
-9 0 0 0 0 3 2 16 4 14 3 19.4649687145364 -16.2690729827395 0.155572182299282  19.4403714433681 -16.2690791127398 0.199955815707391  19.3911769110314 -16.2690913727403 0.28872308253361  19.3665796498631 -16.2690975027406 0.333106715941719  
-19.4899993457253 -16.2690743727395 0.156277522982784  19.4662337345964 -16.2690801127398 0.2007244604139  19.4187025223388 -16.2690878627402 0.289618336366132  19.39493691121 -16.2691036527409 0.334065271447248  
-19.5415420481734 -16.2690760527396 0.158350777271258  19.5195026871266 -16.2690852827401 0.202351811361195  19.475423975033 -16.2691037527409 0.290353879541069  19.4533846139861 -16.2691129827414 0.334354913631006  
-19.6395146428268 -16.2690758227396 0.164269566092385  19.6208095119384 -16.2690868927401 0.205485906880056  19.5833992601615 -16.2691090327412 0.287918588455398  19.5646941292731 -16.2691201027417 0.32913492925307  
-19.7374214374772 -16.2690725827394 0.172290977743382  19.7219992767447 -16.26908336274 0.208460434201339  19.6911549452796 -16.269104902741 0.280799347137253  19.6757327745471 -16.2691156827415 0.31696880359521  
-19.8176526712879 -16.2690701027393 0.179573937789304  19.8047493406751 -16.2690795327398 0.210472763346919  19.7789426794493 -16.2690983827407 0.27227041445215  19.7660393488364 -16.2691078127411 0.303169240009766  
-19.8616899533796 -16.2690691427393 0.183618111001392  19.8501142228298 -16.2690776327397 0.211425696062181  19.8269627717302 -16.2690946227405 0.26704086618376  19.8153870411803 -16.2691031127409 0.294848451244549  
-19.8873123545966 -16.2690687527393 0.185971022983149  19.8765056540833 -16.2690766527396 0.211927018415993  19.8548922630567 -16.2690924527404 0.26383900928168  19.8440855725434 -16.2691003527408 0.289795004714523  
-19.9381619670118 -16.2690683827392 0.190605745053287  19.9288705565705 -16.2690750327396 0.212819375728377  19.9102877456879 -16.2690883527402 0.257246637098559  19.9009963452466 -16.2690950027405 0.27946026777365  
-19.9862721192969 -16.2690690527393 0.194863973665542  19.978420788924 -16.2690744227395 0.213418559436837  19.9627181381782 -16.26908516274 0.250527730959428  19.9548668078053 -16.2690905327403 0.269082316720724  
-20.0600434928009 -16.2690727127395 0.200807221567831  20.0543077125285 -16.2690761527396 0.213827504046261  20.0428361619836 -16.2690830327399 0.239868069003121  20.0371003817112 -16.2690864827401 0.252888351481552  
-20.109374795144 -16.2690769727397 0.20435392471629  20.1050115149368 -16.2690791927398 0.213760274473068  20.0962849345223 -16.26908363274 0.232572973966623  20.091921644315 -16.2690858527401 0.241979323713401  
-20.1647097877723 -16.26908461274 0.207553057978241  20.1619382676406 -16.2690857527401 0.21320702053679  20.1563952273774 -16.2690880327402 0.224514945663887  20.1536237172457 -16.2690891627402 0.230168908222436  
-20.2070404997829 -16.2690917427404 0.209637834957262  20.2055073097101 -16.2690922027404 0.212571796366618  20.2024409395644 -16.2690931127404 0.218439719175329  20.2009077494916 -16.2690935727404 0.221373680584685  
-20.2397666613373 -16.2690988227407 0.210800005022462  20.2391995213103 -16.2690989327407 0.211831831911472  20.2380652512565 -16.2690991727407 0.21389548569949  20.2374981112295 -16.2690992927407 0.214927312588499  
-20.2590217622519 -16.2691035827409 0.211302165326314  20.2590217622519 -16.2691035827409 0.211302165326314  20.2590217622519 -16.2691035827409 0.211302165326314  20.2590217622519 -16.2691035827409 0.211302165326314  
-
-0 4
-0.66201458 1
-1.36297112 1
-2.59520727 1
-3.2584606 1
-3.49239086 1
-3.7643859 1
-3.93898534 1
-4.84267156 1
-5.04134187 1
-5.89529337 1
-6.14991318 1
-6.50638093 1
-7.01562055 4
-
-0 3
-0.5 1
-1 3
-
-9 0 0 0 0 3 2 13 4 11 3 20.2590863022549 -16.2691512227432 0.211307915576587  19.4994702561751 -13.7852729947653 -0.0206344007100814  17.9802381440154 -8.81751653780954 -0.484519033263418  17.2206220879356 -6.33363830883166 -0.716461349540086  
-20.2041929296476 -16.2691376327425 0.209877228618633  19.4268990927281 -13.7852565247645 -0.0225382524905095  17.8723114188892 -8.81749431380849 -0.487369214688794  17.0950175819697 -6.33361320783047 -0.719784695797937  
-20.1071168550368 -16.2691223127418 0.204735217664401  19.298573386633 -13.7852376947636 -0.0293474409539286  17.6814864398255 -8.81746847180726 -0.497512758200587  16.8729429614217 -6.33358385982908 -0.731595416808916  
-19.9844946092125 -16.2691162027415 0.194784500991767  19.1364461989324 -13.7852296147632 -0.0425025292187617  17.4403493783721 -8.81745644480669 -0.517076589639819  16.592300968092 -6.33356985682841 -0.754363619850348  
-19.9056561654679 -16.2691160827415 0.187659676683356  19.0322023139811 -13.7852289647632 -0.0519179189559687  17.2852946110074 -8.81745471880661 -0.531073110204618  16.4118407595206 -6.3335675968283 -0.770650705833943  
-19.8545000030381 -16.2691168727415 0.182960492870157  18.9645625507683 -13.7852295847632 -0.0581270123608848  17.1846876462288 -8.81745500180662 -0.540302022822968  16.2947501939591 -6.33356771082831 -0.781389528054009  
-19.8111440809788 -16.2691179327416 0.17898056258112  18.9072504280462 -13.7852305847633 -0.0633851893006348  17.0994631221809 -8.81745588180666 -0.548116693044145  16.1955694592482 -6.33356853282835 -0.7904824449259  
-19.7486877580123 -16.2691198627417 0.173358349914079  18.824694204125 -13.7852325447634 -0.0708125995934178  16.9767071063503 -8.81745788680676 -0.559154498588412  16.0527135624629 -6.33357056082845 -0.80332544808591  
-19.6836414949228 -16.2691219927418 0.167882093923971  18.7387034000406 -13.7852347547635 -0.0780474183370533  16.8488272002763 -8.81746028680687 -0.569906442889102  15.9038890953942 -6.33357304982856 -0.815835955160127  
-19.6100248914262 -16.2691235127419 0.162491637477938  18.6413704054175 -13.7852362747636 -0.0851700966853623  16.7040614334003 -8.81746180480694 -0.580493564981964  15.7354069473917 -6.33357456782864 -0.828155299145264  
-19.5415444081735 -16.2691236827419 0.158354546391437  18.5508233011168 -13.7852362647636 -0.0906381768850822  16.5693810770033 -8.81746145080693 -0.58862362343812  15.5786599699466 -6.33357404082861 -0.83761634671464  
-19.4899853257246 -16.2691219927418 0.156280969472947  18.48267634788 -13.7852341947635 -0.0933813481653758  16.4680583721908 -8.81745858080679 -0.592705983452022  15.4607493943462 -6.33357077582846 -0.842368301090345  
-19.4649382045349 -16.2691206027417 0.155575565579443  18.4495627163072 -13.7852325147634 -0.0943156516497529  16.4188117498517 -8.81745634380668 -0.594098086088144  15.4034362716239 -6.33356825682834 -0.843989303317339  
-
-0 4
-0.20693445 1
-0.36619212 1
-0.46349076 1
-0.50529197 1
-0.5598552 1
-0.6275512 1
-0.74155994 1
-0.80578618 1
-0.90569987 1
-1.00012561 4
-
-0 3
-4.04682293 1
-8.09364585 3
-
-9 0 0 0 0 3 2 16 4 12 3 17.2473973492074 -1.41640362527556 -1.33650391948053  17.2406785888883 -2.64572419666515 -1.1814929221179  17.22724104825 -5.10436533944433 -0.871470926792646  17.2205222879309 -6.33368591083392 -0.716459929370019  
-17.137530413989 -1.41592883425301 -1.30912358718003  17.1415396441794 -2.64536865664826 -1.15677384494381  17.1495581045603 -5.10424829943877 -0.852074361541359  17.1535673347507 -6.33368812083403 -0.699724619815135  
-16.9169794735134 -1.41537999122694 -1.25664080168723  16.9425575547283 -2.64495799562876 -1.10940924169411  16.993713717158 -5.10411400443239 -0.814946120317862  17.0192917983729 -6.33369200883421 -0.667714559704738  
-16.6067141887766 -1.4157096902426 -1.18966791150619  16.6625140514269 -2.64520625964055 -1.04897858082381  16.7741137867276 -5.10419939943645 -0.767599920069038  16.829913649378 -6.3336959688344 -0.626910589626654  
-16.4059482492407 -1.41656426828319 -1.15038628664041  16.4813219428207 -2.64584761367101 -1.01354760414093  16.6320693299809 -5.10441430344666 -0.739870240201949  16.7074430135609 -6.33369764883448 -0.603031558132461  
-16.2946583339547 -1.41719324131306 -1.12960483665335  16.3808670180494 -2.64631952169343 -0.994803496910628  16.5532844062388 -5.10457208345415 -0.725200817325189  16.6394931003335 -6.33369836383452 -0.590399477542469  
-16.1617181976404 -1.41798919235087 -1.10506608148782  16.2608705223499 -2.64691668372179 -0.972672066709442  16.4591751617688 -5.10477166546363 -0.707884038062686  16.5583274764783 -6.33369915583455 -0.575490023734308  
-15.9172742760299 -1.41995483644423 -1.06316716049773  16.0402202918695 -2.64839110279182 -0.93489947020534  16.2861123135488 -5.105263634487 -0.678364089730564  16.4090583293884 -6.33369990083459 -0.550096399498176  
-15.5816144000869 -1.42379991362686 -1.01310229511977  15.7373309774831 -2.65127475992879 -0.889806581563543  16.0487641322754 -5.10622445153264 -0.643215153581079  16.2044807096715 -6.33369929783456 -0.519919439584847  
-15.2457588741347 -1.42875396986217 -0.970415175032245  15.4342277530864 -2.65498974710524 -0.851388108688763  15.81116549099 -5.10746130059138 -0.613333975991799  15.9996343699418 -6.33369707783445 -0.494306909638317  
-14.9311581591919 -1.4344033771305 -0.937369952442682  15.1503306396021 -2.65922590730645 -0.821678175867617  15.5886756004223 -5.10887096865834 -0.590294622717489  15.8078480808325 -6.33369349883428 -0.474602846142425  
-14.7286913395753 -1.43859883232977 -0.920095350052182  14.9675911209224 -2.66237170645586 -0.806165336100797  15.4453906936167 -5.10991745370804 -0.578305308208027  15.6842904749638 -6.33369032683413 -0.464375294256642  
-14.6163502942394 -1.4410606404467 -0.911494905993683  14.8661892261061 -2.66421756854354 -0.798447783934233  15.3658670898395 -5.11053142473721 -0.572353539815333  15.6157060217062 -6.33368835283404 -0.459306417755883  
-14.3703538225551 -1.44652299470615 -0.893189140394206  14.6441506755598 -2.66831322473807 -0.782024369474163  15.1917443815691 -5.11189368680191 -0.559694827614077  15.4655412445738 -6.33368391783383 -0.448530056684034  
-14.1238896008487 -1.45278784900372 -0.880716685731796  14.4217380749958 -2.67301044196118 -0.770870692144391  15.0174350132899 -5.1134556278761 -0.551178704969583  15.3152834874369 -6.33367822083356 -0.441332711392178  
-13.8994785001898 -1.45909637530336 -0.874210405012764  14.2192179353766 -2.67774027918583 -0.765094492920037  14.8586968057502 -5.11502808695079 -0.546862668744582  15.178436250937 -6.33367198983326 -0.437746756651854  
-
-0 4
-0.10030859 1
-0.20061717 1
-0.28141184 2
-0.30088038 1
-0.40114358 1
-0.50124738 1
-0.60135117 1
-0.70119205 1
-0.78141184 2
-0.80103292 1
-1 4
-
-0 3
-0.91224293 1
-1.82448587 3
-
-9 0 0 0 0 2 3 4 16 3 14 17.2473973492074 -1.41640362527556 -1.33650391948053  17.0477295997237 -1.41631531527136 -1.34180090173212  16.7484773155099 -1.41716046831151 -1.35733415746991  16.3850088282461 -1.41984437143899 -1.38451633176099  16.1860966287983 -1.42179260553152 -1.40105602854659  16.0248114411377 -1.42360192061746 -1.41501822720976  15.89095889478 -1.42528607869745 -1.42693525177578  15.6925325153553 -1.4280514418288 -1.4447808486234  15.5298260276271 -1.43061554895059 -1.45939596731759  15.3315693082104 -1.4340538381139 -1.47654188413197  15.1923963016001 -1.43663829023665 -1.48811481068166  15.0202900134255 -1.44006233039929 -1.50139483831242  14.8222596140195 -1.44422563559703 -1.51543068297909  14.5654421318213 -1.45006790587453 -1.53044032969201  14.3672709024087 -1.45496721210723 -1.5379204770473  14.2682020677032 -1.45750682722786 -1.54038318716427  
-17.2406785888883 -2.64572419666515 -1.1814929221179  17.0604865203296 -2.64565188166172 -1.18627159134487  16.7904364375029 -2.64627962669153 -1.20031058601169  16.4623958019218 -2.64828891078697 -1.22490020417964  16.2828806833953 -2.64974898885632 -1.23986698489052  16.1373244864817 -2.65110544292075 -1.25250357449072  16.016524210744 -2.65236837498073 -1.2632909710031  15.8374538122387 -2.65444241507924 -1.27944825577053  15.6906305952649 -2.6563657761706 -1.29268488639923  15.5117148367669 -2.6589449392931 -1.30822120913717  15.3861126008011 -2.66088362138518 -1.31871249363548  15.2307920834238 -2.66345200750718 -1.3307598272077  15.0520739649351 -2.6665747646555 -1.34350356781299  14.8202855139258 -2.67095637386361 -1.35716058746167  14.6414537054317 -2.6746300440381 -1.36400813178691  14.552044071185 -2.67653409212854 -1.36628270989494  
-17.22724104825 -5.10436533944433 -0.871470926792646  17.0860003415414 -5.10432501544242 -0.875212971080383  16.8743546814888 -5.10451794145158 -0.886263443825253  16.6171697692732 -5.10517799148293 -0.905667950246917  16.4764488025893 -5.10566175450591 -0.917488899378382  16.3623505771699 -5.10611248752732 -0.927474269992662  16.2676548326721 -5.10653296754729 -0.936002410877727  16.1272964160054 -5.10722436058013 -0.948783072244776  16.0122397305405 -5.10786623061062 -0.959262724382532  15.8720058838798 -5.10872714165151 -0.971579859107565  15.7735451992032 -5.10937428368224 -0.979907858963124  15.6517962434204 -5.11023135972295 -0.989489802848242  15.5117026667663 -5.11127302077243 -0.999649335490793  15.3299722681346 -5.11273330984179 -1.01060110300097  15.1898192914777 -5.11395570889985 -1.01618344226612  15.1197280881485 -5.11458862192991 -1.01808175435629  
-17.2205222879309 -6.33368591083392 -0.716459929370019  17.0987572621474 -6.33366158183277 -0.719683661003138  16.9163138034818 -6.33363709883161 -0.729239872757034  16.6945567529489 -6.33362253083091 -0.746051823065559  16.5732328571863 -6.33361813683071 -0.756299856392314  16.474863622514 -6.3336160108306 -0.76495961765363  16.3932201486361 -6.33361526483057 -0.772358130595041  16.2722177228888 -6.33361533383057 -0.783450480251899  16.1730442881783 -6.33361645683063 -0.792551643564181  16.0521514024362 -6.33361824283071 -0.803259183972762  15.9672614984042 -6.33361961483077 -0.810505541566946  15.8622983234187 -6.33362103683084 -0.818854790863514  15.7415170076819 -6.3336221498309 -0.827722219524694  15.584815650239 -6.33362177783088 -0.837321360190629  15.4640020845007 -6.33361854083072 -0.842271097025728  15.4035701016303 -6.3336158858306 -0.843981276536958  
-
-0 3
-1.03589701 1
-2.07179401 3
-
-0 4
-0.20060953 1
-0.30083473 1
-0.36612931 1
-0.40105994 1
-0.46342795 1
-0.50112525 1
-0.60119055 1
-0.62748839 1
-0.70103075 1
-0.74149713 1
-0.80087096 1
-0.90043548 1
-1 4
-
-9 0 0 0 0 2 3 4 56 3 54 14.2682020677032 -1.45750682722786 -1.54038318716427  13.994730494714 -1.46457374056352 -1.54748268250148  13.6727119494189 -1.47356179299043 -1.53994658014353  13.3284045130652 -1.4841682214942 -1.52382488437779  13.2456510791346 -1.48677157661786 -1.51964050717905  13.2031165771144 -1.48812337568206 -1.51742649907389  13.1431408742657 -1.49004037377312 -1.5142602899235  13.0925789718641 -1.49167934585096 -1.5115063997927  12.9242246638677 -1.49720484811341 -1.50221147735121  12.7898721974863 -1.5017775593306 -1.49450940498538  12.6232441795719 -1.50766974861047 -1.48567868256595  12.5703738570607 -1.5095611367003 -1.4829532994365  12.5211765347239 -1.51134104078484 -1.48040870331564  12.5009980337655 -1.51207351981964 -1.47935993326582  12.468965062244 -1.51323848187497 -1.47768962218649  12.3846822082408 -1.51632319802148 -1.47322926197463  12.2340792610876 -1.52191828828724 -1.46462452056593  12.0732668334494 -1.5279915515757 -1.45307263001724  11.9496402775774 -1.53270059679937 -1.44181113848235  11.8882187446601 -1.53504734391083 -1.43553216018412  11.846804302693 -1.53663172698609 -1.43103364397045  11.8224610115367 -1.53756391503036 -1.42825178983832  11.804486090683 -1.53825326606311 -1.42615261173861  11.7827537096507 -1.53908707810271 -1.42359988861736  11.7417575077035 -1.5406638771776 -1.41865824238265  11.6931599653953 -1.54254681226704 -1.41269780209954  11.6495445233236 -1.544251380348 -1.40741637084869  11.6163239217458 -1.54555950841013 -1.40347658466156  11.5872365303642 -1.54671446046499 -1.40013948150305  11.5604829390934 -1.54778391051579 -1.39716845936194  11.507248516565 -1.54992442761746 -1.39135200708567  11.4601754543291 -1.55183974770843 -1.38604343383353  11.4225753425432 -1.55336627178094 -1.38080863058489  11.4195645924002 -1.55348849278674 -1.38038619256482  11.3880377309027 -1.55476809184752 -1.3759032733519  11.35660935941 -1.55604029490794 -1.37068160410388  11.3241922878702 -1.55733886496962 -1.36400811378691  11.3098733671901 -1.55791167799683 -1.36098789464345  11.2860035460564 -1.55886155604195 -1.35549999738279  11.2584815847492 -1.55992948709267 -1.34733494999497  11.2379230737727 -1.56071473812997 -1.3403540666634  11.2263446732227 -1.56114875715058 -1.33573039044379  11.2210482529712 -1.5613448321599 -1.33340035333312  11.2153324926997 -1.5615555281699 -1.3308040252098  11.2109207624901 -1.56171635317754 -1.32863594010682  11.2029006021092 -1.56200535919127 -1.32435818690364  11.1894552114706 -1.562483970214 -1.3165949295349  11.1717455806294 -1.56308520124256 -1.30319488589843  11.1582739999896 -1.56349704326212 -1.28815726618418  11.1519630196898 -1.56367260227046 -1.27914475575611  11.1495295895742 -1.56373632227349 -1.2752157535695  11.1432976192782 -1.56388869728072 -1.26390727903237  11.1396882991068 -1.56393752528304 -1.25281743950563  11.1375131190035 -1.56383690027826 -1.23125440648144  11.1385054890506 -1.56369168027137 -1.2192108309094  11.141208589179 -1.56350206126236 -1.20988124246627  
-14.552044071185 -2.67653409212854 -1.36628270989494  14.3046563994347 -2.68183652038039 -1.37341077523351  14.0133881856002 -2.68857510670046 -1.36634251189778  13.701683920795 -2.69652714907816 -1.35178720920644  13.6267552272361 -2.69847905217087 -1.34803801902837  13.5882431054069 -2.69949261821901 -1.34605799793432  13.5339389428276 -2.70092999428728 -1.34323094680004  13.4881605406532 -2.70215898034566 -1.34077985568362  13.3357556234144 -2.70630261454247 -1.33252240929142  13.2141850576401 -2.70973252070538 -1.32571572496812  13.0635881804871 -2.7141542599154 -1.31793700959865  13.0158220982183 -2.71557383498283 -1.3155380184847  12.9713936961081 -2.71690994204629 -1.31331014837888  12.9531711852426 -2.71745978407241 -1.31238954633516  12.9242456738687 -2.71833429611394 -1.31092606426564  12.8481475502542 -2.72065000222393 -1.30701805208002  12.712176943796 -2.72485017342343 -1.29945968672102  12.5668574968937 -2.72940736463989 -1.28919333423339  12.454901421576 -2.73293813680759 -1.27902995775066  12.3991993689303 -2.73469682289112 -1.2733211144795  12.361611967145 -2.7358838649475 -1.26921908328467  12.339504196095 -2.73658212498067 -1.266678552164  12.3231745053194 -2.73709842600519 -1.26475733107275  12.3034318743816 -2.73772293303486 -1.26242289496187  12.2661823326124 -2.73890385109095 -1.25790150774711  12.2220299305152 -2.74031407515793 -1.2524336194874  12.1824316486344 -2.74159100021858 -1.24758254525699  12.1522913972028 -2.74257115326513 -1.24395764908482  12.1259256059505 -2.74343678630625 -1.24088266693876  12.1016948147996 -2.74423853334433 -1.23814124480855  12.0535208325115 -2.74584368542057 -1.23278868255432  12.0110258504931 -2.74728122348885 -1.22802524632807  11.9771559588844 -2.74842813754333 -1.22357159311653  11.9744437987555 -2.74851996354769 -1.22321162309943  11.9460451574067 -2.74948135459335 -1.21939341491808  11.9177607160632 -2.75043758763877 -1.21500261870953  11.8885226046745 -2.75141257568508 -1.20916586543229  11.8756044540609 -2.7518425997055 -1.20651569130642  11.8540454130369 -2.75255528873935 -1.20163337807452  11.8290802118511 -2.75335545777736 -1.19431270572681  11.8103463909613 -2.75394290880526 -1.18794040042414  11.7997480304579 -2.75426721282067 -1.18373155722423  11.7948910002272 -2.75441364182762 -1.18161780512383  11.7896462199781 -2.75457096383509 -1.17926459001206  11.7855971597858 -2.7546910238408 -1.17730211691885  11.7782270794357 -2.75490672285104 -1.17343310273508  11.7658670088487 -2.75526389886801 -1.16641347940167  11.7495882680755 -2.75571279188933 -1.15427240682499  11.7374438674986 -2.756021653904 -1.14069687318019  11.7317780972295 -2.75615399691028 -1.13251413979153  11.7295961571259 -2.75620220091257 -1.12893790162167  11.7240056568604 -2.75631794591807 -1.11862894313202  11.7207592467062 -2.75635684791992 -1.10848724665032  11.7187944566128 -2.7562869689166 -1.08907632972835  11.7196803366549 -2.7561817699116 -1.07834766121876  11.722123366771 -2.75604352490504 -1.06990632381782  
-15.1197280881485 -5.11458862192991 -1.01808175435629  14.9245082188761 -5.11636208101415 -1.02526695869757  14.6947406479627 -5.11860173312053 -1.01913437540628  14.4482427262547 -5.12124500524607 -1.00771185886374  14.3889635234391 -5.1218940012769 -1.00483304172701  14.3584961519919 -5.12223110429291 -1.00332099565519  14.3155350799514 -5.12270923731562 -1.00117225855313  14.2793236682314 -5.12311825133505 -0.999326768425472  14.1588175225077 -5.12449814640059 -0.99314427323182  14.0628107879476 -5.12564244445494 -0.988128364973577  13.9442761923175 -5.12712328352528 -0.982453663604043  13.9067185705337 -5.12759923154788 -0.980707458541103  13.8718280188764 -5.12804774656919 -0.979113037345372  13.8575174981967 -5.12823231057795 -0.978448772613821  13.834806907118 -5.1285259265919 -0.977398948543957  13.7750782242811 -5.12930361262884 -0.974595634110807  13.6683722992128 -5.13071394369582 -0.969130018571204  13.5540388137823 -5.13223899076826 -0.961434743995698  13.4654237195733 -5.13341321882403 -0.953467595787279  13.4211606174709 -5.1339957818517 -0.948899020950283  13.3912273060491 -5.13438814087034 -0.945589961793111  13.3735905452114 -5.13461854588128 -0.943532075435367  13.3605513245921 -5.13478874688937 -0.941966770431019  13.3447882138434 -5.13499464289915 -0.940068907130875  13.3150319724301 -5.13538379791763 -0.936388038206043  13.2797698707552 -5.13584859993971 -0.931905252563122  13.248205909256 -5.13627023895973 -0.92791489319359  13.224226358117 -5.13659444397513 -0.92491977749133  13.2033037471232 -5.13688143798876 -0.922369037550176  13.184118556212 -5.13714778000142 -0.920086816621777  13.1460654744046 -5.1376822000268 -0.915662034361611  13.1127266528211 -5.13816417404969 -0.911988872707145  13.0863171915667 -5.13855187006811 -0.909097518619813  13.0842022014662 -5.13858290406958 -0.90886248472865  13.0620600204145 -5.13890787808502 -0.906373698730438  13.0400634393697 -5.13923217310042 -0.903644647350816  13.017183238283 -5.13955999811599 -0.89948136723307  13.0070666278025 -5.13970444312285 -0.897571284272346  12.990129146998 -5.13994275513417 -0.893900138327976  12.9702774460551 -5.14020739814674 -0.888268218330474  12.9551930153386 -5.14039925215585 -0.883113066115618  12.9465547349283 -5.14050412416083 -0.879733890305116  12.9425764947394 -5.14055126216307 -0.878052709095264  12.938273684535 -5.14060183616547 -0.876185720276587  12.9349499543771 -5.1406403661673 -0.874634472672906  12.9288800340888 -5.14070944917059 -0.871582935347966  12.9186906236048 -5.14082375617601 -0.866050578185193  12.9052736329676 -5.14096797318286 -0.856427449078119  12.8957835925168 -5.14107087518775 -0.845776088812207  12.891408272309 -5.14111678418993 -0.839252907002372  12.8897292922293 -5.14113395919075 -0.836382197566021  12.8854217120247 -5.14117644219277 -0.828072271551321  12.8829011319049 -5.14119549319367 -0.819826862189685  12.8813571518316 -5.14118710519327 -0.804720176462156  12.8820300118636 -5.14116194819208 -0.796621321647481  12.8839529119549 -5.14112645419039 -0.789956486170918  
-15.4035701016303 -6.3336158858306 -0.843981276536958  15.2344341335968 -6.33362486183102 -0.851195051269594  15.0354168841439 -6.33361504683056 -0.845530307270533  14.8215221339845 -6.33360393383003 -0.835674183472392  14.7700676815405 -6.33360147682991 -0.833230552696326  14.7436226802845 -6.33360034682986 -0.831952494615621  14.7063331485133 -6.33359885882979 -0.830142915079671  14.6749052370206 -6.33359788682974 -0.828600224766397  14.5703484720544 -6.33359591282965 -0.823455205322022  14.4871236581014 -6.33359740582972 -0.819334684846307  14.3846201932328 -6.33360779483021 -0.814711990536741  14.3521668116913 -6.33361192983041 -0.813292178379304  14.3220451802606 -6.33361664883063 -0.812014481908616  14.3096906496738 -6.33361857383073 -0.811478385843153  14.2900875187427 -6.33362174083088 -0.810635390793113  14.2385435562945 -6.33363041683129 -0.808384424966198  14.1464699719212 -6.33364582783202 -0.803965184556295  14.0476294772266 -6.33365480383245 -0.797555448771849  13.9706848635719 -6.33365075983225 -0.790686414975588  13.9321412517412 -6.33364526083199 -0.786687974405672  13.9060349705012 -6.33364027883176 -0.783775400987332  13.8906337297697 -6.33363675583159 -0.78195883725105  13.8792397392285 -6.33363390683145 -0.780571489885155  13.8654663785743 -6.33363049783129 -0.778891913335379  13.8394567973389 -6.33362377183097 -0.775631303400508  13.8086398358752 -6.3336158628306 -0.771641069270982  13.7810930445668 -6.33360985783031 -0.768081067161891  13.7601938335741 -6.33360608883013 -0.765400841664587  13.7419928227096 -6.33360376383002 -0.763112222825884  13.7253304319182 -6.33360240382996 -0.76105960242839  13.6923378003511 -6.33360145682991 -0.757098710070257  13.6635770489851 -6.33360564883011 -0.753970685711684  13.6408978079079 -6.3336137358305 -0.751860481171455  13.6390814078216 -6.33361437383053 -0.751687915403259  13.6200674469185 -6.33362114083085 -0.749863840466619  13.601214806023 -6.33362946583124 -0.747965661626461  13.5815135550872 -6.33363370883144 -0.744639118308459  13.5727977146733 -6.33363536483152 -0.743099080675311  13.5581710139785 -6.33363648783158 -0.740033518609704  13.5408760631571 -6.33363336783143 -0.735245974412308  13.5276163325273 -6.33362742383115 -0.730699399186358  13.5199580821635 -6.33362258083092 -0.727735057005559  13.5164192419954 -6.3336200718308 -0.72627016110598  13.5125874218134 -6.33361727283066 -0.72464628526885  13.5096263516728 -6.33361503683056 -0.723300650344936  13.5042065114154 -6.33361081283036 -0.72065785146941  13.4951024209829 -6.33360368583002 -0.715869127731957  13.4831163104136 -6.33359556382963 -0.707504970144681  13.4749534600259 -6.33359548582963 -0.698315696448214  13.4712233498487 -6.33359817782976 -0.692622290827792  13.4697958597809 -6.33359983782984 -0.690104345558196  13.4661297496068 -6.33360569083011 -0.68279393577097  13.4639720795043 -6.33361481583055 -0.675496669804369  13.462638499441 -6.33363717283161 -0.66254209963906  13.4632048594679 -6.33365203783231 -0.655758151886839  13.4648676895469 -6.33366791783307 -0.649981567562466  
-
-0 3
-0.99202736 1
-1.98405473 3
-
-0 4
-0.25497914 1
-0.29985592 1
-0.32138099 1
-0.33224101 1
-0.33957049 1
-0.37738166 1
-0.37945303 1
-0.49675462 1
-0.50278258 1
-0.53502039 1
-0.54611996 1
-0.54872251 1
-0.55386335 1
-0.57603323 1
-0.62743212 1
-0.69452426 1
-0.72624847 1
-0.74312738 1
-0.75208166 1
-0.76508939 1
-0.76597514 1
-0.76895748 1
-0.78549459 1
-0.80448165 1
-0.81460865 1
-0.82644819 1
-0.83565825 1
-0.84188614 1
-0.85152015 1
-0.88552919 1
-0.88600759 1
-0.8869222 1
-0.88836446 1
-0.91570647 1
-0.91664922 1
-0.91923484 1
-0.92935392 1
-0.939473 1
-0.94595868 1
-0.94961178 1
-0.95107783 1
-0.95132585 1
-0.95543082 1
-0.95562478 1
-0.95975056 1
-0.96983696 1
-0.97644745 1
-0.97789863 1
-0.97992336 1
-0.98072177 1
-0.98996168 1
-0.99094788 1
-1 4
-
-9 0 0 0 0 3 2 34 4 32 3 13.4648676895469 -6.33366791783307 -0.649981567562466  12.8839529119549 -5.14112645419039 -0.789956486170918  11.722123366771 -2.75604352490504 -1.06990632381782  11.141208589179 -1.56350206126236 -1.20988124246627  
-13.4716468998689 -6.33367414083336 -0.628680811970735  12.8916087923185 -5.14093460818128 -0.765426632795812  11.7315325772179 -2.75545554187711 -1.03891827434597  11.1514944696675 -1.56271600922502 -1.17566409484105  
-13.4855407005288 -6.33367363283334 -0.608888978590673  12.907513343074 -5.14061773816623 -0.742612153532183  11.7514586181643 -2.75450594883201 -1.0100585029752  11.1734312607095 -1.56145005416489 -1.14378167832671  
-13.5046796014378 -6.33367001583317 -0.592552423694729  12.9294448941156 -5.14022329814749 -0.723735697635599  11.7789754694713 -2.75332986177614 -0.986102245507341  11.2037407621491 -1.55988314409047 -1.11728551906821  
-13.5108563417312 -6.33366875783311 -0.587629427220899  12.9365234344519 -5.14009737714151 -0.718046955865399  11.7878575998932 -2.75295461375832 -0.978882013144398  11.2135246826138 -1.55938323306673 -1.1092995416889  
-13.5183692620881 -6.33366709783303 -0.582537830359061  12.9451351348609 -5.13994794613442 -0.712171157406313  11.7986668804066 -2.75250964273719 -0.971437811500818  11.2254327531794 -1.55879049103857 -1.10107113829807  
-13.5254668624252 -6.33366562583296 -0.578158086271034  12.9532749452475 -5.1398085831278 -0.707116241276218  11.8088911308922 -2.75209449771747 -0.965032551276584  11.2366992137145 -1.5582374550123 -1.09399070596177  
-13.5297735326297 -6.33366477983292 -0.575601990599626  12.9582150254822 -5.1397245111238 -0.704169366616249  11.815098021187 -2.75184397470557 -0.961304118649493  11.2435395240394 -1.55790370699645 -1.08987149476612  
-13.5333024627973 -6.33366414283289 -0.573589012404015  12.9622645056745 -5.13965595812055 -0.701846172555903  11.8201885914288 -2.75163958869586 -0.958360492859679  11.249150634306 -1.55763140398352 -1.08661765261157  
-13.5362538629375 -6.33366364183287 -0.571939274515657  12.9656517858354 -5.13959880211783 -0.69994347922553  11.8244476416311 -2.75146912268776 -0.955951888655276  11.253845564529 -1.55740428297273 -1.08395609348515  
-13.5402414031269 -6.33366299283284 -0.569754445801883  12.9702290560528 -5.13952174911417 -0.697421283755732  11.8302043719045 -2.75123926267685 -0.95275495965343  11.2601920248304 -1.55709801895818 -1.08042179731728  
-13.5484487935168 -6.33366182983278 -0.565468143308294  12.9796530865004 -5.13936416710669 -0.692472292090668  11.8420616524677 -2.7507688416545 -0.946480589645414  11.2732659454514 -1.55647117892841 -1.07348473798779  
-13.557211853933 -6.33366097483274 -0.561350832012733  12.9897214069786 -5.1391981090988 -0.68771420443467  11.8547405130699 -2.75027237863092 -0.940440949268546  11.2872500661156 -1.55580951389698 -1.06680432167048  
-13.5696778845251 -6.33366032783271 -0.55610629040363  13.0040475376591 -5.13896522508774 -0.681659025867065  11.8727868439271 -2.7495750195978 -0.932764496803934  11.3071564970611 -1.55487991685283 -1.05831723226737  
-13.5800292350167 -6.33366041483271 -0.552305959443124  13.0159468182243 -5.1387750140787 -0.677277945958975  11.8877819846393 -2.74900421257069 -0.927221919000676  11.3236995678468 -1.55411881181668 -1.05219390597653  
-13.5905560755167 -6.33366127083275 -0.54875030884424  13.0280765588004 -5.13858222806955 -0.673130577151985  11.9031175253677 -2.74842414354314 -0.921891113777476  11.3406380086514 -1.55334510177993 -1.04627138169522  
-13.5979462458678 -6.33366213183279 -0.546311407568398  13.0366036992054 -5.13844677606311 -0.670264654105861  11.9139185858807 -2.74801606452375 -0.918171147170787  11.3525760392184 -1.55280070875407 -1.04212439349825  
-13.6044516061767 -6.33366316983284 -0.544194393997845  13.0441130795621 -5.13832793705747 -0.667779838317839  11.9234360163328 -2.74765747150672 -0.914950726957826  11.3630974897181 -1.55232223773135 -1.03853617132782  
-13.6134620266047 -6.33366497983293 -0.541243759777698  13.0544972000553 -5.13816506704973 -0.664377033096214  11.9365675369565 -2.74716524048334 -0.910643579713247  11.3776027104071 -1.55166532770014 -1.03377685310176  
-13.6236759270899 -6.33366745683305 -0.53788825228832  13.066238850613 -5.13798313904109 -0.660597993826719  11.9513647176593 -2.74661450145718 -0.906017476903519  11.3939276411825 -1.55093018266523 -1.02872721886192  
-13.6385095577944 -6.33367145983324 -0.533215463316374  13.0832003514186 -5.1377264990289 -0.655545921806759  11.9725819486671 -2.74583657642023 -0.900206838787528  11.4172727422913 -1.5498916156159 -1.02253729756791  
-13.6494461783139 -6.33367433483337 -0.530117558859232  13.0957042120125 -5.13753880301999 -0.652190486167384  11.9882202794099 -2.74526773939321 -0.89633634076369  11.4344783131086 -1.54913220757983 -1.01840926837184  
-13.6575557886991 -6.33367614483346 -0.52810098438345  13.1050253724553 -5.13739704501325 -0.649873876857351  11.9999645399677 -2.74483884637284 -0.893419661815155  11.4474341237239 -1.54855974755264 -1.01519255421906  
-13.6623815389283 -6.33367716583351 -0.526947847068678  13.1105810027192 -5.13731221700923 -0.648522522513166  12.0069799503009 -2.74458231836066 -0.891671873402139  11.4551794140918 -1.54821736953638 -1.01324654912663  
-13.670439259311 -6.33367863683358 -0.525192101125285  13.119883853161 -5.13716921900243 -0.646378003251306  12.0187730508611 -2.74415038234014 -0.888749807503349  11.4682176547111 -1.547640964509 -1.00993570996937  
-13.6795697897447 -6.33367995183364 -0.523375070778981  13.1304388536624 -5.13700661699471 -0.644093025892776  12.0321769714977 -2.74365994731685 -0.885528936110366  11.4830460354154 -1.54698661147792 -1.00624689079416  
-13.6871749101059 -6.33368074383368 -0.521935718370615  13.1392160640792 -5.13687217298832 -0.642299532647589  12.043298362026 -2.74325503129762 -0.883027161201538  11.4953395059993 -1.54644646045226 -1.00339097565851  
-13.6957310005123 -6.33368142383371 -0.520316044103685  13.149064144547 -5.13672254598122 -0.640344004554707  12.0557304426164 -2.74280479027623 -0.880399925446751  11.5090635966512 -1.54584591142374 -1.00042788551777  
-13.7033859008759 -6.33368177483373 -0.518836209713397  13.157844034964 -5.13659046897494 -0.638635827243573  12.0667602931403 -2.74240785725738 -0.878235062313925  11.5212184272285 -1.54531655039859 -0.998034679844101  
-13.7100939911945 -6.33368182383373 -0.517435040326845  13.1655204453286 -5.13647539996948 -0.637074062029393  12.0763733535969 -2.74206255224098 -0.876352105424489  11.5317998077311 -1.54485612837673 -0.995991127127038  
-13.7153402314437 -6.33368177783373 -0.516319447243857  13.1715226856137 -5.1363853729652 -0.635835662410572  12.0838875939538 -2.74179256222815 -0.874868092744003  11.5400700481239 -1.54449615735963 -0.994384307900718  
-13.7298181921313 -6.3336812708337 -0.51316946300424  13.1880844164004 -5.13613659895339 -0.632351818805098  12.1046168749384 -2.74104725319275 -0.870716530416814  11.5628830992075 -1.54350258031244 -0.989898886217672  
-13.7441149028104 -6.33367869683358 -0.509979563562728  13.2045219571811 -5.13588354994137 -0.628637679878686  12.1253360459225 -2.74029325515694 -0.865953912500602  11.5857430902932 -1.54249810826473 -0.98461202881656  
-13.7551732833356 -6.33367429383337 -0.507938351705776  13.2172205577843 -5.13568794493208 -0.626233644924501  12.1413151166815 -2.73971524812949 -0.86282423137195  11.6033624011301 -1.54172890022819 -0.981119524590675  
-
-0 4
-0.19932786 1
-0.20034405 1
-0.22475745 1
-0.27019476 1
-0.28188184 1
-0.29921296 1
-0.31466043 1
-0.31775847 1
-0.32899256 1
-0.35467696 1
-0.39909806 1
-0.41449401 1
-0.47595518 1
-0.49918188 1
-0.5151171 1
-0.54615719 1
-0.56047289 1
-0.5992657 1
-0.64065463 1
-0.69662422 1
-0.69935878 1
-0.71520522 1
-0.74103304 1
-0.77367941 1
-0.79945187 1
-0.81107809 1
-0.85226486 1
-0.86941453 1
-0.87189401 1
-0.89972593 1
-1 4
-
-0 3
-6.03441167 1
-12.06882334 3
-
-9 1 1 0 0 2 2 4 4 3 3 20.1549001573063 -1.3686672230082 1.41444126018235  1 16.9193731036271 -1.36355460076537 1.41444126018235  1 10.4483189962685 -1.35332935627969 1.41444126118235  1 7.21279194058922 -1.34821673503686 1.41444126218235  1 
-20.1549001573063 -0.799126971766493 1.97500000380746  0.85635206 16.9440827048007 -0.798168473190966 1.97773048693715  0.85417761 10.4731550374481 -0.796236761099215 1.98323337219853  0.84982873 7.21279194058922 -0.795263472082986 1.98600598933022  0.84765429 
-20.1549001573063 0.799124827656391 1.97500018380747  0.85635206 16.9440827048007 0.798166722940883 1.97773066693716  0.85417761 10.4731550374481 0.79623580459917 1.98323355119853  0.84982873 7.21279194058922 0.79526291551296 1.98600616733023  0.84765429 
-20.1549001573063 1.36866520500811 1.41444156718237  1 16.9193731036271 1.36355297976529 1.41444156618237  1 10.4483189962685 1.35332853127965 1.41444156518237  1 7.21279194058922 1.34821630603684 1.41444156518237  1 
-
-0 3
-0.5 1
-1 3
-
-0 3
-2.02854902 1
-4.05709804 3
-
-9 0 0 0 0 2 3 4 56 3 54 15.4035701016303 6.3336158858306 -0.843981276536958  15.2344341335968 6.33362486183102 -0.851195051269594  15.0354168841439 6.33361504683056 -0.845530307270533  14.8215221339845 6.33360393383003 -0.835674183472392  14.7700676815405 6.33360147682991 -0.833230552696326  14.7436226802845 6.33360034682986 -0.831952494615621  14.7063331485133 6.33359885882979 -0.830142915079671  14.6749052370206 6.33359788682974 -0.828600224726397  14.5703484720544 6.33359591282965 -0.823455205262022  14.4871236581014 6.33359740582972 -0.819334685036307  14.3846201932328 6.33360779483021 -0.814711990606741  14.3521668116913 6.33361192983041 -0.813292178379304  14.3220451802606 6.33361664883063 -0.812014481908616  14.3096906496738 6.33361857383073 -0.811478385843153  14.2900875187427 6.33362174083088 -0.810635390793113  14.2385435562945 6.33363041683129 -0.808384424966198  14.1464699719212 6.33364582783202 -0.803965184556295  14.0476293172266 6.33365480183245 -0.797555207601838  13.9706848635719 6.33365075983225 -0.790686414975588  13.9321412517412 6.33364526083199 -0.786687974405672  13.9060349705012 6.33364027883176 -0.783775400987332  13.8906337297697 6.33363675583159 -0.78195883725105  13.8792397392285 6.33363390683145 -0.780571489885155  13.8654663785743 6.33363049783129 -0.778891913335379  13.8394567973389 6.33362377183097 -0.775631303400508  13.8086398358752 6.3336158628306 -0.771641069270982  13.7810930445668 6.33360985783031 -0.768081067161891  13.7601938335741 6.33360608883013 -0.765400841664587  13.7419928227096 6.33360376383002 -0.763112222825884  13.7253304319182 6.33360240382996 -0.76105960242839  13.6923378003511 6.33360145682991 -0.757098710070257  13.6635770489851 6.33360564883011 -0.753970685711684  13.6408978079079 6.3336137358305 -0.751860481171455  13.6390814078216 6.33361437383053 -0.751687915403259  13.6200674469185 6.33362114083085 -0.749863840466619  13.601214806023 6.33362946583124 -0.747965661626461  13.5815135550872 6.33363370883144 -0.744639118308459  13.5727977146733 6.33363536483152 -0.743099080675311  13.5581710139785 6.33363648783158 -0.740033518609704  13.5408760631571 6.33363336783143 -0.735245974412308  13.5276163325273 6.33362742383115 -0.730699399186358  13.5199580821635 6.33362258083092 -0.727735057005559  13.5164192419954 6.3336200718308 -0.72627016110598  13.5125874218134 6.33361727283066 -0.72464628526885  13.5096263516728 6.33361503683056 -0.723300650344936  13.5042065114154 6.33361081283036 -0.72065785146941  13.4951024209829 6.33360368583002 -0.715869127731957  13.4831163104136 6.33359556382963 -0.707504970144681  13.4749534600259 6.33359548582963 -0.698315696448214  13.4712233498487 6.33359817782976 -0.692622290827792  13.4697958597809 6.33359983782984 -0.690104345558196  13.4661297496068 6.33360569083011 -0.68279393577097  13.4639720795043 6.33361481583055 -0.675496669804369  13.462638499441 6.33363717283161 -0.66254209963906  13.4632048594679 6.33365203783231 -0.655758151886839  13.4648676895469 6.33366791783307 -0.649981567562466  
-15.1197280881485 5.11458862192991 -1.01808175435629  14.9245082188761 5.11636208101415 -1.02526695869757  14.6947406479627 5.11860173312053 -1.01913437540628  14.4482427262547 5.12124500524607 -1.00771185886374  14.3889635234391 5.1218940012769 -1.00483304172701  14.3584961519919 5.12223110429291 -1.00332099565519  14.3155350799514 5.12270923731562 -1.00117225855313  14.2793236682314 5.12311825133505 -0.999326768395472  14.1588175225077 5.12449814640059 -0.99314427318182  14.0628107979476 5.12564244445494 -0.988128365113577  13.9442761923175 5.12712328352528 -0.982453663654043  13.9067185705337 5.12759923154788 -0.980707458541103  13.8718280188764 5.12804774656919 -0.979113037345372  13.8575174981967 5.12823231057795 -0.978448772613821  13.834806907118 5.1285259265919 -0.977398948543957  13.7750782242811 5.12930361262884 -0.974595634110807  13.6683722992128 5.13071394369582 -0.969130018571204  13.5540386937823 5.13223898876826 -0.961434563125689  13.4654237195733 5.13341321882403 -0.953467595787279  13.4211606174709 5.1339957818517 -0.948899020950283  13.3912273060491 5.13438814087034 -0.945589961793111  13.3735905452114 5.13461854588128 -0.943532075435367  13.3605513245921 5.13478874688937 -0.941966770431019  13.3447882138434 5.13499464289915 -0.940068907130875  13.3150319724301 5.13538379791763 -0.936388038206043  13.2797698707552 5.13584859993971 -0.931905252563122  13.248205909256 5.13627023895973 -0.92791489319359  13.224226358117 5.13659444397513 -0.92491977749133  13.2033037471232 5.13688143798876 -0.922369037550176  13.184118556212 5.13714778000142 -0.920086816621777  13.1460654744046 5.1376822000268 -0.915662034361611  13.1127266528211 5.13816417404969 -0.911988872707145  13.0863171915667 5.13855187006811 -0.909097518619813  13.0842022014662 5.13858290406958 -0.90886248472865  13.0620600204145 5.13890787808502 -0.906373698730438  13.0400634393697 5.13923217310042 -0.903644647350816  13.017183238283 5.13955999811599 -0.89948136723307  13.0070666278025 5.13970444312285 -0.897571284272346  12.990129146998 5.13994275513417 -0.893900138327976  12.9702774460551 5.14020739814674 -0.888268218330474  12.9551930153386 5.14039925215585 -0.883113066115618  12.9465547349283 5.14050412416083 -0.879733890305116  12.9425764947394 5.14055126216307 -0.878052709095264  12.938273684535 5.14060183616547 -0.876185720276587  12.9349499543771 5.1406403661673 -0.874634472672906  12.9288800340888 5.14070944917059 -0.871582935347966  12.9186906236048 5.14082375617601 -0.866050578185193  12.9052736329676 5.14096797318286 -0.856427449078119  12.8957835925168 5.14107087518775 -0.845776088812207  12.891408272309 5.14111678418993 -0.839252907002372  12.8897292922293 5.14113395919075 -0.836382197566021  12.8854217120247 5.14117644219277 -0.828072271551321  12.8829011319049 5.14119549319367 -0.819826862189685  12.8813571518316 5.14118710519327 -0.804720176462156  12.8820300118636 5.14116194819208 -0.796621321647481  12.8839529119549 5.14112645419039 -0.789956486170918  
-14.552044071185 2.67653409212854 -1.36628270989494  14.3046563994347 2.68183652038039 -1.37341077523351  14.0133881856002 2.68857510670046 -1.36634251189778  13.701683920795 2.69652714907816 -1.35178720920644  13.6267552272361 2.69847905217087 -1.34803801902837  13.5882431054069 2.69949261821901 -1.34605799793432  13.5339389428276 2.70092999428728 -1.34323094680004  13.4881605406532 2.70215898034566 -1.34077985568362  13.3357556234144 2.70630261454247 -1.33252240929142  13.2141850576401 2.70973252070538 -1.32571572496812  13.0635881804871 2.7141542599154 -1.31793700959865  13.0158220982183 2.71557383498283 -1.3155380184847  12.9713936961081 2.71690994204629 -1.31331014837888  12.9531711852426 2.71745978407241 -1.31238954633516  12.9242456738687 2.71833429611394 -1.31092606426564  12.8481475502542 2.72065000222393 -1.30701805208002  12.712176943796 2.72485017342343 -1.29945968672102  12.5668574568937 2.72940736463989 -1.28919327423339  12.454901421576 2.73293813680759 -1.27902995775066  12.3991993689303 2.73469682289112 -1.2733211144795  12.361611967145 2.7358838649475 -1.26921908328467  12.339504196095 2.73658212498067 -1.266678552164  12.3231745053194 2.73709842600519 -1.26475733107275  12.3034318743816 2.73772293303486 -1.26242289496187  12.2661823326124 2.73890385109095 -1.25790150774711  12.2220299305152 2.74031407515793 -1.2524336194874  12.1824316486344 2.74159100021858 -1.24758254525699  12.1522913972028 2.74257115326513 -1.24395764908482  12.1259256059505 2.74343678630625 -1.24088266693876  12.1016948147996 2.74423853334433 -1.23814124480855  12.0535208325115 2.74584368542057 -1.23278868255432  12.0110258504931 2.74728122348885 -1.22802524632807  11.9771559588844 2.74842813754333 -1.22357159311653  11.9744437987555 2.74851996354769 -1.22321162309943  11.9460451574067 2.74948135459335 -1.21939341491808  11.9177607160632 2.75043758763877 -1.21500261870953  11.8885226046745 2.75141257568508 -1.20916586543229  11.8756044540609 2.7518425997055 -1.20651569130642  11.8540454130369 2.75255528873935 -1.20163337807452  11.8290802118511 2.75335545777736 -1.19431270572681  11.8103463909613 2.75394290880526 -1.18794040042414  11.7997480304579 2.75426721282067 -1.18373155722423  11.7948910002272 2.75441364182762 -1.18161780512383  11.7896462199781 2.75457096383509 -1.17926459001206  11.7855971597858 2.7546910238408 -1.17730211691885  11.7782270794357 2.75490672285104 -1.17343310273508  11.7658670088487 2.75526389886801 -1.16641347940167  11.7495882680755 2.75571279188933 -1.15427240682499  11.7374438674986 2.756021653904 -1.14069687318019  11.7317780972295 2.75615399691028 -1.13251413979153  11.7295961571259 2.75620220091257 -1.12893790162167  11.7240056568604 2.75631794591807 -1.11862894313202  11.7207592467062 2.75635684791992 -1.10848724665032  11.7187944566128 2.7562869689166 -1.08907632972835  11.7196803366549 2.7561817699116 -1.07834766121876  11.722123366771 2.75604352490504 -1.06990632381782  
-14.2682020677032 1.45750682722786 -1.54038318716427  13.994730494714 1.46457374056352 -1.54748268250148  13.6727119494189 1.47356179299043 -1.53994658014353  13.3284045130652 1.4841682214942 -1.52382488437779  13.2456510791346 1.48677157661786 -1.51964050717905  13.2031165771144 1.48812337568206 -1.51742649907389  13.1431408742657 1.49004037377312 -1.5142602899235  13.0925789718641 1.49167934585096 -1.5115063997927  12.9242246638677 1.49720484811341 -1.50221147735121  12.7898721974863 1.5017775593306 -1.49450940498538  12.6232441795719 1.50766974861047 -1.48567868256595  12.5703738570607 1.5095611367003 -1.4829532994365  12.5211765347239 1.51134104078484 -1.48040870331564  12.5009980337655 1.51207351981964 -1.47935993326582  12.468965062244 1.51323848187497 -1.47768962218649  12.3846822082408 1.51632319802148 -1.47322926197463  12.2340792610876 1.52191828828724 -1.46462452056593  12.0732668334494 1.5279915515757 -1.45307263001724  11.9496402775774 1.53270059679937 -1.44181113848235  11.8882187446601 1.53504734391083 -1.43553216018412  11.846804302693 1.53663172698609 -1.43103364397045  11.8224610115367 1.53756391503036 -1.42825178983832  11.804486090683 1.53825326606311 -1.42615261173861  11.7827537096507 1.53908707810271 -1.42359988861736  11.7417575077035 1.5406638771776 -1.41865824238265  11.6931599653953 1.54254681226704 -1.41269780209954  11.6495445233236 1.544251380348 -1.40741637084869  11.6163239217458 1.54555950841013 -1.40347658466156  11.5872365303642 1.54671446046499 -1.40013948150305  11.5604829390934 1.54778391051579 -1.39716845936194  11.507248516565 1.54992442761746 -1.39135200708567  11.4601754543291 1.55183974770843 -1.38604343383353  11.4225753425432 1.55336627178094 -1.38080863058489  11.4195645924002 1.55348849278674 -1.38038619256482  11.3880377309027 1.55476809184752 -1.3759032733519  11.35660935941 1.55604029490794 -1.37068160410388  11.3241922878702 1.55733886496962 -1.36400811378691  11.3098733671901 1.55791167799683 -1.36098789464345  11.2860035460564 1.55886155604195 -1.35549999738279  11.2584815847492 1.55992948709267 -1.34733494999497  11.2379230737727 1.56071473812997 -1.3403540666634  11.2263446732227 1.56114875715058 -1.33573039044379  11.2210482529712 1.5613448321599 -1.33340035333312  11.2153324926997 1.5615555281699 -1.3308040252098  11.2109207624901 1.56171635317754 -1.32863594010682  11.2029006021092 1.56200535919127 -1.32435818690364  11.1894552114706 1.562483970214 -1.3165949295349  11.1717455806294 1.56308520124256 -1.30319488589843  11.1582739999896 1.56349704326212 -1.28815726618418  11.1519630196898 1.56367260227046 -1.27914475575611  11.1495295895742 1.56373632227349 -1.2752157535695  11.1432976192782 1.56388869728072 -1.26390727903237  11.1396882991068 1.56393752528304 -1.25281743950563  11.1375131190035 1.56383690027826 -1.23125440648144  11.1385054890506 1.56369168027137 -1.2192108309094  11.141208589179 1.56350206126236 -1.20988124246627  
-
-0 3
-0.99202737 1
-1.98405473 3
-
-0 4
-0.25497914 1
-0.29985592 1
-0.32138099 1
-0.33224101 1
-0.33957049 1
-0.37738166 1
-0.37945303 1
-0.49675462 1
-0.50278258 1
-0.53502039 1
-0.54611996 1
-0.54872251 1
-0.55386335 1
-0.57603323 1
-0.62743212 1
-0.69452426 1
-0.72624847 1
-0.74312738 1
-0.75208166 1
-0.76508939 1
-0.76597514 1
-0.76895748 1
-0.78549459 1
-0.80448165 1
-0.81460865 1
-0.82644819 1
-0.83565825 1
-0.84188614 1
-0.85152015 1
-0.88552919 1
-0.88600759 1
-0.8869222 1
-0.88836446 1
-0.91570647 1
-0.91664922 1
-0.91923484 1
-0.92935392 1
-0.939473 1
-0.94595868 1
-0.94961178 1
-0.95107783 1
-0.95132585 1
-0.95543082 1
-0.95562478 1
-0.95975056 1
-0.96983696 1
-0.97644745 1
-0.97789863 1
-0.97992336 1
-0.98072177 1
-0.98996168 1
-0.99094788 1
-1 4
-
-9 0 0 0 0 2 3 4 16 3 14 14.2682020677032 1.45750682722786 -1.54038318716427  14.3672709024087 1.45496721210723 -1.5379204770473  14.5654421318213 1.45006790587453 -1.53044032969201  14.8222596140195 1.44422563559703 -1.51543068297909  15.0202900134255 1.44006233039929 -1.50139483831242  15.1923963016001 1.43663829023665 -1.48811481068166  15.3315693082104 1.4340538381139 -1.47654188413197  15.5298260276271 1.43061554895059 -1.45939596731759  15.6925325153553 1.4280514418288 -1.4447808486234  15.89095889478 1.42528607869745 -1.42693525177578  16.0248114411377 1.42360192061746 -1.41501822720976  16.1860966287983 1.42179260553152 -1.40105602854659  16.3850088282461 1.41984437143899 -1.38451633176099  16.7484773155099 1.41716046831151 -1.35733415746991  17.0477295997237 1.41631531527136 -1.34180090173212  17.2473973492074 1.41640362527556 -1.33650391948053  
-14.552044071185 2.67653409212854 -1.36628270989494  14.6414537054317 2.6746300440381 -1.36400813178691  14.8202855139258 2.67095637386361 -1.35716058746167  15.0520739649351 2.6665747646555 -1.34350356781299  15.2307920834238 2.66345200750718 -1.3307598272077  15.3861126008011 2.66088362138518 -1.31871249363548  15.5117148367669 2.6589449392931 -1.30822120913717  15.6906305952649 2.6563657761706 -1.29268488639923  15.8374538122387 2.65444241507924 -1.27944825577053  16.016524210744 2.65236837498073 -1.2632909710031  16.1373244864817 2.65110544292075 -1.25250357449072  16.2828806833953 2.64974898885632 -1.23986698489052  16.4623958019218 2.64828891078697 -1.22490020417964  16.7904364375029 2.64627962669153 -1.20031058601169  17.0604865203296 2.64565188166172 -1.18627159134487  17.2406785888883 2.64572419666515 -1.1814929221179  
-15.1197280881485 5.11458862192991 -1.01808175435629  15.1898192914777 5.11395570889985 -1.01618344226612  15.3299722681346 5.11273330984179 -1.01060110300097  15.5117026667663 5.11127302077243 -0.999649335490793  15.6517962434204 5.11023135972295 -0.989489802848242  15.7735451992032 5.10937428368224 -0.979907858963124  15.8720058838798 5.10872714165151 -0.971579859107565  16.0122397305405 5.10786623061062 -0.959262724382532  16.1272964160054 5.10722436058013 -0.948783072244776  16.2676548326721 5.10653296754729 -0.936002410877727  16.3623505771699 5.10611248752732 -0.927474269992662  16.4764488025893 5.10566175450591 -0.917488899378382  16.6171697692732 5.10517799148293 -0.905667950246917  16.8743546814888 5.10451794145158 -0.886263443825253  17.0860003415414 5.10432501544242 -0.875212971080383  17.22724104825 5.10436533944433 -0.871470926792646  
-15.4035701016303 6.3336158858306 -0.843981276536958  15.4640020845007 6.33361854083072 -0.842271097025728  15.584815650239 6.33362177783088 -0.837321360190629  15.7415170076819 6.3336221498309 -0.827722219524694  15.8622983234187 6.33362103683084 -0.818854790863514  15.9672614984042 6.33361961483077 -0.810505541566946  16.0521514024362 6.33361824283071 -0.803259183972762  16.1730442881783 6.33361645683063 -0.792551643564181  16.2722177228888 6.33361533383057 -0.783450480251899  16.3932201486361 6.33361526483057 -0.772358130595041  16.474863622514 6.3336160108306 -0.76495961765363  16.5732328571863 6.33361813683071 -0.756299856392314  16.6945567529489 6.33362253083091 -0.746051823065559  16.9163138034818 6.33363709883161 -0.729239872757034  17.0987572621474 6.33366158183277 -0.719683661003138  17.2205222879309 6.33368591083392 -0.716459929370019  
-
-0 3
-1.03589701 1
-2.07179401 3
-
-0 4
-0.09956452 1
-0.19912904 1
-0.25850287 1
-0.29896925 1
-0.37251161 1
-0.39880945 1
-0.49887475 1
-0.53657205 1
-0.59894006 1
-0.63387069 1
-0.69916527 1
-0.79939047 1
-1 4
-
-9 0 0 0 0 3 2 15 4 11 3 13.8994785001898 1.45909637530336 -0.874210405012764  14.2192179353766 2.67774027918583 -0.765094492920037  14.8586968057502 5.11502808695079 -0.546862668744582  15.178436250937 6.33367198983326 -0.437746756651854  
-14.1460198318999 1.45216573597417 -0.881358300612271  14.4417095359444 2.67254401093902 -0.771440310271447  15.0330889340334 5.11330055986873 -0.551604329569799  15.3287786380779 6.33367883483359 -0.441686339218974  
-14.3924764536059 1.44596653667972 -0.894355835049621  14.664114346508 2.66789600771825 -0.783068113233738  15.2073901423122 5.11175494779532 -0.560492669611972  15.4790280452143 6.33368441883385 -0.449204947796089  
-14.7286913395753 1.43859883232977 -0.920095350052182  14.9675911209224 2.66237170645586 -0.806165336100797  15.4453906936167 5.10991745370804 -0.578305308208027  15.6842904749638 6.33369032683413 -0.464375294256642  
-14.9311581591919 1.4344033771305 -0.937369952442682  15.1503306896021 2.65922590730645 -0.821678109987614  15.5886757304223 5.10887096865834 -0.590294425067479  15.8078482608325 6.33369349883428 -0.474602582602412  
-15.2457588741347 1.42875396986217 -0.970415175032245  15.4342277130864 2.65498974710524 -0.851388164778766  15.81116538099 5.10746130059138 -0.613334144261807  15.9996342199418 6.33369707783445 -0.494307134008328  
-15.5816144000869 1.42379991362686 -1.01310229511977  15.7373309774831 2.65127475992879 -0.889806584283543  16.0487641322754 5.10622445153264 -0.643215161741079  16.2044807096715 6.33369929783456 -0.519919450474848  
-15.9172742760299 1.41995483644423 -1.06316716049773  16.0402203218695 2.64839110279182 -0.934899413825337  16.2861124235488 5.105263634487 -0.678363920610556  16.4090584793884 6.33369990083459 -0.550096173998165  
-16.1617181976404 1.41798919235087 -1.10506608148782  16.2608705223499 2.64691668372179 -0.972672066709442  16.4591751617688 5.10477166546363 -0.707884038062686  16.5583274764783 6.33369915583455 -0.575490023734308  
-16.2946583339547 1.41719324131306 -1.12960483665335  16.3808670180494 2.64631952169343 -0.994803496910628  16.5532844062388 5.10457208345415 -0.725200817325189  16.6394931003335 6.33369836383452 -0.590399477542469  
-16.4059482492407 1.41656426828319 -1.15038628664041  16.4813219428207 2.64584761367101 -1.01354760414093  16.6320693299809 5.10441430344666 -0.739870240201949  16.7074430135609 6.33369764883448 -0.603031558132461  
-16.6067141887766 1.4157096902426 -1.18966791150619  16.6625140514269 2.64520625964055 -1.04897858082381  16.7741137867276 5.10419939943645 -0.767599920069038  16.829913649378 6.3336959688344 -0.626910589626654  
-16.9169794735134 1.41537999122694 -1.25664080168723  16.9425575547283 2.64495799562876 -1.10940924169411  16.993713717158 5.10411400443239 -0.814946120317862  17.0192917983729 6.33369200883421 -0.667714559704738  
-17.137530413989 1.41592883425301 -1.30912358718003  17.1415396441794 2.64536865664826 -1.15677384494381  17.1495581045603 5.10424829943877 -0.852074361541359  17.1535673347507 6.33368812083403 -0.699724619815135  
-17.2473973492074 1.41640362527556 -1.33650391948053  17.2406785888883 2.64572419666515 -1.1814929221179  17.22724104825 5.10436533944433 -0.871470926792646  17.2205222879309 6.33368591083392 -0.716459929370019  
-
-0 4
-0.21858816 2
-0.29880795 1
-0.39864883 1
-0.49875262 1
-0.59885642 1
-0.69911962 1
-0.71858816 2
-0.79938283 1
-0.89969141 1
-1 4
-
-0 3
-0.91223985 1
-1.82447971 3
-
-9 0 0 0 0 3 2 14 4 12 3 15.178436250937 6.33367198983326 -0.437746756651854  14.8586968057502 5.11502808695079 -0.546862668744582  14.2192179353766 2.67774027918583 -0.765094492920037  13.8994785001898 1.45909637530336 -0.874210405012764  
-15.1305883186643 6.33367577683344 -0.435972591527586  14.8035063031288 5.11557325697668 -0.544764356224917  14.1493422820577 2.67936821926316 -0.76234788560958  13.8222602665221 1.46126570040639 -0.871139650306911  
-15.0348614941176 6.33368260583377 -0.433253927668456  14.693063507883 5.1166999900302 -0.541519173950779  14.009467525414 2.68273475942306 -0.758049666505425  13.6676695291794 1.46575214461949 -0.866314912787748  
-14.891557237311 6.33369059983415 -0.431668949883174  14.5278180000343 5.11848420411494 -0.539511857455437  13.8003395354809 2.68807141267654 -0.755197672619963  13.4366003082042 1.47286501695733 -0.863040580202226  
-14.7958659227659 6.33369445783433 -0.432261066741298  14.4174572347924 5.1197403051746 -0.540074555682164  13.6606398688455 2.69183199985515 -0.755701533563895  13.2822311808721 1.47787784819543 -0.863515022504761  
-14.7003030582269 6.33369757083448 -0.433676218018514  14.3072794095593 5.12102395623557 -0.541586596103982  13.521232102224 2.69567672803777 -0.757407352294917  13.1282084435564 1.48300311343886 -0.865317730380385  
-14.6047480336883 6.33369993483459 -0.435926893705415  14.1971108643266 5.12233802129799 -0.544059469861437  13.3818365256031 2.69961419622479 -0.76032462217348  12.9741993562414 1.48825228368819 -0.868457198319502  
-14.461997306908 6.33370123583465 -0.441773569883118  14.0324498865056 5.12439065839548 -0.550625070523286  13.1733550257008 2.70576950351715 -0.768328071803624  12.7438075952984 1.49645892507798 -0.877179572443792  
-14.3152798699393 6.33370028283461 -0.450336686769844  13.8632322984682 5.12658388749966 -0.560323386333932  12.959137165526 2.71235109882976 -0.780296785462107  12.5070896040549 1.50523470349481 -0.890283485036194  
-14.1734691532036 6.33369704183445 -0.461198698415762  13.6996470506983 5.12878552060423 -0.572694512001528  12.7520028356876 2.71896247914378 -0.795686139173062  12.2781807231823 1.51405095791356 -0.907181952768829  
-14.0791087387218 6.33369341283428 -0.470066980366982  13.5908245255295 5.13029736267604 -0.582825570782728  12.614256089145 2.72350526335955 -0.808342751624219  12.1259718659527 1.52010921320131 -0.921101342049964  
-13.9424783522322 6.33368719183398 -0.483985931298097  13.4332635480458 5.13251577778141 -0.59874415595882  12.4148339296729 2.73017294967625 -0.828260605280266  11.9056191254865 1.52900153562367 -0.943018829940989  
-13.848680137777 6.33368146383371 -0.49516639001914  13.3250698529068 5.13408488985594 -0.611563534367708  12.2778492831665 2.73489174190038 -0.844357823074843  11.7542389982964 1.5352951679226 -0.96075496743341  
-13.7551732833356 6.33367429383337 -0.507938351705776  13.2172205577843 5.13568794493208 -0.626233644924501  12.1413151166815 2.73971524812949 -0.86282423137195  11.6033624011301 1.54172890022819 -0.981119524590675  
-
-0 4
-0.10071181 1
-0.20142363 1
-0.30133898 1
-0.30180139 1
-0.40217916 1
-0.50219563 1
-0.60221211 1
-0.71129647 1
-0.80133898 1
-0.80149288 1
-1 4
-
-0 3
-1.38127605 1
-2.76255209 3
-
-9 0 0 0 0 3 2 33 4 31 3 13.7551732833356 6.33367429383337 -0.507938351705776  13.2172205577843 5.13568794493208 -0.626233644924501  12.1413151166815 2.73971524812949 -0.86282423137195  11.6033624011301 1.54172890022819 -0.981119524590675  
-13.7441149028104 6.33367869683358 -0.509979563562728  13.2045219571811 5.13588354994137 -0.628637679878686  12.1253360459225 2.74029325515694 -0.865953912500602  11.5857430902932 1.54249810826473 -0.98461202881656  
-13.7295414821182 6.33368132083371 -0.513231203227173  13.1877662663853 5.13614149595362 -0.632423705638513  12.1042158549194 2.74106184619345 -0.870808710461192  11.5624406491864 1.54352202131336 -0.990001212872532  
-13.7131642413403 6.33368184783373 -0.516792646076332  13.1690337554955 5.13642274096698 -0.636358462405404  12.0807727838059 2.74190452723347 -0.875490095063546  11.5366422979611 1.54464542036672 -0.995055911392618  
-13.7033859008759 6.33368177483373 -0.518836209713397  13.157844034964 5.13659046897494 -0.638635827243573  12.0667602931403 2.74240785725738 -0.878235062313925  11.5212184272285 1.54531655039859 -0.998034679844101  
-13.6957310005123 6.33368142383371 -0.520316044103685  13.149064144547 5.13672254598122 -0.640344004554707  12.0557304426164 2.74280479027623 -0.880399925446751  11.5090635966512 1.54584591142374 -1.00042788551777  
-13.6871749101059 6.33368074383368 -0.521935718370615  13.1392160640792 5.13687217298832 -0.642299532647589  12.043298362026 2.74325503129762 -0.883027161201538  11.4953395059993 1.54644646045226 -1.00339097565851  
-13.6795697897447 6.33367995183364 -0.523375070778981  13.1304388536624 5.13700661699471 -0.644093025892776  12.0321769714977 2.74365994731685 -0.885528936110366  11.4830460354154 1.54698661147792 -1.00624689079416  
-13.6687218392294 6.33367838883357 -0.525533876791519  13.1178985030667 5.13719980300389 -0.64680779776172  12.0162518307413 2.74424263134453 -0.889355639692124  11.4654285045786 1.54776404451484 -1.01062956100233  
-13.6603668188326 6.33367677683349 -0.52739715611002  13.1082557726087 5.13734793801092 -0.649067400529046  12.004033670161 2.74469025936579 -0.892407889387098  11.4519226239371 1.54836142054322 -1.01407813416612  
-13.6553348785936 6.33367564883344 -0.5286536599997  13.102472712334 5.1374358650151 -0.650508605157499  11.9967483798149 2.74495629737842 -0.894218495463097  11.4438862135554 1.54871651356008 -1.0160734402609  
-13.6489469482902 6.33367420383337 -0.530258970305948  13.0951334419854 5.13754737102039 -0.652343653244659  11.987506429376 2.74529370539445 -0.896513019132081  11.4336929230712 1.54916687258147 -1.01859770238079  
-13.6383096977849 6.33367140583324 -0.533278421969365  13.0829718214078 5.13772995702907 -0.655613990719992  11.9722960786535 2.74584705742073 -0.900285128201247  11.4169582022764 1.54990560861656 -1.02262069657187  
-13.6276200472772 6.3336685208331 -0.536646125879322  13.0707488008272 5.13791489903785 -0.659254928882927  11.9570062879273 2.74640765344736 -0.904472534890138  11.4001350314773 1.55065403065211 -1.02708133778374  
-13.6189223268641 6.33366630383299 -0.539449920442495  13.0607742303535 5.13806780904511 -0.662356775550257  11.9444780473322 2.74687081746936 -0.908170485785781  11.3863299508216 1.55127232268148 -1.03107734097354  
-13.6131846365915 6.33366492383293 -0.541334598022012  13.0541775100401 5.13817008104997 -0.66448179187119  11.9361632769373 2.74718039448406 -0.910776179569545  11.3771561503859 1.55168555070111 -1.03392337310872  
-13.6044516061767 6.33366316983284 -0.544194393997845  13.0441130795621 5.13832793705747 -0.667779838317839  11.9234360163328 2.74765747150672 -0.914950726957826  11.3630974897181 1.55232223773135 -1.03853617132782  
-13.5979462458678 6.33366213183279 -0.546311407568398  13.0366036992054 5.13844677606311 -0.670264654105861  11.9139185858807 2.74801606452375 -0.918171147170787  11.3525760392184 1.55280070875407 -1.04212439349825  
-13.5905560755167 6.33366127083275 -0.54875030884424  13.0280765588004 5.13858222806955 -0.673130577151985  11.9031175253677 2.74842414354314 -0.921891113777476  11.3406380086514 1.55334510177993 -1.04627138169522  
-13.5784185649402 6.33366028383271 -0.552849995788964  13.0140908881361 5.13880451108011 -0.677912518819115  11.8854355545279 2.7490929665749 -0.928037564889417  11.3211078777237 1.5542371938223 -1.05310008801957  
-13.5679662244438 6.33366033683271 -0.556743959983918  13.0020807775657 5.13899669808923 -0.682392692151912  11.8703098838094 2.74966941860228 -0.933690156497901  11.3044244369313 1.55500577985881 -1.05933888831589  
-13.5555121438522 6.33366114083275 -0.562149439620664  12.9877685268859 5.13923031810033 -0.688637099178506  11.8522812829531 2.7503686746355 -0.941612418314188  11.2845376559868 1.55593785290308 -1.06810007773203  
-13.5468603834413 6.33366199183279 -0.566222022224102  12.9778281764137 5.13939430310812 -0.693343419842044  11.8397637723586 2.75085892665878 -0.947586215077928  11.270731565331 1.55659123893411 -1.07470761304587  
-13.5369336129698 6.33366348883286 -0.571514627595487  12.9664313858724 5.1395854151172 -0.699453300592248  11.8254269216776 2.75142926768587 -0.955330646575769  11.2549246945802 1.55735119397021 -1.08326931945253  
-13.5297735326297 6.33366477983292 -0.575601990599626  12.9582150254822 5.1397245111238 -0.704169366616249  11.815098021187 2.75184397470557 -0.961304118649493  11.2435395240394 1.55790370699645 -1.08987149476612  
-13.5254668624252 6.33366562583296 -0.578158086271034  12.9532749452475 5.1398085831278 -0.707116241276218  11.8088911308922 2.75209449771747 -0.965032551276584  11.2366992137145 1.5582374550123 -1.09399070596177  
-13.5183692620881 6.33366709783303 -0.582537830359061  12.9451351348609 5.13994794613442 -0.712171157406313  11.7986668804066 2.75250964273719 -0.971437811500818  11.2254327531794 1.55879049103857 -1.10107113829807  
-13.5108563417312 6.33366875783311 -0.587629427220899  12.9365234344519 5.14009737714151 -0.718046955865399  11.7878575998932 2.75295461375832 -0.978882013144398  11.2135246826138 1.55938323306673 -1.1092995416889  
-13.5046796014378 6.33367001583317 -0.592552423694729  12.9294448941156 5.14022329814749 -0.723735697635599  11.7789754694713 2.75332986177614 -0.986102245507341  11.2037407621491 1.55988314409047 -1.11728551906821  
-13.5011366912696 6.3336706848332 -0.595577961158434  12.9253850939228 5.14029631015096 -0.727230998091617  11.7738818992294 2.75354756178649 -0.990537071947984  11.1981303018826 1.56017318810425 -1.12219010930117  
-13.4843485404722 6.33367367583334 -0.610587212781335  12.9061486530091 5.14064492716752 -0.744569745235164  11.7497488680831 2.75458742883588 -1.01253481009282  11.1715489706201 1.56155867917005 -1.14651734245665  
-13.4710968098427 6.33367363583334 -0.630409243532831  12.890987562289 5.14095017518202 -0.767417086740354  11.7307690671816 2.75550325387938 -1.0414327734654  11.1506598296279 1.56277979222805 -1.17844061597292  
-13.4648676895469 6.33366791783307 -0.649981567562466  12.8839529119549 5.14112645419039 -0.789956486170918  11.722123366771 2.75604352490504 -1.06990632381782  11.141208589179 1.56350206126236 -1.20988124246627  
-
-0 4
-0.10027407 1
-0.13058547 1
-0.14773514 1
-0.18892191 1
-0.20054813 1
-0.22632059 1
-0.25896696 1
-0.30064122 1
-0.30337578 1
-0.30521021 1
-0.35934537 1
-0.4007343 1
-0.4033249 1
-0.43952711 1
-0.45384281 1
-0.4848829 1
-0.50081812 1
-0.52404482 1
-0.60090194 1
-0.60209014 1
-0.64532304 1
-0.68533957 1
-0.70078704 1
-0.71811816 1
-0.72980524 1
-0.77524255 1
-0.79965595 1
-0.80067214 1
-0.81684643 1
-1 4
-
-0 3
-6.03682127 1
-12.07364253 3
-
-9 0 0 0 0 3 2 19 4 15 3 20.2590856322549 16.2691512227432 0.211298308496131  19.499468896175 13.7852729847653 -0.020649298340789  17.9802354340153 8.81751651680954 -0.484544512034628  17.2206187079355 6.33363828283166 -0.716492118871548  
-20.2375456712318 16.269146922743 0.214925928168433  19.471191994832 13.7852701647652 -0.0148985634276438  17.9384846320323 8.81751664280955 -0.474547546629798  17.1721309556324 6.33363988383174 -0.704372038225875  
-20.2009390794931 16.2691412027427 0.221374969714746  19.4230954925475 13.785266494765 -0.00507508619105365  17.8674083186563 8.81751707480957 -0.457975197992654  17.0895647317107 6.33364236683186 -0.684425253888454  
-20.1536389172464 16.2691367927425 0.230173175362639  19.3608209195896 13.7852638547649 0.00761844648185677  17.7751849142759 8.81751799180961 -0.437491011279707  16.9823669166191 6.33364505883198 -0.660045740160489  
-20.0919375543158 16.2691334727423 0.241983541303601  19.2794290957237 13.7852621347648 0.0241136135953351  17.6544121885395 8.81751944080968 -0.411626241831196  16.8419037299475 6.33364809483213 -0.629496169529462  
-20.0454475121076 16.2691340027424 0.251234516692999  19.2178765928001 13.7852629347648 0.0363778850578567  17.5627347741851 8.81752080080975 -0.393335378232427  16.7351638648776 6.3336497318322 -0.608192009867569  
-20.001221840007 16.2691358727425 0.259961405557504  19.1592862100172 13.7852646047649 0.0476489076232016  17.4754149600376 8.8175220708098 -0.376976088225403  16.6334793300478 6.33365080283226 -0.589288586159705  
-19.9825965191224 16.2691367927425 0.263629236591716  19.1346122888453 13.7852653947649 0.0523554328767495  17.4386438282911 8.81752260180983 -0.370192174573184  16.590659598014 6.33365120583228 -0.581465978298151  
-19.9549929178113 16.2691385227426 0.26901782395766  19.0980530571088 13.785266804765 0.0591800820009029  17.3841733457039 8.81752336380987 -0.360495401912612  16.5272334850014 6.3336516418323 -0.570333143869369  
-19.9169120160025 16.2691413527427 0.276353111326068  19.0476214147134 13.7852690247651 0.0683591074268832  17.3090402221353 8.81752435280992 -0.347628900381486  16.4397496208462 6.33365201783231 -0.555622904270671  
-19.8792462142135 16.2691446627429 0.283432953762342  18.9977273323436 13.7852715147652 0.077078750291044  17.2346895586038 8.81752521580995 -0.335629656641552  16.3531706767339 6.33365206783232 -0.541983860102851  
-19.8416013724254 16.269148222743 0.290245842475937  18.9478204499731 13.7852741147654 0.0853657708546564  17.1602585850685 8.81752589380999 -0.324394372377905  16.2664776526162 6.3336517848323 -0.529274443989186  
-19.8129001610622 16.2691509827432 0.295274606404791  18.9097673881657 13.7852760847654 0.0914420137732624  17.1035018523727 8.81752629681001 -0.316223171499794  16.2003690894762 6.33365140283228 -0.520055764141322  
-19.7660569588373 16.2691554427434 0.30317311760995  18.8476580352157 13.7852792047656 0.100934961794153  17.0108601779725 8.81752674181003 -0.30354134982744  16.0924612543509 6.33365050883224 -0.505779505633236  
-19.6829842048915 16.2691626727437 0.315867328312892  18.7376572199909 13.7852839947658 0.116083319913662  16.8470032601897 8.81752664581002 -0.2834846969048  15.9016762752891 6.33364796983212 -0.483268705304031  
-19.6092723313904 16.2691659227439 0.324228336060019  18.6402343353636 13.7852854647659 0.126173917472939  16.7021583433099 8.81752456180992 -0.26993491969122  15.7331203472831 6.33364410883194 -0.4679893382883  
-19.4981289961114 16.2691649527438 0.333164020704441  18.4933394183864 13.7852829047658 0.137571544554297  16.4837602729366 8.81751883180965 -0.25361340772599  15.4789707052116 6.33363679283159 -0.449205883866134  
-19.4322544429825 16.2691593627436 0.335331997077414  18.4063615242552 13.7852773247655 0.141077435090818  16.3545756868006 8.81751324780939 -0.247431688882374  15.3286827680733 6.33363120783133 -0.44168625086897  
-19.3665497498617 16.2691451127429 0.333108720911814  18.3194877701289 13.7852649247649 0.140394676838389  16.2253637906634 8.81750454880897 -0.245033411298462  15.1783018009306 6.333624360831 -0.437747455361887  
-
-0 4
-0.07264197 1
-0.12345255 1
-0.15974582 1
-0.28146727 2
-0.30978555 1
-0.34462514 1
-0.3749384 1
-0.43859614 1
-0.47194039 1
-0.5022533 1
-0.5355975 1
-0.63013701 1
-0.78146727 2
-1.00011086 4
-
-0 3
-3.57247416 1
-7.14494832 3
-
-9 0 0 0 0 3 2 13 4 11 3 17.2206220879356 6.33363830883166 -0.716461349540086  17.9802381440154 8.81751653780954 -0.484519033263418  19.4994702561751 13.7852729947653 -0.0206344007100814  20.2590863022549 16.2691512227432 0.211307915576587  
-17.0950175819697 6.33361320783047 -0.719784695797937  17.8723114188892 8.81749431380849 -0.487369214688794  19.4268990927281 13.7852565247645 -0.0225382524905095  20.2041929296476 16.2691376327425 0.209877228618633  
-16.8729429614217 6.33358385982908 -0.731595416808916  17.6814864398255 8.81746847180726 -0.497512758200587  19.298573386633 13.7852376947636 -0.0293474409539286  20.1071168550368 16.2691223127418 0.204735217664401  
-16.592300968092 6.33356985682841 -0.754363619850348  17.4403493783721 8.81745644480669 -0.517076589639819  19.1364461989324 13.7852296147632 -0.0425025292187617  19.9844946092125 16.2691162027415 0.194784500991767  
-16.4118407595206 6.3335675968283 -0.770650705833943  17.2852946110074 8.81745471880661 -0.531073110204618  19.0322023139811 13.7852289647632 -0.0519179189559687  19.9056561654679 16.2691160827415 0.187659676683356  
-16.2947501939591 6.33356771082831 -0.781389528054009  17.1846876462288 8.81745500180662 -0.540302022822968  18.9645625507683 13.7852295847632 -0.0581270123608848  19.8545000030381 16.2691168727415 0.182960492870157  
-16.1955694592482 6.33356853282835 -0.7904824449259  17.0994631221809 8.81745588180666 -0.548116693044145  18.9072504280462 13.7852305847633 -0.0633851893006348  19.8111440809788 16.2691179327416 0.17898056258112  
-16.0527135624629 6.33357056082845 -0.80332544808591  16.9767071063503 8.81745788680676 -0.559154498588412  18.824694204125 13.7852325447634 -0.0708125995934178  19.7486877580123 16.2691198627417 0.173358349914079  
-15.9038890953942 6.33357304982856 -0.815835955160127  16.8488272002763 8.81746028680687 -0.569906442889102  18.7387034000406 13.7852347547635 -0.0780474183370533  19.6836414949228 16.2691219927418 0.167882093923971  
-15.7354069473917 6.33357456782864 -0.828155299145264  16.7040614334003 8.81746180480694 -0.580493564981964  18.6413704054175 13.7852362747636 -0.0851700966853623  19.6100248914262 16.2691235127419 0.162491637477938  
-15.5786599699466 6.33357404082861 -0.83761634671464  16.5693810770033 8.81746145080693 -0.58862362343812  18.5508233011168 13.7852362647636 -0.0906381768850822  19.5415444081735 16.2691236827419 0.158354546391437  
-15.4607493943462 6.33357077582846 -0.842368301090345  16.4680583721908 8.81745858080679 -0.592705983452022  18.48267634788 13.7852341947635 -0.0933813481653758  19.4899853257246 16.2691219927418 0.156280969472947  
-15.4034362716239 6.33356825682834 -0.843989303317339  16.4188117498517 8.81745634380668 -0.594098086088144  18.4495627163072 13.7852325147634 -0.0943156516497529  19.4649382045349 16.2691206027417 0.155575565579443  
-
-0 4
-0.20693445 1
-0.36619212 1
-0.46349076 1
-0.50529197 1
-0.5598552 1
-0.6275512 1
-0.74155994 1
-0.80578618 1
-0.90569987 1
-1.00012561 4
-
-0 3
-4.04682293 1
-8.09364585 3
-
-9 0 0 0 0 3 2 53 4 51 3 15.4036666716349 6.33356979682841 -0.843980988696944  16.4190093898611 8.81745711380672 -0.59409170274784  18.4496948263134 13.7852317447633 -0.0943131308496331  19.4650375445396 16.2691190627417 0.155576155089471  
-15.2344918235995 6.33357878282884 -0.85120191641992  16.2738060029643 8.81746380680704 -0.59926418986352  18.3524343516938 13.7852338547634 -0.0953887367507217  19.3917485210586 16.2691188827416 0.156548989795678  
-15.0354356841448 6.33356896582837 -0.845536729780838  16.1029635548497 8.81745600080667 -0.595224517331646  18.2380193062594 13.7852300747633 -0.0946000924532631  19.3055471769642 16.2691171027416 0.155712119985928  
-14.8215017639835 6.33355785082784 -0.835678787392611  15.9194199961318 8.81744744580626 -0.587526275755999  18.1152564504285 13.7852266347631 -0.0912212524827768  19.2131746725768 16.2691162327415 0.156931259153834  
-14.7700471715396 6.33355539382772 -0.833235147366544  15.8752784140352 8.81744557080617 -0.585581227753615  18.0857409090266 13.7852259247631 -0.0902733884977557  19.1909721515222 16.2691161027415 0.157380531115174  
-14.7436021002835 6.33355426382767 -0.831957084635839  15.8525914529577 8.81744471280613 -0.584553842924816  18.070570168306 13.7852256147631 -0.0897473595027706  19.1795595209802 16.2691160627415 0.157655882208252  
-14.7049331984468 6.3335527208276 -0.830080565156709  15.819417791382 8.81744354480607 -0.583036133802729  18.0483869772523 13.785225194763 -0.0889472710747685  19.1628715801875 16.2691160227415 0.158097160289212  
-14.6544393960485 6.33355117982753 -0.827600697728922  15.7760979993244 8.81744239480602 -0.580998207395933  18.0194152058763 13.785224824763 -0.0877932267399543  19.1410738191522 16.2691160427415 0.158809263593035  
-14.5499436910852 6.33355019482748 -0.822450554174303  15.6864338250656 8.81744173580599 -0.576643984939118  17.9594140830264 13.785224814763 -0.0850308464587483  19.0959042170067 16.2691163627415 0.160775722776437  
-14.4468703561895 6.33355402982766 -0.817452371496902  15.5979587608633 8.81744482080614 -0.57218124974715  17.9001355802108 13.7852264047631 -0.0816390062376445  19.0512239848845 16.2691171927416 0.163632115532108  
-14.356097591878 6.33356522682819 -0.813464378917483  15.5199985471603 8.81745356180655 -0.568281903131941  17.847800457725 13.7852302347633 -0.0779169515608564  19.0117014030073 16.2691185627416 0.167265524224686  
-14.3220235002596 6.33357056582845 -0.812019031188833  15.4907282957701 8.81745772080675 -0.566811553552103  17.8281378867911 13.7852320347634 -0.0763965982486435  18.9968426823016 16.2691191927417 0.168810879388086  
-14.3096689396728 6.33357249082854 -0.811482935303369  15.480116085266 8.81745922380682 -0.566265609726172  17.8210103964525 13.7852326847634 -0.0758309585617771  18.9914575420458 16.2691194227417 0.16938636702542  
-14.2900657487417 6.33357565782869 -0.810639940673329  15.4632771644662 8.81746169480694 -0.565399887045052  17.8096999859153 13.7852337647634 -0.0749197797684984  18.9829114016399 16.2691198027417 0.170320273859779  
-14.2013150145262 6.3335905968294 -0.806764138159239  15.3870434908453 8.81747336980749 -0.561370510353667  17.7585004434835 13.7852389147637 -0.0705832547425245  18.9442289198025 16.2691216927418 0.174810373063047  
-14.1147289204136 6.33360502583008 -0.802318794408096  15.3126821973133 8.81748471480803 -0.556802571376702  17.7085887511128 13.7852440947639 -0.0657701253239132  18.9065420280125 16.2691237827419 0.179746097707481  
-14.0363453266906 6.33360652283015 -0.796280965401315  15.2453921441172 8.81748594680809 -0.55165509850221  17.6634857889705 13.785244794764 -0.0624033647140006  18.8725326063972 16.2691242227419 0.182222502175104  
-14.0085331253696 6.33360667283016 -0.794072356126411  15.2215182129833 8.8174860898081 -0.549790134433629  17.6474883982107 13.785244924764 -0.0612256910580641  18.8604734858244 16.2691243427419 0.183056530634718  
-13.9706622635708 6.33360467683007 -0.790690935435802  15.1890204314397 8.81748458180802 -0.547037153322869  17.6257367671775 13.7852443947639 -0.0597295891170031  18.8440949350464 16.2691243027419 0.18392419299593  
-13.9234078213264 6.33359793582975 -0.785788844792966  15.1485011195152 8.81747944680778 -0.54317380653937  17.5986877058928 13.7852424647639 -0.0579437300421794  18.8237810040816 16.2691239827419 0.184671308211416  
-13.8966565600557 6.33359218482947 -0.782699449386227  15.1255782584264 8.81747506180757 -0.540784166515868  17.5834216651677 13.7852408147638 -0.0569536007751507  18.8123433735383 16.2691236927419 0.184961682095208  
-13.8792168892274 6.33358782382926 -0.780575968945367  15.1106398577168 8.81747173480741 -0.539153350888409  17.5734857846957 13.7852395547637 -0.0563081147744918  18.8049087531852 16.2691234627419 0.185114503282467  
-13.8654434885732 6.3335844148291 -0.778896385145591  15.0988416071565 8.81746913180729 -0.537864853517208  17.565637834323 13.7852385647637 -0.0558017902804427  18.7990359529063 16.2691232827419 0.18522974134794  
-13.8394338373378 6.33357768882878 -0.77563576086072  15.0765647360984 8.81746398980705 -0.535377474999064  17.5508265336195 13.7852365947636 -0.054860903275753  18.7879574223801 16.2691228927418 0.185397382585903  
-13.8086167958741 6.33356977982841 -0.771645508651193  15.0501726848448 8.81745791780676 -0.532361754775825  17.5332844627863 13.7852341947635 -0.0537942470450895  18.774840341757 16.2691223327418 0.185489506820278  
-13.7810699345657 6.33356377482812 -0.768085490592101  15.0265724837239 8.81745328480654 -0.529661518617571  17.5175775820403 13.7852323047634 -0.0528135746885101  18.7630801311984 16.2691218127418 0.18561039728602  
-13.7559957933747 6.33355925282791 -0.764869844999367  15.0050814027031 8.81744978380637 -0.527195482150441  17.5032526013598 13.7852308447633 -0.0518467564525887  18.7523382006882 16.2691213827418 0.185827606396337  
-13.7314002022065 6.33355649482778 -0.761795489213342  14.9839821317009 8.81744763480627 -0.524775005105474  17.4891460006898 13.7852299147633 -0.0507340368797373  18.7417279401843 16.2691210527417 0.186286447218131  
-13.7092295811534 6.33355585882775 -0.75913381855692  14.9649424307966 8.81744711980625 -0.522599362772137  17.4763681300829 13.7852296447632 -0.0495304511925701  18.7320809897261 16.2691209027417 0.187004004592213  
-13.6805324297904 6.3335570908278 -0.755821677059602  14.9402734096249 8.81744803880629 -0.519790503408723  17.4597553692938 13.7852299347633 -0.0477281560969657  18.7194963591283 16.2691208827417 0.188303017563913  
-13.6581464787271 6.33356149682801 -0.753472768048034  14.9210021387095 8.81745140780645 -0.517632128616206  17.4467134586744 13.7852312347633 -0.0459508497625481  18.7095691186568 16.2691211427418 0.189889789669281  
-13.6408743379067 6.33356765282831 -0.751864856791663  14.9061344180034 8.81745612680667 -0.51601759779952  17.4366545781966 13.7852330747634 -0.0443230798052332  18.7019146582932 16.2691215527418 0.19152417919691  
-13.6390579278205 6.33356829082834 -0.751692291033466  14.9045710279291 8.8174566168067 -0.515844664681306  17.4355972181464 13.7852332647634 -0.0441494119569844  18.701110318255 16.2691215927418 0.191698214395176  
-13.6202240869259 6.33357499382866 -0.749885500187648  14.8883620271592 8.81746176180694 -0.514028395175038  17.4246379176259 13.7852352947635 -0.0423141851798159  18.6927758578592 16.2691220627418 0.193542919832795  
-13.6019675860588 6.33358303982904 -0.748048206520382  14.8726650064136 8.81746797180724 -0.512082925922633  17.4140598571234 13.7852378347636 -0.0401523646871349  18.6847572874783 16.2691227727418 0.195812915910614  
-13.5839211552016 6.33358709582923 -0.745052502028093  14.8572204056801 8.81747125280739 -0.50915450235354  17.403818896637 13.7852395647637 -0.0373585030044336  18.6771181471155 16.2691237227419 0.19853949667012  
-13.5770625548758 6.3335885908293 -0.74389867734329  14.8513516954013 8.81747246580745 -0.508027670180018  17.3999299564523 13.7852402147637 -0.0362856558634761  18.6742190969778 16.2691240927419 0.199585351299795  
-13.5577131039568 6.33359120582943 -0.74015847794564  14.8348232646163 8.81747471380756 -0.504432373179251  17.3890436059352 13.7852417347638 -0.0329801636364736  18.6661537665947 16.2691252427419 0.202745941129915  
-13.5374718629954 6.33358711382923 -0.734413997122791  14.8176330737998 8.81747203680743 -0.499132098567501  17.3779554854086 13.7852418847638 -0.0285683014769214  18.6581166962129 16.269126802742 0.206713597068369  
-13.5210588322158 6.33357723782876 -0.728181815926779  14.8037730831415 8.8174650108071 -0.493540772291928  17.3692016049928 13.7852405547638 -0.0242586850222257  18.6519158659184 16.2691283227421 0.210382358612625  
-13.5175162420475 6.33357480782865 -0.726749492498747  14.8007845929995 8.81746327380701 -0.492262118911195  17.3673212949035 13.7852402047637 -0.0232873717160908  18.6505896458554 16.2691286727421 0.211200001881461  
-13.5125636018123 6.33357118982847 -0.724650631369057  14.7966079328011 8.81746068280689 -0.490395113672517  17.3646966147788 13.7852396747637 -0.0218840782894379  18.6487409557676 16.2691291627421 0.212371439397102  
-13.5096025116717 6.33356895382837 -0.723304993575142  14.7941095926825 8.81745908380681 -0.489203862985936  17.3631237347041 13.7852393447637 -0.0210016018275225  18.6476308057149 16.2691294727421 0.213099528761684  
-13.5044388014264 6.33356492882818 -0.720787083545548  14.7897502324754 8.81745620680668 -0.486985131070551  17.3603730945734 13.7852387647637 -0.0193812261305588  18.6456845256225 16.2691300427422 0.214420726334438  
-13.497441081094 6.33355945382792 -0.717131467161915  14.7838361621945 8.81745230080649 -0.4837775488882  17.3566263243955 13.7852379947636 -0.0170697123707678  18.643021405496 16.2691308427422 0.216284205892948  
-13.4851262305091 6.3335506718275 -0.709155464693076  14.7733711516974 8.8174461228062 -0.476863837799816  17.3498609940741 13.7852370247636 -0.0122805840032964  18.6381059152625 16.2691324827423 0.220011042899963  
-13.4761689600836 6.3335485078274 -0.700211751628272  14.7656008613284 8.81744490180614 -0.469258848098598  17.3444646538178 13.7852376947636 -0.00735304102925069  18.6338965550626 16.2691340827424 0.223599862510423  
-13.4709041498336 6.33355230782758 -0.692175876986588  14.7608713911037 8.81744807680629 -0.462515862148324  17.340805863644 13.7852396147637 -0.00319583246179389  18.6307730949142 16.2691353827424 0.226464182376471  
-13.4670731296516 6.33355720182781 -0.685181021884351  14.757361570937 8.81745201980648 -0.456669947890658  17.3379384535078 13.7852416547638 0.000352200096728606  18.6282268947933 16.2691364727425 0.228863274100422  
-13.4642726195186 6.33356722182829 -0.676670920400143  14.7545790608049 8.81745984880685 -0.449601675654933  17.3351919333774 13.785245104764 0.00453681382548708  18.6254983646637 16.2691377327425 0.231606058570697  
-13.4625103694349 6.3335885578293 -0.663692112433682  14.752286870696 8.81747633180763 -0.438828187223219  17.3318398732182 13.7852518747643 0.0108996631977062  18.6216163744793 16.2691396527426 0.235763588408169  
-13.4631875294671 6.33360612683013 -0.655683913873313  14.7522298606933 8.81748981280827 -0.432170196366982  17.3303145131457 13.7852571847646 0.0148572386456809  18.619356844372 16.2691408727427 0.238370956152012  
-13.4648758895473 6.33362214083089 -0.649874715287391  14.7530819307338 8.81750206180885 -0.427306615035974  17.3294940131068 13.7852619047648 0.0178295854368598  18.6177000542933 16.2691418227427 0.240397685668277  
-
-0 4
-0.25503713 1
-0.29991391 1
-0.32143898 1
-0.332299 1
-0.33962848 1
-0.37951102 1
-0.40815326 1
-0.49681261 1
-0.53507838 1
-0.54617795 1
-0.5487805 1
-0.55392134 1
-0.57609122 1
-0.68430594 1
-0.68624299 1
-0.69458225 1
-0.72630646 1
-0.74318537 1
-0.76514738 1
-0.76603313 1
-0.76901547 1
-0.78555258 1
-0.80453964 1
-0.81466664 1
-0.82650618 1
-0.84194413 1
-0.85157814 1
-0.86001872 1
-0.88558718 1
-0.88606558 1
-0.88698019 1
-0.88842245 1
-0.91548305 1
-0.91576446 1
-0.91670721 1
-0.92623059 1
-0.94601667 1
-0.94796771 1
-0.95113582 1
-0.95138384 1
-0.95548881 1
-0.95568277 1
-0.95941041 1
-0.9665435 1
-0.97650544 1
-0.97795662 1
-0.98077976 1
-0.98826655 1
-0.99100587 1
-1.00011599 4
-
-0 3
-3.85256325 1
-7.70512649 3
-
-9 0 0 0 0 3 2 16 4 14 3 19.3665796498631 16.2690975027406 0.333106715941719  19.3911769110314 16.2690913727403 0.28872308253361  19.4403714433681 16.2690791127398 0.199955815707391  19.4649687145364 16.2690729827395 0.155572182299282  
-19.39493691121 16.2691036527409 0.334065271447248  19.4187025223388 16.2690878627402 0.289618336366132  19.4662337345964 16.2690801127398 0.2007244604139  19.4899993457253 16.2690743727395 0.156277522982784  
-19.4533846139861 16.2691129827414 0.334354913631006  19.475423975033 16.2691037527409 0.290353879541069  19.5195026871266 16.2690852827401 0.202351811361195  19.5415420481734 16.2690760527396 0.158350777271258  
-19.5646941292731 16.2691201027417 0.32913492925307  19.5833992601615 16.2691090327412 0.287918588455398  19.6208095119384 16.2690868927401 0.205485906880056  19.6395146428268 16.2690758227396 0.164269566092385  
-19.6757327745471 16.2691156827415 0.31696880359521  19.6911549452796 16.269104902741 0.280799347137253  19.7219992767447 16.26908336274 0.208460434201339  19.7374214374772 16.2690725827394 0.172290977743382  
-19.7660393488364 16.2691078127411 0.303169240009766  19.7789426794493 16.2690983827407 0.27227041445215  19.8047493406751 16.2690795327398 0.210472763346919  19.8176526712879 16.2690701027393 0.179573937789304  
-19.8153870411803 16.2691031127409 0.294848451244549  19.8269627717302 16.2690946227405 0.26704086618376  19.8501142228298 16.2690776327397 0.211425696062181  19.8616899533796 16.2690691427393 0.183618111001392  
-19.8440855725434 16.2691003527408 0.289795004714523  19.8548922630567 16.2690924527404 0.26383900928168  19.8765056540833 16.2690766527396 0.211927018415993  19.8873123545966 16.2690687527393 0.185971022983149  
-19.9009963452466 16.2690950027405 0.27946026777365  19.9102877456879 16.2690883527402 0.257246637098559  19.9288705565705 16.2690750327396 0.212819375728377  19.9381619670118 16.2690683827392 0.190605745053287  
-19.9548668078053 16.2690905327403 0.269082316720724  19.9627181381782 16.26908516274 0.250527730959428  19.978420788924 16.2690744227395 0.213418559436837  19.9862721192969 16.2690690527393 0.194863973665542  
-20.0371003817112 16.2690864827401 0.252888351481552  20.0428361619836 16.2690830327399 0.239868069003121  20.0543077125285 16.2690761527396 0.213827504046261  20.0600434928009 16.2690727127395 0.200807221567831  
-20.091921644315 16.2690858527401 0.241979323713401  20.0962849345223 16.26908363274 0.232572973966623  20.1050115149368 16.2690791927398 0.213760274473068  20.109374795144 16.2690769727397 0.20435392471629  
-20.1536237172457 16.2690891627402 0.230168908222436  20.1563952273774 16.2690880327402 0.224514945663887  20.1619382676406 16.2690857527401 0.21320702053679  20.1647097877723 16.26908461274 0.207553057978241  
-20.2009077494916 16.2690935727404 0.221373680584685  20.2024409395644 16.2690931127404 0.218439719175329  20.2055073097101 16.2690922027404 0.212571796366618  20.2070404997829 16.2690917427404 0.209637834957262  
-20.2374981112295 16.2690992927407 0.214927312588499  20.2380652512565 16.2690991727407 0.21389548569949  20.2391995213103 16.2690989327407 0.211831831911472  20.2397666613373 16.2690988227407 0.210800005022462  
-20.2590217622519 16.2691035827409 0.211302165326314  20.2590217622519 16.2691035827409 0.211302165326314  20.2590217622519 16.2691035827409 0.211302165326314  20.2590217622519 16.2691035827409 0.211302165326314  
-
-0 4
-0.66201458 1
-1.36297112 1
-2.59520727 1
-3.2584606 1
-3.49239086 1
-3.7643859 1
-3.93898534 1
-4.84267156 1
-5.04134187 1
-5.89529337 1
-6.14991318 1
-6.50638093 1
-7.01562055 4
-
-0 3
-0.5 1
-1 3
-
-9 0 0 0 0 3 3 19 33 17 31 18.6177078042936 16.2690957227405 0.240354853816242  18.6257833946772 16.2690910827403 0.230482785097344  18.6374974252336 16.2690861027401 0.219520027926641  18.6507599658635 16.2690825227399 0.211047813654233  18.6606987863356 16.2690800827398 0.205167473044932  18.6691777067383 16.2690786327397 0.201363302914243  18.6851232574957 16.2690766327396 0.195669437073799  18.7006776382345 16.2690753027396 0.191324906077445  18.7190712991081 16.2690748027396 0.188340101045674  18.732057689725 16.2690748227396 0.186999616222005  18.7417047001832 16.2690749727396 0.186282049827922  18.7561294408683 16.2690754127396 0.185658239418293  18.7698980415223 16.2690760327396 0.185534242252403  18.7816649620812 16.2690765427396 0.185434786117679  18.7909728725233 16.2690769127396 0.185346944143507  18.7990130629052 16.2690772027397 0.185225269537728  18.8112069034843 16.2690775827397 0.184985178986324  18.8326370245022 16.2690781327397 0.184446664990746  18.8556045855931 16.2690783027397 0.183388212280472  18.8725101763961 16.2690781327397 0.182217963684888  18.9143585983838 16.2690775927397 0.179170758230154  18.9541744602749 16.2690749627396 0.173376626924947  18.9968209923005 16.2690731027395 0.16880633010787  19.0116798130063 16.2690724827394 0.16726097540447  19.0512026348835 16.2690711127394 0.163627565061892  19.0958831370057 16.2690702727393 0.16077116238622  19.152039759673 16.2690698827393 0.158326525030106  19.1960397617629 16.2690699827393 0.157155131684468  19.2451328240947 16.2690704527393 0.156501618733428  19.3050875669424 16.2690712227394 0.156128143365689  19.3783694704231 16.2690723727394 0.15621997389005  19.4383240532708 16.2690729127395 0.155925567686067  19.4649687145364 16.2690729827395 0.155572182299282  
-18.6202961544166 16.2690953127405 0.243862286492837  18.6284214448025 16.2690908427403 0.234299087538609  18.6401270253585 16.2690860427401 0.223678914114178  18.6533477559864 16.2690826027399 0.21547368350445  18.6632514564568 16.2690802527398 0.209779028963969  18.6716901468576 16.2690788627397 0.206096011329035  18.6875466676108 16.2690769627397 0.200584823007267  18.7030021783449 16.2690757027396 0.196381012377597  18.7212658892124 16.2690752427396 0.193495836030559  18.7341600998248 16.2690752827396 0.192201845289097  18.7437390602798 16.2690754527396 0.191510163486244  18.7580626109601 16.2690759027396 0.190910932257782  18.7717351916095 16.2690765327396 0.190795230142287  18.7834199021645 16.2690770327397 0.190701944347856  18.7926627126035 16.2690774127397 0.190618983243915  18.8006465229827 16.2690777027397 0.190502522768384  18.8127547935579 16.2690780927397 0.190271561467414  18.8340344245686 16.2690786527397 0.189751554312715  18.8568410156518 16.2690788527397 0.188724298963923  18.8736292164492 16.2690787027397 0.1875869242099  18.9151874284231 16.2690782327397 0.184624793339207  18.9547367403016 16.2690757127396 0.17898791994147  18.9970932923135 16.2690739427395 0.17452601363954  19.0118509230144 16.2690733527395 0.173016635837849  19.0511035248788 16.2690720427394 0.169460988038965  19.0954761769864 16.2690712527394 0.166644454165186  19.1512459396353 16.2690708727394 0.164203269379236  19.1949433717108 16.2690709827394 0.163003467872249  19.2436993340266 16.2690714127394 0.162287220178229  19.3032420168548 16.2690721427394 0.161814046885754  19.3760187603115 16.2690732127395 0.161745475152497  19.4355596131395 16.2690736827395 0.161307570771698  19.4620202243963 16.2690737127395 0.160892476841982  
-18.6258536746805 16.2690945427405 0.250810657642866  18.6340760250711 16.2690904127403 0.241879614608665  18.645759455626 16.2690859827401 0.231960787337546  18.6588898662497 16.2690828227399 0.224303015863821  18.6687182267165 16.2690806727398 0.218989270191432  18.6770718971133 16.2690794127398 0.215555202978322  18.6927414278575 16.2690777027397 0.210420050454416  18.7079902285818 16.2690765827396 0.206506582828536  18.7259831494364 16.2690762227396 0.203828572091337  18.7386853100398 16.2690763027396 0.202632259564515  18.748122460488 16.2690764927396 0.201995512494272  18.7622350911583 16.2690769627397 0.201449651708345  18.7757075217982 16.2690775927397 0.201353999823801  18.7872208623451 16.2690781127397 0.201275975070095  18.7963279627776 16.2690784927397 0.201205084856728  18.8041942831513 16.2690787827397 0.201101082821788  18.8161241837179 16.2690791827398 0.200891503401834  18.8370901847137 16.2690797727398 0.200414089249158  18.8595612757811 16.2690800227398 0.199455632383634  18.8761047465668 16.2690799227398 0.198389097702976  18.917057928512 16.2690795827398 0.195609862830969  18.9560509203641 16.2690772927397 0.190302562958886  18.9978025423472 16.2690756927396 0.186071277747911  19.0123491230381 16.2690751627396 0.184638607609863  19.0510381448757 16.2690739727395 0.181250448508934  19.0947688869528 16.2690732627395 0.178525357359499  19.1497319595634 16.2690729327395 0.176104044864493  19.192798481609 16.2690730227395 0.174856428765234  19.2408515238914 16.2690734127395 0.174023599155677  19.2995349266787 16.2690740427395 0.173361023724206  19.3712583800854 16.2690749327396 0.172982426556224  19.4299365928724 16.2690752427396 0.17226588859219  19.456013454111 16.2690752127396 0.171731171386793  
-18.6325611049991 16.2690938827405 0.257956703852285  18.6408803153943 16.2690901227403 0.249723872481247  18.6525286059475 16.2690860927401 0.240580109966942  18.665548906566 16.26908324274 0.233529368222049  18.6752864970285 16.2690813027399 0.228638330329737  18.6835403574205 16.2690801727398 0.225481500889796  18.6989929881545 16.2690786627397 0.220766622005851  18.7140040088675 16.2690776927397 0.217179193715458  18.7316873397074 16.2690774327397 0.214737474109482  18.7441699903003 16.2690775627397 0.213654830488059  18.7534449907408 16.2690777727397 0.213083251240911  18.7673164013997 16.2690782627397 0.212603372378118  18.7805598620287 16.2690789027397 0.212536919134962  18.7918771625662 16.2690794227398 0.212481792082343  18.8008290529914 16.2690798127398 0.212429011379836  18.8085609733587 16.2690801027398 0.212342870765745  18.8202869239156 16.2690805127398 0.212163098567206  18.8408942448944 16.2690811227399 0.211743551417279  18.8629816459435 16.2690814227399 0.210872438205903  18.879245076716 16.2690813727399 0.209892312519349  18.9195059086283 16.2690811627399 0.207335228287894  18.95786104045 16.2690791227398 0.202409654393942  18.9989197124002 16.2690777027397 0.198453243316023  19.0132245430797 16.2690772227397 0.197112353402334  19.0512681748866 16.2690761727396 0.1939283133411  19.0942641669288 16.2690755427396 0.191326815377536  19.1483039394956 16.2690752427396 0.188956844974968  19.1906482515068 16.2690753127396 0.187680122914327  19.237896603751 16.2690756327396 0.186745649799942  19.2955964064916 16.2690761427396 0.185907500190132  19.366114299841 16.2690768427396 0.185228407397877  19.4238052125812 16.2690769627397 0.184238688690868  19.4494429037989 16.2690768527396 0.183587167219922  
-18.6373324252257 16.2690935127404 0.262586288212179  18.6457130456238 16.2690899927403 0.25482610341359  18.6573332261757 16.2690862327401 0.246207182654213  18.6702747967904 16.26908358274 0.239568293278883  18.6799478672499 16.2690817927399 0.2349641881402  18.6881317776386 16.2690807527398 0.231995926159215  18.7034333583654 16.2690793727398 0.227567492008875  18.7182795590705 16.2690785027397 0.224202879949065  18.7357490399003 16.2690783127397 0.221924056730827  18.748080080486 16.2690784727397 0.220920635303167  18.7572430809212 16.2690787027397 0.220394938038197  18.7709478315721 16.2690792027398 0.219962492177657  18.7840330621937 16.2690798427398 0.219918579225572  18.7952149127248 16.2690803527398 0.219881329293802  18.8040595431449 16.2690807427398 0.219842686891967  18.8116986235077 16.2690810527399 0.219770250678526  18.823283654058 16.2690814627399 0.219613091551062  18.843643195025 16.2690820827399 0.219236974473197  18.8654655060615 16.2690824127399 0.218429454844842  18.8815354068248 16.2690824027399 0.217511035311219  18.9213177387143 16.2690822727399 0.215112257377283  18.9592315305151 16.2690804027398 0.210452057045936  18.9998110124426 16.2690790927398 0.206689647347231  19.0139486831141 16.2690786527397 0.205413663146625  19.0515460948998 16.2690776927397 0.202375324082312  19.0940342269179 16.2690771127397 0.199866379603143  19.1474357894544 16.2690768227396 0.197542727272776  19.1892808914419 16.2690768827397 0.196255627201642  19.2359730036596 16.2690771527397 0.195263016154495  19.2929928863679 16.2690775727397 0.194319238519668  19.3626775096778 16.2690781227397 0.193453220928535  19.4196860223855 16.2690781227397 0.192292173823388  19.4450201635889 16.2690779527397 0.191567609028973  
-18.6404659953746 16.2690932927404 0.26550772764094  18.6488854557745 16.2690899327403 0.258053597046888  18.6604865563255 16.2690863427401 0.249774591173656  18.6733763369377 16.26908382274 0.243402731581009  18.6830070473952 16.2690821227399 0.238984713421164  18.6911452177817 16.2690811427399 0.236138883735995  18.7063482485038 16.2690798527398 0.231896646664499  18.7210870692039 16.2690790427398 0.228677089801578  18.738417360027 16.2690788927397 0.226504828208402  18.750649750608 16.2690790727398 0.225553541723218  18.7597398510398 16.2690793127398 0.225058203919691  18.7733361316856 16.2690798227398 0.224657489240658  18.7863183723022 16.2690804627398 0.224629191299314  18.7974120528291 16.2690809727398 0.224604390668136  18.8061868832459 16.2690813727399 0.224575593766768  18.8137655336059 16.2690816727399 0.224512624353777  18.8252588441518 16.2690820827399 0.22437100275705  18.8454571151111 16.2690827227399 0.224024572420596  18.8671068861395 16.2690830627399 0.223259873084274  18.8830508168967 16.2690830727399 0.222382590672606  18.9225216787715 16.2690830027399 0.220089232663677  18.9601481105587 16.2690812327399 0.215603430770613  19.0004156124713 16.2690800027398 0.211969556398013  19.0144444531376 16.2690795927398 0.210736620789452  19.0517513649096 16.2690786827397 0.207795392689751  19.093908906912 16.2690781327397 0.205349645433584  19.1468950394287 16.2690778527397 0.203060233904843  19.1884151714008 16.2690778927397 0.201769839893553  19.2347451736013 16.2690781327397 0.200743502424804  19.2913224562886 16.2690785027397 0.199736186276959  19.3604646695727 16.2690789627397 0.198755188350364  19.4170289822593 16.2690788727397 0.197488196720186  19.4421655334533 16.2690786627397 0.196718548053629  
-18.6452177456003 16.2690930127404 0.269623458936426  18.6536928360028 16.2690898927403 0.262624673244002  18.6652636565524 16.2690865627401 0.2548515790148  18.6780747171609 16.26908423274 0.248878037031072  18.6876412176153 16.2690826627399 0.244737749564419  18.6957104879986 16.2690817727399 0.242075066677948  18.7107654887136 16.2690806027398 0.238112011639713  18.725343359406 16.2690798927398 0.235110606537154  18.7424653802193 16.2690798127398 0.233100152451663  18.7545501307933 16.2690800127398 0.232228958010283  18.7635311512199 16.2690802627398 0.231780750918994  18.7769651018579 16.2690807827398 0.23143031790235  18.7897931924672 16.2690814227399 0.231428332282255  18.8007549229879 16.2690819427399 0.231424692372083  18.8094252733997 16.2690823327399 0.23141262993151  18.8169134937554 16.2690826427399 0.231365536279273  18.8282695542948 16.2690830627399 0.231249735143773  18.8482264752427 16.26908370274 0.23095219943964  18.8696180362587 16.26908407274 0.230256167446581  18.8853734170071 16.26908411274 0.229443655147988  18.9243780788597 16.26908411274 0.227315937346927  18.9615741506264 16.2690825027399 0.223097340506555  19.0013745725168 16.2690813727399 0.219663502233456  19.0152404731754 16.2690809927398 0.218497696068083  19.0521124949267 16.2690801627398 0.215709303175642  19.0937751769056 16.2690796627398 0.21336744839441  19.1461394393928 16.2690793927398 0.211141817138698  19.1871731213418 16.2690794127398 0.209856875207666  19.2329610935166 16.2690796027398 0.208792204287097  19.2888758461724 16.2690798827398 0.207705038715459  19.3572061294179 16.2690802027398 0.206571284211609  19.413105532073 16.2690799827398 0.205161766284661  19.4379463232529 16.2690797127398 0.204331732465236  
-18.6502088458373 16.2690928227404 0.273504881890784  18.6587372562424 16.2690899427403 0.266970007030394  18.6702741567904 16.2690868627401 0.259712597075686  18.683002257395 16.26908473274 0.254146261181299  18.6925013678461 16.26908329274 0.250290107068142  18.700498968226 16.2690824827399 0.247815357840597  18.7154006889338 16.2690814427399 0.244139654166011  18.7298124396183 16.2690808327398 0.241363665544158  18.7467200304214 16.2690808027398 0.239522474886707  18.7586528109882 16.2690810327398 0.238736291609365  18.7675215114094 16.2690813027399 0.238338752530483  18.7807883020395 16.2690818327399 0.238043697376468  18.7934576526413 16.2690824627399 0.238072680377845  18.8042835031555 16.2690829827399 0.238094163928865  18.8128462735622 16.26908337274 0.238101969249236  18.8202413639135 16.26908367274 0.238073469627882  18.8314560944461 16.26908410274 0.237987627293805  18.8511645253822 16.26908475274 0.237746291582342  18.8722901963856 16.26908515274 0.237126918652924  18.8878513971248 16.26908521274 0.236385213077695  18.9263759089546 16.2690852927401 0.234438135645213  18.9631283807002 16.26908382274 0.230502221658268  19.0024475225678 16.2690828027399 0.227284073495414  19.0161455432184 16.2690824627399 0.226190823193487  19.0525695349485 16.2690817027399 0.223569426338977  19.0937224869031 16.2690812427399 0.221346749263406  19.1454462193599 16.2690809827398 0.219203439561604  19.1859788212851 16.2690809827398 0.217938037711501  19.2312084434333 16.2690811027399 0.216850312669837  19.2864407360567 16.2690812927399 0.215701630165277  19.3539347292625 16.2690814527399 0.21443698046521  19.4091492718851 16.2690811027399 0.212902649512333  19.4336854430505 16.2690807827398 0.212020132330415  
-18.6552624460774 16.2690927027404 0.277085441310852  18.6638411064848 16.2690900527403 0.271010082012288  18.6753420970311 16.2690872227401 0.264263686971851  18.6879859976317 16.2690852827401 0.259101881236678  18.6974168880796 16.26908397274 0.255528166446936  18.7053424484561 16.26908325274 0.253240706798288  18.7200905991565 16.2690823327399 0.249852103467338  18.7343363098332 16.2690818027399 0.247302073436218  18.7510299806261 16.2690818427399 0.245632280216907  18.7628111411857 16.2690820927399 0.244933193603702  18.7715677916016 16.2690823727399 0.24458808802731  18.7846678022238 16.2690829027399 0.244351402066068  18.797178752818 16.26908354274 0.244414585589069  18.8078690133258 16.26908405274 0.244463974411415  18.8163244437274 16.26908444274 0.244493847002834  18.8236266240742 16.26908475274 0.244485815052453  18.8347003446002 16.26908517274 0.244432742039932  18.8541608355245 16.2690858427401 0.24425248349137  18.8750212265154 16.2690862527401 0.243714719275827  18.8903886372453 16.2690863427401 0.243047231344123  18.9284339890523 16.2690864927401 0.241289150680619  18.9647435207769 16.26908517274 0.237642095137393  19.0035822426217 16.26908425274 0.234647667105166  19.0171126732643 16.26908394274 0.23362981248682  19.0530894649731 16.26908325274 0.231183390370621  19.0937337069036 16.2690828227399 0.229090055231193  19.14481817933 16.2690825627399 0.227042978223962  19.1848507012315 16.2690825327399 0.225808779265341  19.2295230633533 16.2690825927399 0.224711773583236  19.2840742359443 16.2690826927399 0.22351896014658  19.3507336091105 16.2690827027399 0.22214561005135  19.4052646917006 16.2690822027399 0.220504926053421  19.4294968528515 16.2690818227399 0.219578079239399  
-18.6587295362421 16.2690926627404 0.279362878199024  18.6673405966511 16.2690901627403 0.273596920555156  18.6788160871961 16.2690874927402 0.267194712141067  18.6914021077939 16.2690856827401 0.26230588245886  18.7007862182396 16.26908446274 0.258922844318175  18.7086626286137 16.26908379274 0.256762064965543  18.7233063193093 16.2690829527399 0.253568021143834  18.7374393099806 16.2690824927399 0.251171486810005  18.7539879807666 16.2690825627399 0.249618987606265  18.7656663913213 16.2690828327399 0.248980005655915  18.7743470917336 16.2690831127399 0.248671339231254  18.7873340423504 16.26908366274 0.248475730941963  18.7997376029396 16.26908429274 0.248563723566143  18.810335953443 16.26908480274 0.248633427379454  18.8187186138411 16.26908519274 0.248679364741635  18.825957804185 16.2690854927401 0.248686149771958  18.8369359447064 16.2690859227401 0.248656704450559  18.8562283656227 16.2690865927401 0.24852030365408  18.876908926605 16.2690870227401 0.248040356101284  18.8921449673287 16.2690871327401 0.247424902782052  18.9298654491203 16.2690873227401 0.245799164434833  18.9658745408307 16.2690860927401 0.242351076831058  19.0043874526599 16.26908523274 0.239512374006227  19.0178042532972 16.26908494274 0.238547067040377  19.0534777849916 16.26908430274 0.236223289750004  19.0937771069057 16.26908390274 0.234222749254983  19.1444281593115 16.26908363274 0.232247890381182  19.1841216111968 16.26908358274 0.231040687153843  19.2284161333007 16.26908360274 0.229944281241767  19.2825054858698 16.26908363274 0.228730243274103  19.3485989890091 16.26908353274 0.227294290145899  19.4026666715772 16.2690829427399 0.225590725744984  19.4266927127183 16.2690825227399 0.224637899259727  
-18.6637437364802 16.2690926427404 0.282429784694694  18.6723993168913 16.2690903627403 0.277105111371786  18.6838369874346 16.2690879327402 0.271193947911021  18.6963391580284 16.2690862927401 0.266695261977345  18.7056556284709 16.26908520274 0.263584861619609  18.7134612988417 16.26908460274 0.261605540275596  18.7279549095301 16.26908388274 0.258690683667148  18.7419262401937 16.26908350274 0.256514910873804  18.7582671809698 16.26908363274 0.255132268168132  18.7697983915175 16.26908392274 0.254580995041948  18.7783702819247 16.26908421274 0.254325841489829  18.7911952625338 16.26908476274 0.254191233893435  18.8034449531157 16.2690853927401 0.25431703051941  18.8139116136128 16.2690859027401 0.254417781644196  18.822190014006 16.2690862827401 0.254488270497544  18.8293389743456 16.2690865927401 0.254517595388937  18.8401801748605 16.2690870227401 0.254523973259239  18.8592318057654 16.2690876927402 0.254453838165908  18.8796547267354 16.2690881327402 0.254060248027214  18.8947025274502 16.2690882727402 0.253521811131639  18.9319575392197 16.2690885227402 0.252091737363714  18.9675359609096 16.2690874327402 0.248933505823707  19.0055819527167 16.2690866527401 0.246323821359753  19.0188358833462 16.2690864027401 0.245435881877578  19.0540748450199 16.2690858227401 0.243293590085825  19.0938799269106 16.2690854427401 0.241433150577459  19.1439099192869 16.26908517274 0.239571377849029  19.1831175011491 16.26908509274 0.238410810563905  19.2268705932273 16.26908504274 0.237324565202311  19.280298185765 16.26908497274 0.236091790593758  19.3455808288657 16.26908472274 0.234580934561996  19.3989845214023 16.26908399274 0.232799547417385  19.4227152325294 16.26908351274 0.231814923330618  
-18.6687113467162 16.2690926827404 0.285188325765718  18.6774081671292 16.2690906127403 0.28029316253321  18.6888071476707 16.2690884027402 0.274860127735155  18.7012261082605 16.2690869427401 0.270742189829563  18.7104755886999 16.2690859627401 0.267898008854472  18.7182115690673 16.2690854427401 0.266096278768894  18.7325577597487 16.26908483274 0.263455280213454  18.7463705904048 16.26908453274 0.261496675650425  18.7625081711713 16.26908471274 0.260282563542758  18.7738953017121 16.26908502274 0.259819138840746  18.7823606721142 16.2690853227401 0.259617996571193  18.7950270727158 16.2690858727401 0.259545778067762  18.8071261232905 16.2690865027401 0.259711394025629  18.8174638537815 16.2690870027401 0.259844954481972  18.8256401841699 16.2690873927402 0.259941387946553  18.8327007945052 16.2690876927402 0.259994409609071  18.8434079350138 16.2690881227402 0.260038309191156  18.8622238459075 16.2690887927402 0.260037312071109  18.8823945368656 16.2690892527402 0.259732643996638  18.8972580275716 16.2690894127402 0.25927266992479  18.9340572693194 16.2690897227403 0.258041676216321  18.9692138009893 16.2690887527402 0.255173161670074  19.0068024827746 16.2690880627402 0.252795026047119  19.0198969033966 16.2690878327402 0.251985415398664  19.0547102850501 16.2690873127401 0.250027968045691  19.0940314069178 16.2690869627401 0.248313578804262  19.1434532492652 16.2690866827401 0.246574476851659  19.1821850711049 16.2690865627401 0.245469464319173  19.2254079631578 16.2690864527401 0.244404735868601  19.2781875556647 16.2690862927401 0.243168138249866  19.3426762187278 16.2690858827401 0.241602352695495  19.3954297412334 16.26908501274 0.23976003979799  19.4188712623469 16.26908447274 0.238751034230065  
-18.6766731570943 16.2690928627404 0.289056405569442  18.6854305075103 16.2690911127403 0.284835058898939  18.6967652080486 16.2690892627402 0.280152490176529  18.7090504886322 16.2690880627402 0.276633927669406  18.7181926390664 16.2690872627401 0.274209128844234  18.7258176994286 16.2690868627401 0.272687981921984  18.7399299900989 16.2690864227401 0.270480913047153  18.753491990743 16.2690862427401 0.268867662030528  18.7693083814943 16.2690864927401 0.267924444905728  18.7804679420243 16.2690868327401 0.267603867340501  18.7887650624184 16.2690871527401 0.267491365455158  18.8011809630081 16.2690877027402 0.267523141096667  18.8130420035715 16.2690883227402 0.267757359927792  18.8231760440528 16.2690888127402 0.26794764642683  18.8311911244335 16.2690891927402 0.268088936623541  18.8381121947623 16.2690894927403 0.268182700597994  18.8486075452608 16.2690899227403 0.268290848643131  18.8670511061368 16.2690906027403 0.268407728328682  18.8868233470759 16.2690910827403 0.268252437831306  18.9013956377681 16.2690912727403 0.267922658875643  18.9374747794817 16.2690916627404 0.26702150097284  18.9719643111199 16.2690908827403 0.264622901248913  19.0088302228709 16.2690903127403 0.262625548494044  19.0216725534809 16.2690901227403 0.261944957871717  19.0558133651025 16.2690896927403 0.260294131263307  19.0943697769339 16.2690893627402 0.258828517023694  19.1428306992356 16.2690890727402 0.257307424361446  19.1808107210396 16.2690888927402 0.25631018221408  19.2231958330528 16.2690886827402 0.255302795886232  19.274951475511 16.2690883527402 0.2540894389486  19.3381855785145 16.2690876927402 0.252473941761868  19.3899117909713 16.2690866027401 0.250566111891251  19.4128963820631 16.2690859627401 0.249532179182142  
-18.6865875775652 16.2690932427404 0.293107478511858  18.6954124579844 16.2690918827404 0.289704320010216  18.7066638385188 16.2690904527403 0.285933541061114  18.7187822290944 16.2690895627403 0.283145666428697  18.7277907895223 16.2690889827402 0.281232546687829  18.735278809878 16.2690887227402 0.280054879591892  18.7491032605346 16.2690884727402 0.278380757482376  18.7623574411641 16.2690884427402 0.27719340327598  18.7777805418967 16.2690887827402 0.276588262757237  18.7886614824135 16.2690891527402 0.276448207850585  18.7967525827978 16.2690894827402 0.276448829450614  18.808861713373 16.2690900427403 0.27661547867853  18.8204312739225 16.2690906427403 0.27694161965402  18.830315854392 16.2690911227403 0.277208170756681  18.8381334547633 16.2690915027403 0.277409767426256  18.8448836250839 16.2690917927404 0.277558015563298  18.8551196355701 16.2690922127404 0.277751744552499  18.8731072164244 16.2690928927404 0.278024985465478  18.8923915273404 16.2690933927404 0.278064957577376  18.9066071380156 16.2690936127404 0.277903250449695  18.9418042396874 16.2690941027405 0.277427217777085  18.9754762212867 16.2690935327404 0.275620866971288  19.0114564929957 16.2690931127404 0.27411051639955  19.023989933591 16.2690929627404 0.273595214775075  19.0573067251735 16.2690926227404 0.272340084565459  19.0949263869603 16.2690923327404 0.271204163531506  19.1422101992062 16.2690920027404 0.269983714893538  19.1792692809664 16.2690917427404 0.269146305863763  19.2206280729308 16.2690913927403 0.268241693980796  19.2711293553295 16.2690908527403 0.267097646206457  19.3328266882599 16.2690898827403 0.265473026729292  19.383294520657 16.2690885127402 0.263527890966903  19.4057194117222 16.2690877427402 0.262482412657245  
-18.6952396579762 16.2690937727405 0.295722919916084  18.7041141983977 16.2690927327404 0.293009402247199  18.7152890289285 16.2690916427404 0.290007814694631  18.7272612694971 16.2690910127403 0.287839405061637  18.7361533299195 16.2690906127403 0.286360593321398  18.7435230502695 16.2690904527403 0.285475880279376  18.7571003109144 16.2690903627403 0.284258451411551  18.7700912115315 16.2690904527403 0.283438183642591  18.7851789622481 16.2690908627403 0.28312931437792  18.7958223727536 16.2690912627403 0.283150167958911  18.8037378131296 16.2690915927403 0.283252935203792  18.8155853236923 16.2690921527404 0.283543907457612  18.82690625423 16.2690927327404 0.28395819640729  18.8365780846894 16.2690932127404 0.284298168363438  18.8442272550527 16.2690935727404 0.284557822145771  18.8508316853664 16.2690938627405 0.284758197225288  18.8608465458421 16.2690942727405 0.285033425158361  18.878445286678 16.2690949427405 0.285454831058376  18.8973134775742 16.2690954627405 0.285676563598908  18.9112248382349 16.2690957027405 0.285668873968543  18.945669529871 16.2690962527406 0.285581640384399  18.9786433714371 16.2690958627406 0.284301281493586  19.0138677431102 16.2690955427405 0.283231902692793  19.026137563693 16.2690954327405 0.282866594895442  19.0587511552421 16.2690951627405 0.281973924413042  19.0955716169909 16.2690948827405 0.281150072553911  19.1418511691891 16.2690945027405 0.280227489620091  19.178124520912 16.2690941727405 0.279560654978418  19.2186076428348 16.2690936927404 0.278783689181514  19.2680387051827 16.2690929727404 0.277748909202365  19.3284249580509 16.2690917227404 0.276180011327846  19.377819230397 16.2690901027403 0.274255714046447  19.3997666414394 16.2690892327402 0.273223673297428  
-18.701045568252 16.2690941927405 0.297165473694602  18.7099502386749 16.2690933627404 0.294906240137294  18.7210723692032 16.2690924827404 0.292411568388804  18.7329463697672 16.2690920227404 0.290652470925251  18.7417602701858 16.2690917427404 0.28946080823865  18.7490510405321 16.2690916527404 0.288770277795852  18.7624638211692 16.2690916727404 0.28785630770244  18.7752798917779 16.2690918327404 0.2872806913851  18.790145342484 16.2690922827404 0.287170950769888  18.800631292982 16.2690926927404 0.287300867326058  18.8084302733525 16.2690930327404 0.287473303944249  18.8201043339069 16.2690935927404 0.287849902842136  18.8312604144368 16.2690941627405 0.288325998894749  18.8407911848895 16.2690946327405 0.288717540323347  18.8483286852475 16.2690949827405 0.289017972147616  18.8548364955566 16.2690952727405 0.289254860248868  18.8647047260254 16.2690956827405 0.289587057994647  18.882045676849 16.2690963427406 0.290111805739571  18.9006379877321 16.2690968627406 0.290459293006075  18.9143475983833 16.2690971227406 0.290557391040735  18.9482933599956 16.2690977127406 0.290736955399264  18.9808040315398 16.2690974327406 0.289812478335353  19.015527033189 16.2690971727406 0.289044271038866  19.0276219837635 16.2690970827406 0.288781511846385  19.0597692052904 16.2690968527406 0.288137750775808  19.0960596870141 16.2690965727406 0.287531453687011  19.1416732791807 16.2690961627406 0.28682067563325  19.1774255608788 16.2690957827405 0.286278778147512  19.2173279627741 16.2690952127405 0.285600283415285  19.2660493150882 16.2690943627405 0.284655315830401  19.3255661379151 16.2690929227404 0.283145364458683  19.3742485002274 16.2690911427403 0.281253132318806  19.3958792812548 16.2690902027403 0.280238069820593  
-18.7159874089617 16.2690953027405 0.300751476534928  18.7249697793883 16.2690949927405 0.299663906933271  18.7359563599101 16.2690946927405 0.298476754076884  18.7475775304621 16.2690946627405 0.297773933723502  18.7561902908712 16.2690946727405 0.297323378122102  18.7632778712078 16.2690947727405 0.297134251543119  18.7762672618248 16.2690950527405 0.297004204386942  18.7886333124122 16.2690954027405 0.297060943569637  18.802926503091 16.2690959627406 0.297466688658909  18.8130071335698 16.2690964127406 0.29787936713851  18.820506333926 16.2690967627406 0.298232635175289  18.8317339044593 16.2690973227406 0.298831868833751  18.8424656349691 16.2690978627406 0.299469170384022  18.8516332754045 16.2690983027407 0.299995255469009  18.8588833257489 16.2690986427407 0.300402076268332  18.8651423960461 16.2690989127407 0.300734181044106  18.8746331964969 16.2690993127407 0.301214888616939  18.8913105472891 16.2690999527407 0.302008925984654  18.9091926981384 16.2691004927408 0.302683644566701  18.9223829887649 16.2691007927408 0.303056663784418  18.9550444303163 16.2691014727408 0.303929467775874  18.9863628218038 16.2691014727408 0.303927371995775  19.0197951933918 16.2691013827408 0.303941061606425  19.0314400439449 16.2691013427408 0.303944587076593  19.0623867354147 16.2691012227408 0.303947670286739  19.0973129470737 16.2691009527408 0.303908232024866  19.1412122491588 16.2691004527408 0.303751214097408  19.1756232207932 16.2690999327407 0.303537583867261  19.2140307626174 16.2690991427407 0.303119966287425  19.2609251748448 16.2690979627407 0.302415198783951  19.3182039575654 16.2690960427406 0.30106795505996  19.3650537597907 16.2690938227405 0.29926722620443  19.3858695007793 16.2690926927404 0.298299853918482  
-18.7307653496636 16.2690967827406 0.302462184136182  18.7398260500939 16.2690970027406 0.302566656401144  18.7506791906094 16.2690972627406 0.302711351078017  18.7620503711495 16.2690976427406 0.30309185207609  18.7704641915492 16.2690979427407 0.30340261532085  18.7773506018763 16.2690982127407 0.303731951696493  18.7899206124733 16.2690987527407 0.304417595259059  18.8018407230395 16.2690992927407 0.305137335323245  18.8155666736914 16.2690999527407 0.30609495558873  18.8252455441511 16.2691004327408 0.306816524893002  18.8324475844932 16.2691007927408 0.307370245349303  18.8432325950055 16.2691013327408 0.308221783309748  18.8535436954952 16.2691018427408 0.309048959829037  18.8623513959136 16.2691022527409 0.309734085721579  18.8693165262444 16.2691025727409 0.310266665026875  18.87532905653 16.2691028327409 0.310710682277965  18.884445736963 16.2691032127409 0.311365186369052  18.9004653177239 16.2691038327409 0.312472888161665  18.9176435385398 16.269104372741 0.313522174711504  18.9303190891419 16.269104692741 0.314204845153929  18.9617075206327 16.269105462741 0.315856815092393  18.9918442620642 16.269105712741 0.316858104869952  19.0239974535913 16.269105772741 0.317741201701897  19.0351961841233 16.269105782741 0.318041523036161  19.0649529655366 16.269105742741 0.318772850130897  19.0985269571313 16.269105472741 0.319392990910352  19.1407270991357 16.269104862741 0.319907154864774  19.173808610707 16.2691041827409 0.320114431464619  19.2107344924609 16.2691031427409 0.320061683642114  19.2558181046022 16.2691016127408 0.319724581296102  19.3108785972175 16.2690991727407 0.318696622467277  19.3559120093564 16.2690965027406 0.317115755702189  19.3759198803068 16.2690951727405 0.316253079791215  
-18.7445785303197 16.2690985127407 0.302431252674713  18.7537136507536 16.2690992127407 0.303678969303976  18.7644425412632 16.2690999927407 0.305102360751584  18.7755801317922 16.2691007627408 0.306529318489361  18.783807992183 16.2691013227408 0.307576551969102  18.7905061925011 16.2691017627408 0.308410321068703  18.8026836730795 16.2691025427409 0.30989390789917  18.8141862736259 16.2691032427409 0.311266457754363  18.8273809942526 16.2691039927409 0.312777020076111  18.8366835946944 16.269104492741 0.313813134045323  18.8436073650233 16.269104862741 0.31457331485143  18.8539778955159 16.269105382741 0.315689084004426  18.8638951059869 16.269105852741 0.316720676963424  18.8723657263892 16.269106232741 0.317577447944119  18.8790640267074 16.2691065327411 0.318245751395861  18.884845676982 16.2691067727411 0.318810074552665  18.8936119873984 16.2691071227411 0.3196508470026  18.90901555813 16.2691077127411 0.321093614371128  18.9255345589146 16.2691082427411 0.322538062719735  18.9377280594938 16.2691085927412 0.323543544877493  18.967924360928 16.2691094127412 0.326006511304478  18.9969546023069 16.2691098927412 0.328026154210406  19.0279099237772 16.2691100727412 0.329806830924983  19.0386908942893 16.2691101227412 0.330414124903828  19.0673333956497 16.2691101427412 0.331904401934612  19.0996410771842 16.2691098527412 0.333228604997509  19.1402500091131 16.2691091127412 0.334479465476921  19.1720865206252 16.2691082727411 0.335165412789502  19.2076248923132 16.2691069827411 0.335548397807693  19.251012764374 16.269105102741 0.335670269103482  19.3039958968906 16.2691021427408 0.3350811617055  19.3473283089487 16.2690990227407 0.333820518075623  19.3665796498631 16.2690975027406 0.333106715941719  
-
-0 4
-0.08990298 1
-0.18315357 1
-0.20034405 1
-0.22475745 1
-0.27019476 1
-0.32899256 1
-0.35467696 1
-0.39790986 1
-0.41449401 1
-0.47595518 1
-0.5151171 1
-0.5966751 1
-0.69478979 1
-0.69662422 1
-0.71520522 1
-1 4
-
-0 4
-0.19770808 1
-0.23208154 1
-0.24077415 1
-0.37555898 1
-0.37681277 1
-0.50380359 1
-0.62392695 1
-0.66153287 1
-0.70445596 1
-0.77323777 1
-0.88510862 1
-0.91815888 1
-0.95570126 1
-1.02938023 1
-1.04266766 1
-1.14446292 1
-1.36100787 1
-1.39816237 1
-1.40679264 1
-2.01060881 1
-2.02220413 1
-2.07165684 1
-2.24214506 1
-2.63715539 1
-2.7647672 1
-3.1127943 1
-3.31934461 1
-3.52589496 1
-4.04227072 1
-4.45537137 4
-
-9 0 0 0 0 3 2 31 4 29 3 13.4648095695441 6.33362332183095 -0.650095774167891  14.7530324907314 8.81750256380888 -0.427492177594788  17.329478313106 13.7852610447647 0.017715015531418  18.6177012342933 16.2691402927427 0.240318612104521  
-13.4678678896894 6.33362614983109 -0.640449211339704  14.7559755208712 8.81750458180897 -0.419376865929331  17.3321907732348 13.7852614447648 0.0227678249014136  18.6202984044167 16.2691398727426 0.243840170321786  
-13.4770251201243 6.33362909183123 -0.621503192259816  14.7642351512635 8.81750659680907 -0.403426816831745  17.3386552235419 13.7852616047648 0.0327259340443984  18.6258652646811 16.2691391127426 0.25080230947247  
-13.4919345408325 6.33362776283116 -0.603765968687343  14.7770969518744 8.81750543480901 -0.38833433426489  17.3474217539583 13.7852607747647 0.0425289345700159  18.6325841650002 16.2691384527426 0.257960568982469  
-13.5032468213698 6.33362573883107 -0.593679863128279  14.786773982334 8.81750382280894 -0.379612365130619  17.3538282942626 13.7852599947647 0.0485226308647012  18.6373554452268 16.2691380727426 0.262590128862361  
-13.5108333417301 6.33362419383099 -0.587633253851081  14.7932472526415 8.81750260880888 -0.37434705183053  17.3580750844643 13.7852594347647 0.052225352240571  18.6404890053757 16.2691378527425 0.265511554271122  
-13.518346272087 6.33362253383091 -0.582541645859242  14.7996348729449 8.81750132080882 -0.369876208068176  17.3622120646608 13.7852588947646 0.0554546675039552  18.6435006555187 16.2691376827425 0.268120105295021  
-13.526916452494 6.33362075583083 -0.577253214018055  14.8069109032905 8.81749994780876 -0.365216911076872  17.3668998048834 13.7852583347646 0.0588556948354954  18.6468942456799 16.2691375227425 0.270891997776679  
-13.5315618627147 6.33361986983079 -0.574552924629798  14.8108512534777 8.81749926580872 -0.362835974753783  17.3694300450036 13.7852580547646 0.0605979250182469  18.6487194357666 16.2691374527425 0.272314874894262  
-13.5362309229364 6.33361907683075 -0.571943067455837  14.8148107736657 8.81749865580869 -0.360535435664514  17.3719704751243 13.7852578147646 0.062279827898133  18.6505503258536 16.2691373927425 0.273687459689456  
-13.5402184731258 6.33361842883072 -0.569758234102063  14.8181921838263 8.81749815780867 -0.358608470762988  17.3741395952273 13.7852576147646 0.0636910559151627  18.6521133059278 16.2691373427425 0.274840819244238  
-13.54830599351 6.33361728283066 -0.565534536611448  14.8250508341521 8.81749727980863 -0.354878597275828  17.3785405154363 13.7852572747646 0.0664332813954114  18.6552853560785 16.2691372727425 0.277089220751031  
-13.5570667839261 6.33361642083062 -0.561410635735573  14.8324881945054 8.8174966218086 -0.351216314461879  17.3833310056639 13.7852570247645 0.0691723280955091  18.6587524162431 16.2691372227425 0.279366649359203  
-13.5695321445182 6.33361576283059 -0.556155169465952  14.8430907550089 8.81749612380857 -0.346507990598246  17.3902079759905 13.7852568447645 0.0727863671571668  18.6637665864813 16.2691372027425 0.282433546044873  
-13.5816545450939 6.3336158638306 -0.551704629264562  14.8534244454998 8.81749620980858 -0.342480452056948  17.3969642563114 13.7852569047645 0.0759679023282816  18.6687341567173 16.2691372427425 0.285192079515896  
-13.5954582057496 6.33361717383066 -0.547117411856681  14.8652156960598 8.81749722480862 -0.338341170890342  17.4047306766803 13.7852573247646 0.0792113110423352  18.6744881669906 16.2691373727425 0.287987551998674  
-13.6044288461757 6.33361860583073 -0.544198134078023  14.8728867764242 8.81749832880868 -0.335736514666628  17.4098026369212 13.7852577747646 0.0811867241661623  18.6782605771697 16.2691375027425 0.289648343587557  
-13.6131618965905 6.33362035983081 -0.54133833208219  14.8803588467791 8.81749967980874 -0.33321200633672  17.4147527371563 13.7852583147646 0.0830406451342188  18.681949687345 16.2691376427425 0.291166970869688  
-13.6233711670754 6.33362281583093 -0.537984865472909  14.8891001371943 8.81750156980883 -0.330284102807652  17.4205580774321 13.7852590747646 0.0851174225328604  18.686287057551 16.2691378327425 0.292818185188117  
-13.6380039777704 6.33362676783111 -0.533362481263357  14.9016515777904 8.81750461980898 -0.326291826758029  17.4289467678305 13.7852603247647 0.0878494822426263  18.6925943678506 16.2691381727426 0.294920136737954  
-13.6489243082891 6.33362963983125 -0.530262677546124  14.9110476282367 8.81750685380908 -0.323631405791666  17.435294278132 13.7852612847647 0.0896311377172504  18.6974175980796 16.2691384927426 0.296262409461709  
-13.6570365986744 6.33363147483134 -0.528224029169294  14.9180444985691 8.81750829580915 -0.321875727918276  17.4400602883584 13.7852619347648 0.0908208745937599  18.701068188253 16.2691387627426 0.297169175854778  
-13.6620624489131 6.33363254783139 -0.527016147431923  14.922379848775 8.81750914280919 -0.320833986028796  17.4430146584987 13.7852623347648 0.0915303367674575  18.7033320583606 16.2691389327426 0.297712498160584  
-13.6704166693099 6.33363407283146 -0.525195795895461  14.9295878991173 8.81751035980925 -0.319259618094017  17.4479303587322 13.7852629347648 0.0926127374988688  18.7071015885396 16.2691392227426 0.298548915300312  
-13.6808072598034 6.33363556983153 -0.523128006287246  14.9385522695431 8.81751157980931 -0.317476854239341  17.4540422790225 13.7852636047649 0.0938254498764695  18.7117872887622 16.2691396127426 0.299476601924375  
-13.6928885903773 6.33363673083159 -0.520864860959752  14.948970830038 8.81751257180935 -0.315549678737805  17.4611353193594 13.7852642547649 0.09508068571609  18.7172175590201 16.2691400927427 0.300395867938037  
-13.7033633908748 6.33363721083161 -0.518839887123571  14.9579939004666 8.81751304380938 -0.313871059958075  17.46725491965 13.7852647047649 0.0960665943929182  18.7218854292418 16.2691405427427 0.301035421558415  
-13.7100714911934 6.33363725983161 -0.517438712957019  14.9637656007407 8.81751315480938 -0.312736487524185  17.4711538198352 13.7852649447649 0.0966679633014817  18.7248479293825 16.2691408427427 0.301370188724315  
-13.7264398519709 6.33363711583161 -0.513958044451696  14.9778446414094 8.81751323080939 -0.30993685456121  17.4806542102865 13.7852654647649 0.0981055252097622  18.732058989725 16.2691415727427 0.302126715100248  
-13.7411001026672 6.33363534583152 -0.510531781868957  14.9904304720072 8.81751208480933 -0.307286312875316  17.4890912006872 13.7852655647649 0.0992046250919666  18.7384215700272 16.2691423027428 0.302450094075608  
-13.75526459334 6.33362968383125 -0.507921015384952  15.0026111725858 8.81750803280914 -0.305332068632494  17.4973043310773 13.7852647247649 0.099845824882422  18.7446509103231 16.2691430827428 0.30243477163488  
-
-0 4
-0.09024672 1
-0.18349731 1
-0.20068779 1
-0.22510119 1
-0.2705385 1
-0.28222558 1
-0.31500417 1
-0.31810221 1
-0.3293363 1
-0.3550207 1
-0.3982536 1
-0.41483775 1
-0.47629892 1
-0.51546084 1
-0.54650093 1
-0.56081663 1
-0.59701884 1
-0.64099837 1
-0.69513353 1
-0.69696796 1
-0.71554896 1
-0.74137678 1
-0.77402315 1
-0.81142183 1
-0.8526086 1
-0.86975827 1
-0.87223775 1
-1.0006874 4
-
-0 3
-23.12299448 1
-46.24598896 3
-
-9 0 0 0 0 3 2 13 4 10 3 13.7550368433292 6.33362832883119 -0.507957584226689  15.0024156525765 8.81750736180911 -0.305361129593875  17.4971732610711 13.7852654247649 0.0998317797017549  18.7445520703184 16.2691444627429 0.30242823434457  
-13.7865781648273 6.3336307468313 -0.503648957492041  15.0295177038638 8.81750943980921 -0.30165893222803  17.5153967719367 13.785266824765 0.102321118299992  18.7583363009731 16.2691455127429 0.304311143584003  
-13.8802692292774 6.33363743883162 -0.491401002120294  15.1100221676875 8.81751518880948 -0.291135183808179  17.5695280345078 13.7852706947652 0.109396452826052  18.7992809629179 16.269148442743 0.309662271148168  
-13.9776847539044 6.33364287683188 -0.48035969631586  15.1937270716633 8.8175198628097 -0.281646595197495  17.6258116971811 13.7852738347653 0.115779607059236  18.84185401494 16.2691508227432 0.314492708177601  
-14.082671878891 6.3336475948321 -0.469733665581151  15.283937585948 8.81752391580989 -0.272516908983858  17.6864690000622 13.7852765547655 0.121916604180728  18.8877347071192 16.2691528827433 0.319133360768021  
-14.2135484051073 6.33365255083234 -0.457518326380953  15.3963947012895 8.81752817481009 -0.262020643675312  17.7620872836538 13.7852794247656 0.12897472174597  18.944933569836 16.2691550427434 0.324472404451612  
-14.4471657562035 6.33365647883253 -0.441198102015784  15.5971300908239 8.81753154981025 -0.247997506619249  17.8970587600646 13.7852816947657 0.138403684163822  19.047023094685 16.2691567627434 0.331604279550357  
-14.6420603254605 6.33365351483238 -0.434537714289433  15.7645962587781 8.81752900281013 -0.242274804087435  18.0096681254133 13.7852799747656 0.14225101627656  19.1322040487309 16.2691554627434 0.334513926468558  
-14.7926403326127 6.33364860383215 -0.432313843113805  15.8939805249235 8.81752478380993 -0.240363750856665  18.0966609195452 13.7852771447655 0.143536433647614  19.1980011118561 16.2691533227433 0.335486525904754  
-14.8919173173281 6.33364465683196 -0.431638169831712  15.9792878889754 8.81752139180977 -0.2397833950791  18.1540290222701 13.7852748647654 0.143926154446125  19.2413995939174 16.2691515927432 0.335780929208738  
-15.0352597141365 6.33363665183158 -0.433233464937484  16.1024528648254 8.81751451380945 -0.241153966144198  18.2368391662033 13.7852702347652 0.143005031422374  19.3040323068923 16.269148102743 0.33508453020566  
-15.1344420988474 6.33362951383125 -0.43611921401455  16.1876768588734 8.81750837980915 -0.243633633051976  18.2941463689253 13.785266114765 0.141337528893172  19.3473811189512 16.2691449827429 0.333823109855746  
-15.1785312109415 6.33362602483108 -0.437754562232225  16.2255606506727 8.81750538180901 -0.245038814538719  18.3196195401352 13.7852640947649 0.140392680868294  19.3666489898664 16.2691434527428 0.333108428571801  
-
-0 4
-0.06695952 1
-0.19874124 1
-0.20615931 1
-0.28878375 1
-0.47512806 1
-0.69874124 2
-0.79146093 1
-0.90736053 1
-1.00016043 4
-
-0 3
-5.35089702 1
-10.70179404 3
-
-9 1 1 0 0 3 3 6 4 3 2 33.8393156872812 0 0.672364923065619  1 33.5433570032239 -1.26790006022202e-007 0.574930771547745  1 33.2466357191304 -2.06840009824373e-007 0.479447801742548  1 32.9492818450068 -2.51270011934685e-007 0.385932318830801  1 
-33.8393022372805 -0.114189570453713 0.703923794334585  0.75546209 33.5572067838817 -0.15472852625921 0.611405002870178  0.73855771 33.2607390398003 -0.197166652174913 0.51472364858806  0.72165333 32.9492810950068 -0.241640622937313 0.413720980140691  0.70474895 
-33.8392936572801 -0.20435919185654 0.799517628455048  0.63319313 33.5686503844253 -0.282006476214588 0.737801073373669  0.60783657 33.2728759903767 -0.366414023293731 0.668950497763442  0.58248 32.9492808650068 -0.458504891927813 0.592502587422362  0.55712343 
-33.8393018472805 -0.20435919169654 1.08221130540228  0.63319313 33.569213074452 -0.282006415874585 1.12562234946419  0.60783657 33.2732989003968 -0.366413914323726 1.1671699674376  0.58248 32.9492825850069 -0.458504741647806 1.20787136837081  0.55712343 
-33.8393159672812 -0.114189570183713 1.17780513894274  0.75546209 33.5583299739351 -0.154728421859205 1.25099723241918  0.73855771 33.2615833098404 -0.197166471214904 1.32030618071118  0.72165333 32.9492838150069 -0.241640385337302 1.38665286986247  0.70474895 
-33.8393312472819 3.1000001472421e-010 1.20936400844171  1 33.5450377833037 1.00000004749745e-010 1.28623003409265  1 33.2478993791904 -3.00000014249235e-011 1.35431147932634  1 32.949284715007 -9.00000042747706e-011 1.41444141318236  1 
-
-0 4
-0.65174824 2
-1.30349648 4
-
-0 4
-1 4
-
-9 1 1 0 0 3 3 6 4 3 2 33.8393312472819 3.1000001472421e-010 1.20936400844171  1 33.5450377833037 1.00000004749745e-010 1.28623003409265  1 33.2478993791904 -3.00000014249235e-011 1.35431147932634  1 32.949284715007 -9.00000042747706e-011 1.41444141318236  1 
-33.8393159672812 0.114189570683713 1.17780513794274  0.75546209 33.5583300239351 0.154728420599205 1.25099722241918  0.73855765 33.2615833598404 0.197166491524905 1.32030617171118  0.72165321 32.9492838150069 0.241640447887305 1.38665287586247  0.70474877 
-33.8393018472805 0.20435919194654 1.08221130440228  0.63319313 33.569213164452 0.282006406494585 1.12562231346419  0.60783648 33.2732990003968 0.366413954223728 1.16716990543759  0.58247982 32.9492825850069 0.458504889747813 1.20787129337081  0.55712316 
-33.8392936572801 0.20435919177654 0.799517628335048  0.63319313 33.5686504744253 0.282006346154582 0.737800980803665  0.60783648 33.2728760903767 0.366413845253723 0.668950283543432  0.58247982 32.9492808650068 0.458504739467806 0.592502215362344  0.55712316 
-33.8393022372805 0.114189570413713 0.703923794314585  0.75546209 33.5572068338817 0.1547283161992 0.611404942060175  0.73855765 33.2607390998003 0.197166310574897 0.514723508148054  0.72165321 32.9492810950068 0.241640210287294 0.41372073870068  0.70474877 
-33.8393156872812 0 0.672364923065619  1 33.5433570032239 -1.26790006022202e-007 0.574930771547745  1 33.2466357191304 -2.06840009824373e-007 0.479447801742548  1 32.9492818450068 -2.51270011934685e-007 0.385932318830801  1 
-
-0 4
-0.65174836 2
-1.30349672 4
-
-0 4
-1 4
-
-9 0 0 0 0 1 1 2 2 2 2 33.8393312472819 3.00003114249383e-005 1.20939400844313  33.8393156872812 3.00000014249235e-005 0.672334923064194  
-33.8393055372807 -0.204389191617965 1.20939400944313  33.83928996728 -0.204389191927965 0.672334923924194  
-
-0 2
-1 2
-
-0 2
-2.62724393 2
-
-9 0 0 0 0 1 1 2 2 2 2 33.8393156872812 -3.00000014249235e-005 0.672334923064194  33.8393312472819 -2.99996914249088e-005 1.20939400844313  
-33.83928996728 0.204389191707965 0.672334923694194  33.8393055372807 0.204389192017965 1.20939400944313  
-
-0 2
-1 2
-
-0 2
-2.62724394 2
-
-9 0 0 0 0 1 1 2 2 2 2 33.0891625616508 6.53812123854408 1.23839850182077  33.0960615419785 6.52583967396074 1.36114491465091  
-31.9739084286791 6.53189275424824 1.30045833476845  31.9808074090068 6.5196111906649 1.42320474759859  
-
-0 2
-9.04069719 2
-
-0 2
-1 2
-
-Triangulations 83
-63 61 1 0.162462815626906
-28.764323322482 -1.33232061253183 0.776095392149801 28.771246413521 -1.32785526804699 0.800754676743324 28.7647518939096 -1.33049802823561 0.78861301695957 28.7671935280293 -1.32922079859461 0.795145813867469 28.7814886770473 -1.32550508695811 0.807583974655179 28.7759052777932 -1.32669062831001 0.804490070234939 28.7793432169484 -1.32593924147655 0.806534109453135 28.809786707555 -1.32057331451879 0.816323984307388 28.7961287741668 -1.3227570910966 0.813350832173902 28.7901513979736 -1.32385482469374 0.811151120238901 28.8200576329791 -1.3189588914812 0.818374892280472 28.8142972944434 -1.31983032999771 0.817430022187815 28.8171657521131 -1.31938853644123 0.81794787891641 28.8370977396886 -1.31653513753206 0.820227543550216 28.8275526322306 -1.31782232397244 0.819630990352347 28.8239665194135 -1.31834937108397 0.819129036648763 28.8511763753573 -1.31448655943476 0.822002803405536 28.840268560109 -1.31607821058169 0.82060327838988 28.8448192352265 -1.31541562559694 0.82118059096769 28.8605162208009 -1.31320612987394 0.822703057182297 28.8554367670391 -1.31388481052566 0.822438155600938 28.8527844805522 -1.31425436449764 0.822198487068965 28.8815857768016 -1.3100262339729 0.825953902237579 28.8670711732323 -1.31226279935428 0.823451464634033 28.8736558835302 -1.3112646407755 0.824494598572598 29.1024809571707 -1.27829995923427 0.847101069546861 29.0048394519693 -1.29247211079396 0.83768456326348 28.9434114525562 -1.3012701563751 0.831794681536804 29.7795234590196 -1.17556150430168 0.898660712825603 29.4755737759417 -1.22239578196778 0.880352047865206 29.2889790862114 -1.25065619957236 0.864616156910779 30.1859472023218 -1.1125524406374 0.900485451578671 29.9570643393511 -1.14800974696984 0.903376192068975 30.0676697062507 -1.13088625996692 0.90324593917547 30.232174242697 -1.10535644116363 0.898715988384917 30.2066798236802 -1.10932781523584 0.899740371062368 30.2194812508588 -1.10733425044616 0.89924249782551 30.9823506165827 -0.978516058763017 0.823513645257798 30.681673812607 -1.03277078310091 0.862662839769228 30.4705413596741 -1.0676710124906 0.883607871684779 31.5238734767954 -0.859672023594499 0.747163193682461 31.3531320179453 -0.900485597976529 0.769984123312257 31.4187887121461 -0.885155857957496 0.760731083342226 31.5669420071188 -0.848883086687299 0.741836439348443 31.5477811566628 -0.853707083796027 0.74417931239417 31.5358216048987 -0.856698341040634 0.745663949767286 31.8489252871177 -0.773601860023678 0.713410577422495 31.720486219248 -0.808850817579908 0.724788794456338 31.6428602347965 -0.829388768932885 0.73299379839346 32.4183769697902 -0.614560682900065 0.818500392946681 32.1138109643915 -0.705093402711811 0.761730948186576 32.2697141202137 -0.660539893705968 0.790597711934467 32.4183772197902 -0.208516963644024 1.41444139018236 32.4183769697902 -0.455025183735348 1.24952501328132 32.4183769697902 -0.57236273395312 1.0605563138653 25.9893209044264 -1.2407928679345 1.41444127418235 28.8885020234294 -1.01981169350125 1.41444129879513 30.6741663525248 -0.716118495520971 1.41444133271498 25.9893210144265 -1.67578856559568 0.495540494136909 25.9893209495827 -1.49355647716755 1.05892484948541 25.9893209799464 -1.607448781941 0.791612249723409 27.3120373212419 -1.51930898229549 0.629284013050131 28.064321904604 -1.42558527408699 0.705260957258751 0.41008236 0.84752031 0.413656240738291 0.852060415202764 0.411395911474825 0.849883113739138 0.41244018863653 0.851079570503182 0.4163331 0.85329902 0.41477461541274 0.852700452908718 0.415531563631693 0.853027719732995 0.421419233714204 0.854378375383088 0.419164067051061 0.854004808272436 0.417748195142285 0.853684455288915 0.423270503694597 0.854556268081525 0.422245189217353 0.854472352765953 0.422758937591365 0.854518976600264 0.42617692 0.85458915 0.42458347298495 0.854609432693009 0.423969016598856 0.854593155918606 0.42866501 0.85467034 0.426744809041472 0.85460190850844 0.427536806846595 0.854628834899521 0.43002793 0.85464274 0.429349229075139 0.854656484126973 0.428929756983876 0.854664978704576 0.43396218 0.85486888 0.431356971810944 0.854653459005184 0.432528477432094 0.854733110817713 0.4722801 0.85484443 0.455230042560552 0.85484885866696 0.444593870752803 0.854854698575322 0.593687291780516 0.851774647070098 0.538691693494868 0.854179421776752 0.505260399024782 0.85469966234179 0.66699988 0.84277681 0.625815690078976 0.84884784741201 0.645745460817101 0.846249256025776 0.675303022345725 0.841231514364644 0.670723740951906 0.8420968498809 0.673023092386536 0.841666404061848 0.8127628 0.80236953 0.756678797660603 0.820626798948657 0.718227286337125 0.831517068376111 0.92806391 0.76394457 0.889591731979005 0.776203156089625 0.904071186519103 0.771433855181008 0.938183832958998 0.760874129742791 0.933659568122127 0.762237877120847 0.930853601563256 0.763090956124679 1.00922414 0.74147285 0.975783848175138 0.75011913326488 0.956468739970849 0.755513025650299 1.18410863 0.74147285 1.08695057803366 0.74147285 1.13552960359403 0.74147285 1.18410863 1 1.18410863 0.887327693168885 1.18410863 0.81440027313792 0 1 0.526270502222222 1 0.855189566111111 1 0 0.84752031 0 0.932231245034927 0 0.889875775378741 0.182258826852883 0.84752031 0.29617059439692 0.84752031 59 62 61 62 63 56 1 3 63 4 2 63 3 4 63 2 6 63 6 7 63 57 7 5 63 7 57 56 63 57 8 57 9 10 9 57 57 5 10 57 8 12 57 13 11 15 14 18 62 60 61 16 15 57 60 62 56 11 16 57 15 18 19 57 12 13 21 20 25 25 20 24 17 22 23 23 22 21 21 25 23 17 57 15 17 15 19 23 57 17 43 58 42 58 41 46 43 41 58 58 40 39 42 58 38 58 39 38 46 45 58 54 47 51 52 50 55 51 52 55 58 44 49 49 48 58 47 54 48 45 44 58 51 55 54 31 30 57 29 33 57 30 29 57 28 27 57 26 57 27 57 26 31 28 57 23 33 34 57 32 36 58 37 35 58 36 37 58 32 57 34 32 58 57 54 53 58 40 58 35 48 54 58 
-33 31 1 0.214436049999253
-31.9768135388171 -6.52772034505006 1.34215900474913 28.764323322482 -1.33232061253183 0.776095392149801 32.0213115109306 -6.52591981196454 1.3601615736042 31.9777141338021 -6.52713956390073 1.34796364316376 31.9801838030808 -6.5267974488231 1.3513832533026 31.9853169721851 -6.52653976915668 1.35395944627219 31.9935667292365 -6.52630888437399 1.35626836623374 32.0062896473528 -6.52612466140147 1.35811170070655 32.0138321032294 -6.52604139200468 1.35894519714692 28.8815857768016 -1.3100262339729 0.825953902237579 28.8605162208009 -1.31320612987394 0.822703057182297 28.8670711732323 -1.31226279935428 0.823451464634033 28.8736558835302 -1.3112646407755 0.824494598572598 28.8554367670391 -1.31388481052566 0.822438155600938 28.8527844805522 -1.31425436449764 0.822198487068965 28.8511763753573 -1.31448655943476 0.822002803405536 28.8370977396886 -1.31653513753206 0.820227543550216 28.840268560109 -1.31607821058169 0.82060327838988 28.8448192352265 -1.31541562559694 0.82118059096769 28.8275526322306 -1.31782232397244 0.819630990352347 28.8239665194135 -1.31834937108397 0.819129036648763 28.8200576329791 -1.3189588914812 0.818374892280472 28.809786707555 -1.32057331451879 0.816323984307388 28.8142972944434 -1.31983032999771 0.817430022187815 28.8171657521131 -1.31938853644123 0.81794787891641 28.7961287741668 -1.3227570910966 0.813350832173902 28.7901513979736 -1.32385482469374 0.811151120238901 28.7814886770473 -1.32550508695811 0.807583974655179 28.771246413521 -1.32785526804699 0.800754676743324 28.7759052777932 -1.32669062831001 0.804490070234939 28.7793432169484 -1.32593924147655 0.806534109453135 28.7647518939096 -1.33049802823561 0.78861301695957 28.7671935280293 -1.32922079859461 0.795145813867469 0 9.62275446028575e-016 0 55.31736968 1 0 0.109350007551124 0 0.189066133721304 0 0.298416054801673 0 0.462441198012745 0 0.708478619100263 0 0.854239262413985 0 1 55.43536728 0.85471089 55.4176593 0.892664331841993 55.4220909684292 0.941398445964638 55.4280467211175 0.810697953922827 55.4125867619866 0.791655571693265 55.4103800946304 0.77912526 55.40891471 0.678010189999999 55.3970246499999 0.699932290490517 55.3995770753096 0.733069345965337 55.4034798065837 0.609909777837509 55.3891598678 0.583902953457134 55.3860813406207 0.55492435 55.38255655 0.47919147 55.3732371 0.512540331915117 55.3773261495777 0.533658859146729 55.3799330522994 0.379334920255739 55.3608940881844 0.333145042406814 55.3549263561367 0.25286332 55.34428547 0.17703176 55.33417125 0.222040865962385 55.3401760800227 0.245045824559054 55.3432402971826 0.0834791767706452 55.3229067146112 0.129464542217362 55.3280243670037 1 4 2 2 3 32 2 4 5 7 2 6 29 33 3 3 33 32 6 2 5 31 30 24 28 31 23 24 30 17 26 27 23 23 27 28 31 24 23 17 30 29 2 7 8 22 25 20 20 21 22 25 17 20 3 18 29 29 18 17 25 24 17 2 9 3 2 8 9 18 3 19 14 15 16 16 19 14 11 14 19 13 12 3 10 13 3 3 11 19 3 12 11 
-29 27 1 0.367725310219895
-32.0213115109306 -6.52591981196454 1.3601615736042 28.8815857768016 -1.3100262339729 0.825953902237579 33.0949317119248 -6.52779751805373 1.34157750972151 32.6183926363032 -6.52324697041489 1.38697601508401 32.3192581063883 -6.52317677906596 1.38762674676116 31.8489252871177 -0.773601860023678 0.713410577422495 31.720486219248 -0.808850817579908 0.724788794456338 31.6428602347965 -0.829388768932885 0.73299379839346 31.5669420071188 -0.848883086687299 0.741836439348443 31.5477811566628 -0.853707083796027 0.74417931239417 31.5358216048987 -0.856698341040634 0.745663949767286 31.5238734767954 -0.859672023594499 0.747163193682461 30.9823506165827 -0.978516058763017 0.823513645257798 31.3531320179453 -0.900485597976529 0.769984123312257 31.4187887121461 -0.885155857957496 0.760731083342226 30.681673812607 -1.03277078310091 0.862662839769228 30.4705413596741 -1.0676710124906 0.883607871684779 30.232174242697 -1.10535644116363 0.898715988384917 30.1859472023218 -1.1125524406374 0.900485451578671 30.2066798236802 -1.10932781523584 0.899740371062368 30.2194812508588 -1.10733425044616 0.89924249782551 29.7795234590196 -1.17556150430168 0.898660712825603 29.9570643393511 -1.14800974696984 0.903376192068975 30.0676697062507 -1.13088625996692 0.90324593917547 29.4755737759417 -1.22239578196778 0.880352047865206 29.2889790862114 -1.25065619957236 0.864616156910779 29.1024809571707 -1.27829995923427 0.847101069546861 29.0048394519693 -1.29247211079396 0.83768456326348 28.9434114525562 -1.3012701563751 0.831794681536804 3.01761452 0 0.49269187 0 3.01761452 1 3.01761452 0.55555555355102 3.01761452 0.277777777806735 0.292660179999999 1 0.308035071740388 0.957851900685702 0.316985119758241 0.932263703686362 0.32546703 0.90714433 0.327563161181346 0.90078909471453 0.328862229317635 0.896819046667684 0.330152927823851 0.89285024119753 0.38054399 0.71278377 0.347780457025919 0.835978553083439 0.341059642644209 0.858234001873833 0.402719888763666 0.610487296176055 0.416068139762002 0.539586290460551 0.42973718 0.45953245 0.432258371063966 0.443982329876691 0.431132009461406 0.45095770916 0.430433017514716 0.455263671302865 0.45321307 0.30680907 0.444294827602871 0.366856267549103 0.438567927306966 0.404130844534367 0.467667260847604 0.20345190987771 0.47600048533653 0.13968953165021 0.483898951543211 0.0757973607092663 0.487860590548541 0.0423037115927426 0.490291966151757 0.0212225529834208 14 13 3 15 14 3 18 21 4 16 17 3 18 4 17 13 16 3 7 8 3 6 7 3 11 12 3 9 10 3 11 3 10 8 9 3 15 3 12 5 26 27 5 25 26 29 2 5 5 28 29 28 5 27 1 5 2 24 23 4 20 19 4 24 4 19 25 4 22 4 25 5 17 4 3 4 23 22 4 21 20 
-481 857 1 0.188992707028107
-25.9893210144265 -1.67578856559568 0.495540494136909 27.3120373212419 -1.51930898229549 0.629284013050131 28.064321904604 -1.42558527408699 0.705260957258751 28.764323322482 -1.33232061253183 0.776095392149801 25.9893210144265 1.67578665759559 0.495543775207065 25.9893210595912 -1.68400096620412 0.104293156327886 25.9893210992021 -1.6094660467772 -0.256107775302221 25.9893211339876 -1.47137442990658 -0.56998965304101 25.989321166696 -1.26642731260049 -0.856833198911222 25.9893211945099 -0.999963494727196 -1.09976662738295 25.9893212156238 -0.682349462496128 -1.28323775909663 25.9893212286158 -0.328532648832915 -1.39475407891498 25.9893212325735 0.0430897063710749 -1.42641416112216 25.9893212272109 0.412362807748192 -1.3759327125916 25.9893212129055 0.759366009467135 -1.24694480651844 25.9893211906476 1.06636412102401 -1.04852357180997 25.9893211619129 1.31938917134473 -0.794015118064962 25.9893211284844 1.5092190996943 -0.499431274727858 25.9893210922585 1.63166559831525 -0.181705319982121 25.9893210550655 1.68723041716745 0.142901911316889 25.9893210345193 1.6906630543802 0.321477936167018 28.7643514962333 1.33236617403399 0.776100355658662 27.6194881219554 1.48165200572926 0.660331569942414 26.8339248695205 1.57666155768992 0.580995151391121 28.8042061810958 1.33218910762353 0.734824782868964 28.7750044534097 1.33317663478055 0.759453473175048 28.7875217931438 1.33299393369997 0.747409772071321 28.8475719209584 1.32884532155346 0.708805028085803 28.8222396701385 1.33098445437855 0.722941375478897 28.8346249173958 1.32998993839467 0.715754167430029 28.8635999007014 1.32726816033196 0.701453946616088 28.8562793112056 1.32801381583399 0.704560642423376 28.8518680381687 1.32844198085001 0.706643028489731 28.8725335952688 1.32630037163785 0.698270444283315 28.867993691635 1.32680012581809 0.699792063894168 28.8656204720738 1.32705503534435 0.70066390099062 28.8816743505559 1.32524719569586 0.695787439970753 28.8775904132854 1.32572610977519 0.696793589036043 28.8750545233673 1.32601664766193 0.697501193238321 29.3247602152849 1.2637721186497 0.616147712196046 29.1078512072961 1.29587838748688 0.648447423514704 28.9898581557217 1.31184102501947 0.67130074713442 29.6596005386966 1.20962973326461 0.587203699858479 29.5013742992985 1.23573720671022 0.597938318883715 29.4100709559397 1.25039788769139 0.606435721376138 29.8455269996093 1.17804865362135 0.580310109048595 29.7609436354519 1.19252197459894 0.582724670786081 29.7096530119139 1.20121582260965 0.584772721175931 30.6739009489152 1.02775890829929 0.600825162057539 30.1958373950127 1.11641510086955 0.580547484392847 30.4302918580342 1.07363161088937 0.587995751073576 31.4235408023773 0.87387724296965 0.664016100385336 31.003220177075 0.962859218811492 0.62438783987948 31.2127587094392 0.919511495410958 0.642930651987077 31.8489294108679 0.773620907424083 0.713412657138219 31.6669080706979 0.818055692597143 0.691167117815894 31.547495011969 0.84590928484853 0.677466341041488 32.4183769697902 0.614559651360016 0.818501410646729 32.1770521334931 0.687441378484839 0.77339797995212 32.0167341897921 0.731181747152838 0.743928886938491 32.4183769697902 -8.97180042613466e-007 0.221258007919191 32.4183769697902 0.535430395324304 0.533899595554983 32.4183769697902 0.314983169331282 0.308074857558539 32.4183769697902 0.164087644894648 0.243559405843798 32.4183769697902 -0.614560682900065 0.818500392946681 32.4183769697902 -0.535431204285334 0.533899140425032 32.4183769697902 -0.314984287109013 0.30807488278998 32.4183769697902 -0.164089059494071 0.243559506019427 31.8489252871177 -0.773601860023678 0.713410577422495 32.1138109643915 -0.705093402711811 0.761730948186576 32.2697141202137 -0.660539893705968 0.790597711934467 31.4590683246425 -0.865913067350121 0.667814429589193 31.6382895799891 -0.824784036998286 0.687815045540941 31.7454745135308 -0.799162971634557 0.700569072566715 30.9709464533427 -0.969355678355452 0.622014505277359 31.1963885929912 -0.922923737771986 0.641514500923609 31.3302938052877 -0.89429565565052 0.654444075395654 30.6873283611547 -1.02511979891527 0.601757898703286 30.8419077314078 -0.995055958067164 0.612164223515756 30.763722446922 -1.01035071566988 0.606675771473637 29.851942304157 -1.17686893778625 0.580243846620144 30.2912766998014 -1.09905709004392 0.582893322806325 30.0650539151023 -1.13964784314126 0.57870164365139 29.3706442966486 -1.25655401065864 0.610813509197056 29.5679864962377 -1.22476545280542 0.592818153561267 29.7057272683155 -1.20179571401311 0.584936033622275 28.8816427105544 -1.32519472919337 0.695781195470957 29.0757861391044 -1.30027409409073 0.654261833324734 29.2142048204845 -1.28045247734878 0.631058678601744 28.8725550718222 -1.32623952939231 0.698291248279232 28.8765655301503 -1.3257883217027 0.697057128774382 28.8790979586828 -1.32549492032217 0.696388610115505 28.8636687934679 -1.32720004158036 0.701494707818767 28.8670270103205 -1.32684939888841 0.700123599743314 28.8696043117389 -1.32656942780084 0.699212152495866 28.8043612183713 -1.33211868056499 0.73480034425291 28.8384549080435 -1.32961759235699 0.713509006183649 28.8210379970152 -1.33102641684749 0.723610368263552 28.7690552946818 -1.332935724945 0.766952029562387 28.7813794642941 -1.33308097616103 0.753080300459873 28.7919109335107 -1.33275311521034 0.744056950636266 28.7659487500336 -1.3326411649084 0.772183618542527 28.767353068699 -1.33280374416004 0.769605424578206 26.8550020360215 1.58376932021628 0.483875812276633 27.3421773030757 1.5245273559616 0.538191098054769 27.6543750920024 1.48583858577811 0.572987016441745 28.1045867939184 1.42863895754988 0.62318008896299 28.8086204042342 1.33447002710819 0.701808703847075 26.8939374475405 1.57986504568768 0.297532510967288 27.3975193113875 1.51811176713893 0.363480802407727 27.7181836705205 1.47819674284369 0.405459340908291 28.1778237064869 1.41978503706396 0.465645824736673 28.8901025329354 1.32515228882219 0.559066855376381 28.9417188240051 1.31803719004701 0.565849242997181 29.1408522950232 1.2901713468878 0.592034708498138 26.922583609634 1.5612017674117 0.154742651041713 27.4379599831622 1.49853205185038 0.229632745113127 27.7646093372305 1.45830856142586 0.277080119019113 28.2307786046148 1.39985267190038 0.344807118350272 28.9484527779108 1.30617103151343 0.449237335987291 29.0002385000242 1.29917765746252 0.456786298374242 29.1997458061538 1.27185435660456 0.485890053938863 29.4232557067414 1.24042046228538 0.518536890904325 29.596150492537 1.21540433627386 0.543822861655874 26.9521216655543 1.52579302531058 0.00248962726182031 27.4794166777892 1.46312120844316 0.086902385197155 27.8120254601805 1.42317124647304 0.140126245908661 28.284578207876 1.36550244070162 0.215756290334577 29.0072533759546 1.27404663351154 0.331590059872514 29.0591752091296 1.26726650075125 0.339926823247886 29.2589249164281 1.24083766272931 0.372021969334535 29.4821747872204 1.21055125067674 0.407937963263723 29.6544831461453 1.1865360955194 0.435693422644836 29.9083180216411 1.14994948386518 0.476641070759968 30.1028269413573 1.12077108636878 0.508070669918532 30.3125578019912 1.08800315692508 0.542015061599107 30.4429403084192 1.06685651241458 0.563148052841918 26.9608874180938 1.51175006685678 -0.0436711897822233 27.4916722303534 1.44928114657691 0.0436212304399438 27.8260087768146 1.40953872188257 0.0985824847554773 28.3003893612991 1.35227970959249 0.176577412360143 29.0244430276159 1.26174468388465 0.295797300716104 29.0763980876541 1.25504603367874 0.304366780992822 29.2761932823648 1.22895200011397 0.337344096114675 29.4993390780502 1.19908238990144 0.374221412892569 29.6714550538188 1.17542224007493 0.40270107613066 29.9248281735096 1.13941655990203 0.444687414147708 30.1188390104626 1.11073455169201 0.47689025180462 30.3278920131045 1.07855698810674 0.511646351403134 30.4577791999664 1.05780876105622 0.533272430300336 30.6877275163387 1.01945043061727 0.57162294046393 30.7733638029355 1.00457602361449 0.585927614756974 30.9721724039506 0.968656906167714 0.619186912507377 27.0093326979721 1.39920491690135 -0.306862328996915 27.5590181138189 1.33980199651294 -0.203273636451917 27.9025736212214 1.30240063112449 -0.138560634567839 28.3865240020859 1.24905593732224 -0.0473937657355183 29.1173676331214 1.16601683286601 0.0904693640652779 29.1694509259112 1.15993576238557 0.10031025039369 29.3692941729437 1.13632843053829 0.138095066926735 29.59166012287 1.10946050381198 0.180188998405517 29.7625750205511 1.08829204602732 0.212582764366184 30.0132316091371 1.05626328082994 0.260158404020691 30.2043997070114 1.03090098130394 0.296502719019409 30.4096496865517 1.00259751031719 0.33558782830584 30.5367874544077 0.984426180894379 0.359834083484515 30.7611413175279 0.950982660025069 0.402693240824693 30.8444564835879 0.938063352962057 0.418634676948432 31.0373783601287 0.906969782065067 0.455605566174088 31.2486877870959 0.870770495792596 0.496214852231132 31.3749082991414 0.847916499726025 0.520554786099571 31.496771247294 0.824861130723831 0.544132907006889 31.580713925501 0.808359116576676 0.56042827897556 31.8684955894936 0.747346750516585 0.616729047995061 32.0310126208515 0.709327133554116 0.648910405812566 32.1248541186381 0.685988946825409 0.667656032335419 32.2752793573891 0.646161051273385 0.698005493904403 27.0676499750091 1.15463748463903 -0.641932329760147 27.6392295665095 1.1045988779651 -0.518071312066145 27.9931615747955 1.07346227031764 -0.441413842309401 28.4874863498021 1.02955209706217 -0.334345654744657 29.2247635894829 0.962370560795718 -0.174460662351895 29.2768871244949 0.957506359792164 -0.163139790797237 29.4763724347251 0.938693495249098 -0.119785172476627 29.6973871561079 0.917416007102966 -0.0716958142547991 29.8665831734452 0.900749384851827 -0.034837693262714 30.1136522259522 0.875688157931057 0.0190604589836947 30.3012331907414 0.855969733392988 0.0600481915457685 30.5018130219396 0.834088173054093 0.103947789851382 30.6256328811436 0.820104282765117 0.131087907118913 30.8433383125763 0.794489439588715 0.178889640276269 30.9239264143337 0.784633892060775 0.196613399447489 31.1099960593477 0.760996884741929 0.237601393934623 31.312932279963 0.733611975956976 0.282436587392272 31.433710536154 0.716387799550145 0.309216308136371 31.549999813985 0.699056931626385 0.335091637211604 31.6299174258996 0.686677558074228 0.352936711192253 31.9027114013594 0.641065250971357 0.41435421953485 32.0559154801645 0.61274736784471 0.449295744242783 32.1440851634457 0.595397659745248 0.469594313104548 32.2849467804898 0.565839338361544 0.502372765841477 27.09326499046 0.984644154185898 -0.795487281432492 27.6741687568269 0.941748842671375 -0.662582020932977 28.032417009457 0.915189826725427 -0.580661867795628 28.5309217016815 0.87791206043484 -0.466669017147493 29.2704687208635 0.821285120817921 -0.297360843159358 29.3225742919571 0.817204303361277 -0.285414177120001 29.5217736927545 0.801445372614066 -0.239713450492456 29.7420694890693 0.783667373590315 -0.189115156530522 29.9104292788004 0.76977474300829 -0.150400381969666 30.1558313696279 0.74893695722449 -0.0938905449003673 30.3417926208614 0.732583634527499 -0.0509986476790658 30.5403014051616 0.714477046138745 -0.0051378971067231 30.6626673315116 0.702926742529172 0.0231742524093264 30.8774903250221 0.681809174167321 0.0729653673310399 30.9569056171604 0.67369675723685 0.0914025019868041 31.1400478338243 0.654266916457885 0.13399012756107 31.3394380388657 0.631798644749979 0.180495117806734 31.4579268367971 0.617687338527142 0.208232423370374 31.5718822198138 0.603502715720405 0.235004798230009 31.6501206031752 0.593378552820711 0.25345239966281 31.9167020692387 0.55612404210337 0.316843224899732 32.0660739971984 0.533026912388165 0.352838119516646 32.1519191988228 0.518885732536386 0.373725601587635 32.288876190759 0.494808433039143 0.407419384936916 27.1266813947559 0.636087458960686 -1.00176406803258 27.7194836571041 0.608288313562525 -0.857008521934657 28.0831470263527 0.591184726435076 -0.768255380077123 28.5867732699129 0.567320891060812 -0.645347596154409 29.3288047835218 0.531392264280821 -0.46406128971472 29.3808570070874 0.528818058439765 -0.451326024844204 29.5795762896653 0.51889586294139 -0.402677074654189 29.7988315057482 0.507737371697274 -0.348940926052703 29.9660352394549 0.499042652970248 -0.307914598971691 30.2091920788545 0.486040921273788 -0.248169266937042 30.393008820201 0.475868940465304 -0.20293098383979 30.5888059011876 0.464636840035098 -0.154665518103229 30.7092823575465 0.457487500336234 -0.124922363570919 30.9203847939233 0.444445479393886 -0.0727134763522529 30.9982940781297 0.439444694815779 -0.0534129701380502 31.1776931618804 0.427486804754884 -0.00889679563947394 31.3725748632329 0.413689703659145 0.0396096080934103 31.4881653203907 0.405039183091152 0.0684888237335184 31.5991749744871 0.39635389370056 0.096326758691843 31.6752989847511 0.390160503290517 0.115487689267023 31.9340907205572 0.367405092072191 0.181200073188903 32.0786803312773 0.35332004934827 0.218424071571102 32.1616322655711 0.344703597279583 0.239995272107167 32.2937410891872 0.330043450276513 0.274746377164837 27.1402287043108 0.380209811215361 -1.08733636945521 27.7377697266242 0.363591835756921 -0.937776499913556 28.1035600485717 0.35339405102337 -0.846273665496039 28.6091585446142 0.339199682050099 -0.719803204599106 29.3520499616758 0.317903938397965 -0.533779881384173 29.4040714274595 0.316381552757034 -0.520734979846253 29.6025635298063 0.310517736185906 -0.470931111636114 29.8213660154829 0.303931063658494 -0.415970623214327 29.9880817515993 0.298804248060455 -0.374045777063256 30.2303078942939 0.291146467511248 -0.313047997803081 30.413246638746 0.28516221106881 -0.266905525604053 30.607942579611 0.278560795250378 -0.217717256393936 30.7276560593087 0.274362260916855 -0.187426945285397 30.9372637633072 0.266709317345963 -0.134297244379672 31.0145703745207 0.263776854554825 -0.11466910282595 31.1924763724654 0.256768737042882 -0.0694235018714625 31.3855674278801 0.248689068103442 -0.0201639507833492 31.5000105411223 0.243626383870735 0.00914305388714741 31.6098567713432 0.238545536749062 0.0373788053342299 31.6851472343379 0.234923675448588 0.0568052621892186 31.9408778596876 0.221624262398532 0.123376966986034 32.083595004585 0.213397603293693 0.161052537402223 32.1654163780469 0.20836672135316 0.182873782636343 32.2956343111881 0.199809793285703 0.21800976048498 27.1473675014467 1.14250765778994e-005 -1.13288573746511 27.747385992672 2.41940668405254e-005 -0.980797157970936 28.1142814356397 3.36146832709292e-005 -0.887851888588512 28.6208955182336 4.74340503249213e-005 -0.759518351963054 29.364206911246 6.51258213772116e-005 -0.571029504041368 29.4162101351025 6.60485678256269e-005 -0.557823966472131 29.6145753046783 6.90519315530273e-005 -0.507421568669494 29.8331324292732 7.13401357575275e-005 -0.451827715228732 29.9995868074862 7.22941299840692e-005 -0.40943885647003 30.2413181520115 7.23321763128357e-005 -0.347795515477466 30.4237924963888 7.11918974509662e-005 -0.301187949904211 30.6179080024721 6.87487860079354e-005 -0.251525923221949 30.7372202451595 6.65592461167407e-005 -0.220955177355672 30.9460435842056 6.1338470583157e-005 -0.167354392244171 31.0230344650225 5.89321360021689e-005 -0.147558914082094 31.2001593317751 5.23194168163412e-005 -0.10194134203326 31.39231529532 4.34952506486686e-005 -0.0522986371298075 31.5061600945017 3.76544116293481e-005 -0.0227744593318673 31.6154002181695 3.17812695114173e-005 0.00566292079448253 31.6902567682172 2.76813901607251e-005 0.0252237670449719 31.9443960647684 1.41402266056965e-005 0.092229227810316 32.0861413069755 7.59473760593341e-006 0.130131918337206 32.167376362505 4.47727452297018e-006 0.15207864349456 32.2966144471682 9.14926639215207e-007 0.187407320439445 27.142867093005 -0.30288171956791 -1.10413393928057 27.7413253194064 -0.289621861786117 -0.953639173825192 28.1075253278222 -0.281485679351139 -0.861602661412804 28.6135010551234 -0.270164387311532 -0.734442419759114 29.3565503218562 -0.253195189808028 -0.547505322074169 29.4085652071487 -0.251983204794155 -0.534400842971459 29.6070109700654 -0.247316565089246 -0.484374937692398 29.8257233130952 -0.242077739290483 -0.429179396333695 29.9923427889773 -0.238002339862158 -0.387082281607584 30.2343864078552 -0.231918813288098 -0.325844732132548 30.4171536545818 -0.227167911184273 -0.279529439501514 30.6116350897916 -0.221930172596522 -0.230165055954607 30.7312002132445 -0.218600601961519 -0.199770457722902 30.9405177659871 -0.212534749629549 -0.146465500977361 31.0177075408235 -0.210211470305335 -0.12677508274573 31.1953243946208 -0.204661398977182 -0.0813910000875359 31.3880691785172 -0.198265903719071 -0.0319887288007664 31.5022906642455 -0.194259576999073 -0.00260079185807343 31.611912332854 -0.190239245024148 0.0257101262055652 31.6870420045211 -0.187373406464064 0.045186698764823 31.9421827706585 -0.176848583468866 0.111920254206461 32.0845395383192 -0.170335726512315 0.149680639779573 32.1661434673814 -0.16635155521405 0.171548767416451 32.295997946441 -0.159572211243699 0.206756779419295 27.1271403046945 -0.629354642524258 -1.00464451208015 27.720103865994 -0.601828017528744 -0.859726097985791 28.08383990648 -0.584889921016021 -0.770879543272955 28.5875339036245 -0.561256702528704 -0.647850488329493 29.3295958878961 -0.525683453216196 -0.466402455991964 29.3816471534237 -0.523135473748113 -0.453656598154894 29.580359040402 -0.513315564128662 -0.40496811097723 29.7995992072579 -0.502274460293183 -0.351190001292767 29.9667865914614 -0.49367300519949 -0.310132846357026 30.2099120987822 -0.480813750029591 -0.250344492062739 30.393699183592 -0.470755784982121 -0.205075109258523 30.5894589877158 -0.459652174454179 -0.156777865327551 30.7099095753968 -0.452586015426284 -0.127015848836066 30.920961261413 -0.43969845015483 -0.0747751823694908 30.9988500608454 -0.434757790090009 -0.0554633569254795 31.1781983487085 -0.422945596543383 -0.0109219576159409 31.3730190567411 -0.409319368406525 0.0376105299965368 31.4885703962725 -0.400776816893138 0.0665045808432304 31.5995403585384 -0.392200123292827 0.0943563255950405 31.6756359162738 -0.386084103694773 0.113526481732415 31.9343230670167 -0.363610699343567 0.179268772194014 32.0788486359952 -0.349697146113432 0.216508521457273 32.1617618803233 -0.341184050558685 0.238088455631569 32.2938059579752 -0.326696646557813 0.272853022583412 27.1007538585194 -0.923089512474968 -0.841126740582657 27.6843501309013 -0.882819612533607 -0.705568454880335 28.0438329530151 -0.857917346788322 -0.622112344361957 28.5435175563152 -0.823008787085455 -0.506107992695468 29.2836672906117 -0.770089359046261 -0.334081877811578 29.3357637755232 -0.766281192585009 -0.321955582688904 29.5348658374507 -0.751582250338377 -0.275582471563797 29.7549382318412 -0.735013507343699 -0.22426703314256 29.923045128584 -0.722075663306896 -0.185022899027654 30.1679506931202 -0.702685741143048 -0.127770483921934 30.3534342514235 -0.687481504067729 -0.0843387874294524 30.5513361341163 -0.670659735242207 -0.0379236054783585 30.673277826554 -0.659935585303265 -0.00928089784538889 30.8872630322089 -0.640340896321408 0.0410698633646619 30.9663384510918 -0.632817534190502 0.0597072171433009 31.1486343778015 -0.614806978072197 0.102742847283428 31.3470027686638 -0.593993172827388 0.149713983263516 31.4648334621841 -0.580926893859376 0.177717857641266 31.5781191162792 -0.567796457936068 0.204739412556699 31.6558762895699 -0.558426630878763 0.223354075375762 31.9206817030048 -0.523957986734236 0.287290147689251 32.0689610423103 -0.502593242271107 0.323574786672018 32.1541444943755 -0.489513767312087 0.344623812776656 32.2899914435692 -0.467244991013042 0.378567986277425 27.0676501624421 -1.15464606920305 -0.641934269053216 27.6392297331248 -1.10459603898519 -0.51807306805299 27.9931617002187 -1.07344805774245 -0.441415488626118 28.4874864002596 -1.029518453594 -0.334347152639563 29.2247635554765 -0.962307284272147 -0.174461948657958 29.2768870886201 -0.957441284517683 -0.163141062564188 29.4763723977415 -0.938622124626078 -0.119786389081985 29.6973871284112 -0.917338877720116 -0.0716969706072948 29.8665831595952 -0.900668834374357 -0.0348388040744952 30.113652241228 -0.875604388346107 0.0190594138063623 30.3012332336831 -0.855885133209678 0.0600471955463884 30.5018130978828 -0.834004461232982 0.103946845846813 30.6256329782678 -0.820022147437302 0.131086994919436 30.8433384461826 -0.794412227698654 0.178888783481914 30.9239265605347 -0.784559268190246 0.196612563001302 31.1099962309206 -0.760929999773212 0.237600604149782 31.3129324707128 -0.733556289120066 0.282435848029659 31.4337107330986 -0.716339812898254 0.309215598595409 31.550000012558 -0.69901682086636 0.335090956286657 31.6299176228174 -0.686642995222213 0.35293604989456 31.9027115722975 -0.641049069034626 0.414353625181786 32.0559156197952 -0.612739886635574 0.449295187619258 32.14408527843 -0.595394150234093 0.469593778306825 32.2849468443803 -0.565839877373769 0.502372266183187 27.0205284984519 -1.36323534858658 -0.369636875115264 27.5744894348106 -1.30505786951228 -0.262202542555745 27.9200972709315 -1.2685099828212 -0.195207903124671 28.4061342658776 -1.21649729902552 -0.100983844978606 29.1383553294829 -1.13581243656472 0.0411543108168262 29.1904555843851 -1.12991757067161 0.0512843724553326 29.3902636299306 -1.1070509632058 0.0901597511184334 29.6124031535557 -1.08106023706454 0.133431752512863 29.7830096821604 -1.06060798986426 0.166705690250752 30.0330022847115 -1.02970354756085 0.215532401120764 30.2234942022156 -1.00526485529618 0.252799129114855 30.427853989137 -0.978024940674506 0.292844052851625 30.5543547365483 -0.960553712283093 0.317668991761613 30.7774239645503 -0.928431656696131 0.361519761274617 30.8602096747206 -0.916033596334888 0.377819833257107 31.051796012304 -0.88621727300743 0.415601208001707 31.2614650912094 -0.851541523512297 0.457066549667128 31.3866153128442 -0.829666890848382 0.481902438131912 31.5073791856488 -0.80761140807074 0.505948753828768 31.5905264682096 -0.7918316279979 0.522560673163907 31.8753353843152 -0.733529175716033 0.579910925435225 32.0359974700125 -0.697223630861483 0.612661410913918 32.1287066527717 -0.674945198876314 0.631728255078289 32.2772184775545 -0.636936701400105 0.662581712503822 26.9766516187215 -1.48196785036889 -0.127812305812708 27.5136583718772 -1.42010300349581 -0.0352844940982651 27.8510557458923 -1.38087892788777 0.0228244311281007 28.3286483745728 -1.32455646184628 0.105089804469916 29.0550633167066 -1.23597175920062 0.230394072732265 29.1070702121283 -1.22944049186376 0.239380327083069 29.3069180840557 -1.20402852977431 0.273935823472314 29.5298472802354 -1.17499752196333 0.312529783266405 29.7015973605029 -1.15204437572964 0.342300426884926 29.9541161200779 -1.11718439046158 0.386134870581711 30.147217948582 -1.08947255584482 0.419710737956211 30.3550433064981 -1.05844052151931 0.455905528038241 30.4840376863471 -1.03846114409754 0.478404194958966 30.7121600062331 -1.00158224570101 0.518259545024725 30.7970358309979 -0.987300551247857 0.533111603426431 30.9939098986269 -0.952853188270338 0.567614416899449 31.210098530945 -0.912627158168906 0.605607033400732 31.3395149927154 -0.887170208059831 0.628426088410555 31.4646686861022 -0.861446018055973 0.650564955541952 31.5509979560775 -0.843009334719514 0.665885233736329 26.9711263608056 -1.49308956454569 -0.0981566402943814 27.5059602596085 -1.43096891367588 -0.00747176904637138 27.8422915874018 -1.39153527280707 0.0495307390280336 28.318769331496 -1.33484545991129 0.130297093959377 29.0443737114286 -1.24552071499289 0.253470025556694 29.0963635814827 -1.23892697129638 0.262310488135905 29.2961971876895 -1.21326165764331 0.296314169684751 29.5192065320405 -1.1839214670522 0.334308360949254 29.691087711851 -1.16070928238849 0.363628283295222 29.9439093383227 -1.12543208208049 0.406818005647846 30.137331648608 -1.09736897405708 0.439915289267055 30.3455884874856 -1.06592411248534 0.475608996434533 30.474896056666 -1.04566864906301 0.497803949681069 30.703657852176 -1.00826037193807 0.537135895995259 30.7887996687604 -0.99376718824052 0.551797687755946 30.9863497199546 -0.958795933193895 0.585868514605346 31.203376755379 -0.917935632691369 0.623401668937499 31.3333442940209 -0.892066179772212 0.645952938185599 26.9401168961805 -1.54230660469925 0.0649809985051805 27.4625976191305 -1.47949758911545 0.145488918640992 27.792810071553 -1.43934846925471 0.196349920642993 28.2628105016458 -1.38123544231536 0.268754778263017 28.9835202101939 -1.28869266061746 0.379951239482097 29.0353912897382 -1.28181339745382 0.387968399521936 29.2350593498325 -1.25497405526607 0.418850906200884 29.4584321078211 -1.22417070827913 0.453443403997417 29.6309905726006 -1.19971118462883 0.480200354322882 29.8854416302034 -1.16239108673051 0.519713599341055 30.0806235795434 -1.13258099742107 0.550073550374447 26.9074159241171 -1.57286505778328 0.230945642608467 27.4165763405874 -1.51056245443607 0.301063172688307 27.7400822112164 -1.47042591290578 0.345597125980557 28.2028365712299 -1.41188416407116 0.409314248669256 28.9177226823965 -1.31753603312715 0.507905958992766 28.9694234430067 -1.31046695906424 0.515049126730646 29.1687504657806 -1.28281386759222 0.542608979906973 29.392336729713 -1.25093453236559 0.573562890744597 26.8862547179811 -1.58249069190143 0.335009703299575 27.3866336444556 -1.52111083108953 0.398613259794354 27.7056579274168 -1.48135793562345 0.439150372313581 28.1634888023598 -1.42306995049076 0.497339689120191 28.8742257165276 -1.32835340800811 0.587823226983479 28.9257899808609 -1.32121809315623 0.594400062173603 29.1247986737671 -1.29325478455849 0.619801738468866 0 0.84752031 0.182258826852882 0.84752031 0.296170594396919 0.84752031 0.41008236 0.84752031 0 0.15247929 0 0.79539223232839 0 0.748476964777102 0 0.706253223032634 0 0.664029482467932 0 0.621805741683094 0 0.57958200096946 0 0.537358259102193 0 0.495134515626252 0 0.45291077243678 0 0.410687031031902 0 0.368463291332333 0 0.326239551306692 0 0.284015808894562 0 0.241792065245641 0 0.199568323310342 0 0.176023807414811 0.41008734 0.15247929 0.22782629955653 0.15247929 0.113913149911665 0.15247929 0.412346093699899 0.161030460753262 0.41013953769451 0.155820741993662 0.410949161496455 0.158324316911322 0.41674308 0.16673095 0.414084856911688 0.163585365033647 0.415357014705838 0.165174298053913 0.418581908921481 0.16842585654686 0.417719140345989 0.167696735262885 0.417217993317778 0.167220124718014 0.419693477235591 0.169203422685851 0.419120481024236 0.168824697346605 0.418827837821174 0.168613212412849 0.42090498 0.16985645 0.420353852576495 0.169583662284134 0.420019807353777 0.169398718949887 0.484640253200537 0.194861846390272 0.452505755190907 0.183613428916938 0.435784413792402 0.176722185155952 0.53782595 0.20914955 0.512146077210339 0.202826351875221 0.497776844974663 0.198834588293816 0.569295382630129 0.215719216039619 0.55480683828003 0.212833467425886 0.546160786900052 0.211002088207516 0.726688462077035 0.237910196485819 0.632344767228151 0.226235622207897 0.677363647927261 0.232277984530206 0.897066359789266 0.252115965299792 0.797826755274117 0.244667719093393 0.846017768675159 0.248530804283372 1.00922544 0.25852666 0.959605710894232 0.25591231667288 0.928406822564351 0.254093745407224 1.18410863 0.25852666 1.10638276754092 0.25852666 1.05780410466889 0.25852666 1.18410863 0.49999985 1.18410863 0.339017782681665 1.18410863 0.419508888316875 1.18410863 0.4597544433568 1.18410863 0.74147285 1.18410863 0.660981895742259 1.18410863 0.580490948435048 1.18410863 0.540245474855739 1.00922414 0.74147285 1.08695057803366 0.74147285 1.13552960359403 0.74147285 0.905948157513261 0.747319411003955 0.95203546500172 0.744518997885164 0.980704878162004 0.742936532604807 0.79063868 0.75601331 0.842176603969299 0.751792799347127 0.874155042927462 0.74945567664089 0.729506666565393 0.76184333863788 0.76233820872434 0.758592501933068 0.745589274060614 0.760213082641846 0.570422084485564 0.784099263837749 0.650382694858395 0.771208080336899 0.608221394102937 0.777441636060081 0.491680637984723 0.802993637520819 0.52287170774061 0.794487884925246 0.545537754821333 0.789205943949437 0.42089936 0.83014305 0.447904087284345 0.818186431000241 0.468024758720721 0.810646947799361 0.419704598752334 0.830807056488716 0.420221322643043 0.830492586264612 0.4205553324124 0.830310964141274 0.4186083787104 0.831593543767701 0.419018845616406 0.831280116781812 0.4193363058461 0.831053248791008 0.412383318385601 0.83897467430126 0.415748705235118 0.834330082710806 0.413958815677285 0.836563509032468 0.40993166 0.84570494 0.410549031891745 0.842872955445004 0.411329600414023 0.840970355821339 0.409954411789072 0.846750900863468 0.409923153845364 0.846237825641321 0.113913149911665 0.167220124718014 0.182258826852882 0.167220124718014 0.22782629955653 0.167220124718014 0.296170594396919 0.167220124718014 0.40993166 0.167220124718014 0.113913149911665 0.194861846390272 0.182258826852882 0.194861846390272 0.22782629955653 0.194861846390272 0.296170594396919 0.194861846390272 0.40993166 0.194861846390272 0.418581908921481 0.194861846390272 0.452505755190907 0.194861846390272 0.113913149911665 0.215719216039619 0.182258826852882 0.215719216039619 0.22782629955653 0.215719216039619 0.296170594396919 0.215719216039619 0.40993166 0.215719216039619 0.418581908921481 0.215719216039619 0.452505755190907 0.215719216039619 0.491680637984723 0.215719216039619 0.52287170774061 0.215719216039619 0.113913149911665 0.237910196485819 0.182258826852882 0.237910196485819 0.22782629955653 0.237910196485819 0.296170594396919 0.237910196485819 0.40993166 0.237910196485819 0.418581908921481 0.237910196485819 0.452505755190907 0.237910196485819 0.491680637984723 0.237910196485819 0.52287170774061 0.237910196485819 0.570422084485564 0.237910196485819 0.608221394102937 0.237910196485819 0.650382694858395 0.237910196485819 0.677363647927261 0.237910196485819 0.113913149911665 0.244667719093393 0.182258826852882 0.244667719093393 0.22782629955653 0.244667719093393 0.296170594396919 0.244667719093393 0.40993166 0.244667719093393 0.418581908921481 0.244667719093393 0.452505755190907 0.244667719093393 0.491680637984723 0.244667719093393 0.52287170774061 0.244667719093393 0.570422084485564 0.244667719093393 0.608221394102937 0.244667719093393 0.650382694858395 0.244667719093393 0.677363647927261 0.244667719093393 0.726688462077035 0.244667719093393 0.745589274060614 0.244667719093393 0.79063868 0.244667719093393 0.113913149911665 0.284015808894562 0.182258826852882 0.284015808894562 0.22782629955653 0.284015808894562 0.296170594396919 0.284015808894562 0.40993166 0.284015808894562 0.418581908921481 0.284015808894562 0.452505755190907 0.284015808894562 0.491680637984723 0.284015808894562 0.52287170774061 0.284015808894562 0.570422084485564 0.284015808894562 0.608221394102937 0.284015808894562 0.650382694858395 0.284015808894562 0.677363647927261 0.284015808894562 0.726688462077035 0.284015808894562 0.745589274060614 0.284015808894562 0.79063868 0.284015808894562 0.842176603969299 0.284015808894562 0.874155042927462 0.284015808894562 0.905948157513261 0.284015808894562 0.928406822564351 0.284015808894562 1.00922544 0.284015808894562 1.05780410466889 0.284015808894562 1.08695057803366 0.284015808894562 1.13552960359403 0.284015808894562 0.113913149911665 0.339017782681665 0.182258826852882 0.339017782681665 0.22782629955653 0.339017782681665 0.296170594396919 0.339017782681665 0.40993166 0.339017782681665 0.418581908921481 0.339017782681665 0.452505755190907 0.339017782681665 0.491680637984723 0.339017782681665 0.52287170774061 0.339017782681665 0.570422084485564 0.339017782681665 0.608221394102937 0.339017782681665 0.650382694858395 0.339017782681665 0.677363647927261 0.339017782681665 0.726688462077035 0.339017782681665 0.745589274060614 0.339017782681665 0.79063868 0.339017782681665 0.842176603969299 0.339017782681665 0.874155042927462 0.339017782681665 0.905948157513261 0.339017782681665 0.928406822564351 0.339017782681665 1.00922544 0.339017782681665 1.05780410466889 0.339017782681665 1.08695057803366 0.339017782681665 1.13552960359403 0.339017782681665 0.113913149911665 0.368463291332333 0.182258826852882 0.368463291332333 0.22782629955653 0.368463291332333 0.296170594396919 0.368463291332333 0.40993166 0.368463291332333 0.418581908921481 0.368463291332333 0.452505755190907 0.368463291332333 0.491680637984723 0.368463291332333 0.52287170774061 0.368463291332333 0.570422084485564 0.368463291332333 0.608221394102937 0.368463291332333 0.650382694858395 0.368463291332333 0.677363647927261 0.368463291332333 0.726688462077035 0.368463291332333 0.745589274060614 0.368463291332333 0.79063868 0.368463291332333 0.842176603969299 0.368463291332333 0.874155042927462 0.368463291332333 0.905948157513261 0.368463291332333 0.928406822564351 0.368463291332333 1.00922544 0.368463291332333 1.05780410466889 0.368463291332333 1.08695057803366 0.368463291332333 1.13552960359403 0.368463291332333 0.113913149911665 0.419508888316875 0.182258826852882 0.419508888316875 0.22782629955653 0.419508888316875 0.296170594396919 0.419508888316875 0.40993166 0.419508888316875 0.418581908921481 0.419508888316875 0.452505755190907 0.419508888316875 0.491680637984723 0.419508888316875 0.52287170774061 0.419508888316875 0.570422084485564 0.419508888316875 0.608221394102937 0.419508888316875 0.650382694858395 0.419508888316875 0.677363647927261 0.419508888316875 0.726688462077035 0.419508888316875 0.745589274060614 0.419508888316875 0.79063868 0.419508888316875 0.842176603969299 0.419508888316875 0.874155042927462 0.419508888316875 0.905948157513261 0.419508888316875 0.928406822564351 0.419508888316875 1.00922544 0.419508888316875 1.05780410466889 0.419508888316875 1.08695057803366 0.419508888316875 1.13552960359403 0.419508888316875 0.113913149911665 0.45291077243678 0.182258826852882 0.45291077243678 0.22782629955653 0.45291077243678 0.296170594396919 0.45291077243678 0.40993166 0.45291077243678 0.418581908921481 0.45291077243678 0.452505755190907 0.45291077243678 0.491680637984723 0.45291077243678 0.52287170774061 0.45291077243678 0.570422084485564 0.45291077243678 0.608221394102937 0.45291077243678 0.650382694858395 0.45291077243678 0.677363647927261 0.45291077243678 0.726688462077035 0.45291077243678 0.745589274060614 0.45291077243678 0.79063868 0.45291077243678 0.842176603969299 0.45291077243678 0.874155042927462 0.45291077243678 0.905948157513261 0.45291077243678 0.928406822564351 0.45291077243678 1.00922544 0.45291077243678 1.05780410466889 0.45291077243678 1.08695057803366 0.45291077243678 1.13552960359403 0.45291077243678 0.113913149911665 0.49999985 0.182258826852882 0.49999985 0.22782629955653 0.49999985 0.296170594396919 0.49999985 0.40993166 0.49999985 0.418581908921481 0.49999985 0.452505755190907 0.49999985 0.491680637984723 0.49999985 0.52287170774061 0.49999985 0.570422084485564 0.49999985 0.608221394102937 0.49999985 0.650382694858395 0.49999985 0.677363647927261 0.49999985 0.726688462077035 0.49999985 0.745589274060614 0.49999985 0.79063868 0.49999985 0.842176603969299 0.49999985 0.874155042927462 0.49999985 0.905948157513261 0.49999985 0.928406822564351 0.49999985 1.00922544 0.49999985 1.05780410466889 0.49999985 1.08695057803366 0.49999985 1.13552960359403 0.49999985 0.113913149911665 0.537358259102193 0.182258826852882 0.537358259102193 0.22782629955653 0.537358259102193 0.296170594396919 0.537358259102193 0.40993166 0.537358259102193 0.418581908921481 0.537358259102193 0.452505755190907 0.537358259102193 0.491680637984723 0.537358259102193 0.52287170774061 0.537358259102193 0.570422084485564 0.537358259102193 0.608221394102937 0.537358259102193 0.650382694858395 0.537358259102193 0.677363647927261 0.537358259102193 0.726688462077035 0.537358259102193 0.745589274060614 0.537358259102193 0.79063868 0.537358259102193 0.842176603969299 0.537358259102193 0.874155042927462 0.537358259102193 0.905948157513261 0.537358259102193 0.928406822564351 0.537358259102193 1.00922544 0.537358259102193 1.05780410466889 0.537358259102193 1.08695057803366 0.537358259102193 1.13552960359403 0.537358259102193 0.113913149911665 0.57958200096946 0.182258826852882 0.57958200096946 0.22782629955653 0.57958200096946 0.296170594396919 0.57958200096946 0.40993166 0.57958200096946 0.418581908921481 0.57958200096946 0.452505755190907 0.57958200096946 0.491680637984723 0.57958200096946 0.52287170774061 0.57958200096946 0.570422084485564 0.57958200096946 0.608221394102937 0.57958200096946 0.650382694858395 0.57958200096946 0.677363647927261 0.57958200096946 0.726688462077035 0.57958200096946 0.745589274060614 0.57958200096946 0.79063868 0.57958200096946 0.842176603969299 0.57958200096946 0.874155042927462 0.57958200096946 0.905948157513261 0.57958200096946 0.928406822564351 0.57958200096946 1.00922544 0.57958200096946 1.05780410466889 0.57958200096946 1.08695057803366 0.57958200096946 1.13552960359403 0.57958200096946 0.113913149911665 0.621805741683094 0.182258826852882 0.621805741683094 0.22782629955653 0.621805741683094 0.296170594396919 0.621805741683094 0.40993166 0.621805741683094 0.418581908921481 0.621805741683094 0.452505755190907 0.621805741683094 0.491680637984723 0.621805741683094 0.52287170774061 0.621805741683094 0.570422084485564 0.621805741683094 0.608221394102937 0.621805741683094 0.650382694858395 0.621805741683094 0.677363647927261 0.621805741683094 0.726688462077035 0.621805741683094 0.745589274060614 0.621805741683094 0.79063868 0.621805741683094 0.842176603969299 0.621805741683094 0.874155042927462 0.621805741683094 0.905948157513261 0.621805741683094 0.928406822564351 0.621805741683094 1.00922544 0.621805741683094 1.05780410466889 0.621805741683094 1.08695057803366 0.621805741683094 1.13552960359403 0.621805741683094 0.113913149911665 0.660981895742259 0.182258826852882 0.660981895742259 0.22782629955653 0.660981895742259 0.296170594396919 0.660981895742259 0.40993166 0.660981895742259 0.418581908921481 0.660981895742259 0.452505755190907 0.660981895742259 0.491680637984723 0.660981895742259 0.52287170774061 0.660981895742259 0.570422084485564 0.660981895742259 0.608221394102937 0.660981895742259 0.650382694858395 0.660981895742259 0.677363647927261 0.660981895742259 0.726688462077035 0.660981895742259 0.745589274060614 0.660981895742259 0.79063868 0.660981895742259 0.842176603969299 0.660981895742259 0.874155042927462 0.660981895742259 0.905948157513261 0.660981895742259 0.928406822564351 0.660981895742259 1.00922544 0.660981895742259 1.05780410466889 0.660981895742259 1.08695057803366 0.660981895742259 1.13552960359403 0.660981895742259 0.113913149911665 0.706253223032634 0.182258826852882 0.706253223032634 0.22782629955653 0.706253223032634 0.296170594396919 0.706253223032634 0.40993166 0.706253223032634 0.418581908921481 0.706253223032634 0.452505755190907 0.706253223032634 0.491680637984723 0.706253223032634 0.52287170774061 0.706253223032634 0.570422084485564 0.706253223032634 0.608221394102937 0.706253223032634 0.650382694858395 0.706253223032634 0.677363647927261 0.706253223032634 0.726688462077035 0.706253223032634 0.745589274060614 0.706253223032634 0.79063868 0.706253223032634 0.842176603969299 0.706253223032634 0.874155042927462 0.706253223032634 0.905948157513261 0.706253223032634 0.928406822564351 0.706253223032634 1.00922544 0.706253223032634 1.05780410466889 0.706253223032634 1.08695057803366 0.706253223032634 1.13552960359403 0.706253223032634 0.113913149911665 0.742936532604807 0.182258826852882 0.742936532604807 0.22782629955653 0.742936532604807 0.296170594396919 0.742936532604807 0.40993166 0.742936532604807 0.418581908921481 0.742936532604807 0.452505755190907 0.742936532604807 0.491680637984723 0.742936532604807 0.52287170774061 0.742936532604807 0.570422084485564 0.742936532604807 0.608221394102937 0.742936532604807 0.650382694858395 0.742936532604807 0.677363647927261 0.742936532604807 0.726688462077035 0.742936532604807 0.745589274060614 0.742936532604807 0.79063868 0.742936532604807 0.842176603969299 0.742936532604807 0.874155042927462 0.742936532604807 0.905948157513261 0.742936532604807 0.928406822564351 0.742936532604807 0.113913149911665 0.747319411003955 0.182258826852882 0.747319411003955 0.22782629955653 0.747319411003955 0.296170594396919 0.747319411003955 0.40993166 0.747319411003955 0.418581908921481 0.747319411003955 0.452505755190907 0.747319411003955 0.491680637984723 0.747319411003955 0.52287170774061 0.747319411003955 0.570422084485564 0.747319411003955 0.608221394102937 0.747319411003955 0.650382694858395 0.747319411003955 0.677363647927261 0.747319411003955 0.726688462077035 0.747319411003955 0.745589274060614 0.747319411003955 0.79063868 0.747319411003955 0.842176603969299 0.747319411003955 0.874155042927462 0.747319411003955 0.113913149911665 0.771208080336899 0.182258826852882 0.771208080336899 0.22782629955653 0.771208080336899 0.296170594396919 0.771208080336899 0.40993166 0.771208080336899 0.418581908921481 0.771208080336899 0.452505755190907 0.771208080336899 0.491680637984723 0.771208080336899 0.52287170774061 0.771208080336899 0.570422084485564 0.771208080336899 0.608221394102937 0.771208080336899 0.113913149911665 0.79539223232839 0.182258826852882 0.79539223232839 0.22782629955653 0.79539223232839 0.296170594396919 0.79539223232839 0.40993166 0.79539223232839 0.418581908921481 0.79539223232839 0.452505755190907 0.79539223232839 0.491680637984723 0.79539223232839 0.113913149911665 0.810646947799361 0.182258826852882 0.810646947799361 0.22782629955653 0.810646947799361 0.296170594396919 0.810646947799361 0.40993166 0.810646947799361 0.418581908921481 0.810646947799361 0.452505755190907 0.810646947799361 21 5 104 104 5 24 104 105 110 105 104 24 109 110 117 110 109 104 105 106 110 104 109 21 24 23 105 21 109 20 20 116 19 20 109 116 19 125 138 125 19 116 116 117 125 126 138 125 126 117 118 138 139 155 139 138 126 126 127 139 126 125 117 109 117 116 19 138 18 110 111 117 23 106 105 106 23 107 111 106 107 106 111 110 107 108 113 26 108 107 112 113 120 113 112 107 108 34 113 107 112 111 107 23 22 111 112 119 118 119 127 119 118 111 127 140 139 128 140 127 127 119 128 118 127 126 128 120 129 120 128 119 141 129 142 129 141 128 120 121 129 128 141 140 119 112 120 140 141 157 113 114 120 111 118 117 139 140 156 17 18 154 16 17 178 154 155 179 154 138 155 16 178 202 179 178 154 155 156 179 154 178 17 138 154 18 203 178 179 14 15 226 202 15 16 250 13 14 226 15 202 250 226 227 203 226 202 250 274 13 251 274 250 227 226 203 226 250 14 202 178 203 13 274 12 179 180 203 204 203 180 180 156 157 204 180 181 204 227 203 181 157 158 157 156 140 181 205 204 182 205 181 205 206 229 157 181 180 155 139 156 204 205 229 227 228 251 228 227 204 251 275 274 252 275 251 251 228 252 227 251 250 252 229 253 229 252 228 277 276 253 253 276 252 253 229 230 252 276 275 228 204 229 275 276 300 157 142 158 180 179 156 141 142 157 274 275 299 129 130 142 108 27 25 108 26 27 30 108 29 33 108 28 28 108 30 29 108 25 31 108 32 108 31 36 36 35 108 121 120 114 114 115 121 129 121 130 122 130 121 113 34 39 108 35 34 32 108 33 130 143 142 37 114 113 113 38 37 42 115 114 41 115 42 115 41 40 42 114 37 121 115 122 122 40 123 40 122 115 131 123 132 123 131 122 40 45 123 131 130 122 124 123 44 132 124 133 132 123 124 44 43 124 44 123 45 131 132 145 113 39 38 130 131 144 182 158 159 158 142 143 159 158 143 158 182 181 159 144 160 144 159 143 183 160 184 160 183 159 144 145 160 159 183 182 130 144 143 182 183 207 206 207 230 206 182 207 230 254 253 231 254 230 230 207 231 206 230 229 208 231 207 208 184 185 231 255 254 232 255 231 231 208 232 208 207 184 183 184 207 278 253 254 160 161 184 182 206 205 185 184 161 161 145 146 185 161 162 209 208 185 133 146 145 146 133 134 162 186 185 186 162 163 146 147 162 146 162 161 144 131 145 185 186 210 232 209 233 232 208 209 256 233 257 233 256 232 209 210 233 232 256 255 234 257 233 234 210 211 281 256 257 258 257 234 234 235 258 234 233 210 209 185 210 280 255 256 186 187 210 161 160 145 133 145 132 279 254 255 124 43 133 26 107 22 282 257 258 11 12 298 10 11 322 298 299 323 298 274 299 10 322 346 323 322 298 299 300 323 298 322 11 274 298 12 347 322 323 370 9 10 370 346 347 394 8 9 9 370 394 370 10 346 371 394 370 371 347 348 394 395 419 395 394 371 371 372 395 371 370 347 346 322 347 8 394 418 323 324 347 324 300 301 300 299 275 301 300 277 300 324 323 301 278 302 278 301 277 325 302 326 302 325 301 278 279 302 301 325 324 277 253 278 324 325 349 348 349 372 348 324 349 372 396 395 373 396 372 372 349 373 348 372 371 350 373 349 350 326 327 396 373 397 374 373 350 350 351 374 350 349 326 325 326 349 398 373 374 302 303 326 324 348 347 300 276 277 395 396 420 7 418 438 7 8 418 438 418 419 7 438 456 419 420 439 419 395 420 457 456 439 456 438 439 457 439 440 439 438 419 394 419 418 7 456 6 6 467 475 6 456 467 1 475 2 475 1 6 467 468 475 457 468 467 458 468 457 476 2 475 477 2 476 476 468 469 468 476 475 456 457 467 439 420 440 420 421 440 421 420 397 421 397 398 440 421 441 422 441 421 422 398 399 441 442 459 442 441 422 422 423 442 422 421 398 397 373 398 440 441 459 458 459 469 459 458 440 469 477 476 470 477 469 469 459 470 458 469 468 470 478 477 100 3 478 3 103 102 99 103 3 470 459 460 478 3 477 478 470 471 477 3 2 460 459 442 440 458 457 420 396 397 374 375 398 327 326 303 303 279 280 327 303 304 351 350 327 328 327 304 304 280 281 351 328 352 351 327 328 304 305 328 304 303 280 279 255 280 375 374 351 423 422 399 399 375 376 443 460 442 443 423 424 399 400 423 443 442 423 352 376 375 376 352 353 400 424 423 424 400 401 376 377 400 376 400 399 375 351 352 443 424 444 328 329 352 399 398 375 329 328 305 305 281 282 329 305 306 353 352 329 330 329 306 306 282 283 353 330 354 353 329 330 306 307 330 306 305 282 281 257 282 377 376 353 425 424 401 401 377 378 445 444 425 444 424 425 401 402 425 400 377 401 354 378 377 378 354 355 402 426 425 426 402 403 378 379 402 378 402 401 377 353 354 445 425 426 330 331 354 305 304 281 280 256 281 443 444 462 460 471 470 471 460 461 479 471 472 471 479 478 461 472 471 473 480 472 479 94 93 480 91 479 472 461 462 472 480 479 443 461 460 479 93 97 99 3 100 102 4 3 97 98 479 96 101 479 98 96 479 100 479 101 100 478 479 480 473 481 473 462 463 89 481 473 481 88 480 445 463 462 446 463 445 473 474 89 85 84 474 474 463 85 463 474 473 461 443 462 84 89 474 90 479 91 94 479 95 95 479 90 89 88 481 92 480 87 87 480 88 480 92 91 462 473 472 445 462 444 426 446 445 303 302 279 278 254 279 258 259 282 47 134 133 47 133 48 46 50 135 134 135 148 135 134 46 50 148 135 46 134 47 146 134 147 147 148 163 147 134 148 187 186 163 164 187 163 163 148 164 163 162 147 149 164 148 149 136 137 164 188 187 165 188 164 164 149 165 148 50 149 136 149 50 187 188 212 50 51 136 187 211 210 150 149 137 137 51 49 150 137 49 150 165 149 49 151 150 151 49 152 152 153 169 153 152 49 151 152 168 49 53 153 150 151 167 165 166 190 166 165 150 189 190 214 190 189 165 166 167 190 165 189 188 167 168 191 168 167 151 193 168 169 168 192 191 168 152 169 167 191 190 166 150 167 190 191 215 153 53 169 137 136 51 188 189 213 211 212 235 211 187 212 235 212 236 235 234 211 213 214 237 213 189 214 236 237 261 237 236 213 214 238 237 213 236 212 188 213 212 235 236 260 259 260 284 259 235 260 283 284 308 284 283 259 260 261 284 283 282 259 261 238 262 261 260 236 285 262 286 262 285 261 238 239 262 261 285 284 238 261 237 284 285 309 214 215 238 259 258 235 239 215 216 215 214 190 216 215 192 263 262 239 216 193 217 193 216 192 240 217 241 217 240 216 193 194 217 216 240 239 192 168 193 239 240 264 263 264 287 263 239 264 286 287 311 287 286 263 264 288 287 286 262 263 265 288 264 265 241 242 288 289 313 289 288 265 265 266 289 265 264 241 240 241 264 287 288 312 217 218 241 239 238 215 191 192 215 285 286 310 169 170 193 283 307 306 53 54 170 170 54 171 170 194 193 52 57 172 171 172 196 172 171 52 57 173 172 52 171 54 170 171 195 194 195 219 194 170 195 218 219 243 219 218 194 195 196 219 218 217 194 196 173 197 196 195 171 220 197 221 197 220 196 173 174 197 196 220 219 173 196 172 219 220 244 57 56 173 218 242 241 56 55 174 174 55 60 174 198 197 175 60 176 177 59 58 60 59 176 60 175 174 174 175 199 174 199 198 221 197 198 199 223 198 198 222 221 176 200 199 175 176 199 200 177 201 177 200 176 225 200 201 62 201 177 177 58 62 224 199 200 176 59 177 225 201 62 173 56 174 220 221 245 242 243 266 242 218 243 267 266 243 266 265 242 220 245 244 244 243 219 269 244 245 246 245 222 222 223 246 268 243 244 245 221 222 270 245 246 267 268 291 268 267 243 290 291 315 291 290 267 268 292 291 267 290 266 269 270 293 270 269 245 292 293 317 293 292 269 270 294 293 269 292 268 268 244 269 291 292 316 246 247 270 290 289 266 223 224 247 224 223 199 247 224 248 271 270 247 248 225 249 225 248 224 249 63 273 63 249 225 225 62 63 248 249 273 224 200 225 247 248 272 271 272 295 272 271 247 294 295 319 295 294 271 272 296 295 294 270 271 273 64 297 64 273 63 296 297 321 297 296 273 64 61 297 273 296 272 272 248 273 295 296 320 247 246 223 222 198 223 293 294 318 169 53 170 289 290 314 307 308 331 307 283 308 331 308 332 355 354 331 309 310 333 309 285 310 332 333 357 333 332 309 333 334 357 309 332 308 284 309 308 331 332 356 355 356 379 356 355 331 427 426 403 380 403 379 379 356 380 403 402 379 380 357 381 357 380 356 405 404 381 381 404 380 381 357 358 380 404 403 356 332 357 403 404 428 334 333 310 379 378 355 334 311 335 311 334 310 335 311 312 334 335 359 312 313 337 312 288 313 336 337 361 337 336 312 313 314 337 312 336 335 287 312 311 335 336 360 358 359 383 359 358 334 406 381 382 383 382 358 359 360 383 358 382 381 360 361 385 361 360 336 408 383 384 385 384 360 361 362 385 360 384 383 359 335 360 407 382 383 337 338 361 334 358 357 286 311 310 409 384 385 446 427 447 426 427 446 447 427 428 446 447 465 428 405 429 428 427 403 448 429 449 429 448 428 405 406 429 428 448 447 405 428 404 447 448 466 464 465 86 464 446 465 86 85 464 465 81 86 464 85 463 83 466 82 83 465 466 81 465 83 466 449 82 465 447 466 449 466 448 429 430 449 446 464 463 406 407 430 407 406 382 430 407 431 450 449 430 408 409 432 409 408 384 431 432 452 432 431 408 409 433 432 408 431 407 407 383 408 430 431 451 450 451 78 450 430 451 78 82 450 451 452 78 82 449 450 432 79 452 452 451 431 79 80 452 433 453 79 452 80 78 79 432 433 409 410 433 430 429 406 405 381 406 385 386 409 330 307 331 314 315 338 314 290 315 338 315 339 362 361 338 316 317 340 316 292 317 339 340 364 340 339 316 317 341 340 316 339 315 291 316 315 338 339 363 362 363 387 362 338 363 386 387 411 387 386 362 363 364 387 410 409 386 364 341 365 364 363 339 389 388 365 365 388 364 341 342 365 364 388 387 341 364 340 387 388 412 317 318 341 386 385 362 318 319 342 318 294 319 343 342 319 318 342 341 296 321 320 320 319 295 320 321 345 68 321 61 319 320 344 317 293 318 345 321 68 343 344 367 344 343 319 390 365 366 367 366 343 344 368 367 343 366 342 345 67 369 67 345 68 392 367 368 369 368 345 67 66 369 345 368 344 344 320 345 391 366 367 342 366 365 313 289 314 393 368 369 410 411 434 410 386 411 434 411 435 434 453 433 412 389 413 412 435 411 436 412 413 412 436 435 389 390 413 411 387 412 389 412 388 434 435 455 453 454 76 453 434 454 76 75 453 454 77 76 453 75 79 455 436 72 455 454 434 72 77 455 72 436 437 455 77 454 436 455 435 436 413 437 433 410 434 390 391 415 391 390 366 414 415 69 415 414 390 391 392 415 74 413 414 392 393 416 393 392 368 417 393 66 393 417 416 393 369 66 392 416 415 391 367 392 415 416 70 414 69 74 413 74 73 437 413 73 437 73 72 71 70 416 71 417 65 417 66 65 70 69 415 416 417 71 413 390 414 389 365 390 338 337 314 61 321 297 48 133 43 
-41 39 1 0.119318360526317
-32.4183769697902 -8.97180042613466e-007 0.221258007919191 32.9492818450068 -2.51270011936476e-007 0.385932318830801 32.6544897766154 -6.1854046833657e-007 0.29393031968474 32.8019357971818 -4.37667714546673e-007 0.339770170662025 32.949284715007 -9.00000027138652e-011 1.41444141318236 32.949281636949 -0.0723859747720965 0.399530933967947 32.9492814655058 -0.142449920928198 0.42340905710103 32.949281336466 -0.207716338173984 0.456629212869447 32.9492812520345 -0.266178482020004 0.497541003405603 32.9492812108253 -0.31651530357438 0.544042244557282 32.9492812105121 -0.362494816899089 0.599886908849098 32.9492812576811 -0.40178979320139 0.664602951834885 32.9492813567519 -0.432102421706248 0.736978432667788 32.949281491386 -0.450058107631838 0.807055623065036 32.9492816479924 -0.457765634257626 0.872533311662978 32.9492818350163 -0.457071300035649 0.938684194805279 32.9492820478497 -0.448008746367459 1.00389935722537 32.9492822807364 -0.431010966617592 1.06664445241076 32.9492825272681 -0.406859839381012 1.12557586510147 32.9492827809181 -0.3765998336642 1.17962700327792 32.9492830355287 -0.341432829137614 1.2280547268893 32.9492833515667 -0.291713771367234 1.28078831370993 32.9492836702801 -0.235086619683427 1.32608171168288 32.949283935845 -0.182910025195474 1.35775370234894 32.9492842405047 -0.117131977435142 1.38689385173548 32.9492844955534 -0.0566532093327347 1.40471369228586 32.4183772197902 -0.208516963644024 1.41444139018236 32.7146390206246 -0.0957544927099734 1.41444140260348 32.5669008295882 -0.153086954362354 1.41444139622574 32.4183769697902 -0.614560682900065 0.818500392946681 32.4183769697902 -0.350573657355878 1.34113514239231 32.4183769697902 -0.46792121174002 1.23487179666597 32.4183769697902 -0.552640678866218 1.10547972803371 32.4183769697902 -0.601253461084581 0.964474298088134 32.4183769697902 -0.612184554316443 0.892849778102396 32.4183769697902 -0.59315361976337 0.674321889547505 32.4183769697902 -0.535431204285334 0.533899140425032 32.4183769697902 -0.452364187772029 0.419704128146711 32.4183769697902 -0.354589956672272 0.333814986501625 32.4183769697902 -0.238924454056769 0.26958132567036 32.4183769697902 -0.122181301376733 0.233520551715949 3.00864606 0 3.00864606 1 3.00864606 0.444444444444444 3.00864606 0.722222222222222 0 0.999999999999999 2.80556245451594 1 2.62278720847553 1 2.45828948585824 1 2.310241534832 1 2.17699837857068 1 2.04375522206057 1 1.91051206528707 1 1.77726890822465 1 1.65735006664939 1 1.54942310913413 1 1.44149615164394 1 1.33356919431456 1 1.22564223727253 1 1.11771528060127 1 1.00978832431367 1 0.901861368341175 1 0.764926185501422 1 0.619224795143735 1 0.488093543609349 1 0.320908984309016 1 0.160454492706175 1 4.44089209850063e-016 0 4.44089209850063e-016 0.555555555555556 4.44089209850063e-016 0.277777777777778 1.5556334 0 0.378018896081902 0 0.718235941713606 0 1.02443124355224 0 1.30000697429141 0 1.42782015181505 0 1.79780217734394 0 2.03997093899532 0 2.25792284377909 0 2.45407956768299 0 2.65023628582616 0 2.82944117596899 0 27 31 29 28 29 31 28 26 5 28 31 24 24 32 23 34 19 33 32 33 21 17 34 35 32 24 31 25 28 24 22 23 32 25 26 28 22 32 21 19 20 33 17 18 34 16 17 35 19 34 18 21 33 20 35 30 16 14 30 36 10 37 38 9 38 39 12 36 37 40 41 3 1 3 41 3 8 39 3 39 40 4 7 3 15 30 14 13 36 12 12 37 11 36 13 14 38 9 10 10 11 37 4 6 7 7 8 3 2 6 4 9 39 8 30 15 16 
-63 61 1 0.18275168035001
-31.5453892345755 -2.84358518024543e-010 1.57010472795097 30.9280263125 -0.0873089211861623 1.60695769477569 31.2974821280361 -0.0350370328811884 1.58556635694182 31.1204332596283 -0.0602117432064407 1.59601490368986 30.0394633975859 -0.200907417501252 1.65446187752303 30.550479791337 -0.138859069750576 1.62752689019242 30.2987102629447 -0.170830825639444 1.64085165237989 29.5198370703048 -0.250491600836839 1.68203176886297 29.7962755978589 -0.226147853981709 1.66725163524541 29.9202605957203 -0.213653509011079 1.66072333797826 29.2028253447147 -0.271838291522898 1.6995424104655 29.3197663146451 -0.264842639626139 1.6929978065375 29.4093488458609 -0.258805174375594 1.68805023500084 29.1292698538506 -0.275729591350411 1.7037141474904 29.1613437747115 -0.274081063433766 1.70188983029626 29.1818358720314 -0.272988601967243 1.70072876380782 27.9580998698248 -0.287213545516178 1.7762104150262 28.6334589290037 -0.292071289867517 1.7329750252157 28.2989317935834 -0.293671638691864 1.75387657490008 27.1183300885413 -0.234506035890649 1.83552196484067 27.567626757566 -0.270034757765977 1.8029936064384 27.3358664899854 -0.253946620484933 1.81956045869635 26.7177243957574 -0.184290307132866 1.86592274115955 26.9078415571464 -0.210778000466012 1.85134784245198 27.0131132467513 -0.223382967335193 1.84337809778228 26.6072787699614 -0.166388614178154 1.87446002380946 26.6586276697487 -0.174959781830892 1.87048742923244 26.6888152939273 -0.17979563280285 1.86815519603804 26.4173907547587 -0.130843791807996 1.88911937635335 26.4796660986241 -0.143183262911529 1.88432580371304 26.5346538840633 -0.153521508196896 1.88007883614836 26.3568970264124 -0.114423615185575 1.89398475508142 26.3888784366182 -0.123358724927798 1.89141279465136 26.3724029063813 -0.118865967617964 1.89273568280923 26.2933957876783 -0.0947700580217579 1.89906779612862 26.3264655611822 -0.105493874271201 1.89641771625628 26.309288792086 -0.100079291294985 1.89779321830789 26.225945537031 -0.0676881079965739 1.90448562176552 26.2531402001709 -0.0800726013455102 1.90228448212112 26.2689057860584 -0.0862035780193151 1.90101845529926 26.2028398511069 -0.0548219693764112 1.90636315498107 26.2150120552164 -0.0619762244923438 1.90537246653922 26.2087177735819 -0.0584142365146393 1.90588381244474 26.1715862117354 -0.0280173105944252 1.90892945299891 26.1863118813827 -0.0433001563473664 1.90770661217708 26.1954881750896 -0.0500150577228376 1.90696336908379 26.1604470425545 1.29120852074267e-009 1.90984293371267 26.16297935419 -0.0119716913282133 1.90964298445692 26.1658087682057 -0.0189680626996516 1.90940581263074 25.9893209344264 3.4350001633999e-008 1.92052189721989 26.0843158085417 1.54258354617712e-008 1.91459250215493 26.0367945483994 2.49376276677681e-008 1.91755824946625 25.9893209044264 -1.2407928679345 1.41444127418235 25.9893209277346 -0.622739697573988 1.80763490020278 25.9893209176324 -0.961751686580763 1.63721701225842 28.8885020234294 -1.01981169350125 1.41444129879513 30.6741663525248 -0.716118495520971 1.41444133271498 32.4183772197902 -0.208516963644024 1.41444139018236 32.4183771497902 -9.50500045162309e-008 1.51294273986092 32.4183771565294 -0.108569249581605 1.49014860106492 32.4183771826061 -0.164996410704963 1.45665088589755 32.0313735286155 -6.26104575395461e-008 1.53844031722881 31.7886258826001 -3.43067884641679e-008 1.55430121306841 2.57033879 0.50000087 2.28861842087227 0.443745222893856 2.45723722667645 0.47375091236629 2.37644718730772 0.458264195126531 1.882021975585 0.398738643647066 2.11609091098828 0.420743844817877 2.00086350250557 0.408726008088426 1.64326070115387 0.38531898163311 1.77035567091248 0.391397692930834 1.82731064520272 0.394902533047328 1.49732765 0.38125063 1.55118174911203 0.382391005520839 1.59241638721006 0.383549430774969 1.46344236641377 0.380743095505887 1.47821947918762 0.380945692622078 1.48765933404334 0.381090230003811 0.922589615817229 0.389797391625992 1.23479023625795 0.380893256426987 1.08026444166622 0.384111939341188 0.532403391212581 0.415012458030018 0.741558873367591 0.399372445534962 0.633805637493195 0.406753984568531 0.34480012 0.43452143 0.433987231850694 0.424459149119472 0.483252368328348 0.419535764600509 0.292853383143588 0.44117714741059 0.317018217862462 0.438005500708143 0.331213421661933 0.436203783560819 0.20327796 0.45411017 0.232693228058303 0.449655614223755 0.258635046302074 0.445896584203952 0.174660872740947 0.459940872596311 0.189799546152085 0.456785656417991 0.182007360584991 0.45838718777952 0.144596468920789 0.466915665859125 0.160266136402741 0.463135772884468 0.152131039777963 0.465051325426928 0.112620972747793 0.476447432665769 0.125561601705397 0.472174774934396 0.133014404949453 0.469994307819016 0.101641597745167 0.480927988727755 0.107424966061805 0.478434999423406 0.10443683784644 0.479679220366518 0.0868737295748928 0.490307523452096 0.0938765760290096 0.485027499775956 0.0981659520907276 0.482618868739349 0.08150659 0.50000033 0.0827596801232439 0.495851003156725 0.084157597442134 0.493452419845314 7.50908543678541e-010 0.50000033 0.0452814375049143 0.50000033 0.0226407187214926 0.50000033 0 0 0 0.277777959779155 0 0.138888980111319 1.32006965960497 6.93889390390723e-018 2.14511320046372 6.93889390390723e-018 2.97015674 6.93889390390723e-018 2.97015674 0.50000087 2.97015674 0.277778261649727 2.97015674 0.138889131367082 2.79245987531436 0.50000087 2.6813993359596 0.50000087 29 54 55 34 54 33 36 37 54 34 32 54 36 54 32 55 53 28 54 37 35 27 26 55 23 28 53 27 55 28 29 33 54 31 30 55 29 55 30 26 31 55 53 24 23 49 48 51 45 44 51 49 51 44 54 45 51 47 51 48 54 51 52 52 50 54 42 54 38 39 54 40 54 39 38 45 54 46 41 54 43 41 46 54 43 54 42 54 35 40 18 56 14 56 18 19 15 14 56 56 16 15 19 17 56 11 16 56 56 12 11 56 17 21 3 57 58 1 58 61 9 57 10 12 56 13 8 56 9 56 8 13 63 61 60 57 9 56 22 53 21 5 10 57 24 53 25 53 20 25 5 57 7 20 53 22 6 57 2 4 57 3 57 4 2 1 3 58 1 61 63 63 60 62 7 57 6 60 59 62 21 53 56 
-43 41 1 0.929373364278139
-20.1549001573063 1.36866520500811 1.41444156718237 25.9893209044264 1.24079115393441 1.41444155318237 22.7577054944309 1.328667200288 1.41444156267208 24.3747918622912 1.29342804502507 1.41444155867448 25.9893210144265 1.67578665759559 0.495543775207065 25.9893209612405 1.54395826334188 0.955859696927737 25.9893209328494 1.40739915374098 1.20316394549284 25.9893210144265 -1.67578856559568 0.495540494136909 25.9893210595912 -1.68400096620412 0.104293156327886 25.9893210992021 -1.6094660467772 -0.256107775302221 25.9893211339876 -1.47137442990658 -0.56998965304101 25.989321166696 -1.26642731260049 -0.856833198911222 25.9893211945099 -0.999963494727196 -1.09976662738295 25.9893212156238 -0.682349462496128 -1.28323775909663 25.9893212286158 -0.328532648832915 -1.39475407891498 25.9893212325735 0.0430897063710749 -1.42641416112216 25.9893212272109 0.412362807748192 -1.3759327125916 25.9893212129055 0.759366009467135 -1.24694480651844 25.9893211906476 1.06636412102401 -1.04852357180997 25.9893211619129 1.31938917134473 -0.794015118064962 25.9893211284844 1.5092190996943 -0.499431274727858 25.9893210922585 1.63166559831525 -0.181705319982121 25.9893210550655 1.68723041716745 0.142901911316889 25.9893210345193 1.6906630543802 0.321477936167018 25.9893209044264 -1.2407928679345 1.41444127418235 25.9893209495827 -1.49355647716755 1.05892484948541 25.9893209799464 -1.607448781941 0.791612249723409 20.1549001573063 -1.3686672230082 1.41444126018235 23.406045317914 -1.31522402231752 1.41444127001226 21.7814857070444 -1.34778248565821 1.41444126571733 20.1549001573063 -1.6722750014288 -1.30306872289244 20.1549001573063 -2.03433776185515 -0.381428035158878 20.1549001573063 -1.95022034564482 0.523458796790025 20.1549001573063 -1.70658877755618 1.02489508660368 20.1549001573063 1.67227319742871 -1.30306890389245 20.1549001573063 -1.06025510314924 -1.8708312818635 20.1549001573063 -0.248800274676112 -2.15085975576918 20.1549001573063 0.528196717018899 -2.09684800275857 20.1549001573063 1.15900491493157 -1.80730370736378 20.1549001573063 1.44015007298323 -1.57566051740705 20.1549001573063 1.88246508154141 0.702067315424064 20.1549001573063 2.04543979948981 -0.275796227278505 20.1549001573063 1.93251079173511 -0.803637163891062 0 1 0 0 0 0.555555555555556 0 0.277777777777778 0.52193218 0 0.289962326566546 0 0.144981163803571 0 2.90103732 0 2.72260443603976 0 2.56201484578221 0 2.41748421307472 0 2.27295357648076 0 2.12842293898602 0 1.98389230108423 0 1.83936166286646 0 1.69483102442607 0 1.55030038606231 0 1.40576974800512 0 1.26123911035026 0 1.11670847319352 0 0.972177836306641 0 0.827647199262468 0 0.683116562664398 0 0.602524372732039 0 3.42297087 0 3.1910004006394 0 3.04601885772958 0 3.42297087 1 3.42297087 0.444444444444444 3.42297087 0.722222222222222 2.31521104 1 2.64753898505568 1 2.97986693380408 1 3.20141890120829 1 1.10776006 1 2.05114150881727 1 1.78707197583842 1 1.54940939781961 1 1.33551307887036 1 1.22163656520452 1 0.369253353886606 1 0.73850670239636 1 0.923133375898128 1 2 7 4 6 5 4 5 24 4 7 6 4 23 22 4 21 20 3 20 19 40 22 21 3 24 23 4 42 3 43 41 1 3 42 41 3 4 22 3 35 20 40 35 43 3 39 18 38 19 39 40 18 17 38 3 20 35 19 18 39 16 37 38 15 14 37 14 13 36 16 15 37 12 11 29 11 10 29 9 8 29 8 27 29 10 9 29 13 12 31 32 30 33 29 32 31 36 13 31 36 37 14 26 25 29 30 32 29 34 30 28 34 33 30 12 29 31 26 29 27 16 38 17 
-66 64 1 0.161024487725665
-28.7643514962333 1.33236617403399 0.776100355658662 27.6194881219554 1.48165200572926 0.660331569942414 26.8339248695205 1.57666155768992 0.580995151391121 25.9893210144265 1.67578665759559 0.495543775207065 25.9893209044264 1.24079115393441 1.41444155318237 25.9893209612405 1.54395826334188 0.955859696927737 25.9893209328494 1.40739915374098 1.20316394549284 32.4183773097902 0.208515993143978 1.41444143718236 28.8885019102731 1.01980904931 1.41444152811728 30.6741662167748 0.716115970789611 1.41444149374992 32.4183769697902 0.614559651360016 0.818501410646729 32.4183769697902 0.555526101335424 1.09947628289893 32.4183769697902 0.401055729892749 1.30205971097984 32.1770521334931 0.687441378484839 0.77339797995212 32.0167341897921 0.731181747152838 0.743928886938491 31.8489294108679 0.773620907424083 0.713412657138219 31.566908625913 0.848924345841429 0.741817258750537 31.7193577050282 0.809165463987107 0.724738984746363 31.6441503715087 0.829068641206165 0.732676223598864 31.0591047654668 0.963540691337818 0.812517560127936 31.2862471602083 0.915659621508783 0.779518141965687 31.4263928926327 0.88339812558925 0.759926421383552 30.9858099377714 0.977906652997218 0.823001564625002 31.0184934603145 0.971560636306024 0.81836747505304 31.0388308672447 0.967563375295205 0.81544452499999 30.292182671942 1.09603537854599 0.895836056217416 30.6273799791908 1.04199814688872 0.868682706724771 30.8117997461093 1.01015065506177 0.846758910297657 30.2321643814253 1.10541543653031 0.898725539057365 30.2650899957808 1.10027628860674 0.897220254404653 30.2485055338066 1.10286609724819 0.898005754909848 29.7795341835413 1.17563261596748 0.898584238481708 30.02922846873 1.13689975109556 0.903538082386562 29.9069072424127 1.15586846893199 0.90250950825837 29.1372732207767 1.27324971270094 0.850442714275949 29.4200150342725 1.23091670093218 0.875938129190515 29.5981387665588 1.20365059634477 0.889055958426125 28.9242454674154 1.3040453060426 0.829974356619852 29.0193724633663 1.29042794006179 0.839087283506927 29.0784338380473 1.28186157139388 0.84478657121622 28.8816130593029 1.31007156310006 0.825958547744424 28.9053208004599 1.30672523639533 0.828191498524062 28.8934741437243 1.30839887530713 0.827075634695099 28.8623359158873 1.31301195536472 0.822802590013024 28.8683861667669 1.3121746813851 0.823287469606039 28.8724539903008 1.31154876837384 0.823977440281247 28.8499934198436 1.31471501874615 0.821812036463894 28.8586785090749 1.31352018068647 0.822490125557799 28.8544807632298 1.3140984728401 0.822158791757023 28.836792424772 1.31659601257406 0.820380770538668 28.8412037998586 1.31601400415887 0.820572287179439 28.8451346362802 1.31543704139992 0.821102110061665 28.8192381238403 1.31915032565627 0.818128210046003 28.8250979597599 1.31822776397475 0.819316570979007 28.8294260915591 1.31761011142509 0.81980088716013 28.8097933533917 1.3206519092276 0.816139042279523 28.8132975816628 1.32009277097036 0.816891630272316 28.8103912202937 1.32055450698852 0.816279673061782 28.7799729704748 1.32585040949468 0.806905170779541 28.7939464023144 1.32319585274502 0.812605118535826 28.7996852367409 1.32220465499208 0.814334145380745 28.7718042186219 1.32778267744969 0.80108843131585 28.7732356324845 1.32733174014952 0.802827533414292 28.7758361996172 1.32670846334943 0.804734949007174 28.7647189177685 1.33083926062504 0.786642361583877 28.7667858093201 1.32954883005284 0.793611284634292 0.41008734 0.15247929 0.22782629955653 0.15247929 0.113913149911665 0.15247929 0 0.15247929 1.38777878078145e-017 8.67361737988404e-019 1.38777878078145e-017 0.0847107208436243 1.38777878078145e-017 0.0423553611555529 1.18410863 0 0.526270502222222 0 0.855189566111111 0 1.18410863 0.25852666 1.18410863 0.172351109087307 1.18410863 0.0861755605705679 1.10638276754093 0.25852666 1.05780410466889 0.25852666 1.00922544 0.25852666 0.93817111158698 0.239135718447365 0.975485711828586 0.249847357002507 0.956770079733854 0.244624036615868 0.82853129 0.2030414 0.87521692000902 0.21891738929344 0.905824780025457 0.229000040037327 0.814114745698882 0.198106711462962 0.820510972950289 0.200288740602117 0.824517256855192 0.201661577359719 0.68608119 0.16093914 0.74669083885206 0.176354030237648 0.780832854959666 0.187009983349551 0.675302928289615 0.15876523717856 0.681214746096154 0.159936069510221 0.678236779366858 0.159339629304569 0.593669846603879 0.148260418686337 0.638822894971968 0.152782514760359 0.616737343558846 0.15020712284657 0.47839695 0.14515792 0.528703508614626 0.145605463107761 0.560813543547672 0.146505983961002 0.44128756 0.14514773 0.457756625436671 0.145152254769942 0.468064745340429 0.145155084853269 0.43396709 0.14513072 0.438034020045753 0.145140167530397 0.436000556053039 0.145135442994194 0.43089701 0.14540341 0.431679040274108 0.145355229288713 0.432641049683848 0.145265791778333 0.428432698347115 0.145350951568534 0.429904049112587 0.145376228362861 0.429193582179448 0.145361995950283 0.426177215634701 0.14534344097593 0.426922115368865 0.145341304208123 0.427596771570616 0.145343497441929 0.42351021 0.14542923 0.424267323422398 0.145379743146057 0.425100423821651 0.145356489479126 0.42127544 0.14570188 0.422029020208566 0.145613027611212 0.42149974308009 0.145677022493614 0.415669812049734 0.146917127401513 0.418483914032487 0.146077881307278 0.419573732459391 0.145885929294344 0.413786066706607 0.147911857528494 0.414194438816251 0.147655045410341 0.414792128805866 0.14732428047734 0.411165228250851 0.150478928833863 0.412218939194163 0.149200380275819 5 3 7 51 9 52 6 7 3 52 9 41 9 55 54 9 51 50 50 55 9 9 54 53 41 46 49 9 42 43 43 41 9 47 41 49 48 45 44 48 49 46 45 48 46 41 47 52 5 9 2 66 65 2 63 62 2 66 2 62 2 3 5 63 2 64 65 1 2 3 4 6 9 53 57 57 58 56 9 59 64 60 59 9 57 56 9 9 64 2 61 60 9 61 9 56 39 38 9 40 9 35 9 40 39 38 42 9 36 35 9 32 37 9 36 9 37 9 34 32 34 9 33 9 10 29 8 13 10 26 30 10 33 9 29 30 31 10 29 10 31 10 13 18 26 10 27 28 10 23 10 28 27 20 25 10 21 20 10 25 24 10 23 10 24 22 10 17 10 18 19 19 17 10 21 10 22 18 13 16 16 13 15 12 14 15 12 11 14 15 13 12 
-20 18 1 0.258266511369956
-28.8816743505559 1.32524719569586 0.695787439970753 28.8775904132854 1.32572610977519 0.696793589036043 28.8750545233673 1.32601664766193 0.697501193238321 28.8725335952688 1.32630037163785 0.698270444283315 28.867993691635 1.32680012581809 0.699792063894168 28.8656204720738 1.32705503534435 0.70066390099062 28.8635999007014 1.32726816033196 0.701453946616088 28.8562793112056 1.32801381583399 0.704560642423376 28.8518680381687 1.32844198085001 0.706643028489731 28.8475719209584 1.32884532155346 0.708805028085803 28.8042061810958 1.33218910762353 0.734824782868964 28.8222396701385 1.33098445437855 0.722941375478897 28.8346249173958 1.32998993839467 0.715754167430029 28.7643514962333 1.33236617403399 0.776100355658662 28.7750044534097 1.33317663478055 0.759453473175048 28.7875217931438 1.33299393369997 0.747409772071321 31.9768135388171 6.52772034505006 1.34215900474913 32.0208866309104 6.53046184918028 1.31476716144809 31.9890588095105 6.52897265450857 1.32964517227622 32.0043572560983 6.5298518644305 1.32086070908223 1 55.19186736 0.970462301423367 55.1879815163868 0.952001269573823 55.1855528680437 0.93354024 55.18312422 0.900048148438663 55.1787195647845 0.882385805313795 55.1764036605187 0.86723898 55.17442391 0.811743060522171 55.1672629129707 0.777681907317113 55.1629477161495 0.744100615116397 55.1587559264802 0.39369133 55.11954557 0.542781297496916 55.1351117823133 0.641894018682712 55.1464185902571 0 55.09513178 0.132282826670888 55.09869040342 0.249880261277429 55.1067427967288 0 0 1 1.77635683940025e-015 0.333333333333333 1.77635683940025e-015 0.666666666666667 1.77635683940025e-015 14 17 19 15 14 18 20 14 19 16 15 18 18 11 16 18 13 12 18 10 13 12 11 18 20 18 14 8 9 18 7 18 6 18 7 8 6 18 5 9 10 18 4 5 18 3 4 18 3 18 2 18 1 2 
-23 21 1 0.422146918720553
-32.0208866309104 6.53046184918028 1.31476716144809 28.8816743505559 1.32524719569586 0.695787439970753 33.0949317119248 6.52779751805373 1.34157750972151 32.4984166034279 6.53355304594409 1.28395396493992 32.7973514320859 6.5314100336387 1.30542254960501 31.8489294108679 0.773620907424083 0.713412657138219 31.6669080706979 0.818055692597143 0.691167117815894 31.547495011969 0.84590928484853 0.677466341041488 31.4235408023773 0.87387724296965 0.664016100385336 30.6739009489152 1.02775890829929 0.600825162057539 31.003220177075 0.962859218811492 0.62438783987948 31.2127587094392 0.919511495410958 0.642930651987077 29.8455269996093 1.17804865362135 0.580310109048595 30.1958373950127 1.11641510086955 0.580547484392847 30.4302918580342 1.07363161088937 0.587995751073576 29.7609436354519 1.19252197459894 0.582724670786081 29.7096530119139 1.20121582260965 0.584772721175931 29.6596005386966 1.20962973326461 0.587203699858479 29.5013742992985 1.23573720671022 0.597938318883715 29.4100709559397 1.25039788769139 0.606435721376138 29.3247602152849 1.2637721186497 0.616147712196046 29.1078512072961 1.29587838748688 0.648447423514704 28.9898581557217 1.31184102501947 0.67130074713442 8.9364967910993e-017 1 2.52010372 1 0 0 0 0.55555555662117 0 0.277777777807521 2.72079289 0 2.70343860234772 0.0595719957815567 2.69272145038642 0.0987789478406871 2.6820843 0.13957584 2.62565605 0.38838725 2.64902478331404 0.27864364869806 2.664979254147 0.209175982731479 2.57291933 0.66753805 2.59442060224816 0.548898490388526 2.60940785596814 0.469996345106262 2.56784238128398 0.696329492395816 2.56478578717223 0.71381253709948 2.56182051530947 0.730892495636628 2.552573318782 0.785052108826766 2.54734088892423 0.816449783945029 2.54253999 0.84589577 2.53089618599267 0.921074411539134 2.52504590813139 0.962146294804497 13 4 5 4 18 19 17 18 4 4 19 20 5 3 15 1 23 2 1 4 23 23 4 22 22 4 21 4 20 21 12 11 3 9 12 3 7 8 3 6 7 3 9 3 8 16 17 4 13 16 4 15 14 5 10 15 3 13 5 14 11 10 3 
-45 43 1 0.120261755534508
-32.4183769697902 -8.97180042613466e-007 0.221258007919191 32.6544897766154 -6.1854046833657e-007 0.29393031968474 32.8019357971818 -4.37667714546673e-007 0.339770170662025 32.9492818450068 -2.51270011936476e-007 0.385932318830801 32.4183769697902 0.614559651360016 0.818501410646729 32.4183769697902 0.593152759177951 0.674322638555951 32.4183769697902 0.535430395324304 0.533899595554983 32.4183769697902 0.452363310682659 0.419704320281811 32.4183769697902 0.35458892182781 0.333815010820715 32.4183769697902 0.238923180094589 0.269581235514765 32.4183769697902 0.122179798840786 0.233520462318616 32.4183773097902 0.208515993143978 1.41444143718236 32.4183769697902 0.600823111770511 0.966468298788938 32.4183769697902 0.555526101335424 1.09947628289893 32.4183769697902 0.48636342766211 1.21215874237066 32.4183769697902 0.401055729892749 1.30205971097984 32.4183769697902 0.306533928957468 1.36901375945687 32.949284715007 -9.00000027138652e-011 1.41444141318236 32.6556405042146 0.118916540025242 1.41444142684491 32.8028878998831 0.0604304092497776 1.4144414202837 32.9492844622498 0.0648578034843168 1.40276019322203 32.9492841950919 0.127361842821889 1.38306634166443 32.9492839217962 0.185787190591095 1.35622009891945 32.9492836505446 0.238781276649565 1.32350548511105 32.9492833885957 0.28546658567954 1.28645378312565 32.9492831137876 0.329730268134689 1.24185312072483 32.9492828316718 0.369955979006697 1.18972552093879 32.9492825773593 0.40129089899697 1.13674434035753 32.9492823532966 0.424498342755848 1.08471341846466 32.9492821386964 0.442142873236093 1.02930545077855 32.9492819383134 0.453577893685952 0.971436497866518 32.9492817566145 0.458366005935615 0.912173941484262 32.949281597467 0.456319712789437 0.852674394726367 32.9492814638712 0.447519460318144 0.794109899407079 32.9492813577748 0.432305853534723 0.737592052707112 32.9492812799933 0.411247421367001 0.684104170065403 32.9492812302395 0.3850894689738 0.63444980772802 32.9492812072494 0.354692238382686 0.589222522086425 32.9492812089755 0.320967261132669 0.548797697285107 32.9492812419963 0.275402226040944 0.505171313291083 32.9492813097541 0.22393213033468 0.466798061747131 32.949281393256 0.176940001924048 0.439511462777807 32.9492814927281 0.13039910271226 0.418491493481063 32.9492816376445 0.0721246754267516 0.399462416249419 32.9492817399943 0.0352387730996903 0.391219318004573 0 0 0 0.444444444444444 0 0.722222222222222 0 1 1.4508111 0 1.20900927907161 0 0.967207431555324 0 0.749585752822383 0 0.553726241214868 0 0.35786673355648 0 0.178933364870546 0 3.00408138 0 1.70968949491579 0 1.96856787725773 0 2.22744626056553 0 2.48632464158355 0 2.74520301624964 0 3.00408138 1 3.00408138 0.444444444444444 3.00408138 0.722222222222222 2.82158343656439 1 2.6573352868735 1 2.50951195191404 1 2.37647095048844 1 2.25673404935528 1 2.13699714841071 1 2.01726024765133 1 1.9094970370969 1 1.81251014767067 1 1.71552325828468 1 1.61853636891566 1 1.52154947954744 1 1.42456259017172 1 1.32757570078685 1 1.23058881139474 1 1.13360192199646 1 1.03661503258702 1 0.939628143150401 1 0.842641253655787 1 0.721139734606538 1 0.590207433301907 1 0.472368361727951 1 0.354529289732741 1 0.202075588120903 1 0.101037793596893 1 1 11 2 43 3 2 10 2 11 9 2 10 9 8 41 40 8 39 8 40 41 7 39 8 36 7 6 2 9 42 41 42 9 43 44 3 43 2 42 3 45 4 3 44 45 38 39 7 38 7 37 37 7 36 36 6 35 6 34 35 6 5 34 5 13 31 13 30 31 29 30 13 14 29 13 5 31 32 24 15 16 16 17 19 12 19 17 16 19 23 26 14 15 19 20 22 33 5 32 28 14 27 27 14 26 14 28 29 22 23 19 21 20 18 20 21 22 25 15 24 25 26 15 16 23 24 5 33 34 
-24 22 1 0.432122442672145
-31.8489252871177 -0.773601860023678 0.713410577422495 33.0949317119248 -6.52779751805373 1.34157750972151 32.0208866309104 -6.53046184918028 1.31476716144809 32.1988014065246 -6.53304116548185 1.28901898561674 32.4384468709181 -6.5337198707506 1.28227649389768 32.7675330815779 -6.53170020137228 1.30251747341929 28.8816427105544 -1.32519472919337 0.695781195470957 29.0757861391044 -1.30027409409073 0.654261833324734 29.2142048204845 -1.28045247734878 0.631058678601744 29.3706442966486 -1.25655401065864 0.610813509197056 29.5679864962377 -1.22476545280542 0.592818153561267 29.7057272683155 -1.20179571401311 0.584936033622275 29.851942304157 -1.17686893778625 0.580243846620144 30.6873283611547 -1.02511979891527 0.601757898703286 30.2912766998014 -1.09905709004392 0.582893322806325 30.0650539151023 -1.13964784314126 0.57870164365139 30.9709464533427 -0.969355678355452 0.622014505277359 30.8419077314078 -0.995055958067164 0.612164223515756 30.763722446922 -1.01035071566988 0.606675771473637 31.1963885929912 -0.922923737771986 0.641514500923609 31.3302938052877 -0.89429565565052 0.654444075395654 31.4590683246425 -0.865913067350121 0.667814429589193 31.6382895799891 -0.824784036998286 0.687815045540941 31.7454745135308 -0.799162971634557 0.700569072566715 0 2.72080189 0 0 1 6.93889390390723e-017 0.83333333364103 6.93889390390723e-017 0.611111110292245 6.93889390390723e-017 0.30555555607873 6.93889390390723e-017 1 2.52012912 0.932207144623762 2.52929614177358 0.884154231832026 2.53651864031074 0.83003831 2.54514399 0.762203760680357 2.55647917711777 0.715138637112892 2.56459152540789 0.665345 2.57334584 0.38388975 2.6266127 0.516726987855095 2.60052496284965 0.593069310165147 2.58635362355957 0.28937250360486 2.64669271659733 0.332314628159079 2.63738618606352 0.358382579540039 2.63188893569816 0.214593021871 2.6637349991949 0.170326907256444 2.67440283244538 0.12786832 2.68510674 0.0689568761522436 2.70084118802841 0.0338284595533889 2.71078079278354 17 2 18 14 2 6 2 17 20 19 18 2 14 19 2 6 15 14 24 1 2 23 24 2 21 22 2 20 21 2 23 2 22 9 5 8 8 5 4 5 9 10 4 7 8 7 4 3 15 6 16 16 6 13 11 12 5 10 11 5 6 12 13 5 12 6 
-20 18 1 0.258415863180466
-28.8816427105544 -1.32519472919337 0.695781195470957 32.0208866309104 -6.53046184918028 1.31476716144809 31.9768135388171 -6.52772034505006 1.34215900474913 31.9991551634254 -6.52957614241647 1.32361546480209 31.9866436463719 -6.52880411246834 1.33132921295403 28.764323322482 -1.33232061253183 0.776095392149801 28.7659487500336 -1.3326411649084 0.772183618542527 28.767353068699 -1.33280374416004 0.769605424578206 28.7690552946818 -1.332935724945 0.766952029562387 28.7813794642941 -1.33308097616103 0.753080300459873 28.7919109335107 -1.33275311521034 0.744056950636266 28.8043612183713 -1.33211868056499 0.73480034425291 28.8636687934679 -1.32720004158036 0.701494707818767 28.8384549080435 -1.32961759235699 0.713509006183649 28.8210379970152 -1.33102641684749 0.723610368263552 28.8670270103205 -1.32684939888841 0.700123599743314 28.8696043117389 -1.32656942780084 0.699212152495866 28.8725550718222 -1.32623952939231 0.698291248279232 28.8765655301503 -1.3257883217027 0.697057128774382 28.8790979586828 -1.32549492032217 0.696388610115505 0 55.21292144 0 0 1 7.105427357601e-015 0.444444477069858 7.105427357601e-015 0.722222238958996 7.105427357601e-015 1 55.11607678 0.971665935200521 55.1160281406197 0.952251395154274 55.1163214518069 0.931530229241678 55.1168642957768 0.806559597942512 55.1234608016452 0.711972062954077 55.1308248868579 0.60518057 55.1406414 0.13222607 55.19553183 0.327164443737738 55.171093744452 0.466458282415198 55.155096369448 0.106900048396559 55.1988486094521 0.0877929378392056 55.2013601470237 0.06616403 55.20420903 0.0367577911954624 55.2080812098558 0.0183789103102534 55.2105013221174 2 16 17 16 2 13 2 14 13 15 14 2 8 2 4 1 2 20 2 18 19 19 20 2 18 2 17 8 9 2 4 7 8 7 3 6 3 7 5 15 2 12 11 2 10 10 2 9 2 11 12 5 7 4 
-63 61 1 0.19666417253325
-32.4183771497902 -9.50500045162309e-008 1.51294273986092 32.0313735286155 -6.26104575395461e-008 1.53844031722881 31.7886258826001 -3.43067884641679e-008 1.55430121306841 31.5453892345755 -2.84358518024543e-010 1.57010472795097 32.4183773097902 0.208515993143978 1.41444143718236 32.4183772010052 0.108568628672365 1.49014843531453 32.4183772520096 0.16499556886014 1.45665078782161 25.9893209044264 1.24079115393441 1.41444155318237 28.8885019102731 1.01980904931 1.41444152811728 30.6741662167748 0.716115970789611 1.41444149374992 25.9893209344264 3.4350001633999e-008 1.92052189721989 25.9893209277346 0.622738850522369 1.80763468226896 25.9893209176324 0.961750329511054 1.63721696604229 26.1604470425545 1.29120852074267e-009 1.90984293371267 26.0843158085417 1.54258354617712e-008 1.91459250215493 26.0367945483994 2.49376276677681e-008 1.91755824946625 26.1715471689517 0.0279738538942231 1.9089325016117 26.1639709430298 0.0147580028840625 1.90955992124741 26.1618235443497 0.00794164992969804 1.90973844543037 26.2028087589921 0.0548123556327908 1.9063653740577 26.189882469742 0.0460497856865718 1.90741776381651 26.1799182967975 0.0376980116864272 1.90823017260473 26.2326379467513 0.0709475047871804 1.90394341438878 26.2150086249086 0.0619926096048508 1.90537206388674 26.2234921335773 0.0664455195754171 1.90468469504564 26.2947290518789 0.0952205365879649 1.89896106160379 26.2619184493791 0.083561819205891 1.90158050552179 26.2484477512437 0.0781177992130321 1.90266404669542 26.3562983810869 0.114252097615382 1.89403270786429 26.3200376899274 0.103503256588306 1.89693215405746 26.3374739850788 0.108833833019026 1.89553572090951 26.4173906772587 0.130843789250621 1.88911927247835 26.3818007890439 0.12144573198209 1.89198113960143 26.3990505688981 0.126068501792152 1.8905950987804 26.6072800710749 0.166388895327828 1.87445963020711 26.497758156013 0.146642025541961 1.88292900281966 26.452520640201 0.137887662794991 1.88641830850779 26.717724389624 0.184290379536009 1.86592236141589 26.6712115051438 0.176993629410622 1.86951457808231 26.6401456646534 0.171925690138112 1.87191623822949 27.0541544954677 0.227810155714067 1.84031084674953 26.9118186458812 0.211279568586009 1.85104449835924 26.8201524801184 0.199193719955699 1.85804594221987 27.5696395674809 0.269948992087055 1.8028810686892 27.2733749041966 0.248796156392257 1.82410843435988 27.4188170852615 0.260235353486048 1.81357583446897 28.7384764405596 0.28999596408343 1.72661155909216 28.0898407741276 0.29081384122899 1.76743340752449 28.419013365545 0.29396446657624 1.74626305598417 29.2028255741547 0.27183817160682 1.69954302339893 28.9525485344631 0.283498782637376 1.7139142837955 29.080328046327 0.278101314484627 1.70651387526967 29.4547613552504 0.255473155076532 1.68556831110325 29.3327523984168 0.264004103076551 1.6922753174138 29.2651935800711 0.26823134523516 1.69603952443472 29.9096528327914 0.214788315729654 1.66127598524551 29.7570588007104 0.229909783459046 1.6693311118734 29.6488092585267 0.239790153443118 1.67508539259711 30.6808170131304 0.121342621013034 1.6205390678069 30.2606988416976 0.175442989669553 1.6428490049406 30.4743973175524 0.14876224650314 1.63157546501856 31.1086577178288 0.0618835874087544 1.59669559458129 31.3421690339281 0.0286901154478397 1.58285885656689 2.97015674 0.50000087 2.79245987531436 0.50000087 2.6813993359596 0.50000087 2.57033879 0.50000087 2.97015674 1 2.97015674 0.72222270643441 2.97015674 0.861111353081581 0 1 1.32006965960497 1 2.14511320046372 1 0 0.50000033 0 0.722222404293679 0 0.861111201756418 0.0815065892490916 0.50000033 0.0452814375049142 0.50000033 0.0226407187214924 0.50000033 0.086853206421423 0.509679206490503 0.0832574538736015 0.50510887464318 0.0821654365798237 0.502754162152689 0.101624718349277 0.519071755635629 0.0955271292358365 0.51596132326583 0.0909114260315624 0.513009583707017 0.115801209478417 0.524686714691289 0.107423330580455 0.521571366965194 0.111450093768399 0.523128163488185 0.14522680218064 0.533247098871843 0.12972749948954 0.529065522575409 0.123317920800864 0.527151258207763 0.174377338529506 0.539999454303556 0.157222187724502 0.53616019565611 0.1654782073887 0.538048511698592 0.20327792 0.54589052 0.186452479148005 0.542532715033751 0.194609102211554 0.544182555340283 0.292853996512273 0.558823680902877 0.241232225244852 0.551599792654817 0.219875905445374 0.548429369796558 0.34480012 0.56547934 0.322936488223873 0.562751920305746 0.308323491283586 0.560869310772247 0.502430083744267 0.582273314723503 0.435834786812764 0.575732838354294 0.392926448381856 0.571112598159139 0.742486979392384 0.600686126384672 0.604702953868726 0.591014874943199 0.672403137951256 0.596046205859523 1.28325724433633 0.619620986100931 0.983567929817892 0.612688216040706 1.13575756442584 0.617315992944488 1.4973277 0.61875053 1.38199331878948 0.619886540023156 1.44089092591635 0.619513462931 1.61331836212274 0.61576988267499 1.55715843223743 0.617457922745267 1.52605358541502 0.61819490274458 1.82243701492879 0.605418142870447 1.75234072038571 0.609611491146066 1.70256528002334 0.612140891664339 2.17568896064473 0.57204539935976 1.98345128106724 0.592885689398586 2.08128780577852 0.583145334178021 2.37107288856899 0.542690085222416 2.47762542431648 0.521959267729774 16 12 11 15 12 16 14 19 15 18 17 15 19 18 15 17 22 15 15 22 12 20 12 21 21 12 22 12 24 25 12 23 28 12 25 23 12 20 24 12 28 27 26 30 12 31 29 12 30 31 12 37 13 12 33 34 12 13 39 8 12 29 33 26 12 27 34 32 12 37 36 13 32 37 12 35 40 13 39 38 8 40 39 13 36 35 13 8 38 43 41 8 42 46 8 45 45 8 41 46 44 9 56 60 10 46 9 8 63 4 5 2 6 3 7 4 3 10 61 59 10 62 63 10 59 62 61 10 60 6 2 1 48 49 9 50 55 9 47 9 49 9 47 51 51 52 9 9 52 50 55 54 9 48 9 44 58 9 53 58 57 10 58 10 9 63 5 10 4 7 5 57 56 10 6 7 3 53 9 54 42 8 43 
-32 30 1 0.345311223608769
-33.0949317119248 6.52779751805373 1.34157750972151 31.8489294108679 0.773620907424083 0.713412657138219 32.0213115109306 6.52591981196454 1.3601615736042 32.4987052702977 6.52272808810944 1.39214154656852 32.7970597574067 6.52497416733426 1.36974426905863 28.8816130593029 1.31007156310006 0.825958547744424 28.9242454674154 1.3040453060426 0.829974356619852 28.9053208004599 1.30672523639533 0.828191498524062 28.8934741437243 1.30839887530713 0.827075634695099 29.0193724633663 1.29042794006179 0.839087283506927 29.0784338380473 1.28186157139388 0.84478657121622 29.1372732207767 1.27324971270094 0.850442714275949 29.4200150342725 1.23091670093218 0.875938129190515 29.5981387665588 1.20365059634477 0.889055958426125 29.7795341835413 1.17563261596748 0.898584238481708 30.2321643814253 1.10541543653031 0.898725539057365 30.02922846873 1.13689975109556 0.903538082386562 29.9069072424127 1.15586846893199 0.90250950825837 30.292182671942 1.09603537854599 0.895836056217416 30.2650899957808 1.10027628860674 0.897220254404653 30.2485055338066 1.10286609724819 0.898005754909848 30.6273799791908 1.04199814688872 0.868682706724771 30.8117997461093 1.01015065506177 0.846758910297657 30.9858099377714 0.977906652997218 0.823001564625002 31.0184934603145 0.971560636306024 0.81836747505304 31.0388308672447 0.967563375295205 0.81544452499999 31.0591047654668 0.963540691337818 0.812517560127936 31.2862471602083 0.915659621508783 0.779518141965687 31.4263928926327 0.88339812558925 0.759926421383552 31.566908625913 0.848924345841429 0.741817258750537 31.7193577050282 0.809165463987107 0.724738984746363 31.6441503715087 0.829068641206165 0.732676223598864 0 1 2.72494532 1 0 0 0 0.444444437831131 0 0.722222222387279 2.52490070971683 0 2.52655024482567 0.0146345759481185 2.52581537000635 0.00813957210136278 2.52535750087977 0.00407275103451864 2.53031214999668 0.0472808441318947 2.53270463243108 0.0675413173755627 2.53513158141862 0.0877166749488884 2.54739637303198 0.18447852860782 2.55562268036927 0.245205988322578 2.56437509 0.30680216 2.58784952 0.4595214 2.57701527564615 0.391185851372213 2.57073658592053 0.349898119138573 2.59117950984538 0.479697286203414 2.58966796545961 0.470591461471659 2.58874954469512 0.465016066716156 2.6112974956462 0.592232596862048 2.62387175776644 0.65424914070945 2.63704064 0.7127592 2.63967302990539 0.723734617040796 2.64133795741275 0.730562631087989 2.6430183054988 0.737367675843688 2.66330154170101 0.813522039586772 2.67718331155926 0.860384355940065 2.69212772 0.90713174 2.70943412763741 0.95747740433802 2.70077156995582 0.932715808833024 3 6 9 9 8 3 3 8 7 7 10 3 4 10 11 3 10 4 4 11 12 5 4 18 13 4 12 5 22 1 14 4 13 14 15 4 18 17 5 15 18 4 16 5 17 16 21 5 20 19 5 21 20 5 22 23 1 24 25 1 23 24 1 19 22 5 26 27 1 28 29 1 27 28 1 30 32 1 31 2 1 32 31 1 29 30 1 25 26 1 
-33 31 1 0.22002614328829
-28.7643514962333 1.33236617403399 0.776100355658662 28.7647189177685 1.33083926062504 0.786642361583877 28.7667858093201 1.32954883005284 0.793611284634292 28.7718042186219 1.32778267744969 0.80108843131585 28.7732356324845 1.32733174014952 0.802827533414292 28.7758361996172 1.32670846334943 0.804734949007174 28.7799729704748 1.32585040949468 0.806905170779541 28.7939464023144 1.32319585274502 0.812605118535826 28.7996852367409 1.32220465499208 0.814334145380745 28.8097933533917 1.3206519092276 0.816139042279523 28.8192381238403 1.31915032565627 0.818128210046003 28.8132975816628 1.32009277097036 0.816891630272316 28.8103912202937 1.32055450698852 0.816279673061782 28.8250979597599 1.31822776397475 0.819316570979007 28.8294260915591 1.31761011142509 0.81980088716013 28.836792424772 1.31659601257406 0.820380770538668 28.8412037998586 1.31601400415887 0.820572287179439 28.8451346362802 1.31543704139992 0.821102110061665 28.8499934198436 1.31471501874615 0.821812036463894 28.8623359158873 1.31301195536472 0.822802590013024 28.8586785090749 1.31352018068647 0.822490125557799 28.8544807632298 1.3140984728401 0.822158791757023 28.8683861667669 1.3121746813851 0.823287469606039 28.8724539903008 1.31154876837384 0.823977440281247 28.8816130593029 1.31007156310006 0.825958547744424 32.0213115109306 6.52591981196454 1.3601615736042 31.9768135388171 6.52772034505006 1.34215900474913 31.9777141338021 6.52713956390073 1.34796364316376 31.9801838030808 6.5267974488231 1.3513832533026 31.9853169721851 6.52653976915668 1.35395944627219 31.9935667292365 6.52630888437399 1.35626836623374 32.0062896455014 6.52612466153763 1.35811170086215 32.0138321046462 6.52604139231613 1.35894519719741 1 55.31688457 0.929479298708875 55.3214615366851 0.881372758311661 55.3264493430731 0.81865078 55.33426732 0.802582921532167 55.3364092423319 0.779283329310054 55.3395189212652 0.74578591 55.34399089 0.63759465085887 55.3582676795818 0.594224805776652 55.3637509029348 0.51663621 55.37327277 0.46774262 55.37928407 0.494606067829927 55.375970697009 0.515917250025268 55.3733603516233 0.408012517503883 55.3865658070137 0.376957233266326 55.3902177619842 0.32499996 55.39620377 0.293629416887114 55.3998518907221 0.264831999844551 55.4032399646978 0.22896476 55.40748034 0.1565789 55.41588432 0.16792425592056 55.414581427696 0.191219692948761 55.4118881134894 0.0979674597361697 55.4227301992158 0.0680852803126617 55.4263892737324 0 55.4348855 2.77555756156289e-017 0 1 1.77635683940025e-015 0.890649992448846 1.77635683940025e-015 0.810933866278635 1.77635683940025e-015 0.701583945198312 1.77635683940025e-015 0.537558801987252 1.77635683940025e-015 0.291521416014062 1.77635683940025e-015 0.145760710083872 1.77635683940025e-015 16 17 5 26 4 17 33 1 26 26 17 18 11 14 15 15 16 11 12 11 16 33 32 1 23 26 20 24 25 26 23 24 26 18 19 22 21 20 22 22 20 18 26 18 20 26 2 3 31 30 1 1 30 29 3 4 26 28 27 1 26 1 2 1 29 28 7 9 10 7 10 13 6 13 12 12 16 6 9 7 8 13 6 7 5 6 16 4 5 17 32 31 1 
-35 33 1 0.428801359740674
-31.5453892345755 -2.84358518024543e-010 1.57010472795097 33.1092560926052 5.44269516439137e-020 7.84503997861939 31.3042272068709 -0.045332982233201 7.84504008261939 32.3086822088097 -0.0914947505508274 7.84504136143887 31.8051155939439 -0.0970237300769621 7.84503946488651 26.4173907547587 -0.130843791807996 1.88911937635335 26.4796660986241 -0.143183262911529 1.88432580371304 26.5346538840633 -0.153521508196896 1.88007883614836 26.6072787699614 -0.166388614178154 1.87446002380946 26.6586276697487 -0.174959781830892 1.87048742923244 26.6888152939273 -0.17979563280285 1.86815519603804 26.7177243957574 -0.184290307132866 1.86592274115955 26.9078415571464 -0.210778000466012 1.85134784245198 27.0131132467513 -0.223382967335193 1.84337809778228 27.1183300885413 -0.234506035890649 1.83552196484067 27.9580998698248 -0.287213545516178 1.7762104150262 27.567626757566 -0.270034757765977 1.8029936064384 27.3358664899854 -0.253946620484933 1.81956045869635 29.1292698538506 -0.275729591350411 1.7037141474904 28.6334589290037 -0.292071289867517 1.7329750252157 28.2989317935834 -0.293671638691864 1.75387657490008 29.1613437747115 -0.274081063433766 1.70188983029626 29.1818358720314 -0.272988601967243 1.70072876380782 29.2028253447147 -0.271838291522898 1.6995424104655 29.3197663146451 -0.264842639626139 1.6929978065375 29.4093488458609 -0.258805174375594 1.68805023500084 29.5198370703048 -0.250491600836839 1.68203176886297 29.7962755978589 -0.226147853981709 1.66725163524541 29.9202605957203 -0.213653509011079 1.66072333797826 30.0394633975859 -0.200907417501252 1.65446187752303 30.9280263125 -0.0873089211861623 1.60695769477569 30.550479791337 -0.138859069750576 1.62752689019242 30.2987102629447 -0.170830825639444 1.64085165237989 31.2974821280361 -0.0350370328811884 1.58556635694182 31.1204332596283 -0.0602117432064407 1.59601490368986 1 0.06075625 1 2.01729017 0 2.01729017 0.555555553307846 2.01729017 0.277777777027323 2.01729017 6.93889390390723e-018 0.0712102200000001 0.0124251627502104 0.0709402117110324 0.0233702261067932 0.070698659148771 0.03779578 0.07037827 0.0479795544267559 0.0701527836046693 0.0539616716906871 0.0700215440564152 0.0596871747500459 0.0698968908722486 0.0972390059617129 0.0691103080057912 0.117942363339759 0.0687081797021 0.13858066 0.0683359 0.30221679 0.06638239 0.226368184455449 0.0670882531338894 0.181165856777876 0.067666753855789 0.5289847 0.06590575 0.433081830475051 0.0658586126025316 0.368325039801286 0.0660184987155747 0.535192672184978 0.0659173356833845 0.539159298234031 0.0659251977095103 0.543222487858905 0.0659335805384061 0.565865721764792 0.0659849282280304 0.583218299077933 0.0660277700678352 0.6046294 0.06608293 0.658250585771128 0.0662019648164862 0.682333272973572 0.0662288979675802 0.70550968 0.06622642 0.87898407 0.06464678 0.805109854648362 0.0657295067884835 0.75598493234938 0.0660863351751172 0.951382494838612 0.0627020391751489 0.916677350626046 0.0637587032093211 14 15 5 3 13 14 18 5 15 16 21 5 5 17 16 5 18 17 5 21 20 7 8 3 3 6 7 8 9 3 13 3 12 11 3 10 11 12 3 10 3 9 14 5 3 20 4 5 4 19 22 4 22 23 4 23 24 34 1 2 31 35 2 32 31 2 34 2 35 25 26 4 4 27 28 27 4 26 25 4 24 33 4 30 4 33 2 4 29 30 33 32 2 29 4 28 19 4 20 
-24 22 1 0.258165537963384
-26.1604470425545 1.29120852074267e-009 1.90984293371267 26.16297935419 -0.0119716913282133 1.90964298445692 26.1658087682057 -0.0189680626996516 1.90940581263074 26.1715862117354 -0.0280173105944252 1.90892945299891 26.1863118813827 -0.0433001563473664 1.90770661217708 26.1954881750896 -0.0500150577228376 1.90696336908379 26.2028398511069 -0.0548219693764112 1.90636315498107 26.225945537031 -0.0676881079965739 1.90448562176552 26.2150120552164 -0.0619762244923438 1.90537246653922 26.2087177735819 -0.0584142365146393 1.90588381244474 26.2531402001709 -0.0800726013455102 1.90228448212112 26.2689057860584 -0.0862035780193151 1.90101845529926 26.2933957876783 -0.0947700580217579 1.89906779612862 26.3568970264124 -0.114423615185575 1.89398475508142 26.3264655611822 -0.105493874271201 1.89641771625628 26.309288792086 -0.100079291294985 1.89779321830789 26.4173907547587 -0.130843791807996 1.88911937635335 26.3888784366182 -0.123358724927798 1.89141279465136 26.3724029063813 -0.118865967617964 1.89273568280923 31.3042272068709 -0.045332982233201 7.84504008261939 31.209191012357 0 7.84504046261941 31.2573212284383 -0.0325549187331713 7.8450404699125 31.214218154715 -0.0108582292801317 7.84504046260651 31.2106814480184 -0.00591115109558985 7.84504046261941 1 36.81695782 0.960718064565496 36.8167447995912 0.936372533292469 36.8167502044199 0.90074562 36.81686472 0.83076599375106 36.8171030290632 0.793182901214103 36.8171748043312 0.76421366 36.81717981 0.67713246 36.81712964 0.717767643374287 36.8171078848962 0.741548849706821 36.8171440270379 0.577952780427867 36.818379372264 0.521384233715112 36.8202736852961 0.43419735 36.82418923 0.21070762 36.8342907 0.317286097727714 36.8296194244656 0.37782891158817 36.8268571226119 0 36.84377716 0.099167988399795 36.8391340294108 0.156538482263433 36.8366170897275 0 3.32701216511258e-015 1 0 0.444444443041851 0 0.88888889594596 0 0.944444432485049 0 13 20 12 11 20 22 20 13 16 11 12 20 8 11 22 22 23 8 18 17 20 18 20 19 20 15 14 14 19 20 15 20 16 23 3 4 3 23 24 23 4 5 24 21 2 2 21 1 24 2 3 9 23 10 7 10 6 5 6 10 10 23 5 23 9 8 
-18 16 1 0.583442097712011
-25.9893209344264 3.4350001633999e-008 1.92052189721989 25.9893209277346 0.622738850522369 1.80763468226896 25.9893209176324 0.961750329511054 1.63721696604229 25.9893209044264 1.24079115393441 1.41444155318237 20.1549001573063 1.36866520500811 1.41444156718237 22.7577054944309 1.328667200288 1.41444156267208 24.3747918622912 1.29342804502507 1.41444155867448 20.1549001573063 -1.3686672230082 1.41444126018235 20.1549001573063 -0.991577350396557 1.70425624606726 20.1549001573063 -0.523003820875509 1.90359871190365 20.1549001573063 -1.07200182797921e-006 1.97500009347699 20.1549001573063 0.523001692921592 1.9035988292163 20.1549001573063 0.991575267251248 1.70425646848375 25.9893209044264 -1.2407928679345 1.41444127418235 23.406045317914 -1.31522402231752 1.41444127001226 21.7814857070444 -1.34778248565821 1.41444126571733 25.9893209277346 -0.622739697573988 1.80763490020278 25.9893209176324 -0.961751686580763 1.63721701225842 1.88324107 0.50000033 1.88324107 0.722222404293678 1.88324107 0.861111201756417 1.88324107 1 1.11022302462516e-016 1 0.836996029442632 1 1.36011854903985 1 0 0 0 0.166666666137581 0 0.33333333302908 0 0.500000000017073 0 0.666666667026959 0 0.833333333931665 1.88324107 0 1.04624503722002 0 0.523122517929763 0 1.88324107 0.277777959779155 1.88324107 0.138888980111319 9 8 16 10 16 11 16 10 9 12 11 6 13 6 5 6 13 12 11 16 6 16 15 6 15 14 18 18 17 15 15 17 1 7 2 3 2 7 1 7 3 4 7 15 1 15 7 6 
-33 51 1 0.0424735882339974
-32.949284715007 -9.00000027138652e-011 1.41444141318236 32.949284715007 -9.00000027138652e-011 1.41444141318236 32.4183773097902 0.208515993143978 1.41444143718236 32.6556405042146 0.118916540025242 1.41444142684491 32.8028878998831 0.0604304092497776 1.4144414202837 32.4183771497902 -9.50500045162309e-008 1.51294273986092 32.4183771840198 0.0829587675855682 1.49987962592338 32.4183772410521 0.154689444059622 1.46422661035881 32.4183772197902 -0.208516963644024 1.41444139018236 32.4183771503997 -0.0829592820545684 1.49987978489793 32.4183771763235 -0.15469024840092 1.46422673003255 32.7146390206246 -0.0957544927099734 1.41444140260348 32.5669008295882 -0.153086954362354 1.41444139622574 32.5679191103561 -0.115231831608535 1.4546345577777 32.656604658151 -0.089794319640221 1.44611136149147 32.7154102617014 -0.0722958096260339 1.43977737178276 32.8032796167432 -0.0454708200290793 1.42990031483258 32.5686483372017 -0.0626898197218934 1.48341833765921 32.6572950492212 -0.0490003822554707 1.46879137288378 32.7159625708137 -0.0394472010196275 1.45792138090482 32.803560079247 -0.0247287071723173 1.44097099942293 32.5689155188163 -1.68360937886939e-007 1.49396449646919 32.6575479970692 -1.74072356645945e-007 1.47710116406332 32.7161649248671 -1.62617254369245e-007 1.46456921386244 32.803662830844 -1.23163014126692e-007 1.4450272143848 32.568648324002 0.0626892095611296 1.48341829366161 32.6572950228154 0.0489998156003679 1.46879135161249 32.71596254137 0.0394466999697922 1.4579213639354 32.8035600533728 0.0247283531599484 1.4409709826198 32.5679190733953 0.115230965696907 1.4546345384192 32.6566045970337 0.0897935468025445 1.44611135860697 32.7154101973583 0.0722951426519566 1.43977736959282 32.8032795639041 0.0454703652055359 1.42990030768116 1.97290517 0 1.97290517 1 0 1 0.876846742222222 1 1.42487595611111 1 0 0.500000869991061 0 0.666667246674566 0 0.83333362335807 0 0 0 0.333333912887267 0 0.166666957141603 1.09605842777778 0 0.548029213888889 0 0.548029213888889 0.166666957141603 0.876846742222222 0.166666957141603 1.09605842777778 0.166666957141603 1.42487595611111 0.166666957141603 0.548029213888889 0.333333912887267 0.876846742222222 0.333333912887267 1.09605842777778 0.333333912887267 1.42487595611111 0.333333912887267 0.548029213888889 0.500000869991061 0.876846742222222 0.500000869991061 1.09605842777778 0.500000869991061 1.42487595611111 0.500000869991061 0.548029213888889 0.666667246674566 0.876846742222222 0.666667246674566 1.09605842777778 0.666667246674566 1.42487595611111 0.666667246674566 0.548029213888889 0.83333362335807 0.876846742222222 0.83333362335807 1.09605842777778 0.83333362335807 1.42487595611111 0.83333362335807 9 13 11 14 10 11 11 13 14 14 15 19 15 14 13 18 19 23 19 18 14 15 16 19 14 18 10 13 12 15 10 18 22 7 6 22 3 8 30 7 26 8 22 23 26 23 22 18 26 30 8 27 30 26 26 23 27 22 26 7 6 10 22 3 30 4 19 20 23 20 19 16 16 12 17 24 27 23 24 20 21 16 17 20 24 23 20 17 1 21 1 17 12 21 25 24 25 21 1 1 2 25 17 21 20 24 25 29 27 28 31 28 27 24 31 4 30 32 4 31 31 28 32 27 31 30 32 29 33 29 32 28 33 2 5 2 33 29 33 5 32 29 25 2 32 5 4 28 24 29 16 15 12 
-24 22 1 0.282461185539926
-26.3562983810869 0.114252097615382 1.89403270786429 26.3818007890439 0.12144573198209 1.89198113960143 26.3990505688981 0.126068501792152 1.8905950987804 26.4173906772587 0.130843789250621 1.88911927247835 26.2947290518789 0.0952205365879649 1.89896106160379 26.3200376899274 0.103503256588306 1.89693215405746 26.3374739850788 0.108833833019026 1.89553572090951 26.2619184493791 0.083561819205891 1.90158050552179 26.2484477512437 0.0781177992130321 1.90266404669542 26.2326379467513 0.0709475047871804 1.90394341438878 26.2028087589921 0.0548123556327908 1.9063653740577 26.2150086249086 0.0619926096048508 1.90537206388674 26.2234921335773 0.0664455195754171 1.90468469504564 26.189882469742 0.0460497856865718 1.90741776381651 26.1799182967975 0.0376980116864272 1.90823017260473 26.1715471689517 0.0279738538942231 1.9089325016117 26.1639709430298 0.0147580028840625 1.90955992124741 26.1618235443497 0.00794164992969804 1.90973844543037 26.1604470425545 1.29120852074267e-009 1.90984293371267 31.209191012357 0 7.84504046261941 31.3042272068709 0.045332982233201 7.84504008261939 31.2573212284383 0.0325549187331713 7.8450404699125 31.214218154715 0.0108582292801317 7.84504046260651 31.2106814480184 0.00591115109558985 7.84504046261941 0.21279921 1.3577497 0.123804803977502 1.35390856755522 0.0637759908304388 1.35120971780753 1.38777878078145e-017 1.34817287 0.42945929 1.36753154 0.339897896744433 1.36334418109214 0.27861683057981 1.36060808124842 0.54640222965543 1.3726200758382 0.594896512964072 1.37397626155616 0.65252552 1.37471381 0.76431717 1.37477091 0.717742763181472 1.37485108901777 0.686193088783939 1.37484764586417 0.815881614311392 1.37481446133752 0.85868632515484 1.37492848979906 0.90093908 1.37508615 0.951275073697386 1.37521518162329 0.974028650815289 1.37516517607642 1 1.37499288 1 38.1919507 0 38.1919507 0.444444443041867 38.1919507 0.888888895945938 38.1919507 0.944444432485034 38.1919507 3 2 21 4 3 21 21 1 7 2 1 21 6 21 7 22 21 9 5 21 6 8 21 5 9 10 22 8 9 21 22 10 13 23 12 11 23 13 12 23 11 14 15 23 14 24 23 17 16 23 15 17 23 16 17 18 20 20 18 19 17 20 24 13 23 22 
-35 33 1 0.43937716626736
-26.4173906772587 0.130843789250621 1.88911927247835 31.3042272068709 0.045332982233201 7.84504008261939 33.1092560926052 5.44269516439137e-020 7.84503997861939 32.3086822088097 0.0914947505508274 7.84504136143887 31.8051155939439 0.0970237300769621 7.84503946488651 31.5453892345755 -2.84358518024543e-010 1.57010472795097 30.6808170131304 0.121342621013034 1.6205390678069 31.1086577178288 0.0618835874087544 1.59669559458129 31.3421690339281 0.0286901154478397 1.58285885656689 29.9096528327914 0.214788315729654 1.66127598524551 30.2606988416976 0.175442989669553 1.6428490049406 30.4743973175524 0.14876224650314 1.63157546501856 29.7570588007104 0.229909783459046 1.6693311118734 29.6488092585267 0.239790153443118 1.67508539259711 29.4547613552504 0.255473155076532 1.68556831110325 29.3327523984168 0.264004103076551 1.6922753174138 29.2651935800711 0.26823134523516 1.69603952443472 29.2028255741547 0.27183817160682 1.69954302339893 28.7384764405596 0.28999596408343 1.72661155909216 28.9525485344631 0.283498782637376 1.7139142837955 29.080328046327 0.278101314484627 1.70651387526967 27.5696395674809 0.269948992087055 1.8028810686892 28.0898407741276 0.29081384122899 1.76743340752449 28.419013365545 0.29396446657624 1.74626305598417 27.0541544954677 0.227810155714067 1.84031084674953 27.2733749041966 0.248796156392257 1.82410843435988 27.4188170852615 0.260235353486048 1.81357583446897 26.9118186458812 0.211279568586009 1.85104449835924 26.8201524801184 0.199193719955699 1.85804594221987 26.717724389624 0.184290379536009 1.86592236141589 26.6712115051438 0.176993629410622 1.86951457808231 26.6401456646534 0.171925690138112 1.87191623822949 26.6072800710749 0.166388895327828 1.87445963020711 26.497758156013 0.146642025541961 1.88292900281966 26.452520640201 0.137887662794991 1.88641830850779 0.0712101900000001 0 2.01729017 0 2.01729017 1 2.01729017 0.555555553307846 2.01729017 0.277777777027323 0.06075625 1 0.06544933 0.8306101 0.0638197613882175 0.914368388473605 0.0623943039364484 0.960143533097259 0.06622745 0.68027135 0.0661210279516263 0.748586986986762 0.0658717600010783 0.790272041259764 0.0661903728186969 0.650637477320625 0.0661447059444535 0.629635049047138 0.06604976 0.59201791 0.0659904426791326 0.568380985207597 0.065960085836595 0.555297628433983 0.0659340686464917 0.543222394527479 0.065844 0.45339225 0.0658577212342962 0.494791824517023 0.0658900107303555 0.519512846533598 0.06708392 0.22674332 0.0662153769472633 0.327790201100006 0.0659393436457752 0.391562805597849 0.06855952 0.12599594 0.0678472655831486 0.168949397223577 0.0674462043362039 0.197358939356225 0.0690944012274148 0.0980224390735439 0.0694645704689796 0.079943050921233 0.0698967092057798 0.0596872562155088 0.0700978462752093 0.0504736787144597 0.0702335374529601 0.0443154686115767 0.07037813 0.0377961 0.0708607736659958 0.0160288671615802 0.0710586380566215 0.00701323919245223 4 21 20 21 4 18 19 4 20 18 4 17 4 16 17 16 4 15 24 4 19 8 7 3 6 9 3 8 3 9 4 14 15 12 11 4 13 14 4 7 12 3 23 5 24 2 30 31 2 29 30 31 32 2 1 2 35 34 35 2 33 34 2 2 32 33 29 2 28 22 27 5 10 13 4 23 22 5 5 27 26 28 2 25 24 5 4 12 4 3 2 5 25 26 25 5 4 11 10 
-17 15 1 0.112210986329735
-31.9768135388171 -6.52772034505006 1.34215900474913 31.9777141338021 -6.52713956390073 1.34796364316376 31.9801838030808 -6.5267974488231 1.3513832533026 31.9853169721851 -6.52653976915668 1.35395944627219 31.9935667292365 -6.52630888437399 1.35626836623374 32.0062896473528 -6.52612466140147 1.35811170070655 32.0138321032294 -6.52604139200468 1.35894519714692 32.0213115109306 -6.52591981196454 1.3601615736042 32.0208866309104 -6.53046184918028 1.31476716144809 31.9991551634254 -6.52957614241647 1.32361546480209 31.9866436463719 -6.52880411246834 1.33132921295403 33.0949317119248 -6.52779751805373 1.34157750972151 32.1988014065246 -6.53304116548185 1.28901898561674 32.4384468709181 -6.5337198707506 1.28227649389768 32.7675330815779 -6.53170020137228 1.30251747341929 32.6183926363032 -6.52324697041489 1.38697601508401 32.3192581063883 -6.52317677906596 1.38762674676116 9.08430689 0.65378958 9.07954933467699 0.606001069200609 9.06099287611262 0.576997433393715 9.02042579282433 0.553711709827798 8.95442112129845 0.531241049342995 8.85187036120109 0.51060958285297 8.79096146568251 0.500495687363648 8.73073355 0.48728331 8.71417242 0.85810406 8.89462397787365 0.795392599295824 8.99967068129442 0.737900063516617 0.000244080000000035 0.16805904 7.25740712767084 0.990286830738263 5.30750886177164 0.940213781930807 2.64287298665143 0.630592783133551 3.89175366063805 0.00643185648378282 6.3222668120758 0.132338366232751 15 12 16 16 17 14 8 13 17 15 16 14 13 14 17 9 13 8 8 7 9 10 7 6 6 5 10 4 11 5 10 5 11 2 1 4 1 11 4 2 4 3 7 10 9 
-14 12 1 0.152501055974048
-31.3042272068709 -0.045332982233201 7.84504008261939 31.2573212284383 -0.0325549187331713 7.8450404699125 31.214218154715 -0.0108582292801317 7.84504046260651 31.2106814480184 -0.00591115109558985 7.84504046261941 31.209191012357 0 7.84504046261941 33.1092560926052 5.44269516439137e-020 7.84503997861939 32.3086822088097 -0.0914947505508274 7.84504136143887 31.8051155939439 -0.0970237300769621 7.84503946488651 31.3042272068709 0.045332982233201 7.84504008261939 32.3086822088097 0.0914947505508274 7.84504136143887 31.8051155939439 0.0970237300769621 7.84503946488651 31.2573212284383 0.0325549187331713 7.8450404699125 31.214218154715 0.0108582292801317 7.84504046260651 31.2106814480184 0.00591115109558985 7.84504046261941 7.60893367 0.43705553 7.80167028258057 0.366543983223373 7.97522430722938 0.259875694414461 7.98833301992329 0.237802844741737 7.99248988 0.21240573 0.000126649999999673 0.89142684 3.40032986333393 0.990190306102346 5.52048459281004 0.833486906479798 7.57653262 0.0556815799999999 3.33493499290033 0.220465268532575 5.45113838929357 0.017253017895388 7.77840211399344 0.0926678878724558 7.96746359357261 0.168528816190735 7.98410811213979 0.188073869795285 7 10 11 8 11 9 6 10 7 8 7 11 1 8 9 9 2 1 3 12 13 4 13 14 2 12 3 4 3 13 5 4 14 12 2 9 
-226 378 1 0.410146768523421
-11.2476412635365 -1.7665596569946 -1.16638885628345 11.2414007844316 -1.76114051749876 -1.17553440686911 11.2376303451477 -1.75760057044684 -1.18145221620923 11.2339737223351 -1.75393664780752 -1.18752892052959 11.2776743680257 -1.78752160335813 -1.12995401782801 11.2983350089489 -1.79845944032001 -1.11022545541699 11.3208385076288 -1.80819404686211 -1.09222199876256 11.3456486455678 -1.81702108945771 -1.07551241680733 11.3624960418518 -1.82216862552671 -1.06559130850132 11.3805975561415 -1.82703782145984 -1.05608161268227 11.4383603506965 -1.83998407337006 -1.03017742118867 11.4135027931128 -1.8349587162813 -1.04034317746689 11.3978348159253 -1.83132768664625 -1.04760549729773 11.4896394008981 -1.84878792653291 -1.0120133489902 11.4603506451082 -1.84396087891282 -1.02202301790877 11.4490203116662 -1.84200116627584 -1.02605776551448 11.5049986892907 -1.8511955651312 -1.00696442186449 11.5150255720737 -1.85267801414463 -1.00383769946656 11.5253852575828 -1.85416377756769 -1.00069150837767 11.5686247880199 -1.85961621804369 -0.989014949325949 11.5459554346438 -1.85689489074905 -0.99485901052015 11.5354351965695 -1.85554034269393 -0.997755378621079 11.5734872711878 -1.86021587605612 -0.987719100086025 11.5766044926456 -1.86058016602381 -0.98693061940209 11.579795765572 -1.86090292936362 -0.98623107103987 11.5930647999869 -1.8624660378322 -0.982834541639796 11.601488815112 -1.86340783680259 -0.980779966337796 11.6098700549364 -1.86430064821477 -0.978826260728255 11.6689018442431 -1.87027896633348 -0.965602735826667 11.64397713815 -1.86795639507528 -0.970763765144991 11.630039757643 -1.86650994850731 -0.973966385385513 11.6722502070959 -1.870576961947 -0.964936636947661 11.6752197922217 -1.87084070912355 -0.964346635407782 11.6780822159487 -1.8710899238748 -0.963788802911312 11.7107019725161 -1.87402943667788 -0.957177203399168 11.6980802541729 -1.87285829829361 -0.959824525865733 11.690195586167 -1.87215028398156 -0.961414750965294 11.7230037068433 -1.87519299652087 -0.954539726978555 11.7165880947784 -1.87458745091292 -0.955914467644462 11.713429661304 -1.87428775450117 -0.956594460968703 11.7544106883045 -1.87810382833014 -0.947904141375154 11.7430061454837 -1.87707990578844 -0.950238559987098 11.7341178088253 -1.87625236211661 -0.952126134945495 13.0936999045215 -1.92471414973264 -0.831009732620803 12.3497089052311 -1.90673217518895 -0.878732655559849 12.7217176809472 -1.91796027199715 -0.849418938312193 14.0214149684814 -1.92384089900254 -0.832597729805518 13.5060312273872 -1.92741289910116 -0.823286283837871 13.7637275909558 -1.92659438288622 -0.825317042369079 15.4046111730498 -1.88092150688822 -0.938194333874812 14.8152663860065 -1.90682148376207 -0.87637661922074 14.4245629156867 -1.91747338208482 -0.8492654236681 16.7625925747914 -1.75437077638359 -1.18146657566026 16.0252284332646 -1.83732511149156 -1.03131861114356 16.4001980377112 -1.80023583329231 -1.10214761062571 17.2459916253906 -1.67360683680456 -1.30407191862759 16.9812751557499 -1.72099868072589 -1.23446829000819 17.1148730172093 -1.69810587898019 -1.26885931213382 20.1549001573063 -1.6722750014288 -1.30306872289244 20.1549001573063 -2.03433776185515 -0.381428035158878 20.1549001573063 -1.95022034564482 0.523458796790025 20.1549001573063 -1.70658877755618 1.02489508660368 20.1549001573063 -1.3686672230082 1.41444126018235 7.21279194058922 -1.34821673503686 1.41444126218235 7.21279194058922 -1.75566531738962 -1.18857460045426 7.21279194058922 -1.92602608816082 -0.832403553482803 7.21279194058922 -2.02310091040593 -0.461687436078569 7.21279194058922 -2.04976245518296 -0.0921278061564518 7.21279194058922 -2.01211427083126 0.262890442129314 7.21279194058922 -1.91847084190189 0.592801652915467 7.21279194058922 -1.7783657556307 0.889996626104645 7.21279194058922 -1.57942544328536 1.17705709132012 17.2456992084818 -1.72088168732072 -1.23439046572118 17.245474166801 -1.75420284977649 -1.18127815703735 17.2451345455274 -1.79989382015062 -1.10197660435692 17.2450155207902 -1.8146869475819 -1.07442707312191 17.2446908382941 -1.85205345220569 -0.999916414439188 17.2444178640205 -1.88029610491588 -0.937997464098639 17.2422184302559 -2.02211119435132 -0.463265706955977 17.2418150645178 -2.03447369034649 -0.380866446726228 17.2403570385691 -2.05129064355117 -0.0950732847893486 17.2383979907236 -2.01648066351915 0.259215256645701 17.236790094195 -1.94826227627782 0.524558927831619 17.2363767776504 -1.92579837765545 0.589062817203975 17.2343252035086 -1.78859874045289 0.88683086497216 17.2332683958969 -1.70319057549525 1.02566653907126 17.2320350292738 -1.59265486897854 1.17519218321051 16.4000573859785 -1.81502126437267 -1.07458252556342 16.3996737141812 -1.85236519429687 -1.00003083860249 16.3993511506929 -1.88058721522263 -0.938078972784014 16.3967523480476 -2.02219462603452 -0.463132661180299 16.3962757758483 -2.03451314678262 -0.380703442391287 16.39455322696 -2.05116174417144 -0.0948248401022932 16.3922389869329 -2.01611214098447 0.259525441336532 16.3903397610127 -1.94769430421005 0.52487804169259 16.3898515855789 -1.92517954287153 0.58937857418971 16.3874286081241 -1.78773397461164 0.887098395965617 16.386180595353 -1.70220531271502 1.02589021189281 16.384724175764 -1.59153607826066 1.17534989528336 16.0250582682841 -1.85250339660919 -1.00008156539244 16.0247179929403 -1.88071626951939 -0.938115106974434 16.0219765778541 -2.0222316092876 -0.463073684954289 16.0214738699655 -2.03453063652016 -0.380631187437319 16.0196568981832 -2.05110461036687 -0.0947147187366981 16.0172159082302 -2.0159488093483 0.259662917255133 16.0152127541685 -1.94744259217933 0.525019465573711 16.0146978784787 -1.92490529441052 0.589518507964672 16.0121424595191 -1.78735076998464 0.887216947305278 16.010826282026 -1.701768731435 1.02598932393256 16.0092903599214 -1.5910403547664 1.17541977574702 15.4016831011297 -2.02229282033783 -0.462976072967448 15.4011456590564 -2.0345595833459 -0.380511599394522 15.3992032218804 -2.05101005374565 -0.0945324676914733 15.3965938661655 -2.0156785132877 0.259890424923821 15.3944527079083 -1.94702605908222 0.525253493866802 15.393902384262 -1.92445147442628 0.589750067169292 15.3911711736825 -1.78671669622018 0.887413109641237 15.389764546868 -1.70104636341438 1.0261533149084 15.3881231540672 -1.59022016441074 1.17553539524755 14.8125892558695 -2.02235095242327 -0.462883370564781 14.8120286642897 -2.03458707357953 -0.380398028185638 14.8100026356011 -2.05092025991206 -0.0943593967495121 14.8072811754438 -2.01542185306921 0.260106455334555 14.805048188212 -1.94663056557076 0.525475701154894 14.8044742859226 -1.92402058481739 0.589969926323551 14.8016261979243 -1.7861147117648 0.887599344623405 14.8001594687951 -1.7003605831177 1.02630899984898 14.7984480215398 -1.58944155619574 1.17564515309993 14.4220120504504 -2.02238949469784 -0.462821907550224 14.4214413938824 -2.03460529964442 -0.380322729886949 14.4193790407331 -2.05086072901448 -0.0942446554617218 14.4166089143065 -2.01525170558143 0.260249668148819 14.4143361042004 -1.94636839565198 0.525623000856174 14.4137519827656 -1.92373495503439 0.590115667443438 14.4108532759307 -1.78571569342953 0.887722788330102 14.4093605406991 -1.69990603779717 1.02641219016096 14.4076188015682 -1.58892550448997 1.17571789924588 13.5036167441869 -2.02248012196757 -0.462677384475412 13.5030390199085 -2.03464815501696 -0.380145678002376 13.5009512462024 -2.05072076069735 -0.0939748774238449 13.4981472763038 -2.01485169246352 0.260586358430959 13.4958469563476 -1.94575208426972 0.525969274378377 13.4952558022941 -1.92306350644065 0.590458270697018 13.4923224230202 -1.78477778118064 0.888012948940926 13.4908119800304 -1.69883765718797 1.02665473268818 13.4890497059312 -1.58771262388525 1.1758888751921 13.0912529117666 -2.02252081406714 -0.462612492940897 13.0906795909069 -2.03466739695543 -0.380066182339461 13.0886077846526 -2.0506579196162 -0.0938537560881748 13.085825393867 -2.01467211595065 0.260737507653671 13.0835428917948 -1.94547542594813 0.526124714400697 13.0829563334331 -1.92276210303463 0.590612060267305 13.0800458596387 -1.7843568054241 0.888143185628471 13.0785472766653 -1.69835814459831 1.02676359108218 13.0767988963494 -1.587168287046 1.1759656086389 12.7191900892457 -2.02255752933301 -0.462553943409822 12.7186247711006 -2.03468475823249 -0.379994456743731 12.7165819326284 -2.05060122300499 -0.0937444776523012 12.7138385642705 -2.01451010643168 0.260873870780271 12.7115881759246 -1.94522584232512 0.526264942540161 12.7110098850283 -1.92249019896848 0.590750797937159 12.708140523897 -1.78397705279039 0.888260669158687 12.7066631679139 -1.69792559945334 1.02686178696523 12.704939603036 -1.58667728327911 1.17603482387885 12.3470539856268 -2.02259425190001 -0.462495382389372 12.3465004954607 -2.03470212282036 -0.379922717801477 12.3445004460878 -2.05054451798373 -0.0936351829194463 12.3418146568997 -2.01434808082849 0.26101024745493 12.3396116008084 -1.94497624409237 0.526405178880443 12.3390454876168 -1.92221828183707 0.590889542263246 12.3362366377782 -1.78359730168133 0.888378152201259 12.3347904945437 -1.69749306764621 1.02695997980521 12.333103393257 -1.58618631001928 1.17610403480703 11.7543565825971 -1.88218732868676 -0.938526990921237 11.7514837653232 -2.02265302319655 -0.462401660854069 11.7509571619651 -2.03472991304859 -0.379807907728422 11.7490543408778 -2.05045377245572 -0.0934602774471206 11.7464992936844 -2.01408880641271 0.26122847831056 11.7444036327531 -1.94457685654467 0.526629574075307 11.7438651387501 -1.92178318726636 0.591111547022159 11.7411934593325 -1.78298970310271 0.888566124047469 11.7398180255676 -1.69680104452405 1.0271170820136 11.7382134901256 -1.58540081628297 1.17621476332013 11.7340537106598 -1.88219432265343 -0.938528949173445 11.7311868284443 -2.02265502611599 -0.462398466841206 11.730661313966 -2.03473086013017 -0.37980399505491 11.728762429877 -2.05045067998721 -0.0934543169327487 11.7262126752076 -2.01407997109657 0.261235914982283 11.7241213604039 -1.94456324704027 0.526637220551197 11.7235839839205 -1.92176836114035 0.591119111975966 11.7209178535102 -1.78296899968398 0.888572529031847 11.7195452794409 -1.69677746493204 1.02712243502188 11.7179440825643 -1.58537405252071 1.17621853612068 11.713327870989 -1.88220146232492 -0.938530948221831 11.7104671114892 -2.02265707075594 -0.462395206297986 11.7099427203051 -2.03473182693888 -0.379800000883785 11.7080478976069 -2.0504475231118 -0.0934482322783962 11.7055036025921 -2.01407095179157 0.261243506517178 11.7034167710824 -1.94454935415928 0.526645026241697 11.702880547377 -1.92175322631404 0.591126834442465 11.700220140979 -1.78294786525227 0.888579067357989 11.6988505167502 -1.69675339448517 1.02712789946335 11.6972527636409 -1.58534673166601 1.17622238745271 11.6900510039412 -1.88220948077879 -0.938533193322008 11.6871971978704 -2.02265936705181 -0.462391544445083 11.6866740823688 -2.03473291274267 -0.379795515110289 11.6847838719934 -2.05044397769625 -0.0934413987400236 11.6822457771315 -2.01406082244293 0.261252032374101 11.680164036896 -1.94453375146081 0.526653792590083 11.6796291222834 -1.92173622883273 0.591135507318966 11.676975215982 -1.78292412986239 0.888586410338438 11.6756089414915 -1.6967263617954 1.02713403638929 11.6740150989613 -1.58531604861189 1.17622671274301 11.2982975386124 -1.80230098095006 -1.10318019747816 11.2981500089375 -1.81703988523804 -1.07552115409811 11.2977476054125 -1.85424738322577 -1.00072169015006 11.2974093289753 -1.88234473867492 -0.938571064413854 11.2946851085033 -2.02269810053658 -0.462329777092727 11.2941857640959 -2.03475122779217 -0.37971985047068 11.2923814926145 -2.0503841759842 -0.093326135107396 11.2899589040234 -2.0138899720066 0.261395836925314 11.2879719968928 -1.94427058871602 0.526801650105709 11.2874614640079 -1.9214495426769 0.591281787434019 11.2849286080145 -1.78252381114839 0.888710256303623 11.2836247065115 -1.69627043797818 1.02723753961009 11.2821036725173 -1.5847985680778 1.17629966028344 1.23463578 0.68972095 1.23284658696506 0.690205595970351 1.2316866332483 0.690498528028526 1.23049356 0.69078273 1.24172285999109 0.687391613110743 1.24553423894334 0.685791215189121 1.24899664963209 0.68404912640032 1.25219925600767 0.682130190885972 1.25409497793252 0.680827485678142 1.25592726076431 0.679433059270539 1.26080958600737 0.674960552107723 1.25887113755606 0.676878132489453 1.25752557275861 0.678096952742578 1.26428285310632 0.671006307371842 1.26237370729533 0.673264361378146 1.26158499890934 0.674137601779108 1.2652211519063 0.669817590446744 1.26581110377358 0.669043229113109 1.26640452 0.6682432 1.26861337345316 0.664905705801424 1.26749642006149 0.666653348134003 1.26695189598848 0.667466782827934 1.26884718256723 0.664528998493133 1.26899548224961 0.664288316380886 1.26914508582996 0.664044173172146 1.26976556762107 0.663017420225937 1.27015164061116 0.662367011031586 1.27052968019006 0.661721221283981 1.2729392 0.657288339999999 1.27201078014959 0.659088246296759 1.27143469361755 0.660138391642881 1.27312434197006 0.656903924101066 1.27323489422485 0.656674680810075 1.27334147610436 0.656453911880128 1.27457777 0.65393546 1.27409137720417 0.654910772578937 1.27379419844067 0.655519651599742 1.27506871855941 0.652985405529875 1.27481274113662 0.653480916473531 1.27468673660815 0.653724697576594 1.2763119 0.65056074 1.27586498346279 0.651440213176755 1.2755117859052 0.652126426294766 1.29799451828249 0.547152452135888 1.2891756123624 0.604606993901469 1.29459350069256 0.575881439509494 1.2976885 0.47548071 1.29940756578235 0.515300981350358 1.29903211278306 0.495391669789183 1.27806415187964 0.368547891748681 1.28957986624035 0.414120325180472 1.29460510704401 0.444322870583339 1.23141809167887 0.263458495843353 1.26047906908807 0.320537136456713 1.24689143789924 0.291517174769145 1.20676907 0.22601628 1.2208706104033 0.246523857272522 1.213943629902 0.236174916201214 1.20676907 0 1.37999003591338 0 1.55321100093982 0 1.6686916451083 0 1.78417229 0 1.78417229 1.00000000011581 1.23049356 1 1.29776552241837 1 1.36503748835584 0.999999999999996 1.4323094543971 1 1.49958142057092 0.999999999999999 1.56685338684047 1 1.63412535310954 1 1.70914882161134 1 1.2208706104033 0.22601628 1.23141809167887 0.22601628 1.24689143789924 0.22601628 1.25219925600767 0.22601628 1.26640452 0.22601628 1.27806415187964 0.22601628 1.36503748835584 0.22601628 1.37999003591338 0.22601628 1.4323094543971 0.22601628 1.49958142057092 0.22601628 1.55321100093982 0.22601628 1.56685338684047 0.22601628 1.63412535310954 0.22601628 1.6686916451083 0.22601628 1.70914882161134 0.22601628 1.25219925600767 0.291517174769145 1.26640452 0.291517174769145 1.27806415187964 0.291517174769145 1.36503748835584 0.291517174769145 1.37999003591338 0.291517174769145 1.4323094543971 0.291517174769145 1.49958142057092 0.291517174769145 1.55321100093982 0.291517174769145 1.56685338684047 0.291517174769145 1.63412535310954 0.291517174769145 1.6686916451083 0.291517174769145 1.70914882161134 0.291517174769145 1.26640452 0.320537136456713 1.27806415187964 0.320537136456713 1.36503748835584 0.320537136456713 1.37999003591338 0.320537136456713 1.4323094543971 0.320537136456713 1.49958142057092 0.320537136456713 1.55321100093982 0.320537136456713 1.56685338684047 0.320537136456713 1.63412535310954 0.320537136456713 1.6686916451083 0.320537136456713 1.70914882161134 0.320537136456713 1.36503748835584 0.368547891748681 1.37999003591338 0.368547891748681 1.4323094543971 0.368547891748681 1.49958142057092 0.368547891748681 1.55321100093982 0.368547891748681 1.56685338684047 0.368547891748681 1.63412535310954 0.368547891748681 1.6686916451083 0.368547891748681 1.70914882161134 0.368547891748681 1.36503748835584 0.414120325180472 1.37999003591338 0.414120325180472 1.4323094543971 0.414120325180472 1.49958142057092 0.414120325180472 1.55321100093982 0.414120325180472 1.56685338684047 0.414120325180472 1.63412535310954 0.414120325180472 1.6686916451083 0.414120325180472 1.70914882161134 0.414120325180472 1.36503748835584 0.444322870583339 1.37999003591338 0.444322870583339 1.4323094543971 0.444322870583339 1.49958142057092 0.444322870583339 1.55321100093982 0.444322870583339 1.56685338684047 0.444322870583339 1.63412535310954 0.444322870583339 1.6686916451083 0.444322870583339 1.70914882161134 0.444322870583339 1.36503748835584 0.515300981350358 1.37999003591338 0.515300981350358 1.4323094543971 0.515300981350358 1.49958142057092 0.515300981350358 1.55321100093982 0.515300981350358 1.56685338684047 0.515300981350358 1.63412535310954 0.515300981350358 1.6686916451083 0.515300981350358 1.70914882161134 0.515300981350358 1.36503748835584 0.547152452135888 1.37999003591338 0.547152452135888 1.4323094543971 0.547152452135888 1.49958142057092 0.547152452135888 1.55321100093982 0.547152452135888 1.56685338684047 0.547152452135888 1.63412535310954 0.547152452135888 1.6686916451083 0.547152452135888 1.70914882161134 0.547152452135888 1.36503748835584 0.575881439509494 1.37999003591338 0.575881439509494 1.4323094543971 0.575881439509494 1.49958142057092 0.575881439509494 1.55321100093982 0.575881439509494 1.56685338684047 0.575881439509494 1.63412535310954 0.575881439509494 1.6686916451083 0.575881439509494 1.70914882161134 0.575881439509494 1.36503748835584 0.604606993901469 1.37999003591338 0.604606993901469 1.4323094543971 0.604606993901469 1.49958142057092 0.604606993901469 1.55321100093982 0.604606993901469 1.56685338684047 0.604606993901469 1.63412535310954 0.604606993901469 1.6686916451083 0.604606993901469 1.70914882161134 0.604606993901469 1.27806415187964 0.65056074 1.36503748835584 0.65056074 1.37999003591338 0.65056074 1.4323094543971 0.65056074 1.49958142057092 0.65056074 1.55321100093982 0.65056074 1.56685338684047 0.65056074 1.63412535310954 0.65056074 1.6686916451083 0.65056074 1.70914882161134 0.65056074 1.27806415187964 0.652126426294766 1.36503748835584 0.652126426294766 1.37999003591338 0.652126426294766 1.4323094543971 0.652126426294766 1.49958142057092 0.652126426294766 1.55321100093982 0.652126426294766 1.56685338684047 0.652126426294766 1.63412535310954 0.652126426294766 1.6686916451083 0.652126426294766 1.70914882161134 0.652126426294766 1.27806415187964 0.653724697576594 1.36503748835584 0.653724697576594 1.37999003591338 0.653724697576594 1.4323094543971 0.653724697576594 1.49958142057092 0.653724697576594 1.55321100093982 0.653724697576594 1.56685338684047 0.653724697576594 1.63412535310954 0.653724697576594 1.6686916451083 0.653724697576594 1.70914882161134 0.653724697576594 1.27806415187964 0.655519651599742 1.36503748835584 0.655519651599742 1.37999003591338 0.655519651599742 1.4323094543971 0.655519651599742 1.49958142057092 0.655519651599742 1.55321100093982 0.655519651599742 1.56685338684047 0.655519651599742 1.63412535310954 0.655519651599742 1.6686916451083 0.655519651599742 1.70914882161134 0.655519651599742 1.24689143789924 0.685791215189121 1.25219925600767 0.685791215189121 1.26640452 0.685791215189121 1.27806415187964 0.685791215189121 1.36503748835584 0.685791215189121 1.37999003591338 0.685791215189121 1.4323094543971 0.685791215189121 1.49958142057092 0.685791215189121 1.55321100093982 0.685791215189121 1.56685338684047 0.685791215189121 1.63412535310954 0.685791215189121 1.6686916451083 0.685791215189121 1.70914882161134 0.685791215189121 59 73 56 73 59 74 56 73 58 75 57 58 57 78 53 74 75 58 58 73 74 59 75 74 57 76 77 76 75 59 77 76 59 78 57 77 55 88 54 53 88 55 91 90 53 88 53 89 90 89 53 88 89 54 77 59 78 57 75 76 59 60 78 89 100 54 100 89 90 100 90 101 43 42 184 50 100 101 50 54 100 42 41 174 50 101 102 111 51 50 90 91 101 174 184 42 175 184 174 45 46 165 174 41 45 175 174 45 51 120 52 43 184 38 78 79 53 91 79 80 91 53 79 102 91 92 102 101 91 120 51 111 103 111 102 129 47 52 121 129 120 120 111 112 129 52 120 80 79 60 111 50 102 80 81 92 81 80 60 103 92 93 80 92 91 103 112 111 104 112 103 121 130 129 122 130 121 121 112 113 112 121 120 130 131 139 92 103 102 60 82 81 129 130 47 49 47 138 48 49 138 48 147 44 147 48 138 147 156 44 156 147 148 138 139 147 156 165 46 47 139 138 157 156 148 140 148 139 149 157 148 157 165 156 175 45 165 175 165 166 166 176 175 167 176 166 165 157 166 184 175 185 166 157 158 148 147 139 47 130 139 46 44 156 176 177 186 79 78 60 186 175 176 217 15 14 217 16 15 216 13 217 217 12 11 217 13 12 11 16 217 205 20 23 218 21 20 217 17 18 217 19 22 217 18 19 22 21 217 217 14 17 215 1 5 216 2 1 4 66 65 3 217 4 3 2 217 5 6 214 9 10 216 8 9 216 214 7 215 7 214 6 215 216 1 215 7 8 8 216 215 214 215 5 10 13 216 217 2 216 205 23 24 39 38 194 40 39 194 204 37 36 35 194 36 194 35 40 204 36 194 184 194 38 185 186 195 186 185 175 195 186 196 195 204 194 204 205 26 204 195 205 196 206 205 197 206 196 195 196 205 205 206 219 196 186 187 195 194 185 184 185 194 37 204 34 29 204 30 30 204 31 26 205 25 28 204 27 27 204 26 204 28 31 218 217 21 33 204 32 33 34 204 4 217 218 4 67 66 4 218 67 68 67 219 219 67 218 205 218 20 205 219 218 32 204 29 25 205 24 219 206 207 93 92 81 93 82 94 93 81 82 94 82 83 93 94 105 104 113 112 113 104 105 105 114 113 114 105 106 104 93 105 113 114 123 94 95 105 93 104 103 61 84 83 84 61 85 83 84 96 61 83 82 95 106 105 106 95 96 96 107 106 107 96 97 95 83 96 114 106 115 84 85 96 83 95 94 60 61 82 116 106 107 122 123 131 122 113 123 131 123 132 122 131 130 140 149 148 149 140 141 132 141 140 141 132 133 140 131 132 149 141 150 123 124 132 131 140 139 115 116 124 116 115 106 133 124 125 133 132 124 141 142 150 141 133 142 142 151 150 143 151 142 142 133 134 150 151 160 116 125 124 124 123 115 114 115 123 149 150 159 107 108 116 113 122 121 85 62 86 97 96 85 86 62 87 85 86 98 117 116 108 108 97 98 109 108 98 108 109 117 97 85 98 117 125 116 86 87 98 108 107 97 87 63 99 99 98 87 99 63 110 99 109 98 109 118 117 118 109 110 110 119 118 119 110 63 109 99 110 118 119 128 63 128 119 87 62 63 117 118 127 125 126 134 126 125 117 134 126 135 125 134 133 143 152 151 152 143 144 135 144 143 144 135 136 143 134 135 152 144 153 126 127 135 134 143 142 127 128 136 128 127 118 136 128 137 145 144 136 154 153 145 144 145 153 137 146 145 146 137 63 136 137 145 155 145 146 128 63 137 136 135 127 126 117 127 152 153 162 63 64 146 85 61 62 151 152 161 158 159 167 158 149 159 167 159 168 158 167 166 177 187 186 187 177 178 168 178 177 178 168 169 177 167 168 187 178 188 159 160 168 167 177 176 160 161 169 160 151 161 169 161 170 179 178 169 189 188 179 178 179 188 170 180 179 180 170 171 169 170 179 190 179 180 161 162 170 169 168 160 150 160 159 187 188 198 197 198 207 197 187 198 207 198 208 197 207 206 220 68 219 69 68 220 208 221 220 221 208 209 220 207 208 69 220 221 198 199 208 207 220 219 189 190 199 190 189 179 199 190 200 209 208 199 221 222 69 221 209 222 69 222 70 209 210 222 209 199 200 200 210 209 190 191 200 199 198 189 188 189 198 180 181 190 187 197 196 162 154 163 162 161 152 163 154 155 162 163 172 191 190 181 181 171 172 182 181 172 181 182 191 171 162 172 201 200 191 163 164 172 181 180 171 173 172 164 164 155 64 173 164 64 173 182 172 182 192 191 192 182 183 183 193 192 193 183 64 182 173 183 192 193 203 173 64 183 164 163 155 154 145 155 191 192 202 210 201 211 210 200 201 211 201 202 210 211 224 223 70 222 70 223 71 224 71 223 71 224 225 223 210 224 211 212 224 210 223 222 202 212 211 212 202 203 203 213 212 213 203 64 202 192 203 212 213 226 225 226 72 226 225 212 64 72 226 226 213 64 225 72 71 203 193 64 212 225 224 201 191 202 155 146 64 171 170 162 153 154 162 149 158 157 
-666 1091 1 0.1628597020283
-11.2339734254601 1.75393602555749 -1.1875290010296 11.2233176562604 1.73904489821927 -1.21174266791124 11.2283499283601 1.74732305688575 -1.19837574234842 11.2254784762726 1.74319668846012 -1.20506764748478 11.2195102188226 1.72864961215316 -1.22820864056359 11.2210170661959 1.73444221415716 -1.21907662213952 11.2200330526066 1.73155065261827 -1.22364869856392 11.2233146680788 1.70357064691526 -1.26655421965809 11.2187579579431 1.71744695743406 -1.24557151642983 11.2203168811737 1.710475396965 -1.25618412808846 11.243154316743 1.68198845915121 -1.29810493339306 11.2330199022536 1.69067340766125 -1.28556856767287 11.227823785328 1.69665448642256 -1.27680786604315 11.274822965922 1.6653368975719 -1.32159590159368 11.2594973128833 1.67199772405696 -1.31228364617976 11.2508307887262 1.6768072576119 -1.30548627592333 11.3057257984163 1.65529957503836 -1.33541257273752 11.2900741726497 1.65989513283307 -1.329122714693 11.2819860982737 1.66256487295567 -1.32544049019301 11.3654194549661 1.64208465945882 -1.3532208048712 11.3364585984696 1.64770369160567 -1.34570453119451 11.3214898793976 1.65115498888696 -1.3410459180422 11.4940513042487 1.62457606258802 -1.3761571297346 11.4310854543383 1.63195301640233 -1.36658814741296 11.3972655627071 1.63677236757878 -1.36025892428163 11.5380210330651 1.6201411438256 -1.3818514383236 11.5173028438985 1.62216599641362 -1.37925603162901 11.5059558947077 1.62331088856553 -1.37778473223831 11.5701474980193 1.61706632895907 -1.38576981734771 11.5536887722913 1.61864742509292 -1.38375916278693 11.5453364278214 1.61944215758067 -1.3827464367941 11.6467164821864 1.60959413771122 -1.39521556909743 11.6168116552509 1.61264462252329 -1.39137019846653 11.59782558361 1.61447522340865 -1.38905331615527 11.7279810431541 1.60101691469853 -1.40592225547907 11.6879791890818 1.60533464468433 -1.40054957968685 11.6675314916802 1.6074972055598 -1.39784683028508 11.7609747359659 1.59742040519323 -1.41037135508933 11.7448895439158 1.59917170511919 -1.40820760844032 11.7360589271649 1.60013550030746 -1.40701366467467 11.8043180412084 1.59269241380991 -1.41618054122364 11.7877235851982 1.59449365010627 -1.41397425382321 11.7753922597036 1.59583710752752 -1.41232221073241 11.8750928872913 1.58529487719724 -1.4251748313798 11.8452983948709 1.58832468439992 -1.42150208066628 11.8265809096452 1.59030279682563 -1.41909781301404 12.2620489025649 1.55544164364287 -1.46033225805902 12.0784585999608 1.56752665109685 -1.4463274574771 11.9745962160765 1.57593104887717 -1.43640172106746 12.4978731391223 1.54304758553291 -1.47438192864982 12.3752478733188 1.54915010834762 -1.4675065714953 12.3176153777131 1.55221688469296 -1.46401757936941 12.5143853778561 1.54225075040349 -1.47527481543679 12.5052019156317 1.54269254444705 -1.47478005746981 12.5009610278662 1.54289698784182 -1.47455086369703 12.5372927826847 1.54114785217358 -1.47650854790917 12.5260170991434 1.54169121599895 -1.47590103221097 12.5198591320194 1.54198713948748 -1.47557000779162 12.7343557009245 1.53139827017334 -1.48733192218905 12.6575618638079 1.53532613324339 -1.48298586386706 12.6076641882957 1.53776370918687 -1.48027790458241 12.9120964228236 1.52198792279919 -1.49763971953495 12.82847300856 1.52649959711267 -1.49271427253387 12.7814658356866 1.52899226785807 -1.48998019128669 13.0297316574771 1.51557535698256 -1.50458789742418 12.9720618338055 1.51871722126836 -1.50119072402387 12.940715865217 1.52042788356822 -1.49933413531661 13.1505415149467 1.50902129957732 -1.51162015009139 13.1124663081777 1.51107070262435 -1.50943129849638 13.0788185802369 1.51289249567415 -1.50747650391921 13.2067968429158 1.50604612550568 -1.51478693835905 13.1814593172009 1.50737578009611 -1.51337342630281 13.16645930085 1.5081726599836 -1.51252533733249 13.6011839966343 1.48832080334864 -1.53331528929195 13.444497106413 1.49446108102915 -1.52697212221782 13.3358719193724 1.49950553637307 -1.52170061063614 14.1656597628408 1.48194751707815 -1.53942524734664 13.8654284008302 1.48159472568976 -1.54010328081708 14.0166842001824 1.48051674128334 -1.5410726263608 14.2745160980031 1.48462395626585 -1.53651034460532 14.2135489953361 1.48294152282931 -1.53833614618462 14.2438493880019 1.48372260617846 -1.53748696442166 14.8705157989187 1.51573582377946 -1.50252353347842 14.5412076506903 1.49536760071763 -1.52487830931075 14.700719037346 1.50439581019103 -1.51503503647987 15.2409733425777 1.54412476865888 -1.47034875277143 15.0553527988629 1.52932996360414 -1.48727760914968 14.9599739474397 1.52215568017742 -1.49535741294384 15.3885361745655 1.55624636724467 -1.45620806184295 15.306105959492 1.54936436641319 -1.46426868250305 15.268269862375 1.54625850688206 -1.46787806261069 15.6256429585636 1.57605589016733 -1.43254462666716 15.5397452374411 1.56884763155009 -1.44123247462957 15.473271680395 1.56327035395551 -1.44789345121854 15.7556462799591 1.58687434340459 -1.41931422068519 15.6964139203827 1.58196905618953 -1.42534318391927 15.6612810884908 1.57903959522677 -1.42892071410101 15.9164082326414 1.59998586197956 -1.40297488495823 15.8469763130626 1.59437508169675 -1.41000750532606 15.8019951149686 1.59069914836431 -1.41458270121145 16.4125111176284 1.63640196705886 -1.3557196746019 16.2011523152597 1.62185670743699 -1.37494654850437 16.0633593876408 1.61153324571135 -1.38829927614356 17.2459916335156 1.67360538724199 -1.3040721061901 16.8907891564538 1.66246632758017 -1.3199829009968 16.6574934494772 1.65116945250819 -1.33568740284973 20.1549001573063 1.67227319742871 -1.30306890389245 20.1549001573063 -1.6722750014288 -1.30306872289244 20.1549001573063 -1.06025510314924 -1.8708312818635 20.1549001573063 -0.248800274676112 -2.15085975576918 20.1549001573063 0.528196717018899 -2.09684800275857 20.1549001573063 1.15900491493157 -1.80730370736378 20.1549001573063 1.44015007298323 -1.57566051740705 17.2459916253906 -1.67360683680456 -1.30407191862759 16.4125111362741 -1.63640330747186 -1.35571949953735 16.7987051555047 -1.65835168680491 -1.3257456828009 17.0262197165851 -1.66764226153657 -1.31266042384163 15.9164083652715 -1.59998716778997 -1.40297469633251 16.1468680819312 -1.61785758391885 -1.38014834923695 16.2811156081652 -1.62757631676078 -1.36744680070648 15.7556463974262 -1.58687563239034 -1.41931403490338 15.829140031128 -1.59292241583123 -1.41182018706148 15.8733605199442 -1.59651767644435 -1.40732986697314 15.6256430914078 -1.57605716395364 -1.43254444077483 15.6823255517509 -1.58079696028805 -1.42677816535166 15.7178961251149 -1.58375576885616 -1.42315375299189 15.3885363223517 -1.55624760869252 -1.45620788292268 15.5147916959614 -1.56675372657847 -1.44374047981749 15.5740823286723 -1.57173272794924 -1.4377680713505 15.2409735004748 -1.54412598780222 -1.47034857787681 15.2897060809059 -1.54801700456862 -1.4658380710628 15.3338663281407 -1.55165581673741 -1.46159491675586 14.8705159773675 -1.51573699413999 -1.50252336583399 15.0160139974919 -1.52633483598157 -1.49066171417753 15.1186490163256 -1.53424852462356 -1.48169093124383 14.2745163580031 -1.4846250675159 -1.53651017760531 14.6045684494052 -1.49873878227454 -1.5212145208741 14.4452163546622 -1.49085297720757 -1.52977175997997 14.2235895153933 -1.48319986742028 -1.53805637621256 14.2462885162646 -1.48379473659306 -1.5374098935786 14.2604227333025 -1.48419795151019 -1.53697266617358 13.9578228007084 -1.4807103422503 -1.54093210274145 14.077554671172 -1.48084594222114 -1.54066472222945 14.1508498914484 -1.4817132023472 -1.53968486571425 13.6299341892202 -1.48725405550496 -1.53441086611513 13.8085839946898 -1.4824842048175 -1.5392329993698 13.7199357980825 -1.48450811104157 -1.53720429208986 13.2369433548438 -1.50453569894826 -1.51638897342284 13.4301691153108 -1.49509949578239 -1.52631041698181 13.5324637453239 -1.49079423407009 -1.53077243624519 13.0409575546936 -1.51495712080103 -1.50525514791496 13.1525151951007 -1.50891955701304 -1.51173175729266 13.1963478539544 -1.50659140993578 -1.5142092006368 13.0022709656819 -1.51706751062374 -1.50297788728507 13.0187656507354 -1.51616590344978 -1.50395144002088 13.0296278106992 -1.51557263531509 -1.50459165545002 12.7665063849933 -1.52971109318622 -1.48919178752468 12.8583985514616 -1.52489669932445 -1.49446953142127 12.9218550772373 -1.52145695182292 -1.49821690536265 12.5506040056185 -1.54050897098862 -1.47722330575687 12.6566274925079 -1.53537259129797 -1.48293458188731 12.7083047019876 -1.53278255608049 -1.48580505781872 12.5242477717419 -1.54177759031217 -1.47580533019563 12.5359615458236 -1.54121491395628 -1.47643457294945 12.5432828985466 -1.540863736076 -1.47682696845786 12.5015213107503 -1.54287260379372 -1.47457893519828 12.5116216313234 -1.54238455057018 -1.47512625697686 12.5179346215237 -1.54208087242284 -1.4754662742074 12.2568192726063 -1.55566787566868 -1.46007545322656 12.3490542921462 -1.55052098821767 -1.46594768320967 12.4141276715905 -1.54716693433357 -1.46975166527568 11.8715138817384 -1.58570854653159 -1.424674981036 12.0794714292166 -1.56731709017386 -1.44657245533666 11.980670406726 -1.57541197019565 -1.43701954883889 11.7578455409638 -1.59775711123781 -1.40995683754297 11.8213460558702 -1.59086133378869 -1.41841697858755 11.8461381283823 -1.58823624602951 -1.42160882331301 11.7460296980906 -1.59904800056319 -1.4083623372769 11.7511165830346 -1.59849215079999 -1.40904918860201 11.7544268550149 -1.59813003486748 -1.40949649305482 11.6440291192181 -1.60990510560288 -1.39482515131581 11.6829099024594 -1.6058749640548 -1.3998757923657 11.7102014836225 -1.60294631113003 -1.4035244591397 11.5921035220023 -1.61502206570273 -1.38836344529165 11.615814646083 -1.61274364952565 -1.39124674343148 11.6287073966378 -1.61147213517373 -1.39285310343456 11.5677514756082 -1.61732692438244 -1.3854388743982 11.5801261727527 -1.61615351025668 -1.38692852721363 11.5864926425007 -1.61555190322114 -1.38769064838934 11.5173309615065 -1.62216470532931 -1.37925932234333 11.5355773576951 -1.62037943573357 -1.38154981703186 11.5497443399291 -1.6190225053481 -1.38328192338118 11.4919570406201 -1.62478166592107 -1.37589307800223 11.5033413492633 -1.6235805184902 -1.37743938799149 11.5102542370771 -1.62287503577893 -1.37834668221252 11.3639897483438 -1.64238388482431 -1.35282295016919 11.4155806284448 -1.63407270778137 -1.36381156790576 11.4512604360294 -1.62939305680225 -1.36992637915907 11.3046101155787 -1.65560031280696 -1.33500311111335 11.3293114099374 -1.64929549958061 -1.34356286766825 11.3448910892259 -1.64594663168203 -1.34806246486765 11.2810233886257 -1.66292486149133 -1.32494032340658 11.2903753848963 -1.65980149802582 -1.32925253480982 11.2971320486903 -1.65774925803631 -1.33206677658958 11.2578643340571 -1.672842776302 -1.31109607646477 11.2676418333309 -1.6681577094662 -1.31767171375095 11.2741538374915 -1.6654569592556 -1.32143484984067 11.2480738321926 -1.67852313843327 -1.30305412763939 11.2533604297598 -1.67531169905511 -1.30761172563788 11.2506626947788 -1.67689733654243 -1.30536481592506 11.2229519281623 -1.70382745794937 -1.26617213152758 11.234188906666 -1.68916338877675 -1.28775878561204 11.2276055108228 -1.69632379581601 -1.27729312890639 11.2195260373578 -1.72876789393421 -1.22802415636908 11.2189290449075 -1.71475417104491 -1.24968896466858 11.2184017788172 -1.72174664700725 -1.23895432445646 11.2233642208145 -1.73910600437289 -1.21164554112822 11.2206484646032 -1.73339658627751 -1.22073395373012 11.2217925802684 -1.73627142449228 -1.21617123657517 11.2339737223351 -1.75393664780752 -1.18752892052959 11.227244768807 -1.74578973907948 -1.20087006283061 11.2303906236261 -1.74989094726789 -1.19418281974557 7.21279194058922 -1.75566531738962 -1.18857460045426 7.21279194058922 -1.57919479825066 -1.43731795707635 7.21279194058922 -1.36392613472056 -1.66056785629497 7.21279194058922 -1.14020952546803 -1.83377569025907 7.21279194058922 -0.917908263384871 -1.96313160054326 7.21279194058922 -0.679370815703776 -2.06426485250812 7.21279194058922 -0.428619029939489 -2.13479666666457 7.21279194058922 -0.170074809743701 -2.17303641737173 7.21279194058922 0.0915799275259555 -2.17805670026478 7.21279194058922 0.351558443466233 -2.14973519857978 7.21279194058922 0.605130559147911 -2.08876024088359 7.21279194058922 0.847780691135129 -1.99659963429321 7.21279194058922 1.07535331936045 -1.87543509530517 7.21279194058922 1.28417780967587 -1.72806708036795 7.21279194058922 1.47116634812466 -1.55779677571882 7.21279194058922 1.62488786892722 -1.38007064658117 7.21279194058922 1.75566519138962 -1.18857467445427 17.2460161662714 1.66941645461615 -1.30995963881321 17.246086429251 1.65723677825106 -1.32683285721964 17.2462845771619 1.62126764752017 -1.3746534196413 17.2462878942026 1.6206444071404 -1.37545691924869 17.2463048294829 1.61745127472118 -1.37956074342644 17.2463127684334 1.61594794531185 -1.38148541977808 17.2465196161108 1.57528039500775 -1.43183009368638 17.2468396432036 1.50620081939575 -1.51047164315159 17.2471086510596 1.44155585858958 -1.57728103024928 17.2476797986742 1.27947544776947 -1.72126354246098 17.2480242377922 1.1603023089113 -1.80949787638947 17.2482478400191 1.07109106525445 -1.86734300644888 17.2487065570004 0.84421631047709 -1.98740485519065 17.2491297073328 0.52887722221441 -2.09981913109175 17.2492761421823 0.349976214387082 -2.13909247315772 17.2493802857942 0.0911623998018935 -2.16713967115817 17.2493314771647 -0.249128103996875 -2.15398291127979 17.2492210619062 -0.426703513827303 -2.12429781286734 17.2489596030778 -0.676426174791252 -2.05443765962463 17.2485805772226 -0.914110743849048 -1.95424524519394 17.2482703468233 -1.06148185282517 -1.87319033502996 17.2480884102342 -1.13578754664257 -1.82605378070355 17.2474157369387 -1.35912634036966 -1.65433477977005 17.2469556371633 -1.47912009617172 -1.53920065777548 17.2469548000473 -1.47931972897877 -1.53899289707237 17.24695101745 -1.4802210170509 -1.53805418611036 16.7987152179092 1.65744359706719 -1.3269946772842 16.7989336473617 1.62147798771927 -1.37483129293933 16.7989373039313 1.62085480014408 -1.37563506491303 16.7989559726953 1.61766193407307 -1.37974028153652 16.7989647242746 1.61615872764579 -1.38166561171779 16.7991927455758 1.57549394532188 -1.43202756390961 16.7995455345668 1.50641686138008 -1.51069677369519 16.7998420840439 1.44177209188205 -1.57753029218372 16.8004717151264 1.27968501023937 -1.72156674453502 16.8008514289042 1.16050189045991 -1.809835411392 16.8010979328033 1.0712809787044 -1.86770356592543 16.8016036375482 0.844375104811318 -1.98781448548963 16.8020701387511 0.528981919225296 -2.10027624525528 16.8022315769555 0.350046690025596 -2.13956652110717 16.8023463913071 0.0911809966977543 -2.16762592045929 16.802292581613 -0.249178542276301 -2.15446342582162 16.8021708532047 -0.426788836212412 -2.1247654608926 16.801882606942 -0.676557348524436 -2.0548754276298 16.8014647525735 -0.914279931508017 -1.95464115141463 16.8011227448814 -1.06167057193338 -1.87355324442372 16.8009221738102 -1.13598458718286 -1.8263978640352 16.8001806130458 -1.35934026341587 -1.65461258310025 16.7996734039455 -1.47933639410281 -1.53943609444289 16.7996724811242 -1.47953602587452 -1.53922825882428 16.799668311259 -1.48043730904515 -1.53828920944619 16.4126175403507 1.62165962986039 -1.37498489786163 16.4126214535196 1.62103648790256 -1.37578890505564 16.412641432367 1.61784385192838 -1.37989532422023 16.4126507980928 1.61634075174534 -1.38182121906084 16.4128948215982 1.57567836084217 -1.4321980931756 16.413272371442 1.50660343033921 -1.51089119135528 16.4135897370192 1.44195882748786 -1.57774555082837 16.414263572145 1.27986598798668 -1.72182858931021 16.4146699491323 1.16067425040075 -1.8101269088976 16.4149337643294 1.07144499026037 -1.86801494951472 16.4154749882308 0.844512243320982 -1.98816825188641 16.4159742608818 0.52907233911247 -2.10067102461684 16.4161470413325 0.350107555430659 -2.13997592677769 16.4162699226621 0.0911970577227307 -2.16804586492765 16.4162123321996 -0.249222102734636 -2.15487841694184 16.4160820512035 -0.426862523707764 -2.1251693387114 16.4157735543958 -0.676670634054313 -2.05525349715088 16.415326347745 -0.914426045409053 -1.95498306414153 16.4149603189786 -1.06183355214499 -1.87386665763268 16.4147456621007 -1.13615475300315 -1.82669501726829 16.4139520316097 -1.35952500555145 -1.65485249175169 16.4134092162525 -1.47952318470994 -1.53963941291578 16.4134082286549 -1.47972281558308 -1.53943151259672 16.4134037660911 -1.48062409450064 -1.53849217094718 16.2811569649065 1.62172144135412 -1.37503716849786 16.2811609576577 1.62109831492319 -1.37584125573872 16.2811813428176 1.61790575726793 -1.37994808413526 16.2811908990165 1.61640269324779 -1.38187417113289 16.2814398855298 1.57574111635879 -1.43225612328588 16.2818251149863 1.50666691901953 -1.51095735092332 16.2821489368475 1.44202237318118 -1.57781880285258 16.2828364826501 1.27992757491909 -1.72191769539336 16.2832511299927 1.16073290504276 -1.81022610644706 16.2835203148967 1.07150080414185 -1.86812091478431 16.2840725565924 0.844558912562342 -1.98828864120197 16.2845819950524 0.529103109894982 -2.10080537195699 16.2847582939792 0.350128268584292 -2.14011525195857 16.284883677788 0.0912025234728789 -2.1681887768399 16.2848249144807 -0.249236926842725 -2.15501964305055 16.2846919803733 -0.426887600332254 -2.12530678257007 16.2843772017005 -0.676709186124656 -2.0553821575775 16.2839208899776 -0.914475768930472 -1.95509941930537 16.2835474100706 -1.0618890150772 -1.87397331363396 16.2833283839709 -1.13621266104461 -1.82679613959567 16.2825186026888 -1.35958787321417 -1.65493413256299 16.2819647435845 -1.47958674894685 -1.53970860153856 16.281963735896 -1.47978637951327 -1.53950067920112 16.2819591825496 -1.48068765697925 -1.53856123808788 15.9165607377287 1.57591530666239 -1.43241719730445 15.9169652974761 1.5068431453244 -1.51114099085913 15.9173053707831 1.44219875854605 -1.5780221303406 15.9180274296034 1.28009852496556 -1.72216503180104 15.9184628961535 1.16089571673356 -1.81050145588119 15.9187455986867 1.07165573112982 -1.8684150509636 15.9193255771924 0.844688457064178 -1.98862281795796 15.9198606085336 0.529188524062818 -2.10117829609631 15.920045765585 0.350185764723471 -2.14050199465617 15.9201774497054 0.0912176954789088 -2.16858547638938 15.9201157336045 -0.249278076046347 -2.15541166276579 15.9199761199781 -0.426957208647534 -2.12568830268357 15.9196455262086 -0.676816199439962 -2.05573929482953 15.9191662923298 -0.914613791207593 -1.955422397367 15.9187740545836 -1.06204296796589 -1.87426936724561 15.9185440294246 -1.13637340052026 -1.827076832075 15.9176935916099 -1.35976237746454 -1.65516074620587 15.9171119332472 -1.47976318532275 -1.53990064963986 15.9171108749869 -1.47996281503525 -1.53969266618286 15.9171060931271 -1.48086408846071 -1.53875294897412 15.5401102839677 1.50702516522925 -1.51133066814839 15.5404645661856 1.44238094398792 -1.5782321438716 15.5412168021616 1.28027509892673 -1.72242050512115 15.5416704736214 1.1610638860777 -1.8107858663001 15.5419649968445 1.07181575721945 -1.8687188680773 15.5425692314169 0.844822266817667 -1.98896799753948 15.5431266453781 0.529276751441528 -2.10156350297449 15.5433195497501 0.350245154783512 -2.14090147671366 15.5434567442267 0.0912333672920789 -2.16899524436507 15.5433924455536 -0.249320580762571 -2.15581659623705 15.5432469899539 -0.427029109756763 -2.12608238957198 15.5429025645189 -0.676926736878779 -2.05610819326184 15.5424032841731 -0.914756357409007 -1.95575600846564 15.541994642667 -1.06220198798578 -1.87457516507601 15.541754999158 -1.13653942972877 -1.82736676183817 15.5408690106275 -1.35994262134289 -1.65539481344597 15.5402630461589 -1.47994542274155 -1.54009901210923 15.540261943683 -1.48014505156818 -1.53989096551888 15.5402569620307 -1.4810463208027 -1.53895096311776 15.0161112270913 1.50727825521085 -1.51159440539704 15.0164809143868 1.44263426624806 -1.5785241601303 15.017265871309 1.28052062296173 -1.72277573786136 15.017739284466 1.16129772608059 -1.81118133996079 15.018046627122 1.07203827553934 -1.86914132973542 15.0186771693664 0.84500833362586 -1.98944798105744 15.0192588616984 0.529399436081867 -2.10209915276806 15.019460170151 0.350327740045086 -2.14145697938637 15.0196033422928 0.091255159911589 -2.16956505203054 15.0195362420121 -0.249379686091752 -2.15637968037617 15.0193844490871 -0.42712909217331 -2.12663038902031 15.0190250198517 -0.677080443978399 -2.05662116263299 15.0185039959373 -0.914954599568805 -1.95621990382254 15.0180775634468 -1.06242310750485 -1.87500038124322 15.0178274888128 -1.13677029432235 -1.82776991096696 15.0169029494515 -1.36019324630655 -1.65572027861694 15.016270631327 -1.48019881607218 -1.54037482667978 15.0162694809135 -1.4803984436605 -1.54016669229804 15.0162642826504 -1.48129970703807 -1.53922629331681 14.6048932905453 1.44283325007916 -1.57875353801377 14.6056964120934 1.28071348484879 -1.72305477722248 14.6061807867231 1.16148141206055 -1.81149199246124 14.6064952481527 1.0722130693666 -1.86947318423353 14.6071404014389 0.845154496011567 -1.98982502601115 14.6077355802589 0.52949581073089 -2.10251993137511 14.6079415576866 0.350392615020538 -2.14189335543418 14.608088050958 0.0912722791939356 -2.17001266688604 14.6080193941147 -0.249426116452915 -2.15682201284359 14.6078640803137 -0.427207633369819 -2.1270608701366 14.6074963159543 -0.677201187591394 -2.05702412247952 14.6069632143711 -0.915110325514048 -1.95658430945184 14.606526901145 -1.06259680266234 -1.87533439972114 14.6062710338856 -1.13695164343108 -1.82808659335522 14.6053250902815 -1.36039011335924 -1.65597593304438 14.6046781435396 -1.48039785474874 -1.54059147712091 14.6046769665191 -1.48059748135901 -1.54038327377381 14.6046716480297 -1.4814987401118 -1.53944256325533 14.4454949916297 1.44291031186697 -1.57884237071708 14.4463033663099 1.28078817658675 -1.72316284386861 14.446790911621 1.1615525506245 -1.81161230308864 14.4471074324749 1.07228076444241 -1.86960170661097 14.4477568133244 0.845211103060392 -1.98997105130202 14.448355895122 0.529533135858497 -2.10268289557203 14.448563223924 0.350417740649655 -2.14206236088048 14.4487106785086 0.0912789093871478 -2.1701860253992 14.4486415711068 -0.249444098629835 -2.15699332535611 14.4484852381995 -0.427238051798706 -2.12722759233649 14.4481150614716 -0.677247950466896 -2.05718018509248 14.4475784648602 -0.915170636272777 -1.95672543932542 14.447139292807 -1.06266407226883 -1.87546376023342 14.4468817497377 -1.13702187705111 -1.82820923941392 14.4459296150947 -1.36046635582663 -1.65607494263702 14.4452784382272 -1.48047493754523 -1.54067538053086 14.4452772535136 -1.48067456377547 -1.54046715047379 14.4452719002623 -1.48157582073148 -1.53952631929834 14.2465256993823 1.44300650440885 -1.57895325633675 14.2473392354955 1.28088141136381 -1.72329773924899 14.2478298968233 1.16164135048948 -1.8117624827901 14.2481484418705 1.07236526614991 -1.86976213720471 14.2488019786393 0.845281764319137 -1.99015333128163 14.2494048980782 0.529579728187194 -2.10288632105365 14.2496135558127 0.350449104606185 -2.14227332793267 14.2497619558028 0.0912871857713385 -2.17040242659896 14.2496924052924 -0.249466545534244 -2.15720717243125 14.2495350701677 -0.427276022654094 -2.12743570910427 14.2491625212598 -0.677306323655132 -2.05737499503467 14.24862248837 -0.915245920669321 -1.95690160819635 14.2481805060076 -1.06274804289887 -1.87562523709033 14.2479213157626 -1.13710954737408 -1.82836233447658 14.2469630971093 -1.36056152600917 -1.65619853204902 14.2463077643731 -1.48057115612973 -1.5407801129518 14.2463065721023 -1.4807707818846 -1.54057184955293 14.2463011847032 -1.4816720365933 -1.53963086776258 13.8088137548413 1.44321811804592 -1.57919719325279 13.8096331901821 1.28108652078434 -1.72359449886819 13.8101274162514 1.16183670491092 -1.81209286924654 13.8104482783195 1.0725511657888 -1.87011507674302 13.8111065754993 0.845437217203244 -1.99055434243206 13.8117138946859 0.529682231015085 -2.1033338558902 13.8119240768772 0.350518105332672 -2.14273745566449 13.8120735616423 0.0913053938640765 -2.17087851054462 13.812003502673 -0.249515928798873 -2.15767763678557 13.8118450177065 -0.427359558461386 -2.12789356565649 13.8114697482184 -0.677434743821159 -2.05780357414319 13.8109257769066 -0.915411543876373 -1.95728917400189 13.8104805758028 -1.06293277428298 -1.87598047853219 13.81021949993 -1.13730241713958 -1.82869913502815 13.8092543225429 -1.36077089196513 -1.65647041782421 13.8085942418959 -1.4807828263485 -1.54101051269472 13.8085930409954 -1.48098245105373 -1.54080217594336 13.8085876146023 -1.48188370080112 -1.53986086279782 13.6014549229061 1.44331836650681 -1.57931275434368 13.6022745344079 1.28118368920865 -1.72373508562268 13.602768869942 1.16192925271288 -1.81224938755628 13.6030898043729 1.07263923488897 -1.87028228024805 13.6037482532099 0.845510863040891 -1.99074432157493 13.6043557161179 0.529730792206894 -2.10354587762854 13.6045659489001 0.350550794853956 -2.14295733907805 13.6047154699124 0.0913140200805971 -2.17110405880926 13.6046453939276 -0.249539324454825 -2.15790052248675 13.6044868706484 -0.427399134018915 -2.12811047779509 13.6041115114341 -0.677495583243435 -2.05800661475148 13.6035674125374 -0.915490007687841 -1.95747278289691 13.6031221091966 -1.06302028997128 -1.87614877263765 13.6028609742835 -1.13739378798264 -1.8288586921983 13.6018955844932 -1.36087007629823 -1.65659922010294 13.6012353639001 -1.48088310127408 -1.54111966040316 13.6012341627489 -1.48108272548021 -1.54091128890035 13.6012287352233 -1.48198397286886 -1.53996981877215 13.0297786866056 1.50823764721631 -1.51259415849391 13.0301608003811 1.4435945610084 -1.57963113662137 13.0309721888518 1.28145140197779 -1.72412242198069 13.0314615735709 1.16218423735448 -1.81268062155696 13.0317792973491 1.07288188140617 -1.87074295648665 13.0324311677252 0.84571377330715 -1.99126775526422 13.0330325719537 0.529864590338199 -2.10413005003663 13.0332407102503 0.350640862945347 -2.14356317471562 13.0333887423569 0.0913377876016023 -2.17172550430259 13.0333193641021 -0.249603785646654 -2.15851463110953 13.0331624196912 -0.427508174774438 -2.12870812592413 13.0327908017065 -0.677663210197922 -2.05856603938343 13.0322521326372 -0.915706191803206 -1.95797866347445 13.0318112791471 -1.06326141189387 -1.87661245395881 13.0315527562088 -1.13764553034874 -1.82929829951798 13.0305970386252 -1.36114334127056 -1.65695408607065 13.0299434472576 -1.48115936757482 -1.54142037195142 13.0299422581778 -1.4813589903997 -1.54121190469863 13.0299368851985 -1.482260231262 -1.54027000203919 12.5361659434191 1.50847606058861 -1.51284260174131 12.5365398594826 1.44383320417266 -1.57990623166084 12.5373338520444 1.28168272139892 -1.72445710306865 12.5378127519312 1.16240456169877 -1.81305323743226 12.538123671619 1.07309154646791 -1.87114101572769 12.5387615894843 0.845889106155592 -1.99172004927206 12.539350130155 0.529980205824718 -2.10463483557768 12.539553818503 0.350718691547575 -2.14408668233039 12.5396986863319 0.091358325391111 -2.17226250256421 12.5396307910165 -0.249659487234221 -2.15904528855125 12.5394772016594 -0.427602397643092 -2.12922455760711 12.5391135301675 -0.677808056419618 -2.05904943728022 12.5385863854429 -0.915892993616389 -1.95841578799987 12.5381549686535 -1.06346975977588 -1.87701311014881 12.5379019816419 -1.1378630536672 -1.82967815140686 12.5369667430112 -1.36137945586185 -1.65726070790888 12.5363271689464 -1.48139807146185 -1.54168019732698 12.5363260053773 -1.48159769308601 -1.54147164733492 12.5363207476715 -1.48249892827641 -1.54052937091753 12.526224467239 1.50848086229055 -1.51284760544683 12.5265981720446 1.44383801052495 -1.57991177216537 12.527391716238 1.28168738029445 -1.72446384372208 12.5278703458388 1.16240899917398 -1.81306074215684 12.5281810901071 1.07309576927454 -1.87114903292901 12.5288186482101 0.845892637514439 -1.9917291588729 12.5294068571423 0.529982534439986 -2.10464500247857 12.5296104307183 0.350720259099919 -2.14409722633978 12.5297552169311 0.091358739045131 -2.17227331830925 12.5296873598655 -0.249660609125709 -2.15905597657609 12.5295338570435 -0.427604295392061 -2.12923495908971 12.529170390497 -0.677810973763663 -2.05905917338336 12.5286435429575 -0.91589675596231 -1.95842459205481 12.5282123694865 -1.06347395605533 -1.8770211796577 12.5279595252016 -1.13786743473293 -1.82968580187791 12.5270248144732 -1.36138421131316 -1.65726688340616 12.5263856016674 -1.48140287902459 -1.54168543028169 12.5263844387558 -1.4816025006245 -1.54147687862316 12.5263791840206 -1.48250373570035 -1.54053459467785 12.5118334745677 1.50848781309512 -1.51285484866588 12.5122068703343 1.44384496806278 -1.57991979244091 12.5129997586266 1.28169412438132 -1.72447360130341 12.513477992834 1.16241542274084 -1.8130716057893 12.5137884804849 1.07310188209421 -1.87116063841083 12.5144255122973 0.845897749415109 -1.99174234568749 12.5150132359314 0.529985905282388 -2.10465971981765 12.5152166416075 0.350722528247863 -2.14411248957308 12.5153613084239 0.0913593378399627 -2.17228897490136 12.515293507314 -0.249662233146691 -2.15907144828312 12.5151401310844 -0.427607042523928 -2.12925001600424 12.5147769643519 -0.677815196833818 -2.0590732671089 12.5142505515617 -0.915902202233136 -1.958437336568 12.5138197340371 -1.06348003047508 -1.87703286085875 12.5135670985441 -1.13787377664332 -1.82969687648952 12.5126331600677 -1.36139109516996 -1.65727582288129 12.5119944757323 -1.48140983831377 -1.54169300535596 12.5119933137824 -1.48160945987857 -1.5414844512851 12.5119880633927 -1.48251069478858 -1.54054215644255 11.8715854857416 1.57784634260833 -1.43420282960512 11.8720087158146 1.50879684652689 -1.51317688283153 11.8723645124658 1.44415430271837 -1.58027637675203 11.873120043788 1.28199397276438 -1.72490743239349 11.873575755119 1.16270102270876 -1.81355461666033 11.8738716237575 1.0733736672073 -1.87167663542871 11.874478670627 0.846125034506868 -1.99232865714291 11.8750387410801 0.530135780941471 -2.10531408757767 11.8752325786706 0.350823420284199 -2.14479113131146 11.8753704412017 0.0913859618253641 -2.17298510798696 11.8753058289831 -0.249734441311675 -2.15975936014138 11.8751596670122 -0.427729186791713 -2.12991948346473 11.8748135851435 -0.678002963859839 -2.05969990514506 11.8743119440364 -0.916144353403782 -1.95900398084249 11.8739014059271 -1.06375010841912 -1.87755222472892 11.8736606650755 -1.13815574647813 -1.83018926846936 11.8727707151851 -1.36169715605714 -1.65767327786506 11.87216212806 -1.48171924978804 -1.54202979470838 11.8721610208768 -1.48191886978598 -1.54182113337832 11.8721560179563 -1.48282009729667 -1.54087835401406 11.8462457557801 1.57785843958182 -1.43421401569374 11.8466679716449 1.50880908603279 -1.51318963723979 11.8470229158636 1.44416655422948 -1.58029049963146 11.8477766376023 1.28200584871651 -1.72492461493236 11.8482312578145 1.16271233441942 -1.81357374718907 11.8485264181944 1.07338443181011 -1.87169707253817 11.8491320122572 0.846134036689774 -1.99235187944107 11.8496907427576 0.530141717191314 -2.10534000566202 11.8498841166928 0.350827416412234 -2.14481801092504 11.8500216494897 0.0913870163495282 -2.17301268046254 11.8499571918049 -0.249737301333997 -2.15978660695985 11.8498113794317 -0.427734024671777 -2.12994599967061 11.8494661254507 -0.678010400876248 -2.05972472481913 11.8489656846347 -0.916153944367127 -1.95902642410949 11.848556129077 -1.06376080541199 -1.87757279519998 11.8483159644994 -1.13816691442752 -1.83020877058259 11.8474281455883 -1.36170927799259 -1.65768901957847 11.8468210163185 -1.48173150429949 -1.54204313354224 11.8468199117879 -1.48193112423513 -1.54183446796383 11.8468149208538 -1.48283235145171 -1.54089166940853 11.7611043743521 1.57789908536126 -1.43425160090315 11.7615230793134 1.50885021077028 -1.51323249204815 11.7618750726258 1.44420771934631 -1.58033795255079 11.7626225299671 1.28204575204015 -1.72498234844163 11.7630733729052 1.16275034193533 -1.81363802604829 11.7633660813902 1.07342060106611 -1.87176574158599 11.7639666459845 0.846164284236191 -1.99242990690742 11.7645207376459 0.530161663162405 -2.10542709117267 11.7647125064202 0.350840843525366 -2.14490832725168 11.7648488976829 0.0913905595844699 -2.17310532486332 11.7647849749922 -0.249746911099193 -2.15987815712539 11.7646403729183 -0.427750280094489 -2.13003509491766 11.7642979850512 -0.678035389450559 -2.05980811958589 11.7638016995553 -0.916186170214552 -1.95910183397693 11.7633955454859 -1.06379674750072 -1.87764191235098 11.7631573758933 -1.1382044389128 -1.8302742979871 11.7622769340604 -1.36175000778237 -1.65774191184643 11.7616748515489 -1.48177267947389 -1.54208795204012 11.7616737562012 -1.48197229920011 -1.54187927218711 11.761668806761 -1.48287352542788 -1.54093640914923 11.5703952789764 1.57799012828857 -1.43433578842192 11.5708055428436 1.50894232679913 -1.51332848328823 11.5711504412971 1.4442999260557 -1.58044424345017 11.571882836737 1.28213513291141 -1.72511166777074 11.5723245974509 1.1628354765965 -1.81378200700643 11.5726114103932 1.07350161830136 -1.87191955663963 11.5731998814345 0.846232037446335 -1.99260468508355 11.5737428184989 0.530206341462936 -2.10562215975946 11.5739307274147 0.350870919845994 -2.14511063303663 11.5740643736582 0.0913984963291061 -2.17331284566684 11.5740017374569 -0.249768436690283 -2.1600832267787 11.5738600457498 -0.427786691724235 -2.13023466541813 11.5735245498468 -0.678091362923351 -2.05999492073136 11.5730382561754 -0.916258354649926 -1.95927074864282 11.5726402810888 -1.06387725591185 -1.87779673116517 11.5724069084199 -1.13828849166548 -1.83042107570412 11.571544204202 -1.36184123965859 -1.65786038681278 11.5709542557739 -1.4818649085799 -1.54218834189278 11.5709531825045 -1.48206452783629 -1.54197963006503 11.5709483328277 -1.48296575184593 -1.54103662258776 11.365553049389 1.62403270834909 -1.37699168252369 11.365557198034 1.62341016383075 -1.37779876401891 11.3655783791887 1.62022054148006 -1.38192090030229 11.3655883085774 1.61871883285807 -1.38385417522579 11.3658470278999 1.57808777792702 -1.43442608516907 11.3662473513895 1.50904112783837 -1.51343144076108 11.3665838946088 1.44439882471613 -1.5805582484588 11.3672985518324 1.28223100138777 -1.7252503735786 11.3677296161115 1.16292679108224 -1.81393643935856 11.3680094855134 1.0735885167451 -1.87208453743092 11.3685837128317 0.8463047094532 -1.99279215191579 11.3691135115838 0.530254263625451 -2.10583139125739 11.3692968741013 0.350903179917467 -2.14532762761831 11.3694272870444 0.0914070093480283 -2.17353543422749 11.3693661661756 -0.249791525208729 -2.16030318606959 11.3692279025133 -0.427825747065767 -2.13044872595511 11.3689005243476 -0.678151400206735 -2.0601952840707 11.3684259992838 -0.916335779453576 -1.95945192597308 11.3680376573184 -1.06396360862349 -1.87796278863266 11.3678099342999 -1.13837864578892 -1.83057850796512 11.3669681200804 -1.36193909314574 -1.65798746068003 11.3663924615636 -1.48196383106017 -1.54229601736117 11.3663914142947 -1.48216344981152 -1.54208727123695 11.3663866821037 -1.48306467143699 -1.54114410883237 0.55367883 0.69078275 0.558442995958592 0.691630200574814 0.555813423743865 0.69122045829246 0.557133580649734 0.691444411801358 0.561714195240008 0.691930171527613 0.559905384055049 0.691793798680701 0.560812452698011 0.691871446881161 0.5693963 0.6916342 0.565179065157814 0.691978411967244 0.56730349529679 0.691862488277301 0.575760441157504 0.690115264049866 0.573225383842737 0.690897078042944 0.571454677915561 0.691294539002376 0.580535470821911 0.687679143844734 0.57860999375511 0.688846310507519 0.577241576162368 0.689515295735039 0.583403528425449 0.685311831786704 0.582082308864227 0.686509389251865 0.581307185356126 0.687124220847626 0.587084813270479 0.680718288020093 0.585507298846882 0.682943667496911 0.584552166556094 0.684096683288942 0.591872613550153 0.670814033050775 0.589844475881932 0.675660519023188 0.588534011674084 0.678265175679753 0.59307675 0.66742789 0.592526606978707 0.669023460611982 0.592212807606451 0.669896988256572 0.593909167290605 0.664953675963996 0.593482436705868 0.666221371493342 0.593266226331167 0.66686425673789 0.595912292258761 0.659055839824978 0.595123336890474 0.661361925437067 0.594628182264364 0.662822692926227 0.5981687 0.65279432 0.597034280254818 0.655876445543337 0.596471353952953 0.657452544378672 0.599113545079743 0.65025232950052 0.598652929812855 0.651491557932466 0.598400048333989 0.652171904928312 0.60035469 0.64691319 0.59987955819533 0.648191469236762 0.599526574457574 0.649141126291983 0.602272496442653 0.641459358341833 0.601485486250156 0.643754965743803 0.600975668457252 0.645197802248197 0.609875901124084 0.611630757447247 0.606819514865311 0.625785432917038 0.604675714662786 0.633789169014884 0.612983757502479 0.593443878167867 0.611446379364436 0.60290008614865 0.610669089756237 0.60734617784134 0.61318127 0.59217018 0.613071670782899 0.592878560723046 0.613020849485952 0.593205682427002 0.613454602532188 0.590403147144828 0.613319895863081 0.591272934352889 0.613246464488119 0.59174794333772 0.615865270592698 0.575200528183971 0.614912383967096 0.581125055173646 0.614302627841255 0.584975331050007 0.61815104 0.56148505 0.617060341946007 0.567938356600093 0.616459427355585 0.571565785363625 0.619704552199201 0.552406391229385 0.618943502334286 0.556857337842138 0.618529402191359 0.55927620115526 0.62128791 0.54308159 0.620792431409812 0.546020410894564 0.620350871468725 0.548617702010376 0.622000743676933 0.538738887163246 0.621682387316751 0.540694777807649 0.621491779051435 0.541852934759163 0.626196129160615 0.508284020466012 0.624729333092439 0.520385024779948 0.623546105127976 0.528772793347252 0.627670732073834 0.46466228134557 0.627784845904954 0.487869290969052 0.628023143075783 0.476179286563377 0.62701822 0.45624486 0.627425150097098 0.460959442386271 0.627236069057885 0.458616382758946 0.619451240886078 0.410131629580822 0.624420386400193 0.435616083844784 0.62222669098664 0.423273470557356 0.612361326426256 0.381449780130372 0.616049491450027 0.395823981837373 0.617846104306842 0.403207918616152 0.609297860587819 0.370020242130715 0.611021453247147 0.376406237454043 0.611802551980739 0.379336884062241 0.60421347 0.35165085 0.606074116976567 0.358306677920355 0.607500183393113 0.363456023078499 0.601387555006221 0.341577403675895 0.602674098189219 0.346167152104897 0.603438063424707 0.348889534293158 0.59791576 0.32911896 0.599409315139883 0.334499790544364 0.600382461245175 0.337985586036285 0.588030771105816 0.290659941332366 0.592043823226323 0.30704667460556 0.594828717030456 0.317726950277152 0.57740334 0.22601628 0.58064678162108 0.253570238296497 0.583895018494921 0.271662857815048 0.57740334 3.46944695195361e-018 1.20676907 0 1.06912678552742 0 0.93148449709808 0 0.807606438513828 0 0.696116186399071 0 0.636759759624803 0 1.20676907 0.22601628 1.19614163363155 0.290659939797332 1.20233631869069 0.260712051635124 1.20502740558875 0.243065357966323 1.18625665 0.32911895 1.19104550654913 0.311254059646119 1.19368743920317 0.300848007632044 1.18278485474595 0.341577394560763 1.18437753212227 0.335882011615354 1.18533240708125 0.332455127360777 1.17995894 0.35165084 1.18119202618383 0.347258823473431 1.18196513045442 0.344502605167451 1.17487454732213 0.370020230653315 1.17756137743093 0.360240133651077 1.17884001081411 0.355645324962033 1.17181108032962 0.381449767861762 1.17281154248105 0.377676515113628 1.17372822862757 0.374255979429383 1.16472116397153 0.410131615670975 1.16737244955902 0.398869476243073 1.16935510297129 0.390923917709094 1.15715419 0.45624484 1.16056936054226 0.430713752465371 1.15865913128778 0.443042122029285 1.15680965029242 0.460183043874983 1.15695359299662 0.458427766826223 1.15705101525217 0.457334739595041 1.15618823 0.48072882 1.15623556256324 0.471473878747028 1.15644935093751 0.465807427361911 1.15770377174819 0.506063824231818 1.15659188492303 0.492261822880001 1.15706259388425 0.499111040887672 1.16182353748536 0.536411045142013 1.15959214089463 0.521491480012339 1.1585563480727 0.513591749215345 1.16431660337733 0.551540022700136 1.16287631898508 0.54292920737968 1.16232498193709 0.53954445474415 1.16482661 0.55452589 1.1646085884115 0.553252937246128 1.16446547103285 0.55241453980594 1.16788888234853 0.572720066171718 1.16671061443537 0.56562923160541 1.16588523733684 0.560732586218057 1.17055929004495 0.589376325329759 1.16926734873596 0.58119968993881 1.16862343453611 0.577210110792609 1.17087384 0.59140941 1.17073439670438 0.590505828148435 1.17064695340005 0.589941080670891 1.1711451525737 0.593162467933147 1.17102423722575 0.592383359292916 1.1709489373698 0.591896393441238 1.17433224279194 0.612034956614046 1.17305666108522 0.604922012452101 1.17221785429631 0.599902918108248 1.18202013954388 0.641734115061065 1.17727604378246 0.625708233522341 1.1793435178559 0.633323694301595 1.18514547453576 0.650493544781998 1.18336523405895 0.645599892902234 1.18269230952761 0.643687931100477 1.18548451 0.65140388 1.18533829164945 0.651011999529438 1.18524334499539 0.650756946394256 1.18835200447941 0.659262136302128 1.18727811300235 0.656266985281853 1.18650902754193 0.654164626811171 1.18972319 0.66326176 1.18910870292077 0.661435348787335 1.18876609642369 0.660442933053309 1.19034199744208 0.665137556196831 1.19002725904178 0.664184289516297 1.18986563014964 0.663694076061349 1.1916409 0.66902158 1.19116482218481 0.667615621014079 1.19080123766559 0.666524430779458 1.19235074284817 0.670975712718757 1.1920252080757 0.670098909077024 1.1918333118621 0.669566762200115 1.19718068974824 0.680826804111174 1.19490827034251 0.676853589931226 1.19362295772775 0.674109235625966 1.20085071207735 0.685398205381529 1.19912302962319 0.683490809285201 1.19819410521922 0.682292494780706 1.20292701545684 0.687210224474421 1.20203751240446 0.686492306650003 1.2014531526445 0.685973951718384 1.20575727 0.68899085 1.20441867194781 0.688238801738269 1.20365257219344 0.687737044967484 1.2073955008045 0.689743321469603 1.20646871192797 0.689336539606822 1.20692696501578 0.689543535373 1.21485283353482 0.691679414734434 1.21050509294612 0.69080602120797 1.21262179468248 0.691309189418095 1.22249535755445 0.691929773603968 1.21816992655055 0.69196686021519 1.22031439222984 0.692003233947811 1.22574790857607 0.6916254023652 1.2239383199604 0.691822862967471 1.22484276030587 0.691732879768255 1.23049356 0.69078273 1.22786716155931 0.69130662135128 1.22918485192797 0.691061520071871 1.23049356 1 1.17973245039044 1 1.12897134597814 1 1.08328635188956 1 1.04216985720562 1 1.00105336248562 1 0.959936867712224 1 0.918820372869268 1 0.87770387794175 1 0.836587382943535 1 0.79547088791151 1 0.754354392882199 1 0.713237897914398 1 0.672121402995225 1 0.631004908378162 1 0.59234186650704 1 0.55367883 1 0.57860999375511 0.22601628 0.582082308864227 0.22601628 0.592043823226323 0.22601628 0.592212807606451 0.22601628 0.59307675 0.22601628 0.593482436705868 0.22601628 0.60421347 0.22601628 0.621491779051435 0.22601628 0.636759759624803 0.22601628 0.672121402995225 0.22601628 0.696116186399071 0.22601628 0.713237897914398 0.22601628 0.754354392882199 0.22601628 0.807606438513828 0.22601628 0.836587382943535 0.22601628 0.87770387794175 0.22601628 0.93148449709808 0.22601628 0.959936867712224 0.22601628 1.00105336248562 0.22601628 1.04216985720562 0.22601628 1.06912678552742 0.22601628 1.08328635188956 0.22601628 1.12897134597814 0.22601628 1.15618823 0.22601628 1.15623556256324 0.22601628 1.15644935093751 0.22601628 0.582082308864227 0.260712051635124 0.592043823226323 0.260712051635124 0.592212807606451 0.260712051635124 0.59307675 0.260712051635124 0.593482436705868 0.260712051635124 0.60421347 0.260712051635124 0.621491779051435 0.260712051635124 0.636759759624803 0.260712051635124 0.672121402995225 0.260712051635124 0.696116186399071 0.260712051635124 0.713237897914398 0.260712051635124 0.754354392882199 0.260712051635124 0.807606438513828 0.260712051635124 0.836587382943535 0.260712051635124 0.87770387794175 0.260712051635124 0.93148449709808 0.260712051635124 0.959936867712224 0.260712051635124 1.00105336248562 0.260712051635124 1.04216985720562 0.260712051635124 1.06912678552742 0.260712051635124 1.08328635188956 0.260712051635124 1.12897134597814 0.260712051635124 1.15618823 0.260712051635124 1.15623556256324 0.260712051635124 1.15644935093751 0.260712051635124 0.592043823226323 0.290659941332366 0.592212807606451 0.290659941332366 0.59307675 0.290659941332366 0.593482436705868 0.290659941332366 0.60421347 0.290659941332366 0.621491779051435 0.290659941332366 0.636759759624803 0.290659941332366 0.672121402995225 0.290659941332366 0.696116186399071 0.290659941332366 0.713237897914398 0.290659941332366 0.754354392882199 0.290659941332366 0.807606438513828 0.290659941332366 0.836587382943535 0.290659941332366 0.87770387794175 0.290659941332366 0.93148449709808 0.290659941332366 0.959936867712224 0.290659941332366 1.00105336248562 0.290659941332366 1.04216985720562 0.290659941332366 1.06912678552742 0.290659941332366 1.08328635188956 0.290659941332366 1.12897134597814 0.290659941332366 1.15618823 0.290659941332366 1.15623556256324 0.290659941332366 1.15644935093751 0.290659941332366 0.592043823226323 0.300848007632044 0.592212807606451 0.300848007632044 0.59307675 0.300848007632044 0.593482436705868 0.300848007632044 0.60421347 0.300848007632044 0.621491779051435 0.300848007632044 0.636759759624803 0.300848007632044 0.672121402995225 0.300848007632044 0.696116186399071 0.300848007632044 0.713237897914398 0.300848007632044 0.754354392882199 0.300848007632044 0.807606438513828 0.300848007632044 0.836587382943535 0.300848007632044 0.87770387794175 0.300848007632044 0.93148449709808 0.300848007632044 0.959936867712224 0.300848007632044 1.00105336248562 0.300848007632044 1.04216985720562 0.300848007632044 1.06912678552742 0.300848007632044 1.08328635188956 0.300848007632044 1.12897134597814 0.300848007632044 1.15618823 0.300848007632044 1.15623556256324 0.300848007632044 1.15644935093751 0.300848007632044 0.60421347 0.32911895 0.621491779051435 0.32911895 0.636759759624803 0.32911895 0.672121402995225 0.32911895 0.696116186399071 0.32911895 0.713237897914398 0.32911895 0.754354392882199 0.32911895 0.807606438513828 0.32911895 0.836587382943535 0.32911895 0.87770387794175 0.32911895 0.93148449709808 0.32911895 0.959936867712224 0.32911895 1.00105336248562 0.32911895 1.04216985720562 0.32911895 1.06912678552742 0.32911895 1.08328635188956 0.32911895 1.12897134597814 0.32911895 1.15618823 0.32911895 1.15623556256324 0.32911895 1.15644935093751 0.32911895 0.621491779051435 0.358306677920355 0.636759759624803 0.358306677920355 0.672121402995225 0.358306677920355 0.696116186399071 0.358306677920355 0.713237897914398 0.358306677920355 0.754354392882199 0.358306677920355 0.807606438513828 0.358306677920355 0.836587382943535 0.358306677920355 0.87770387794175 0.358306677920355 0.93148449709808 0.358306677920355 0.959936867712224 0.358306677920355 1.00105336248562 0.358306677920355 1.04216985720562 0.358306677920355 1.06912678552742 0.358306677920355 1.08328635188956 0.358306677920355 1.12897134597814 0.358306677920355 1.15618823 0.358306677920355 1.15623556256324 0.358306677920355 1.15644935093751 0.358306677920355 0.621491779051435 0.398869476243073 0.636759759624803 0.398869476243073 0.672121402995225 0.398869476243073 0.696116186399071 0.398869476243073 0.713237897914398 0.398869476243073 0.754354392882199 0.398869476243073 0.807606438513828 0.398869476243073 0.836587382943535 0.398869476243073 0.87770387794175 0.398869476243073 0.93148449709808 0.398869476243073 0.959936867712224 0.398869476243073 1.00105336248562 0.398869476243073 1.04216985720562 0.398869476243073 1.06912678552742 0.398869476243073 1.08328635188956 0.398869476243073 1.12897134597814 0.398869476243073 1.15618823 0.398869476243073 1.15623556256324 0.398869476243073 1.15644935093751 0.398869476243073 0.636759759624803 0.430713752465371 0.672121402995225 0.430713752465371 0.696116186399071 0.430713752465371 0.713237897914398 0.430713752465371 0.754354392882199 0.430713752465371 0.807606438513828 0.430713752465371 0.836587382943535 0.430713752465371 0.87770387794175 0.430713752465371 0.93148449709808 0.430713752465371 0.959936867712224 0.430713752465371 1.00105336248562 0.430713752465371 1.04216985720562 0.430713752465371 1.06912678552742 0.430713752465371 1.08328635188956 0.430713752465371 1.12897134597814 0.430713752465371 1.15618823 0.430713752465371 1.15623556256324 0.430713752465371 1.15644935093751 0.430713752465371 0.636759759624803 0.443042122029285 0.672121402995225 0.443042122029285 0.696116186399071 0.443042122029285 0.713237897914398 0.443042122029285 0.754354392882199 0.443042122029285 0.807606438513828 0.443042122029285 0.836587382943535 0.443042122029285 0.87770387794175 0.443042122029285 0.93148449709808 0.443042122029285 0.959936867712224 0.443042122029285 1.00105336248562 0.443042122029285 1.04216985720562 0.443042122029285 1.06912678552742 0.443042122029285 1.08328635188956 0.443042122029285 1.12897134597814 0.443042122029285 1.15618823 0.443042122029285 1.15623556256324 0.443042122029285 1.15644935093751 0.443042122029285 0.636759759624803 0.458427766826223 0.672121402995225 0.458427766826223 0.696116186399071 0.458427766826223 0.713237897914398 0.458427766826223 0.754354392882199 0.458427766826223 0.807606438513828 0.458427766826223 0.836587382943535 0.458427766826223 0.87770387794175 0.458427766826223 0.93148449709808 0.458427766826223 0.959936867712224 0.458427766826223 1.00105336248562 0.458427766826223 1.04216985720562 0.458427766826223 1.06912678552742 0.458427766826223 1.08328635188956 0.458427766826223 1.12897134597814 0.458427766826223 1.15618823 0.458427766826223 1.15623556256324 0.458427766826223 1.15644935093751 0.458427766826223 0.636759759624803 0.492261822880001 0.672121402995225 0.492261822880001 0.696116186399071 0.492261822880001 0.713237897914398 0.492261822880001 0.754354392882199 0.492261822880001 0.807606438513828 0.492261822880001 0.836587382943535 0.492261822880001 0.87770387794175 0.492261822880001 0.93148449709808 0.492261822880001 0.959936867712224 0.492261822880001 1.00105336248562 0.492261822880001 1.04216985720562 0.492261822880001 1.06912678552742 0.492261822880001 1.08328635188956 0.492261822880001 1.12897134597814 0.492261822880001 1.15618823 0.492261822880001 1.15623556256324 0.492261822880001 1.15644935093751 0.492261822880001 0.636759759624803 0.508284020466012 0.672121402995225 0.508284020466012 0.696116186399071 0.508284020466012 0.713237897914398 0.508284020466012 0.754354392882199 0.508284020466012 0.807606438513828 0.508284020466012 0.836587382943535 0.508284020466012 0.87770387794175 0.508284020466012 0.93148449709808 0.508284020466012 0.959936867712224 0.508284020466012 1.00105336248562 0.508284020466012 1.04216985720562 0.508284020466012 1.06912678552742 0.508284020466012 1.08328635188956 0.508284020466012 1.12897134597814 0.508284020466012 1.15618823 0.508284020466012 1.15623556256324 0.508284020466012 1.15644935093751 0.508284020466012 0.621491779051435 0.552406391229385 0.636759759624803 0.552406391229385 0.672121402995225 0.552406391229385 0.696116186399071 0.552406391229385 0.713237897914398 0.552406391229385 0.754354392882199 0.552406391229385 0.807606438513828 0.552406391229385 0.836587382943535 0.552406391229385 0.87770387794175 0.552406391229385 0.93148449709808 0.552406391229385 0.959936867712224 0.552406391229385 1.00105336248562 0.552406391229385 1.04216985720562 0.552406391229385 1.06912678552742 0.552406391229385 1.08328635188956 0.552406391229385 1.12897134597814 0.552406391229385 1.15618823 0.552406391229385 1.15623556256324 0.552406391229385 1.15644935093751 0.552406391229385 0.621491779051435 0.590505828148435 0.636759759624803 0.590505828148435 0.672121402995225 0.590505828148435 0.696116186399071 0.590505828148435 0.713237897914398 0.590505828148435 0.754354392882199 0.590505828148435 0.807606438513828 0.590505828148435 0.836587382943535 0.590505828148435 0.87770387794175 0.590505828148435 0.93148449709808 0.590505828148435 0.959936867712224 0.590505828148435 1.00105336248562 0.590505828148435 1.04216985720562 0.590505828148435 1.06912678552742 0.590505828148435 1.08328635188956 0.590505828148435 1.12897134597814 0.590505828148435 1.15618823 0.590505828148435 1.15623556256324 0.590505828148435 1.15644935093751 0.590505828148435 0.621491779051435 0.591272934352889 0.636759759624803 0.591272934352889 0.672121402995225 0.591272934352889 0.696116186399071 0.591272934352889 0.713237897914398 0.591272934352889 0.754354392882199 0.591272934352889 0.807606438513828 0.591272934352889 0.836587382943535 0.591272934352889 0.87770387794175 0.591272934352889 0.93148449709808 0.591272934352889 0.959936867712224 0.591272934352889 1.00105336248562 0.591272934352889 1.04216985720562 0.591272934352889 1.06912678552742 0.591272934352889 1.08328635188956 0.591272934352889 1.12897134597814 0.591272934352889 1.15618823 0.591272934352889 1.15623556256324 0.591272934352889 1.15644935093751 0.591272934352889 0.621491779051435 0.592383359292916 0.636759759624803 0.592383359292916 0.672121402995225 0.592383359292916 0.696116186399071 0.592383359292916 0.713237897914398 0.592383359292916 0.754354392882199 0.592383359292916 0.807606438513828 0.592383359292916 0.836587382943535 0.592383359292916 0.87770387794175 0.592383359292916 0.93148449709808 0.592383359292916 0.959936867712224 0.592383359292916 1.00105336248562 0.592383359292916 1.04216985720562 0.592383359292916 1.06912678552742 0.592383359292916 1.08328635188956 0.592383359292916 1.12897134597814 0.592383359292916 1.15618823 0.592383359292916 1.15623556256324 0.592383359292916 1.15644935093751 0.592383359292916 0.60421347 0.641734115061065 0.621491779051435 0.641734115061065 0.636759759624803 0.641734115061065 0.672121402995225 0.641734115061065 0.696116186399071 0.641734115061065 0.713237897914398 0.641734115061065 0.754354392882199 0.641734115061065 0.807606438513828 0.641734115061065 0.836587382943535 0.641734115061065 0.87770387794175 0.641734115061065 0.93148449709808 0.641734115061065 0.959936867712224 0.641734115061065 1.00105336248562 0.641734115061065 1.04216985720562 0.641734115061065 1.06912678552742 0.641734115061065 1.08328635188956 0.641734115061065 1.12897134597814 0.641734115061065 1.15618823 0.641734115061065 1.15623556256324 0.641734115061065 1.15644935093751 0.641734115061065 0.60421347 0.643687931100477 0.621491779051435 0.643687931100477 0.636759759624803 0.643687931100477 0.672121402995225 0.643687931100477 0.696116186399071 0.643687931100477 0.713237897914398 0.643687931100477 0.754354392882199 0.643687931100477 0.807606438513828 0.643687931100477 0.836587382943535 0.643687931100477 0.87770387794175 0.643687931100477 0.93148449709808 0.643687931100477 0.959936867712224 0.643687931100477 1.00105336248562 0.643687931100477 1.04216985720562 0.643687931100477 1.06912678552742 0.643687931100477 1.08328635188956 0.643687931100477 1.12897134597814 0.643687931100477 1.15618823 0.643687931100477 1.15623556256324 0.643687931100477 1.15644935093751 0.643687931100477 0.60421347 0.65025232950052 0.621491779051435 0.65025232950052 0.636759759624803 0.65025232950052 0.672121402995225 0.65025232950052 0.696116186399071 0.65025232950052 0.713237897914398 0.65025232950052 0.754354392882199 0.65025232950052 0.807606438513828 0.65025232950052 0.836587382943535 0.65025232950052 0.87770387794175 0.65025232950052 0.93148449709808 0.65025232950052 0.959936867712224 0.65025232950052 1.00105336248562 0.65025232950052 1.04216985720562 0.65025232950052 1.06912678552742 0.65025232950052 1.08328635188956 0.65025232950052 1.12897134597814 0.65025232950052 1.15618823 0.65025232950052 1.15623556256324 0.65025232950052 1.15644935093751 0.65025232950052 0.60421347 0.664953675963996 0.621491779051435 0.664953675963996 0.636759759624803 0.664953675963996 0.672121402995225 0.664953675963996 0.696116186399071 0.664953675963996 0.713237897914398 0.664953675963996 0.754354392882199 0.664953675963996 0.807606438513828 0.664953675963996 0.836587382943535 0.664953675963996 0.87770387794175 0.664953675963996 0.93148449709808 0.664953675963996 0.959936867712224 0.664953675963996 1.00105336248562 0.664953675963996 1.04216985720562 0.664953675963996 1.06912678552742 0.664953675963996 1.08328635188956 0.664953675963996 1.12897134597814 0.664953675963996 1.15618823 0.664953675963996 1.15623556256324 0.664953675963996 1.15644935093751 0.664953675963996 0.592043823226323 0.680718288020093 0.592212807606451 0.680718288020093 0.59307675 0.680718288020093 0.593482436705868 0.680718288020093 0.60421347 0.680718288020093 0.621491779051435 0.680718288020093 0.636759759624803 0.680718288020093 0.672121402995225 0.680718288020093 0.696116186399071 0.680718288020093 0.713237897914398 0.680718288020093 0.754354392882199 0.680718288020093 0.807606438513828 0.680718288020093 0.836587382943535 0.680718288020093 0.87770387794175 0.680718288020093 0.93148449709808 0.680718288020093 0.959936867712224 0.680718288020093 1.00105336248562 0.680718288020093 1.04216985720562 0.680718288020093 1.06912678552742 0.680718288020093 1.08328635188956 0.680718288020093 1.12897134597814 0.680718288020093 1.15618823 0.680718288020093 1.15623556256324 0.680718288020093 1.15644935093751 0.680718288020093 104 107 240 240 241 105 241 240 107 105 241 242 240 105 104 107 242 241 244 105 243 243 242 107 267 266 105 267 105 268 270 269 105 266 267 106 243 107 244 105 242 243 107 245 244 105 266 106 101 106 291 291 315 101 315 291 292 102 315 316 315 102 101 106 292 291 106 294 293 269 268 105 292 293 316 292 106 293 102 316 317 292 316 315 106 269 270 106 268 269 106 267 268 317 316 293 105 244 245 246 271 105 245 107 246 271 270 105 271 246 247 271 247 272 106 271 272 246 113 247 270 271 106 248 272 247 248 113 249 248 273 272 273 248 249 273 249 274 272 273 297 113 112 249 248 247 113 107 113 246 272 296 106 294 295 319 106 295 294 317 318 102 318 317 294 319 318 294 318 319 102 295 296 319 317 293 294 272 297 296 295 106 296 297 274 298 296 297 321 296 321 320 321 297 298 341 321 322 102 320 103 274 275 298 296 320 319 297 273 274 319 320 102 249 250 274 245 246 105 341 320 321 99 98 339 99 340 100 95 100 340 103 339 98 95 341 96 340 339 103 97 360 359 92 97 359 96 360 97 340 99 339 320 340 103 94 93 359 360 90 89 360 91 90 94 359 89 378 87 379 86 91 361 86 379 87 83 88 379 378 88 87 379 88 378 89 359 360 93 92 359 341 95 340 84 85 397 360 96 341 415 80 84 433 82 80 380 379 86 83 398 85 91 360 361 397 415 84 398 415 397 416 433 415 415 433 80 380 83 379 398 397 85 360 341 342 82 433 81 75 74 469 76 489 71 71 488 72 76 75 470 81 433 77 79 77 434 451 469 74 451 78 79 452 469 451 451 74 78 452 451 79 75 469 470 433 434 77 320 341 340 322 321 298 275 274 250 250 112 251 299 275 276 251 275 250 276 275 251 299 322 298 112 252 251 299 298 275 276 252 277 252 276 251 300 277 301 277 300 276 301 277 278 300 301 325 252 253 277 276 300 299 112 111 252 299 300 324 322 323 343 323 322 299 342 343 361 343 342 322 361 343 362 342 361 360 323 324 343 322 342 341 324 325 344 325 324 300 362 344 363 362 343 344 345 363 344 362 363 382 344 325 345 344 343 324 323 299 324 361 362 381 301 302 325 250 249 112 278 277 253 253 111 254 302 278 279 254 278 253 279 278 254 326 325 302 111 255 254 302 301 278 279 255 280 255 279 254 303 280 304 280 303 279 304 280 281 303 304 328 255 256 280 279 303 302 111 110 255 302 303 327 345 326 346 345 325 326 364 346 365 346 364 345 365 346 347 364 365 384 326 327 346 345 364 363 327 328 347 328 327 303 347 328 348 327 347 346 366 348 367 348 366 347 367 348 349 366 367 386 328 329 348 347 366 365 326 302 327 365 366 385 304 305 328 253 252 111 363 364 383 380 381 399 381 380 361 398 399 416 399 398 380 416 399 417 398 416 415 381 382 399 380 398 83 382 383 401 383 382 363 418 417 400 417 399 400 401 400 382 419 400 401 383 384 401 400 399 382 381 362 382 416 417 435 434 435 453 434 416 435 452 453 470 453 452 434 470 453 471 452 470 469 435 436 453 434 452 79 418 419 436 419 418 400 454 436 437 454 453 436 471 454 472 471 453 454 455 472 454 471 490 470 437 436 419 436 435 418 417 418 435 489 76 470 401 402 419 416 434 433 384 385 402 385 384 365 419 420 437 419 402 420 403 420 402 438 437 420 402 385 403 402 401 384 403 386 404 386 403 385 421 404 422 404 421 403 422 404 405 439 420 421 386 387 404 403 421 420 385 366 386 440 421 422 455 438 456 438 455 437 473 456 474 456 473 455 474 456 457 492 472 473 438 439 456 455 473 472 439 440 457 440 439 421 457 440 458 439 457 456 475 458 476 458 475 457 476 458 459 494 474 475 440 441 458 457 475 474 438 420 439 493 473 474 422 423 440 437 455 454 383 364 384 491 471 472 367 368 386 361 380 86 495 475 476 44 563 45 563 44 49 46 45 583 583 45 563 46 583 41 583 563 564 565 48 47 603 583 584 563 49 564 49 48 564 603 604 36 603 35 40 37 624 623 35 603 36 40 39 603 42 41 603 38 43 603 603 43 42 38 603 39 41 583 603 36 624 37 52 545 47 66 488 67 62 488 63 62 67 488 66 65 487 488 69 68 487 70 488 69 488 70 70 487 65 68 73 488 64 63 489 58 57 525 54 53 544 55 54 544 58 544 53 507 59 64 59 507 60 61 60 507 61 506 56 525 57 56 50 55 544 50 544 51 51 545 52 16 649 11 13 236 8 650 13 12 647 18 17 647 14 19 14 648 15 19 18 647 15 648 16 3 4 239 239 2 6 2 239 4 239 6 7 3 239 1 237 238 10 238 9 10 5 9 239 7 5 239 9 238 239 10 8 237 17 22 646 26 31 623 27 26 623 28 27 623 31 30 623 33 32 623 29 34 623 623 34 33 29 623 30 32 37 623 28 623 23 24 23 647 20 25 643 21 20 643 24 646 25 645 21 644 644 643 25 645 644 25 646 21 645 12 11 649 646 647 17 647 646 24 647 648 14 645 25 646 644 21 643 23 623 647 22 21 646 647 623 624 488 66 487 508 64 489 488 73 72 506 507 525 506 61 507 526 525 507 506 525 56 508 507 64 63 488 489 490 491 510 489 470 490 527 507 508 509 508 490 510 509 490 528 508 509 491 492 510 490 508 489 71 489 488 528 509 510 544 526 545 526 544 525 48 565 564 545 546 47 546 566 47 564 565 585 526 527 545 545 51 544 527 528 546 528 527 508 546 528 547 527 546 545 566 547 567 547 566 546 548 567 547 566 567 587 547 528 529 566 565 47 526 507 527 565 566 586 529 528 510 525 544 58 492 493 511 491 472 492 529 511 530 529 510 511 512 530 511 529 530 549 511 493 512 511 510 492 494 495 514 493 474 494 530 512 531 513 512 494 514 513 494 532 512 513 495 496 514 494 512 493 473 493 492 533 513 514 529 549 548 549 530 531 568 549 569 549 568 548 550 569 549 568 569 589 549 531 550 548 568 567 551 550 532 532 550 531 533 532 513 552 532 533 571 570 551 551 570 550 552 551 532 572 551 552 533 534 552 550 570 569 531 512 532 569 570 590 514 515 533 529 548 547 471 491 490 567 568 588 584 585 605 584 564 585 584 605 604 605 585 586 605 586 606 604 605 625 565 586 585 584 604 603 587 588 608 587 567 588 606 607 627 607 606 587 608 607 587 607 608 628 588 589 608 587 606 586 566 587 586 605 606 626 624 625 649 625 624 604 12 649 650 649 648 624 8 236 237 649 16 648 625 626 649 624 648 647 626 627 651 627 626 606 628 627 607 627 628 651 651 236 13 651 650 626 235 236 651 13 650 651 651 628 652 626 650 649 625 605 626 608 609 628 604 624 36 569 590 589 589 588 568 609 590 610 590 609 589 591 610 590 609 610 630 590 571 591 629 628 609 591 572 592 572 591 571 611 592 612 592 611 591 612 592 593 611 612 631 572 573 592 591 611 610 571 551 572 610 611 631 652 629 653 652 628 629 652 234 235 234 652 653 234 653 233 629 630 653 652 235 651 630 631 654 631 630 610 654 631 655 654 233 653 654 232 233 232 654 655 656 232 655 655 631 632 654 653 630 629 609 630 632 631 612 609 608 589 590 570 571 552 553 572 564 584 583 475 495 494 476 477 495 281 280 256 256 110 257 305 281 282 257 281 256 282 281 257 329 328 305 110 258 257 305 304 281 258 259 283 109 259 258 282 283 306 283 282 258 306 283 307 282 306 305 283 284 307 258 282 257 258 110 109 305 306 330 329 330 350 329 305 330 349 350 368 350 349 329 368 350 369 387 386 368 330 331 350 368 367 349 351 350 331 308 331 307 369 351 370 369 350 351 352 370 351 369 370 389 351 331 332 331 330 307 306 307 330 368 369 388 283 259 284 349 348 329 260 284 259 260 109 261 284 285 308 285 284 260 308 285 309 284 308 307 260 261 285 260 259 109 261 262 287 262 261 109 310 309 286 309 285 286 287 286 261 311 286 287 262 263 287 286 285 261 109 108 262 308 309 333 332 333 353 332 308 333 352 353 371 353 352 332 372 371 353 352 371 370 333 334 353 332 352 351 310 311 334 311 310 286 334 311 335 310 334 333 354 335 355 335 354 334 355 335 336 373 353 354 311 312 335 334 354 353 309 310 333 374 354 355 287 288 311 308 332 331 370 371 390 387 388 405 387 368 388 441 440 423 406 423 405 424 441 423 459 458 441 406 405 388 423 422 405 406 389 407 389 406 388 424 407 425 407 424 406 425 407 408 441 424 442 389 390 407 406 424 423 369 389 388 443 424 425 459 442 460 442 459 441 496 477 478 460 477 459 478 477 460 515 514 496 442 443 460 496 495 477 460 461 478 461 460 443 461 443 444 478 461 479 497 479 498 479 497 478 498 479 480 497 498 517 461 462 479 478 497 496 442 424 443 496 497 516 425 426 443 477 476 459 390 372 391 390 389 370 426 408 409 391 408 390 409 408 391 408 426 425 372 373 391 390 408 407 373 374 392 374 373 354 409 392 410 409 391 392 393 410 392 426 409 427 410 411 428 392 391 373 372 353 373 428 409 410 444 427 445 427 444 426 480 462 463 445 462 444 463 462 445 462 480 479 427 428 445 444 462 461 445 446 463 446 445 428 429 446 428 463 446 464 481 464 482 464 481 463 465 482 464 500 480 481 464 446 447 463 481 480 427 409 428 498 480 499 393 392 374 426 444 443 390 371 372 482 501 481 355 356 374 405 404 387 263 264 288 264 263 108 336 335 312 289 312 288 313 336 312 356 355 336 289 288 264 312 311 288 289 265 290 265 289 264 313 290 314 290 313 289 314 290 115 336 313 337 265 117 290 289 313 312 264 108 265 338 313 314 126 375 356 374 356 375 394 393 135 375 132 374 131 130 374 393 394 133 357 356 337 356 336 337 357 338 358 338 357 337 377 376 125 126 356 357 358 126 357 127 375 376 338 119 358 375 125 376 337 313 338 127 376 377 314 120 338 288 287 263 120 119 338 358 118 123 118 358 119 123 122 358 115 120 314 116 115 290 290 117 116 265 114 117 122 121 358 132 375 127 135 393 130 393 374 130 374 132 131 126 125 375 124 377 125 128 377 129 129 377 124 121 126 358 377 128 127 265 108 114 263 262 108 394 135 395 412 411 133 133 394 395 429 412 430 412 429 411 413 430 412 136 447 429 413 412 133 411 429 428 414 413 133 411 393 133 431 414 432 414 431 413 432 414 138 136 430 431 133 395 396 413 431 430 395 135 396 430 136 429 143 465 447 136 448 447 147 483 465 143 142 465 466 465 142 465 483 482 143 447 144 447 465 464 142 468 467 448 139 447 449 139 448 142 467 466 485 484 145 147 465 466 466 467 147 484 485 150 483 145 484 449 448 141 483 484 150 431 432 136 429 447 446 450 141 140 450 449 141 144 447 139 140 139 450 139 449 450 134 133 396 141 448 136 137 138 414 133 137 414 432 138 136 468 146 147 468 142 146 485 145 486 483 147 145 486 145 150 147 467 468 149 502 483 149 483 150 153 152 502 153 502 148 149 148 502 485 486 150 396 135 134 482 483 502 393 411 410 505 152 151 515 516 535 515 496 516 515 535 534 535 516 517 535 517 536 534 535 554 497 517 516 553 552 534 499 500 519 500 499 480 537 536 518 536 517 518 519 518 499 538 518 519 500 501 519 518 517 499 499 517 498 535 536 555 553 554 574 553 534 554 553 574 573 574 554 555 574 555 575 573 574 594 535 555 554 593 592 573 537 538 556 538 537 518 575 556 576 575 555 556 557 576 556 575 576 596 556 538 557 556 555 537 537 555 536 574 575 595 519 520 538 573 572 553 501 502 521 502 501 482 520 521 539 521 520 501 539 521 540 539 557 538 521 502 157 539 538 520 502 503 159 504 503 152 541 540 522 540 521 522 161 523 522 542 522 523 503 504 154 162 522 521 502 152 503 539 540 559 557 558 578 557 539 558 557 578 577 578 558 559 578 559 579 577 578 598 539 559 558 557 577 576 541 542 560 542 541 522 560 542 561 559 169 579 579 173 580 559 560 170 581 580 173 579 580 600 542 543 561 560 559 541 541 559 540 578 579 599 523 524 542 520 519 501 500 481 501 576 577 597 593 594 613 593 573 594 632 613 633 632 612 613 614 633 613 632 633 657 613 594 614 612 593 613 595 596 616 595 575 596 633 614 634 615 614 595 616 615 595 635 614 615 596 597 616 595 614 594 574 595 594 636 615 616 632 657 656 657 633 634 656 230 231 230 656 657 229 230 657 657 634 658 656 231 232 659 658 635 635 658 634 636 635 615 659 635 636 229 659 228 659 229 658 660 228 659 659 636 660 658 229 657 634 614 635 616 617 636 632 656 655 597 598 618 597 577 598 617 618 637 618 617 597 638 637 618 637 660 636 598 599 618 637 636 617 579 600 599 599 598 578 619 600 620 600 619 599 601 620 600 639 618 619 620 621 640 599 619 618 596 576 597 640 619 620 637 661 660 661 637 638 226 227 661 661 227 660 662 661 638 226 661 662 638 639 662 660 227 228 639 640 663 640 639 619 663 640 664 662 213 226 226 211 225 662 663 213 212 663 664 664 640 641 663 662 639 638 618 639 581 601 600 617 616 597 580 581 600 171 560 561 533 515 534 505 156 155 156 505 151 159 503 154 154 505 155 159 158 502 162 521 157 523 161 524 522 162 161 502 158 157 524 161 160 562 561 543 543 524 164 621 601 602 561 562 171 601 581 582 601 621 620 543 163 562 542 524 543 164 163 543 169 173 579 582 602 601 172 602 582 176 622 602 602 622 621 163 168 562 164 524 165 524 160 165 642 621 622 154 504 505 168 167 562 170 560 171 166 171 562 167 166 562 173 582 581 172 177 602 174 172 582 173 174 582 169 559 170 180 622 175 183 622 178 178 622 179 179 622 180 622 182 642 642 182 181 642 186 185 186 642 181 622 183 182 175 622 176 177 176 602 184 642 185 189 188 642 642 666 641 641 621 642 187 642 188 192 642 187 642 184 189 192 191 642 195 194 642 190 195 642 191 190 642 193 642 194 193 198 666 226 213 211 665 641 666 665 666 208 665 208 664 666 198 197 666 642 193 196 201 666 197 196 666 199 204 666 200 199 666 201 200 666 204 203 666 641 665 664 207 666 202 209 666 205 205 666 206 206 666 207 208 666 210 663 212 213 664 208 212 210 666 209 215 224 211 216 214 223 215 216 223 215 223 224 221 222 223 217 221 223 218 219 223 223 219 217 218 223 214 222 220 223 225 211 224 202 666 203 621 641 640 504 152 505 256 255 110 
-267 463 1 0.387398725351434
-7.21279194058922 1.75566519138962 -1.18857467445427 11.2339734254601 1.75393602555749 -1.1875290010296 7.21279194058922 1.34821630603684 1.41444156518237 7.21279194058922 1.62850547425138 1.11537204582619 7.21279194058922 1.83584575592573 0.782494401699211 7.21279194058922 1.97048372236408 0.435829826602684 7.21279194058922 2.04193169573555 0.052968912069587 7.21279194058922 2.03789700608067 -0.353452976169501 7.21279194058922 1.9488382243206 -0.766378563289336 7.21279194058922 1.86504751897336 -0.981200351223331 20.1549001573063 1.36866520500811 1.41444156718237 20.1549001573063 1.88246508154141 0.702067315424064 20.1549001573063 2.04543979948981 -0.275796227278505 20.1549001573063 1.93251079173511 -0.803637163891062 20.1549001573063 1.67227319742871 -1.30306890389245 17.2459916335156 1.67360538724199 -1.3040721061901 16.7625991892966 1.75436858685814 -1.18146817674002 17.0350076836168 1.71202949944338 -1.2481201972249 16.8999718861773 1.73398167120664 -1.21427146112902 15.4046094265513 1.88092055974603 -0.9381939196926 16.1765899134382 1.82347364035735 -1.05856225745182 15.7951136914526 1.85579317663118 -0.993335758020724 14.0214147184814 1.92383994562749 -0.832597821203398 14.6607528960136 1.91159614027097 -0.86435123866858 15.0420292026598 1.89837313306859 -0.89715110812939 13.0936597392712 1.92471312491465 -0.831011182606773 13.6090928440845 1.92731456149223 -0.823468014497094 13.3513800842622 1.92698422073325 -0.824591088364988 11.7544104008045 1.87810315470511 -0.947904219070532 12.4984939249392 1.91178626757936 -0.865711758215816 12.1264748436296 1.89764302507642 -0.901489445835785 11.7218000636523 1.87507838103017 -0.95479830520242 11.7394411343865 1.87674949907579 -0.950990284186286 11.7474116721448 1.8774818451661 -0.94932248306639 11.7106499732683 1.87402286085446 -0.957189877704144 11.7148282055021 1.87441917939667 -0.956293752664951 11.7179957137033 1.8747203774982 -0.955610528418402 11.6720086193906 1.87055058284638 -0.964993759678242 11.6978628252071 1.87285771818337 -0.959816867437028 11.6845587320126 1.87167014152274 -0.962486571141833 11.6087807714995 1.86418755123253 -0.979072878586238 11.6399648907971 1.86755583570796 -0.971662113671306 11.6541275370485 1.86893617226193 -0.968587732885848 11.5825224317067 1.8612208585644 -0.985540024529965 11.5970705547114 1.86293266310175 -0.981816119588881 11.5897426557683 1.86210640995082 -0.983616280235666 11.567654823367 1.85950792170499 -0.989247396559192 11.5757666065409 1.86049537000134 -0.987113000393695 11.5716582419467 1.86001256377532 -0.988157529337878 11.52340267575 1.85388136264107 -1.00128923936046 11.540243037488 1.85616913294944 -0.996410035419285 11.5520301676041 1.85764174710785 -0.993258535161004 11.4889218416215 1.84866451038626 -1.01226962503403 11.5075790195456 1.85157090300864 -1.00617272612909 11.4980915290024 1.85013203174687 -1.00919775247045 11.4377184328134 1.83985132994319 -1.0304467840569 11.4548341856329 1.84301897680234 -1.02396532326718 11.4679208326056 1.84522537563198 -1.01941154995699 11.3800477743783 1.8269038501845 -1.05634369821163 11.4067981820323 1.83344352140854 -1.04338194892659 11.422110330453 1.83681292144816 -1.03660090915193 11.3205173885153 1.80812062662728 -1.09235827710965 11.3517249297822 1.81900320975726 -1.07170700143696 11.3355893765422 1.81372331997687 -1.08179818216978 11.241991866609 1.76167618021327 -1.17463542909946 11.282497515071 1.79042449033645 -1.12476719576071 11.2614584884042 1.77721509519874 -1.14808555516162 11.2374721701397 1.75744672924547 -1.18170739401719 11.2397128243493 1.75958284549763 -1.17814309372062 17.2325603477897 1.64107529150974 1.11315255847559 17.2350980180775 1.84500211288046 0.779042392472175 17.235620875326 1.88001419326301 0.703115340587115 17.237366712839 1.97636457307881 0.432039445477203 17.2395793292164 2.04457218154123 0.0496504705459834 17.2412866774031 2.0453710527204 -0.275113871766205 17.2416893982722 2.03759349130537 -0.355490238396126 17.2436456614529 1.94615865876156 -0.766425291109848 17.2438154039056 1.93334080558262 -0.803684987487064 17.2440888407638 1.91077451624366 -0.864244932340811 17.2444592537183 1.87619031205868 -0.947342886911179 17.2444656752727 1.87554789670174 -0.948794246675495 17.2444932443638 1.87277272519466 -0.955029406792242 17.244616164144 1.86005637599637 -0.982911776488077 17.2452270471649 1.78796950495909 -1.12347368436093 17.0211538275896 1.64081008166956 1.11319938726315 17.0238177102226 1.84480908768206 0.779115164238385 17.0243665841747 1.87983683444132 0.703191181378948 17.0261993223329 1.97624069316508 0.432119289677175 17.0285221400795 2.04451660113677 0.0497203214523086 17.0303145750217 2.04536607554639 -0.275064462973715 17.0307373721761 2.03759987563837 -0.355447385843121 17.0327911932135 1.94621498489244 -0.766424308928689 17.032969403372 1.93340092298706 -0.803688451473368 17.0332564817134 1.91084050840396 -0.86425584103391 17.0336453759964 1.87626376343081 -0.947364442662659 17.0336521179652 1.87562147196511 -0.948815992760008 17.0336810626703 1.87284683015731 -0.95505197225694 17.0338101159146 1.8601327986731 -0.982938039563465 17.0344514842387 1.78805628599477 -1.12351940860789 16.1614671918657 1.63973160325657 1.11338981705925 16.164564556402 1.84402407587573 0.779411118925577 16.1652028035466 1.87911552221288 0.703499623354049 16.1673341085891 1.97573684556758 0.432444034132535 16.1700356448902 2.04429052466034 0.0500044439472722 16.1721205633207 2.0453458291631 -0.274863477326798 16.1726123815656 2.03762584606606 -0.35527306715331 16.1750016517765 1.94644412836508 -0.766420313116388 16.1752089818233 1.93364549148404 -0.803702543467857 16.1755429736744 1.91110897917935 -0.864300219916757 16.1759954284899 1.87656258401268 -0.947452137370662 16.1760032724469 1.87592079664165 -0.948904461817029 16.1760369482549 1.87314831010394 -0.955143774876076 16.1761870963211 1.86044370914159 -0.983044885600681 15.7796143854261 1.63925256819998 1.1134744015882 15.7828632211977 1.8436753543064 0.779542589327464 15.7835327074333 1.87879509044903 0.703636643957615 15.7857683956447 1.9755130024832 0.432588307549915 15.7886023892097 2.04419007675738 0.0501306822084533 15.7907896437851 2.04533683276138 -0.274774171047505 15.7913056166459 2.03763738589214 -0.355195608778437 15.7938123080001 1.94654595633111 -0.766418537361205 15.7940298333577 1.93375417489232 -0.80370880572031 15.7943802510529 1.91122828587805 -0.864319941554811 15.7948549617549 1.87669538007116 -0.947491108916181 15.7948631915903 1.87605381675655 -0.948943777494765 15.7948985240735 1.87328228818005 -0.955184572040395 15.795056058956 1.86058187887793 -0.983092368332858 15.3888205354287 1.63876231656722 1.11356096668251 15.3921982270155 1.84331844351657 0.779677147149285 15.3928942949505 1.87846712927721 0.703776884256759 15.3952188207308 1.9752838890212 0.432735977897832 15.3981655819536 2.04408725776856 0.0502599003190722 15.4004399888182 2.04532762352473 -0.274682752560169 15.4009765360073 2.03764919870432 -0.355116317563913 15.4035832634005 1.94665019902912 -0.766416719448047 15.403809476099 1.93386543610489 -0.803715216461314 15.4041738906331 1.91135042323819 -0.864340131072406 15.0260381901968 1.63830720540236 1.11364132694826 15.0295118116776 1.84298709386675 0.779802068271045 15.0302276758025 1.87816265183508 0.703907082643952 15.0326183783853 1.97507117169528 0.432873080471286 15.0356491795354 2.04399179138152 0.0503798780034477 15.0379885648862 2.04531907241297 -0.274597867689609 15.038540455361 2.0376601673122 -0.355042692468552 15.0412218040879 1.94674699734339 -0.766415031315804 15.041454498589 1.93396875216989 -0.803721169373722 15.0418293569639 1.91146383959192 -0.864358878961268 14.6446067872059 1.63782869893875 1.11372581821052 14.6481566694236 1.8426386884646 0.779933419556478 14.6488882789786 1.87784249758686 0.70404398465632 14.6513316373098 1.97484749211747 0.433017248555402 14.6544293523765 2.04389139950964 0.0505060457865826 14.6568205088209 2.04531007967019 -0.27450859939789 14.6573846282748 2.0376717023859 -0.354965264602769 14.6601254756067 1.94684880027952 -0.766413255859394 14.6603633401516 1.93407741030834 -0.803727430048207 14.0051521862262 1.63702650180932 1.11386746451599 14.0087733357644 1.84205454886459 0.780153644352231 14.0095196829856 1.87730571431877 0.704273520040656 14.0120123843245 1.97447243920211 0.433258981258339 14.0151729304446 2.04372305517337 0.0507176129853245 14.0176127959273 2.04529499896464 -0.274358898959869 14.0181884333404 2.03769104650114 -0.354835418389153 14.0209853865349 1.94701953476417 -0.766410278124039 14.021228131522 1.9342596427959 -0.80373792984431 13.5928499031137 1.63650926770798 1.11395879409487 13.5964794142577 1.84167787773684 0.780295652093047 13.5972275171214 1.87695957349254 0.704421534318459 13.5997261619615 1.97423057381937 0.433414870679979 13.6028944207634 2.04361448402255 0.0508540600430484 13.605340375469 2.04528527221216 -0.274262345980033 13.6059174666909 2.03770352304683 -0.354751669657138 13.6087215771254 1.94712966334829 -0.766408357334034 13.6089649505858 1.93437718864259 -0.803744702493603 13.3351722750375 1.63618601057234 1.11401587257715 13.3387920453272 1.84144245493723 0.780384408190234 13.3395381605412 1.87674322981355 0.704514045661808 13.3420302164813 1.97407939795735 0.433512308012123 13.3451902308391 2.04354661913053 0.050939349416867 13.347629904986 2.04527919205324 -0.274201990957175 13.3482055251026 2.03771132218676 -0.354699318054378 13.3510025455874 1.94719850818854 -0.766407156593062 13.3512453082529 1.93445067053233 -0.803748936310451 12.4825379870664 1.63511637909885 1.11420474056296 12.486043443174 1.8406633851998 0.780678123046364 12.4867660601178 1.87602728321462 0.7048201935846 12.4891797904819 1.97357907826727 0.433834778874478 12.4922408386092 2.04332200008531 0.0512216400553825 12.4946043766624 2.04525906683722 -0.274002215074103 12.4951620674707 2.03773713805467 -0.354526030956852 12.4978721535839 1.94742640628596 -0.766403181894052 12.4981073855339 1.93469392027985 -0.803762951781421 12.4984863462307 1.91225992267019 -0.864490472114568 12.1107082019713 1.63464991789735 1.11428710496858 12.1141243251626 1.84032360055837 0.780806224251465 12.1148285543464 1.87571502236997 0.704953720285196 12.1171809326189 1.97336084740337 0.433975435114776 12.1201643253827 2.043224016086 0.0513447817739818 12.1224680180587 2.04525028721484 -0.27391506198665 12.1230116026009 2.03774840063476 -0.354450432447735 12.1256532190256 1.94752583782613 -0.766401447803168 12.1258825141074 1.93480005046705 -0.80376906680504 12.1262519125456 1.91237643461077 -0.864509731676997 11.7388965480464 1.63418347946032 1.11436946533926 11.7421993629137 1.83998381061441 0.780934327436292 11.742880260216 1.87540275250773 0.705087250823333 11.745154767242 1.97314260056812 0.43411610163898 11.7480395454299 2.04312601943182 0.0514679394223756 11.7502672018384 2.04524150613054 -0.273827893847004 11.7507928588167 2.03775966534031 -0.354374820111386 11.7533474308215 1.94762529262592 -0.766399713345091 11.7535691763648 1.93490620593607 -0.80377518331879 11.7539264143814 1.91249297511262 -0.864528995986792 11.7239472294771 1.63416472551174 1.11437277677735 11.7272449871141 1.83997014832565 0.78093947821428 11.7279248428977 1.87539019666094 0.70509261986166 11.7301958734108 1.97313382502714 0.434121757733834 11.7330762481381 2.04312207894542 0.0514728916434048 11.7353005086104 2.04524115303261 -0.273824388700294 11.7358253648215 2.03776011831285 -0.354371779622761 11.7383760483656 1.94762929196288 -0.766399643598811 11.7385974566185 1.93491047473394 -0.803775429281012 11.7389541513323 1.91249766153755 -0.864529770660009 11.7394374087216 1.87810835693119 -0.947905773101829 11.7394457871654 1.87746917900736 -0.949362103731478 11.6516922097244 1.63407408145243 1.1143887820566 11.6549649775633 1.83990411344982 0.780964373821815 11.6556396866241 1.87532950953234 0.705118570442246 11.6578935373556 1.97309140931754 0.4341490959088 11.6607521507409 2.04310303286903 0.0514968278717562 11.6629596282484 2.04523944635 -0.273807446722528 11.6634805269231 2.03776230774054 -0.354357083532549 11.6660119925191 1.947648622727 -0.766399306481584 11.6662317337443 1.93493110794567 -0.803776618138865 11.6665857432198 1.91252031336583 -0.864533515042503 11.6670653633581 1.87813357261911 -0.947913173119126 11.667073678749 1.87749443728733 -0.949369569107655 11.6671093787126 1.87473328971751 -0.955626410204044 11.5521989745096 1.63394926700133 1.11441082089812 11.5554358498967 1.83981318383506 0.780998654917898 11.5561031663657 1.87524594347619 0.705154304339283 11.5583323395166 1.97303300237153 0.434186740906322 11.5611596918336 2.04307680585205 0.051529788775874 11.5633430580873 2.04523709617672 -0.273784116877581 11.5638582709328 2.03776532268943 -0.354336846325418 11.5663621246588 1.94767524241171 -0.76639884225222 11.5665794706408 1.93495952121125 -0.803778255275001 11.5669296218397 1.91255150644669 -0.864538671308966 11.5674040157392 1.87816829638129 -0.947923363460501 11.5674122405311 1.87752921970306 -0.949379849453148 11.5674475515352 1.87476832291228 -0.955637078020289 11.5676049940806 1.86211443575185 -0.983619038479766 11.2261886303969 1.63354028641965 1.11448303575134 11.2292958639419 1.83951522300548 0.781110988209653 11.2299364752021 1.87497210969169 0.705271399101644 11.2320764936397 1.97284160647062 0.434310101198411 11.2347908872285 2.04299085880864 0.0516378030650303 11.2368871151025 2.0452293943948 -0.273707662083542 11.2373817774075 2.03777520314122 -0.35427052610197 11.2397858221196 1.94776248147489 -0.766397320881032 11.2399945091816 1.93505263849584 -0.803783620590989 11.2403307122553 1.91265373427701 -0.864555569746952 11.2407862121546 1.87828209578336 -0.947956760045008 11.2407941094055 1.87764321133969 -0.949413541009189 11.2408280142106 1.87488313646744 -0.955672039439292 11.2409791871367 1.86223284595045 -0.983659730717933 11.2417305951719 1.79044127486428 -1.12477603986688 0.55367883 1 0.55367883 0.69078275 1.38090458579697e-017 1 0.0922798044186772 1 0.175331628183484 1 0.250078269550654 1 0.324824911044614 1 0.399571552742685 1 0.474318194469285 1 0.513998509899271 1 0 3.85753651244158e-011 0.192467779310672 0 0.384935555819145 0 0.481169443740387 0 0.57740334 0 0.57740334 0.22601628 0.552754573108648 0.263457981879367 0.566042435616543 0.242361765158241 0.559268113432485 0.252821039666374 0.506108075870396 0.368548022642323 0.528895353963062 0.308824060351782 0.51648694369363 0.3383415774385 0.48648389 0.47548073 0.492362037018672 0.426065876532647 0.498451656965976 0.396587304994322 0.486178123570706 0.54715555435555 0.48479880410182 0.507338844338164 0.485004342050222 0.527248023388699 0.50786049 0.65056076 0.492587928292045 0.593118915900012 0.499215833325862 0.62184155428098 0.509151648434261 0.653078376570388 0.508448272491307 0.651715421916794 0.508132849337769 0.651100402182554 0.50959725 0.65393945 0.509430175162258 0.653616739330907 0.509303637243315 0.653372221642785 0.51123714 0.65729624 0.51008903563149 0.654926662742524 0.510589008317525 0.655953734502474 0.513684740124091 0.661805814675191 0.512333019885342 0.659413191066192 0.511755817781901 0.658330366317664 0.514893031318344 0.663834164634536 0.514215410342899 0.662708123331246 0.514553727934317 0.663273905170946 0.515601500758393 0.66498075209519 0.515211184668521 0.664352997443791 0.51540765325811 0.66467020792174 0.5178806 0.6683963 0.516969432060359 0.667094329936982 0.516369480050137 0.666185931507966 0.51994084817201 0.67106126903675 0.518801809108396 0.669618322292053 0.519372806415269 0.670351047515585 0.523417356271674 0.675009456362825 0.5221858438254 0.673687239725133 0.521297744589067 0.672683474766482 0.528291828785647 0.679476362881167 0.525865277092708 0.677398495725594 0.524609861330267 0.676211079266354 0.535190632793723 0.684078163619316 0.531245502316699 0.681660260479951 0.533176244460307 0.682908139092209 0.55114967 0.69015964 0.541445738348176 0.687017778773719 0.545968229252809 0.688648712821563 0.552535808749321 0.690510792555547 0.551836899710968 0.690336683378945 0.0922798044186772 0.22601628 0.175331628183484 0.22601628 0.192467779310672 0.22601628 0.250078269550654 0.22601628 0.324824911044614 0.22601628 0.384935555819145 0.22601628 0.399571552742685 0.22601628 0.474318194469285 0.22601628 0.481169443740387 0.22601628 0.492362037018672 0.22601628 0.50786049 0.22601628 0.508132849337769 0.22601628 0.509303637243315 0.22601628 0.514553727934317 0.22601628 0.541445738348176 0.22601628 0.0922798044186772 0.242361765158241 0.175331628183484 0.242361765158241 0.192467779310672 0.242361765158241 0.250078269550654 0.242361765158241 0.324824911044614 0.242361765158241 0.384935555819145 0.242361765158241 0.399571552742685 0.242361765158241 0.474318194469285 0.242361765158241 0.481169443740387 0.242361765158241 0.492362037018672 0.242361765158241 0.50786049 0.242361765158241 0.508132849337769 0.242361765158241 0.509303637243315 0.242361765158241 0.514553727934317 0.242361765158241 0.541445738348176 0.242361765158241 0.0922798044186772 0.308824060351782 0.175331628183484 0.308824060351782 0.192467779310672 0.308824060351782 0.250078269550654 0.308824060351782 0.324824911044614 0.308824060351782 0.384935555819145 0.308824060351782 0.399571552742685 0.308824060351782 0.474318194469285 0.308824060351782 0.481169443740387 0.308824060351782 0.492362037018672 0.308824060351782 0.50786049 0.308824060351782 0.508132849337769 0.308824060351782 0.509303637243315 0.308824060351782 0.514553727934317 0.308824060351782 0.0922798044186772 0.3383415774385 0.175331628183484 0.3383415774385 0.192467779310672 0.3383415774385 0.250078269550654 0.3383415774385 0.324824911044614 0.3383415774385 0.384935555819145 0.3383415774385 0.399571552742685 0.3383415774385 0.474318194469285 0.3383415774385 0.481169443740387 0.3383415774385 0.492362037018672 0.3383415774385 0.50786049 0.3383415774385 0.508132849337769 0.3383415774385 0.509303637243315 0.3383415774385 0.514553727934317 0.3383415774385 0.0922798044186772 0.368548022642323 0.175331628183484 0.368548022642323 0.192467779310672 0.368548022642323 0.250078269550654 0.368548022642323 0.324824911044614 0.368548022642323 0.384935555819145 0.368548022642323 0.399571552742685 0.368548022642323 0.474318194469285 0.368548022642323 0.481169443740387 0.368548022642323 0.492362037018672 0.368548022642323 0.0922798044186772 0.396587304994322 0.175331628183484 0.396587304994322 0.192467779310672 0.396587304994322 0.250078269550654 0.396587304994322 0.324824911044614 0.396587304994322 0.384935555819145 0.396587304994322 0.399571552742685 0.396587304994322 0.474318194469285 0.396587304994322 0.481169443740387 0.396587304994322 0.492362037018672 0.396587304994322 0.0922798044186772 0.426065876532647 0.175331628183484 0.426065876532647 0.192467779310672 0.426065876532647 0.250078269550654 0.426065876532647 0.324824911044614 0.426065876532647 0.384935555819145 0.426065876532647 0.399571552742685 0.426065876532647 0.474318194469285 0.426065876532647 0.481169443740387 0.426065876532647 0.0922798044186772 0.47548073 0.175331628183484 0.47548073 0.192467779310672 0.47548073 0.250078269550654 0.47548073 0.324824911044614 0.47548073 0.384935555819145 0.47548073 0.399571552742685 0.47548073 0.474318194469285 0.47548073 0.481169443740387 0.47548073 0.0922798044186772 0.507338844338164 0.175331628183484 0.507338844338164 0.192467779310672 0.507338844338164 0.250078269550654 0.507338844338164 0.324824911044614 0.507338844338164 0.384935555819145 0.507338844338164 0.399571552742685 0.507338844338164 0.474318194469285 0.507338844338164 0.481169443740387 0.507338844338164 0.0922798044186772 0.527248023388699 0.175331628183484 0.527248023388699 0.192467779310672 0.527248023388699 0.250078269550654 0.527248023388699 0.324824911044614 0.527248023388699 0.384935555819145 0.527248023388699 0.399571552742685 0.527248023388699 0.474318194469285 0.527248023388699 0.481169443740387 0.527248023388699 0.0922798044186772 0.593118915900012 0.175331628183484 0.593118915900012 0.192467779310672 0.593118915900012 0.250078269550654 0.593118915900012 0.324824911044614 0.593118915900012 0.384935555819145 0.593118915900012 0.399571552742685 0.593118915900012 0.474318194469285 0.593118915900012 0.481169443740387 0.593118915900012 0.492362037018672 0.593118915900012 0.0922798044186772 0.62184155428098 0.175331628183484 0.62184155428098 0.192467779310672 0.62184155428098 0.250078269550654 0.62184155428098 0.324824911044614 0.62184155428098 0.384935555819145 0.62184155428098 0.399571552742685 0.62184155428098 0.474318194469285 0.62184155428098 0.481169443740387 0.62184155428098 0.492362037018672 0.62184155428098 0.0922798044186772 0.65056076 0.175331628183484 0.65056076 0.192467779310672 0.65056076 0.250078269550654 0.65056076 0.324824911044614 0.65056076 0.384935555819145 0.65056076 0.399571552742685 0.65056076 0.474318194469285 0.65056076 0.481169443740387 0.65056076 0.492362037018672 0.65056076 0.0922798044186772 0.651715421916794 0.175331628183484 0.651715421916794 0.192467779310672 0.651715421916794 0.250078269550654 0.651715421916794 0.324824911044614 0.651715421916794 0.384935555819145 0.651715421916794 0.399571552742685 0.651715421916794 0.474318194469285 0.651715421916794 0.481169443740387 0.651715421916794 0.492362037018672 0.651715421916794 0.50786049 0.651715421916794 0.508132849337769 0.651715421916794 0.0922798044186772 0.65729624 0.175331628183484 0.65729624 0.192467779310672 0.65729624 0.250078269550654 0.65729624 0.324824911044614 0.65729624 0.384935555819145 0.65729624 0.399571552742685 0.65729624 0.474318194469285 0.65729624 0.481169443740387 0.65729624 0.492362037018672 0.65729624 0.50786049 0.65729624 0.508132849337769 0.65729624 0.509303637243315 0.65729624 0.0922798044186772 0.66498075209519 0.175331628183484 0.66498075209519 0.192467779310672 0.66498075209519 0.250078269550654 0.66498075209519 0.324824911044614 0.66498075209519 0.384935555819145 0.66498075209519 0.399571552742685 0.66498075209519 0.474318194469285 0.66498075209519 0.481169443740387 0.66498075209519 0.492362037018672 0.66498075209519 0.50786049 0.66498075209519 0.508132849337769 0.66498075209519 0.509303637243315 0.66498075209519 0.514553727934317 0.66498075209519 0.0922798044186772 0.69015964 0.175331628183484 0.69015964 0.192467779310672 0.69015964 0.250078269550654 0.69015964 0.324824911044614 0.69015964 0.384935555819145 0.69015964 0.399571552742685 0.69015964 0.474318194469285 0.69015964 0.481169443740387 0.69015964 0.492362037018672 0.69015964 0.50786049 0.69015964 0.508132849337769 0.69015964 0.509303637243315 0.69015964 0.514553727934317 0.69015964 0.541445738348176 0.69015964 11 70 85 71 70 12 85 71 86 71 85 70 70 11 12 11 85 100 100 114 11 114 100 101 86 101 100 101 86 87 100 85 86 114 101 115 71 72 86 11 114 128 87 86 72 72 12 73 87 73 88 73 87 72 12 74 73 102 101 87 116 115 102 115 101 102 88 103 102 103 88 89 102 87 88 117 102 103 73 74 88 72 71 12 114 115 129 128 138 11 138 128 129 129 139 138 139 129 130 114 129 128 138 139 149 148 157 11 157 148 149 158 157 149 157 158 166 148 138 149 157 166 11 139 140 149 138 148 11 140 139 130 130 116 117 117 131 130 131 117 118 116 102 117 130 131 140 158 167 166 167 158 159 150 158 149 141 150 140 151 159 150 150 159 158 140 150 149 159 168 167 131 141 140 130 129 116 115 116 129 166 167 176 103 104 117 11 166 3 104 103 89 89 74 75 13 75 74 75 13 76 88 74 89 89 75 90 132 131 118 118 104 105 90 105 104 105 90 91 104 89 90 118 105 119 75 76 90 118 117 104 106 105 91 91 76 77 77 92 91 92 77 78 77 76 14 91 92 107 119 106 120 119 105 106 120 107 121 107 120 106 106 91 107 119 120 134 92 17 107 91 90 76 76 13 14 118 119 133 141 132 142 141 131 132 152 142 143 133 142 132 118 133 132 141 142 152 151 160 159 160 151 152 152 161 160 153 161 152 151 141 152 169 159 160 143 142 133 141 151 150 144 143 134 134 143 133 121 135 134 135 121 122 133 119 134 144 134 135 153 162 161 162 153 154 144 154 153 145 154 144 155 163 154 154 163 162 153 143 144 171 161 162 163 164 172 143 153 152 121 134 120 170 160 161 107 108 121 74 12 13 172 162 163 175 184 3 184 175 176 176 185 184 185 176 177 166 176 175 184 185 195 194 204 3 204 194 195 195 205 204 205 195 196 194 184 195 204 205 215 185 186 195 184 194 3 168 177 176 177 168 169 169 178 177 178 169 170 168 159 169 177 178 187 186 196 195 196 186 187 187 197 196 197 187 188 186 177 187 205 196 206 178 179 187 177 186 185 167 168 176 207 196 197 214 226 3 226 214 215 215 227 226 227 215 216 204 215 214 226 227 239 3 239 253 239 3 226 253 4 3 254 4 253 253 239 240 240 239 227 214 3 204 228 227 216 216 206 207 241 228 229 216 217 228 206 196 207 228 240 227 240 254 253 254 240 241 254 255 5 255 254 241 242 255 241 6 5 255 240 228 241 254 5 4 216 207 217 216 215 206 205 206 215 197 198 207 175 3 166 188 187 179 179 170 171 198 188 189 179 180 188 170 161 171 198 197 188 207 208 217 207 198 208 208 218 217 209 218 208 208 198 199 217 218 230 179 171 180 179 178 170 180 189 188 189 180 181 172 181 180 173 181 172 180 171 172 189 181 190 199 209 208 209 199 200 190 200 199 191 200 190 201 210 200 200 210 209 199 189 190 218 209 219 190 181 26 189 199 198 171 162 172 220 209 210 229 242 241 242 229 230 230 243 242 243 230 231 217 230 229 242 243 257 256 6 255 6 256 7 257 7 256 7 257 258 256 242 257 243 244 257 242 256 255 219 231 230 231 219 220 220 232 231 221 232 220 219 209 220 231 232 245 244 258 257 258 244 245 245 259 258 246 259 245 260 8 259 259 8 258 244 231 245 258 8 7 245 232 233 231 244 243 218 219 230 220 210 211 217 229 228 169 160 170 135 145 144 93 92 78 78 14 79 122 121 108 108 107 17 78 79 93 92 93 17 145 155 154 146 155 145 136 145 135 136 122 123 122 136 135 146 145 136 108 109 122 78 77 14 17 109 108 94 79 80 137 136 123 123 109 110 17 93 94 123 122 109 146 156 155 156 146 147 137 147 146 147 137 25 136 137 146 156 147 24 123 20 137 94 93 79 14 80 79 155 156 165 164 173 172 173 164 165 165 174 173 174 165 27 155 165 164 173 174 182 26 181 182 191 190 26 201 211 210 202 211 201 201 191 192 191 201 200 174 183 182 173 182 181 183 27 28 183 174 27 23 165 156 165 23 27 192 202 201 193 202 192 212 202 203 191 26 192 192 26 193 183 28 26 202 212 211 26 182 183 24 23 156 222 211 212 147 25 24 155 164 163 94 95 17 95 80 81 95 81 96 81 14 82 14 81 80 97 81 82 111 110 17 17 110 109 17 96 97 17 95 96 96 81 97 110 111 125 82 83 97 124 123 110 83 84 99 83 14 84 15 16 84 82 14 83 84 16 18 98 99 19 99 98 83 19 17 98 18 19 99 99 84 18 98 17 97 83 98 97 14 15 84 111 17 112 193 26 30 20 25 137 20 123 124 203 213 212 213 203 31 30 31 203 203 193 30 213 31 29 20 124 125 193 203 202 126 125 112 125 124 110 127 112 113 21 113 17 112 17 113 22 113 21 213 29 224 22 20 127 127 126 112 22 127 113 126 127 20 126 20 125 112 125 111 212 213 223 95 94 80 29 34 224 221 222 234 222 221 211 36 235 223 224 223 213 222 212 223 222 223 235 233 234 247 234 233 221 235 236 249 35 236 235 234 222 235 234 235 248 223 224 32 221 233 232 225 33 32 33 225 34 37 223 32 37 36 223 39 236 35 236 39 40 36 35 235 224 225 32 224 34 225 236 40 237 246 247 261 246 233 247 262 248 57 248 235 249 234 248 247 247 248 262 260 9 8 9 260 261 261 262 9 262 261 247 260 246 261 262 10 9 263 262 61 246 260 259 237 238 43 238 237 40 38 43 238 238 40 38 249 41 250 264 263 60 248 249 54 265 264 59 50 249 250 250 251 51 10 263 264 251 250 45 10 262 263 236 43 42 249 236 42 236 237 43 10 264 265 233 246 245 45 250 41 44 251 46 46 251 45 252 44 48 252 251 44 48 49 252 252 49 47 252 52 251 47 52 252 50 250 51 51 251 52 54 55 248 56 262 57 53 58 248 55 53 248 54 249 50 58 57 248 60 263 61 59 266 265 59 264 60 2 10 266 10 265 266 63 64 266 266 59 63 62 266 64 262 56 61 62 66 267 267 67 65 67 267 66 2 266 267 68 267 69 1 10 2 267 68 2 69 267 65 267 266 62 42 41 249 211 221 220 
-19 17 1 0.154332494323399
-1.31958620130198 0.845840769945279 -1.40924429193551 1.31958609667697 1.13939655511843 -0.618156123250839 1.31958652536321 1.0013660011357 -1.20364018401738 1.31958632184906 1.10324176814581 -0.960904787895701 1.31958620094379 1.13575132095902 -0.789228943531599 2.42419264614297 1.16954252255029 0.134080451298479 1.78023117091645 1.2106347616481 -0.270957372470787 2.09673472811723 1.20921417420321 -0.0611620638376566 2.34964929660235 1.04896390382311 -1.40924429193551 2.39938733138958 1.2588338269875 -0.0818043917009379 2.38099686262971 1.31102178109956 -0.27408955246062 2.36763223550554 1.33516982172417 -0.44551712681458 2.35728667710112 1.33769785577462 -0.615401371383758 2.34996018741644 1.31860588327447 -0.78374228616941 2.34565276645149 1.27789390424723 -0.95053987117279 2.34436441420629 1.21556191871646 -1.11579412639516 2.34578512630292 1.14101189763448 -1.26314374973682 1.89120041368591 0.961879671281453 -1.40924429193551 1.60514237273177 0.904869605284252 -1.40924429193551 1.15245074 1 0 1 0.806715517797249 1 0.460980296071128 1 0.230490147755867 1 0 0 0 0.567886159789523 0 0.283943079894761 1.15245074 0 0.1555808499 0 0.29560361481 0 0.421624103229 0 0.547644591648 0 0.673665080067 0 0.799685568486 0 0.925706056905 0 1.0390783984525 0 1.15245074 0.444444494741094 1.15245074 0.722222437949496 6 10 8 11 12 8 10 11 8 8 12 7 7 5 2 5 7 4 7 13 4 7 12 13 13 14 18 15 16 18 16 17 18 14 15 18 18 3 4 18 17 9 3 19 1 19 3 18 18 4 13 
-93 161 1 0.123261438949803
-1.31958620130198 0.845840769945279 -1.40924429193551 -5.85000029206485e-009 -1.82839863052382e-018 -0.750000037063089 1.04505127110111 0.769490847623905 -1.36994443435246 0.80570334261814 0.674324420043621 -1.30758774266111 0.603081247779959 0.568523730663875 -1.23001095844614 0.417972521916837 0.445863721536962 -1.13359753180561 0.254782695706834 0.309361152739707 -1.02073782954214 0.116788245118802 0.162628105438979 -0.894553750598137 0.0544921626563866 0.0819109435035577 -0.82337048100968 -5.85000029206485e-009 -1.82839863052382e-018 -0.750000037063089 1.31958587667696 0.752125697664052 0.131521655936943 0.151266061798848 0.164255971859559 -0.556378505144092 0.335679173224413 0.317677615538639 -0.375876893134938 0.550015572147189 0.456203942848229 -0.213286381852839 0.789522345850416 0.576355066821864 -0.072696473287119 1.04826063984805 0.675516877079453 0.0428399235492931 1.31958609667697 1.13939655511843 -0.618156123250839 1.31958597366016 1.09208903978182 -0.364733263729941 1.31958589609775 0.981205906623317 -0.125978001628723 1.31958587419308 0.876159820413039 0.0136457294938847 1.31958652536321 1.0013660011357 -1.20364018401738 1.31958632184906 1.10324176814581 -0.960904787895701 1.31958620094379 1.13575132095902 -0.789228943531599 1.04905460546209 0.78025090920334 -0.063696738726309 1.04962678731004 0.869793346725999 -0.190688122305768 1.0499952861361 0.965815645466083 -0.409189768237455 1.04975681666309 1.00873756271912 -0.642282124245091 1.04927586685963 1.00765956113009 -0.799980250184128 1.04853352844498 0.982121263040277 -0.958284223422742 1.04698223869671 0.898631155273553 -1.18172775159965 0.814969987262922 0.673173331352651 -0.1534138204262 0.815005111687858 0.747111491351476 -0.265148152207488 0.814466766154939 0.827295075188919 -0.458004824138537 0.813276163919218 0.864351486030998 -0.664253632334976 0.812158377880702 0.864777210709149 -0.803927396934725 0.810783131951994 0.845148878933088 -0.944128145115205 0.808352925169791 0.778540466746258 -1.1417503177809 0.616614909677731 0.561327351990735 -0.249414291564451 0.615808066874103 0.620298519782274 -0.344332090707127 0.614091319961579 0.684729870588398 -0.508277442916262 0.611922438336933 0.715204954534156 -0.683687196610031 0.610285277718306 0.716337636854353 -0.8024735472995 0.608505520469759 0.701602715170294 -0.921663308096899 0.60573318200207 0.650015799921836 -1.08949413657661 0.549193303022777 0.518052889071518 -0.287020199259923 0.548087677451102 0.57154457572633 -0.375228186164364 0.545977387555978 0.630108533281793 -0.527545144166367 0.543513368855044 0.657996739676549 -0.690470663664218 0.54174023725838 0.659246822498242 -0.800778089475821 0.539876080947582 0.646149731897259 -0.911437079661299 0.5370861028513 0.59982253094406 -1.06720480657003 0.433780553791778 0.436632264137473 -0.358342643168164 0.43222736720626 0.480251441157028 -0.433642114915311 0.429559735430212 0.528141462542203 -0.563522305807769 0.426720958645442 0.551180129945233 -0.702305128991837 0.424806247102635 0.552485269244204 -0.796202586675222 0.422891175562221 0.542163301847087 -0.89035505121868 0.420206266692151 0.505028532489344 -1.02281838939917 0.334084457543078 0.357569752911125 -0.428212885046421 0.33228590693678 0.392130816343647 -0.490634558190638 0.329360117076712 0.430137998778038 -0.598109947402882 0.32641464538413 0.448554466060045 -0.7127705443291 0.324513058837703 0.449760532155603 -0.790273724389301 0.322680137948819 0.441810717124902 -0.86794537147871 0.32024403058023 0.412818595142433 -0.977177347381555 0.269652182376898 0.301319114272892 -0.478245663120781 0.267811363291809 0.329747006258615 -0.531302766961004 0.264893008102429 0.361027971850871 -0.622505187575655 0.262037259294344 0.376242254391793 -0.719665833208335 0.260237254699241 0.377314162142836 -0.785285999611 0.258538984599476 0.370888618472229 -0.851020605935373 0.256355229094788 0.347266229112373 -0.943443224356454 0.149822554173462 0.183191358990089 -0.58408316844819 0.148282147268634 0.199579338636508 -0.616926963426746 0.145928108106755 0.217609869998448 -0.673141893936637 0.143720758171262 0.226420665844943 -0.732806981420397 0.142381162840592 0.227106568426337 -0.773019595662365 0.141161299339714 0.223511548255517 -0.813261911915363 0.139681736573825 0.210127435947123 -0.869821219396314 0.126716003165558 0.157955471705185 -0.606817049818238 0.125310173583225 0.171919612627378 -0.63524568818156 0.123174522014327 0.18727958920213 -0.683852466479376 0.121186134846682 0.194789066836096 -0.735395596346794 0.119987238581283 0.195381918613206 -0.770116841162003 0.118902310935493 0.19233454216549 -0.804855710112681 0.117600547102725 0.180967082206343 -0.853677134402516 0.0600540930971153 0.0795166942827506 -0.677734763421753 0.0592257905835659 0.0862842213843725 -0.692218773260489 0.0579871621444802 0.0937191179712325 -0.716895434614476 0.0568556903257684 0.0973556962012447 -0.742982945169115 0.0561853523896871 0.0976516113961071 -0.760527074288946 0.0555890389286567 0.0961946844011982 -0.778066935613845 0.0548948799387766 0.0907358191487609 -0.802713499093087 1 0 1 1.61807213 1 0.269679028172627 1 0.512389717765439 1 0.730829358432717 1 0.949269053158205 1 1.16770874855557 1 1.38614846456471 1 1.50211029557922 0 1.61807213 0 0 0 1.34839344111366 0 1.0787147516049 0 0.809036062436998 0 0.539357373824105 0 0.269678686013333 0.5 0 0.359193480662347 0 0.210790777574803 0 0.107325723308095 0 0.840472273664598 0 0.689400219979374 0 0.593056271704741 0 0.107325723308095 0.269679028172627 0.210790777574803 0.269679028172627 0.359193480662347 0.269679028172627 0.5 0.269679028172627 0.593056271704741 0.269679028172627 0.689400219979374 0.269679028172627 0.840472273664598 0.269679028172627 0.107325723308095 0.512389717765439 0.210790777574803 0.512389717765439 0.359193480662347 0.512389717765439 0.5 0.512389717765439 0.593056271704741 0.512389717765439 0.689400219979374 0.512389717765439 0.840472273664598 0.512389717765439 0.107325723308095 0.730829358432717 0.210790777574803 0.730829358432717 0.359193480662347 0.730829358432717 0.5 0.730829358432717 0.593056271704741 0.730829358432717 0.689400219979374 0.730829358432717 0.840472273664598 0.730829358432717 0.107325723308095 0.809036062436998 0.210790777574803 0.809036062436998 0.359193480662347 0.809036062436998 0.5 0.809036062436998 0.593056271704741 0.809036062436998 0.689400219979374 0.809036062436998 0.840472273664598 0.809036062436998 0.107325723308095 0.949269053158205 0.210790777574803 0.949269053158205 0.359193480662347 0.949269053158205 0.5 0.949269053158205 0.593056271704741 0.949269053158205 0.689400219979374 0.949269053158205 0.840472273664598 0.949269053158205 0.107325723308095 1.0787147516049 0.210790777574803 1.0787147516049 0.359193480662347 1.0787147516049 0.5 1.0787147516049 0.593056271704741 1.0787147516049 0.689400219979374 1.0787147516049 0.840472273664598 1.0787147516049 0.107325723308095 1.16770874855557 0.210790777574803 1.16770874855557 0.359193480662347 1.16770874855557 0.5 1.16770874855557 0.593056271704741 1.16770874855557 0.689400219979374 1.16770874855557 0.840472273664598 1.16770874855557 0.107325723308095 1.34839344111366 0.210790777574803 1.34839344111366 0.359193480662347 1.34839344111366 0.5 1.34839344111366 0.593056271704741 1.34839344111366 0.689400219979374 1.34839344111366 0.840472273664598 1.34839344111366 0.107325723308095 1.38614846456471 0.210790777574803 1.38614846456471 0.359193480662347 1.38614846456471 0.5 1.38614846456471 0.593056271704741 1.38614846456471 0.689400219979374 1.38614846456471 0.840472273664598 1.38614846456471 0.107325723308095 1.50211029557922 0.210790777574803 1.50211029557922 0.359193480662347 1.50211029557922 0.5 1.50211029557922 0.593056271704741 1.50211029557922 0.689400219979374 1.50211029557922 0.840472273664598 1.50211029557922 16 11 20 20 19 24 24 19 25 20 24 16 16 24 31 14 15 38 15 16 31 38 15 31 45 38 39 31 32 38 25 32 31 38 45 14 24 25 31 14 45 52 19 18 25 25 26 32 26 25 18 26 18 17 32 26 33 26 27 33 27 26 17 27 17 23 33 27 34 32 33 40 39 40 46 39 32 40 46 40 47 39 46 45 40 41 47 41 40 34 41 34 35 47 41 48 33 34 40 46 47 54 27 28 34 32 39 38 45 46 53 13 52 59 52 13 14 59 53 60 53 59 52 60 53 54 59 60 66 45 53 52 13 59 66 10 12 87 66 12 13 73 12 66 73 80 12 74 80 73 81 87 80 80 87 12 73 66 67 10 87 88 60 67 66 60 61 67 61 60 54 61 54 55 67 61 68 68 61 62 55 54 48 55 48 49 75 68 69 53 46 54 67 68 75 74 81 80 81 74 75 88 81 82 81 88 87 75 82 81 76 82 75 83 89 82 82 89 88 74 67 75 88 89 10 61 55 62 67 74 73 48 54 47 10 89 90 41 42 48 35 34 28 28 23 22 28 29 35 29 28 22 29 22 21 35 29 36 42 41 35 56 55 49 49 42 43 56 49 50 56 62 55 36 43 42 43 36 37 50 43 44 43 50 49 42 35 36 56 50 57 29 30 36 49 48 42 37 36 30 30 21 1 37 30 4 44 43 37 30 3 4 3 30 1 37 4 44 50 51 57 50 44 51 51 44 5 57 51 58 51 6 58 6 51 5 58 6 65 44 4 5 57 58 65 30 29 21 56 57 64 62 63 69 63 62 56 69 63 70 62 69 68 70 64 71 64 70 63 71 64 65 70 71 77 63 56 64 69 70 77 76 83 82 83 76 77 90 83 84 83 90 89 77 84 83 78 84 77 85 91 84 84 91 90 76 69 77 90 91 2 78 77 71 69 76 75 85 78 79 72 71 65 78 71 72 78 85 84 72 7 79 7 72 65 79 7 8 72 79 78 65 6 7 85 79 86 92 86 93 86 92 85 93 86 8 92 93 2 9 2 93 8 9 93 86 79 8 92 2 91 85 92 91 64 57 65 90 2 10 28 27 23 
-17 15 1 0.11817731326277
-1.31958609667697 1.13939655511843 -0.618156123250839 1.31958587667696 0.752125697664052 0.131521655936943 1.31958600308152 1.11130094424451 -0.432986199876055 1.31958593175788 1.04889797810298 -0.252097819285189 1.31958588748215 0.953992066079026 -0.0848750601132637 1.3195858730804 0.859769981938915 0.0315799929613392 1.31958586280832 0.63245819749806 0.202183125492365 1.31958585527314 0.553779485081677 0.240222730160343 1.31958584867696 0.472656070609958 0.273205863752832 2.42419264614297 1.16954252255029 0.134080451298479 1.47608844351784 0.639447040978585 0.284570199928766 1.64363045366085 0.785980721063931 0.282113773728944 1.82221187905042 0.912257109254886 0.26583658576656 2.011832719631 1.01827620556034 0.235738636041058 2.21249297534703 1.10403800998917 0.191819924551883 1.78023117091645 1.2106347616481 -0.270957372470787 2.09673472811723 1.20921417420321 -0.0611620638376566 1 1.11022302462516e-016 1 1.34292634 1 0.293697990302276 1 0.587395981434234 1 0.881093971618111 1 1.11201015593917 0.557196101023788 1.34292634 0.279113185612358 1.34292634 0 1.34292634 0 0 0 1.11910528424426 0 0.895284227220395 0 0.67146317005737 0 0.447642112995864 0 0.223821056105154 0.567886158959788 1.11022302462516e-016 0.28394307878513 1.11022302462516e-016 17 14 15 5 12 13 13 14 4 11 12 8 8 9 11 8 12 7 15 10 17 14 16 4 1 3 16 4 16 3 7 5 6 7 12 5 7 6 2 4 5 13 14 17 16 
-25 23 1 0.162049114039569
-2.34964929660235 1.04896390382311 -1.40924429193551 3.38400016073138 1.22492955611853 -1.40924522574805 2.80876202400574 1.13089221148953 -1.40924429143071 3.09615094336071 1.17916774664601 -1.40924429074741 2.42419264614297 1.16954252255029 0.134080451298479 2.39938733138958 1.2588338269875 -0.0818043917009379 2.38099686262971 1.31102178109956 -0.27408955246062 2.36763223550554 1.33516982172417 -0.44551712681458 2.35728667710112 1.33769785577462 -0.615401371383758 2.34996018741644 1.31860588327447 -0.78374228616941 2.34565276645149 1.27789390424723 -0.95053987117279 2.34436441420629 1.21556191871646 -1.11579412639516 2.34578512630292 1.14101189763448 -1.26314374973682 3.38400016073138 1.63898521684762 0.123909655855393 2.5757471870778 1.21235280617867 0.117606850552993 2.76773174672007 1.30338801190261 0.114212405510755 3.04678692295223 1.47241860933113 0.126706598452133 3.21193122438043 1.56583606288447 0.130960236906589 3.38400016073138 1.35811682367428 -1.23297844343444 3.38400016073138 1.4743773515163 -1.03213508322534 3.38400016073137 1.56791797828258 -0.80881763149339 3.38400016073138 1.62810190119317 -0.591724152235714 3.38400016073138 1.65984497390542 -0.386627021176281 3.38400016073138 1.66839778951478 -0.175978368750238 3.38400016073137 1.65982320119437 -0.025684529769309 0 1.52068147 1 1.52068147 0.444444443887087 1.52068147 0.72222222264237 1.52068147 0 1.11022302462516e-016 0 0.205291998547827 0 0.390054795417421 0 0.556341313274754 0 0.722627832549246 0 0.88891435213119 0 1.05520087149315 0 1.22148739095935 0 1.37108443076287 1 0 0.149999999222667 0 0.349999999193885 0 0.649999999756947 0 0.825000000689919 0 1 1.31156553414784 1 1.09621490255447 1 0.87434745311254 1 0.668846160334609 1 0.478980878628448 1 0.284275069081031 1 0.143431262923061 6 5 15 7 6 16 7 16 8 16 6 15 9 8 22 21 10 9 21 11 10 3 13 12 3 1 13 12 11 3 16 23 8 24 17 18 25 18 14 24 18 25 24 23 17 23 22 8 4 3 20 9 22 21 11 21 20 19 4 20 2 4 19 3 11 20 16 17 23 
-38 36 1 0.255772268758467
-3.38400016073138 1.22492955611853 -1.40924522574805 3.38400016073137 1.09243528555817 -1.57371534462723 3.38400016073138 0.92720598825082 -1.72650574115408 3.38400016073138 0.73000467281345 -1.85885766434139 3.38400016073138 0.504603192989606 -1.9617554382431 3.38400016073138 0.283358134934521 -2.02253796998391 3.38400016073138 0.075341806282424 -2.04779558773226 3.38400016073138 -0.134904888580723 -2.04358651303702 3.38400016073138 -0.341170930077966 -2.01015830423817 3.38400016073138 -0.537628875760522 -1.94944060577972 3.38400016073138 -0.71935906766228 -1.8647750172514 3.38400016073138 -0.882704838912726 -1.76047832934829 3.38400016073137 -1.05828443149857 -1.60925267042274 3.38400016073137 -1.14768590783751 -1.51083768321651 3.38400016073138 -1.22492845218098 -1.40924430093551 2.34964929660235 -1.04896389482311 -1.40924429993551 2.80876202400574 -1.13089220298884 -1.4092443000233 3.09615094336071 -1.1791677381899 -1.40924430031222 1.31958590267696 -0.845840762795279 -1.40924429893551 1.77672435938302 -0.93931616725257 -1.40924429935252 2.06302814687661 -0.995127887888773 -1.40924429974689 1.31958561248689 -0.731575326667585 -1.49624976738979 1.31958569203588 -0.60398475981268 -1.57249716107525 1.31958576955824 -0.464548295771913 -1.63525978695648 1.3195858431688 -0.315448773561937 -1.6820878214999 1.31958591098873 -0.159501176721162 -1.71102868336595 1.31958597128785 4.877945479436e-009 -1.7208210825009 1.31958602262287 0.159501186395154 -1.71102868204595 1.31958606394994 0.31544878299388 -1.68208781888931 1.31958609469344 0.464548304812208 -1.63525978311198 1.31958611476201 0.603984768328055 -1.5724971560768 1.31958612451307 0.731575334545261 -1.49624976133543 1.31958620130198 0.845840769945279 -1.40924429193551 2.34964929660235 1.04896390382311 -1.40924429193551 1.89120041368591 0.961879671281453 -1.40924429193551 1.60514237273177 0.904869605284252 -1.40924429193551 2.80876202400574 1.13089221148953 -1.40924429143071 3.09615094336071 1.17916774664601 -1.40924429074741 1.12886001 1 1.03478822926628 1 0.940716840150248 1 0.846644954708953 1 0.752573253541151 1 0.667908875791629 1 0.591710867464177 1 0.515512750342539 1 0.439314625303446 1 0.363116594711223 1 0.286918631445766 1 0.210720598626508 1 0.115143651799373 1 0.0575717848216864 0.999999999999999 2.77555756156289e-017 1 0 0.5 0 0.722222222117046 0 0.861111111078005 0 0 0 0.222222257574812 0 0.361111105842325 0.0940716666274409 0 0.188143332953756 0 0.282215000097614 0 0.376286668483059 0 0.470358336059419 0 0.564430003416034 0 0.65850166947743 0 0.752573336616085 0 0.846645004446642 0 0.940716673055344 0 1.03478834219243 0 1.12886001 0 1.12886001 0.5 1.12886001 0.277777777772138 1.12886001 0.138888888877011 1.12886001 0.722222282036668 1.12886001 0.861111190150607 20 19 22 16 21 26 20 24 21 22 23 20 24 25 21 25 26 21 23 24 20 16 26 8 13 18 12 14 15 18 13 14 18 18 17 12 10 16 9 17 11 12 17 10 11 17 16 10 16 8 9 26 27 8 7 27 28 29 30 35 34 28 29 31 32 36 33 36 32 36 35 31 31 35 30 35 34 29 6 7 34 4 5 37 3 4 37 6 34 5 38 3 37 2 38 1 2 3 38 37 5 34 7 28 34 27 7 8 
-137 245 1 0.12687630755555
-1.31958590267696 -0.845840762795279 -1.40924429893551 -5.85000029206485e-009 -1.82839863052382e-018 -0.750000037063089 1.04505127091171 -0.769490843409475 -1.36994443808077 0.77991113727823 -0.662257516256438 -1.29908862917696 0.534545151823389 -0.526404819684729 -1.19755121164405 0.318382987057389 -0.366422849914202 -1.06851649925909 0.138735727237096 -0.188552158877519 -0.917163594306161 -5.85000029206485e-009 -1.82839863052382e-018 -0.750000037063089 1.31958620130198 0.845840769945279 -1.40924429193551 1.04505127110111 0.769490847623905 -1.36994443435246 0.80570334261814 0.674324420043621 -1.30758774266111 0.603081247779959 0.568523730663875 -1.23001095844614 0.417972521916837 0.445863721536962 -1.13359753180561 0.254782695706834 0.309361152739707 -1.02073782954214 0.116788245118802 0.162628105438979 -0.894553750598137 0.0544921626563866 0.0819109435035577 -0.82337048100968 1.31958561248689 -0.731575326667585 -1.49624976738979 1.31958569203588 -0.60398475981268 -1.57249716107525 1.31958576955824 -0.464548295771913 -1.63525978695648 1.3195858431688 -0.315448773561937 -1.6820878214999 1.31958591098873 -0.159501176721162 -1.71102868336595 1.31958597128785 4.877945479436e-009 -1.7208210825009 1.31958602262287 0.159501186395154 -1.71102868204595 1.31958606394994 0.31544878299388 -1.68208781888931 1.31958609469344 0.464548304812208 -1.63525978311198 1.31958611476201 0.603984768328055 -1.5724971560768 1.31958612451307 0.731575334545261 -1.49624976133543 1.04579721859851 0.666302731372922 -1.44304289877009 1.04645233209674 0.550649374735685 -1.50724082909051 1.04699256628539 0.423876928360668 -1.56018199375948 1.04739621450517 0.288009194134571 -1.59973929471584 1.04764591267785 0.145682536499461 -1.62421114848527 1.04773041671214 3.21302843140105e-009 -1.63249565876394 1.04764583248845 -0.145682530143561 -1.62421114924266 1.04739605596551 -0.288009187985725 -1.59973929621842 1.04699233294308 -0.423876922545947 -1.56018199597844 1.04645202895133 -0.550649369367091 -1.50724083198304 1.04579685176452 -0.666302726543825 -1.44304290228275 0.806451045604088 0.584289798387496 -1.36721988372383 0.807108531096368 0.483156510616097 -1.41965719693209 0.807651307649924 0.372103426584719 -1.4629464483783 0.808057203875786 0.252922881282971 -1.49531940158322 0.808308445614263 0.127963750589316 -1.51535849699734 0.808393506236241 1.93884376948315e-009 -1.52214441891028 0.808308390609232 -0.127963746769181 -1.5153584973424 0.808057095154995 -0.252922877632628 -1.49531940227184 0.80765114769516 -0.372103423208174 -1.46294644940102 0.807108323399298 -0.483156507604757 -1.41965719827259 0.806450794427098 -0.584289795817233 -1.36721988536061 0.603518479476637 0.492752080443737 -1.27708757731226 0.603903155283024 0.40756224583103 -1.31850582224018 0.604220859288717 0.31394766958143 -1.35271359262607 0.604458526152653 0.213425913567161 -1.3783041608809 0.604605672431058 0.107990735063855 -1.39414877497959 0.60465549544945 1.02244372814724e-009 -1.39951497224575 0.604605636703351 -0.107990733064533 -1.39414877505239 0.604458455542835 -0.213425911702241 -1.37830416102731 0.604220755422452 -0.31394766793316 -1.35271359284503 0.603903020445583 -0.407562244471588 -1.31850582252918 0.60351831645535 -0.492752079432904 -1.27708757766779 0.534841740032472 0.45625626635059 -1.24010372424613 0.535102604825786 0.377382970752348 -1.27754306532843 0.535318059865648 0.290704800764896 -1.30846565358455 0.535479240189825 0.197627336583243 -1.33159921595438 0.535579032220434 0.0999975632261048 -1.34592281751541 0.53561281979474 7.54027116625733e-010 -1.35077392930126 0.535579002484796 -0.0999975617592916 -1.34592281751566 0.535479181422914 -0.197627335238072 -1.33159921595469 0.535317973421409 -0.290704799615795 -1.30846565358464 0.535102492607367 -0.377382969864615 -1.27754306532813 0.534841604360955 -0.456256265778288 -1.24010372424561 0.418020636944152 0.386422100166579 -1.16808515436553 0.418062963561066 0.319602227759054 -1.19842490441294 0.418097916787403 0.246183276327634 -1.22348096950303 0.418124060626573 0.167354554016889 -1.24222411880172 0.418140243085308 0.0846779108629132 -1.25382862474704 0.418145716794807 3.57234526670545e-010 -1.2577587155545 0.418140222785339 -0.0846779101819768 -1.25382862465 0.418124020506625 -0.167354553434858 -1.24222411860526 0.418097857770153 -0.246183275905019 -1.22348096920709 0.418062886943595 -0.319602227548942 -1.19842490401978 0.418020544308628 -0.386422100212918 -1.16808515387963 0.318240687418309 0.317515062303823 -1.09569507307616 0.318115515968992 0.26256903478504 -1.11959674600004 0.318012171619081 0.202225332183109 -1.13933023162905 0.317934880827005 0.137458669450479 -1.15408846559102 0.317887032466742 0.0695470127230667 -1.16322433361499 0.31787082460242 9.04283285362862e-011 -1.16631812194876 0.317887019315758 -0.069547012568751 -1.1632243334651 0.317934854834452 -0.137458669374449 -1.15408846528769 0.318012133379828 -0.202225332233272 -1.13933023117231 0.31811546631955 -0.262569035003439 -1.11959674539343 0.318240627379477 -0.317515062725284 -1.09569507232642 0.254547707325672 0.268019275726802 -1.04301357786018 0.254341123327337 0.221601932084493 -1.06259666461597 0.254170615676605 0.170650056403619 -1.07875980831845 0.25404312587129 0.115984185777455 -1.09084498568643 0.253964216366252 0.0586783293765397 -1.09832490368218 0.253937493494995 -3.69147978789223e-011 -1.10085770405114 0.253964207234793 -0.0586783294722129 -1.09832490351657 0.254043107822102 -0.115984185937563 -1.09084498535129 0.254170589120659 -0.170650056667604 -1.07875980781384 0.254341088842726 -0.221601932486985 -1.06259666394577 0.254547665618161 -0.26801927629651 -1.04301357703174 0.138442461132286 0.163267467494528 -0.929917443411782 0.138184898330382 0.134928350953515 -0.941118366815664 0.137972497447083 0.103864668615354 -0.950355267842449 0.137813792403099 0.0705723227110229 -0.957257021403453 0.137715609965267 0.035697314717758 -0.961526743999336 0.137682370966092 -1.55853236533501e-010 -0.962972182453397 0.137715606724824 -0.0356973150421284 -0.961526743852457 0.137813785996946 -0.0705723230727564 -0.957257021106196 0.137972488018969 -0.103864669037344 -0.950355267394804 0.138184886082689 -0.134928351455893 -0.941118366220964 0.138442446312398 -0.163267468094022 -0.929917442676341 0.116507742196418 0.140800591117082 -0.905406584579512 0.116261456509651 0.116347216439931 -0.914935525485111 0.116058399847452 0.0895525004899276 -0.922791899519122 0.115906703053002 0.060843225665397 -0.928661118910288 0.115812867602406 0.0307746793105159 -0.932291637513605 0.11578110242374 -1.57500387995152e-010 -0.933520609732173 0.115812865210376 -0.0307746796363303 -0.932291637378978 0.115906698323903 -0.0608432260231169 -0.928661118637817 0.116058392887006 -0.0895525008991075 -0.922791899108781 0.116261447466734 -0.116347216917773 -0.914935524939923 0.116507731253069 -0.14080059167789 -0.905406583905225 0.054308414427868 0.0708838024585166 -0.828609423063894 0.0541472229459016 0.0585490250783998 -0.83320523674509 0.0540144243291839 0.0450499152724077 -0.836991524917368 0.0539152738961427 0.0305997868316162 -0.839818450375343 0.053853967524576 0.0154750343264528 -0.841566382253037 0.0538332187673485 -1.14021693586325e-010 -0.842157953106393 0.0538539669261092 -0.0154750345597831 -0.841566382173295 0.0539152727127923 -0.0305997870805484 -0.839818450213935 0.0540144225870743 -0.0450499155465129 -0.836991524674236 0.0541472206818428 -0.0585490253861099 -0.833205236421963 0.0543084116869134 -0.070883802806858 -0.828609422664089 1 5.55111512312578e-017 1 1.48870447 1 0.248117092925059 1 0.496234621487568 1 0.744352132111432 1 0.992469606211233 1 1.24058704963655 0 1.48870447 0 0 0 0.248117409331943 0 0.471423079216953 0 0.672398182864729 0 0.873373286966317 0 1.07434839130385 0 1.27532349559868 0 1.3820139829082 0.916666666173647 1.11022302462516e-016 0.83333333264414 1.11022302462516e-016 0.749999999323996 1.11022302462516e-016 0.666666666144544 1.11022302462516e-016 0.583333333051197 1.11022302462516e-016 0.499999999998733 1.11022302462516e-016 0.416666666946574 1.11022302462516e-016 0.333333333854059 1.11022302462516e-016 0.250000000675728 1.11022302462516e-016 0.166666667356592 1.11022302462516e-016 0.0833333338274175 1.11022302462516e-016 0.0833333338274175 0.248117409331943 0.166666667356592 0.248117409331943 0.250000000675728 0.248117409331943 0.333333333854059 0.248117409331943 0.416666666946574 0.248117409331943 0.499999999998733 0.248117409331943 0.583333333051197 0.248117409331943 0.666666666144544 0.248117409331943 0.749999999323996 0.248117409331943 0.83333333264414 0.248117409331943 0.916666666173647 0.248117409331943 0.0833333338274175 0.471423079216953 0.166666667356592 0.471423079216953 0.250000000675728 0.471423079216953 0.333333333854059 0.471423079216953 0.416666666946574 0.471423079216953 0.499999999998733 0.471423079216953 0.583333333051197 0.471423079216953 0.666666666144544 0.471423079216953 0.749999999323996 0.471423079216953 0.83333333264414 0.471423079216953 0.916666666173647 0.471423079216953 0.0833333338274175 0.672398182864729 0.166666667356592 0.672398182864729 0.250000000675728 0.672398182864729 0.333333333854059 0.672398182864729 0.416666666946574 0.672398182864729 0.499999999998733 0.672398182864729 0.583333333051197 0.672398182864729 0.666666666144544 0.672398182864729 0.749999999323996 0.672398182864729 0.83333333264414 0.672398182864729 0.916666666173647 0.672398182864729 0.0833333338274175 0.744352132111432 0.166666667356592 0.744352132111432 0.250000000675728 0.744352132111432 0.333333333854059 0.744352132111432 0.416666666946574 0.744352132111432 0.499999999998733 0.744352132111432 0.583333333051197 0.744352132111432 0.666666666144544 0.744352132111432 0.749999999323996 0.744352132111432 0.83333333264414 0.744352132111432 0.916666666173647 0.744352132111432 0.0833333338274175 0.873373286966316 0.166666667356592 0.873373286966316 0.250000000675728 0.873373286966316 0.333333333854059 0.873373286966316 0.416666666946574 0.873373286966316 0.499999999998733 0.873373286966316 0.583333333051197 0.873373286966316 0.666666666144544 0.873373286966316 0.749999999323996 0.873373286966316 0.83333333264414 0.873373286966316 0.916666666173647 0.873373286966316 0.0833333338274175 0.992469606211233 0.166666667356592 0.992469606211233 0.250000000675728 0.992469606211233 0.333333333854059 0.992469606211233 0.416666666946574 0.992469606211233 0.499999999998733 0.992469606211233 0.583333333051197 0.992469606211233 0.666666666144544 0.992469606211233 0.749999999323996 0.992469606211233 0.83333333264414 0.992469606211233 0.916666666173647 0.992469606211233 0.0833333338274175 1.07434839130385 0.166666667356592 1.07434839130385 0.250000000675728 1.07434839130385 0.333333333854059 1.07434839130385 0.416666666946574 1.07434839130385 0.499999999998733 1.07434839130385 0.583333333051197 1.07434839130385 0.666666666144544 1.07434839130385 0.749999999323996 1.07434839130385 0.83333333264414 1.07434839130385 0.916666666173647 1.07434839130385 0.0833333338274175 1.24058704963655 0.166666667356592 1.24058704963655 0.250000000675728 1.24058704963655 0.333333333854059 1.24058704963655 0.416666666946574 1.24058704963655 0.499999999998733 1.24058704963655 0.583333333051197 1.24058704963655 0.666666666144544 1.24058704963655 0.749999999323996 1.24058704963655 0.83333333264414 1.24058704963655 0.916666666173647 1.24058704963655 0.0833333338274175 1.27532349559868 0.166666667356592 1.27532349559868 0.250000000675728 1.27532349559868 0.333333333854059 1.27532349559868 0.416666666946574 1.27532349559868 0.499999999998733 1.27532349559868 0.583333333051197 1.27532349559868 0.666666666144544 1.27532349559868 0.749999999323996 1.27532349559868 0.83333333264414 1.27532349559868 0.916666666173647 1.27532349559868 0.0833333338274175 1.3820139829082 0.166666667356592 1.3820139829082 0.250000000675728 1.3820139829082 0.333333333854059 1.3820139829082 0.416666666946574 1.3820139829082 0.499999999998733 1.3820139829082 0.583333333051197 1.3820139829082 0.666666666144544 1.3820139829082 0.749999999323996 1.3820139829082 0.83333333264414 1.3820139829082 0.916666666173647 1.3820139829082 9 27 10 39 10 28 28 10 27 27 26 28 26 25 30 40 28 29 30 29 26 25 24 30 26 29 28 40 29 30 11 39 50 39 11 10 12 50 61 50 12 11 39 40 50 51 61 50 41 51 40 61 62 72 62 61 51 73 72 62 12 61 13 62 51 52 51 50 40 39 28 40 13 61 72 41 40 30 31 41 30 31 24 23 41 42 53 42 41 31 31 32 42 31 30 24 23 22 33 42 32 43 33 32 23 22 21 33 23 32 31 44 32 33 52 53 64 52 41 53 74 62 63 64 63 52 53 54 64 52 63 62 43 44 55 44 43 32 54 55 65 55 54 43 76 65 66 54 65 64 44 45 55 43 54 53 42 43 53 75 63 64 33 34 44 41 52 51 76 64 65 13 83 14 13 72 83 14 94 105 94 14 83 83 84 94 73 74 84 74 73 62 84 95 94 85 95 84 95 96 106 73 84 83 72 73 83 94 95 106 16 15 116 105 15 14 127 8 16 116 15 105 116 106 117 106 116 105 127 117 128 117 127 116 118 128 117 127 128 8 117 106 107 116 127 16 105 94 106 8 128 129 84 74 85 85 75 86 75 85 74 96 86 97 86 96 85 75 76 86 85 96 95 87 97 86 77 87 76 97 98 109 98 97 87 98 87 88 87 86 76 75 64 76 96 97 108 107 108 118 108 107 96 118 129 128 119 129 118 118 108 119 107 118 117 119 109 120 109 119 108 130 120 131 120 130 119 121 131 120 130 131 8 120 109 110 119 130 129 108 97 109 129 130 8 109 98 99 96 107 106 74 63 75 8 131 132 55 66 65 21 20 34 56 55 45 35 45 34 34 20 35 45 44 34 35 19 36 19 35 20 46 36 47 36 46 35 19 18 36 35 46 45 45 46 57 66 56 67 55 56 66 77 67 78 67 77 66 56 57 67 66 77 76 68 57 58 57 56 45 78 68 79 78 67 68 69 79 68 78 79 90 58 57 47 68 67 57 47 57 46 77 78 89 36 37 47 34 33 21 18 17 37 48 58 47 38 48 37 37 17 38 48 47 37 3 38 17 38 49 48 49 38 3 3 4 49 3 17 1 48 49 60 58 59 69 58 48 59 69 80 79 70 80 69 69 59 70 58 69 68 60 4 5 60 70 59 82 70 71 71 70 60 5 71 60 70 81 80 59 48 60 4 60 49 82 71 5 37 36 18 79 80 91 88 89 100 88 77 89 99 100 111 100 99 88 89 90 100 88 99 98 90 91 102 90 79 91 101 102 112 102 101 90 91 92 102 90 101 100 78 90 89 100 101 112 110 111 121 111 110 99 121 132 131 122 132 121 121 111 122 110 121 120 122 112 123 112 122 111 133 123 134 123 133 122 124 134 123 133 134 2 123 112 113 122 133 132 111 100 112 132 133 2 113 112 102 99 110 109 103 102 92 92 81 82 113 103 114 113 102 103 92 93 103 92 91 81 104 103 93 93 82 6 115 114 104 114 103 104 6 104 93 7 104 6 82 5 6 93 92 82 81 70 82 113 114 125 124 125 136 124 113 125 135 136 2 136 135 124 125 126 136 124 135 134 115 7 126 7 115 104 7 137 126 137 7 2 137 2 136 126 137 136 115 126 125 114 115 125 135 2 134 113 124 123 91 80 81 132 2 8 77 88 87 
-98 166 1 0.122792657413379
-1.31958584867696 0.472656070609958 0.273205863752832 1.31958583467696 0.168219953165144 0.347343163005289 1.31958584095666 0.339017247825535 0.314937123311732 1.31958583734353 0.253907973795285 0.333908491051905 1.31958587667696 0.752125697664052 0.131521655936943 1.31958586280832 0.63245819749806 0.202183125492365 1.31958585527314 0.553779485081677 0.240222730160343 -5.85000029206485e-009 -1.82839863052382e-018 -0.750000037063089 0.151266061798848 0.164255971859559 -0.556378505144092 0.335679173224413 0.317677615538639 -0.375876893134938 0.550015572147189 0.456203942848229 -0.213286381852839 0.789522345850416 0.576355066821864 -0.072696473287119 1.04826063984805 0.675516877079453 0.0428399235492931 -5.85000029206485e-009 -1.82839863052382e-018 -0.750000037063089 1.31958587667696 -0.752125697664052 0.131521655936943 1.04826063984805 -0.675516877079453 0.0428399235492932 0.789522345850416 -0.576355066821864 -0.0726964732871188 0.55001557214719 -0.456203942848229 -0.213286381852839 0.335679173224413 -0.31767761553864 -0.375876893134938 0.151266061798848 -0.164255971859559 -0.556378505144092 1.31958586442696 -0.472656103864459 0.273205851457581 1.31958587599974 -0.601310436237392 0.217989091902671 1.31958587733594 -0.678298737118356 0.177046435929486 1.31958584100404 -0.340556421039179 0.314541009917949 1.3195858372145 -0.255178382576979 0.333667050842138 1.31958583467696 -0.168220024938772 0.347343154078914 1.31958584303943 -0.0187619474826189 0.357632127049396 1.31958584146664 0.0749943425811947 0.355697014648514 1.04860268240661 0.568353461750273 0.102166764815971 0.789843715183631 0.485089296091142 -0.0253616810628677 0.550135358177971 0.384008796645164 -0.178277058418742 0.335592514177151 0.267373394957878 -0.353139047952394 0.15111018841514 0.13819854602832 -0.545443468949956 1.04878697312893 0.497798257760935 0.134131747892453 0.790016958946558 0.424949186112318 0.000155544060757681 0.550199944059345 0.336421499924058 -0.159400861052202 0.33554579813143 0.234225136467937 -0.340881537438254 0.15102620472038 0.121042625881488 -0.539551730258574 1.04894685585687 0.424985792030571 0.161863196489919 0.790167309813906 0.362850599876026 0.0223008546038748 0.550256001961162 0.287275272459833 -0.143017094257455 0.335505255269311 0.199997397456947 -0.330243767245527 0.150953344068188 0.103337839031203 -0.534440310418968 1.04914926364953 0.304925148602989 0.196970561556652 0.790357719838448 0.260396453946561 0.0503465133908146 0.550327004574358 0.206174727794177 -0.122265510293208 0.335453910255429 0.143526324924317 -0.31677169276284 0.150861104187299 0.0741443749757511 -0.527969372498516 1.04924132360377 0.228408679297276 0.212938239378307 0.790444348564733 0.195071862665006 0.0631061341323766 0.550359311084776 0.154457367337216 -0.112823445651527 0.335430550386828 0.107520463970478 -0.310642453214321 0.150819151260967 0.0555389374847559 -0.525026233595288 1.04930653292498 0.151342130550803 0.224248710262515 0.790505720461016 0.129261846006792 0.07214565432789 0.550382199775749 0.102351452398057 -0.106133880702183 0.33541400114855 0.0712470443790891 -0.306300209365215 0.150789434519618 0.0367997448847277 -0.522941504228567 1.04934708793103 0.0674744507244631 0.231282922650193 0.790543892954524 0.0576325164200735 0.0777681142302862 0.550396436747046 0.0456349150383581 -0.101972911239626 0.335403707745071 0.0317661133732177 -0.303599392131558 0.150770953072447 0.0164068165546539 -0.521644968541727 1.04935648297931 -0.0168808915163463 0.232912481401441 0.790552736509789 -0.0144187531790023 0.0790706892077392 0.550399735132246 -0.0114171777655704 -0.101008908446522 0.335401323036236 -0.00794738416153344 -0.30297368434381 0.150766671625952 -0.00410468981098321 -0.521344610668186 1.04930653288583 -0.151342188897367 0.224248703471833 0.790505720424166 -0.129261895835708 0.0721456489003064 0.550382199762005 -0.102351491851967 -0.106133884718876 0.335414001158487 -0.0712470718439835 -0.306300211972421 0.150789434537459 -0.0367997590720439 -0.522941505480216 1.04924015173247 -0.229551158403492 0.21273497984514 0.790443245729109 -0.196047363046289 0.0629436965103184 0.550358899790782 -0.15522970383509 -0.112943652520786 0.335430847771961 -0.108058144044705 -0.310720482108554 0.150819685298059 -0.0558167381175957 -0.525063698093645 1.04914734158083 -0.306308723791799 0.196637181271776 0.790355911336274 -0.261577477911966 0.0500801375264981 0.550326330150014 -0.207109694258699 -0.122462620973817 0.33545439792707 -0.144177286282774 -0.31689964966026 0.150861980099168 -0.0744807995641132 -0.528030820662547 1.04894685580343 -0.42498581880502 0.161863187220895 0.790167309763645 -0.362850622716413 0.022300847200785 0.550256001942421 -0.287275290537741 -0.143017099734782 0.335505255282864 -0.1999974100462 -0.330243770801692 0.150953344092541 -0.10333784554157 -0.534440312127421 1.04867924435522 -0.540429871188883 0.115446333970847 0.789915679977581 -0.461292025859878 -0.0147619237200648 0.550162185920664 -0.365179804629008 -0.170436246228867 0.335573108511125 -0.254256723484289 -0.348047325147611 0.151075298132865 -0.131408757851236 -0.542995798284608 1.04848096272699 -0.60942740778482 0.0810546466896372 0.789729326947367 -0.520082257919094 -0.0422100242698292 0.550092718286696 -0.411693037238558 -0.190739209376069 0.335623359536229 -0.286660951039788 -0.361232355238144 0.151165657666609 -0.148185921847811 -0.549334823527693 1.92365834798148e-017 0.2026364 1.92365834798148e-017 0.39705586 1.92365834798148e-017 0.290029540860793 1.92365834798148e-017 0.343845808127345 1.92365834798148e-017 1.47493128821452e-013 1.92365834798148e-017 0.0911082093214561 1.92365834798148e-017 0.147194736764759 1.82687438 0 1.52239531761853 0 1.21791625389971 0 0.913437189931685 0 0.608958125973597 0 0.304479062294029 0 1.82687438 1 0 1 0.304479062294029 1 0.608958125973596 1 0.913437189931685 1 1.21791625389971 1 1.52239531761853 1 1.92365834798148e-017 0.797363620000357 1.92365834798148e-017 0.886379077805558 1.92365834798148e-017 0.942857989322004 1.92365834798148e-017 0.710954979931639 1.92365834798148e-017 0.656949580030102 1.92365834798148e-017 0.60294418 1.92365834798148e-017 0.511438262102016 1.92365834798148e-017 0.454247063131791 0.304479062294029 0.0911082093214561 0.608958125973597 0.0911082093214561 0.913437189931685 0.0911082093214561 1.21791625389971 0.0911082093214561 1.52239531761853 0.0911082093214561 0.304479062294029 0.147194736764759 0.608958125973597 0.147194736764759 0.913437189931685 0.147194736764759 1.21791625389971 0.147194736764759 1.52239531761853 0.147194736764759 0.304479062294029 0.2026364 0.608958125973597 0.2026364 0.913437189931685 0.2026364 1.21791625389971 0.2026364 1.52239531761853 0.2026364 0.304479062294029 0.290029540860793 0.608958125973597 0.290029540860793 0.913437189931685 0.290029540860793 1.21791625389971 0.290029540860793 1.52239531761853 0.290029540860793 0.304479062294029 0.343845808127345 0.608958125973597 0.343845808127345 0.913437189931685 0.343845808127345 1.21791625389971 0.343845808127345 1.52239531761853 0.343845808127345 0.304479062294029 0.39705586 0.608958125973597 0.39705586 0.913437189931685 0.39705586 1.21791625389971 0.39705586 1.52239531761853 0.39705586 0.304479062294029 0.454247063131791 0.608958125973597 0.454247063131791 0.913437189931685 0.454247063131791 1.21791625389971 0.454247063131791 1.52239531761853 0.454247063131791 0.304479062294029 0.511438262102016 0.608958125973597 0.511438262102016 0.913437189931685 0.511438262102016 1.21791625389971 0.511438262102016 1.52239531761853 0.511438262102016 0.304479062294029 0.60294418 0.608958125973597 0.60294418 0.913437189931685 0.60294418 1.21791625389971 0.60294418 1.52239531761853 0.60294418 0.304479062294029 0.656949580030102 0.608958125973597 0.656949580030102 0.913437189931685 0.656949580030102 1.21791625389971 0.656949580030102 1.52239531761853 0.656949580030102 0.304479062294029 0.710954979931639 0.608958125973597 0.710954979931639 0.913437189931685 0.710954979931639 1.21791625389971 0.710954979931639 1.52239531761853 0.710954979931639 0.304479062294029 0.797363620000357 0.608958125973597 0.797363620000357 0.913437189931685 0.797363620000357 1.21791625389971 0.797363620000357 1.52239531761853 0.797363620000357 0.304479062294029 0.886379077805558 0.608958125973597 0.886379077805558 0.913437189931685 0.886379077805558 1.21791625389971 0.886379077805558 1.52239531761853 0.886379077805558 0.304479062294029 0.942857989322004 0.608958125973597 0.942857989322004 0.913437189931685 0.942857989322004 1.21791625389971 0.942857989322004 1.52239531761853 0.942857989322004 6 5 29 7 6 29 7 34 1 34 7 29 34 29 30 1 34 39 5 13 29 4 3 44 49 2 4 28 2 54 44 3 39 44 39 40 44 49 4 3 1 39 34 35 39 13 12 30 31 35 30 30 35 34 40 39 35 41 45 40 46 50 45 40 45 44 40 35 36 44 45 49 49 54 2 54 49 50 59 54 55 54 59 28 50 55 54 56 60 55 61 65 60 55 60 59 49 45 50 59 60 65 55 50 51 29 13 30 28 59 64 26 27 64 25 26 69 64 69 26 69 64 65 74 69 70 69 74 25 27 28 64 25 74 79 21 24 79 23 22 89 21 84 22 15 23 16 24 25 79 21 79 84 74 75 79 70 75 74 70 69 65 71 75 70 75 80 79 80 84 79 81 85 80 86 90 85 80 85 84 80 75 76 84 85 90 89 94 23 94 89 90 16 94 17 94 16 23 95 17 94 18 95 96 18 17 95 91 95 90 95 94 90 89 84 90 66 70 65 84 89 22 64 59 65 30 12 11 11 31 30 31 11 10 36 31 32 31 36 35 10 32 31 32 10 9 37 32 33 32 37 36 36 37 42 41 46 45 46 41 42 47 51 46 46 51 50 61 56 57 51 52 56 46 42 47 56 61 60 41 36 42 51 56 55 37 38 42 36 41 40 33 38 37 33 32 9 33 9 8 38 43 42 38 8 43 8 38 33 43 8 48 43 47 42 47 43 48 52 57 56 57 52 53 62 57 58 57 62 61 48 53 52 53 48 8 58 53 8 53 58 57 52 47 48 62 58 63 8 63 58 47 52 51 61 62 67 66 71 70 71 66 67 76 71 72 71 76 75 67 72 71 72 67 68 77 72 73 72 77 76 61 67 66 76 77 82 81 86 85 86 81 82 91 86 87 86 91 90 96 91 92 87 86 82 87 82 83 92 91 87 81 76 82 91 96 95 77 78 82 76 81 80 73 72 68 63 8 68 73 68 14 78 77 73 88 87 83 83 78 14 88 83 14 88 92 87 73 14 78 83 82 78 92 97 96 97 92 93 19 97 98 97 19 96 93 98 97 98 93 14 14 20 98 93 88 14 98 20 19 92 88 93 8 14 68 68 67 63 62 63 67 96 19 18 61 66 65 
-56 89 1 0.123913107565126
--5.85000029206485e-009 -1.82839863052382e-018 -0.750000037063089 -5.85000029206485e-009 -1.82839863052382e-018 -0.750000037063089 1.31958590267696 -0.845840762795279 -1.40924429893551 1.04505127091171 -0.769490843409475 -1.36994443808077 0.77991113727823 -0.662257516256438 -1.29908862917696 0.534545151823389 -0.526404819684729 -1.19755121164405 0.318382987057389 -0.366422849914202 -1.06851649925909 0.138735727237096 -0.188552158877519 -0.917163594306161 1.31958607367697 -1.13939655511843 -0.618156128230839 1.3195861075372 -1.1231523766753 -0.875444436818631 1.31958612628234 -1.0420235461543 -1.12587857714587 1.31958612916396 -0.954674090681376 -1.27720451558429 1.31958587667696 -0.752125697664052 0.131521655936943 1.31958594368195 -0.93142344636607 -0.0537172834933423 1.31958600635893 -1.06196749730692 -0.282316050137134 1.31958604295557 -1.11504433835108 -0.448786215423208 1.04826063984805 -0.675516877079453 0.0428399235492932 0.789522345850416 -0.576355066821864 -0.0726964732871188 0.55001557214719 -0.456203942848229 -0.213286381852839 0.335679173224413 -0.31767761553864 -0.375876893134938 0.151266061798848 -0.164255971859559 -0.556378505144092 0.139303400400268 -0.203728510474111 -0.886840117264318 0.319551529290323 -0.399030312318697 -1.01003290768702 0.536199186732705 -0.577951792894182 -1.11408338396382 0.78170397886757 -0.733381414099753 -1.19467313719957 1.04637087727449 -0.859960042434694 -1.24923384053896 0.140120295956538 -0.21560456287898 -0.851760043559058 0.321001479036396 -0.424647947789642 -0.942297633212775 0.53800115854571 -0.618643848939175 -1.01744996103807 0.783455817015757 -0.789829393030758 -1.07402570078983 1.04755109715238 -0.932165883452412 -1.11023768321723 0.141752372179432 -0.225854906869005 -0.793247241098179 0.323582586117566 -0.446952859892405 -0.829304896606469 0.540814757639054 -0.654525794325643 -0.856373470641994 0.78583224509664 -0.840391950230772 -0.873248114145036 1.04893685552228 -0.997995741744246 -0.879487661503209 0.143720793431613 -0.226420667977117 -0.73280698109905 0.326414700363121 -0.448554468167678 -0.712770544224553 0.543513427473185 -0.657996741406606 -0.690470664203727 0.787711248752547 -0.846860957584742 -0.666680985770182 1.04975717284895 -1.00873774920314 -0.642282096478188 0.145165649609427 -0.221602963718998 -0.692936765561525 0.328366194871222 -0.438526069403118 -0.63609577455688 0.545183099883214 -0.642925382010201 -0.581479683409524 0.788651419467755 -0.827465002460752 -0.53102913853697 1.04998179862439 -0.986168516943974 -0.486399635989523 0.146707298614938 -0.21257706307737 -0.65373236203053 0.330352096250521 -0.419540250203846 -0.560927898434477 0.546732064900371 -0.613831520928224 -0.474798040267293 0.789328488245252 -0.788912119910704 -0.398258662222592 1.04994118002902 -0.93947542469118 -0.333610525358086 0.149060810335884 -0.191761179241335 -0.599925221851149 0.333206877502865 -0.375640213374186 -0.458279237978226 0.548674483380148 -0.546036607635928 -0.329477446126169 0.789772813578748 -0.697905199852665 -0.217371236450203 1.04937154609682 -0.827241411093449 -0.124874319420605 0 1 9.59518922649671e-017 0 1.61807207 0 1.34839339403736 0 1.07871471623327 0 0.80903603738972 0 0.539357358020103 0 0.269678678630335 0 1.61807207 0.5 1.61807206999999 0.359193481371667 1.61807207 0.210790778106227 1.61807207000001 0.107325723618553 1.61807207 1 1.61807207 0.840472273109893 1.61807207 0.689400219097534 1.61807207 0.593056271087731 1.34839339398667 1 1.0787147161759 1 0.809036037563002 1 0.539357358395096 1 0.269678678886338 1 0.269678678886338 0.107325723618553 0.539357358395096 0.107325723618553 0.809036037563002 0.107325723618553 1.07871471623327 0.107325723618553 1.34839339398667 0.107325723618553 0.269678678886338 0.210790778106227 0.539357358395096 0.210790778106227 0.809036037563002 0.210790778106227 1.07871471623327 0.210790778106227 1.34839339398667 0.210790778106227 0.269678678886338 0.359193481371667 0.539357358395096 0.359193481371667 0.809036037563002 0.359193481371667 1.07871471623327 0.359193481371667 1.34839339398667 0.359193481371667 0.269678678886338 0.5 0.539357358395096 0.5 0.809036037563002 0.5 1.07871471623327 0.5 1.34839339398667 0.5 0.269678678886338 0.593056271087731 0.539357358395096 0.593056271087731 0.809036037563002 0.593056271087731 1.07871471623327 0.593056271087731 1.34839339398667 0.593056271087731 0.269678678886338 0.689400219097534 0.539357358395096 0.689400219097534 0.809036037563002 0.689400219097534 1.07871471623327 0.689400219097534 1.34839339398667 0.689400219097534 0.269678678886338 0.840472273109893 0.539357358395096 0.840472273109893 0.809036037563002 0.840472273109893 1.07871471623327 0.840472273109893 1.34839339398667 0.840472273109893 2 8 22 8 7 22 22 27 2 23 27 22 32 37 2 33 37 32 32 27 28 27 32 2 7 23 22 2 37 1 23 6 24 6 23 7 24 6 5 23 24 29 28 33 32 33 28 29 29 34 33 34 29 30 28 23 29 37 33 38 24 25 29 23 28 27 39 33 34 42 38 43 38 42 37 43 38 39 42 43 47 1 47 52 47 1 42 52 21 1 48 52 47 52 53 21 48 47 43 42 1 37 43 44 48 44 43 39 44 39 40 48 44 49 53 20 21 20 53 54 49 54 53 54 49 50 53 48 49 20 54 19 44 45 49 48 53 52 38 33 39 34 35 39 5 26 25 26 5 4 25 26 31 30 29 25 40 39 35 35 30 31 36 35 31 35 36 40 30 25 31 45 44 40 26 11 31 35 34 30 4 3 12 12 11 26 36 41 40 41 36 10 10 36 31 11 10 31 41 10 9 26 4 12 40 41 46 45 46 50 45 40 46 50 46 51 55 54 50 19 54 18 18 55 17 51 55 50 55 18 54 56 55 51 46 15 51 49 45 50 16 15 46 15 14 51 56 17 55 17 56 14 14 13 17 51 14 56 16 46 9 41 9 46 25 24 5 
-20 18 1 0.154334512315495
-1.31958607367697 -1.13939655511843 -0.618156128230839 1.67261825148214 -1.20244723918725 -0.34728852178606 2.00330169521576 -1.21391484036593 -0.120706305331322 2.21142765988434 -1.19980631810208 0.00973960653396305 2.42413693614032 -1.16967838155674 0.134100623219438 1.3195861075372 -1.1231523766753 -0.875444436818631 1.31958612628234 -1.0420235461543 -1.12587857714587 1.31958612916396 -0.954674090681376 -1.27720451558429 1.31958590267696 -0.845840762795279 -1.40924429893551 2.34964929660235 -1.04896389482311 -1.40924429993551 1.77672435938302 -0.93931616725257 -1.40924429935252 2.06302814687661 -0.995127887888773 -1.40924429974689 2.39944598160556 -1.25898971999654 -0.0818048294905593 2.38112992396957 -1.31118546302101 -0.274103765755437 2.36780917124018 -1.33533221786101 -0.445539871743439 2.35748560714816 -1.33785110690989 -0.615428985115851 2.35015923166997 -1.31874213015983 -0.783771105873222 2.34583004478209 -1.27800528760296 -0.950566234016104 2.34449804646097 -1.21564057923144 -1.11581436954504 2.34586079670843 -1.14105440385019 -1.26315535755402 0 0 0 0.333333333333333 0 0.633333333333333 0 0.816666666666667 0 1 0.345724034919898 0 0.691448069666138 0 0.921930759989458 0 1.15241345 0 1.15241345 1 1.15241345 0.444444444444444 1.15241345 0.722222222222222 0.15557581575 1 0.295594049925 1 0.4216104606825 1 0.54762687144 1 0.6736432821975 1 0.799659692955 1 0.9256761037125 1 1.03904477685625 1 2 1 6 4 3 14 2 7 3 7 16 3 13 5 4 15 14 3 16 15 3 13 4 14 7 2 6 7 8 11 9 11 8 7 11 17 17 11 12 18 17 12 20 19 12 10 20 12 18 12 19 7 17 16 
-18 16 1 0.115977878284903
-1.31958586442696 -0.472656103864459 0.273205851457581 1.31958587667696 -0.752125697664052 0.131521655936943 1.31958587599974 -0.601310436237392 0.217989091902671 1.31958587733594 -0.678298737118356 0.177046435929486 1.31958607367697 -1.13939655511843 -0.618156128230839 1.31958592572079 -0.886878936675764 0.00144925799815643 1.31958597327689 -0.998286462812395 -0.154124197584785 1.31958601712872 -1.0797394651438 -0.328296503736456 1.31958604766054 -1.12018540074105 -0.472531406448406 2.42413693614032 -1.16967838155674 0.134100623219438 1.67261825148214 -1.20244723918725 -0.34728852178606 2.00330169521576 -1.21391484036593 -0.120706305331322 2.21142765988434 -1.19980631810208 0.00973960653396305 1.47599680594405 -0.639610810287289 0.284692024664738 1.64348010543148 -0.786251786284213 0.282310046579748 1.82203576816705 -0.912579031395176 0.266059917392167 2.01166379417853 -1.01859254563462 0.235941637102552 2.21236418349369 -1.10429232901699 0.191955205711457 0 0 1 0 0.44608620286198 0 0.72355369185348 0 1 1.34322039 1 0.293762299267564 1 0.587524598593614 1 0.881286897948112 1 1.11225364400261 0 1.34322039 0.666666665534131 1.34322039 0.366666665411105 1.34322039 0.1833333323112 1.34322039 0 0.223870065076119 0 0.447740130184658 0 0.671610195212179 0 0.895480260133625 0 1.11935032501233 3 15 14 8 17 16 16 15 7 18 17 12 13 10 18 12 13 18 12 17 8 14 1 3 3 4 6 2 6 4 3 6 7 11 8 9 11 12 8 9 5 11 7 8 16 7 15 3 
-18 16 1 0.110455130146336
-2.00023807100621 -0.163958005517587 0.96768671484265 1.31958583467696 -0.168220024938772 0.347343154078914 1.68034265171493 -0.165316950301304 0.711714177786113 1.49397171628453 -0.166610473052037 0.534867637486045 1.31958586442696 -0.472656103864459 0.273205851457581 1.31958584100404 -0.340556421039179 0.314541009917949 1.3195858372145 -0.255178382576979 0.333667050842138 2.42413693614032 -1.16967838155674 0.134100623219438 1.47599680594405 -0.639610810287289 0.284692024664738 1.64348010543148 -0.786251786284213 0.282310046579748 1.82203576816705 -0.912579031395176 0.266059917392167 2.01166379417853 -1.01859254563462 0.235941637102552 2.21236418349369 -1.10429232901699 0.191955205711457 2.33793659537936 -1.05063076388043 0.323726397104558 2.25795646658051 -0.912154168213515 0.493074267543474 2.18419654974376 -0.754248594549884 0.642144234536463 2.11665684486913 -0.576914042883427 0.770936298083804 2.05533735195661 -0.380150513208031 0.879450458185774 2.77555756156289e-017 0 1.16513326 0 0.517837002689349 0 0.841485131416271 0 1.16513326 1 1.16513326 0.558969518155144 1.16513326 0.28056229271149 0 1 0.970944382811498 1 0.776755505588554 1 0.582566628305837 0.999999999999999 0.388377751039687 1 0.194188874072094 1 2.77555756156289e-017 0.833333333000315 2.77555756156289e-017 0.666666666166804 2.77555756156289e-017 0.499999999480742 2.77555756156289e-017 0.333333332960039 2.77555756156289e-017 0.166666666027314 3 17 18 12 16 3 16 17 3 15 13 14 13 15 12 14 13 8 15 16 12 18 1 3 10 3 4 2 7 4 6 4 7 11 3 10 9 6 5 6 9 10 4 6 10 3 11 12 
-18 16 1 0.145804633302013
-2.00023807100621 -0.163958005517587 0.96768671484265 2.8066391593082 -0.164126217435577 1.41444139518236 2.34588580185689 -0.163490764212151 1.18896975682752 2.57322664956205 -0.163643758493824 1.30908770903795 2.8066391803082 0.164126150055573 1.41444143218236 2.80663916833175 -0.0194912673628966 1.457212006057 2.80663917454839 0.0769716794475223 1.44874983455831 2.00023808900621 0.163957938237584 0.967686749742652 2.34588582207574 0.163490697598396 1.18896979337871 2.5732266699423 0.163643691712296 1.30908774575009 1.31958583467696 0.168219953165144 0.347343163005289 1.60441034878631 0.165795469444205 0.642337162554026 1.79727574458254 0.164703076181386 0.811747220656833 1.31958583467696 -0.168220024938772 0.347343154078914 1.31958584303943 -0.0187619474826189 0.357632127049396 1.31958584146664 0.0749943425811947 0.355697014648514 1.68034265171493 -0.165316950301304 0.711714177786113 1.49397171628453 -0.166610473052037 0.534867637486045 2.78088653 1 0 1 1.54493696281289 0.999999999999999 0.77246848098267 1 0 0 0 0.555555555469711 0 0.277777778280213 2.78088653 5.55111512312578e-017 1.54493696633072 5.55111512312578e-017 0.772468483215807 5.55111512312578e-017 5.56177307 5.55111512312578e-017 4.32582349613839 5.55111512312578e-017 3.55335501610199 5.55111512312578e-017 5.56177307 1 5.56177307 0.555555555418298 5.56177307 0.277777778242297 4.0168361034047 1 4.78930458665747 1 5 10 7 3 9 1 10 9 3 7 10 6 6 4 2 10 4 6 10 3 4 9 8 1 17 13 12 11 16 12 18 12 16 1 13 17 18 15 14 18 17 12 15 18 16 13 1 8 
-15 13 1 0.132311448354242
-3.07361411498883 -0.462644191244419 1.41444136118236 2.8066391593082 -0.164126217435577 1.41444139518236 2.94898056383997 -0.335153637918271 1.41444137593682 2.87584507215463 -0.251150434400032 1.41444138539241 2.00023807100621 -0.163958005517587 0.96768671484265 2.34588580185689 -0.163490764212151 1.18896975682752 2.57322664956205 -0.163643758493824 1.30908770903795 2.42413693614032 -1.16967838155674 0.134100623219438 2.33793659537936 -1.05063076388043 0.323726397104558 2.25795646658051 -0.912154168213515 0.493074267543474 2.18419654974376 -0.754248594549884 0.642144234536463 2.11665684486913 -0.576914042883427 0.770936298083804 2.05533735195661 -0.380150513208031 0.879450458185774 2.78308122024001 -0.802383593553081 0.860435652197442 2.60302271225439 -0.994000357665173 0.501966456133244 0 0 1 0 0.444444444432978 0 0.72222222296522 0 1 1.3088836 1 0.727157556937249 1 0.363578778845788 0 1.3088836 0.166666666015702 1.3088836 0.333333332894372 1.3088836 0.499999999867063 1.3088836 0.666666666884161 1.3088836 0.833333333873757 1.3088836 0 0.581726046743372 0 0.94530482420102 1 3 14 6 15 14 8 15 9 10 9 15 10 15 11 14 3 7 7 6 14 7 4 2 6 11 15 11 6 12 5 13 6 6 13 12 3 4 7 
-25 23 1 0.162058934831635
-2.34964929660235 -1.04896389482311 -1.40924429993551 3.38400016073138 -1.22492845218098 -1.40924430093551 2.80876202400574 -1.13089220298884 -1.4092443000233 3.09615094336071 -1.1791677381899 -1.40924430031222 3.38400016073138 -1.63898554684763 0.123910676095441 3.38400016073138 -1.35811380939064 -1.23297614882469 3.38400016073137 -1.47437500086536 -1.03213339058407 3.38400016073137 -1.5679163295907 -0.808816364942999 3.38400016073138 -1.62810086800836 -0.591723115220114 3.38400016073138 -1.65984444379186 -0.386626076977403 3.38400016073138 -1.66839768529699 -0.175977430683388 3.38400016073138 -1.65982334049852 -0.0256835591777095 2.42413693614032 -1.16967838155674 0.134100623219438 2.54750154854928 -1.20228708803505 0.119632544476074 2.69963735238673 -1.26733920477616 0.113585824353254 2.92704061634566 -1.39859942915921 0.120705522566229 3.15044670410707 -1.53332512656113 0.13044149745616 2.39944598160556 -1.25898971999654 -0.0818048294905593 2.38112992396957 -1.31118546302101 -0.274103765755437 2.36780917124018 -1.33533221786101 -0.445539871743439 2.35748560714816 -1.33785110690989 -0.615428985115851 2.35015923166997 -1.31874213015983 -0.783771105873222 2.34583004478209 -1.27800528760296 -0.950566234016104 2.34449804646097 -1.21564057923144 -1.11581436954504 2.34586079670843 -1.14105440385019 -1.26315535755402 0 0 1 0 0.44444444378134 0 0.72222222263792 0 1 1.52499365 1 0.228749679321774 1 0.457497542519492 1 0.686246945763118 1 0.892122864299127 1 1.07740573437973 1 1.26269589794918 1 1.39384813668604 1.11022302462516e-016 1.52499365 0.121499999618122 1.52499365 0.278092129989235 1.52499365 0.52109212968029 1.52499365 0.760546065231962 1.52499365 5.55111512312578e-017 1.31911950723772 5.55111512312578e-017 1.13383277863375 5.55111512312578e-017 0.967074723023258 5.55111512312578e-017 0.800316667274465 5.55111512312578e-017 0.633558611476845 5.55111512312578e-017 0.466800555459169 5.55111512312578e-017 0.30004249909596 5.55111512312578e-017 0.150021247967618 3 24 25 3 23 24 8 21 22 9 20 21 22 23 7 15 19 16 18 19 15 18 14 13 14 18 15 16 19 20 25 1 3 3 4 7 4 2 6 6 7 4 8 22 7 9 21 8 17 16 11 16 20 10 11 16 10 11 12 17 12 5 17 9 10 20 23 3 7 
-19 17 1 0.128681278522781
-3.38400016073138 -1.63898554684763 0.123910676095441 3.38400016073138 -0.713493162199105 1.41444133318236 3.38400016073138 -1.58502647348115 0.344036676197348 3.38400016073138 -1.50403900679337 0.557149584569082 3.38400016073138 -1.39768508387122 0.758378718803258 3.38400016073138 -1.26874995848862 0.943416504686656 3.38400016073138 -1.12090926790525 1.10881833057415 3.38400016073138 -0.958413269653136 1.25219469520757 3.38400016073138 -0.837699505535521 1.33915670950979 3.07361411498883 -0.462644191244419 1.41444136118236 3.24135762144044 -0.608644673147794 1.41444134527015 3.15592258817639 -0.537609889163689 1.41444135305907 2.42413693614032 -1.16967838155674 0.134100623219438 2.78308122024001 -0.802383593553081 0.860435652197442 2.60302271225439 -0.994000357665173 0.501966456133244 2.54750154854928 -1.20228708803505 0.119632544476074 2.69963735238673 -1.26733920477616 0.113585824353254 2.92704061634566 -1.39859942915921 0.120705522566229 3.15044670410707 -1.53332512656113 0.13044149745616 0 0 1.96208622 0 0.264881639665088 0 0.529763279764205 0 0.794644920743931 0 1.0595265562996 0 1.32440820204613 0 1.58928983429931 0 1.77568803250497 0 1.96208622 1 1.96208622 0.444444444440368 1.96208622 0.722222222218934 0 1 1.09004790246371 1 0.545023952326804 1 0 0.878500000416241 0 0.721907870479083 0 0.478907870157007 0 0.239453934624355 19 1 3 19 3 18 18 3 4 17 18 15 16 15 13 15 16 17 18 4 15 4 5 15 5 6 14 7 8 11 8 9 11 6 7 14 7 11 14 11 9 2 12 10 14 11 12 14 5 14 15 
-37 35 1 0.296600035187744
-4.85761506672432 -1.22947768939705 1.41444127518235 5.52265133956837 -1.30811678288804 1.41444126638674 5.9383781558584 -1.33408231962202 1.41444126356438 6.35000030160882 -1.3468533929721 1.41444126218235 3.38400016073138 -0.713493162199105 1.41444133318236 3.84049390386003 -0.958528730911081 1.41444130560298 4.33720549009535 -1.12322843109391 1.41444128704962 3.38400016073138 -1.63898554684763 0.123910676095441 3.38400016073138 -1.58502647348115 0.344036676197348 3.38400016073138 -1.50403900679337 0.557149584569082 3.38400016073138 -1.39768508387122 0.758378718803258 3.38400016073138 -1.26874995848862 0.943416504686656 3.38400016073138 -1.12090926790525 1.10881833057415 3.38400016073138 -0.958413269653136 1.25219469520757 3.38400016073138 -0.837699505535521 1.33915670950979 3.38400016073138 -1.22492845218098 -1.40924430093551 3.38400016073138 -1.35811380939064 -1.23297614882469 3.38400016073137 -1.47437500086536 -1.03213339058407 3.38400016073137 -1.5679163295907 -0.808816364942999 3.38400016073138 -1.62810086800836 -0.591723115220114 3.38400016073138 -1.65984444379186 -0.386626076977403 3.38400016073138 -1.66839768529699 -0.175977430683388 3.38400016073138 -1.65982334049852 -0.0256835591777095 6.35000030160882 -1.56406656428917 -1.43766213928528 4.6997690246913 -1.39905808159757 -1.40960607270192 5.5256333558646 -1.47675272828227 -1.40851541239464 6.35000030396484 -1.70953288624009 -1.24208508438565 6.35000030174547 -1.83523503041623 -1.02133487538798 6.35000030160882 -1.93545101474559 -0.778275699319967 6.35000030160882 -2.00501456129326 -0.51740753404603 6.35000030160882 -2.03988311187165 -0.244712320205193 6.35000030160882 -2.03764256303282 0.0327278797382362 6.35000030126082 -1.99784184242751 0.307307522241323 6.35000030142539 -1.92207860878283 0.571577097232108 6.35000030140048 -1.8138117430624 0.818901870474457 6.35000030124436 -1.67794276203627 1.04398108964016 6.35000030173831 -1.52025944526642 1.24314957556407 0.48486454 0 0.269369190211943 0 0.134684594988561 0 2.77555756156289e-017 0 1 0 0.828288182646625 0 0.656576364569744 0 1 0.5 1.00000000000002 0.435408427216651 1.00000000000001 0.369942255880653 0.999999999999999 0.303583621968126 0.999999999999993 0.236314140387526 0.999999999999996 0.168114904979649 1 0.098966488517623 1.00000000000001 0.0497267477893803 1 1 1 0.925000001207136 1 0.850000001481918 1 0.774999999195505 1 0.707499997525576 1 0.646749997339848 1 0.586000002534903 1 0.543000001469943 0 1 0.555555556232173 1 0.27777777786939 1 0 0.916666668681687 0 0.83333333385992 0 0.74999999863242 0 0.666666669801848 0 0.58333334272306 0 0.499999998884735 0 0.416666662494682 0 0.333333337208402 0 0.250000003006112 0 0.166666664156679 0 0.0833333307117692 36 37 3 34 35 2 36 2 35 2 36 3 34 1 33 34 2 1 33 1 32 3 37 4 31 32 25 29 30 26 31 25 30 27 28 26 26 24 27 26 28 29 30 25 26 25 32 23 32 1 8 7 6 12 13 12 6 6 14 13 7 12 11 15 14 6 11 10 7 6 5 15 10 9 1 22 25 23 19 25 20 18 25 19 20 25 21 25 22 21 8 1 9 25 17 16 32 8 23 25 18 17 10 1 7 
-26 24 1 0.139607933897686
-3.07361411498883 -0.462644191244419 1.41444136118236 2.94898056383997 -0.335153637918271 1.41444137593682 2.87584507215463 -0.251150434400032 1.41444138539241 2.8066391593082 -0.164126217435577 1.41444139518236 3.38400016073138 -0.713493162199105 1.41444133318236 3.24135762144044 -0.608644673147794 1.41444134527015 3.15592258817639 -0.537609889163689 1.41444135305907 3.38400016073138 0.713492872779091 1.41444149318236 3.38400016073138 -0.577426367343809 1.49633785306883 3.38400016073138 -0.427346679273735 1.56211667300097 3.38400016073138 -0.282719818526706 1.60488793154354 3.38400016073138 -0.147185610854218 1.62850255695094 3.38400016073137 -0.00898600151597089 1.63713688549801 3.38400016073137 0.129377639617865 1.63047809670035 3.38400016073138 0.265394072170377 1.60876772060618 3.38400016073138 0.39669195780135 1.57278005662385 3.38400016073138 0.521172470888611 1.52375463327119 3.38400016073138 0.620872414378582 1.47270644768041 3.07361414598883 0.46264399884441 1.41444146518236 3.24135763930601 0.608644422086465 1.41444148183531 3.15592261383089 0.537609666134023 1.4144414739075 2.8066391803082 0.164126150055573 1.41444143218236 2.91926912460434 0.30193092904243 1.41444144758977 2.99465529612995 0.384000169914816 1.41444145661755 2.80663916833175 -0.0194912673628966 1.457212006057 2.80663917454839 0.0769716794475223 1.44874983455831 0.500000000003734 0 0.277777777501674 0 0.138888888675342 0 3.73387432084371e-012 0 1.00000000000373 0 0.777777778202302 0 0.638888889211014 0 1.00000000000373 1.66079697049607 1.00000000000373 0.181608147332413 1.00000000000373 0.363216295394051 1.00000000000373 0.52666362884887 1.00000000000373 0.673766229119676 1.00000000000373 0.820868829543454 1.00000000000373 0.967971430120202 1.00000000000373 1.11507403084992 1.00000000000373 1.26217663173261 1.00000000000373 1.40927923276827 1.00000000000373 1.53503810157627 0.499999999834495 1.66079697 0.777777777707767 1.66079697 0.638888888771131 1.66079697 0 1.66079697 0.222222222299099 1.66079697 0.361111111236036 1.66079697 3.73390207641933e-012 0.738131984470387 3.73390207641933e-012 1.19946447521918 4 3 25 25 3 2 2 1 25 25 1 12 25 14 26 22 26 23 23 26 24 19 24 26 21 19 15 19 26 14 21 16 20 7 11 1 6 5 9 6 9 10 11 7 10 12 1 11 12 13 25 14 25 13 15 19 14 17 20 16 8 20 18 18 20 17 16 21 15 6 10 7 
-18 16 1 0.116369561459739
-1.31958584867696 0.472656070609958 0.273205863752832 1.31958583467696 0.168219953165144 0.347343163005289 1.31958584095666 0.339017247825535 0.314937123311732 1.31958583734353 0.253907973795285 0.333908491051905 2.00023808900621 0.163957938237584 0.967686749742652 1.60441034878631 0.165795469444205 0.642337162554026 1.79727574458254 0.164703076181386 0.811747220656833 2.42419264614297 1.16954252255029 0.134080451298479 2.05531606438616 0.380061468975793 0.879341356442304 2.11662648664547 0.576762559722158 0.770760367232485 2.18416935586747 0.754061210464734 0.641943782113192 2.2579446721355 0.911957421191577 0.492891601084427 2.33795243553289 1.05045119189074 0.323603824146189 1.47608844351784 0.639447040978585 0.284570199928766 1.64363045366085 0.785980721063931 0.282113773728944 1.82221187905042 0.912257109254886 0.26583658576656 2.011832719631 1.01827620556034 0.235738636041058 2.21249297534703 1.10403800998917 0.191819924551883 1.16510272 1.11022302462516e-016 1.16510272 1 1.16510272 0.446086204356617 1.16510272 0.723553692819588 6.24500451351651e-017 1 0.647279291132684 1 0.323639647893713 1 0 0 0 0.833333334022031 0 0.66666666720423 0 0.500000000785645 0 0.333333334122705 0 0.16666666730592 0.970918934226036 0 0.776735148198736 0 0.582551362278438 0 0.388367576268374 0 0.19418378959458 0 13 8 18 11 12 17 18 12 13 10 11 7 9 7 5 7 9 10 7 11 17 17 12 18 16 6 7 15 14 3 16 15 6 15 3 6 3 14 1 4 2 6 4 6 3 16 7 17 
-15 13 1 0.125878895920175
-2.8066391803082 0.164126150055573 1.41444143218236 3.07361414598883 0.46264399884441 1.41444146518236 2.91926912460434 0.30193092904243 1.41444144758977 2.99465529612995 0.384000169914816 1.41444145661755 2.42419264614297 1.16954252255029 0.134080451298479 2.78307737781871 0.802379480555354 0.860469364382747 2.60303970246182 0.993947989095634 0.501986544908411 2.00023808900621 0.163957938237584 0.967686749742652 2.05531606438616 0.380061468975793 0.879341356442304 2.11662648664547 0.576762559722158 0.770760367232485 2.18416935586747 0.754061210464734 0.641943782113192 2.2579446721355 0.911957421191577 0.492891601084427 2.33795243553289 1.05045119189074 0.323603824146189 2.34588582207574 0.163490697598396 1.18896979337871 2.5732266699423 0.163643691712296 1.30908774575009 1 1.3090632 0 1.3090632 0.555555555242808 1.3090632 0.277777776715146 1.3090632 5.55111512312578e-017 0 5.55111512312578e-017 0.727257332737147 5.55111512312578e-017 0.363628665580068 1 0 0.833333333983808 0 0.666666666969897 0 0.500000000024943 0 0.333333333063134 0 0.166666666026207 0 1 0.581805865259655 1 0.945434532760471 5 13 7 13 12 7 6 4 2 14 6 7 6 3 4 11 7 12 11 10 14 9 8 14 10 9 14 6 15 3 6 14 15 15 1 3 14 7 11 
-19 17 1 0.135947490262721
-3.38400016073138 0.713492872779091 1.41444149318236 3.38400016073138 1.63898521684762 0.123909655855393 3.38400016073138 0.916448136687276 1.28411073468729 3.38400016073138 1.0864416555798 1.14214268785854 3.38400016073138 1.22544553374045 0.996109533704167 3.38400016073138 1.34827926302754 0.835068612870254 3.38400016073138 1.45266834595392 0.661827395118474 3.38400016073138 1.53700356074318 0.479609951488945 3.38400016073138 1.59733990644568 0.302766661244289 2.42419264614297 1.16954252255029 0.134080451298479 2.54755389403387 1.20221227609898 0.11963797711826 2.70001520649328 1.26740663230953 0.113571573709852 2.92743197746725 1.39858402258449 0.12063232527974 3.15068062875737 1.53316965812417 0.130323278877111 3.07361414598883 0.46264399884441 1.41444146518236 2.78307737781871 0.802379480555354 0.860469364382747 2.60303970246182 0.993947989095634 0.501986544908411 3.24135763930601 0.608644422086465 1.41444148183531 3.15592261383089 0.537609666134023 1.4144414739075 1.94845075 1 0 1 1.65618313740504 1 1.39314228609559 1 1.15640551995641 1 0.919668753857221 1 0.682931987788471 1 0.446195221728751 1 0.223097610893827 1 1.11022302462516e-016 0 1.11022302462516e-016 0.121499999686402 1.11022302462516e-016 0.278423389012415 1.11022302462516e-016 0.5214233896998 1.11022302462516e-016 0.760711695469282 1.94845075 0 1.08247263731906 0 0.5412363175168 0 1.94845075 0.555555555402381 1.94845075 0.277777776920824 11 10 17 12 17 13 17 12 11 13 9 14 9 13 8 14 9 2 13 17 8 17 7 8 7 17 6 6 17 16 15 19 16 19 18 16 4 16 18 5 6 16 3 4 18 1 3 18 5 16 4 
-29 27 1 0.245895527779409
-3.38400016073138 -0.713493162199105 1.41444133318236 4.85761506672432 -1.22947768939705 1.41444127518235 3.84049390386003 -0.958528730911081 1.41444130560298 4.33720549009535 -1.12322843109391 1.41444128704962 4.85761506672432 1.22947738839704 1.41444155118237 4.85761507666035 -1.06627645676331 1.54507090990327 4.85761508541231 -0.882413973426705 1.66013359454932 4.85761509264786 -0.680035541276079 1.75525988177585 4.85761509806498 -0.46245359299543 1.82647926954618 4.85761510142088 -0.234044524808025 1.87059946883775 4.85761510255776 -2.03294602435776e-007 1.88554614026264 4.85761510142088 0.234044121568828 1.87059952137733 4.85761509806498 0.462453199644933 1.82647937336031 4.85761509264786 0.680035163888051 1.755260034434 4.85761508541231 0.882413617359425 1.66013379263852 4.85761507666035 1.06627612648515 1.54507114926695 3.38400016073138 0.713492872779091 1.41444149318236 4.1681861305127 1.07590337726366 1.41444153397126 3.76117255216661 0.923859123877657 1.41444151686298 3.38400016073138 -0.577426367343809 1.49633785306883 3.38400016073138 -0.427346679273735 1.56211667300097 3.38400016073138 -0.282719818526706 1.60488793154354 3.38400016073138 -0.147185610854218 1.62850255695094 3.38400016073137 -0.00898600151597089 1.63713688549801 3.38400016073137 0.129377639617865 1.63047809670035 3.38400016073138 0.265394072170377 1.60876772060618 3.38400016073138 0.39669195780135 1.57278005662385 3.38400016073138 0.521172470888611 1.52375463327119 3.38400016073138 0.620872414378582 1.47270644768041 0 0 1 0 0.333333333333333 0 0.666666666666667 0 1 1.55787992 1 0.129823326732209 1 0.259646653421427 1 0.389469980072907 1 0.519293306696787 1 0.649116633306166 1 0.778939959915181 1 0.908763286537086 1 1.03858661318233 1 1.16840993985665 1 1.2982332665591 1 1.42805659328022 0 1.55787992 0.555555555555556 1.55787992 0.277777777777778 1.55787992 0 0.170354169122761 0 0.340708338284464 0 0.494027090634047 0 0.632013967784602 0 0.77000084501105 0 0.907987722248202 0 1.04597459941972 0 1.18396147655469 0 1.32194835362032 0 1.43991413679041 20 1 3 21 20 3 23 22 9 3 22 21 10 24 23 25 24 11 19 26 18 27 26 19 29 28 19 19 17 29 28 27 19 13 26 25 3 9 22 4 2 6 4 6 7 9 4 8 23 9 10 8 4 7 10 11 24 13 25 12 18 13 14 18 26 13 25 11 12 14 15 18 5 18 16 16 18 15 4 9 3 
-32 30 1 0.275796653129637
-4.85761506672432 1.22947738839704 1.41444155118237 6.35000030160882 1.34685307097208 1.41444156518237 5.52265133808688 1.30811648144358 1.41444156039499 5.93837815615932 1.33408201067756 1.41444156361172 4.85761506672432 -1.22947768939705 1.41444127518235 4.85761507666035 -1.06627645676331 1.54507090990327 4.85761508541231 -0.882413973426705 1.66013359454932 4.85761509264786 -0.680035541276079 1.75525988177585 4.85761509806498 -0.46245359299543 1.82647926954618 4.85761510142088 -0.234044524808025 1.87059946883775 4.85761510255776 -2.03294602435776e-007 1.88554614026264 4.85761510142088 0.234044121568828 1.87059952137733 4.85761509806498 0.462453199644933 1.82647937336031 4.85761509264786 0.680035163888051 1.755260034434 4.85761508541231 0.882413617359425 1.66013379263852 4.85761507666035 1.06627612648515 1.54507114926695 6.35000030160882 -1.3468533929721 1.41444126218235 5.52265133956837 -1.30811678288804 1.41444126638674 5.9383781558584 -1.33408231962202 1.41444126356438 6.35000030160882 -1.17540514948583 1.56733152685004 6.35000030160882 -0.978134333521503 1.70360115675309 6.35000030160881 -0.757284284696307 1.81740965260459 6.35000030160881 -0.541563422010284 1.89611075189102 6.35000030160882 -0.337035297000426 1.94484123549262 6.35000030160881 -0.126272801290277 1.97079572155532 6.35000030160882 0.086862899319232 1.97301172707035 6.35000030160881 0.2983638639979 1.9514061624334 6.35000030160881 0.504323466883452 1.90678300777165 6.35000030160881 0.701171537287055 1.84075983217478 6.35000030160881 0.885867663153515 1.75562540260023 6.35000030160882 1.05603242210979 1.65415098527682 6.35000030160881 1.2100081974529 1.53938275662709 1 0 0 0 0.555555555555556 0 0.277777777777778 0 1 2.03028442 1 1.86109405158125 1 1.69190368321853 1 1.52271331490499 1 1.35352294662741 1 1.18433257836874 1 1.01514221011054 1 0.845951841835542 1 0.676761473530124 1 0.507571105186825 1 0.338380736806847 1 0.169190368402558 0 2.03028442 0.555555555555556 2.03028442 0.277777777777778 2.03028442 0 1.86109405122904 0 1.6919036826155 0 1.52271331420626 0 1.37044198280878 0 1.23339778466314 0 1.09635358658687 0 0.9593093885371 0 0.822265190468568 0 0.685220992338266 0 0.548176794110105 0 0.411132595759571 0 0.274088397278381 0 0.137044198679139 32 2 4 30 31 4 32 4 31 28 29 13 30 3 29 13 27 28 27 12 26 11 25 26 9 23 24 24 25 10 19 21 22 19 17 20 20 21 19 22 23 8 3 30 4 3 1 16 16 15 3 3 15 14 12 27 13 11 26 12 29 14 13 10 25 11 23 9 8 19 22 18 8 18 22 24 10 9 6 18 7 5 18 6 7 18 8 14 29 3 
-38 36 1 0.307386365011047
-3.38400016073138 0.713492872779091 1.41444149318236 3.38400016073138 0.916448136687276 1.28411073468729 3.38400016073138 1.0864416555798 1.14214268785854 3.38400016073138 1.22544553374045 0.996109533704167 3.38400016073138 1.34827926302754 0.835068612870254 3.38400016073138 1.45266834595392 0.661827395118474 3.38400016073138 1.53700356074318 0.479609951488945 3.38400016073138 1.59733990644568 0.302766661244289 3.38400016073138 1.63898521684762 0.123909655855393 4.85761506672432 1.22947738839704 1.41444155118237 4.1681861305127 1.07590337726366 1.41444153397126 3.76117255216661 0.923859123877657 1.41444151686298 5.52265133808688 1.30811648144358 1.41444156039499 5.93837815615932 1.33408201067756 1.41444156361172 6.35000030160882 1.34685307097208 1.41444156518237 6.35000030160882 1.56406643828917 -1.43766224628529 6.35000030167802 1.5169639730057 1.24680945910158 6.35000030154638 1.66967994362967 1.05577860053393 6.35000030170198 1.80109046997432 0.843018642029185 6.35000030148551 1.90740783275211 0.61093614574432 6.35000030179863 1.98512138620135 0.362685038563081 6.35000030172621 2.03116412610012 0.102136778489872 6.35000030172513 2.04307544059036 -0.166185263441489 6.35000030182507 2.01915670671668 -0.437219183837491 6.35000030190492 1.95860004378402 -0.705513345079326 6.3500003009329 1.86158398334945 -0.965412603509462 6.35000030160882 1.74407900073263 -1.18747215393678 6.35000030160882 1.65886953082435 -1.31586429582232 3.38400016073138 1.22492955611853 -1.40924522574805 4.69976902696676 1.39905803017261 -1.40960613369794 5.52563336776084 1.47675264450704 -1.40851551193499 3.38400016073138 1.35811682367428 -1.23297844343444 3.38400016073138 1.4743773515163 -1.03213508322534 3.38400016073137 1.56791797828258 -0.80881763149339 3.38400016073138 1.62810190119317 -0.591724152235714 3.38400016073138 1.65984497390542 -0.386627021176281 3.38400016073138 1.66839778951478 -0.175978368750238 3.38400016073137 1.65982320119437 -0.025684529769309 5.55111512312578e-017 1 0.0817027273285483 0.999999999999985 0.153062605150817 0.999999999999985 0.215599683699423 0.999999999999993 0.276599937066966 1 0.336119575441062 1.00000000000001 0.394212074356963 1.00000000000002 0.44769708896049 1.00000000000001 0.5 1 0 0.48486452 0 0.713813622491859 0 0.856906810007868 0 0.26936917802745 0 0.134684589708243 0 2.77555756156289e-017 1 0 0.0833333342506114 0 0.166666667926499 0 0.250000001618555 0 0.333333335522048 0 0.416666669436621 0 0.500000002766295 0 0.583333335089031 0 0.666666667098709 0 0.749999999576482 0 0.833333332672649 0 0.908333333643698 0 0.954166667352221 0 1 1 1 0.555555555686165 1 0.277777777636341 0.925000000323227 1 0.849999999524226 1 0.774999999664832 1 0.707500000373549 1 0.646750001387974 1 0.586000001900808 1 0.543000002791961 1 14 15 17 10 13 20 14 18 13 17 18 14 19 20 13 20 21 10 18 19 13 8 10 22 3 12 4 2 1 12 3 2 12 12 11 4 4 11 5 10 6 11 6 5 11 10 7 6 10 8 7 10 21 22 30 22 23 24 25 31 30 23 24 26 27 31 28 16 31 28 31 27 26 31 25 31 30 24 38 30 37 38 9 22 35 36 30 37 30 36 34 30 33 30 34 35 30 32 33 32 30 29 22 30 38 22 9 8 
-31 29 1 0.283364987335613
-7.21279194058922 -1.34821673503686 1.41444126218235 6.35000030160882 -1.3468533929721 1.41444126218235 7.21279194058922 1.34821630603684 1.41444156518237 7.21279194058922 -1.17836706527992 1.56970730697846 7.21279194058922 -0.981917285228737 1.70848917867161 7.21279194058922 -0.784151085313912 1.81424846604148 7.21279194058922 -0.591563674737238 1.89028853266407 7.21279194058922 -0.388086262235879 1.94542303607734 7.21279194058922 -0.17721191057762 1.97761684205229 7.21279194058922 0.0371083726826099 1.98563900726458 7.21279194058922 0.250703487409071 1.96917785934748 7.21279194058922 0.459449006590256 1.9288708047215 7.21279194058922 0.659527747637658 1.86624365592483 7.21279194058922 0.847650417151275 1.78357001599117 7.21279194058922 1.02121123683069 1.68367414406423 7.21279194058922 1.17836660149198 1.56970757180622 7.21279194058922 1.26668721907229 1.49375519312968 6.35000030160882 1.34685307097208 1.41444156518237 6.35000030160882 -1.17540514948583 1.56733152685004 6.35000030160882 -0.978134333521503 1.70360115675309 6.35000030160881 -0.757284284696307 1.81740965260459 6.35000030160881 -0.541563422010284 1.89611075189102 6.35000030160882 -0.337035297000426 1.94484123549262 6.35000030160881 -0.126272801290277 1.97079572155532 6.35000030160882 0.086862899319232 1.97301172707035 6.35000030160881 0.2983638639979 1.9514061624334 6.35000030160881 0.504323466883452 1.90678300777165 6.35000030160881 0.701171537287055 1.84075983217478 6.35000030160881 0.885867663153515 1.75562540260023 6.35000030160882 1.05603242210979 1.65415098527682 6.35000030160881 1.2100081974529 1.53938275662709 0 3.67726025 1.00000000000183 3.67726025 5.80428149987711e-010 0 5.80428149987711e-010 3.37082189451615 5.80428149987711e-010 3.0643835400841 5.80428149987711e-010 2.78858902179313 5.80428149987711e-010 2.54037395574408 5.80428149987711e-010 2.29215888995182 5.80428149987711e-010 2.04394382428684 5.80428149987711e-010 1.79572875861964 5.80428149987711e-010 1.5475136928207 5.80428149987711e-010 1.29929862676052 5.80428149987711e-010 1.05108356030958 5.80428149987711e-010 0.802868493338392 5.80428149987711e-010 0.55465342571743 5.80428149987711e-010 0.306438357317192 5.80428149987711e-010 0.153219178846968 1.00000000000137 0 1.00000000058043 3.37082189580785 1.00000000058043 3.06438354176634 1.00000000058043 2.75794518795757 1.00000000058043 2.48215066971977 1.00000000058043 2.23393560341102 1.00000000058043 1.98572053713458 1.00000000058043 1.73750547081243 1.00000000058043 1.48929040436246 1.00000000058043 1.24107533770698 1.00000000058043 0.992860270781134 1.00000000058043 0.744645203541377 1.00000000058043 0.4964301359739 1.00000000058043 0.248215068103093 17 3 18 16 17 31 14 15 29 12 13 27 14 28 13 16 30 15 10 11 25 10 24 9 7 8 22 5 6 20 7 21 6 9 23 8 12 26 11 31 30 16 30 29 15 14 29 28 28 27 13 25 11 26 26 12 27 25 24 10 20 4 5 4 2 1 19 2 4 4 20 19 6 21 20 7 22 21 8 23 22 24 23 9 31 17 18 
-35 33 1 0.323590015199081
-3.38400016073138 -1.22492845218098 -1.40924430093551 4.6997690246913 -1.39905808159757 -1.40960607270192 5.5256333558646 -1.47675272828227 -1.40851541239464 6.35000030160882 -1.56406656428917 -1.43766213928528 3.38400016073138 1.22492955611853 -1.40924522574805 3.38400016073137 1.09243528555817 -1.57371534462723 3.38400016073138 0.92720598825082 -1.72650574115408 3.38400016073138 0.73000467281345 -1.85885766434139 3.38400016073138 0.504603192989606 -1.9617554382431 3.38400016073138 0.283358134934521 -2.02253796998391 3.38400016073138 0.075341806282424 -2.04779558773226 3.38400016073138 -0.134904888580723 -2.04358651303702 3.38400016073138 -0.341170930077966 -2.01015830423817 3.38400016073138 -0.537628875760522 -1.94944060577972 3.38400016073138 -0.71935906766228 -1.8647750172514 3.38400016073138 -0.882704838912726 -1.76047832934829 3.38400016073137 -1.05828443149857 -1.60925267042274 3.38400016073137 -1.14768590783751 -1.51083768321651 6.35000030160882 1.56406643828917 -1.43766224628529 4.69976902696676 1.39905803017261 -1.40960613369794 5.52563336776084 1.47675264450704 -1.40851551193499 6.35000030160882 -1.37918294639605 -1.63041026918977 6.35000030128064 -1.18757311133038 -1.78550785070286 6.35000028394389 -0.996124778782955 -1.90677468679433 6.35000029120144 -0.788500154395926 -2.00775182001858 6.35000030152583 -0.566967805974883 -2.0857746285429 6.3500003028341 -0.334283725055918 -2.13847300052605 6.35000030562478 -0.0936640377750591 -2.16385093589632 6.35000029989905 0.151282169469573 -2.16039311356122 6.35000030146899 0.396635521269916 -2.12713866961077 6.35000030131532 0.638267263095292 -2.0637666867198 6.35000030160882 0.871961000594629 -1.97063246442124 6.35000030160882 1.09354344961234 -1.84879167611667 6.35000030160882 1.29902066042496 -1.69999120546711 6.35000030160882 1.43754376961237 -1.57488142912025 1 0 0.555555555555556 0 0.277777777777778 0 0 0 1 1.10976049 1 1.01728044968929 1 0.924800409238179 1 0.83232036832083 1 0.739840327130716 1 0.656608290318386 0.999999999999999 0.581699457696711 1 0.506790624937133 1 0.431881790737058 1 0.356972957641467 0.999999999999997 0.282064125514265 1 0.207155291957709 1 0.113195568561294 1 0.0565977857970222 0 1.10976049 0.555555555460674 1.10976049 0.277777774449227 1.10976049 0 0.0924799373675001 0 0.175712099841875 0 0.250620918748569 0 0.325529745355074 0 0.400438578308107 0 0.475347411769022 0 0.550256244773144 0 0.625165076178373 0 0.700073911070184 0 0.774982741534219 0 0.849891578171155 0 0.92480040743324 0 0.999709246539618 0 1.05473484904301 3 23 22 3 25 24 24 23 3 2 27 26 11 29 28 28 27 12 26 25 3 21 30 20 32 31 21 30 21 31 34 33 21 35 21 19 21 35 34 33 32 21 20 30 29 22 4 3 2 12 27 15 14 2 2 16 15 13 2 14 18 17 2 16 2 17 18 2 1 12 2 13 20 29 11 20 10 9 10 20 11 28 12 11 8 7 20 6 5 20 7 6 20 8 20 9 2 26 3 
-74 72 1 0.394264341426549
-6.35000030160882 1.34685307097208 1.41444156518237 6.35000030167802 1.5169639730057 1.24680945910158 6.35000030154638 1.66967994362967 1.05577860053393 6.35000030170198 1.80109046997432 0.843018642029185 6.35000030148551 1.90740783275211 0.61093614574432 6.35000030179863 1.98512138620135 0.362685038563081 6.35000030172621 2.03116412610012 0.102136778489872 6.35000030172513 2.04307544059036 -0.166185263441489 6.35000030182507 2.01915670671668 -0.437219183837491 6.35000030190492 1.95860004378402 -0.705513345079326 6.3500003009329 1.86158398334945 -0.965412603509462 6.35000030160882 1.74407900073263 -1.18747215393678 6.35000030160882 1.65886953082435 -1.31586429582232 6.35000030160882 1.56406643828917 -1.43766224628529 7.21279194058922 1.34821630603684 1.41444156518237 7.21279194058922 1.75566519138962 -1.18857467445427 7.21279194058922 1.62850547425138 1.11537204582619 7.21279194058922 1.83584575592573 0.782494401699211 7.21279194058922 1.97048372236408 0.435829826602684 7.21279194058922 2.04193169573555 0.052968912069587 7.21279194058922 2.03789700608067 -0.353452976169501 7.21279194058922 1.9488382243206 -0.766378563289336 7.21279194058922 1.86504751897336 -0.981200351223331 7.21279194058922 -1.75566531738962 -1.18857460045426 7.21279194058922 -1.57919479825066 -1.43731795707635 7.21279194058922 -1.36392613472056 -1.66056785629497 7.21279194058922 -1.14020952546803 -1.83377569025907 7.21279194058922 -0.917908263384871 -1.96313160054326 7.21279194058922 -0.679370815703776 -2.06426485250812 7.21279194058922 -0.428619029939489 -2.13479666666457 7.21279194058922 -0.170074809743701 -2.17303641737173 7.21279194058922 0.0915799275259555 -2.17805670026478 7.21279194058922 0.351558443466233 -2.14973519857978 7.21279194058922 0.605130559147911 -2.08876024088359 7.21279194058922 0.847780691135129 -1.99659963429321 7.21279194058922 1.07535331936045 -1.87543509530517 7.21279194058922 1.28417780967587 -1.72806708036795 7.21279194058922 1.47116634812466 -1.55779677571882 7.21279194058922 1.62488786892722 -1.38007064658117 7.21279194058922 -1.34821673503686 1.41444126218235 7.21279194058922 -1.92602608816082 -0.832403553482803 7.21279194058922 -2.02310091040593 -0.461687436078569 7.21279194058922 -2.04976245518296 -0.0921278061564518 7.21279194058922 -2.01211427083126 0.262890442129314 7.21279194058922 -1.91847084190189 0.592801652915467 7.21279194058922 -1.7783657556307 0.889996626104645 7.21279194058922 -1.57942544328536 1.17705709132012 6.35000030160882 -1.3468533929721 1.41444126218235 6.35000030160882 -1.56406656428917 -1.43766213928528 6.35000030396484 -1.70953288624009 -1.24208508438565 6.35000030174547 -1.83523503041623 -1.02133487538798 6.35000030160882 -1.93545101474559 -0.778275699319967 6.35000030160882 -2.00501456129326 -0.51740753404603 6.35000030160882 -2.03988311187165 -0.244712320205193 6.35000030160882 -2.03764256303282 0.0327278797382362 6.35000030126082 -1.99784184242751 0.307307522241323 6.35000030142539 -1.92207860878283 0.571577097232108 6.35000030140048 -1.8138117430624 0.818901870474457 6.35000030124436 -1.67794276203627 1.04398108964016 6.35000030173831 -1.52025944526642 1.24314957556407 6.35000030160882 -1.37918294639605 -1.63041026918977 6.35000030128064 -1.18757311133038 -1.78550785070286 6.35000028394389 -0.996124778782955 -1.90677468679433 6.35000029120144 -0.788500154395926 -2.00775182001858 6.35000030152583 -0.566967805974883 -2.0857746285429 6.3500003028341 -0.334283725055918 -2.13847300052605 6.35000030562478 -0.0936640377750591 -2.16385093589632 6.35000029989905 0.151282169469573 -2.16039311356122 6.35000030146899 0.396635521269916 -2.12713866961077 6.35000030131532 0.638267263095292 -2.0637666867198 6.35000030160882 0.871961000594629 -1.97063246442124 6.35000030160882 1.09354344961234 -1.84879167611667 6.35000030160882 1.29902066042496 -1.69999120546711 6.35000030160882 1.43754376961237 -1.57488142912025 3.54324898762612e-017 1 0.304973306666665 1 0.60994661333333 1 0.914919919999997 1 1.21989322666666 1 1.52486653333333 1 1.82983983999999 1 2.13481314666716 1 2.43978645333431 1 2.74475976000001 0.999999999999997 3.04973306618749 1 3.32420904014142 1 3.49194435859008 1 3.65967968 1 0 0 3.55114176 0 0.591856960759568 0 1.12452822508876 0 1.60393236028344 0 2.08333649749024 0 2.56274063554023 0 3.04214477367887 0 3.2966432648889 0 7.89204289 0 7.56647530807775 0 7.2409077196475 0 6.9478968928909 0 6.68418715021176 0 6.42047740640398 0 6.15676766250632 0 5.89305791992177 0 5.62934817432334 0 5.36563843043389 0 5.10192868603233 0 4.8382189424686 0 4.57450919873931 0 4.31079945195235 0 4.04708970773773 0 3.7991157328073 0 11.44318406 0 8.32350654472448 0 8.75497019337452 0 9.18643385027296 0 9.61789749944671 0 10.0493611492995 0 10.4808248034319 0 10.9620044352654 0 11.44318406 0.999999999421405 7.74712417 1 8.05512938816913 1 8.36313434081925 1 8.6711393106326 1 8.9791442873592 1 9.28714925489536 0.999999999999999 9.5951542300001 1 9.90315920163872 1 10.2111641732976 1 10.5191691449698 1 10.8271741166488 1 11.1351790883277 1 7.40650402486969 1 7.09994564477978 1 6.82404313743245 1 6.54814060875685 1 6.27223809863533 1 5.99633557388028 1 5.72043305803476 1 5.44453053828899 1 5.16862802026628 1 4.89272550295202 1 4.61682298583434 1 4.34092046840137 1 4.06501795014123 1 3.86234881553332 1 1 15 2 4 17 18 2 15 17 5 18 19 20 7 19 21 22 10 11 10 22 20 21 9 21 10 9 11 22 23 14 16 39 13 23 16 73 38 37 71 36 35 70 35 34 72 37 36 74 39 38 69 34 33 2 17 3 5 4 18 17 4 3 6 19 7 20 8 7 8 20 9 5 19 6 11 23 12 13 16 14 14 39 74 72 36 71 23 13 12 73 37 72 71 35 70 74 38 73 69 33 68 70 34 69 33 32 68 67 32 31 65 30 29 66 31 30 63 28 27 61 26 25 49 25 24 62 27 26 64 29 28 52 41 42 54 43 44 53 42 43 57 45 46 60 47 40 46 47 59 44 45 56 24 41 50 60 40 48 66 30 65 28 63 64 64 65 29 24 50 49 62 26 61 61 25 49 27 62 63 66 67 31 50 41 51 53 52 42 44 56 55 54 44 55 52 51 41 46 59 58 59 47 60 45 57 56 46 58 57 54 53 43 32 67 68 
-12 10 1 0.701302995610101
-15.178436250937 -6.33367198983326 -0.437746756651854 13.7551732833356 -6.33367429383337 -0.507938351705776 14.5443322303167 -6.33370038605638 -0.438512104782042 14.1489478227719 -6.33369589393791 -0.463731551201274 18.7445785303197 -16.2690985127407 0.302431252674713 15.9726867219952 -10.7494183888045 -0.147774083092719 17.3586326231327 -13.5092584495565 0.0773285847924784 19.3665796498631 -16.2690975027406 0.333106715941719 19.0202757082456 -16.2691100248794 0.329364060800464 19.1933975102018 -16.2691074864275 0.335385358398923 17.5051825836737 -11.8533528305843 -0.00949482743814051 16.3418094173054 -9.09351241028592 -0.223620792046541 1.00008022 10.70174454 8.02199999998532e-005 10.70174454 0.555635777227202 10.70174454 0.277858000962346 10.70174454 8.022e-005 4.95000000011459e-005 8.022e-005 5.945435635595 8.022e-005 2.97274256802788 1.00008022 4.95e-005 0.444524664447337 4.95e-005 0.722302440024712 4.95e-005 1.00008022 4.75635840553018 1.00008022 7.72905147462531 5 9 7 6 7 11 4 2 12 6 12 2 10 7 9 8 11 7 12 6 11 3 12 1 3 4 12 7 10 8 
-11 9 1 0.48746050605313
-13.0936999045215 -1.92471414973264 -0.831009732620803 13.5060312273872 -1.92741289910116 -0.823286283837871 13.7637275909558 -1.92659438288622 -0.825317042369079 14.0214149684814 -1.92384089900254 -0.832597729805518 11.7544106883045 -1.87810382833014 -0.947904141375154 12.3497089052311 -1.90673217518895 -0.878732655559849 12.7217176809472 -1.91796027199715 -0.849418938312193 13.7551732833356 -6.33367429383337 -0.507938351705776 15.178436250937 -6.33367198983326 -0.437746756651854 14.5443322303167 -6.33370038605638 -0.438512104782042 14.1489478227719 -6.33369589393791 -0.463731551201274 0.58576992 2.5142589 0.769142706189029 2.50538680110668 0.884347363537856 2.50159227408246 1 2.49917007 0 2.56863339 0.258273096715122 2.5392581810665 0.421450702407373 2.52525805234826 0 0 1 0 0.555555559353735 0 0.277777803531368 0 8 11 6 6 5 8 7 6 11 11 1 7 2 10 9 3 9 4 2 1 10 3 2 9 10 1 11 
-12 10 1 0.629656396568888
-13.7551732833356 -6.33367429383337 -0.507938351705776 13.4648676895469 -6.33366791783307 -0.649981567562466 13.6092627480286 -6.33366414186155 -0.542618730393233 13.523757443342 -6.33366598147823 -0.579216433281663 18.6177078042936 -16.2690957227405 0.240354853816242 16.3275566416901 -11.8533500334977 -0.155350222347628 14.8962121671 -9.09350897509132 -0.402665894952023 18.7445785303197 -16.2690985127407 0.302431252674713 18.6802705443525 -16.2690930103612 0.290479512461686 18.6456109863585 -16.2690930185178 0.269857395778124 15.9726867219952 -10.7494183888045 -0.147774083092719 17.3586326231327 -13.5092584495565 0.0773285847924784 1.00034374 46.24578153 0.000343740000000009 46.24578153 0.555899301739747 46.24578153 0.278121513746711 46.24578153 0.00034374 0.000207429999999286 0.00034374 20.5537959040959 0.00034374 33.3997887262625 1.00034374 0.00020743 0.555899276640761 0.00020743 0.278121530471551 0.00020743 1.00034374 25.6921930406685 1.00034374 12.8462002312857 6 5 12 11 7 6 7 4 2 3 4 7 12 5 10 9 8 12 12 11 6 7 1 3 7 11 1 10 9 12 
-20 18 1 0.0728037872379722
-18.7445785303197 -16.2690985127407 0.302431252674713 18.6177078042936 -16.2690957227405 0.240354853816242 18.6802705443525 -16.2690930103612 0.290479512461686 18.6456109863585 -16.2690930185178 0.269857395778124 19.4649687145364 -16.2690729827395 0.155572182299282 18.6299027142015 -16.269089666535 0.227260498344494 18.6423905326811 -16.2690849763005 0.216766026059338 18.6544605547061 -16.2690816211184 0.208874061563761 18.6671320251041 -16.2690790884247 0.202500498620742 18.6846261387879 -16.2690767862081 0.196020562419859 18.7054292410992 -16.2690752900111 0.19078938966552 18.7338287275542 -16.2690748591043 0.186886135605574 18.7764386551276 -16.269076312927 0.185478084221787 18.8404298778025 -16.2690781326059 0.184022620004897 18.9360071259079 -16.2690760507146 0.175904166075495 19.0791592696193 -16.2690706505231 0.161951232913265 19.2720497498007 -16.269070796701 0.156344287848877 19.3665796498631 -16.2690975027406 0.333106715941719 19.0202757082456 -16.2691100248794 0.329364060800464 19.1933975102018 -16.2691074864275 0.335385358398923 1 4.45537137 0 4.45537137 0.555554660792755 4.45537137 0.277778057864548 4.45537137 0 2.22044604925031e-016 0 4.36475536883363 0 4.28320444881397 0 4.20980827441253 0 4.13640931165904 0 4.03975968250514 0 3.92966493717863 0 3.78292393693901 0 3.56273110080236 0 3.23244214651285 0 2.737008973091 0 1.99385942255373 0 0.996929694794906 1 0 1 2.47520636547401 1 1.23759670675938 17 5 18 15 16 19 14 15 19 17 20 16 12 13 1 10 11 3 9 10 4 12 3 11 14 19 13 4 7 8 1 13 19 16 20 19 17 18 20 10 3 4 2 6 4 7 4 6 9 4 8 1 3 12 
-12 10 1 0.838678848922435
-20.2590217622519 -16.2691035827409 0.211302165326314 19.8650301674403 -16.2690983887088 0.285985354754952 19.6170866779439 -16.2691173430476 0.322931822102796 19.3665796498631 -16.2690975027406 0.333106715941719 17.2205222879309 -6.33368591083392 -0.716459929370019 18.9085775460104 -11.8533623956218 -0.201036543432056 18.0645499169089 -9.09352415367846 -0.458748236404062 15.178436250937 -6.33367198983326 -0.437746756651854 16.3204802357387 -6.33369956825891 -0.537232878767512 15.7510666836442 -6.33369196905639 -0.470107630845391 17.5051825836737 -11.8533528305843 -0.00949482743814051 16.3418094173054 -9.09351241028592 -0.223620792046541 5.54299999999813e-005 7.14491407 0.44449987427185 7.14491407 0.722277652974471 7.14491407 1.00005543 7.14491407 5.543e-005 3.42497050276336e-005 5.543e-005 3.96941192941519 5.543e-005 1.98472309006156 1.00005543 3.425e-005 0.444499873665125 3.425e-005 0.722277653348406 3.425e-005 1.00005543 3.96941192873412 1.00005543 1.98472308876991 5 9 7 6 7 11 1 6 2 11 2 6 12 7 9 10 8 12 12 11 7 3 11 4 3 2 11 9 10 12 
-28 26 1 0.830826167402335
-13.4648676895469 -6.33366791783307 -0.649981567562466 15.4035701016303 -6.3336158858306 -0.843981276536958 13.4639365106997 -6.33361893781667 -0.673369252265261 13.4729896817002 -6.33359697801473 -0.695277444186304 13.4969086185137 -6.33360524760734 -0.716579548656003 13.5425829989032 -6.33363312994559 -0.735583849017036 13.6102856298869 -6.3336251452398 -0.748722011987501 13.712881877997 -6.33360215937222 -0.759572386927934 13.872435909273 -6.33363221442692 -0.77973920581501 14.1099553090516 -6.33364843656355 -0.801451178377316 14.4612579990034 -6.33360098255577 -0.818217286410855 14.9326555011664 -6.33360966883766 -0.840574978351562 19.4649687145364 -16.2690729827395 0.155572182299282 18.6177078042936 -16.2690957227405 0.240354853816242 18.6299027142015 -16.269089666535 0.227260498344494 18.6423905326811 -16.2690849763005 0.216766026059338 18.6544605547061 -16.2690816211184 0.208874061563761 18.6671320251041 -16.2690790884247 0.202500498620742 18.6846261387879 -16.2690767862081 0.196020562419859 18.7054292410992 -16.2690752900111 0.19078938966552 18.7338287275542 -16.2690748591043 0.186886135605574 18.7764386551276 -16.269076312927 0.185478084221787 18.8404298778025 -16.2690781326059 0.184022620004897 18.9360071259079 -16.2690760507146 0.175904166075495 19.0791592696193 -16.2690706505231 0.161951232913265 19.2720497498007 -16.269070796701 0.156344287848877 16.3275566416901 -11.8533500334977 -0.155350222347628 14.8962121671 -9.09350897509132 -0.402665894952023 1.00005799 7.70509075 5.79900000000633e-005 7.70509075 0.988315025723189 7.70509074999995 0.976572066745244 7.70509074999996 0.960914789017507 7.70509074999999 0.937428869988888 7.70509075000001 0.902199989898897 7.70509075 0.849356669594417 7.70509075 0.770091685527959 7.70509075 0.651194215522218 7.70509075 0.472848011413031 7.70509074999999 0.236453002086553 7.70509075 5.799e-005 3.57399999999707e-005 1.00005799 3.574e-005 0.979719795831443 3.574e-005 0.961415421484521 3.574e-005 0.944941489174967 3.574e-005 0.928467552326802 3.574e-005 0.906775150198356 3.574e-005 0.882064238508352 3.574e-005 0.849128297607895 3.574e-005 0.799706484522021 3.574e-005 0.725573774441529 3.574e-005 0.614374713494334 3.574e-005 0.447576105128242 3.574e-005 0.223817050070976 3.574e-005 1.00005799 3.42450462974269 1.00005799 5.56479768859412 13 26 27 2 13 27 22 21 27 26 25 27 25 24 27 12 28 11 28 12 2 10 28 9 28 10 11 28 8 9 22 27 23 23 27 24 21 20 27 18 17 27 19 18 27 16 15 27 14 27 15 16 27 17 28 2 27 6 28 5 28 6 7 3 28 1 28 3 4 28 4 5 8 28 7 27 20 19 
-8 6 1 0.0669333437192319
-19.4649687145364 -16.2690729827395 0.155572182299282 20.2590217622519 -16.2691035827409 0.211302165326314 19.8179548645828 -16.2690701719765 0.179611696722426 20.0382192497354 -16.2690717066067 0.199031380776679 20.2590217622519 -16.2691035827409 0.211302165326314 19.3665796498631 -16.2690975027406 0.333106715941719 19.8650301674403 -16.2690983887088 0.285985354754952 19.6170866779439 -16.2691173430476 0.322931822102796 2.22139684312905e-016 0 7.01562055 0 3.11805339864599 0 5.06684031122413 0 7.01562055 1 0 1 3.89756289685721 1 1.94878391367122 1 1 3 8 8 6 1 3 7 8 4 2 5 5 7 4 4 7 3 
-10 8 1 0.813196192037124
-15.4035701016303 -6.3336158858306 -0.843981276536958 17.2205222879309 -6.33368591083392 -0.716459929370019 16.2112081300592 -6.33361609632978 -0.789025082562419 16.7153074057598 -6.33362440525886 -0.744629567009837 20.2590217622519 -16.2691035827409 0.211302165326314 18.9085775460104 -11.8533623956218 -0.201036543432056 18.0645499169089 -9.09352415367846 -0.458748236404062 19.4649687145364 -16.2690729827395 0.155572182299282 19.8179548645828 -16.2690701719765 0.179611696722426 20.0382192497354 -16.2690717066067 0.199031380776679 1.00006281 8.09360706 6.28099999999965e-005 8.09360706 0.555618361917059 8.09360706 0.277840586164001 8.09360706 6.281e-005 3.88000000000264e-005 6.281e-005 3.59718024860811 6.281e-005 5.84539365117765 1.00006281 3.88e-005 0.555618361400174 3.88e-005 0.277840585550529 3.88e-005 5 10 6 1 7 6 4 2 7 9 6 10 1 6 8 3 4 7 7 1 3 6 9 8 
-14 12 1 0.499605877516254
-15.178436250937 -6.33367198983326 -0.437746756651854 14.0214149684814 -1.92384089900254 -0.832597729805518 17.2205222879309 -6.33368591083392 -0.716459929370019 16.3204802357387 -6.33369956825891 -0.537232878767512 15.7510666836442 -6.33369196905639 -0.470107630845391 17.2459916253906 -1.67360683680456 -1.30407191862759 16.7625925747914 -1.75437077638359 -1.18146657566026 16.9812751557499 -1.72099868072589 -1.23446829000819 17.1148730172093 -1.69810587898019 -1.26885931213382 15.4046111730498 -1.88092150688822 -0.938194333874812 16.0252284332646 -1.83732511149156 -1.03131861114356 16.4001980377112 -1.80023583329231 -1.10214761062571 14.8152663860065 -1.90682148376207 -0.87637661922074 14.4245629156867 -1.91747338208482 -0.8492654236681 1 1.82448587 1 0.17394741 2.77555756156289e-017 1.82448587 0.444444462479436 1.82448587 0.7222222022199 1.82448587 0 0.0954315 0.15044892 0.12565888 0.0822899551123485 0.113268325726465 0.0407265660062239 0.10468480269902 0.57369412 0.16862534 0.380544263650549 0.155089880897813 0.263565885921797 0.142254969546214 0.75614471828442 0.174467063718911 0.876457422546268 0.175297591893146 9 8 3 6 9 3 3 7 12 7 3 8 3 12 4 4 12 11 10 13 5 4 10 5 14 1 5 1 14 2 13 14 5 10 4 11 
-29 27 1 0.343663221995893
-17.2205222879309 -6.33368591083392 -0.716459929370019 17.2459916253906 -1.67360683680456 -1.30407191862759 15.4035701016303 -6.3336158858306 -0.843981276536958 16.2112081300592 -6.33361609632978 -0.789025082562419 16.7153074057598 -6.33362440525886 -0.744629567009837 14.2745163580031 -1.4846250675159 -1.53651017760531 14.8705159773675 -1.51573699413999 -1.50252336583399 14.6045684494052 -1.49873878227454 -1.5212145208741 14.4452163546622 -1.49085297720757 -1.52977175997997 15.0160139974919 -1.52633483598157 -1.49066171417753 15.1186490163256 -1.53424852462356 -1.48169093124383 15.2409735004748 -1.54412598780222 -1.47034857787681 15.2897060809059 -1.54801700456862 -1.4658380710628 15.3338663281407 -1.55165581673741 -1.46159491675586 15.3885363223517 -1.55624760869252 -1.45620788292268 15.5147916959614 -1.56675372657847 -1.44374047981749 15.5740823286723 -1.57173272794924 -1.4377680713505 15.6256430914078 -1.57605716395364 -1.43254444077483 15.6823255517509 -1.58079696028805 -1.42677816535166 15.7178961251149 -1.58375576885616 -1.42315375299189 15.7556463974262 -1.58687563239034 -1.41931403490338 15.829140031128 -1.59292241583123 -1.41182018706148 15.8733605199442 -1.59651767644435 -1.40732986697314 15.9164083652715 -1.59998716778997 -1.40297469633251 16.1468680819312 -1.61785758391885 -1.38014834923695 16.2811156081652 -1.62757631676078 -1.36744680070648 16.4125111362741 -1.63640330747186 -1.35571949953735 16.7987051555047 -1.65835168680491 -1.3257456828009 17.0262197165851 -1.66764226153657 -1.31266042384163 2.07179401 0 0.10836719 0 2.07179401 1 2.07179401 0.555555522337327 2.07179401 0.277777777378167 0.01152218 1 0.03059144 0.80255628 0.020985861115171 0.890723593066196 0.0160093818323176 0.943470088817476 0.0363494785589008 0.754234679661353 0.0405551600226055 0.720092599626547 0.04567107 0.67931955 0.047730386491835 0.663059758799984 0.0496019999243124 0.648308068007997 0.05192326 0.63002613 0.0572779323769422 0.587751604206869 0.0597808871130647 0.567865883981722 0.0619454509369303 0.550555722766231 0.0643061861910966 0.531506899971015 0.0657753860218549 0.519542631474121 0.06732382 0.50683689 0.0703027900423955 0.48207325017408 0.0720688910469333 0.467157159873782 0.0737673431417201 0.45262530433427 0.0824444100640764 0.374657237507232 0.0871092629204745 0.329117843143544 0.09134529 0.28446737 0.101575014527517 0.152839598872229 0.105785652876326 0.0751292589484769 13 3 12 14 3 13 4 17 18 4 15 16 16 17 4 4 14 15 3 6 9 8 3 9 10 11 3 3 7 10 3 8 7 12 3 11 18 19 4 27 28 5 26 27 5 2 1 29 29 5 28 5 29 1 26 5 4 22 23 4 20 21 4 22 4 21 24 25 4 14 4 3 25 26 4 4 23 24 4 19 20 
-100 98 1 0.207538980740442
-11.2233642208145 -1.73910600437289 -1.21164554112822 11.227244768807 -1.74578973907948 -1.20087006283061 11.2303906236261 -1.74989094726789 -1.19418281974557 11.2339737223351 -1.75393664780752 -1.18752892052959 11.2195260373578 -1.72876789393421 -1.22802415636908 11.2206484646032 -1.73339658627751 -1.22073395373012 11.2217925802684 -1.73627142449228 -1.21617123657517 11.2229519281623 -1.70382745794937 -1.26617213152758 11.2189290449075 -1.71475417104491 -1.24968896466858 11.2184017788172 -1.72174664700725 -1.23895432445646 11.2480738321926 -1.67852313843327 -1.30305412763939 11.234188906666 -1.68916338877675 -1.28775878561204 11.2276055108228 -1.69632379581601 -1.27729312890639 11.2578643340571 -1.672842776302 -1.31109607646477 11.2533604297598 -1.67531169905511 -1.30761172563788 11.2506626947788 -1.67689733654243 -1.30536481592506 11.2676418333309 -1.6681577094662 -1.31767171375095 11.2741538374915 -1.6654569592556 -1.32143484984067 11.2810233886257 -1.66292486149133 -1.32494032340658 11.2903753848963 -1.65980149802582 -1.32925253480982 11.2971320486903 -1.65774925803631 -1.33206677658958 11.3046101155787 -1.65560031280696 -1.33500311111335 11.3293114099374 -1.64929549958061 -1.34356286766825 11.3448910892259 -1.64594663168203 -1.34806246486765 11.3639897483438 -1.64238388482431 -1.35282295016919 11.4155806284448 -1.63407270778137 -1.36381156790576 11.4512604360294 -1.62939305680225 -1.36992637915907 11.4919570406201 -1.62478166592107 -1.37589307800223 11.5033413492633 -1.6235805184902 -1.37743938799149 11.5102542370771 -1.62287503577893 -1.37834668221252 11.5173309615065 -1.62216470532931 -1.37925932234333 11.5355773576951 -1.62037943573357 -1.38154981703186 11.5497443399291 -1.6190225053481 -1.38328192338118 11.5677514756082 -1.61732692438244 -1.3854388743982 11.5801261727527 -1.61615351025668 -1.38692852721363 11.5864926425007 -1.61555190322114 -1.38769064838934 11.5921035220023 -1.61502206570273 -1.38836344529165 11.615814646083 -1.61274364952565 -1.39124674343148 11.6287073966378 -1.61147213517373 -1.39285310343456 11.6440291192181 -1.60990510560288 -1.39482515131581 11.6829099024594 -1.6058749640548 -1.3998757923657 11.7102014836225 -1.60294631113003 -1.4035244591397 11.7460296980906 -1.59904800056319 -1.4083623372769 11.7511165830346 -1.59849215079999 -1.40904918860201 11.7544268550149 -1.59813003486748 -1.40949649305482 11.7578455409638 -1.59775711123781 -1.40995683754297 11.8213460558702 -1.59086133378869 -1.41841697858755 11.8461381283823 -1.58823624602951 -1.42160882331301 11.8715138817384 -1.58570854653159 -1.424674981036 12.2568192726063 -1.55566787566868 -1.46007545322656 12.0794714292166 -1.56731709017386 -1.44657245533666 11.980670406726 -1.57541197019565 -1.43701954883889 12.3490542921462 -1.55052098821767 -1.46594768320967 12.4141276715905 -1.54716693433357 -1.46975166527568 12.5015213107503 -1.54287260379372 -1.47457893519828 12.5116216313234 -1.54238455057018 -1.47512625697686 12.5179346215237 -1.54208087242284 -1.4754662742074 12.5242477717419 -1.54177759031217 -1.47580533019563 12.5359615458236 -1.54121491395628 -1.47643457294945 12.5432828985466 -1.540863736076 -1.47682696845786 12.5506040056185 -1.54050897098862 -1.47722330575687 12.6566274925079 -1.53537259129797 -1.48293458188731 12.7083047019876 -1.53278255608049 -1.48580505781872 12.7665063849933 -1.52971109318622 -1.48919178752468 12.8583985514616 -1.52489669932445 -1.49446953142127 12.9218550772373 -1.52145695182292 -1.49821690536265 13.0022709656819 -1.51706751062374 -1.50297788728507 13.0187656507354 -1.51616590344978 -1.50395144002088 13.0296278106992 -1.51557263531509 -1.50459165545002 13.0409575546936 -1.51495712080103 -1.50525514791496 13.1525151951007 -1.50891955701304 -1.51173175729266 13.1963478539544 -1.50659140993578 -1.5142092006368 13.2369433548438 -1.50453569894826 -1.51638897342284 13.4301691153108 -1.49509949578239 -1.52631041698181 13.5324637453239 -1.49079423407009 -1.53077243624519 13.6299341892202 -1.48725405550496 -1.53441086611513 13.9578228007084 -1.4807103422503 -1.54093210274145 13.8085839946898 -1.4824842048175 -1.5392329993698 13.7199357980825 -1.48450811104157 -1.53720429208986 14.077554671172 -1.48084594222114 -1.54066472222945 14.1508498914484 -1.4817132023472 -1.53968486571425 14.2235895153933 -1.48319986742028 -1.53805637621256 14.2462885162646 -1.48379473659306 -1.5374098935786 14.2604227333025 -1.48419795151019 -1.53697266617358 14.2745163580031 -1.4846250675159 -1.53651017760531 15.4035701016303 -6.3336158858306 -0.843981276536958 13.4648676895469 -6.33366791783307 -0.649981567562466 13.4630372153778 -6.33363348142137 -0.664906484472153 13.4655630790502 -6.33360987132225 -0.67995183223256 13.4720109423526 -6.33359763794093 -0.693809337204718 13.481865211362 -6.33359655102978 -0.705455775328054 13.498850144814 -6.33360669450163 -0.717717950742376 13.5281798180479 -6.33362740563884 -0.730827739418199 13.572095439073 -6.33363518544748 -0.74288467585994 13.6369910889792 -6.33361512043099 -0.751487236151594 13.736730197582 -6.33360336596481 -0.762465722742529 13.8907617951635 -6.333636723012 -0.781962857767236 14.1191015746301 -6.3336475145718 -0.802019608563596 14.4573225724275 -6.33360124898954 -0.818033137070813 14.9306750904231 -6.33360956834953 -0.840493691159277 0.07289849 0.9931894 0.0757234967050008 0.996137244152658 0.0774750588121758 0.998030257721008 0.07920744 1 0.06857136 0.9886335 0.0704928278769394 0.990684342361476 0.0716938679120554 0.991939750282198 0.0583457199999999 0.976490549999999 0.0627919176003653 0.982034395989248 0.0656571322090562 0.985387556620347 0.0482958 0.96090743 0.0524866388200713 0.968177111479165 0.0553417072088396 0.972427444429951 0.0461083979788055 0.956415984746819 0.0470544372830388 0.958427883340314 0.047667219296658 0.959672599887471 0.0443362535498325 0.952281824161441 0.0433294202132388 0.949660139546625 0.0423906 0.94698261 0.0412653883446641 0.943422089035277 0.0405314281578346 0.940906684576567 0.03977078 0.93815762 0.0375843164387616 0.929293385661707 0.0364666201637668 0.923860235498933 0.03529606 0.91732193 0.0327706521807621 0.899968165948881 0.0314470781974892 0.888198849658483 0.03023112 0.874933410000001 0.0299325603970396 0.871243889610214 0.0297584203083497 0.869007907062179 0.0295851430584376 0.866721597110353 0.0291562097415277 0.860836687821888 0.0288348324254097 0.856274519556502 0.02843456 0.85048174 0.0281606980287063 0.846501346998933 0.0280189169647472 0.844453684103702 0.0278932350697893 0.842648892677029 0.027348717621698 0.835016305255843 0.0270379329185869 0.83086007728533 0.02665329 0.82591291 0.0256217286413305 0.813342708540271 0.0248598769263402 0.80450405413378 0.0238348542154167 0.792893145357802 0.023687992627066 0.791244453937006 0.0235922960472008 0.790171547585091 0.02349338 0.78906361 0.0216746898639515 0.768498341036341 0.0209904750636423 0.760484833219954 0.02032222 0.75230479 0.01405168 0.62979303 0.0161351603419095 0.68582308531786 0.0178479546162836 0.717281159315844 0.0133498255557598 0.600791213831167 0.0129608130721377 0.580366677419987 0.01251076 0.5529642 0.0124618838776559 0.549798535066042 0.0124313367387952 0.547819994965963 0.0124007899364611 0.545841455231958 0.0123441137041532 0.542170435577224 0.0123086916330937 0.539876048014679 0.01227327 0.537581660000001 0.0117217636097559 0.504352322777753 0.0114080181877463 0.488148171860389 0.01101028 0.46988747 0.0103090598252999 0.441050512052965 0.00978376516009936 0.421129474064403 0.00909064694457245 0.395882219887666 0.00894614347208634 0.390703570984326 0.00885067307120523 0.387293324995563 0.00875086 0.38373641 0.00777365939823364 0.348718213523711 0.00739855978676949 0.334964316308883 0.00706201 0.32223301 0.00569344271413195 0.261712632471206 0.00519840927489957 0.229756055712062 0.00493494 0.19936977 0.00604403560224287 0.0976197411686703 0.00510762309155136 0.143844754190735 0.00490702482833484 0.171356952748486 0.00741249303742366 0.0606418331866811 0.00855196727776675 0.0380493972621068 0.00992432000000001 0.01565901 0.0104035050825022 0.00867783417045524 0.0107144550941584 0.00433216220452942 0.01103422 6.50521303491303e-019 1.98405473 0 1.98405473 1 1.98405473 0.992462250491785 1.98405473 0.984924263257178 1.98405473 0.977386087530344 1.98405473 0.969848035505376 1.98405473 0.959797459685819 1.98405473 0.944721407279668 1.98405473 0.922107533907358 1.98405473 0.888186572632102 1.98405473 0.837305148334538 1.98405473 0.760983075457475 1.98405473 0.646499975219437 1.98405473 0.474775219244402 1.98405473 0.237387612139141 79 100 76 79 78 100 80 86 77 100 78 77 100 75 76 74 75 100 73 74 100 73 100 72 71 72 100 70 71 100 86 80 81 99 68 69 82 86 81 99 69 70 86 83 84 82 83 86 67 68 99 99 66 67 99 65 66 62 63 99 60 61 99 61 62 99 64 65 99 99 63 64 99 56 57 55 56 99 55 99 54 53 54 98 99 57 58 98 52 51 98 51 50 49 4 48 4 49 52 53 98 50 99 58 59 48 4 47 47 4 46 45 46 4 44 45 4 4 43 44 4 41 42 60 99 59 39 40 4 37 38 4 39 4 38 41 4 40 43 4 42 37 4 36 85 86 84 31 4 30 4 31 32 4 28 29 4 29 30 33 4 32 2 25 26 26 27 4 6 23 24 24 25 1 28 4 27 4 33 34 34 35 4 4 52 98 54 99 98 98 97 4 35 36 4 21 8 20 10 22 23 4 96 95 4 94 93 95 94 4 21 22 8 4 97 96 70 100 99 77 86 100 18 14 17 14 18 19 19 15 14 16 15 12 15 19 12 16 12 11 19 13 12 13 19 20 8 13 20 9 8 22 10 9 22 90 4 91 5 10 23 4 90 89 4 92 91 7 24 1 26 4 3 6 5 23 7 6 24 2 26 3 25 2 1 87 4 88 89 88 4 93 92 4 
-47 45 1 0.097694282417667
-11.2339737223351 -1.75393664780752 -1.18752892052959 13.4648676895469 -6.33366791783307 -0.649981567562466 13.7551732833356 -6.33367429383337 -0.507938351705776 13.6092627480286 -6.33366414186155 -0.542618730393233 13.523757443342 -6.33366598147823 -0.579216433281663 11.7544106883045 -1.87810382833014 -0.947904141375154 11.7230037068433 -1.87519299652087 -0.954539726978555 11.7430061454837 -1.87707990578844 -0.950238559987098 11.7341178088253 -1.87625236211661 -0.952126134945495 11.7107019725161 -1.87402943667788 -0.957177203399168 11.7165880947784 -1.87458745091292 -0.955914467644462 11.713429661304 -1.87428775450117 -0.956594460968703 11.6780822159487 -1.8710899238748 -0.963788802911312 11.6980802541729 -1.87285829829361 -0.959824525865733 11.690195586167 -1.87215028398156 -0.961414750965294 11.6689018442431 -1.87027896633348 -0.965602735826667 11.6722502070959 -1.870576961947 -0.964936636947661 11.6752197922217 -1.87084070912355 -0.964346635407782 11.6098700549364 -1.86430064821477 -0.978826260728255 11.64397713815 -1.86795639507528 -0.970763765144991 11.630039757643 -1.86650994850731 -0.973966385385513 11.579795765572 -1.86090292936362 -0.98623107103987 11.5930647999869 -1.8624660378322 -0.982834541639796 11.601488815112 -1.86340783680259 -0.980779966337796 11.5686247880199 -1.85961621804369 -0.989014949325949 11.5734872711878 -1.86021587605612 -0.987719100086025 11.5766044926456 -1.86058016602381 -0.98693061940209 11.5253852575828 -1.85416377756769 -1.00069150837767 11.5459554346438 -1.85689489074905 -0.99485901052015 11.5354351965695 -1.85554034269393 -0.997755378621079 11.4896394008981 -1.84878792653291 -1.0120133489902 11.5049986892907 -1.8511955651312 -1.00696442186449 11.5150255720737 -1.85267801414463 -1.00383769946656 11.4383603506965 -1.83998407337006 -1.03017742118867 11.4603506451082 -1.84396087891282 -1.02202301790877 11.4490203116662 -1.84200116627584 -1.02605776551448 11.3805975561415 -1.82703782145984 -1.05608161268227 11.4135027931128 -1.8349587162813 -1.04034317746689 11.3978348159253 -1.83132768664625 -1.04760549729773 11.3208385076288 -1.80819404686211 -1.09222199876256 11.3456486455678 -1.81702108945771 -1.07551241680733 11.3624960418518 -1.82216862552671 -1.06559130850132 11.2476412635365 -1.7665596569946 -1.16638885628345 11.2776743680257 -1.78752160335813 -1.12995401782801 11.2983350089489 -1.79845944032001 -1.11022545541699 11.2414007844316 -1.76114051749876 -1.17553440686911 11.2376303451477 -1.75760057044684 -1.18145221620923 0 11.58701171 0 0 1 1.33226762955019e-015 0.555555547257711 1.33226762955019e-015 0.277777787279758 1.33226762955019e-015 1 11.2216414103045 0.942762190000001 11.23207082 0.979132184348537 11.2253500596624 0.962953362261242 11.2283149992705 0.920406957829693 11.2362320010235 0.931114425806087 11.2342449387946 0.92537120910559 11.2353125747573 0.86046065 11.24687623 0.897343755760855 11.2404323045084 0.882840988157512 11.2429954796562 0.84647518 11.24929061 0.852690957129771 11.2482175504586 0.856575807076239 11.2475468897563 0.73560521 11.2708009 0.797501334403902 11.2581348591497 0.772108871584604 11.2631627800717 0.68082736 11.28239685 0.705169348342463 11.2772729154118 0.720473162196775 11.2740224476138 0.66023824 11.28670238 0.669251285658709 11.2848137944846 0.675002100983963 11.2836126369895 0.580931908751862 11.3046987228826 0.618454107130148 11.2957591987837 0.599198636019418 11.3002240763401 0.51639486 11.32193444 0.544158397781138 11.3143191380247 0.56221330694496 11.3095085081739 0.42197703 11.34908406 0.462720624066706 11.3369652404615 0.441781464540553 11.3430521006814 0.31622551 11.38786254 0.376404419262942 11.3644135200217 0.34776559624968 11.3751655146815 0.2017635 11.44137215 0.250437036668781 11.4167392071723 0.282618492706501 11.4021534208108 0.0393362703298748 11.5538234236251 0.112079791930395 11.4980250729793 0.156230527629121 11.4682920729724 0.022126014392564 11.5681095535287 0.0111530344009114 11.5774109686123 35 2 31 36 34 2 35 36 2 30 2 29 2 34 38 30 28 2 6 5 4 28 33 2 31 2 32 32 2 33 5 6 2 44 43 2 45 44 2 47 1 2 46 47 2 43 46 2 39 37 2 38 39 2 41 40 2 42 41 2 37 42 2 45 2 40 10 15 12 15 10 14 11 12 13 13 12 15 13 18 2 2 6 8 8 9 2 11 13 7 7 2 9 13 2 7 17 2 18 22 27 2 2 23 22 29 2 25 26 2 27 25 2 26 20 2 16 16 2 17 24 23 2 19 2 21 21 2 20 24 2 19 4 3 6 
-21 19 1 1.28426865874916
-7.21279194058922 -1.34821673503686 1.41444126218235 7.21279194058922 -1.17836706527992 1.56970730697846 7.21279194058922 -0.981917285228737 1.70848917867161 7.21279194058922 -0.784151085313912 1.81424846604148 7.21279194058922 -0.591563674737238 1.89028853266407 7.21279194058922 -0.388086262235879 1.94542303607734 7.21279194058922 -0.17721191057762 1.97761684205229 7.21279194058922 0.0371083726826099 1.98563900726458 7.21279194058922 0.250703487409071 1.96917785934748 7.21279194058922 0.459449006590256 1.9288708047215 7.21279194058922 0.659527747637658 1.86624365592483 7.21279194058922 0.847650417151275 1.78357001599117 7.21279194058922 1.02121123683069 1.68367414406423 7.21279194058922 1.17836660149198 1.56970757180622 7.21279194058922 1.26668721907229 1.49375519312968 7.21279194058922 1.34821630603684 1.41444156518237 20.1549001573063 -1.3686672230082 1.41444126018235 20.1549001573063 1.36866520500811 1.41444156718237 20.1549001573063 -0.523003820875509 1.90359871190365 20.1549001573063 0.421175424604663 1.92900029344899 20.1549001573063 0.948412073296903 1.72898981898171 0 4.05709804 0.0833333338930631 4.05709804 0.166666667461643 4.05709804 0.241666667459402 4.05709804 0.309166667327433 4.05709804 0.376666667107608 4.05709804 0.444166666832094 4.05709804 0.511666666532067 4.05709804 0.579166666238493 4.05709804 0.646666665982895 4.05709804 0.714166665798138 4.05709804 0.781666665719194 4.05709804 0.849166665783926 4.05709804 0.916666666033856 4.05709804 0.958333332967052 4.05709804 1 4.05709804 0 1.56619606173081e-010 1 0 0.333333333026269 0 0.633333333612658 0 0.816666667263602 0 1 17 2 17 3 2 3 17 19 3 19 4 5 4 19 7 6 19 8 7 19 5 19 6 19 20 8 11 20 21 21 14 13 14 21 18 14 18 15 12 21 13 10 9 20 11 10 20 16 15 18 11 21 12 20 9 8 
-97 95 1 0.210112682690577
-11.2339734254601 1.75393602555749 -1.1875290010296 13.4648676895469 6.33366791783307 -0.649981567562466 15.4035701016303 6.3336158858306 -0.843981276536958 13.4630372153778 6.33363348142137 -0.664906484472153 13.4655630790502 6.33360987132225 -0.67995183223256 13.4720109423526 6.33359763794093 -0.693809337204718 13.481865211362 6.33359655102978 -0.705455775328054 13.498850144814 6.33360669450163 -0.717717950742376 13.5281798180479 6.33362740563884 -0.730827739418199 13.572095439073 6.33363518544748 -0.74288467585994 13.6369910889792 6.33361512043099 -0.751487236151594 13.736730197582 6.33360336596481 -0.762465722742529 13.8907617951635 6.333636723012 -0.781962857767236 14.1191015746301 6.3336475145718 -0.802019608563596 14.4573225724275 6.33360124898954 -0.818033137070813 14.9306750904231 6.33360956834953 -0.840493691159277 14.2745160980031 1.48462395626585 -1.53651034460532 14.1656597628408 1.48194751707815 -1.53942524734664 14.2135489953361 1.48294152282931 -1.53833614618462 14.2438493880019 1.48372260617846 -1.53748696442166 13.6011839966343 1.48832080334864 -1.53331528929195 13.8654284008302 1.48159472568976 -1.54010328081708 14.0166842001824 1.48051674128334 -1.5410726263608 13.444497106413 1.49446108102915 -1.52697212221782 13.3358719193724 1.49950553637307 -1.52170061063614 13.2067968429158 1.50604612550568 -1.51478693835905 13.1814593172009 1.50737578009611 -1.51337342630281 13.16645930085 1.5081726599836 -1.51252533733249 13.1505415149467 1.50902129957732 -1.51162015009139 13.1124663081777 1.51107070262435 -1.50943129849638 13.0788185802369 1.51289249567415 -1.50747650391921 13.0297316574771 1.51557535698256 -1.50458789742418 12.9720618338055 1.51871722126836 -1.50119072402387 12.940715865217 1.52042788356822 -1.49933413531661 12.9120964228236 1.52198792279919 -1.49763971953495 12.82847300856 1.52649959711267 -1.49271427253387 12.7814658356866 1.52899226785807 -1.48998019128669 12.7343557009245 1.53139827017334 -1.48733192218905 12.6575618638079 1.53532613324339 -1.48298586386706 12.6076641882957 1.53776370918687 -1.48027790458241 12.5372927826847 1.54114785217358 -1.47650854790917 12.5260170991434 1.54169121599895 -1.47590103221097 12.5198591320194 1.54198713948748 -1.47557000779162 12.5143853778561 1.54225075040349 -1.47527481543679 12.5052019156317 1.54269254444705 -1.47478005746981 12.5009610278662 1.54289698784182 -1.47455086369703 12.4978731391223 1.54304758553291 -1.47438192864982 12.3752478733188 1.54915010834762 -1.4675065714953 12.3176153777131 1.55221688469296 -1.46401757936941 12.2620489025649 1.55544164364287 -1.46033225805902 12.0784585999608 1.56752665109685 -1.4463274574771 11.9745962160765 1.57593104887717 -1.43640172106746 11.8750928872913 1.58529487719724 -1.4251748313798 11.8452983948709 1.58832468439992 -1.42150208066628 11.8265809096452 1.59030279682563 -1.41909781301404 11.8043180412084 1.59269241380991 -1.41618054122364 11.7877235851982 1.59449365010627 -1.41397425382321 11.7753922597036 1.59583710752752 -1.41232221073241 11.7609747359659 1.59742040519323 -1.41037135508933 11.7448895439158 1.59917170511919 -1.40820760844032 11.7360589271649 1.60013550030746 -1.40701366467467 11.7279810431541 1.60101691469853 -1.40592225547907 11.6879791890818 1.60533464468433 -1.40054957968685 11.6675314916802 1.6074972055598 -1.39784683028508 11.6467164821864 1.60959413771122 -1.39521556909743 11.6168116552509 1.61264462252329 -1.39137019846653 11.59782558361 1.61447522340865 -1.38905331615527 11.5701474980193 1.61706632895907 -1.38576981734771 11.5536887722913 1.61864742509292 -1.38375916278693 11.5453364278214 1.61944215758067 -1.3827464367941 11.5380210330651 1.6201411438256 -1.3818514383236 11.5173028438985 1.62216599641362 -1.37925603162901 11.5059558947077 1.62331088856553 -1.37778473223831 11.4940513042487 1.62457606258802 -1.3761571297346 11.4310854543383 1.63195301640233 -1.36658814741296 11.3972655627071 1.63677236757878 -1.36025892428163 11.3654194549661 1.64208465945882 -1.3532208048712 11.3364585984696 1.64770369160567 -1.34570453119451 11.3214898793976 1.65115498888696 -1.3410459180422 11.3057257984163 1.65529957503836 -1.33541257273752 11.2900741726497 1.65989513283307 -1.329122714693 11.2819860982737 1.66256487295567 -1.32544049019301 11.274822965922 1.6653368975719 -1.32159590159368 11.2594973128833 1.67199772405696 -1.31228364617976 11.2508307887262 1.6768072576119 -1.30548627592333 11.243154316743 1.68198845915121 -1.29810493339306 11.2330199022536 1.69067340766125 -1.28556856767287 11.227823785328 1.69665448642256 -1.27680786604315 11.2233146680788 1.70357064691526 -1.26655421965809 11.2195102188226 1.72864961215316 -1.22820864056359 11.2187579579431 1.71744695743406 -1.24557151642983 11.2203168811737 1.710475396965 -1.25618412808846 11.2233176562604 1.73904489821927 -1.21174266791124 11.2210170661959 1.73444221415716 -1.21907662213952 11.2200330526066 1.73155065261827 -1.22364869856392 11.2283499283601 1.74732305688575 -1.19837574234842 11.2254784762726 1.74319668846012 -1.20506764748478 1.90484754 1 2.77555756156289e-017 1 0 5.55111512312578e-017 0 0.992462250491784 0 0.984924263257178 0 0.977386087530344 0 0.969848035505376 0 0.959797459685818 0 0.944721407279669 0 0.922107533907359 0 0.888186572632102 0 0.837305148394501 0 0.760983075360609 0 0.646499944155074 0 0.474775219247842 0 0.237387612143429 1.97302096 0 1.97524312 0.0334885 1.97433512987806 0.0187484800487512 1.97370448548503 0.00942816084727074 1.97906567 0.20832799 1.97868359901492 0.126212442556883 1.97741309366246 0.0794451729100739 1.97844344981302 0.257232385725159 1.977750135254 0.29122514316164 1.97674449 0.33168639 1.97653082949776 0.339635325801323 1.9764024177686 0.34434208340825 1.97626491246814 0.349337349659825 1.97593282858454 0.361287879319933 1.97563749152419 0.371850191956024 1.97520533 0.38726097 1.97470133489328 0.405366646537823 1.97443181923245 0.415207939731969 1.97418937676635 0.424193023169849 1.97350939656201 0.450443444208637 1.97315321391789 0.465195814822171 1.97282039 0.47997479 1.97233842438876 0.504059367036457 1.97206777597265 0.519699581210374 1.97171749 0.54175305 1.97166297888768 0.545286806735937 1.9716331924698 0.547216708231768 1.97160670068336 0.548932228154997 1.97156220309492 0.551810445215761 1.97154161030708 0.553139642486259 1.97152657 0.55410754 1.97086907898704 0.592567113762554 1.97048876076474 0.610668797531511 1.9700491 0.628149990000001 1.96790545112604 0.686151168747841 1.96608557332711 0.719222143906412 1.96382484 0.75114736 1.96304126640316 0.76075611638333 1.96252619967191 0.766805332176731 1.96189831621882 0.774008721238536 1.96142373948696 0.779382371604281 1.96106882114682 0.783377177229997 1.96065211 0.7880499 1.96018744852872 0.793262573408673 1.95993330187647 0.796124625741833 1.95970161035693 0.798742628519546 1.95857284484117 0.811701558430154 1.95801617100819 0.818318650502779 1.95747084 0.82504194 1.95673030491593 0.834694842191733 1.95629089686098 0.840807744630617 1.95567354 0.84970832 1.9553083434884 0.855005019931033 1.95512089677134 0.85769341633253 1.95495491240121 0.86004919638079 1.95446971766709 0.866730411569927 1.95418917090758 0.870397701589349 1.95387979 0.87425567 1.95189466912428 0.894834822409066 1.95048213687851 0.906075034735289 1.94884185 0.91682829 1.94700619966115 0.92678765857607 1.94583522305067 0.932064861206055 1.94439319 0.93775271 1.94275572460697 0.943534951342703 1.94178876120311 0.946604979766533 1.94080727 0.94944064 1.93826797942366 0.955704796926537 1.93642544162818 0.959600068076267 1.93442335 0.96340193 1.93099348473799 0.96910063895646 1.92860882545596 0.972590641589152 1.92581296 0.976356 1.915532 0.988580949999999 1.92016065814189 0.983337929426773 1.92302843592387 0.979880444581712 1.91118283 0.993162 1.91312662518433 0.991141022456955 1.91433066894701 0.989871699170403 1.90767762487209 0.996833346618624 1.90943626110579 0.994974448939811 15 48 14 14 52 1 1 65 66 1 12 13 14 1 13 10 11 1 1 11 12 81 89 80 79 90 78 80 91 79 78 93 77 32 15 16 71 1 70 69 70 1 1 68 69 67 68 1 72 1 71 77 96 76 76 96 75 1 74 75 74 1 73 1 72 73 66 67 1 16 3 23 1 8 9 1 7 8 5 6 1 7 1 6 93 78 94 9 10 1 4 1 2 4 5 1 1 75 96 96 77 97 77 93 97 86 88 85 82 85 88 84 82 83 82 84 85 88 86 87 90 95 78 91 90 79 89 92 80 91 80 92 81 88 89 95 94 78 82 88 81 20 19 3 16 31 32 34 15 33 33 15 32 19 18 3 34 35 15 39 40 15 38 39 15 37 15 36 36 15 35 15 37 38 41 15 40 24 25 16 23 22 16 26 16 25 24 16 21 22 21 16 30 16 29 16 30 31 28 16 27 16 28 29 27 16 26 3 18 23 57 1 56 1 57 58 1 54 55 1 55 56 58 59 1 1 64 65 64 1 63 60 61 1 59 60 1 1 62 63 61 62 1 46 47 15 15 45 46 44 45 15 43 44 15 47 48 15 1 53 54 53 1 52 50 51 14 52 14 51 50 14 49 48 49 14 15 42 43 42 15 41 3 17 20 
-29 27 1 0.343521901895452
-17.2459916335156 1.67360538724199 -1.3040721061901 16.8907891564538 1.66246632758017 -1.3199829009968 16.6574934494772 1.65116945250819 -1.33568740284973 16.4125111176284 1.63640196705886 -1.3557196746019 16.2011523152597 1.62185670743699 -1.37494654850437 16.0633593876408 1.61153324571135 -1.38829927614356 15.9164082326414 1.59998586197956 -1.40297488495823 15.8469763130626 1.59437508169675 -1.41000750532606 15.8019951149686 1.59069914836431 -1.41458270121145 15.7556462799591 1.58687434340459 -1.41931422068519 15.6964139203827 1.58196905618953 -1.42534318391927 15.6612810884908 1.57903959522677 -1.42892071410101 15.6256429585636 1.57605589016733 -1.43254462666716 15.5397452374411 1.56884763155009 -1.44123247462957 15.473271680395 1.56327035395551 -1.44789345121854 15.3885361745655 1.55624636724467 -1.45620806184295 15.306105959492 1.54936436641319 -1.46426868250305 15.268269862375 1.54625850688206 -1.46787806261069 15.2409733425777 1.54412476865888 -1.47034875277143 15.0553527988629 1.52932996360414 -1.48727760914968 14.9599739474397 1.52215568017742 -1.49535741294384 14.8705157989187 1.51573582377946 -1.50252353347842 14.2745160980031 1.48462395626585 -1.53651034460532 14.5412076506903 1.49536760071763 -1.52487830931075 14.700719037346 1.50439581019103 -1.51503503647987 15.4035701016303 6.3336158858306 -0.843981276536958 17.2205222879309 6.33368591083392 -0.716459929370019 16.2112081300592 6.33361609632978 -0.789025082562419 16.7153074057598 6.33362440525886 -0.744629567009837 0.10836658 1 0.103455800729111 0.878601683213829 0.0982521433238413 0.798981529741936 0.09134473 0.71553265 0.084368659530589 0.643746575947816 0.0793885252674269 0.597059232976251 0.0737667969251898 0.547374694350679 0.0710171119668794 0.52394174472731 0.0692080766735167 0.508776495738302 0.06732328 0.49316312 0.0648887433027859 0.473230851159796 0.0634318509113031 0.461418574346159 0.0619449186344799 0.449444284630742 0.0583322380574679 0.42061520889476 0.0555189443069517 0.398334975276379 0.05192274 0.36997388 0.0484245612823333 0.342417308524584 0.0468227381122968 0.329783763907954 0.04567056 0.32068046 0.0379494998139669 0.258845434827464 0.0340983936224757 0.227144200165303 0.03059095 0.19744373 0.01152171 0 0.0189254378509215 0.0882980110083935 0.024293201926527 0.141132579471773 2.07179400988383 0 2.07179401 1 2.07179401 0.444444477662673 2.07179401 0.722222222621833 24 26 25 22 25 26 21 22 26 20 21 26 20 26 19 19 26 18 18 26 17 16 17 28 28 14 15 28 12 13 13 14 28 15 16 28 23 26 24 10 11 28 9 10 28 28 8 9 7 8 28 28 6 7 11 12 28 17 26 28 6 28 5 3 4 29 28 4 5 2 29 27 29 2 3 27 1 2 29 4 28 
-14 12 1 0.491832010960765
-17.2459916335156 1.67360538724199 -1.3040721061901 17.2205222879309 6.33368591083392 -0.716459929370019 15.178436250937 6.33367198983326 -0.437746756651854 16.3204802357387 6.33369956825891 -0.537232878767512 15.7510666836442 6.33369196905639 -0.470107630845391 14.0214147184814 1.92383994562749 -0.832597821203398 15.4046094265513 1.88092055974603 -0.9381939196926 14.6607528960136 1.91159614027097 -0.86435123866858 15.0420292026598 1.89837313306859 -0.89715110812939 16.7625991892966 1.75436858685814 -1.18146817674002 16.1765899134382 1.82347364035735 -1.05856225745182 15.7951136914526 1.85579317663118 -0.993335758020724 17.0350076836168 1.71202949944338 -1.2481201972249 16.8999718861773 1.73398167120664 -1.21427146112902 1 0.09543064 1 1.82447971 0 1.82447971 0.555555522666088 1.82447971 0.277777772255733 1.82447971 0 0.17394647 0.42630538 0.16862434 0.196206836605745 0.175060958462688 0.313927871956255 0.172919813219483 0.84955315 0.12565764 0.666660002194579 0.150384988613236 0.547751696643457 0.161122210821031 0.934434368037772 0.109913057610335 0.892385485400386 0.118104251237743 5 7 4 9 7 5 3 6 8 8 5 3 5 8 9 7 12 4 13 1 2 14 13 2 4 11 2 11 4 12 10 2 11 2 10 14 
-11 9 1 0.503705044220552
-15.178436250937 6.33367198983326 -0.437746756651854 14.0214147184814 1.92383994562749 -0.832597821203398 13.7551732833356 6.33367429383337 -0.507938351705776 14.5443322303167 6.33370038605638 -0.438512104782042 14.1489478227719 6.33369589393791 -0.463731551201274 11.7544104008045 1.87810315470511 -0.947904219070532 13.0936597392712 1.92471312491465 -0.831011182606773 12.4984939249392 1.91178626757936 -0.865711758215816 12.1264748436296 1.89764302507642 -0.901489445835785 13.6090928440845 1.92731456149223 -0.823468014497094 13.3513800842622 1.92698422073325 -0.824591088364988 0 0 0 2.49916951 1 5.87469061401301e-017 0.444444442267688 5.87469061401301e-017 0.722222206176791 5.87469061401301e-017 1 2.56863264 0.41424785 2.51425894 0.676611408880311 2.53328433836189 0.839023039740135 2.54920900708148 0.184836669097487 2.50370613534587 0.299777456415894 2.50831051724584 2 1 10 4 11 10 4 7 11 4 10 1 5 8 7 5 3 8 9 8 3 6 9 3 5 7 4 
-44 42 1 0.356184912089085
-11.2339734254601 1.75393602555749 -1.1875290010296 11.2374721701397 1.75744672924547 -1.18170739401719 11.2397128243493 1.75958284549763 -1.17814309372062 11.241991866609 1.76167618021327 -1.17463542909946 11.3205173885153 1.80812062662728 -1.09235827710965 11.282497515071 1.79042449033645 -1.12476719576071 11.2614584884042 1.77721509519874 -1.14808555516162 11.3800477743783 1.8269038501845 -1.05634369821163 11.3517249297822 1.81900320975726 -1.07170700143696 11.3355893765422 1.81372331997687 -1.08179818216978 11.4067981820323 1.83344352140854 -1.04338194892659 11.422110330453 1.83681292144816 -1.03660090915193 11.4377184328134 1.83985132994319 -1.0304467840569 11.4548341856329 1.84301897680234 -1.02396532326718 11.4679208326056 1.84522537563198 -1.01941154995699 11.4889218416215 1.84866451038626 -1.01226962503403 11.52340267575 1.85388136264107 -1.00128923936046 11.5075790195456 1.85157090300864 -1.00617272612909 11.4980915290024 1.85013203174687 -1.00919775247045 11.540243037488 1.85616913294944 -0.996410035419285 11.5520301676041 1.85764174710785 -0.993258535161004 11.567654823367 1.85950792170499 -0.989247396559192 11.5825224317067 1.8612208585644 -0.985540024529965 11.5757666065409 1.86049537000134 -0.987113000393695 11.5716582419467 1.86001256377532 -0.988157529337878 11.6087807714995 1.86418755123253 -0.979072878586238 11.5970705547114 1.86293266310175 -0.981816119588881 11.5897426557683 1.86210640995082 -0.983616280235666 11.6399648907971 1.86755583570796 -0.971662113671306 11.6541275370485 1.86893617226193 -0.968587732885848 11.6720086193906 1.87055058284638 -0.964993759678242 11.7106499732683 1.87402286085446 -0.957189877704144 11.6978628252071 1.87285771818337 -0.959816867437028 11.6845587320126 1.87167014152274 -0.962486571141833 11.7148282055021 1.87441917939667 -0.956293752664951 11.7179957137033 1.8747203774982 -0.955610528418402 11.7218000636523 1.87507838103017 -0.95479830520242 11.7394411343865 1.87674949907579 -0.950990284186286 11.7474116721448 1.8774818451661 -0.94932248306639 11.7544104008045 1.87810315470511 -0.947904219070532 13.7551732833356 6.33367429383337 -0.507938351705776 13.6092627480286 6.33366414186155 -0.542618730393233 13.523757443342 6.33366598147823 -0.579216433281663 13.4648676895469 6.33366791783307 -0.649981567562466 1 11.59164008 0.989317412232611 11.5824376883958 0.982725436615189 11.5768263878913 0.976195632636491 11.5713201237537 0.79876482 11.44623253 0.876989973215987 11.4946126194421 0.925237736289643 11.530066853737 0.68476969 11.39282464 0.737752866589985 11.4158222830256 0.768950424269574 11.4306785242876 0.635848946625701 11.3734564700078 0.607834792512608 11.3633982747663 0.57922482 11.35399331 0.547468912482555 11.344425816734 0.523329455197387 11.3375380263006 0.48491685 11.32682113 0.422657966469266 11.3101236360822 0.451208391013271 11.3175927725389 0.46829786888873 11.3222341637045 0.392016810517089 11.3026701574382 0.370377793005853 11.2977804502245 0.34154549 11.29158637 0.31415251 11.28585527 0.326526319796521 11.2884396363434 0.334111106669424 11.2900255878527 0.26635512 11.27572027 0.287518715696528 11.280230501028 0.300861730818249 11.2830604635596 0.209834788916189 11.2640383762317 0.183852475327649 11.2591543755941 0.1418269 11.25176309 0.0796872526852901 11.2407395912722 0.101619775354772 11.2447457062967 0.12917444496091 11.2495746343973 0.0720840769782195 11.2393291801865 0.066326727664233 11.2382564272824 0.05942176 11.23696609 0.0273626775770691 11.2310182662012 0.0128250311866025 11.2283830759655 2.60208521396521e-018 11.22612399 0 0 0.444444418360722 0 0.722221788105504 0 1 0 39 40 44 44 38 39 44 37 38 37 44 31 35 34 32 34 35 36 32 34 33 36 37 34 37 31 34 31 44 30 44 29 30 27 44 28 44 27 26 26 29 44 23 28 44 23 44 24 44 21 22 44 20 21 24 44 25 25 44 22 41 42 40 18 17 44 43 40 42 44 19 18 44 16 19 44 40 43 16 44 15 17 20 44 15 44 14 13 14 44 12 13 44 44 11 12 8 11 44 10 9 44 5 10 44 8 44 9 7 6 44 4 7 44 2 3 44 1 2 44 4 44 3 5 44 6 
-12 10 1 0.888110689380213
-20.2590217622519 16.2691035827409 0.211302165326314 19.8650301674403 16.2690983887088 0.285985354754952 19.6170866779439 16.2691173430476 0.322931822102796 19.3665796498631 16.2690975027406 0.333106715941719 15.178436250937 6.33367198983326 -0.437746756651854 17.5051825836737 11.8533528305843 -0.00949482743814051 16.3418094173054 9.09351241028592 -0.223620792046541 17.2205222879309 6.33368591083392 -0.716459929370019 16.3204802357387 6.33369956825891 -0.537232878767512 15.7510666836442 6.33369196905639 -0.470107630845391 18.9085775460104 11.8533623956218 -0.201036543432056 18.0645499169089 9.09352415367846 -0.458748236404062 5.54300000000369e-005 3.425e-005 0.444499874271849 3.425e-005 0.722277652974469 3.425e-005 1.00005543 3.425e-005 1.00005543 7.14491407 1.00005543 3.17553639126588 1.00005543 5.16022523123009 5.54299999999119e-005 7.14491407 0.444499873665125 7.14491407 0.722277653348409 7.14491407 5.543e-005 3.17553639058481 5.543e-005 5.16022522993844 11 1 2 6 12 11 8 12 9 7 9 12 11 2 6 3 4 6 7 12 6 10 7 5 10 9 7 6 2 3 
-10 8 1 0.824574111715165
-15.4035701016303 6.3336158858306 -0.843981276536958 16.2112081300592 6.33361609632978 -0.789025082562419 16.7153074057598 6.33362440525886 -0.744629567009837 17.2205222879309 6.33368591083392 -0.716459929370019 19.4649687145364 16.2690729827395 0.155572182299282 20.2590217622519 16.2691035827409 0.211302165326314 19.8179548645828 16.2690701719765 0.179611696722426 20.0382192497354 16.2690717066067 0.199031380776679 18.9085775460104 11.8533623956218 -0.201036543432056 18.0645499169089 9.09352415367846 -0.458748236404062 1.00006281 3.88e-005 0.555618365404341 3.88e-005 0.277840589297946 3.88e-005 6.28099999999687e-005 3.88e-005 1.00006281 8.09360706 6.28100000000797e-005 8.09360706 0.555618368499071 8.09360706 0.277840590639537 8.09360706 6.281e-005 4.49646560710763 6.281e-005 2.24825220278838 4 3 10 9 10 1 6 9 8 2 10 3 5 9 1 8 9 7 7 9 5 10 2 1 
-28 26 1 0.861665817365813
-13.4648676895469 6.33366791783307 -0.649981567562466 15.4035701016303 6.3336158858306 -0.843981276536958 13.4639365106997 6.33361893781667 -0.673369252265261 13.4729896817002 6.33359697801473 -0.695277444186304 13.4969086185137 6.33360524760734 -0.716579548656003 13.5425829989032 6.33363312994559 -0.735583849017036 13.6102856298869 6.3336251452398 -0.748722011987501 13.712881877997 6.33360215937222 -0.759572386927934 13.872435909273 6.33363221442692 -0.77973920581501 14.1099553090516 6.33364843656355 -0.801451178377316 14.4612579990034 6.33360098255577 -0.818217286410855 14.9326555011664 6.33360966883766 -0.840574978351562 18.6177078042936 16.2690957227405 0.240354853816242 16.3275566416901 11.8533500334977 -0.155350222347628 14.8962121671 9.09350897509132 -0.402665894952023 18.6299027142018 16.269089666535 0.227260498344197 18.6423905326818 16.2690849763005 0.216766026058852 18.6544605547071 16.2690816211184 0.208874061563196 18.6671320251054 16.2690790884247 0.202500498620152 18.6846261387898 16.2690767862081 0.196020562419276 18.7054292411016 16.2690752900111 0.190789389665035 18.7338287275574 16.2690748591043 0.186886135605315 18.7764386551318 16.269076312927 0.185478084221752 18.8404298778082 16.2690781326059 0.184022620004652 18.9360071259158 16.2690760507146 0.175904166074557 19.0791592696307 16.2690706505231 0.161951232912547 19.2720497498064 16.269070796701 0.156344287848845 19.4649687145364 16.2690729827395 0.155572182299282 1.00005799 3.574e-005 5.79899999998967e-005 3.574e-005 0.988315024381976 3.574e-005 0.976572063856532 3.574e-005 0.960914786034716 3.574e-005 0.937428869409664 3.574e-005 0.902199990677587 3.574e-005 0.849356668523189 3.574e-005 0.7700916861898 3.574e-005 0.651194216331677 3.574e-005 0.472848011153589 3.574e-005 0.236453001876137 3.574e-005 1.00005799 7.70509074925026 1.00005799 4.28062185908072 1.00005799 2.14032880069565 0.979719795830966 7.70509075 0.961415421483598 7.70509075 0.944941489173656 7.70509075 0.928467552325098 7.70509074999999 0.906775150196071 7.70509075 0.882064238505484 7.70509075 0.849128297604241 7.70509075 0.7997064845172 7.70509075 0.725573774434937 7.70509075 0.614374713485101 7.70509075 0.447576105115031 7.70509075 0.223817050064385 7.70509075 5.79900000000008e-005 7.70509075 2 14 28 2 12 15 11 10 15 22 23 14 15 10 9 11 15 12 23 24 14 28 14 27 27 14 26 25 14 24 14 25 26 21 22 14 8 15 9 15 7 6 15 6 5 3 15 4 15 3 1 4 15 5 15 14 2 19 20 14 18 19 14 14 13 16 16 17 14 14 17 18 21 14 20 8 7 15 
-8 6 1 0.0623762133112777
-20.2590217622519 16.2691035827409 0.211302165326314 20.2590217622519 16.2691035827409 0.211302165326314 19.4649687145364 16.2690729827395 0.155572182299282 19.8179548645828 16.2690701719765 0.179611696722426 20.0382192497354 16.2690717066067 0.199031380776679 19.3665796498631 16.2690975027406 0.333106715941719 19.8650301674403 16.2690983887088 0.285985354754952 19.6170866779439 16.2691173430476 0.322931822102796 7.01562055 0 7.01562055 1 9.9050420844917e-022 1 3.118053398646 1 5.06684031122416 1 0 1.0773715253265e-011 3.89756289685725 0 1.94878391367125 0 6 8 3 4 3 8 8 7 4 7 1 5 2 5 1 7 5 4 
-20 18 1 0.0762318416308065
-18.7445785303197 16.2690985127407 0.302431252674713 18.6177078042936 16.2690957227405 0.240354853816242 18.6802705443525 16.2690930103612 0.290479512461686 18.6456109863585 16.2690930185178 0.269857395778124 19.3665796498631 16.2690975027406 0.333106715941719 19.0202757082456 16.2691100248794 0.329364060800464 19.1933975102018 16.2691074864275 0.335385358398923 19.4649687145364 16.2690729827395 0.155572182299282 18.6299027142018 16.269089666535 0.227260498344197 18.6423905326818 16.2690849763005 0.216766026058852 18.6544605547071 16.2690816211184 0.208874061563196 18.6671320251054 16.2690790884247 0.202500498620152 18.6846261387898 16.2690767862081 0.196020562419276 18.7054292411016 16.2690752900111 0.190789389665035 18.7338287275574 16.2690748591043 0.186886135605315 18.7764386551318 16.269076312927 0.185478084221752 18.8404298778082 16.2690781326059 0.184022620004652 18.9360071259158 16.2690760507146 0.175904166074557 19.0791592696307 16.2690706505231 0.161951232912547 19.2720497498064 16.269070796701 0.156344287848845 1 0 2.77555756156289e-017 0 0.555554660792764 0 0.277778057864552 0 1 4.45537137 1 1.98016500068961 1 3.21777465995574 5.55111512312578e-017 4.45537137 0 0.0906159982349975 0 0.172166917775719 0 0.245563093572022 0 0.318962057436955 0 0.415611684710348 0 0.525706424990429 0 0.672447424582865 0 0.892640269046457 0 1.22292922343618 0 1.71836239428466 0 2.46151194819445 0 3.45844167756327 10 9 4 12 11 4 13 12 4 10 4 11 15 14 3 17 16 6 18 17 6 15 1 16 13 3 14 3 13 4 1 6 16 15 3 1 6 19 18 20 19 7 20 5 8 5 20 7 19 6 7 9 2 4 
-12 10 1 0.591785717024134
-13.7551732833356 6.33367429383337 -0.507938351705776 13.4648676895469 6.33366791783307 -0.649981567562466 13.6092627480286 6.33366414186155 -0.542618730393233 13.523757443342 6.33366598147823 -0.579216433281663 18.7445785303197 16.2690985127407 0.302431252674713 16.5270650817836 11.8533544128313 -0.0577330159383438 15.1411191824979 9.09351435300515 -0.282835683823541 18.6802705443525 16.2690930103612 0.290479512461686 18.6456109863585 16.2690930185178 0.269857395778124 18.6177078042936 16.2690957227405 0.240354853816242 16.3275566416901 11.8533500334977 -0.155350222347628 14.8962121671 9.09350897509132 -0.402665894952023 1.00034374 0.00020743 0.000343739999999981 0.00020743 0.555899305287052 0.00020743 0.278121510159856 0.00020743 1.00034374 46.24578153 1.00034374 25.6921930438122 1.00034374 12.8462002380214 0.555899276640718 46.24578153 0.278121530471549 46.24578153 0.000343739999999995 46.24578153 0.00034374 25.6921930559041 0.00034374 12.8462002337375 2 4 12 11 12 6 10 11 9 8 9 11 3 12 4 3 1 7 7 6 12 8 6 5 8 11 6 12 3 7 
-12 10 1 0.760952242780141
-15.178436250937 6.33367198983326 -0.437746756651854 13.7551732833356 6.33367429383337 -0.507938351705776 14.5443322303167 6.33370038605638 -0.438512104782042 14.1489478227719 6.33369589393791 -0.463731551201274 19.3665796498631 16.2690975027406 0.333106715941719 17.5051825836737 11.8533528305843 -0.00949482743814051 16.3418094173054 9.09351241028592 -0.223620792046541 18.7445785303197 16.2690985127407 0.302431252674713 19.0202757082456 16.2691100248794 0.329364060800464 19.1933975102018 16.2691074864275 0.335385358398923 16.5270650817836 11.8533544128313 -0.0577330159383438 15.1411191824979 9.09351435300515 -0.282835683823541 1.00008022 4.95e-005 8.02200000000752e-005 4.95e-005 0.555635777227203 4.95e-005 0.277858000962346 4.95e-005 1.00008022 10.70174454 1.00008022 5.94543563446982 1.00008022 2.97274256537468 8.0219999999992e-005 10.70174454 0.444524665429504 10.70174454 0.722302439473474 10.70174454 8.022e-005 5.94543563130618 8.022e-005 2.97274256454321 12 2 4 11 12 7 8 11 9 6 9 11 3 12 4 3 1 7 7 6 11 10 6 5 10 9 6 12 3 7 
-34 32 1 0.107623659856209
-33.8393312472819 3.79883272998346e-010 1.20936400844171 32.949284715007 -9.00000027138652e-011 1.41444141318236 33.4453742299966 7.65294960903743e-011 1.30671950173525 33.1977592060613 -2.35819627113039e-011 1.3624746517746 32.9492818450068 -2.51270011936476e-007 0.385932318830801 32.949281636949 -0.0723859747720965 0.399530933967947 32.9492814655058 -0.142449920928198 0.42340905710103 32.949281336466 -0.207716338173984 0.456629212869447 32.9492812520345 -0.266178482020004 0.497541003405603 32.9492812108253 -0.31651530357438 0.544042244557282 32.9492812105121 -0.362494816899089 0.599886908849098 32.9492812576811 -0.40178979320139 0.664602951834885 32.9492813567519 -0.432102421706248 0.736978432667788 32.949281491386 -0.450058107631838 0.807055623065036 32.9492816479924 -0.457765634257626 0.872533311662978 32.9492818350163 -0.457071300035649 0.938684194805279 32.9492820478497 -0.448008746367459 1.00389935722537 32.9492822807364 -0.431010966617592 1.06664445241076 32.9492825272681 -0.406859839381012 1.12557586510147 32.9492827809181 -0.3765998336642 1.17962700327792 32.9492830355287 -0.341432829137614 1.2280547268893 32.9492833515667 -0.291713771367234 1.28078831370993 32.9492836702801 -0.235086619683427 1.32608171168288 32.949283935845 -0.182910025195474 1.35775370234894 32.9492842405047 -0.117131977435142 1.38689385173548 32.9492844955534 -0.0566532093327347 1.40471369228586 33.8393156872812 6.98962595001871e-011 0.672364923019744 33.3453673952328 -1.69945618497223e-007 0.511784116082679 33.5925097093462 -9.50772335968589e-008 0.591621808710825 33.8392977566475 -0.204359191850061 0.94086446581668 33.8392975579796 -0.179385374407658 0.825582301042679 33.8393041323705 -0.104463917266386 0.727145930103484 33.8393165171092 -0.104463917019766 1.15458300056345 33.8393042389757 -0.179385374274888 1.05614663036206 1.30349648 0 1.30349648 1 1.30349648 0.444444444444444 1.30349648 0.722222222222222 0 1 0.0879860117472334 1 0.167173422339729 1 0.238442092022798 1 0.302583894912977 1 0.360311517671391 1 0.418039140575604 1 0.475766763610128 1 0.533494386749875 1 0.58544924763906 1 0.63220862246773 1 0.678967997301754 1 0.725727372120068 1 0.772486746902202 1 0.819246121629127 1 0.866005496284103 1 0.912764870853523 1 0.972092065293539 1 1.03521722063896 1 1.09202986030131 1 1.16446260221246 1 1.23397954108952 1 9.70839405195408e-017 0 9.70839405195408e-017 0.555555555555556 9.70839405195408e-017 0.277777777777778 0.651748238245532 0 0.466244880058292 0 0.251497711188275 0 1.05199876592715 0 0.837251596810711 0 29 27 32 5 28 6 29 31 28 31 13 28 30 13 31 7 6 28 31 29 32 8 7 28 10 9 28 8 28 9 12 11 28 14 13 30 15 14 30 12 28 13 10 28 11 30 16 15 30 17 16 17 30 34 18 17 34 34 3 18 33 1 3 3 19 18 3 34 33 20 3 4 20 19 3 22 21 4 20 4 21 24 23 4 26 25 4 2 26 4 24 4 25 22 4 23 
-44 42 1 0.105922057940576
-33.8393312472819 3.79883272998346e-010 1.20936400844171 33.4453742299966 7.65294960903743e-011 1.30671950173525 33.1977592060613 -2.35819627113039e-011 1.3624746517746 32.949284715007 -9.00000027138652e-011 1.41444141318236 33.8392977566475 0.204359191626203 0.94086446660868 33.8393001833268 0.198341074341278 0.998454886130732 33.8393042389757 0.179385374524446 1.05614663066089 33.8393098038141 0.147457903822274 1.10957626463709 33.8393165171092 0.104463917463902 1.15458300062059 33.8393238526587 0.0539063245387078 1.18822205072272 33.8393156872812 6.98962595001871e-011 0.672364923019744 33.8393095180284 0.0539063242533537 0.693506881444928 33.8393041323705 0.104463917217347 0.727145931821624 33.8393000271144 0.147457903627728 0.772152668133509 33.8392975579796 0.179385374391689 0.825582302301417 33.8392968443119 0.198341074275034 0.883274046947544 32.9492818450068 -2.51270011936476e-007 0.385932318830801 33.3453673952328 -1.69945618497223e-007 0.511784116082679 33.5925097093462 -9.50772335968589e-008 0.591621808710825 32.9492844622498 0.0648578034843168 1.40276019322203 32.9492841950919 0.127361842821889 1.38306634166443 32.9492839217962 0.185787190591095 1.35622009891945 32.9492836505446 0.238781276649565 1.32350548511105 32.9492833885957 0.28546658567954 1.28645378312565 32.9492831137876 0.329730268134689 1.24185312072483 32.9492828316718 0.369955979006697 1.18972552093879 32.9492825773593 0.40129089899697 1.13674434035753 32.9492823532966 0.424498342755848 1.08471341846466 32.9492821386964 0.442142873236093 1.02930545077855 32.9492819383134 0.453577893685952 0.971436497866518 32.9492817566145 0.458366005935615 0.912173941484262 32.949281597467 0.456319712789437 0.852674394726367 32.9492814638712 0.447519460318144 0.794109899407079 32.9492813577748 0.432305853534723 0.737592052707112 32.9492812799933 0.411247421367001 0.684104170065403 32.9492812302395 0.3850894689738 0.63444980772802 32.9492812072494 0.354692238382686 0.589222522086425 32.9492812089755 0.320967261132669 0.548797697285107 32.9492812419963 0.275402226040944 0.505171313291083 32.9492813097541 0.22393213033468 0.466798061747131 32.949281393256 0.176940001924048 0.439511462777807 32.9492814927281 0.13039910271226 0.418491493481063 32.9492816376445 0.0721246754267516 0.399462416249419 32.9492817399943 0.0352387730996903 0.391219318004573 0 0 0 0.444444444444444 0 0.722222222222222 0 1 0.651748359641201 0 0.562266216520123 0 0.466244967444793 0 0.362941956686923 0 0.251497759411408 0 0.130908804937503 0 1.30349672 0 1.17258791490658 0 1.05199896016699 0 0.940554762816851 0 0.837251752067256 0 0.741230502896388 0 1.30349672 1 1.30349672 0.555555555555556 1.30349672 0.277777777777778 0.0791874266049983 1 0.150456110206358 1 0.214597925236668 1 0.272325558632678 1 0.324280428606307 1 0.376235298518554 1 0.428190168382975 1 0.474949551229388 1 0.517032995771549 1 0.559116440299661 1 0.601199884817611 1 0.643283329328989 1 0.68536677383724 1 0.727450218345833 1 0.769533662858416 1 0.811617107378979 1 0.853700551912017 1 0.895783996462688 1 0.937867441036973 1 0.990587993959286 1 1.04740064425469 1 1.09853202960482 1 1.1496634150571 1 1.21581438562707 1 1.25965555274106 1 2 26 3 3 20 4 3 21 20 2 1 10 10 9 2 9 8 2 7 6 2 2 6 29 8 7 2 6 5 30 22 21 3 24 23 3 25 24 3 22 3 23 27 26 2 28 27 2 30 29 6 31 30 5 28 2 29 25 3 26 5 32 31 34 16 18 33 32 16 34 33 16 16 15 18 16 32 5 14 13 19 13 12 19 11 19 12 18 15 19 19 15 14 34 18 35 36 35 18 38 37 18 39 38 18 36 18 37 41 40 18 42 41 18 44 43 18 17 44 18 42 18 43 39 18 40 
-13 11 1 0.0537059286378936
-33.8393156872812 6.98962595001871e-011 0.672364923019744 33.8393312472819 3.79883272998346e-010 1.20936400844171 33.8392977566475 -0.204359191850061 0.94086446581668 33.8393238526587 -0.0539063240014759 1.18822205072055 33.8393165171092 -0.104463917019766 1.15458300056345 33.8393098038141 -0.147457903476468 1.10957626442476 33.8393042389757 -0.179385374274888 1.05614663036206 33.8393001833268 -0.198341074178591 0.998454885734397 33.8392968443119 -0.198341074244835 0.883274045929723 33.8392975579796 -0.179385374407658 0.825582301042679 33.8393000271144 -0.147457903671087 0.772152666635343 33.8393041323705 -0.104463917266386 0.727145930103484 33.8393095180284 -0.0539063242866943 0.69350687954168 0.00014676 2.62709718 0.00014676 0.000146760000000024 0.99985324 1.31362197 0.263851570643256 0.103571280385875 0.511174686859194 0.268130444291005 0.721497346012561 0.488299275920663 0.87768360619277 0.749672165640972 0.970413165325946 1.03189489931904 0.970413165691212 1.5953490387829 0.877683606776187 1.87757177305044 0.72149734659937 2.13894466337607 0.511174687476309 2.35911349510005 0.263851571354874 2.52367265936146 1 2 4 4 9 13 4 13 1 12 13 10 4 5 7 8 4 7 4 8 9 12 10 11 13 9 10 8 3 9 5 6 7 
-13 11 1 0.0572843171818542
-33.8393156872812 6.98962595001871e-011 0.672364923019744 33.8392977566475 0.204359191626203 0.94086446660868 33.8393095180284 0.0539063242533537 0.693506881444928 33.8393041323705 0.104463917217347 0.727145931821624 33.8393000271144 0.147457903627728 0.772152668133509 33.8392975579796 0.179385374391689 0.825582302301417 33.8392968443119 0.198341074275034 0.883274046947544 33.8393312472819 3.79883272998346e-010 1.20936400844171 33.8393001833268 0.198341074341278 0.998454886130732 33.8393042389757 0.179385374524446 1.05614663066089 33.8393098038141 0.147457903822274 1.10957626463709 33.8393165171092 0.104463917463902 1.15458300062059 33.8393238526587 0.0539063245387078 1.18822205072272 0.000146760000000024 0.000146759999999968 0.99985324 1.31362197 0.263851571352804 0.103571280669522 0.511174687447312 0.268130444847644 0.721497346527227 0.488299276552286 0.877683606669353 0.749672166699558 0.970413165602793 1.03189490076842 0.000146760000000024 2.62709718 0.970413165644987 1.59534903914953 0.877683606610059 1.87757177342621 0.721497346333694 2.13894466367848 0.511174687196543 2.35911349540201 0.263851570791156 2.52367265956562 13 1 3 7 13 3 1 13 8 12 13 10 6 3 4 7 3 6 7 9 13 12 10 11 13 9 10 7 2 9 6 4 5 
-17 15 1 0.0886463017104726
-31.9768135388171 6.52772034505006 1.34215900474913 32.0213115109306 6.52591981196454 1.3601615736042 31.9777141338021 6.52713956390073 1.34796364316376 31.9801838030808 6.5267974488231 1.3513832533026 31.9853169721851 6.52653976915668 1.35395944627219 31.9935667292365 6.52630888437399 1.35626836623374 32.0062896455014 6.52612466153763 1.35811170086215 32.0138321046462 6.52604139231613 1.35894519719741 33.0949317119248 6.52779751805373 1.34157750972151 32.4987052702977 6.52272808810944 1.39214154656852 32.7970597574067 6.52497416733426 1.36974426905863 32.0208866309104 6.53046184918028 1.31476716144809 32.1988014065246 6.53304116548185 1.28901898561674 32.4384468709181 6.5337198707506 1.28227649389768 32.7675330815779 6.53170020137228 1.30251747341929 31.9890588095105 6.52897265450857 1.32964517227622 32.0043572560983 6.5298518644305 1.32086070908223 9.03616111 0.33998394 8.68474412 0.50630138 9.03151973080234 0.387533162698493 9.0131152270464 0.416421561578885 8.97280355698986 0.439663890948202 8.90718494690627 0.462144064852484 8.80520669358997 0.482864527740603 8.74463370631334 0.493042427678402 0.00024281000000001 0.84057317 4.84139019691145 0.981774826707296 2.42017701361166 0.934711392963648 8.66755946 0.13743969 7.21811284720031 0.00873161816517202 5.27844512739079 0.0622757526538095 2.62825136142552 0.375386534235768 8.93152172462077 0.243887162803693 8.80390313861735 0.179458181169857 10 15 14 14 13 10 12 2 13 9 15 11 10 11 15 2 10 13 12 8 2 7 17 16 16 1 5 3 5 1 8 17 7 16 5 6 6 7 16 5 3 4 17 8 12 
-
-TShapes 826
-Ve
-0.000573568990437319
-28.764323322482 -1.33232061253183 0.776095392149801
-0 0
-
-0101101
-*
-Ve
-0.00572885119877706
-28.771246413521 -1.32785526804699 0.800754676743324
-0 0
-
-0101101
-*
-Ed
- 0.000573568990437319 1 1 0
-1  1 0 0 0.132495842436784
-2  1 1 0 0 0.132495842436784
-2  2 2 0 0 0.132495842436784
-6  1 1 0
-6  2 2 0
-0
-
-0101000
-+826 0 -825 0 *
-Ve
-0.00572885869567544
-28.7814886770473 -1.32550508695811 0.807583974655179
-0 0
-
-0101101
-*
-Ed
- 0.00572885119877706 1 1 0
-1  1 0 0.132495842436784 0.2
-2  3 1 0 0.132495842436784 0.2
-2  4 2 0 0.132495842436784 0.2
-6  3 1 0
-6  4 2 0
-0
-
-0101000
-+825 0 -823 0 *
-Ve
-0.00572885869567544
-28.809786707555 -1.32057331451879 0.816323984307388
-0 0
-
-0101101
-*
-Ed
- 0.00572885869567544 1 1 0
-1  2 0 0.625 0.75
-2  5 2 0 0.625 0.75
-2  6 1 0 0.625 0.75
-6  5 1 0
-6  6 2 0
-0
-
-0101000
-+821 0 -823 0 *
-Ve
-0.000673785022620933
-28.8200576329791 -1.3189588914812 0.818374892280472
-0 0
-
-0101101
-*
-Ed
- 0.000673785022620933 1 1 0
-1  3 0 0.301909390322789 0.339524884162641
-2  7 1 0 0.301909390322789 0.339524884162641
-2  8 2 0 0.301909390322789 0.339524884162641
-6  7 1 0
-6  8 2 0
-0
-
-0101000
-+821 0 -819 0 *
-Ve
-0.000346509450286499
-28.8370977396886 -1.31653513753206 0.820227543550216
-0 0
-
-0101101
-*
-Ed
- 0.000346509450286499 1 1 0
-1  4 0 0.375 0.5
-2  9 2 0 0.375 0.5
-2  10 1 0 0.375 0.5
-6  9 1 0
-6  10 2 0
-0
-
-0101000
-+817 0 -819 0 *
-Ve
-0.00355541354656278
-28.8511763753573 -1.31448655943476 0.822002803405536
-0 0
-
-0101101
-*
-Ed
- 0.000346504358099087 1 1 0
-1  5 0 0.4 0.6
-2  11 1 0 0.4 0.6
-2  12 2 0 0.4 0.6
-6  11 1 0
-6  12 2 0
-0
-
-0101000
-+817 0 -815 0 *
-Ve
-0.00355541425614066
-28.8605162208009 -1.31320612987394 0.822703057182297
-0 0
-
-0101101
-*
-Ed
- 0.00355541354656278 1 1 0
-1  6 0 0.125 0.25
-2  13 2 0 0.125 0.25
-2  14 1 0 0.125 0.25
-6  13 1 0
-6  14 2 0
-0
-
-0101000
-+813 0 -815 0 *
-Ve
-0.00355541425614066
-28.8815857768016 -1.3100262339729 0.825953902237579
-0 0
-
-0101101
-*
-Ed
- 0.00355541425614066 1 1 0
-1  7 0 0.8 1
-2  15 1 0 0.8 1
-2  16 2 0 0.8 1
-6  15 1 0
-6  16 2 0
-0
-
-0101000
-+813 0 -811 0 *
-Ve
-0.000575025384893924
-29.1024809571707 -1.27829995923427 0.847101069546861
-0 0
-
-0101101
-*
-Ed
- 5.96799346941318e-005 1 1 0
-1  8 0 0.950938201119073 1
-2  17 3 0 0.950938201119073 1
-2  18 1 0 0.950938201119073 1
-6  17 1 0
-6  18 3 0
-0
-
-0101000
-+809 0 -811 0 *
-Ve
-0.000575025384893924
-29.7795234590196 -1.17556150430168 0.898660712825603
-0 0
-
-0101101
-*
-Ed
- 0.000575025384893924 1 1 0
-1  8 0 0.8 0.950938201119073
-2  19 3 0 0.8 0.950938201119073
-2  20 1 0 0.8 0.950938201119073
-6  19 1 0
-6  20 3 0
-0
-
-0101000
-+807 0 -809 0 *
-Ve
-0.000280849970502426
-30.1859472023218 -1.1125524406374 0.900485451578671
-0 0
-
-0101101
-*
-Ed
- 0.000280849970502426 1 1 0
-1  9 0 0.30821290778553 0.4
-2  21 1 0 0.30821290778553 0.4
-2  22 3 0 0.30821290778553 0.4
-6  21 1 0
-6  22 3 0
-0
-
-0101000
-+807 0 -805 0 *
-Ve
-0.0108556958753512
-30.232174242697 -1.10535644116363 0.898715988384917
-0 0
-
-0101101
-*
-Ed
- 1.16534685833145e-005 1 1 0
-1  10 0 0.4 0.412299566132293
-2  23 1 0 0.4 0.412299566132293
-2  24 3 0 0.4 0.412299566132293
-6  23 1 0
-6  24 3 0
-0
-
-0101000
-+805 0 -803 0 *
-Ve
-0.0108557001248812
-30.9823506165827 -0.978516058763017 0.823513645257798
-0 0
-
-0101101
-*
-Ed
- 0.0108556958753512 1 1 0
-1  11 0 0.4 0.6
-2  25 3 0 0.4 0.6
-2  26 1 0 0.4 0.6
-6  25 1 0
-6  26 3 0
-0
-
-0101000
-+801 0 -803 0 *
-Ve
-0.0108557001248812
-31.5238734767954 -0.859672023594499 0.747163193682461
-0 0
-
-0101101
-*
-Ed
- 0.0108557001248812 1 1 0
-1  12 0 0.6 0.8
-2  27 1 0 0.6 0.8
-2  28 3 0 0.6 0.8
-6  27 1 0
-6  28 3 0
-0
-
-0101000
-+801 0 -799 0 *
-Ve
-2.54443050818658e-005
-31.5669420071188 -0.848883086687299 0.741836439348443
-0 0
-
-0101101
-*
-Ed
- 4.79318633838478e-006 1 1 0
-1  13 0 0.2 0.214883998084454
-2  29 3 0 0.2 0.214883998084454
-2  30 1 0 0.2 0.214883998084454
-6  29 1 0
-6  30 3 0
-0
-
-0101000
-+797 0 -799 0 *
-Ve
-7.16334450356134e-005
-31.8489252871177 -0.773601860023678 0.713410577422495
-0 0
-
-0101101
-*
-Ed
- 2.54443050818658e-005 1 1 0
-1  14 0 0 0.2
-2  31 3 0 0 0.2
-2  32 1 0 0 0.2
-6  31 1 0
-6  32 3 0
-0
-
-0101000
-+795 0 -797 0 *
-Ve
-2.41354164104893e-006
-32.4183769697902 -0.614560682900065 0.818500392946681
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  15 0 1.00922414 1.18410863
-2  33 1 0 1.00922414 1.18410863
-2  34 4 0 1.00922414 1.18410863
-6  33 1 0
-6  34 4 0
-0
-
-0101000
-+795 0 -793 0 *
-Ve
-2.41354164104893e-006
-32.4183772197902 -0.208516963644024 1.41444139018236
-0 0
-
-0101101
-*
-Ed
- 2.41354164097025e-006 1 1 0
-1  16 0 0 0.25852715
-2  35 5 0 0 0.25852715
-2  36 1 0 0 0.25852715
-6  35 5 0
-0
-
-0101000
-+791 0 -793 0 *
-Ve
-1e-007
-25.9893209044264 -1.2407928679345 1.41444127418235
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  17 0 0 1.18410863
-2  37 6 0 0 1.18410863
-2  38 1 0 0 1.18410863
-6  36 1 0
-6  37 6 0
-0
-
-0101000
-+789 0 -791 0 *
-Ve
-1e-007
-25.9893210144265 -1.67578856559568 0.495540494136909
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  18 0 0.84752031 1
-2  39 1 0 0.84752031 1
-2  40 7 0 0.84752031 1
-6  38 1 0
-6  39 7 0
-0
-
-0101000
-+789 0 -787 0 *
-Ed
- 1e-007 1 1 0
-1  19 0 0 0.41008236
-2  41 1 0 0 0.41008236
-2  42 4 0 0 0.41008236
-6  40 1 0
-6  41 4 0
-0
-
-0101000
-+787 0 -826 0 *
-Wi
-
-0101000
-+824 0 +822 0 -820 0 +818 0 -816 0 +814 0 -812 0 +810 0 -808 0 -806 0 
-+804 0 +802 0 -800 0 +798 0 -796 0 -794 0 +792 0 -790 0 -788 0 +786 0 
-+785 0 *
-Fa
-0  1.00000004749745e-010 1 0
-2  1
-0111000
-+784 0 *
-Ve
-1e-007
-25.9893210144265 1.67578665759559 0.495543775207065
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  20 0 0.15247929 0.84752031
-2  43 4 0 0.15247929 0.84752031
-2  44 7 0 0.15247929 0.84752031
-6  42 4 0
-6  43 7 0
-0
-
-0101000
-+787 0 -782 0 *
-Ve
-0.00078269690770633
-28.7643514962333 1.33236617403399 0.776100355658662
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  21 0 0 0.41008734
-2  45 8 0 0 0.41008734
-2  46 4 0 0 0.41008734
-6  44 4 0
-6  45 8 0
-0
-
-0101000
-+780 0 -782 0 *
-Ve
-0.000557288290538131
-28.8042061810958 1.33218910762353 0.734824782868964
-0 0
-
-0101101
-*
-Ed
- 0.000485810828914709 1 1 0
-1  22 0 0 0.317890101713215
-2  47 4 0 0 0.317890101713215
-2  48 9 0 0 0.317890101713215
-6  46 4 0
-6  47 9 0
-0
-
-0101000
-+780 0 -778 0 *
-Ve
-0.000557288290538131
-28.8475719209584 1.32884532155346 0.708805028085803
-0 0
-
-0101101
-*
-Ed
- 0.000557288290538131 1 1 0
-1  22 0 0.317890101713215 0.5
-2  49 4 0 0.317890101713215 0.5
-2  50 9 0 0.317890101713215 0.5
-6  48 4 0
-6  49 9 0
-0
-
-0101000
-+778 0 -776 0 *
-Ve
-2.52112976098701e-005
-28.8635999007014 1.32726816033196 0.701453946616088
-0 0
-
-0101101
-*
-Ed
- 2.52112976098701e-005 1 1 0
-1  23 0 0.5 0.559785527676533
-2  51 9 0 0.5 0.559785527676533
-2  52 4 0 0.5 0.559785527676533
-6  50 4 0
-6  51 9 0
-0
-
-0101000
-+774 0 -776 0 *
-Ve
-2.50882075695827e-005
-28.8725335952688 1.32630037163785 0.698270444283315
-0 0
-
-0101101
-*
-Ed
- 2.50882075695827e-005 1 1 0
-1  24 0 0.25 0.5
-2  53 9 0 0.25 0.5
-2  54 4 0 0.25 0.5
-6  52 4 0
-6  53 9 0
-0
-
-0101000
-+772 0 -774 0 *
-Ve
-0.000310858529441591
-28.8816743505559 1.32524719569586 0.695787439970753
-0 0
-
-0101101
-*
-Ed
- 1.33352690463454e-005 1 1 0
-1  25 0 0 0.25
-2  55 9 0 0 0.25
-2  56 4 0 0 0.25
-6  54 4 0
-6  55 9 0
-0
-
-0101000
-+770 0 -772 0 *
-Ve
-0.000310858529441591
-29.3247602152849 1.2637721186497 0.616147712196046
-0 0
-
-0101101
-*
-Ed
- 0.000310858529441591 1 1 0
-1  26 0 0.8 1
-2  57 10 0 0.8 1
-2  58 4 0 0.8 1
-6  56 4 0
-6  57 10 0
-0
-
-0101000
-+768 0 -770 0 *
-Ve
-0.00030359846857054
-29.6596005386966 1.20962973326461 0.587203699858479
-0 0
-
-0101101
-*
-Ed
- 0.00030359846857054 1 1 0
-1  27 0 0.664667925968128 0.8
-2  59 10 0 0.664667925968128 0.8
-2  60 4 0 0.664667925968128 0.8
-6  58 4 0
-6  59 10 0
-0
-
-0101000
-+766 0 -768 0 *
-Ve
-0.000543660545171738
-29.8455269996093 1.17804865362135 0.580310109048595
-0 0
-
-0101101
-*
-Ed
- 0.000113457989473861 1 1 0
-1  27 0 0.6 0.664667925968128
-2  61 10 0 0.6 0.664667925968128
-2  62 4 0 0.6 0.664667925968128
-6  60 4 0
-6  61 10 0
-0
-
-0101000
-+764 0 -766 0 *
-Ve
-0.000549145049207165
-30.6739009489152 1.02775890829929 0.600825162057539
-0 0
-
-0101101
-*
-Ed
- 0.000543660545171738 1 1 0
-1  28 0 0.550748293513788 0.747780415043284
-2  63 4 0 0.550748293513788 0.747780415043284
-2  64 10 0 0.550748293513788 0.747780415043284
-6  62 4 0
-6  63 10 0
-0
-
-0101000
-+764 0 -762 0 *
-Ve
-0.000549145049207165
-31.4235408023773 0.87387724296965 0.664016100385336
-0 0
-
-0101101
-*
-Ed
- 0.000549145049207165 1 1 0
-1  28 0 0.747780415043284 0.909162471422618
-2  65 4 0 0.747780415043284 0.909162471422618
-2  66 10 0 0.747780415043284 0.909162471422618
-6  64 4 0
-6  65 10 0
-0
-
-0101000
-+762 0 -760 0 *
-Ve
-0.000295252964663728
-31.8489294108679 0.773620907424083 0.713412657138219
-0 0
-
-0101101
-*
-Ed
- 2.52013602035976e-005 1 1 0
-1  29 0 0 0.2
-2  67 10 0 0 0.2
-2  68 4 0 0 0.2
-6  66 4 0
-6  67 10 0
-0
-
-0101000
-+758 0 -760 0 *
-Ve
-9.30047077468168e-007
-32.4183769697902 0.614559651360016 0.818501410646729
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  30 0 1.00922544 1.18410863
-2  69 8 0 1.00922544 1.18410863
-2  70 4 0 1.00922544 1.18410863
-6  68 4 0
-6  69 8 0
-0
-
-0101000
-+756 0 -758 0 *
-Ve
-9.30047077468168e-007
-32.4183769697902 -8.97180042613466e-007 0.221258007919191
-0 0
-
-0101101
-*
-Ed
- 9.30047077444848e-007 1 1 0
-1  31 0 0.5 0.74147334
-2  71 4 0 0.5 0.74147334
-2  72 11 0 0.5 0.74147334
-6  70 11 0
-0
-
-0101000
-+756 0 -754 0 *
-Ed
- 9.30047077054535e-007 1 1 0
-1  32 0 0.25852715 0.5
-2  73 5 0 0.25852715 0.5
-2  74 4 0 0.25852715 0.5
-6  71 5 0
-0
-
-0101000
-+793 0 -754 0 *
-Ve
-7.1676953994016e-005
-31.4590683246425 -0.865913067350121 0.667814429589193
-0 0
-
-0101101
-*
-Ed
- 7.16334450356134e-005 1 1 0
-1  33 0 0.8 1
-2  75 12 0 0.8 1
-2  76 4 0 0.8 1
-6  72 4 0
-6  73 12 0
-0
-
-0101000
-+751 0 -795 0 *
-Ve
-0.000203118230450804
-30.9709464533427 -0.969355678355452 0.622014505277359
-0 0
-
-0101101
-*
-Ed
- 7.1676953994016e-005 1 1 0
-1  34 0 0.668616376685245 0.8
-2  77 12 0 0.668616376685245 0.8
-2  78 4 0 0.668616376685245 0.8
-6  74 4 0
-6  75 12 0
-0
-
-0101000
-+749 0 -751 0 *
-Ve
-0.000372660996934856
-30.6873283611547 -1.02511979891527 0.601757898703286
-0 0
-
-0101101
-*
-Ed
- 0.000203118230450804 1 1 0
-1  35 0 0.5 0.553192694020208
-2  79 4 0 0.5 0.553192694020208
-2  80 12 0 0.5 0.553192694020208
-6  76 4 0
-6  77 12 0
-0
-
-0101000
-+749 0 -747 0 *
-Ve
-0.000587211675335753
-29.851942304157 -1.17686893778625 0.580243846620144
-0 0
-
-0101101
-*
-Ed
- 0.000372660996934856 1 1 0
-1  35 0 0.553192694020208 0.738235102006945
-2  81 4 0 0.553192694020208 0.738235102006945
-2  82 12 0 0.553192694020208 0.738235102006945
-6  78 4 0
-6  79 12 0
-0
-
-0101000
-+747 0 -745 0 *
-Ve
-0.000587211675335753
-29.3706442966486 -1.25655401065864 0.610813509197056
-0 0
-
-0101101
-*
-Ed
- 0.000587211675335753 1 1 0
-1  36 0 0.2 0.4
-2  83 12 0 0.2 0.4
-2  84 4 0 0.2 0.4
-6  80 4 0
-6  81 12 0
-0
-
-0101000
-+743 0 -745 0 *
-Ve
-0.00046636636213224
-28.8816427105544 -1.32519472919337 0.695781195470957
-0 0
-
-0101101
-*
-Ed
- 0.00046636636213224 1 1 0
-1  37 0 0 0.2
-2  85 12 0 0 0.2
-2  86 4 0 0 0.2
-6  82 4 0
-6  83 12 0
-0
-
-0101000
-+741 0 -743 0 *
-Ve
-0.000267837885381065
-28.8725550718222 -1.32623952939231 0.698291248279232
-0 0
-
-0101101
-*
-Ed
- 0.000138881721459616 1 1 0
-1  38 0 0.75 1
-2  87 13 0 0.75 1
-2  88 4 0 0.75 1
-6  84 4 0
-6  85 13 0
-0
-
-0101000
-+739 0 -741 0 *
-Ve
-0.000570159245050719
-28.8636687934679 -1.32720004158036 0.701494707818767
-0 0
-
-0101101
-*
-Ed
- 0.000267837885381065 1 1 0
-1  39 0 0.5 0.75
-2  89 13 0 0.5 0.75
-2  90 4 0 0.5 0.75
-6  86 4 0
-6  87 13 0
-0
-
-0101000
-+737 0 -739 0 *
-Ve
-0.000570159245050719
-28.8043612183713 -1.33211868056499 0.73480034425291
-0 0
-
-0101101
-*
-Ed
- 0.000570159245050719 1 1 0
-1  40 0 0.0901996913858489 0.300346391715297
-2  91 4 0 0.0901996913858489 0.300346391715297
-2  92 13 0 0.0901996913858489 0.300346391715297
-6  88 4 0
-6  89 13 0
-0
-
-0101000
-+737 0 -735 0 *
-Ve
-0.000214422594304552
-28.7690552946818 -1.332935724945 0.766952029562387
-0 0
-
-0101101
-*
-Ed
- 0.000214422594304552 1 1 0
-1  41 0 0.0599516605892503 0.25
-2  93 13 0 0.0599516605892503 0.25
-2  94 4 0 0.0599516605892503 0.25
-6  90 4 0
-6  91 13 0
-0
-
-0101000
-+733 0 -735 0 *
-Ed
- 1.34602676431166e-005 1 1 0
-1  41 0 0 0.0599516605892503
-2  95 13 0 0 0.0599516605892503
-2  96 4 0 0 0.0599516605892503
-6  92 4 0
-6  93 13 0
-0
-
-0101000
-+826 0 -733 0 *
-Wi
-
-0101000
--785 0 +781 0 -779 0 +777 0 +775 0 -773 0 -771 0 -769 0 -767 0 -765 0 
--763 0 +761 0 +759 0 -757 0 -755 0 +753 0 -752 0 -792 0 -750 0 -748 0 
-+746 0 +744 0 -742 0 -740 0 -738 0 -736 0 +734 0 -732 0 -731 0 *
-Fa
-0  1.00000004749745e-010 4 0
-2  4
-0101000
-+730 0 *
-Ve
-1e-007
-25.9893209044264 1.24079115393441 1.41444155318237
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  42 0 0 0.15247929
-2  97 8 0 0 0.15247929
-2  98 7 0 0 0.15247929
-6  94 8 0
-6  95 7 0
-0
-
-0101000
-+782 0 -728 0 *
-Ve
-1e-007
-32.4183773097902 0.208515993143978 1.41444143718236
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  43 0 0 1.18410863
-2  99 8 0 0 1.18410863
-2  100 14 0 0 1.18410863
-6  96 8 0
-6  97 14 0
-0
-
-0101000
-+728 0 -726 0 *
-Ed
- 1e-007 1 1 0
-1  44 0 0.74147334 1
-2  101 11 0 0.74147334 1
-2  102 8 0 0.74147334 1
-6  98 11 0
-0
-
-0101000
-+756 0 -726 0 *
-Ve
-0.00047812981544787
-31.566908625913 0.848924345841429 0.741817258750537
-0 0
-
-0101101
-*
-Ed
- 0.000295252964663728 1 1 0
-1  45 0 0 0.0918409922080835
-2  103 8 0 0 0.0918409922080835
-2  104 15 0 0 0.0918409922080835
-6  99 8 0
-6  100 15 0
-0
-
-0101000
-+758 0 -723 0 *
-Ve
-0.00047812981544787
-31.0591047654668 0.963540691337818 0.812517560127936
-0 0
-
-0101101
-*
-Ed
- 0.00047812981544787 1 1 0
-1  46 0 0.624657200339206 0.8
-2  105 15 0 0.624657200339206 0.8
-2  106 8 0 0.624657200339206 0.8
-6  101 8 0
-6  102 15 0
-0
-
-0101000
-+721 0 -723 0 *
-Ve
-0.000532548037574597
-30.9858099377714 0.977906652997218 0.823001564625002
-0 0
-
-0101101
-*
-Ed
- 8.64474463953074e-005 1 1 0
-1  46 0 0.6 0.624657200339206
-2  107 15 0 0.6 0.624657200339206
-2  108 8 0 0.6 0.624657200339206
-6  103 8 0
-6  104 15 0
-0
-
-0101000
-+719 0 -721 0 *
-Ve
-0.000532548037574597
-30.292182671942 1.09603537854599 0.895836056217416
-0 0
-
-0101101
-*
-Ed
- 0.000532548037574597 1 1 0
-1  47 0 0.413275132100674 0.6
-2  109 15 0 0.413275132100674 0.6
-2  110 8 0 0.413275132100674 0.6
-6  105 8 0
-6  106 15 0
-0
-
-0101000
-+717 0 -719 0 *
-Ve
-0.000168928092025017
-30.2321643814253 1.10541543653031 0.898725539057365
-0 0
-
-0101101
-*
-Ed
- 2.13941574955878e-005 1 1 0
-1  48 0 0.4 0.411315319709357
-2  111 8 0 0.4 0.411315319709357
-2  112 15 0 0.4 0.411315319709357
-6  107 8 0
-6  108 15 0
-0
-
-0101000
-+717 0 -715 0 *
-Ve
-0.000576789278795162
-29.7795341835413 1.17563261596748 0.898584238481708
-0 0
-
-0101101
-*
-Ed
- 0.000168928092025017 1 1 0
-1  48 0 0.411315319709357 0.505596080964352
-2  113 8 0 0.411315319709357 0.505596080964352
-2  114 15 0 0.411315319709357 0.505596080964352
-6  109 8 0
-6  110 15 0
-0
-
-0101000
-+715 0 -713 0 *
-Ve
-0.000576789278795162
-29.1372732207767 1.27324971270094 0.850442714275949
-0 0
-
-0101101
-*
-Ed
- 0.000576789278795162 1 1 0
-1  49 0 0.0568724255241282 0.2
-2  115 15 0 0.0568724255241282 0.2
-2  116 8 0 0.0568724255241282 0.2
-6  111 8 0
-6  112 15 0
-0
-
-0101000
-+711 0 -713 0 *
-Ve
-4.62193081652849e-005
-28.9242454674154 1.3040453060426 0.829974356619852
-0 0
-
-0101101
-*
-Ed
- 4.62193081652849e-005 1 1 0
-1  49 0 0.00938904044701609 0.0568724255241282
-2  117 15 0 0.00938904044701609 0.0568724255241282
-2  118 8 0 0.00938904044701609 0.0568724255241282
-6  113 8 0
-6  114 15 0
-0
-
-0101000
-+709 0 -711 0 *
-Ve
-0.00675683423442464
-28.8816130593029 1.31007156310006 0.825958547744424
-0 0
-
-0101101
-*
-Ed
- 1.11798023171323e-005 1 1 0
-1  50 0 0.8 1
-2  119 8 0 0.8 1
-2  120 15 0 0.8 1
-6  115 8 0
-6  116 15 0
-0
-
-0101000
-+709 0 -707 0 *
-Ve
-0.00675683423442464
-28.8623359158873 1.31301195536472 0.822802590013024
-0 0
-
-0101101
-*
-Ed
- 0.00675683423442464 1 1 0
-1  51 0 0.875 1
-2  121 16 0 0.875 1
-2  122 8 0 0.875 1
-6  117 8 0
-6  118 16 0
-0
-
-0101000
-+705 0 -707 0 *
-Ve
-0.00675682563658273
-28.8499934198436 1.31471501874615 0.821812036463894
-0 0
-
-0101101
-*
-Ed
- 0.00675682563658273 1 1 0
-1  52 0 0.25 0.323304246662853
-2  123 8 0 0.25 0.323304246662853
-2  124 16 0 0.25 0.323304246662853
-6  119 8 0
-6  120 16 0
-0
-
-0101000
-+705 0 -703 0 *
-Ve
-0.00676763946071311
-28.836792424772 1.31659601257406 0.820380770538668
-0 0
-
-0101101
-*
-Ed
- 0.000638531039111068 1 1 0
-1  53 0 0.625 0.75
-2  125 16 0 0.625 0.75
-2  126 8 0 0.625 0.75
-6  121 8 0
-6  122 16 0
-0
-
-0101000
-+701 0 -703 0 *
-Ve
-0.00676763946071311
-28.8192381238403 1.31915032565627 0.818128210046003
-0 0
-
-0101101
-*
-Ed
- 0.00676763946071311 1 1 0
-1  54 0 0.5 0.625
-2  127 16 0 0.5 0.625
-2  128 8 0 0.5 0.625
-6  123 8 0
-6  124 16 0
-0
-
-0101000
-+699 0 -701 0 *
-Ve
-0.00676763755754844
-28.8097933533917 1.3206519092276 0.816139042279523
-0 0
-
-0101101
-*
-Ed
- 0.00676763755754844 1 1 0
-1  55 0 0.5 0.75
-2  129 8 0 0.5 0.75
-2  130 16 0 0.5 0.75
-6  125 8 0
-6  126 16 0
-0
-
-0101000
-+699 0 -697 0 *
-Ve
-0.00197261574848222
-28.7799729704748 1.32585040949468 0.806905170779541
-0 0
-
-0101101
-*
-Ed
- 0.00197261574848222 1 1 0
-1  56 0 0.25 0.375
-2  131 16 0 0.25 0.375
-2  132 8 0 0.25 0.375
-6  127 8 0
-6  128 16 0
-0
-
-0101000
-+695 0 -697 0 *
-Ve
-0.000833228963806015
-28.7718042186219 1.32778267744969 0.80108843131585
-0 0
-
-0101101
-*
-Ed
- 0.000833228963806015 1 1 0
-1  57 0 0.125 0.25
-2  133 16 0 0.125 0.25
-2  134 8 0 0.125 0.25
-6  129 8 0
-6  130 16 0
-0
-
-0101000
-+693 0 -695 0 *
-Ed
- 0.00078269690770633 1 1 0
-1  58 0 0 0.125
-2  135 16 0 0 0.125
-2  136 8 0 0 0.125
-6  131 8 0
-6  132 16 0
-0
-
-0101000
-+780 0 -693 0 *
-Wi
-
-0101000
-+779 0 +727 0 +725 0 -724 0 +755 0 +722 0 -720 0 -718 0 -716 0 +714 0 
-+712 0 -710 0 -708 0 +706 0 -704 0 +702 0 -700 0 -698 0 +696 0 -694 0 
--692 0 -691 0 *
-Fa
-0  1.00000004749745e-010 8 0
-2  8
-0101000
-+690 0 *
-Ve
-0.000406322736235147
-31.5453892345755 -2.84358518024543e-010 1.57010472795097
-0 0
-
-0101101
-*
-Ve
-0.000493639131465062
-30.9280263125 -0.0873089211861623 1.60695769477569
-0 0
-
-0101101
-*
-Ed
- 0.000234850809489711 1 1 0
-1  59 0 0 0.106752595681131
-2  137 6 0 0 0.106752595681131
-2  138 17 0 0 0.106752595681131
-6  133 6 0
-6  134 17 0
-0
-
-0101000
-+688 0 -687 0 *
-Ve
-0.000493639131465062
-30.0394633975859 -0.200907417501252 1.65446187752303
-0 0
-
-0101101
-*
-Ed
- 0.000493639131465062 1 1 0
-1  59 0 0.106752595681131 0.226515723937158
-2  139 6 0 0.106752595681131 0.226515723937158
-2  140 17 0 0.106752595681131 0.226515723937158
-6  135 6 0
-6  136 17 0
-0
-
-0101000
-+687 0 -685 0 *
-Ve
-0.000218973494925436
-29.5198370703048 -0.250491600836839 1.68203176886297
-0 0
-
-0101101
-*
-Ed
- 0.000218973494925436 1 1 0
-1  60 0 0.625 0.75
-2  141 17 0 0.625 0.75
-2  142 6 0 0.625 0.75
-6  137 6 0
-6  138 17 0
-0
-
-0101000
-+683 0 -685 0 *
-Ve
-0.000147829458379564
-29.2028253447147 -0.271838291522898 1.6995424104655
-0 0
-
-0101101
-*
-Ed
- 0.000147829458379564 1 1 0
-1  61 0 0.530339034103805 0.625
-2  143 17 0 0.530339034103805 0.625
-2  144 6 0 0.530339034103805 0.625
-6  139 6 0
-6  140 17 0
-0
-
-0101000
-+681 0 -683 0 *
-Ve
-0.0007348089232453
-29.1292698538506 -0.275729591350411 1.7037141474904
-0 0
-
-0101101
-*
-Ed
- 2.06300213821169e-006 1 1 0
-1  61 0 0.5 0.530339034103805
-2  145 17 0 0.5 0.530339034103805
-2  146 6 0 0.5 0.530339034103805
-6  141 6 0
-6  142 17 0
-0
-
-0101000
-+679 0 -681 0 *
-Ve
-0.000779181429392282
-27.9580998698248 -0.287213545516178 1.7762104150262
-0 0
-
-0101101
-*
-Ed
- 0.0007348089232453 1 1 0
-1  62 0 0.344046308627282 0.493365173226304
-2  147 6 0 0.344046308627282 0.493365173226304
-2  148 17 0 0.344046308627282 0.493365173226304
-6  143 6 0
-6  144 17 0
-0
-
-0101000
-+679 0 -677 0 *
-Ve
-0.000779181429392282
-27.1183300885413 -0.234506035890649 1.83552196484067
-0 0
-
-0101101
-*
-Ed
- 0.000779181429392282 1 1 0
-1  62 0 0.493365173226304 0.602475089373382
-2  149 6 0 0.493365173226304 0.602475089373382
-2  150 17 0 0.493365173226304 0.602475089373382
-6  145 6 0
-6  146 17 0
-0
-
-0101000
-+677 0 -675 0 *
-Ve
-0.00036176301951472
-26.7177243957574 -0.184290307132866 1.86592274115955
-0 0
-
-0101101
-*
-Ed
- 0.00036176301951472 1 1 0
-1  63 0 0.146801354201132 0.25
-2  151 17 0 0.146801354201132 0.25
-2  152 6 0 0.146801354201132 0.25
-6  147 6 0
-6  148 17 0
-0
-
-0101000
-+673 0 -675 0 *
-Ve
-6.16484513862197e-006
-26.6072787699614 -0.166388614178154 1.87446002380946
-0 0
-
-0101101
-*
-Ed
- 6.16484513862197e-006 1 1 0
-1  63 0 0.125 0.146801354201132
-2  153 17 0 0.125 0.146801354201132
-2  154 6 0 0.125 0.146801354201132
-6  149 6 0
-6  150 17 0
-0
-
-0101000
-+671 0 -673 0 *
-Ve
-0.000235623710880232
-26.4173907547587 -0.130843791807996 1.88911937635335
-0 0
-
-0101101
-*
-Ed
- 6.1399234104887e-006 1 1 0
-1  64 0 0 0.125
-2  155 17 0 0 0.125
-2  156 6 0 0 0.125
-6  151 6 0
-6  152 17 0
-0
-
-0101000
-+669 0 -671 0 *
-Ve
-0.000338638483403141
-26.3568970264124 -0.114423615185575 1.89398475508142
-0 0
-
-0101101
-*
-Ed
- 0.000235623710880232 1 1 0
-1  65 0 0 0.11097547291231
-2  157 6 0 0 0.11097547291231
-2  158 18 0 0 0.11097547291231
-6  153 6 0
-6  154 18 0
-0
-
-0101000
-+669 0 -667 0 *
-Ve
-0.000360836450683039
-26.2933957876783 -0.0947700580217579 1.89906779612862
-0 0
-
-0101101
-*
-Ed
- 0.000338638483403141 1 1 0
-1  65 0 0.11097547291231 0.25981235625939
-2  159 6 0 0.11097547291231 0.25981235625939
-2  160 18 0 0.11097547291231 0.25981235625939
-6  155 6 0
-6  156 18 0
-0
-
-0101000
-+667 0 -665 0 *
-Ve
-0.000360836450683039
-26.225945537031 -0.0676881079965739 1.90448562176552
-0 0
-
-0101101
-*
-Ed
- 0.000360836450683039 1 1 0
-1  66 0 0.5 0.66666667
-2  161 18 0 0.5 0.66666667
-2  162 6 0 0.5 0.66666667
-6  157 6 0
-6  158 18 0
-0
-
-0101000
-+663 0 -665 0 *
-Ve
-0.000620680879286653
-26.2028398511069 -0.0548219693764112 1.90636315498107
-0 0
-
-0101101
-*
-Ed
- 9.24987301557052e-005 1 1 0
-1  65 0 0.483275274148006 0.590805291191008
-2  163 6 0 0.483275274148006 0.590805291191008
-2  164 18 0 0.483275274148006 0.590805291191008
-6  159 6 0
-6  160 18 0
-0
-
-0101000
-+663 0 -661 0 *
-Ve
-0.000620680879286653
-26.1715862117354 -0.0280173105944252 1.90892945299891
-0 0
-
-0101101
-*
-Ed
- 0.000620680879286653 1 1 0
-1  67 0 0.16666667 0.33333333
-2  165 18 0 0.16666667 0.33333333
-2  166 6 0 0.16666667 0.33333333
-6  161 6 0
-6  162 18 0
-0
-
-0101000
-+659 0 -661 0 *
-Ve
-0.000579984833656586
-26.1604470425545 1.29120852074267e-009 1.90984293371267
-0 0
-
-0101101
-*
-Ed
- 0.000579984833656586 1 1 0
-1  68 0 0 0.16666667
-2  167 18 0 0 0.16666667
-2  168 6 0 0 0.16666667
-6  163 6 0
-6  164 18 0
-0
-
-0101000
-+657 0 -659 0 *
-Ve
-1e-007
-25.9893209344264 3.4350001633999e-008 1.92052189721989
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  69 0 0 0.08150659
-2  169 6 0 0 0.08150659
-2  170 14 0 0 0.08150659
-6  165 6 0
-6  166 14 0
-0
-
-0101000
-+657 0 -655 0 *
-Ed
- 1e-007 1 1 0
-1  70 0 0.49999967 1
-2  171 6 0 0.49999967 1
-2  172 19 0 0.49999967 1
-6  167 6 0
-6  168 19 0
-0
-
-0101000
-+655 0 -789 0 *
-Ve
-1e-007
-32.4183771497902 -9.50500045162309e-008 1.51294273986092
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  71 0 0 0.50000087
-2  173 20 0 0 0.50000087
-2  174 6 0 0 0.50000087
-6  169 20 0
-0
-
-0101000
-+652 0 -791 0 *
-Ed
- 1e-007 1 1 0
-1  72 0 2.57033879 2.97015674
-2  175 6 0 2.57033879 2.97015674
-2  176 14 0 2.57033879 2.97015674
-6  170 6 0
-6  171 14 0
-0
-
-0101000
-+652 0 -688 0 *
-Wi
-
-0101000
-+686 0 +684 0 -682 0 -680 0 -678 0 +676 0 +674 0 -672 0 -670 0 -668 0 
-+666 0 +664 0 -662 0 +660 0 -658 0 -656 0 +654 0 +653 0 +788 0 -651 0 
-+650 0 *
-Fa
-0  1.00000004749745e-010 6 0
-2  6
-0101000
-+649 0 *
-Ed
- 1e-007 1 1 0
-1  73 0 0.50000087 1
-2  177 14 0 0.50000087 1
-2  178 20 0 0.50000087 1
-6  172 20 0
-0
-
-0101000
-+652 0 -726 0 *
-Ed
- 1e-007 1 1 0
-1  74 0 0 0.49999967
-2  179 19 0 0 0.49999967
-2  180 14 0 0 0.49999967
-6  173 14 0
-6  174 19 0
-0
-
-0101000
-+655 0 -728 0 *
-Ve
-0.000639223826761284
-26.1715471689517 0.0279738538942231 1.9089325016117
-0 0
-
-0101101
-*
-Ed
- 0.000563886030302768 1 1 0
-1  75 0 0.83333333 1
-2  181 21 0 0.83333333 1
-2  182 14 0 0.83333333 1
-6  175 14 0
-6  176 21 0
-0
-
-0101000
-+645 0 -657 0 *
-Ve
-0.000639223826761284
-26.2028087589921 0.0548123556327908 1.9063653740577
-0 0
-
-0101101
-*
-Ed
- 0.000639223826761284 1 1 0
-1  76 0 0.66666667 0.83333333
-2  183 21 0 0.66666667 0.83333333
-2  184 14 0 0.66666667 0.83333333
-6  177 14 0
-6  178 21 0
-0
-
-0101000
-+643 0 -645 0 *
-Ve
-0.000329412730386217
-26.2326379467513 0.0709475047871804 1.90394341438878
-0 0
-
-0101101
-*
-Ed
- 0.000161555653969616 1 1 0
-1  77 0 0.409120244843595 0.543968604417467
-2  185 14 0 0.409120244843595 0.543968604417467
-2  186 21 0 0.409120244843595 0.543968604417467
-6  179 14 0
-6  180 21 0
-0
-
-0101000
-+643 0 -641 0 *
-Ve
-0.000343259380517848
-26.2947290518789 0.0952205365879649 1.89896106160379
-0 0
-
-0101101
-*
-Ed
- 0.000329412730386217 1 1 0
-1  78 0 0.33333333 0.5
-2  187 21 0 0.33333333 0.5
-2  188 14 0 0.33333333 0.5
-6  181 14 0
-6  182 21 0
-0
-
-0101000
-+639 0 -641 0 *
-Ve
-0.000343259380517848
-26.3562983810869 0.114252097615382 1.89403270786429
-0 0
-
-0101101
-*
-Ed
- 0.000343259380517848 1 1 0
-1  77 0 0.743934327122079 0.887898366733494
-2  189 14 0 0.743934327122079 0.887898366733494
-2  190 21 0 0.743934327122079 0.887898366733494
-6  183 14 0
-6  184 21 0
-0
-
-0101000
-+639 0 -637 0 *
-Ve
-0.00024102979908179
-26.4173906772587 0.130843789250621 1.88911927247835
-0 0
-
-0101101
-*
-Ed
- 0.00024102979908179 1 1 0
-1  77 0 0.887898366733494 1
-2  191 14 0 0.887898366733494 1
-2  192 21 0 0.887898366733494 1
-6  185 14 0
-6  186 21 0
-0
-
-0101000
-+637 0 -635 0 *
-Ve
-6.2050020514863e-006
-26.6072800710749 0.166388895327828 1.87445963020711
-0 0
-
-0101101
-*
-Ed
- 6.2050020514863e-006 1 1 0
-1  79 0 0.875 1
-2  193 22 0 0.875 1
-2  194 14 0 0.875 1
-6  187 14 0
-6  188 22 0
-0
-
-0101000
-+633 0 -635 0 *
-Ve
-0.00034962808757274
-26.717724389624 0.184290379536009 1.86592236141589
-0 0
-
-0101101
-*
-Ed
- 6.18003433079044e-006 1 1 0
-1  80 0 0.849766973181494 0.875
-2  195 22 0 0.849766973181494 0.875
-2  196 14 0 0.849766973181494 0.875
-6  189 14 0
-6  190 22 0
-0
-
-0101000
-+631 0 -633 0 *
-Ve
-0.000620620776339937
-27.0541544954677 0.227810155714067 1.84031084674953
-0 0
-
-0101101
-*
-Ed
- 0.00034962808757274 1 1 0
-1  80 0 0.75 0.849766973181494
-2  197 22 0 0.75 0.849766973181494
-2  198 14 0 0.75 0.849766973181494
-6  191 14 0
-6  192 22 0
-0
-
-0101000
-+629 0 -631 0 *
-Ve
-0.000796063359140315
-27.5696395674809 0.269948992087055 1.8028810686892
-0 0
-
-0101101
-*
-Ed
- 0.000620620776339937 1 1 0
-1  81 0 0.388108130442962 0.458397371248378
-2  199 14 0 0.388108130442962 0.458397371248378
-2  200 22 0 0.388108130442962 0.458397371248378
-6  193 14 0
-6  194 22 0
-0
-
-0101000
-+629 0 -627 0 *
-Ve
-0.000796063359140315
-28.7384764405596 0.28999596408343 1.72661155909216
-0 0
-
-0101101
-*
-Ed
- 0.000796063359140315 1 1 0
-1  81 0 0.458397371248378 0.603008108383431
-2  201 14 0 0.458397371248378 0.603008108383431
-2  202 22 0 0.458397371248378 0.603008108383431
-6  195 14 0
-6  196 22 0
-0
-
-0101000
-+627 0 -625 0 *
-Ve
-0.000133863283787955
-29.2028255741547 0.27183817160682 1.69954302339893
-0 0
-
-0101101
-*
-Ed
- 5.22026838853199e-005 1 1 0
-1  81 0 0.603008108383431 0.66666667
-2  203 14 0 0.603008108383431 0.66666667
-2  204 22 0 0.603008108383431 0.66666667
-6  197 14 0
-6  198 22 0
-0
-
-0101000
-+625 0 -623 0 *
-Ve
-0.000155093741312122
-29.4547613552504 0.255473155076532 1.68556831110325
-0 0
-
-0101101
-*
-Ed
- 0.000133863283787955 1 1 0
-1  82 0 0.375 0.41045693926711
-2  205 22 0 0.375 0.41045693926711
-2  206 14 0 0.375 0.41045693926711
-6  199 14 0
-6  200 22 0
-0
-
-0101000
-+621 0 -623 0 *
-Ve
-0.000455119030061277
-29.9096528327914 0.214788315729654 1.66127598524551
-0 0
-
-0101101
-*
-Ed
- 0.000155093741312122 1 1 0
-1  83 0 0.25 0.375
-2  207 22 0 0.25 0.375
-2  208 14 0 0.25 0.375
-6  201 14 0
-6  202 22 0
-0
-
-0101000
-+619 0 -621 0 *
-Ve
-0.000455119030061277
-30.6808170131304 0.121342621013034 1.6205390678069
-0 0
-
-0101101
-*
-Ed
- 0.000455119030061277 1 1 0
-1  84 0 0.757022074411284 0.857833183419821
-2  209 14 0 0.757022074411284 0.857833183419821
-2  210 22 0 0.757022074411284 0.857833183419821
-6  203 14 0
-6  204 22 0
-0
-
-0101000
-+619 0 -617 0 *
-Ed
- 0.000406322736235147 1 1 0
-1  84 0 0.857833183419821 1
-2  211 14 0 0.857833183419821 1
-2  212 22 0 0.857833183419821 1
-6  205 14 0
-6  206 22 0
-0
-
-0101000
-+617 0 -688 0 *
-Wi
-
-0101000
--650 0 +647 0 -725 0 -646 0 -654 0 -644 0 -642 0 +640 0 -638 0 +636 0 
-+634 0 -632 0 -630 0 -628 0 +626 0 +624 0 +622 0 -620 0 -618 0 +616 0 
-+615 0 *
-Fa
-0  1.00000004749745e-010 14 0
-2  14
-0101000
-+614 0 *
-Ve
-1e-007
-32.0208866309104 -6.53046184918028 1.31476716144809
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  85 0 0 55.21292144
-2  213 13 0 0 55.21292144
-2  214 12 0 0 55.21292144
-6  207 13 0
-6  208 12 0
-0
-
-0101000
-+741 0 -612 0 *
-Ve
-1e-007
-31.9768135388171 -6.52772034505006 1.34215900474913
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  86 0 0 1
-2  215 13 0 0 1
-2  216 23 0 0 1
-6  209 13 0
-6  210 23 0
-0
-
-0101000
-+612 0 -610 0 *
-Ed
- 1e-007 1 1 0
-1  87 0 0 55.31736968
-2  217 13 0 0 55.31736968
-2  218 2 0 0 55.31736968
-6  211 13 0
-6  212 2 0
-0
-
-0101000
-+610 0 -826 0 *
-Wi
-
-0101000
-+611 0 +609 0 +608 0 +731 0 +732 0 -734 0 +736 0 +738 0 *
-Fa
-0  1.00000004749745e-010 13 0
-2  13
-0101000
-+607 0 *
-Ve
-1e-007
-32.0213115109306 -6.52591981196454 1.3601615736042
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  88 0 0 1
-2  219 2 0 0 1
-2  220 23 0 0 1
-6  213 2 0
-6  214 23 0
-0
-
-0101000
-+610 0 -605 0 *
-Ed
- 1e-007 1 1 0
-1  89 0 0 2.52492265
-2  221 2 0 0 2.52492265
-2  222 3 0 0 2.52492265
-6  215 2 0
-6  216 3 0
-0
-
-0101000
-+605 0 -811 0 *
-Wi
-
-0101000
--608 0 +604 0 +603 0 -810 0 +812 0 -814 0 +816 0 -818 0 +820 0 -822 0 
--824 0 *
-Fa
-0  1.00000004749745e-010 2 0
-2  2
-0101000
-+602 0 *
-Ve
-1e-007
-33.0949317119248 -6.52779751805373 1.34157750972151
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  90 0 0 1
-2  223 23 0 0 1
-2  224 12 0 0 1
-6  217 23 0
-6  218 12 0
-0
-
-0101000
-+612 0 -600 0 *
-Ed
- 1e-007 1 1 0
-1  91 0 0 1
-2  225 23 0 0 1
-2  226 3 0 0 1
-6  219 23 0
-6  220 3 0
-0
-
-0101000
-+600 0 -605 0 *
-Wi
-
-0101000
--604 0 -609 0 +599 0 +598 0 *
-Fa
-0  1.00000004749745e-010 23 0
-2  23
-0101000
-+597 0 *
-Ed
- 1e-007 1 1 0
-1  92 0 0.29266018 3.01761452
-2  227 12 0 0.29266018 3.01761452
-2  228 3 0 0.29266018 3.01761452
-6  221 12 0
-6  222 3 0
-0
-
-0101000
-+795 0 -600 0 *
-Wi
-
-0101000
-+595 0 -599 0 -611 0 +740 0 +742 0 -744 0 -746 0 +748 0 +750 0 *
-Fa
-0  1.00000004749745e-010 12 0
-2  12
-0101000
-+594 0 *
-Wi
-
-0101000
--603 0 -598 0 -595 0 +794 0 +796 0 -798 0 +800 0 -802 0 -804 0 +806 0 
-+808 0 *
-Fa
-0  1.00000004749745e-010 3 0
-2  3
-0101000
-+592 0 *
-Ve
-5.11283104458342e-006
-33.1092560926052 5.44269516439137e-020 7.84503997861939
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  93 0 0 1.95653393
-2  229 17 0 0 1.95653393
-2  230 22 0 0 1.95653393
-6  223 17 0
-6  224 22 0
-0
-
-0101000
-+688 0 -590 0 *
-Ve
-5.11283104458342e-006
-31.3042272068709 -0.045332982233201 7.84504008261939
-0 0
-
-0101101
-*
-Ed
- 5.11283104226281e-006 1 1 0
-1  94 0 0 1
-2  231 17 0 0 1
-2  232 24 0 0 1
-6  225 24 0
-0
-
-0101000
-+590 0 -588 0 *
-Ed
- 1e-007 1 1 0
-1  95 0 0.07121022 2.01729017
-2  233 17 0 0.07121022 2.01729017
-2  234 18 0 0.07121022 2.01729017
-6  226 17 0
-6  227 18 0
-0
-
-0101000
-+588 0 -669 0 *
-Wi
-
-0101000
-+589 0 +587 0 +586 0 +668 0 +670 0 +672 0 -674 0 -676 0 +678 0 +680 0 
-+682 0 -684 0 -686 0 *
-Fa
-0  1.00000004749745e-010 17 0
-2  17
-0101000
-+585 0 *
-Ve
-6.28653214944452e-007
-31.209191012357 0 7.84504046261941
-0 0
-
-0101101
-*
-Ed
- 5.04402815964653e-007 1 1 0
-1  96 0 0 1
-2  235 18 0 0 1
-2  236 24 0 0 1
-6  228 18 0
-6  229 24 0
-0
-
-0101000
-+588 0 -583 0 *
-Ed
- 1e-007 1 1 0
-1  97 0 1.37499288 38.1919507
-2  237 18 0 1.37499288 38.1919507
-2  238 21 0 1.37499288 38.1919507
-6  230 18 0
-6  231 21 0
-0
-
-0101000
-+583 0 -657 0 *
-Wi
-
-0101000
-+656 0 +658 0 -660 0 +662 0 -664 0 -666 0 -586 0 +582 0 +581 0 *
-Fa
-0  1.00000004749745e-010 18 0
-2  18
-0101000
-+580 0 *
-Ve
-4.99120321925908e-006
-31.3042272068709 0.045332982233201 7.84504008261939
-0 0
-
-0101101
-*
-Ed
- 4.99120321727719e-006 1 1 0
-1  98 0 0 1
-2  239 24 0 0 1
-2  240 22 0 0 1
-6  232 24 0
-6  233 22 0
-0
-
-0101000
-+590 0 -578 0 *
-Ed
- 6.28653213983484e-007 1 1 0
-1  99 0 0 1
-2  241 24 0 0 1
-2  242 21 0 0 1
-6  234 24 0
-6  235 21 0
-0
-
-0101000
-+578 0 -583 0 *
-Wi
-
-0101000
--582 0 -587 0 +577 0 +576 0 *
-Fa
-0  1.00000004749745e-010 24 0
-2  24
-0101000
-+575 0 *
-Ed
- 1e-007 1 1 0
-1  100 0 1.34817287 38.1919507
-2  243 22 0 1.34817287 38.1919507
-2  244 21 0 1.34817287 38.1919507
-6  236 22 0
-6  237 21 0
-0
-
-0101000
-+635 0 -578 0 *
-Wi
-
-0101000
-+573 0 -577 0 -589 0 -615 0 -616 0 +618 0 +620 0 -622 0 -624 0 -626 0 
-+628 0 +630 0 +632 0 *
-Fa
-0  1.00000004749745e-010 22 0
-2  22
-0101000
-+572 0 *
-Wi
-
-0101000
--634 0 -636 0 +638 0 -640 0 +642 0 +644 0 -581 0 -576 0 -573 0 *
-Fa
-0  1.00000004749745e-010 21 0
-2  21
-0101000
-+570 0 *
-Ve
-1e-007
-20.1549001573063 1.36866520500811 1.41444156718237
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  101 0 0 1
-2  245 7 0 0 1
-2  246 19 0 0 1
-6  238 19 0
-0
-
-0101000
-+568 0 -728 0 *
-Ve
-1e-007
-20.1549001573063 -1.3686672230082 1.41444126018235
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  102 0 0 1
-2  247 7 0 0 1
-2  248 19 0 0 1
-6  239 19 0
-0
-
-0101000
-+789 0 -566 0 *
-Ve
-1e-007
-20.1549001573063 -1.6722750014288 -1.30306872289244
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  103 0 1.20676907 1.78417229
-2  249 25 0 1.20676907 1.78417229
-2  250 7 0 1.20676907 1.78417229
-6  240 7 0
-6  241 25 0
-0
-
-0101000
-+564 0 -566 0 *
-Ve
-1e-007
-20.1549001573063 1.67227319742871 -1.30306890389245
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  104 0 0.57740334 1.20676907
-2  251 7 0 0.57740334 1.20676907
-2  252 26 0 0.57740334 1.20676907
-6  242 7 0
-6  243 26 0
-0
-
-0101000
-+564 0 -562 0 *
-Ed
- 1e-007 1 1 0
-1  105 0 0 0.57740334
-2  253 27 0 0 0.57740334
-2  254 7 0 0 0.57740334
-6  244 7 0
-6  245 27 0
-0
-
-0101000
-+568 0 -562 0 *
-Wi
-
-0101000
-+567 0 -727 0 -781 0 -786 0 +565 0 -563 0 +561 0 -560 0 *
-Fa
-0  1.00000004749745e-010 7 0
-2  7
-0101000
-+559 0 *
-Ve
-9.19500043569285e-007
-1.31958620130198 0.845840769945279 -1.40924429193551
-0 0
-
-0101101
-*
-Ve
-7.63760340204839e-007
-1.31958609667697 1.13939655511843 -0.618156123250839
-0 0
-
-0101101
-*
-Ed
- 7.63760340204839e-007 1 1 0
-1  106 0 0 1
-2  255 28 0 0 1
-2  256 29 0 0 1
-6  246 28 0
-6  247 29 0
-0
-
-0101000
-+557 0 -556 0 *
-Ve
-1e-007
-2.42419264614297 1.16954252255029 0.134080451298479
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  107 0 0 1
-2  257 28 0 0 1
-2  258 30 0 0 1
-6  248 28 0
-6  249 30 0
-0
-
-0101000
-+556 0 -554 0 *
-Ve
-4.94097974318148e-006
-2.34964929660235 1.04896390382311 -1.40924429193551
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  108 0 0 1
-2  259 28 0 0 1
-2  260 31 0 0 1
-6  250 28 0
-6  251 31 0
-0
-
-0101000
-+554 0 -552 0 *
-Ed
- 9.19500043439214e-007 1 1 0
-1  109 0 0 0.5
-2  261 28 0 0 0.5
-2  262 32 0 0 0.5
-6  252 28 0
-6  253 32 0
-0
-
-0101000
-+552 0 -557 0 *
-Wi
-
-0101000
-+555 0 +553 0 +551 0 +550 0 *
-Fa
-0  1.00000004749745e-010 28 0
-2  28
-0101000
-+549 0 *
-Ve
-9.19500043569285e-007
--5.85000029206485e-009 -1.82839863052382e-018 -0.750000037063089
-0 0
-
-0101101
-*
-Ed
- 9.19500043439214e-007 1 1 0
-1  110 0 0 1.48870447
-2  263 29 0 0 1.48870447
-2  264 33 0 0 1.48870447
-6  254 29 0
-6  255 33 0
-0
-
-0101000
-+557 0 -547 0 *
-Ed
- 9.19500043569285e-007 0 0 1
-2  265 29 0 0 1
-6  256 29 0
-0
-
-0101000
-+547 0 -547 0 *
-Ve
-7.63736802976027e-007
-1.31958587667696 0.752125697664052 0.131521655936943
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  111 0 0 1.82687438
-2  266 29 0 0 1.82687438
-2  267 34 0 0 1.82687438
-6  257 29 0
-6  258 34 0
-0
-
-0101000
-+547 0 -544 0 *
-Ed
- 7.63736802976027e-007 1 1 0
-1  112 0 0 1
-2  268 30 0 0 1
-2  269 29 0 0 1
-6  259 30 0
-0
-
-0101000
-+556 0 -544 0 *
-Wi
-
-0101000
-+546 0 +545 0 +543 0 -542 0 -555 0 *
-Fa
-0  1.00000004749745e-010 29 0
-2  29
-0101000
-+541 0 *
-Ve
-8.88000042498227e-007
-1.31958590267696 -0.845840762795279 -1.40924429893551
-0 0
-
-0101101
-*
-Ed
- 8.88000042498227e-007 1 1 0
-1  113 0 0 1.61807207
-2  270 33 0 0 1.61807207
-2  271 35 0 0 1.61807207
-6  260 33 0
-6  261 35 0
-0
-
-0101000
-+539 0 -547 0 *
-Ed
- 8.88000042323176e-007 0 0 1
-2  272 33 0 0 1
-6  262 33 0
-0
-
-0101000
-+547 0 -547 0 *
-Ed
- 1e-007 1 1 0
-1  114 0 0 1
-2  273 32 0 0 1
-2  274 33 0 0 1
-6  263 33 0
-6  264 32 0
-0
-
-0101000
-+539 0 -557 0 *
-Wi
-
-0101000
-+538 0 +537 0 -546 0 -536 0 *
-Fa
-0  1.00000004749745e-010 33 0
-2  33
-0101000
-+535 0 *
-Ed
- 1.45544116318782e-009 0 0 1
-2  275 35 0 0 1
-6  265 35 0
-0
-
-0101000
-+547 0 -547 0 *
-Ve
-7.63687361372285e-007
-1.31958607367697 -1.13939655511843 -0.618156128230839
-0 0
-
-0101101
-*
-Ed
- 7.63687361372285e-007 1 1 0
-1  115 0 0 1
-2  276 36 0 0 1
-2  277 35 0 0 1
-6  266 35 0
-6  267 36 0
-0
-
-0101000
-+532 0 -539 0 *
-Ve
-7.63268920665479e-007
-1.31958587667696 -0.752125697664052 0.131521655936943
-0 0
-
-0101101
-*
-Ed
- 7.63268920665479e-007 1 1 0
-1  116 0 0 1
-2  278 37 0 0 1
-2  279 35 0 0 1
-6  268 37 0
-0
-
-0101000
-+530 0 -532 0 *
-Ed
- 1e-007 1 1 0
-1  117 0 0 1.82687438
-2  280 35 0 0 1.82687438
-2  281 34 0 0 1.82687438
-6  269 35 0
-6  270 34 0
-0
-
-0101000
-+530 0 -547 0 *
-Wi
-
-0101000
-+533 0 -538 0 -531 0 -529 0 +528 0 *
-Fa
-0  1.00000004749745e-010 35 0
-2  35
-0101000
-+527 0 *
-Ve
-1e-007
-2.00023807100621 -0.163958005517587 0.96768671484265
-0 0
-
-0101101
-*
-Ve
-1e-007
-1.31958583467696 -0.168220024938772 0.347343154078914
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  118 0 2.78088653 5.56177307
-2  282 38 0 2.78088653 5.56177307
-2  283 39 0 2.78088653 5.56177307
-6  271 38 0
-6  272 39 0
-0
-
-0101000
-+525 0 -524 0 *
-Ve
-2.68980978600398e-007
-1.31958586442696 -0.472656103864459 0.273205851457581
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  119 0 0.60294418 0.79736362
-2  284 34 0 0.60294418 0.79736362
-2  285 38 0 0.60294418 0.79736362
-6  273 38 0
-6  274 34 0
-0
-
-0101000
-+522 0 -524 0 *
-Ve
-1e-007
-2.42413693614032 -1.16967838155674 0.134100623219438
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  120 0 0 1
-2  286 38 0 0 1
-2  287 37 0 0 1
-6  275 38 0
-6  276 37 0
-0
-
-0101000
-+522 0 -520 0 *
-Ed
- 1e-007 1 1 0
-1  121 0 0 1
-2  288 38 0 0 1
-2  289 40 0 0 1
-6  277 38 0
-6  278 40 0
-0
-
-0101000
-+520 0 -525 0 *
-Wi
-
-0101000
-+523 0 -521 0 +519 0 +518 0 *
-Fa
-0  1.00000004749745e-010 38 0
-2  38
-0101000
-+517 0 *
-Ed
- 2.68980978600398e-007 1 1 0
-1  122 0 0.5 1
-2  290 37 0 0.5 1
-2  291 34 0 0.5 1
-6  279 37 0
-6  280 34 0
-0
-
-0101000
-+522 0 -530 0 *
-Ed
- 1e-007 1 1 0
-1  123 0 0 1
-2  292 37 0 0 1
-2  293 36 0 0 1
-6  281 37 0
-6  282 36 0
-0
-
-0101000
-+532 0 -520 0 *
-Wi
-
-0101000
-+515 0 +529 0 +514 0 -519 0 *
-Fa
-0  1.00000004749745e-010 37 0
-2  37
-0101000
-+513 0 *
-Ve
-8.88000042498227e-007
-2.34964929660235 -1.04896389482311 -1.40924429993551
-0 0
-
-0101101
-*
-Ed
- 8.88000042498227e-007 1 1 0
-1  124 0 0 0.5
-2  294 36 0 0 0.5
-2  295 32 0 0 0.5
-6  283 36 0
-6  284 32 0
-0
-
-0101000
-+539 0 -511 0 *
-Ed
- 1e-007 1 1 0
-1  125 0 0 1
-2  296 41 0 0 1
-2  297 36 0 0 1
-6  285 36 0
-6  286 41 0
-0
-
-0101000
-+520 0 -511 0 *
-Wi
-
-0101000
--514 0 +531 0 +510 0 -509 0 *
-Fa
-0  1.00000004749745e-010 36 0
-2  36
-0101000
-+508 0 *
-Ve
-2.25704336145478e-006
-3.38400016073138 -1.63898554684763 0.123910676095441
-0 0
-
-0101101
-*
-Ve
-1.61924769677972e-007
-3.38400016073138 -0.713493162199105 1.41444133318236
-0 0
-
-0101101
-*
-Ed
- 1.61924769677972e-007 1 1 0
-1  126 0 0 1
-2  298 42 0 0 1
-2  299 43 0 0 1
-6  287 42 0
-6  288 43 0
-0
-
-0101000
-+506 0 -505 0 *
-Ve
-1e-007
-3.07361411498883 -0.462644191244419 1.41444136118236
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  127 0 0.5 1
-2  300 42 0 0.5 1
-2  301 44 0 0.5 1
-6  289 42 0
-6  290 44 0
-0
-
-0101000
-+505 0 -503 0 *
-Ed
- 1e-007 1 1 0
-1  128 0 0 1
-2  302 42 0 0 1
-2  303 40 0 0 1
-6  291 42 0
-6  292 40 0
-0
-
-0101000
-+503 0 -520 0 *
-Ed
- 1e-007 1 1 0
-1  129 0 0 1
-2  304 42 0 0 1
-2  305 41 0 0 1
-6  293 42 0
-6  294 41 0
-0
-
-0101000
-+520 0 -506 0 *
-Wi
-
-0101000
-+504 0 +502 0 +501 0 +500 0 *
-Fa
-0  1.00000004749745e-010 42 0
-2  42
-0101000
-+499 0 *
-Ve
-5.95967384397283e-006
-3.38400016073138 -1.22492845218098 -1.40924430093551
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  130 0 0.5 1
-2  306 41 0 0.5 1
-2  307 32 0 0.5 1
-6  295 41 0
-6  296 32 0
-0
-
-0101000
-+511 0 -497 0 *
-Ed
- 2.25704336086686e-006 1 1 0
-1  131 0 0.5 1
-2  308 41 0 0.5 1
-2  309 43 0 0.5 1
-6  297 41 0
-6  298 43 0
-0
-
-0101000
-+497 0 -506 0 *
-Wi
-
-0101000
-+496 0 +495 0 -500 0 +509 0 *
-Fa
-0  1.00000004749745e-010 41 0
-2  41
-0101000
-+494 0 *
-Ve
-2.64421383329246e-007
-1.31958584867696 0.472656070609958 0.273205863752832
-0 0
-
-0101101
-*
-Ve
-2.42292873002268e-007
-1.31958583467696 0.168219953165144 0.347343163005289
-0 0
-
-0101101
-*
-Ed
- 2.42292873002268e-007 1 1 0
-1  132 0 0 0.5
-2  310 45 0 0 0.5
-2  311 34 0 0 0.5
-6  299 45 0
-0
-
-0101000
-+492 0 -491 0 *
-Ed
- 2.64421383329246e-007 1 1 0
-1  133 0 0.5 1
-2  312 30 0 0.5 1
-2  313 34 0 0.5 1
-6  300 34 0
-6  301 30 0
-0
-
-0101000
-+544 0 -492 0 *
-Ed
- 4.11593625770002e-010 0 0 1
-2  314 34 0 0 1
-6  302 34 0
-0
-
-0101000
-+547 0 -547 0 *
-Ed
- 1e-007 1 1 0
-1  134 0 0 1
-2  315 34 0 0 1
-2  316 39 0 0 1
-6  303 34 0
-6  304 39 0
-0
-
-0101000
-+524 0 -491 0 *
-Wi
-
-0101000
--490 0 -489 0 -543 0 +488 0 -528 0 -515 0 +521 0 +487 0 *
-Fa
-0  1.00000004749745e-010 34 0
-2  34
-0101000
-+486 0 *
-Ed
- 1e-007 1 1 0
-1  135 0 0 1
-2  317 30 0 0 1
-2  318 45 0 0 1
-6  305 30 0
-6  306 45 0
-0
-
-0101000
-+492 0 -554 0 *
-Wi
-
-0101000
-+542 0 +489 0 +484 0 -553 0 *
-Fa
-0  1.00000004749745e-010 30 0
-2  30
-0101000
-+483 0 *
-Ve
-1e-007
-2.00023808900621 0.163957938237584 0.967686749742652
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  136 0 0 2.78088653
-2  319 45 0 0 2.78088653
-2  320 39 0 0 2.78088653
-6  307 45 0
-6  308 39 0
-0
-
-0101000
-+491 0 -481 0 *
-Ed
- 1e-007 1 1 0
-1  137 0 0 1
-2  321 45 0 0 1
-2  322 46 0 0 1
-6  309 45 0
-6  310 46 0
-0
-
-0101000
-+481 0 -554 0 *
-Wi
-
-0101000
-+490 0 +480 0 +479 0 -484 0 *
-Fa
-0  1.00000004749745e-010 45 0
-2  45
-0101000
-+478 0 *
-Ve
-1e-007
-2.8066391803082 0.164126150055573 1.41444143218236
-0 0
-
-0101101
-*
-Ve
-1e-007
-3.07361414598883 0.46264399884441 1.41444146518236
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  138 0 0.5 1
-2  323 46 0 0.5 1
-2  324 44 0 0.5 1
-6  311 46 0
-6  312 44 0
-0
-
-0101000
-+476 0 -475 0 *
-Ed
- 1e-007 1 1 0
-1  139 0 0 1
-2  325 46 0 0 1
-2  326 47 0 0 1
-6  313 46 0
-6  314 47 0
-0
-
-0101000
-+475 0 -554 0 *
-Ed
- 1e-007 1 1 0
-1  140 0 2.78088653 5.56177307
-2  327 46 0 2.78088653 5.56177307
-2  328 39 0 2.78088653 5.56177307
-6  315 46 0
-6  316 39 0
-0
-
-0101000
-+481 0 -476 0 *
-Wi
-
-0101000
-+474 0 +473 0 -479 0 +472 0 *
-Fa
-0  1.00000004749745e-010 46 0
-2  46
-0101000
-+471 0 *
-Ve
-1e-007
-2.8066391593082 -0.164126217435577 1.41444139518236
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  141 0 0 2.78088653
-2  329 39 0 0 2.78088653
-2  330 40 0 0 2.78088653
-6  317 40 0
-0
-
-0101000
-+525 0 -469 0 *
-Ed
- 1e-007 1 1 0
-1  142 0 0 1.66079697
-2  331 39 0 0 1.66079697
-2  332 44 0 0 1.66079697
-6  318 39 0
-6  319 44 0
-0
-
-0101000
-+469 0 -476 0 *
-Wi
-
-0101000
-+468 0 +467 0 -472 0 -480 0 -487 0 -523 0 *
-Fa
-0  1.00000004749745e-010 39 0
-2  39
-0101000
-+466 0 *
-Ed
- 1e-007 1 1 0
-1  143 0 0 0.5
-2  333 40 0 0 0.5
-2  334 44 0 0 0.5
-6  320 40 0
-6  321 44 0
-0
-
-0101000
-+503 0 -469 0 *
-Wi
-
-0101000
-+464 0 -468 0 -518 0 -501 0 *
-Fa
-0  1.00000004749745e-010 40 0
-2  40
-0101000
-+463 0 *
-Ve
-2.43678460712111e-006
-3.38400016073138 0.713492872779091 1.41444149318236
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  144 0 0 1.55787992
-2  335 44 0 0 1.55787992
-2  336 48 0 0 1.55787992
-6  322 44 0
-6  323 48 0
-0
-
-0101000
-+505 0 -461 0 *
-Ed
- 1e-007 1 1 0
-1  145 0 0 0.5
-2  337 44 0 0 0.5
-2  338 47 0 0 0.5
-6  324 44 0
-6  325 47 0
-0
-
-0101000
-+461 0 -475 0 *
-Wi
-
-0101000
--464 0 -502 0 +460 0 +459 0 -474 0 -467 0 *
-Fa
-0  1.00000004749745e-010 44 0
-2  44
-0101000
-+458 0 *
-Ve
-1e-007
-4.85761506672432 -1.22947768939705 1.41444127518235
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  146 0 0 1
-2  339 48 0 0 1
-2  340 43 0 0 1
-6  326 48 0
-6  327 43 0
-0
-
-0101000
-+505 0 -456 0 *
-Ve
-1e-007
-4.85761506672432 1.22947738839704 1.41444155118237
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  147 0 0 2.03028442
-2  341 48 0 0 2.03028442
-2  342 49 0 0 2.03028442
-6  328 48 0
-6  329 49 0
-0
-
-0101000
-+456 0 -454 0 *
-Ed
- 1e-007 1 1 0
-1  148 0 0 1
-2  343 48 0 0 1
-2  344 50 0 0 1
-6  330 48 0
-6  331 50 0
-0
-
-0101000
-+454 0 -461 0 *
-Wi
-
-0101000
-+455 0 +453 0 +452 0 -460 0 *
-Fa
-0  1.00000004749745e-010 48 0
-2  48
-0101000
-+451 0 *
-Ve
-1e-007
-6.35000030160882 1.34685307097208 1.41444156518237
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  149 0 0 1
-2  345 50 0 0 1
-2  346 49 0 0 1
-6  332 49 0
-6  333 50 0
-0
-
-0101000
-+454 0 -449 0 *
-Ve
-1.42854274204421e-006
-6.35000030160882 -1.3468533929721 1.41444126218235
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  150 0 0 1
-2  347 49 0 0 1
-2  348 43 0 0 1
-6  334 49 0
-6  335 43 0
-0
-
-0101000
-+456 0 -447 0 *
-Ed
- 1e-007 1 1 0
-1  151 0 0 3.67726025
-2  349 49 0 0 3.67726025
-2  350 51 0 0 3.67726025
-6  336 49 0
-6  337 51 0
-0
-
-0101000
-+447 0 -449 0 *
-Wi
-
-0101000
--448 0 -453 0 +446 0 +445 0 *
-Fa
-0  1.00000004749745e-010 49 0
-2  49
-0101000
-+444 0 *
-Ve
-1.42854274204421e-006
-6.35000030160882 -1.56406656428917 -1.43766213928528
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  152 0 0 1
-2  351 43 0 0 1
-2  352 52 0 0 1
-6  338 43 0
-6  339 52 0
-0
-
-0101000
-+497 0 -442 0 *
-Ed
- 1.42854274077344e-006 1 1 0
-1  153 0 7.7471244 11.44318406
-2  353 43 0 7.7471244 11.44318406
-2  354 53 0 7.7471244 11.44318406
-6  340 43 0
-6  341 53 0
-0
-
-0101000
-+442 0 -447 0 *
-Wi
-
-0101000
--446 0 -455 0 -504 0 -495 0 +441 0 +440 0 *
-Fa
-0  1.00000004749745e-010 43 0
-2  43
-0101000
-+439 0 *
-Ve
-5.95967384397283e-006
-3.38400016073138 1.22492955611853 -1.40924522574805
-0 0
-
-0101101
-*
-Ed
- 5.95967384334809e-006 1 1 0
-1  154 0 0 1.10976049
-2  355 32 0 0 1.10976049
-2  356 52 0 0 1.10976049
-6  342 52 0
-6  343 32 0
-0
-
-0101000
-+437 0 -497 0 *
-Ve
-4.94572537741857e-007
-6.35000030160882 1.56406643828917 -1.43766224628529
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  155 0 0 1
-2  357 52 0 0 1
-2  358 50 0 0 1
-6  344 52 0
-6  345 50 0
-0
-
-0101000
-+437 0 -435 0 *
-Ed
- 4.94487658742421e-007 1 1 0
-1  156 0 3.65967968 7.7471244
-2  359 53 0 3.65967968 7.7471244
-2  360 52 0 3.65967968 7.7471244
-6  346 52 0
-6  347 53 0
-0
-
-0101000
-+442 0 -435 0 *
-Wi
-
-0101000
--441 0 -436 0 +434 0 -433 0 *
-Fa
-0  1.00000004749745e-010 52 0
-2  52
-0101000
-+432 0 *
-Ed
- 4.94097974284382e-006 1 1 0
-1  157 0 0.5 1
-2  361 32 0 0.5 1
-2  362 31 0 0.5 1
-6  348 31 0
-0
-
-0101000
-+552 0 -437 0 *
-Wi
-
-0101000
-+436 0 -496 0 -510 0 +536 0 -550 0 +430 0 *
-Fa
-0  1.00000004749745e-010 32 0
-2  32
-0101000
-+429 0 *
-Ve
-4.94097974194168e-006
-3.38400016073138 1.63898521684762 0.123909655855393
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  158 0 0 1
-2  363 31 0 0 1
-2  364 47 0 0 1
-6  349 47 0
-0
-
-0101000
-+554 0 -427 0 *
-Ed
- 4.94097974194168e-006 1 1 0
-1  159 0 0.5 1
-2  365 50 0 0.5 1
-2  366 31 0 0.5 1
-6  350 31 0
-6  351 50 0
-0
-
-0101000
-+437 0 -427 0 *
-Wi
-
-0101000
--430 0 -551 0 +426 0 -425 0 *
-Fa
-0  1.00000004749745e-010 31 0
-2  31
-0101000
-+424 0 *
-Ed
- 2.43678460712111e-006 1 1 0
-1  160 0 0 1
-2  367 47 0 0 1
-2  368 50 0 0 1
-6  352 47 0
-6  353 50 0
-0
-
-0101000
-+461 0 -427 0 *
-Wi
-
-0101000
-+422 0 -426 0 -473 0 -459 0 *
-Fa
-0  1.00000004749745e-010 47 0
-2  47
-0101000
-+421 0 *
-Ed
- 1e-007 1 1 0
-1  161 0 0 3.65967968
-2  369 50 0 0 3.65967968
-2  370 53 0 0 3.65967968
-6  354 50 0
-6  355 53 0
-0
-
-0101000
-+449 0 -435 0 *
-Wi
-
-0101000
--422 0 -452 0 +448 0 +419 0 -434 0 +425 0 *
-Fa
-0  1.00000004749745e-010 50 0
-2  50
-0101000
-+418 0 *
-Ve
-1e-007
-7.21279194058922 1.34821630603684 1.41444156518237
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  162 0 0 1
-2  371 53 0 0 1
-2  372 51 0 0 1
-6  356 51 0
-0
-
-0101000
-+449 0 -416 0 *
-Ve
-1e-007
-7.21279194058922 1.75566519138962 -1.18857467445427
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  163 0 1.23049347 1.78417229
-2  373 53 0 1.23049347 1.78417229
-2  374 27 0 1.23049347 1.78417229
-6  357 53 0
-6  358 27 0
-0
-
-0101000
-+416 0 -414 0 *
-Ve
-1e-007
-7.21279194058922 -1.75566531738962 -1.18857460045426
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  164 0 0.55367874 1.23049347
-2  375 26 0 0.55367874 1.23049347
-2  376 53 0 0.55367874 1.23049347
-6  359 53 0
-6  360 26 0
-0
-
-0101000
-+412 0 -414 0 *
-Ve
-1e-007
-7.21279194058922 -1.34821673503686 1.41444126218235
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  165 0 0 0.55367874
-2  377 53 0 0 0.55367874
-2  378 25 0 0 0.55367874
-6  361 53 0
-6  362 25 0
-0
-
-0101000
-+412 0 -410 0 *
-Ed
- 1e-007 1 1 0
-1  166 0 0 1
-2  379 53 0 0 1
-2  380 51 0 0 1
-6  363 51 0
-0
-
-0101000
-+410 0 -447 0 *
-Wi
-
-0101000
--419 0 +415 0 +413 0 -411 0 +409 0 +408 0 -440 0 +433 0 *
-Fa
-0  1.00000004749745e-010 53 0
-2  53
-0101000
-+407 0 *
-Ve
-1.67946554004704e-007
-15.178436250937 -6.33367198983326 -0.437746756651854
-0 0
-
-0101101
-*
-Ve
-1.24196907781472e-006
-13.7551732833356 -6.33367429383337 -0.507938351705776
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  167 0 8.022e-005 1.00008022
-2  381 54 0 8.022e-005 1.00008022
-2  382 55 0 8.022e-005 1.00008022
-6  364 55 0
-0
-
-0101000
-+405 0 -404 0 *
-Ve
-6.5666520181121e-007
-18.7445785303197 -16.2690985127407 0.302431252674713
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  168 0 0.00020743 46.24578153
-2  383 54 0 0.00020743 46.24578153
-2  384 56 0 0.00020743 46.24578153
-6  365 54 0
-6  366 56 0
-0
-
-0101000
-+404 0 -402 0 *
-Ve
-7.01160310719151e-007
-19.3665796498631 -16.2690975027406 0.333106715941719
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  169 0 8.022e-005 1.00008022
-2  385 54 0 8.022e-005 1.00008022
-2  386 57 0 8.022e-005 1.00008022
-6  367 57 0
-0
-
-0101000
-+402 0 -400 0 *
-Ed
- 1e-007 1 1 0
-1  170 0 4.95e-005 10.70174454
-2  387 54 0 4.95e-005 10.70174454
-2  388 58 0 4.95e-005 10.70174454
-6  368 54 0
-6  369 58 0
-0
-
-0101000
-+400 0 -405 0 *
-Wi
-
-0101000
-+403 0 +401 0 +399 0 +398 0 *
-Fa
-0  1.00000004749745e-010 54 0
-2  54
-0101000
-+397 0 *
-Ve
-1.18851896927156e-006
-18.6177078042936 -16.2690957227405 0.240354853816242
-0 0
-
-0101101
-*
-Ed
- 6.56665201578765e-007 1 1 0
-1  171 0 0.00034374 1.00034374
-2  389 57 0 0.00034374 1.00034374
-2  390 56 0 0.00034374 1.00034374
-6  370 57 0
-6  371 56 0
-0
-
-0101000
-+402 0 -395 0 *
-Ve
-1.18851896927156e-006
-19.4649687145364 -16.2690729827395 0.155572182299282
-0 0
-
-0101101
-*
-Ed
- 1.18851896927156e-006 1 1 0
-1  172 0 5.799e-005 1.00005799
-2  391 57 0 5.799e-005 1.00005799
-2  392 59 0 5.799e-005 1.00005799
-6  372 57 0
-6  373 59 0
-0
-
-0101000
-+395 0 -393 0 *
-Ed
- 1e-007 1 1 0
-1  173 0 0 1
-2  393 57 0 0 1
-2  394 60 0 0 1
-6  374 57 0
-6  375 60 0
-0
-
-0101000
-+393 0 -400 0 *
-Wi
-
-0101000
-+394 0 +392 0 +391 0 -399 0 *
-Fa
-0  1.00000004749745e-010 57 0
-2  57
-0101000
-+390 0 *
-Ve
-7.01160310719151e-007
-20.2590217622519 -16.2691035827409 0.211302165326314
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  174 0 6.281e-005 1.00006281
-2  395 60 0 6.281e-005 1.00006281
-2  396 61 0 6.281e-005 1.00006281
-6  376 60 0
-6  377 61 0
-0
-
-0101000
-+393 0 -388 0 *
-Ed
- 7.01160310719151e-007 0 0 1
-2  397 60 0 0 1
-6  378 60 0
-0
-
-0101000
-+388 0 -388 0 *
-Ed
- 7.01160310456898e-007 1 1 0
-1  175 0 5.543e-005 1.00005543
-2  398 60 0 5.543e-005 1.00005543
-2  399 58 0 5.543e-005 1.00005543
-6  379 60 0
-6  380 58 0
-0
-
-0101000
-+388 0 -400 0 *
-Wi
-
-0101000
-+387 0 +386 0 +385 0 -391 0 *
-Fa
-0  1.00000004749745e-010 60 0
-2  60
-0101000
-+384 0 *
-Ve
-1.67946554004704e-007
-17.2205222879309 -6.33368591083392 -0.716459929370019
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  176 0 3.88e-005 8.09360706
-2  400 58 0 3.88e-005 8.09360706
-2  401 61 0 3.88e-005 8.09360706
-6  381 58 0
-6  382 61 0
-0
-
-0101000
-+388 0 -382 0 *
-Ed
- 1.67946554004704e-007 1 1 0
-1  177 0 5.543e-005 1.00005543
-2  402 58 0 5.543e-005 1.00005543
-2  403 62 0 5.543e-005 1.00005543
-6  383 62 0
-0
-
-0101000
-+382 0 -405 0 *
-Wi
-
-0101000
--385 0 +381 0 +380 0 -398 0 *
-Fa
-0  1.00000004749745e-010 58 0
-2  58
-0101000
-+379 0 *
-Ve
-9.64067992192019e-007
-15.4035701016303 -6.3336158858306 -0.843981276536958
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  178 0 6.281e-005 1.00006281
-2  404 61 0 6.281e-005 1.00006281
-2  405 63 0 6.281e-005 1.00006281
-6  384 63 0
-0
-
-0101000
-+377 0 -382 0 *
-Ed
- 1e-007 1 1 0
-1  179 0 3.88e-005 8.09360706
-2  406 61 0 3.88e-005 8.09360706
-2  407 59 0 3.88e-005 8.09360706
-6  385 61 0
-6  386 59 0
-0
-
-0101000
-+393 0 -377 0 *
-Wi
-
-0101000
-+376 0 -381 0 -387 0 +375 0 *
-Fa
-0  1.00000004749745e-010 61 0
-2  61
-0101000
-+374 0 *
-Ve
-1.24196907781472e-006
-13.4648676895469 -6.33366791783307 -0.649981567562466
-0 0
-
-0101101
-*
-Ed
- 9.64067992047893e-007 1 1 0
-1  180 0 5.799e-005 1.00005799
-2  408 59 0 5.799e-005 1.00005799
-2  409 64 0 5.799e-005 1.00005799
-6  387 64 0
-0
-
-0101000
-+372 0 -377 0 *
-Ed
- 1e-007 1 1 0
-1  181 0 0.00020743 46.24578153
-2  410 59 0 0.00020743 46.24578153
-2  411 56 0 0.00020743 46.24578153
-6  388 59 0
-6  389 56 0
-0
-
-0101000
-+395 0 -372 0 *
-Wi
-
-0101000
-+371 0 -375 0 -392 0 +370 0 *
-Fa
-0  1.00000004749745e-010 59 0
-2  59
-0101000
-+369 0 *
-Ed
- 1.24196907662032e-006 1 1 0
-1  182 0 0.00034374 1.00034374
-2  412 56 0 0.00034374 1.00034374
-2  413 65 0 0.00034374 1.00034374
-6  390 56 0
-6  391 65 0
-0
-
-0101000
-+404 0 -372 0 *
-Wi
-
-0101000
-+367 0 -370 0 -394 0 -401 0 *
-Fa
-0  1.00000004749745e-010 56 0
-2  56
-0101000
-+366 0 *
-Ve
-0.000624086605695706
-11.2339737223351 -1.75393664780752 -1.18752892052959
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  183 0 0.48181163 12.06882334
-2  414 65 0 0.48181163 12.06882334
-2  415 64 0 0.48181163 12.06882334
-6  392 65 0
-6  393 64 0
-0
-
-0101000
-+364 0 -372 0 *
-Ve
-0.000140263357290589
-11.7544106883045 -1.87810382833014 -0.947904141375154
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  184 0 0.19391992 2.76255331
-2  416 65 0 0.19391992 2.76255331
-2  417 55 0 0.19391992 2.76255331
-6  394 65 0
-6  395 55 0
-0
-
-0101000
-+404 0 -362 0 *
-Ve
-0.000101407302309408
-11.7230037068433 -1.87519299652087 -0.954539726978555
-0 0
-
-0101101
-*
-Ed
- 0.000101407302309408 1 1 0
-1  185 0 0 0.09090909
-2  418 65 0 0 0.09090909
-2  419 25 0 0 0.09090909
-6  396 65 0
-6  397 25 0
-0
-
-0101000
-+362 0 -360 0 *
-Ve
-9.27684451264632e-005
-11.7107019725161 -1.87402943667788 -0.957177203399168
-0 0
-
-0101101
-*
-Ed
- 4.17981543071232e-005 1 1 0
-1  186 0 0.09090909 0.109634221545924
-2  420 65 0 0.09090909 0.109634221545924
-2  421 25 0 0.09090909 0.109634221545924
-6  398 65 0
-6  399 25 0
-0
-
-0101000
-+360 0 -358 0 *
-Ve
-0.00500706970905351
-11.6780822159487 -1.8710899238748 -0.963788802911312
-0 0
-
-0101101
-*
-Ed
- 9.27684451264632e-005 1 1 0
-1  186 0 0.109634221545924 0.18181818
-2  422 65 0 0.109634221545924 0.18181818
-2  423 25 0 0.109634221545924 0.18181818
-6  400 65 0
-6  401 25 0
-0
-
-0101000
-+358 0 -356 0 *
-Ve
-0.00500707186928732
-11.6689018442431 -1.87027896633348 -0.965602735826667
-0 0
-
-0101101
-*
-Ed
- 0.00500706970905351 1 1 0
-1  187 0 0.6 0.633484377590191
-2  424 25 0 0.6 0.633484377590191
-2  425 65 0 0.6 0.633484377590191
-6  402 65 0
-6  403 25 0
-0
-
-0101000
-+354 0 -356 0 *
-Ve
-0.00500707186928732
-11.6098700549364 -1.86430064821477 -0.978826260728255
-0 0
-
-0101101
-*
-Ed
- 0.00500707186928732 1 1 0
-1  188 0 0.27272727 0.36363636
-2  426 65 0 0.27272727 0.36363636
-2  427 25 0 0.27272727 0.36363636
-6  404 65 0
-6  405 25 0
-0
-
-0101000
-+354 0 -352 0 *
-Ve
-0.000385603613661858
-11.579795765572 -1.86090292936362 -0.98623107103987
-0 0
-
-0101101
-*
-Ed
- 0.000385603613661858 1 1 0
-1  189 0 0.48389543156306 0.517146533720261
-2  428 25 0 0.48389543156306 0.517146533720261
-2  429 65 0 0.48389543156306 0.517146533720261
-6  406 65 0
-6  407 25 0
-0
-
-0101000
-+350 0 -352 0 *
-Ve
-0.000329071709881571
-11.5686247880199 -1.85961621804369 -0.989014949325949
-0 0
-
-0101101
-*
-Ed
- 0.000329071709881571 1 1 0
-1  189 0 0.470926189373896 0.48389543156306
-2  430 25 0 0.470926189373896 0.48389543156306
-2  431 65 0 0.470926189373896 0.48389543156306
-6  408 65 0
-6  409 25 0
-0
-
-0101000
-+348 0 -350 0 *
-Ve
-0.000281828856701735
-11.5253852575828 -1.85416377756769 -1.00069150837767
-0 0
-
-0101101
-*
-Ed
- 0.000181954506420099 1 1 0
-1  190 0 0.54545455 0.598276846616651
-2  432 65 0 0.54545455 0.598276846616651
-2  433 25 0 0.54545455 0.598276846616651
-6  410 65 0
-6  411 25 0
-0
-
-0101000
-+348 0 -346 0 *
-Ve
-0.000408127210198134
-11.4896394008981 -1.84878792653291 -1.0120133489902
-0 0
-
-0101101
-*
-Ed
- 0.000281828856701735 1 1 0
-1  191 0 0.384100626478303 0.4
-2  434 25 0 0.384100626478303 0.4
-2  435 65 0 0.384100626478303 0.4
-6  412 65 0
-6  413 25 0
-0
-
-0101000
-+344 0 -346 0 *
-Ve
-0.00045740479481812
-11.4383603506965 -1.83998407337006 -1.03017742118867
-0 0
-
-0101101
-*
-Ed
- 0.000408127210198134 1 1 0
-1  192 0 0.63636364 0.72727273
-2  436 65 0 0.63636364 0.72727273
-2  437 25 0 0.63636364 0.72727273
-6  414 65 0
-6  415 25 0
-0
-
-0101000
-+344 0 -342 0 *
-Ve
-0.000471205402521396
-11.3805975561415 -1.82703782145984 -1.05608161268227
-0 0
-
-0101101
-*
-Ed
- 0.00045740479481812 1 1 0
-1  193 0 0.72727273 0.81818182
-2  438 65 0 0.72727273 0.81818182
-2  439 25 0 0.72727273 0.81818182
-6  416 65 0
-6  417 25 0
-0
-
-0101000
-+342 0 -340 0 *
-Ve
-0.000471205402521396
-11.3208385076288 -1.80819404686211 -1.09222199876256
-0 0
-
-0101101
-*
-Ed
- 0.000471205402521396 1 1 0
-1  191 0 0.274729071771431 0.321555342341725
-2  440 25 0 0.274729071771431 0.321555342341725
-2  441 65 0 0.274729071771431 0.321555342341725
-6  418 65 0
-6  419 25 0
-0
-
-0101000
-+338 0 -340 0 *
-Ve
-0.000217287485690353
-11.2476412635365 -1.7665596569946 -1.16638885628345
-0 0
-
-0101101
-*
-Ed
- 0.000217287485690353 1 1 0
-1  191 0 0.2 0.274729071771431
-2  442 25 0 0.2 0.274729071771431
-2  443 65 0 0.2 0.274729071771431
-6  420 65 0
-6  421 25 0
-0
-
-0101000
-+336 0 -338 0 *
-Ed
- 4.40501992575535e-006 1 1 0
-1  194 0 0.983770113025408 1
-2  444 65 0 0.983770113025408 1
-2  445 25 0 0.983770113025408 1
-6  422 65 0
-6  423 25 0
-0
-
-0101000
-+336 0 -364 0 *
-Wi
-
-0101000
-+363 0 -367 0 +361 0 +359 0 +357 0 +355 0 -353 0 +351 0 -349 0 -347 0 
-+345 0 -343 0 +341 0 +339 0 -337 0 -335 0 +334 0 *
-Fa
-0  1.00000004749745e-010 65 0
-2  65
-0101000
-+333 0 *
-Ve
-0.000140263357290589
-13.0936999045215 -1.92471414973264 -0.831009732620803
-0 0
-
-0101101
-*
-Ed
- 0.000140263357290589 1 1 0
-1  195 0 0 0.590722431411216
-2  446 25 0 0 0.590722431411216
-2  447 55 0 0 0.590722431411216
-6  424 25 0
-6  425 55 0
-0
-
-0101000
-+362 0 -331 0 *
-Ve
-0.000133247962740653
-14.0214149684814 -1.92384089900254 -0.832597729805518
-0 0
-
-0101101
-*
-Ed
- 0.000133247962740653 1 1 0
-1  195 0 0.590722431411216 1
-2  448 25 0 0.590722431411216 1
-2  449 55 0 0.590722431411216 1
-6  426 25 0
-6  427 55 0
-0
-
-0101000
-+331 0 -329 0 *
-Ve
-0.000375590509557574
-15.4046111730498 -1.88092150688822 -0.938194333874812
-0 0
-
-0101101
-*
-Ed
- 6.40464187607385e-005 1 1 0
-1  196 0 0.66666667 1
-2  450 62 0 0.66666667 1
-2  451 25 0 0.66666667 1
-6  428 62 0
-0
-
-0101000
-+327 0 -329 0 *
-Ve
-0.000375590509557574
-16.7625925747914 -1.75437077638359 -1.18146657566026
-0 0
-
-0101101
-*
-Ed
- 0.000375590509557574 1 1 0
-1  197 0 0.408181166309187 0.834081581640313
-2  452 25 0 0.408181166309187 0.834081581640313
-2  453 62 0 0.408181166309187 0.834081581640313
-6  429 62 0
-0
-
-0101000
-+327 0 -325 0 *
-Ve
-0.000359481754341642
-17.2459916253906 -1.67360683680456 -1.30407191862759
-0 0
-
-0101101
-*
-Ed
- 0.000234300896294736 1 1 0
-1  197 0 0.834081581640313 1
-2  454 25 0 0.834081581640313 1
-2  455 62 0 0.834081581640313 1
-6  430 25 0
-6  431 62 0
-0
-
-0101000
-+325 0 -323 0 *
-Ed
- 1e-007 1 1 0
-1  198 0 0 0.22601628
-2  456 25 0 0 0.22601628
-2  457 26 0 0 0.22601628
-6  432 25 0
-6  433 26 0
-0
-
-0101000
-+323 0 -564 0 *
-Ed
- 1e-007 1 1 0
-1  199 0 0 1
-2  458 25 0 0 1
-2  459 66 0 0 1
-6  434 25 0
-6  435 66 0
-0
-
-0101000
-+566 0 -410 0 *
-Ed
- 1e-007 1 1 0
-1  200 0 0.69078273 1
-2  460 25 0 0.69078273 1
-2  461 26 0 0.69078273 1
-6  436 25 0
-6  437 26 0
-0
-
-0101000
-+412 0 -364 0 *
-Wi
-
-0101000
--334 0 +335 0 +337 0 -339 0 -341 0 +343 0 -345 0 +347 0 +349 0 -351 0 
-+353 0 -355 0 -357 0 -359 0 +330 0 +328 0 -326 0 +324 0 +322 0 +321 0 
-+563 0 +320 0 -409 0 +319 0 *
-Fa
-0  1.00000004749745e-010 25 0
-2  25
-0101000
-+318 0 *
-Ve
-0.000671251581973616
-11.2339734254601 1.75393602555749 -1.1875290010296
-0 0
-
-0101101
-*
-Ve
-0.00074309734964126
-11.2233176562604 1.73904489821927 -1.21174266791124
-0 0
-
-0101101
-*
-Ed
- 0.000671251581973616 1 1 0
-1  201 0 0 0.0365494431488469
-2  462 26 0 0 0.0365494431488469
-2  463 67 0 0 0.0365494431488469
-6  438 26 0
-6  439 67 0
-0
-
-0101000
-+316 0 -315 0 *
-Ve
-0.00074309734964126
-11.2195102188226 1.72864961215316 -1.22820864056359
-0 0
-
-0101101
-*
-Ed
- 0.00074309734964126 1 1 0
-1  201 0 0.0365494431488469 0.0622860270214097
-2  464 26 0 0.0365494431488469 0.0622860270214097
-2  465 67 0 0.0365494431488469 0.0622860270214097
-6  440 26 0
-6  441 67 0
-0
-
-0101000
-+315 0 -313 0 *
-Ve
-0.000651668334170702
-11.2233146680788 1.70357064691526 -1.26655421965809
-0 0
-
-0101101
-*
-Ed
- 0.000651668334170702 1 1 0
-1  201 0 0.0622860270214097 0.125
-2  466 26 0 0.0622860270214097 0.125
-2  467 67 0 0.0622860270214097 0.125
-6  442 26 0
-6  443 67 0
-0
-
-0101000
-+313 0 -311 0 *
-Ve
-0.000654369090545537
-11.243154316743 1.68198845915121 -1.29810493339306
-0 0
-
-0101101
-*
-Ed
- 0.000197711893495428 1 1 0
-1  202 0 0.80952381 0.85714286
-2  468 67 0 0.80952381 0.85714286
-2  469 26 0 0.80952381 0.85714286
-6  444 26 0
-6  445 67 0
-0
-
-0101000
-+309 0 -311 0 *
-Ve
-0.000654369090545537
-11.274822965922 1.6653368975719 -1.32159590159368
-0 0
-
-0101101
-*
-Ed
- 0.000654369090545537 1 1 0
-1  203 0 0.76190476 0.80952381
-2  470 67 0 0.76190476 0.80952381
-2  471 26 0 0.76190476 0.80952381
-6  446 26 0
-6  447 67 0
-0
-
-0101000
-+307 0 -309 0 *
-Ve
-0.000625455865781104
-11.3057257984163 1.65529957503836 -1.33541257273752
-0 0
-
-0101101
-*
-Ed
- 0.000625455865781104 1 1 0
-1  204 0 0.71428571 0.76190476
-2  472 67 0 0.71428571 0.76190476
-2  473 26 0 0.71428571 0.76190476
-6  448 26 0
-6  449 67 0
-0
-
-0101000
-+305 0 -307 0 *
-Ve
-0.000289457499681577
-11.3654194549661 1.64208465945882 -1.3532208048712
-0 0
-
-0101101
-*
-Ed
- 0.000237886977448535 1 1 0
-1  205 0 0.66666667 0.71428571
-2  474 67 0 0.66666667 0.71428571
-2  475 26 0 0.66666667 0.71428571
-6  450 26 0
-6  451 67 0
-0
-
-0101000
-+303 0 -305 0 *
-Ve
-0.000289457499681577
-11.4940513042487 1.62457606258802 -1.3761571297346
-0 0
-
-0101101
-*
-Ed
- 0.000289457499681577 1 1 0
-1  206 0 0.61904762 0.66666667
-2  476 67 0 0.61904762 0.66666667
-2  477 26 0 0.61904762 0.66666667
-6  452 26 0
-6  453 67 0
-0
-
-0101000
-+301 0 -303 0 *
-Ve
-0.000132421291554071
-11.5380210330651 1.6201411438256 -1.3818514383236
-0 0
-
-0101101
-*
-Ed
- 0.000132421291554071 1 1 0
-1  207 0 0.586390813604534 0.61904762
-2  478 67 0 0.586390813604534 0.61904762
-2  479 26 0 0.586390813604534 0.61904762
-6  454 26 0
-6  455 67 0
-0
-
-0101000
-+299 0 -301 0 *
-Ve
-0.000359009815624528
-11.5701474980193 1.61706632895907 -1.38576981734771
-0 0
-
-0101101
-*
-Ed
- 0.000129387579192774 1 1 0
-1  207 0 0.57142857 0.586390813604534
-2  480 67 0 0.57142857 0.586390813604534
-2  481 26 0 0.57142857 0.586390813604534
-6  456 26 0
-6  457 67 0
-0
-
-0101000
-+297 0 -299 0 *
-Ve
-0.000359009815624528
-11.6467164821864 1.60959413771122 -1.39521556909743
-0 0
-
-0101101
-*
-Ed
- 0.000359009815624528 1 1 0
-1  208 0 0.52380952 0.57142857
-2  482 67 0 0.52380952 0.57142857
-2  483 26 0 0.52380952 0.57142857
-6  458 26 0
-6  459 67 0
-0
-
-0101000
-+295 0 -297 0 *
-Ve
-0.000271315011288352
-11.7279810431541 1.60101691469853 -1.40592225547907
-0 0
-
-0101101
-*
-Ed
- 0.000271315011288352 1 1 0
-1  209 0 0.485827660893864 0.52380952
-2  484 67 0 0.485827660893864 0.52380952
-2  485 26 0 0.485827660893864 0.52380952
-6  460 26 0
-6  461 67 0
-0
-
-0101000
-+293 0 -295 0 *
-Ve
-4.31644510999595e-005
-11.7609747359659 1.59742040519323 -1.41037135508933
-0 0
-
-0101101
-*
-Ed
- 3.56630000502031e-005 1 1 0
-1  209 0 0.47619048 0.485827660893864
-2  486 67 0 0.47619048 0.485827660893864
-2  487 26 0 0.47619048 0.485827660893864
-6  462 26 0
-6  463 67 0
-0
-
-0101000
-+291 0 -293 0 *
-Ve
-0.00013685359452256
-11.8043180412084 1.59269241380991 -1.41618054122364
-0 0
-
-0101101
-*
-Ed
- 4.31644510999595e-005 1 1 0
-1  210 0 0.463237442359126 0.47619048
-2  488 67 0 0.463237442359126 0.47619048
-2  489 26 0 0.463237442359126 0.47619048
-6  464 26 0
-6  465 67 0
-0
-
-0101000
-+289 0 -291 0 *
-Ve
-0.000356385759575974
-11.8750928872913 1.58529487719724 -1.4251748313798
-0 0
-
-0101101
-*
-Ed
- 0.00013685359452256 1 1 0
-1  210 0 0.42857143 0.463237442359126
-2  490 67 0 0.42857143 0.463237442359126
-2  491 26 0 0.42857143 0.463237442359126
-6  466 26 0
-6  467 67 0
-0
-
-0101000
-+287 0 -289 0 *
-Ve
-0.000356385759575974
-12.2620489025649 1.55544164364287 -1.46033225805902
-0 0
-
-0101101
-*
-Ed
- 0.000356385759575974 1 1 0
-1  211 0 0.38095238 0.42857143
-2  492 67 0 0.38095238 0.42857143
-2  493 26 0 0.38095238 0.42857143
-6  468 26 0
-6  469 67 0
-0
-
-0101000
-+285 0 -287 0 *
-Ve
-0.00035414380980724
-12.4978731391223 1.54304758553291 -1.47438192864982
-0 0
-
-0101101
-*
-Ed
- 0.00035414380980724 1 1 0
-1  212 0 0.33333333 0.38095238
-2  494 67 0 0.33333333 0.38095238
-2  495 26 0 0.33333333 0.38095238
-6  470 26 0
-6  471 67 0
-0
-
-0101000
-+283 0 -285 0 *
-Ve
-9.648333032716e-006
-12.5143853778561 1.54225075040349 -1.47527481543679
-0 0
-
-0101101
-*
-Ed
- 7.23937869604308e-006 1 1 0
-1  213 0 0.306434487924756 0.33333333
-2  496 67 0 0.306434487924756 0.33333333
-2  497 26 0 0.306434487924756 0.33333333
-6  472 26 0
-6  473 67 0
-0
-
-0101000
-+281 0 -283 0 *
-Ve
-0.000235164344341272
-12.5372927826847 1.54114785217358 -1.47650854790917
-0 0
-
-0101101
-*
-Ed
- 9.648333032716e-006 1 1 0
-1  213 0 0.28571429 0.306434487924756
-2  498 67 0 0.28571429 0.306434487924756
-2  499 26 0 0.28571429 0.306434487924756
-6  474 26 0
-6  475 67 0
-0
-
-0101000
-+279 0 -281 0 *
-Ve
-0.000235164344341272
-12.7343557009245 1.53139827017334 -1.48733192218905
-0 0
-
-0101101
-*
-Ed
- 0.000235164344341272 1 1 0
-1  214 0 0.23809524 0.28571429
-2  500 67 0 0.23809524 0.28571429
-2  501 26 0 0.23809524 0.28571429
-6  476 26 0
-6  477 67 0
-0
-
-0101000
-+277 0 -279 0 *
-Ve
-0.000212456327581831
-12.9120964228236 1.52198792279919 -1.49763971953495
-0 0
-
-0101101
-*
-Ed
- 0.000212456327581831 1 1 0
-1  215 0 0.205761069651825 0.23809524
-2  502 67 0 0.205761069651825 0.23809524
-2  503 26 0 0.205761069651825 0.23809524
-6  478 26 0
-6  479 67 0
-0
-
-0101000
-+275 0 -277 0 *
-Ve
-4.44257898034483e-005
-13.0297316574771 1.51557535698256 -1.50458789742418
-0 0
-
-0101101
-*
-Ed
- 4.08726030426305e-005 1 1 0
-1  215 0 0.19047619 0.205761069651825
-2  504 67 0 0.19047619 0.205761069651825
-2  505 26 0 0.19047619 0.205761069651825
-6  480 26 0
-6  481 67 0
-0
-
-0101000
-+273 0 -275 0 *
-Ve
-4.44257898034483e-005
-13.1505415149467 1.50902129957732 -1.51162015009139
-0 0
-
-0101101
-*
-Ed
- 4.44257898034483e-005 1 1 0
-1  216 0 0.16442722501096 0.19047619
-2  506 67 0 0.16442722501096 0.19047619
-2  507 26 0 0.16442722501096 0.19047619
-6  482 26 0
-6  483 67 0
-0
-
-0101000
-+271 0 -273 0 *
-Ve
-0.000370128948419076
-13.2067968429158 1.50604612550568 -1.51478693835905
-0 0
-
-0101101
-*
-Ed
- 2.32185668293449e-005 1 1 0
-1  216 0 0.14285714 0.16442722501096
-2  508 67 0 0.14285714 0.16442722501096
-2  509 26 0 0.14285714 0.16442722501096
-6  484 26 0
-6  485 67 0
-0
-
-0101000
-+269 0 -271 0 *
-Ve
-0.000370128948419076
-13.6011839966343 1.48832080334864 -1.53331528929195
-0 0
-
-0101101
-*
-Ed
- 0.000370128948419076 1 1 0
-1  217 0 0.0952381 0.14285714
-2  510 67 0 0.0952381 0.14285714
-2  511 26 0 0.0952381 0.14285714
-6  486 26 0
-6  487 67 0
-0
-
-0101000
-+267 0 -269 0 *
-Ve
-0.00034899808757336
-14.1656597628408 1.48194751707815 -1.53942524734664
-0 0
-
-0101101
-*
-Ed
- 0.00034899808757336 1 1 0
-1  218 0 0.916393161028006 0.986178862274954
-2  512 26 0 0.916393161028006 0.986178862274954
-2  513 67 0 0.916393161028006 0.986178862274954
-6  488 26 0
-6  489 67 0
-0
-
-0101000
-+267 0 -265 0 *
-Ve
-0.00047521807689407
-14.2745160980031 1.48462395626585 -1.53651034460532
-0 0
-
-0101101
-*
-Ed
- 7.40685212965215e-005 1 1 0
-1  218 0 0.986178862274954 1
-2  514 26 0 0.986178862274954 1
-2  515 67 0 0.986178862274954 1
-6  490 26 0
-6  491 67 0
-0
-
-0101000
-+265 0 -263 0 *
-Ve
-0.00047521807689407
-14.8705157989187 1.51573582377946 -1.50252353347842
-0 0
-
-0101101
-*
-Ed
- 0.00047521807689407 1 1 0
-1  219 0 0 0.180106373495116
-2  516 26 0 0 0.180106373495116
-2  517 68 0 0 0.180106373495116
-6  492 26 0
-6  493 68 0
-0
-
-0101000
-+263 0 -261 0 *
-Ve
-0.000440814061142981
-15.2409733425777 1.54412476865888 -1.47034875277143
-0 0
-
-0101101
-*
-Ed
- 0.000440814061142981 1 1 0
-1  220 0 0.66666667 0.83333333
-2  518 68 0 0.66666667 0.83333333
-2  519 26 0 0.66666667 0.83333333
-6  494 26 0
-6  495 68 0
-0
-
-0101000
-+259 0 -261 0 *
-Ve
-0.000421613594391704
-15.3885361745655 1.55624636724467 -1.45620806184295
-0 0
-
-0101101
-*
-Ed
- 0.000421613594391704 1 1 0
-1  221 0 0.5 0.66666667
-2  520 68 0 0.5 0.66666667
-2  521 26 0 0.5 0.66666667
-6  496 26 0
-6  497 68 0
-0
-
-0101000
-+257 0 -259 0 *
-Ve
-0.000253012788190999
-15.6256429585636 1.57605589016733 -1.43254462666716
-0 0
-
-0101101
-*
-Ed
- 0.000253012788190999 1 1 0
-1  222 0 0.404244838774849 0.5
-2  522 68 0 0.404244838774849 0.5
-2  523 26 0 0.404244838774849 0.5
-6  498 26 0
-6  499 68 0
-0
-
-0101000
-+255 0 -257 0 *
-Ve
-3.67902719550172e-005
-15.7556462799591 1.58687434340459 -1.41931422068519
-0 0
-
-0101101
-*
-Ed
- 3.34990082536399e-005 1 1 0
-1  222 0 0.33333333 0.404244838774849
-2  524 68 0 0.33333333 0.404244838774849
-2  525 26 0 0.33333333 0.404244838774849
-6  500 26 0
-6  501 68 0
-0
-
-0101000
-+253 0 -255 0 *
-Ve
-0.000359520315373071
-15.9164082326414 1.59998586197956 -1.40297488495823
-0 0
-
-0101101
-*
-Ed
- 3.67902719550172e-005 1 1 0
-1  223 0 0.297103147762731 0.33333333
-2  526 68 0 0.297103147762731 0.33333333
-2  527 26 0 0.297103147762731 0.33333333
-6  502 26 0
-6  503 68 0
-0
-
-0101000
-+251 0 -253 0 *
-Ve
-0.000359520315382276
-16.4125111176284 1.63640196705886 -1.3557196746019
-0 0
-
-0101101
-*
-Ed
- 0.000359520315373071 1 1 0
-1  223 0 0.16666667 0.297103147762731
-2  528 68 0 0.16666667 0.297103147762731
-2  529 26 0 0.16666667 0.297103147762731
-6  504 26 0
-6  505 68 0
-0
-
-0101000
-+249 0 -251 0 *
-Ve
-0.000359520315382276
-17.2459916335156 1.67360538724199 -1.3040721061901
-0 0
-
-0101101
-*
-Ed
- 0.000359520315382276 1 1 0
-1  224 0 0 0.16666667
-2  530 68 0 0 0.16666667
-2  531 26 0 0 0.16666667
-6  506 26 0
-6  507 68 0
-0
-
-0101000
-+247 0 -249 0 *
-Ed
- 1e-007 1 1 0
-1  225 0 0 0.22601628
-2  532 26 0 0 0.22601628
-2  533 27 0 0 0.22601628
-6  508 26 0
-6  509 27 0
-0
-
-0101000
-+247 0 -562 0 *
-Ve
-0.000359481754343562
-16.4125111362741 -1.63640330747186 -1.35571949953735
-0 0
-
-0101101
-*
-Ed
- 0.000359481754341642 1 1 0
-1  226 0 0.83333333 1
-2  534 63 0 0.83333333 1
-2  535 26 0 0.83333333 1
-6  510 26 0
-6  511 63 0
-0
-
-0101000
-+244 0 -323 0 *
-Ve
-0.000359481754343562
-15.9164083652715 -1.59998716778997 -1.40297469633251
-0 0
-
-0101101
-*
-Ed
- 0.000359481754343562 1 1 0
-1  227 0 0.702896862227506 0.83333333
-2  536 63 0 0.702896862227506 0.83333333
-2  537 26 0 0.702896862227506 0.83333333
-6  512 26 0
-6  513 63 0
-0
-
-0101000
-+242 0 -244 0 *
-Ve
-3.6730125388627e-005
-15.7556463974262 -1.58687563239034 -1.41931403490338
-0 0
-
-0101101
-*
-Ed
- 3.6730125388627e-005 1 1 0
-1  227 0 0.66666667 0.702896862227506
-2  538 63 0 0.66666667 0.702896862227506
-2  539 26 0 0.66666667 0.702896862227506
-6  514 26 0
-6  515 63 0
-0
-
-0101000
-+240 0 -242 0 *
-Ve
-0.000253065444603851
-15.6256430914078 -1.57605716395364 -1.43254444077483
-0 0
-
-0101101
-*
-Ed
- 3.34395273489325e-005 1 1 0
-1  228 0 0.59575517380927 0.66666667
-2  540 63 0 0.59575517380927 0.66666667
-2  541 26 0 0.59575517380927 0.66666667
-6  516 26 0
-6  517 63 0
-0
-
-0101000
-+238 0 -240 0 *
-Ve
-0.000421664860833308
-15.3885363223517 -1.55624760869252 -1.45620788292268
-0 0
-
-0101101
-*
-Ed
- 0.000253065444603851 1 1 0
-1  228 0 0.5 0.59575517380927
-2  542 63 0 0.5 0.59575517380927
-2  543 26 0 0.5 0.59575517380927
-6  518 26 0
-6  519 63 0
-0
-
-0101000
-+236 0 -238 0 *
-Ve
-0.000440860963554178
-15.2409735004748 -1.54412598780222 -1.47034857787681
-0 0
-
-0101101
-*
-Ed
- 0.000421664860833308 1 1 0
-1  229 0 0.33333333 0.5
-2  544 63 0 0.33333333 0.5
-2  545 26 0 0.33333333 0.5
-6  520 26 0
-6  521 63 0
-0
-
-0101000
-+234 0 -236 0 *
-Ve
-0.000475178437454844
-14.8705159773675 -1.51573699413999 -1.50252336583399
-0 0
-
-0101101
-*
-Ed
- 0.000440860963554178 1 1 0
-1  230 0 0.16666667 0.33333333
-2  546 63 0 0.16666667 0.33333333
-2  547 26 0 0.16666667 0.33333333
-6  522 26 0
-6  523 63 0
-0
-
-0101000
-+232 0 -234 0 *
-Ve
-0.000475178437454844
-14.2745163580031 -1.4846250675159 -1.53651017760531
-0 0
-
-0101101
-*
-Ed
- 0.000475178437454844 1 1 0
-1  231 0 0.819893620897672 1
-2  548 26 0 0.819893620897672 1
-2  549 63 0 0.819893620897672 1
-6  524 26 0
-6  525 63 0
-0
-
-0101000
-+232 0 -230 0 *
-Ve
-1.2904095006635e-005
-14.2235895153933 -1.48319986742028 -1.53805637621256
-0 0
-
-0101101
-*
-Ed
- 1.2904095006635e-005 1 1 0
-1  232 0 0.95238095 1
-2  550 64 0 0.95238095 1
-2  551 26 0 0.95238095 1
-6  526 26 0
-6  527 64 0
-0
-
-0101000
-+228 0 -230 0 *
-Ve
-0.000173983333479764
-13.9578228007084 -1.4807103422503 -1.54093210274145
-0 0
-
-0101101
-*
-Ed
- 1.17788422361118e-005 1 1 0
-1  233 0 0.929879242695092 0.95238095
-2  552 64 0 0.929879242695092 0.95238095
-2  553 26 0 0.929879242695092 0.95238095
-6  528 26 0
-6  529 64 0
-0
-
-0101000
-+226 0 -228 0 *
-Ve
-0.000350170796573355
-13.6299341892202 -1.48725405550496 -1.53441086611513
-0 0
-
-0101101
-*
-Ed
- 0.000173983333479764 1 1 0
-1  234 0 0.125 0.177182002986322
-2  554 26 0 0.125 0.177182002986322
-2  555 64 0 0.125 0.177182002986322
-6  530 26 0
-6  531 64 0
-0
-
-0101000
-+226 0 -224 0 *
-Ve
-0.000350170796573355
-13.2369433548438 -1.50453569894826 -1.51638897342284
-0 0
-
-0101101
-*
-Ed
- 0.000350170796573355 1 1 0
-1  235 0 0.85714286 0.9047619
-2  556 64 0 0.85714286 0.9047619
-2  557 26 0 0.85714286 0.9047619
-6  532 26 0
-6  533 64 0
-0
-
-0101000
-+222 0 -224 0 *
-Ve
-0.000278611689141754
-13.0409575546936 -1.51495712080103 -1.50525514791496
-0 0
-
-0101101
-*
-Ed
- 0.000278611689141754 1 1 0
-1  236 0 0.80952381 0.85714286
-2  558 64 0 0.80952381 0.85714286
-2  559 26 0 0.80952381 0.85714286
-6  534 26 0
-6  535 64 0
-0
-
-0101000
-+220 0 -222 0 *
-Ve
-0.000297645042226027
-13.0022709656819 -1.51706751062374 -1.50297788728507
-0 0
-
-0101101
-*
-Ed
- 1.34055409172826e-005 1 1 0
-1  237 0 0.804942507297722 0.80952381
-2  560 64 0 0.804942507297722 0.80952381
-2  561 26 0 0.804942507297722 0.80952381
-6  536 26 0
-6  537 64 0
-0
-
-0101000
-+218 0 -220 0 *
-Ve
-0.000317283770468062
-12.7665063849933 -1.52971109318622 -1.48919178752468
-0 0
-
-0101101
-*
-Ed
- 0.000297645042226027 1 1 0
-1  237 0 0.76190476 0.804942507297722
-2  562 64 0 0.76190476 0.804942507297722
-2  563 26 0 0.76190476 0.804942507297722
-6  538 26 0
-6  539 64 0
-0
-
-0101000
-+216 0 -218 0 *
-Ve
-0.000317283770468062
-12.5506040056185 -1.54050897098862 -1.47722330575687
-0 0
-
-0101101
-*
-Ed
- 0.000317283770468062 1 1 0
-1  238 0 0.71428571 0.76190476
-2  564 64 0 0.71428571 0.76190476
-2  565 26 0 0.71428571 0.76190476
-6  540 26 0
-6  541 64 0
-0
-
-0101000
-+214 0 -216 0 *
-Ve
-1.73848319992385e-005
-12.5242477717419 -1.54177759031217 -1.47580533019563
-0 0
-
-0101101
-*
-Ed
- 1.73848319992385e-005 1 1 0
-1  239 0 0.688716234519205 0.71428571
-2  566 64 0 0.688716234519205 0.71428571
-2  567 26 0 0.688716234519205 0.71428571
-6  542 26 0
-6  543 64 0
-0
-
-0101000
-+212 0 -214 0 *
-Ve
-0.000100025625696305
-12.5015213107503 -1.54287260379372 -1.47457893519828
-0 0
-
-0101101
-*
-Ed
- 8.14215225946442e-006 1 1 0
-1  239 0 0.66666667 0.688716234519205
-2  568 64 0 0.66666667 0.688716234519205
-2  569 26 0 0.66666667 0.688716234519205
-6  544 26 0
-6  545 64 0
-0
-
-0101000
-+210 0 -212 0 *
-Ve
-0.00037758137410975
-12.2568192726063 -1.55566787566868 -1.46007545322656
-0 0
-
-0101101
-*
-Ed
- 0.000100025625696305 1 1 0
-1  240 0 0.61904762 0.66666667
-2  570 64 0 0.61904762 0.66666667
-2  571 26 0 0.61904762 0.66666667
-6  546 26 0
-6  547 64 0
-0
-
-0101000
-+208 0 -210 0 *
-Ve
-0.00037758137410975
-11.8715138817384 -1.58570854653159 -1.424674981036
-0 0
-
-0101101
-*
-Ed
- 0.00037758137410975 1 1 0
-1  241 0 0.406675816552983 0.4815205691812
-2  572 26 0 0.406675816552983 0.4815205691812
-2  573 64 0 0.406675816552983 0.4815205691812
-6  548 26 0
-6  549 64 0
-0
-
-0101000
-+208 0 -206 0 *
-Ve
-0.000377580903653318
-11.7578455409638 -1.59775711123781 -1.40995683754297
-0 0
-
-0101101
-*
-Ed
- 0.000377580903653318 1 1 0
-1  242 0 0.52380952 0.57142857
-2  574 64 0 0.52380952 0.57142857
-2  575 26 0 0.52380952 0.57142857
-6  550 26 0
-6  551 64 0
-0
-
-0101000
-+204 0 -206 0 *
-Ve
-0.000105494087003171
-11.7460296980906 -1.59904800056319 -1.4083623372769
-0 0
-
-0101101
-*
-Ed
- 5.50937276609768e-006 1 1 0
-1  243 0 0.520588390320385 0.52380952
-2  576 64 0 0.520588390320385 0.52380952
-2  577 26 0 0.520588390320385 0.52380952
-6  552 26 0
-6  553 64 0
-0
-
-0101000
-+202 0 -204 0 *
-Ve
-0.000105494087003171
-11.6440291192181 -1.60990510560288 -1.39482515131581
-0 0
-
-0101101
-*
-Ed
- 0.000105494087003171 1 1 0
-1  243 0 0.47619048 0.520588390320385
-2  578 64 0 0.47619048 0.520588390320385
-2  579 26 0 0.47619048 0.520588390320385
-6  554 26 0
-6  555 64 0
-0
-
-0101000
-+200 0 -202 0 *
-Ve
-0.000100192013810918
-11.5921035220023 -1.61502206570273 -1.38836344529165
-0 0
-
-0101101
-*
-Ed
- 0.000100192013810918 1 1 0
-1  244 0 0.439226064907278 0.47619048
-2  580 64 0 0.439226064907278 0.47619048
-2  581 26 0 0.439226064907278 0.47619048
-6  556 26 0
-6  557 64 0
-0
-
-0101000
-+198 0 -200 0 *
-Ve
-5.98280818217765e-005
-11.5677514756082 -1.61732692438244 -1.3854388743982
-0 0
-
-0101101
-*
-Ed
- 3.64807638922953e-005 1 1 0
-1  244 0 0.42857143 0.439226064907278
-2  582 64 0 0.42857143 0.439226064907278
-2  583 26 0 0.42857143 0.439226064907278
-6  558 26 0
-6  559 64 0
-0
-
-0101000
-+196 0 -198 0 *
-Ve
-5.98280818217765e-005
-11.5173309615065 -1.62216470532931 -1.37925932234333
-0 0
-
-0101101
-*
-Ed
- 5.98280818217765e-005 1 1 0
-1  245 0 0.400518874948611 0.42857143
-2  584 64 0 0.400518874948611 0.42857143
-2  585 26 0 0.400518874948611 0.42857143
-6  560 26 0
-6  561 64 0
-0
-
-0101000
-+194 0 -196 0 *
-Ve
-0.000314030203343478
-11.4919570406201 -1.62478166592107 -1.37589307800223
-0 0
-
-0101101
-*
-Ed
- 5.07286817038082e-005 1 1 0
-1  245 0 0.38095238 0.400518874948611
-2  586 64 0 0.38095238 0.400518874948611
-2  587 26 0 0.38095238 0.400518874948611
-6  562 26 0
-6  563 64 0
-0
-
-0101000
-+192 0 -194 0 *
-Ve
-0.000419642959222465
-11.3639897483438 -1.64238388482431 -1.35282295016919
-0 0
-
-0101101
-*
-Ed
- 0.000314030203343478 1 1 0
-1  246 0 0.33333333 0.38095238
-2  588 64 0 0.33333333 0.38095238
-2  589 26 0 0.33333333 0.38095238
-6  564 26 0
-6  565 64 0
-0
-
-0101000
-+190 0 -192 0 *
-Ve
-0.000419642959222465
-11.3046101155787 -1.65560031280696 -1.33500311111335
-0 0
-
-0101101
-*
-Ed
- 0.000419642959222465 1 1 0
-1  247 0 0.28571429 0.33333333
-2  590 64 0 0.28571429 0.33333333
-2  591 26 0 0.28571429 0.33333333
-6  566 26 0
-6  567 64 0
-0
-
-0101000
-+188 0 -190 0 *
-Ve
-0.000121143108219521
-11.2810233886257 -1.66292486149133 -1.32494032340658
-0 0
-
-0101101
-*
-Ed
- 0.000110327981790704 1 1 0
-1  248 0 0.23809524 0.28571429
-2  592 64 0 0.23809524 0.28571429
-2  593 26 0 0.23809524 0.28571429
-6  568 26 0
-6  569 64 0
-0
-
-0101000
-+186 0 -188 0 *
-Ve
-0.000121143108219521
-11.2578643340571 -1.672842776302 -1.31109607646477
-0 0
-
-0101101
-*
-Ed
- 0.000121143108219521 1 1 0
-1  249 0 0.205967571246725 0.23809524
-2  594 64 0 0.205967571246725 0.23809524
-2  595 26 0 0.205967571246725 0.23809524
-6  570 26 0
-6  571 64 0
-0
-
-0101000
-+184 0 -186 0 *
-Ve
-0.000698186302660722
-11.2480738321926 -1.67852313843327 -1.30305412763939
-0 0
-
-0101101
-*
-Ed
- 6.28838705958967e-005 1 1 0
-1  250 0 0.875 0.885661287061455
-2  596 26 0 0.875 0.885661287061455
-2  597 64 0 0.875 0.885661287061455
-6  572 26 0
-6  573 64 0
-0
-
-0101000
-+184 0 -182 0 *
-Ve
-0.000698186302660722
-11.2229519281623 -1.70382745794937 -1.26617213152758
-0 0
-
-0101101
-*
-Ed
- 0.000698186302660722 1 1 0
-1  250 0 0.885661287061455 0.926804154260539
-2  598 26 0 0.885661287061455 0.926804154260539
-2  599 64 0 0.885661287061455 0.926804154260539
-6  574 26 0
-6  575 64 0
-0
-
-0101000
-+182 0 -180 0 *
-Ve
-0.000717346361611613
-11.2195260373578 -1.72876789393421 -1.22802415636908
-0 0
-
-0101101
-*
-Ed
- 0.000687364310020024 1 1 0
-1  250 0 0.926804154260539 0.963204869208055
-2  600 26 0 0.926804154260539 0.963204869208055
-2  601 64 0 0.926804154260539 0.963204869208055
-6  576 26 0
-6  577 64 0
-0
-
-0101000
-+180 0 -178 0 *
-Ve
-0.000717346361611613
-11.2233642208145 -1.73910600437289 -1.21164554112822
-0 0
-
-0101101
-*
-Ed
- 0.000717346361611613 1 1 0
-1  250 0 0.963204869208055 0.978128680339632
-2  602 26 0 0.963204869208055 0.978128680339632
-2  603 64 0 0.963204869208055 0.978128680339632
-6  578 26 0
-6  579 64 0
-0
-
-0101000
-+178 0 -176 0 *
-Ed
- 0.000624086605695706 1 1 0
-1  250 0 0.978128680339632 1
-2  604 26 0 0.978128680339632 1
-2  605 64 0 0.978128680339632 1
-6  580 26 0
-6  581 64 0
-0
-
-0101000
-+176 0 -364 0 *
-Ed
- 1e-007 1 1 0
-1  251 0 0.69078275 1
-2  606 26 0 0.69078275 1
-2  607 27 0 0.69078275 1
-6  582 26 0
-6  583 27 0
-0
-
-0101000
-+414 0 -316 0 *
-Wi
-
-0101000
-+314 0 +312 0 +310 0 -308 0 -306 0 -304 0 -302 0 -300 0 -298 0 -296 0 
--294 0 -292 0 -290 0 -288 0 -286 0 -284 0 -282 0 -280 0 -278 0 -276 0 
--274 0 -272 0 -270 0 -268 0 -266 0 +264 0 +262 0 +260 0 -258 0 -256 0 
--254 0 -252 0 -250 0 -248 0 -246 0 +245 0 -561 0 -321 0 -243 0 -241 0 
--239 0 -237 0 -235 0 -233 0 -231 0 +229 0 -227 0 -225 0 +223 0 -221 0 
--219 0 -217 0 -215 0 -213 0 -211 0 -209 0 -207 0 +205 0 -203 0 -201 0 
--199 0 -197 0 -195 0 -193 0 -191 0 -189 0 -187 0 -185 0 -183 0 +181 0 
-+179 0 +177 0 +175 0 +174 0 -319 0 +411 0 +173 0 *
-Fa
-0  1.00000004749745e-010 26 0
-2  26
-0101000
-+172 0 *
-Ed
- 1e-007 1 1 0
-1  252 0 0 1
-2  608 27 0 0 1
-2  609 66 0 0 1
-6  584 27 0
-6  585 66 0
-0
-
-0101000
-+416 0 -568 0 *
-Ve
-0.000376478541963114
-16.7625991892966 1.75436858685814 -1.18146817674002
-0 0
-
-0101101
-*
-Ed
- 0.000234577959041615 1 1 0
-1  253 0 0 0.165915009955367
-2  610 27 0 0 0.165915009955367
-2  611 69 0 0 0.165915009955367
-6  586 27 0
-6  587 69 0
-0
-
-0101000
-+247 0 -169 0 *
-Ve
-0.000376478541963114
-15.4046094265513 1.88092055974603 -0.9381939196926
-0 0
-
-0101101
-*
-Ed
- 0.000376478541963114 1 1 0
-1  253 0 0.165915009955367 0.59182005246956
-2  612 27 0 0.165915009955367 0.59182005246956
-2  613 69 0 0.165915009955367 0.59182005246956
-6  588 69 0
-0
-
-0101000
-+169 0 -167 0 *
-Ve
-0.000132847958045501
-14.0214147184814 1.92383994562749 -0.832597821203398
-0 0
-
-0101101
-*
-Ed
- 6.52183068219504e-005 1 1 0
-1  254 0 0 0.33333333
-2  614 69 0 0 0.33333333
-2  615 27 0 0 0.33333333
-6  589 69 0
-0
-
-0101000
-+165 0 -167 0 *
-Ve
-0.000139898563757361
-13.0936597392712 1.92471312491465 -0.831011182606773
-0 0
-
-0101101
-*
-Ed
- 0.000132847958045501 1 1 0
-1  255 0 0 0.409295174620928
-2  616 27 0 0 0.409295174620928
-2  617 70 0 0 0.409295174620928
-6  590 27 0
-6  591 70 0
-0
-
-0101000
-+165 0 -163 0 *
-Ve
-0.000139898563757361
-11.7544104008045 1.87810315470511 -0.947904219070532
-0 0
-
-0101101
-*
-Ed
- 0.000139898563757361 1 1 0
-1  255 0 0.409295174620928 1
-2  618 27 0 0.409295174620928 1
-2  619 70 0 0.409295174620928 1
-6  592 27 0
-6  593 70 0
-0
-
-0101000
-+163 0 -161 0 *
-Ve
-9.6220078586371e-005
-11.7218000636523 1.87507838103017 -0.95479830520242
-0 0
-
-0101101
-*
-Ed
- 9.6220078586371e-005 1 1 0
-1  256 0 0.9 1
-2  620 71 0 0.9 1
-2  621 27 0 0.9 1
-6  594 27 0
-6  595 71 0
-0
-
-0101000
-+159 0 -161 0 *
-Ve
-0.0148545908347499
-11.7106499732683 1.87402286085446 -0.957189877704144
-0 0
-
-0101101
-*
-Ed
- 3.49631542220774e-005 1 1 0
-1  257 0 0.880853970078994 0.9
-2  622 71 0 0.880853970078994 0.9
-2  623 27 0 0.880853970078994 0.9
-6  596 27 0
-6  597 71 0
-0
-
-0101000
-+157 0 -159 0 *
-Ve
-0.0148545908347499
-11.6720086193906 1.87055058284638 -0.964993759678242
-0 0
-
-0101101
-*
-Ed
- 0.0148545908347499 1 1 0
-1  258 0 0.2 0.4
-2  624 27 0 0.2 0.4
-2  625 71 0 0.2 0.4
-6  598 27 0
-6  599 71 0
-0
-
-0101000
-+157 0 -155 0 *
-Ve
-0.0148545841937048
-11.6087807714995 1.86418755123253 -0.979072878586238
-0 0
-
-0101101
-*
-Ed
- 0.0148545841937048 1 1 0
-1  259 0 0.7 0.8
-2  626 71 0 0.7 0.8
-2  627 27 0 0.7 0.8
-6  600 27 0
-6  601 71 0
-0
-
-0101000
-+153 0 -155 0 *
-Ve
-0.000444715675540264
-11.5825224317067 1.8612208585644 -0.985540024529965
-0 0
-
-0101101
-*
-Ed
- 0.000444715675540264 1 1 0
-1  260 0 0.482462206547696 0.511540248577535
-2  628 27 0 0.482462206547696 0.511540248577535
-2  629 71 0 0.482462206547696 0.511540248577535
-6  602 27 0
-6  603 71 0
-0
-
-0101000
-+153 0 -151 0 *
-Ve
-0.000407622420261026
-11.567654823367 1.85950792170499 -0.989247396559192
-0 0
-
-0101101
-*
-Ed
- 0.000407622420261026 1 1 0
-1  260 0 0.511540248577535 0.528699558598993
-2  630 27 0 0.511540248577535 0.528699558598993
-2  631 71 0 0.511540248577535 0.528699558598993
-6  604 27 0
-6  605 71 0
-0
-
-0101000
-+151 0 -149 0 *
-Ve
-0.000227377531925042
-11.52340267575 1.85388136264107 -1.00128923936046
-0 0
-
-0101101
-*
-Ed
- 0.000204463498965979 1 1 0
-1  261 0 0.439635627177706 0.5
-2  632 71 0 0.439635627177706 0.5
-2  633 27 0 0.439635627177706 0.5
-6  606 27 0
-6  607 71 0
-0
-
-0101000
-+147 0 -149 0 *
-Ve
-0.000476015327233677
-11.4889218416215 1.84866451038626 -1.01226962503403
-0 0
-
-0101101
-*
-Ed
- 0.000227377531925042 1 1 0
-1  262 0 0.6 0.614734712035438
-2  634 27 0 0.6 0.614734712035438
-2  635 71 0 0.6 0.614734712035438
-6  608 27 0
-6  609 71 0
-0
-
-0101000
-+147 0 -145 0 *
-Ve
-0.000514785925463472
-11.4377184328134 1.83985132994319 -1.0304467840569
-0 0
-
-0101101
-*
-Ed
- 0.000476015327233677 1 1 0
-1  263 0 0.3 0.4
-2  636 71 0 0.3 0.4
-2  637 27 0 0.3 0.4
-6  610 27 0
-6  611 71 0
-0
-
-0101000
-+143 0 -145 0 *
-Ve
-0.000569926311740821
-11.3800477743783 1.8269038501845 -1.05634369821163
-0 0
-
-0101101
-*
-Ed
- 0.000514785925463472 1 1 0
-1  264 0 0.2 0.3
-2  638 71 0 0.2 0.3
-2  639 27 0 0.2 0.3
-6  612 27 0
-6  613 71 0
-0
-
-0101000
-+141 0 -143 0 *
-Ve
-0.000569926311740821
-11.3205173885153 1.80812062662728 -1.09235827710965
-0 0
-
-0101101
-*
-Ed
- 0.000569926311740821 1 1 0
-1  262 0 0.674965095271805 0.720359481525137
-2  640 27 0 0.674965095271805 0.720359481525137
-2  641 71 0 0.674965095271805 0.720359481525137
-6  614 27 0
-6  615 71 0
-0
-
-0101000
-+141 0 -139 0 *
-Ve
-0.000547504614707718
-11.241991866609 1.76167618021327 -1.17463542909946
-0 0
-
-0101101
-*
-Ed
- 0.000547504614707718 1 1 0
-1  262 0 0.720359481525137 0.8
-2  642 27 0 0.720359481525137 0.8
-2  643 71 0 0.720359481525137 0.8
-6  616 27 0
-6  617 71 0
-0
-
-0101000
-+139 0 -137 0 *
-Ed
- 2.27103906963197e-006 1 1 0
-1  265 0 0 0.0107143665106604
-2  644 71 0 0 0.0107143665106604
-2  645 27 0 0 0.0107143665106604
-6  618 27 0
-6  619 71 0
-0
-
-0101000
-+316 0 -137 0 *
-Wi
-
-0101000
--173 0 -413 0 +170 0 +560 0 -245 0 +168 0 +166 0 -164 0 +162 0 +160 0 
--158 0 -156 0 +154 0 -152 0 +150 0 +148 0 -146 0 +144 0 -142 0 -140 0 
-+138 0 +136 0 -135 0 *
-Fa
-0  1.00000004749745e-010 27 0
-2  27
-0101000
-+134 0 *
-Ed
- 1e-007 1 1 0
-1  266 0 0 2.49917007
-2  646 55 0 0 2.49917007
-2  647 62 0 0 2.49917007
-6  620 55 0
-6  621 62 0
-0
-
-0101000
-+405 0 -329 0 *
-Wi
-
-0101000
--328 0 -330 0 -361 0 -403 0 +132 0 *
-Fa
-0  1.00000004749745e-010 55 0
-2  55
-0101000
-+131 0 *
-Ed
- 1e-007 1 1 0
-1  267 0 0 1.72905437
-2  648 62 0 0 1.72905437
-2  649 63 0 0 1.72905437
-6  622 62 0
-6  623 63 0
-0
-
-0101000
-+382 0 -323 0 *
-Wi
-
-0101000
--132 0 -380 0 +129 0 -322 0 -324 0 +326 0 *
-Fa
-0  1.00000004749745e-010 62 0
-2  62
-0101000
-+128 0 *
-Ed
- 1e-007 1 1 0
-1  268 0 0.01103422 1.98405473
-2  650 63 0 0.01103422 1.98405473
-2  651 64 0 0.01103422 1.98405473
-6  624 63 0
-6  625 64 0
-0
-
-0101000
-+377 0 -230 0 *
-Wi
-
-0101000
--129 0 -376 0 +126 0 -229 0 +231 0 +233 0 +235 0 +237 0 +239 0 +241 0 
-+243 0 *
-Fa
-0  1.00000004749745e-010 63 0
-2  63
-0101000
-+125 0 *
-Wi
-
-0101000
--174 0 -175 0 -177 0 -179 0 -181 0 +183 0 +185 0 +187 0 +189 0 +191 0 
-+193 0 +195 0 +197 0 +199 0 +201 0 +203 0 -205 0 +207 0 +209 0 +211 0 
-+213 0 +215 0 +217 0 +219 0 +221 0 -223 0 +225 0 +227 0 -126 0 -371 0 
--363 0 *
-Fa
-0  1.00000004749745e-010 64 0
-2  64
-0101000
-+123 0 *
-Ve
-2.67872541616364e-007
-17.2205222879309 6.33368591083392 -0.716459929370019
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  269 0 0 1.72904906
-2  652 69 0 0 1.72904906
-2  653 68 0 0 1.72904906
-6  626 69 0
-6  627 68 0
-0
-
-0101000
-+247 0 -121 0 *
-Ve
-2.67872541616364e-007
-15.178436250937 6.33367198983326 -0.437746756651854
-0 0
-
-0101101
-*
-Ed
- 2.67872541616364e-007 1 1 0
-1  270 0 5.543e-005 1.00005543
-2  654 69 0 5.543e-005 1.00005543
-2  655 72 0 5.543e-005 1.00005543
-6  628 69 0
-6  629 72 0
-0
-
-0101000
-+121 0 -119 0 *
-Ed
- 1e-007 1 1 0
-1  271 0 0.17394647 1.82447971
-2  656 69 0 0.17394647 1.82447971
-2  657 70 0 0.17394647 1.82447971
-6  630 69 0
-6  631 70 0
-0
-
-0101000
-+119 0 -165 0 *
-Wi
-
-0101000
-+120 0 +118 0 +117 0 +164 0 -166 0 -168 0 *
-Fa
-0  1.00000004749745e-010 69 0
-2  69
-0101000
-+116 0 *
-Ve
-9.64067992174276e-007
-15.4035701016303 6.3336158858306 -0.843981276536958
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  272 0 0.01152171 2.07179401
-2  658 68 0 0.01152171 2.07179401
-2  659 67 0 0.01152171 2.07179401
-6  632 68 0
-6  633 67 0
-0
-
-0101000
-+263 0 -114 0 *
-Ed
- 1e-007 1 1 0
-1  273 0 6.281e-005 1.00006281
-2  660 68 0 6.281e-005 1.00006281
-2  661 73 0 6.281e-005 1.00006281
-6  634 68 0
-6  635 73 0
-0
-
-0101000
-+114 0 -121 0 *
-Wi
-
-0101000
-+246 0 +248 0 +250 0 +252 0 +254 0 +256 0 +258 0 -260 0 +113 0 +112 0 
--120 0 *
-Fa
-0  1.00000004749745e-010 68 0
-2  68
-0101000
-+111 0 *
-Ve
-1.18853916454287e-006
-19.4649687145364 16.2690729827395 0.155572182299282
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  274 0 3.88e-005 8.09360706
-2  662 73 0 3.88e-005 8.09360706
-2  663 74 0 3.88e-005 8.09360706
-6  636 73 0
-6  637 74 0
-0
-
-0101000
-+114 0 -109 0 *
-Ve
-7.01160311096019e-007
-20.2590217622519 16.2691035827409 0.211302165326314
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  275 0 6.281e-005 1.00006281
-2  664 73 0 6.281e-005 1.00006281
-2  665 75 0 6.281e-005 1.00006281
-6  638 75 0
-0
-
-0101000
-+109 0 -107 0 *
-Ed
- 1e-007 1 1 0
-1  276 0 3.88e-005 8.09360706
-2  666 73 0 3.88e-005 8.09360706
-2  667 72 0 3.88e-005 8.09360706
-6  639 73 0
-6  640 72 0
-0
-
-0101000
-+107 0 -121 0 *
-Wi
-
-0101000
--112 0 +108 0 +106 0 +105 0 *
-Fa
-0  1.00000004749745e-010 73 0
-2  73
-0101000
-+104 0 *
-Ed
- 7.01160311059545e-007 0 0 1
-2  668 75 0 0 1
-6  641 75 0
-0
-
-0101000
-+107 0 -107 0 *
-Ve
-7.01160311096019e-007
-19.3665796498631 16.2690975027406 0.333106715941719
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  277 0 0 1
-2  669 76 0 0 1
-2  670 75 0 0 1
-6  642 75 0
-6  643 76 0
-0
-
-0101000
-+101 0 -109 0 *
-Ed
- 7.01160311096019e-007 1 1 0
-1  278 0 5.543e-005 1.00005543
-2  671 72 0 5.543e-005 1.00005543
-2  672 75 0 5.543e-005 1.00005543
-6  644 75 0
-6  645 72 0
-0
-
-0101000
-+107 0 -101 0 *
-Wi
-
-0101000
-+102 0 -106 0 -100 0 -99 0 *
-Fa
-0  1.00000004749745e-010 75 0
-2  75
-0101000
-+98 0 *
-Ve
-6.56665201913112e-007
-18.7445785303197 16.2690985127407 0.302431252674713
-0 0
-
-0101101
-*
-Ve
-1.18853916454287e-006
-18.6177078042936 16.2690957227405 0.240354853816242
-0 0
-
-0101101
-*
-Ed
- 6.56665201913112e-007 1 1 0
-1  279 0 0.00034374 1.00034374
-2  673 77 0 0.00034374 1.00034374
-2  674 76 0 0.00034374 1.00034374
-6  646 76 0
-6  647 77 0
-0
-
-0101000
-+96 0 -95 0 *
-Ed
- 1e-007 1 1 0
-1  280 0 8.022e-005 1.00008022
-2  675 76 0 8.022e-005 1.00008022
-2  676 78 0 8.022e-005 1.00008022
-6  648 76 0
-6  649 78 0
-0
-
-0101000
-+96 0 -101 0 *
-Ed
- 1.18853916454287e-006 1 1 0
-1  281 0 5.799e-005 1.00005799
-2  677 74 0 5.799e-005 1.00005799
-2  678 76 0 5.799e-005 1.00005799
-6  650 76 0
-6  651 74 0
-0
-
-0101000
-+95 0 -109 0 *
-Wi
-
-0101000
--94 0 +93 0 +100 0 -92 0 *
-Fa
-0  1.00000004749745e-010 76 0
-2  76
-0101000
-+91 0 *
-Ed
- 1e-007 1 1 0
-1  282 0 4.95e-005 10.70174454
-2  679 72 0 4.95e-005 10.70174454
-2  680 78 0 4.95e-005 10.70174454
-6  652 72 0
-6  653 78 0
-0
-
-0101000
-+101 0 -119 0 *
-Wi
-
-0101000
-+99 0 +89 0 -118 0 -105 0 *
-Fa
-0  1.00000004749745e-010 72 0
-2  72
-0101000
-+88 0 *
-Ve
-1.55553495045156e-006
-13.7551732833356 6.33367429383337 -0.507938351705776
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  283 0 8.022e-005 1.00008022
-2  681 70 0 8.022e-005 1.00008022
-2  682 78 0 8.022e-005 1.00008022
-6  654 70 0
-0
-
-0101000
-+119 0 -86 0 *
-Ed
- 1e-007 1 1 0
-1  284 0 0.00020743 46.24578153
-2  683 78 0 0.00020743 46.24578153
-2  684 77 0 0.00020743 46.24578153
-6  655 78 0
-6  656 77 0
-0
-
-0101000
-+96 0 -86 0 *
-Wi
-
-0101000
--85 0 -89 0 -93 0 +84 0 *
-Fa
-0  1.00000004749745e-010 78 0
-2  78
-0101000
-+83 0 *
-Ve
-1.55553495045156e-006
-13.4648676895469 6.33366791783307 -0.649981567562466
-0 0
-
-0101101
-*
-Ed
- 1.55553495045156e-006 1 1 0
-1  285 0 0.00034374 1.00034374
-2  685 71 0 0.00034374 1.00034374
-2  686 77 0 0.00034374 1.00034374
-6  657 77 0
-6  658 71 0
-0
-
-0101000
-+86 0 -81 0 *
-Ed
- 1e-007 1 1 0
-1  286 0 0.00020743 46.24578153
-2  687 77 0 0.00020743 46.24578153
-2  688 74 0 0.00020743 46.24578153
-6  659 77 0
-6  660 74 0
-0
-
-0101000
-+95 0 -81 0 *
-Wi
-
-0101000
--80 0 -84 0 +94 0 +79 0 *
-Fa
-0  1.00000004749745e-010 77 0
-2  77
-0101000
-+78 0 *
-Ed
- 9.64067991690433e-007 1 1 0
-1  287 0 5.799e-005 1.00005799
-2  689 67 0 5.799e-005 1.00005799
-2  690 74 0 5.799e-005 1.00005799
-6  661 67 0
-0
-
-0101000
-+81 0 -114 0 *
-Wi
-
-0101000
--76 0 -79 0 +92 0 -108 0 *
-Fa
-0  1.00000004749745e-010 74 0
-2  74
-0101000
-+75 0 *
-Ed
- 1e-007 1 1 0
-1  288 0 0.48200245 12.07364253
-2  691 67 0 0.48200245 12.07364253
-2  692 71 0 0.48200245 12.07364253
-6  662 67 0
-6  663 71 0
-0
-
-0101000
-+316 0 -81 0 *
-Wi
-
-0101000
-+73 0 +76 0 -113 0 -262 0 -264 0 +266 0 +268 0 +270 0 +272 0 +274 0 
-+276 0 +278 0 +280 0 +282 0 +284 0 +286 0 +288 0 +290 0 +292 0 +294 0 
-+296 0 +298 0 +300 0 +302 0 +304 0 +306 0 +308 0 -310 0 -312 0 -314 0 
-*
-Fa
-0  1.00000004749745e-010 67 0
-2  67
-0101000
-+72 0 *
-Ed
- 1e-007 1 1 0
-1  289 0 0.19391945 2.76255209
-2  693 71 0 0.19391945 2.76255209
-2  694 70 0 0.19391945 2.76255209
-6  664 71 0
-6  665 70 0
-0
-
-0101000
-+161 0 -86 0 *
-Wi
-
-0101000
-+135 0 -136 0 -138 0 +140 0 +142 0 -144 0 +146 0 -148 0 -150 0 +152 0 
--154 0 +156 0 +158 0 +70 0 +80 0 -73 0 *
-Fa
-0  1.00000004749745e-010 71 0
-2  71
-0101000
-+69 0 *
-Wi
-
-0101000
--117 0 +85 0 -70 0 -160 0 -162 0 *
-Fa
-0  1.00000004749745e-010 70 0
-2  70
-0101000
-+67 0 *
-Ed
- 1e-007 1 1 0
-1  290 0 0 1
-2  695 51 0 0 1
-2  696 66 0 0 1
-6  666 51 0
-6  667 66 0
-0
-
-0101000
-+410 0 -416 0 *
-Wi
-
-0101000
--408 0 +65 0 -415 0 -445 0 *
-Fa
-0  1.00000004749745e-010 51 0
-2  51
-0101000
-+64 0 *
-Ed
- 1e-007 1 1 0
-1  291 0 0 1
-2  697 66 0 0 1
-2  698 19 0 0 1
-6  668 19 0
-0
-
-0101000
-+566 0 -568 0 *
-Wi
-
-0101000
--65 0 -320 0 +62 0 -170 0 *
-Fa
-0  1.00000004749745e-010 66 0
-2  66
-0101000
-+61 0 *
-Wi
-
-0101000
-+646 0 -567 0 -62 0 -565 0 -653 0 *
-Fa
-0  1.00000004749745e-010 19 0
-2  19
-0101000
-+59 0 *
-Ve
-1e-007
-32.9492818450068 -2.51270011936476e-007 0.385932318830801
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  292 0 0 1
-2  699 5 0 0 1
-2  700 11 0 0 1
-6  669 5 0
-6  670 11 0
-0
-
-0101000
-+754 0 -57 0 *
-Ve
-1e-007
-32.949284715007 -9.00000027138652e-011 1.41444141318236
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  293 0 0 3.00864606
-2  701 5 0 0 3.00864606
-2  702 79 0 0 3.00864606
-6  671 5 0
-6  672 79 0
-0
-
-0101000
-+57 0 -55 0 *
-Ed
- 1e-007 1 1 0
-1  294 0 0 1
-2  703 5 0 0 1
-2  704 20 0 0 1
-6  673 20 0
-0
-
-0101000
-+55 0 -791 0 *
-Wi
-
-0101000
-+56 0 +54 0 +53 0 +790 0 +752 0 *
-Fa
-0  1.00000004749745e-010 5 0
-2  5
-0101000
-+52 0 *
-Ve
-6.5586010698853e-007
-33.8393312472819 3.79883272998346e-010 1.20936400844171
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  295 0 0 1
-2  705 79 0 0 1
-2  706 80 0 0 1
-6  674 79 0
-6  675 80 0
-0
-
-0101000
-+50 0 -55 0 *
-Ve
-6.55925500567648e-007
-33.8393156872812 6.98962595001871e-011 0.672364923019744
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  296 0 0 1
-2  707 79 0 0 1
-2  708 80 0 0 1
-6  676 79 0
-6  677 80 0
-0
-
-0101000
-+57 0 -48 0 *
-Ve
-6.55925500567648e-007
-33.8392977566475 -0.204359191850061 0.94086446581668
-0 0
-
-0101101
-*
-Ed
- 6.55925500567648e-007 1 1 0
-1  297 0 0.5 1
-2  709 81 0 0.5 1
-2  710 79 0 0.5 1
-6  678 81 0
-0
-
-0101000
-+46 0 -48 0 *
-Ed
- 6.5586010698853e-007 1 1 0
-1  298 0 0 0.5
-2  711 81 0 0 0.5
-2  712 79 0 0 0.5
-6  679 81 0
-0
-
-0101000
-+50 0 -46 0 *
-Wi
-
-0101000
-+49 0 -54 0 +47 0 -45 0 -44 0 *
-Fa
-0  1.00000004749745e-010 79 0
-2  79
-0101000
-+43 0 *
-Ed
- 1e-007 1 1 0
-1  299 0 0 1
-2  713 81 0 0 1
-2  714 82 0 0 1
-6  680 81 0
-6  681 82 0
-0
-
-0101000
-+48 0 -50 0 *
-Wi
-
-0101000
-+41 0 +44 0 +45 0 *
-Fa
-0  1.00000004749745e-010 81 0
-2  81
-0101000
-+40 0 *
-Ve
-6.55672648756828e-007
-33.8392977566475 0.204359191626203 0.94086446660868
-0 0
-
-0101101
-*
-Ed
- 6.55659727053423e-007 1 1 0
-1  300 0 0 0.5
-2  715 82 0 0 0.5
-2  716 80 0 0 0.5
-6  682 82 0
-6  683 80 0
-0
-
-0101000
-+48 0 -38 0 *
-Ed
- 6.55672648756828e-007 1 1 0
-1  301 0 0.5 1
-2  717 82 0 0.5 1
-2  718 80 0 0.5 1
-6  684 82 0
-6  685 80 0
-0
-
-0101000
-+38 0 -50 0 *
-Wi
-
-0101000
-+37 0 +36 0 -41 0 *
-Fa
-0  1.00000004749745e-010 82 0
-2  82
-0101000
-+35 0 *
-Ed
- 1e-007 1 1 0
-1  302 0 0 3.00408138
-2  719 11 0 0 3.00408138
-2  720 80 0 0 3.00408138
-6  686 80 0
-6  687 11 0
-0
-
-0101000
-+55 0 -57 0 *
-Wi
-
-0101000
--49 0 -36 0 -37 0 -47 0 -33 0 *
-Fa
-0  1.00000004749745e-010 80 0
-2  80
-0101000
-+32 0 *
-Ed
- 1e-007 1 1 0
-1  303 0 0 1
-2  721 11 0 0 1
-2  722 20 0 0 1
-6  688 20 0
-0
-
-0101000
-+726 0 -55 0 *
-Wi
-
-0101000
--56 0 -753 0 +724 0 +30 0 +33 0 *
-Fa
-0  1.00000004749745e-010 11 0
-2  11
-0101000
-+29 0 *
-Ed
- 1.0001000492084e-010 0 0 1
-2  723 20 0 0 1
-6  689 20 0
-0
-
-0101000
-+55 0 -55 0 *
-Wi
-
-0101000
-+27 0 -30 0 -647 0 +651 0 -53 0 *
-Fa
-0  1.00000004749745e-010 20 0
-2  20
-0101000
-+26 0 *
-Ve
-1e-007
-31.9768135388171 6.52772034505006 1.34215900474913
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  304 0 0 55.31688457
-2  724 9 0 0 55.31688457
-2  725 16 0 0 55.31688457
-6  690 9 0
-6  691 16 0
-0
-
-0101000
-+780 0 -24 0 *
-Ve
-1e-007
-32.0208866309104 6.53046184918028 1.31476716144809
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  305 0 0 1
-2  726 9 0 0 1
-2  727 83 0 0 1
-6  692 9 0
-6  693 83 0
-0
-
-0101000
-+24 0 -22 0 *
-Ed
- 1e-007 1 1 0
-1  306 0 10.79509318 65.98696054
-2  728 9 0 10.79509318 65.98696054
-2  729 10 0 10.79509318 65.98696054
-6  694 9 0
-6  695 10 0
-0
-
-0101000
-+22 0 -770 0 *
-Wi
-
-0101000
-+769 0 +771 0 +773 0 -775 0 -777 0 +23 0 +21 0 +20 0 *
-Fa
-0  1.00000004749745e-010 9 0
-2  9
-0101000
-+19 0 *
-Ve
-1e-007
-33.0949317119248 6.52779751805373 1.34157750972151
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  307 0 0 1
-2  730 10 0 0 1
-2  731 83 0 0 1
-6  696 83 0
-0
-
-0101000
-+22 0 -17 0 *
-Ed
- 1e-007 1 1 0
-1  308 0 0 2.72494532
-2  732 10 0 0 2.72494532
-2  733 15 0 0 2.72494532
-6  697 10 0
-6  698 15 0
-0
-
-0101000
-+17 0 -758 0 *
-Wi
-
-0101000
--20 0 +16 0 +15 0 +757 0 -759 0 -761 0 +763 0 +765 0 +767 0 *
-Fa
-0  1.00000004749745e-010 10 0
-2  10
-0101000
-+14 0 *
-Ve
-1e-007
-32.0213115109306 6.52591981196454 1.3601615736042
-0 0
-
-0101101
-*
-Ed
- 1e-007 1 1 0
-1  309 0 0 1
-2  734 83 0 0 1
-2  735 16 0 0 1
-6  699 83 0
-6  700 16 0
-0
-
-0101000
-+24 0 -12 0 *
-Ed
- 1e-007 1 1 0
-1  310 0 0 1
-2  736 83 0 0 1
-2  737 15 0 0 1
-6  701 83 0
-6  702 15 0
-0
-
-0101000
-+12 0 -17 0 *
-Wi
-
-0101000
-+11 0 +10 0 -16 0 -21 0 *
-Fa
-0  1.00000004749745e-010 83 0
-2  83
-0101000
-+9 0 *
-Ed
- 1e-007 1 1 0
-1  311 0 0.49271381 3.01761452
-2  738 16 0 0.49271381 3.01761452
-2  739 15 0 0.49271381 3.01761452
-6  703 16 0
-6  704 15 0
-0
-
-0101000
-+707 0 -12 0 *
-Wi
-
-0101000
-+691 0 +692 0 +694 0 -696 0 +698 0 +700 0 -702 0 +704 0 +7 0 -11 0 
--23 0 *
-Fa
-0  1.00000004749745e-010 16 0
-2  16
-0101000
-+6 0 *
-Wi
-
-0101000
--15 0 -10 0 -7 0 -706 0 +708 0 +710 0 -712 0 -714 0 +716 0 +718 0 
-+720 0 -722 0 *
-Fa
-0  1.00000004749745e-010 15 0
-2  15
-0101000
-+4 0 *
-Sh
-
-0101000
-+783 0 +729 0 +689 0 +648 0 +613 0 +606 0 +601 0 +596 0 +593 0 +591 0 
-+584 0 +579 0 +574 0 +571 0 +569 0 +558 0 +548 0 +540 0 +534 0 +526 0 
-+516 0 +512 0 +507 0 +498 0 +493 0 +485 0 +482 0 +477 0 +470 0 +465 0 
-+462 0 +457 0 +450 0 +443 0 +438 0 +431 0 +428 0 +423 0 +420 0 +417 0 
-+406 0 +396 0 +389 0 +383 0 +378 0 +373 0 +368 0 +365 0 +332 0 +317 0 
-+171 0 +133 0 +130 0 +127 0 +124 0 +122 0 +115 0 +110 0 +103 0 +97 0 
-+90 0 +87 0 +82 0 +77 0 +74 0 +71 0 +68 0 +66 0 +63 0 +60 0 
-+58 0 +51 0 +42 0 +39 0 +34 0 +31 0 +28 0 +25 0 +18 0 +13 0 
-+8 0 +5 0 +3 0 *
-So
-
-1100000
-+2 0 *
-
-+1 0 
\ No newline at end of file
diff --git a/resources/mesh.png b/resources/mesh.png
deleted file mode 100644 (file)
index f8147b3..0000000
Binary files a/resources/mesh.png and /dev/null differ
diff --git a/resources/mesh_add.png b/resources/mesh_add.png
deleted file mode 100755 (executable)
index 2dde69a..0000000
Binary files a/resources/mesh_add.png and /dev/null differ
diff --git a/resources/mesh_add_sub.png b/resources/mesh_add_sub.png
deleted file mode 100644 (file)
index 20d8d8f..0000000
Binary files a/resources/mesh_add_sub.png and /dev/null differ
diff --git a/resources/mesh_algo_hexa.png b/resources/mesh_algo_hexa.png
deleted file mode 100644 (file)
index 87e50a8..0000000
Binary files a/resources/mesh_algo_hexa.png and /dev/null differ
diff --git a/resources/mesh_algo_mefisto.png b/resources/mesh_algo_mefisto.png
deleted file mode 100644 (file)
index 21616d0..0000000
Binary files a/resources/mesh_algo_mefisto.png and /dev/null differ
diff --git a/resources/mesh_algo_netgen.png b/resources/mesh_algo_netgen.png
deleted file mode 100644 (file)
index 87e50a8..0000000
Binary files a/resources/mesh_algo_netgen.png and /dev/null differ
diff --git a/resources/mesh_algo_quad.png b/resources/mesh_algo_quad.png
deleted file mode 100644 (file)
index f31b93c..0000000
Binary files a/resources/mesh_algo_quad.png and /dev/null differ
diff --git a/resources/mesh_algo_regular.png b/resources/mesh_algo_regular.png
deleted file mode 100644 (file)
index 47593f1..0000000
Binary files a/resources/mesh_algo_regular.png and /dev/null differ
diff --git a/resources/mesh_algo_tetra.png b/resources/mesh_algo_tetra.png
deleted file mode 100644 (file)
index 3fb67d5..0000000
Binary files a/resources/mesh_algo_tetra.png and /dev/null differ
diff --git a/resources/mesh_angle.png b/resources/mesh_angle.png
deleted file mode 100644 (file)
index 5b03e57..0000000
Binary files a/resources/mesh_angle.png and /dev/null differ
diff --git a/resources/mesh_area.png b/resources/mesh_area.png
deleted file mode 100644 (file)
index 9c51c32..0000000
Binary files a/resources/mesh_area.png and /dev/null differ
diff --git a/resources/mesh_aspect.png b/resources/mesh_aspect.png
deleted file mode 100644 (file)
index ffc98c8..0000000
Binary files a/resources/mesh_aspect.png and /dev/null differ
diff --git a/resources/mesh_aspect_3d.png b/resources/mesh_aspect_3d.png
deleted file mode 100644 (file)
index 4792634..0000000
Binary files a/resources/mesh_aspect_3d.png and /dev/null differ
diff --git a/resources/mesh_compute.png b/resources/mesh_compute.png
deleted file mode 100644 (file)
index c06dc7b..0000000
Binary files a/resources/mesh_compute.png and /dev/null differ
diff --git a/resources/mesh_connectivity.png b/resources/mesh_connectivity.png
deleted file mode 100644 (file)
index 9ce3e44..0000000
Binary files a/resources/mesh_connectivity.png and /dev/null differ
diff --git a/resources/mesh_cutGroups.png b/resources/mesh_cutGroups.png
deleted file mode 100644 (file)
index b06bb80..0000000
Binary files a/resources/mesh_cutGroups.png and /dev/null differ
diff --git a/resources/mesh_cutquad.png b/resources/mesh_cutquad.png
deleted file mode 100644 (file)
index 836343c..0000000
Binary files a/resources/mesh_cutquad.png and /dev/null differ
diff --git a/resources/mesh_deleteGroups.png b/resources/mesh_deleteGroups.png
deleted file mode 100644 (file)
index b7126e0..0000000
Binary files a/resources/mesh_deleteGroups.png and /dev/null differ
diff --git a/resources/mesh_diagonal.png b/resources/mesh_diagonal.png
deleted file mode 100644 (file)
index c997cef..0000000
Binary files a/resources/mesh_diagonal.png and /dev/null differ
diff --git a/resources/mesh_edit.png b/resources/mesh_edit.png
deleted file mode 100644 (file)
index 5ad2f15..0000000
Binary files a/resources/mesh_edit.png and /dev/null differ
diff --git a/resources/mesh_edit_group.png b/resources/mesh_edit_group.png
deleted file mode 100644 (file)
index 4747a66..0000000
Binary files a/resources/mesh_edit_group.png and /dev/null differ
diff --git a/resources/mesh_extrusion.png b/resources/mesh_extrusion.png
deleted file mode 100644 (file)
index 76909c0..0000000
Binary files a/resources/mesh_extrusion.png and /dev/null differ
diff --git a/resources/mesh_extrusionpath.png b/resources/mesh_extrusionpath.png
deleted file mode 100644 (file)
index 47f0aa7..0000000
Binary files a/resources/mesh_extrusionpath.png and /dev/null differ
diff --git a/resources/mesh_free_edges.png b/resources/mesh_free_edges.png
deleted file mode 100755 (executable)
index 5813e11..0000000
Binary files a/resources/mesh_free_edges.png and /dev/null differ
diff --git a/resources/mesh_free_edges_2d.png b/resources/mesh_free_edges_2d.png
deleted file mode 100644 (file)
index cc6cdb8..0000000
Binary files a/resources/mesh_free_edges_2d.png and /dev/null differ
diff --git a/resources/mesh_hexa.png b/resources/mesh_hexa.png
deleted file mode 100644 (file)
index b4b64b2..0000000
Binary files a/resources/mesh_hexa.png and /dev/null differ
diff --git a/resources/mesh_hexa_n.png b/resources/mesh_hexa_n.png
deleted file mode 100644 (file)
index 74532b4..0000000
Binary files a/resources/mesh_hexa_n.png and /dev/null differ
diff --git a/resources/mesh_hypo_area.png b/resources/mesh_hypo_area.png
deleted file mode 100644 (file)
index 487fdb7..0000000
Binary files a/resources/mesh_hypo_area.png and /dev/null differ
diff --git a/resources/mesh_hypo_edit.png b/resources/mesh_hypo_edit.png
deleted file mode 100644 (file)
index 8f61dea..0000000
Binary files a/resources/mesh_hypo_edit.png and /dev/null differ
diff --git a/resources/mesh_hypo_length.png b/resources/mesh_hypo_length.png
deleted file mode 100644 (file)
index d6106a3..0000000
Binary files a/resources/mesh_hypo_length.png and /dev/null differ
diff --git a/resources/mesh_hypo_segment.png b/resources/mesh_hypo_segment.png
deleted file mode 100644 (file)
index 2d92450..0000000
Binary files a/resources/mesh_hypo_segment.png and /dev/null differ
diff --git a/resources/mesh_hypo_volume.png b/resources/mesh_hypo_volume.png
deleted file mode 100644 (file)
index 925a5ba..0000000
Binary files a/resources/mesh_hypo_volume.png and /dev/null differ
diff --git a/resources/mesh_info.png b/resources/mesh_info.png
deleted file mode 100644 (file)
index b0c0c17..0000000
Binary files a/resources/mesh_info.png and /dev/null differ
diff --git a/resources/mesh_init.png b/resources/mesh_init.png
deleted file mode 100644 (file)
index dbf1a2e..0000000
Binary files a/resources/mesh_init.png and /dev/null differ
diff --git a/resources/mesh_intersectGroups.png b/resources/mesh_intersectGroups.png
deleted file mode 100644 (file)
index 7d473cf..0000000
Binary files a/resources/mesh_intersectGroups.png and /dev/null differ
diff --git a/resources/mesh_length.png b/resources/mesh_length.png
deleted file mode 100644 (file)
index 64ddd51..0000000
Binary files a/resources/mesh_length.png and /dev/null differ
diff --git a/resources/mesh_length_2d.png b/resources/mesh_length_2d.png
deleted file mode 100644 (file)
index 0009dc0..0000000
Binary files a/resources/mesh_length_2d.png and /dev/null differ
diff --git a/resources/mesh_line.png b/resources/mesh_line.png
deleted file mode 100644 (file)
index f699e13..0000000
Binary files a/resources/mesh_line.png and /dev/null differ
diff --git a/resources/mesh_line_n.png b/resources/mesh_line_n.png
deleted file mode 100644 (file)
index ce082c6..0000000
Binary files a/resources/mesh_line_n.png and /dev/null differ
diff --git a/resources/mesh_make_group.png b/resources/mesh_make_group.png
deleted file mode 100644 (file)
index 19ba2e6..0000000
Binary files a/resources/mesh_make_group.png and /dev/null differ
diff --git a/resources/mesh_merge_elements.png b/resources/mesh_merge_elements.png
deleted file mode 100644 (file)
index 3bc292f..0000000
Binary files a/resources/mesh_merge_elements.png and /dev/null differ
diff --git a/resources/mesh_merge_nodes.png b/resources/mesh_merge_nodes.png
deleted file mode 100644 (file)
index 275862e..0000000
Binary files a/resources/mesh_merge_nodes.png and /dev/null differ
diff --git a/resources/mesh_move_node.png b/resources/mesh_move_node.png
deleted file mode 100644 (file)
index 678add5..0000000
Binary files a/resources/mesh_move_node.png and /dev/null differ
diff --git a/resources/mesh_multi_edges.png b/resources/mesh_multi_edges.png
deleted file mode 100755 (executable)
index 0a36db1..0000000
Binary files a/resources/mesh_multi_edges.png and /dev/null differ
diff --git a/resources/mesh_multi_edges_2d.png b/resources/mesh_multi_edges_2d.png
deleted file mode 100644 (file)
index 627ceeb..0000000
Binary files a/resources/mesh_multi_edges_2d.png and /dev/null differ
diff --git a/resources/mesh_orientation.png b/resources/mesh_orientation.png
deleted file mode 100644 (file)
index 9639b31..0000000
Binary files a/resources/mesh_orientation.png and /dev/null differ
diff --git a/resources/mesh_pattern.png b/resources/mesh_pattern.png
deleted file mode 100755 (executable)
index 9440269..0000000
Binary files a/resources/mesh_pattern.png and /dev/null differ
diff --git a/resources/mesh_points.png b/resources/mesh_points.png
deleted file mode 100644 (file)
index f0d2c78..0000000
Binary files a/resources/mesh_points.png and /dev/null differ
diff --git a/resources/mesh_polygon.png b/resources/mesh_polygon.png
deleted file mode 100644 (file)
index a1f671b..0000000
Binary files a/resources/mesh_polygon.png and /dev/null differ
diff --git a/resources/mesh_polyhedron.png b/resources/mesh_polyhedron.png
deleted file mode 100644 (file)
index f475dec..0000000
Binary files a/resources/mesh_polyhedron.png and /dev/null differ
diff --git a/resources/mesh_pyramid.png b/resources/mesh_pyramid.png
deleted file mode 100644 (file)
index 480f573..0000000
Binary files a/resources/mesh_pyramid.png and /dev/null differ
diff --git a/resources/mesh_pyramid_n.png b/resources/mesh_pyramid_n.png
deleted file mode 100644 (file)
index edde6a5..0000000
Binary files a/resources/mesh_pyramid_n.png and /dev/null differ
diff --git a/resources/mesh_quad.png b/resources/mesh_quad.png
deleted file mode 100644 (file)
index 1eba33e..0000000
Binary files a/resources/mesh_quad.png and /dev/null differ
diff --git a/resources/mesh_quad_n.png b/resources/mesh_quad_n.png
deleted file mode 100644 (file)
index 499068e..0000000
Binary files a/resources/mesh_quad_n.png and /dev/null differ
diff --git a/resources/mesh_rem_element.png b/resources/mesh_rem_element.png
deleted file mode 100644 (file)
index a2bb0f1..0000000
Binary files a/resources/mesh_rem_element.png and /dev/null differ
diff --git a/resources/mesh_rem_node.png b/resources/mesh_rem_node.png
deleted file mode 100644 (file)
index c4f2834..0000000
Binary files a/resources/mesh_rem_node.png and /dev/null differ
diff --git a/resources/mesh_remove.png b/resources/mesh_remove.png
deleted file mode 100755 (executable)
index 960f1ac..0000000
Binary files a/resources/mesh_remove.png and /dev/null differ
diff --git a/resources/mesh_renumbering_elements.png b/resources/mesh_renumbering_elements.png
deleted file mode 100644 (file)
index b7bcc1c..0000000
Binary files a/resources/mesh_renumbering_elements.png and /dev/null differ
diff --git a/resources/mesh_renumbering_nodes.png b/resources/mesh_renumbering_nodes.png
deleted file mode 100644 (file)
index dc1cb3d..0000000
Binary files a/resources/mesh_renumbering_nodes.png and /dev/null differ
diff --git a/resources/mesh_revolution.png b/resources/mesh_revolution.png
deleted file mode 100644 (file)
index 3190e5f..0000000
Binary files a/resources/mesh_revolution.png and /dev/null differ
diff --git a/resources/mesh_rotation.png b/resources/mesh_rotation.png
deleted file mode 100644 (file)
index b971d45..0000000
Binary files a/resources/mesh_rotation.png and /dev/null differ
diff --git a/resources/mesh_set_algo.png b/resources/mesh_set_algo.png
deleted file mode 100644 (file)
index d14d686..0000000
Binary files a/resources/mesh_set_algo.png and /dev/null differ
diff --git a/resources/mesh_set_hypo.png b/resources/mesh_set_hypo.png
deleted file mode 100644 (file)
index 68949b8..0000000
Binary files a/resources/mesh_set_hypo.png and /dev/null differ
diff --git a/resources/mesh_sew_bordertoside.png b/resources/mesh_sew_bordertoside.png
deleted file mode 100644 (file)
index 48a3ba1..0000000
Binary files a/resources/mesh_sew_bordertoside.png and /dev/null differ
diff --git a/resources/mesh_sew_conform_freeborders.png b/resources/mesh_sew_conform_freeborders.png
deleted file mode 100644 (file)
index fff04a2..0000000
Binary files a/resources/mesh_sew_conform_freeborders.png and /dev/null differ
diff --git a/resources/mesh_sew_freeborders.png b/resources/mesh_sew_freeborders.png
deleted file mode 100644 (file)
index 4b0f694..0000000
Binary files a/resources/mesh_sew_freeborders.png and /dev/null differ
diff --git a/resources/mesh_sew_sideelements.png b/resources/mesh_sew_sideelements.png
deleted file mode 100644 (file)
index 2c64b87..0000000
Binary files a/resources/mesh_sew_sideelements.png and /dev/null differ
diff --git a/resources/mesh_shading.png b/resources/mesh_shading.png
deleted file mode 100644 (file)
index a2535af..0000000
Binary files a/resources/mesh_shading.png and /dev/null differ
diff --git a/resources/mesh_shrink.png b/resources/mesh_shrink.png
deleted file mode 100644 (file)
index 59e7b40..0000000
Binary files a/resources/mesh_shrink.png and /dev/null differ
diff --git a/resources/mesh_skew.png b/resources/mesh_skew.png
deleted file mode 100644 (file)
index 45cca1b..0000000
Binary files a/resources/mesh_skew.png and /dev/null differ
diff --git a/resources/mesh_smoothing.png b/resources/mesh_smoothing.png
deleted file mode 100644 (file)
index 0da777d..0000000
Binary files a/resources/mesh_smoothing.png and /dev/null differ
diff --git a/resources/mesh_symmetry_axis.png b/resources/mesh_symmetry_axis.png
deleted file mode 100644 (file)
index dd5e19b..0000000
Binary files a/resources/mesh_symmetry_axis.png and /dev/null differ
diff --git a/resources/mesh_symmetry_plane.png b/resources/mesh_symmetry_plane.png
deleted file mode 100644 (file)
index 91a7203..0000000
Binary files a/resources/mesh_symmetry_plane.png and /dev/null differ
diff --git a/resources/mesh_symmetry_point.png b/resources/mesh_symmetry_point.png
deleted file mode 100644 (file)
index 81a29a7..0000000
Binary files a/resources/mesh_symmetry_point.png and /dev/null differ
diff --git a/resources/mesh_taper.png b/resources/mesh_taper.png
deleted file mode 100644 (file)
index 68dbc66..0000000
Binary files a/resources/mesh_taper.png and /dev/null differ
diff --git a/resources/mesh_tetra.png b/resources/mesh_tetra.png
deleted file mode 100644 (file)
index 6812d5b..0000000
Binary files a/resources/mesh_tetra.png and /dev/null differ
diff --git a/resources/mesh_tetra_n.png b/resources/mesh_tetra_n.png
deleted file mode 100644 (file)
index fa4d0fa..0000000
Binary files a/resources/mesh_tetra_n.png and /dev/null differ
diff --git a/resources/mesh_translation_points.png b/resources/mesh_translation_points.png
deleted file mode 100644 (file)
index 1805c97..0000000
Binary files a/resources/mesh_translation_points.png and /dev/null differ
diff --git a/resources/mesh_translation_vector.png b/resources/mesh_translation_vector.png
deleted file mode 100644 (file)
index dc4f08a..0000000
Binary files a/resources/mesh_translation_vector.png and /dev/null differ
diff --git a/resources/mesh_tree_algo.png b/resources/mesh_tree_algo.png
deleted file mode 100644 (file)
index 61b11bb..0000000
Binary files a/resources/mesh_tree_algo.png and /dev/null differ
diff --git a/resources/mesh_tree_algo_hexa.png b/resources/mesh_tree_algo_hexa.png
deleted file mode 100644 (file)
index cb75b7e..0000000
Binary files a/resources/mesh_tree_algo_hexa.png and /dev/null differ
diff --git a/resources/mesh_tree_algo_mefisto.png b/resources/mesh_tree_algo_mefisto.png
deleted file mode 100644 (file)
index 5375071..0000000
Binary files a/resources/mesh_tree_algo_mefisto.png and /dev/null differ
diff --git a/resources/mesh_tree_algo_netgen.png b/resources/mesh_tree_algo_netgen.png
deleted file mode 100644 (file)
index cb75b7e..0000000
Binary files a/resources/mesh_tree_algo_netgen.png and /dev/null differ
diff --git a/resources/mesh_tree_algo_quad.png b/resources/mesh_tree_algo_quad.png
deleted file mode 100644 (file)
index fe6ce02..0000000
Binary files a/resources/mesh_tree_algo_quad.png and /dev/null differ
diff --git a/resources/mesh_tree_algo_regular.png b/resources/mesh_tree_algo_regular.png
deleted file mode 100644 (file)
index ecd1f73..0000000
Binary files a/resources/mesh_tree_algo_regular.png and /dev/null differ
diff --git a/resources/mesh_tree_algo_tetra.png b/resources/mesh_tree_algo_tetra.png
deleted file mode 100644 (file)
index 9c21a58..0000000
Binary files a/resources/mesh_tree_algo_tetra.png and /dev/null differ
diff --git a/resources/mesh_tree_group.png b/resources/mesh_tree_group.png
deleted file mode 100644 (file)
index cfcfc68..0000000
Binary files a/resources/mesh_tree_group.png and /dev/null differ
diff --git a/resources/mesh_tree_hypo.png b/resources/mesh_tree_hypo.png
deleted file mode 100644 (file)
index 3ab76a6..0000000
Binary files a/resources/mesh_tree_hypo.png and /dev/null differ
diff --git a/resources/mesh_tree_hypo_area.png b/resources/mesh_tree_hypo_area.png
deleted file mode 100644 (file)
index 22c8bd0..0000000
Binary files a/resources/mesh_tree_hypo_area.png and /dev/null differ
diff --git a/resources/mesh_tree_hypo_length.png b/resources/mesh_tree_hypo_length.png
deleted file mode 100644 (file)
index abe34f5..0000000
Binary files a/resources/mesh_tree_hypo_length.png and /dev/null differ
diff --git a/resources/mesh_tree_hypo_segment.png b/resources/mesh_tree_hypo_segment.png
deleted file mode 100644 (file)
index 1957e6d..0000000
Binary files a/resources/mesh_tree_hypo_segment.png and /dev/null differ
diff --git a/resources/mesh_tree_hypo_volume.png b/resources/mesh_tree_hypo_volume.png
deleted file mode 100644 (file)
index fb18ead..0000000
Binary files a/resources/mesh_tree_hypo_volume.png and /dev/null differ
diff --git a/resources/mesh_tree_importedmesh.png b/resources/mesh_tree_importedmesh.png
deleted file mode 100644 (file)
index 0c37d0a..0000000
Binary files a/resources/mesh_tree_importedmesh.png and /dev/null differ
diff --git a/resources/mesh_tree_mesh.png b/resources/mesh_tree_mesh.png
deleted file mode 100644 (file)
index 2a2ff57..0000000
Binary files a/resources/mesh_tree_mesh.png and /dev/null differ
diff --git a/resources/mesh_tree_mesh_warn.png b/resources/mesh_tree_mesh_warn.png
deleted file mode 100644 (file)
index d61b873..0000000
Binary files a/resources/mesh_tree_mesh_warn.png and /dev/null differ
diff --git a/resources/mesh_triangle.png b/resources/mesh_triangle.png
deleted file mode 100644 (file)
index 9a2a6fd..0000000
Binary files a/resources/mesh_triangle.png and /dev/null differ
diff --git a/resources/mesh_triangle_n.png b/resources/mesh_triangle_n.png
deleted file mode 100644 (file)
index a7228d3..0000000
Binary files a/resources/mesh_triangle_n.png and /dev/null differ
diff --git a/resources/mesh_union2tri.png b/resources/mesh_union2tri.png
deleted file mode 100644 (file)
index 88831b9..0000000
Binary files a/resources/mesh_union2tri.png and /dev/null differ
diff --git a/resources/mesh_unionGroups.png b/resources/mesh_unionGroups.png
deleted file mode 100644 (file)
index c3412bb..0000000
Binary files a/resources/mesh_unionGroups.png and /dev/null differ
diff --git a/resources/mesh_uniontri.png b/resources/mesh_uniontri.png
deleted file mode 100644 (file)
index 229cb6a..0000000
Binary files a/resources/mesh_uniontri.png and /dev/null differ
diff --git a/resources/mesh_update.png b/resources/mesh_update.png
deleted file mode 100644 (file)
index 8757e30..0000000
Binary files a/resources/mesh_update.png and /dev/null differ
diff --git a/resources/mesh_vertex.png b/resources/mesh_vertex.png
deleted file mode 100644 (file)
index b85d63a..0000000
Binary files a/resources/mesh_vertex.png and /dev/null differ
diff --git a/resources/mesh_vertex_n.png b/resources/mesh_vertex_n.png
deleted file mode 100644 (file)
index dfbafc9..0000000
Binary files a/resources/mesh_vertex_n.png and /dev/null differ
diff --git a/resources/mesh_wireframe.png b/resources/mesh_wireframe.png
deleted file mode 100644 (file)
index 01e82f0..0000000
Binary files a/resources/mesh_wireframe.png and /dev/null differ
diff --git a/resources/mesh_wrap.png b/resources/mesh_wrap.png
deleted file mode 100644 (file)
index c919168..0000000
Binary files a/resources/mesh_wrap.png and /dev/null differ
diff --git a/resources/pattern_sample_2d.png b/resources/pattern_sample_2d.png
deleted file mode 100755 (executable)
index 290872b..0000000
Binary files a/resources/pattern_sample_2d.png and /dev/null differ
diff --git a/resources/pattern_sample_3D.png b/resources/pattern_sample_3D.png
deleted file mode 100755 (executable)
index b306685..0000000
Binary files a/resources/pattern_sample_3D.png and /dev/null differ
diff --git a/resources/select1.png b/resources/select1.png
deleted file mode 100644 (file)
index 99ebde6..0000000
Binary files a/resources/select1.png and /dev/null differ
diff --git a/resources/standard_mesh_info.png b/resources/standard_mesh_info.png
deleted file mode 100644 (file)
index 0600087..0000000
Binary files a/resources/standard_mesh_info.png and /dev/null differ
diff --git a/src/Controls/Makefile.in b/src/Controls/Makefile.in
deleted file mode 100644 (file)
index 2a862b8..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#  SMESH OBJECT : interactive object for SMESH visualization
-#
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : Makefile.in
-#  Module : SMESH
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@top_srcdir@/idl:$(top_builddir)/idl
-
-@COMMENCE@
-
-EXPORT_HEADERS = SMESH_Controls.hxx SMESH_ControlsDef.hxx
-
-
-# Libraries targets
-
-LIB = libSMESHControls.la
-LIB_SRC = SMESH_Controls.cxx
-
-# Executables targets
-BIN = SMESHControls
-BIN_SRC        = 
-
-CPPFLAGS+=$(OCC_INCLUDES) $(BOOST_CPPFLAGS) -I${KERNEL_ROOT_DIR}/include/salome
-
-LDFLAGS+=$(OCC_KERNEL_LIBS) -L${KERNEL_ROOT_DIR}/lib/salome -lOpUtil -lSMDS -lTKBRep -lTKG3d
-
-LDFLAGSFORBIN += -lSMDS -L${KERNEL_ROOT_DIR}/lib/salome -lOpUtil -lSALOMELocalTrace $(OCC_KERNEL_LIBS) -lTKBRep -lTKG3d
-
-@CONCLUDE@
diff --git a/src/Controls/SMESHControls.cxx b/src/Controls/SMESHControls.cxx
deleted file mode 100644 (file)
index 0c8d145..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "SMESH_ControlsDef.hxx"
-
-int main(int argc, char** argv)
-{
-  using namespace SMESH::Controls;
-  new MinimumAngle();
-  new AspectRatio();
-  new Warping();
-  new Taper();
-  new Skew();
-  new Area();
-  new Length();
-  //  new Length2D();
-  new MultiConnection();
-  //  new MultiConnection2D();
-  new FreeBorders();
-  new LessThan();
-  new MoreThan();
-  new EqualTo();
-  new LogicalNOT();
-  new LogicalAND();
-  new LogicalOR();
-  new ManifoldPart();
-
-  return 1;
-}
diff --git a/src/Controls/SMESH_Controls.cxx b/src/Controls/SMESH_Controls.cxx
deleted file mode 100644 (file)
index 0714f7e..0000000
+++ /dev/null
@@ -1,2332 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-
-#include "SMESH_ControlsDef.hxx"
-
-#include <set>
-
-#include <BRep_Tool.hxx>
-#include <gp_Ax3.hxx>
-#include <gp_Cylinder.hxx>
-#include <gp_Dir.hxx>
-#include <gp_Pnt.hxx>
-#include <gp_Pln.hxx>
-#include <gp_Vec.hxx>
-#include <gp_XYZ.hxx>
-#include <Geom_Plane.hxx>
-#include <Geom_CylindricalSurface.hxx>
-#include <Precision.hxx>
-#include <TColgp_Array1OfXYZ.hxx>
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_SequenceOfAsciiString.hxx>
-#include <TColStd_MapIteratorOfMapOfInteger.hxx>
-#include <TopAbs.hxx>
-#include <TopoDS.hxx>
-#include <TopoDS_Face.hxx>
-#include <TopoDS_Shape.hxx>
-
-#include "SMDS_Mesh.hxx"
-#include "SMDS_Iterator.hxx"
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_VolumeTool.hxx"
-
-
-/*
-                            AUXILIARY METHODS
-*/
-
-namespace{
-  inline double getAngle( const gp_XYZ& P1, const gp_XYZ& P2, const gp_XYZ& P3 )
-  {
-    gp_Vec v1( P1 - P2 ), v2( P3 - P2 );
-
-    return v1.Magnitude() < gp::Resolution() ||
-      v2.Magnitude() < gp::Resolution() ? 0 : v1.Angle( v2 );
-  }
-
-  inline double getArea( const gp_XYZ& P1, const gp_XYZ& P2, const gp_XYZ& P3 )
-  {
-    gp_Vec aVec1( P2 - P1 );
-    gp_Vec aVec2( P3 - P1 );
-    return ( aVec1 ^ aVec2 ).Magnitude() * 0.5;
-  }
-
-  inline double getArea( const gp_Pnt& P1, const gp_Pnt& P2, const gp_Pnt& P3 )
-  {
-    return getArea( P1.XYZ(), P2.XYZ(), P3.XYZ() );
-  }
-
-
-
-  inline double getDistance( const gp_XYZ& P1, const gp_XYZ& P2 )
-  {
-    double aDist = gp_Pnt( P1 ).Distance( gp_Pnt( P2 ) );
-    return aDist;
-  }
-
-  int getNbMultiConnection( const SMDS_Mesh* theMesh, const int theId )
-  {
-    if ( theMesh == 0 )
-      return 0;
-
-    const SMDS_MeshElement* anEdge = theMesh->FindElement( theId );
-    if ( anEdge == 0 || anEdge->GetType() != SMDSAbs_Edge || anEdge->NbNodes() != 2 )
-      return 0;
-
-    TColStd_MapOfInteger aMap;
-
-    int aResult = 0;
-    SMDS_ElemIteratorPtr anIter = anEdge->nodesIterator();
-    if ( anIter != 0 ) {
-      while( anIter->more() ) {
-       const SMDS_MeshNode* aNode = (SMDS_MeshNode*)anIter->next();
-       if ( aNode == 0 )
-         return 0;
-       SMDS_ElemIteratorPtr anElemIter = aNode->GetInverseElementIterator();
-       while( anElemIter->more() ) {
-         const SMDS_MeshElement* anElem = anElemIter->next();
-         if ( anElem != 0 && anElem->GetType() != SMDSAbs_Edge ) {
-           int anId = anElem->GetID();
-
-           if ( anIter->more() )              // i.e. first node
-             aMap.Add( anId );
-           else if ( aMap.Contains( anId ) )
-             aResult++;
-         }
-       }
-      }
-    }
-
-    return aResult;
-  }
-
-}
-
-
-
-using namespace SMESH::Controls;
-
-/*
-                                FUNCTORS
-*/
-
-/*
-  Class       : NumericalFunctor
-  Description : Base class for numerical functors
-*/
-NumericalFunctor::NumericalFunctor():
-  myMesh(NULL)
-{
-  myPrecision = -1;
-}
-
-void NumericalFunctor::SetMesh( const SMDS_Mesh* theMesh )
-{
-  myMesh = theMesh;
-}
-
-bool NumericalFunctor::GetPoints(const int theId,
-                                 TSequenceOfXYZ& theRes ) const
-{
-  theRes.clear();
-
-  if ( myMesh == 0 )
-    return false;
-
-  return GetPoints( myMesh->FindElement( theId ), theRes );
-}
-
-bool NumericalFunctor::GetPoints(const SMDS_MeshElement* anElem,
-                                 TSequenceOfXYZ& theRes )
-{
-  theRes.clear();
-
-  if ( anElem == 0)
-    return false;
-
-  // Get nodes of the element
-  SMDS_ElemIteratorPtr anIter = anElem->nodesIterator();
-  if ( anIter != 0 )
-  {
-    while( anIter->more() )
-    {
-      const SMDS_MeshNode* aNode = (SMDS_MeshNode*)anIter->next();
-      if ( aNode != 0 ){
-        theRes.push_back( gp_XYZ( aNode->X(), aNode->Y(), aNode->Z() ) );
-      }
-    }
-  }
-
-  return true;
-}
-
-long  NumericalFunctor::GetPrecision() const
-{
-  return myPrecision;
-}
-
-void  NumericalFunctor::SetPrecision( const long thePrecision )
-{
-  myPrecision = thePrecision;
-}
-
-double NumericalFunctor::GetValue( long theId )
-{
-  TSequenceOfXYZ P;
-  if ( GetPoints( theId, P ))
-  {
-    double aVal = GetValue( P );
-    if ( myPrecision >= 0 )
-    {
-      double prec = pow( 10., (double)( myPrecision ) );
-      aVal = floor( aVal * prec + 0.5 ) / prec;
-    }
-    return aVal;
-  }
-
-  return 0.;
-}
-
-/*
-  Class       : MinimumAngle
-  Description : Functor for calculation of minimum angle
-*/
-
-double MinimumAngle::GetValue( const TSequenceOfXYZ& P )
-{
-  double aMin;
-
-  if (P.size() <3)
-    return 0.;
-
-  aMin = getAngle(P( P.size() ), P( 1 ), P( 2 ));
-  aMin = Min(aMin,getAngle(P( P.size()-1 ), P( P.size() ), P( 1 )));
-
-  for (int i=2; i<P.size();i++){
-      double A0 = getAngle( P( i-1 ), P( i ), P( i+1 ) );
-    aMin = Min(aMin,A0);
-  }
-
-  return aMin * 180.0 / PI;
-}
-
-double MinimumAngle::GetBadRate( double Value, int nbNodes ) const
-{
-  //const double aBestAngle = PI / nbNodes;
-  const double aBestAngle = 180.0 - ( 360.0 / double(nbNodes) );
-  return ( fabs( aBestAngle - Value ));
-}
-
-SMDSAbs_ElementType MinimumAngle::GetType() const
-{
-  return SMDSAbs_Face;
-}
-
-
-/*
-  Class       : AspectRatio
-  Description : Functor for calculating aspect ratio
-*/
-double AspectRatio::GetValue( const TSequenceOfXYZ& P )
-{
-  int nbNodes = P.size();
-
-  if ( nbNodes < 3 )
-    return 0;
-
-  // Compute lengths of the sides
-
-  double aLen[ nbNodes ];
-  for ( int i = 0; i < nbNodes - 1; i++ )
-    aLen[ i ] = getDistance( P( i + 1 ), P( i + 2 ) );
-  aLen[ nbNodes - 1 ] = getDistance( P( 1 ), P( nbNodes ) );
-
-  // Compute aspect ratio
-
-  if ( nbNodes == 3 )
-  {
-    double anArea = getArea( P( 1 ), P( 2 ), P( 3 ) );
-    if ( anArea <= Precision::Confusion() )
-      return 0.;
-    double aMaxLen = Max( aLen[ 0 ], Max( aLen[ 1 ], aLen[ 2 ] ) );
-    static double aCoef = sqrt( 3. ) / 4;
-
-    return aCoef * aMaxLen * aMaxLen / anArea;
-  }
-  else
-  {
-    double aMinLen = aLen[ 0 ];
-    double aMaxLen = aLen[ 0 ];
-
-    for(int i = 1; i < nbNodes ; i++ ){
-      aMinLen = Min( aMinLen, aLen[ i ] );
-      aMaxLen = Max( aMaxLen, aLen[ i ] );
-    }
-    if ( aMinLen <= Precision::Confusion() )
-      return 0.;
-
-    return aMaxLen / aMinLen;
-  }
-}
-
-double AspectRatio::GetBadRate( double Value, int /*nbNodes*/ ) const
-{
-  // the aspect ratio is in the range [1.0,infinity]
-  // 1.0 = good
-  // infinity = bad
-  return Value / 1000.;
-}
-
-SMDSAbs_ElementType AspectRatio::GetType() const
-{
-  return SMDSAbs_Face;
-}
-
-
-/*
-  Class       : AspectRatio3D
-  Description : Functor for calculating aspect ratio
-*/
-namespace{
-
-  inline double getHalfPerimeter(double theTria[3]){
-    return (theTria[0] + theTria[1] + theTria[2])/2.0;
-  }
-
-  inline double getArea(double theHalfPerim, double theTria[3]){
-    return sqrt(theHalfPerim*
-               (theHalfPerim-theTria[0])*
-               (theHalfPerim-theTria[1])*
-               (theHalfPerim-theTria[2]));
-  }
-
-  inline double getVolume(double theLen[6]){
-    double a2 = theLen[0]*theLen[0];
-    double b2 = theLen[1]*theLen[1];
-    double c2 = theLen[2]*theLen[2];
-    double d2 = theLen[3]*theLen[3];
-    double e2 = theLen[4]*theLen[4];
-    double f2 = theLen[5]*theLen[5];
-    double P = 4.0*a2*b2*d2;
-    double Q = a2*(b2+d2-e2)-b2*(a2+d2-f2)-d2*(a2+b2-c2);
-    double R = (b2+d2-e2)*(a2+d2-f2)*(a2+d2-f2);
-    return sqrt(P-Q+R)/12.0;
-  }
-
-  inline double getVolume2(double theLen[6]){
-    double a2 = theLen[0]*theLen[0];
-    double b2 = theLen[1]*theLen[1];
-    double c2 = theLen[2]*theLen[2];
-    double d2 = theLen[3]*theLen[3];
-    double e2 = theLen[4]*theLen[4];
-    double f2 = theLen[5]*theLen[5];
-
-    double P = a2*e2*(b2+c2+d2+f2-a2-e2);
-    double Q = b2*f2*(a2+c2+d2+e2-b2-f2);
-    double R = c2*d2*(a2+b2+e2+f2-c2-d2);
-    double S = a2*b2*d2+b2*c2*e2+a2*c2*f2+d2*e2*f2;
-
-    return sqrt(P+Q+R-S)/12.0;
-  }
-
-  inline double getVolume(const TSequenceOfXYZ& P){
-    gp_Vec aVec1( P( 2 ) - P( 1 ) );
-    gp_Vec aVec2( P( 3 ) - P( 1 ) );
-    gp_Vec aVec3( P( 4 ) - P( 1 ) );
-    gp_Vec anAreaVec( aVec1 ^ aVec2 );
-    return fabs(aVec3 * anAreaVec) / 6.0;
-  }
-
-  inline double getMaxHeight(double theLen[6])
-  {
-    double aHeight = max(theLen[0],theLen[1]);
-    aHeight = max(aHeight,theLen[2]);
-    aHeight = max(aHeight,theLen[3]);
-    aHeight = max(aHeight,theLen[4]);
-    aHeight = max(aHeight,theLen[5]);
-    return aHeight;
-  }
-
-}
-
-double AspectRatio3D::GetValue( const TSequenceOfXYZ& P )
-{
-  double aQuality = 0.0;
-  int nbNodes = P.size();
-  switch(nbNodes){
-  case 4:{
-    double aLen[6] = {
-      getDistance(P( 1 ),P( 2 )), // a
-      getDistance(P( 2 ),P( 3 )), // b
-      getDistance(P( 3 ),P( 1 )), // c
-      getDistance(P( 2 ),P( 4 )), // d
-      getDistance(P( 3 ),P( 4 )), // e
-      getDistance(P( 1 ),P( 4 ))  // f
-    };
-    double aTria[4][3] = {
-      {aLen[0],aLen[1],aLen[2]}, // abc
-      {aLen[0],aLen[3],aLen[5]}, // adf
-      {aLen[1],aLen[3],aLen[4]}, // bde
-      {aLen[2],aLen[4],aLen[5]}  // cef
-    };
-    double aSumArea = 0.0;
-    double aHalfPerimeter = getHalfPerimeter(aTria[0]);
-    double anArea = getArea(aHalfPerimeter,aTria[0]);
-    aSumArea += anArea;
-    aHalfPerimeter = getHalfPerimeter(aTria[1]);
-    anArea = getArea(aHalfPerimeter,aTria[1]);
-    aSumArea += anArea;
-    aHalfPerimeter = getHalfPerimeter(aTria[2]);
-    anArea = getArea(aHalfPerimeter,aTria[2]);
-    aSumArea += anArea;
-    aHalfPerimeter = getHalfPerimeter(aTria[3]);
-    anArea = getArea(aHalfPerimeter,aTria[3]);
-    aSumArea += anArea;
-    double aVolume = getVolume(P);
-    //double aVolume = getVolume(aLen);
-    double aHeight = getMaxHeight(aLen);
-    static double aCoeff = sqrt(6.0)/36.0;
-    aQuality = aCoeff*aHeight*aSumArea/aVolume;
-    break;
-  }
-  case 5:{
-    {
-      gp_XYZ aXYZ[4] = {P( 1 ),P( 2 ),P( 3 ),P( 5 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 1 ),P( 3 ),P( 4 ),P( 5 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 1 ),P( 2 ),P( 4 ),P( 5 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 2 ),P( 3 ),P( 4 ),P( 5 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    break;
-  }
-  case 6:{
-    {
-      gp_XYZ aXYZ[4] = {P( 1 ),P( 2 ),P( 4 ),P( 6 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 1 ),P( 2 ),P( 4 ),P( 3 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 1 ),P( 2 ),P( 5 ),P( 6 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 1 ),P( 2 ),P( 5 ),P( 3 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 2 ),P( 5 ),P( 4 ),P( 6 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 2 ),P( 5 ),P( 4 ),P( 3 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    break;
-  }
-  case 8:{
-    {
-      gp_XYZ aXYZ[4] = {P( 1 ),P( 2 ),P( 5 ),P( 3 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 1 ),P( 2 ),P( 5 ),P( 4 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 1 ),P( 2 ),P( 5 ),P( 7 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 1 ),P( 2 ),P( 5 ),P( 8 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 1 ),P( 2 ),P( 6 ),P( 3 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 1 ),P( 2 ),P( 6 ),P( 4 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 1 ),P( 2 ),P( 6 ),P( 7 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 1 ),P( 2 ),P( 6 ),P( 8 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 2 ),P( 6 ),P( 5 ),P( 3 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 2 ),P( 6 ),P( 5 ),P( 4 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 2 ),P( 6 ),P( 5 ),P( 7 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 2 ),P( 6 ),P( 5 ),P( 8 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 3 ),P( 4 ),P( 8 ),P( 1 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 3 ),P( 4 ),P( 8 ),P( 2 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 3 ),P( 4 ),P( 8 ),P( 5 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 3 ),P( 4 ),P( 8 ),P( 6 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 3 ),P( 4 ),P( 7 ),P( 1 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 3 ),P( 4 ),P( 7 ),P( 2 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 3 ),P( 4 ),P( 7 ),P( 5 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 3 ),P( 4 ),P( 7 ),P( 6 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 4 ),P( 8 ),P( 7 ),P( 1 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 4 ),P( 8 ),P( 7 ),P( 2 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 4 ),P( 8 ),P( 7 ),P( 5 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 4 ),P( 8 ),P( 7 ),P( 6 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 4 ),P( 8 ),P( 7 ),P( 2 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 4 ),P( 5 ),P( 8 ),P( 2 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 1 ),P( 4 ),P( 5 ),P( 3 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 3 ),P( 6 ),P( 7 ),P( 1 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 2 ),P( 3 ),P( 6 ),P( 4 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 5 ),P( 6 ),P( 8 ),P( 3 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 7 ),P( 8 ),P( 6 ),P( 1 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 1 ),P( 2 ),P( 4 ),P( 7 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    {
-      gp_XYZ aXYZ[4] = {P( 3 ),P( 4 ),P( 2 ),P( 5 )};
-      aQuality = max(GetValue(TSequenceOfXYZ(&aXYZ[0],&aXYZ[4])),aQuality);
-    }
-    break;
-  }
-  }
-  return aQuality;
-}
-
-double AspectRatio3D::GetBadRate( double Value, int /*nbNodes*/ ) const
-{
-  // the aspect ratio is in the range [1.0,infinity]
-  // 1.0 = good
-  // infinity = bad
-  return Value / 1000.;
-}
-
-SMDSAbs_ElementType AspectRatio3D::GetType() const
-{
-  return SMDSAbs_Volume;
-}
-
-
-/*
-  Class       : Warping
-  Description : Functor for calculating warping
-*/
-double Warping::GetValue( const TSequenceOfXYZ& P )
-{
-  if ( P.size() != 4 )
-    return 0;
-
-  gp_XYZ G = ( P( 1 ) + P( 2 ) + P( 3 ) + P( 4 ) ) / 4;
-
-  double A1 = ComputeA( P( 1 ), P( 2 ), P( 3 ), G );
-  double A2 = ComputeA( P( 2 ), P( 3 ), P( 4 ), G );
-  double A3 = ComputeA( P( 3 ), P( 4 ), P( 1 ), G );
-  double A4 = ComputeA( P( 4 ), P( 1 ), P( 2 ), G );
-
-  return Max( Max( A1, A2 ), Max( A3, A4 ) );
-}
-
-double Warping::ComputeA( const gp_XYZ& thePnt1,
-                          const gp_XYZ& thePnt2,
-                          const gp_XYZ& thePnt3,
-                          const gp_XYZ& theG ) const
-{
-  double aLen1 = gp_Pnt( thePnt1 ).Distance( gp_Pnt( thePnt2 ) );
-  double aLen2 = gp_Pnt( thePnt2 ).Distance( gp_Pnt( thePnt3 ) );
-  double L = Min( aLen1, aLen2 ) * 0.5;
-  if ( L < Precision::Confusion())
-    return 0.;
-
-  gp_XYZ GI = ( thePnt2 + thePnt1 ) / 2. - theG;
-  gp_XYZ GJ = ( thePnt3 + thePnt2 ) / 2. - theG;
-  gp_XYZ N  = GI.Crossed( GJ );
-
-  if ( N.Modulus() < gp::Resolution() )
-    return PI / 2;
-
-  N.Normalize();
-
-  double H = ( thePnt2 - theG ).Dot( N );
-  return asin( fabs( H / L ) ) * 180 / PI;
-}
-
-double Warping::GetBadRate( double Value, int /*nbNodes*/ ) const
-{
-  // the warp is in the range [0.0,PI/2]
-  // 0.0 = good (no warp)
-  // PI/2 = bad  (face pliee)
-  return Value;
-}
-
-SMDSAbs_ElementType Warping::GetType() const
-{
-  return SMDSAbs_Face;
-}
-
-
-/*
-  Class       : Taper
-  Description : Functor for calculating taper
-*/
-double Taper::GetValue( const TSequenceOfXYZ& P )
-{
-  if ( P.size() != 4 )
-    return 0;
-
-  // Compute taper
-  double J1 = getArea( P( 4 ), P( 1 ), P( 2 ) ) / 2;
-  double J2 = getArea( P( 3 ), P( 1 ), P( 2 ) ) / 2;
-  double J3 = getArea( P( 2 ), P( 3 ), P( 4 ) ) / 2;
-  double J4 = getArea( P( 3 ), P( 4 ), P( 1 ) ) / 2;
-
-  double JA = 0.25 * ( J1 + J2 + J3 + J4 );
-  if ( JA <= Precision::Confusion() )
-    return 0.;
-
-  double T1 = fabs( ( J1 - JA ) / JA );
-  double T2 = fabs( ( J2 - JA ) / JA );
-  double T3 = fabs( ( J3 - JA ) / JA );
-  double T4 = fabs( ( J4 - JA ) / JA );
-
-  return Max( Max( T1, T2 ), Max( T3, T4 ) );
-}
-
-double Taper::GetBadRate( double Value, int /*nbNodes*/ ) const
-{
-  // the taper is in the range [0.0,1.0]
-  // 0.0  = good (no taper)
-  // 1.0 = bad  (les cotes opposes sont allignes)
-  return Value;
-}
-
-SMDSAbs_ElementType Taper::GetType() const
-{
-  return SMDSAbs_Face;
-}
-
-
-/*
-  Class       : Skew
-  Description : Functor for calculating skew in degrees
-*/
-static inline double skewAngle( const gp_XYZ& p1, const gp_XYZ& p2, const gp_XYZ& p3 )
-{
-  gp_XYZ p12 = ( p2 + p1 ) / 2;
-  gp_XYZ p23 = ( p3 + p2 ) / 2;
-  gp_XYZ p31 = ( p3 + p1 ) / 2;
-
-  gp_Vec v1( p31 - p2 ), v2( p12 - p23 );
-
-  return v1.Magnitude() < gp::Resolution() || v2.Magnitude() < gp::Resolution() ? 0 : v1.Angle( v2 );
-}
-
-double Skew::GetValue( const TSequenceOfXYZ& P )
-{
-  if ( P.size() != 3 && P.size() != 4 )
-    return 0;
-
-  // Compute skew
-  static double PI2 = PI / 2;
-  if ( P.size() == 3 )
-  {
-    double A0 = fabs( PI2 - skewAngle( P( 3 ), P( 1 ), P( 2 ) ) );
-    double A1 = fabs( PI2 - skewAngle( P( 1 ), P( 2 ), P( 3 ) ) );
-    double A2 = fabs( PI2 - skewAngle( P( 2 ), P( 3 ), P( 1 ) ) );
-
-    return Max( A0, Max( A1, A2 ) ) * 180 / PI;
-  }
-  else
-  {
-    gp_XYZ p12 = ( P( 1 ) + P( 2 ) ) / 2;
-    gp_XYZ p23 = ( P( 2 ) + P( 3 ) ) / 2;
-    gp_XYZ p34 = ( P( 3 ) + P( 4 ) ) / 2;
-    gp_XYZ p41 = ( P( 4 ) + P( 1 ) ) / 2;
-
-    gp_Vec v1( p34 - p12 ), v2( p23 - p41 );
-    double A = v1.Magnitude() <= gp::Resolution() || v2.Magnitude() <= gp::Resolution()
-      ? 0 : fabs( PI2 - v1.Angle( v2 ) );
-
-    return A * 180 / PI;
-  }
-}
-
-double Skew::GetBadRate( double Value, int /*nbNodes*/ ) const
-{
-  // the skew is in the range [0.0,PI/2].
-  // 0.0 = good
-  // PI/2 = bad
-  return Value;
-}
-
-SMDSAbs_ElementType Skew::GetType() const
-{
-  return SMDSAbs_Face;
-}
-
-
-/*
-  Class       : Area
-  Description : Functor for calculating area
-*/
-double Area::GetValue( const TSequenceOfXYZ& P )
-{
-  double aArea = 0;
-  if ( P.size() == 3 )
-    return getArea( P( 1 ), P( 2 ), P( 3 ) );
-  else if (P.size() > 3)
-    aArea = getArea( P( 1 ), P( 2 ), P( 3 ) );
-  else
-    return 0;
-
-  for (int i=4; i<=P.size(); i++)
-    aArea += getArea(P(1),P(i-1),P(i));
-  return aArea;
-}
-
-double Area::GetBadRate( double Value, int /*nbNodes*/ ) const
-{
-  return Value;
-}
-
-SMDSAbs_ElementType Area::GetType() const
-{
-  return SMDSAbs_Face;
-}
-
-
-/*
-  Class       : Length
-  Description : Functor for calculating length off edge
-*/
-double Length::GetValue( const TSequenceOfXYZ& P )
-{
-  return ( P.size() == 2 ? getDistance( P( 1 ), P( 2 ) ) : 0 );
-}
-
-double Length::GetBadRate( double Value, int /*nbNodes*/ ) const
-{
-  return Value;
-}
-
-SMDSAbs_ElementType Length::GetType() const
-{
-  return SMDSAbs_Edge;
-}
-
-/*
-  Class       : Length2D
-  Description : Functor for calculating length of edge
-*/
-
-double Length2D::GetValue( long theElementId)
-{
-  TSequenceOfXYZ P;
-
-  if (GetPoints(theElementId,P)){
-
-    double  aVal;// = GetValue( P );
-    const SMDS_MeshElement* aElem = myMesh->FindElement( theElementId );
-    SMDSAbs_ElementType aType = aElem->GetType();
-
-    int len = P.size();
-
-    switch (aType){
-    case SMDSAbs_All:
-    case SMDSAbs_Node:
-    case SMDSAbs_Edge:
-      if (len == 2){
-       aVal = getDistance( P( 1 ), P( 2 ) );
-       break;
-      }
-    case SMDSAbs_Face:
-      if (len == 3){ // triangles
-       double L1 = getDistance(P( 1 ),P( 2 ));
-       double L2 = getDistance(P( 2 ),P( 3 ));
-       double L3 = getDistance(P( 3 ),P( 1 ));
-       aVal = Max(L1,Max(L2,L3));
-       break;
-      }
-      else if (len == 4){ // quadrangles
-       double L1 = getDistance(P( 1 ),P( 2 ));
-       double L2 = getDistance(P( 2 ),P( 3 ));
-       double L3 = getDistance(P( 3 ),P( 4 ));
-       double L4 = getDistance(P( 4 ),P( 1 ));
-       aVal = Max(Max(L1,L2),Max(L3,L4));
-       break;
-      }
-    case SMDSAbs_Volume:
-      if (len == 4){ // tetraidrs
-       double L1 = getDistance(P( 1 ),P( 2 ));
-       double L2 = getDistance(P( 2 ),P( 3 ));
-       double L3 = getDistance(P( 3 ),P( 1 ));
-       double L4 = getDistance(P( 1 ),P( 4 ));
-       double L5 = getDistance(P( 2 ),P( 4 ));
-       double L6 = getDistance(P( 3 ),P( 4 ));
-       aVal = Max(Max(Max(L1,L2),Max(L3,L4)),Max(L5,L6));
-       break;
-      }
-      else if (len == 5){ // piramids
-       double L1 = getDistance(P( 1 ),P( 2 ));
-       double L2 = getDistance(P( 2 ),P( 3 ));
-       double L3 = getDistance(P( 3 ),P( 1 ));
-       double L4 = getDistance(P( 4 ),P( 1 ));
-       double L5 = getDistance(P( 1 ),P( 5 ));
-       double L6 = getDistance(P( 2 ),P( 5 ));
-       double L7 = getDistance(P( 3 ),P( 5 ));
-       double L8 = getDistance(P( 4 ),P( 5 ));
-
-       aVal = Max(Max(Max(L1,L2),Max(L3,L4)),Max(L5,L6));
-       aVal = Max(aVal,Max(L7,L8));
-       break;
-      }
-      else if (len == 6){ // pentaidres
-       double L1 = getDistance(P( 1 ),P( 2 ));
-       double L2 = getDistance(P( 2 ),P( 3 ));
-       double L3 = getDistance(P( 3 ),P( 1 ));
-       double L4 = getDistance(P( 4 ),P( 5 ));
-       double L5 = getDistance(P( 5 ),P( 6 ));
-       double L6 = getDistance(P( 6 ),P( 4 ));
-       double L7 = getDistance(P( 1 ),P( 4 ));
-       double L8 = getDistance(P( 2 ),P( 5 ));
-       double L9 = getDistance(P( 3 ),P( 6 ));
-
-       aVal = Max(Max(Max(L1,L2),Max(L3,L4)),Max(L5,L6));
-       aVal = Max(aVal,Max(Max(L7,L8),L9));
-       break;
-      }
-      else if (len == 8){ // hexaider
-       double L1 = getDistance(P( 1 ),P( 2 ));
-       double L2 = getDistance(P( 2 ),P( 3 ));
-       double L3 = getDistance(P( 3 ),P( 4 ));
-       double L4 = getDistance(P( 4 ),P( 1 ));
-       double L5 = getDistance(P( 5 ),P( 6 ));
-       double L6 = getDistance(P( 6 ),P( 7 ));
-       double L7 = getDistance(P( 7 ),P( 8 ));
-       double L8 = getDistance(P( 8 ),P( 5 ));
-       double L9 = getDistance(P( 1 ),P( 5 ));
-       double L10= getDistance(P( 2 ),P( 6 ));
-       double L11= getDistance(P( 3 ),P( 7 ));
-       double L12= getDistance(P( 4 ),P( 8 ));
-
-       aVal = Max(Max(Max(L1,L2),Max(L3,L4)),Max(L5,L6));
-       aVal = Max(aVal,Max(Max(L7,L8),Max(L9,L10)));
-       aVal = Max(aVal,Max(L11,L12));
-       break;
-
-      }
-
-    default: aVal=-1;
-    }
-
-    if (aVal <0){
-      return 0.;
-    }
-
-    if ( myPrecision >= 0 )
-    {
-      double prec = pow( 10., (double)( myPrecision ) );
-      aVal = floor( aVal * prec + 0.5 ) / prec;
-    }
-
-    return aVal;
-
-  }
-  return 0.;
-}
-
-double Length2D::GetBadRate( double Value, int /*nbNodes*/ ) const
-{
-  return Value;
-}
-
-SMDSAbs_ElementType Length2D::GetType() const
-{
-  return SMDSAbs_Face;
-}
-
-Length2D::Value::Value(double theLength,long thePntId1, long thePntId2):
-  myLength(theLength)
-{
-  myPntId[0] = thePntId1;  myPntId[1] = thePntId2;
-  if(thePntId1 > thePntId2){
-    myPntId[1] = thePntId1;  myPntId[0] = thePntId2;
-  }
-}
-
-bool Length2D::Value::operator<(const Length2D::Value& x) const{
-  if(myPntId[0] < x.myPntId[0]) return true;
-  if(myPntId[0] == x.myPntId[0])
-    if(myPntId[1] < x.myPntId[1]) return true;
-  return false;
-}
-
-void Length2D::GetValues(TValues& theValues){
-  TValues aValues;
-  SMDS_FaceIteratorPtr anIter = myMesh->facesIterator();
-  for(; anIter->more(); ){
-    const SMDS_MeshFace* anElem = anIter->next();
-    SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
-    long aNodeId[2];
-    gp_Pnt P[3];
-
-    double aLength;
-    const SMDS_MeshElement* aNode;
-    if(aNodesIter->more()){
-      aNode = aNodesIter->next();
-      const SMDS_MeshNode* aNodes = (SMDS_MeshNode*) aNode;
-      P[0] = P[1] = gp_Pnt(aNodes->X(),aNodes->Y(),aNodes->Z());
-      aNodeId[0] = aNodeId[1] = aNode->GetID();
-      aLength = 0;
-    }
-    for(; aNodesIter->more(); ){
-      aNode = aNodesIter->next();
-      const SMDS_MeshNode* aNodes = (SMDS_MeshNode*) aNode;
-      long anId = aNode->GetID();
-
-      P[2] = gp_Pnt(aNodes->X(),aNodes->Y(),aNodes->Z());
-
-      aLength = P[1].Distance(P[2]);
-
-      Value aValue(aLength,aNodeId[1],anId);
-      aNodeId[1] = anId;
-      P[1] = P[2];
-      theValues.insert(aValue);
-    }
-
-    aLength = P[0].Distance(P[1]);
-
-    Value aValue(aLength,aNodeId[0],aNodeId[1]);
-    theValues.insert(aValue);
-  }
-}
-
-/*
-  Class       : MultiConnection
-  Description : Functor for calculating number of faces conneted to the edge
-*/
-double MultiConnection::GetValue( const TSequenceOfXYZ& P )
-{
-  return 0;
-}
-double MultiConnection::GetValue( long theId )
-{
-  return getNbMultiConnection( myMesh, theId );
-}
-
-double MultiConnection::GetBadRate( double Value, int /*nbNodes*/ ) const
-{
-  return Value;
-}
-
-SMDSAbs_ElementType MultiConnection::GetType() const
-{
-  return SMDSAbs_Edge;
-}
-
-/*
-  Class       : MultiConnection2D
-  Description : Functor for calculating number of faces conneted to the edge
-*/
-double MultiConnection2D::GetValue( const TSequenceOfXYZ& P )
-{
-  return 0;
-}
-
-double MultiConnection2D::GetValue( long theElementId )
-{
-  TSequenceOfXYZ P;
-  int aResult = 0;
-
-  if (GetPoints(theElementId,P)){
-    const SMDS_MeshElement* anFaceElem = myMesh->FindElement( theElementId );
-    SMDSAbs_ElementType aType = anFaceElem->GetType();
-
-    int len = P.size();
-
-    TColStd_MapOfInteger aMap;
-    int aResult = 0;
-
-    switch (aType){
-    case SMDSAbs_All:
-    case SMDSAbs_Node:
-    case SMDSAbs_Edge:
-    case SMDSAbs_Face:
-      if (len == 3){ // triangles
-       int Nb[3] = {0,0,0};
-
-       int i=0;
-       SMDS_ElemIteratorPtr anIter = anFaceElem->nodesIterator();
-       if ( anIter != 0 ) {
-         while( anIter->more() ) {
-           const SMDS_MeshNode* aNode = (SMDS_MeshNode*)anIter->next();
-           if ( aNode == 0 ){
-             break;
-           }
-           SMDS_ElemIteratorPtr anElemIter = aNode->GetInverseElementIterator();
-           while( anElemIter->more() ) {
-             const SMDS_MeshElement* anElem = anElemIter->next();
-             if ( anElem != 0 && anElem->GetType() != SMDSAbs_Edge ) {
-               int anId = anElem->GetID();
-
-               if ( anIter->more() )              // i.e. first node
-                 aMap.Add( anId );
-               else if ( aMap.Contains( anId ) ){
-                 Nb[i]++;
-               }
-             }
-             else if ( anElem != 0 && anElem->GetType() == SMDSAbs_Edge ) i++;
-           }
-         }
-       }
-
-       aResult = Max(Max(Nb[0],Nb[1]),Nb[2]);
-      }
-      break;
-    case SMDSAbs_Volume:
-    default: aResult=0;
-    }
-
-  }
-  return aResult;//getNbMultiConnection( myMesh, theId );
-}
-
-double MultiConnection2D::GetBadRate( double Value, int /*nbNodes*/ ) const
-{
-  return Value;
-}
-
-SMDSAbs_ElementType MultiConnection2D::GetType() const
-{
-  return SMDSAbs_Face;
-}
-
-MultiConnection2D::Value::Value(long thePntId1, long thePntId2)
-{
-  myPntId[0] = thePntId1;  myPntId[1] = thePntId2;
-  if(thePntId1 > thePntId2){
-    myPntId[1] = thePntId1;  myPntId[0] = thePntId2;
-  }
-}
-
-bool MultiConnection2D::Value::operator<(const MultiConnection2D::Value& x) const{
-  if(myPntId[0] < x.myPntId[0]) return true;
-  if(myPntId[0] == x.myPntId[0])
-    if(myPntId[1] < x.myPntId[1]) return true;
-  return false;
-}
-
-void MultiConnection2D::GetValues(MValues& theValues){
-  SMDS_FaceIteratorPtr anIter = myMesh->facesIterator();
-  for(; anIter->more(); ){
-    const SMDS_MeshFace* anElem = anIter->next();
-    SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
-    long aNodeId[3];
-
-    //int aNbConnects=0;
-    const SMDS_MeshNode* aNode0;
-    const SMDS_MeshNode* aNode1;
-    const SMDS_MeshNode* aNode2;
-    if(aNodesIter->more()){
-      aNode0 = (SMDS_MeshNode*) aNodesIter->next();
-      aNode1 = aNode0;
-      const SMDS_MeshNode* aNodes = (SMDS_MeshNode*) aNode1;
-      aNodeId[0] = aNodeId[1] = aNodes->GetID();
-    }
-    for(; aNodesIter->more(); ){
-      aNode2 = (SMDS_MeshNode*) aNodesIter->next();
-      long anId = aNode2->GetID();
-      aNodeId[2] = anId;
-
-      Value aValue(aNodeId[1],aNodeId[2]);
-      MValues::iterator aItr = theValues.find(aValue);
-      if (aItr != theValues.end()){
-       aItr->second += 1;
-       //aNbConnects = nb;
-      } else {
-       theValues[aValue] = 1;
-       //aNbConnects = 1;
-      }
-      //cout << "NodeIds: "<<aNodeId[1]<<","<<aNodeId[2]<<" nbconn="<<aNbConnects<<endl;
-      aNodeId[1] = aNodeId[2];
-      aNode1 = aNode2;
-    }
-    Value aValue(aNodeId[0],aNodeId[2]);
-    MValues::iterator aItr = theValues.find(aValue);
-    if (aItr != theValues.end()){
-      aItr->second += 1;
-      //aNbConnects = nb;
-    } else {
-      theValues[aValue] = 1;
-      //aNbConnects = 1;
-    }
-    //cout << "NodeIds: "<<aNodeId[0]<<","<<aNodeId[2]<<" nbconn="<<aNbConnects<<endl;
-  }
-
-}
-
-/*
-                            PREDICATES
-*/
-
-/*
-  Class       : BadOrientedVolume
-  Description : Predicate bad oriented volumes
-*/
-
-BadOrientedVolume::BadOrientedVolume()
-{
-  myMesh = 0;
-}
-
-void BadOrientedVolume::SetMesh( const SMDS_Mesh* theMesh )
-{
-  myMesh = theMesh;
-}
-
-bool BadOrientedVolume::IsSatisfy( long theId )
-{
-  if ( myMesh == 0 )
-    return false;
-
-  SMDS_VolumeTool vTool( myMesh->FindElement( theId ));
-  return !vTool.IsForward();
-}
-
-SMDSAbs_ElementType BadOrientedVolume::GetType() const
-{
-  return SMDSAbs_Volume;
-}
-
-
-
-/*
-  Class       : FreeBorders
-  Description : Predicate for free borders
-*/
-
-FreeBorders::FreeBorders()
-{
-  myMesh = 0;
-}
-
-void FreeBorders::SetMesh( const SMDS_Mesh* theMesh )
-{
-  myMesh = theMesh;
-}
-
-bool FreeBorders::IsSatisfy( long theId )
-{
-  return getNbMultiConnection( myMesh, theId ) == 1;
-}
-
-SMDSAbs_ElementType FreeBorders::GetType() const
-{
-  return SMDSAbs_Edge;
-}
-
-
-/*
-  Class       : FreeEdges
-  Description : Predicate for free Edges
-*/
-FreeEdges::FreeEdges()
-{
-  myMesh = 0;
-}
-
-void FreeEdges::SetMesh( const SMDS_Mesh* theMesh )
-{
-  myMesh = theMesh;
-}
-
-bool FreeEdges::IsFreeEdge( const SMDS_MeshNode** theNodes, const int theFaceId  )
-{
-  TColStd_MapOfInteger aMap;
-  for ( int i = 0; i < 2; i++ )
-  {
-    SMDS_ElemIteratorPtr anElemIter = theNodes[ i ]->GetInverseElementIterator();
-    while( anElemIter->more() )
-    {
-      const SMDS_MeshElement* anElem = anElemIter->next();
-      if ( anElem != 0 && anElem->GetType() == SMDSAbs_Face )
-      {
-        int anId = anElem->GetID();
-
-        if ( i == 0 )
-          aMap.Add( anId );
-        else if ( aMap.Contains( anId ) && anId != theFaceId )
-          return false;
-      }
-    }
-  }
-  return true;
-}
-
-bool FreeEdges::IsSatisfy( long theId )
-{
-  if ( myMesh == 0 )
-    return false;
-
-  const SMDS_MeshElement* aFace = myMesh->FindElement( theId );
-  if ( aFace == 0 || aFace->GetType() != SMDSAbs_Face || aFace->NbNodes() < 3 )
-    return false;
-
-  int nbNodes = aFace->NbNodes();
-  const SMDS_MeshNode* aNodes[ nbNodes ];
-  int i = 0;
-  SMDS_ElemIteratorPtr anIter = aFace->nodesIterator();
-  if ( anIter != 0 )
-  {
-    while( anIter->more() )
-    {
-      const SMDS_MeshNode* aNode = (SMDS_MeshNode*)anIter->next();
-      if ( aNode == 0 )
-        return false;
-      aNodes[ i++ ] = aNode;
-    }
-  }
-
-  for ( int i = 0; i < nbNodes - 1; i++ )
-    if ( IsFreeEdge( &aNodes[ i ], theId ) )
-      return true;
-
-  aNodes[ 1 ] = aNodes[ nbNodes - 1 ];
-
-  return IsFreeEdge( &aNodes[ 0 ], theId );
-
-}
-
-SMDSAbs_ElementType FreeEdges::GetType() const
-{
-  return SMDSAbs_Face;
-}
-
-FreeEdges::Border::Border(long theElemId, long thePntId1, long thePntId2):
-  myElemId(theElemId)
-{
-  myPntId[0] = thePntId1;  myPntId[1] = thePntId2;
-  if(thePntId1 > thePntId2){
-    myPntId[1] = thePntId1;  myPntId[0] = thePntId2;
-  }
-}
-
-bool FreeEdges::Border::operator<(const FreeEdges::Border& x) const{
-  if(myPntId[0] < x.myPntId[0]) return true;
-  if(myPntId[0] == x.myPntId[0])
-    if(myPntId[1] < x.myPntId[1]) return true;
-  return false;
-}
-
-inline void UpdateBorders(const FreeEdges::Border& theBorder,
-                         FreeEdges::TBorders& theRegistry,
-                         FreeEdges::TBorders& theContainer)
-{
-  if(theRegistry.find(theBorder) == theRegistry.end()){
-    theRegistry.insert(theBorder);
-    theContainer.insert(theBorder);
-  }else{
-    theContainer.erase(theBorder);
-  }
-}
-
-void FreeEdges::GetBoreders(TBorders& theBorders)
-{
-  TBorders aRegistry;
-  SMDS_FaceIteratorPtr anIter = myMesh->facesIterator();
-  for(; anIter->more(); ){
-    const SMDS_MeshFace* anElem = anIter->next();
-    long anElemId = anElem->GetID();
-    SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
-    long aNodeId[2];
-    const SMDS_MeshElement* aNode;
-    if(aNodesIter->more()){
-      aNode = aNodesIter->next();
-      aNodeId[0] = aNodeId[1] = aNode->GetID();
-    }
-    for(; aNodesIter->more(); ){
-      aNode = aNodesIter->next();
-      long anId = aNode->GetID();
-      Border aBorder(anElemId,aNodeId[1],anId);
-      aNodeId[1] = anId;
-      //std::cout<<aBorder.myPntId[0]<<"; "<<aBorder.myPntId[1]<<"; "<<aBorder.myElemId<<endl;
-      UpdateBorders(aBorder,aRegistry,theBorders);
-    }
-    Border aBorder(anElemId,aNodeId[0],aNodeId[1]);
-    //std::cout<<aBorder.myPntId[0]<<"; "<<aBorder.myPntId[1]<<"; "<<aBorder.myElemId<<endl;
-    UpdateBorders(aBorder,aRegistry,theBorders);
-  }
-  //std::cout<<"theBorders.size() = "<<theBorders.size()<<endl;
-}
-
-/*
-  Class       : RangeOfIds
-  Description : Predicate for Range of Ids.
-                Range may be specified with two ways.
-                1. Using AddToRange method
-                2. With SetRangeStr method. Parameter of this method is a string
-                   like as "1,2,3,50-60,63,67,70-"
-*/
-
-//=======================================================================
-// name    : RangeOfIds
-// Purpose : Constructor
-//=======================================================================
-RangeOfIds::RangeOfIds()
-{
-  myMesh = 0;
-  myType = SMDSAbs_All;
-}
-
-//=======================================================================
-// name    : SetMesh
-// Purpose : Set mesh
-//=======================================================================
-void RangeOfIds::SetMesh( const SMDS_Mesh* theMesh )
-{
-  myMesh = theMesh;
-}
-
-//=======================================================================
-// name    : AddToRange
-// Purpose : Add ID to the range
-//=======================================================================
-bool RangeOfIds::AddToRange( long theEntityId )
-{
-  myIds.Add( theEntityId );
-  return true;
-}
-
-//=======================================================================
-// name    : GetRangeStr
-// Purpose : Get range as a string.
-//           Example: "1,2,3,50-60,63,67,70-"
-//=======================================================================
-void RangeOfIds::GetRangeStr( TCollection_AsciiString& theResStr )
-{
-  theResStr.Clear();
-
-  TColStd_SequenceOfInteger     anIntSeq;
-  TColStd_SequenceOfAsciiString aStrSeq;
-
-  TColStd_MapIteratorOfMapOfInteger anIter( myIds );
-  for ( ; anIter.More(); anIter.Next() )
-  {
-    int anId = anIter.Key();
-    TCollection_AsciiString aStr( anId );
-    anIntSeq.Append( anId );
-    aStrSeq.Append( aStr );
-  }
-
-  for ( int i = 1, n = myMin.Length(); i <= n; i++ )
-  {
-    int aMinId = myMin( i );
-    int aMaxId = myMax( i );
-
-    TCollection_AsciiString aStr;
-    if ( aMinId != IntegerFirst() )
-      aStr += aMinId;
-
-    aStr += "-";
-
-    if ( aMaxId != IntegerLast() )
-      aStr += aMaxId;
-
-    // find position of the string in result sequence and insert string in it
-    if ( anIntSeq.Length() == 0 )
-    {
-      anIntSeq.Append( aMinId );
-      aStrSeq.Append( aStr );
-    }
-    else
-    {
-      if ( aMinId < anIntSeq.First() )
-      {
-        anIntSeq.Prepend( aMinId );
-        aStrSeq.Prepend( aStr );
-      }
-      else if ( aMinId > anIntSeq.Last() )
-      {
-        anIntSeq.Append( aMinId );
-        aStrSeq.Append( aStr );
-      }
-      else
-        for ( int j = 1, k = anIntSeq.Length(); j <= k; j++ )
-          if ( aMinId < anIntSeq( j ) )
-          {
-            anIntSeq.InsertBefore( j, aMinId );
-            aStrSeq.InsertBefore( j, aStr );
-            break;
-          }
-    }
-  }
-
-  if ( aStrSeq.Length() == 0 )
-    return;
-
-  theResStr = aStrSeq( 1 );
-  for ( int j = 2, k = aStrSeq.Length(); j <= k; j++  )
-  {
-    theResStr += ",";
-    theResStr += aStrSeq( j );
-  }
-}
-
-//=======================================================================
-// name    : SetRangeStr
-// Purpose : Define range with string
-//           Example of entry string: "1,2,3,50-60,63,67,70-"
-//=======================================================================
-bool RangeOfIds::SetRangeStr( const TCollection_AsciiString& theStr )
-{
-  myMin.Clear();
-  myMax.Clear();
-  myIds.Clear();
-
-  TCollection_AsciiString aStr = theStr;
-  aStr.RemoveAll( ' ' );
-  aStr.RemoveAll( '\t' );
-
-  for ( int aPos = aStr.Search( ",," ); aPos != -1; aPos = aStr.Search( ",," ) )
-    aStr.Remove( aPos, 2 );
-
-  TCollection_AsciiString tmpStr = aStr.Token( ",", 1 );
-  int i = 1;
-  while ( tmpStr != "" )
-  {
-    tmpStr = aStr.Token( ",", i++ );
-    int aPos = tmpStr.Search( '-' );
-
-    if ( aPos == -1 )
-    {
-      if ( tmpStr.IsIntegerValue() )
-        myIds.Add( tmpStr.IntegerValue() );
-      else
-        return false;
-    }
-    else
-    {
-      TCollection_AsciiString aMaxStr = tmpStr.Split( aPos );
-      TCollection_AsciiString aMinStr = tmpStr;
-
-      while ( aMinStr.Search( "-" ) != -1 ) aMinStr.RemoveAll( '-' );
-      while ( aMaxStr.Search( "-" ) != -1 ) aMaxStr.RemoveAll( '-' );
-
-      if ( !aMinStr.IsEmpty() && !aMinStr.IsIntegerValue() ||
-           !aMaxStr.IsEmpty() && !aMaxStr.IsIntegerValue() )
-        return false;
-
-      myMin.Append( aMinStr.IsEmpty() ? IntegerFirst() : aMinStr.IntegerValue() );
-      myMax.Append( aMaxStr.IsEmpty() ? IntegerLast()  : aMaxStr.IntegerValue() );
-    }
-  }
-
-  return true;
-}
-
-//=======================================================================
-// name    : GetType
-// Purpose : Get type of supported entities
-//=======================================================================
-SMDSAbs_ElementType RangeOfIds::GetType() const
-{
-  return myType;
-}
-
-//=======================================================================
-// name    : SetType
-// Purpose : Set type of supported entities
-//=======================================================================
-void RangeOfIds::SetType( SMDSAbs_ElementType theType )
-{
-  myType = theType;
-}
-
-//=======================================================================
-// name    : IsSatisfy
-// Purpose : Verify whether entity satisfies to this rpedicate
-//=======================================================================
-bool RangeOfIds::IsSatisfy( long theId )
-{
-  if ( !myMesh )
-    return false;
-
-  if ( myType == SMDSAbs_Node )
-  {
-    if ( myMesh->FindNode( theId ) == 0 )
-      return false;
-  }
-  else
-  {
-    const SMDS_MeshElement* anElem = myMesh->FindElement( theId );
-    if ( anElem == 0 || myType != anElem->GetType() && myType != SMDSAbs_All )
-      return false;
-  }
-
-  if ( myIds.Contains( theId ) )
-    return true;
-
-  for ( int i = 1, n = myMin.Length(); i <= n; i++ )
-    if ( theId >= myMin( i ) && theId <= myMax( i ) )
-      return true;
-
-  return false;
-}
-
-/*
-  Class       : Comparator
-  Description : Base class for comparators
-*/
-Comparator::Comparator():
-  myMargin(0)
-{}
-
-Comparator::~Comparator()
-{}
-
-void Comparator::SetMesh( const SMDS_Mesh* theMesh )
-{
-  if ( myFunctor )
-    myFunctor->SetMesh( theMesh );
-}
-
-void Comparator::SetMargin( double theValue )
-{
-  myMargin = theValue;
-}
-
-void Comparator::SetNumFunctor( NumericalFunctorPtr theFunct )
-{
-  myFunctor = theFunct;
-}
-
-SMDSAbs_ElementType Comparator::GetType() const
-{
-  return myFunctor ? myFunctor->GetType() : SMDSAbs_All;
-}
-
-double Comparator::GetMargin()
-{
-  return myMargin;
-}
-
-
-/*
-  Class       : LessThan
-  Description : Comparator "<"
-*/
-bool LessThan::IsSatisfy( long theId )
-{
-  return myFunctor && myFunctor->GetValue( theId ) < myMargin;
-}
-
-
-/*
-  Class       : MoreThan
-  Description : Comparator ">"
-*/
-bool MoreThan::IsSatisfy( long theId )
-{
-  return myFunctor && myFunctor->GetValue( theId ) > myMargin;
-}
-
-
-/*
-  Class       : EqualTo
-  Description : Comparator "="
-*/
-EqualTo::EqualTo():
-  myToler(Precision::Confusion())
-{}
-
-bool EqualTo::IsSatisfy( long theId )
-{
-  return myFunctor && fabs( myFunctor->GetValue( theId ) - myMargin ) < myToler;
-}
-
-void EqualTo::SetTolerance( double theToler )
-{
-  myToler = theToler;
-}
-
-double EqualTo::GetTolerance()
-{
-  return myToler;
-}
-
-/*
-  Class       : LogicalNOT
-  Description : Logical NOT predicate
-*/
-LogicalNOT::LogicalNOT()
-{}
-
-LogicalNOT::~LogicalNOT()
-{}
-
-bool LogicalNOT::IsSatisfy( long theId )
-{
-  return myPredicate && !myPredicate->IsSatisfy( theId );
-}
-
-void LogicalNOT::SetMesh( const SMDS_Mesh* theMesh )
-{
-  if ( myPredicate )
-    myPredicate->SetMesh( theMesh );
-}
-
-void LogicalNOT::SetPredicate( PredicatePtr thePred )
-{
-  myPredicate = thePred;
-}
-
-SMDSAbs_ElementType LogicalNOT::GetType() const
-{
-  return myPredicate ? myPredicate->GetType() : SMDSAbs_All;
-}
-
-
-/*
-  Class       : LogicalBinary
-  Description : Base class for binary logical predicate
-*/
-LogicalBinary::LogicalBinary()
-{}
-
-LogicalBinary::~LogicalBinary()
-{}
-
-void LogicalBinary::SetMesh( const SMDS_Mesh* theMesh )
-{
-  if ( myPredicate1 )
-    myPredicate1->SetMesh( theMesh );
-
-  if ( myPredicate2 )
-    myPredicate2->SetMesh( theMesh );
-}
-
-void LogicalBinary::SetPredicate1( PredicatePtr thePredicate )
-{
-  myPredicate1 = thePredicate;
-}
-
-void LogicalBinary::SetPredicate2( PredicatePtr thePredicate )
-{
-  myPredicate2 = thePredicate;
-}
-
-SMDSAbs_ElementType LogicalBinary::GetType() const
-{
-  if ( !myPredicate1 || !myPredicate2 )
-    return SMDSAbs_All;
-
-  SMDSAbs_ElementType aType1 = myPredicate1->GetType();
-  SMDSAbs_ElementType aType2 = myPredicate2->GetType();
-
-  return aType1 == aType2 ? aType1 : SMDSAbs_All;
-}
-
-
-/*
-  Class       : LogicalAND
-  Description : Logical AND
-*/
-bool LogicalAND::IsSatisfy( long theId )
-{
-  return
-    myPredicate1 &&
-    myPredicate2 &&
-    myPredicate1->IsSatisfy( theId ) &&
-    myPredicate2->IsSatisfy( theId );
-}
-
-
-/*
-  Class       : LogicalOR
-  Description : Logical OR
-*/
-bool LogicalOR::IsSatisfy( long theId )
-{
-  return
-    myPredicate1 &&
-    myPredicate2 &&
-    myPredicate1->IsSatisfy( theId ) ||
-    myPredicate2->IsSatisfy( theId );
-}
-
-
-/*
-                              FILTER
-*/
-
-Filter::Filter()
-{}
-
-Filter::~Filter()
-{}
-
-void Filter::SetPredicate( PredicatePtr thePredicate )
-{
-  myPredicate = thePredicate;
-}
-
-template<class TElement, class TIterator, class TPredicate>
-inline void FillSequence(const TIterator& theIterator,
-                        TPredicate& thePredicate,
-                        Filter::TIdSequence& theSequence)
-{
-  if ( theIterator ) {
-    while( theIterator->more() ) {
-      TElement anElem = theIterator->next();
-      long anId = anElem->GetID();
-      if ( thePredicate->IsSatisfy( anId ) )
-       theSequence.push_back( anId );
-    }
-  }
-}
-
-void
-Filter::
-GetElementsId( const SMDS_Mesh* theMesh,
-              PredicatePtr thePredicate,
-              TIdSequence& theSequence )
-{
-  theSequence.clear();
-
-  if ( !theMesh || !thePredicate )
-    return;
-
-  thePredicate->SetMesh( theMesh );
-
-  SMDSAbs_ElementType aType = thePredicate->GetType();
-  switch(aType){
-  case SMDSAbs_Node:
-    FillSequence<const SMDS_MeshNode*>(theMesh->nodesIterator(),thePredicate,theSequence);
-    break;
-  case SMDSAbs_Edge:
-    FillSequence<const SMDS_MeshElement*>(theMesh->edgesIterator(),thePredicate,theSequence);
-    break;
-  case SMDSAbs_Face:
-    FillSequence<const SMDS_MeshElement*>(theMesh->facesIterator(),thePredicate,theSequence);
-    break;
-  case SMDSAbs_Volume:
-    FillSequence<const SMDS_MeshElement*>(theMesh->volumesIterator(),thePredicate,theSequence);
-    break;
-  case SMDSAbs_All:
-    FillSequence<const SMDS_MeshElement*>(theMesh->edgesIterator(),thePredicate,theSequence);
-    FillSequence<const SMDS_MeshElement*>(theMesh->facesIterator(),thePredicate,theSequence);
-    FillSequence<const SMDS_MeshElement*>(theMesh->volumesIterator(),thePredicate,theSequence);
-    break;
-  }
-}
-
-void
-Filter::GetElementsId( const SMDS_Mesh* theMesh,
-                      Filter::TIdSequence& theSequence )
-{
-  GetElementsId(theMesh,myPredicate,theSequence);
-}
-
-/*
-                              ManifoldPart
-*/
-
-typedef std::set<SMDS_MeshFace*>                    TMapOfFacePtr;
-
-/*
-   Internal class Link
-*/
-
-ManifoldPart::Link::Link( SMDS_MeshNode* theNode1,
-                          SMDS_MeshNode* theNode2 )
-{
-  myNode1 = theNode1;
-  myNode2 = theNode2;
-}
-
-ManifoldPart::Link::~Link()
-{
-  myNode1 = 0;
-  myNode2 = 0;
-}
-
-bool ManifoldPart::Link::IsEqual( const ManifoldPart::Link& theLink ) const
-{
-  if ( myNode1 == theLink.myNode1 &&
-       myNode2 == theLink.myNode2 )
-    return true;
-  else if ( myNode1 == theLink.myNode2 &&
-            myNode2 == theLink.myNode1 )
-    return true;
-  else
-    return false;
-}
-
-bool ManifoldPart::Link::operator<( const ManifoldPart::Link& x ) const
-{
-  if(myNode1 < x.myNode1) return true;
-  if(myNode1 == x.myNode1)
-    if(myNode2 < x.myNode2) return true;
-  return false;
-}
-
-bool ManifoldPart::IsEqual( const ManifoldPart::Link& theLink1,
-                            const ManifoldPart::Link& theLink2 )
-{
-  return theLink1.IsEqual( theLink2 );
-}
-
-ManifoldPart::ManifoldPart()
-{
-  myMesh = 0;
-  myAngToler = Precision::Angular();
-  myIsOnlyManifold = true;
-}
-
-ManifoldPart::~ManifoldPart()
-{
-  myMesh = 0;
-}
-
-void ManifoldPart::SetMesh( const SMDS_Mesh* theMesh )
-{
-  myMesh = theMesh;
-  process();
-}
-
-SMDSAbs_ElementType ManifoldPart::GetType() const
-{ return SMDSAbs_Face; }
-
-bool ManifoldPart::IsSatisfy( long theElementId )
-{
-  return myMapIds.Contains( theElementId );
-}
-
-void ManifoldPart::SetAngleTolerance( const double theAngToler )
-{ myAngToler = theAngToler; }
-
-double ManifoldPart::GetAngleTolerance() const
-{ return myAngToler; }
-
-void ManifoldPart::SetIsOnlyManifold( const bool theIsOnly )
-{ myIsOnlyManifold = theIsOnly; }
-
-void ManifoldPart::SetStartElem( const long  theStartId )
-{ myStartElemId = theStartId; }
-
-bool ManifoldPart::process()
-{
-  myMapIds.Clear();
-  myMapBadGeomIds.Clear();
-
-  myAllFacePtr.clear();
-  myAllFacePtrIntDMap.clear();
-  if ( !myMesh )
-    return false;
-
-  // collect all faces into own map
-  SMDS_FaceIteratorPtr anFaceItr = myMesh->facesIterator();
-  for (; anFaceItr->more(); )
-  {
-    SMDS_MeshFace* aFacePtr = (SMDS_MeshFace*)anFaceItr->next();
-    myAllFacePtr.push_back( aFacePtr );
-    myAllFacePtrIntDMap[aFacePtr] = myAllFacePtr.size()-1;
-  }
-
-  SMDS_MeshFace* aStartFace = (SMDS_MeshFace*)myMesh->FindElement( myStartElemId );
-  if ( !aStartFace )
-    return false;
-
-  // the map of non manifold links and bad geometry
-  TMapOfLink aMapOfNonManifold;
-  TColStd_MapOfInteger aMapOfTreated;
-
-  // begin cycle on faces from start index and run on vector till the end
-  //  and from begin to start index to cover whole vector
-  const int aStartIndx = myAllFacePtrIntDMap[aStartFace];
-  bool isStartTreat = false;
-  for ( int fi = aStartIndx; !isStartTreat || fi != aStartIndx ; fi++ )
-  {
-    if ( fi == aStartIndx )
-      isStartTreat = true;
-    // as result next time when fi will be equal to aStartIndx
-
-    SMDS_MeshFace* aFacePtr = myAllFacePtr[ fi ];
-    if ( aMapOfTreated.Contains( aFacePtr->GetID() ) )
-      continue;
-
-    aMapOfTreated.Add( aFacePtr->GetID() );
-    TColStd_MapOfInteger aResFaces;
-    if ( !findConnected( myAllFacePtrIntDMap, aFacePtr,
-                         aMapOfNonManifold, aResFaces ) )
-      continue;
-    TColStd_MapIteratorOfMapOfInteger anItr( aResFaces );
-    for ( ; anItr.More(); anItr.Next() )
-    {
-      int aFaceId = anItr.Key();
-      aMapOfTreated.Add( aFaceId );
-      myMapIds.Add( aFaceId );
-    }
-
-    if ( fi == ( myAllFacePtr.size() - 1 ) )
-      fi = 0;
-  } // end run on vector of faces
-  return !myMapIds.IsEmpty();
-}
-
-static void getLinks( const SMDS_MeshFace* theFace,
-                      ManifoldPart::TVectorOfLink& theLinks )
-{
-  int aNbNode = theFace->NbNodes();
-  SMDS_ElemIteratorPtr aNodeItr = theFace->nodesIterator();
-  int i = 1;
-  SMDS_MeshNode* aNode = 0;
-  for ( ; aNodeItr->more() && i <= aNbNode; )
-  {
-
-    SMDS_MeshNode* aN1 = (SMDS_MeshNode*)aNodeItr->next();
-    if ( i == 1 )
-      aNode = aN1;
-    i++;
-    SMDS_MeshNode* aN2 = ( i >= aNbNode ) ? aNode : (SMDS_MeshNode*)aNodeItr->next();
-    i++;
-    ManifoldPart::Link aLink( aN1, aN2 );
-    theLinks.push_back( aLink );
-  }
-}
-
-static gp_XYZ getNormale( const SMDS_MeshFace* theFace )
-{
-  gp_XYZ n;
-  int aNbNode = theFace->NbNodes();
-  TColgp_Array1OfXYZ anArrOfXYZ(1,4);
-  SMDS_ElemIteratorPtr aNodeItr = theFace->nodesIterator();
-  int i = 1;
-  for ( ; aNodeItr->more() && i <= 4; i++ )
-  {
-    SMDS_MeshNode* aNode = (SMDS_MeshNode*)aNodeItr->next();
-    anArrOfXYZ.SetValue(i, gp_XYZ( aNode->X(), aNode->Y(), aNode->Z() ) );
-  }
-
-  gp_XYZ q1 = anArrOfXYZ.Value(2) - anArrOfXYZ.Value(1);
-  gp_XYZ q2 = anArrOfXYZ.Value(3) - anArrOfXYZ.Value(1);
-  n  = q1 ^ q2;
-  if ( aNbNode > 3 )
-  {
-    gp_XYZ q3 = anArrOfXYZ.Value(4) - anArrOfXYZ.Value(1);
-    n += q2 ^ q3;
-  }
-  double len = n.Modulus();
-  if ( len > 0 )
-    n /= len;
-
-  return n;
-}
-
-bool ManifoldPart::findConnected
-                 ( const ManifoldPart::TDataMapFacePtrInt& theAllFacePtrInt,
-                  SMDS_MeshFace*                           theStartFace,
-                  ManifoldPart::TMapOfLink&                theNonManifold,
-                  TColStd_MapOfInteger&                    theResFaces )
-{
-  theResFaces.Clear();
-  if ( !theAllFacePtrInt.size() )
-    return false;
-
-  if ( getNormale( theStartFace ).SquareModulus() <= gp::Resolution() )
-  {
-    myMapBadGeomIds.Add( theStartFace->GetID() );
-    return false;
-  }
-
-  ManifoldPart::TMapOfLink aMapOfBoundary, aMapToSkip;
-  ManifoldPart::TVectorOfLink aSeqOfBoundary;
-  theResFaces.Add( theStartFace->GetID() );
-  ManifoldPart::TDataMapOfLinkFacePtr aDMapLinkFace;
-
-  expandBoundary( aMapOfBoundary, aSeqOfBoundary,
-                 aDMapLinkFace, theNonManifold, theStartFace );
-
-  bool isDone = false;
-  while ( !isDone && aMapOfBoundary.size() != 0 )
-  {
-    bool isToReset = false;
-    ManifoldPart::TVectorOfLink::iterator pLink = aSeqOfBoundary.begin();
-    for ( ; !isToReset && pLink != aSeqOfBoundary.end(); ++pLink )
-    {
-      ManifoldPart::Link aLink = *pLink;
-      if ( aMapToSkip.find( aLink ) != aMapToSkip.end() )
-        continue;
-      // each link could be treated only once
-      aMapToSkip.insert( aLink );
-
-      ManifoldPart::TVectorOfFacePtr aFaces;
-      // find next
-      if ( myIsOnlyManifold &&
-           (theNonManifold.find( aLink ) != theNonManifold.end()) )
-        continue;
-      else
-      {
-        getFacesByLink( aLink, aFaces );
-        // filter the element to keep only indicated elements
-        ManifoldPart::TVectorOfFacePtr aFiltered;
-        ManifoldPart::TVectorOfFacePtr::iterator pFace = aFaces.begin();
-        for ( ; pFace != aFaces.end(); ++pFace )
-        {
-          SMDS_MeshFace* aFace = *pFace;
-          if ( myAllFacePtrIntDMap.find( aFace ) != myAllFacePtrIntDMap.end() )
-            aFiltered.push_back( aFace );
-        }
-        aFaces = aFiltered;
-        if ( aFaces.size() < 2 )  // no neihgbour faces
-          continue;
-        else if ( myIsOnlyManifold && aFaces.size() > 2 ) // non manifold case
-        {
-          theNonManifold.insert( aLink );
-          continue;
-        }
-      }
-
-      // compare normal with normals of neighbor element
-      SMDS_MeshFace* aPrevFace = aDMapLinkFace[ aLink ];
-      ManifoldPart::TVectorOfFacePtr::iterator pFace = aFaces.begin();
-      for ( ; pFace != aFaces.end(); ++pFace )
-      {
-        SMDS_MeshFace* aNextFace = *pFace;
-        if ( aPrevFace == aNextFace )
-          continue;
-        int anNextFaceID = aNextFace->GetID();
-        if ( myIsOnlyManifold && theResFaces.Contains( anNextFaceID ) )
-         // should not be with non manifold restriction. probably bad topology
-          continue;
-        // check if face was treated and skipped
-        if ( myMapBadGeomIds.Contains( anNextFaceID ) ||
-             !isInPlane( aPrevFace, aNextFace ) )
-          continue;
-        // add new element to connected and extend the boundaries.
-        theResFaces.Add( anNextFaceID );
-        expandBoundary( aMapOfBoundary, aSeqOfBoundary,
-                        aDMapLinkFace, theNonManifold, aNextFace );
-        isToReset = true;
-      }
-    }
-    isDone = !isToReset;
-  }
-
-  return !theResFaces.IsEmpty();
-}
-
-bool ManifoldPart::isInPlane( const SMDS_MeshFace* theFace1,
-                              const SMDS_MeshFace* theFace2 )
-{
-  gp_Dir aNorm1 = gp_Dir( getNormale( theFace1 ) );
-  gp_XYZ aNorm2XYZ = getNormale( theFace2 );
-  if ( aNorm2XYZ.SquareModulus() <= gp::Resolution() )
-  {
-    myMapBadGeomIds.Add( theFace2->GetID() );
-    return false;
-  }
-  if ( aNorm1.IsParallel( gp_Dir( aNorm2XYZ ), myAngToler ) )
-    return true;
-
-  return false;
-}
-
-void ManifoldPart::expandBoundary
-                   ( ManifoldPart::TMapOfLink&            theMapOfBoundary,
-                     ManifoldPart::TVectorOfLink&         theSeqOfBoundary,
-                     ManifoldPart::TDataMapOfLinkFacePtr& theDMapLinkFacePtr,
-                     ManifoldPart::TMapOfLink&            theNonManifold,
-                     SMDS_MeshFace*                       theNextFace ) const
-{
-  ManifoldPart::TVectorOfLink aLinks;
-  getLinks( theNextFace, aLinks );
-  int aNbLink = aLinks.size();
-  for ( int i = 0; i < aNbLink; i++ )
-  {
-    ManifoldPart::Link aLink = aLinks[ i ];
-    if ( myIsOnlyManifold && (theNonManifold.find( aLink ) != theNonManifold.end()) )
-      continue;
-    if ( theMapOfBoundary.find( aLink ) != theMapOfBoundary.end() )
-    {
-      if ( myIsOnlyManifold )
-      {
-        // remove from boundary
-        theMapOfBoundary.erase( aLink );
-        ManifoldPart::TVectorOfLink::iterator pLink = theSeqOfBoundary.begin();
-        for ( ; pLink != theSeqOfBoundary.end(); ++pLink )
-        {
-          ManifoldPart::Link aBoundLink = *pLink;
-          if ( aBoundLink.IsEqual( aLink ) )
-          {
-            theSeqOfBoundary.erase( pLink );
-            break;
-          }
-        }
-      }
-    }
-    else
-    {
-      theMapOfBoundary.insert( aLink );
-      theSeqOfBoundary.push_back( aLink );
-      theDMapLinkFacePtr[ aLink ] = theNextFace;
-    }
-  }
-}
-
-void ManifoldPart::getFacesByLink( const ManifoldPart::Link& theLink,
-                                   ManifoldPart::TVectorOfFacePtr& theFaces ) const
-{
-  SMDS_Mesh::SetOfFaces aSetOfFaces;
-  // take all faces that shared first node
-  SMDS_ElemIteratorPtr anItr = theLink.myNode1->facesIterator();
-  for ( ; anItr->more(); )
-  {
-    SMDS_MeshFace* aFace = (SMDS_MeshFace*)anItr->next();
-    if ( !aFace )
-      continue;
-    aSetOfFaces.Add( aFace );
-  }
-  // take all faces that shared second node
-  anItr = theLink.myNode2->facesIterator();
-  // find the common part of two sets
-  for ( ; anItr->more(); )
-  {
-    SMDS_MeshFace* aFace = (SMDS_MeshFace*)anItr->next();
-    if ( aSetOfFaces.Contains( aFace ) )
-      theFaces.push_back( aFace );
-  }
-}
-
-
-/*
-   ElementsOnSurface
-*/
-
-ElementsOnSurface::ElementsOnSurface()
-{
-  myMesh = 0;
-  myIds.Clear();
-  myType = SMDSAbs_All;
-  mySurf.Nullify();
-  myToler = Precision::Confusion();
-}
-
-ElementsOnSurface::~ElementsOnSurface()
-{
-  myMesh = 0;
-}
-
-void ElementsOnSurface::SetMesh( const SMDS_Mesh* theMesh )
-{
-  if ( myMesh == theMesh )
-    return;
-  myMesh = theMesh;
-  myIds.Clear();
-  process();
-}
-
-bool ElementsOnSurface::IsSatisfy( long theElementId )
-{
-  return myIds.Contains( theElementId );
-}
-
-SMDSAbs_ElementType ElementsOnSurface::GetType() const
-{ return myType; }
-
-void ElementsOnSurface::SetTolerance( const double theToler )
-{ myToler = theToler; }
-
-double ElementsOnSurface::GetTolerance() const
-{
-  return myToler;
-}
-
-void ElementsOnSurface::SetSurface( const TopoDS_Shape& theShape,
-                                    const SMDSAbs_ElementType theType )
-{
-  myType = theType;
-  mySurf.Nullify();
-  if ( theShape.IsNull() || theShape.ShapeType() != TopAbs_FACE )
-  {
-    mySurf.Nullify();
-    return;
-  }
-  TopoDS_Face aFace = TopoDS::Face( theShape );
-  mySurf = BRep_Tool::Surface( aFace );
-}
-
-void ElementsOnSurface::process()
-{
-  myIds.Clear();
-  if ( mySurf.IsNull() )
-    return;
-
-  if ( myMesh == 0 )
-    return;
-
-  if ( myType == SMDSAbs_Face || myType == SMDSAbs_All )
-  {
-    SMDS_FaceIteratorPtr anIter = myMesh->facesIterator();
-    for(; anIter->more(); )
-      process( anIter->next() );
-  }
-
-  if ( myType == SMDSAbs_Edge || myType == SMDSAbs_All )
-  {
-    SMDS_EdgeIteratorPtr anIter = myMesh->edgesIterator();
-    for(; anIter->more(); )
-      process( anIter->next() );
-  }
-
-  if ( myType == SMDSAbs_Node )
-  {
-    SMDS_NodeIteratorPtr anIter = myMesh->nodesIterator();
-    for(; anIter->more(); )
-      process( anIter->next() );
-  }
-}
-
-void ElementsOnSurface::process( const SMDS_MeshElement* theElemPtr )
-{
-  SMDS_ElemIteratorPtr aNodeItr = theElemPtr->nodesIterator();
-  bool isSatisfy = true;
-  for ( ; aNodeItr->more(); )
-  {
-    SMDS_MeshNode* aNode = (SMDS_MeshNode*)aNodeItr->next();
-    if ( !isOnSurface( aNode ) )
-    {
-      isSatisfy = false;
-      break;
-    }
-  }
-  if ( isSatisfy )
-    myIds.Add( theElemPtr->GetID() );
-}
-
-bool ElementsOnSurface::isOnSurface( const SMDS_MeshNode* theNode ) const
-{
-  if ( mySurf.IsNull() )
-    return false;
-
-  gp_Pnt aPnt( theNode->X(), theNode->Y(), theNode->Z() );
-  double aToler2 = myToler * myToler;
-  if ( mySurf->IsKind(STANDARD_TYPE(Geom_Plane)))
-  {
-    gp_Pln aPln = Handle(Geom_Plane)::DownCast(mySurf)->Pln();
-    if ( aPln.SquareDistance( aPnt ) > aToler2 )
-      return false;
-  }
-  else if ( mySurf->IsKind(STANDARD_TYPE(Geom_CylindricalSurface)))
-  {
-    gp_Cylinder aCyl = Handle(Geom_CylindricalSurface)::DownCast(mySurf)->Cylinder();
-    double aRad = aCyl.Radius();
-    gp_Ax3 anAxis = aCyl.Position();
-    gp_XYZ aLoc = aCyl.Location().XYZ();
-    double aXDist = anAxis.XDirection().XYZ() * ( aPnt.XYZ() - aLoc );
-    double aYDist = anAxis.YDirection().XYZ() * ( aPnt.XYZ() - aLoc );
-    if ( fabs(aXDist*aXDist + aYDist*aYDist - aRad*aRad) > aToler2 )
-      return false;
-  }
-  else
-    return false;
-
-  return true;
-}
diff --git a/src/Controls/SMESH_Controls.hxx b/src/Controls/SMESH_Controls.hxx
deleted file mode 100644 (file)
index fa4558d..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _SMESH_CONTROLS_HXX_
-#define _SMESH_CONTROLS_HXX_
-
-#include <boost/shared_ptr.hpp>
-
-namespace SMESH{
-  namespace Controls{
-
-    class Functor;
-    typedef boost::shared_ptr<Functor> FunctorPtr;
-
-
-    class NumericalFunctor;
-    typedef boost::shared_ptr<NumericalFunctor> NumericalFunctorPtr;
-  
-  
-    class Predicate;
-    typedef boost::shared_ptr<Predicate> PredicatePtr;
-
-  }
-}
-
-
-#endif
diff --git a/src/Controls/SMESH_ControlsDef.hxx b/src/Controls/SMESH_ControlsDef.hxx
deleted file mode 100644 (file)
index 02336eb..0000000
+++ /dev/null
@@ -1,639 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _SMESH_CONTROLSDEF_HXX_
-#define _SMESH_CONTROLSDEF_HXX_
-
-#include <set>
-#include <map>
-#include <vector>
-#include <boost/shared_ptr.hpp>
-#include <gp_XYZ.hxx>
-#include <Geom_Surface.hxx>
-#include <TColStd_SequenceOfInteger.hxx>
-#include <TColStd_MapOfInteger.hxx>
-#include <TCollection_AsciiString.hxx>
-
-#include "SMDSAbs_ElementType.hxx"
-#include "SMDS_MeshNode.hxx"
-
-#include "SMESH_Controls.hxx"
-
-class SMDS_MeshElement;
-class SMDS_MeshFace;
-class SMDS_MeshNode;
-class SMDS_Mesh;
-
-class SMESHDS_Mesh;
-class SMESHDS_SubMesh;
-
-class gp_Pnt;
-class TopoDS_Shape;
-
-
-namespace SMESH{
-  namespace Controls{
-
-    class TSequenceOfXYZ: public std::vector<gp_XYZ>
-    {
-    public:
-      typedef std::vector<gp_XYZ> TSuperClass;
-      TSequenceOfXYZ()
-      {}
-
-      TSequenceOfXYZ(size_type n):
-       TSuperClass(n)
-      {}
-
-      TSequenceOfXYZ(size_type n, const value_type& t):
-       TSuperClass(n,t)
-      {}
-
-      TSequenceOfXYZ(const TSequenceOfXYZ& theSequenceOfXYZ):
-       TSuperClass(theSequenceOfXYZ)
-      {}
-
-      template <class InputIterator>
-      TSequenceOfXYZ(InputIterator theBegin, InputIterator theEnd):
-       TSuperClass(theBegin,theEnd)
-      {}
-
-      TSequenceOfXYZ& operator=(const TSequenceOfXYZ& theSequenceOfXYZ){
-       TSuperClass::operator=(theSequenceOfXYZ);
-       return *this;
-      }
-
-      reference operator()(size_type n){
-       return TSuperClass::operator[](n-1);
-      }
-
-      const_reference operator()(size_type n) const{
-       return TSuperClass::operator[](n-1);
-      }
-
-    private:
-      reference operator[](size_type n);
-
-      const_reference operator[](size_type n) const;
-    };
-
-    class Functor
-    {
-    public:
-      ~Functor(){}
-      virtual void SetMesh( const SMDS_Mesh* theMesh ) = 0;
-      virtual SMDSAbs_ElementType GetType() const = 0;
-    };
-
-    class NumericalFunctor: public virtual Functor{
-    public:
-      NumericalFunctor();
-      virtual void SetMesh( const SMDS_Mesh* theMesh );
-      virtual double GetValue( long theElementId );
-      virtual double GetValue(const TSequenceOfXYZ& thePoints) { return -1.0;};
-      virtual SMDSAbs_ElementType GetType() const = 0;
-      virtual double GetBadRate( double Value, int nbNodes ) const = 0;
-      long  GetPrecision() const;
-      void  SetPrecision( const long thePrecision );
-      
-      bool GetPoints(const int theId, 
-                    TSequenceOfXYZ& theRes) const;
-      static bool GetPoints(const SMDS_MeshElement* theElem, 
-                           TSequenceOfXYZ& theRes);
-    protected:
-      const SMDS_Mesh* myMesh;
-      long       myPrecision;
-    };
-  
-  
-    /*
-      Class       : SMESH_MinimumAngle
-      Description : Functor for calculation of minimum angle
-    */
-    class MinimumAngle: public virtual NumericalFunctor{
-    public:
-      virtual double GetValue( const TSequenceOfXYZ& thePoints );
-      virtual double GetBadRate( double Value, int nbNodes ) const;
-      virtual SMDSAbs_ElementType GetType() const;
-    };
-  
-  
-    /*
-      Class       : AspectRatio
-      Description : Functor for calculating aspect ratio
-    */
-    class AspectRatio: public virtual NumericalFunctor{
-    public:
-      virtual double GetValue( const TSequenceOfXYZ& thePoints );
-      virtual double GetBadRate( double Value, int nbNodes ) const;
-      virtual SMDSAbs_ElementType GetType() const;
-    };
-  
-  
-    /*
-      Class       : AspectRatio3D
-      Description : Functor for calculating aspect ratio of 3D elems.
-    */
-    class AspectRatio3D: public virtual NumericalFunctor{
-    public:
-      virtual double GetValue( const TSequenceOfXYZ& thePoints );
-      virtual double GetBadRate( double Value, int nbNodes ) const;
-      virtual SMDSAbs_ElementType GetType() const;
-    };
-  
-  
-    /*
-      Class       : Warping
-      Description : Functor for calculating warping
-    */
-    class Warping: public virtual NumericalFunctor{
-    public:
-      virtual double GetValue( const TSequenceOfXYZ& thePoints );
-      virtual double GetBadRate( double Value, int nbNodes ) const;
-      virtual SMDSAbs_ElementType GetType() const;
-      
-    private:
-      double ComputeA( const gp_XYZ&, const gp_XYZ&, const gp_XYZ&, const gp_XYZ& ) const;
-    };
-  
-  
-    /*
-      Class       : Taper
-      Description : Functor for calculating taper
-    */
-    class Taper: public virtual NumericalFunctor{
-    public:
-      virtual double GetValue( const TSequenceOfXYZ& thePoints );
-      virtual double GetBadRate( double Value, int nbNodes ) const;
-      virtual SMDSAbs_ElementType GetType() const;
-    };
-    
-  
-    /*
-      Class       : Skew
-      Description : Functor for calculating skew in degrees
-    */
-    class Skew: public virtual NumericalFunctor{
-    public:
-      virtual double GetValue( const TSequenceOfXYZ& thePoints );
-      virtual double GetBadRate( double Value, int nbNodes ) const;
-      virtual SMDSAbs_ElementType GetType() const;
-    };
-  
-    
-    /*
-      Class       : Area
-      Description : Functor for calculating area
-    */
-    class Area: public virtual NumericalFunctor{
-    public:
-      virtual double GetValue( const TSequenceOfXYZ& thePoints );
-      virtual double GetBadRate( double Value, int nbNodes ) const;
-      virtual SMDSAbs_ElementType GetType() const;
-    };
-  
-  
-    /*
-      Class       : Length
-      Description : Functor for calculating length of edge
-    */
-    class Length: public virtual NumericalFunctor{
-    public:
-      virtual double GetValue( const TSequenceOfXYZ& thePoints );
-      virtual double GetBadRate( double Value, int nbNodes ) const;
-      virtual SMDSAbs_ElementType GetType() const;
-    };
-  
-    /*
-      Class       : Length2D
-      Description : Functor for calculating length of edge
-    */
-    class Length2D: public virtual NumericalFunctor{
-    public:
-      virtual double GetValue( long theElementId );
-      virtual double GetBadRate( double Value, int nbNodes ) const;
-      virtual SMDSAbs_ElementType GetType() const;
-      struct Value{
-       double myLength;
-       long myPntId[2];
-       Value(double theLength, long thePntId1, long thePntId2);
-       bool operator<(const Value& x) const;
-      };
-      typedef std::set<Value> TValues;
-      void GetValues(TValues& theValues);
-      
-    };
-    typedef boost::shared_ptr<Length2D> Length2DPtr;
-
-    /*
-      Class       : MultiConnection
-      Description : Functor for calculating number of faces conneted to the edge
-    */
-    class MultiConnection: public virtual NumericalFunctor{
-    public:
-      virtual double GetValue( long theElementId );
-      virtual double GetValue( const TSequenceOfXYZ& thePoints );
-      virtual double GetBadRate( double Value, int nbNodes ) const;
-      virtual SMDSAbs_ElementType GetType() const;
-    };
-    
-    /*
-      Class       : MultiConnection2D
-      Description : Functor for calculating number of faces conneted to the edge
-    */
-    class MultiConnection2D: public virtual NumericalFunctor{
-    public:
-      virtual double GetValue( long theElementId );
-      virtual double GetValue( const TSequenceOfXYZ& thePoints );
-      virtual double GetBadRate( double Value, int nbNodes ) const;
-      virtual SMDSAbs_ElementType GetType() const;
-      struct Value{
-       long myPntId[2];
-       Value(long thePntId1, long thePntId2);
-       bool operator<(const Value& x) const;
-      };
-      typedef std::map<Value,int> MValues;
-
-      void GetValues(MValues& theValues);
-    };
-    typedef boost::shared_ptr<MultiConnection2D> MultiConnection2DPtr;
-    /*
-      PREDICATES
-    */
-    /*
-      Class       : Predicate
-      Description : Base class for all predicates
-    */
-    class Predicate: public virtual Functor{
-    public:
-      virtual bool IsSatisfy( long theElementId ) = 0;
-      virtual SMDSAbs_ElementType GetType() const = 0;
-    };
-    
-  
-  
-    /*
-      Class       : FreeBorders
-      Description : Predicate for free borders
-    */
-    class FreeBorders: public virtual Predicate{
-    public:
-      FreeBorders();
-      virtual void SetMesh( const SMDS_Mesh* theMesh );
-      virtual bool IsSatisfy( long theElementId );
-      virtual SMDSAbs_ElementType GetType() const;
-            
-    protected:
-      const SMDS_Mesh* myMesh;
-    };
-   
-
-    /*
-      Class       : BadOrientedVolume
-      Description : Predicate bad oriented volumes
-    */
-    class BadOrientedVolume: public virtual Predicate{
-    public:
-      BadOrientedVolume();
-      virtual void SetMesh( const SMDS_Mesh* theMesh );
-      virtual bool IsSatisfy( long theElementId );
-      virtual SMDSAbs_ElementType GetType() const;
-            
-    protected:
-      const SMDS_Mesh* myMesh;
-    };
-   
-
-    /*
-      Class       : FreeEdges
-      Description : Predicate for free Edges
-    */
-    class FreeEdges: public virtual Predicate{
-    public:
-      FreeEdges();
-      virtual void SetMesh( const SMDS_Mesh* theMesh );
-      virtual bool IsSatisfy( long theElementId );
-      virtual SMDSAbs_ElementType GetType() const;
-      static bool IsFreeEdge( const SMDS_MeshNode** theNodes, const int theFaceId  );
-      typedef long TElemId;
-      struct Border{
-       TElemId myElemId;
-       TElemId myPntId[2];
-       Border(long theElemId, long thePntId1, long thePntId2);
-       bool operator<(const Border& x) const;
-      };
-      typedef std::set<Border> TBorders;
-      void GetBoreders(TBorders& theBorders);
-      
-    protected:
-      const SMDS_Mesh* myMesh;
-    };
-    typedef boost::shared_ptr<FreeEdges> FreeEdgesPtr;
-
-
-    /*
-      Class       : RangeOfIds
-      Description : Predicate for Range of Ids.
-                    Range may be specified with two ways.
-                    1. Using AddToRange method
-                    2. With SetRangeStr method. Parameter of this method is a string
-                       like as "1,2,3,50-60,63,67,70-"
-    */
-    class RangeOfIds: public virtual Predicate
-    {
-    public:
-                                    RangeOfIds();
-      virtual void                  SetMesh( const SMDS_Mesh* theMesh );
-      virtual bool                  IsSatisfy( long theNodeId );
-      virtual SMDSAbs_ElementType   GetType() const;
-      virtual void                  SetType( SMDSAbs_ElementType theType );
-
-      bool                          AddToRange( long theEntityId );
-      void                          GetRangeStr( TCollection_AsciiString& );
-      bool                          SetRangeStr( const TCollection_AsciiString& );
-
-    protected:
-      const SMDS_Mesh*              myMesh;
-
-      TColStd_SequenceOfInteger     myMin;
-      TColStd_SequenceOfInteger     myMax;
-      TColStd_MapOfInteger          myIds;
-
-      SMDSAbs_ElementType           myType;
-    };
-    
-    typedef boost::shared_ptr<RangeOfIds> RangeOfIdsPtr;
-   
-    
-    /*
-      Class       : Comparator
-      Description : Base class for comparators
-    */
-    class Comparator: public virtual Predicate{
-    public:
-      Comparator();
-      virtual ~Comparator();
-      virtual void SetMesh( const SMDS_Mesh* theMesh );
-      virtual void SetMargin(double theValue);
-      virtual void SetNumFunctor(NumericalFunctorPtr theFunct);
-      virtual bool IsSatisfy( long theElementId ) = 0;
-      virtual SMDSAbs_ElementType GetType() const;
-      double  GetMargin();
-  
-    protected:
-      double myMargin;
-      NumericalFunctorPtr myFunctor;
-    };
-    typedef boost::shared_ptr<Comparator> ComparatorPtr;
-  
-  
-    /*
-      Class       : LessThan
-      Description : Comparator "<"
-    */
-    class LessThan: public virtual Comparator{
-    public:
-      virtual bool IsSatisfy( long theElementId );
-    };
-  
-  
-    /*
-      Class       : MoreThan
-      Description : Comparator ">"
-    */
-    class MoreThan: public virtual Comparator{
-    public:
-      virtual bool IsSatisfy( long theElementId );
-    };
-  
-  
-    /*
-      Class       : EqualTo
-      Description : Comparator "="
-    */
-    class EqualTo: public virtual Comparator{
-    public:
-      EqualTo();
-      virtual bool IsSatisfy( long theElementId );
-      virtual void SetTolerance( double theTol );
-      virtual double GetTolerance();
-  
-    private:
-      double myToler;
-    };
-    typedef boost::shared_ptr<EqualTo> EqualToPtr;
-  
-    
-    /*
-      Class       : LogicalNOT
-      Description : Logical NOT predicate
-    */
-    class LogicalNOT: public virtual Predicate{
-    public:
-      LogicalNOT();
-      virtual ~LogicalNOT();
-      virtual bool IsSatisfy( long theElementId );
-      virtual void SetMesh( const SMDS_Mesh* theMesh );
-      virtual void SetPredicate(PredicatePtr thePred);
-      virtual SMDSAbs_ElementType GetType() const;
-  
-    private:
-      PredicatePtr myPredicate;
-    };
-    typedef boost::shared_ptr<LogicalNOT> LogicalNOTPtr;
-    
-  
-    /*
-      Class       : LogicalBinary
-      Description : Base class for binary logical predicate
-    */
-    class LogicalBinary: public virtual Predicate{
-    public:
-      LogicalBinary();
-      virtual ~LogicalBinary();
-      virtual void SetMesh( const SMDS_Mesh* theMesh );
-      virtual void SetPredicate1(PredicatePtr thePred);
-      virtual void SetPredicate2(PredicatePtr thePred);
-      virtual SMDSAbs_ElementType GetType() const;
-  
-    protected:
-      PredicatePtr myPredicate1;
-      PredicatePtr myPredicate2;
-    };
-    typedef boost::shared_ptr<LogicalBinary> LogicalBinaryPtr;
-  
-  
-    /*
-      Class       : LogicalAND
-      Description : Logical AND
-    */
-    class LogicalAND: public virtual LogicalBinary{
-    public:
-      virtual bool IsSatisfy( long theElementId );
-    };
-  
-  
-    /*
-      Class       : LogicalOR
-      Description : Logical OR
-    */
-    class LogicalOR: public virtual LogicalBinary{
-    public:
-      virtual bool IsSatisfy( long theElementId );
-    };
-  
-  
-    /*
-      Class       : ManifoldPart
-      Description : Predicate for manifold part of mesh
-    */
-    class ManifoldPart: public virtual Predicate{
-    public:
-
-      /* internal class for algorithm uses */
-      class Link
-      {
-      public:
-        Link( SMDS_MeshNode* theNode1,
-              SMDS_MeshNode* theNode2 );
-        ~Link();
-        
-        bool IsEqual( const ManifoldPart::Link& theLink ) const;
-        bool operator<(const ManifoldPart::Link& x) const;
-        
-        SMDS_MeshNode* myNode1;
-        SMDS_MeshNode* myNode2;
-      };
-
-      bool IsEqual( const ManifoldPart::Link& theLink1,
-                    const ManifoldPart::Link& theLink2 );
-      
-      typedef std::set<ManifoldPart::Link>                TMapOfLink;
-      typedef std::vector<SMDS_MeshFace*>                 TVectorOfFacePtr;
-      typedef std::vector<ManifoldPart::Link>             TVectorOfLink;
-      typedef std::map<SMDS_MeshFace*,int>                TDataMapFacePtrInt;
-      typedef std::map<ManifoldPart::Link,SMDS_MeshFace*> TDataMapOfLinkFacePtr;
-      
-      ManifoldPart();
-      ~ManifoldPart();
-      virtual void SetMesh( const SMDS_Mesh* theMesh );
-      // inoke when all parameters already set
-      virtual bool IsSatisfy( long theElementId );
-      virtual      SMDSAbs_ElementType GetType() const;
-
-      void    SetAngleTolerance( const double theAngToler );
-      double  GetAngleTolerance() const;
-      void    SetIsOnlyManifold( const bool theIsOnly );
-      void    SetStartElem( const long  theStartElemId );
-
-    private:
-      bool    process();
-      bool    findConnected( const TDataMapFacePtrInt& theAllFacePtrInt,
-                             SMDS_MeshFace*            theStartFace,
-                             TMapOfLink&               theNonManifold,
-                             TColStd_MapOfInteger&     theResFaces );
-      bool    isInPlane( const SMDS_MeshFace* theFace1,
-                          const SMDS_MeshFace* theFace2 );
-      void    expandBoundary( TMapOfLink&            theMapOfBoundary,
-                              TVectorOfLink&         theSeqOfBoundary,
-                              TDataMapOfLinkFacePtr& theDMapLinkFacePtr,
-                              TMapOfLink&            theNonManifold,
-                              SMDS_MeshFace*         theNextFace ) const;
-
-     void     getFacesByLink( const Link& theLink,
-                              TVectorOfFacePtr& theFaces ) const;
-
-    private:
-      const SMDS_Mesh*      myMesh;
-      TColStd_MapOfInteger  myMapIds;
-      TColStd_MapOfInteger  myMapBadGeomIds;
-      TVectorOfFacePtr      myAllFacePtr;
-      TDataMapFacePtrInt    myAllFacePtrIntDMap;
-      double                myAngToler;
-      bool                  myIsOnlyManifold;
-      long                  myStartElemId;
-
-    };
-    typedef boost::shared_ptr<ManifoldPart> ManifoldPartPtr;
-                         
-
-    /*
-      Class       : ElementsOnSurface
-      Description : Predicate elements that lying on indicated surface
-                    (plane or cylinder)
-    */
-    class ElementsOnSurface : public virtual Predicate {
-    public:
-      ElementsOnSurface();
-      ~ElementsOnSurface();
-      virtual void SetMesh( const SMDS_Mesh* theMesh );
-      virtual bool IsSatisfy( long theElementId );
-      virtual      SMDSAbs_ElementType GetType() const;
-
-      void    SetTolerance( const double theToler );
-      double  GetTolerance() const;
-      void    SetSurface( const TopoDS_Shape& theShape,
-                          const SMDSAbs_ElementType theType );
-
-    private:
-      void    process();
-      void    process( const SMDS_MeshElement* theElem  );
-      bool    isOnSurface( const SMDS_MeshNode* theNode ) const;
-
-    private:
-      const SMDS_Mesh*      myMesh;
-      TColStd_MapOfInteger  myIds;
-      SMDSAbs_ElementType   myType;
-      Handle(Geom_Surface)  mySurf;
-      double                myToler;
-    };
-    
-    typedef boost::shared_ptr<ElementsOnSurface> ElementsOnSurfacePtr;
-      
-
-    /*
-      FILTER
-    */
-    class Filter{
-    public:
-      Filter();
-      virtual ~Filter();
-      virtual void SetPredicate(PredicatePtr thePred);
-
-      typedef std::vector<long> TIdSequence;
-
-      virtual 
-      void
-      GetElementsId( const SMDS_Mesh* theMesh,
-                    TIdSequence& theSequence );
-
-      static
-      void
-      GetElementsId( const SMDS_Mesh* theMesh, 
-                    PredicatePtr thePredicate,
-                    TIdSequence& theSequence );
-      
-    protected:
-      PredicatePtr myPredicate;
-    };
-  };  
-};
-
-
-#endif
diff --git a/src/Driver/Driver_Document.cxx b/src/Driver/Driver_Document.cxx
deleted file mode 100644 (file)
index 159c1a8..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "Driver_Document.h"
-
-Driver_Document::Driver_Document():
-  myDocument(NULL)
-{}
-
-
-void Driver_Document::SetFile(const std::string& theFileName)
-{
-  myFile = theFileName;
-}
-
-
-void Driver_Document::SetDocument(SMESHDS_Document * theDocument)
-{
-  myDocument = theDocument;
-}
diff --git a/src/Driver/Driver_Document.h b/src/Driver/Driver_Document.h
deleted file mode 100644 (file)
index 8d4ff5a..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVER_DOCUMENT
-#define _INCLUDE_DRIVER_DOCUMENT
-
-#include <string>
-
-class SMESHDS_Document;
-
-class Driver_Document
-{
- public:
-  Driver_Document();
-  virtual ~Driver_Document(){}
-
-  virtual void Perform() = 0;
-  void SetFile(const std::string& theFileName);
-  void SetDocument(SMESHDS_Document *theDocument);
-
- protected:
-  SMESHDS_Document * myDocument;
-  std::string myFile;
-
-};
-
-
-#endif
diff --git a/src/Driver/Driver_Mesh.cxx b/src/Driver/Driver_Mesh.cxx
deleted file mode 100644 (file)
index f656bdd..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-//  SMESH Driver : implementaion of driver for reading and writing     
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : Mesh_Reader.cxx
-//  Module : SMESH
-
-#include "Driver_Mesh.h"
-
-using namespace std;
-
-Driver_Mesh::Driver_Mesh():
-  myFile(""),
-  myMeshId(-1)
-{}
-
-
-void Driver_Mesh::SetMeshId(int theMeshId)
-{
-  myMeshId = theMeshId;
-}
-
-
-void Driver_Mesh::SetFile(const std::string& theFileName)
-{
-  myFile = theFileName;
-}
diff --git a/src/Driver/Driver_Mesh.h b/src/Driver/Driver_Mesh.h
deleted file mode 100644 (file)
index 0bfac0c..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-//  SMESH Driver : implementaion of driver for reading and writing  
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : Mesh_Reader.h
-//  Module : SMESH
-
-#ifndef _INCLUDE_DRIVER_MESH
-#define _INCLUDE_DRIVER_MESH
-
-#include <string>
-
-class Driver_Mesh
-{
- public:
-  Driver_Mesh();
-  virtual ~Driver_Mesh(){}
-
-  enum Status {
-    DRS_OK,
-    DRS_EMPTY,          // a file contains no mesh with the given name
-    DRS_WARN_RENUMBER,  // a file has overlapped ranges of element numbers,
-                        // so the numbers from the file are ignored
-    DRS_WARN_SKIP_ELEM, // some elements were skipped due to incorrect file data
-    DRS_FAIL            // general failure (exception etc.)
-  };
-
-  virtual Status Perform() = 0;
-  void SetMeshId(int theMeshId);
-  void SetFile(const std::string& theFileName);
-
- protected:
-  std::string myFile;
-  int myMeshId;
-
-};
-
-#endif
diff --git a/src/Driver/Driver_SMDS_Mesh.cxx b/src/Driver/Driver_SMDS_Mesh.cxx
deleted file mode 100644 (file)
index dae030d..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "Driver_SMDS_Mesh.h"
-
-using namespace std;
-
-Driver_SMDS_Mesh::Driver_SMDS_Mesh():
-  myMesh(NULL)
-{}
-
-void Driver_SMDS_Mesh::SetMesh(SMDS_Mesh *theMesh)
-{
-  myMesh = theMesh;
-}
diff --git a/src/Driver/Driver_SMDS_Mesh.h b/src/Driver/Driver_SMDS_Mesh.h
deleted file mode 100644 (file)
index 1ea3756..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVER_SMDS_MESH
-#define _INCLUDE_DRIVER_SMDS_MESH
-
-#include "Driver_Mesh.h"
-
-class SMDS_Mesh;
-
-class Driver_SMDS_Mesh: public Driver_Mesh
-{
- public:
-  Driver_SMDS_Mesh();
-  void SetMesh(SMDS_Mesh *theMesh);
-  
- protected:
-  SMDS_Mesh *myMesh;
-
-};
-
-#endif
diff --git a/src/Driver/Driver_SMESHDS_Mesh.cxx b/src/Driver/Driver_SMESHDS_Mesh.cxx
deleted file mode 100644 (file)
index 2bf8827..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "Driver_SMESHDS_Mesh.h"
-
-using namespace std;
-
-Driver_SMESHDS_Mesh::Driver_SMESHDS_Mesh():
-  myMesh(NULL)
-{}
-
-void Driver_SMESHDS_Mesh::SetMesh(SMESHDS_Mesh *theMesh)
-{
-  myMesh = theMesh;
-}
diff --git a/src/Driver/Driver_SMESHDS_Mesh.h b/src/Driver/Driver_SMESHDS_Mesh.h
deleted file mode 100644 (file)
index b401dbd..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVER_SMESHDS_MESH
-#define _INCLUDE_DRIVER_SMESHDS_MESH
-
-#include "Driver_Mesh.h"
-
-class SMESHDS_Mesh;
-
-class Driver_SMESHDS_Mesh: public Driver_Mesh
-{
- public:
-  Driver_SMESHDS_Mesh();
-  void SetMesh(SMESHDS_Mesh *theMesh);
-  
- protected:
-  SMESHDS_Mesh *myMesh;
-
-};
-
-#endif
diff --git a/src/Driver/Makefile.in b/src/Driver/Makefile.in
deleted file mode 100644 (file)
index d1c7141..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#  SMESH Driver : implementaion of driver for reading and writing      
-#
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : Makefile.in
-#  Author : Marc Tajchman (CEA)
-#  Module : SMESH
-#  $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@
-
-
-@COMMENCE@
-
-# header files 
-EXPORT_HEADERS= Driver_Document.h Driver_Mesh.h \
-               Driver_SMDS_Mesh.h Driver_SMESHDS_Mesh.h
-
-# Libraries targets
-LIB = libMeshDriver.la
-LIB_SRC = Driver_Document.cxx Driver_Mesh.cxx \
-         Driver_SMDS_Mesh.cxx Driver_SMESHDS_Mesh.cxx
-
-LIB_CLIENT_IDL =
-
-LIB_SERVER_IDL =
-
-# additionnal information to compil and link file
-CPPFLAGS += 
-CXXFLAGS += 
-
-LDFLAGS  += $(OCC_KERNEL_LIBS) -lTKTopAlgo -lSMESHDS -L${KERNEL_ROOT_DIR}/lib/salome -lOpUtil
-
-
-@CONCLUDE@
-
-
-
diff --git a/src/DriverDAT/DAT_Test.cxx b/src/DriverDAT/DAT_Test.cxx
deleted file mode 100644 (file)
index a36b4dd..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "DriverDAT_R_SMDS_Mesh.h"
-#include "DriverDAT_W_SMDS_Mesh.h"
-
-int main(int argc, char** argv)
-{
-  DriverDAT_R_SMDS_Mesh aR;
-  DriverDAT_W_SMDS_Mesh aW;
-  return 1;
-}
diff --git a/src/DriverDAT/DriverDAT_R_SMDS_Mesh.cxx b/src/DriverDAT/DriverDAT_R_SMDS_Mesh.cxx
deleted file mode 100644 (file)
index a49d7db..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include <stdio.h>
-
-#include "DriverDAT_R_SMDS_Mesh.h"
-#include "SMDS_Mesh.hxx"
-
-#include "utilities.h"
-
-using namespace std;
-
-Driver_Mesh::Status DriverDAT_R_SMDS_Mesh::Perform()
-{
-  Status aResult = DRS_OK;
-
-  int i, j;
-  int nbNodes, nbCells;
-  int intNumPoint;
-  float coordX, coordY, coordZ;
-  int nbNoeuds;
-  
-  int intNumMaille, Degre;
-  int ValElement;
-  int ValDegre;
-  int NoeudsMaille[20];
-  int NoeudMaille;
-  
-  bool ok;
-  
-  MESSAGE("in DriverDAT_R_SMDS_Mesh::Read()");
-  /****************************************************************************
-   *                      OUVERTURE DU FICHIER EN LECTURE                      *
-   ****************************************************************************/
-  char *file2Read = (char *)myFile.c_str();
-  FILE* aFileId = fopen(file2Read, "r");
-  if (aFileId < 0) {
-    fprintf(stderr, ">> ERREUR : ouverture du fichier %s \n", file2Read);
-    return DRS_FAIL;
-  }
-  
-  fscanf(aFileId, "%d %d\n", &nbNodes, &nbCells);
-  
-  /****************************************************************************
-   *                       LECTURE DES NOEUDS                                  *
-   ****************************************************************************/
-  fprintf(stdout, "\n(************************)\n");
-  fprintf(stdout, "(* NOEUDS DU MAILLAGE : *)\n");
-  fprintf(stdout, "(************************)\n");
-  
-  for (i = 0; i < nbNodes; i++){
-    fscanf(aFileId, "%d %e %e %e\n", &intNumPoint, &coordX, &coordY, &coordZ);
-    ok = myMesh->AddNodeWithID(coordX, coordY, coordZ, intNumPoint);
-  }
-  
-  fprintf(stdout, "%d noeuds\n", myMesh->NbNodes());
-  /****************************************************************************
-   *                       LECTURE DES ELEMENTS                                *
-   ****************************************************************************/
-  fprintf(stdout, "\n(**************************)\n");
-  fprintf(stdout, "(* ELEMENTS DU MAILLAGE : *)\n");
-  fprintf(stdout, "(**************************)");
-  
-  fprintf(stdout, "%d elements\n", nbCells);
-  
-  for (i = 0; i < nbCells; i++) {
-    fscanf(aFileId, "%d %d", &intNumMaille, &ValElement);
-    Degre = abs(ValElement / 100);
-    nbNoeuds = ValElement - (Degre * 100);
-    
-    // Recuperation des noeuds de la maille
-    for (j = 0; j < nbNoeuds; j++) {
-      fscanf(aFileId, "%d", &NoeudMaille);
-      NoeudsMaille[j] = NoeudMaille;
-    }
-    
-    // Analyse des cas de cellules
-    switch (ValElement) {
-    case 102:
-    case 103:
-      ValDegre = 3;
-      nbNoeuds = 2;
-      ok = myMesh->AddEdgeWithID(NoeudsMaille[0], NoeudsMaille[1], 
-                                intNumMaille);
-      break;
-    case 204:
-    case 208:
-      ValDegre = 9;
-      nbNoeuds = 4;
-      ok = myMesh->AddFaceWithID(NoeudsMaille[0], NoeudsMaille[1],
-                                NoeudsMaille[2], NoeudsMaille[3], 
-                                intNumMaille);
-      break;
-    case 203:
-    case 206:
-      ValDegre = 5;
-      nbNoeuds = 3;
-      ok = myMesh->AddFaceWithID(NoeudsMaille[0], NoeudsMaille[1],
-                                NoeudsMaille[2], intNumMaille);
-      break;
-    case 308:
-    case 320:
-      ValDegre = 12;
-      nbNoeuds = 8;
-      if (ValElement == 320){
-       //A voir, correspondance VTK
-       NoeudsMaille[4] = NoeudsMaille[8];
-       NoeudsMaille[5] = NoeudsMaille[9];
-       NoeudsMaille[6] = NoeudsMaille[10];
-       NoeudsMaille[7] = NoeudsMaille[11];
-      }
-      ok = myMesh->AddVolumeWithID(NoeudsMaille[0], NoeudsMaille[1],
-                                  NoeudsMaille[2], NoeudsMaille[3], 
-                                  NoeudsMaille[4], NoeudsMaille[5], 
-                                  NoeudsMaille[6], NoeudsMaille[7],
-                                  intNumMaille);
-      break;
-    case 304:
-    case 310:
-      ValDegre = 10;
-      nbNoeuds = 4;
-      if (ValElement == 310)
-       NoeudsMaille[3] = NoeudsMaille[6];
-      ok = myMesh->AddVolumeWithID(NoeudsMaille[0], NoeudsMaille[1],
-                                  NoeudsMaille[2], NoeudsMaille[3], 
-                                  intNumMaille);
-      break;
-    case 306:
-    case 315:
-      ValDegre = 12;
-      nbNoeuds = 8;
-      if (ValElement == 315) {
-       NoeudsMaille[3] = NoeudsMaille[6];
-       NoeudsMaille[4] = NoeudsMaille[7];
-       NoeudsMaille[5] = NoeudsMaille[8];
-      }
-      NoeudsMaille[7] = NoeudsMaille[5];
-      NoeudsMaille[6] = NoeudsMaille[5];
-      NoeudsMaille[5] = NoeudsMaille[4];
-      NoeudsMaille[4] = NoeudsMaille[3];
-      NoeudsMaille[3] = NoeudsMaille[2];
-      ok = myMesh->AddVolumeWithID(NoeudsMaille[0], NoeudsMaille[1],
-                                  NoeudsMaille[2], NoeudsMaille[3], 
-                                  NoeudsMaille[4], NoeudsMaille[5], 
-                                  intNumMaille);
-                               break;
-    }
-  }
-  /****************************************************************************
-   *                      FERMETURE DU FICHIER                      *
-   ****************************************************************************/
-  fclose(aFileId);
-  return aResult;
-}
diff --git a/src/DriverDAT/DriverDAT_R_SMDS_Mesh.h b/src/DriverDAT/DriverDAT_R_SMDS_Mesh.h
deleted file mode 100644 (file)
index d955cf7..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVERDAT_R_SMDS_MESH
-#define _INCLUDE_DRIVERDAT_R_SMDS_MESH
-
-#include "Driver_SMDS_Mesh.h"
-
-class DriverDAT_R_SMDS_Mesh: public Driver_SMDS_Mesh
-{
- public:
-  virtual Status Perform();
-};
-
-#endif
diff --git a/src/DriverDAT/DriverDAT_R_SMESHDS_Document.cxx b/src/DriverDAT/DriverDAT_R_SMESHDS_Document.cxx
deleted file mode 100644 (file)
index c7d9b22..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "DriverDAT_R_SMESHDS_Document.h"
diff --git a/src/DriverDAT/DriverDAT_R_SMESHDS_Document.h b/src/DriverDAT/DriverDAT_R_SMESHDS_Document.h
deleted file mode 100644 (file)
index 3d63ced..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVERDAT_R_SMESHDS_DOCUMENT
-#define _INCLUDE_DRIVERDAT_R_SMESHDS_DOCUMENT
-
-#include "Driver_Document.h"
-
-class DriverDAT_R_SMESHDS_Document : public Driver_Document 
-{};
-
-#endif
diff --git a/src/DriverDAT/DriverDAT_R_SMESHDS_Mesh.cxx b/src/DriverDAT/DriverDAT_R_SMESHDS_Mesh.cxx
deleted file mode 100644 (file)
index a7e974f..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "DriverDAT_R_SMESHDS_Mesh.h"
diff --git a/src/DriverDAT/DriverDAT_R_SMESHDS_Mesh.h b/src/DriverDAT/DriverDAT_R_SMESHDS_Mesh.h
deleted file mode 100644 (file)
index e749675..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVERDAT_R_SMESHDS_MESH
-#define _INCLUDE_DRIVERDAT_R_SMESHDS_MESH
-
-#include "Driver_SMESHDS_Mesh.h"
-
-class DriverDAT_R_SMESHDS_Mesh: public Driver_SMESHDS_Mesh
-{};
-
-#endif
diff --git a/src/DriverDAT/DriverDAT_W_SMDS_Mesh.cxx b/src/DriverDAT/DriverDAT_W_SMDS_Mesh.cxx
deleted file mode 100644 (file)
index 1f8d5ab..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include <stdio.h>
-
-#include "DriverDAT_W_SMDS_Mesh.h"
-
-#include "SMDS_Mesh.hxx"
-
-#include "utilities.h"
-
-using namespace std;
-
-Driver_Mesh::Status DriverDAT_W_SMDS_Mesh::Perform()
-{
-  Status aResult = DRS_OK;
-
-  int nbNodes, nbCells;
-  int i;
-  
-  char *file2Read = (char *)myFile.c_str();
-  FILE* aFileId = fopen(file2Read, "w+");
-  if (aFileId < 0) {
-    fprintf(stderr, ">> ERREUR : ouverture du fichier %s \n", file2Read);
-    return DRS_FAIL;
-  }
-  SCRUTE(myMesh);
-  /****************************************************************************
-   *                       NOMBRES D'OBJETS                                    *
-   ****************************************************************************/
-  fprintf(stdout, "\n(****************************)\n");
-  fprintf(stdout, "(* INFORMATIONS GENERALES : *)\n");
-  fprintf(stdout, "(****************************)\n");
-  
-  /* Combien de noeuds ? */
-  nbNodes = myMesh->NbNodes();
-  
-  /* Combien de mailles, faces ou aretes ? */
-  int nb_of_nodes, nb_of_edges, nb_of_faces, nb_of_volumes;
-  nb_of_edges = myMesh->NbEdges();
-  nb_of_faces = myMesh->NbFaces();
-  nb_of_volumes = myMesh->NbVolumes();
-  nbCells = nb_of_edges + nb_of_faces + nb_of_volumes;
-  SCRUTE(nb_of_edges);
-  SCRUTE(nb_of_faces);
-  SCRUTE(nb_of_volumes);
-  
-  fprintf(stdout, "%d %d\n", nbNodes, nbCells);
-  fprintf(aFileId, "%d %d\n", nbNodes, nbCells);
-  
-  /****************************************************************************
-   *                       ECRITURE DES NOEUDS                                 *
-   ****************************************************************************/
-  fprintf(stdout, "\n(************************)\n");
-  fprintf(stdout, "(* NOEUDS DU MAILLAGE : *)\n");
-  fprintf(stdout, "(************************)\n");
-  
-  SMDS_NodeIteratorPtr itNodes=myMesh->nodesIterator();
-  while(itNodes->more()){              
-    const SMDS_MeshNode * node = itNodes->next();
-    fprintf(aFileId, "%d %e %e %e\n", node->GetID(), node->X(), node->Y(), node->Z());
-  }
-       
-  /****************************************************************************
-   *                       ECRITURE DES ELEMENTS                                *
-   ****************************************************************************/
-  fprintf(stdout, "\n(**************************)\n");
-  fprintf(stdout, "(* ELEMENTS DU MAILLAGE : *)\n");
-  fprintf(stdout, "(**************************)");
-  /* Ecriture des connectivites, noms, numeros des mailles */
-  
-  SMDS_EdgeIteratorPtr itEdges=myMesh->edgesIterator();
-  while(itEdges->more()){
-    const SMDS_MeshElement * elem = itEdges->next();
-    switch (elem->NbNodes()) {
-    case 2:
-      fprintf(aFileId, "%d %d ", elem->GetID(), 102);
-      break;
-    case 3:
-      fprintf(aFileId, "%d %d ", elem->GetID(), 103);
-      break;
-    }
-    SMDS_ElemIteratorPtr it=elem->nodesIterator();
-    while(it->more()) 
-      fprintf(aFileId, "%d ", it->next()->GetID());
-    fprintf(aFileId, "\n");
-  }
-  
-  SMDS_FaceIteratorPtr itFaces=myMesh->facesIterator();
-  while(itFaces->more()){
-    const SMDS_MeshElement * elem = itFaces->next();
-    switch (elem->NbNodes()) {
-    case 3:
-      fprintf(aFileId, "%d %d ", elem->GetID(), 203);
-      break;
-    case 4:
-      fprintf(aFileId, "%d %d ", elem->GetID(), 204);
-      break;
-    case 6:
-      fprintf(aFileId, "%d %d ", elem->GetID(), 206);
-      break;
-    }
-    SMDS_ElemIteratorPtr it=elem->nodesIterator();
-    while(it->more()) 
-      fprintf(aFileId, "%d ", it->next()->GetID());
-    fprintf(aFileId, "\n");
-  }
-
-  SMDS_VolumeIteratorPtr itVolumes=myMesh->volumesIterator();
-  while(itVolumes->more()){
-    const SMDS_MeshElement * elem = itVolumes->next();
-    switch (elem->NbNodes()) {
-    case 8:
-      fprintf(aFileId, "%d %d ", elem->GetID(), 308);
-      break;
-    }
-
-    SMDS_ElemIteratorPtr it=elem->nodesIterator();
-    while(it->more()) 
-      fprintf(aFileId, "%d ", it->next()->GetID());
-
-    fprintf(aFileId, "\n");
-  }
-  
-  fclose(aFileId);
-
-  return aResult;
-}
diff --git a/src/DriverDAT/DriverDAT_W_SMDS_Mesh.h b/src/DriverDAT/DriverDAT_W_SMDS_Mesh.h
deleted file mode 100644 (file)
index ebd3d64..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-//  SMESH DriverDAT : driver to read and write 'dat' files
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : DriverDAT_W_SMDS_Mesh.h
-//  Module : SMESH
-
-#ifndef _INCLUDE_DRIVERDAT_W_SMDS_MESH
-#define _INCLUDE_DRIVERDAT_W_SMDS_MESH
-
-#include "Driver_SMDS_Mesh.h"
-
-class DriverDAT_W_SMDS_Mesh: public Driver_SMDS_Mesh
-{
- public:
-  virtual Status Perform();
-};
-
-#endif
diff --git a/src/DriverDAT/DriverDAT_W_SMESHDS_Document.cxx b/src/DriverDAT/DriverDAT_W_SMESHDS_Document.cxx
deleted file mode 100644 (file)
index 1cd9699..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "DriverDAT_W_SMESHDS_Document.h"
diff --git a/src/DriverDAT/DriverDAT_W_SMESHDS_Document.h b/src/DriverDAT/DriverDAT_W_SMESHDS_Document.h
deleted file mode 100644 (file)
index 6b2bad5..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVERDAT_W_SMESHDS_DOCUMENT
-#define _INCLUDE_DRIVERDAT_W_SMESHDS_DOCUMENT
-
-#include "Driver_Document.h"
-
-class DriverDAT_W_SMESHDS_Document: public Driver_Document 
-{};
-
-#endif
diff --git a/src/DriverDAT/DriverDAT_W_SMESHDS_Mesh.cxx b/src/DriverDAT/DriverDAT_W_SMESHDS_Mesh.cxx
deleted file mode 100644 (file)
index e17c6cd..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "DriverDAT_W_SMESHDS_Mesh.h"
diff --git a/src/DriverDAT/DriverDAT_W_SMESHDS_Mesh.h b/src/DriverDAT/DriverDAT_W_SMESHDS_Mesh.h
deleted file mode 100644 (file)
index b9b9130..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-//  SMESH DriverDAT : driver to read and write 'dat' files
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : DriverDAT_W_SMESHDS_Mesh.h
-//  Module : SMESH
-
-#ifndef _INCLUDE_DRIVERDAT_W_SMESHDS_MESH
-#define _INCLUDE_DRIVERDAT_W_SMESHDS_MESH
-
-#include "Driver_SMESHDS_Mesh.h"
-
-class DriverDAT_W_SMESHDS_Mesh: public Driver_SMESHDS_Mesh
-{};
-
-#endif
diff --git a/src/DriverDAT/Makefile.in b/src/DriverDAT/Makefile.in
deleted file mode 100644 (file)
index 23fcb3a..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#  SMESH DriverDAT : driver to read and write 'dat' files
-#
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : Makefile.in
-#  Author : Marc Tajchman (CEA)
-#  Module : SMESH
-#  $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@
-
-
-@COMMENCE@
-
-# header files 
-EXPORT_HEADERS= DriverDAT_R_SMDS_Mesh.h DriverDAT_R_SMESHDS_Mesh.h DriverDAT_R_SMESHDS_Document.h DriverDAT_W_SMDS_Mesh.h DriverDAT_W_SMESHDS_Mesh.h DriverDAT_W_SMESHDS_Document.h 
-
-# Libraries targets
-LIB = libMeshDriverDAT.la
-LIB_SRC = DriverDAT_R_SMDS_Mesh.cxx DriverDAT_R_SMESHDS_Mesh.cxx DriverDAT_R_SMESHDS_Document.cxx DriverDAT_W_SMDS_Mesh.cxx DriverDAT_W_SMESHDS_Mesh.cxx DriverDAT_W_SMESHDS_Document.cxx 
-
-# Executables targets
-BIN = DAT_Test
-
-LIB_CLIENT_IDL =
-
-LIB_SERVER_IDL =
-
-# additionnal information to compil and link file
-CPPFLAGS += -I${KERNEL_ROOT_DIR}/include/salome $(OCC_INCLUDES) $(BOOST_CPPFLAGS)
-CXXFLAGS += -I${KERNEL_ROOT_DIR}/include/salome
-LDFLAGS  += -lMeshDriver $(OCC_KERNEL_LIBS)
-
-LDFLAGSFORBIN += -lMeshDriver -lSMDS -L${KERNEL_ROOT_DIR}/lib/salome -lOpUtil -lSALOMELocalTrace
-
-@CONCLUDE@
-
-
-
diff --git a/src/DriverMED/DriverMED_Family.cxx b/src/DriverMED/DriverMED_Family.cxx
deleted file mode 100644 (file)
index 80b343e..0000000
+++ /dev/null
@@ -1,390 +0,0 @@
-//  SMESH DriverMED : tool to split groups on families
-//
-//  Copyright (C) 2003  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : DriverMED_Family.cxx
-//  Author : Julia DOROVSKIKH
-//  Module : SMESH
-//  $Header$
-
-#include "DriverMED_Family.h"
-#include "MED_Factory.hxx"
-
-#include <sstream>     
-
-using namespace std;
-
-//=============================================================================
-/*!
- *  Split each group from list <aGroups> on some parts (families)
- *  on the basis of the elements membership in other groups from this list.
- *  Resulting families have no common elements.
- */
-//=============================================================================
-list<DriverMED_FamilyPtr> DriverMED_Family::MakeFamilies
-                         (const map <int, SMESHDS_SubMesh*>& theSubMeshes,
-                          const list<SMESHDS_GroupBase*>& theGroups,
-                          const bool doGroupOfNodes,
-                          const bool doGroupOfEdges,
-                          const bool doGroupOfFaces,
-                          const bool doGroupOfVolumes)
-{
-  list<DriverMED_FamilyPtr> aFamilies;
-
-  string anAllNodesGroupName = "Group_Of_All_Nodes";
-  string anAllEdgesGroupName = "Group_Of_All_Edges";
-  string anAllFacesGroupName = "Group_Of_All_Faces";
-  string anAllVolumesGroupName = "Group_Of_All_Volumes";
-
-  // Reserve four ids for families of free elements
-  // (1 - nodes, -1 - edges, -2 - faces, -3 - volumes).
-  // 'Free' means here not belonging to any group.
-  int aNodeFamId = FIRST_NODE_FAMILY;
-  int aElemFamId = FIRST_ELEM_FAMILY;
-
-  // Process sub-meshes
-  map<int, SMESHDS_SubMesh*>::const_iterator aSMIter = theSubMeshes.begin();
-  for (; aSMIter != theSubMeshes.end(); aSMIter++)
-  {
-    if ( aSMIter->second->IsComplexSubmesh() )
-      continue; // submesh containing other submeshs
-    list<DriverMED_FamilyPtr> aSMFams = SplitByType((*aSMIter).second, (*aSMIter).first);
-    list<DriverMED_FamilyPtr>::iterator aSMFamsIter = aSMFams.begin();
-    for (; aSMFamsIter != aSMFams.end(); aSMFamsIter++)
-    {
-      DriverMED_FamilyPtr aFam2 = (*aSMFamsIter);
-
-      list<DriverMED_FamilyPtr>::iterator aFamsIter = aFamilies.begin();
-      while (aFamsIter != aFamilies.end())
-      {
-        DriverMED_FamilyPtr aFam1 = *aFamsIter;
-        list<DriverMED_FamilyPtr>::iterator aCurrIter = aFamsIter++;
-        if (aFam1->myType == aFam2->myType)
-        {
-          DriverMED_FamilyPtr aCommon (new DriverMED_Family);
-          aFam1->Split(aFam2, aCommon);
-          if (!aCommon->IsEmpty())
-          {
-            aFamilies.push_back(aCommon);
-          }
-          if (aFam1->IsEmpty())
-          {
-            aFamilies.erase(aCurrIter);
-          }
-          if (aFam2->IsEmpty()) break;
-        }
-      }
-      // The rest elements of family
-      if (!aFam2->IsEmpty())
-      {
-        aFamilies.push_back(aFam2);
-      }
-    }
-  }
-
-  // Process groups
-  list<SMESHDS_GroupBase*>::const_iterator aGroupsIter = theGroups.begin();
-  for (; aGroupsIter != theGroups.end(); aGroupsIter++)
-  {
-    DriverMED_FamilyPtr aFam2 (new DriverMED_Family);
-    aFam2->Init(*aGroupsIter);
-
-    list<DriverMED_FamilyPtr>::iterator aFamsIter = aFamilies.begin();
-    while (aFamsIter != aFamilies.end())
-    {
-      DriverMED_FamilyPtr aFam1 = *aFamsIter;
-      list<DriverMED_FamilyPtr>::iterator aCurrIter = aFamsIter++;
-      if (aFam1->myType == aFam2->myType)
-      {
-        DriverMED_FamilyPtr aCommon (new DriverMED_Family);
-        aFam1->Split(aFam2, aCommon);
-        if (!aCommon->IsEmpty())
-        {
-          aFamilies.push_back(aCommon);
-        }
-        if (aFam1->IsEmpty())
-        {
-          aFamilies.erase(aCurrIter);
-        }
-        if (aFam2->IsEmpty()) break;
-      }
-    }
-    // The rest elements of group
-    if (!aFam2->IsEmpty())
-    {
-      aFamilies.push_back(aFam2);
-    }
-  }
-
-  list<DriverMED_FamilyPtr>::iterator aFamsIter = aFamilies.begin();
-  for (; aFamsIter != aFamilies.end(); aFamsIter++)
-  {
-    DriverMED_FamilyPtr aFam = *aFamsIter;
-    if (aFam->myType == SMDSAbs_Node) {
-      aFam->SetId(aNodeFamId++);
-      if (doGroupOfNodes) aFam->myGroupNames.insert(anAllNodesGroupName);
-    }
-    else {
-      aFam->SetId(aElemFamId--);
-      if (aFam->myType == SMDSAbs_Edge) {
-        if (doGroupOfEdges) aFam->myGroupNames.insert(anAllEdgesGroupName);
-      }
-      else if (aFam->myType == SMDSAbs_Face) {
-        if (doGroupOfFaces) aFam->myGroupNames.insert(anAllFacesGroupName);
-      }
-      else if (aFam->myType == SMDSAbs_Volume) {
-        if (doGroupOfVolumes) aFam->myGroupNames.insert(anAllVolumesGroupName);
-      }
-    }
-  }
-
-  // Create families for elements, not belonging to any group
-  if (doGroupOfNodes)
-  {
-    DriverMED_FamilyPtr aFreeNodesFam (new DriverMED_Family);
-    aFreeNodesFam->SetId(REST_NODES_FAMILY);
-    aFreeNodesFam->myType = SMDSAbs_Node;
-    aFreeNodesFam->myGroupNames.insert(anAllNodesGroupName);
-    aFamilies.push_back(aFreeNodesFam);
-  }
-
-  if (doGroupOfEdges)
-  {
-    DriverMED_FamilyPtr aFreeEdgesFam (new DriverMED_Family);
-    aFreeEdgesFam->SetId(REST_EDGES_FAMILY);
-    aFreeEdgesFam->myType = SMDSAbs_Edge;
-    aFreeEdgesFam->myGroupNames.insert(anAllEdgesGroupName);
-    aFamilies.push_back(aFreeEdgesFam);
-  }
-
-  if (doGroupOfFaces)
-  {
-    DriverMED_FamilyPtr aFreeFacesFam (new DriverMED_Family);
-    aFreeFacesFam->SetId(REST_FACES_FAMILY);
-    aFreeFacesFam->myType = SMDSAbs_Face;
-    aFreeFacesFam->myGroupNames.insert(anAllFacesGroupName);
-    aFamilies.push_back(aFreeFacesFam);
-  }
-
-  if (doGroupOfVolumes)
-  {
-    DriverMED_FamilyPtr aFreeVolumesFam (new DriverMED_Family);
-    aFreeVolumesFam->SetId(REST_VOLUMES_FAMILY);
-    aFreeVolumesFam->myType = SMDSAbs_Volume;
-    aFreeVolumesFam->myGroupNames.insert(anAllVolumesGroupName);
-    aFamilies.push_back(aFreeVolumesFam);
-  }
-
-  DriverMED_FamilyPtr aNullFam (new DriverMED_Family);
-  aNullFam->SetId(0);
-  aNullFam->myType = SMDSAbs_All;
-  aFamilies.push_back(aNullFam);
-
-  return aFamilies;
-}
-
-//=============================================================================
-/*!
- *  Create TFamilyInfo for this family
- */
-//=============================================================================
-MED::PFamilyInfo 
-DriverMED_Family::GetFamilyInfo(const MED::PWrapper& theWrapper, 
-                               const MED::PMeshInfo& theMeshInfo) const
-{
-  string aValue;
-
-  ostringstream aStr;
-
-  aStr << "FAM_" << myId;
-  set<string>::iterator aGrIter = myGroupNames.begin();
-  for (; aGrIter != myGroupNames.end(); aGrIter++)
-  {
-    aStr << "_" << *aGrIter;
-  }
-
-  aValue = aStr.str();
-  /*
-  MED::TStringVector anAttrDescs (1, "");  // 1 attribute with empty description,
-  MED::TIntVector anAttrIds (1, myId);        // Id=0,
-  MED::TIntVector anAttrVals (1, myId);       // Value=0
-  */
-  
-  MED::PFamilyInfo anInfo = theWrapper->CrFamilyInfo(theMeshInfo,
-                                                    aValue,
-                                                    myId,
-                                                    myGroupNames);
-/*                                                  
-                                                   anAttrDescs,
-                                                   anAttrIds,
-                                                   anAttrVals);
-*/
-
-//  cout << endl;
-//  cout << "Groups: ";
-//  set<string>::iterator aGrIter = myGroupNames.begin();
-//  for (; aGrIter != myGroupNames.end(); aGrIter++)
-//  {
-//    cout << " " << *aGrIter;
-//  }
-//  cout << endl;
-//
-//  cout << "Elements: ";
-//  set<const SMDS_MeshElement *>::iterator anIter = myElements.begin();
-//  for (; anIter != myElements.end(); anIter++)
-//  {
-//    cout << " " << (*anIter)->GetID();
-//  }
-//  cout << endl;
-
-  return anInfo;
-}
-
-//=============================================================================
-/*!
- *  Initialize the tool by SMESHDS_GroupBase
- */
-//=============================================================================
-void DriverMED_Family::Init (SMESHDS_GroupBase* theGroup)
-{
-  // Elements
-  myElements.clear();
-  SMDS_ElemIteratorPtr elemIt = theGroup->GetElements();
-  while (elemIt->more())
-  {
-    myElements.insert(elemIt->next());
-  }
-
-  // Type
-  myType = theGroup->GetType();
-
-  // Groups list
-  myGroupNames.clear();
-  myGroupNames.insert(string(theGroup->GetStoreName()));
-}
-
-//=============================================================================
-/*!
- *  Split <theSubMesh> on some parts (families)
- *  on the basis of the elements type.
- */
-//=============================================================================
-list<DriverMED_FamilyPtr> DriverMED_Family::SplitByType (SMESHDS_SubMesh* theSubMesh,
-                                                         const int        theId)
-{
-  list<DriverMED_FamilyPtr> aFamilies;
-  DriverMED_FamilyPtr aNodesFamily   (new DriverMED_Family);
-  DriverMED_FamilyPtr anEdgesFamily  (new DriverMED_Family);
-  DriverMED_FamilyPtr aFacesFamily   (new DriverMED_Family);
-  DriverMED_FamilyPtr aVolumesFamily (new DriverMED_Family);
-
-  char submeshGrpName[ 30 ];
-  sprintf( submeshGrpName, "SubMesh %d", theId );
-
-  SMDS_NodeIteratorPtr aNodesIter = theSubMesh->GetNodes();
-  while (aNodesIter->more())
-  {
-    const SMDS_MeshNode* aNode = aNodesIter->next();
-    aNodesFamily->AddElement(aNode);
-  }
-
-  SMDS_ElemIteratorPtr anElemsIter = theSubMesh->GetElements();
-  while (anElemsIter->more())
-  {
-    const SMDS_MeshElement* anElem = anElemsIter->next();
-    switch (anElem->GetType())
-    {
-    case SMDSAbs_Edge:
-      anEdgesFamily->AddElement(anElem);
-      break;
-    case SMDSAbs_Face:
-      aFacesFamily->AddElement(anElem);
-      break;
-    case SMDSAbs_Volume:
-      aVolumesFamily->AddElement(anElem);
-      break;
-    default:
-      break;
-    }
-  }
-
-  if (!aNodesFamily->IsEmpty()) {
-    aNodesFamily->SetType(SMDSAbs_Node);
-    aNodesFamily->AddGroupName(submeshGrpName);
-    aFamilies.push_back(aNodesFamily);
-  }
-  if (!anEdgesFamily->IsEmpty()) {
-    anEdgesFamily->SetType(SMDSAbs_Edge);
-    anEdgesFamily->AddGroupName(submeshGrpName);
-    aFamilies.push_back(anEdgesFamily);
-  }
-  if (!aFacesFamily->IsEmpty()) {
-    aFacesFamily->SetType(SMDSAbs_Face);
-    aFacesFamily->AddGroupName(submeshGrpName);
-    aFamilies.push_back(aFacesFamily);
-  }
-  if (!aVolumesFamily->IsEmpty()) {
-    aVolumesFamily->SetType(SMDSAbs_Volume);
-    aVolumesFamily->AddGroupName(submeshGrpName);
-    aFamilies.push_back(aVolumesFamily);
-  }
-
-  return aFamilies;
-}
-
-//=============================================================================
-/*!
- *  Remove from <myElements> elements, common with <by>,
- *  Remove from <by> elements, common with <myElements>,
- *  Create family <common> from common elements, with combined groups list.
- */
-//=============================================================================
-void DriverMED_Family::Split (DriverMED_FamilyPtr by,
-                              DriverMED_FamilyPtr common)
-{
-  // Elements
-  set<const SMDS_MeshElement *>::iterator anIter = by->myElements.begin();
-  while ( anIter != by->myElements.end())
-  {
-    if (myElements.find(*anIter) != myElements.end())
-    {
-      common->myElements.insert(*anIter);
-      myElements.erase(*anIter);
-      by->myElements.erase(anIter++);
-    }
-    else
-      anIter++;
-  }
-
-  if (!common->IsEmpty())
-  {
-    // Groups list
-    common->myGroupNames = myGroupNames;
-    set<string>::iterator aGrNamesIter = by->myGroupNames.begin();
-    for (; aGrNamesIter != by->myGroupNames.end(); aGrNamesIter++)
-    {
-      common->myGroupNames.insert(*aGrNamesIter);
-    }
-
-    // Type
-    common->myType = myType;
-  }
-}
diff --git a/src/DriverMED/DriverMED_Family.h b/src/DriverMED/DriverMED_Family.h
deleted file mode 100644 (file)
index 944b9bc..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-//  SMESH DriverMED : tool to split groups on families
-//
-//  Copyright (C) 2003  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : DriverMED_Family.hxx
-//  Author : Julia DOROVSKIKH
-//  Module : SMESH
-//  $Header$
-
-#ifndef _INCLUDE_DRIVERMED_FAMILY
-#define _INCLUDE_DRIVERMED_FAMILY
-
-#include "SMDS_Mesh.hxx"
-#include "SMESHDS_GroupBase.hxx"
-#include "SMESHDS_SubMesh.hxx"
-#include "MED_Common.hxx"
-
-#include <boost/shared_ptr.hpp>
-#include <set>
-
-#define REST_NODES_FAMILY 1
-#define REST_EDGES_FAMILY -1
-#define REST_FACES_FAMILY -2
-#define REST_VOLUMES_FAMILY -3
-#define FIRST_NODE_FAMILY 2
-#define FIRST_ELEM_FAMILY -4
-
-class DriverMED_Family;
-typedef boost::shared_ptr<DriverMED_Family> DriverMED_FamilyPtr;
-
-class DriverMED_Family
-{
- public:
-
-  // Methods for groups storing to MED
-
-  static std::list<DriverMED_FamilyPtr> MakeFamilies (const std::map <int, SMESHDS_SubMesh*>& theSubMeshes,
-                                                     const std::list<SMESHDS_GroupBase*>& theGroups,
-                                                     const bool doGroupOfNodes,
-                                                     const bool doGroupOfEdges,
-                                                     const bool doGroupOfFaces,
-                                                     const bool doGroupOfVolumes);
-  // Split each group from list <theGroups> and each sub-mesh from list <theSubMeshes>
-  // on some parts (families) on the basis of the elements membership in other groups
-  // from <theGroups> and other sub-meshes from <theSubMeshes>.
-  // Resulting families have no common elements.
-
-  MED::PFamilyInfo GetFamilyInfo (const MED::PWrapper& theWrapper, 
-                                 const MED::PMeshInfo& theMeshInfo) const;
-  // Create TFamilyInfo for this family
-
-  const std::set<const SMDS_MeshElement *>& GetElements () const { return myElements; }
-  // Returns elements of this family
-
-  int GetId () const { return myId; }
-  // Returns a family ID
-
- public:
-
-  // Methods for groups reading from MED
-
-  void AddElement (const SMDS_MeshElement* theElement) { myElements.insert(theElement); }
-
-  void AddGroupName (std::string theGroupName) { myGroupNames.insert(theGroupName); }
-
-  void SetType (const SMDSAbs_ElementType theType) { myType = theType; }
-  SMDSAbs_ElementType GetType () { return myType; }
-
-  bool MemberOf (std::string theGroupName) const
-    { return (myGroupNames.find(theGroupName) != myGroupNames.end()); }
-
-  const MED::TStringSet& GetGroupNames () const { return myGroupNames; }
-
- private:
-  void Init (SMESHDS_GroupBase* group);
-  // Initialize the tool by SMESHDS_GroupBase
-
-  static std::list<DriverMED_FamilyPtr> SplitByType (SMESHDS_SubMesh* theSubMesh,
-                                                    const int        theId);
-  // Split <theSubMesh> on some parts (families)
-  // on the basis of the elements type.
-
-  void Split (DriverMED_FamilyPtr by,
-             DriverMED_FamilyPtr common);
-  // Remove from <Elements> elements, common with <by>,
-  // Remove from <by> elements, common with <Elements>,
-  // Create family <common> from common elements, with combined groups list.
-
-  void SetId (const int theId) { myId = theId; }
-  // Sets a family ID
-
-  bool IsEmpty () const { return myElements.empty(); }
-  // Check, if this family has empty list of elements
-
- private:
-  int                           myId;
-  SMDSAbs_ElementType           myType;
-  std::set<const SMDS_MeshElement *> myElements;
-  MED::TStringSet               myGroupNames;
-};
-
-#endif
diff --git a/src/DriverMED/DriverMED_R_SMDS_Mesh.cxx b/src/DriverMED/DriverMED_R_SMDS_Mesh.cxx
deleted file mode 100644 (file)
index cac48ff..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "DriverMED_R_SMDS_Mesh.h"
diff --git a/src/DriverMED/DriverMED_R_SMDS_Mesh.h b/src/DriverMED/DriverMED_R_SMDS_Mesh.h
deleted file mode 100644 (file)
index a6ece30..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVERMED_R_SMDS_MESH
-#define _INCLUDE_DRIVERMED_R_SMDS_MESH
-
-#include "Driver_SMDS_Mesh.h"
-
-class DriverMED_R_SMDS_Mesh: public Driver_SMDS_Mesh
-{};
-
-#endif
diff --git a/src/DriverMED/DriverMED_R_SMESHDS_Document.cxx b/src/DriverMED/DriverMED_R_SMESHDS_Document.cxx
deleted file mode 100644 (file)
index 9527382..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "DriverMED_R_SMESHDS_Document.h"
diff --git a/src/DriverMED/DriverMED_R_SMESHDS_Document.h b/src/DriverMED/DriverMED_R_SMESHDS_Document.h
deleted file mode 100644 (file)
index c933e0c..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVERMED_R_SMESHDS_DOCUMENT
-#define _INCLUDE_DRIVERMED_R_SMESHDS_DOCUMENT
-
-#include "Driver_Document.h"
-
-class DriverMED_R_SMESHDS_Document : public Driver_Document 
-{};
-
-#endif
diff --git a/src/DriverMED/DriverMED_R_SMESHDS_Mesh.h b/src/DriverMED/DriverMED_R_SMESHDS_Mesh.h
deleted file mode 100644 (file)
index fe1322b..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-//  SMESH DriverMED : driver to read and write 'med' files
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : DriverMED_R_SMESHDS_Mesh.h
-//  Module : SMESH
-
-#ifndef _INCLUDE_DRIVERMED_R_SMESHDS_MESH
-#define _INCLUDE_DRIVERMED_R_SMESHDS_MESH
-
-#include "Driver_SMESHDS_Mesh.h"
-#include "DriverMED_Family.h"
-
-#include <list>
-
-class SMESHDS_Mesh;
-class SMESHDS_Group;
-class SMESHDS_SubMesh;
-
-class DriverMED_R_SMESHDS_Mesh: public Driver_SMESHDS_Mesh
-{
- public:
-  virtual Status Perform();
-
-  std::list<std::string> GetGroupNames();
-  void GetGroup(SMESHDS_Group* theGroup);
-  void CreateAllSubMeshes();
-  void GetSubMesh(SMESHDS_SubMesh* theSubMesh, const int theId);
-
-  std::list<std::string> GetMeshNames(Status& theStatus);
-  void SetMeshName(std::string theMeshName);
-
- private:
-  std::string myMeshName;
-  std::map<int, DriverMED_FamilyPtr> myFamilies;
-
-};
-
-#endif
diff --git a/src/DriverMED/DriverMED_W_SMDS_Mesh.cxx b/src/DriverMED/DriverMED_W_SMDS_Mesh.cxx
deleted file mode 100644 (file)
index d48e085..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "DriverMED_W_SMDS_Mesh.h"
diff --git a/src/DriverMED/DriverMED_W_SMDS_Mesh.h b/src/DriverMED/DriverMED_W_SMDS_Mesh.h
deleted file mode 100644 (file)
index 2151ae6..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVERMED_W_SMDS_MESH
-#define _INCLUDE_DRIVERMED_W_SMDS_MESH
-
-#include "Driver_SMDS_Mesh.h"
-
-class DriverMED_W_SMDS_Mesh: public Driver_SMDS_Mesh
-{};
-
-#endif
diff --git a/src/DriverMED/DriverMED_W_SMESHDS_Document.cxx b/src/DriverMED/DriverMED_W_SMESHDS_Document.cxx
deleted file mode 100644 (file)
index d0537c2..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-//  SMESH DriverMED : driver to read and write 'med' files
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : DriverMED_W_SMESHDS_Document.cxx
-//  Module : SMESH
-
-#include "DriverMED_W_SMESHDS_Document.h"
diff --git a/src/DriverMED/DriverMED_W_SMESHDS_Document.h b/src/DriverMED/DriverMED_W_SMESHDS_Document.h
deleted file mode 100644 (file)
index 2f0cce3..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVERMED_W_SMESHDS_DOCUMENT
-#define _INCLUDE_DRIVERMED_W_SMESHDS_DOCUMENT
-
-#include "Driver_Document.h"
-
-class DriverMED_W_SMESHDS_Document : public Driver_Document 
-{};
-
-#endif
diff --git a/src/DriverMED/DriverMED_W_SMESHDS_Mesh.h b/src/DriverMED/DriverMED_W_SMESHDS_Mesh.h
deleted file mode 100644 (file)
index 1cc8649..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-//  SMESH DriverMED : driver to read and write 'med' files
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : DriverMED_W_SMESHDS_Mesh.h
-//  Module : SMESH
-
-#ifndef _INCLUDE_DRIVERMED_W_SMESHDS_MESH
-#define _INCLUDE_DRIVERMED_W_SMESHDS_MESH
-
-#include "Driver_SMESHDS_Mesh.h"
-#include "MED_Factory.hxx"
-
-#include <string>
-#include <list>
-#include <map>
-
-class SMESHDS_Mesh;
-class SMESHDS_GroupBase;
-class SMESHDS_SubMesh;
-
-class DriverMED_W_SMESHDS_Mesh: public Driver_SMESHDS_Mesh
-{
-  public:
-
-  DriverMED_W_SMESHDS_Mesh();
-
-  virtual void SetFile(const std::string& theFileName);
-  void SetFile(const std::string& theFileName, MED::EVersion theId);
-
-  /*! sets file name; only for usage with Add(), not Write()
-   */
-  void AddGroupOfNodes();
-  void AddGroupOfEdges();
-  void AddGroupOfFaces();
-  void AddGroupOfVolumes();
-
-  /*! functions to prepare adding one mesh
-   */
-  void SetMeshName(const std::string& theMeshName);
-  void AddGroup(SMESHDS_GroupBase * theGroup);
-  void AddAllSubMeshes();
-  void AddSubMesh(SMESHDS_SubMesh* theSubMesh, int theID);
-
-  /*! add one mesh
-   */
-  virtual Status Perform();
-
- private:
-
-  MED::PWrapper myMed;
-  std::string myMeshName;
-  std::list<SMESHDS_GroupBase*> myGroups;
-  bool myAllSubMeshes;
-  std::map<int,SMESHDS_SubMesh*> mySubMeshes;
-  bool myDoGroupOfNodes;
-  bool myDoGroupOfEdges;
-  bool myDoGroupOfFaces;
-  bool myDoGroupOfVolumes;
-};
-
-
-#endif
-
diff --git a/src/DriverMED/MED_Test.cxx b/src/DriverMED/MED_Test.cxx
deleted file mode 100644 (file)
index 7d6c3cd..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "DriverMED_R_SMESHDS_Mesh.h"
-#include "DriverMED_W_SMESHDS_Mesh.h"
-
-int main(int argc, char** argv)
-{
-  DriverMED_R_SMESHDS_Mesh aR;
-  DriverMED_W_SMESHDS_Mesh aW;
-  return 1;
-}
diff --git a/src/DriverMED/Makefile.in b/src/DriverMED/Makefile.in
deleted file mode 100644 (file)
index 87c2b23..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#  SMESH DriverMED : driver to read and write 'med' files
-#
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : Makefile.in
-#  Author : Marc Tajchman (CEA)
-#  Module : SMESH
-#  $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@
-
-
-@COMMENCE@
-
-# header files 
-EXPORT_HEADERS = \
-       DriverMED_R_SMDS_Mesh.h DriverMED_R_SMESHDS_Mesh.h DriverMED_R_SMESHDS_Document.h \
-       DriverMED_W_SMDS_Mesh.h DriverMED_W_SMESHDS_Mesh.h DriverMED_W_SMESHDS_Document.h \
-       DriverMED_Family.h
-
-# Libraries targets
-LIB = libMeshDriverMED.la
-LIB_SRC = \
-       DriverMED_R_SMDS_Mesh.cxx \
-       DriverMED_R_SMESHDS_Mesh.cxx \
-       DriverMED_R_SMESHDS_Document.cxx \
-       DriverMED_W_SMDS_Mesh.cxx \
-       DriverMED_W_SMESHDS_Document.cxx \
-       DriverMED_W_SMESHDS_Mesh.cxx \
-       DriverMED_Family.cxx
-
-# Executables targets
-BIN = MED_Test
-
-LIB_CLIENT_IDL =
-
-LIB_SERVER_IDL =
-
-# additionnal information to compil and link file
-CPPFLAGS += $(OCC_INCLUDES) -I${MED_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS)
-CXXFLAGS += $(OCC_CXXFLAGS) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome
-LDFLAGS  += -lMeshDriver -L${MED_ROOT_DIR}/lib/salome -lMEDWrapper
-
-LDFLAGSFORBIN += -lMeshDriver -lSMDS -lSMESHDS -L${KERNEL_ROOT_DIR}/lib/salome -L${MED_ROOT_DIR}/lib/salome -lMEDWrapper -lMEDWrapperBase -lMEDWrapper_V2_1 -lMEDWrapper_V2_2 -lOpUtil -lSALOMELocalTrace
-
-@CONCLUDE@
-
-
-
diff --git a/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cxx b/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cxx
deleted file mode 100644 (file)
index 2064453..0000000
+++ /dev/null
@@ -1,343 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include <stdio.h>
-#include <gp_Pnt.hxx>
-//=======================================================================
-//function : HashCode
-//purpose  : 
-//=======================================================================
-inline Standard_Integer HashCode
-  (const gp_Pnt& point,  Standard_Integer Upper)
-{
-  union 
-    {
-    Standard_Real R[3];
-    Standard_Integer I[6];
-    } U;
-
-  point.Coord(U.R[0],U.R[1],U.R[2]);  
-
-  return ::HashCode(U.I[0]/23+U.I[1]/19+U.I[2]/17+U.I[3]/13+U.I[4]/11+U.I[5]/7,Upper);
-}
-static Standard_Real tab1[3];
-static Standard_Real tab2[3];
-//=======================================================================
-//function : IsEqual
-//purpose  : 
-//=======================================================================
-inline Standard_Boolean IsEqual
-  (const gp_Pnt& point1, const gp_Pnt& point2)
-{
-  point1.Coord(tab1[0],tab1[1],tab1[2]);  
-  point2.Coord(tab2[0],tab2[1],tab2[2]);  
-  return (memcmp(tab1,tab2,sizeof(tab1)) == 0);
-}
-#include "DriverSTL_R_SMDS_Mesh.h"
-
-#include "SMDS_Mesh.hxx"
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-
-#include <OSD_Path.hxx>
-#include <OSD_File.hxx>
-#include <OSD_FromWhere.hxx>
-#include <OSD_Protection.hxx>
-#include <OSD_SingleProtection.hxx>
-#include <Standard_NoMoreObject.hxx>
-
-#include "utilities.h"
-
-static const int HEADER_SIZE           =  84;
-static const int SIZEOF_STL_FACET      =  50;
-//static const int STL_MIN_FILE_SIZE     = 284;
-static const int ASCII_LINES_PER_FACET =   7;
-
-
-//typedef NCollection_BaseCollection<SMDS_MeshNodePtr> DriverSTL_ColOfNodePtr;
-
-
-#include <NCollection_DataMap.hxx>
-typedef NCollection_DataMap<gp_Pnt,SMDS_MeshNode*> DriverSTL_DataMapOfPntNodePtr;
-//=======================================================================
-//function : DriverSTL_R_SMDS_Mesh
-//purpose  : 
-//=======================================================================
-
-DriverSTL_R_SMDS_Mesh::DriverSTL_R_SMDS_Mesh()
-{
-  myIsCreateFaces = true;
-  myIsAscii = Standard_True;
-}
-
-//=======================================================================
-//function : SetIsCreateFaces
-//purpose  : 
-//=======================================================================
-
-void DriverSTL_R_SMDS_Mesh::SetIsCreateFaces( const bool theIsCreate )
-{ myIsCreateFaces = theIsCreate; }
-
-//=======================================================================
-//function : Perform
-//purpose  : 
-//=======================================================================
-
-Driver_Mesh::Status DriverSTL_R_SMDS_Mesh::Perform()
-{
-  Status aResult = DRS_OK;
-
-  TCollection_AsciiString aFileName( (char *)myFile.c_str() );
-  if ( aFileName.IsEmpty() ) {
-    fprintf(stderr, ">> ERREOR : invalid file name \n");
-    return DRS_FAIL;
-  }
-
-  filebuf fic;
-  Standard_IStream is(&fic);
-  if (!fic.open(aFileName.ToCString(),ios::in)) {
-    fprintf(stderr, ">> ERROR : cannot open file %s \n", aFileName.ToCString());
-    return DRS_FAIL;
-  }
-
-
-  OSD_Path aPath( aFileName );
-  OSD_File file = OSD_File( aPath );
-  file.Open(OSD_ReadOnly,OSD_Protection(OSD_RWD,OSD_RWD,OSD_RWD,OSD_RWD));
-  unsigned char str[128];
-  Standard_Integer lread,i;
-  Standard_Address ach;
-  ach = (Standard_Address)str;
-  // we skip the header which is in Ascii for both modes
-  file.Read(ach,HEADER_SIZE,lread);
-
-  // we read 128 characters to detect if we have a non-ascii char
-  file.Read(ach,sizeof(str),lread);
-  
-  myIsAscii = Standard_True;
-  for (i = 0; i < lread; ++i) {
-    if (str[i] > '~') {
-      myIsAscii = Standard_False;
-      break;
-    }
-  }
-      
-  file.Close();
-
-  if ( !myMesh ) {
-    fprintf(stderr, ">> ERREOR : cannot create mesh \n");
-    return DRS_FAIL;
-  }
-
-  if ( myIsAscii )
-    aResult = readAscii();
-  else
-    aResult = readBinary();
-
-  return aResult;
-}
-
-// static methods
-
-static Standard_Real readFloat(OSD_File& theFile)
-{
-  union {
-    Standard_Boolean i; 
-    Standard_ShortReal f;
-  }u;
-
-  char c[4];
-  Standard_Address adr;
-  adr = (Standard_Address)c;
-  Standard_Integer lread;
-  theFile.Read(adr,4,lread);
-  u.i  =  c[0] & 0xFF;
-  u.i |= (c[1] & 0xFF) << 0x08;
-  u.i |= (c[2] & 0xFF) << 0x10;
-  u.i |= (c[3] & 0xFF) << 0x18;
-
-  return u.f;
-}
-
-static SMDS_MeshNode* addNode(const gp_Pnt& P,
-                              DriverSTL_DataMapOfPntNodePtr& uniqnodes,
-                              SMDS_Mesh* theMesh)
-{
-  SMDS_MeshNode* node = 0;
-  if ( uniqnodes.IsBound(P) ) {
-    node = uniqnodes.Find(P);
-  } else {
-    node = theMesh->AddNode(P.X(), P.Y(), P.Z() );
-    uniqnodes.Bind(P,node);
-  }
-  
-  return node;
-}                                
-
-static SMDS_MeshNode* readNode(FILE* file,
-                               DriverSTL_DataMapOfPntNodePtr& uniqnodes,
-                               SMDS_Mesh* theMesh)
-{
-  Standard_ShortReal coord[3];
-  // reading vertex
-  fscanf(file,"%*s %f %f %f\n",&coord[0],&coord[1],&coord[2]);
-
-  gp_Pnt P(coord[0],coord[1],coord[2]);
-  return addNode( P, uniqnodes, theMesh );
-}
-
-static SMDS_MeshNode* readNode(OSD_File& theFile,
-                               DriverSTL_DataMapOfPntNodePtr& uniqnodes,
-                               SMDS_Mesh* theMesh)
-{
-  Standard_ShortReal coord[3];
-  coord[0] = readFloat(theFile);
-  coord[1] = readFloat(theFile);
-  coord[2] = readFloat(theFile);
-
-  gp_Pnt P(coord[0],coord[1],coord[2]);
-  return addNode( P, uniqnodes, theMesh );
-}
-
-//=======================================================================
-//function : readAscii
-//purpose  : 
-//=======================================================================
-
-Driver_Mesh::Status DriverSTL_R_SMDS_Mesh::readAscii() const
-{
-  Status aResult = DRS_OK;
-  long ipos;
-  Standard_Integer nbLines = 0;
-
-  // Open the file 
-  TCollection_AsciiString aFileName( (char *)myFile.c_str() );
-  FILE* file = fopen(aFileName.ToCString(),"r");
-  fseek(file,0L,SEEK_END);
-  // get the file size
-  long filesize = ftell(file);
-  fclose(file);
-  file = fopen(aFileName.ToCString(),"r");
-  
-  // count the number of lines
-  for (ipos = 0; ipos < filesize; ++ipos) {
-    if (getc(file) == '\n')
-      nbLines++;
-  }
-
-  // go back to the beginning of the file
-//  fclose(file);
-//  file = fopen(aFileName.ToCString(),"r");
-  rewind(file);
-  
-  Standard_Integer nbTri = (nbLines / ASCII_LINES_PER_FACET);
-
-  DriverSTL_DataMapOfPntNodePtr uniqnodes;
-  // skip header
-  while (getc(file) != '\n');
-
-  // main reading
-  for (Standard_Integer iTri = 0; iTri < nbTri; ++iTri) {
-
-    // skipping the facet normal
-    Standard_ShortReal normal[3];
-    fscanf(file,"%*s %*s %f %f %f\n",&normal[0],&normal[1],&normal[2]);
-
-    // skip the keywords "outer loop"
-    fscanf(file,"%*s %*s");
-
-    // reading nodes
-    SMDS_MeshNode* node1 = readNode( file, uniqnodes, myMesh );
-    SMDS_MeshNode* node2 = readNode( file, uniqnodes, myMesh );
-    SMDS_MeshNode* node3 = readNode( file, uniqnodes, myMesh );
-
-    if (myIsCreateFaces)
-      myMesh->AddFace(node1,node2,node3);
-
-    // skip the keywords "endloop"
-    fscanf(file,"%*s");
-
-    // skip the keywords "endfacet"
-    fscanf(file,"%*s");
-  }
-
-  fclose(file);
-  return aResult;
-}
-
-//=======================================================================
-//function : readBinary
-//purpose  : 
-//=======================================================================
-
-Driver_Mesh::Status DriverSTL_R_SMDS_Mesh::readBinary() const
-{
-  Status aResult = DRS_OK;
-
-  char buftest[5];
-  Standard_Address adr;
-  adr = (Standard_Address)buftest;
-
-  TCollection_AsciiString aFileName( (char *)myFile.c_str() );
-  OSD_File aFile = OSD_File(OSD_Path( aFileName ));
-  aFile.Open(OSD_ReadOnly,OSD_Protection(OSD_RWD,OSD_RWD,OSD_RWD,OSD_RWD));
-
-  // the size of the file (minus the header size)
-  // must be a multiple of SIZEOF_STL_FACET
-
-  // compute file size
-  Standard_Integer filesize = aFile.Size();
-
-  if ( (filesize - HEADER_SIZE) % SIZEOF_STL_FACET !=0 
-      // Commented to allow reading small files (ex: 1 face)
-      /*|| (filesize < STL_MIN_FILE_SIZE)*/) {
-    Standard_NoMoreObject::Raise("DriverSTL_R_SMDS_MESH::readBinary (wrong file size)");
-  }
-
-  // don't trust the number of triangles which is coded in the file
-  // sometimes it is wrong, and with this technique we don't need to swap endians for integer
-  Standard_Integer nbTri = ((filesize - HEADER_SIZE) / SIZEOF_STL_FACET);
-
-  // skip the header
-  aFile.Seek(HEADER_SIZE,OSD_FromBeginning);
-
-  DriverSTL_DataMapOfPntNodePtr uniqnodes;
-  Standard_Integer lread;
-  
-  for (Standard_Integer iTri = 0; iTri < nbTri; ++iTri) {
-
-    // ignore normals
-    readFloat(aFile);
-    readFloat(aFile);
-    readFloat(aFile);
-
-    // read vertices
-    SMDS_MeshNode* node1 = readNode( aFile, uniqnodes, myMesh );
-    SMDS_MeshNode* node2 = readNode( aFile, uniqnodes, myMesh );
-    SMDS_MeshNode* node3 = readNode( aFile, uniqnodes, myMesh );
-
-    if (myIsCreateFaces)
-      myMesh->AddFace(node1,node2,node3);
-
-    // skip extra bytes
-    aFile.Read(adr,2,lread);
-  }
-  aFile.Close();
-  return aResult;
-}
diff --git a/src/DriverSTL/DriverSTL_R_SMDS_Mesh.h b/src/DriverSTL/DriverSTL_R_SMDS_Mesh.h
deleted file mode 100644 (file)
index 14afd3c..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVERSTL_R_SMDS_MESH
-#define _INCLUDE_DRIVERSTL_R_SMDS_MESH
-
-#include "Driver_SMDS_Mesh.h"
-
-#include <Standard_TypeDef.hxx>
-
-class DriverSTL_R_SMDS_Mesh: public Driver_SMDS_Mesh
-{
- public:
-  DriverSTL_R_SMDS_Mesh();
-  virtual Status Perform();
-  void           SetIsCreateFaces( const bool theIsCreate = true );
-  
- private:
-  // PRIVATE METHODS
-  Status           readAscii() const;
-  Status           readBinary() const;
-  
- private:
-  // PRIVATE FIELDS
-  bool myIsCreateFaces;
-  bool myIsAscii;
-};
-
-#endif
diff --git a/src/DriverSTL/DriverSTL_W_SMDS_Mesh.cxx b/src/DriverSTL/DriverSTL_W_SMDS_Mesh.cxx
deleted file mode 100644 (file)
index 04ce405..0000000
+++ /dev/null
@@ -1,261 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include <stdio.h>
-
-#include "DriverSTL_W_SMDS_Mesh.h"
-
-#include "SMDS_Mesh.hxx"
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-#include <gp_XYZ.hxx>
-#include <OSD_Path.hxx>
-#include <OSD_File.hxx>
-#include <OSD_FromWhere.hxx>
-#include <OSD_Protection.hxx>
-#include <OSD_SingleProtection.hxx>
-#include <TCollection_AsciiString.hxx>
-#include <TColgp_Array1OfXYZ.hxx>
-
-#include "utilities.h"
-
-//using namespace std;
-
-// definition des constantes 
-static const int LABEL_SIZE = 80;
-
-DriverSTL_W_SMDS_Mesh::DriverSTL_W_SMDS_Mesh()
-{
-  myIsAscii = false;
-}
-
-void DriverSTL_W_SMDS_Mesh::SetIsAscii( const bool theIsAscii )
-{
-  myIsAscii = theIsAscii;
-}
-
-Driver_Mesh::Status DriverSTL_W_SMDS_Mesh::Perform()
-{
-  Status aResult = DRS_OK;
-
-  if ( !myMesh ) {
-    fprintf(stderr, ">> ERROR : Mesh is null \n");
-    return DRS_FAIL;
-  }
-  if ( myIsAscii )
-    aResult = writeAscii();
-  else
-    aResult = writeBinary();
-
-  return aResult;
-}
-
-// static methods
-
-static void writeInteger( const Standard_Integer& theVal,
-                        OSD_File& ofile )
-{
-  union {
-    Standard_Integer i;
-    char c[4];
-  }u;
-
-  u.i = theVal;
-
-  Standard_Integer entier;
-  entier  =  u.c[0] & 0xFF;
-  entier |= (u.c[1] & 0xFF) << 0x08;
-  entier |= (u.c[2] & 0xFF) << 0x10;
-  entier |= (u.c[3] & 0xFF) << 0x18;
-
-  ofile.Write((char *)&entier,sizeof(u.c));
-}
-
-static void writeFloat  ( const Standard_ShortReal& theVal,
-                        OSD_File& ofile)
-{
-  union {
-    Standard_ShortReal f;
-    char c[4]; 
-  }u;
-
-  u.f = theVal;
-
-  Standard_Integer entier;
-
-  entier  =  u.c[0] & 0xFF;
-  entier |= (u.c[1] & 0xFF) << 0x08;
-  entier |= (u.c[2] & 0xFF) << 0x10;
-  entier |= (u.c[3] & 0xFF) << 0x18;
-
-  ofile.Write((char *)&entier,sizeof(u.c));
-}
-
-static gp_XYZ getNormale( const SMDS_MeshFace* theFace )
-{
-  gp_XYZ n;
-  int aNbNode = theFace->NbNodes();
-  TColgp_Array1OfXYZ anArrOfXYZ(1,4);
-  gp_XYZ p1, p2, p3, p4;
-  SMDS_ElemIteratorPtr aNodeItr = theFace->nodesIterator();
-  int i = 1;
-  for ( ; aNodeItr->more() && i <= 4; i++ )
-  {
-    SMDS_MeshNode* aNode = (SMDS_MeshNode*)aNodeItr->next();
-    anArrOfXYZ.SetValue(i, gp_XYZ( aNode->X(), aNode->Y(), aNode->Z() ) );
-  }
-  
-  gp_XYZ q1 = anArrOfXYZ.Value(2) - anArrOfXYZ.Value(1);
-  gp_XYZ q2 = anArrOfXYZ.Value(3) - anArrOfXYZ.Value(1);
-  n  = q1 ^ q2;
-  if ( aNbNode > 3 )
-  {
-    gp_XYZ q3 = anArrOfXYZ.Value(4) - anArrOfXYZ.Value(1);
-    n += q2 ^ q3;
-  }
-  double len = n.Modulus();
-  if ( len > 0 )
-    n /= len;
-
-  return n;
-}
-
-// private methods
-
-Driver_Mesh::Status DriverSTL_W_SMDS_Mesh::writeAscii() const
-{
-  Status aResult = DRS_OK;
-  TCollection_AsciiString aFileName( (char *)myFile.c_str() );
-  if ( aFileName.IsEmpty() ) {
-    fprintf(stderr, ">> ERREOR : invalid file name \n");
-    return DRS_FAIL;
-  }
-
-  OSD_File aFile = OSD_File(OSD_Path(aFileName));
-  aFile.Build(OSD_WriteOnly,OSD_Protection());
-  TCollection_AsciiString buf = TCollection_AsciiString ("solid\n");
-  aFile.Write (buf,buf.Length());buf.Clear();
-  char sval[16];
-
-  SMDS_FaceIteratorPtr itFaces = myMesh->facesIterator();
-  
-  for (; itFaces->more() ;) {
-    SMDS_MeshFace* aFace = (SMDS_MeshFace*)itFaces->next();
-    
-    if (aFace->NbNodes() == 3) {
-      gp_XYZ normale = getNormale( aFace );
-
-      buf += " facet normal "; 
-      sprintf (sval,"% 12e",normale.X());
-      buf += sval;
-      buf += " "; 
-      sprintf (sval,"% 12e",normale.Y());
-      buf += sval;
-      buf += " "; 
-      sprintf (sval,"% 12e",normale.Z());
-      buf += sval;
-      buf += '\n';
-      aFile.Write (buf,buf.Length());buf.Clear();
-      buf += "   outer loop\n"; 
-      aFile.Write (buf,buf.Length());buf.Clear();
-      
-      SMDS_ElemIteratorPtr aNodeIter = aFace->nodesIterator();
-      for (; aNodeIter->more(); ) {
-       SMDS_MeshNode* node = (SMDS_MeshNode*)aNodeIter->next();
-        buf += "     vertex "; 
-        sprintf (sval,"% 12e",node->X());
-        buf += sval;
-        buf += " "; 
-        sprintf (sval,"% 12e",node->Y());
-        buf += sval;
-        buf += " "; 
-        sprintf (sval,"% 12e",node->Z());
-        buf += sval;
-        buf += '\n';
-        aFile.Write (buf,buf.Length());buf.Clear();
-      }
-      buf += "   endloop\n"; 
-      aFile.Write (buf,buf.Length());buf.Clear();
-      buf += " endfacet\n"; 
-      aFile.Write (buf,buf.Length());buf.Clear();
-    } 
-  }
-  buf += "endsolid\n";
-  aFile.Write (buf,buf.Length());buf.Clear();
-  
-  aFile.Close ();
-
-  return aResult;
-}
-
-Driver_Mesh::Status DriverSTL_W_SMDS_Mesh::writeBinary() const
-{
-  Status aResult = DRS_OK;
-  TCollection_AsciiString aFileName( (char *)myFile.c_str() );
-  if ( aFileName.IsEmpty() ) {
-    fprintf(stderr, ">> ERREOR : invalid filename \n");
-    return DRS_FAIL;
-  }
-
-  OSD_File aFile = OSD_File(OSD_Path(aFileName));
-  aFile.Build(OSD_WriteOnly,OSD_Protection());
-
-  char sval[80];
-  Standard_Integer nbTri = 0;
-  SMDS_FaceIteratorPtr itFaces = myMesh->facesIterator();
-
-  // we first count the number of triangles
-  for (;itFaces->more();) {
-    SMDS_MeshFace* aFace = (SMDS_MeshFace*)itFaces->next();
-    if (aFace->NbNodes() == 3)
-      nbTri++;
-  }
-
-  // write number of triangles
-  unsigned int NBT = nbTri;
-  aFile.Write((Standard_Address)sval,LABEL_SIZE);
-  writeInteger(nbTri,aFile);  
-
-  // loop writing nodes. take face iterator again
-  int dum=0;
-  itFaces = myMesh->facesIterator();
-  
-  for (;itFaces->more();) {
-    SMDS_MeshFace* aFace = (SMDS_MeshFace*)itFaces->next();
-    
-    if (aFace->NbNodes() == 3) {
-      gp_XYZ aNorm = getNormale( aFace );
-      writeFloat(aNorm.X(),aFile);
-      writeFloat(aNorm.Y(),aFile);
-      writeFloat(aNorm.Z(),aFile);
-
-      SMDS_ElemIteratorPtr aNodeIter = aFace->nodesIterator();
-      for (; aNodeIter->more(); ) {
-       SMDS_MeshNode* node = (SMDS_MeshNode*)aNodeIter->next();
-       writeFloat(node->X(),aFile);
-       writeFloat(node->Y(),aFile);
-       writeFloat(node->Z(),aFile);
-      }
-      aFile.Write (&dum,2);
-    } 
-  }
-  aFile.Close ();
-
-  return aResult;
-}
diff --git a/src/DriverSTL/DriverSTL_W_SMDS_Mesh.h b/src/DriverSTL/DriverSTL_W_SMDS_Mesh.h
deleted file mode 100644 (file)
index 49d7520..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-//  SMESH DriverSTL : driver to read and write 'stl' files
-//
-//  Copyright (C) 2004  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : DriverSTL_W_SMDS_Mesh.h
-//  Module : SMESH
-
-#ifndef _INCLUDE_DRIVERSTL_W_SMDS_MESH
-#define _INCLUDE_DRIVERSTL_W_SMDS_MESH
-
-#include "Driver_SMDS_Mesh.h"
-#include <Standard_TypeDef.hxx>
-
-class DriverSTL_W_SMDS_Mesh: public Driver_SMDS_Mesh
-{
- public:
-  
-  DriverSTL_W_SMDS_Mesh();
-  virtual Status Perform();
-  void    SetIsAscii( const bool theIsAscii = false );
-
- private:
-  // PRIVATE METHODS
-  Status  writeAscii  () const;
-  Status  writeBinary () const;
-
- private:
-  // PRIVATE FIELDS
-  bool myIsAscii;
-};
-
-#endif
diff --git a/src/DriverSTL/Makefile.in b/src/DriverSTL/Makefile.in
deleted file mode 100644 (file)
index 8c4c83d..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#  SMESH DriverSTL : driver to read and write 'stl' files
-#
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : Makefile.in
-#  Author : Marc Tajchman (CEA)
-#  Module : SMESH
-#  $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@
-
-
-@COMMENCE@
-
-# header files 
-EXPORT_HEADERS= DriverSTL_R_SMDS_Mesh.h DriverSTL_W_SMDS_Mesh.h
-
-# Libraries targets
-LIB = libMeshDriverSTL.la
-LIB_SRC = DriverSTL_R_SMDS_Mesh.cxx DriverSTL_W_SMDS_Mesh.cxx
-
-# Executables targets
-BIN = STL_Test
-
-LIB_CLIENT_IDL =
-
-LIB_SERVER_IDL =
-
-# additionnal information to compil and link file
-CPPFLAGS += $(OCC_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS)
-CXXFLAGS += $(OCC_CXXFLAGS) -I${KERNEL_ROOT_DIR}/include/salome
-LDFLAGS  += $(OCC_KERNEL_LIBS) -lMeshDriver -lTKSTL -lTKTopAlgo -lTKMesh
-
-LDFLAGSFORBIN += -lMeshDriver -lSMDS -L${KERNEL_ROOT_DIR}/lib/salome -lOpUtil -lSALOMELocalTrace $(OCC_KERNEL_LIBS) -lTKSTL -lTKTopAlgo -lTKMesh -lTKBO
-
-@CONCLUDE@
-
-
-
diff --git a/src/DriverSTL/STL_Test.cxx b/src/DriverSTL/STL_Test.cxx
deleted file mode 100644 (file)
index 78dc0df..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-//#include "DriverSTL_R_SMDS_Mesh.h"
-#include "DriverSTL_W_SMDS_Mesh.h"
-
-int main(int argc, char** argv)
-{
-//  DriverSTL_R_SMDS_Mesh aR;
-  DriverSTL_W_SMDS_Mesh aW;
-  return 1;
-}
diff --git a/src/DriverUNV/DriverUNV_R_SMDS_Mesh.cxx b/src/DriverUNV/DriverUNV_R_SMDS_Mesh.cxx
deleted file mode 100644 (file)
index 45dd99e..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-#include "DriverUNV_R_SMDS_Mesh.h"
-#include "SMDS_Mesh.hxx"
-
-#include "utilities.h"
-
-#include "UNV2411_Structure.hxx"
-#include "UNV2412_Structure.hxx"
-#include "UNV_Utilities.hxx"
-
-using namespace std;
-
-
-#ifdef _DEBUG_
-static int MYDEBUG = 0;
-#else
-static int MYDEBUG = 0;
-#endif
-
-
-Driver_Mesh::Status DriverUNV_R_SMDS_Mesh::Perform()
-{
-  Status aResult = DRS_OK;
-  std::ifstream in_stream(myFile.c_str());
-  try{
-    {
-      using namespace UNV2411;
-      TDataSet aDataSet2411;
-      UNV2411::Read(in_stream,aDataSet2411);
-      if(MYDEBUG) MESSAGE("Perform - aDataSet2411.size() = "<<aDataSet2411.size());
-      TDataSet::const_iterator anIter = aDataSet2411.begin();
-      for(; anIter != aDataSet2411.end(); anIter++){
-       const TNodeLab& aLabel = anIter->first;
-       const TRecord& aRec = anIter->second;
-       myMesh->AddNodeWithID(aRec.coord[0],aRec.coord[1],aRec.coord[2],aLabel);
-      }
-    }
-    {
-      using namespace UNV2412;
-      in_stream.seekg(0);
-      TDataSet aDataSet2412;
-      UNV2412::Read(in_stream,aDataSet2412);
-      TDataSet::const_iterator anIter = aDataSet2412.begin();
-      if(MYDEBUG) MESSAGE("Perform - aDataSet2412.size() = "<<aDataSet2412.size());
-      for(; anIter != aDataSet2412.end(); anIter++){
-       SMDS_MeshElement* anElement = NULL;
-       const TElementLab& aLabel = anIter->first;
-       const TRecord& aRec = anIter->second;
-       if(IsBeam(aRec.fe_descriptor_id)){
-         anElement = myMesh->AddEdgeWithID(aRec.node_labels[0],
-                                           aRec.node_labels[1],
-                                           aLabel);
-       }else if(IsFace(aRec.fe_descriptor_id)){
-         switch(aRec.fe_descriptor_id){
-         case 71: // TRI3
-         case 72:
-         case 74:
-           
-         case 41: // Plane Stress Linear Triangle - TRI3
-         case 91: // Thin Shell Linear Triangle - TRI3
-           
-         case 42: // Plane Stress Quadratic Triangle - TRI6
-         case 92: // Thin Shell Quadratic Triangle - TRI6
-           
-           anElement = myMesh->AddFaceWithID(aRec.node_labels[0],
-                                             aRec.node_labels[1],
-                                             aRec.node_labels[2],
-                                             aLabel);
-           break;
-           
-         case 44: // Plane Stress Linear Quadrilateral - QUAD4
-         case 94: // Thin Shell   Linear Quadrilateral -  QUAD4
-           
-         case 45: // Plane Stress Quadratic Quadrilateral - QUAD8
-         case 95: // Thin Shell   Quadratic Quadrilateral - QUAD8
-           anElement = myMesh->AddFaceWithID(aRec.node_labels[0],
-                                             aRec.node_labels[1],
-                                             aRec.node_labels[2],
-                                             aRec.node_labels[3],
-                                             aLabel);
-           break;
-         }
-       }else if(IsVolume(aRec.fe_descriptor_id)){
-         switch(aRec.fe_descriptor_id){
-           
-         case 111: // Solid Linear Tetrahedron - TET4
-         case 118: // Solid Quadratic Tetrahedron - TET10
-           
-           anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
-                                               aRec.node_labels[2],
-                                               aRec.node_labels[1],
-                                               aRec.node_labels[3],
-                                               aLabel);
-           break;
-           
-         case 112: // Solid Linear Prism - PRISM6
-           
-           anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
-                                               aRec.node_labels[2],
-                                               aRec.node_labels[1],
-                                               aRec.node_labels[3],
-                                               aRec.node_labels[5],
-                                               aRec.node_labels[4],
-                                               aLabel);
-           break;
-           
-         case 113: // Solid Quadratic Prism - PRISM15
-           
-           anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
-                                               aRec.node_labels[4],
-                                               aRec.node_labels[2],
-                                               aRec.node_labels[9],
-                                               aRec.node_labels[13],
-                                               aRec.node_labels[11],
-                                               aLabel);
-           break;
-           
-         case 115: // Solid Linear Brick - HEX8
-           anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
-                                               aRec.node_labels[3],
-                                               aRec.node_labels[2],
-                                               aRec.node_labels[1],
-                                               aRec.node_labels[4],
-                                               aRec.node_labels[7],
-                                               aRec.node_labels[6],
-                                               aRec.node_labels[5],
-                                               aLabel);
-           break;
-
-         case 116: // Solid Quadratic Brick - HEX20
-           
-           anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
-                                               aRec.node_labels[6],
-                                               aRec.node_labels[4],
-                                               aRec.node_labels[2],
-                                               aRec.node_labels[12],
-                                               aRec.node_labels[18],
-                                               aRec.node_labels[16],
-                                               aRec.node_labels[14],
-                                               aLabel);
-           break;
-         }
-       }
-       if(!anElement)
-         MESSAGE("DriverUNV_R_SMDS_Mesh::Perform - can not add element with ID = "<<aLabel<<" and type = "<<aRec.fe_descriptor_id);
-      }
-    }
-  }catch(const std::exception& exc){
-    INFOS("Follow exception was cought:\n\t"<<exc.what());
-  }catch(...){
-    INFOS("Unknown exception was cought !!!");
-  }
-  return aResult;
-}
diff --git a/src/DriverUNV/DriverUNV_R_SMDS_Mesh.h b/src/DriverUNV/DriverUNV_R_SMDS_Mesh.h
deleted file mode 100644 (file)
index 46c6ad3..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVERUNV_R_SMDS_MESH
-#define _INCLUDE_DRIVERUNV_R_SMDS_MESH
-
-#include "Driver_SMDS_Mesh.h"
-
-class SMDS_Mesh;
-
-class DriverUNV_R_SMDS_Mesh: public Driver_SMDS_Mesh
-{
- public:
-  virtual Status Perform();
-};
-
-#endif
diff --git a/src/DriverUNV/DriverUNV_R_SMESHDS_Document.cxx b/src/DriverUNV/DriverUNV_R_SMESHDS_Document.cxx
deleted file mode 100644 (file)
index 0e1b871..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "DriverUNV_R_SMESHDS_Document.h"
diff --git a/src/DriverUNV/DriverUNV_R_SMESHDS_Document.h b/src/DriverUNV/DriverUNV_R_SMESHDS_Document.h
deleted file mode 100644 (file)
index 4d38a67..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVERUNV_R_SMESHDS_DOCUMENT
-#define _INCLUDE_DRIVERUNV_R_SMESHDS_DOCUMENT
-
-#include "Driver_Document.h"
-
-class DriverUNV_R_SMESHDS_Document: public Driver_Document
-{};
-
-#endif
diff --git a/src/DriverUNV/DriverUNV_R_SMESHDS_Mesh.cxx b/src/DriverUNV/DriverUNV_R_SMESHDS_Mesh.cxx
deleted file mode 100644 (file)
index e4fcbf3..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "DriverUNV_R_SMESHDS_Mesh.h"
diff --git a/src/DriverUNV/DriverUNV_R_SMESHDS_Mesh.h b/src/DriverUNV/DriverUNV_R_SMESHDS_Mesh.h
deleted file mode 100644 (file)
index fce4b66..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVERUNV_R_SMESHDS_MESH
-#define _INCLUDE_DRIVERUNV_R_SMESHDS_MESH
-
-#include "Driver_SMESHDS_Mesh.h"
-
-class DriverUNV_R_SMESHDS_Mesh: public Driver_SMESHDS_Mesh
-{};
-
-#endif
diff --git a/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx b/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx
deleted file mode 100644 (file)
index 3fe3b18..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include <algorithm>
-
-#include "DriverUNV_W_SMDS_Mesh.h"
-
-#include "SMDS_Mesh.hxx"
-
-#include "utilities.h"
-
-#include "UNV2411_Structure.hxx"
-#include "UNV2412_Structure.hxx"
-#include "UNV_Utilities.hxx"
-
-using namespace std;
-
-namespace{
-  typedef std::vector<size_t> TConnect;
-
-  int GetConnect(const SMDS_ElemIteratorPtr& theNodesIter, 
-                TConnect& theConnect)
-  {
-    theConnect.clear();
-    for(; theNodesIter->more();){
-      const SMDS_MeshElement* anElem = theNodesIter->next();
-      theConnect.push_back(anElem->GetID());
-    }
-    return theConnect.size();
-  }
-  
-}
-
-Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform()
-{
-  Status aResult = DRS_OK;
-  std::ofstream out_stream(myFile.c_str());
-  try{
-    {
-      using namespace UNV2411;
-      TDataSet aDataSet2411;
-      // Storing SMDS nodes to the UNV file
-      //-----------------------------------
-      MESSAGE("Perform - myMesh->NbNodes() = "<<myMesh->NbNodes());
-      SMDS_NodeIteratorPtr aNodesIter = myMesh->nodesIterator();
-      for(; aNodesIter->more();){
-       const SMDS_MeshNode* aNode = aNodesIter->next();
-       TRecord aRec;
-       aRec.coord[0] = aNode->X();
-       aRec.coord[1] = aNode->Y();
-       aRec.coord[2] = aNode->Z();
-       const TNodeLab& aLabel = aNode->GetID();
-       aDataSet2411.insert(TDataSet::value_type(aLabel,aRec));
-      }
-      MESSAGE("Perform - aDataSet2411.size() = "<<aDataSet2411.size());
-      UNV2411::Write(out_stream,aDataSet2411);
-    }
-    {
-      using namespace UNV2412;
-      TDataSet aDataSet2412;
-      TConnect aConnect;
-
-      // Storing SMDS Edges
-      MESSAGE("Perform - myMesh->NbEdges() = "<<myMesh->NbEdges());
-      if(myMesh->NbEdges()){
-       SMDS_EdgeIteratorPtr anIter = myMesh->edgesIterator();
-       for(; anIter->more();){
-         const SMDS_MeshEdge* anElem = anIter->next();
-         TElementLab aLabel = anElem->GetID();
-         int aNbNodes = anElem->NbNodes();
-         TRecord aRec;
-         aRec.node_labels.reserve(aNbNodes);
-         SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
-         for(; aNodesIter->more();){
-           const SMDS_MeshElement* aNode = aNodesIter->next();
-           aRec.node_labels.push_back(aNode->GetID());
-         }
-         aRec.fe_descriptor_id = 11;
-         aDataSet2412.insert(TDataSet::value_type(aLabel,aRec));
-       }
-       MESSAGE("Perform - aDataSet2412.size() = "<<aDataSet2412.size());
-      }
-
-      MESSAGE("Perform - myMesh->NbFaces() = "<<myMesh->NbFaces());
-      if(myMesh->NbFaces()){
-       SMDS_FaceIteratorPtr anIter = myMesh->facesIterator();
-       for(; anIter->more();){
-         const SMDS_MeshFace* anElem = anIter->next();
-         TElementLab aLabel = anElem->GetID();
-         int aNbNodes = anElem->NbNodes();
-         TRecord aRec;
-         aRec.node_labels.reserve(aNbNodes);
-         SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
-         for(; aNodesIter->more();){
-           const SMDS_MeshElement* aNode = aNodesIter->next();
-           aRec.node_labels.push_back(aNode->GetID());
-         }
-         switch(aNbNodes){
-         case 3:
-           aRec.fe_descriptor_id = 41;
-           break;
-         case 4:
-           aRec.fe_descriptor_id = 44;
-           break;
-         default:
-           continue;
-         }
-         aDataSet2412.insert(TDataSet::value_type(aLabel,aRec));
-       }
-       MESSAGE("Perform - aDataSet2412.size() = "<<aDataSet2412.size());
-      }
-
-      MESSAGE("Perform - myMesh->NbVolumes() = "<<myMesh->NbVolumes());
-      if(myMesh->NbVolumes()){
-       SMDS_VolumeIteratorPtr anIter = myMesh->volumesIterator();
-       for(; anIter->more();){
-         const SMDS_MeshVolume* anElem = anIter->next();
-         TElementLab aLabel = anElem->GetID();
-
-         int aNbNodes = anElem->NbNodes();
-         aConnect.resize(aNbNodes);
-
-         SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
-         GetConnect(aNodesIter,aConnect);
-
-         int anId = -1;
-         int* aConn = NULL;
-         switch(aNbNodes){
-         case 4: {
-           static int anIds[] = {0,2,1,3};
-           aConn = anIds;
-           anId = 111;
-           break;
-         }
-         case 6: {
-           static int anIds[] = {0,2,1,3,5,4};
-           aConn = anIds;
-           anId = 112;
-           break;
-         }
-         case 8: {
-           static int anIds[] = {0,3,2,1,4,7,6,5};
-           aConn = anIds;
-           anId = 115;
-           break;
-         }
-         default:
-           continue;
-         }
-         if(aConn){
-           TRecord aRec;
-           aRec.fe_descriptor_id = anId;
-           aRec.node_labels.resize(aNbNodes);
-           for(int aNodeId = 0; aNodeId < aNbNodes; aNodeId++){
-             aRec.node_labels[aConn[aNodeId]] = aConnect[aNodeId];
-           }
-           aDataSet2412.insert(TDataSet::value_type(aLabel,aRec));
-         }
-       }
-       MESSAGE("Perform - aDataSet2412.size() = "<<aDataSet2412.size());
-      }
-      UNV2412::Write(out_stream,aDataSet2412);
-    }
-  }catch(const std::exception& exc){
-    INFOS("Follow exception was cought:\n\t"<<exc.what());
-  }catch(...){
-    INFOS("Unknown exception was cought !!!");
-  }
-  return aResult;
-}
diff --git a/src/DriverUNV/DriverUNV_W_SMDS_Mesh.h b/src/DriverUNV/DriverUNV_W_SMDS_Mesh.h
deleted file mode 100644 (file)
index 88ff5e8..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVERUNV_W_SMDS_MESH
-#define _INCLUDE_DRIVERUNV_W_SMDS_MESH
-
-#include "Driver_SMDS_Mesh.h"
-
-class DriverUNV_W_SMDS_Mesh: public Driver_SMDS_Mesh
-{
- public:
-  virtual Status Perform();
-};
-
-
-#endif
diff --git a/src/DriverUNV/DriverUNV_W_SMESHDS_Document.cxx b/src/DriverUNV/DriverUNV_W_SMESHDS_Document.cxx
deleted file mode 100644 (file)
index 0e73e1c..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "DriverUNV_W_SMESHDS_Document.h"
diff --git a/src/DriverUNV/DriverUNV_W_SMESHDS_Document.h b/src/DriverUNV/DriverUNV_W_SMESHDS_Document.h
deleted file mode 100644 (file)
index 77feb0e..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVERUNV_W_SMESHDS_DOCUMENT
-#define _INCLUDE_DRIVERUNV_W_SMESHDS_DOCUMENT
-
-#include "Driver_Document.h"
-
-class DriverUNV_W_SMESHDS_Document : public Driver_Document 
-{};
-
-#endif
diff --git a/src/DriverUNV/DriverUNV_W_SMESHDS_Mesh.cxx b/src/DriverUNV/DriverUNV_W_SMESHDS_Mesh.cxx
deleted file mode 100644 (file)
index 2cbfe4d..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "DriverUNV_W_SMESHDS_Mesh.h"
diff --git a/src/DriverUNV/DriverUNV_W_SMESHDS_Mesh.h b/src/DriverUNV/DriverUNV_W_SMESHDS_Mesh.h
deleted file mode 100644 (file)
index 8bc7284..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _INCLUDE_DRIVERUNV_W_SMESHDS_MESH
-#define _INCLUDE_DRIVERUNV_W_SMESHDS_MESH
-
-#include "Driver_SMESHDS_Mesh.h"
-
-class DriverUNV_W_SMESHDS_Mesh: public Driver_SMESHDS_Mesh
-{};
-
-#endif
diff --git a/src/DriverUNV/Makefile.in b/src/DriverUNV/Makefile.in
deleted file mode 100644 (file)
index a0ab5b7..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-#  SMESH DriverUNV : driver to read and write 'unv' files
-#
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : Makefile.in
-#  Author : Marc Tajchman (CEA)
-#  Module : SMESH
-#  $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@
-
-
-@COMMENCE@
-
-# header files 
-EXPORT_HEADERS= DriverUNV_R_SMDS_Mesh.h \
-               DriverUNV_R_SMESHDS_Mesh.h \
-               DriverUNV_R_SMESHDS_Document.h \
-                DriverUNV_W_SMDS_Mesh.h \
-               DriverUNV_W_SMESHDS_Mesh.h \
-               DriverUNV_W_SMESHDS_Document.h 
-
-# Libraries targets
-LIB = libMeshDriverUNV.la
-LIB_SRC = \
-       DriverUNV_R_SMDS_Mesh.cxx \
-       DriverUNV_R_SMESHDS_Mesh.cxx \
-       DriverUNV_R_SMESHDS_Document.cxx \
-       DriverUNV_W_SMESHDS_Document.cxx \
-       DriverUNV_W_SMDS_Mesh.cxx \
-       DriverUNV_W_SMESHDS_Mesh.cxx \
-       UNV_Utilities.cxx UNV2411_Structure.cxx UNV2412_Structure.cxx
-
-# Executables targets
-BIN = UNV_Test
-
-LIB_CLIENT_IDL =
-
-LIB_SERVER_IDL =
-
-# additionnal information to compil and link file
-CPPFLAGS += -I${KERNEL_ROOT_DIR}/include/salome $(OCC_INCLUDES) $(BOOST_CPPFLAGS)
-CXXFLAGS += -I${KERNEL_ROOT_DIR}/include/salome
-LDFLAGS  += -lMeshDriver $(OCC_KERNEL_LIBS)
-
-LDFLAGSFORBIN += -lMeshDriver -lSMDS -L${KERNEL_ROOT_DIR}/lib/salome -lOpUtil -lSALOMELocalTrace
-
-@CONCLUDE@
-
-
-
diff --git a/src/DriverUNV/UNV2411_Structure.cxx b/src/DriverUNV/UNV2411_Structure.cxx
deleted file mode 100644 (file)
index 9b78920..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include <fstream>     
-#include <stdio.h>     
-
-#include "UNV2411_Structure.hxx"
-#include "UNV_Utilities.hxx"
-
-using namespace std;
-using namespace UNV;
-using namespace UNV2411;
-
-#ifdef _DEBUG_
-static int MYDEBUG = 1;
-#else
-static int MYDEBUG = 0;
-#endif
-
-static string _label_dataset = "2411";
-
-UNV2411::TRecord::TRecord():
-  exp_coord_sys_num(0),
-  disp_coord_sys_num(0),
-  color(0)
-{}
-
-void UNV2411::Read(std::ifstream& in_stream, TDataSet& theDataSet)
-{
-  if(!in_stream.good())
-    EXCEPTION(runtime_error,"ERROR: Input file not good.");
-
-  /*
-   * adjust the \p istream to our
-   * position
-   */
-  if(!beginning_of_dataset(in_stream,_label_dataset))
-    EXCEPTION(runtime_error,"ERROR: Could not find "<<_label_dataset<<" dataset!");
-
-  /**
-   * always 3 coordinates in the UNV file, no matter
-   * which dimensionality libMesh is in
-   */
-  TNodeLab aLabel;
-  std::string num_buf;
-  for(; !in_stream.eof();){
-    in_stream >> aLabel ;
-    if(aLabel == -1){
-      // end of dataset is reached
-      break;
-    }
-
-    TRecord aRec;
-    in_stream>>aRec.exp_coord_sys_num;
-    in_stream>>aRec.disp_coord_sys_num;
-    in_stream>>aRec.color;
-
-    /*
-     * take care of the
-     * floating-point data
-     */
-    for(int d = 0; d < 3; d++){
-      in_stream>>num_buf;
-      aRec.coord[d] = D_to_e(num_buf);
-    }
-
-    theDataSet.insert(TDataSet::value_type(aLabel,aRec));
-  }
-}
-
-
-void UNV2411::Write(std::ofstream& out_stream, const TDataSet& theDataSet)
-{
-  if(!out_stream.good())
-    EXCEPTION(runtime_error,"ERROR: Output file not good.");
-  
-  /*
-   * Write beginning of dataset
-   */
-  out_stream<<"    -1\n";
-  out_stream<<"  "<<_label_dataset<<"\n";
-
-  TDataSet::const_iterator anIter = theDataSet.begin();
-  for(; anIter != theDataSet.end(); anIter++){
-    const TNodeLab& aLabel = anIter->first;
-    const TRecord& aRec = anIter->second;
-    char buf[78];
-    sprintf(buf, "%10d%10d%10d%10d\n", 
-           aLabel,
-           aRec.exp_coord_sys_num,
-           aRec.disp_coord_sys_num,
-           aRec.color);
-    out_stream<<buf;
-
-    // the coordinates
-    sprintf(buf, "%25.16E%25.16E%25.16E\n", 
-           aRec.coord[0],
-           aRec.coord[1],
-           aRec.coord[2]);
-    out_stream<<buf;
-  }
-  
-  
-  /*
-   * Write end of dataset
-   */
-  out_stream<<"    -1\n";
-}
diff --git a/src/DriverUNV/UNV2411_Structure.hxx b/src/DriverUNV/UNV2411_Structure.hxx
deleted file mode 100644 (file)
index 4f6a393..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef UNV2411_Structure_HeaderFile
-#define UNV2411_Structure_HeaderFile
-
-#include <map>
-#include <fstream>     
-
-namespace UNV2411{
-  
-  struct TRecord{
-    TRecord();
-    int exp_coord_sys_num;  // export coordinate system number
-    int disp_coord_sys_num;  // displacement coordinate system number
-    int color;  // color                                
-    double coord[3];  // node coordinates in the part coordinate system
-  };
-  
-  typedef int TNodeLab; // type of node label
-  typedef std::map<TNodeLab,TRecord> TDataSet;
-
-  void Read(std::ifstream& in_stream, TDataSet& theDataSet);
-
-  void Write(std::ofstream& out_stream, const TDataSet& theDataSet);
-
-};
-
-
-#endif
diff --git a/src/DriverUNV/UNV2412_Structure.cxx b/src/DriverUNV/UNV2412_Structure.cxx
deleted file mode 100644 (file)
index 0160d7b..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include <fstream>     
-#include <iomanip>
-
-#include "UNV2412_Structure.hxx"
-#include "UNV_Utilities.hxx"
-
-using namespace std;
-using namespace UNV;
-using namespace UNV2412;
-
-#ifdef _DEBUG_
-static int MYDEBUG = 1;
-#else
-static int MYDEBUG = 0;
-#endif
-
-static string _label_dataset = "2412";
-
-UNV2412::TRecord::TRecord():
-  phys_prop_tab_num(2),
-  mat_prop_tab_num(1),
-  color(7),
-  beam_orientation(0),
-  beam_fore_end(0),
-  beam_aft_end(0)
-{}
-
-void UNV2412::Read(std::ifstream& in_stream, TDataSet& theDataSet)
-{
-  if(!in_stream.good())
-    EXCEPTION(runtime_error,"ERROR: Input file not good.");
-
-  /*
-   * adjust the \p istream to our
-   * position
-   */
-  if(!beginning_of_dataset(in_stream,_label_dataset))
-    EXCEPTION(runtime_error,"ERROR: Could not find "<<_label_dataset<<" dataset!");
-
-  TElementLab aLabel;
-  for(; !in_stream.eof();){
-    in_stream >> aLabel ;
-    if(aLabel == -1){
-      // end of dataset is reached
-      break;
-    }
-
-    int n_nodes;
-    TRecord aRec;
-    in_stream>>aRec.fe_descriptor_id;
-    in_stream>>aRec.phys_prop_tab_num;
-    in_stream>>aRec.mat_prop_tab_num;
-    in_stream>>aRec.color;
-    in_stream>>n_nodes;
-
-    if(IsBeam(aRec.fe_descriptor_id)){
-      in_stream>>aRec.beam_orientation;
-      in_stream>>aRec.beam_fore_end;
-      in_stream>>aRec.beam_aft_end;
-    }
-
-    aRec.node_labels.resize(n_nodes);
-    for(int j=0; j < n_nodes; j++){
-      // read node labels
-      in_stream>>aRec.node_labels[j];             
-    }
-
-    theDataSet.insert(TDataSet::value_type(aLabel,aRec));
-  }
-
-}
-
-
-void UNV2412::Write(std::ofstream& out_stream, const TDataSet& theDataSet)
-{
-  if(!out_stream.good())
-    EXCEPTION(runtime_error,"ERROR: Output file not good.");
-  
-  /*
-   * Write beginning of dataset
-   */
-  out_stream<<"    -1\n";
-  out_stream<<"  "<<_label_dataset<<"\n";
-
-  TDataSet::const_iterator anIter = theDataSet.begin();
-  for(; anIter != theDataSet.end(); anIter++){
-    const TElementLab& aLabel = anIter->first;
-    const TRecord& aRec = anIter->second;
-    out_stream<<std::setw(10)<<aLabel;  /* element ID */
-    out_stream<<std::setw(10)<<aRec.fe_descriptor_id;  /* type of element */
-    out_stream<<std::setw(10)<<aRec.phys_prop_tab_num;
-    out_stream<<std::setw(10)<<aRec.mat_prop_tab_num;
-    out_stream<<std::setw(10)<<aRec.color;
-    out_stream<<std::setw(10)<<aRec.node_labels.size()<<std::endl;  /* No. of nodes per element */
-
-    if(IsBeam(aRec.fe_descriptor_id)){
-      out_stream<<std::setw(10)<<aRec.beam_orientation;
-      out_stream<<std::setw(10)<<aRec.beam_fore_end;
-      out_stream<<std::setw(10)<<aRec.beam_aft_end<<std::endl;
-    }
-
-    int n_nodes = aRec.node_labels.size();
-    int iEnd = (n_nodes-1)/8 + 1;
-    for(int i = 0, k = 0; i < iEnd; i++){
-      int jEnd = n_nodes - 8*(i+1);
-      if(jEnd < 0) 
-       jEnd = 8 + jEnd;
-      else
-       jEnd = 8;
-      for(int j = 0; j < jEnd ; k++, j++){
-       out_stream<<std::setw(10)<<aRec.node_labels[k];
-      }
-      out_stream<<std::endl;
-    }
-  }
-
-  /*
-   * Write end of dataset
-   */
-  out_stream<<"    -1\n";
-}
-
-
-bool UNV2412::IsBeam(int theFeDescriptorId){
-  switch (theFeDescriptorId){
-  case 11:
-  case 21:
-  case 22:
-  case 24:
-  case 25:
-    return true;
-  }
-  return false;
-}
-
-
-bool UNV2412::IsFace(int theFeDescriptorId){
-  switch (theFeDescriptorId){
-    
-  case 71: // TRI3
-  case 72:
-  case 74:
-
-  case 41: // Plane Stress Linear Triangle - TRI3
-  case 91: // Thin Shell Linear Triangle - TRI3
-
-  case 42: // Plane Stress Quadratic Triangle - TRI6
-  case 92: // Thin Shell Quadratic Triangle - TRI6
-
-  case 43: // Plane Stress Cubic Triangle
-
-  case 44: // Plane Stress Linear Quadrilateral - QUAD4
-  case 94: // Thin Shell   Linear Quadrilateral -  QUAD4
-
-  case 45: // Plane Stress Quadratic Quadrilateral - QUAD8
-  case 95: // Thin Shell   Quadratic Quadrilateral - QUAD8
-
-  case 46: // Plane Stress Cubic Quadrilateral
-
-    return true;
-  }
-  return false;
-}
-
-
-bool UNV2412::IsVolume(int theFeDescriptorId){
-  //if(!IsBeam(theFeDescriptorId) && !IsFace(theFeDescriptorId))
-  //  return true;
-  switch (theFeDescriptorId){
-
-  case 111: // Solid Linear Tetrahedron - TET4
-  case 118: // Solid Quadratic Tetrahedron - TET10
-
-  case 112: // Solid Linear Prism - PRISM6
-  case 113: // Solid Quadratic Prism - PRISM15
-
-  case 115: // Solid Linear Brick - HEX8
-  case 116: // Solid Quadratic Brick - HEX20
-
-  case 117: // Solid Cubic Brick
-    return true;
-  }
-  return false;
-}
diff --git a/src/DriverUNV/UNV2412_Structure.hxx b/src/DriverUNV/UNV2412_Structure.hxx
deleted file mode 100644 (file)
index 0892c5f..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef UNV2412_Structure_HeaderFile
-#define UNV2412_Structure_HeaderFile
-
-#include <map>
-#include <vector>
-#include <fstream>     
-
-
-namespace UNV2412{
-  
-  typedef std::vector<int> TNodeLabels; // Nodal connectivities
-
-  struct TRecord{
-    TRecord();
-
-    int fe_descriptor_id;  // FE descriptor id
-    int phys_prop_tab_num;  // physical property table number
-    int mat_prop_tab_num;  // material property table number
-    int color;  // color
-    TNodeLabels node_labels;  // node labels defining element
-
-    //FOR BEAM ELEMENTS ONLY
-    int beam_orientation;  // beam orientation node number
-    int beam_fore_end;  // beam fore-end cross section number
-    int beam_aft_end;  // beam  aft-end cross section number
-  };
-  
-  typedef int TElementLab; // type of element label
-  typedef std::map<TElementLab,TRecord> TDataSet;
-
-  void Read(std::ifstream& in_stream, TDataSet& theDataSet);
-
-  void Write(std::ofstream& out_stream, const TDataSet& theDataSet);
-
-  bool IsBeam(int theFeDescriptorId);
-  bool IsFace(int theFeDescriptorId);
-  bool IsVolume(int theFeDescriptorId);
-
-};
-
-
-#endif
diff --git a/src/DriverUNV/UNV_Test.cxx b/src/DriverUNV/UNV_Test.cxx
deleted file mode 100644 (file)
index 0156b50..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "UNV2411_Structure.hxx"
-#include "UNV2412_Structure.hxx"
-#include "UNV_Utilities.hxx"
-
-#include "DriverUNV_R_SMDS_Mesh.h"
-#include "DriverUNV_W_SMDS_Mesh.h"
-
-using namespace std;
-
-#ifdef DEBUG
-static int MYDEBUG = 1;
-#else
-static int MYDEBUG = 0;
-#endif
-
-
-void ReadMed(const char* theFileName){
-  std::ifstream in_stream(theFileName);
-
-  UNV2411::TDataSet aDataSet2411;
-  UNV2411::Read(in_stream,aDataSet2411);
-
-  in_stream.seekg(0);
-  UNV2412::TDataSet aDataSet2412;
-  UNV2412::Read(in_stream,aDataSet2412);
-
-  string aFileName(theFileName);
-  aFileName += "-";
-  std::ofstream out_stream(aFileName.c_str());
-
-  UNV2411::Write(out_stream,aDataSet2411);
-  UNV2412::Write(out_stream,aDataSet2412);
-}
-
-
-int main(int argc, char** argv){ 
-  DriverUNV_R_SMDS_Mesh aR;
-  DriverUNV_W_SMDS_Mesh aW;
-  try{
-    if(argc > 1){
-      ReadMed(argv[1]);
-    }
-    return 0;
-  }catch(std::exception& exc){
-    MESSAGE("Follow exception was accured :\n"<<exc.what());
-  }catch(...){
-    MESSAGE("Unknown exception was accured !!!");
-  } 
-  return 1;
-}
diff --git a/src/DriverUNV/UNV_Utilities.cxx b/src/DriverUNV/UNV_Utilities.cxx
deleted file mode 100644 (file)
index 0781e5a..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-//  Copyright (C) 2003  CEA/DEN, EDF R&D
-//
-//
-//
-//  File   : VISU_DatConvertor.cxx
-//  Author : Alexey PETROV
-//  Module : VISU
-
-#include "UNV_Utilities.hxx"
-
-using namespace std;
-
-#ifdef _DEBUG_
-static int MYDEBUG = 1;
-#else
-static int MYDEBUG = 0;
-#endif
-
-
-int UNV::PrefixPrinter::myCounter = 0;
-
-UNV::PrefixPrinter::PrefixPrinter()
-{
-  myCounter++;
-}
-
-UNV::PrefixPrinter::~PrefixPrinter()
-{
-  myCounter--;
-}
-
-string UNV::PrefixPrinter::GetPrefix()
-{
-  if(myCounter)
-    return string(myCounter*2,' ');
-  return "";
-}
diff --git a/src/DriverUNV/UNV_Utilities.hxx b/src/DriverUNV/UNV_Utilities.hxx
deleted file mode 100644 (file)
index bf7b8d4..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-//  Copyright (C) 2003  CEA/DEN, EDF R&D
-//
-//
-//
-//  File   : VISU_DatConvertor.hxx
-//  Author : Alexey PETROV
-//  Module : VISU
-
-#ifndef MED_Utilities_HeaderFile
-#define MED_Utilities_HeaderFile
-
-#include <iostream>    
-#include <sstream>     
-#include <string>
-#include <stdexcept>
-#include <cassert>
-
-namespace UNV{
-  using namespace std;
-
-  class PrefixPrinter{
-    static int myCounter;
-  public:
-    PrefixPrinter();
-    ~PrefixPrinter();
-
-    static string GetPrefix();
-  };
-
-  /**
-   * @returns \p false when error occured, \p true otherwise.
-   * Adjusts the \p in_stream to the beginning of the
-   * dataset \p ds_name.
-   */
-  inline bool beginning_of_dataset(std::istream& in_file, const std::string& ds_name)
-  {
-    assert (in_file.good());
-    assert (!ds_name.empty());
-    
-    std::string olds, news;
-    
-    while(true){
-      in_file >> olds >> news;
-      /*
-       * a "-1" followed by a number means the beginning of a dataset
-       * stop combing at the end of the file
-       */
-      while( ((olds != "-1") || (news == "-1") ) && !in_file.eof() ){    
-       olds = news;
-       in_file >> news;
-      }
-      if(in_file.eof())
-       return false;
-      if (news == ds_name)
-       return true;
-    }
-    // should never end up here
-    return false;
-  }
-
-  /**
-   * Method for converting exponential notation
-   * from "D" to "e", for example
-   * \p 3.141592654D+00 \p --> \p 3.141592654e+00
-   * in order to make it readable for C++.
-   */
-  inline double D_to_e(std::string& number)
-  {
-    /* find "D" in string, start looking at 
-     * 6th element, to improve speed.
-     * We dont expect a "D" earlier
-     */
-    const int position = number.find("D",6);
-    if(position != std::string::npos){
-      number.replace(position, 1, "e"); 
-    }
-    return atof (number.c_str());
-  }
-
-};
-
-
-#ifndef MESSAGE
-
-#define MESSAGE(msg) std::cout<<__FILE__<<"["<<__LINE__<<"]::"<<msg<<endl;
-
-#define BEGMSG(msg) std::cout<<UNV::PrefixPrinter::GetPrefix()<<msg
-
-#define ADDMSG(msg) std::cout<<msg
-
-#endif
-
-
-#ifndef EXCEPTION
-
-#define EXCEPTION(TYPE, MSG) {\
-  std::ostringstream aStream;\
-  aStream<<__FILE__<<"["<<__LINE__<<"]::"<<MSG;\
-  throw TYPE(aStream.str());\
-}
-
-#endif
-
-#endif
diff --git a/src/MEFISTO2/Makefile.in b/src/MEFISTO2/Makefile.in
deleted file mode 100644 (file)
index 6309bcc..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#  File   : Makefile.in
-#  Author : 
-#  Module : SMESH
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@
-
-
-@COMMENCE@
-
-# header files 
-EXPORT_HEADERS = aptrte.h Rn.h
-
-# Libraries targets
-LIB = libMEFISTO2D.la
-LIB_SRC = aptrte.cxx trte.f
-# areteideale.f
-
-LIB_CLIENT_IDL =
-
-LIB_SERVER_IDL = 
-
-# additionnal information to compil and link file
-CPPFLAGS += $(OCC_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome
-CXXFLAGS += $(OCC_CXXFLAGS) -I${KERNEL_ROOT_DIR}/include/salome
-
-LDFLAGS += -lg2c
-
-@CONCLUDE@
-
diff --git a/src/MEFISTO2/Rn.h b/src/MEFISTO2/Rn.h
deleted file mode 100755 (executable)
index 9aafe70..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-//  MEFISTO :  library to compute 2D triangulation from segmented boundaries
-//
-//  Copyright (C) 2003  Laboratoire J.-L. Lions UPMC Paris
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.ann.jussieu.fr/~perronne or email Perronnet@ann.jussieu.fr
-//                                          or email Hecht@ann.jussieu.fr
-//
-//
-//  File   : Rn.h
-//  Module : SMESH
-//  Authors: Frederic HECHT & Alain PERRONNET
-//
-
-#ifndef Rn__h
-#define Rn__h
-
-#include <gp_Pnt.hxx>      //Dans OpenCascade
-#include <gp_Vec.hxx>      //Dans OpenCascade
-#include <gp_Dir.hxx>      //Dans OpenCascade
-
-//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-// BUT:   Definir les espaces affines R R2 R3 R4 soit Rn pour n=1,2,3,4
-//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-// AUTEUR : Frederic HECHT      ANALYSE NUMERIQUE UPMC  PARIS   OCTOBRE   2000
-// MODIFS : Alain    PERRONNET  ANALYSE NUMERIQUE UPMC  PARIS   NOVEMBRE  2000
-//...............................................................................
-#include <iostream>
-#include <cmath>
-
-
-template<class T> inline T Abs (const T &a){return a <0 ? -a : a;}
-template<class T> inline void Echange (T& a,T& b) {T c=a;a=b;b=c;}
-
-template<class T> inline T Min (const T &a,const T &b)  {return a < b ? a : b;}
-template<class T> inline T Max (const T &a,const T & b) {return a > b ? a : b;}
-
-template<class T> inline T Max (const T &a,const T & b,const T & c){return Max(Max(a,b),c);}
-template<class T> inline T Min (const T &a,const T & b,const T & c){return Min(Min(a,b),c);}
-
-template<class T> inline T Max (const T &a,const T & b,const T & c,const T & d)
- {return Max(Max(a,b),Max(c,d));}
-template<class T> inline T Min (const T &a,const T & b,const T & c,const T & d)
- {return Min(Min(a,b),Min(c,d));}
-
-//le type Nom des entites geometriques P L S V O
-//===========
-typedef char Nom[1+24];
-
-//le type N des nombres entiers positifs
-//=========
-typedef unsigned long int N;
-
-//le type Z des nombres entiers relatifs
-//=========
-typedef long int Z;
-
-//le type R des nombres "reels"
-//=========
-typedef double R;
-
-//le type XPoint  des coordonnees d'un pixel dans une fenetre
-//==============
-//typedef struct { short int x,y } XPoint;  //en fait ce type est defini dans X11-Window
-                                            // #include <X11/Xlib.h>
-//la classe R2
-//============
-class R2 
-{
-  friend std::ostream& operator << (std::ostream& f, const R2 & P)
-  { f << P.x << ' ' << P.y ; return f; }
-  friend std::istream& operator >> (std::istream& f, R2 & P)
-  { f >> P.x >> P.y ; return f; }
-
-  friend std::ostream& operator << (std::ostream& f, const R2 * P)
-  { f << P->x << ' ' << P->y ; return f; }
-  friend std::istream& operator >> (std::istream& f, R2 * P)
-  { f >> P->x >> P->y ; return f; }
-
-public:
-  R x,y;  //les donnees
-
-  R2 () :x(0),y(0) {}              //les constructeurs
-  R2 (R a,R b)   :x(a),y(b)  {}
-  R2 (R2 A,R2 B) :x(B.x-A.x),y(B.y-A.y)  {} //vecteur defini par 2 points
-
-  R2  operator+(R2 P) const {return R2(x+P.x,y+P.y);}     // Q+P possible
-  R2  operator+=(R2 P)  {x += P.x;y += P.y; return *this;}// Q+=P;
-  R2  operator-(R2 P) const {return R2(x-P.x,y-P.y);}     // Q-P
-  R2  operator-=(R2 P) {x -= P.x;y -= P.y; return *this;} // Q-=P;
-  R2  operator-()const  {return R2(-x,-y);}               // -Q
-  R2  operator+()const  {return *this;}                   // +Q
-  R   operator,(R2 P)const {return x*P.x+y*P.y;} // produit scalaire (Q,P)
-  R   operator^(R2 P)const {return x*P.y-y*P.x;} // produit vectoriel Q^P
-  R2  operator*(R c)const {return R2(x*c,y*c);}  // produit a droite  P*c
-  R2  operator*=(R c)  {x *= c; y *= c; return *this;}
-  R2  operator/(R c)const {return R2(x/c,y/c);}  // division par un reel
-  R2  operator/=(R c)  {x /= c; y /= c; return *this;}
-  R & operator[](int i) {return (&x)[i];}        // la coordonnee i
-  R2  orthogonal() {return R2(-y,x);}    //le vecteur orthogonal dans R2
-  friend R2 operator*(R c,R2 P) {return P*c;}    // produit a gauche c*P
-};
-
-
-//la classe R3
-//============
-class R3
-{
-  friend std::ostream& operator << (std::ostream& f, const R3 & P)
-  { f << P.x << ' ' << P.y << ' ' << P.z ; return f; }
-  friend std::istream& operator >> (std::istream& f, R3 & P)
-  { f >> P.x >> P.y >> P.z ; return f; }
-
-  friend std::ostream& operator << (std::ostream& f, const R3 * P)
-  { f << P->x << ' ' << P->y << ' ' << P->z ; return f; }
-  friend std::istream& operator >> (std::istream& f, R3 * P)
-  { f >> P->x >> P->y >> P->z ; return f; }
-
-public:  
-  R  x,y,z;  //les 3 coordonnees
-  R3 () :x(0),y(0),z(0) {}  //les constructeurs
-  R3 (R a,R b,R c):x(a),y(b),z(c)  {}                  //Point ou Vecteur (a,b,c)
-  R3 (R3 A,R3 B):x(B.x-A.x),y(B.y-A.y),z(B.z-A.z)  {}  //Vecteur AB
-
-  R3 (gp_Pnt P) : x(P.X()), y(P.Y()), z(P.Z()) {}      //Point     d'OpenCascade
-  R3 (gp_Vec V) : x(V.X()), y(V.Y()), z(V.Z()) {}      //Vecteur   d'OpenCascade
-  R3 (gp_Dir P) : x(P.X()), y(P.Y()), z(P.Z()) {}      //Direction d'OpenCascade
-
-  R3   operator+(R3 P)const  {return R3(x+P.x,y+P.y,z+P.z);}
-  R3   operator+=(R3 P)  {x += P.x; y += P.y; z += P.z; return *this;}
-  R3   operator-(R3 P)const  {return R3(x-P.x,y-P.y,z-P.z);}
-  R3   operator-=(R3 P)  {x -= P.x; y -= P.y; z -= P.z; return *this;}
-  R3   operator-()const  {return R3(-x,-y,-z);}
-  R3   operator+()const  {return *this;}
-  R    operator,(R3 P)const {return  x*P.x+y*P.y+z*P.z;} // produit scalaire
-  R3   operator^(R3 P)const {return R3(y*P.z-z*P.y ,P.x*z-x*P.z, x*P.y-y*P.x);} // produit vectoriel
-  R3   operator*(R c)const {return R3(x*c,y*c,z*c);}
-  R3   operator*=(R c)  {x *= c; y *= c; z *= c; return *this;}
-  R3   operator/(R c)const {return R3(x/c,y/c,z/c);}
-  R3   operator/=(R c)  {x /= c; y /= c; z /= c; return *this;}
-  R  & operator[](int i) {return (&x)[i];}
-  friend R3 operator*(R c,R3 P) {return P*c;}
-
-  R3   operator=(gp_Pnt P) {return R3(P.X(),P.Y(),P.Z());}
-  R3   operator=(gp_Dir P) {return R3(P.X(),P.Y(),P.Z());}
-
-  friend gp_Pnt gp_pnt(R3 xyz) { return gp_Pnt(xyz.x,xyz.y,xyz.z); }
-  //friend gp_Pnt operator=() { return gp_Pnt(x,y,z); }
-  friend gp_Dir gp_dir(R3 xyz) { return gp_Dir(xyz.x,xyz.y,xyz.z); }
-
-  bool  DansPave( R3 & xyzMin, R3 & xyzMax )
-    { return xyzMin.x<=x && x<=xyzMax.x &&
-            xyzMin.y<=y && y<=xyzMax.y &&
-            xyzMin.z<=z && z<=xyzMax.z; }
-};
-
-//la classe R4
-//============
-class R4: public R3
-{
-  friend std::ostream& operator <<(std::ostream& f, const R4 & P )
-  { f << P.x << ' ' << P.y << ' ' << P.z << ' ' << P.omega; return f; }
-  friend istream& operator >>(istream& f,  R4 & P)
-  { f >> P.x >>  P.y >>  P.z >> P.omega ; return f; }
-
-  friend std::ostream& operator <<(std::ostream& f, const R4 * P )
-  { f << P->x << ' ' << P->y << ' ' << P->z << ' ' << P->omega; return f; }
-  friend istream& operator >>(istream& f,  R4 * P)
-  { f >> P->x >>  P->y >>  P->z >> P->omega ; return f; }
-
-public:  
-  R  omega;  //la donnee du poids supplementaire
-  R4 () :omega(1.0) {}  //les constructeurs
-  R4 (R a,R b,R c,R d):R3(a,b,c),omega(d) {}
-  R4 (R4 A,R4 B) :R3(B.x-A.x,B.y-A.y,B.z-A.z),omega(B.omega-A.omega) {}
-
-  R4   operator+(R4 P)const  {return R4(x+P.x,y+P.y,z+P.z,omega+P.omega);}
-  R4   operator+=(R4 P)  {x += P.x;y += P.y;z += P.z;omega += P.omega;return *this;}
-  R4   operator-(R4 P)const  {return R4(x-P.x,y-P.y,z-P.z,omega-P.omega);}
-  R4   operator-=(R4 P) {x -= P.x;y -= P.y;z -= P.z;omega -= P.omega;return *this;}
-  R4   operator-()const  {return R4(-x,-y,-z,-omega);}
-  R4   operator+()const  {return *this;}
-  R    operator,(R4 P)const {return  x*P.x+y*P.y+z*P.z+omega*P.omega;} // produit scalaire
-  R4   operator*(R c)const {return R4(x*c,y*c,z*c,omega*c);}
-  R4   operator*=(R c)  {x *= c; y *= c; z *= c; omega *= c; return *this;}
-  R4   operator/(R c)const {return R4(x/c,y/c,z/c,omega/c);}
-  R4   operator/=(R c)  {x /= c; y /= c; z /= c; omega /= c; return *this;}
-  R  & operator[](int i) {return (&x)[i];}
-  friend R4 operator*(R c,R4 P) {return P*c;}
-};
-
-//quelques fonctions supplementaires sur ces classes
-//==================================================
-inline R Aire2d(const R2 A,const R2 B,const R2 C){return (B-A)^(C-A);} 
-inline R Angle2d(R2 P){ return atan2(P.y,P.x);}
-
-inline R Norme2_2(const R2 & A){ return (A,A);}
-inline R Norme2(const R2 & A){ return sqrt((A,A));}
-inline R NormeInfinie(const R2 & A){return Max(Abs(A.x),Abs(A.y));}
-
-inline R Norme2_2(const R3 & A){ return (A,A);}
-inline R Norme2(const R3 & A){ return sqrt((A,A));}
-inline R NormeInfinie(const R3 & A){return Max(Abs(A.x),Abs(A.y),Abs(A.z));}
-
-inline R Norme2_2(const R4 & A){ return (A,A);}
-inline R Norme2(const R4 & A){ return sqrt((A,A));}
-inline R NormeInfinie(const R4 & A){return Max(Abs(A.x),Abs(A.y),Abs(A.z),Abs(A.omega));}
-
-inline R2 XY(R3 P) {return R2(P.x, P.y);}  //restriction a R2 d'un R3 par perte de z
-inline R3 Min(R3 P, R3 Q) 
-{return R3(P.x<Q.x ? P.x : Q.x, P.y<Q.y ? P.y : Q.y, P.z<Q.z ? P.z : Q.z);} //Pt de xyz Min
-inline R3 Max(R3 P, R3 Q) 
-{return R3(P.x>Q.x ? P.x : Q.x, P.y>Q.y ? P.y : Q.y, P.z>Q.z ? P.z : Q.z);} //Pt de xyz Max
-
-#endif
diff --git a/src/MEFISTO2/aptrte.cxx b/src/MEFISTO2/aptrte.cxx
deleted file mode 100755 (executable)
index 40c0905..0000000
+++ /dev/null
@@ -1,786 +0,0 @@
-//  MEFISTO : library to compute 2D triangulation from segmented boundaries
-//
-//  Copyright (C) 2003  Laboratoire J.-L. Lions UPMC Paris
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.ann.jussieu.fr/~perronne or email Perronnet@ann.jussieu.fr
-//
-//
-//  File   : aptrte.cxx
-//  Module : SMESH
-//  Author: Alain PERRONNET
-
-#include "Rn.h"
-#include "aptrte.h"
-#include "utilities.h"
-
-using namespace std;
-
-extern "C"
-{
-  R aretemaxface_;
-  R areteideale_( R3 xyz, R3 direction )
-  {
-    return aretemaxface_;
-  }
-}
-//calcul de la longueur ideale de l'arete au sommet xyz (z ici inactif)
-//dans la direction donnee
-//a ajuster pour chaque surface plane et selon l'entier notysu (voir plus bas)
-
-
-static double cpunew, cpuold=0;
-
-void tempscpu_( double & tempsec )
-//Retourne le temps CPU utilise en secondes
-{  
-  tempsec = ( (double) clock() ) / CLOCKS_PER_SEC;
-  //MESSAGE( "temps cpu=" << tempsec );
-}
-
-
-void deltacpu_( R & dtcpu )
-//Retourne le temps CPU utilise en secondes depuis le precedent appel
-{
-  tempscpu_( cpunew );
-  dtcpu  = R( cpunew - cpuold );
-  cpuold = cpunew;
-  //MESSAGE( "delta temps cpu=" << dtcpu );
-  return;
-}
-
-
-void  aptrte( Z nutysu, R aretmx,
-             Z nblf,   Z * nudslf, R2 * uvslf,
-             Z nbpti,  R2 *uvpti,
-             Z & nbst, R2 * & uvst, Z & nbt, Z * & nust,
-             Z & ierr )
-//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-// but : appel de la triangulation par un arbre-4 recouvrant
-// ----- de triangles equilateraux
-//       le contour du domaine plan est defini par des lignes fermees
-//       la premiere ligne etant l'enveloppe de toutes les autres
-//       la fonction areteideale(s,d) donne la taille d'arete
-//       au point s dans la direction (actuellement inactive) d
-//       des lors toute arete issue d'un sommet s devrait avoir une longueur
-//       comprise entre 0.65 areteideale_(s,d) et 1.3 areteideale_(s,d)
-//
-//Attention:
-//  Les tableaux uvslf et uvpti sont supposes ne pas avoir de sommets identiques!
-//  De meme, un sommet d'une ligne fermee ne peut appartenir a une autre ligne fermee
-//
-// entrees:
-// --------
-// nutysu : numero de traitement de areteideale_(s,d) selon le type de surface
-//          0 pas d'emploi de la fonction areteideale_() et aretmx est active
-//          1 il existe une fonction areteideale_(s,d)
-//            dont seules les 2 premieres composantes de uv sont actives
-//          ... autres options a definir ...
-// aretmx : longueur maximale des aretes de la future triangulation
-// nblf   : nombre de lignes fermees de la surface
-// nudslf : numero du dernier sommet de chacune des nblf lignes fermees
-//          nudslf(0)=0 pour permettre la difference sans test
-//          Attention le dernier sommet de chaque ligne est raccorde au premier
-//          tous les sommets et les points internes ont des coordonnees
-//          UV differentes <=> Pas de point double!
-// uvslf  : uv des nudslf(nblf) sommets des lignes fermees
-// nbpti  : nombre de points internes futurs sommets de la triangulation
-// uvpti  : uv des points internes futurs sommets de la triangulation
-//
-// sorties:
-// --------
-// nbst   : nombre de sommets de la triangulation finale
-// uvst   : coordonnees uv des nbst sommets de la triangulation
-// nbt    : nombre de triangles de la triangulation finale
-// nust   : 4 numeros dans uvst des sommets des nbt triangles
-//          s1, s2, s3, 0: no dans uvst des 3 sommets et 0 car quadrangle!
-// ierr   : 0 si pas d'erreur
-//        > 0 sinon
-//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-// auteur : Alain Perronnet  Analyse Numerique Paris UPMC   decembre 2001
-//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-{
-  R  d, tcpu=0;
-  R3 direction=R3(0,0,0);  //direction pour areteideale() inactive ici!
-  Z  nbarfr=nudslf[nblf];  //nombre total d'aretes des lignes fermees
-  Z  mxtrou = Max( 1024, nblf );  //nombre maximal de trous dans la surface
-
-  R3 *mnpxyd=NULL;
-  Z  *mnsoar=NULL, mosoar=7, mxsoar, n1soar; //le hachage des aretes
-  Z  *mnartr=NULL, moartr=3, mxartr, n1artr; //le no des 3 aretes des triangles
-  Z  *mntree=NULL, motree=9, mxtree;   //L'arbre 4 de TE et nombre d'entiers par TE
-  Z  *mnqueu=NULL, mxqueu;
-  Z  *mn1arcf=NULL;
-  Z  *mnarcf=NULL, mxarcf;
-  Z  *mnarcf1=NULL;
-  Z  *mnarcf2=NULL;
-  Z  *mnarcf3=NULL;
-  Z  *mntrsu=NULL;
-  Z  *mndalf=NULL;
-  Z  *mnslig=NULL;
-  Z  *mnarst=NULL;
-  Z  *mnlftr=NULL;
-
-  R3 comxmi[2];            //coordonnees UV Min et Maximales
-  R  aremin, aremax;       //longueur minimale et maximale des aretes
-  R  quamoy, quamin;
-
-  Z  noar0, noar, na;
-  Z  i, l, n, ns, ns0, ns1, ns2, nosotr[3], nt;
-  Z  mxsomm, nbsomm, nbarpi, nbarli, ndtri0, mn;
-  Z  moins1=-1;
-
-  aretemaxface_ = aretmx;
-
-  // initialisation du temps cpu
-  deltacpu_( d );
-  ierr = 0;
-
-  // quelques reservations de tableaux pour faire les calculs
-  // ========================================================
-  // le tableau pointeur sur la premiere arete de chaque ligne fermee
-  if( mndalf!=NULL ) delete [] mndalf;
-  mndalf = new Z[1+nblf];
-  if( mndalf==NULL ) goto ERREUR;
-  mndalf[0]=0;
-
-  // declaration du tableau des coordonnees des sommets de la frontiere
-  // puis des sommets internes ajoutes
-  // majoration empirique du nombre de sommets de la triangulation
-  i =  4*nbarfr/10;
-  mxsomm = Max( 20000, 64*nbpti+i*i );
-  MESSAGE( "APTRTE: Depart de la triangulation avec " );
-  MESSAGE( "nutysu=" << nutysu << "  aretmx=" << aretmx << "  mxsomm=" << mxsomm );
-
- NEWDEPART:
-  //mnpxyd( 3, mxsomm ) les coordonnees UV des sommets et la taille d'arete aux sommets
-  if( mnpxyd!=NULL ) delete [] mnpxyd;
-  mnpxyd = new R3[mxsomm];
-  if( mnpxyd==NULL ) goto ERREUR;
-
-  // le tableau mnsoar des aretes des triangles
-  // 1: sommet 1 dans pxyd,
-  // 2: sommet 2 dans pxyd,
-  // 3: numero de 1 a nblf de la ligne qui supporte l'arete
-  // 4: numero dans mnartr du triangle 1 partageant cette arete,
-  // 5: numero dans mnartr du triangle 2 partageant cette arete,
-  // 6: chainage des aretes frontalieres ou internes ou
-  //    des aretes simples des etoiles de triangles,
-  // 7: chainage du hachage des aretes
-  // nombre d'aretes = 3 ( nombre de sommets - 1 + nombre de trous )
-  // pour le hachage des aretes mxsoar doit etre > 3*mxsomm!
-  // h(ns1,ns2) = min( ns1, ns2 )
-  if( mnsoar!=NULL ) delete [] mnsoar;
-  mxsoar = 3 * ( mxsomm + mxtrou );
-  mnsoar = new Z[mosoar*mxsoar];
-  if( mnsoar==NULL ) goto ERREUR;
-  //initialiser le tableau mnsoar pour le hachage des aretes
-  insoar_( mxsomm, mosoar, mxsoar, n1soar, mnsoar );
-
-  // mnarst( mxsomm ) numero mnsoar d'une arete pour chacun des sommets
-  if( mnarst!=NULL ) delete [] mnarst;
-  mnarst = new Z[1+mxsomm];
-  if( mnarst==NULL ) goto ERREUR;
-  n = 1+mxsomm;
-  azeroi_( n, mnarst );
-
-  // mnslig( mxsomm ) no de sommet dans sa ligne pour chaque sommet frontalier
-  //               ou no du point si interne forc'e par l'utilisateur
-  //               ou  0 si interne cree par le module
-  if( mnslig!=NULL ) delete [] mnslig;
-  mnslig = new Z[mxsomm];
-  if( mnslig==NULL ) goto ERREUR;
-  azeroi_( mxsomm, mnslig );
-
-  // initialisation des aretes frontalieres de la triangulation future
-  // renumerotation des sommets des aretes des lignes pour la triangulation
-  // mise a l'echelle des coordonnees des sommets pour obtenir une
-  // meilleure precision lors des calculs + quelques verifications
-  // boucle sur les lignes fermees qui forment la frontiere
-  // ======================================================================
-  noar = 0;
-  aremin = 1e100;
-  aremax = 0;
-
-  for (n=1; n<=nblf; n++)
-  {
-    //l'initialisation de la premiere arete de la ligne n dans la triangulation
-    //-------------------------------------------------------------------------
-    //le sommet ns0 est le numero de l'origine de la ligne
-    ns0 = nudslf[n-1];
-    mnpxyd[ns0].x = uvslf[ns0].x;
-    mnpxyd[ns0].y = uvslf[ns0].y;
-    mnpxyd[ns0].z = areteideale_( mnpxyd[ns0], direction );
-//     MESSAGE("Sommet " << ns0 << ": " << mnpxyd[ns0].x
-//      << " " << mnpxyd[ns0].y << " longueur arete=" << mnpxyd[ns0].z);
-
-    //carre de la longueur de l'arete 1 de la ligne fermee n
-    d = pow( uvslf[ns0+1].x - uvslf[ns0].x, 2 ) 
-      + pow( uvslf[ns0+1].y - uvslf[ns0].y, 2 ) ;
-    aremin = Min( aremin, d );
-    aremax = Max( aremax, d );
-
-    //le numero des 2 sommets (ns1,ns2) de la premiere arete de la ligne
-    //initialisation de la 1-ere arete ns1-ns1+1 de cette ligne fermee n
-    //le numero des 2 sommets ns1 ns2 de la 1-ere arete
-    //Attention: les numeros ns debutent a 1 (ils ont >0)
-    //           les tableaux c++ demarrent a zero!
-    //           les tableaux fortran demarrent ou l'on veut!
-    ns0++;
-    ns1 = ns0;
-    ns2 = ns1+1;
-
-     //le numero n de la ligne du sommet et son numero ns1 dans la ligne
-    mnslig[ns0-1] = 1000000 * n + ns1-nudslf[n-1];
-    fasoar_( ns1, ns2, moins1, moins1, n,
-            mosoar, mxsoar, n1soar, mnsoar, mnarst,
-            noar0,  ierr );
-    //pas de test sur ierr car pas de saturation possible a ce niveau
-
-    //le pointeur dans le hachage sur la premiere arete de la ligne fermee n
-    mndalf[n] = noar0;
-
-    //la nouvelle arete est la suivante de l'arete definie juste avant
-    if( noar > 0 )
-      mnsoar[mosoar * noar - mosoar + 5] = noar0;
-
-    //l'initialisation des aretes suivantes de la ligne dans la triangulation
-    //-----------------------------------------------------------------------
-    nbarli = nudslf[n] - nudslf[n-1];  //nombre d'aretes=sommets de la ligne n
-    for (i=2; i<=nbarli; i++)
-    {
-      ns1 = ns2; //le numero de l'arete et le numero du premier sommet de l'arete
-      if( i < nbarli )
-       //nbs+1 est le 2-eme sommet de l'arete i de la ligne fermee n
-       ns2 = ns1+1;
-      else
-       //le 2-eme sommet de la derniere arete est le premier sommet de la ligne
-       ns2 = ns0;
-
-      //l'arete precedente est dotee de sa suivante:celle cree ensuite
-      //les 2 coordonnees du sommet ns2 de la ligne
-      ns = ns1 - 1;
-      mnpxyd[ns].x = uvslf[ns].x;
-      mnpxyd[ns].y = uvslf[ns].y;
-      mnpxyd[ns].z = areteideale_( mnpxyd[ns], direction );
-//       MESSAGE("Sommet " << ns << ": " << mnpxyd[ns].x
-//        << " " << mnpxyd[ns].y << " longueur arete=" << mnpxyd[ns].z);
-
-      //carre de la longueur de l'arete
-      d = pow( uvslf[ns2-1].x - uvslf[ns1-1].x, 2) 
-        + pow( uvslf[ns2-1].y - uvslf[ns1-1].y, 2);
-      aremin = Min( aremin, d );
-      aremax = Max( aremax, d );
-
-      //le numero n de la ligne du sommet et son numero ns1 dans la ligne
-      mnslig[ns] = 1000000 * n + ns1-nudslf[n-1];
-
-      //ajout de l'arete dans la liste
-      fasoar_( ns1, ns2, moins1, moins1, n,
-              mosoar, mxsoar, n1soar, mnsoar,
-              mnarst, noar, ierr );
-      //pas de test sur ierr car pas de saturation possible a ce niveau
-
-      //chainage des aretes frontalieres en position 6 du tableau mnsoar
-      //la nouvelle arete est la suivante de l'arete definie juste avant
-      mnsoar[ mosoar * noar0 - mosoar + 5 ] = noar;
-      noar0 = noar;
-   }
-    //attention: la derniere arete de la ligne fermee enveloppe
-    //           devient en fait la premiere arete de cette ligne
-    //           dans le chainage des aretes de la frontiere!
-  }
-  if( ierr != 0 ) goto ERREUR;
-
-  aremin = sqrt( aremin );  //longueur minimale d'une arete des lignes fermees
-  aremax = sqrt( aremax );  //longueur maximale d'une arete
-
-  aretmx = Min( aretmx, aremax );  //pour homogeneiser
-  MESSAGE("nutysu=" << nutysu << "  aretmx=" << aretmx 
-       << "  arete min=" << aremin << "  arete max=" << aremax);
-
-  //chainage des aretes frontalieres : la derniere arete frontaliere
-  mnsoar[ mosoar * noar - mosoar + 5 ] = 0;
-
-  //tous les sommets et aretes frontaliers sont numerotes de 1 a nbarfr
-  //reservation du tableau des numeros des 3 aretes de chaque triangle
-  //mnartr( moartr, mxartr )
-  //En nombre: Triangles = Aretes Internes + Aretes Frontalieres - Sommets + 1-Trous
-  //          3Triangles = 2 Aretes internes + Aretes frontalieres
-  //       d'ou 3T/2 < AI + AF => T < 3T/2  - Sommets + 1-Trous
-  //nombre de triangles < 2 ( nombre de sommets - 1 + nombre de trous )
-  if( mnartr!=NULL ) delete [] mnartr;
-  mxartr = 2 * ( mxsomm + mxtrou );
-  mnartr = new Z[moartr*mxartr];
-  if( mnartr==NULL ) goto ERREUR;
-
-  //Ajout des points internes
-  ns1 = nudslf[ nblf ];
-  for (i=0; i<nbpti; i++)
-  {
-    //les 2 coordonnees du point i de sommet nbs
-    mnpxyd[ns1].x = uvpti[i].x;
-    mnpxyd[ns1].y = uvpti[i].y;
-    mnpxyd[ns1].z = areteideale_( mnpxyd[ns1], direction );
-    //le numero i du point interne
-    mnslig[ns1] = i+1;
-    ns1++;
-  }
-
-  //nombre de sommets de la frontiere et internes
-  nbarpi = ns1;
-
-  // creation de l'arbre-4 des te (tableau letree)
-  // ajout dans les te des sommets des lignes et des points internes imposes
-  // =======================================================================
-  // premiere estimation de mxtree
-  mxtree = 2 * mxsomm;
-
- NEWTREE:  //en cas de saturation de l'un des tableaux, on boucle
-  MESSAGE( "Debut triangulation avec mxsomm=" << mxsomm );
-  if( mntree != NULL ) delete [] mntree;
-  nbsomm = nbarpi;
-  mntree = new Z[motree*(1+mxtree)];
-  if( mntree==NULL ) goto ERREUR;
-
-  //initialisation du tableau letree et ajout dans letree des sommets 1 a nbsomm
-  teajte_( mxsomm, nbsomm, mnpxyd, comxmi, aretmx, mxtree, mntree, ierr );
-  comxmi[0].z=0;
-  comxmi[1].z=0;
-
-  if( ierr == 51 )
-  {
-    //saturation de letree => sa taille est augmentee et relance
-    mxtree = mxtree * 2;
-    ierr   = 0;
-    MESSAGE( "Nouvelle valeur de mxtree=" << mxtree );
-    goto NEWTREE;
-  }
-
-  deltacpu_( d );
-  tcpu += d;
-  MESSAGE( "Temps de l'ajout arbre-4 des Triangles Equilateraux=" << d << " secondes" );
-  if( ierr != 0 ) goto ERREUR;
-  //ici le tableau mnpxyd contient les sommets des te et les points frontaliers et internes
-
-  // homogeneisation de l'arbre des te a un saut de taille au plus
-  // prise en compte des tailles d'aretes souhaitees autour des sommets initiaux
-  // ===========================================================================
-  // reservation de la queue pour parcourir les te de l'arbre
-  if( mnqueu != NULL ) delete [] mnqueu;
-  mxqueu = mxtree;
-  mnqueu = new Z[mxqueu];
-  if( mnqueu==NULL) goto ERREUR;
-
-  tehote_( nutysu, nbarpi, mxsomm, nbsomm, mnpxyd,
-          comxmi, aretmx,
-          mntree, mxqueu, mnqueu,
-          ierr );
-
-  deltacpu_( d );
-  tcpu += d;
-  MESSAGE("Temps de l'adaptation et l'homogeneisation de l'arbre-4 des TE="
-       << d << " secondes");
-  if( ierr != 0 )
-  {
-    //destruction du tableau auxiliaire et de l'arbre
-    if( ierr == 51 )
-    {
-      //letree sature
-      mxtree = mxtree * 2;
-      MESSAGE( "Redemarrage avec la valeur de mxtree=" << mxtree );
-      ierr = 0;
-      goto NEWTREE;
-    }
-    else
-      goto ERREUR;
-  }
-
-  // trianguler les triangles equilateraux feuilles a partir de leurs 3 sommets
-  // et des points de la frontiere, des points internes imposes interieurs
-  // ==========================================================================
-  tetrte_( comxmi, aretmx, nbarpi, mxsomm, mnpxyd,
-          mxqueu, mnqueu, mntree, mosoar, mxsoar, n1soar, mnsoar,
-          moartr, mxartr, n1artr, mnartr, mnarst,
-          ierr );
-
-  // destruction de la queue et de l'arbre devenus inutiles
-  delete [] mnqueu;  mnqueu=NULL;
-  delete [] mntree;  mntree=NULL;
-
-  //Temps calcul
-  deltacpu_( d );
-  tcpu += d;
-  MESSAGE( "Temps de la triangulation des TE=" << d << " secondes" );
-
-  // ierr =0 si pas d'erreur
-  //      =1 si le tableau mnsoar est sature
-  //      =2 si le tableau mnartr est sature
-  //      =3 si aucun des triangles ne contient l'un des points internes
-  //      =5 si saturation de la queue de parcours de l'arbre des te
-  if( ierr != 0 ) goto ERREUR;
-
-  //qualites de la triangulation actuelle
-  qualitetrte( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
-              nbt, quamoy, quamin );
-
-  // boucle sur les aretes internes (non sur une ligne de la frontiere)
-  // avec echange des 2 diagonales afin de rendre la triangulation delaunay
-  // ======================================================================
-  // formation du chainage 6 des aretes internes a echanger eventuellement
-  aisoar_( mosoar, mxsoar, mnsoar, na );
-  tedela_( mnpxyd, mnarst,
-          mosoar, mxsoar, n1soar, mnsoar, na,
-          moartr, mxartr, n1artr, mnartr, n );
-
-  MESSAGE( "Nombre d'echanges des diagonales de 2 triangles=" << n );
-  deltacpu_( d );
-  tcpu += d;
-  MESSAGE("Temps de la triangulation Delaunay par echange des diagonales="
-       << d << " secondes");
-
-  //qualites de la triangulation actuelle
-  qualitetrte( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
-              nbt, quamoy, quamin );
-
-  // detection des aretes frontalieres initiales perdues
-  // triangulation frontale pour les restaurer
-  // ===================================================
-  mxarcf = mxsomm/5;
-  if( mn1arcf != NULL ) delete [] mn1arcf;
-  if( mnarcf  != NULL ) delete [] mnarcf;
-  if( mnarcf1 != NULL ) delete [] mnarcf1;
-  if( mnarcf2 != NULL ) delete [] mnarcf2;
-  mn1arcf = new Z[1+mxarcf];
-  if( mn1arcf == NULL ) goto ERREUR;
-  mnarcf  = new Z[3*mxarcf];
-  if( mnarcf == NULL ) goto ERREUR;
-  mnarcf1 = new Z[mxarcf];
-  if( mnarcf1 == NULL ) goto ERREUR;
-  mnarcf2 = new Z[mxarcf];
-  if( mnarcf2 == NULL ) goto ERREUR;
-
-  terefr_( nbarpi, mnpxyd,
-          mosoar, mxsoar, n1soar, mnsoar,
-          moartr, n1artr, mnartr, mnarst,
-          mxarcf, mn1arcf, mnarcf, mnarcf1, mnarcf2,
-          n, ierr );
-
-  MESSAGE( "Restauration de " << n << " aretes perdues de la frontiere" );
-  deltacpu_( d );
-  tcpu += d;
-  MESSAGE("Temps de la recuperation des aretes perdues de la frontiere="
-       << d << " secondes");
-
-  if( ierr != 0 ) goto ERREUR;
-
-  //qualites de la triangulation actuelle
-  qualitetrte( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
-              nbt, quamoy, quamin );
-
-  // fin de la triangulation avec respect des aretes initiales frontalieres
-
-  // suppression des triangles externes a la surface
-  // ===============================================
-  // recherche du dernier triangle utilise
-  mn = mxartr * moartr;
-  for ( ndtri0=mxartr; ndtri0<=1; ndtri0-- )
-  {
-    mn -= moartr;
-    if( mnartr[mn] != 0 ) break;
-  }
-
-  if( mntrsu != NULL ) delete [] mntrsu;
-  mntrsu = new Z[ndtri0];
-  if( mntrsu == NULL ) goto ERREUR;
-
-  if( mnlftr != NULL ) delete [] mnlftr;
-  mnlftr = new Z[nblf];
-  if( mnlftr == NULL ) goto ERREUR;
-
-  for (n=0; n<nblf; n++)  //numero de la ligne fermee de 1 a nblf
-    mnlftr[n] = n+1;
-
-  tesuex_( nblf,   mnlftr,
-          ndtri0, nbsomm, mnpxyd, mnslig,
-          mosoar, mxsoar, mnsoar,
-          moartr, mxartr, n1artr, mnartr, mnarst,
-          nbt, mntrsu, ierr );
-
-  delete [] mnlftr; mnlftr=NULL;
-  delete [] mntrsu; mntrsu=NULL;
-
-  deltacpu_( d );
-  tcpu += d;
-  MESSAGE( "Temps de la suppression des triangles externes=" << d );
-  if( ierr != 0 ) goto ERREUR;
-
-  //qualites de la triangulation actuelle
-  qualitetrte( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
-              nbt, quamoy, quamin );
-
-  // amelioration de la qualite de la triangulation par
-  // barycentrage des sommets internes a la triangulation
-  // suppression des aretes trop longues ou trop courtes
-  // modification de la topologie des groupes de triangles
-  // mise en delaunay de la triangulation
-  // =====================================================
-  mnarcf3 = new Z[mxarcf];
-  if( mnarcf3 == NULL ) goto ERREUR;
-
-  teamqt_( nutysu,
-          mnarst, mosoar, mxsoar, n1soar, mnsoar,
-          moartr, mxartr, n1artr, mnartr,
-          mxarcf, mnarcf2, mnarcf3,
-          mn1arcf, mnarcf, mnarcf1,
-          comxmi, nbarpi, nbsomm, mxsomm, mnpxyd, mnslig,
-          ierr );
-  if( mn1arcf != NULL ) {delete [] mn1arcf; mn1arcf=NULL;}
-  if( mnarcf  != NULL ) {delete [] mnarcf;  mnarcf =NULL;}
-  if( mnarcf1 != NULL ) {delete [] mnarcf1; mnarcf1=NULL;}
-  if( mnarcf2 != NULL ) {delete [] mnarcf2; mnarcf2=NULL;}
-  if( mnarcf3 != NULL ) {delete [] mnarcf3; mnarcf3=NULL;}
-
-  deltacpu_( d );
-  tcpu += d;
-  MESSAGE( "Temps de l'amelioration de la qualite de la triangulation=" << d );
-  if( ierr != 0 ) goto ERREUR;
-
-  //qualites de la triangulation finale
-  qualitetrte( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
-              nbt, quamoy, quamin );
-
-  // renumerotation des sommets internes: mnarst(i)=numero final du sommet
-  // ===================================
-  for (i=0; i<=nbsomm; i++)
-    mnarst[i] = 0;
-
-  for (nt=1; nt<=mxartr; nt++)
-  {
-    if( mnartr[nt*moartr-moartr] != 0 )
-    {
-      //le numero des 3 sommets du triangle nt
-      nusotr_( nt, mosoar, mnsoar, moartr, mnartr, nosotr );
-      //les 3 sommets du triangle sont actifs
-      mnarst[ nosotr[0] ] = 1;
-      mnarst[ nosotr[1] ] = 1;
-      mnarst[ nosotr[2] ] = 1;
-    }
-  }
-  nbst = 0;
-  for (i=1; i<=nbsomm; i++)
-  {
-    if( mnarst[i] >0 )
-      mnarst[i] = ++nbst;
-  }
-
-  // generation du tableau uvst de la surface triangulee
-  // ---------------------------------------------------
-  if( uvst != NULL ) delete [] uvst;
-  uvst = new R2[nbst];
-  if( uvst == NULL ) goto ERREUR;
-
-  nbst=-1;
-  for (i=0; i<nbsomm; i++ )
-  {
-    if( mnarst[i+1]>0 )
-    {
-      nbst++;
-      uvst[nbst].x = mnpxyd[i].x;
-      uvst[nbst].y = mnpxyd[i].y;
-
-      //si le sommet est un point ou appartient a une ligne
-      //ses coordonnees initiales sont restaurees
-      n = mnslig[i];
-      if( n > 0 )
-      {
-       if( n >= 1000000 )
-       {
-         //sommet d'une ligne
-         //retour aux coordonnees initiales dans uvslf
-         l = n / 1000000;
-         n = n - 1000000 * l + nudslf[l-1] - 1;
-         uvst[nbst].x = uvslf[n].x;
-         uvst[nbst].y = uvslf[n].y;
-       }
-       else
-       {
-         //point utilisateur n interne impose
-         //retour aux coordonnees initiales dans uvpti
-         uvst[nbst].x = uvpti[n-1].x;
-         uvst[nbst].y = uvpti[n-1].y;
-       }
-      }
-    }
-  }
-  nbst++;
-
-  // generation du tableau 'nsef' de la surface triangulee
-  // -----------------------------------------------------
-  // boucle sur les triangles occupes (internes et externes)
-  if( nust != NULL ) delete [] nust;
-  nust = new Z[4*nbt];
-  if( nust == NULL ) goto ERREUR;
-  nbt = 0;
-  for (i=1; i<=mxartr; i++)
-  {
-    //le triangle i de mnartr
-    if( mnartr[i*moartr-moartr] != 0 )
-    {
-      //le triangle i est interne => nosotr numero de ses 3 sommets
-      nusotr_( i, mosoar, mnsoar, moartr, mnartr,  nosotr );
-      nust[nbt++] = mnarst[ nosotr[0] ];
-      nust[nbt++] = mnarst[ nosotr[1] ];
-      nust[nbt++] = mnarst[ nosotr[2] ];
-      nust[nbt++] = 0;
-    }
-  }
-  nbt /= 4;  //le nombre final de triangles de la surface
-  MESSAGE("Nombre de sommets=" << nbst
-       << "  Nombre de triangles=" << nbt);
-
-  deltacpu_( d );
-  tcpu += d;
-  MESSAGE( "Temps total de la triangulation=" << tcpu << " secondes" );
-
-  // destruction des tableaux auxiliaires
-  // ------------------------------------
- NETTOYAGE:
-  if( mnarst != NULL ) delete [] mnarst;
-  if( mnartr != NULL ) delete [] mnartr;
-  if( mnslig != NULL ) delete [] mnslig;
-  if( mnsoar != NULL ) delete [] mnsoar;
-  if( mnpxyd != NULL ) delete [] mnpxyd;
-  if( mndalf != NULL ) delete [] mndalf;
-  if( mntree != NULL ) delete [] mntree;
-  if( mnqueu != NULL ) delete [] mnqueu;
-  if( mntrsu != NULL ) delete [] mntrsu;
-  if( mnlftr != NULL ) delete [] mnlftr;
-  if( mn1arcf != NULL ) delete [] mn1arcf;
-  if( mnarcf  != NULL ) delete [] mnarcf;
-  if( mnarcf1 != NULL ) delete [] mnarcf1;
-  if( mnarcf2 != NULL ) delete [] mnarcf2;
-  if( mnarcf3 != NULL ) delete [] mnarcf3;
-  return;
-
- ERREUR:
-  if( ierr == 51 || ierr == 52 )
-  {
-    //saturation des sommets => redepart avec 2 fois plus de sommets
-    mxsomm = 2 * mxsomm;
-    ierr   = 0;
-    goto NEWDEPART;
-  }
-  else
-  {
-    MESSAGE( "Triangulation non realisee " << ierr );
-    if( ierr == 0 ) ierr=1;
-    goto NETTOYAGE;
-  }
-}
-
-
-void qualitetrte( R3 *mnpxyd,
-                 Z & mosoar, Z & mxsoar, Z *mnsoar,
-                 Z & moartr, Z & mxartr, Z *mnartr,
-                 Z & nbtria, R & quamoy, R & quamin )
-// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-// but :    calculer la qualite moyenne et minimale de la triangulation
-// -----    actuelle definie par les tableaux mnsoar et mnartr
-// entrees:
-// --------
-// mnpxyd : tableau des coordonnees 2d des points
-//          par point : x  y  distance_souhaitee
-// mosoar : nombre maximal d'entiers par arete et
-//          indice dans mnsoar de l'arete suivante dans le hachage
-// mxsoar : nombre maximal d'aretes stockables dans le tableau mnsoar
-//          attention: mxsoar>3*mxsomm obligatoire!
-// mnsoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-//          chainage des aretes frontalieres, chainage du hachage des aretes
-//          hachage des aretes = mnsoar(1)+mnsoar(2)*2
-//          avec mxsoar>=3*mxsomm
-//          une arete i de mnsoar est vide <=> mnsoar(1,i)=0 et
-//          mnsoar(2,arete vide)=l'arete vide qui precede
-//          mnsoar(3,arete vide)=l'arete vide qui suit
-// moartr : nombre maximal d'entiers par arete du tableau mnartr
-// mxartr : nombre maximal de triangles declarables
-// mnartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-//          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-// sorties:
-// --------
-// nbtria : nombre de triangles internes au domaine
-// quamoy : qualite moyenne  des triangles actuels
-// quamin : qualite minimale des triangles actuels
-// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-{
-  R  d, aire, qualite;
-  Z  nosotr[3], mn, nbtrianeg, nt;
-
-  aire   = 0;
-  quamoy = 0;
-  quamin = 2.0;
-  nbtria = 0;
-  nbtrianeg = 0;
-
-  mn = -moartr;
-  for ( nt=1; nt<=mxartr; nt++ )
-  {
-    mn += moartr;
-    if( mnartr[mn]!=0 )
-    {
-      //un triangle occupe de plus
-      nbtria++;
-
-      //le numero des 3 sommets du triangle nt
-      nusotr_( nt, mosoar, mnsoar, moartr, mnartr,  nosotr );
-
-      //la qualite du triangle ns1 ns2 ns3
-      qutr2d_( mnpxyd[nosotr[0]-1], mnpxyd[nosotr[1]-1], mnpxyd[nosotr[2]-1],
-              qualite );
-
-      //la qualite moyenne
-      quamoy += qualite;
-
-      //la qualite minimale
-      quamin = Min( quamin, qualite );
-
-      //aire signee du triangle nt
-      d = surtd2_( mnpxyd[nosotr[0]-1], mnpxyd[nosotr[1]-1], mnpxyd[nosotr[2]-1] );
-      if( d<0 )
-      {
-       //un triangle d'aire negative de plus
-       nbtrianeg++;
-       MESSAGE("ATTENTION: le triangle " << nt << " de sommets:"
-            << nosotr[0] << " " << nosotr[1] << " " << nosotr[2]
-            << " a une aire " << d <<"<=0");
-      }
-
-      //aire des triangles actuels
-      aire += Abs(d);
-    }
-  }
-
-  //les affichages
-  quamoy /= nbtria;
-  MESSAGE("Qualite moyenne=" << quamoy
-       << "  Qualite minimale=" << quamin
-       << " des " << nbtria << " triangles de surface totale="
-       << aire);
-
-  if( nbtrianeg>0 )
-    MESSAGE( "ATTENTION: nombre de triangles d'aire negative=" << nbtrianeg );
-  return;
-}
diff --git a/src/MEFISTO2/aptrte.h b/src/MEFISTO2/aptrte.h
deleted file mode 100755 (executable)
index 5310877..0000000
+++ /dev/null
@@ -1,255 +0,0 @@
-//  SMESH MEFISTO2 : algorithm for meshing
-//
-//  Copyright (C) 2003  Laboratoire J.-L. Lions UPMC Paris
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.ann.jussieu.fr/~perronne or email Perronnet@ann.jussieu.fr
-//
-//
-//
-//  File   : aptrte.h
-//  Author: Alain PERRONNET
-//  Module : SMESH
-
-#ifndef aptrte__h
-#define aptrte__h
-
-#include <limits.h>   // limites min max int long real ...
-#include <unistd.h>   // gethostname, ...
-#include <stdio.h>
-#include <iostream.h> // pour cout cin ...
-#include <iomanip.h>  // pour le format des io setw, stx, setfill, ...
-#include <string.h>   // pour les fonctions sur les chaines de caracteres
-#include <ctype.h>
-#include <stdlib.h>
-#include <math.h>     // pour les fonctions mathematiques
-#include <time.h>
-
-#include <sys/types.h>
-#include <sys/time.h>
-
-void qualitetrte( R3 *mnpxyd,
-                 Z & mosoar, Z & mxsoar, Z *mnsoar,
-                 Z & moartr, Z & mxartr, Z *mnartr,
-                 Z & nbtria, R & quamoy, R & quamin );
-// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-// but :    calculer la qualite moyenne et minimale de la triangulation
-// -----    actuelle definie par les tableaux nosoar et noartr
-// entrees:
-// --------
-// mnpxyd : tableau des coordonnees 2d des points
-//          par point : x  y  distance_souhaitee
-// mosoar : nombre maximal d'entiers par arete et
-//          indice dans nosoar de l'arete suivante dans le hachage
-// mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-//          attention: mxsoar>3*mxsomm obligatoire!
-// nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-//          chainage des aretes frontalieres, chainage du hachage des aretes
-//          hachage des aretes = nosoar(1)+nosoar(2)*2
-//          avec mxsoar>=3*mxsomm
-//          une arete i de nosoar est vide <=> nosoar(1,i)=0 et
-//          nosoar(2,arete vide)=l'arete vide qui precede
-//          nosoar(3,arete vide)=l'arete vide qui suit
-// moartr : nombre maximal d'entiers par arete du tableau noartr
-// mxartr : nombre maximal de triangles declarables
-// noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-//          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-// sorties:
-// --------
-// nbtria : nombre de triangles internes au domaine
-// quamoy : qualite moyenne  des triangles actuels
-// quamin : qualite minimale des triangles actuels
-// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-
-void  aptrte( Z nutysu, R aretmx,
-             Z nblf,   Z *nudslf, R2 *uvslf,
-             Z nbpti,  R2 *uvpti,
-             Z & nbst, R2 * & uvst, Z & nbt, Z * & nust,
-             Z & ierr );
-//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-// but : appel de la triangulation par un arbre-4 recouvrant
-// ----- de triangles equilateraux
-//       le contour du domaine plan est defini par des lignes fermees
-//       la premiere ligne etant l'enveloppe de toutes les autres
-//       la fonction areteideale_(s,d) donne la taille d'arete
-//       au point s dans la direction d (direction inactive pour l'instant)
-//       des lors toute arete issue d'un sommet s devrait avoir une longueur
-//       comprise entre 0.65 areteideale_(s,d) et 1.3 areteideale_(s,d)
-//
-//Attention:
-//  Les tableaux uvslf et uvpti sont supposes ne pas avoir de sommets identiques!
-//  De meme, un sommet d'une ligne fermee ne peut appartenir a une autre ligne fermee
-//
-// entrees:
-// --------
-// nutysu : numero de traitement de areteideale_() selon le type de surface
-//          0 pas d'emploi de la fonction areteideale_() et aretmx est active
-//          1 il existe une fonction areteideale_(s,d)
-//            dont seules les 2 premieres composantes de uv sont actives
-//          ... autres options a definir ...
-// aretmx : longueur maximale des aretes de la future triangulation
-// nblf   : nombre de lignes fermees de la surface
-// nudslf : numero du dernier sommet de chacune des nblf lignes fermees
-//          nudslf(0)=0 pour permettre la difference sans test
-//          Attention le dernier sommet de chaque ligne est raccorde au premier
-//          tous les sommets et les points internes ont des coordonnees
-//          UV differentes <=> Pas de point double!
-// uvslf  : uv des nudslf(nblf) sommets des lignes fermees
-// nbpti  : nombre de points internes futurs sommets de la triangulation
-// uvpti  : uv des points internes futurs sommets de la triangulation
-//
-// sorties:
-// --------
-// nbst   : nombre de sommets de la triangulation finale
-// uvst   : coordonnees uv des nbst sommets de la triangulation
-// nbt    : nombre de triangles de la triangulation finale
-// nust   : 3 numeros dans uvst des sommets des nbt triangles
-// ierr   : 0 si pas d'erreur
-//        > 0 sinon
-//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-// auteur : Alain Perronnet  Analyse Numerique Paris UPMC   decembre 2001
-//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-extern "C" {  void tempscpu_( double & tempsec );  }
-//Retourne le temps CPU utilise en secondes
-
-extern "C" { void deltacpu_( R & dtcpu ); }
-//Retourne le temps CPU utilise en secondes depuis le precedent appel
-
-//initialiser le tableau mnsoar pour le hachage des aretes
-extern "C" {void insoar_( Z & mxsomm, Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar );}
-
-//mettre a zero les nb entiers de tab
-extern "C" {void azeroi_( Z & nb, Z * tab );}
-
-extern "C" {void fasoar_( Z & ns1, Z & ns2, Z & nt1, Z & nt2, Z & nolign,
-                         Z & mosoar,  Z & mxsoar,  Z & n1soar,  Z * mnsoar,  Z * mnarst,
-                         Z & noar, Z & ierr );}
-//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-// but :    former l'arete de sommet ns1-ns2 dans le hachage du tableau
-// -----    nosoar des aretes de la triangulation
-// entrees:
-// --------
-// ns1 ns2: numero pxyd des 2 sommets de l'arete
-// nt1    : numero du triangle auquel appartient l'arete
-//          nt1=-1 si numero inconnu
-// nt2    : numero de l'eventuel second triangle de l'arete si connu
-//          nt2=-1 si numero inconnu
-// nolign : numero de la ligne fermee de l'arete
-//          =0 si l'arete n'est une arete de ligne
-//          ce numero est ajoute seulement si l'arete est creee
-// mosoar : nombre maximal d'entiers par arete du tableau nosoar
-// mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-// modifies:
-// ---------
-// n1soar : numero de la premiere arete vide dans le tableau nosoar
-//          une arete i de nosoar est vide  <=>  nosoar(1,i)=0
-//          chainage des aretes vides amont et aval
-//          l'arete vide qui precede=nosoar(4,i)
-//          l'arete vide qui suit   =nosoar(5,i)
-// nosoar : numero des 2 sommets, no ligne, 2 triangles de l'arete,
-//          chainage momentan'e d'aretes, chainage du hachage des aretes
-//          hachage des aretes = min( nosoar(1), nosoar(2) )
-// noarst : noarst(np) numero d'une arete du sommet np
-
-// ierr   : si < 0  en entree pas d'affichage en cas d'erreur du type
-//         "arete appartenant a plus de 2 triangles et a creer!"
-//          si >=0  en entree       affichage de ce type d'erreur
-// sorties:
-// --------
-// noar   : >0 numero de l'arete retrouvee ou ajoutee
-// ierr   : =0 si pas d'erreur
-//          =1 si le tableau nosoar est sature
-//          =2 si arete a creer et appartenant a 2 triangles distincts
-//             des triangles nt1 et nt2
-//          =3 si arete appartenant a 2 triangles distincts
-//             differents des triangles nt1 et nt2
-//          =4 si arete appartenant a 2 triangles distincts
-//             dont le second n'est pas le triangle nt2
-//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-//initialisation du tableau letree et ajout dans letree des sommets 1 a nbsomm
-extern "C" {void teajte_( Z & mxsomm, Z &  nbsomm, R3 * mnpxyd,  R3 * comxmi,
-                         R & aretmx,  Z & mxtree, Z * letree,
-                         Z & ierr );}
-
-
-extern "C" {void tehote_( Z & nutysu, Z & nbarpi, Z &  mxsomm, Z &  nbsomm, R3 * mnpxyd,
-                         R3 * comxmi, R & aretmx,
-                         Z * letree, Z & mxqueu, Z * mnqueu,
-                         Z & ierr );}
-// homogeneisation de l'arbre des te a un saut de taille au plus
-// prise en compte des tailles d'aretes souhaitees autour des sommets initiaux
-
-extern "C" {void tetrte_(  R3 * comxmi, R & aretmx, Z & nbarpi, Z & mxsomm, R3 * mnpxyd,
-                          Z & mxqueu,  Z * mnqueu,  Z * mntree,
-                          Z & mosoar,  Z & mxsoar,  Z & n1soar, Z * mnsoar,
-                          Z & moartr, Z &  mxartr,  Z & n1artr,  Z * mnartr,  Z * mnarst,
-                          Z & ierr );}
-// trianguler les triangles equilateraux feuilles a partir de leurs 3 sommets
-// et des points de la frontiere, des points internes imposes interieurs
-
-extern "C" {void aisoar_( Z & mosoar, Z & mxsoar, Z * mnsoar, Z & na );}
-  // formation du chainage 6 des aretes internes a echanger eventuellement
-
-extern "C" {void tedela_( R3 * mnpxyd, Z * mnarst,
-                         Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar, Z & na,
-                         Z & moartr, Z & mxartr, Z & n1artr, Z * mnartr, Z & n );}
-  // boucle sur les aretes internes (non sur une ligne de la frontiere)
-  // avec echange des 2 diagonales afin de rendre la triangulation delaunay
-extern "C" {void terefr_( Z & nbarpi, R3 * mnpxyd,
-                         Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar,
-                         Z & moartr, Z & n1artr, Z * mnartr, Z * mnarst,
-                         Z & mxarcf, Z * mnarc1, Z * mnarc2,
-                         Z * mnarc3, Z * mnarc4,
-                         Z & n, Z & ierr );}
-// detection des aretes frontalieres initiales perdues
-// triangulation frontale pour les restaurer
-
-extern "C" {void tesuex_( Z & nblf, Z * nulftr,
-                         Z & ndtri0, Z & nbsomm, R3 * mnpxyd, Z * mnslig,
-                         Z & mosoar, Z & mxsoar, Z * mnsoar,
-                         Z & moartr, Z & mxartr, Z & n1artr, Z * mnartr, Z * mnarst,
-                         Z & nbtria, Z * mntrsu, Z & ierr );}
-// suppression des triangles externes a la surface
-
-extern "C" {void teamqt_( Z & nutysu,
-                         Z * mnarst, Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar,
-                         Z & moartr, Z & mxartr, Z & n1artr, Z * mnartr,
-                         Z & mxarcf, Z * mntrcf, Z * mnstbo,
-                         Z * n1arcf, Z * mnarcf, Z * mnarc1,
-                         R3 * comxmi, Z & nbarpi, Z & nbsomm, Z & mxsomm,
-                         R3 * mnpxyd, Z * mnslig,
-                         Z & ierr );}
-// amelioration de la qualite de la triangulation par
-// barycentrage des sommets internes a la triangulation
-// suppression des aretes trop longues ou trop courtes
-// modification de la topologie des groupes de triangles
-// mise en delaunay de la triangulation
-extern "C" {void nusotr_( Z & nt, Z & mosoar, Z * mnsoar, Z & moartr, Z * mnartr,
-                         Z * nosotr );}
-//retrouver les numero des 3 sommets du triangle nt
-
-extern "C" {void qutr2d_( R3 & p1, R3 & p2, R3 & p3, R & qualite );}
-//calculer la qualite d'un triangle de R2 de sommets p1, p2, p3
-
-extern "C" { R surtd2_( R3 & p1, R3 & p2, R3 & p3 ); }
-//calcul de la surface d'un triangle defini par 3 points de r**2
-
-#endif
diff --git a/src/MEFISTO2/areteideale.f b/src/MEFISTO2/areteideale.f
deleted file mode 100755 (executable)
index f0c8744..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-c  MEFISTO : library to compute 2D triangulation from segmented boundaries
-c
-c  Copyright (C) 2003  Laboratoire J.-L. Lions UPMC Paris
-c
-c  This library is free software; you can redistribute it and/or
-c  modify it under the terms of the GNU Lesser General Public
-c  License as published by the Free Software Foundation; either
-c  version 2.1 of the License.
-c
-c  This library is distributed in the hope that it will be useful,
-c  but WITHOUT ANY WARRANTY; without even the implied warranty of
-c  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-c  Lesser General Public License for more details.
-c
-c  You should have received a copy of the GNU Lesser General Public
-c  License along with this library; if not, write to the Free Software
-c  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-c
-c  See http://www.ann.jussieu.fr/~perronne or email Perronnet@ann.jussieu.fr
-c
-c
-c  File   : areteideale.f
-c  Module : SMESH
-c  Author: Alain PERRONNET
-
-      double precision function areteideale( xyz, direction )
-      double precision xyz(3), direction(3)
-      areteideale = 10
-      return
-      end
diff --git a/src/MEFISTO2/trte.f b/src/MEFISTO2/trte.f
deleted file mode 100755 (executable)
index 8e0388b..0000000
+++ /dev/null
@@ -1,8332 +0,0 @@
-c  MEFISTO : library to compute 2D triangulation from segmented boundaries
-c
-c  Copyright (C) 2003  Laboratoire J.-L. Lions UPMC Paris
-c
-c  This library is free software; you can redistribute it and/or
-c  modify it under the terms of the GNU Lesser General Public
-c  License as published by the Free Software Foundation; either
-c  version 2.1 of the License.
-c
-c  This library is distributed in the hope that it will be useful,
-c  but WITHOUT ANY WARRANTY; without even the implied warranty of
-c  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-c  Lesser General Public License for more details.
-c
-c  You should have received a copy of the GNU Lesser General Public
-c  License along with this library; if not, write to the Free Software
-c  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-c
-c  See http://www.ann.jussieu.fr/~perronne or email Perronnet@ann.jussieu.fr
-c
-c
-c  File   : trte.f
-c  Module : SMESH
-c  Author: Alain PERRONNET
-
-      subroutine qutr2d( p1, p2, p3, qualite )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :     calculer la qualite d'un triangle de r**2
-c -----     2 coordonnees des 3 sommets en double precision
-c
-c entrees :
-c ---------
-c p1,p2,p3 : les 3 coordonnees des 3 sommets du triangle
-c            sens direct pour une surface et qualite >0
-c sorties :
-c ---------
-c qualite: valeur de la qualite du triangle entre 0 et 1 (equilateral)
-c          1 etant la qualite optimale
-c ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet analyse numerique upmc paris     janvier 1995
-c2345x7..............................................................012
-      parameter  ( d2uxr3 = 3.4641016151377544d0 )
-c                  d2uxr3 = 2 * sqrt(3)
-      double precision  p1(2), p2(2), p3(2), qualite, a, b, c, p
-c
-c     la longueur des 3 cotes
-      a = sqrt( (p2(1)-p1(1))**2 + (p2(2)-p1(2))**2 )
-      b = sqrt( (p3(1)-p2(1))**2 + (p3(2)-p2(2))**2 )
-      c = sqrt( (p1(1)-p3(1))**2 + (p1(2)-p3(2))**2 )
-c
-c     demi perimetre
-      p = (a+b+c) * 0.5d0
-c
-      if ( (a*b*c) .ne. 0d0 ) then
-c        critere : 2 racine(3) * rayon_inscrit / plus longue arete
-         qualite = d2uxr3 * sqrt( abs( (p-a) / p * (p-b) * (p-c) ) )
-     %          / max(a,b,c)
-      else
-         qualite = 0d0
-      endif
-c
-c
-c     autres criteres possibles:
-c     critere : 2 * rayon_inscrit / rayon_circonscrit
-c     qualite = 8d0 * (p-a) * (p-b) * (p-c) / (a * b * c)
-c
-c     critere : 3*sqrt(3.) * ray_inscrit / demi perimetre
-c     qualite = 3*sqrt(3.) * sqrt ((p-a)*(p-b)*(p-c) / p**3)
-c
-c     critere : 2*sqrt(3.) * ray_inscrit / max( des aretes )
-c     qualite = 2*sqrt(3.) * sqrt( (p-a)*(p-b)*(p-c) / p ) / max(a,b,c)
-      end
-
-
-      double precision function surtd2( p1 , p2 , p3 )
-c ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but : calcul de la surface d'un triangle defini par 3 points de R**2
-c -----
-c parametres d entree :
-c ---------------------
-c p1 p2 p3 : les 3 fois 2 coordonnees des sommets du triangle
-c
-c parametre resultat :
-c --------------------
-c surtd2 : surface du triangle
-c ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet analyse numerique upmc paris     fevrier 1992
-c2345x7..............................................................012
-      double precision  p1(2), p2(2), p3(2)
-c
-c     la surface du triangle
-      surtd2 = ( ( p2(1)-p1(1) ) * ( p3(2)-p1(2) )
-     %         - ( p2(2)-p1(2) ) * ( p3(1)-p1(1) ) ) * 0.5d0
-      end
-
-      integer function nopre3( i )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :   numero precedent i dans le sens circulaire  1 2 3 1 ...
-c -----
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc    fevrier 1992
-c2345x7..............................................................012
-      if( i .eq. 1 ) then
-         nopre3 = 3
-      else
-         nopre3 = i - 1
-      endif
-      end
-
-      integer function nosui3( i )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :   numero suivant i dans le sens circulaire  1 2 3 1 ...
-c -----
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc    fevrier 1992
-c2345x7..............................................................012
-      if( i .eq. 3 ) then
-         nosui3 = 1
-      else
-         nosui3 = i + 1
-      endif
-      end
-
-      subroutine provec( v1 , v2 , v3 )
-c ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    v3 vecteur = produit vectoriel de 2 vecteurs de r ** 3
-c -----
-c entrees:
-c --------
-c v1, v2 : les 2 vecteurs de 3 composantes
-c
-c sortie :
-c --------
-c v3     : vecteur = v1  produit vectoriel v2
-cc++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : perronnet alain upmc analyse numerique paris        mars 1987
-c2345x7..............................................................012
-      double precision    v1(3), v2(3), v3(3)
-c
-      v3( 1 ) = v1( 2 ) * v2( 3 ) - v1( 3 ) * v2( 2 )
-      v3( 2 ) = v1( 3 ) * v2( 1 ) - v1( 1 ) * v2( 3 )
-      v3( 3 ) = v1( 1 ) * v2( 2 ) - v1( 2 ) * v2( 1 )
-c
-      return
-      end
-
-      subroutine norme1( n, v, ierr )
-c ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :   normalisation euclidienne a 1 d un vecteur v de n composantes
-c -----
-c entrees :
-c ---------
-c n       : nombre de composantes du vecteur
-c
-c modifie :
-c ---------
-c v       : le vecteur a normaliser a 1
-c
-c sortie  :
-c ---------
-c ierr    : 1 si la norme de v est egale a 0
-c           0 si pas d'erreur
-c ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet analyse numerique paris             mars 1987
-c ......................................................................
-      double precision  v( n ), s, sqrt
-c
-      s = 0.0d0
-      do 10 i=1,n
-         s = s + v( i ) * v( i )
-   10 continue
-c
-c     test de nullite de la norme du vecteur
-c     --------------------------------------
-      if( s .le. 0.0d0 ) then
-c        norme nulle du vecteur non normalisable a 1
-         ierr = 1
-         return
-      endif
-c
-      s = 1.0d0 / sqrt( s )
-      do 20 i=1,n
-         v( i ) = v ( i ) * s
-   20 continue
-c
-      ierr = 0
-      end
-
-
-      subroutine insoar( mxsomm, mosoar, mxsoar, n1soar, nosoar )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    initialiser le tableau nosoar pour le hachage des aretes
-c -----
-c
-c entrees:
-c --------
-c mxsomm : plus grand numero de sommet d'une arete au cours du calcul
-c mosoar : nombre maximal d'entiers par arete du tableau nosoar
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c          avec mxsoar>=3*mxsomm
-c
-c sorties:
-c --------
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c          une arete i de nosoar est vide  <=>  nosoar(1,i)=0
-c          chainage des aretes vides amont et aval
-c          l'arete vide qui precede=nosoar(4,i)
-c          l'arete vide qui suit   =nosoar(5,i)
-c nosoar : numero des 2 sommets, no ligne, 2 triangles de l'arete,
-c          chainage momentan'e d'aretes, chainage du hachage des aretes
-c          hachage des aretes = min( nosoar(1), nosoar(2) )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c2345x7..............................................................012
-      integer   nosoar(mosoar,mxsoar)
-c
-c     initialisation des aretes 1 a mxsomm
-      do 10 i=1,mxsomm
-c
-c        sommet 1 = 0 <=> temoin d'arete vide pour le hachage
-         nosoar( 1, i ) = 0
-c
-c        arete sur aucune ligne
-         nosoar( 3, i ) = 0
-c
-c        la position de l'arete interne ou frontaliere est inconnue
-         nosoar( 6, i ) = -2
-c
-c        fin de chainage du hachage pas d'arete suivante
-         nosoar( mosoar, i ) = 0
-c
- 10   continue
-c
-c     la premiere arete vide chainee est la mxsomm+1 du tableau
-c     car ces aretes ne sont pas atteignables par le hachage direct
-      n1soar = mxsomm + 1
-c
-c     initialisation des aretes vides et des chainages
-      do 20 i = n1soar, mxsoar
-c
-c        sommet 1 = 0 <=> temoin d'arete vide pour le hachage
-         nosoar( 1, i ) = 0
-c
-c        arete sur aucune ligne
-         nosoar( 3, i ) = 0
-c
-c        chainage sur l'arete vide qui precede
-c        (si arete occupee cela deviendra le no du triangle 1 de l'arete)
-         nosoar( 4, i ) = i-1
-c
-c        chainage sur l'arete vide qui suit
-c        (si arete occupee cela deviendra le no du triangle 2 de l'arete)
-         nosoar( 5, i ) = i+1
-c
-c        chainages des aretes frontalieres ou internes ou ...
-         nosoar( 6, i ) = -2
-c
-c        fin de chainage du hachage
-         nosoar( mosoar, i ) = 0
-c
- 20   continue
-c
-c     la premiere arete vide n'a pas de precedent
-      nosoar( 4, n1soar ) = 0
-c
-c     la derniere arete vide est mxsoar sans arete vide suivante
-      nosoar( 5, mxsoar ) = 0
-      end
-
-
-      subroutine azeroi ( l , ntab )
-c ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but : initialisation a zero d un tableau ntab de l variables entieres
-c -----
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet analyse numerique upmc paris septembre 1988
-c23456---------------------------------------------------------------012
-      integer ntab(l)
-      do 1 i = 1 , l
-         ntab( i ) = 0
-    1 continue
-      end
-
-
-      subroutine fasoar( ns1,    ns2,    nt1,    nt2,    nolign,
-     %                   mosoar, mxsoar, n1soar, nosoar, noarst,
-     %                   noar,   ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    former l'arete de sommet ns1-ns2 dans le hachage du tableau
-c -----    nosoar des aretes de la triangulation
-c
-c entrees:
-c --------
-c ns1 ns2: numero pxyd des 2 sommets de l'arete
-c nt1    : numero du triangle auquel appartient l'arete
-c          nt1=-1 si numero inconnu
-c nt2    : numero de l'eventuel second triangle de l'arete si connu
-c          nt2=-1 si numero inconnu
-c nolign : numero de la ligne de l'arete dans ladefi(wulftr-1+nolign)
-c          =0 si l'arete n'est une arete de ligne
-c          ce numero est ajoute seulement si l'arete est creee
-c mosoar : nombre maximal d'entiers par arete du tableau nosoar
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c
-c modifies:
-c ---------
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c          une arete i de nosoar est vide  <=>  nosoar(1,i)=0
-c          chainage des aretes vides amont et aval
-c          l'arete vide qui precede=nosoar(4,i)
-c          l'arete vide qui suit   =nosoar(5,i)
-c nosoar : numero des 2 sommets, no ligne, 2 triangles de l'arete,
-c          chainage momentan'e d'aretes, chainage du hachage des aretes
-c          hachage des aretes = min( nosoar(1), nosoar(2) )
-c noarst : noarst(np) numero d'une arete du sommet np
-c
-c ierr   : si < 0  en entree pas d'affichage en cas d'erreur du type
-c         "arete appartenant a plus de 2 triangles et a creer!"
-c          si >=0  en entree       affichage de ce type d'erreur
-c
-c sorties:
-c --------
-c noar   : >0 numero de l'arete retrouvee ou ajoutee
-c ierr   : =0 si pas d'erreur
-c          =1 si le tableau nosoar est sature
-c          =2 si arete a creer et appartenant a 2 triangles distincts
-c             des triangles nt1 et nt2
-c          =3 si arete appartenant a 2 triangles distincts
-c             differents des triangles nt1 et nt2
-c          =4 si arete appartenant a 2 triangles distincts
-c             dont le second n'est pas le triangle nt2
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c2345x7..............................................................012
-      common / unites / lecteu, imprim, nunite(30)
-      integer           nosoar(mosoar,mxsoar), noarst(*)
-      integer           nu2sar(2)
-c
-c     ajout eventuel de l'arete s1 s2 dans nosoar
-      nu2sar(1) = ns1
-      nu2sar(2) = ns2
-c
-c     hachage de l'arete de sommets nu2sar
-      call hasoar( mosoar, mxsoar, n1soar, nosoar, nu2sar, noar )
-c     en sortie: noar>0 => no arete retrouvee
-c                    <0 => no arete ajoutee
-c                    =0 => saturation du tableau nosoar
-c
-      if( noar .eq. 0 ) then
-c
-c        saturation du tableau nosoar
-         write(imprim,*) 'fasoar: tableau nosoar sature'
-         ierr = 1
-         return
-c
-      else if( noar .lt. 0 ) then
-c
-c        l'arete a ete ajoutee. initialisation des autres informations
-         noar = -noar
-c        le numero de la ligne de l'arete
-         nosoar(3,noar) = nolign
-c        le triangle 1 de l'arete => le triangle nt1
-         nosoar(4,noar) = nt1
-c        le triangle 2 de l'arete => le triangle nt2
-         nosoar(5,noar) = nt2
-c
-c        le sommet appartient a l'arete noar
-         noarst( nu2sar(1) ) = noar
-         noarst( nu2sar(2) ) = noar
-c
-      else
-c
-c        l'arete a ete retrouvee.
-c        si elle appartient a 2 triangles differents de nt1 et nt2
-c        alors il y a une erreur
-         if( nosoar(4,noar) .gt. 0 .and.
-     %       nosoar(5,noar) .gt. 0 ) then
-             if( nosoar(4,noar) .ne. nt1 .and.
-     %           nosoar(4,noar) .ne. nt2 .or.
-     %           nosoar(5,noar) .ne. nt1 .and.
-     %           nosoar(5,noar) .ne. nt2 ) then
-c                arete appartenant a plus de 2 triangles => erreur
-                 if( ierr .ge. 0 ) then
-                    write(imprim,*) 'erreur fasoar: arete ',noar,
-     %              ' dans 2 triangles et a creer!'
-                 endif
-                 ierr = 2
-                 return
-             endif
-         endif
-c
-c        mise a jour du numero des triangles de l'arete noar
-c        le triangle 2 de l'arete => le triangle nt1
-         if( nosoar(4,noar) .lt. 0 ) then
-c            pas de triangle connu pour cette arete
-             n = 4
-         else
-c            deja un triangle connu. ce nouveau est le second
-             if( nosoar(5,noar) .gt. 0  .and.  nt1 .gt. 0 .and.
-     %          nosoar(5,noar) .ne. nt1 ) then
-c               arete appartenant a plus de 2 triangles => erreur
-                write(imprim,*) 'erreur fasoar: arete ',noar,
-     %          ' dans plus de 2 triangles'
-                ierr = 3
-                return
-             endif
-             n = 5
-         endif
-         nosoar(n,noar) = nt1
-c
-c        cas de l'arete frontaliere retrouvee comme diagonale d'un quadrangle
-         if( nt2 .gt. 0 ) then
-c           l'arete appartient a 2 triangles
-            if( nosoar(5,noar) .gt. 0  .and.
-     %          nosoar(5,noar) .ne. nt2 ) then
-c               arete appartenant a plus de 2 triangles => erreur
-                write(imprim,*) 'erreur fasoar: arete ',noar,
-     %         ' dans plus de 2 triangles'
-                ierr = 4
-                return
-            endif
-            nosoar(5,noar) = nt2
-         endif
-c
-      endif
-c
-c     pas d'erreur
-      ierr = 0
-      end
-
-      subroutine fq1inv( x, y, s, xc, yc, ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :   calcul des 2 coordonnees (xc,yc) dans le carre (0,1)
-c -----   image par f:carre unite-->quadrangle appartenant a q1**2
-c         par une resolution directe due a nicolas thenault
-c
-c entrees:
-c --------
-c x,y   : coordonnees du point image dans le quadrangle de sommets s
-c s     : les 2 coordonnees des 4 sommets du quadrangle
-c
-c sorties:
-c --------
-c xc,yc : coordonnees dans le carre dont l'image par f vaut (x,y)
-c ierr  : 0 si calcul sans erreur, 1 si quadrangle degenere
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteurs: thenault tulenew  analyse numerique paris        janvier 1998
-c modifs : perronnet alain   analyse numerique paris        janvier 1998
-c234567..............................................................012
-      real             s(1:2,1:4), dist(2)
-      double precision a,b,c,d,alpha,beta,gamma,delta,x0,y0,t(2),u,v,w
-c
-      a = s(1,1)
-      b = s(1,2) - s(1,1)
-      c = s(1,4) - s(1,1)
-      d = s(1,1) - s(1,2) + s(1,3) - s(1,4)
-c
-      alpha = s(2,1)
-      beta  = s(2,2) - s(2,1)
-      gamma = s(2,4) - s(2,1)
-      delta = s(2,1) - s(2,2) + s(2,3) - s(2,4)
-c
-      u = beta  * c - b * gamma
-      if( u .eq. 0 ) then
-c        quadrangle degenere
-         ierr = 1
-         return
-      endif
-      v = delta * c - d * gamma
-      w = b * delta - beta * d
-c
-      x0 = c * (y-alpha) - gamma * (x-a)
-      y0 = b * (y-alpha) - beta  * (x-a)
-c
-      a = v  * w
-      b = u  * u - w * x0 - v * y0
-      c = x0 * y0
-c
-      if( a .ne. 0 ) then
-c
-         delta = sqrt( b*b-4*a*c )
-         if( b .ge. 0.0 ) then
-            t(2) = -b - delta
-         else
-            t(2) = -b + delta
-         endif
-c        la racine de plus grande valeur absolue
-c       (elle donne le plus souvent le point exterieur au carre unite
-c        donc a tester en second pour reduire les calculs)
-         t(2) = t(2) / ( 2 * a )
-c        calcul de la seconde racine a partir de la somme => plus stable
-         t(1) = - b/a - t(2)
-c
-         do 10 i=1,2
-c
-c           la solution i donne t elle un point interne au carre unite?
-            xc = ( x0 - v * t(i) ) / u
-            yc = ( w * t(i) - y0 ) / u
-            if( 0.0 .le. xc .and. xc .le. 1.0 ) then
-               if( 0.0 .le. yc .and. yc .le. 1.0 ) goto 9000
-            endif
-c
-c           le point (xc,yc) n'est pas dans le carre unite
-c           cela peut etre du aux erreurs d'arrondi
-c           => choix par le minimum de la distance aux bords du carre
-            dist(i) = max( 0.0, -xc, xc-1.0, -yc, yc-1.0 )
-c
- 10      continue
-c
-         if( dist(1) .gt. dist(2) ) then
-c           f(xc,yc) pour la racine 2 est plus proche de x,y
-c           xc yc sont deja calcules
-            goto 9000
-         endif
-c
-      else if ( b .ne. 0 ) then
-         t(1) = - c / b
-      else
-         t(1) = 0
-      endif
-c
-c     les 2 coordonnees du point dans le carre unite
-      xc = ( x0 - v * t(1) ) / u
-      yc = ( w * t(1) - y0 ) / u
-c
- 9000 ierr = 0
-      return
-      end
-
-
-      subroutine ptdatr( point, pxyd, nosotr, nsigne )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    le point est il dans le triangle de sommets nosotr
-c -----
-c
-c entrees:
-c --------
-c point  : les 2 coordonnees du point
-c pxyd   : les 2 coordonnees et distance souhaitee des points du maillage
-c nosotr : le numero des 3 sommets du triangle
-c
-c sorties:
-c --------
-c nsigne : >0 si le point est dans le triangle ou sur une des 3 aretes
-c          =0 si le triangle est degenere ou indirect ou ne contient pas le poin
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c....................................................................012
-      integer           nosotr(3)
-      double precision  point(2), pxyd(3,*)
-      double precision  xp,yp, x1,x2,x3, y1,y2,y3, d,dd, cb1,cb2,cb3
-c
-      xp = point( 1 )
-      yp = point( 2 )
-c
-      n1 = nosotr( 1 )
-      x1 = pxyd( 1 , n1 )
-      y1 = pxyd( 2 , n1 )
-c
-      n2 = nosotr( 2 )
-      x2 = pxyd( 1 , n2 )
-      y2 = pxyd( 2 , n2 )
-c
-      n3 = nosotr( 3 )
-      x3 = pxyd( 1 , n3 )
-      y3 = pxyd( 2 , n3 )
-c
-c     2 fois la surface du triangle = determinant de la matrice
-c     de calcul des coordonnees barycentriques du point p
-      d  = ( x2 - x1 ) * ( y3 - y1 ) - ( x3 - x1 ) * ( y2 - y1 )
-c
-      if( d .gt. 0 ) then
-c
-c        triangle non degenere
-c        =====================
-c        calcul des 3 coordonnees barycentriques du
-c        point xp yp dans le triangle
-         cb1 = ( ( x2-xp ) * ( y3-yp ) - ( x3-xp ) * ( y2-yp ) ) / d
-         cb2 = ( ( x3-xp ) * ( y1-yp ) - ( x1-xp ) * ( y3-yp ) ) / d
-         cb3 = 1d0 - cb1 -cb2
-ccc         cb3 = ( ( x1-xp ) * ( y2-yp ) - ( x2-xp ) * ( y1-yp ) ) / d
-c
-ccc         if( cb1 .ge. -0.00005d0 .and. cb1 .le. 1.00005d0 .and.
-         if( cb1 .ge. 0d0 .and. cb1 .le. 1d0 .and.
-     %       cb2 .ge. 0d0 .and. cb2 .le. 1d0 .and.
-     %       cb3 .ge. 0d0 .and. cb3 .le. 1d0 ) then
-c
-c           le triangle nosotr contient le point
-            nsigne = 1
-         else
-            nsigne = 0
-         endif
-c
-      else
-c
-c        triangle degenere
-c        =================
-c        le point est il du meme cote que le sommet oppose de chaque arete?
-         nsigne = 0
-         do 10 i=1,3
-c           le sinus de l'angle p1 p2-p1 point
-            x1  = pxyd(1,n1)
-            y1  = pxyd(2,n1)
-            d   = ( pxyd(1,n2) - x1 ) * ( point(2) - y1 )
-     %          - ( pxyd(2,n2) - y1 ) * ( point(1) - x1 )
-            dd  = ( pxyd(1,n2) - x1 ) * ( pxyd(2,n3) - y1 )
-     %          - ( pxyd(2,n2) - y1 ) * ( pxyd(1,n3) - x1 )
-            cb1 = ( pxyd(1,n2) - x1 ) ** 2
-     %          + ( pxyd(2,n2) - y1 ) ** 2
-            cb2 = ( point(1) - x1 ) ** 2
-     %          + ( point(2) - y1 ) ** 2
-            cb3 = ( pxyd(1,n3) - x1 ) ** 2
-     %          + ( pxyd(2,n3) - y1 ) ** 2
-            if( abs( dd ) .le. 1e-4 * sqrt( cb1 * cb3 ) ) then
-c              le point 3 est sur l'arete 1-2
-c              le point doit y etre aussi
-               if( abs( d ) .le. 1e-4 * sqrt( cb1 * cb2 ) ) then
-c                 point sur l'arete
-                  nsigne = nsigne + 1
-               endif
-            else
-c              le point 3 n'est pas sur l'arete . test des signes
-               if( d * dd .ge. 0 ) then
-                  nsigne = nsigne + 1
-               endif
-            endif
-c           permutation circulaire des 3 sommets et aretes
-            n  = n1
-            n1 = n2
-            n2 = n3
-            n3 = n
- 10      continue
-         if( nsigne .ne. 3 ) nsigne = 0
-      endif
-      end
-
-      integer function nosstr( p, pxyd, nt, letree )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    calculer le numero 0 a 3 du sous-triangle te contenant
-c -----    le point p
-c
-c entrees:
-c --------
-c p      : point de r**2 contenu dans le te nt de letree
-c pxyd   : x y distance des points
-c nt     : numero letree du te de te voisin a calculer
-c letree : arbre-4 des triangles equilateraux (te) fond de la triangulation
-c      letree(0,0)  no du 1-er te vide dans letree
-c      letree(0,1) : maximum du 1-er indice de letree (ici 8)
-c      letree(0,2) : maximum declare du 2-eme indice de letree (ici mxtree)
-c      letree(0:8,1) : racine de l'arbre  (triangle sans sur triangle)
-c      si letree(0,.)>0 alors
-c         letree(0:3,j) : no (>0) letree des 4 sous-triangles du triangle j
-c      sinon
-c         letree(0:3,j) :-no pxyd des 1 \85a 4 points internes au triangle j
-c                         0  si pas de point
-c                       ( j est alors une feuille de l'arbre )
-c      letree(4,j) : no letree du sur-triangle du triangle j
-c      letree(5,j) : 0 1 2 3 no du sous-triangle j pour son sur-triangle
-c      letree(6:8,j) : no pxyd des 3 sommets du triangle j
-c
-c sorties :
-c ---------
-c nosstr : 0 si le sous-triangle central contient p
-c          i =1,2,3 numero du sous-triangle contenant p
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc    fevrier 1992
-c2345x7..............................................................012
-      integer           letree(0:8,0:*)
-      double precision  pxyd(3,*), p(2),
-     %                  x1, y1, x21, y21, x31, y31, d, xe, ye
-c
-c     le numero des 3 sommets du triangle
-      ns1 = letree( 6, nt )
-      ns2 = letree( 7, nt )
-      ns3 = letree( 8, nt )
-c
-c     les coordonnees entre 0 et 1 du point p
-      x1  = pxyd(1,ns1)
-      y1  = pxyd(2,ns1)
-c
-      x21 = pxyd(1,ns2) - x1
-      y21 = pxyd(2,ns2) - y1
-c
-      x31 = pxyd(1,ns3) - x1
-      y31 = pxyd(2,ns3) - y1
-c
-      d   = 1.0 / ( x21 * y31 - x31 * y21 )
-c
-      xe  = ( ( p(1) - x1 ) * y31 - ( p(2) - y1 ) * x31 ) * d
-      ye  = ( ( p(2) - y1 ) * x21 - ( p(1) - x1 ) * y21 ) * d
-c
-      if( xe .gt. 0.5d0 ) then
-c        sous-triangle droit
-         nosstr = 2
-      else if( ye .gt. 0.5d0 ) then
-c        sous-triangle haut
-         nosstr = 3
-      else if( xe+ye .lt. 0.5d0 ) then
-c        sous-triangle gauche
-         nosstr = 1
-      else
-c        sous-triangle central
-         nosstr = 0
-      endif
-      end
-
-
-      integer function notrpt( p, pxyd, notrde, letree )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    calculer le numero letree du sous-triangle feuille contenant
-c -----    le point p a partir du te notrde de letree
-c
-c entrees:
-c --------
-c p      : point de r**2 contenu dans le te nt de letree
-c pxyd   : x y distance des points
-c notrde : numero letree du triangle depart de recherche (1=>racine)
-c letree : arbre-4 des triangles equilateraux (te) fond de la triangulation
-c      letree(0,0)  no du 1-er te vide dans letree
-c      letree(0,1) : maximum du 1-er indice de letree (ici 8)
-c      letree(0,2) : maximum declare du 2-eme indice de letree (ici mxtree)
-c      letree(0:8,1) : racine de l'arbre  (triangle sans sur triangle)
-c      si letree(0,.)>0 alors
-c         letree(0:3,j) : no (>0) letree des 4 sous-triangles du triangle j
-c      sinon
-c         letree(0:3,j) :-no pxyd des 1 \85 4 points internes au triangle j
-c                         0  si pas de point
-c                        ( j est alors une feuille de l'arbre )
-c      letree(4,j) : no letree du sur-triangle du triangle j
-c      letree(5,j) : 0 1 2 3 no du sous-triangle j pour son sur-triangle
-c      letree(6:8,j) : no pxyd des 3 sommets du triangle j
-c
-c sorties :
-c ---------
-c notrpt : numero letree du triangle contenant le point p
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc    fevrier 1992
-c2345x7..............................................................012
-      integer           letree(0:8,0:*)
-      double precision  pxyd(1:3,*), p(2)
-c
-c     la racine depart de la recherche
-      notrpt = notrde
-c
-c     tant que la feuille n'est pas atteinte descendre l'arbre
- 10   if( letree(0,notrpt) .gt. 0 ) then
-c
-c        recherche du sous-triangle contenant p
-         nsot = nosstr( p, pxyd, notrpt, letree )
-c
-c        le numero letree du sous-triangle
-         notrpt = letree( nsot, notrpt )
-         goto 10
-c
-      endif
-      end
-
-
-      subroutine teajpt( ns,   nbsomm, mxsomm, pxyd, letree,
-     &                   ntrp, ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    ajout du point ns de pxyd dans letree
-c -----
-c
-c entrees:
-c --------
-c ns     : numero du point a ajouter dans letree
-c mxsomm : nombre maximal de points declarables dans pxyd
-c pxyd   : tableau des coordonnees des points
-c          par point : x  y  distance_souhaitee
-c
-c modifies :
-c ----------
-c nbsomm : nombre actuel de points dans pxyd
-c
-c letree : arbre-4 des triangles equilateraux (te) fond de la triangulation
-c      letree(0,0) : no du 1-er te vide dans letree
-c      letree(0,1) : maximum du 1-er indice de letree (ici 8)
-c      letree(0,2) : maximum declare du 2-eme indice de letree (ici mxtree)
-c      letree(0:8,1) : racine de l'arbre  (triangle sans sur triangle)
-c      si letree(0,.)>0 alors
-c         letree(0:3,j) : no (>0) letree des 4 sous-triangles du triangle j
-c      sinon
-c         letree(0:3,j) :-no pxyd des 1 \85a 4 points internes au triangle j
-c                         0  si pas de point
-c                        ( j est alors une feuille de l'arbre )
-c      letree(4,j) : no letree du sur-triangle du triangle j
-c      letree(5,j) : 0 1 2 3 no du sous-triangle j pour son sur-triangle
-c      letree(6:8,j) : no pxyd des 3 sommets du triangle j
-c
-c sorties :
-c ---------
-c ntrp    : numero letree du triangle te ou a ete ajoute le point
-c ierr    : 0 si pas d'erreur,  51 saturation letree, 52 saturation pxyd
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc    fevrier 1992
-c2345x7..............................................................012
-      integer           letree(0:8,0:*)
-      double precision  pxyd(3,mxsomm)
-c
-c     depart de la racine
-      ntrp = 1
-c
-c     recherche du triangle contenant le point pxyd(ns)
- 1    ntrp = notrpt( pxyd(1,ns), pxyd, ntrp, letree )
-c
-c     existe t il un point libre
-      do 10 i=0,3
-         if( letree(i,ntrp) .eq. 0 ) then
-c           la place i est libre
-            letree(i,ntrp) = -ns
-            return
-         endif
- 10   continue
-c
-c     pas de place libre => 4 sous-triangles sont crees
-c                           a partir des 3 milieux des aretes
-      call te4ste( nbsomm, mxsomm, pxyd, ntrp, letree, ierr )
-      if( ierr .ne. 0 ) return
-c
-c     ajout du point ns
-      goto 1
-      end
-
-      subroutine n1trva( nt, lar, letree, notrva, lhpile )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    calculer le numero letree du triangle voisin du te nt
-c -----    par l'arete lar (1 a 3 ) de nt
-c          attention : notrva n'est pas forcement minimal
-c
-c entrees:
-c --------
-c nt     : numero letree du te de te voisin a calculer
-c lar    : numero 1 a 3 de l'arete du triangle nt
-c letree : arbre-4 des triangles equilateraux (te) fond de la triangulation
-c   letree(0,0)  no du 1-er te vide dans letree
-c   letree(0,1) : maximum du 1-er indice de letree (ici 8)
-c   letree(0,2) : maximum declare du 2-eme indice de letree (ici mxtree)
-c   letree(0:8,1) : racine de l'arbre  (triangle sans sur-triangle)
-c   si letree(0,.)>0 alors
-c      letree(0:3,j) : no (>0) letree des 4 sous-triangles du triangle j
-c   sinon
-c      letree(0:3,j) :-no pxyd des 1 a 4 points internes au triangle j
-c                      0  si pas de point
-c                     ( j est alors une feuille de l'arbre )
-c   letree(4,j) : no letree du sur-triangle du triangle j
-c   letree(5,j) : 0 1 2 3 no du sous-triangle j pour son sur-triangle
-c   letree(6:8,j) : no pxyd des 3 sommets du triangle j
-c
-c sorties :
-c ---------
-c notrva  : >0 numero letree du te voisin par l'arete lar
-c           =0 si pas de te voisin (racine , ... )
-c lhpile  : =0 si nt et notrva ont meme taille
-c           >0 nt est 4**lhpile fois plus petit que notrva
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc    fevrier 1992
-c2345x7..............................................................012
-      integer   letree(0:8,0:*)
-      integer   lapile(1:64)
-c
-c     initialisation de la pile
-c     le triangle est empile
-      lapile(1) = nt
-      lhpile = 1
-c
-c     tant qu'il existe un sur-triangle
- 10   ntr  = lapile( lhpile )
-      if( ntr .eq. 1 ) then
-c        racine atteinte => pas de triangle voisin
-         notrva = 0
-         lhpile = lhpile - 1
-         return
-      endif
-c
-c     le type du triangle ntr
-      nty  = letree( 5, ntr )
-c     l'eventuel sur-triangle
-      nsut = letree( 4, ntr )
-c
-      if( nty .eq. 0 ) then
-c
-c        triangle de type 0 => triangle voisin de type precedent(lar)
-c                              dans le sur-triangle de ntr
-c                              ce triangle remplace ntr dans lapile
-         lapile( lhpile ) = letree( nopre3(lar), nsut )
-         goto 20
-      endif
-c
-c     triangle ntr de type nty>0
-      if( nosui3(nty) .eq. lar ) then
-c
-c        le triangle voisin par lar est le triangle 0
-         lapile( lhpile ) = letree( 0, nsut )
-         goto 20
-      endif
-c
-c     triangle sans voisin direct => passage par le sur-triangle
-      if( nsut .eq. 0 ) then
-c
-c        ntr est la racine => pas de triangle voisin par cette arete
-         notrva = 0
-         return
-      else
-c
-c        le sur-triangle est empile
-         lhpile = lhpile + 1
-         lapile(lhpile) = nsut
-         goto 10
-      endif
-c
-c     descente aux sous-triangles selon la meme arete
- 20   notrva = lapile( lhpile )
-c
- 30   lhpile = lhpile - 1
-      if( letree(0,notrva) .le. 0 ) then
-c        le triangle est une feuille de l'arbre 0 sous-triangle
-c        lhpile = nombre de differences de niveaux dans l'arbre
-         return
-      else
-c        le triangle a 4 sous-triangles
-         if( lhpile .gt. 0 ) then
-c
-c           bas de pile non atteint
-            nty  = letree( 5, lapile(lhpile) )
-            if( nty .eq. lar ) then
-c              l'oppose est suivant(nty) de notrva
-               notrva = letree( nosui3(nty) , notrva )
-            else
-c              l'oppose est precedent(nty) de notrva
-               notrva = letree( nopre3(nty) , notrva )
-            endif
-            goto 30
-         endif
-      endif
-c
-c     meme niveau dans l'arbre lhpile = 0
-      end
-
-
-      subroutine cenced( xy1, xy2, xy3, cetria, ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but : calcul des coordonnees du centre du cercle circonscrit
-c ----- du triangle defini par ses 3 sommets de coordonnees
-c       xy1 xy2 xy3 ainsi que le carre du rayon de ce cercle
-c
-c entrees :
-c ---------
-c xy1 xy2 xy3 : les 2 coordonnees des 3 sommets du triangle
-c ierr   : <0  => pas d'affichage si triangle degenere
-c          >=0 =>       affichage si triangle degenere
-c
-c sortie :
-c --------
-c cetria : cetria(1)=abcisse  du centre
-c          cetria(2)=ordonnee du centre
-c          cetria(3)=carre du rayon   1d28 si triangle degenere
-c ierr   : 0 si triangle non degenere
-c          1 si triangle degenere
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : perronnet alain upmc analyse numerique paris        juin 1995
-c2345x7..............................................................012
-      parameter        (epsurf=1d-7)
-      common / unites / lecteu,imprim,nunite(30)
-      double precision  x1,y1,x21,y21,x31,y31,
-     %                  aire2,xc,yc,rot,
-     %                  xy1(2),xy2(2),xy3(2),cetria(3)
-c
-c     le calcul de 2 fois l'aire du triangle
-c     attention l'ordre des 3 sommets est direct ou non
-      x1  = xy1(1)
-      x21 = xy2(1) - x1
-      x31 = xy3(1) - x1
-c
-      y1  = xy1(2)
-      y21 = xy2(2) - y1
-      y31 = xy3(2) - y1
-c
-      aire2  = x21 * y31 - x31 * y21
-c
-c     recherche d'un test relatif peu couteux
-c     pour reperer la degenerescence du triangle
-      if( abs(aire2) .le.
-     %    epsurf*(abs(x21)+abs(x31))*(abs(y21)+abs(y31)) ) then
-c        triangle de qualite trop faible
-         if( ierr .ge. 0 ) then
-c            nblgrc(nrerr) = 1
-c            kerr(1) = 'erreur cenced: triangle degenere'
-c            call lereur
-            write(imprim,*) 'erreur cenced: triangle degenere'
-            write(imprim,10000)  xy1,xy2,xy3,aire2
-         endif
-10000 format( 3(' x=',g24.16,' y=',g24.16/),' aire*2=',g24.16)
-         cetria(1) = 0d0
-         cetria(2) = 0d0
-         cetria(3) = 1d28
-         ierr = 1
-         return
-      endif
-c
-c     les 2 coordonnees du centre intersection des 2 mediatrices
-c     x = (x1+x2)/2 + lambda * (y2-y1)
-c     y = (y1+y2)/2 - lambda * (x2-x1)
-c     x = (x1+x3)/2 + rot    * (y3-y1)
-c     y = (y1+y3)/2 - rot    * (x3-x1)
-c     ==========================================================
-      rot = ((xy2(1)-xy3(1))*x21 + (xy2(2)-xy3(2))*y21) / (2 * aire2)
-c
-      xc = ( x1 + xy3(1) ) * 0.5d0 + rot * y31
-      yc = ( y1 + xy3(2) ) * 0.5d0 - rot * x31
-c
-      cetria(1) = xc
-      cetria(2) = yc
-c
-c     le carre du rayon
-      cetria(3) = (x1-xc) ** 2 + (y1-yc) ** 2
-c
-c     pas d'erreur rencontree
-      ierr = 0
-      end
-
-
-      double precision function angled( p1, p2, p3 )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :   calculer l'angle (p1p2,p1p3) en radians
-c -----
-c
-c entrees :
-c ---------
-c p1,p2,p3 : les 2 coordonnees des 3 sommets de l'angle
-c               sens direct pour une surface >0
-c sorties :
-c ---------
-c angled :  angle (p1p2,p1p3) en radians entre [0 et 2pi]
-c           0 si p1=p2 ou p1=p3
-c ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet analyse numerique upmc paris     fevrier 1992
-c2345x7..............................................................012
-      double precision  p1(2),p2(2),p3(2),x21,y21,x31,y31,a1,a2,d,c
-c
-c     les cotes
-      x21 = p2(1) - p1(1)
-      y21 = p2(2) - p1(2)
-      x31 = p3(1) - p1(1)
-      y31 = p3(2) - p1(2)
-c
-c     longueur des cotes
-      a1 = x21 * x21 + y21 * y21
-      a2 = x31 * x31 + y31 * y31
-      d  = sqrt( a1 * a2 )
-      if( d .eq. 0 ) then
-         angled = 0
-         return
-      endif
-c
-c     cosinus de l'angle
-      c  = ( x21 * x31 + y21 * y31 ) / d
-      if( c .le. -1.d0 ) then
-c        tilt sur apollo si acos( -1 -eps )
-         angled = atan( 1.d0 ) * 4.d0
-         return
-      else if( c .ge. 1.d0 ) then
-c        tilt sur apollo si acos( 1 + eps )
-         angled = 0
-         return
-      endif
-c
-      angled = acos( c )
-      if( x21 * y31 - x31 * y21 .lt. 0 ) then
-c        demi plan inferieur
-         angled = 8.d0 * atan( 1.d0 ) - angled
-      endif
-      end
-
-
-      subroutine teajte( mxsomm, nbsomm, pxyd,   comxmi,
-     %                   aretmx, mxtree, letree,
-     %                   ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    initialisation des tableaux letree
-c -----    ajout des sommets 1 a nbsomm (valeur en entree) dans letree
-c
-c entrees:
-c --------
-c mxsomm : nombre maximal de sommets permis pour la triangulation
-c mxtree : nombre maximal de triangles equilateraux (te) declarables
-c aretmx : longueur maximale des aretes des triangles equilateraux
-c
-c entrees et sorties :
-c --------------------
-c nbsomm : nombre de sommets apres identification
-c pxyd   : tableau des coordonnees 2d des points
-c          par point : x  y  distance_souhaitee
-c          tableau reel(3,mxsomm)
-c
-c sorties:
-c --------
-c comxmi : coordonnees minimales et maximales des points frontaliers
-c letree : arbre-4 des triangles equilateraux (te) fond de la triangulation
-c          letree(0,0) : no du 1-er te vide dans letree
-c          letree(0,1) : maximum du 1-er indice de letree (ici 8)
-c          letree(0,2) : maximum declare du 2-eme indice de letree (ici mxtree)
-c          letree(0:8,1) : racine de l'arbre  (triangle sans sur triangle)
-c          si letree(0,.)>0 alors
-c             letree(0:3,j) : no (>0) letree des 4 sous-triangles du triangle j
-c          sinon
-c             letree(0:3,j) :-no pxyd des 1 a 4 points internes au triangle j
-c                             0  si pas de point
-c                             ( j est alors une feuille de l'arbre )
-c          letree(4,j) : no letree du sur-triangle du triangle j
-c          letree(5,j) : 0 1 2 3 no du sous-triangle j pour son sur-triangle
-c          letree(6:8,j) : no pxyd des 3 sommets du triangle j
-c
-c ierr   :  0 si pas d'erreur
-c          51 saturation letree
-c          52 saturation pxyd
-c           7 tous les points sont alignes
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc    juillet 1994
-c....................................................................012
-      integer           letree(0:8,0:mxtree)
-      double precision  pxyd(3,mxsomm)
-      double precision  comxmi(3,2)
-      double precision  a(2),s,aretmx,rac3
-c
-c     protection du nombre de sommets avant d'ajouter ceux de tetree
-      nbsofr = nbsomm
-      do 1 i = 1, nbsomm 
-         comxmi(1,1) = min( comxmi(1,1), pxyd(1,i) )
-         comxmi(1,2) = max( comxmi(1,2), pxyd(1,i) )
-         comxmi(2,1) = min( comxmi(2,1), pxyd(2,i) )
-         comxmi(2,2) = max( comxmi(2,2), pxyd(2,i) )
- 1    continue
-c
-c     creation de l'arbre tee
-c     =======================
-c     la premiere colonne vide de letree
-      letree(0,0) = 2
-c     chainage des te vides
-      do 4 i = 2 , mxtree
-         letree(0,i) = i+1
- 4    continue
-      letree(0,mxtree) = 0
-c     les maxima des 2 indices de letree
-      letree(1,0) = 8
-      letree(2,0) = mxtree
-c
-c     la racine
-c     aucun point interne au triangle equilateral (te) 1
-      letree(0,1) = 0
-      letree(1,1) = 0
-      letree(2,1) = 0
-      letree(3,1) = 0
-c     pas de sur-triangle
-      letree(4,1) = 0
-      letree(5,1) = 0
-c     le numero pxyd des 3 sommets du te 1
-      letree(6,1) = nbsomm + 1
-      letree(7,1) = nbsomm + 2
-      letree(8,1) = nbsomm + 3
-c
-c     calcul de la largeur et hauteur du rectangle englobant
-c     ======================================================
-      a(1) = comxmi(1,2) - comxmi(1,1)
-      a(2) = comxmi(2,2) - comxmi(2,1)
-c     la longueur de la diagonale
-      s = sqrt( a(1)**2 + a(2)**2 )
-      do 60 k=1,2
-         if( a(k) .lt. 1e-4 * s ) then
-c            nblgrc(nrerr) = 1
-            write(imprim,*) 'tous les points sont alignes'
-c            call lereur
-            ierr = 7
-            return
-         endif
- 60   continue
-c
-c     le maximum des ecarts
-      s = s + s
-c
-c     le triangle equilateral englobant
-c     =================================
-c     ecart du rectangle au triangle equilateral
-      rac3 = sqrt( 3.0d0 )
-      arete = a(1) + 2 * aretmx + 2 * ( a(2) + aretmx ) / rac3
-c
-c     le point nbsomm + 1 en bas a gauche
-      nbsomm = nbsomm + 1
-      pxyd(1,nbsomm) = (comxmi(1,1)+comxmi(1,2))*0.5d0 - arete*0.5d0
-      pxyd(2,nbsomm) =  comxmi(2,1) - aretmx
-      pxyd(3,nbsomm) = s
-c
-c     le point nbsomm + 2 en bas a droite
-      nbsomm = nbsomm + 1
-      pxyd(1,nbsomm) = pxyd(1,nbsomm-1) + arete
-      pxyd(2,nbsomm) = pxyd(2,nbsomm-1)
-      pxyd(3,nbsomm) = s
-c
-c     le point nbsomm + 3 sommet au dessus
-      nbsomm = nbsomm + 1
-      pxyd(1,nbsomm) = pxyd(1,nbsomm-2) + arete * 0.5d0
-      pxyd(2,nbsomm) = pxyd(2,nbsomm-2) + arete * 0.5d0 * rac3
-      pxyd(3,nbsomm) = s
-c
-c     ajout des sommets des lignes pour former letree
-c     ===============================================
-      do 150 i=1,nbsofr
-c        ajout du point i de pxyd a letree
-         call teajpt(  i, nbsomm, mxsomm, pxyd, letree,
-     &                nt, ierr )
-         if( ierr .ne. 0 ) return
- 150  continue
-c
-      return
-      end
-
-
-      subroutine tetaid( nutysu, dx, dy, longai, ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :     calculer la longueur de l'arete ideale en dx,dy
-c -----
-c
-c entrees:
-c --------
-c nutysu : numero de traitement de areteideale() selon le type de surface
-c          0 pas d'emploi de la fonction areteideale() => aretmx active
-c          1 il existe une fonction areteideale(xyz,xyzdir)
-c          ... autres options a definir ...
-c dx, dy : abscisse et ordonnee dans le plan du point (reel2!)
-c
-c sorties:
-c --------
-c longai : longueur de l'areteideale(xyz,xyzdir) autour du point xyz
-c ierr   : 0 si pas d'erreur, <>0 sinon
-c          1 calcul incorrect de areteideale(xyz,xyzdir)
-c          2 longueur calculee nulle
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c2345x7..............................................................012
-      common / unites / lecteu, imprim, nunite(30)
-c
-      double precision  areteideale
-      double precision  dx, dy, longai
-      double precision  xyz(3), xyzd(3), d0
-c
-      ierr = 0
-      if( nutysu .gt. 0 ) then
-         d0 = longai
-c        le point ou se calcule la longueur
-         xyz(1) = dx
-         xyz(2) = dy
-c        z pour le calcul de la longueur (inactif ici!)
-         xyz(3) = 0d0
-c        la direction pour le calcul de la longueur (inactif ici!)
-         xyzd(1) = 0d0
-         xyzd(2) = 0d0
-         xyzd(3) = 0d0
-
-         longai = areteideale(xyz,xyzd)
-         if( longai .lt. 0d0 ) then
-            write(imprim,10000) xyz
-10000       format('attention: longueur de areteideale(',
-     %              g14.6,',',g14.6,',',g14.6,')<=0! => rendue >0' )
-            longai = -longai
-         endif
-         if( longai .eq. 0d0 ) then
-            write(imprim,10001) xyz
-10001       format('erreur: longueur de areteideale(',
-     %              g14.6,',',g14.6,',',g14.6,')=0!' )
-            ierr = 2
-            longai = d0
-         endif
-      endif
-      end
-
-
-      subroutine tehote( nutysu,
-     %                   nbarpi, mxsomm, nbsomm, pxyd,
-     %                   comxmi, aretmx,
-     %                   letree, mxqueu, laqueu,
-     %                   ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :     homogeneisation de l'arbre des te a un saut de taille au plus
-c -----     prise en compte des distances souhaitees autour des sommets initiaux
-c
-c entrees:
-c --------
-c nutysu : numero de traitement de areteideale() selon le type de surface
-c          0 pas d'emploi de la fonction areteideale() => aretmx active
-c          1 il existe une fonction areteideale()
-c            dont seules les 2 premieres composantes de uv sont actives
-c          autres options a definir...
-c nbarpi : nombre de sommets de la frontiere + nombre de points internes
-c          imposes par l'utilisateur
-c mxsomm : nombre maximal de sommets permis pour la triangulation  et te
-c mxqueu : nombre d'entiers utilisables dans laqueu
-c comxmi : minimum et maximum des coordonnees de l'objet
-c aretmx : longueur maximale des aretes des triangles equilateraux
-c permtr : perimetre de la ligne enveloppe dans le plan
-c          avant mise a l'echelle a 2**20
-c
-c modifies :
-c ----------
-c nbsomm : nombre de sommets apres identification
-c pxyd   : tableau des coordonnees 2d des points
-c          par point : x  y  distance_souhaitee
-c letree : arbre-4 des triangles equilateraux (te) fond de la triangulation
-c          letree(0,0) : no du 1-er te vide dans letree
-c          letree(1,0) : maximum du 1-er indice de letree (ici 8)
-c          letree(2,0) : maximum declare du 2-eme indice de letree (ici mxtree)
-c          letree(0:8,1) : racine de l'arbre  (triangle sans sur triangle)
-c          si letree(0,.)>0 alors
-c             letree(0:3,j) : no (>0) letree des 4 sous-triangles du triangle j
-c          sinon
-c             letree(0:3,j) :-no pxyd des 1 a 4 points internes au triangle j
-c                             0  si pas de point
-c                             ( j est alors une feuille de l'arbre )
-c          letree(4,j) : no letree du sur-triangle du triangle j
-c          letree(5,j) : 0 1 2 3 no du sous-triangle j pour son sur-triangle
-c          letree(6:8,j) : no pxyd des 3 sommets du triangle j
-c
-c auxiliaire :
-c ------------
-c laqueu : mxqueu entiers servant de queue pour le parcours de letree
-c
-c sorties:
-c --------
-c ierr   :  0 si pas d'erreur
-c          51 si saturation letree dans te4ste
-c          52 si saturation pxyd   dans te4ste
-c          >0 si autre erreur
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc      avril 1997
-c2345x7..............................................................012
-      double precision  ampli
-      parameter        (ampli=1.34d0)
-      common / unites / lecteu, imprim, intera, nunite(29)
-c
-      double precision  pxyd(3,mxsomm), d2, aretm2
-      double precision  comxmi(3,2),aretmx,a,s,xrmin,xrmax,yrmin,yrmax
-      double precision  dmin, dmax
-      integer           letree(0:8,0:*)
-c
-      integer           laqueu(1:mxqueu),lequeu
-c                       lequeu : entree dans la queue
-c                       lhqueu : longueur de la queue
-c                       gestion circulaire
-c
-      integer           nuste(3)
-      equivalence      (nuste(1),ns1),(nuste(2),ns2),(nuste(3),ns3)
-c
-c     existence ou non de la fonction 'taille_ideale' des aretes
-c     autour du point.  ici la carte est supposee isotrope
-c     ==========================================================
-c     attention: si la fonction taille_ideale existe
-c                alors pxyd(3,*) est la taille_ideale dans l'espace initial
-c                sinon pxyd(3,*) est la distance calculee dans le plan par
-c                propagation a partir des tailles des aretes de la frontiere
-c
-      if( nutysu .gt. 0 ) then
-c
-c        la fonction taille_ideale(x,y,z) existe
-c        ---------------------------------------
-c        initialisation de la distance souhaitee autour des points 1 a nbsomm
-         do 1 i=1,nbsomm
-c           calcul de pxyzd(3,i)
-            call tetaid( nutysu, pxyd(1,i), pxyd(2,i),
-     %                   pxyd(3,i), ierr )
-            if( ierr .ne. 0 ) goto 9999
- 1       continue
-c
-      else
-c
-c        la fonction taille_ideale(x,y,z) n'existe pas
-c        ---------------------------------------------
-c        prise en compte des distances souhaitees dans le plan
-c        autour des points frontaliers et des points internes imposes
-c        toutes les autres distances souhaitees ont ete mis a aretmx
-c        lors de l'execution du sp teqini
-         do 3 i=1,nbarpi
-c           le sommet i n'est pas un sommet de letree => sommet frontalier
-c           recherche du sous-triangle minimal feuille contenant le point i
-            nte = 1
- 2          nte = notrpt( pxyd(1,i), pxyd, nte, letree )
-c           la distance au sommet le plus eloigne est elle inferieure
-c           a la distance souhaitee?
-            ns1 = letree(6,nte)
-            ns2 = letree(7,nte)
-            ns3 = letree(8,nte)
-            d2  = max( ( pxyd(1,i)-pxyd(1,ns1) )**2 +
-     %                 ( pxyd(2,i)-pxyd(2,ns1) )**2
-     %               , ( pxyd(1,i)-pxyd(1,ns2) )**2 +
-     %                 ( pxyd(2,i)-pxyd(2,ns2) )**2
-     %               , ( pxyd(1,i)-pxyd(1,ns3) )**2 +
-     %                 ( pxyd(2,i)-pxyd(2,ns3) )**2 )
-            if( d2 .gt. pxyd(3,i)**2 ) then
-c              le triangle nte trop grand doit etre subdivise en 4 sous-triangle
-               call te4ste( nbsomm, mxsomm, pxyd, nte, letree,
-     &                      ierr )
-               if( ierr .ne. 0 ) return
-               goto 2
-            endif
- 3       continue
-      endif
-c
-c     le sous-triangle central de la racine est decoupe systematiquement
-c     ==================================================================
-      nte = 2
-      if( letree(0,2) .le. 0 ) then
-c        le sous-triangle central de la racine n'est pas subdivise
-c        il est donc decoupe en 4 soustriangles
-         nbsom0 = nbsomm
-         call te4ste( nbsomm, mxsomm, pxyd, nte, letree,
-     %                ierr )
-         if( ierr .ne. 0 ) return
-         do 4 i=nbsom0+1,nbsomm
-c           mise a jour de taille_ideale des nouveaux sommets de te
-            call tetaid( nutysu, pxyd(1,i), pxyd(2,i), pxyd(3,i), ierr )
-            if( ierr .ne. 0 ) goto 9999
- 4       continue
-      endif
-c
-c     le carre de la longueur de l'arete de triangles equilateraux
-c     souhaitee pour le fond de la triangulation
-      aretm2 = (aretmx*ampli) ** 2
-c
-c     tout te contenu dans le rectangle englobant doit avoir un
-c     cote < aretmx et etre de meme taille que les te voisins
-c     s'il contient un point; sinon un seul saut de taille est permis
-c     ===============================================================
-c     le rectangle englobant pour selectionner les te "internes"
-c     le numero des 3 sommets du te englobant racine de l'arbre des te
-      ns1 = letree(6,1)
-      ns2 = letree(7,1)
-      ns3 = letree(8,1)
-      a   = aretmx * 0.01d0
-c     abscisse du milieu de l'arete gauche du te 1
-      s      = ( pxyd(1,ns1) + pxyd(1,ns3) ) / 2
-      xrmin  = min( s, comxmi(1,1) - aretmx ) - a
-c     abscisse du milieu de l'arete droite du te 1
-      s      = ( pxyd(1,ns2) + pxyd(1,ns3) ) / 2
-      xrmax  = max( s, comxmi(1,2) + aretmx ) + a
-      yrmin  = comxmi(2,1) - aretmx
-c     ordonnee de la droite passant par les milieus des 2 aretes
-c     droite gauche du te 1
-      s      = ( pxyd(2,ns1) + pxyd(2,ns3) ) / 2
-      yrmax  = max( s, comxmi(2,2) + aretmx ) + a
-c
-c     cas particulier de 3 ou 4 ou peu d'aretes frontalieres
-      if( nbarpi .le. 8 ) then
-c        tout le triangle englobant (racine) est a prendre en compte
-         xrmin = pxyd(1,ns1) - a
-         xrmax = pxyd(1,ns2) + a
-         yrmin = pxyd(2,ns1) - a
-         yrmax = pxyd(2,ns3) + a
-      endif
-c
-      nbs0   = nbsomm
-      nbiter = -1
-c
-c     initialisation de la queue
-  5   nbiter = nbiter + 1
-      lequeu = 1
-      lhqueu = 0
-c     la racine de letree initialise la queue
-      laqueu(1) = 1
-c
-c     tant que la longueur de la queue est >=0 traiter le debut de queue
- 10   if( lhqueu .ge. 0 ) then
-c
-c        le triangle te a traiter
-         i   = lequeu - lhqueu
-         if( i .le. 0 ) i = mxqueu + i
-         nte = laqueu( i )
-c        la longueur de la queue est reduite
-         lhqueu = lhqueu - 1
-c
-c        nte est il un sous-triangle feuille minimal ?
- 15      if( letree(0,nte) .gt. 0 ) then
-c
-c           non les 4 sous-triangles sont mis dans la queue
-            if( lhqueu + 4 .ge. mxqueu ) then
-               write(imprim,*) 'tehote: saturation de la queue'
-               ierr = 7
-               return
-            endif
-            do 20 i=3,0,-1
-c              ajout du sous-triangle i
-               lhqueu = lhqueu + 1
-               lequeu = lequeu + 1
-               if( lequeu .gt. mxqueu ) lequeu = lequeu - mxqueu
-               laqueu( lequeu ) = letree( i, nte )
- 20         continue
-            goto 10
-c
-         endif
-c
-c        ici nte est un triangle minimal non subdivise
-c        ---------------------------------------------
-c        le te est il dans le cadre englobant de l'objet ?
-         ns1 = letree(6,nte)
-         ns2 = letree(7,nte)
-         ns3 = letree(8,nte)
-         if( pxyd(1,ns1) .gt. pxyd(1,ns2) ) then
-            dmin = pxyd(1,ns2)
-            dmax = pxyd(1,ns1)
-         else
-            dmin = pxyd(1,ns1)
-            dmax = pxyd(1,ns2)
-         endif
-         if( (xrmin .le. dmin .and. dmin .le. xrmax) .or.
-     %       (xrmin .le. dmax .and. dmax .le. xrmax) ) then
-            if( pxyd(2,ns1) .gt. pxyd(2,ns3) ) then
-               dmin = pxyd(2,ns3)
-               dmax = pxyd(2,ns1)
-            else
-               dmin = pxyd(2,ns1)
-               dmax = pxyd(2,ns3)
-            endif
-            if( (yrmin .le. dmin .and. dmin .le. yrmax) .or.
-     %          (yrmin .le. dmax .and. dmax .le. yrmax) ) then
-c
-c              nte est un te feuille et interne au rectangle englobant
-c              =======================================================
-c              le carre de la longueur de l'arete du te de numero nte
-               d2 = (pxyd(1,ns1)-pxyd(1,ns2)) ** 2 +
-     %              (pxyd(2,ns1)-pxyd(2,ns2)) ** 2
-c
-               if( nutysu .eq. 0 ) then
-c
-c                 il n'existe pas de fonction 'taille_ideale'
-c                 -------------------------------------------
-c                 si la taille effective de l'arete du te est superieure a aretmx
-c                 alors le te est decoupe
-                  if( d2 .gt. aretm2 ) then
-c                    le triangle nte trop grand doit etre subdivise
-c                    en 4 sous-triangles
-                     call te4ste( nbsomm,mxsomm, pxyd,
-     %                            nte, letree, ierr )
-                     if( ierr .ne. 0 ) return
-                     goto 15
-                  endif
-c
-               else
-c
-c                 il existe ici une fonction 'taille_ideale'
-c                 ------------------------------------------
-c                 si la taille effective de l'arete du te est superieure au mini
-c                 des 3 tailles_ideales aux sommets  alors le te est decoupe
-                  do 28 i=1,3
-                     if( d2 .gt. (pxyd(3,nuste(i))*ampli)**2 ) then
-c                       le triangle nte trop grand doit etre subdivise
-c                       en 4 sous-triangles
-                        nbsom0 = nbsomm
-                        call te4ste( nbsomm, mxsomm, pxyd,
-     &                               nte, letree, ierr )
-                        if( ierr .ne. 0 ) return
-                        do 27 j=nbsom0+1,nbsomm
-c                          mise a jour de taille_ideale des nouveaux sommets de
-                           call tetaid( nutysu, pxyd(1,j), pxyd(2,j),
-     %                                  pxyd(3,j), ierr )
-                           if( ierr .ne. 0 ) goto 9999
- 27                     continue
-                        goto 15
-                     endif
- 28               continue
-               endif
-c
-c              recherche du nombre de niveaux entre nte et les te voisins par se
-c              si la difference de subdivisions excede 1 alors le plus grand des
-c              =================================================================
- 29            do 30 i=1,3
-c
-c                 noteva triangle voisin de nte par l'arete i
-                  call n1trva( nte, i, letree, noteva, niveau )
-                  if( noteva .le. 0 ) goto 30
-c                 il existe un te voisin
-                  if( niveau .gt. 0 ) goto 30
-c                 nte a un te voisin plus petit ou egal
-                  if( letree(0,noteva) .le. 0 ) goto 30
-c                 nte a un te voisin noteva subdivise au moins une fois
-c
-                  if( nbiter .gt. 0 ) then
-c                    les 2 sous triangles voisins sont-ils subdivises?
-                     ns2 = letree(i,noteva)
-                     if( letree(0,ns2) .le. 0 ) then
-c                       ns2 n'est pas subdivise
-                        ns2 = letree(nosui3(i),noteva)
-                        if( letree(0,ns2) .le. 0 ) then
-c                          les 2 sous-triangles ne sont pas subdivises
-                           goto 30
-                        endif
-                     endif
-                  endif
-c
-c                 saut>1 => le triangle nte doit etre subdivise en 4 sous-triang
-c                 --------------------------------------------------------------
-                  nbsom0 = nbsomm
-                  call te4ste( nbsomm,mxsomm, pxyd, nte, letree,
-     &                         ierr )
-                  if( ierr .ne. 0 ) return
-                  if( nutysu .gt. 0 ) then
-                     do 32 j=nbsom0+1,nbsomm
-c                       mise a jour de taille_ideale des nouveaux sommets de te
-                        call tetaid( nutysu, pxyd(1,j), pxyd(2,j),
-     %                               pxyd(3,j), ierr )
-                        if( ierr .ne. 0 ) goto 9999
- 32                  continue
-                  endif
-                  goto 15
-c
- 30            continue
-            endif
-         endif
-         goto 10
-      endif
-      if( nbs0 .lt. nbsomm ) then
-         nbs0 = nbsomm
-         goto 5
-      endif
-      return
-c
-c     pb dans le calcul de la fonction taille_ideale
-
- 9999 write(imprim,*) 'pb dans le calcul de taille_ideale'
-c      nblgrc(nrerr) = 1
-c      kerr(1) = 'pb dans le calcul de taille_ideale'
-c      call lereur
-      return
-      end
-
-
-      subroutine tetrte( comxmi, aretmx, nbarpi, mxsomm, pxyd,
-     %                   mxqueu, laqueu, letree,
-     %                   mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, mxartr, n1artr, noartr, noarst,
-     %                   ierr  )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    trianguler les triangles equilateraux feuilles et
-c -----    les points de la frontiere et les points internes imposes
-c
-c attention: la triangulation finale n'est pas de type delaunay!
-c
-c entrees:
-c --------
-c comxmi : minimum et maximum des coordonnees de l'objet
-c aretmx : longueur maximale des aretes des triangles equilateraux
-c nbarpi : nombre de sommets de la frontiere + nombre de points internes
-c          imposes par l'utilisateur
-c mxsomm : nombre maximal de sommets declarables dans pxyd
-c pxyd   : tableau des coordonnees 2d des points
-c          par point : x  y  distance_souhaitee
-c
-c mxqueu : nombre d'entiers utilisables dans laqueu
-c mosoar : nombre maximal d'entiers par arete du tableau nosoar
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxartr : nombre maximal de triangles stockables dans le tableau noartr
-c letree : arbre-4 des triangles equilateraux (te) fond de la triangulation
-c          letree(0,0) : no du 1-er te vide dans letree
-c          letree(0,1) : maximum du 1-er indice de letree (ici 8)
-c          letree(0,2) : maximum declare du 2-eme indice de letree (ici mxtree)
-c          letree(0:8,1) : racine de l'arbre  (triangle sans sur triangle)
-c          si letree(0,.)>0 alors
-c             letree(0:3,j) : no (>0) letree des 4 sous-triangles du triangle j
-c          sinon
-c             letree(0:3,j) :-no pxyd des 1 a 4 points internes au triangle j
-c                             0  si pas de point
-c                             ( j est alors une feuille de l'arbre )
-c          letree(4,j) : no letree du sur-triangle du triangle j
-c          letree(5,j) : 0 1 2 3 no du sous-triangle j pour son sur-triangle
-c          letree(6:8,j) : no pxyd des 3 sommets du triangle j
-c
-c modifies:
-c ---------
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c          une arete i de nosoar est vide  <=>  nosoar(1,i)=0
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = nosoar(1)+nosoar(2)*2
-c noarst : noarst(i) numero d'une arete de sommet i
-c
-c auxiliaire :
-c ------------
-c laqueu : mxqueu entiers servant de queue pour le parcours de letree
-c
-c sorties:
-c --------
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c ierr   : =0 si pas d'erreur
-c          =1 si le tableau nosoar est sature
-c          =2 si le tableau noartr est sature
-c          =3 si aucun des triangles ne contient l'un des points internes d'un t
-c          =5 si saturation de la queue de parcours de l'arbre des te
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c2345x7..............................................................012
-      common / unites / lecteu, imprim, intera, nunite(29)
-c
-      double precision  pxyd(3,mxsomm)
-      double precision  comxmi(3,2),aretmx,a,s,xrmin,xrmax,yrmin,yrmax
-      double precision  dmin, dmax
-c
-      integer           nosoar(mosoar,mxsoar),
-     %                  noartr(moartr,mxartr),
-     %                  noarst(mxsomm)
-c
-      integer           letree(0:8,0:*)
-      integer           laqueu(1:mxqueu)
-c                       lequeu:entree dans la queue en gestion circulaire
-c                       lhqueu:longueur de la queue en gestion circulaire
-c
-      integer           milieu(3), nutr(1:13)
-c
-c     le rectangle englobant pour selectionner les te "internes"
-c     le numero des 3 sommets du te englobant racine de l'arbre des te
-      ns1 = letree(6,1)
-      ns2 = letree(7,1)
-      ns3 = letree(8,1)
-      a   = aretmx * 0.01d0
-c     abscisse du milieu de l'arete gauche du te 1
-      s      = ( pxyd(1,ns1) + pxyd(1,ns3) ) / 2
-      xrmin  = min( s, comxmi(1,1) - aretmx ) - a
-c     abscisse du milieu de l'arete droite du te 1
-      s      = ( pxyd(1,ns2) + pxyd(1,ns3) ) / 2
-      xrmax  = max( s, comxmi(1,2) + aretmx ) + a
-      yrmin  = comxmi(2,1) - aretmx
-c     ordonnee de la droite passant par les milieus des 2 aretes
-c     droite gauche du te 1
-      s      = ( pxyd(2,ns1) + pxyd(2,ns3) ) / 2
-      yrmax  = max( s, comxmi(2,2) + aretmx ) + a
-c
-c     cas particulier de 3 ou 4 ou peu d'aretes frontalieres
-      if( nbarpi .le. 8 ) then
-c        tout le triangle englobant (racine) est a prendre en compte
-         xrmin = pxyd(1,ns1) - a
-         xrmax = pxyd(1,ns2) + a
-         yrmin = pxyd(2,ns1) - a
-         yrmax = pxyd(2,ns3) + a
-      endif
-c
-c     initialisation du tableau noartr
-      do 5 i=1,mxartr
-c        le numero de l'arete est inconnu
-         noartr(1,i) = 0
-c        le chainage sur le triangle vide suivant
-         noartr(2,i) = i+1
- 5    continue
-      noartr(2,mxartr) = 0
-      n1artr = 1
-c
-c     parcours des te jusqu'a trianguler toutes les feuilles (triangles eq)
-c     =====================================================================
-c     initialisation de la queue sur les te
-      ierr   = 0
-      lequeu = 1
-      lhqueu = 0
-c     la racine de letree initialise la queue
-      laqueu(1) = 1
-c
-c     tant que la longueur de la queue est >=0 traiter le debut de queue
- 10   if( lhqueu .ge. 0 ) then
-c
-c        le triangle te a traiter
-         i   = lequeu - lhqueu
-         if( i .le. 0 ) i = mxqueu + i
-         nte = laqueu( i )
-c        la longueur est reduite
-         lhqueu = lhqueu - 1
-c
-c        nte est il un sous-triangle feuille (minimal) ?
- 15      if( letree(0,nte) .gt. 0 ) then
-c           non les 4 sous-triangles sont mis dans la queue
-            if( lhqueu + 4 .ge. mxqueu ) then
-               write(imprim,*) 'tetrte: saturation de la queue'
-               ierr = 5
-               return
-            endif
-            do 20 i=3,0,-1
-c              ajout du sous-triangle i
-               lhqueu = lhqueu + 1
-               lequeu = lequeu + 1
-               if( lequeu .gt. mxqueu ) lequeu = lequeu - mxqueu
-               laqueu( lequeu ) = letree( i, nte )
- 20         continue
-            goto 10
-         endif
-c
-c        ici nte est un triangle minimal non subdivise
-c        ---------------------------------------------
-c        le te est il dans le cadre englobant de l'objet ?
-         ns1 = letree(6,nte)
-         ns2 = letree(7,nte)
-         ns3 = letree(8,nte)
-         if( pxyd(1,ns1) .gt. pxyd(1,ns2) ) then
-            dmin = pxyd(1,ns2)
-            dmax = pxyd(1,ns1)
-         else
-            dmin = pxyd(1,ns1)
-            dmax = pxyd(1,ns2)
-         endif
-         if( (xrmin .le. dmin .and. dmin .le. xrmax) .or.
-     %       (xrmin .le. dmax .and. dmax .le. xrmax) ) then
-            if( pxyd(2,ns1) .gt. pxyd(2,ns3) ) then
-               dmin = pxyd(2,ns3)
-               dmax = pxyd(2,ns1)
-            else
-               dmin = pxyd(2,ns1)
-               dmax = pxyd(2,ns3)
-            endif
-            if( (yrmin .le. dmin .and. dmin .le. yrmax) .or.
-     %          (yrmin .le. dmax .and. dmax .le. yrmax) ) then
-c
-c              te minimal et interne au rectangle englobant
-c              --------------------------------------------
-c              recherche du nombre de niveaux entre nte et les te voisins
-c              par ses aretes
-               nbmili = 0
-               do 30 i=1,3
-c
-c                 a priori pas de milieu de l'arete i du te nte
-                  milieu(i) = 0
-c
-c                 recherche de noteva te voisin de nte par l'arete i
-                  call n1trva( nte, i, letree, noteva, niveau )
-c                 noteva  : >0 numero letree du te voisin par l'arete i
-c                           =0 si pas de te voisin (racine , ... )
-c                 niveau  : =0 si nte et noteva ont meme taille
-c                           >0 nte est 4**niveau fois plus petit que noteva
-                  if( noteva .gt. 0 ) then
-c                    il existe un te voisin
-                     if( letree(0,noteva) .gt. 0 ) then
-c                       noteva est plus petit que nte
-c                       => recherche du numero du milieu du cote=sommet du te no
-c                       le sous-te 0 du te noteva
-                        nsot = letree(0,noteva)
-c                       le numero dans pxyd du milieu de l'arete i de nte
-                        milieu( i ) = letree( 5+nopre3(i), nsot )
-                        nbmili = nbmili + 1
-                     endif
-                  endif
-c
- 30            continue
-c
-c              triangulation du te nte en fonction du nombre de ses milieux
-               goto( 50, 100, 200, 300 ) , nbmili + 1
-c
-c              0 milieu => 1 triangle = le te nte
-c              ----------------------------------
- 50            call f0trte( letree(0,nte),  pxyd,
-     %                      mosoar, mxsoar, n1soar, nosoar,
-     %                      moartr, mxartr, n1artr, noartr,
-     %                      noarst,
-     %                      nbtr,   nutr,   ierr )
-               if( ierr .ne. 0 ) return
-               goto 10
-c
-c              1 milieu => 2 triangles = 2 demi te
-c              -----------------------------------
- 100           call f1trte( letree(0,nte),  pxyd,   milieu,
-     %                      mosoar, mxsoar, n1soar, nosoar,
-     %                      moartr, mxartr, n1artr, noartr,
-     %                      noarst,
-     %                      nbtr,   nutr,   ierr )
-               if( ierr .ne. 0 ) return
-               goto 10
-c
-c              2 milieux => 3 triangles
-c              -----------------------------------
- 200           call f2trte( letree(0,nte),  pxyd,   milieu,
-     %                      mosoar, mxsoar, n1soar, nosoar,
-     %                      moartr, mxartr, n1artr, noartr,
-     %                      noarst,
-     %                      nbtr,   nutr,   ierr )
-               if( ierr .ne. 0 ) return
-               goto 10
-c
-c              3 milieux => 4 triangles = 4 quart te
-c              -------------------------------------
- 300           call f3trte( letree(0,nte),  pxyd,   milieu,
-     %                      mosoar, mxsoar, n1soar, nosoar,
-     %                      moartr, mxartr, n1artr, noartr,
-     %                      noarst,
-     %                      nbtr,   nutr,   ierr )
-               if( ierr .ne. 0 ) return
-               goto 10
-            endif
-         endif
-         goto 10
-      endif
-      end
-
-
-      subroutine aisoar( mosoar, mxsoar, nosoar, na1 )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    chainer en colonne lchain les aretes non vides et
-c -----    non frontalieres du tableau nosoar
-c
-c entrees:
-c --------
-c mosoar : nombre maximal d'entiers par arete dans le tableau nosoar
-c mxsoar : nombre maximal d'aretes frontalieres declarables
-c
-c modifies :
-c ----------
-c nosoar : numero des 2 sommets , no ligne, 2 triangles, chainages en +
-c          nosoar(lchain,i)=arete interne suivante
-c
-c sortie :
-c --------
-c na1    : numero dans nosoar de la premiere arete interne
-c          les suivantes sont nosoar(lchain,na1), ...
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c....................................................................012
-      parameter (lchain=6)
-      integer    nosoar(mosoar,mxsoar)
-c
-c     formation du chainage des aretes internes a echanger eventuellement
-c     recherche de la premiere arete non vide et non frontaliere
-      do 10 na1=1,mxsoar
-         if( nosoar(1,na1) .gt. 0 .and. nosoar(3,na1) .le. 0 ) goto 15
- 10   continue
-c
-c     protection de la premiere arete non vide et non frontaliere
- 15   na0 = na1
-      do 20 na=na1+1,mxsoar
-         if( nosoar(1,na) .gt. 0 .and. nosoar(3,na) .le. 0 ) then
-c           arete interne => elle est chainee a partir de la precedente
-            nosoar(lchain,na0) = na
-            na0 = na
-         endif
- 20   continue
-c
-c     la derniere arete interne n'a pas de suivante
-      nosoar(lchain,na0) = 0
-      end
-
-
-      subroutine tedela( pxyd,   noarst,
-     %                   mosoar, mxsoar, n1soar, nosoar, n1ardv,
-     %                   moartr, mxartr, n1artr, noartr, modifs )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    pour toutes les aretes chainees dans nosoar(lchain,*)
-c -----    du tableau nosoar
-c          echanger la diagonale des 2 triangles si le sommet oppose
-c          a un triangle ayant en commun une arete appartient au cercle
-c          circonscrit de l'autre (violation boule vide delaunay)
-c
-c entrees:
-c --------
-c pxyd   : tableau des x  y  distance_souhaitee de chaque sommet
-c
-c modifies :
-c ----------
-c noarst : noarst(i) numero d'une arete de sommet i
-c mosoar : nombre maximal d'entiers par arete dans le tableau nosoar
-c mxsoar : nombre maximal d'aretes frontalieres declarables
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c nosoar : numero des 2 sommets , no ligne, 2 triangles, chainages en +
-c n1ardv : numero dans nosoar de la premiere arete du chainage
-c          des aretes a rendre delaunay
-c
-c moartr : nombre d'entiers par triangle dans le tableau noartr
-c mxartr : nombre maximal de triangles declarables dans noartr
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c modifs : nombre d'echanges de diagonales pour maximiser la qualite
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c....................................................................012
-      parameter        (lchain=6)
-      common / unites / lecteu, imprim, nunite(30)
-      double precision  pxyd(3,*), surtd2, s123, s142, s143, s234,
-     %                  s12, s34, a12, cetria(3), r0
-      integer           nosoar(mosoar,mxsoar),
-     %                  noartr(moartr,mxartr),
-     %                  noarst(*)
-c
-c     le nombre d'echanges de diagonales pour minimiser l'aire
-      modifs = 0
-      r0     = 0
-c
-c     la premiere arete du chainage des aretes a rendre delaunay
-      na0 = n1ardv
-c
-c     tant que la pile des aretes a echanger eventuellement est non vide
-c     ==================================================================
- 20   if( na0 .gt. 0 ) then
-c
-c        l'arete a traiter
-         na  = na0
-c        la prochaine arete a traiter
-         na0 = nosoar(lchain,na0)
-c
-c        l'arete est marquee traitee avec le numero -1
-         nosoar(lchain,na) = -1
-c
-c        l'arete est elle active?
-         if( nosoar(1,na) .eq. 0 ) goto 20
-c
-c        si arete frontaliere pas d'echange possible
-         if( nosoar(3,na) .gt. 0 ) goto 20
-c
-c        existe-t-il 2 triangles ayant cette arete commune?
-         if( nosoar(4,na) .le. 0 .or. nosoar(5,na) .le. 0 ) goto 20
-c
-c        aucun des 2 triangles est-il desactive?
-         if( noartr(1,nosoar(4,na)) .eq. 0 .or.
-     %       noartr(1,nosoar(5,na)) .eq. 0 ) goto 20
-c
-c        l'arete appartient a deux triangles actifs
-c        le numero des 4 sommets du quadrangle des 2 triangles
-         call mt4sqa( na, moartr, noartr, mosoar, nosoar,
-     %                ns1, ns2, ns3, ns4 )
-         if( ns4 .eq. 0 ) goto 20
-c
-c        carre de la longueur de l'arete ns1 ns2
-         a12 = (pxyd(1,ns2)-pxyd(1,ns1))**2+(pxyd(2,ns2)-pxyd(2,ns1))**2
-c
-c        comparaison de la somme des aires des 2 triangles
-c        -------------------------------------------------
-c        calcul des surfaces des triangles 123 et 142 de cette arete
-         s123=surtd2( pxyd(1,ns1), pxyd(1,ns2), pxyd(1,ns3) )
-         s142=surtd2( pxyd(1,ns1), pxyd(1,ns4), pxyd(1,ns2) )
-         s12 = abs( s123 ) + abs( s142 )
-         if( s12 .le. 0.001*a12 ) goto 20
-c
-c        calcul des surfaces des triangles 143 et 234 de cette arete
-         s143=surtd2( pxyd(1,ns1), pxyd(1,ns4), pxyd(1,ns3) )
-         s234=surtd2( pxyd(1,ns2), pxyd(1,ns3), pxyd(1,ns4) )
-         s34 = abs( s234 ) + abs( s143 )
-c
-         if( abs(s34-s12) .gt. 1d-15*s34 ) goto 20
-c
-c        quadrangle convexe : le critere de delaunay intervient
-c        ------------------   ---------------------------------
-c        calcul du centre et rayon de la boule circonscrite a 123
-c        pas d'affichage si le triangle est degenere
-         ierr = -1
-         call cenced( pxyd(1,ns1), pxyd(1,ns2), pxyd(1,ns3), cetria,
-     %                ierr )
-         if( ierr .gt. 0 ) then
-c           ierr=1 si triangle degenere  => abandon
-            goto 20
-         endif
-c
-         if( (cetria(1)-pxyd(1,ns4))**2+(cetria(2)-pxyd(2,ns4))**2
-     %       .lt. cetria(3) ) then
-c
-c           protection contre une boucle infinie sur le meme cercle
-            if( r0 .eq. cetria(3) ) goto 20
-c
-c           oui: ns4 est dans le cercle circonscrit a ns1 ns2 ns3
-c           => ns3 est aussi dans le cercle circonscrit de ns1 ns2 ns4
-c
-cccc           les 2 triangles d'arete na sont effaces
-ccc            do 25 j=4,5
-ccc               nt = nosoar(j,na)
-cccc              trace du triangle nt
-ccc               call mttrtr( pxyd, nt, moartr, noartr, mosoar, nosoar,
-ccc     %                      ncnoir, ncjaun )
-ccc 25         continue
-c
-c           echange de la diagonale 12 par 34 des 2 triangles
-            call te2t2t( na,     mosoar, n1soar, nosoar, noarst,
-     %                   moartr, noartr, na34 )
-            if( na34 .eq. 0 ) goto 20
-            r0 = cetria(3)
-c
-c           l'arete na34 est marquee traitee
-            nosoar(lchain,na34) = -1
-            modifs = modifs + 1
-c
-c           les aretes internes peripheriques des 2 triangles sont enchainees
-            do 60 j=4,5
-               nt = nosoar(j,na34)
-cccc              trace du triangle nt
-ccc               call mttrtr( pxyd, nt, moartr, noartr, mosoar, nosoar,
-ccc     %                      ncoran, ncgric )
-               do 50 i=1,3
-                  n = abs( noartr(i,nt) )
-                  if( n .ne. na34 ) then
-                     if( nosoar(3,n)      .eq.  0  .and.
-     %                   nosoar(lchain,n) .eq. -1 ) then
-c                        cette arete marquee est chainee pour etre traitee
-                         nosoar(lchain,n) = na0
-                         na0 = n
-                     endif
-                  endif
- 50            continue
- 60         continue
-            goto 20
-         endif
-c
-c        retour en haut de la pile des aretes a traiter
-         goto 20
-      endif
-      end
-
-
-      subroutine terefr( nbarpi, pxyd,
-     %                   mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, n1artr, noartr, noarst,
-     %                   mxarcf, n1arcf, noarcf, larmin, notrcf,
-     %                   nbarpe, ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :   recherche des aretes de la frontiere non dans la triangulation
-c -----   triangulation frontale pour les reobtenir
-c
-c         attention: le chainage lchain de nosoar devient celui des cf
-c
-c entrees:
-c --------
-c          le tableau nosoar
-c nbarpi : numero du dernier point interne impose par l'utilisateur
-c pxyd   : tableau des coordonnees 2d des points
-c          par point : x  y  distance_souhaitee
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c          attention: mxsoar>3*mxsomm obligatoire!
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxarcf : nombre de variables des tableaux n1arcf, noarcf, larmin, notrcf
-c
-c modifies:
-c ---------
-c n1soar : no de l'eventuelle premiere arete libre dans le tableau nosoar
-c          chainage des vides suivant en 3 et precedant en 2 de nosoar
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = nosoar(1)+nosoar(2)*2
-c          avec mxsoar>=3*mxsomm
-c          une arete i de nosoar est vide <=> nosoar(1,i)=0 et
-c          nosoar(2,arete vide)=l'arete vide qui precede
-c          nosoar(3,arete vide)=l'arete vide qui suit
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c noarst : noarst(i) numero d'une arete de sommet i
-c
-c
-c auxiliaires :
-c -------------
-c n1arcf : tableau (0:mxarcf) auxiliaire d'entiers
-c noarcf : tableau (3,mxarcf) auxiliaire d'entiers
-c larmin : tableau (mxarcf)   auxiliaire d'entiers
-c notrcf : tableau (mxarcf)   auxiliaire d'entiers
-c
-c sortie :
-c --------
-c nbarpe : nombre d'aretes perdues puis retrouvees
-c ierr   : =0 si pas d'erreur
-c          >0 si une erreur est survenue
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c....................................................................012
-      parameter        (lchain=6)
-      common / unites / lecteu,imprim,intera,nunite(29)
-      double precision  pxyd(3,*)
-      integer           nosoar(mosoar,mxsoar),
-     %                  noartr(moartr,*),
-     %                  noarst(*),
-     %                  n1arcf(0:mxarcf),
-     %                  noarcf(3,mxarcf),
-     %                  larmin(mxarcf),
-     %                  notrcf(mxarcf)
-c
-c     le nombre d'aretes de la frontiere non arete de la triangulation
-      nbarpe = 0
-c
-c     initialisation du chainage des aretes des cf => 0 arete de cf
-      do 10 narete=1,mxsoar
-         nosoar( lchain, narete) = -1
- 10   continue
-c
-c     boucle sur l'ensemble des aretes actuelles
-c     ==========================================
-      do 30 narete=1,mxsoar
-c
-         if( nosoar(3,narete) .gt. 0 ) then
-c           arete appartenant a une ligne => frontaliere
-c
-            if(nosoar(4,narete) .le. 0 .or. nosoar(5,narete) .le. 0)then
-c              l'arete narete frontaliere n'appartient pas a 2 triangles
-c              => elle est perdue
-               nbarpe = nbarpe + 1
-c
-c              le numero des 2 sommets de l'arete frontaliere perdue
-               ns1 = nosoar( 1, narete )
-               ns2 = nosoar( 2, narete )
-c               write(imprim,10000) ns1,(pxyd(j,ns1),j=1,2),
-c     %                             ns2,(pxyd(j,ns2),j=1,2)
-10000          format(' arete perdue a forcer',
-     %               (t24,'sommet=',i6,' x=',g13.5,' y=',g13.5))
-c
-c              traitement de cette arete perdue ns1-ns2
-               call tefoar( narete, nbarpi, pxyd,
-     %                      mosoar, mxsoar, n1soar, nosoar,
-     %                      moartr, n1artr, noartr, noarst,
-     %                      mxarcf, n1arcf, noarcf, larmin, notrcf,
-     %                      ierr )
-               if( ierr .ne. 0 ) return
-c
-c              fin du traitement de cette arete perdue et retrouvee
-            endif
-         endif
-c
- 30   continue
-      end
-
-
-      subroutine tesuex( nblftr, nulftr,
-     %                   ndtri0, nbsomm, pxyd, nslign,
-     %                   mosoar, mxsoar, nosoar,
-     %                   moartr, mxartr, n1artr, noartr, noarst,
-     %                   nbtria, letrsu, ierr  )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    supprimer du tableau noartr les triangles externes au domaine
-c -----    en annulant le numero de leur 1-ere arete dans noartr
-c          et en les chainant comme triangles vides
-c
-c entrees:
-c --------
-c nblftr : nombre de  lignes fermees definissant la surface
-c nulftr : numero des lignes fermees definissant la surface
-c ndtri0 : plus grand numero dans noartr d'un triangle
-c pxyd   : tableau des coordonnees 2d des points
-c          par point : x  y  distance_souhaitee
-c nslign : tableau du numero de sommet dans sa ligne pour chaque
-c          sommet frontalier
-c          numero du point dans le lexique point si interne impose
-c          0 si le point est interne non impose par l'utilisateur
-c         -1 si le sommet est externe au domaine
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c          attention: mxsoar>3*mxsomm obligatoire!
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = nosoar(1)+nosoar(2)*2
-c          avec mxsoar>=3*mxsomm
-c          une arete i de nosoar est vide <=> nosoar(1,i)=0 et
-c          nosoar(2,arete vide)=l'arete vide qui precede
-c          nosoar(3,arete vide)=l'arete vide qui suit
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxartr : nombre maximal de triangles declarables
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c noarst : noarst(i) numero nosoar d'une arete de sommet i
-c
-c sorties:
-c --------
-c nbtria : nombre de triangles internes au domaine
-c letrsu : letrsu(nt)=numero du triangle interne, 0 sinon
-c noarst : noarst(i) numero nosoar d'une arete du sommet i (modifi'e)
-c ierr   : 0 si pas d'erreur, >0 sinon
-cc++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc        mai 1999
-c2345x7..............................................................012
-      double precision  pxyd(3,*)
-      integer           nulftr(nblftr),nslign(nbsomm),
-     %                  nosoar(mosoar,mxsoar),
-     %                  noartr(moartr,mxartr),
-     %                  noarst(*)
-      integer           letrsu(1:ndtri0)
-      double precision  dmin
-c
-c     les triangles sont a priori non marques
-      do 5 nt=1,ndtri0
-         letrsu(nt) = 0
- 5    continue
-c
-c     les aretes sont marquees non chainees
-      do 10 noar1=1,mxsoar
-         nosoar(6,noar1) = -2
- 10   continue
-c
-c     recherche du sommet de la triangulation de plus petite abscisse
-c     ===============================================================
-      ntmin = 0
-      dmin  = 1d38
-      do 20 i=1,nbsomm
-         if( pxyd(1,i) .lt. dmin ) then
-c           le nouveau minimum
-            noar1 = noarst(i)
-            if( noar1 .gt. 0 ) then
-c              le sommet appartient a une arete de triangle
-               if( nosoar(4,noar1) .gt. 0 ) then
-c                 le nouveau minimum
-                  dmin  = pxyd(1,i)
-                  ntmin = i
-               endif
-            endif
-         endif
- 20   continue
-c
-c     une arete de sommet ntmin
-      noar1 = noarst( ntmin )
-c     un triangle d'arete noar1
-      ntmin = nosoar( 4, noar1 )
-      if( ntmin .le. 0 ) then
-c         nblgrc(nrerr) = 1
-c         kerr(1) = 'pas de triangle d''abscisse minimale'
-c         call lereur
-         write(imprim,*) 'pas de triangle d''abscisse minimale'
-         ierr = 2
-         goto 9990
-      endif
-c
-c     chainage des 3 aretes du triangle ntmin
-c     =======================================
-c     la premiere arete du chainage des aretes traitees
-      noar1 = abs( noartr(1,ntmin) )
-      na0   = abs( noartr(2,ntmin) )
-c     elle est chainee sur la seconde arete du triangle ntmin
-      nosoar(6,noar1) = na0
-c     les 2 autres aretes du triangle ntmin sont chainees
-      na1 = abs( noartr(3,ntmin) )
-c     la seconde est chainee sur la troisieme arete
-      nosoar(6,na0) = na1
-c     la troisieme n'a pas de suivante
-      nosoar(6,na1) = 0
-c
-c     le triangle ntmin est a l'exterieur du domaine
-c     tous les triangles externes sont marques -123 456 789
-c     les triangles de l'autre cote d'une arete sur une ligne
-c     sont marques: no de la ligne de l'arete * signe oppose
-c     =======================================================
-      ligne0 = 0
-      ligne  = -123 456 789
-c
- 40   if( noar1 .ne. 0 ) then
-c
-c        l'arete noar1 du tableau nosoar est a traiter
-c        ---------------------------------------------
-         noar = noar1
-c        l'arete suivante devient la premiere a traiter ensuite
-         noar1 = nosoar(6,noar1)
-c        l'arete noar est traitee
-         nosoar(6,noar) = -3
-c
-         do 60 i=4,5
-c
-c           l'un des 2 triangles de l'arete
-            nt = nosoar(i,noar)
-            if( nt .gt. 0 ) then
-c
-c              triangle deja traite pour une ligne anterieure?
-               if(     letrsu(nt)  .ne. 0      .and.
-     %             abs(letrsu(nt)) .ne. ligne ) goto 60
-c
-cccc              trace du triangle nt en couleur ligne0
-ccc               call mttrtr( pxyd,   nt, moartr, noartr, mosoar, nosoar,
-ccc     %                      ligne0, ncnoir )
-c
-c              le triangle est marque avec la valeur de ligne
-               letrsu(nt) = ligne
-c
-c              chainage eventuel des autres aretes de ce triangle
-c              si ce n'est pas encore fait
-               do 50 j=1,3
-c
-c                 le numero na de l'arete j du triangle nt dans nosoar
-                  na = abs( noartr(j,nt) )
-                  if( nosoar(6,na) .ne. -2 ) goto 50
-c
-c                 le numero de 1 a nblftr dans nulftr de la ligne de l'arete
-                  nl = nosoar(3,na)
-c
-c                 si l'arete est sur une ligne fermee differente de celle envelo
-c                 et non marquee alors examen du triangle oppose
-                  if( nl .gt. 0 ) then
-c
-                     if( nl .eq. ligne0 ) goto 50
-c
-c                    arete frontaliere de ligne non traitee
-c                    => passage de l'autre cote de la ligne
-c                    le triangle de l'autre cote de la ligne est recherche
-                     if( nt .eq. abs( nosoar(4,na) ) ) then
-                        nt2 = 5
-                     else
-                        nt2 = 4
-                     endif
-                     nt2 = abs( nosoar(nt2,na) )
-                     if( nt2 .gt. 0 ) then
-c
-c                       le triangle nt2 de l'autre cote est marque avec le
-c                       avec le signe oppose de celui de ligne
-                        if( ligne .ge. 0 ) then
-                           lsigne = -1
-                        else
-                           lsigne =  1
-                        endif
-                        letrsu(nt2) = lsigne * nl
-c
-c                       temoin de ligne a traiter ensuite dans nulftr
-                        nulftr(nl) = -abs( nulftr(nl) )
-c
-cccc                       trace du triangle nt2 en jaune borde de magenta
-ccc                        call mttrtr( pxyd,nt2,
-ccc     %                               moartr,noartr,mosoar,nosoar,
-ccc     %                               ncjaun, ncmage )
-c
-c                       l'arete est traitee
-                        nosoar(6,na) = -3
-c
-                     endif
-c
-c                    l'arete est traitee
-                     goto 50
-c
-                  endif
-c
-c                 arete non traitee => elle est chainee
-                  nosoar(6,na) = noar1
-                  noar1 = na
-c
- 50            continue
-c
-            endif
- 60      continue
-c
-         goto 40
-      endif
-c     les triangles de la ligne fermee ont tous ete marques
-c     plus d'arete chainee
-c
-c     recherche d'une nouvelle ligne fermee a traiter
-c     ===============================================
- 65   do 70 nl=1,nblftr
-         if( nulftr(nl) .lt. 0 ) goto 80
- 70   continue
-c     plus de ligne fermee a traiter
-      goto 110
-c
-c     tous les triangles de cette composante connexe
-c     entre ligne et ligne0 vont etre marques
-c     ==============================================
-c     remise en etat du numero de ligne
-c     nl est le numero de la ligne dans nulftr a traiter
- 80   nulftr(nl) = -nulftr(nl)
-      do 90 nt2=1,ndtri0
-         if( abs(letrsu(nt2)) .eq. nl ) goto 92
- 90   continue
-c
-c     recherche de l'arete j du triangle nt2 avec ce numero de ligne nl
- 92   do 95 j=1,3
-c
-c        le numero de l'arete j du triangle dans nosoar
-         noar1 = 0
-         na0   = abs( noartr(j,nt2) )
-         if( nl .eq. nosoar(3,na0) ) then
-c
-c           na0 est l'arete de ligne nl
-c           l'arete suivante du triangle nt2
-            i   = mod(j,3) + 1
-c           le numero dans nosoar de l'arete i de nt2
-            na1 = abs( noartr(i,nt2) )
-            if( nosoar(6,na1) .eq. -2 ) then
-c              arete non traitee => elle est la premiere du chainage
-               noar1 = na1
-c              pas de suivante dans ce chainage
-               nosoar(6,na1) = 0
-            else
-               na1 = 0
-            endif
-c
-c           l'eventuelle seconde arete suivante
-            i  = mod(i,3) + 1
-            na = abs( noartr(i,nt2) )
-            if( nosoar(6,na) .eq. -2 ) then
-               if( na1 .eq. 0 ) then
-c                 1 arete non traitee et seule a chainer
-                  noar1 = na
-                  nosoar(6,na) = 0
-               else
-c                 2 aretes a chainer
-                  noar1 = na
-                  nosoar(6,na) = na1
-               endif
-            endif
-c
-            if( noar1 .gt. 0 ) then
-c
-c              il existe au moins une arete a visiter pour ligne
-c              marquage des triangles internes a la ligne nl
-               ligne  = letrsu(nt2)
-               ligne0 = nl
-               goto 40
-c
-            else
-c
-c              nt2 est le seul triangle de la ligne fermee
-               goto 65
-c
-            endif
-         endif
- 95   continue
-c
-c     reperage des sommets internes ou externes dans nslign
-c     nslign(sommet externe au domaine)=-1
-c     nslign(sommet interne au domaine)= 0
-c     =====================================================
- 110  do 170 ns1=1,nbsomm
-c        tout sommet non sur la frontiere ou interne impose
-c        est suppose externe
-         if( nslign(ns1) .eq. 0 ) nslign(ns1) = -1
- 170  continue
-c
-c     les triangles externes sont marques vides dans le tableau noartr
-c     ================================================================
-      nbtria = 0
-      do 200 nt=1,ndtri0
-c
-         if( letrsu(nt) .le. 0 ) then
-c
-c           triangle nt externe
-            if( noartr(1,nt) .ne. 0 ) then
-c              la premiere arete est annulee
-               noartr(1,nt) = 0
-c              le triangle nt est considere comme etant vide
-               noartr(2,nt) = n1artr
-               n1artr = nt
-            endif
-c
-         else
-c
-c           triangle nt interne
-            nbtria = nbtria + 1
-            letrsu(nt) = nbtria
-c
-c           marquage des 3 sommets du triangle nt
-            do 190 i=1,3
-c              le numero nosoar de l'arete i du triangle nt
-               noar = abs( noartr(i,nt) )
-c              le numero des 2 sommets
-               ns1 = nosoar(1,noar)
-               ns2 = nosoar(2,noar)
-c              mise a jour du numero d'une arete des 2 sommets de l'arete
-               noarst( ns1 ) = noar
-               noarst( ns2 ) = noar
-c              ns1 et ns2 sont des sommets de la triangulation du domaine
-               if( nslign(ns1) .lt. 0 ) nslign(ns1)=0
-               if( nslign(ns2) .lt. 0 ) nslign(ns2)=0
- 190        continue
-c
-         endif
-c
- 200  continue
-c     ici tout sommet externe ns verifie nslign(ns)=-1
-c
-c     les triangles externes sont mis a zero dans nosoar
-c     ==================================================
-      do 300 noar=1,mxsoar
-c
-         if( nosoar(1,noar) .gt. 0 ) then
-c
-c           le second triangle de l'arete noar
-            nt = nosoar(5,noar)
-            if( nt .gt. 0 ) then
-c              si le triangle nt est externe
-c              alors il est supprime pour l'arete noar
-               if( letrsu(nt) .le. 0 ) nosoar(5,noar)=0
-            endif
-c
-c           le premier triangle de l'arete noar
-            nt = nosoar(4,noar)
-            if( nt .gt. 0 ) then
-               if( letrsu(nt) .le. 0 ) then
-c                 si le triangle nt est externe
-c                 alors il est supprime pour l'arete noar
-c                 et l'eventuel triangle oppose prend sa place
-c                 en position 4 de nosoar
-                  if( nosoar(5,noar) .gt. 0 ) then
-                     nosoar(4,noar)=nosoar(5,noar)
-                     nosoar(5,noar)=0
-                  else
-                     nosoar(4,noar)=0
-                  endif
-               endif
-            endif
-         endif
-c
- 300  continue
-c
-c     remise en etat pour eviter les modifications de ladefi
- 9990 do 9991 nl=1,nblftr
-         if( nulftr(nl) .lt. 0 ) nulftr(nl)=-nulftr(nl)
- 9991 continue
-      return
-      end
-
-
-
-      subroutine trp1st( ns,     noarst, mosoar, nosoar, moartr, noartr,
-     %                   mxpile, lhpile, lapile )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :   recherche des triangles de noartr partageant le sommet ns
-c -----
-c         limite: un camembert de centre ns entame 2 fois
-c                 ne donne que l'une des parties
-c
-c entrees:
-c --------
-c ns     : numero du sommet
-c noarst : noarst(i) numero d'une arete de sommet i
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c mxpile : nombre maximal de triangles empilables
-c
-c sorties :
-c --------
-c lhpile : >0 nombre de triangles empiles
-c          =0       si impossible de tourner autour du point
-c          =-lhpile si apres butee sur la frontiere il y a a nouveau
-c          butee sur la frontiere . a ce stade on ne peut dire si tous
-c          les triangles ayant ce sommet ont ete recenses
-c          ce cas arrive seulement si le sommet est sur la frontiere
-c lapile : numero dans noartr des triangles de sommet ns
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c....................................................................012
-      common / unites / lecteu, imprim, nunite(30)
-      integer           noartr(moartr,*),
-     %                  nosoar(mosoar,*),
-     %                  noarst(*)
-      integer           lapile(1:mxpile)
-      integer           nosotr(3)
-c
-c     la premiere arete de sommet ns
-      nar = noarst( ns )
-      if( nar .le. 0 ) then
-         write(imprim,*) 'trp1st: sommet',ns,' sans arete'
-         goto 9999
-      endif
-c
-c     l'arete nar est elle active?
-      if( nosoar(1,nar) .le. 0 ) then
-ccc         write(imprim,*) 'trp1st: arete vide',nar,
-ccc     %                  ' st1:', nosoar(1,nar),' st2:',nosoar(2,nar)
-         goto 9999
-      endif
-c
-c     le premier triangle de sommet ns
-      nt0 = abs( nosoar(4,nar) )
-      if( nt0 .le. 0 ) then
-         write(imprim,*) 'trp1st: sommet',ns,' dans aucun triangle'
-         goto 9999
-      endif
-c
-c     le triangle est il interne?
-      if( noartr(1,nt0) .eq. 0 ) goto 9999
-c
-c     le numero des 3 sommets du triangle nt0 dans le sens direct
-      call nusotr( nt0, mosoar, nosoar, moartr, noartr, nosotr )
-c
-c     reperage du sommet ns dans le triangle nt0
-      do 5 nar=1,3
-         if( nosotr(nar) .eq. ns ) goto 10
- 5    continue
-      nta = nt0
-      goto 9995
-c
-c     ns retrouve : le triangle nt0 est empile
- 10   lhpile = 1
-      lapile(1) = nt0
-      nta = nt0
-c
-c     recherche dans le sens des aiguilles d'une montre
-c     (sens indirect) du triangle nt1 de l'autre cote de l'arete
-c     nar du triangle et en tournant autour du sommet ns
-c     ==========================================================
-      noar = abs( noartr(nar,nt0) )
-c     le triangle nt1 oppose du triangle nt0 par l'arete noar
-      if( nosoar(4,noar) .eq. nt0 ) then
-         nt1 = nosoar(5,noar)
-      else
-         nt1 = nosoar(4,noar)
-      endif
-c
-c     la boucle sur les triangles nt1 de sommet ns dans le sens indirect
-c     ==================================================================
-      if( nt1 .gt. 0 ) then
-c
-         if( noartr(1,nt1) .eq. 0 ) goto 30
-c
-c        le triangle nt1 n'a pas ete detruit. il est actif
-c        le triangle oppose par l'arete noar existe
-c        le numero des 3 sommets du triangle nt1 dans le sens direct
- 15      call nusotr( nt1, mosoar, nosoar, moartr, noartr, nosotr )
-c
-c        reperage du sommet ns dans nt1
-         do 20 nar=1,3
-            if( nosotr(nar) .eq. ns ) goto 25
- 20      continue
-         nta = nt1
-         goto 9995
-c
-c        nt1 est empile
- 25      if( lhpile .ge. mxpile ) goto 9990
-         lhpile = lhpile + 1
-         lapile(lhpile) = nt1
-c
-c        le triangle nt1 de l'autre cote de l'arete de sommet ns
-c        sauvegarde du precedent triangle dans nta
-         nta  = nt1
-         noar = abs( noartr(nar,nt1) )
-         if( nosoar(4,noar) .eq. nt1 ) then
-            nt1 = nosoar(5,noar)
-         else
-            nt1 = nosoar(4,noar)
-         endif
-         if( nt1 .le. 0   ) goto 30
-c        le triangle suivant est a l'exterieur
-         if( nt1 .ne. nt0 ) goto 15
-c
-c        recherche terminee par arrivee sur nt0
-c        les triangles forment un "cercle" de "centre" ns
-         return
-c
-      endif
-c
-c     pas de triangle voisin a nt1
-c     ============================
-c     le parcours passe par 1 des triangles exterieurs
-c     le parcours est inverse par l'arete de gauche
-c     le triangle nta est le premier triangle empile
- 30   lhpile = 1
-      lapile(lhpile) = nta
-c
-c     le numero des 3 sommets du triangle nta dans le sens direct
-      call nusotr( nta, mosoar, nosoar, moartr, noartr, nosotr )
-      do 32 nar=1,3
-         if( nosotr(nar) .eq. ns ) goto 33
- 32   continue
-      goto 9995
-c
-c     l'arete qui precede (rotation / ns dans le sens direct)
- 33   if( nar .eq. 1 ) then
-         nar = 3
-      else
-         nar = nar - 1
-      endif
-c
-c     le triangle voisin de nta dans le sens direct
-      noar = abs( noartr(nar,nta) )
-      if( nosoar(4,noar) .eq. nta ) then
-         nt1 = nosoar(5,noar)
-      else
-         nt1 = nosoar(4,noar)
-      endif
-      if( nt1 .le. 0 ) then
-c        un seul triangle contient ns
-         goto 70
-      endif
-c
-c     boucle sur les triangles de sommet ns dans le sens direct
-c     ==========================================================
- 40   if( noartr(1,nt1) .eq. 0 ) goto 70
-c
-c     le triangle nt1 n'a pas ete detruit. il est actif
-c     le numero des 3 sommets du triangle nt1 dans le sens direct
-      call nusotr( nt1, mosoar, nosoar, moartr, noartr, nosotr )
-c
-c     reperage du sommet ns dans nt1
-      do 50 nar=1,3
-         if( nosotr(nar) .eq. ns ) goto 60
- 50   continue
-      nta = nt1
-      goto 9995
-c
-c     nt1 est empile
- 60   if( lhpile .ge. mxpile ) goto 9990
-      lhpile = lhpile + 1
-      lapile(lhpile) = nt1
-c
-c     l'arete qui precede dans le sens direct
-      if( nar .eq. 1 ) then
-         nar = 3
-      else
-         nar = nar - 1
-      endif
-c
-c     l'arete de sommet ns dans nosoar
-      noar = abs( noartr(nar,nt1) )
-c
-c     le triangle voisin de nta dans le sens direct
-      nta  = nt1
-      if( nosoar(4,noar) .eq. nt1 ) then
-         nt1 = nosoar(5,noar)
-      else
-         nt1 = nosoar(4,noar)
-      endif
-      nta = nt1
-      if( nt1 .gt. 0 ) goto 40
-c
-c     butee sur le trou => fin des triangles de sommet ns
-c     ----------------------------------------------------
- 70   lhpile = -lhpile
-c     impossible ici de trouver les autres triangles de sommet ns
-c     les triangles de sommet ns ne forment pas une boule de centre ns
-      return
-c
-c     saturation de la pile des triangles
-c     -----------------------------------
- 9990 write(imprim,*) 'trp1st:saturation pile des triangles autour ',
-     %'sommet',ns
-      goto 9999
-c
-c     erreur triangle ne contenant pas le sommet ns
-c     ----------------------------------------------
- 9995 write(imprim,*) 'trp1st:triangle ',nta,' st=',
-     %   (nosotr(nar),nar=1,3),' sans le sommet' ,ns
-c
- 9999 lhpile = 0
-      return
-      end
-
-
-
-      subroutine nusotr( nt, mosoar, nosoar, moartr, noartr, nosotr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    calcul du numero des 3 sommets du triangle nt de noartr
-c -----    dans le sens direct (aire>0 si non degenere)
-c
-c entrees:
-c --------
-c nt     : numero du triangle dans le tableau noartr
-c mosoar : nombre maximal d'entiers par arete
-c nosoar : numero des 2 sommets , no ligne, 2 triangles, chainages en +
-c          sommet 1 = 0 si arete vide => sommet 2 = arete vide suivante
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1=0 si triangle vide => arete2=triangle vide suivant
-c
-c sorties:
-c --------
-c nosotr : numero (dans le tableau pxyd) des 3 sommets du triangle
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c2345x7..............................................................012
-      integer     nosoar(mosoar,*), noartr(moartr,*), nosotr(3)
-c
-c     les 2 sommets de l'arete 1 du triangle nt dans le sens direct
-      na = noartr( 1, nt )
-      if( na .gt. 0 ) then
-         nosotr(1) = 1
-         nosotr(2) = 2
-      else
-         nosotr(1) = 2
-         nosotr(2) = 1
-         na = -na
-      endif
-      nosotr(1) = nosoar( nosotr(1), na )
-      nosotr(2) = nosoar( nosotr(2), na )
-c
-c     l'arete suivante
-      na = abs( noartr(2,nt) )
-c
-c     le sommet nosotr(3 du triangle 123
-      nosotr(3) = nosoar( 1, na )
-      if( nosotr(3) .eq. nosotr(1) .or. nosotr(3) .eq. nosotr(2) ) then
-         nosotr(3) = nosoar(2,na)
-      endif
-      end
-
-
-      subroutine tesusp( nbarpi, pxyd,   noarst,
-     %                   mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, mxartr, n1artr, noartr,
-     %                   mxarcf, n1arcf, noarcf, larmin, notrcf, liarcf,
-     %                   nbstsu, ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :   supprimer de la triangulation les sommets de te trop proches
-c -----   soit d'un sommet frontalier ou point interne impose
-c         soit d'une arete frontaliere
-c
-c         attention: le chainage lchain de nosoar devient celui des cf
-c
-c entrees:
-c --------
-c nbarpi : numero du dernier point interne impose par l'utilisateur
-c pxyd   : tableau des coordonnees 2d des points
-c          par point : x  y  distance_souhaitee
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c          attention: mxsoar>3*mxsomm obligatoire!
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxarcf : nombre de variables des tableaux n1arcf, noarcf, larmin, notrcf
-c
-c modifies:
-c ---------
-c noarst : noarst(i) numero d'une arete de sommet i
-c n1soar : no de l'eventuelle premiere arete libre dans le tableau nosoar
-c          chainage des vides suivant en 3 et precedant en 2 de nosoar
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = nosoar(1)+nosoar(2)*2
-c          avec mxsoar>=3*mxsomm
-c          une arete i de nosoar est vide <=> nosoar(1,i)=0 et
-c          nosoar(2,arete vide)=l'arete vide qui precede
-c          nosoar(3,arete vide)=l'arete vide qui suit
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c
-c
-c auxiliaires :
-c -------------
-c n1arcf : tableau (0:mxarcf) auxiliaire d'entiers
-c noarcf : tableau (3,mxarcf) auxiliaire d'entiers
-c larmin : tableau ( mxarcf ) auxiliaire d'entiers
-c notrcf : tableau ( mxarcf ) auxiliaire d'entiers
-c liarcf : tableau ( mxarcf ) auxiliaire d'entiers
-c
-c sortie :
-c --------
-c nbstsu : nombre de sommets de te supprimes
-c ierr   : =0 si pas d'erreur
-c          >0 si une erreur est survenue
-c          11 algorithme defaillant
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c....................................................................012
-c      parameter       ( quamal=0.3 ) => ok
-c      parameter       ( quamal=0.4 ) => pb pour le test ocean
-c      parameter       ( quamal=0.5 ) => pb pour le test ocean
-c
-      parameter       ( quamal=0.333, lchain=6 )
-      common / unites / lecteu,imprim,intera,nunite(29)
-      double precision  pxyd(3,*), qualit
-      integer           nosoar(mosoar,mxsoar),
-     %                  noartr(moartr,*),
-     %                  noarst(*),
-     %                  n1arcf(0:mxarcf),
-     %                  noarcf(3,mxarcf),
-     %                  larmin(mxarcf),
-     %                  notrcf(mxarcf),
-     %                  liarcf(mxarcf)
-c
-      integer           nosotr(3)
-      equivalence      (nosotr(1),ns1), (nosotr(2),ns2),
-     %                 (nosotr(3),ns3)
-c
-c     le nombre de sommets de te supprimes
-      nbstsu = 0
-c
-c     initialisation du chainage des aretes des cf => 0 arete de cf
-      do 10 narete=1,mxsoar
-         nosoar( lchain, narete ) = -1
- 10   continue
-c
-c     boucle sur l'ensemble des sommets frontaliers ou points internes
-c     ================================================================
-      do 100 ns = 1, nbarpi
-c
-cccc        le nombre de sommets supprimes pour ce sommet ns
-ccc         nbsuns = 0
-c
-c        la qualite minimale au dessous de laquelle le point proche
-c        interne est supprime
-         quaopt = quamal
-c
-c        une arete de sommet ns
- 15      narete = noarst( ns )
-         if( narete .le. 0 ) then
-c           erreur: le point appartient a aucune arete
-            write(imprim,*) 'sommet ',ns,' dans aucune arete'
-            ierr = 11
-            return
-         endif
-c
-c        recherche des triangles de sommet ns
-c        ils doivent former un contour ferme de type etoile
-         call trp1st( ns, noarst, mosoar, nosoar, moartr, noartr,
-     %                mxarcf, nbtrcf, notrcf )
-         if( nbtrcf .le. 0 ) then
-c           erreur: impossible de trouver tous les triangles de sommet ns
-c           seule une partie est a priori retrouvee
-            nbtrcf = -nbtrcf
-         endif
-c
-c        boucle sur les triangles de l'etoile du sommet ns
-         quamin = 2.0
-         do 20 i=1,nbtrcf
-c
-c           le numero des 3 sommets du triangle nt
-            nt = notrcf(i)
-            call nusotr( nt, mosoar, nosoar, moartr, noartr,
-     %                   nosotr )
-c           nosotr(1:3) est en equivalence avec ns1, ns2, ns3
-c
-c           la qualite du triangle ns1 ns2 ns3
-            call qutr2d( pxyd(1,ns1), pxyd(1,ns2), pxyd(1,ns3), qualit )
-            if( qualit .lt. quamin ) then
-               quamin = qualit
-               ntqmin = nt
-            endif
- 20      continue
-c
-c        bilan sur la qualite des triangles de sommet ns
-         if( quamin .lt. quaopt ) then
-c
-c           recherche du sommet de ntqmin le plus proche et non frontalier
-c           ==============================================================
-c           le numero des 3 sommets du triangle nt
-            call nusotr( ntqmin, mosoar, nosoar, moartr, noartr,
-     %                   nosotr )
-            nste   = 0
-            quamin = 1e28
-            do 30 j=1,3
-               if( nosotr(j) .ne. ns .and. nosotr(j) .gt. nbarpi ) then
-                  d = (pxyd(1,nosotr(j))-pxyd(1,ns))**2
-     %              + (pxyd(2,nosotr(j))-pxyd(2,ns))**2
-                  if( d .lt. quamin ) then
-                     quamin = d
-                     nste   = j
-                  endif
-               endif
- 30         continue
-c
-            if( nste .gt. 0 ) then
-c
-c              nste est le sommet le plus proche de ns de ce
-c              triangle de mauvaise qualite et sommet non encore traite
-               nste = nosotr( nste )
-c
-c              nste est un sommet de triangle equilateral
-c              => le sommet nste va etre supprime
-c              ==========================================
-               call te1stm( nste,   pxyd,   noarst,
-     %                      mosoar, mxsoar, n1soar, nosoar,
-     %                      moartr, mxartr, n1artr, noartr,
-     %                      mxarcf, n1arcf, noarcf,
-     %                      larmin, notrcf, liarcf, ierr )
-               if( ierr .eq. 0 ) then
-c                 un sommet de te supprime de plus
-                  nbstsu = nbstsu + 1
-               else if( ierr .lt. 0 ) then
-c                 le sommet nste est externe donc non supprime
-c                 ou bien le sommet nste est le centre d'un cf dont toutes
-c                 les aretes simples sont frontalieres
-c                 dans les 2 cas le sommet n'est pas supprime
-                  ierr = 0
-                  goto 100
-               else
-c                 erreur motivant un arret de la triangulation
-                  return
-               endif
-c
-c              boucle jusqu'a obtenir une qualite suffisante
-c              si triangulation tres irreguliere =>
-c              destruction de beaucoup de points internes
-c              les 2 variables suivantes brident ces destructions massives
-ccc               nbsuns = nbsuns + 1
-               quaopt = quaopt * 0.8
-ccc               if( nbsuns .le. 5 ) goto 15
-               goto 15
-            endif
-         endif
-c
- 100  continue
-      end
-
-
-      subroutine teamqa( nutysu,
-     %                   noarst, mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, mxartr, n1artr, noartr,
-     %                   mxtrcf, notrcf, nostbo,
-     %                   n1arcf, noarcf, larmin,
-     %                   comxmi, nbarpi, nbsomm, mxsomm, pxyd, nslign,
-     %                   ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but:    si la taille de l'arete moyenne est >ampli*taille souhaitee
-c ----    alors ajout d'un sommet barycentre du plus grand triangle
-c               de sommet ns
-c         si la taille de l'arete moyenne est <ampli/2*taille souhaitee
-c         alors suppression du sommet ns
-c         sinon le sommet ns devient le barycentre pondere de ses voisins
-c
-c         remarque: ampli est defini dans $mefisto/mail/tehote.f
-c         et doit avoir la meme valeur pour eviter trop de modifications
-c
-c entrees:
-c --------
-c nutysu : numero de traitement de areteideale() selon le type de surface
-c          0 pas d'emploi de la fonction areteideale() => aretmx active
-c          1 il existe une fonction areteideale()
-c            dont seules les 2 premieres composantes de uv sont actives
-c          autres options a definir...
-c noarst : noarst(i) numero d'une arete de sommet i
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes frontalieres declarables
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxartr : nombre maximal de triangles declarables dans noartr
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c mxtrcf : nombre maximal de triangles empilables
-c nbarpi : numero du dernier sommet frontalier ou interne impose
-c nslign : tableau du numero de sommet dans sa ligne pour chaque
-c          sommet frontalier
-c          numero du point dans le lexique point si interne impose
-c          0 si le point est interne non impose par l'utilisateur
-c         -1 si le sommet est externe au domaine
-c comxmi : min et max des coordonneees des sommets du maillage
-c
-c modifies :
-c ----------
-c nbsomm : nombre actuel de sommets de la triangulation
-c          (certains sommets internes ont ete desactives ou ajoutes)
-c pxyd   : tableau des coordonnees 2d des points
-c
-c auxiliaires:
-c ------------
-c notrcf : tableau ( mxtrcf ) auxiliaire d'entiers
-c          numero dans noartr des triangles de sommet ns
-c nostbo : tableau ( mxtrcf ) auxiliaire d'entiers
-c          numero dans pxyd des sommets des aretes simples de la boule
-c n1arcf : tableau (0:mxtrcf) auxiliaire d'entiers
-c noarcf : tableau (3,mxtrcf) auxiliaire d'entiers
-c larmin : tableau ( mxtrcf ) auxiliaire d'entiers
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       juin 1997
-c....................................................................012
-      double precision  ampli,ampli2
-      parameter        (ampli=1.34d0,ampli2=ampli/2d0)
-      parameter        (lchain=6)
-      common / unites / lecteu, imprim, nunite(30)
-      double precision  pxyd(3,*)
-      double precision  ponder, ponde1, xbar, ybar, x, y, surtd2
-      double precision  d, dmoy
-      double precision  d2d3(3,3)
-      real              origin(3), xyz(3)
-      integer           noartr(moartr,*),
-     %                  nosoar(mosoar,*),
-     %                  noarst(*),
-     %                  notrcf(mxtrcf),
-     %                  nslign(*),
-     %                  nostbo(*),
-     %                  n1arcf(0:mxtrcf),
-     %                  noarcf(3,mxtrcf),
-     %                  larmin(mxtrcf)
-      double precision  comxmi(3,2)
-      integer           nosotr(3)
-c
-c     le nombre d'iterations pour ameliorer la qualite
-      nbitaq = 4
-      ier    = 0
-c
-c     initialisation du parcours
-      nbs1 = nbsomm
-      nbs2 = nbarpi + 1
-      nbs3 = -1
-c
-      do 5000 iter=1,nbitaq
-c
-c        le nombre de sommets supprimes
-         nbstsu = 0
-         nbbaaj = 0
-c
-c        coefficient de ponderation croissant avec les iterations
-         ponder = min( 1d0, ( 50 + (50*iter)/nbitaq ) * 0.01d0 )
-         ponde1 = 1d0 - ponder
-c
-c        l'ordre du parcours dans le sens croissant ou decroissant
-         nt   = nbs1
-         nbs1 = nbs2
-         nbs2 = nt
-c        alternance du parcours
-         nbs3 = -nbs3
-c
-         do 1000 ns = nbs1, nbs2, nbs3
-c
-c           le sommet est il interne au domaine?
-            if( nslign(ns) .ne. 0 ) goto 1000
-c
-c           existe-t-il une arete de sommet ns ?
- 10         noar = noarst( ns )
-            if( noar .le. 0 ) goto 1000
-c
-c           le 1-er triangle de l'arete noar
-            nt = nosoar( 4, noar )
-            if( nt .le. 0 ) goto 1000
-c
-c           recherche des triangles de sommet ns
-c           ils doivent former un contour ferme de type etoile
-            call trp1st( ns, noarst, mosoar, nosoar, moartr, noartr,
-     %                   mxtrcf, nbtrcf, notrcf )
-            if( nbtrcf .le. 0 ) goto 1000
-c
-c           mise a jour de la distance souhaitee
-            if( nutysu .gt. 0 ) then
-c              la fonction taille_ideale(x,y,z) existe
-c              calcul de pxyzd(3,ns) dans le repere initial => xyz(1:3)
-               call tetaid( nutysu, pxyd(1,ns), pxyd(2,ns),
-     %                      pxyd(3,ns), ier )
-            endif
-c
-c           boucle sur les triangles qui forment une boule autour du sommet ns
-            nbstbo = 0
-c           chainage des aretes simples de la boule a rendre delaunay
-            noar0  = 0
-            do 40 i=1,nbtrcf
-c
-c              le numero de l'arete du triangle nt ne contenant pas le sommet ns
-               nt = notrcf(i)
-               do 20 na=1,3
-c                 le numero de l'arete na dans le tableau nosoar
-                  noar = abs( noartr(na,nt) )
-                  if( nosoar(1,noar) .ne. ns   .and.
-     %                nosoar(2,noar) .ne. ns ) goto 25
- 20            continue
-c
-c              construction de la liste des sommets des aretes simples
-c              de la boule des triangles de sommet ns
-c              -------------------------------------------------------
- 25            do 35 na=1,2
-                  ns1 = nosoar(na,noar)
-                  do 30 j=nbstbo,1,-1
-                     if( ns1 .eq. nostbo(j) ) goto 35
- 30               continue
-c                 ns1 est un nouveau sommet a ajouter
-                  nbstbo = nbstbo + 1
-                  nostbo(nbstbo) = ns1
- 35            continue
-c
-c              noar est une arete potentielle a rendre delaunay
-               if( nosoar(3,noar) .eq. 0 ) then
-c                 arete non frontaliere
-                  nosoar(lchain,noar) = noar0
-                  noar0 = noar
-               endif
-c
- 40         continue
-c
-c           calcul des 2 coordonnees du barycentre de la boule du sommet ns
-c           calcul de la longueur moyenne des aretes issues du sommet ns
-c           ---------------------------------------------------------------
-            xbar = 0d0
-            ybar = 0d0
-            dmoy = 0d0
-            do 50 i=1,nbstbo
-               x    = pxyd(1,nostbo(i))
-               y    = pxyd(2,nostbo(i))
-               xbar = xbar + x
-               ybar = ybar + y
-               dmoy = dmoy + sqrt( (x-pxyd(1,ns))**2+(y-pxyd(2,ns))**2 )
- 50         continue
-            dmoy = dmoy / nbstbo
-c
-c           pas de modification de la topologie lors de la derniere iteration
-c           =================================================================
-            if( iter .eq. nbitaq ) goto 200
-c
-c           si la taille de l'arete moyenne est >ampli*taille souhaitee
-c           alors ajout d'un sommet barycentre du plus grand triangle
-c                 de sommet ns
-c           ===========================================================
-            if( dmoy .gt. ampli*pxyd(3,ns) ) then
-c
-               dmoy = 0d0
-               do 150 i=1,nbtrcf
-c                 recherche du plus grand triangle en surface
-                  call nusotr( notrcf(i), mosoar, nosoar,
-     %                         moartr, noartr, nosotr )
-                  d  = surtd2( pxyd(1,nosotr(1)),
-     %                         pxyd(1,nosotr(2)),
-     %                         pxyd(1,nosotr(3)) )
-                  if( d .gt. dmoy ) then
-                     dmoy = d
-                     imax = i
-                  endif
- 150           continue
-c
-c              ajout du barycentre du triangle notrcf(imax)
-               nt = notrcf( imax )
-               call nusotr( nt, mosoar, nosoar,
-     %                      moartr, noartr, nosotr )
-               if( nbsomm .ge. mxsomm ) then
-                  write(imprim,*) 'saturation du tableau pxyd'
-c                 abandon de l'amelioration du sommet ns
-                  goto 9999
-               endif
-               nbsomm = nbsomm + 1
-               do 160 i=1,3
-                  pxyd(i,nbsomm) = ( pxyd(i,nosotr(1))
-     %                             + pxyd(i,nosotr(2))
-     %                             + pxyd(i,nosotr(3)) ) / 3d0
- 160           continue
-c
-               if( nutysu .gt. 0 ) then
-c                 la fonction taille_ideale(x,y,z) existe
-c                 calcul de pxyzd(3,nbsomm) dans le repere initial => xyz(1:3)
-                  call tetaid( nutysu, pxyd(1,nbsomm), pxyd(2,nbsomm),
-     %                         pxyd(3,nbsomm), ier )
-               endif
-c
-c              sommet interne a la triangulation
-               nslign(nbsomm) = 0
-c
-c              les 3 aretes du triangle nt sont a rendre delaunay
-               do 170 i=1,3
-                  noar = abs( noartr(i,nt) )
-                  if( nosoar(3,noar) .eq. 0 ) then
-c                    arete non frontaliere
-                     if( nosoar(lchain,noar) .lt. 0 ) then
-c                       arete non encore chainee
-                        nosoar(lchain,noar) = noar0
-                        noar0 = noar
-                     endif
-                  endif
- 170           continue
-c
-c              triangulation du triangle de barycentre nbsomm
-c              protection a ne pas modifier sinon erreur!
-               call tr3str( nbsomm, nt,
-     %                      mosoar, mxsoar, n1soar, nosoar,
-     %                      moartr, mxartr, n1artr, noartr,
-     %                      noarst,
-     %                      nosotr, ierr )
-               if( ierr .ne. 0 ) goto 9999
-c
-c              un barycentre ajoute de plus
-               nbbaaj = nbbaaj + 1
-c
-c              les aretes chainees de la boule sont rendues delaunay
-               goto 900
-c
-            endif
-c
-c           si la taille de l'arete moyenne est <ampli/2*taille souhaitee
-c           alors suppression du sommet ns
-c           =============================================================
-            if( dmoy .lt. ampli2*pxyd(3,ns) ) then
-c              remise a -1 du chainage des aretes peripheriques de la boule ns
-               noar = noar0
- 90            if( noar .gt. 0 ) then
-c                 protection du no de l'arete suivante
-                  na = nosoar(lchain,noar)
-c                 l'arete interne est remise a -1
-                  nosoar(lchain,noar) = -1
-c                 l'arete suivante
-                  noar = na
-                  goto 90
-               endif
-               call te1stm( ns,     pxyd,   noarst,
-     %                      mosoar, mxsoar, n1soar, nosoar,
-     %                      moartr, mxartr, n1artr, noartr,
-     %                      mxtrcf, n1arcf, noarcf,
-     %                      larmin, notrcf, nostbo,
-     %                      ierr )
-               if( ierr .lt. 0 ) then
-c                 le sommet ns est externe donc non supprime
-c                 ou bien le sommet ns est le centre d'un cf dont toutes
-c                 les aretes simples sont frontalieres
-c                 dans les 2 cas le sommet ns n'est pas supprime
-                  ierr = 0
-                  goto 200
-               else if( ierr .gt. 0 ) then
-c                 erreur irrecuperable
-                  goto 9999
-               endif
-               nbstsu = nbstsu + 1
-               goto 1000
-c
-            endif
-c
-c           les 2 coordonnees du barycentre des sommets des aretes
-c           simples de la boule du sommet ns
-c           ======================================================
- 200        xbar = xbar / nbstbo
-            ybar = ybar / nbstbo
-c
-c           ponderation pour eviter les degenerescenses
-            pxyd(1,ns) = ponde1 * pxyd(1,ns) + ponder * xbar
-            pxyd(2,ns) = ponde1 * pxyd(2,ns) + ponder * ybar
-c
-            if( nutysu .gt. 0 ) then
-c              la fonction taille_ideale(x,y,z) existe
-c              calcul de pxyzd(3,ns) dans le repere initial => xyz(1:3)
-               call tetaid( nutysu, pxyd(1,ns), pxyd(2,ns),
-     %                      pxyd(3,ns), ier )
-            endif
-c
-c           les aretes chainees de la boule sont rendues delaunay
- 900        call tedela( pxyd,   noarst,
-     %                   mosoar, mxsoar, n1soar, nosoar, noar0,
-     %                   moartr, mxartr, n1artr, noartr, modifs )
-c
- 1000    continue
-c
-ccc         write(imprim,11000) nbstsu, nbbaaj
-ccc11000 format( i6,' sommets supprimes ' ,
-ccc     %        i6,' barycentres ajoutes' )
-c
-c        mise a jour pour ne pas oublier les nouveaux sommets
-         if( nbs1 .gt. nbs2 ) then
-            nbs1 = nbsomm
-         else
-            nbs2 = nbsomm
-         endif
-c
- 5000 continue
-c
- 9999 return
-      end
-
-
-      subroutine teamsf( nutysu,
-     %                   noarst, mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, mxartr, n1artr, noartr,
-     %                   mxtrcf, notrcf, nostbo,
-     %                   n1arcf, noarcf, larmin,
-     %                   comxmi, nbarpi, nbsomm, mxsomm, pxyd, nslign,
-     %                   ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    modification de la topologie des triangles autour des
-c -----    sommets frontaliers et mise en triangulation delaunay locale
-c
-c entrees:
-c --------
-c nutysu : numero de traitement de areteideale() selon le type de surface
-c          0 pas d'emploi de la fonction areteideale() => aretmx active
-c          1 il existe une fonction areteideale()
-c            dont seules les 2 premieres composantes de uv sont actives
-c          autres options a definir...
-c noarst : noarst(i) numero d'une arete de sommet i
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes frontalieres declarables
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxartr : nombre maximal de triangles declarables dans noartr
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c mxtrcf : nombre maximal de triangles empilables
-c nbarpi : numero du dernier sommet frontalier ou interne impose
-c nslign : >0 => ns numero du point dans le lexique point si interne impose
-c          ou => 1 000 000 * n + ns1
-c              ou n   est le numero (1 a nblftr) de la ligne de ce point
-c                 ns1 est le numero du point dans sa ligne
-c          = 0 si le point est interne non impose par l'utilisateur
-c          =-1 si le sommet est externe au domaine
-c comxmi : min et max des coordonneees des sommets du maillage
-c
-c modifies :
-c ----------
-c nbsomm : nombre actuel de sommets de la triangulation
-c          (certains sommets internes ont ete desactives ou ajoutes)
-c pxyd   : tableau des coordonnees 2d des points
-c
-c auxiliaires:
-c ------------
-c notrcf : tableau ( mxtrcf ) auxiliaire d'entiers
-c          numero dans noartr des triangles de sommet ns
-c nostbo : tableau ( mxtrcf ) auxiliaire d'entiers
-c          numero dans pxyd des sommets des aretes simples de la boule
-c n1arcf : tableau (0:mxtrcf) auxiliaire d'entiers
-c noarcf : tableau (3,mxtrcf) auxiliaire d'entiers
-c larmin : tableau ( mxtrcf ) auxiliaire d'entiers
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc    janvier 1998
-c....................................................................012
-      parameter        (lchain=6)
-      common / unites / lecteu, imprim, nunite(30)
-      double precision  pxyd(3,*)
-      double precision  a, angle, angled, pi, deuxpi, pis3
-      double precision  d2d3(3,3)
-      real              origin(3), xyz(3)
-      integer           noartr(moartr,*),
-     %                  nosoar(mosoar,*),
-     %                  noarst(*),
-     %                  notrcf(mxtrcf),
-     %                  nslign(*),
-     %                  nostbo(*),
-     %                  n1arcf(0:mxtrcf),
-     %                  noarcf(3,mxtrcf),
-     %                  larmin(mxtrcf),
-     %                  nosotr(3)
-      double precision  comxmi(3,2)
-c
-c     le nombre d'iterations pour ameliorer la qualite
-      nbitaq = 2
-      ier    = 0
-c
-c     pi / 3
-      pi     = atan(1d0) * 4d0
-      pis3   = pi / 3d0
-      deuxpi = 2d0 * pi
-c
-c     initialisation du parcours
-      modifs = 0
-      nbs1   = nbarpi
-      nbs2   =  1
-c     => pas de traitement sur les points des lignes de la frontiere
-      nbs3   = -1
-c
-      do 5000 iter=1,nbitaq
-c
-c        le nombre de sommets supprimes
-         nbstsu = 0
-c
-c        l'ordre du parcours dans le sens croissant ou decroissant
-         nt   = nbs1
-         nbs1 = nbs2
-         nbs2 = nt
-c        alternance du parcours
-         nbs3 = -nbs3
-c
-         do 1000 ns = nbs1, nbs2, nbs3
-c
-c           le sommet est il sur une ligne de la frontiere?
-c           if( nslign(ns) .lt. 1 000 000 ) goto 1000
-c
-c           traitement d'un sommet d'une ligne de la frontiere
-c           ==================================================
-c           existe-t-il une arete de sommet ns ?
-            noar = noarst( ns )
-            if( noar .le. 0 ) goto 1000
-c
-c           le 1-er triangle de l'arete noar
-            nt = nosoar( 4, noar )
-            if( nt .le. 0 ) goto 1000
-c
-c           recherche des triangles de sommet ns
-c           ils doivent former un contour ferme de type camembert
-            call trp1st( ns, noarst, mosoar, nosoar, moartr, noartr,
-     %                   mxtrcf, nbtrcf, notrcf )
-            if( nbtrcf .ge. -1 ) goto 1000
-c
-c           boucle sur les triangles qui forment un camembert autour du sommet n
-            nbtrcf = -nbtrcf
-c
-c           angle interne au camembert autour du sommet ns
-            angle = 0d0
-            do 540 i=1,nbtrcf
-c
-c              le numero de l'arete du triangle nt ne contenant pas le sommet ns
-               nt = notrcf(i)
-               do 520 na=1,3
-c                 le numero de l'arete na dans le tableau nosoar
-                  noar = abs( noartr(na,nt) )
-                  if( nosoar(1,noar) .ne. ns   .and.
-     %                nosoar(2,noar) .ne. ns ) goto 525
- 520           continue
-c
-c              calcul de l'angle (ns-st1 arete, ns-st2 arete)
- 525           ns1 = nosoar(1,noar)
-               ns2 = nosoar(2,noar)
-               a   = angled( pxyd(1,ns), pxyd(1,ns1), pxyd(1,ns2) )
-               if( a .gt. pi ) a = deuxpi - a
-               angle = angle + a
-c
- 540        continue
-c
-c           nombre ideal de triangles autour du sommet ns
-            n = nint( angle / pis3 )
-            if( n .le. 1 ) goto 1000
-            i = 1
-            if( nbtrcf .gt. n ) then
-c
-c              ajout du barycentre du triangle "milieu"
-               nt = notrcf( (n+1)/2 )
-               call nusotr( nt, mosoar, nosoar,
-     %                      moartr, noartr, nosotr )
-               if( nbsomm .ge. mxsomm ) then
-                  write(imprim,*) 'saturation du tableau pxyd'
-c                 abandon de l'amelioration du sommet ns
-                  goto 1000
-               endif
-               nbsomm = nbsomm + 1
-               do 560 i=1,3
-                  pxyd(i,nbsomm) = ( pxyd(i,nosotr(1))
-     %                             + pxyd(i,nosotr(2))
-     %                             + pxyd(i,nosotr(3)) ) / 3d0
- 560           continue
-c
-               if( nutysu .gt. 0 ) then
-c                 la fonction taille_ideale(x,y,z) existe
-c                 calcul de pxyzd(3,nbsomm) dans le repere initial => xyz(1:3)
-                  call tetaid( nutysu, pxyd(1,nbsomm), pxyd(2,nbsomm),
-     %                         pxyd(3,nbsomm), ier )
-               endif
-c
-c              sommet interne a la triangulation
-               nslign(nbsomm) = 0
-c
-c              les 3 aretes du triangle nt sont a rendre delaunay
-               noar0 = 0
-               do 570 i=1,3
-                  noar = abs( noartr(i,nt) )
-                  if( nosoar(3,noar) .eq. 0 ) then
-c                    arete non frontaliere
-                     if( nosoar(lchain,noar) .lt. 0 ) then
-c                       arete non encore chainee
-                        nosoar(lchain,noar) = noar0
-                        noar0 = noar
-                     endif
-                  endif
- 570           continue
-c
-c              triangulation du triangle de barycentre nbsomm
-c              protection a ne pas modifier sinon erreur!
-               call tr3str( nbsomm, nt,
-     %                      mosoar, mxsoar, n1soar, nosoar,
-     %                      moartr, mxartr, n1artr, noartr,
-     %                      noarst,
-     %                      nosotr, ierr )
-               if( ierr .ne. 0 ) goto 9999
-c
-c              les aretes chainees de la boule sont rendues delaunay
-               call tedela( pxyd,   noarst,
-     %                      mosoar, mxsoar, n1soar, nosoar, noar0,
-     %                      moartr, mxartr, n1artr, noartr, modifs )
-            endif
-c
- 1000    continue
-c
- 5000 continue
-c
- 9999 return
-      end
-
-
-      subroutine teamqs( nutysu,
-     %                   noarst, mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, mxartr, n1artr, noartr,
-     %                   mxtrcf, notrcf, nostbo,
-     %                   n1arcf, noarcf, larmin,
-     %                   comxmi, nbarpi, nbsomm, mxsomm, pxyd, nslign,
-     %                   ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    une iteration de barycentrage des points internes
-c -----    modification de la topologie pour avoir 4 ou 5 ou 6 triangles
-c          pour chaque sommet de la triangulation
-c          mise en triangulation delaunay
-c
-c entrees:
-c --------
-c nutysu : numero de traitement de areteideale() selon le type de surface
-c          0 pas d'emploi de la fonction areteideale() => aretmx active
-c          1 il existe une fonction areteideale()
-c            dont seules les 2 premieres composantes de uv sont actives
-c          autres options a definir...
-c noarst : noarst(i) numero d'une arete de sommet i
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes frontalieres declarables
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxartr : nombre maximal de triangles declarables dans noartr
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c mxtrcf : nombre maximal de triangles empilables
-c nbarpi : numero du dernier sommet frontalier ou interne impose
-c nslign : >0 => ns numero du point dans le lexique point si interne impose
-c          ou => 1 000 000 * n + ns1
-c              ou n   est le numero (1 a nblftr) de la ligne de ce point
-c                 ns1 est le numero du point dans sa ligne
-c          = 0 si le point est interne non impose par l'utilisateur
-c          =-1 si le sommet est externe au domaine
-c comxmi : min et max des coordonneees des sommets du maillage
-c
-c modifies :
-c ----------
-c nbsomm : nombre actuel de sommets de la triangulation
-c          (certains sommets internes ont ete desactives ou ajoutes)
-c pxyd   : tableau des coordonnees 2d des points
-c
-c auxiliaires:
-c ------------
-c notrcf : tableau ( mxtrcf ) auxiliaire d'entiers
-c          numero dans noartr des triangles de sommet ns
-c nostbo : tableau ( mxtrcf ) auxiliaire d'entiers
-c          numero dans pxyd des sommets des aretes simples de la boule
-c n1arcf : tableau (0:mxtrcf) auxiliaire d'entiers
-c noarcf : tableau (3,mxtrcf) auxiliaire d'entiers
-c larmin : tableau ( mxtrcf ) auxiliaire d'entiers
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc        mai 1997
-c....................................................................012
-      parameter        (lchain=6)
-      common / unites / lecteu, imprim, nunite(30)
-      double precision  pxyd(3,*)
-      double precision  ponder, ponde1, xbar, ybar, x, y, d, dmin, dmax
-      double precision  d2d3(3,3)
-      real              origin(3), xyz(3)
-      integer           noartr(moartr,*),
-     %                  nosoar(mosoar,*),
-     %                  noarst(*),
-     %                  notrcf(mxtrcf),
-     %                  nslign(*),
-     %                  nostbo(*),
-     %                  n1arcf(0:mxtrcf),
-     %                  noarcf(3,mxtrcf),
-     %                  larmin(mxtrcf)
-      integer           nosotr(3,2)
-      double precision  comxmi(3,2)
-c
-c     le nombre d'iterations pour ameliorer la qualite
-      nbitaq = 6
-      ier    = 0
-c
-c     initialisation du parcours
-      nbs1 = nbsomm
-      nbs2 = nbarpi + 1
-c     => pas de traitement sur les points des lignes de la frontiere
-      nbs3 = -1
-c
-      do 5000 iter=1,nbitaq
-c
-c        le nombre de sommets supprimes
-         nbstsu = 0
-c
-c        les compteurs de passage sur les differents cas
-         nbst4 = 0
-         nbst5 = 0
-         nbst8 = 0
-c
-c        coefficient de ponderation croissant avec les iterations
-         ponder = min( 1d0, ( 50 + (50*iter)/nbitaq ) * 0.01d0 )
-         ponde1 = 1d0 - ponder
-c
-c        l'ordre du parcours dans le sens croissant ou decroissant
-         nt   = nbs1
-         nbs1 = nbs2
-         nbs2 = nt
-c        alternance du parcours
-         nbs3 = -nbs3
-c
-         do 1000 ns = nbs1, nbs2, nbs3
-c
-c           le sommet est il interne au domaine?
-            if( nslign(ns) .ne. 0 ) goto 1000
-c
-c           traitement d'un sommet interne non impose par l'utilisateur
-c           ===========================================================
-c           existe-t-il une arete de sommet ns ?
- 10         noar = noarst( ns )
-            if( noar .le. 0 ) goto 1000
-c
-c           le 1-er triangle de l'arete noar
-            nt = nosoar( 4, noar )
-            if( nt .le. 0 ) goto 1000
-c
-c           recherche des triangles de sommet ns
-c           ils doivent former un contour ferme de type etoile
-            call trp1st( ns, noarst, mosoar, nosoar, moartr, noartr,
-     %                   mxtrcf, nbtrcf, notrcf )
-            if( nbtrcf .le. 0 ) goto 1000
-c
-c           boucle sur les triangles qui forment une boule autour du sommet ns
-            nbstbo = 0
-c           chainage des aretes simples de la boule a rendre delaunay
-            noar0  = 0
-            do 40 i=1,nbtrcf
-c
-c              le numero de l'arete du triangle nt ne contenant pas le sommet ns
-               nt = notrcf(i)
-               do 20 na=1,3
-c                 le numero de l'arete na dans le tableau nosoar
-                  noar = abs( noartr(na,nt) )
-                  if( nosoar(1,noar) .ne. ns   .and.
-     %                nosoar(2,noar) .ne. ns ) goto 25
- 20            continue
-c
-c              construction de la liste des sommets des aretes simples
-c              de la boule des triangles de sommet ns
-c              -------------------------------------------------------
- 25            do 35 na=1,2
-                  ns1 = nosoar(na,noar)
-                  do 30 j=nbstbo,1,-1
-                     if( ns1 .eq. nostbo(j) ) goto 35
- 30               continue
-c                 ns1 est un nouveau sommet a ajouter
-                  nbstbo = nbstbo + 1
-                  nostbo(nbstbo) = ns1
- 35            continue
-c
-c              noar est une arete potentielle a rendre delaunay
-               if( nosoar(3,noar) .eq. 0 ) then
-c                 arete non frontaliere
-                  nosoar(lchain,noar) = noar0
-                  noar0 = noar
-               endif
-c
- 40         continue
-c
-c           calcul des 2 coordonnees du barycentre de la boule du sommet ns
-c           calcul de l'arete de taille maximale et minimale issue de ns
-c           ---------------------------------------------------------------
-            xbar = 0d0
-            ybar = 0d0
-            dmin = 1d28
-            dmax = 0d0
-            do 50 i=1,nbstbo
-               x    = pxyd(1,nostbo(i))
-               y    = pxyd(2,nostbo(i))
-               xbar = xbar + x
-               ybar = ybar + y
-               d    = (x-pxyd(1,ns)) ** 2 + (y-pxyd(2,ns)) ** 2
-               if( d .gt. dmax ) then
-                  dmax = d
-                  imax = i
-               endif
-               if( d .lt. dmin ) then
-                  dmin = d
-                  imin = i
-               endif
- 50         continue
-c
-c           pas de modification de la topologie lors de la derniere iteration
-c           =================================================================
-            if( iter .ge. nbitaq ) goto 200
-c
-c           si la boule de ns contient 3 ou 4 triangles le sommet ns est detruit
-c           ====================================================================
-            if( nbtrcf .le. 4 ) then
-c
-c              remise a -1 du chainage des aretes peripheriques de la boule ns
-               noar = noar0
- 60            if( noar .gt. 0 ) then
-c                 protection du no de l'arete suivante
-                  na = nosoar(lchain,noar)
-c                 l'arete interne est remise a -1
-                  nosoar(lchain,noar) = -1
-c                 l'arete suivante
-                  noar = na
-                  goto 60
-               endif
-               call te1stm( ns,     pxyd,   noarst,
-     %                      mosoar, mxsoar, n1soar, nosoar,
-     %                      moartr, mxartr, n1artr, noartr,
-     %                      mxtrcf, n1arcf, noarcf,
-     %                      larmin, notrcf, nostbo,
-     %                      ierr )
-               if( ierr .lt. 0 ) then
-c                 le sommet ns est externe donc non supprime
-c                 ou bien le sommet ns est le centre d'un cf dont toutes
-c                 les aretes simples sont frontalieres
-c                 dans les 2 cas le sommet ns n'est pas supprime
-                  ierr = 0
-                  goto 200
-               else if( ierr .eq. 0 ) then
-                  nbst4  = nbst4 + 1
-                  nbstsu = nbstsu + 1
-               else
-c                 erreur irrecuperable
-                  goto 9999
-               endif
-               goto 1000
-c
-            endif
-c
-c           si la boule de ns contient 5 triangles et a un sommet voisin
-c           sommet de 5 triangles alors l'arete joignant ces 2 sommets
-c           est transformee en un seul sommet de 6 triangles
-c           ============================================================
-            if( nbtrcf .eq. 5 ) then
-c
-               do 80 i=1,5
-c                 le numero du sommet de l'arete i et different de ns
-                  ns1 = nostbo(i)
-c                 la liste des triangles de sommet ns1
-                  call trp1st( ns1, noarst,
-     %                         mosoar, nosoar, moartr, noartr,
-     %                         mxtrcf-5, nbtrc1, notrcf(6) )
-                  if( nbtrc1 .eq. 5 ) then
-c
-c                    l'arete de sommets ns-ns1 devient un point
-c                    par suppression du sommet ns
-c
-c                    remise a -1 du chainage des aretes peripheriques de la boul
-                     noar = noar0
- 70                  if( noar .gt. 0 ) then
-c                       protection du no de l'arete suivante
-                        na = nosoar(lchain,noar)
-c                       l'arete interne est remise a -1
-                        nosoar(lchain,noar) = -1
-c                       l'arete suivante
-                        noar = na
-                        goto 70
-                     endif
-c
-c                    le point ns1 devient le milieu de l'arete ns-ns1
-                     do 75 j=1,3
-                        pxyd(j,ns1) = (pxyd(j,ns) + pxyd(j,ns1)) * 0.5d0
- 75                  continue
-c
-                     if( nutysu .gt. 0 ) then
-c                       la fonction taille_ideale(x,y,z) existe
-c                       calcul de pxyzd(3,ns1) dans le repere initial => xyz(1:3
-                        call tetaid( nutysu,pxyd(1,ns1),pxyd(2,ns1),
-     %                               pxyd(3,ns1), ier )
-                     endif
-c
-c                    suppression du point ns et mise en delaunay
-                     call te1stm( ns,     pxyd,   noarst,
-     %                            mosoar, mxsoar, n1soar, nosoar,
-     %                            moartr, mxartr, n1artr, noartr,
-     %                            mxtrcf, n1arcf, noarcf,
-     %                            larmin, notrcf, nostbo,
-     %                            ierr )
-                     if( ierr .lt. 0 ) then
-c                       le sommet ns est externe donc non supprime
-c                       ou bien le sommet ns est le centre d'un cf dont toutes
-c                       les aretes simples sont frontalieres
-c                       dans les 2 cas le sommet ns n'est pas supprime
-                        ierr = 0
-                        goto 200
-                     else if( ierr .eq. 0 ) then
-                        nbstsu = nbstsu + 1
-                        nbst5  = nbst5 + 1
-                        goto 1000
-                     else
-c                       erreur irrecuperable
-                        goto 9999
-                     endif
-                  endif
- 80            continue
-            endif
-c
-c           si la boule de ns contient au moins 8 triangles
-c           alors un triangle interne est ajoute + 3 triangles (1 par arete)
-c           ================================================================
-            if( nbtrcf .ge. 8 ) then
-c
-c              modification des coordonnees du sommet ns
-c              il devient le barycentre du triangle notrcf(1)
-               call nusotr( notrcf(1), mosoar, nosoar,
-     %                      moartr, noartr, nosotr )
-               do 110 i=1,3
-                  pxyd(i,ns) = ( pxyd(i,nosotr(1,1))
-     %                         + pxyd(i,nosotr(2,1))
-     %                         + pxyd(i,nosotr(3,1)) ) / 3d0
- 110           continue
-c
-               if( nutysu .gt. 0 ) then
-c                 la fonction taille_ideale(x,y,z) existe
-c                 calcul de pxyzd(3,nbsomm) dans le repere initial => xyz(1:3)
-                  call tetaid( nutysu, pxyd(1,ns), pxyd(2,ns),
-     %                         pxyd(3,ns), ier )
-               endif
-c
-c              ajout des 2 autres sommets comme barycentres des triangles
-c              notrcf(1+nbtrcf/3) et notrcf(1+2*nbtrcf/3)
-               nbt1 = ( nbtrcf + 1 ) / 3
-               do 140 n=1,2
-c
-c                 le triangle traite
-                  nt = notrcf(1 + n * nbt1 )
-c
-c                 le numero pxyd de ses 3 sommets
-                  call nusotr( nt, mosoar, nosoar,
-     %                         moartr, noartr, nosotr )
-c
-c                 ajout du nouveau barycentre
-                  if( nbsomm .ge. mxsomm ) then
-                     write(imprim,*) 'saturation du tableau pxyd'
-c                    abandon de l'amelioration
-                     goto 1100
-                  endif
-                  nbsomm = nbsomm + 1
-                  do 120 i=1,3
-                     pxyd(i,nbsomm) = ( pxyd(i,nosotr(1,1))
-     %                                + pxyd(i,nosotr(2,1))
-     %                                + pxyd(i,nosotr(3,1)) ) / 3d0
- 120              continue
-c
-                  if( nutysu .gt. 0 ) then
-c                    la fonction taille_ideale(x,y,z) existe
-c                    calcul de pxyzd(3,nbsomm) dans le repere initial => xyz(1:3
-                     call tetaid( nutysu, pxyd(1,nbsomm),pxyd(2,nbsomm),
-     %                            pxyd(3,nbsomm), ier )
-                  endif
-c
-c                 sommet interne a la triangulation
-                  nslign(nbsomm) = 0
-c
-c                 les 3 aretes du triangle nt sont a rendre delaunay
-                  do 130 i=1,3
-                     noar = abs( noartr(i,nt) )
-                     if( nosoar(3,noar) .eq. 0 ) then
-c                       arete non frontaliere
-                        if( nosoar(lchain,noar) .lt. 0 ) then
-c                          arete non encore chainee
-                           nosoar(lchain,noar) = noar0
-                           noar0 = noar
-                        endif
-                     endif
- 130              continue
-c
-c                 triangulation du triangle de barycentre nbsomm
-c                 protection a ne pas modifier sinon erreur!
-                  call tr3str( nbsomm, nt,
-     %                         mosoar, mxsoar, n1soar, nosoar,
-     %                         moartr, mxartr, n1artr, noartr,
-     %                         noarst,
-     %                         nosotr, ierr )
-                  if( ierr .ne. 0 ) goto 9999
- 140           continue
-c
-               nbst8  = nbst8 + 1
-c
-c              les aretes chainees de la boule sont rendues delaunay
-               goto 300
-c
-            endif
-c
-c           nbtrcf est compris entre 5 et 7 => barycentrage simple
-c           ======================================================
-c           les 2 coordonnees du barycentre des sommets des aretes
-c           simples de la boule du sommet ns
- 200        xbar = xbar / nbstbo
-            ybar = ybar / nbstbo
-c
-c           ponderation pour eviter les degenerescenses
-            pxyd(1,ns) = ponde1 * pxyd(1,ns) + ponder * xbar
-            pxyd(2,ns) = ponde1 * pxyd(2,ns) + ponder * ybar
-c
-c           les aretes chainees de la boule sont rendues delaunay
- 300        call tedela( pxyd,   noarst,
-     %                   mosoar, mxsoar, n1soar, nosoar, noar0,
-     %                   moartr, mxartr, n1artr, noartr, modifs )
-c
- 1000    continue
-c
-c        trace de la triangulation actuelle et calcul de la qualite
- 1100    continue
-c
-ccc         write(imprim,11000) nbst4, nbst5, nbst8
-ccc11000 format( i7,' sommets de 4t',
-ccc     %        i7,' sommets 5t+5t',
-ccc     %        i7,' sommets >7t' )
-c
-c        mise a jour pour ne pas oublier les nouveaux sommets
-         if( nbs1 .gt. nbs2 ) then
-            nbs1 = nbsomm
-            nbs2 = nbarpi + 1
-         else
-            nbs1 = nbarpi + 1
-            nbs2 = nbsomm
-         endif
-c
- 5000 continue
-c
- 9999 return
-      end
-
-
-      subroutine teamqt( nutysu,
-     %                   noarst, mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, mxartr, n1artr, noartr,
-     %                   mxarcf, notrcf, nostbo,
-     %                   n1arcf, noarcf, larmin,
-     %                   comxmi, nbarpi, nbsomm, mxsomm, pxyd, nslign,
-     %                   ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    amelioration de la qualite de la triangulation issue de teabr4
-c -----
-c
-c entrees:
-c --------
-c nutysu : numero de traitement de areteideale() selon le type de surface
-c          0 pas d'emploi de la fonction areteideale() => aretmx active
-c          1 il existe une fonction areteideale()
-c            dont seules les 2 premieres composantes de uv sont actives
-c          autres options a definir...
-c noarst : noarst(i) numero d'une arete de sommet i
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes frontalieres declarables
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxartr : nombre maximal de triangles declarables dans noartr
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c mxarcf : nombre maximal de triangles empilables
-c nbarpi : numero du dernier sommet frontalier ou interne impose
-c nslign : tableau du numero de sommet dans sa ligne pour chaque
-c          sommet frontalier
-c          numero du point dans le lexique point si interne impose
-c          0 si le point est interne non impose par l'utilisateur
-c         -1 si le sommet est externe au domaine
-c comxmi : min et max des coordonneees des sommets du maillage
-c
-c modifies :
-c ----------
-c nbsomm : nombre actuel de sommets de la triangulation
-c          (certains sommets internes ont ete desactives ou ajoutes)
-c pxyd   : tableau des coordonnees 2d des points
-c
-c auxiliaires:
-c ------------
-c notrcf : tableau ( mxarcf ) auxiliaire d'entiers
-c          numero dans noartr des triangles de sommet ns
-c nostbo : tableau ( mxarcf ) auxiliaire d'entiers
-c          numero dans pxyd des sommets des aretes simples de la boule
-c n1arcf : tableau (0:mxarcf) auxiliaire d'entiers
-c noarcf : tableau (3,mxarcf) auxiliaire d'entiers
-c larmin : tableau ( mxarcf ) auxiliaire d'entiers
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       juin 1997
-c....................................................................012
-      common / unites / lecteu, imprim, nunite(30)
-      double precision  pxyd(3,*), d2d3(3,3)
-      integer           noartr(moartr,*),
-     %                  nosoar(mosoar,*),
-     %                  noarst(*),
-     %                  notrcf(mxarcf),
-     %                  nslign(*),
-     %                  nostbo(mxarcf),
-     %                  n1arcf(0:mxarcf),
-     %                  noarcf(3,mxarcf),
-     %                  larmin(mxarcf)
-      double precision  comxmi(3,2)
-c
-c     suppression des sommets de triangles equilateraux trop proches
-c     d'un sommet frontalier ou d'un point interne impose par
-c     triangulation frontale de l'etoile et mise en delaunay
-c     ==============================================================
-      call tesusp( nbarpi, pxyd,   noarst,
-     %             mosoar, mxsoar, n1soar, nosoar,
-     %             moartr, mxartr, n1artr, noartr,
-     %             mxarcf, n1arcf, noarcf, larmin, notrcf, nostbo,
-     %             nbstsu, ierr )
-      if( ierr .ne. 0 ) goto 9999
-c      write(imprim,*) 'retrait de',nbstsu,
-c     %                ' sommets de te trop proches de la frontiere'
-c
-c     ajustage des tailles moyennes des aretes avec ampli=1.34d0 entre
-c     ampli/2 x taille_souhaitee et ampli x taille_souhaitee 
-c     + barycentrage des sommets et mise en triangulation delaunay
-c     ================================================================
-      call teamqa( nutysu,
-     %             noarst, mosoar, mxsoar, n1soar, nosoar,
-     %             moartr, mxartr, n1artr, noartr,
-     %             mxarcf, notrcf, nostbo,
-     %             n1arcf, noarcf, larmin,
-     %             comxmi, nbarpi, nbsomm, mxsomm, pxyd, nslign,
-     %             ierr )
-      if( ierr .ne. 0 ) goto 9999
-c
-c     modification de la topologie autour des sommets frontaliers
-c     pour avoir un nombre de triangles egal a l'angle/60 degres
-c     et mise en triangulation delaunay locale
-c     ===========================================================
-      call teamsf( nutysu,
-     %             noarst, mosoar, mxsoar, n1soar, nosoar,
-     %             moartr, mxartr, n1artr, noartr,
-     %             mxarcf, notrcf, nostbo,
-     %             n1arcf, noarcf, larmin,
-     %             comxmi, nbarpi, nbsomm, mxsomm, pxyd, nslign,
-     %             ierr )
-      if( ierr .ne. 0 ) goto 9999
-c
-c     quelques iterations de barycentrage des points internes
-c     modification de la topologie pour avoir 4 ou 5 ou 6 triangles
-c     pour chaque sommet de la triangulation
-c     et mise en triangulation delaunay
-c     =============================================================
-      call teamqs( nutysu,
-     %             noarst, mosoar, mxsoar, n1soar, nosoar,
-     %             moartr, mxartr, n1artr, noartr,
-     %             mxarcf, notrcf, nostbo,
-     %             n1arcf, noarcf, larmin,
-     %             comxmi, nbarpi, nbsomm, mxsomm, pxyd, nslign,
-     %             ierr )
-c
- 9999 return
-      end
-
-      subroutine trfrcf( nscent, mosoar, nosoar, moartr, noartr,
-     %                   nbtrcf, notrcf, nbarfr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    calculer le nombre d'aretes simples du contour ferme des
-c -----    nbtrcf triangles de numeros stockes dans le tableau notrcf
-c          ayant tous le sommet nscent
-c
-c entrees:
-c --------
-c nscent : numero du sommet appartenant a tous les triangles notrcf
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c nbtrcf : >0 nombre de triangles empiles
-c          =0       si impossible de tourner autour du point
-c          =-nbtrcf si apres butee sur la frontiere il y a a nouveau
-c          butee sur la frontiere . a ce stade on ne peut dire si tous
-c          les triangles ayant ce sommet ont ete recenses
-c          ce cas arrive seulement si le sommet est sur la frontiere
-c notrcf : numero dans noartr des triangles de sommet ns
-c
-c sortie :
-c --------
-c nbarfr : nombre d'aretes simples frontalieres
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       juin 1997
-c....................................................................012
-      integer           noartr(moartr,*),
-     %                  nosoar(mosoar,*),
-     %                  notrcf(1:nbtrcf)
-c
-      nbarfr = 0
-      do 50 n=1,nbtrcf
-c        le numero du triangle n dans le tableau noartr
-         nt = notrcf( n )
-c        parcours des 3 aretes du triangle nt
-         do 40 i=1,3
-c           le numero de l'arete i dans le tableau nosoar
-            noar = abs( noartr( i, nt ) )
-            do 30 j=1,2
-c              le numero du sommet j de l'arete noar
-               ns = nosoar( j, noar )
-               if( ns .eq. nscent ) goto 40
- 30         continue
-c           l'arete noar (sans sommet nscent) est elle frontaliere?
-            if( nosoar( 5, noar ) .le. 0 ) then
-c              l'arete appartient au plus a un triangle
-c              une arete simple frontaliere de plus
-               nbarfr = nbarfr + 1
-            endif
-c           le triangle a au plus une arete sans sommet nscent
-            goto 50
- 40      continue
- 50   continue
-      end
-
-      subroutine int2ar( p1, p2, p3, p4, oui )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    les 2 aretes de r**2 p1-p2  p3-p4 s'intersectent elles
-c -----    entre leurs sommets?
-c
-c entrees:
-c --------
-c p1,p2,p3,p4 : les 2 coordonnees reelles des sommets des 2 aretes
-c
-c sortie :
-c --------
-c oui    : .true. si intersection, .false. sinon
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc    octobre 1991
-c2345x7..............................................................012
-      double precision  p1(2),p2(2),p3(2),p4(2)
-      double precision  x21,y21,d21,x43,y43,d43,d,x,y,xx
-      logical  oui
-c
-c     longueur des aretes
-      x21 = p2(1)-p1(1)
-      y21 = p2(2)-p1(2)
-      d21 = x21**2 + y21**2
-c
-      x43 = p4(1)-p3(1)
-      y43 = p4(2)-p3(2)
-      d43 = x43**2 + y43**2
-c
-c     les 2 aretes sont-elles jugees paralleles ?
-      d = x43 * y21 - y43 * x21
-      if( abs(d) .le. 0.001 * sqrt(d21 * d43) ) then
-c        aretes paralleles . pas d'intersection
-         oui = .false.
-         return
-      endif
-c
-c     les 2 coordonnees du point d'intersection
-      x = ( p1(1)*x43*y21 - p3(1)*x21*y43 - (p1(2)-p3(2))*x21*x43 ) / d
-      y =-( p1(2)*y43*x21 - p3(2)*y21*x43 - (p1(1)-p3(1))*y21*y43 ) / d
-c
-c     coordonnees de x,y dans le repere ns1-ns2
-      xx  = ( x - p1(1) ) * x21 + ( y - p1(2) ) * y21
-c     le point est il entre p1 et p2 ?
-      oui = -0.00001d0*d21 .le. xx .and. xx .le. 1.00001d0*d21
-c
-c     coordonnees de x,y dans le repere ns3-ns4
-      xx  = ( x - p3(1) ) * x43 + ( y - p3(2) ) * y43
-c     le point est il entre p3 et p4 ?
-      oui = oui .and. -0.00001d0*d43 .le. xx .and. xx .le. 1.00001d0*d43
-      end
-
-
-      subroutine trchtd( pxyd,   nar00, nar0,  noarcf,
-     %                   namin0, namin, larmin )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    recherche dans le contour ferme du sommet qui joint a la plus
-c -----    courte arete nar00 donne le triangle sans intersection
-c          avec le contour ferme de meilleure qualite
-c
-c entrees:
-c --------
-c pxyd   : tableau des coordonnees des sommets et distance_souhaitee
-c
-c entrees et sorties:
-c -------------------
-c nar00  : numero dans noarcf de l'arete avant nar0
-c nar0   : numero dans noarcf de la plus petite arete du contour ferme
-c          a joindre a noarcf(1,namin) pour former le triangle ideal
-c noarcf : numero du sommet , numero de l'arete suivante
-c          numero du triangle exterieur a l'etoile
-c
-c sortie :
-c --------
-c namin0 : numero dans noarcf de l'arete avant namin
-c namin  : numero dans noarcf du sommet choisi
-c          0 si contour ferme reduit a moins de 3 aretes
-c larmin : tableau auxiliaire pour stocker la liste des numeros des
-c          aretes de meilleure qualite pour faire le choix final
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc    fevrier 1992
-c2345x7..............................................................012
-      double precision dmaxim, precision
-      parameter        (dmaxim=1.7d+308, precision=1d-16)
-c     ATTENTION:variables a ajuster selon la machine!
-c     ATTENTION:dmaxim : le plus grand reel machine
-c     ATTENTION:sur dec-alpha la precision est de 10**-14 seulement
-
-      common / unites / lecteu,imprim,nunite(30)
-      double precision  pxyd(1:3,1:*)
-      integer           noarcf(1:3,1:*),
-     %                  larmin(1:*)
-      double precision  q, dd, dmima,
-     %                  unpeps, rayon, surtd2
-      logical           oui
-      double precision  centre(3)
-c
-c     initialisations
-c     dmaxim : le plus grand reel machine
-      unpeps = 1d0 + 100d0 * precision
-c
-c     recherche de la plus courte arete du contour ferme
-      nbmin = 0
-      na00  = nar00
-      dmima = dmaxim
-      nbar  = 0
-c
- 2    na0  = noarcf( 2, na00 )
-      na1  = noarcf( 2, na0  )
-      nbar = nbar + 1
-c     les 2 sommets de l'arete na0 du cf
-      ns1  = noarcf( 1, na0 )
-      ns2  = noarcf( 1, na1 )
-      dd   = (pxyd(1,ns2)-pxyd(1,ns1))**2 + (pxyd(2,ns2)-pxyd(2,ns1))**2
-      if( dd .lt. dmima ) then
-         dmima = dd
-         larmin(1) = na00
-      endif
-      na00 = na0
-      if( na00 .ne. nar00 ) then
-c        derniere arete non atteinte
-         goto 2
-      endif
-c
-      if( nbar .eq. 3 ) then
-c
-c        contour ferme reduit a un triangle
-c        ----------------------------------
-         namin  = nar00
-         nar0   = noarcf( 2, nar00 )
-         namin0 = noarcf( 2, nar0  )
-         return
-c
-      else if( nbar .le. 2 ) then
-         write(imprim,*) 'erreur trchtd: cf<3 aretes'
-         namin  = 0
-         namin0 = 0
-         return
-      endif
-c
-c     cf non reduit a un triangle
-c     la plus petite arete est nar0 dans noarcf
-      nar00 = larmin( 1 )
-      nar0  = noarcf( 2, nar00 )
-      nar   = noarcf( 2, nar0  )
-c
-      ns1   = noarcf( 1, nar0 )
-      ns2   = noarcf( 1, nar  )
-c
-c     recherche dans cette etoile du sommet offrant la meilleure qualite
-c     du triangle ns1-ns2 ns3 sans intersection avec le contour ferme
-c     ==================================================================
-      nar3  = nar
-      qmima = -1
-c
-c     parcours des sommets possibles ns3
- 10   nar3  = noarcf( 2, nar3 )
-      if( nar3 .ne. nar0 ) then
-c
-c        il existe un sommet ns3 different de ns1 et ns2
-         ns3 = noarcf( 1, nar3 )
-c
-c        les aretes ns1-ns3 et ns2-ns3 intersectent-elles une arete
-c        du contour ferme ?
-c        ----------------------------------------------------------
-c        intersection de l'arete ns2-ns3 et des aretes du cf
-c        jusqu'au sommet ns3
-         nar1 = noarcf( 2, nar )
-c
- 15      if( nar1 .ne. nar3 .and. noarcf( 2, nar1 ) .ne. nar3 ) then
-c           l'arete suivante
-            nar2 = noarcf( 2, nar1 )
-c           le numero des 2 sommets de l'arete
-            np1  = noarcf( 1, nar1 )
-            np2  = noarcf( 1, nar2 )
-            call int2ar( pxyd(1,ns2), pxyd(1,ns3),
-     %                   pxyd(1,np1), pxyd(1,np2), oui )
-            if( oui ) goto 10
-c           les 2 aretes ne s'intersectent pas entre leurs sommets
-            nar1 = nar2
-            goto 15
-         endif
-c
-c        intersection de l'arete ns3-ns1 et des aretes du cf
-c        jusqu'au sommet de l'arete nar0
-         nar1 = noarcf( 2, nar3 )
-c
- 18      if( nar1 .ne. nar0 .and. noarcf( 2, nar1 ) .ne. nar0 ) then
-c           l'arete suivante
-            nar2 = noarcf( 2, nar1 )
-c           le numero des 2 sommets de l'arete
-            np1  = noarcf( 1, nar1 )
-            np2  = noarcf( 1, nar2 )
-            call int2ar( pxyd(1,ns1), pxyd(1,ns3),
-     %                   pxyd(1,np1), pxyd(1,np2), oui )
-            if( oui ) goto 10
-c           les 2 aretes ne s'intersectent pas entre leurs sommets
-            nar1 = nar2
-            goto 18
-         endif
-c
-c        le triangle ns1-ns2-ns3 n'intersecte pas une arete du contour ferme
-c        le calcul de la surface du triangle
-         dd = surtd2( pxyd(1,ns1), pxyd(1,ns2), pxyd(1,ns3) )
-         if( dd .le. 0d0 ) then
-c           surface negative => triangle a rejeter
-            q = 0
-         else
-c           calcul de la qualite du  triangle  ns1-ns2-ns3
-            call qutr2d( pxyd(1,ns1), pxyd(1,ns2), pxyd(1,ns3), q )
-         endif
-c
-         if( q .ge. qmima*1.00001 ) then
-c           q est un vrai maximum de la qualite
-            qmima = q
-            nbmin = 1
-            larmin(1) = nar3
-         else if( q .ge. qmima*0.999998 ) then
-c           q est voisin de qmima
-c           il est empile
-            nbmin = nbmin + 1
-            larmin( nbmin ) = nar3
-         endif
-         goto 10
-      endif
-c
-c     bilan : existe t il plusieurs sommets de meme qualite?
-c     ======================================================
-      if( nbmin .gt. 1 ) then
-c
-c        oui:recherche de ceux de cercle ne contenant pas d'autres sommets
-         do 80 i=1,nbmin
-c           le sommet
-            nar = larmin( i )
-            if( nar .le. 0 ) goto 80
-            ns3 = noarcf(1,nar)
-c           les coordonnees du centre du cercle circonscrit
-c           et son rayon
-            ier = -1
-            call cenced( pxyd(1,ns1), pxyd(1,ns2), pxyd(1,ns3),
-     %                   centre, ier )
-            if( ier .ne. 0 ) then
-c              le sommet ns3 ne convient pas
-               larmin( i ) = 0
-               goto 80
-            endif
-            rayon = centre(3) * unpeps
-            do 70 j=1,nbmin
-               if( j .ne. i ) then
-c                 l'autre sommet
-                  nar1 = larmin(j)
-                  if( nar1 .le. 0 ) goto 70
-                  ns4 = noarcf(1,nar1)
-c                 appartient t il au cercle ns1 ns2 ns3 ?
-                  dd = (centre(1)-pxyd(1,ns4))**2 +
-     %                 (centre(2)-pxyd(2,ns4))**2
-                  if( dd .le. rayon ) then
-c                    ns4 est dans le cercle circonscrit  ns1 ns2 ns3
-c                    le sommet ns3 ne convient pas
-                     larmin( i ) = 0
-                     goto 80
-                  endif
-               endif
- 70         continue
- 80      continue
-c
-c        existe t il plusieurs sommets ?
-         j = 0
-         do 90 i=1,nbmin
-            if( larmin( i ) .gt. 0 ) then
-c              compactage des min
-               j = j + 1
-               larmin(j) = larmin(i)
-            endif
- 90      continue
-c
-         if( j .gt. 1 ) then
-c           oui : choix du plus petit rayon de cercle circonscrit
-            dmima = dmaxim
-            do 120 i=1,nbmin
-               ns3 = noarcf(1,larmin(i))
-c
-c              les coordonnees du centre de cercle circonscrit
-c              au triangle nt et son rayon
-               ier = -1
-               call cenced( pxyd(1,ns1), pxyd(1,ns2), pxyd(1,ns3),
-     %                      centre, ier )
-               if( ier .ne. 0 ) then
-c                 le sommet ns3 ne convient pas
-                  goto 120
-               endif
-               rayon = sqrt( centre(3) )
-               if( rayon .lt. dmima ) then
-                  dmima = rayon
-                  larmin(1) = larmin(i)
-               endif
- 120        continue
-         endif
-      endif
-c
-c     le choix final
-c     ==============
-      namin = larmin(1)
-c
-c     recherche de l'arete avant namin ( nar0 <> namin )
-c     ==================================================
-      nar1 = nar0
- 200  if( nar1 .ne. namin ) then
-         namin0 = nar1
-         nar1   = noarcf( 2, nar1 )
-         goto 200
-      endif
-      end
-
-      subroutine trcf0a( nbcf,   na01,   na1, na2, na3,
-     %                   noar1,  noar2,  noar3,
-     %                   mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, n1artr, noartr, noarst,
-     %                   mxarcf, n1arcf, noarcf, nt )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    modification de la triangulation du contour ferme nbcf
-c -----    par ajout d'un triangle ayant 0 arete sur le contour
-c          creation des 3 aretes dans le tableau nosoar
-c          modification du contour par ajout de la 3-eme arete
-c          creation d'un contour ferme a partir de la seconde arete
-c
-c entrees:
-c --------
-c nbcf    : numero dans n1arcf du cf traite ici
-c na01    : numero noarcf de l'arete precedent l'arete na1 de noarcf
-c na1     : numero noarcf du 1-er sommet du triangle
-c           implicitement l'arete na1 n'est pas une arete du triangle
-c na2     : numero noarcf du 2-eme sommet du triangle
-c           implicitement l'arete na1 n'est pas une arete du triangle
-c na3     : numero noarcf du 3-eme sommet du triangle
-c           implicitement l'arete na1 n'est pas une arete du triangle
-c
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c          attention: mxsoar>3*mxsomm obligatoire!
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c
-c entrees et sorties :
-c --------------------
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c          une arete i de nosoar est vide  <=>  nosoar(1,i)=0
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = nosoar(1)+nosoar(2)*2
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c
-c noarst : noarst(i) numero d'une arete de sommet i
-c n1arcf : numero d'une arete de chaque contour
-c noarcf : numero des aretes de la ligne du contour ferme
-c          attention : chainage circulaire des aretes
-c
-c sortie :
-c --------
-c noar1  : numero dans le tableau nosoar de l'arete 1 du triangle
-c noar2  : numero dans le tableau nosoar de l'arete 2 du triangle
-c noar3  : numero dans le tableau nosoar de l'arete 3 du triangle
-c nt     : numero du triangle ajoute dans noartr
-c          0 si saturation du tableau noartr ou noarcf ou n1arcf
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c2345x7..............................................................012
-      common / unites / lecteu, imprim, nunite(30)
-      integer           nosoar(mosoar,*),
-     %                  noartr(moartr,*),
-     %                  noarst(*),
-     %                  n1arcf(0:*),
-     %                  noarcf(3,*)
-c
-      ierr = 0
-c
-c     2 contours fermes peuvent ils etre ajoutes ?
-      if( nbcf+2 .gt. mxarcf ) goto 9100
-c
-c     creation des 3 aretes du triangle dans le tableau nosoar
-c     ========================================================
-c     la formation de l'arete sommet1-sommet2 dans le tableau nosoar
-      call fasoar( noarcf(1,na1), noarcf(1,na2), -1, -1,  0,
-     %             mosoar, mxsoar, n1soar, nosoar, noarst,
-     %             noar1,  ierr )
-      if( ierr .ne. 0 ) goto 9900
-c
-c     la formation de l'arete sommet2-sommet3 dans le tableau nosoar
-      call fasoar( noarcf(1,na2), noarcf(1,na3), -1, -1,  0,
-     %             mosoar, mxsoar, n1soar, nosoar, noarst,
-     %             noar2,  ierr )
-      if( ierr .ne. 0 ) goto 9900
-c
-c     la formation de l'arete sommet3-sommet1 dans le tableau nosoar
-      call fasoar( noarcf(1,na3), noarcf(1,na1), -1, -1,  0,
-     %             mosoar, mxsoar, n1soar, nosoar, noarst,
-     %             noar3,  ierr )
-      if( ierr .ne. 0 ) goto 9900
-c
-c     ajout dans noartr de ce triangle nt
-c     ===================================
-      call trcf3a( noarcf(1,na1),  noarcf(1,na2), noarcf(1,na3),
-     %             noar1,  noar2,  noar3,
-     %             mosoar, nosoar,
-     %             moartr, n1artr, noartr,
-     %             nt )
-      if( nt .le. 0 ) return
-c
-c     modification du contour nbcf existant
-c     chainage de l'arete na2 vers l'arete na1
-c     ========================================
-c     modification du cf en pointant na2 sur na1
-      na2s = noarcf( 2, na2 )
-      noarcf( 2, na2 ) = na1
-c     le numero de l'arete dans le tableau nosoar
-      noar2s = noarcf( 3, na2 )
-c     le numero de l'arete dans le tableau nosoar
-      noarcf( 3, na2 ) = noar1
-c     debut du cf
-      n1arcf( nbcf ) = na2
-c
-c     creation d'un nouveau contour ferme na2 - na3
-c     =============================================
-      nbcf = nbcf + 1
-c     recherche d'une arete de cf vide
-      nav = n1arcf(0)
-      if( nav .le. 0 ) goto 9100
-c     la 1-ere arete vide est mise a jour
-      n1arcf(0) = noarcf( 2, nav )
-c
-c     ajout de l'arete nav pointant sur na2s
-c     le numero du sommet
-      noarcf( 1, nav ) = noarcf( 1, na2 )
-c     l'arete suivante
-      noarcf( 2, nav ) = na2s
-c     le numero nosoar de cette arete
-      noarcf( 3, nav ) = noar2s
-c
-c     l'arete na3 se referme sur nav
-      na3s = noarcf( 2, na3 )
-      noarcf( 2, na3 ) = nav
-c     le numero de l'arete dans le tableau nosoar
-      noar3s = noarcf( 3, na3 )
-      noarcf( 3, na3 ) = noar2
-c     debut du cf+1
-      n1arcf( nbcf ) = na3
-c
-c     creation d'un nouveau contour ferme na3 - na1
-c     =============================================
-      nbcf = nbcf + 1
-c     recherche d'une arete de cf vide
-      nav = n1arcf(0)
-      if( nav .le. 0 ) goto 9100
-c     la 1-ere arete vide est mise a jour
-      n1arcf(0) = noarcf( 2, nav )
-c
-c     ajout de l'arete nav pointant sur na3s
-c     le numero du sommet
-      noarcf( 1, nav ) = noarcf( 1, na3 )
-c     l'arete suivante
-      noarcf( 2, nav ) = na3s
-c     le numero de l'arete dans le tableau nosoar
-      noarcf( 3, nav ) = noar3s
-c
-c     recherche d'une arete de cf vide
-      nav1 = n1arcf(0)
-      if( nav1 .le. 0 ) goto 9100
-c     la 1-ere arete vide est mise a jour
-      n1arcf(0) = noarcf( 2, nav1 )
-c
-c     l'arete precedente na01 de na1 pointe sur la nouvelle nav1
-      noarcf( 2, na01 ) = nav1
-c
-c     ajout de l'arete nav1 pointant sur nav
-c     le numero du sommet
-      noarcf( 1, nav1 ) = noarcf( 1, na1 )
-c     l'arete suivante
-      noarcf( 2, nav1 ) = nav
-c     le numero de l'arete dans le tableau nosoar
-      noarcf( 3, nav1 ) = noar3
-c
-c     debut du cf+2
-      n1arcf( nbcf ) = nav1
-      return
-c
-c     erreur
- 9100 write(imprim,*) 'saturation du tableau mxarcf'
-      nt = 0
-      return
-c
-c     erreur tableau nosoar sature
- 9900 write(imprim,*) 'saturation du tableau nosoar'
-      nt = 0
-      return
-      end
-
-
-      subroutine trcf1a( nbcf,   na01,   na1,    na2, noar1, noar3,
-     %                   mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, n1artr, noartr, noarst,
-     %                   mxarcf, n1arcf, noarcf, nt )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    modification de la triangulation du contour ferme nbcf
-c -----    par ajout d'un triangle ayant 1 arete sur le contour
-c          modification du contour par ajout de la 3-eme arete
-c          creation d'un contour ferme a partir de la seconde arete
-c
-c entrees:
-c --------
-c nbcf    : numero dans n1arcf du cf traite ici
-c na01    : numero noarcf de l'arete precedant l'arete na1 de noarcf
-c na1     : numero noarcf du 1-er sommet du triangle
-c           implicitement l'arete na1 n'est pas une arete du triangle
-c na2     : numero noarcf du 2-eme sommet du triangle
-c           cette arete est l'arete 2 du triangle a ajouter
-c           son arete suivante dans noarcf n'est pas sur le contour
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c          attention: mxsoar>3*mxsomm obligatoire!
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c
-c entrees et sorties :
-c --------------------
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c          une arete i de nosoar est vide  <=>  nosoar(1,i)=0
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = nosoar(1)+nosoar(2)*2
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c
-c noarst : noarst(i) numero d'une arete de sommet i
-c n1arcf : numero d'une arete de chaque contour
-c noarcf : numero des aretes de la ligne du contour ferme
-c          attention : chainage circulaire des aretes
-c
-c sortie :
-c --------
-c noar1  : numero nosoar de l'arete 1 du triangle cree
-c noar3  : numero nosoar de l'arete 3 du triangle cree
-c nt     : numero du triangle ajoute dans notria
-c          0 si saturation du tableau notria ou noarcf ou n1arcf
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c2345x7..............................................................012
-      common / unites / lecteu, imprim, nunite(30)
-      integer           nosoar(mosoar,mxsoar),
-     %                  noartr(moartr,*),
-     %                  noarst(*),
-     %                  n1arcf(0:*),
-     %                  noarcf(3,*)
-c
-c     un cf supplementaire peut il etre ajoute ?
-      if( nbcf .ge. mxarcf ) then
-         write(imprim,*) 'saturation du tableau noarcf'
-         nt = 0
-         return
-      endif
-c
-      ierr = 0
-c
-c     l' arete suivante du triangle non sur le cf
-      na3 = noarcf( 2, na2 )
-c
-c     creation des 2 nouvelles aretes du triangle dans le tableau nosoar
-c     ==================================================================
-c     la formation de l'arete sommet1-sommet2 dans le tableau nosoar
-      call fasoar( noarcf(1,na1), noarcf(1,na2), -1, -1,  0,
-     %             mosoar, mxsoar, n1soar, nosoar, noarst,
-     %             noar1,  ierr )
-      if( ierr .ne. 0 ) goto 9900
-c
-c     la formation de l'arete sommet1-sommet3 dans le tableau nosoar
-      call fasoar( noarcf(1,na3), noarcf(1,na1), -1, -1,  0,
-     %             mosoar, mxsoar, n1soar, nosoar, noarst,
-     %             noar3,  ierr )
-      if( ierr .ne. 0 ) goto 9900
-c
-c     le triangle nt de noartr a l'arete 2 comme arete du contour na2
-c     ===============================================================
-      call trcf3a( noarcf(1,na1), noarcf(1,na2), noarcf(1,na3),
-     %             noar1, noarcf(3,na2), noar3,
-     %             mosoar, nosoar,
-     %             moartr, n1artr, noartr,
-     %             nt )
-      if( nt .le. 0 ) return
-c
-c     modification du contour ferme existant
-c     suppression de l'arete na2 du cf
-c     ======================================
-c     modification du cf en pointant na2 sur na1
-      noarcf( 2, na2 ) = na1
-      noarcf( 3, na2 ) = noar1
-c     debut du cf
-      n1arcf( nbcf ) = na2
-c
-c     creation d'un nouveau contour ferme na3 - na1
-c     =============================================
-      nbcf = nbcf + 1
-c
-c     recherche d'une arete de cf vide
-      nav = n1arcf(0)
-      if( nav .le. 0 ) then
-         write(imprim,*) 'saturation du tableau noarcf'
-         nt = 0
-         return
-      endif
-c
-c     la 1-ere arete vide est mise a jour
-      n1arcf(0) = noarcf( 2, nav )
-c
-c     ajout de l'arete nav pointant sur na3
-c     le numero du sommet
-      noarcf( 1, nav ) = noarcf( 1, na1 )
-c     l'arete suivante
-      noarcf( 2, nav ) = na3
-c     le numero de l'arete dans le tableau nosoar
-      noarcf( 3, nav ) = noar3
-c
-c     l'arete precedente na01 de na1 pointe sur la nouvelle nav
-      noarcf( 2, na01 ) = nav
-c
-c     debut du cf
-      n1arcf( nbcf ) = nav
-      return
-c
-c     erreur tableau nosoar sature
- 9900 write(imprim,*) 'saturation du tableau nosoar'
-      nt = 0
-      return
-      end
-
-
-      subroutine trcf2a( nbcf,   na1,    noar3,
-     %                   mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, n1artr, noartr, noarst,
-     %                   n1arcf, noarcf, nt )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    modification de la triangulation du contour ferme nbcf
-c -----    par ajout d'un triangle ayant 2 aretes sur le contour
-c          creation d'une arete dans nosoar (sommet3-sommet1)
-c          et modification du contour par ajout de la 3-eme arete
-c
-c entrees:
-c --------
-c nbcf   : numero dans n1arcf du cf traite ici
-c na1    : numero noarcf de la premiere arete sur le contour
-c          implicitement sa suivante est sur le contour
-c          la suivante de la suivante n'est pas sur le contour
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c          attention: mxsoar>3*mxsomm obligatoire!
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c
-c entrees et sorties :
-c --------------------
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c          une arete i de nosoar est vide  <=>  nosoar(1,i)=0
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = nosoar(1)+nosoar(2)*2
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c
-c noarst : noarst(i) numero d'une arete de sommet i
-c n1arcf : numero d'une arete de chaque contour
-c noarcf : numero des aretes de la ligne du contour ferme
-c          attention : chainage circulaire des aretes
-c
-c sortie :
-c --------
-c noar3  : numero de l'arete 3 dans le tableau nosoar
-c nt     : numero du triangle ajoute dans noartr
-c          0 si saturation du tableau noartr ou nosoar
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c2345x7..............................................................012
-      common / unites / lecteu, imprim, nunite(30)
-      integer           nosoar(mosoar,*),
-     %                  noartr(moartr,*),
-     %                  noarst(*)
-      integer           n1arcf(0:*),
-     %                  noarcf(3,*)
-c
-      ierr = 0
-c
-c     l'arete suivante de l'arete na1 dans noarcf
-      na2 = noarcf( 2, na1 )
-c     l'arete suivante de l'arete na2 dans noarcf
-      na3 = noarcf( 2, na2 )
-c
-c     la formation de l'arete sommet3-sommet1 dans le tableau nosoar
-      call fasoar( noarcf(1,na3), noarcf(1,na1), -1, -1,  0,
-     %             mosoar, mxsoar, n1soar, nosoar, noarst,
-     %             noar3,  ierr )
-      if( ierr .ne. 0 ) then
-         if( ierr .eq. 1 ) then
-            write(imprim,*) 'saturation des aretes (tableau nosoar)'
-         endif
-         nt = 0
-         return
-      endif
-c
-c     le triangle a ses 2 aretes na1 na2 sur le contour ferme
-c     ajout dans noartr de ce triangle nt
-      call trcf3a( noarcf(1,na1), noarcf(1,na2), noarcf(1,na3),
-     %             noarcf(3,na1), noarcf(3,na2), noar3,
-     %             mosoar, nosoar,
-     %             moartr, n1artr, noartr,
-     %             nt )
-      if( nt .le. 0 ) return
-c
-c     suppression des 2 aretes (na1 na2) du cf
-c     ces 2 aretes se suivent dans le chainage du cf
-c     ajout de la 3-eme arete  (noar3) dans le cf
-c     l'arete suivante de na1 devient la suivante de na2
-      noarcf(2,na1) = na3
-      noarcf(3,na1) = noar3
-c
-c     l'arete na2 devient vide dans noarcf
-      noarcf(2,na2) = n1arcf( 0 )
-      n1arcf( 0 )   = na2
-c
-c     la premiere pointee dans noarcf est na1
-c     chainage circulaire => ce peut etre n'importe laquelle
-      n1arcf(nbcf) = na1
-      end
-
-
-      subroutine trcf3a( ns1,    ns2,    ns3,
-     %                   noar1,  noar2,  noar3,
-     %                   mosoar, nosoar,
-     %                   moartr, n1artr, noartr,
-     %                   nt )
-c++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    ajouter dans le tableau noartr le triangle
-c -----    de sommets ns1   ns2   ns3
-c          d'aretes   noar1 noar2 noar3 deja existantes
-c                     dans le tableau nosoar des aretes
-c
-c entrees:
-c --------
-c ns1,  ns2,  ns3   : le numero dans pxyd   des 3 sommets du triangle
-c noar1,noar2,noar3 : le numero dans nosoar des 3 aretes  du triangle
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c          attention: mxsoar>3*mxsomm obligatoire!
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxartr : nombre maximal de triangles stockables dans le tableau noartr
-c
-c modifies :
-c ----------
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = nosoar(1)+nosoar(2)*2
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c
-c sorties:
-c --------
-c nt     : numero dans noartr du triangle ajoute
-c          =0 si le tableau noartr est sature
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c....................................................................012
-      common / unites / lecteu,imprim,nunite(30)
-      integer           nosoar(mosoar,*),
-     %                  noartr(moartr,*)
-c
-c     recherche d'un triangle libre dans le tableau noartr
-      if( n1artr .le. 0 ) then
-         write(imprim,*) 'saturation du tableau noartr des aretes'
-         nt = 0
-         return
-      endif
-c
-c     le numero dans noartr du nouveau triangle
-      nt = n1artr
-c
-c     le nouveau premier triangle vide dans le tableau noartr
-      n1artr = noartr(2,n1artr)
-c
-c     arete 1 du triangle nt
-c     ======================
-c     orientation des 3 aretes du triangle pour qu'il soit direct
-      if( ns1 .eq. nosoar(1,noar1) ) then
-         n =  1
-      else
-         n = -1
-      endif
-c     le numero de l'arete 1 du triangle nt
-      noartr(1,nt) = n * noar1
-c
-c     le numero du triangle nt pour l'arete
-      if( nosoar(4,noar1) .le. 0 ) then
-         n = 4
-      else
-         n = 5
-      endif
-      nosoar(n,noar1) = nt
-c
-c     arete 2 du triangle nt
-c     ======================
-c     orientation des 3 aretes du triangle pour qu'il soit direct
-      if( ns2 .eq. nosoar(1,noar2) ) then
-         n =  1
-      else
-         n = -1
-      endif
-c     le numero de l'arete 2 du triangle nt
-      noartr(2,nt) = n * noar2
-c
-c     le numero du triangle nt pour l'arete
-      if( nosoar(4,noar2) .le. 0 ) then
-         n = 4
-      else
-         n = 5
-      endif
-      nosoar(n,noar2) = nt
-c
-c     arete 3 du triangle nt
-c     ======================
-c     orientation des 3 aretes du triangle pour qu'il soit direct
-      if( ns3 .eq. nosoar(1,noar3) ) then
-         n =  1
-      else
-         n = -1
-      endif
-c     le numero de l'arete 3 du triangle nt
-      noartr(3,nt) = n * noar3
-c
-c     le numero du triangle nt pour l'arete
-      if( nosoar(4,noar3) .le. 0 ) then
-         n = 4
-      else
-         n = 5
-      endif
-      nosoar(n,noar3) = nt
-      end
-
-
-
-      subroutine trcf3s( nbcf,   na01,   na1,    na02,  na2, na03, na3,
-     %                   mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, n1artr, noartr, noarst,
-     %                   mxarcf, n1arcf, noarcf, nt )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :     ajout d'un triangle d'aretes na1 2 3 du tableau noarcf
-c -----     a la triangulation d'un contour ferme (cf)
-c
-c entrees:
-c --------
-c nbcf    : numero dans n1arcf du cf traite ici
-c           mais aussi nombre actuel de cf avant ajout du triangle
-c na01    : numero noarcf de l'arete precedent l'arete na1 de noarcf
-c na1     : numero noarcf du 1-er sommet du triangle
-c na02    : numero noarcf de l'arete precedent l'arete na2 de noarcf
-c na2     : numero noarcf du 2-eme sommet du triangle
-c na03    : numero noarcf de l'arete precedent l'arete na3 de noarcf
-c na3     : numero noarcf du 3-eme sommet du triangle
-c
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c          attention: mxsoar>3*mxsomm obligatoire!
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxarcf : nombre maximal d'aretes declarables dans noarcf, n1arcf
-c
-c modifies:
-c ---------
-c n1soar : no de l'eventuelle premiere arete libre dans le tableau nosoar
-c          chainage des vides suivant en 3 et precedant en 2 de nosoar
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = nosoar(1)+nosoar(2)*2
-c          avec mxsoar>=3*mxsomm
-c          une arete i de nosoar est vide <=> nosoar(1,i)=0 et
-c          nosoar(2,arete vide)=l'arete vide qui precede
-c          nosoar(3,arete vide)=l'arete vide qui suit
-c
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c noarst : noarst(i) numero d'une arete de sommet i
-c
-c n1arcf : numero d'une arete de chaque contour ferme
-c noarcf : numero du sommet , numero de l'arete suivante
-c          numero de l'arete dans le tableau nosoar
-c          attention : chainage circulaire des aretes
-c
-c sortie :
-c --------
-c nbcf   : nombre actuel de cf apres ajout du triangle
-c nt     : numero du triangle ajoute dans noartr
-c          0 si saturation du tableau nosoar ou noartr ou noarcf ou n1arcf
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c2345x7..............................................................012
-      integer        nosoar(mosoar,*),
-     %               noartr(moartr,*),
-     %               noarst(*),
-     %               n1arcf(0:mxarcf),
-     %               noarcf(3,mxarcf)
-c
-c     combien y a t il d'aretes nbascf sur le cf ?
-c     ============================================
-c     la premiere arete est elle sur le cf?
-      if( noarcf(2,na1) .eq. na2 ) then
-c        la 1-ere arete est sur le cf
-         na1cf  = 1
-      else
-c        la 1-ere arete n'est pas sur le cf
-         na1cf  = 0
-      endif
-c
-c     la seconde arete est elle sur le cf?
-      if( noarcf(2,na2) .eq. na3 ) then
-c        la 2-eme arete est sur le cf
-         na2cf = 1
-      else
-         na2cf = 0
-      endif
-c
-c     la troisieme arete est elle sur le cf?
-      if( noarcf(2,na3) .eq. na1 ) then
-c        la 3-eme arete est sur le cf
-         na3cf = 1
-      else
-         na3cf = 0
-      endif
-c
-c     le nombre d'aretes sur le cf
-      nbascf = na1cf + na2cf + na3cf
-c
-c     traitement selon le nombre d'aretes sur le cf
-c     =============================================
-      if( nbascf .eq. 3 ) then
-c
-c        le contour ferme se reduit a un triangle avec 3 aretes sur le cf
-c        ----------------------------------------------------------------
-c        ajout dans noartr de ce nouveau triangle
-         call trcf3a( noarcf(1,na1), noarcf(1,na2), noarcf(1,na3),
-     %                noarcf(3,na1), noarcf(3,na2), noarcf(3,na3),
-     %                mosoar, nosoar,
-     %                moartr, n1artr, noartr,
-     %                nt )
-         if( nt .le. 0 ) return
-c
-c        le cf est supprime et chaine vide
-         noarcf(2,na3) = n1arcf(0)
-         n1arcf( 0 )   = na1
-c
-c        ce cf a ete traite => un cf de moins a traiter
-         nbcf = nbcf - 1
-c
-      else if( nbascf .eq. 2 ) then
-c
-c        le triangle a 2 aretes sur le contour
-c        -------------------------------------
-c        les 2 aretes sont la 1-ere et 2-eme du triangle
-         if( na1cf .eq. 0 ) then
-c           l'arete 1 n'est pas sur le cf
-            naa1 = na2
-         else if( na2cf .eq. 0 ) then
-c           l'arete 2 n'est pas sur le cf
-            naa1 = na3
-         else
-c           l'arete 3 n'est pas sur le cf
-            naa1 = na1
-         endif
-c        le triangle oppose a l'arete 3 est inconnu
-c        modification du contour apres integration du
-c        triangle ayant ses 2-eres aretes sur le cf
-         call trcf2a( nbcf,   naa1,   naor3,
-     %                mosoar, mxsoar, n1soar, nosoar,
-     %                moartr, n1artr, noartr, noarst,
-     %                n1arcf, noarcf, nt )
-c
-      else if( nbascf .eq. 1 ) then
-c
-c        le triangle a 1 arete sur le contour
-c        ------------------------------------
-c        cette arete est la seconde du triangle
-         if( na3cf .ne. 0 ) then
-c           l'arete 3 est sur le cf
-            naa01 = na02
-            naa1  = na2
-            naa2  = na3
-         else if( na1cf .ne. 0 ) then
-c           l'arete 1 est sur le cf
-            naa01 = na03
-            naa1  = na3
-            naa2  = na1
-         else
-c           l'arete 2 est sur le cf
-            naa01 = na01
-            naa1  = na1
-            naa2  = na2
-         endif
-c        le triangle oppose a l'arete 1 et 3 est inconnu
-c        modification du contour apres integration du
-c        triangle ayant 1 arete sur le cf avec creation
-c        d'un nouveau contour ferme
-         call trcf1a( nbcf, naa01, naa1, naa2, naor1, naor3,
-     %                mosoar, mxsoar, n1soar, nosoar,
-     %                moartr, n1artr, noartr, noarst,
-     %                mxarcf, n1arcf, noarcf, nt )
-c
-      else
-c
-c        le triangle a 0 arete sur le contour
-c        ------------------------------------
-c        modification du contour apres integration du
-c        triangle ayant 0 arete sur le cf avec creation
-c        de 2 nouveaux contours fermes
-         call trcf0a( nbcf, na01,  na1, na2, na3,
-     %                naa1, naa2, naa01,
-     %                mosoar, mxsoar, n1soar, nosoar,
-     %                moartr, n1artr, noartr, noarst,
-     %                mxarcf, n1arcf, noarcf, nt )
-      endif
-      end
-
-
-      subroutine tridcf( nbcf0,  pxyd,   noarst,
-     %                   mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, n1artr, noartr,
-     %                   mxarcf, n1arcf, noarcf, larmin,
-     %                   nbtrcf, notrcf, ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    triangulation directe de nbcf0 contours fermes (cf)
-c -----    definis par la liste circulaire de leurs aretes peripheriques
-c
-c entrees:
-c --------
-c nbcf0  : nombre initial de cf a trianguler
-c pxyd   : tableau des coordonnees 2d des points
-c          par point : x  y  distance_souhaitee
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c          attention: mxsoar>3*mxsomm obligatoire!
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxarcf  : nombre maximal d'aretes declarables dans noarcf, n1arcf, larmin, not
-c
-c modifies:
-c ---------
-c noarst : noarst(i) numero d'une arete de sommet i
-c n1soar : no de l'eventuelle premiere arete libre dans le tableau nosoar
-c          chainage des vides suivant en 3 et precedant en 2 de nosoar
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = nosoar(1)+nosoar(2)*2
-c          avec mxsoar>=3*mxsomm
-c          une arete i de nosoar est vide <=> nosoar(1,i)=0 et
-c          nosoar(2,arete vide)=l'arete vide qui precede
-c          nosoar(3,arete vide)=l'arete vide qui suit
-c
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c
-c n1arcf : numero de la premiere arete de chacun des nbcf0 cf
-c          n1arcf(0)   no de la premiere arete vide du tableau noarcf
-c          noarcf(2,i) no de l'arete suivante
-c noarcf : numero du sommet , numero de l'arete suivante du cf
-c          numero de l'arete dans le tableau nosoar
-c
-c auxiliaires :
-c -------------
-c larmin : tableau (mxarcf)   auxiliaire
-c          stocker la liste des numeros des meilleures aretes
-c          lors de la selection du meilleur sommet du cf a trianguler
-c          cf le sp trchtd
-c
-c sortie :
-c --------
-c nbtrcf : nombre de  triangles des nbcf0 cf
-c notrcf : numero des triangles des nbcf0 cf dans le tableau noartr
-c ierr   : 0 si pas d'erreur
-c          2 saturation de l'un des des tableaux nosoar, noartr, ...
-c          3 si contour ferme reduit a moins de 3 aretes
-c          4 saturation du tableau notrcf
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c....................................................................012
-      common / unites / lecteu, imprim, nunite(30)
-      double precision  pxyd(3,*)
-      integer           noartr(moartr,*),
-     %                  nosoar(mosoar,mxsoar),
-     %                  noarst(*),
-     %                  n1arcf(0:mxarcf),
-     %                  noarcf(3,mxarcf),
-     %                  larmin(mxarcf),
-     %                  notrcf(mxarcf)
-c
-ccc      integer           nosotr(3)
-ccc      double precision  d, surtd2
-c
-c     depart avec nbcf0 cf a trianguler
-      nbcf   = nbcf0
-c
-c     le nombre de triangles formes dans l'ensemble des cf
-      nbtrcf = 0
-c
-c     tant qu'il existe un cf a trianguler faire
-c     la triangulation directe du cf
-c     ==========================================
- 10   if( nbcf .gt. 0 ) then
-c
-c        le cf en haut de pile a pour premiere arete
-         na01 = n1arcf( nbcf )
-         na1  = noarcf( 2, na01 )
-c
-c        choix du sommet du cf a relier a l'arete na1
-c        --------------------------------------------
-         call trchtd( pxyd, na01, na1, noarcf,
-     %                na03, na3,  larmin )
-         if( na3 .eq. 0 ) then
-            ierr = 3
-            return
-         endif
-c
-c        l'arete suivante de na1
-         na02 = na1
-         na2  = noarcf( 2, na1 )
-c
-c        formation du triangle arete na1 - sommet noarcf(1,na3)
-c        ------------------------------------------------------
-         call trcf3s( nbcf,   na01, na1, na02, na2, na03, na3,
-     %                mosoar, mxsoar, n1soar, nosoar,
-     %                moartr, n1artr, noartr, noarst,
-     %                mxarcf, n1arcf, noarcf, nt )
-         if( nt .le. 0 ) then
-c           saturation du tableau noartr ou noarcf ou n1arcf
-            ierr = 2
-            return
-         endif
-c
-c        ajout du triangle cree a sa pile
-         if( nbtrcf .ge. mxarcf ) then
-            write(imprim,*) 'saturation du tableau notrcf'
-            ierr = 4
-            return
-         endif
-         nbtrcf = nbtrcf + 1
-         notrcf( nbtrcf ) = nt
-         goto 10
-      endif
-c
-c     mise a jour du chainage des triangles des aretes
-c     ================================================
-      do 30 ntp0 = 1, nbtrcf
-c
-c        le numero du triangle ajoute dans le tableau noartr
-         nt0 = notrcf( ntp0 )
-c
-cccc        aire signee du triangle nt0
-cccc        le numero des 3 sommets du triangle nt
-ccc         call nusotr( nt0, mosoar, nosoar, moartr, noartr,
-ccc     %                nosotr )
-ccc         d = surtd2( pxyd(1,nosotr(1)), pxyd(1,nosotr(2)),
-ccc     %               pxyd(1,nosotr(3)) )
-ccc         if( d .le. 0 ) then
-cccc
-cccc           un triangle d'aire negative de plus
-ccc            write(imprim,*) 'triangle ',nt0,' st:',nosotr,
-ccc     %                      ' d aire ',d,'<=0'
-ccc            pause
-ccc         endif
-c
-cccc        trace du triangle nt0
-ccc         call mttrtr( pxyd, nt0, moartr, noartr, mosoar, nosoar,
-ccc     %                ncturq, ncblan )
-c
-c        boucle sur les 3 aretes du triangle
-         do 20 i=1,3
-c
-c           le numero de l'arete i du triangle dans le tableau nosoar
-            noar = abs( noartr(i,nt0) )
-c
-c           ce triangle est il deja chaine dans cette arete?
-            nt1 = nosoar(4,noar)
-            nt2 = nosoar(5,noar)
-            if( nt1 .eq. nt0 .or. nt2 .eq. nt0 ) goto 20
-c
-c           ajout de ce triangle nt0 a l'arete noar
-            if( nt1 .le. 0 ) then
-c               le triangle est ajoute a l'arete
-                nosoar( 4, noar ) = nt0
-            else if( nt2 .le. 0 ) then
-c               le triangle est ajoute a l'arete
-                nosoar( 5, noar ) = nt0
-            else
-c              l'arete appartient a 2 triangles differents de nt0
-c              anomalie. chainage des triangles des aretes defectueux
-c              a corriger
-               write(imprim,*) 'pause dans tridcf'
-               ierr = 5
-               return
-            endif
-c
- 20      continue
-c
- 30   continue
-      end
-
-
-      subroutine te1stm( nsasup, pxyd,   noarst,
-     %                   mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, mxartr, n1artr, noartr,
-     %                   mxarcf, n1arcf, noarcf, larmin, notrcf, liarcf,
-     %                   ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    supprimer de la triangulation le sommet nsasup qui doit
-c -----    etre un sommet interne ("centre" d'une boule de triangles)
-c
-c          attention: le chainage lchain de nosoar devient celui des cf
-c
-c entrees:
-c --------
-c nsasup : numero dans le tableau pxyd du sommet a supprimer
-c pxyd   : tableau des coordonnees 2d des points
-c          par point : x  y  distance_souhaitee
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c          attention: mxsoar>3*mxsomm obligatoire!
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxarcf : nombre de variables des tableaux n1arcf, noarcf, larmin, notrcf
-c
-c modifies:
-c ---------
-c noarst : noarst(i) numero d'une arete de sommet i
-c n1soar : no de l'eventuelle premiere arete libre dans le tableau nosoar
-c          chainage des vides suivant en 3 et precedant en 2 de nosoar
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = nosoar(1)+nosoar(2)*2
-c          avec mxsoar>=3*mxsomm
-c          une arete i de nosoar est vide <=> nosoar(1,i)=0 et
-c          nosoar(2,arete vide)=l'arete vide qui precede
-c          nosoar(3,arete vide)=l'arete vide qui suit
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c
-c
-c auxiliaires :
-c -------------
-c n1arcf : tableau (0:mxarcf) auxiliaire d'entiers
-c noarcf : tableau (3,mxarcf) auxiliaire d'entiers
-c larmin : tableau ( mxarcf ) auxiliaire d'entiers
-c notrcf : tableau ( mxarcf ) auxiliaire d'entiers
-c liarcf : tableau ( mxarcf ) auxiliaire d'entiers
-c
-c sortie :
-c --------
-c ierr   : =0 si pas d'erreur
-c          -1 le sommet a supprimer n'est pas le centre d'une boule
-c             de triangles. il est suppose externe
-c             ou bien le sommet est centre d'un cf dont toutes les
-c             aretes sont frontalieres
-c             dans les 2 cas => retour sans modifs
-c          >0 si une erreur est survenue
-c          =11 algorithme defaillant
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c....................................................................012
-      parameter       ( lchain=6, quamal=0.3)
-      common / unites / lecteu,imprim,intera,nunite(29)
-      double precision  pxyd(3,*)
-      integer           nosoar(mosoar,mxsoar),
-     %                  noartr(moartr,*),
-     %                  noarst(*),
-     %                  n1arcf(0:mxarcf),
-     %                  noarcf(3,mxarcf),
-     %                  larmin(mxarcf),
-     %                  notrcf(mxarcf),
-     %                  liarcf(mxarcf)
-c
-c     nsasup est il un sommet interne, "centre" d'une boule de triangles?
-c     => le sommet nsasup peut etre supprime
-c     ===================================================================
-c     formation du cf de ''centre'' le sommet nsasup
-      call trp1st( nsasup, noarst, mosoar, nosoar,
-     %             moartr, noartr,
-     %             mxarcf, nbtrcf, notrcf )
-      if( nbtrcf .le. 0 ) then
-c        erreur: impossible de trouver tous les triangles de sommet nsasup
-c        le sommet nsasup n'est pas supprime de la triangulation
-         ierr = -1
-         return
-      else if( nbtrcf .le. 2 ) then
-c        le sommet nsasup n'est pas supprime
-         ierr = -1
-         return
-      endif
-      if( nbtrcf*3 .gt. mxarcf ) then
-         write(imprim,*) 'saturation du tableau noarcf'
-         ierr = 10
-         return
-      endif
-c
-ccc      trace des triangles de l'etoile du sommet nsasup
-ccc      call trpltr( nbtrcf, notrcf, pxyd,
-ccc     %             moartr, noartr, mosoar, nosoar,
-ccc     %             ncroug, ncblan )
-c
-c     si toutes les aretes du cf sont frontalieres, alors il est
-c     interdit de detruire le sommet "centre" du cf
-c     calcul du nombre nbarfr des aretes simples des nbtrcf triangles
-      call trfrcf( nsasup, mosoar, nosoar, moartr, noartr,
-     %             nbtrcf, notrcf, nbarfr  )
-      if( nbarfr .ge. nbtrcf ) then
-c        toutes les aretes simples sont frontalieres
-c        le sommet nsasup ("centre" de la cavite) n'est pas supprime
-         ierr = -1
-         return
-      endif
-c
-c     formation du contour ferme (liste chainee des aretes simples)
-c     forme a partir des aretes des triangles de l'etoile du sommet nsasup
-      call focftr( nbtrcf, notrcf, pxyd,   noarst,
-     %             mosoar, mxsoar, n1soar, nosoar,
-     %             moartr, n1artr, noartr,
-     %             nbarcf, n1arcf, noarcf,
-     %             ierr )
-      if( ierr .ne. 0 ) return
-c
-c     ici le sommet nsasup appartient a aucune arete
-      noarst( nsasup ) = 0
-c
-c     chainage des aretes vides dans le tableau noarcf
-      n1arcf(0) = nbarcf+1
-      mmarcf = min(8*nbarcf,mxarcf)
-      do 40 i=nbarcf+1,mmarcf
-         noarcf(2,i) = i+1
- 40   continue
-      noarcf(2,mmarcf) = 0
-c
-c     sauvegarde du chainage des aretes peripheriques
-c     pour la mise en delaunay du maillage
-      nbcf = n1arcf(1)
-      do 50 i=1,nbarcf
-c        le numero de l'arete dans le tableau nosoar
-         liarcf( i ) = noarcf( 3, nbcf )
-c        l'arete suivante dans le cf
-         nbcf = noarcf( 2, nbcf )
- 50   continue
-c
-c     triangulation directe du contour ferme sans le sommet nsasup
-c     ============================================================
-      nbcf = 1
-      call tridcf( nbcf,   pxyd,   noarst,
-     %             mosoar, mxsoar, n1soar, nosoar,
-     %             moartr, n1artr, noartr,
-     %             mxarcf, n1arcf, noarcf, larmin,
-     %             nbtrcf, notrcf, ierr )
-      if( ierr .ne. 0 ) return
-c
-c     transformation des triangles du cf en triangles delaunay
-c     ========================================================
-c     construction du chainage lchain dans nosoar
-c     des aretes peripheriques du cf a partir de la sauvegarde liarcf
-      noar0 = liarcf(1)
-      do 60 i=2,nbarcf
-c        le numero de l'arete peripherique du cf dans nosoar
-         noar = liarcf( i )
-         if( nosoar(3,noar) .le. 0 ) then
-c           arete interne => elle est chainee a partir de la precedente
-            nosoar( lchain, noar0 ) = noar
-            noar0 = noar
-         endif
- 60   continue
-c     la derniere arete peripherique n'a pas de suivante
-      nosoar(lchain,noar0) = 0
-c
-c     mise en delaunay des aretes chainees
-      call tedela( pxyd,   noarst,
-     %             mosoar, mxsoar, n1soar, nosoar, liarcf(1),
-     %             moartr, mxartr, n1artr, noartr, modifs )
-ccc   write(imprim,*) 'nombre echanges diagonales =',modifs
-      return
-      end
-
-
-      subroutine tr3str( np,     nt,
-     %                   mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, mxartr, n1artr, noartr,
-     %                   noarst,
-     %                   nutr,   ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    former les 3 sous-triangles du triangle nt a partir
-c -----    du point interne np
-c
-c entrees:
-c --------
-c np     : numero dans le tableau pxyd du point
-c nt     : numero dans le tableau noartr du triangle a trianguler
-c mosoar : nombre maximal d'entiers par arete du tableau nosoar
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxartr : nombre maximal de triangles stockables dans le tableau noartr
-c
-c modifies:
-c ---------
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c          une arete i de nosoar est vide  <=>  nosoar(1,i)=0
-c nosoar : numero des 2 sommets , no ligne, 2 triangles, chainages
-c          sommet 1 = 0 si arete vide => sommet 2 = arete vide suivante
-c          hachage des aretes = (nosoar(1)+nosoar(2)) modulo mxsoar
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c noarst : noarst(i) numero d'une arete de sommet i
-c
-c sorties:
-c --------
-c nutr   : le numero des 3 sous-triangles du triangle nt
-c nt     : en sortie le triangle initial n'est plus actif dans noartr
-c          c'est en fait le premier triangle vide de noartr
-c ierr   : =0 si pas d'erreur
-c          =1 si le tableau nosoar est sature
-c          =2 si le tableau noartr est sature
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c....................................................................012
-      integer    nosoar(mosoar,mxsoar),
-     %           noartr(moartr,mxartr),
-     %           noarst(*),
-     %           nutr(3)
-c
-      integer    nosotr(3), nu2sar(2), nuarco(3)
-c
-c     reservation des 3 nouveaux triangles dans le tableau noartr
-c     ===========================================================
-      do 10 i=1,3
-c        le numero du sous-triangle i dans le tableau noartr
-         if( n1artr .le. 0 ) then
-c           tableau noartr sature
-            ierr = 2
-            return
-         endif
-         nutr(i) = n1artr
-c        le nouveau premier triangle libre dans noartr
-         n1artr = noartr(2,n1artr)
- 10   continue
-c
-c     les numeros des 3 sommets du triangle nt
-      call nusotr( nt, mosoar, nosoar, moartr, noartr, nosotr )
-c
-c     formation des 3 aretes nosotr(i)-np dans le tableau nosoar
-c     ==========================================================
-      nt0 = nutr(3)
-      do 20 i=1,3
-c
-c        le triangle a creer
-         nti = nutr(i)
-c
-c        les 2 sommets du cote i du triangle nosotr
-         nu2sar(1) = nosotr(i)
-         nu2sar(2) = np
-         call hasoar( mosoar, mxsoar, n1soar, nosoar, nu2sar, noar )
-c        en sortie: noar>0 => no arete retrouvee
-c                       <0 => no arete ajoutee
-c                       =0 => saturation du tableau nosoar
-c
-         if( noar .eq. 0 ) then
-c           saturation du tableau nosoar
-            ierr = 1
-            return
-         else if( noar .lt. 0 ) then
-c           l'arete a ete ajoutee. initialisation des autres informations
-            noar = -noar
-c           le numero des 2 sommets a ete initialise par hasoar
-c           et (nosoar(1,noar)<nosoar(2,noar))
-c           le numero de la ligne de l'arete: ici arete interne
-            nosoar(3,noar) = 0
-c        else
-c           l'arete a ete retrouvee
-c           le numero des 2 sommets a ete retrouve par hasoar
-c           et (nosoar(1,noar)<nosoar(2,noar))
-c           le numero de ligne reste inchange
-         endif
-c
-c        le triangle 1 de l'arete noar => le triangle nt0
-         nosoar(4,noar) = nt0
-c        le triangle 2 de l'arete noar => le triangle nti
-         nosoar(5,noar) = nti
-c
-c        le sommet nosotr(i) appartient a l'arete noar
-         noarst( nosotr(i) ) = noar
-c
-c        le numero d'arete nosotr(i)-np
-         nuarco(i) = noar
-c
-c        le triangle qui precede le suivant
-         nt0 = nti
- 20   continue
-c
-c     le numero d'une arete du point np
-      noarst( np ) = noar
-c
-c     les 3 sous-triangles du triangle nt sont formes dans le tableau noartr
-c     ======================================================================
-      do 30 i=1,3
-c
-c        le numero suivant i => i mod 3 + 1
-         if( i .ne. 3 ) then
-            i1 = i + 1
-         else
-            i1 = 1
-         endif
-c
-c        le numero dans noartr du sous-triangle a ajouter
-         nti = nutr( i )
-c
-c        le numero de l'arete i du triangle initial nt
-c        est l'arete 1 du sous-triangle i
-         noar = noartr(i,nt)
-         noartr( 1, nti ) = noar
-c
-c        mise a jour du numero de triangle de cette arete
-         noar = abs( noar )
-         if( nosoar(4,noar) .eq. nt ) then
-c           le sous-triangle nti remplace le triangle nt
-            nosoar(4,noar) = nti
-         else
-c           le sous-triangle nti remplace le triangle nt
-            nosoar(5,noar) = nti
-         endif
-c
-c        l'arete 2 du sous-triangle i est l'arete i1 ajoutee
-         if( nosotr(i1) .eq. nosoar(1,nuarco(i1)) ) then
-c           l'arete ns i1-np dans nosoar est dans le sens direct
-            noartr( 2, nti ) = nuarco(i1)
-         else
-c           l'arete ns i1-np dans nosoar est dans le sens indirect
-            noartr( 2, nti ) = -nuarco(i1)
-         endif
-c
-c        l'arete 3 du sous-triangle i est l'arete i ajoutee
-         if( nosotr(i) .eq. nosoar(1,nuarco(i)) ) then
-c           l'arete ns i1-np dans nosoar est dans le sens indirect
-            noartr( 3, nti ) = -nuarco(i)
-         else
-c           l'arete ns i1-np dans nosoar est dans le sens direct
-            noartr( 3, nti ) = nuarco(i)
-         endif
- 30   continue
-c
-c     le triangle nt est rendu libre
-c     ==============================
-c     il devient n1artr le premier triangle libre
-      noartr( 1, nt ) = 0
-      noartr( 2, nt ) = n1artr
-      n1artr = nt
-      end
-
-
-      subroutine mt4sqa( na,  moartr, noartr, mosoar, nosoar,
-     %                   ns1, ns2, ns3, ns4)
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    calcul du numero des 4 sommets de l'arete na de nosoar
-c -----    formant un quadrangle
-c
-c entrees:
-c --------
-c na     : numero de l'arete dans nosoar a traiter
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1=0 si triangle vide => arete2=triangle vide suivant
-c mosoar : nombre maximal d'entiers par arete
-c nosoar : numero des 2 sommets , no ligne, 2 triangles, chainages en +
-c          sommet 1 = 0 si arete vide => sommet 2 = arete vide suivante
-c
-c sorties:
-c --------
-c ns1,ns2,ns3 : les 3 numeros des sommets du triangle t1 en sens direct
-c ns1,ns4,ns2 : les 3 numeros des sommets du triangle t2 en sens direct
-c
-c si erreur rencontree => ns4 = 0
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c2345x7..............................................................012
-      common / unites / lecteu, imprim, nunite(30)
-      integer           noartr(moartr,*), nosoar(mosoar,*)
-c
-c     le numero de triangle est il correct  ?
-c     a supprimer apres mise au point
-      if( na .le. 0 ) then
-c         nblgrc(nrerr) = 1
-c         write(kerr(mxlger)(1:6),'(i6)') na
-c         kerr(1) = kerr(mxlger)(1:6) //
-c     %           ' no incorrect arete dans nosoar'
-c         call lereur
-          write(imprim,*) na, ' no incorrect arete dans nosoar'
-         ns4 = 0
-         return
-      endif
-c
-      if( nosoar(1,na) .le. 0 ) then
-c         nblgrc(nrerr) = 1
-c         write(kerr(mxlger)(1:6),'(i6)') na
-c         kerr(1) = kerr(mxlger)(1:6) //
-c     %           ' arete non active dans nosoar'
-c         call lereur
-         write(imprim,*) na, ' arete non active dans nosoar'
-         ns4 = 0
-         return
-      endif
-c
-c     recherche de l'arete na dans le premier triangle
-      nt = nosoar(4,na)
-      if( nt .le. 0 ) then
-c         nblgrc(nrerr) = 1
-c         write(kerr(mxlger)(1:6),'(i6)') na
-c         kerr(1) =  'triangle 1 incorrect pour l''arete ' //
-c     %               kerr(mxlger)(1:6)
-c         call lereur
-         write(imprim,*) 'triangle 1 incorrect pour l''arete ', na
-         ns4 = 0
-         return
-      endif
-c
-      do 5 i=1,3
-         if( abs( noartr(i,nt) ) .eq. na ) goto 8
- 5    continue
-c     si arrivee ici => bogue avant
-      write(imprim,*) 'mt4sqa: arete',na,' non dans le triangle',nt
-      ns4 = 0
-      return
-c
-c     les 2 sommets de l'arete na
- 8    if( noartr(i,nt) .gt. 0 ) then
-         ns1 = 1
-         ns2 = 2
-      else
-         ns1 = 2
-         ns2 = 1
-      endif
-      ns1 = nosoar(ns1,na)
-      ns2 = nosoar(ns2,na)
-c
-c     l'arete suivante
-      if( i .lt. 3 ) then
-         i = i + 1
-      else
-         i = 1
-      endif
-      naa = abs( noartr(i,nt) )
-c
-c     le sommet ns3 du triangle 123
-      ns3 = nosoar(1,naa)
-      if( ns3 .eq. ns1 .or. ns3 .eq. ns2 ) then
-         ns3 = nosoar(2,naa)
-      endif
-c
-c     le triangle de l'autre cote de l'arete na
-c     =========================================
-      nt = nosoar(5,na)
-      if( nt .le. 0 ) then
-c         nblgrc(nrerr) = 1
-c         write(kerr(mxlger)(1:6),'(i6)') na
-c         kerr(1) =  'triangle 2 incorrect pour l''arete ' //
-c     %               kerr(mxlger)(1:6)
-c         call lereur
-          write(imprim,*) 'triangle 2 incorrect pour l''arete ',na
-         ns4 = 0
-         return
-      endif
-c
-c     le numero de l'arete naa du triangle nt
-      naa = abs( noartr(1,nt) )
-      if( naa .eq. na ) naa = abs( noartr(2,nt) )
-      ns4 = nosoar(1,naa)
-      if( ns4 .eq. ns1 .or. ns4 .eq. ns2 ) then
-         ns4 = nosoar(2,naa)
-      endif
-      end
-
-
-      subroutine te2t2t( noaret, mosoar, n1soar, nosoar, noarst,
-     %                   moartr, noartr, noar34 )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    echanger la diagonale des 2 triangles ayant en commun
-c -----    l'arete noaret du tableau nosoar si c'est possible
-c
-c entrees:
-c --------
-c noaret : numero de l'arete a echanger entre les 2 triangles
-c mosoar : nombre maximal d'entiers par arete
-c moartr : nombre maximal d'entiers par triangle
-c
-c modifies :
-c ----------
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c nosoar : numero des 2 sommets , no ligne, 2 triangles, chainages en +
-c          sommet 1 = 0 si arete vide => sommet 2 = arete vide suivante
-c noarst : noarst(i) numero d'une arete de sommet i
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c
-c sortie :
-c --------
-c noar34 : numero nosoar de la nouvelle arete diagonale
-c          0 si pas d'echange des aretes diagonales
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc      avril 1997
-c....................................................................012
-      integer     nosoar(mosoar,*),
-     %            noartr(moartr,*),
-     %            noarst(*)
-c
-c     une arete frontaliere ne peut etre echangee
-      noar34 = 0
-      if( nosoar(3,noaret) .gt. 0 ) return
-c
-c     les 4 sommets des 2 triangles ayant l'arete noaret en commun
-      call mt4sqa( noaret, moartr, noartr, mosoar, nosoar,
-     %             ns1, ns2, ns3, ns4)
-c     ns1,ns2,ns3 : les 3 numeros des sommets du triangle nt1 en sens direct
-c     ns1,ns4,ns2 : les 3 numeros des sommets du triangle nt2 en sens direct
-c
-c     recherche du numero de l'arete noaret dans le triangle nt1
-      nt1 = nosoar(4,noaret)
-      do 10 n1 = 1, 3
-         if( abs(noartr(n1,nt1)) .eq. noaret ) goto 15
- 10   continue
-c     impossible d'arriver ici sans bogue!
-      write(imprim,*) 'pause dans te2t2t 1'
-c
-c     l'arete de sommets 2 et 3
- 15   if( n1 .lt. 3 ) then
-         n2 = n1 + 1
-      else
-         n2 = 1
-      endif
-      na23 = noartr(n2,nt1)
-c
-c     l'arete de sommets 3 et 1
-      if( n2 .lt. 3 ) then
-         n3 = n2 + 1
-      else
-         n3 = 1
-      endif
-      na31 = noartr(n3,nt1)
-c
-c     recherche du numero de l'arete noaret dans le triangle nt2
-      nt2 = nosoar(5,noaret)
-      do 20 n1 = 1, 3
-         if( abs(noartr(n1,nt2)) .eq. noaret ) goto 25
- 20   continue
-c     impossible d'arriver ici sans bogue!
-      write(imprim,*) 'pause dans te2t2t 2'
-c
-c     l'arete de sommets 1 et 4
- 25   if( n1 .lt. 3 ) then
-         n2 = n1 + 1
-      else
-         n2 = 1
-      endif
-      na14 = noartr(n2,nt2)
-c
-c     l'arete de sommets 4 et 2
-      if( n2 .lt. 3 ) then
-         n3 = n2 + 1
-      else
-         n3 = 1
-      endif
-      na42 = noartr(n3,nt2)
-c
-c     les triangles 123 142 deviennent 143 234
-c     ========================================
-c     ajout de l'arete ns3-ns4
-c     on evite l'affichage de l'erreur
-      ierr = -1
-      call fasoar( ns3,    ns4,    nt1,    nt2,    0,
-     %             mosoar, mxsoar, n1soar, nosoar, noarst,
-     %             noar34, ierr )
-      if( ierr .gt. 0 ) then
-c        ierr=1 si le tableau nosoar est sature
-c            =2 si arete a creer et appartenant a 2 triangles distincts
-c               des triangles nt1 et nt2
-c            =3 si arete appartenant a 2 triangles distincts
-c               differents des triangles nt1 et nt2
-c            =4 si arete appartenant a 2 triangles distincts
-c               dont le second n'est pas le triangle nt2
-c        => pas d'echange
-         noar34 = 0
-         return
-      endif
-c
-c     suppression de l'arete noaret
-      call sasoar( noaret, mosoar, mxsoar, n1soar, nosoar )
-c
-c     nt1 = triangle 143
-      noartr(1,nt1) =  na14
-c     sens de stockage de l'arete ns3-ns4 dans nosoar?
-      if( nosoar(1,noar34) .eq. ns3 ) then
-         n1 = -1
-      else
-         n1 =  1
-      endif
-      noartr(2,nt1) = noar34 * n1
-      noartr(3,nt1) = na31
-c
-c     nt2 = triangle 234
-      noartr(1,nt2) =  na23
-      noartr(2,nt2) = -noar34 * n1
-      noartr(3,nt2) =  na42
-c
-c     echange nt1 -> nt2 pour l'arete na23
-      na23 = abs( na23 )
-      if( nosoar(4,na23) .eq. nt1 ) then
-         n1 = 4
-      else
-         n1 = 5
-      endif
-      nosoar(n1,na23) = nt2
-c
-c     echange nt2 -> nt1 pour l'arete na14
-      na14 = abs( na14 )
-      if( nosoar(4,na14) .eq. nt2 ) then
-         n1 = 4
-      else
-         n1 = 5
-      endif
-      nosoar(n1,na14) = nt1
-c
-c     numero d'une arete de chacun des 4 sommets
-      noarst(ns1) = na14
-      noarst(ns2) = na23
-      noarst(ns3) = noar34
-      noarst(ns4) = noar34
-      end
-
-
-
-      subroutine f0trte( letree, pxyd,
-     %                   mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, mxartr, n1artr, noartr,
-     %                   noarst,
-     %                   nbtr,   nutr,   ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    former le ou les triangles du triangle equilateral letree
-c -----    les points internes au te deviennent des sommets des
-c          sous-triangles du te
-c
-c entrees:
-c --------
-c letree : arbre-4 des triangles equilateraux (te) fond de la triangulation
-c          si letree(0)>0 alors
-c             letree(0:3) : no (>0) letree des 4 sous-triangles du triangle j
-c          sinon
-c             letree(0:3) :-no pxyd des 1 a 4 points internes au triangle j
-c                           0  si pas de point
-c                         ( le te est une feuille de l'arbre )
-c          letree(4) : no letree du sur-triangle du triangle j
-c          letree(5) : 0 1 2 3 no du sous-triangle j pour son sur-triangle
-c          letree(6:8) : no pxyd des 3 sommets du triangle j
-c pxyd   : tableau des x  y  distance_souhaitee de chaque sommet
-c mosoar : nombre maximal d'entiers par arete du tableau nosoar
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxartr : nombre maximal de triangles stockables dans le tableau noartr
-c
-c modifies:
-c ---------
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c          une arete i de nosoar est vide  <=>  nosoar(1,i)=0
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = (nosoar(1)+nosoar(2)) modulo mxsoar
-c          sommet 1 = 0 si arete vide => sommet 2 = arete vide suivante
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c noarst : noarst(i) numero d'une arete de sommet i
-c
-c sorties:
-c --------
-c nbtr   : nombre de sous-triangles du te, triangulation du te
-c nutr   : numero des nbtr sous-triangles du te dans le tableau noartr
-c ierr   : =0 si pas d'erreur
-c          =1 si le tableau nosoar est sature
-c          =2 si le tableau noartr est sature
-c          =3 si aucun des triangles ne contient l'un des points internes au te
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c....................................................................012
-      common / unites / lecteu, imprim, nunite(30)
-      double precision  pxyd(3,*)
-      integer           letree(0:8),
-     %                  nosoar(mosoar,mxsoar),
-     %                  noartr(moartr,mxartr),
-     %                  noarst(*),
-     %                  nutr(1:nbtr)
-      integer           nuarco(3)
-c
-c     le numero nt du triangle dans le tableau noartr
-      if( n1artr .le. 0 ) then
-c        tableau noartr sature
-         write(imprim,*) 'f0trte: tableau noartr sature'
-         ierr = 2
-         return
-      endif
-      nt = n1artr
-c     le numero du nouveau premier triangle libre dans noartr
-      n1artr = noartr( 2, n1artr )
-c
-c     formation du triangle = le triangle equilateral letree
-      do 10 i=1,3
-         if( i .ne. 3 ) then
-            i1 = i + 1
-         else
-            i1 = 1
-         endif
-c        ajout eventuel de l'arete si si+1 dans le tableau nosoar
-         call fasoar( letree(5+i), letree(5+i1), nt, -1, 0,
-     %                mosoar, mxsoar, n1soar, nosoar, noarst,
-     %                nuarco(i), ierr )
-         if( ierr .ne. 0 ) return
- 10   continue
-c
-c     le triangle nt est forme dans le tableau noartr
-      do 20 i=1,3
-c        letree(5+i) est le numero du sommet 1 de l'arete i du te
-         if( letree(5+i) .eq. nosoar(1,nuarco(i)) ) then
-            lesign =  1
-         else
-            lesign = -1
-         endif
-c        l'arete ns1-ns2 dans nosoar est celle du cote du te
-         noartr( i, nt ) = lesign * nuarco(i)
- 20   continue
-c
-c     triangulation du te=triangle nt par ajout des points internes du te
-      nbtr    = 1
-      nutr(1) = nt
-      call trpite( letree, pxyd,
-     %             mosoar, mxsoar, n1soar, nosoar,
-     %             moartr, mxartr, n1artr, noartr, noarst,
-     %             nbtr,   nutr,   ierr )
-      end
-
-
-      subroutine f1trte( letree, pxyd,   milieu,
-     %                   mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, mxartr, n1artr, noartr,
-     %                   noarst,
-     %                   nbtr,   nutr,   ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    former les triangles du triangle equilateral letree
-c -----    a partir de l'un des 3 milieux des cotes du te
-c          et des points internes au te
-c          ils deviennent tous des sommets des sous-triangles du te
-c
-c entrees:
-c --------
-c letree : arbre-4 des triangles equilateraux (te) fond de la triangulation
-c          si letree(0)>0 alors
-c             letree(0:3) : no (>0) letree des 4 sous-triangles du triangle j
-c          sinon
-c             letree(0:3) :-no pxyd des 1 a 4 points internes au triangle j
-c                           0  si pas de point
-c                         ( le te est une feuille de l'arbre )
-c          letree(4) : no letree du sur-triangle du triangle j
-c          letree(5) : 0 1 2 3 no du sous-triangle j pour son sur-triangle
-c          letree(6:8) : no pxyd des 3 sommets du triangle j
-c pxyd   : tableau des x  y  distance_souhaitee de chaque sommet
-c milieu : milieu(i) numero dans pxyd du milieu de l'arete i du te
-c                    0 si pas de milieu du cote i a ajouter
-c mosoar : nombre maximal d'entiers par arete du tableau nosoar
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxartr : nombre maximal de triangles stockables dans le tableau noartr
-c
-c modifies:
-c ---------
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c          une arete i de nosoar est vide  <=>  nosoar(1,i)=0
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = (nosoar(1)+nosoar(2)) modulo mxsoar
-c          sommet 1 = 0 si arete vide => sommet 2 = arete vide suivante
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c noarst : noarst(np) numero d'une arete du sommet np
-c
-c sorties:
-c --------
-c nbtr   : nombre de sous-triangles du te, triangulation du te
-c nutr   : numero des nbtr sous-triangles du te dans le tableau noartr
-c ierr   : =0 si pas d'erreur
-c          =1 si le tableau nosoar est sature
-c          =2 si le tableau noartr est sature
-c          =3 si aucun des triangles ne contient l'un des points internes au te
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c....................................................................012
-      double precision  pxyd(3,*)
-      integer           letree(0:8),
-     %                  milieu(3),
-     %                  nosoar(mosoar,mxsoar),
-     %                  noartr(moartr,mxartr),
-     %                  noarst(*),
-     %                  nutr(1:nbtr)
-c
-      integer           nosotr(3), nuarco(5)
-c
-c     le numero des 2 triangles (=2 demi te) a creer dans le tableau noartr
-      do 5 nbtr=1,2
-         if( n1artr .le. 0 ) then
-c           tableau noartr sature
-            ierr = 2
-            return
-         endif
-         nutr(nbtr) = n1artr
-c        le nouveau premier triangle libre dans noartr
-         n1artr = noartr(2,n1artr)
- 5    continue
-      nbtr = 2
-c
-c     recherche du milieu a creer
-      do 7 i=1,3
-         if( milieu(i) .ne. 0 ) goto 9
- 7    continue
-c     le numero pxyd du point milieu du cote i
- 9    nm = milieu( i )
-c
-c     on se ramene au seul cas i=3 c-a-d le milieu est sur le cote 3
-      if( i .eq. 1 ) then
-c        milieu sur le cote 1
-         nosotr(1) = letree(7)
-         nosotr(2) = letree(8)
-         nosotr(3) = letree(6)
-      else if( i .eq. 2 ) then
-c        milieu sur le cote 2
-         nosotr(1) = letree(8)
-         nosotr(2) = letree(6)
-         nosotr(3) = letree(7)
-      else
-c        milieu sur le cote 3
-         nosotr(1) = letree(6)
-         nosotr(2) = letree(7)
-         nosotr(3) = letree(8)
-      endif
-c
-c     formation des 2 aretes s1 s2 et s2 s3
-      do 10 i=1,2
-         if( i .ne. 3 ) then
-            i1 = i + 1
-         else
-            i1 = 1
-         endif
-c        ajout eventuel de l'arete dans nosoar
-         call fasoar( nosotr(i), nosotr(i1), nutr(i), -1, 0,
-     %                mosoar, mxsoar, n1soar, nosoar, noarst,
-     %                nuarco(i), ierr )
-         if( ierr .ne. 0 ) return
- 10   continue
-c
-c     ajout eventuel de l'arete s3 milieu dans nosoar
-      call fasoar( nosotr(3), nm, nutr(2), -1, 0,
-     %             mosoar, mxsoar, n1soar, nosoar, noarst,
-     %             nuarco(3), ierr )
-      if( ierr .ne. 0 ) return
-c
-c     ajout eventuel de l'arete milieu s1 dans nosoar
-      call fasoar( nosotr(1), nm, nutr(1), -1, 0,
-     %             mosoar, mxsoar, n1soar, nosoar, noarst,
-     %             nuarco(4), ierr )
-      if( ierr .ne. 0 ) return
-c
-c     ajout eventuel de l'arete milieu s2 dans nosoar
-      call fasoar( nosotr(2), nm, nutr(1), nutr(2), 0,
-     %             mosoar, mxsoar, n1soar, nosoar, noarst,
-     %             nuarco(5), ierr )
-      if( ierr .ne. 0 ) return
-c
-c     les aretes s1 s2 et s2 s3 dans le tableau noartr
-      do 20 i=1,2
-c        nosotr(i) est le numero du sommet 1 de l'arete i du te
-         if( nosotr(i) .eq. nosoar(1,nuarco(i)) ) then
-            lesign = 1
-         else
-            lesign = -1
-         endif
-c        l'arete ns1-ns2 dans nosoar est celle du cote du te
-         noartr( 1, nutr(i) ) = lesign * nuarco(i)
- 20   continue
-c
-c     l'arete mediane s2 milieu
-      if( nm .eq. nosoar(1,nuarco(5)) ) then
-         lesign = -1
-      else
-         lesign =  1
-      endif
-      noartr( 2, nutr(1) ) =  lesign * nuarco(5)
-      noartr( 3, nutr(2) ) = -lesign * nuarco(5)
-c
-c     l'arete s1 milieu
-      if( nm .eq. nosoar(1,nuarco(4)) ) then
-         lesign =  1
-      else
-         lesign = -1
-      endif
-      noartr( 3, nutr(1) ) = lesign * nuarco(4)
-c
-c     l'arete s3 milieu
-      if( nm .eq. nosoar(1,nuarco(3)) ) then
-         lesign = -1
-      else
-         lesign =  1
-      endif
-      noartr( 2, nutr(2) ) = lesign * nuarco(3)
-c
-c     triangulation des 2 demi te par ajout des points internes du te
-      call trpite( letree, pxyd,
-     %             mosoar, mxsoar, n1soar, nosoar,
-     %             moartr, mxartr, n1artr, noartr, noarst,
-     %             nbtr,   nutr,   ierr )
-      end
-
-
-      subroutine f2trte( letree, pxyd,   milieu,
-     %                   mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, mxartr, n1artr, noartr,
-     %                   noarst,
-     %                   nbtr,   nutr,   ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    former les triangles du triangle equilateral letree
-c -----    a partir de 2 milieux des cotes du te
-c          et des points internes au te
-c          ils deviennent tous des sommets des sous-triangles du te
-c
-c entrees:
-c --------
-c letree : arbre-4 des triangles equilateraux (te) fond de la triangulation
-c          si letree(0)>0 alors
-c             letree(0:3) : no (>0) letree des 4 sous-triangles du triangle j
-c          sinon
-c             letree(0:3) :-no pxyd des 1 a 4 points internes au triangle j
-c                           0  si pas de point
-c                         ( le te est une feuille de l'arbre )
-c          letree(4) : no letree du sur-triangle du triangle j
-c          letree(5) : 0 1 2 3 no du sous-triangle j pour son sur-triangle
-c          letree(6:8) : no pxyd des 3 sommets du triangle j
-c pxyd   : tableau des x  y  distance_souhaitee de chaque sommet
-c milieu : milieu(i) numero dans pxyd du milieu de l'arete i du te
-c                    0 si pas de milieu du cote i a ajouter
-c mosoar : nombre maximal d'entiers par arete du tableau nosoar
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxartr : nombre maximal de triangles stockables dans le tableau noartr
-c
-c modifies:
-c ---------
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c          une arete i de nosoar est vide  <=>  nosoar(1,i)=0
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = (nosoar(1)+nosoar(2)) modulo mxsoar
-c          sommet 1 = 0 si arete vide => sommet 2 = arete vide suivante
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c noarst : noarst(np) numero d'une arete du sommet np
-c
-c sorties:
-c --------
-c nbtr   : nombre de sous-triangles du te, triangulation du te
-c nutr   : numero des nbtr sous-triangles du te dans le tableau noartr
-c ierr   : =0 si pas d'erreur
-c          =1 si le tableau nosoar est sature
-c          =2 si le tableau noartr est sature
-c          =3 si aucun des triangles ne contient l'un des points internes au te
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c....................................................................012
-      common / unites / lecteu, imprim, nunite(30)
-      double precision  pxyd(3,*)
-      integer           letree(0:8),
-     %                  milieu(3),
-     %                  nosoar(mosoar,mxsoar),
-     %                  noartr(moartr,mxartr),
-     %                  noarst(*),
-     %                  nutr(1:nbtr)
-c
-      integer           nosotr(3), nuarco(7)
-c
-c     le numero des 3 triangles a creer dans le tableau noartr
-      do 5 nbtr=1,3
-         if( n1artr .le. 0 ) then
-c           tableau noartr sature
-            ierr = 2
-            return
-         endif
-         nutr(nbtr) = n1artr
-c        le nouveau premier triangle libre dans noartr
-         n1artr = noartr(2,n1artr)
- 5    continue
-      nbtr = 3
-c
-c     recherche du premier milieu a creer
-      do 7 i=1,3
-         if( milieu(i) .ne. 0 ) goto 9
- 7    continue
-c
-c     on se ramene au seul cas i=2 c-a-d le cote 1 n'a pas de milieu
- 9    if( i .eq. 2 ) then
-c        pas de milieu sur le cote 1
-         nosotr(1) = letree(6)
-         nosotr(2) = letree(7)
-         nosotr(3) = letree(8)
-c        le numero pxyd du milieu du cote 2
-         nm2 = milieu( 2 )
-c        le numero pxyd du milieu du cote 3
-         nm3 = milieu( 3 )
-      else if( milieu(2) .ne. 0 ) then
-c        pas de milieu sur le cote 3
-         nosotr(1) = letree(8)
-         nosotr(2) = letree(6)
-         nosotr(3) = letree(7)
-c        le numero pxyd du milieu du cote 2
-         nm2 = milieu( 1 )
-c        le numero pxyd du milieu du cote 3
-         nm3 = milieu( 2 )
-      else
-c        pas de milieu sur le cote 2
-         nosotr(1) = letree(7)
-         nosotr(2) = letree(8)
-         nosotr(3) = letree(6)
-c        le numero pxyd du milieu du cote 2
-         nm2 = milieu( 3 )
-c        le numero pxyd du milieu du cote 3
-         nm3 = milieu( 1 )
-      endif
-c
-c     ici seul le cote 1 n'a pas de milieu
-c     nm2 est le milieu du cote 2
-c     nm3 est le milieu du cote 3
-c
-c     ajout eventuel de l'arete s1 s2 dans nosoar
-      call fasoar( nosotr(1), nosotr(2), nutr(1), -1, 0,
-     %             mosoar, mxsoar, n1soar, nosoar, noarst,
-     %             nuarco(1), ierr )
-      if( ierr .ne. 0 ) return
-c
-c     ajout eventuel de l'arete s1 s2 dans nosoar
-      call fasoar( nosotr(2), nm2, nutr(1), -1, 0,
-     %             mosoar, mxsoar, n1soar, nosoar, noarst,
-     %             nuarco(2), ierr )
-      if( ierr .ne. 0 ) return
-c
-c     ajout eventuel de l'arete s1 nm2 dans nosoar
-      call fasoar( nosotr(1), nm2, nutr(1), nutr(2), 0,
-     %             mosoar, mxsoar, n1soar, nosoar, noarst,
-     %             nuarco(3), ierr )
-      if( ierr .ne. 0 ) return
-c
-c     ajout eventuel de l'arete nm2 nm3 dans nosoar
-      call fasoar( nm3, nm2, nutr(2), nutr(3), 0,
-     %             mosoar, mxsoar, n1soar, nosoar, noarst,
-     %             nuarco(4), ierr )
-      if( ierr .ne. 0 ) return
-c
-c     ajout eventuel de l'arete s1 nm3 dans nosoar
-      call fasoar( nosotr(1), nm3, nutr(2), -1, 0,
-     %             mosoar, mxsoar, n1soar, nosoar, noarst,
-     %             nuarco(5), ierr )
-      if( ierr .ne. 0 ) return
-c
-c     ajout eventuel de l'arete nm2 s3 dans nosoar
-      call fasoar( nm2, nosotr(3), nutr(3), -1, 0,
-     %             mosoar, mxsoar, n1soar, nosoar, noarst,
-     %             nuarco(6), ierr )
-c
-c     ajout eventuel de l'arete nm3 s3 dans nosoar
-      call fasoar( nosotr(3), nm3, nutr(3), -1, 0,
-     %             mosoar, mxsoar, n1soar, nosoar, noarst,
-     %             nuarco(7), ierr )
-      if( ierr .ne. 0 ) return
-c
-c     le triangle s1 s2 nm2  ou arete1 arete2 arete3
-      do 20 i=1,2
-c        nosotr(i) est le numero du sommet 1 de l'arete i du te
-         if( nosotr(i) .eq. nosoar(1,nuarco(i)) ) then
-            lesign = 1
-         else
-            lesign = -1
-         endif
-c        l'arete ns1-ns2 dans nosoar est celle du cote du te
-         noartr( i, nutr(1) ) = lesign * nuarco(i)
- 20   continue
-      if( nm2 .eq. nosoar(1,nuarco(3)) ) then
-         lesign =  1
-      else
-         lesign = -1
-      endif
-      noartr( 3, nutr(1) ) = lesign * nuarco(3)
-c
-c     le triangle s1 nm2 nm3
-      noartr( 1, nutr(2) ) = -lesign * nuarco(3)
-      if( nm2 .eq. nosoar(1,nuarco(4)) ) then
-         lesign =  1
-      else
-         lesign = -1
-      endif
-      noartr( 2, nutr(2) ) =  lesign * nuarco(4)
-      noartr( 1, nutr(3) ) = -lesign * nuarco(4)
-      if( nm3 .eq. nosoar(1,nuarco(5)) ) then
-         lesign =  1
-      else
-         lesign = -1
-      endif
-      noartr( 3, nutr(2) ) = lesign * nuarco(5)
-c
-c     le triangle nm2 nm3 s3
-      if( nm2 .eq. nosoar(1,nuarco(6)) ) then
-         lesign =  1
-      else
-         lesign = -1
-      endif
-      noartr( 2, nutr(3) ) =  lesign * nuarco(6)
-      if( nm3 .eq. nosoar(1,nuarco(7)) ) then
-         lesign = -1
-      else
-         lesign =  1
-      endif
-      noartr( 3, nutr(3) ) = lesign * nuarco(7)
-c
-c     triangulation des 3 sous-te par ajout des points internes du te
-      call trpite( letree, pxyd,
-     %             mosoar, mxsoar, n1soar, nosoar,
-     %             moartr, mxartr, n1artr, noartr, noarst,
-     %             nbtr,   nutr,   ierr )
-      end
-
-
-      subroutine f3trte( letree, pxyd,   milieu,
-     %                   mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, mxartr, n1artr, noartr,
-     %                   noarst,
-     %                   nbtr,   nutr,   ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    former les triangles du triangle equilateral letree
-c -----    a partir de 3 milieux des cotes du te
-c          et des points internes au te
-c          ils deviennent tous des sommets des sous-triangles du te
-c
-c entrees:
-c --------
-c letree : arbre-4 des triangles equilateraux (te) fond de la triangulation
-c          si letree(0)>0 alors
-c             letree(0:3) : no (>0) letree des 4 sous-triangles du triangle j
-c          sinon
-c             letree(0:3) :-no pxyd des 1 a 4 points internes au triangle j
-c                           0  si pas de point
-c                         ( le te est une feuille de l'arbre )
-c          letree(4) : no letree du sur-triangle du triangle j
-c          letree(5) : 0 1 2 3 no du sous-triangle j pour son sur-triangle
-c          letree(6:8) : no pxyd des 3 sommets du triangle j
-c pxyd   : tableau des x  y  distance_souhaitee de chaque sommet
-c milieu : milieu(i) numero dans pxyd du milieu de l'arete i du te
-c                    0 si pas de milieu du cote i a ajouter
-c mosoar : nombre maximal d'entiers par arete du tableau nosoar
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxartr : nombre maximal de triangles stockables dans le tableau noartr
-c
-c modifies:
-c ---------
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c          une arete i de nosoar est vide  <=>  nosoar(1,i)=0
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = (nosoar(1)+nosoar(2)) modulo mxsoar
-c          sommet 1 = 0 si arete vide => sommet 2 = arete vide suivante
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c noarst : noarst(np) numero d'une arete du sommet np
-c
-c sorties:
-c --------
-c nbtr   : nombre de sous-triangles du te, triangulation du te
-c nutr   : numero des nbtr sous-triangles du te dans le tableau noartr
-c ierr   : =0 si pas d'erreur
-c          =1 si le tableau nosoar est sature
-c          =2 si le tableau noartr est sature
-c          =3 si aucun des triangles ne contient l'un des points internes au te
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c....................................................................012
-      common / unites / lecteu, imprim, nunite(30)
-      double precision  pxyd(3,*)
-      integer           letree(0:8),
-     %                  milieu(3),
-     %                  nosoar(mosoar,mxsoar),
-     %                  noartr(moartr,mxartr),
-     %                  noarst(*),
-     %                  nutr(1:nbtr)
-c
-      integer           nuarco(9)
-c
-c     le numero des 4 triangles a creer dans le tableau noartr
-      do 5 nbtr=1,4
-         if( n1artr .le. 0 ) then
-c           tableau noartr sature
-            ierr = 2
-            return
-         endif
-         nutr(nbtr) = n1artr
-c        le nouveau premier triangle libre dans noartr
-         n1artr = noartr(2,n1artr)
- 5    continue
-      nbtr = 4
-c
-      do 10 i=1,3
-c        le sommet suivant
-         if( i .ne. 3 ) then
-            i1 = i + 1
-         else
-            i1 = 1
-         endif
-c        le sommet precedant
-         if( i .ne. 1 ) then
-            i0 = i - 1
-         else
-            i0 = 3
-         endif
-         i3 = 3 * i
-c
-c        ajout eventuel de l'arete si mi dans nosoar
-         call fasoar( letree(5+i), milieu(i), nutr(i), -1, 0,
-     %                mosoar, mxsoar, n1soar, nosoar, noarst,
-     %                nuarco(i3-2), ierr )
-         if( ierr .ne. 0 ) return
-c
-c        ajout eventuel de l'arete mi mi-1 dans nosoar
-         call fasoar( milieu(i), milieu(i0), nutr(i), nutr(4), 0,
-     %                mosoar, mxsoar, n1soar, nosoar, noarst,
-     %                nuarco(i3-1), ierr )
-         if( ierr .ne. 0 ) return
-c
-c        ajout eventuel de l'arete m i-1  si dans nosoar
-         call fasoar( milieu(i0), letree(5+i), nutr(i), -1, 0,
-     %                mosoar, mxsoar, n1soar, nosoar, noarst,
-     %                nuarco(i3), ierr )
-         if( ierr .ne. 0 ) return
-c
- 10   continue
-c
-c     les 3 sous-triangles pres des sommets
-      do 20 i=1,3
-c        le sommet suivant
-         if( i .ne. 3 ) then
-            i1 = i + 1
-         else
-            i1 = 1
-         endif
-c        le sommet precedant
-         if( i .ne. 1 ) then
-            i0 = i - 1
-         else
-            i0 = 3
-         endif
-         i3 = 3 * i
-c
-c        ajout du triangle  arete3i-2 arete3i-1 arete3i
-         if( letree(5+i) .eq. nosoar(1,nuarco(i3-2)) ) then
-            lesign =  1
-         else
-            lesign = -1
-         endif
-         noartr( 1, nutr(i) ) = lesign * nuarco(i3-2)
-c
-         if( milieu(i) .eq. nosoar(1,nuarco(i3-1)) ) then
-            lesign =  1
-         else
-            lesign = -1
-         endif
-         noartr( 2, nutr(i) ) = lesign * nuarco(i3-1)
-c
-         if( milieu(i0) .eq. nosoar(1,nuarco(i3)) ) then
-            lesign =  1
-         else
-            lesign = -1
-         endif
-         noartr( 3, nutr(i) ) = lesign * nuarco(i3)
-c
- 20   continue
-c
-c     le sous triangle central
-      i3 = -1
-      do 30 i=1,3
-         i3 = i3 + 3
-         if( milieu(i) .eq. nosoar(1,nuarco(i3)) ) then
-            lesign = -1
-         else
-            lesign =  1
-         endif
-         noartr( i, nutr(4) ) = lesign * nuarco(i3)
- 30   continue
-c
-c     triangulation des 3 sous-te par ajout des points internes du te
-      call trpite( letree, pxyd,
-     %             mosoar, mxsoar, n1soar, nosoar,
-     %             moartr, mxartr, n1artr, noartr, noarst,
-     %             nbtr,   nutr,   ierr )
-      end
-
-
-
-      subroutine hasoar( mosoar, mxsoar, n1soar, nosoar, nu2sar,
-     %                   noar )
-c ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    rechercher le numero des 2 sommets d'une arete parmi
-c -----    les numeros des 2 sommets des aretes du tableau nosoar
-c          s ils n y sont pas stockes les y ajouter
-c          dans tous les cas retourner le numero de l'arete dans nosoar
-c
-c          la methode employee ici est celle du hachage
-c          avec pour fonction d'adressage h(ns1,ns2)=min(ns1,ns2)
-c
-c          remarque: h(ns1,ns2)=ns1 + 2*ns2
-c                    ne marche pas si des aretes sont detruites
-c                    et ajoutees aux aretes vides
-c                    le chainage est commun a plusieurs hachages!
-c                    d'ou ce choix du minimum pour le hachage
-c
-c entrees:
-c --------
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c          attention: mxsoar>3*mxsomm obligatoire!
-c
-c modifies:
-c ---------
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c          une arete i de nosoar est vide  <=>  nosoar(1,i)=0
-c          chainage des aretes vides amont et aval
-c          l'arete vide qui precede=nosoar(4,i)
-c          l'arete vide qui suit   =nosoar(5,i)
-c nosoar : numero des 2 sommets, no ligne, 2 triangles de l'arete,
-c          chainage momentan'e d'aretes, chainage du hachage des aretes
-c          hachage des aretes = min( nosoar(1), nosoar(2) )
-c nu2sar : en entree les 2 numeros des sommets de l'arete
-c          en sortie nu2sar(1)<nu2sar(2) numeros des 2 sommets de l'arete
-c
-c sorties:
-c --------
-c noar   : numero dans nosoar de l'arete apres hachage
-c          =0 si saturation du tableau nosoar
-c          >0 si le tableau nu2sar est l'arete noar retrouvee
-c             dans le tableau nosoar
-c          <0 si le tableau nu2sar a ete ajoute et forme l'arete
-c             -noar du tableau nosoar avec nosoar(1,noar)<nosoar(2,noar)
-c ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique upmc paris       mars 1997
-c ...................................................................012
-      integer  nu2sar(2), nosoar(mosoar,mxsoar)
-c
-      if( nu2sar(1) .gt. nu2sar(2) ) then
-c
-c        permutation des numeros des 2 sommets pour
-c        amener le plus petit dans nu2sar(1)
-         i         = nu2sar(1)
-         nu2sar(1) = nu2sar(2)
-         nu2sar(2) = i
-      endif
-c
-c     la fonction d'adressage du hachage des aretes : h(ns1,ns2)=min(ns1,ns2)
-c     ===============================================
-      noar = nu2sar(1)
-c
-c     la recherche de l'arete dans le chainage du hachage
-c     ---------------------------------------------------
- 10   if( nu2sar(1) .eq. nosoar(1,noar) ) then
-         if( nu2sar(2) .eq. nosoar(2,noar) ) then
-c
-c           l'arete est retrouvee
-c           .....................
-            return
-         endif
-      endif
-c
-c     l'arete suivante parmi celles ayant meme fonction d'adressage
-      i = nosoar( mosoar, noar )
-      if( i .gt. 0 ) then
-         noar = i
-         goto 10
-      endif
-c
-c     noar est ici la derniere arete (sans suivante) du chainage
-c     a partir de l'adressage du hachage
-c
-c     l'arete non retrouvee doit etre ajoutee
-c     .......................................
-      if( nosoar( 1, nu2sar(1) ) .eq. 0 ) then
-c
-c        l'adresse de hachage est libre => elle devient la nouvelle arete
-c        retouche des chainages de cette arete noar qui ne sera plus vide
-         noar = nu2sar(1)
-c        l'eventuel chainage du hachage n'est pas modifie
-c
-      else
-c
-c        la premiere arete dans l'adressage du hachage n'est pas libre
-c        => choix quelconque d'une arete vide pour ajouter cette arete
-         if( n1soar .le. 0 ) then
-c
-c           le tableau nosoar est sature avec pour temoin d'erreur
-            noar = 0
-            return
-c
-         else
-c
-c           l'arete n1soar est vide => c'est la nouvelle arete
-c           mise a jour du chainage de la derniere arete noar du chainage
-c           sa suivante est la nouvelle arete n1soar
-            nosoar( mosoar, noar ) = n1soar
-c
-c           l'arete ajoutee est n1soar
-            noar = n1soar
-c
-c           la nouvelle premiere arete vide
-            n1soar = nosoar( 5, n1soar )
-c
-c           la premiere arete vide n1soar n'a pas d'arete vide precedente
-            nosoar( 4, n1soar ) = 0
-c
-c           noar la nouvelle arete est la derniere du chainage du hachage
-            nosoar( mosoar, noar ) = 0
-c
-         endif
-c
-      endif
-c
-c     les 2 sommets de la nouvelle arete noar
-      nosoar( 1, noar ) = nu2sar(1)
-      nosoar( 2, noar ) = nu2sar(2)
-c
-c     le tableau nu2sar a ete ajoute avec l'indice -noar
-      noar = - noar
-      end
-
-
-      subroutine mt3str( nt, moartr, noartr, mosoar, nosoar,
-     %                   ns1, ns2, ns3 )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but : calcul du numero des 3 sommets du triangle nt du tableau noartr
-c -----
-c
-c entrees:
-c --------
-c nt     : numero du triangle de noartr a traiter
-c moartr : nombre maximal d'entiers par triangle
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1=0 si triangle vide => arete2=triangle vide suivant
-c mosoar : nombre maximal d'entiers par arete
-c nosoar : numero des 2 sommets , no ligne, 2 triangles, chainages en +
-c          sommet 1 = 0 si arete vide => sommet 2 = arete vide suivante
-c
-c sorties:
-c --------
-c ns1,ns2,ns3 : les 3 numeros des sommets du triangle en sens direct
-c
-c si erreur rencontree => ns1 = 0
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc    juillet 1995
-c2345x7..............................................................012
-      integer    noartr(moartr,*), nosoar(mosoar,*)
-c
-c     le numero de triangle est il correct  ?
-c     a supprimer apres mise au point
-      if( nt .le. 0 ) then
-c         nblgrc(nrerr) = 1
-c         write(kerr(mxlger)(1:6),'(i6)') nt
-c         kerr(1) = kerr(mxlger)(1:6) //
-c     %           ' no triangle dans noartr incorrect'
-c         call lereur
-         write(imprim,*) nt,' no triangle dans noartr incorrect'
-         ns1 = 0
-         return
-      endif
-c
-      na = noartr(1,nt)
-      if( na .gt. 0 ) then
-c        arete dans le sens direct
-         ns1 = nosoar(1,na)
-         ns2 = nosoar(2,na)
-      else
-c        arete dans le sens indirect
-         ns1 = nosoar(2,-na)
-         ns2 = nosoar(1,-na)
-      endif
-c
-      na = noartr(2,nt)
-      if( na .gt. 0 ) then
-c        arete dans le sens direct => ns3 est le second sommet de l'arete
-         ns3 = nosoar(2,na)
-      else
-c        arete dans le sens indirect => ns3 est le premier sommet de l'arete
-         ns3 = nosoar(1,-na)
-      endif
-      end
-      subroutine trpite( letree, pxyd,
-     %                   mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, mxartr, n1artr, noartr,
-     %                   noarst,
-     %                   nbtr,   nutr,   ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    former le ou les sous-triangles des nbtr triangles nutr
-c -----    qui forment le triangle equilateral letree par ajout
-c          des points internes au te qui deviennent des sommets des
-c          sous-triangles des nbtr triangles
-c
-c entrees:
-c --------
-c letree : arbre-4 des triangles equilateraux (te) fond de la triangulation
-c          letree(0:3):-no pxyd des 1 a 4 points internes au triangle j
-c                       0  si pas de point
-c                     ( le te est ici une feuille de l'arbre )
-c          letree(4) : no letree du sur-triangle du triangle j
-c          letree(5) : 0 1 2 3 no du sous-triangle j pour son sur-triangle
-c          letree(6:8) : no pxyd des 3 sommets du triangle j
-c pxyd   : tableau des x  y  distance_souhaitee de chaque sommet
-c mosoar : nombre maximal d'entiers par arete du tableau nosoar
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c mxartr : nombre maximal de triangles stockables dans le tableau noartr
-c
-c modifies:
-c ---------
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c          une arete i de nosoar est vide  <=>  nosoar(1,i)=0
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = (nosoar(1)+nosoar(2)) modulo mxsoar
-c          sommet 1 = 0 si arete vide => sommet 2 = arete vide suivante
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c noarst : noarst(i) numero d'une arete de sommet i
-c
-c sorties:
-c --------
-c nbtr   : nombre de sous-triangles du te
-c nutr   : numero des nbtr sous-triangles du te dans le tableau noartr
-c ierr   : =0 si pas d'erreur
-c          =1 si le tableau nosoar est sature
-c          =2 si le tableau noartr est sature
-c          =3 si aucun des triangles ne contient l'un des points internes au te
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c....................................................................012
-      logical           tratri
-      common / dv2dco / tratri
-c     trace ou non des triangles generes dans la triangulation
-      common / unites / lecteu, imprim, nunite(30)
-      double precision  pxyd(3,*)
-      integer           letree(0:8),
-     %                  nosoar(mosoar,mxsoar),
-     %                  noartr(moartr,mxartr),
-     %                  noarst(*),
-     %                  nutr(1:nbtr)
-c
-      integer           nosotr(3)
-c
-c     si pas de point interne alors trace eventuel puis retour
-      if( letree(0) .eq. 0 ) goto 150
-c
-c     il existe au moins un point interne a trianguler
-c     dans les nbtr triangles
-      do 100 k=0,3
-c
-c        le numero du point
-         np = -letree(k)
-         if( np .eq. 0 ) goto 150
-c
-c        le point np dans pxyd est a traiter
-         do 10 n = 1, nbtr
-c
-c           les numeros des 3 sommets du triangle nt=nutr(n)
-            nt = nutr(n)
-            call nusotr( nt, mosoar, nosoar, moartr, noartr,  nosotr )
-c
-c           le triangle nt contient il le point np?
-            call ptdatr( pxyd(1,np), pxyd, nosotr, nsigne )
-c           nsigne>0 si le point est dans le triangle ou sur une des 3 aretes
-c                 =0 si triangle degenere ou indirect ou ne contient pas le poin
-c
-            if( nsigne .gt. 0 ) then
-c
-c              le triangle nt est triangule en 3 sous-triangles
-               call tr3str( np, nt,
-     %                      mosoar, mxsoar, n1soar, nosoar,
-     %                      moartr, mxartr, n1artr, noartr,
-     %                      noarst,
-     %                      nutr(nbtr+1),  ierr )
-               if( ierr .ne. 0 ) return
-c
-c              reamenagement des 3 triangles crees dans nutr
-c              en supprimant le triangle nt
-               nutr( n ) = nutr( nbtr + 3 )
-               nbtr = nbtr + 2
-c              le point np est triangule
-               goto 100
-c
-            endif
- 10      continue
-c
-c        erreur: le point np n'est pas dans l'un des nbtr triangles
-         write(imprim,10010) np
-         ierr = 3
-         return
-c
- 100  continue
-10010 format(' erreur trpite: pas de triangle contenant le point',i7)
-c
- 150  continue
-
-ccc 150  if( tratri ) then
-cccc       les traces sont demandes
-ccc        call efface
-cccc       le cadre objet global en unites utilisateur
-ccc        xx1 = min(pxyd(1,nosotr(1)),pxyd(1,nosotr(2)),pxyd(1,nosotr(3)))
-ccc        xx2 = max(pxyd(1,nosotr(1)),pxyd(1,nosotr(2)),pxyd(1,nosotr(3)))
-ccc        yy1 = min(pxyd(2,nosotr(1)),pxyd(2,nosotr(2)),pxyd(2,nosotr(3)))
-ccc        yy2 = max(pxyd(2,nosotr(1)),pxyd(2,nosotr(2)),pxyd(2,nosotr(3)))
-ccc        if( xx1 .ge. xx2 ) xx2 = xx1 + (yy2-yy1)
-ccc        if( yy1 .ge. yy2 ) yy2 = yy1 + (xx2-xx1)*0.5
-ccc        call isofenetre( xx1-(xx2-xx1), xx2+(xx2-xx1),
-ccc     %                   yy1-(yy2-yy1), yy2+(yy2-yy1) )
-ccc         do 200 i=1,nbtr
-cccc           trace du triangle nutr(i)
-ccc            call mttrtr( pxyd, nutr(i), moartr, noartr, mosoar, nosoar,
-ccc     %                   i, ncblan )
-ccc 200     continue
-ccc      endif
-
-      end
-
-
-      subroutine sasoar( noar, mosoar, mxsoar, n1soar, nosoar )
-c ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    supprimer l'arete noar du tableau nosoar
-c -----    si celle ci n'est pas une arete des lignes de la frontiere
-c
-c          la methode employee ici est celle du hachage
-c          avec pour fonction d'adressage h = min( nu2sar(1), nu2sar(2) )
-c
-c          attention: il faut mettre a jour le no d'arete des 2 sommets
-c                     de l'arete supprimee dans le tableau noarst!
-c
-c entrees:
-c --------
-c noar   : numero de l'arete de nosoar a supprimer
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage h
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c          attention: mxsoar>3*mxsomm obligatoire!
-c
-c modifies:
-c ---------
-c n1soar : no de l'eventuelle premiere arete libre dans le tableau nosoar
-c          chainage des vides suivant en 3 et precedant en 2 de nosoar
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          une arete i de nosoar est vide <=> nosoar(1,i)=0 et
-c          nosoar(4,arete vide)=l'arete vide qui precede
-c          nosoar(5,arete vide)=l'arete vide qui suit
-c ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique upmc paris       mars 1997
-c ...................................................................012
-      common / unites / lecteu, imprim, nunite(30)
-      integer           nosoar(mosoar,mxsoar)
-c
-      if( nosoar(3,noar) .le. 0 ) then
-c
-c        l'arete n'est pas frontaliere => elle devient une arete vide
-c
-c        recherche de l'arete qui precede dans le chainage du hachage
-         noar1 = nosoar(1,noar)
-c
-c        parcours du chainage du hachage jusqu'a retrouver l'arete noar
- 10      if( noar1 .ne. noar ) then
-c
-c           l'arete suivante parmi celles ayant meme fonction d'adressage
-            noar0 = noar1
-            noar1 = nosoar( mosoar, noar1 )
-            if( noar1 .gt. 0 ) goto 10
-c
-c           l'arete noar n'a pas ete retrouvee dans le chainage => erreur
-            write(imprim,*) 'erreur sasoar:arete non dans le chainage '
-     %                      ,noar
-            write(imprim,*) 'arete de st1=',nosoar(1,noar),
-     %      ' st2=',nosoar(2,noar),' ligne=',nosoar(3,noar),
-     %      ' tr1=',nosoar(4,noar),' tr2=',nosoar(5,noar)
-            write(imprim,*) 'chainages=',(nosoar(i,noar),i=6,mosoar)
-c           l'arete n'est pas detruite
-            return
-c
-         endif
-c
-         if( noar .ne. nosoar(1,noar) ) then
-c
-c           saut de l'arete noar dans le chainage du hachage
-c           noar0 initialisee est ici l'arete qui precede noar dans ce chainage
-            nosoar( mosoar, noar0 ) = nosoar( mosoar, noar )
-c
-c           le chainage du hachage n'existe plus pour noar
-c           pas utile car mise a zero faite dans le sp hasoar
-ccc         nosoar( mosoar, noar ) = 0
-c
-c           noar devient la nouvelle premiere arete du chainage des vides
-            nosoar( 4, noar ) = 0
-            nosoar( 5, noar ) = n1soar
-c           la nouvelle precede l'ancienne premiere
-            nosoar( 4, n1soar ) = noar
-            n1soar = noar
-c
-ccc      else
-c
-c           noar est la premiere arete du chainage du hachage h
-c           cette arete ne peut etre consideree dans le chainage des vides
-c           car le chainage du hachage doit etre conserve (sinon perte...)
-c
-         endif
-c
-c        le temoin d'arete vide
-         nosoar( 1, noar ) = 0
-      endif
-      end
-
-
-      subroutine caetoi( noar,   mosoar, mxsoar, n1soar, nosoar,
-     %                   n1aeoc, nbtrar  )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    ajouter (ou retirer) l'arete noar de nosoar de l'etoile
-c -----    des aretes simples chainees en position lchain de nosoar
-c          detruire du tableau nosoar les aretes doubles
-c
-c          attention: le chainage lchain de nosoar devient celui des cf
-c
-c entree :
-c --------
-c noar   : numero dans le tableau nosoar de l'arete a traiter
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c          attention: mxsoar>3*mxsomm obligatoire!
-c
-c entrees et sorties:
-c -------------------
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c          une arete i de nosoar est vide  <=>  nosoar(1,i)=0
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c n1aeoc : numero dans nosoar de la premiere arete simple de l'etoile
-c
-c sortie :
-c --------
-c nbtrar : 1 si arete ajoutee, 2 si arete double supprimee
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c2345x7..............................................................012
-      parameter        (lchain=6)
-      integer           nosoar(mosoar,mxsoar)
-c
-c     si    l'arete n'appartient pas aux aretes de l'etoile naetoi
-c     alors elle est ajoutee a l'etoile dans naetoi
-c     sinon elle est empilee dans npile pour etre detruite ensuite
-c           elle est supprimee de l'etoile naetoi
-c
-      if( nosoar( lchain, noar ) .lt. 0 ) then
-c
-c        arete de l'etoile vue pour la premiere fois
-c        elle est ajoutee au chainage
-         nosoar( lchain, noar ) = n1aeoc
-c        elle devient la premiere du chainage
-         n1aeoc = noar
-c        arete simple
-         nbtrar = 1
-c
-      else
-c
-c        arete double de l'etoile. elle est supprimee du chainage
-         na0 = 0
-         na  = n1aeoc
-c        parcours des aretes chainees jusqu'a trouver l'arete noar
- 10      if( na .ne. noar ) then
-c           passage a la suivante
-            na0 = na
-            na  = nosoar( lchain, na )
-            goto 10
-         endif
-c
-c        suppression de noar du chainage des aretes simples de l'etoile
-         if( na0 .gt. 0 ) then
-c           il existe une arete qui precede
-            nosoar( lchain, na0 ) = nosoar( lchain, noar )
-         else
-c           noar est en fait n1aeoc la premiere du chainage
-            n1aeoc = nosoar( lchain, noar )
-         endif
-c        noar n'est plus une arete simple de l'etoile
-         nosoar( lchain, noar ) = -1
-c
-c        destruction du tableau nosoar de l'arete double noar
-         call sasoar( noar, mosoar, mxsoar, n1soar, nosoar )
-c
-c        arete double
-         nbtrar = 2
-      endif
-      end
-
-
-      subroutine focftr( nbtrcf, notrcf, pxyd,   noarst,
-     %                   mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, n1artr, noartr,
-     %                   nbarcf, n1arcf, noarcf,
-     %                   ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    former un contour ferme (cf) avec les aretes simples des
-c -----    nbtrcf triangles du tableau notrcf
-c          destruction des nbtrcf triangles du tableau noartr
-c          destruction des aretes doubles   du tableau nosoar
-c
-c          attention: le chainage lchain de nosoar devient celui des cf
-c
-c entrees:
-c --------
-c nbtrcf : nombre de  triangles du cf a former
-c notrcf : numero des triangles dans le tableau noartr
-c pxyd   : tableau des coordonnees 2d des points
-c          par point : x  y  distance_souhaitee
-c
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c          attention: mxsoar>3*mxsomm obligatoire!
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c
-c entrees et sorties :
-c --------------------
-c noarst : noarst(i) numero d'une arete de sommet i
-c n1soar : numero de la premiere arete vide dans le tableau nosoar
-c          une arete i de nosoar est vide  <=>  nosoar(1,i)=0
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = nosoar(1)+nosoar(2)*2
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c
-c sorties:
-c --------
-c nbarcf : nombre d'aretes du cf
-c n1arcf : numero d'une arete de chaque contour
-c noarcf : numero des aretes de la ligne du contour ferme
-c attention: chainage circulaire des aretes
-c            les aretes vides pointes par n1arcf(0) ne sont pas chainees
-c ierr   :  0 si pas d'erreur
-c          14 si les lignes fermees se coupent => donnees a revoir
-c          15 si une seule arete simple frontaliere
-c          16 si boucle infinie car toutes les aretes simples
-c                de la boule sont frontalieres!
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c....................................................................012
-      parameter        (lchain=6)
-      common / unites / lecteu, imprim, nunite(30)
-      double precision  pxyd(3,*)
-      integer           notrcf(1:nbtrcf)
-      integer           nosoar(mosoar,mxsoar),
-     %                  noartr(moartr,*),
-     %                  n1arcf(0:*),
-     %                  noarcf(3,*),
-     %                  noarst(*)
-c
-c     formation des aretes simples du cf autour de l'arete ns1-ns2
-c     attention: le chainage lchain du tableau nosoar devient actif
-c     ============================================================
-c     ici toutes les aretes du tableau nosoar verifient nosoar(lchain,i) = -1
-c     ce qui equivaut a dire que l'etoile des aretes simples est vide
-c     (initialisation dans le sp insoar puis remise a -1 dans la suite!)
-      n1aeoc = 0
-c
-c     ajout a l'etoile des aretes simples des 3 aretes des triangles a supprimer
-c     suppression des triangles de l'etoile pour les aretes simples de l'etoile
-      do 10 i=1,nbtrcf
-c        ajout ou retrait des 3 aretes du triangle notrcf(i) de l'etoile
-         nt = notrcf( i )
-         do 5 j=1,3
-c           l'arete de nosoar a traiter
-            noar = abs( noartr(j,nt) )
-            call caetoi( noar,   mosoar, mxsoar, n1soar, nosoar,
-     %                   n1aeoc, nbtrar  )
-c           si arete simple alors suppression du numero de triangle pour cette a
-            if( nbtrar .eq. 1 ) then
-               if( nosoar(4,noar) .eq. nt ) then
-                  nosoar(4,noar) = nosoar(5,noar)
-               endif
-               nosoar(5,noar) = -1
-c           else
-c              l'arete appartient a aucun triangle => elle est vide
-c              les positions 4 et 5 servent maintenant aux chainages des vides
-            endif
-  5      continue
- 10   continue
-c
-c     les aretes simples de l'etoile sont reordonnees pour former une
-c     ligne fermee = un contour ferme peripherique de l'etoile encore dit 1 cf
-c     ========================================================================
-      n1ae00 = n1aeoc
- 12   na1    = n1aeoc
-c     la premiere arete du contour ferme
-      ns0 = nosoar(1,na1)
-      ns1 = nosoar(2,na1)
-c
-c     l'arete est-elle dans le sens direct?
-c     recherche de l'arete du triangle exterieur nt d'arete na1
-      nt = nosoar(4,na1)
-      if( nt .le. 0 ) nt = nosoar(5,na1)
-c
-c     attention au cas de l'arete initiale frontaliere de no de triangles 0 et -
-      if( nt .le. 0 ) then
-c        permutation circulaire des aretes simples chainees
-c        la premiere arete doit devenir la derniere du chainage,
-c        la 2=>1, la 3=>2, ... , la derniere=>l'avant derniere, 1=>derniere
-         n1aeoc = nosoar( lchain, n1aeoc )
-         if( n1aeoc .eq. n1ae00 ) then
-c           attention: boucle infinie si toutes les aretes simples
-c           de la boule sont frontalieres!... arretee par ce test
-            ierr = 16
-            return
-         endif
-         noar = n1aeoc
-         na0  = 0
- 14      if( noar .gt. 0 ) then
-c           la sauvegarde de l'arete et l'arete suivante
-            na0  = noar
-            noar = nosoar(lchain,noar)
-            goto 14
-         endif
-         if( na0 .le. 0 ) then
-c           une seule arete simple frontaliere
-            ierr = 15
-            return
-         endif
-c        le suivant de l'ancien dernier est l'ancien premier
-         nosoar(lchain,na0) = na1
-c        le nouveau dernier est l'ancien premier
-         nosoar(lchain,na1) = 0
-         goto 12
-      endif
-c
-c     ici l'arete na1 est l'une des aretes du triangle nt
-      do 15 i=1,3
-         if( abs(noartr(i,nt)) .eq. na1 ) then
-c           c'est l'arete
-            if( noartr(i,nt) .gt. 0 ) then
-c              elle est parcourue dans le sens indirect de l'etoile
-c             (car c'est en fait le triangle exterieur a la boule)
-               ns0 = nosoar(2,na1)
-               ns1 = nosoar(1,na1)
-            endif
-            goto 17
-         endif
- 15   continue
-c
-c     le 1-er sommet ou arete du contour ferme
- 17   n1arcf( 1 ) = 1
-c     le nombre de sommets du contour ferme de l'etoile
-      nbarcf = 1
-c     le premier sommet de l'etoile
-      noarcf( 1, nbarcf ) = ns0
-c     l'arete suivante du cf
-      noarcf( 2, nbarcf ) = nbarcf + 1
-c     le numero de cette arete dans le tableau nosoar
-      noarcf( 3, nbarcf ) = na1
-c     mise a jour du numero d'arete du sommet ns0
-      noarst(ns0) = na1
-c
-cccc     trace de l'arete
-ccc      call dvtrar( pxyd, ns0, ns1, ncvert, ncblan )
-c
-c     l'arete suivante a chainer
-      n1aeoc = nosoar( lchain, na1 )
-c     l'arete na1 n'est plus dans l'etoile
-      nosoar( lchain, na1 ) = -1
-c
-c     boucle sur les aretes simples de l'etoile
- 20   if( n1aeoc .gt. 0 ) then
-c
-c        recherche de l'arete de 1-er sommet ns1
-         na0 = -1
-         na1 = n1aeoc
- 25      if( na1 .gt. 0 ) then
-c
-c           le numero du dernier sommet de l'arete precedente
-c           est il l'un des 2 sommets de l'arete na1?
-            if ( ns1 .eq. nosoar(1,na1) ) then
-c               l'autre sommet de l'arete na1
-                ns2 = nosoar(2,na1)
-            else if( ns1 .eq. nosoar(2,na1) ) then
-c               l'autre sommet de l'arete na1
-                ns2 = nosoar(1,na1)
-            else
-c              non: passage a l'arete suivante
-               na0 = na1
-               na1 = nosoar( lchain, na1 )
-               goto 25
-            endif
-c
-c           oui: na1 est l'arete peripherique suivante
-c                na0 est sa precedente dans le chainage
-c           une arete de plus dans le contour ferme (cf)
-            nbarcf = nbarcf + 1
-c           le premier sommet de l'arete nbarcf peripherique
-            noarcf( 1, nbarcf ) = ns1
-c           l'arete suivante du cf
-            noarcf( 2, nbarcf ) = nbarcf + 1
-c           le numero de cette arete dans le tableau nosoar
-            noarcf( 3, nbarcf ) = na1
-c           mise a jour du numero d'arete du sommet ns1
-            noarst(ns1) = na1
-c
-cccc           trace de l'arete
-ccc            call dvtrar( pxyd, ns1, ns2, ncvert, ncblan )
-c
-c           suppression de l'arete des aretes simples de l'etoile
-            if( n1aeoc .eq. na1 ) then
-                n1aeoc = nosoar( lchain, na1 )
-            else
-                nosoar( lchain, na0 ) = nosoar( lchain, na1 )
-            endif
-c           l'arete n'est plus une arete simple de l'etoile
-            nosoar( lchain, na1 ) = -1
-c
-c           le sommet final de l'arete a rechercher ensuite
-            ns1 = ns2
-            goto 20
-         endif
-      endif
-c
-c     verification
-      if( ns1 .ne. ns0 ) then
-c        arete non retrouvee : l'etoile ne se referme pas
-c         nblgrc(nrerr) = 3
-c         kerr(1) = 'focftr: revoyez vos donnees'
-c         kerr(2) = 'les lignes fermees doivent etre disjointes'
-c         kerr(3) = 'verifiez si elles ne se coupent pas'
-c         call lereur
-          write(imprim,*) 'focftr: revoyez vos donnees'
-          write(imprim,*)'les lignes fermees doivent etre disjointes'
-          write(imprim,*)'verifiez si elles ne se coupent pas'
-         ierr = 14
-         return
-      endif
-c
-c     l'arete suivant la derniere arete du cf est la premiere du cf
-c     => realisation d'un chainage circulaire des aretes du cf
-      noarcf( 2, nbarcf ) = 1
-c
-c     destruction des triangles de l'etoile du tableau noartr
-c     -------------------------------------------------------
-      do 50 i=1,nbtrcf
-c        le numero du triangle dans noartr
-         nt0 = notrcf( i )
-c        l'arete 1 de nt0 devient nulle
-         noartr( 1, nt0 ) = 0
-c        chainage de nt0 en tete du chainage des triangles vides de noartr
-         noartr( 2, nt0 ) = n1artr
-         n1artr = nt0
- 50   continue
-      end
-
-
-      subroutine int1sd( ns1, ns2, ns3, ns4, pxyd, linter, x0, y0 )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    existence ou non  d'une intersection a l'interieur
-c -----    des 2 aretes ns1-ns2 et ns3-ns4
-c          attention les intersections au sommet sont comptees
-c
-c entrees:
-c --------
-c ns1,...ns4 : numero pxyd des 4 sommets
-c pxyd   : les coordonnees des sommets
-c
-c sortie :
-c --------
-c linter : -1 si ns3-ns4 parallele a ns1 ns2
-c           0 si ns3-ns4 n'intersecte pas ns1-ns2 entre les aretes
-c           1 si ns3-ns4   intersecte     ns1-ns2 entre les aretes
-c           2 si le point d'intersection est ns1  entre ns3-ns4
-c           3 si le point d'intersection est ns3  entre ns1-ns2
-c           4 si le point d'intersection est ns4  entre ns1-ns2
-c x0,y0  :  2 coordonnees du point d'intersection s'il existe(linter>=1)
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc    fevrier 1992
-c2345x7..............................................................012
-      parameter        ( epsmoi=-0.000001d0, eps=0.001d0,
-     %                   unmeps= 0.999d0, unpeps=1.000001d0 )
-      double precision  pxyd(3,*), x0, y0
-      double precision  x1,y1,x21,y21,d21,x43,y43,d43,d,x,y,p21,p43
-c
-      x1  = pxyd(1,ns1)
-      y1  = pxyd(2,ns1)
-      x21 = pxyd(1,ns2) - x1
-      y21 = pxyd(2,ns2) - y1
-      d21 = x21**2 + y21**2
-c
-      x43 = pxyd(1,ns4) - pxyd(1,ns3)
-      y43 = pxyd(2,ns4) - pxyd(2,ns3)
-      d43 = x43**2 + y43**2
-c
-c     les 2 aretes sont-elles jugees paralleles ?
-      d = x43 * y21 - y43 * x21
-      if( d*d .le. 0.000001d0 * d21 * d43 ) then
-c        cote i parallele a ns1-ns2
-         linter = -1
-         return
-      endif
-c
-c     les 2 coordonnees du point d'intersection
-      x =( x1*x43*y21-pxyd(1,ns3)*x21*y43-(y1-pxyd(2,ns3))*x21*x43)/d
-      y =(-y1*y43*x21+pxyd(2,ns3)*y21*x43+(x1-pxyd(1,ns3))*y21*y43)/d
-c
-c     coordonnee barycentrique de x,y dans le repere ns1-ns2
-      p21 = ( ( x - x1 )       * x21 + ( y - y1 )        * y21 ) / d21
-c     coordonnee barycentrique de x,y dans le repere ns3-ns4
-      p43 = ( (x - pxyd(1,ns3))* x43 + (y - pxyd(2,ns3)) * y43 ) / d43
-c
-c
-      if( epsmoi .le. p21 .and. p21 .le. unpeps ) then
-c        x,y est entre ns1-ns2
-         if( (p21 .le. eps)  .and.
-     %       (epsmoi .le. p43 .and. p43 .le. unpeps) ) then
-c           le point x,y est proche de ns1 et interne a ns3-ns4
-            linter = 2
-            x0 = pxyd(1,ns1)
-            y0 = pxyd(2,ns1)
-            return
-         else if( epsmoi .le. p43 .and. p43 .le. eps ) then
-c           le point x,y est proche de ns3 et entre ns1-ns2
-            linter = 3
-            x0 = pxyd(1,ns3)
-            y0 = pxyd(2,ns3)
-            return
-         else if( unmeps .le. p43 .and. p43 .le. unpeps ) then
-c           le point x,y est proche de ns4 et entre ns1-ns2
-            linter = 4
-            x0 = pxyd(1,ns4)
-            y0 = pxyd(2,ns4)
-            return
-         else if( eps .le. p43 .and. p43 .le. unmeps ) then
-c           le point x,y est entre ns3-ns4
-            linter = 1
-            x0     = x
-            y0     = y
-            return
-         endif
-      endif
-c
-c     pas d'intersection a l'interieur des aretes
-      linter = 0
-      end
-
-
-      subroutine tefoar( narete, nbarpi, pxyd,
-     %                   mosoar, mxsoar, n1soar, nosoar,
-     %                   moartr, n1artr, noartr, noarst,
-     %                   mxarcf, n1arcf, noarcf, larmin, notrcf,
-     %                   ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :   forcer l'arete narete de nosoar dans la triangulation actuelle
-c -----   triangulation frontale pour la reobtenir
-c
-c         attention: le chainage lchain(=6) de nosoar devient actif
-c                    durant la formation des contours fermes (cf)
-c
-c entrees:
-c --------
-c narete : numero nosoar de l'arete frontaliere a forcer
-c nbarpi : numero du dernier point interne impose par l'utilisateur
-c pxyd   : tableau des coordonnees 2d des points
-c          par point : x  y  distance_souhaitee
-c
-c mosoar : nombre maximal d'entiers par arete et
-c          indice dans nosoar de l'arete suivante dans le hachage
-c mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-c          attention: mxsoar>3*mxsomm obligatoire!
-c moartr : nombre maximal d'entiers par arete du tableau noartr
-c
-c modifies:
-c ---------
-c n1soar : no de l'eventuelle premiere arete libre dans le tableau nosoar
-c          chainage des vides suivant en 3 et precedant en 2 de nosoar
-c nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-c          chainage des aretes frontalieres, chainage du hachage des aretes
-c          hachage des aretes = nosoar(1)+nosoar(2)*2
-c          avec mxsoar>=3*mxsomm
-c          une arete i de nosoar est vide <=> nosoar(1,i)=0 et
-c          nosoar(2,arete vide)=l'arete vide qui precede
-c          nosoar(3,arete vide)=l'arete vide qui suit
-c n1artr : numero du premier triangle vide dans le tableau noartr
-c          le chainage des triangles vides se fait sur noartr(2,.)
-c noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-c          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-c noarst : noarst(i) numero d'une arete de sommet i
-c
-c mxarcf : nombre de variables des tableaux n1arcf, noarcf, larmin, notrcf
-c
-c tableaux auxiliaires :
-c ----------------------
-c n1arcf : tableau (0:mxarcf) auxiliaire
-c noarcf : tableau (3,mxarcf) auxiliaire
-c larmin : tableau (mxarcf)   auxiliaire
-c notrcf : tableau (1:mxarcf) auxiliaire
-c
-c sortie :
-c --------
-c ierr   : 0 si pas d'erreur
-c          1 saturation des sommets
-c          2 ns1 dans aucun triangle
-c          9 tableau nosoar de taille insuffisante car trop d'aretes
-c            a probleme
-c          10 un des tableaux n1arcf, noarcf notrcf est sature
-c             augmenter a l'appel mxarcf
-c          11 algorithme defaillant
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
-c....................................................................012
-      parameter        (mxpitr=32)
-      common / unites / lecteu,imprim,intera,nunite(29)
-      logical           tratri
-      common / dv2dco / tratri
-      double precision  pxyd(3,*)
-      integer           noartr(moartr,*),
-     %                  nosoar(mosoar,mxsoar),
-     %                  noarst(*),
-     %                  n1arcf(0:mxarcf),
-     %                  noarcf(3,mxarcf),
-     %                  larmin(mxarcf),
-     %                  notrcf(mxarcf)
-c
-      integer           lapitr(mxpitr)
-      double precision  x1,y1,x2,y2,d12,d3,d4,x,y,d,dmin
-      integer           nosotr(3), ns(2)
-      integer           nacf(1:2), nacf1, nacf2
-      equivalence      (nacf(1),nacf1), (nacf(2),nacf2)
-c
-c     traitement de cette arete perdue
-      ns1 = nosoar( 1, narete )
-      ns2 = nosoar( 2, narete )
-c
-      if( tratri ) then
-c        les traces sont demandes
-c         call efface
-c        le cadre objet global en unites utilisateur
-         xx1 = min( pxyd(1,ns1), pxyd(1,ns2) )
-         xx2 = max( pxyd(1,ns1), pxyd(1,ns2) )
-         yy1 = min( pxyd(2,ns1), pxyd(2,ns2) )
-         yy2 = max( pxyd(2,ns1), pxyd(2,ns2) )
-         if( xx1 .ge. xx2 ) xx2 = xx1 + (yy2-yy1)
-         if( yy1 .ge. yy2 ) yy2 = yy1 + (xx2-xx1)*0.5
-c         call isofenetre( xx1-(xx2-xx1), xx2+(xx2-xx1),
-c     %                    yy1-(yy2-yy1), yy2+(yy2-yy1) )
-      endif
-c
-cccc     trace de l'arete perdue
-ccc      call dvtrar( pxyd, ns1, ns2, ncroug, ncblan )
-c
-c     le sommet ns2 est il correct?
-      na = noarst( ns2 )
-      if( na .le. 0 ) then
-         write(imprim,*) 'tefoar: erreur sommet ',ns2,' sans arete'
-         ierr = 8
-         return
-      endif
-      if( nosoar(4,na) .le. 0 ) then
-         write(imprim,*) 'tefoar: erreur sommet ',ns2,
-     %                   ' dans aucun triangle'
-         ierr = 8
-         return
-      endif
-c
-c     recherche du triangle voisin dans le sens indirect de rotation
-      nsens = -1
-c     le premier passage: recherche dans le sens ns1->ns2
-      ipas = 0
-c
-c     recherche des triangles intersectes par le segment ns1-ns2
-c     ==========================================================
- 3    x1  = pxyd(1,ns1)
-      y1  = pxyd(2,ns1)
-      x2  = pxyd(1,ns2)
-      y2  = pxyd(2,ns2)
-      d12 = (x2-x1)**2 + (y2-y1)**2
-c
-c     recherche du no local du sommet ns1 dans l'un de ses triangles
-      na01 = noarst( ns1 )
-      if( na01 .le. 0 ) then
-         write(imprim,*) 'tefoar: sommet ',ns1,' sans arete'
-         ierr = 8
-         return
-      endif
-      nt0 = nosoar(4,na01)
-      if( nt0 .le. 0 ) then
-         write(imprim,*) 'tefoar: sommet ',ns1,' dans aucun triangle'
-         ierr = 8
-         return
-      endif
-c
-c     le numero des 3 sommets du triangle nt0 dans le sens direct
- 20   call nusotr( nt0, mosoar, nosoar, moartr, noartr, nosotr )
-      do 22 na00=1,3
-         if( nosotr(na00) .eq. ns1 ) goto 26
- 22   continue
-c
- 25   if( ipas .eq. 0 ) then
-c        le second passage: recherche dans le sens ns2->ns1
-c        tentative d'inversion des 2 sommets extremites de l'arete a forcer
-         na00 = ns1
-         ns1  = ns2
-         ns2  = na00
-         ipas = 1
-         goto 3
-      else
-c        les sens ns1->ns2 et ns2->ns1 ne donne pas de solution!
-         write(imprim,*)'tefoar:arete ',ns1,' - ',ns2,' a imposer'
-         write(imprim,*)'tefoar:anomalie sommet ',ns1,
-     %   'non dans le triangle de sommets ',(nosotr(i),i=1,3)
-         ierr = 11
-         return
-      endif
-c
-c     le numero des aretes suivante et precedente
- 26   na0 = nosui3( na00 )
-      na1 = nopre3( na00 )
-      ns3 = nosotr( na0 )
-      ns4 = nosotr( na1 )
-c
-cccc     trace du triangle nt0 et de l'arete perdue
-ccc      call mttrtr( pxyd, nt0, moartr, noartr, mosoar, nosoar,
-ccc     %             ncblan, ncjaun )
-ccc      call dvtrar( pxyd, ns1, ns2, ncroug, ncblan )
-ccc      call dvtrar( pxyd, ns3, ns4, ncbleu, nccyan )
-c
-c     point d'intersection du segment ns1-ns2 avec l'arete ns3-ns4
-c     ------------------------------------------------------------
-      call int1sd( ns1, ns2, ns3, ns4, pxyd, linter, x1, y1 )
-      if( linter .le. 0 ) then
-c
-c        pas d'intersection: rotation autour du point ns1
-c        pour trouver le triangle de l'autre cote de l'arete na01
-         if( nsens .lt. 0 ) then
-c           sens indirect de rotation: l'arete de sommet ns1
-            na01 = abs( noartr(na00,nt0) )
-         else
-c           sens direct de rotation: l'arete de sommet ns1 qui precede
-            na01 = abs( noartr(na1,nt0) )
-         endif
-c        le triangle de l'autre cote de l'arete na01
-         if( nosoar(4,na01) .eq. nt0 ) then
-            nt0 = nosoar(5,na01)
-         else
-            nt0 = nosoar(4,na01)
-         endif
-         if( nt0 .gt. 0 ) goto 20
-c
-c        le parcours sort du domaine
-c        il faut tourner dans l'autre sens autour de ns1
-         if( nsens .lt. 0 ) then
-            nsens = 1
-            nt0   = noarst( ns1 )
-            goto 20
-         endif
-c
-c        dans les 2 sens, pas d'intersection => impossible
-c        essai avec l'arete inversee ns1 <-> ns2
-         if( ipas .eq. 0 ) goto 25
-         write(imprim,*) 'tefoar: arete ',ns1,' ',ns2,
-     %  ' sans intersection avec les triangles actuels'
-         write(imprim,*) 'revoyez les lignes du contour'
-         ierr = 11
-         return
-      endif
-c
-c     il existe une intersection avec l'arete opposee au sommet ns1
-c     =============================================================
-c     nbtrcf : nombre de triangles du cf
-      nbtrcf = 1
-      notrcf( 1 ) = nt0
-c
-c     le triangle oppose a l'arete na0 de nt0
- 30   noar = abs( noartr(na0,nt0) )
-      if( nosoar(4,noar) .eq. nt0 ) then
-         nt1 = nosoar(5,noar)
-      else
-         nt1 = nosoar(4,noar)
-      endif
-c
-cccc     trace du triangle nt1 et de l'arete perdue
-ccc      call mttrtr( pxyd, nt1, moartr, noartr, mosoar, nosoar,
-ccc     %             ncjaun, ncmage )
-ccc      call dvtrar( pxyd, ns1, ns2, ncroug, ncblan )
-c
-c     le numero des 3 sommets du triangle nt1 dans le sens direct
-      call nusotr( nt1, mosoar, nosoar, moartr, noartr, nosotr )
-c
-c     le triangle nt1 contient il ns2 ?
-      do 32 j=1,3
-         if( nosotr(j) .eq. ns2 ) goto 70
- 32   continue
-c
-c     recherche de l'arete noar, na1 dans nt1 qui est l'arete na0 de nt0
-      do 34 na1=1,3
-         if( abs( noartr(na1,nt1) ) .eq. noar ) goto 35
- 34   continue
-c
-c     trace du triangle nt1 et de l'arete perdue
- 35   continue
-ccc 35   call mttrtr( pxyd, nt1, moartr, noartr, mosoar, nosoar,
-ccc     %             ncjaun, ncmage )
-ccc      call dvtrar( pxyd, ns1, ns2, ncroug, ncblan )
-c
-c     recherche de l'intersection de ns1-ns2 avec les 2 autres aretes de nt1
-c     ======================================================================
-      na2 = na1
-      do 50 i1 = 1,2
-c        l'arete suivante
-         na2 = nosui3(na2)
-c
-c        les 2 sommets de l'arete na2 de nt1
-         noar = abs( noartr(na2,nt1) )
-         ns3  = nosoar( 1, noar )
-         ns4  = nosoar( 2, noar )
-ccc         call dvtrar( pxyd, ns3, ns4, ncbleu, nccyan )
-c
-c        point d'intersection du segment ns1-ns2 avec l'arete ns3-ns4
-c        ------------------------------------------------------------
-         call int1sd( ns1, ns2, ns3, ns4, pxyd, linter, x , y )
-         if( linter .gt. 0 ) then
-c
-c           les 2 aretes s'intersectent en (x,y)
-c           distance de (x,y) a ns3 et ns4
-            d3 = (pxyd(1,ns3)-x)**2 + (pxyd(2,ns3)-y)**2
-            d4 = (pxyd(1,ns4)-x)**2 + (pxyd(2,ns4)-y)**2
-c           nsp est le point le plus proche de (x,y)
-            if( d3 .lt. d4 ) then
-               nsp = ns3
-               d   = d3
-            else
-               nsp = ns4
-               d   = d4
-            endif
-            if( d .gt. 1d-5*d12 ) goto 60
-c
-c           ici le sommet nsp est trop proche de l'arete perdue ns1-ns2
-            if( nsp .le. nbarpi ) then
-c              point utilisateur ou frontalier non supprimable
-               ierr = 11
-               write(imprim,*) 'pause dans tefoar 1', d, d3, d4, d12
-               return
-            endif
-c
-c           le sommet interne nsp est supprime en mettant tous les triangles
-c           l'ayant comme sommet dans la pile notrcf des triangles a supprimer
-c           ------------------------------------------------------------------
-ccc            write(imprim,*) 'tefoar: le sommet ',nsp,' est supprime'
-c           construction de la liste des triangles de sommet nsp
-            call trp1st( nsp, noarst, mosoar, nosoar, moartr, noartr,
-     %                   mxpitr, nbt, lapitr )
-            if( nbt .le. 0 ) then
-c              les triangles de sommet nsp ne forme pas une "boule"
-c              avec ce sommet nsp pour "centre"
-               write(imprim,*)
-     %        'tefoar: pas d''etoile de triangles autour du sommet',nsp
-cccc              trace des triangles de l'etoile du sommet nsp
-ccc               tratri = .true.
-ccc               call trpltr( nbt,    lapitr, pxyd,
-ccc     %                      moartr, noartr, mosoar, nosoar,
-ccc     %                      ncroug, ncblan )
-ccc               tratri = .false.
-               ierr = 11
-               write(imprim,*) 'pause dans tefoar 2'
-               return
-            endif
-c
-c           ajout des triangles de sommet ns1 a notrcf
-            nbtrc0 = nbtrcf
-            do 38 j=1,nbt
-               nt = lapitr(j)
-               do 37 k=nbtrcf,1,-1
-                  if( nt .eq. notrcf(k) ) goto 38
- 37            continue
-c              triangle ajoute
-               nbtrcf = nbtrcf + 1
-               notrcf( nbtrcf ) = nt
-ccc               call mttrtr( pxyd, nt, moartr, noartr, mosoar, nosoar,
-ccc     %                      ncjaun, ncmage )
-ccc               call dvtrar( pxyd, ns1, ns2, ncroug, ncblan )
- 38         continue
-c
-c           ce sommet supprime n'appartient plus a aucun triangle
-            noarst( nsp ) = 0
-c
-c           ns2 est-il un sommet des triangles empiles?
-c           -------------------------------------------
-            do 40 nt=nbtrc0+1,nbtrcf
-c              le triangle a supprimer nt
-               nt1 = notrcf( nt )
-c              le numero des 3 sommets du triangle nt1 dans le sens direct
-               call nusotr( nt1, mosoar, nosoar, moartr, noartr, nosotr)
-               do 39 k=1,3
-c                 le sommet k de nt1
-                  if( nosotr( k ) .eq. ns2 ) then
-c                    but atteint
-                     goto 80
-                  endif
- 39            continue
- 40         continue
-c
-c           recherche du plus proche point d'intersection de ns1-ns2
-c           par rapport a ns2 avec les aretes des triangles ajoutes
-            nt0  = 0
-            dmin = d12 * 10000
-            do 48 nt=nbtrc0+1,nbtrcf
-               nt1 = notrcf( nt )
-c              le numero des 3 sommets du triangle nt1 dans le sens direct
-               call nusotr( nt1, mosoar, nosoar, moartr, noartr, nosotr)
-               do 45 k=1,3
-c                 les 2 sommets de l'arete k de nt
-                  ns3 = nosotr( k )
-                  ns4 = nosotr( nosui3(k) )
-c
-c                 point d'intersection du segment ns1-ns2 avec l'arete ns3-ns4
-c                 ------------------------------------------------------------
-                  call int1sd( ns1, ns2, ns3, ns4, pxyd,
-     %                         linter, x , y )
-                  if( linter .gt. 0 ) then
-c                    les 2 aretes s'intersectent en (x,y)
-                     d = (x-x2)**2+(y-y2)**2
-                     if( d .lt. dmin ) then
-                        nt0  = nt1
-                        na0  = k
-                        dmin = d
-                     endif
-                  endif
- 45            continue
- 48         continue
-c
-c           redemarrage avec le triangle nt0 et l'arete na0
-            if( nt0 .gt. 0 ) goto 30
-c
-            write(imprim,*) 'tefoar: algorithme defaillant'
-            ierr = 11
-            return
-         endif
- 50   continue
-c
-c     pas d'intersection differente de l'initiale => sommet sur ns1-ns2
-c     rotation autour du sommet par l'arete suivant na1
-      write(imprim,*)
-      write(imprim,*) 'tefoar 50: revoyez vos donnees'
-      write(imprim,*) 'les lignes fermees doivent etre disjointes'
-      write(imprim,*) 'verifiez si elles ne se coupent pas'
-      ierr = 13
-      return
-c
-c     cas sans probleme : intersection differente de celle initiale
-c     =================   =========================================
- 60   nbtrcf = nbtrcf + 1
-      notrcf( nbtrcf ) = nt1
-c     passage au triangle suivant
-      na0 = na2
-      nt0 = nt1
-      goto 30
-c
-c     ----------------------------------------------------------
-c     ici toutes les intersections de ns1-ns2 ont ete parcourues
-c     tous les triangles intersectes ou etendus forment les
-c     nbtrcf triangles du tableau notrcf
-c     ----------------------------------------------------------
- 70   nbtrcf = nbtrcf + 1
-      notrcf( nbtrcf ) = nt1
-c
-c     formation du cf des aretes simples des triangles de notrcf
-c     et destruction des nbtrcf triangles du tableau noartr
-c     attention: le chainage lchain du tableau nosoar devient actif
-c     =============================================================
- 80   if( nbtrcf*3 .gt. mxarcf ) then
-         write(imprim,*) 'saturation du tableau noarcf'
-         ierr = 10
-         return
-      endif
-c
-      call focftr( nbtrcf, notrcf, pxyd,   noarst,
-     %             mosoar, mxsoar, n1soar, nosoar,
-     %             moartr, n1artr, noartr,
-     %             nbarcf, n1arcf, noarcf,
-     %             ierr )
-      if( ierr .ne. 0 ) return
-c
-c     chainage des aretes vides dans le tableau noarcf
-c     ------------------------------------------------
-c     decalage de 2 aretes car 2 aretes sont necessaires ensuite pour
-c     integrer 2 fois l'arete perdue et former ainsi 2 cf
-c     comme nbtrcf*3 minore mxarcf il existe au moins 2 places vides
-c     derriere => pas de test de debordement
-      n1arcf(0) = nbarcf+3
-      mmarcf = min(8*nbarcf,mxarcf)
-      do 90 i=nbarcf+3,mmarcf
-         noarcf(2,i) = i+1
- 90   continue
-      noarcf(2,mmarcf) = 0
-c
-c     reperage des sommets ns1 ns2 de l'arete perdue dans le cf
-c     ---------------------------------------------------------
-      ns1   = nosoar( 1, narete )
-      ns2   = nosoar( 2, narete )
-      ns(1) = ns1
-      ns(2) = ns2
-      do 120 i=1,2
-c        la premiere arete dans noarcf du cf
-         na0 = n1arcf(1)
- 110     if( noarcf(1,na0) .ne. ns(i) ) then
-c           passage a l'arete suivante
-            na0 = noarcf( 2, na0 )
-            goto 110
-         endif
-c        position dans noarcf du sommet i de l'arete perdue
-         nacf(i) = na0
- 120  continue
-c
-c     formation des 2 cf chacun contenant l'arete ns1-ns2
-c     ---------------------------------------------------
-c     sauvegarde de l'arete suivante de celle de sommet ns1
-      na0 = noarcf( 2, nacf1 )
-      nt1 = noarcf( 3, nacf1 )
-c
-c     le premier cf
-      n1arcf( 1 ) = nacf1
-c     l'arete suivante dans le premier cf
-      noarcf( 2, nacf1 ) = nacf2
-c     cette arete est celle perdue
-      noarcf( 3, nacf1 ) = narete
-c
-c     le second cf
-c     l'arete doublee
-      n1 = nbarcf + 1
-      n2 = nbarcf + 2
-c     le premier sommet de la premiere arete du second cf
-      noarcf( 1, n1 ) = ns2
-c     l'arete suivante dans le second cf
-      noarcf( 2, n1 ) = n2
-c     cette arete est celle perdue
-      noarcf( 3, n1 ) = narete
-c     la seconde arete du second cf
-      noarcf( 1, n2 ) = ns1
-      noarcf( 2, n2 ) = na0
-      noarcf( 3, n2 ) = nt1
-      n1arcf( 2 ) = n1
-c
-c     recherche du precedent de nacf2
- 130  na1 = noarcf( 2, na0 )
-      if( na1 .ne. nacf2 ) then
-c        passage a l'arete suivante
-         na0 = na1
-         goto 130
-      endif
-c     na0 precede nacf2 => il precede n1
-      noarcf( 2, na0 ) = n1
-c
-c     depart avec 2 cf
-      nbcf   = 2
-c
-c     triangulation directe des 2 contours fermes
-c     l'arete ns1-ns2 devient une arete de la triangulation des 2 cf
-c     ==============================================================
-      call tridcf( nbcf,   pxyd,   noarst,
-     %             mosoar, mxsoar, n1soar, nosoar,
-     %             moartr, n1artr, noartr,
-     %             mxarcf, n1arcf, noarcf, larmin,
-     %             nbtrcf, notrcf, ierr )
-      end
-
-
-      subroutine te4ste( nbsomm, mxsomm, pxyd, ntrp, letree,
-     &                   ierr )
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    decouper un te ntrp de letree en 4 sous-triangles
-c -----    eliminer les sommets de te trop proches des points
-c
-c entrees:
-c --------
-c mxsomm : nombre maximal de points declarables dans pxyd
-c ntrp   : numero letree du triangle a decouper en 4 sous-triangles
-c
-c modifies :
-c ----------
-c nbsomm : nombre actuel de points dans pxyd
-c pxyd   : tableau des coordonnees des points
-c          par point : x  y  distance_souhaitee
-c letree : arbre-4 des triangles equilateraux (te) fond de la triangulation
-c      letree(0,0) :  no du 1-er te vide dans letree
-c      letree(0,1) : maximum du 1-er indice de letree (ici 8)
-c      letree(0,2) : maximum declare du 2-eme indice de letree (ici mxtree)
-c      letree(0:8,1) : racine de l'arbre  (triangle sans sur triangle)
-c      si letree(0,.)>0 alors
-c         letree(0:3,j) : no (>0) letree des 4 sous-triangles du triangle j
-c      sinon
-c         letree(0:3,j) :-no pxyd des 1 a 4 points internes au triangle j
-c                         0  si pas de point
-c                        ( j est alors une feuille de l'arbre )
-c      letree(4,j) : no letree du sur-triangle du triangle j
-c      letree(5,j) : 0 1 2 3 no du sous-triangle j pour son sur-triangle
-c      letree(6:8,j) : no pxyd des 3 sommets du triangle j
-c
-c sorties :
-c ---------
-c ierr    : 0 si pas d'erreur, 51 saturation letree, 52 saturation pxyd
-c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc    juillet 1994
-c2345x7..............................................................012
-      common / unites / lecteu,imprim,nunite(30)
-      integer           letree(0:8,0:*)
-      double precision  pxyd(3,mxsomm)
-      integer           np(0:3),milieu(3)
-c
-c     debut par l'arete 2 du triangle ntrp
-      i1 = 2
-      i2 = 3
-      do 30 i=1,3
-c
-c        le milieu de l'arete i1 existe t il deja ?
-         call n1trva( ntrp, i1, letree, noteva, niveau )
-         if( noteva .gt. 0 ) then
-c           il existe un te voisin
-c           s'il existe 4 sous-triangles le milieu existe deja
-            if( letree(0,noteva) .gt. 0 ) then
-c              le milieu existe
-               nsot = letree(0,noteva)
-               milieu(i) = letree( 5+nopre3(i1), nsot )
-               goto 25
-            endif
-         endif
-c
-c        le milieu n'existe pas. il est cree
-         nbsomm = nbsomm + 1
-         if( nbsomm .gt. mxsomm ) then
-c           plus assez de place dans pxyd
-            write(imprim,*) 'te4ste: saturation pxyd'
-            write(imprim,*)
-            ierr = 52
-            return
-         endif
-c        le milieu de l'arete i
-         milieu(i) = nbsomm
-c
-c        ntrp est le triangle de milieux d'arete ces 3 sommets
-         ns1    = letree( 5+i1, ntrp )
-         ns2    = letree( 5+i2, ntrp )
-         pxyd(1,nbsomm) = ( pxyd(1,ns1) + pxyd(1,ns2) ) * 0.5
-         pxyd(2,nbsomm) = ( pxyd(2,ns1) + pxyd(2,ns2) ) * 0.5
-c
-c        l'arete et milieu suivant
- 25      i1 = i2
-         i2 = nosui3( i2 )
- 30   continue
-c
-      do 50 i=0,3
-c
-c        le premier triangle vide
-         nsot = letree(0,0)
-         if( nsot .le. 0 ) then
-c           manque de place. saturation letree
-            ierr = 51
-            write(imprim,*) 'te4ste: saturation letree'
-            write(imprim,*)
-            return
-         endif
-c
-c        mise a jour du premier te libre
-         letree(0,0) = letree(0,nsot)
-c
-c        nsot est le i-eme sous triangle
-         letree(0,nsot) = 0
-         letree(1,nsot) = 0
-         letree(2,nsot) = 0
-         letree(3,nsot) = 0
-c
-c        le numero des points et sous triangles dans ntrp
-         np(i) = -letree(i,ntrp)
-         letree(i,ntrp) = nsot
-c
-c        le sommet commun avec le triangle ntrp
-         letree(5+i,nsot) = letree(5+i,ntrp)
-c
-c        le sur-triangle et numero de sous-triangle de nsot
-c        a laisser ici car incorrect sinon pour i=0
-         letree(4,nsot) = ntrp
-         letree(5,nsot) = i
-c
-c        le sous-triangle du triangle
-         letree(i,ntrp) = nsot
- 50   continue
-c
-c     le numero des nouveaux sommets milieux
-      nsot = letree(0,ntrp)
-      letree(6,nsot) = milieu(1)
-      letree(7,nsot) = milieu(2)
-      letree(8,nsot) = milieu(3)
-c
-      nsot = letree(1,ntrp)
-      letree(7,nsot) = milieu(3)
-      letree(8,nsot) = milieu(2)
-c
-      nsot = letree(2,ntrp)
-      letree(6,nsot) = milieu(3)
-      letree(8,nsot) = milieu(1)
-c
-      nsot = letree(3,ntrp)
-      letree(6,nsot) = milieu(2)
-      letree(7,nsot) = milieu(1)
-c
-c     repartition des eventuels 4 points np dans ces 4 sous-triangles
-c     il y a obligatoirement suffisamment de place
-      do 110 i=0,3
-         if( np(i) .gt. 0 ) then
-            nsot = notrpt( pxyd(1,np(i)), pxyd, ntrp, letree )
-c           ajout du point
-            do 100 i1=0,3
-               if( letree(i1,nsot) .eq. 0 ) then
-c                 place libre a occuper
-                  letree(i1,nsot) = -np(i)
-                  goto 110
-               endif
- 100        continue
-         endif
- 110  continue
-      end
diff --git a/src/Makefile.in b/src/Makefile.in
deleted file mode 100644 (file)
index c4bbfd8..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : Makefile.in
-#  Author : Patrick GOLDBRONN (CEA)
-#  Module : SMESH
-#  $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=..
-srcdir=@srcdir@
-VPATH=.:@srcdir@
-
-@COMMENCE@
-
-SUBDIRS = \
-       SMDS SMESHDS Controls Driver DriverMED DriverDAT DriverUNV DriverSTL \
-       SMESH SMESH_I OBJECT SMESHFiltersSelection SMESHGUI SMESH_SWIG \
-       MEFISTO2 StdMeshers StdMeshers_I StdMeshersGUI
-
-@MODULE@
diff --git a/src/NETGEN/Makefile.in b/src/NETGEN/Makefile.in
deleted file mode 100644 (file)
index fc2e047..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-# -* Makefile *- 
-#
-# Author : Nadir Bouhamou (CEA)
-# Module : SMESH
-# Date : 10/10/2003
-#
-#
-
-# source path
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@
-
-@COMMENCE@
-
-# Libraries targets
-LIB = libNETGEN.la
-
-# additionnal information to compil and link file
-CPPFLAGS += -DSOLIDGEOM -DLINUX $(OCC_INCLUDES)
-CXXFLAGS += -DSOLIDGEOM -DLINUX $(OCC_CXXFLAGS)
-
-LDFLAGS += $(OCC_KERNEL_LIBS) $(OCC_MODELER_LIBS) -lg2c
-
-NETGEN_LIBS_DIR=@NETGEN_LIBS_DIR@
-
-LIB_OBJ_O = linopt.o \
-       bfgs.o \
-        linsearch.o \
-       global.o \
-       bisect.o \
-       meshtool.o \
-       refine.o \
-       ruler3.o \
-       improve3.o \
-       adfront3.o \
-       tetrarls.o \
-       prism2rls.o \
-       pyramidrls.o \
-       pyramid2rls.o \
-       netrule3.o \
-       ruler2.o \
-       meshclass.o \
-       improve2.o \
-       adfront2.o \
-       netrule2.o \
-       triarls.o \
-       geomsearch.o \
-       secondorder.o \
-       meshtype.o \
-       parser3.o \
-       quadrls.o \
-       specials.o \
-       parser2.o \
-       meshing2.o \
-       meshing3.o \
-       meshfunc.o \
-       localh.o \
-       improve2gen.o \
-       delaunay.o \
-       boundarylayer.o \
-       msghandler.o \
-       meshfunc2d.o \
-       smoothing2.o \
-       smoothing3.o \
-       topology.o \
-       curvedelems.o \
-       clusters.o \
-       zrefine.o \
-       ngexception.o \
-       geomtest3d.o \
-       geom2d.o \
-       geom3d.o \
-       adtree.o \
-       transform3d.o \
-       geomfuncs.o \
-       polynomial.o \
-       densemat.o \
-       vector.o \
-       basemat.o \
-       sparsmat.o \
-       algprim.o \
-       brick.o \
-       manifold.o \
-       bspline2d.o \
-       meshsurf.o \
-       csgeom.o \
-       polyhedra.o \
-       curve2d.o \
-       singularref.o \
-       edgeflw.o \
-       solid.o \
-       explicitcurve2d.o \
-       specpoin.o \
-       gencyl.o \
-       revolution.o \
-       genmesh.o \
-       spline3d.o \
-       surface.o \
-       identify.o \
-       triapprox.o \
-       meshstlsurface.o \
-       stlline.o \
-       stltopology.o \
-       stltool.o \
-       stlgeom.o \
-       stlgeomchart.o \
-       stlgeommesh.o \
-       table.o \
-       optmem.o \
-       spbita2d.o \
-       hashtabl.o \
-       sort.o \
-       flags.o \
-       seti.o \
-       bitarray.o \
-       array.o \
-       symbolta.o \
-       mystring.o \
-       moveablemem.o \
-       spline2d.o \
-       splinegeometry2.o \
-       ngnewdelete.o \
-       nglib.o
-
-$(LIB_OBJ_O):
-       ar x $(NETGEN_LIBS_DIR)/libnginterface.a
-       ar x $(NETGEN_LIBS_DIR)/libcsg.a
-       ar x $(NETGEN_LIBS_DIR)/libgprim.a
-       ar x $(NETGEN_LIBS_DIR)/libmesh.a
-       ar x $(NETGEN_LIBS_DIR)/libopti.a
-       ar x $(NETGEN_LIBS_DIR)/libgen.a
-       ar x $(NETGEN_LIBS_DIR)/libla.a
-       ar x $(NETGEN_LIBS_DIR)/libstlgeom.a
-       ar x $(NETGEN_LIBS_DIR)/libgeom2d.a
-       rm -rf sgparser.o hprefinement.o parthreads.o writediffpack.o writepermas.o writeuser.o dynamicmem.o importsolution.o readuser.o writefeap.o writetecplot.o wuchemnitz.o extrusion.o writeabaqus.o writefluent.o writetochnog.o csgparser.o geom2dmesh.o
-
-LIB_OBJ_LO = $(LIB_OBJ_O:%.o=%.lo)
-
-#implicits rules
-
-.o.lo:
-       ln -s $< $@ || true
-
-@CONCLUDE@
-
-$(LIB): $(LIB_OBJ_O) $(LIB_OBJ_LO)
-       @$(LT) --mode=link $(CXX) -rpath $(libdir) -o $@ $(CXXFLAGS) $(LIB_OBJ_LO) $(LDFLAGS) $(LIBS)
-
-mostlyclean: cleandep
-       -$(RM) $(LIB_OBJ_O) $(LIB_OBJ_LO)
diff --git a/src/NETGEN/ReadMeForNgUsers b/src/NETGEN/ReadMeForNgUsers
deleted file mode 100644 (file)
index 555eb97..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-The Netgen 4.3 from the web location : http://www.hpfem.jku.at/netgen/ is used
-in the SMESH Module of Salome2 distribution.
-
-How to build Netgen for Salome
-------------------------------
-
-Patch the official netgen 4.3 distribution:
-
-$ cd netgen43
-$ patch -p1 < patch_directory/netgen43ForSalome.patch
-
-Then run makeForSalome.sh:
-$ sh makeForSalome.sh
-
-
-Additional information for maintainers
---------------------------------------
-
-The SMESH Engine of SALOME2 (particularly the m4 file check_Netgen.m4) assume
-that Netgen is installed in the directory <netgen_installation_path> as follow:
-
-prompt> ls <netgen_installation_path>
-
-bin/  cshrc_for_netgen  doc/  include/  lib/  tutorials/
-
-prompt> ls <netgen_installation_path>/bin
-
-LINUX/
-
-prompt> ls <netgen_installation_path>/bin/LINUX/
-
-demoapp/  ng  ng.tcl  ngtcltk/  startup.tcl
-
-prompt> ls <netgen_installation_path>/bin/LINUX/demoapp/
-
-demoapp.tcl
-
-prompt> ls <netgen_installation_path>/bin/LINUX/ngtcltk/
-
-dialog.tcl   menustat.tcl  ngicon.tcl    parameters.tcl
-drawing.tcl  nghelp.tcl    ngvisual.tcl  variables.tcl
-
-prompt> ls <netgen_installation_path>/doc/
-
-ng4.pdf  usenetgen.ps
-
-prompt> ls <netgen_installation_path>/include/
-
-nglib.h
-
-prompt> ls <netgen_installation_path>/lib/
-
-LINUX/
-
-prompt> ls <netgen_installation_path>/lib/LINUX/
-
-libcsg.a  libgeom2d.a  libla.a    libnginterface.a  libstlgeom.a
-libgen.a  libgprim.a   libmesh.a  libopti.a         libvis.a
-
-prompt> ls <netgen_installation_path>/tutorials/
-
-boxcyl.geo          cylinder.geo     ficherea.geo   part1.stl         square.in2d
-cone.geo            cylsphere.geo    hinge.stl      sculpture.geo     trafo.geo
-cubeandspheres.geo  demo2d.in2d      lshape3d.geo   shaft.geo         twobricks.geo
-cube.geo            ellipsoid.geo    manyholes.geo  sphere.geo        twocubes.geo
-cubemcyl.geo        ellipticcyl.geo  matrix.geo     sphereincube.geo  twocyl.geo
-cubemsphere.geo
-
-All *.tcl files are needed to control and initiate the Netgen mesher throughout its
-MHI (Machine Human Interface).<netgen_installation_path>/bin/LINUX/ng is the Netgen
-executable with its embarked MHI. All the libraries *.a should be compiled without
-the option -DOPENGL which is only needed for the Netgen MHI. netgen43 is assumed to
-be the directory downloaded from the above web location archive of Netgen. The library
-<netgen_installation_path>/lib/LINUX/libnginterface.a should contain the objects
-nglib.o (from netgen43/libsrc/interface/nglib.cpp) and ngnewdelete.o
-(from netgen43/ngtcltk/ngnewdelete.cpp).
-
-To have that kind of distribution from the version in the above web location you
-should first compile Netgen as suggested in the netgen43/README.INSTALL file. It will
-then produce the executable ng linked statically with the libraries *.a. Then modify
-the Makefiles to remove -DOPENGL from compiler flags list, add the objects nglib.o
-and ngnewdelete.o to the library libnginterface.a and recompile the libraries only.
-
-From the above web location perhaps, you will have to alter some Netgen sources to
-compile them; if you find any difficulties to do that, just ask me.
-
-Nadir
-
-********************************
-* Dr Nadir Bouhamou            *
-* Ingénieur-chercheur          *
-* Engineer-Researcher          *
-*                              *
-* CEA Saclay                   *
-* DEN/DM2S/SFME/LGLS           *
-* Bat 454 Pièce 5A             *
-* 91191 Gif-Sur-Yvette cédex   *
-*                              *
-* Tél: +33 (0)1 69 08 73 07    *
-* Fax: +33 (0)1 69 08 96 96    *
-* email: nadir.bouhamou@cea.fr *
-********************************
diff --git a/src/NETGEN/netgen43ForSalome.patch b/src/NETGEN/netgen43ForSalome.patch
deleted file mode 100644 (file)
index 5e08d88..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-diff -N -r -u netgen43/libsrc/include/spline2d.hpp /tmp/netgen43/libsrc/include/spline2d.hpp
---- netgen43/libsrc/include/spline2d.hpp       1970-01-01 01:00:00.000000000 +0100
-+++ /tmp/netgen43/libsrc/include/spline2d.hpp  2003-12-10 16:28:12.000000000 +0100
-@@ -0,0 +1 @@
-+#include "../geom2d/spline2d.hpp"
-diff -N -r -u netgen43/libsrc/include/splinegeometry2.hpp /tmp/netgen43/libsrc/include/splinegeometry2.hpp
---- netgen43/libsrc/include/splinegeometry2.hpp        1970-01-01 01:00:00.000000000 +0100
-+++ /tmp/netgen43/libsrc/include/splinegeometry2.hpp   2003-12-10 16:28:23.000000000 +0100
-@@ -0,0 +1 @@
-+#include "../geom2d/splinegeometry2.hpp"
-diff -N -r -u netgen43/libsrc/interface/Makefile /tmp/netgen43/libsrc/interface/Makefile
---- netgen43/libsrc/interface/Makefile 2003-05-07 16:01:43.000000000 +0200
-+++ /tmp/netgen43/libsrc/interface/Makefile    2003-12-10 15:59:47.000000000 +0100
-@@ -1,4 +1,4 @@
--src = nginterface.cpp writeuser.cpp writediffpack.cpp writeabaqus.cpp writefluent.cpp writepermas.cpp writetochnog.cpp writetecplot.cpp wuchemnitz.cpp writetochnog.cpp writefeap.cpp readuser.cpp importsolution.cpp
-+src = writeuser.cpp writediffpack.cpp writeabaqus.cpp writefluent.cpp writepermas.cpp writetochnog.cpp writetecplot.cpp wuchemnitz.cpp writetochnog.cpp writefeap.cpp readuser.cpp importsolution.cpp nglib.cpp ngnewdelete.cpp
- #
- lib = nginterface
- libpath = libsrc/interface
-diff -N -r -u netgen43/libsrc/interface/nglib.cpp /tmp/netgen43/libsrc/interface/nglib.cpp
---- netgen43/libsrc/interface/nglib.cpp        2003-05-07 16:01:43.000000000 +0200
-+++ /tmp/netgen43/libsrc/interface/nglib.cpp   2003-12-10 16:32:54.000000000 +0100
-@@ -23,6 +23,20 @@
- #include "nglib.h"
-+namespace netgen
-+{
-+  char geomfilename [100];
-+
-+  //Destination for messages, errors, ...
-+  void Ng_PrintDest(const char * s)
-+  {
-+    (*mycout) << s << flush;
-+  }
-+
-+#include <spline2d.hpp>
-+#include <splinegeometry2.hpp>
-+}
-+
- using namespace netgen;
- // constants and types:
-@@ -171,8 +185,6 @@
- // CSG Geometry
- // FlexLexer * lexer;
--char geomfilename [100];
--
- // 2D Meshing Functions:
-@@ -362,7 +374,18 @@
-         cout << "e(" << readedges.Get(i) << "," << readedges.Get(i+1) << ")" << endl;
-       }
-       */
--      geo->AddEdges(readedges);
-+
-+      ARRAY< Point<3> > readedges1;
-+
-+      for (i = 1; i <= readedges.Size(); i++)
-+      {
-+        Point3d readedgesData = readedges.Get(i);
-+        Point <3> readedges1Data = Point<3>(readedgesData.X(),readedgesData.Y(),readedgesData.Z());
-+
-+        readedges1.Append(readedges1Data);
-+      }
-+
-+      geo->AddEdges(readedges1);
-     }
-   if (geo->GetStatus() == STLTopology::STL_GOOD || geo->GetStatus() == STLTopology::STL_WARNING) return NG_OK;
-@@ -472,7 +495,14 @@
-     n = Vec3d(nv[0],nv[1],nv[2]);
-   }
--  readtrias.Append(STLReadTriangle(apts,n));
-+  Point<3> apts1[3];
-+  apts1[0] = Point<3>(p1[0],p1[1],p1[2]);
-+  apts1[1] = Point<3>(p2[0],p2[1],p2[2]);
-+  apts1[2] = Point<3>(p3[0],p3[1],p3[2]);
-+
-+  Vec<3> n1 = Vec<3>(n.X(),n.Y(),n.Z());
-+
-+  readtrias.Append(STLReadTriangle(apts1,n1));
- }
-   // add (optional) edges:
-@@ -487,30 +517,29 @@
- // compatibility functions:
--void MyError (const char * ch)
-+void netgen::MyError (const char * ch)
- {
-   cerr << ch;
- }
--//Destination for messages, errors, ...
--void Ng_PrintDest(const char * s)
--{
--  (*mycout) << s << flush;
--}
--
--
--double GetTime ()
-+double netgen::GetTime ()
- {
-   return 0;
- }
--void ResetTime ()
-+void netgen::ResetTime ()
- {
-   ;
- }
--void MyBeep (int i)
-+void netgen::MyBeep (int i)
- {
-   ;
- }
-+void MeshFromSpline2D (SplineGeometry2d & geometry,
-+                     Mesh *& mesh, 
-+                     MeshingParameters & mp)
-+{
-+  MeshFromSpline2D (geometry, mesh,  mp);
-+}
-diff -N -r -u netgen43/libsrc/makefile.mach.LINUX /tmp/netgen43/libsrc/makefile.mach.LINUX
---- netgen43/libsrc/makefile.mach.LINUX        2003-05-07 16:01:43.000000000 +0200
-+++ /tmp/netgen43/libsrc/makefile.mach.LINUX   2003-12-10 15:12:18.000000000 +0100
-@@ -14,7 +14,8 @@
- #
- CFLAGS2 =
- # pg stands for profiling - also in linkflags2
--CPLUSPLUSFLAGS2 =  -O2 -I/usr/X11R6/include -DLINUX -DOPENGL
-+#CPLUSPLUSFLAGS2 =  -O2 -I/usr/X11R6/include -DLINUX -DOPENGL
-+CPLUSPLUSFLAGS2 =  -O2 -I/usr/X11R6/include -DLINUX
- # -fomit-frame-pointer
- # -ffast-math
- #
-diff -N -r -u netgen43/libsrc/meshing/improve2.cpp /tmp/netgen43/libsrc/meshing/improve2.cpp
---- netgen43/libsrc/meshing/improve2.cpp       2003-05-07 16:01:43.000000000 +0200
-+++ /tmp/netgen43/libsrc/meshing/improve2.cpp  2003-12-10 15:42:00.000000000 +0100
-@@ -3,7 +3,7 @@
- #include "meshing.hpp"
- #include <opti.hpp>
--#include <visual.hpp>
-+/*#include <visual.hpp>*/
- namespace netgen
-diff -N -r -u netgen43/libsrc/meshing/meshing2.cpp /tmp/netgen43/libsrc/meshing/meshing2.cpp
---- netgen43/libsrc/meshing/meshing2.cpp       2003-05-07 16:01:43.000000000 +0200
-+++ /tmp/netgen43/libsrc/meshing/meshing2.cpp  2003-12-10 15:34:35.000000000 +0100
-@@ -1785,7 +1785,7 @@
- #else
--void glrender (int wait)
-+void netgen::glrender (int wait)
- {
-   ;
- } 
-diff -N -r -u netgen43/libsrc/visualization/stlmeshing.cpp /tmp/netgen43/libsrc/visualization/stlmeshing.cpp
---- netgen43/libsrc/visualization/stlmeshing.cpp       2003-05-07 16:01:43.000000000 +0200
-+++ /tmp/netgen43/libsrc/visualization/stlmeshing.cpp  2003-12-10 15:52:53.000000000 +0100
-@@ -5,7 +5,7 @@
- #include <stlgeom.hpp>
- #include <meshing.hpp>
--#include <visual.hpp>
-+/*#include <visual.hpp>*/
- namespace netgen
- {
-diff -N -r -u netgen43/Makefile /tmp/netgen43/Makefile
---- netgen43/Makefile  2003-05-07 16:01:43.000000000 +0200
-+++ /tmp/netgen43/Makefile     2003-12-10 15:11:41.000000000 +0100
-@@ -35,7 +35,8 @@
- .SUFFIXES: .cpp .o
- #
- #
--CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include  -DOPENGL
-+#CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include  -DOPENGL
-+CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include
- LINKFLAGS1 =   -lGL -lGLU -lX11 -lXext -lXmu
- #
- CPLUSPLUSFLAGS = $(CPLUSPLUSFLAGS1) $(CPLUSPLUSFLAGS2) $(CPLUSPLUSFLAGS3)
-diff -N -r -u netgen43/makeForSalome.sh /tmp/netgen43/makeForSalome.sh
---- netgen43/makeForSalome.sh  1970-01-01 01:00:00.000000000 +0100
-+++ /tmp/netgen43/makeForSalome.sh     2004-01-05 12:33:59.000000000 +0100
-@@ -0,0 +1,26 @@
-+#! /bin/sh
-+cp ngtcltk/ngnewdelete.* libsrc/interface/
-+
-+MACHINE=LINUX
-+export MACHINE
-+make -C libsrc/csg
-+make -C libsrc/general
-+make -C libsrc/geom2d
-+make -C libsrc/gprim
-+make -C libsrc/interface
-+make -C libsrc/linalg
-+make -C libsrc/meshing
-+make -C libsrc/opti
-+make -C libsrc/stlgeom
-+
-+if [ ! -d install ] ; then
-+      mkdir install
-+fi
-+
-+cp -r lib install/
-+
-+if [ ! -d install/include ] ; then
-+      mkdir install/include
-+fi
-+
-+cp libsrc/interface/nglib.h install/include
diff --git a/src/NETGENPlugin/Makefile.in b/src/NETGENPlugin/Makefile.in
deleted file mode 100644 (file)
index 5771909..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#  SMESH NETGENPlugin : implementaion of SMESH idl descriptions
-#
-#  Copyright (C) 2004  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : Makefile.in
-#  Author : Julia DOROVSKIKH
-#  Module : SMESH
-#  $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@top_srcdir@/idl:$(top_builddir)/idl:
-
-
-@COMMENCE@
-
-EXPORT_PYSCRIPTS =
-
-# .po files to transform in .qm
-PO_FILES = NETGENPlugin_icons.po
-
-# Libraries targets
-LIB = libNETGENEngine.la
-LIB_SRC = \
-       NETGENPlugin_NETGEN_3D.cxx \
-       NETGENPlugin_NETGEN_3D_i.cxx \
-       NETGENPlugin_i.cxx
-
-LIB_SERVER_IDL = SMESH_NetgenAlgorithm.idl
-
-LIB_CLIENT_IDL = SMESH_Gen.idl SMESH_Mesh.idl SMESH_Group.idl
-
-# Executables targets
-BIN = 
-BIN_SRC = 
-
-# additionnal information to compil and link file
-NETGEN_INCLUDES=@NETGEN_INCLUDES@
-
-CPPFLAGS+= $(OCC_INCLUDES) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \
-           -I${GEOM_ROOT_DIR}/include/salome $(NETGEN_INCLUDES) $(BOOST_CPPFLAGS)
-CXXFLAGS+= $(OCC_CXXFLAGS) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \
-           -I${GEOM_ROOT_DIR}/include/salome $(NETGEN_INCLUDES)
-
-LDFLAGS+= $(HDF5_LIBS) -lSMESHimpl -lSMESHEngine -lStdMeshers -lStdMeshersEngine -lNETGEN -L${KERNEL_ROOT_DIR}/lib/salome -L${GEOM_ROOT_DIR}/lib/salome -lSalomeGenericObj
-
-@CONCLUDE@
diff --git a/src/NETGENPlugin/NETGENPlugin_NETGEN_3D.cxx b/src/NETGENPlugin/NETGENPlugin_NETGEN_3D.cxx
deleted file mode 100644 (file)
index 98b1e66..0000000
+++ /dev/null
@@ -1,1064 +0,0 @@
-//=============================================================================
-// File      : NETGENPlugin_NETGEN_3D.cxx
-//             Moved here from SMESH_NETGEN_3D.cxx
-// Created   : lundi 27 Janvier 2003
-// Author    : Nadir BOUHAMOU (CEA)
-// Project   : SALOME
-// Copyright : CEA 2003
-// $Header$
-//=============================================================================
-using namespace std;
-
-#include "NETGENPlugin_NETGEN_3D.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_Mesh.hxx"
-
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_FacePosition.hxx"
-
-#include <TopExp.hxx>
-#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
-#include <TopTools_ListOfShape.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
-
-#include <BRep_Tool.hxx>
-#include <Geom_Surface.hxx>
-#include <Geom_Curve.hxx>
-#include <Geom2d_Curve.hxx>
-
-#include "utilities.h"
-
-/*
-  Netgen include files
-*/
-
-#include "nglib.h"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-NETGENPlugin_NETGEN_3D::NETGENPlugin_NETGEN_3D(int hypId, int studyId,
-                            SMESH_Gen* gen)
-  : SMESH_3D_Algo(hypId, studyId, gen)
-{
-  MESSAGE("NETGENPlugin_NETGEN_3D::NETGENPlugin_NETGEN_3D");
-  _name = "NETGEN_3D";
-//   _shapeType = TopAbs_SOLID;
-  _shapeType = (1 << TopAbs_SHELL) | (1 << TopAbs_SOLID);// 1 bit /shape type
-//   MESSAGE("_shapeType octal " << oct << _shapeType);
-  _compatibleHypothesis.push_back("MaxElementVolume");
-
-  _maxElementVolume = 0.;
-
-  _hypMaxElementVolume = NULL;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-NETGENPlugin_NETGEN_3D::~NETGENPlugin_NETGEN_3D()
-{
-  MESSAGE("NETGENPlugin_NETGEN_3D::~NETGENPlugin_NETGEN_3D");
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool NETGENPlugin_NETGEN_3D::CheckHypothesis
-                         (SMESH_Mesh& aMesh,
-                          const TopoDS_Shape& aShape,
-                          SMESH_Hypothesis::Hypothesis_Status& aStatus)
-{
-  MESSAGE("NETGENPlugin_NETGEN_3D::CheckHypothesis");
-
-  _hypMaxElementVolume = NULL;
-
-  list<const SMESHDS_Hypothesis*>::const_iterator itl;
-  const SMESHDS_Hypothesis* theHyp;
-
-  const list<const SMESHDS_Hypothesis*>& hyps = GetUsedHypothesis(aMesh, aShape);
-  int nbHyp = hyps.size();
-  if (!nbHyp)
-  {
-    aStatus = SMESH_Hypothesis::HYP_MISSING;
-    return false;  // can't work with no hypothesis
-  }
-
-  itl = hyps.begin();
-  theHyp = (*itl); // use only the first hypothesis
-
-  string hypName = theHyp->GetName();
-  int hypId = theHyp->GetID();
-  SCRUTE(hypName);
-
-  bool isOk = false;
-
-  if (hypName == "MaxElementVolume")
-  {
-    _hypMaxElementVolume = static_cast<const StdMeshers_MaxElementVolume*> (theHyp);
-    ASSERT(_hypMaxElementVolume);
-    _maxElementVolume = _hypMaxElementVolume->GetMaxVolume();
-    isOk =true;
-    aStatus = SMESH_Hypothesis::HYP_OK;
-  }
-  else
-    aStatus = SMESH_Hypothesis::HYP_INCOMPATIBLE;
-
-  return isOk;
-}
-
-//=============================================================================
-/*!
- *Here we are going to use the NETGEN mesher
- */
-//=============================================================================
-
-bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
-                            const TopoDS_Shape& aShape)
-{
-  MESSAGE("NETGENPlugin_NETGEN_3D::Compute with maxElmentsize = " << _maxElementVolume);
-
-  bool isOk = false;
-  SMESHDS_Mesh* meshDS = aMesh.GetMeshDS();
-  SMESH_subMesh* theSubMesh = aMesh.GetSubMesh(aShape);
-  //const Handle(SMESHDS_SubMesh)& subMeshDS = theSubMesh->GetSubMeshDS();
-
-  map<int, const SMDS_MeshNode*> netgenToDS;
-
-  MESSAGE("NETGENPlugin_NETGEN_3D::Compute Checking the mesh Faces");
-
-  // check if all faces were meshed by a triangle mesher (here MESFISTO_2D)
-
-  vector<SMESH_subMesh*> meshFaces;
-  vector<TopoDS_Shape> shapeFaces;
-
-  for (TopExp_Explorer exp(aShape,TopAbs_FACE);exp.More();exp.Next())
-    {
-      TopoDS_Shape aShapeFace = exp.Current();
-      SMESH_subMesh* aSubMesh = aMesh.GetSubMeshContaining(exp.Current());
-      ASSERT (aSubMesh);
-      int internal_size = meshFaces.size();
-      int index = 0;
-      for (int i = 0;i<internal_size;i++)
-       {
-         if (aSubMesh == meshFaces[i]) index = 1;
-       }
-      if (index == 0) meshFaces.push_back(aSubMesh);
-
-      internal_size = shapeFaces.size();
-      index = 0;
-      for (int i = 0;i<internal_size;i++)
-       {
-         if (aShapeFace == shapeFaces[i]) index = 1;
-       }
-      if (index == 0) shapeFaces.push_back(aShapeFace);
-    }
-
-  int numberOfFaces = meshFaces.size();
-  int numberOfShapeFaces = shapeFaces.size();
-
-  SCRUTE(numberOfFaces);
-  SCRUTE(numberOfShapeFaces);
-
-  MESSAGE("---");
-
-  int NbTotOfTria = 0;
-  int NbTotOfNodesFaces = 0;
-
-  for (int i=0; i<numberOfFaces; i++)
-    {
-      TopoDS_Shape aShapeFace = meshFaces[i]->GetSubShape();
-      TopoDS_Shape aFace = shapeFaces[i];
-      SMESH_Algo* algoFace = _gen->GetAlgo(aMesh, aShapeFace);
-      string algoFaceName = algoFace->GetName();
-      SCRUTE(algoFaceName);
-      if (algoFaceName != "MEFISTO_2D")
-       {
-         SCRUTE(algoFaceName);
-         ASSERT(0);
-         return false;
-       }
-
-      bool orientationMeshFace = (aFace.Orientation() == aShapeFace.Orientation());
-
-      const SMESHDS_SubMesh* aSubMeshDSFace = meshFaces[i]->GetSubMeshDS();
-      SCRUTE(aSubMeshDSFace);
-
-      int nbNodes = aSubMeshDSFace->NbNodes();
-      NbTotOfNodesFaces += nbNodes;
-      int nbTria = aSubMeshDSFace->NbElements();
-      NbTotOfTria += nbTria;
-      int index = 0;
-
-      MESSAGE("NETGENPlugin_NETGEN_3D::Compute The mesh Face " << (i+1) << " has " << nbNodes << " face internal Nodes, " << nbTria << " triangles");
-
-      SCRUTE(orientationMeshFace);
-
-      if (orientationMeshFace)
-       {
-         MESSAGE("The mesh and face have the same orientation");
-       }
-      else
-       {
-         MESSAGE("The mesh and face have different orientations");
-       }
-
-      SMDS_NodeIteratorPtr iteratorNodes = aSubMeshDSFace->GetNodes();
-      SCRUTE(nbNodes);
-      index = 0;
-      while(iteratorNodes->more())
-       {
-         index++;
-         const SMDS_MeshNode * node = iteratorNodes->next();
-//       int nodeId = node->GetID();
-//       double nodeX = node->X();
-//       double nodeY = node->Y();
-//       double nodeZ = node->Z();
-//       MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ);
-       }
-
-      SCRUTE(index);
-
-      SMDS_ElemIteratorPtr iteratorTriangle = aSubMeshDSFace->GetElements();
-
-      SCRUTE(nbTria);
-      index = 0;
-      int numberOfDegeneratedTriangle = 0;
-      while(iteratorTriangle->more())
-       {
-         index++;
-         const SMDS_MeshElement * triangle = iteratorTriangle->next();
-         int triangleId = triangle->GetID();
-
-         SMDS_ElemIteratorPtr triangleNodesIt = triangle->nodesIterator();
-
-         const SMDS_MeshNode * node1 = static_cast<const SMDS_MeshNode *>(triangleNodesIt->next());
-         double node1X = node1->X();
-         double node1Y = node1->Y();
-         double node1Z = node1->Z();
-
-         const SMDS_MeshNode * node2 = static_cast<const SMDS_MeshNode *>(triangleNodesIt->next());
-         double node2X = node2->X();
-         double node2Y = node2->Y();
-         double node2Z = node2->Z();
-
-         const SMDS_MeshNode * node3 = static_cast<const SMDS_MeshNode *>(triangleNodesIt->next());
-         double node3X = node3->X();
-         double node3Y = node3->Y();
-         double node3Z = node3->Z();
-
-         int triangleNode1 = node1->GetID();
-         int triangleNode2 = node2->GetID();
-         int triangleNode3 = node3->GetID();
-
-         // Compute the triangle surface
-
-         double vect1 = ((node2Y - node1Y)*(node3Z - node1Z) - (node2Z - node1Z)*(node3Y - node1Y));
-         double vect2 = - ((node2X - node1X)*(node3Z - node1Z) - (node2Z - node1Z)*(node3X - node1X));
-         double vect3 = ((node2X - node1X)*(node3Y - node1Y) - (node2Y - node1Y)*(node3X - node1X));
-         double epsilon = 1.0e-6;
-
-         bool triangleIsDegenerated = ((abs(vect1)<epsilon) && (abs(vect2)<epsilon) && (abs(vect3)<epsilon));
-
-         if (triangleIsDegenerated)
-           {
-//           MESSAGE("TRIANGLE -> ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3 << " is degenerated");
-//           MESSAGE("NODE -> ID = " << triangleNode1 << " X = " << node1X << " Y = " << node1Y << " Z = " << node1Z);
-//           MESSAGE("NODE -> ID = " << triangleNode2 << " X = " << node2X << " Y = " << node2Y << " Z = " << node2Z);
-//           MESSAGE("NODE -> ID = " << triangleNode3 << " X = " << node3X << " Y = " << node3Y << " Z = " << node3Z);
-             numberOfDegeneratedTriangle++;
-           }
-         else
-           {
-//           MESSAGE("TRIANGLE -> ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3 << " is normal");
-           }
-       }
-
-      if (numberOfDegeneratedTriangle > 0)
-       MESSAGE("WARNING THERE IS(ARE) " << numberOfDegeneratedTriangle << " degenerated triangle on this face");
-
-      SCRUTE(index);
-    }
-
-
-
-  SCRUTE(NbTotOfTria);
-  SCRUTE(NbTotOfNodesFaces);
-
-  MESSAGE("NETGENPlugin_NETGEN_3D::Compute Checking the mesh Edges");
-
-  // check if all edges were meshed by a edge mesher (here Regular_1D)
-
-  vector<SMESH_subMesh*> meshEdges;
-  for (TopExp_Explorer exp(aShape,TopAbs_EDGE);exp.More();exp.Next())
-    {
-      SMESH_subMesh* aSubMesh = aMesh.GetSubMeshContaining(exp.Current());
-      ASSERT (aSubMesh);
-      int internal_size = meshEdges.size();
-      int index = 0;
-      for (int i = 0;i<internal_size;i++)
-       {
-         if (aSubMesh == meshEdges[i]) index = 1;
-       }
-      if (index == 0) meshEdges.push_back(aSubMesh);
-    }
-
-  int numberOfEdges = meshEdges.size();
-  SCRUTE(numberOfEdges);
-
-  MESSAGE("---");
-
-  int NbTotOfNodesEdges = 0;
-  int NbTotOfSegs = 0;
-
-  for (int i=0; i<numberOfEdges; i++)
-    {
-      TopoDS_Shape aShapeEdge = meshEdges[i]->GetSubShape();
-      SMESH_Algo* algoEdge = _gen->GetAlgo(aMesh, aShapeEdge);
-      string algoEdgeName = algoEdge->GetName();
-      SCRUTE(algoEdgeName);
-      if (algoEdgeName != "Regular_1D")
-       {
-         SCRUTE(algoEdgeName);
-         ASSERT(0);
-         return false;
-       }
-
-      const SMESHDS_SubMesh* aSubMeshDSEdge = meshEdges[i]->GetSubMeshDS();
-      SCRUTE(aSubMeshDSEdge);
-
-      int nbNodes = aSubMeshDSEdge->NbNodes();
-      NbTotOfNodesEdges += nbNodes;
-      int nbSegs = aSubMeshDSEdge->NbElements();
-      NbTotOfSegs += nbSegs;
-
-      MESSAGE("NETGENPlugin_NETGEN_3D::Compute The mesh Edge " << (i+1) << " has " << nbNodes << " edge internal Nodes, " << nbSegs << " segments");
-
-      SMDS_NodeIteratorPtr iteratorNodes = aSubMeshDSEdge->GetNodes();
-      SCRUTE(nbNodes);
-      int index = 0;
-      while(iteratorNodes->more())
-       {
-         index++;
-         const SMDS_MeshNode * node = iteratorNodes->next();
-//       int nodeId = node->GetID();
-//       double nodeX = node->X();
-//       double nodeY = node->Y();
-//       double nodeZ = node->Z();
-//       MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ);
-       }
-
-      SCRUTE(index);
-    }
-
-  SCRUTE(NbTotOfNodesEdges);
-  SCRUTE(NbTotOfSegs);
-
-  MESSAGE("NETGENPlugin_NETGEN_3D::Compute Checking the mesh Vertices");
-
-  vector<SMESH_subMesh*> meshVertices;
-  for (TopExp_Explorer exp(aShape,TopAbs_VERTEX);exp.More();exp.Next())
-    {
-      SMESH_subMesh* aSubMesh = aMesh.GetSubMeshContaining(exp.Current());
-      ASSERT (aSubMesh);
-      int internal_size = meshVertices.size();
-      int index = 0;
-      for (int i = 0;i<internal_size;i++)
-       {
-         if (aSubMesh == meshVertices[i]) index = 1;
-       }
-      if (index == 0) meshVertices.push_back(aSubMesh);
-    }
-
-  int numberOfVertices = meshVertices.size();
-  SCRUTE(numberOfVertices);
-
-  MESSAGE("---");
-
-  int NbTotOfNodesVertices = 0;
-
-  for (int i=0; i<numberOfVertices; i++)
-    {
-      TopoDS_Shape aShapeVertex = meshVertices[i]->GetSubShape();
-
-      const SMESHDS_SubMesh * aSubMeshDSVertex = meshVertices[i]->GetSubMeshDS();
-      SCRUTE(aSubMeshDSVertex);
-
-      int nbNodes = aSubMeshDSVertex->NbNodes();
-      NbTotOfNodesVertices += nbNodes;
-
-      MESSAGE("NETGENPlugin_NETGEN_3D::Compute The mesh Vertex " << (i+1) << " has " << nbNodes << " Nodes");
-
-      SMDS_NodeIteratorPtr iteratorNodes = aSubMeshDSVertex->GetNodes();
-      SCRUTE(nbNodes);
-      int index = 0;
-      while(iteratorNodes->more())
-       {
-         index++;
-         const SMDS_MeshNode * node = iteratorNodes->next();
-//       int nodeId = node->GetID();
-//       double nodeX = node->X();
-//       double nodeY = node->Y();
-//       double nodeZ = node->Z();
-//       MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ);
-       }
-
-      SCRUTE(index);
-    }
-
-  SCRUTE(NbTotOfNodesVertices);
-
-  MESSAGE("NETGENPlugin_NETGEN_3D::Compute --> Analysis of all shell mesh");
-
-  vector<SMESH_subMesh*> meshShells;
-  TopoDS_Shell aShell;
-
-  for (TopExp_Explorer exp(aShape,TopAbs_SHELL);exp.More();exp.Next())
-    {
-      SMESH_subMesh* aSubMesh = aMesh.GetSubMesh(exp.Current());
-      ASSERT(aSubMesh);
-      SCRUTE(aSubMesh);
-      aShell = TopoDS::Shell(exp.Current());
-      meshShells.push_back(aSubMesh);
-    }
-
-  int numberOfShells = meshShells.size();
-  SCRUTE(numberOfShells);
-
-  if (numberOfShells == 1)
-    {
-      MESSAGE("NETGENPlugin_NETGEN_3D::Compute Only one shell --> generation of the mesh using directly Netgen");
-
-      /*
-       Prepare the Netgen surface mesh from the SMESHDS
-      */
-
-      MESSAGE("NETGENPlugin_NETGEN_3D::Compute Prepare the Netgen surface mesh from the SMESHDS");
-
-      int spaceDimension = 3;
-      int nbNodesByTri = 3;
-      int nbNodesByTetra = 4;
-
-      int Netgen_NbOfNodes = NbTotOfNodesFaces +
-                            NbTotOfNodesEdges +
-                            NbTotOfNodesVertices;
-      int Netgen_NbOfTria = NbTotOfTria;
-      int Netgen_param2ndOrder = 0;
-      double Netgen_paramFine = 1.;
-      double Netgen_paramSize = _maxElementVolume;
-
-      SCRUTE(Netgen_NbOfNodes);
-      SCRUTE(Netgen_NbOfTria);
-
-      double * Netgen_Coordinates = new double [spaceDimension*
-                                               Netgen_NbOfNodes];
-      int * listNodeCoresNetgenSmesh = new int [Netgen_NbOfNodes];
-      int * Netgen_Connectivity = new int [nbNodesByTri*Netgen_NbOfTria];
-      double * Netgen_point = new double [spaceDimension];
-      int * Netgen_triangle = new int [nbNodesByTri];
-      int * Netgen_tetrahedron = new int [nbNodesByTetra];
-
-      for (int i=0; i<Netgen_NbOfTria; i++)
-       {
-         for (int j=0; j<nbNodesByTri; j++)
-           Netgen_Connectivity[i*nbNodesByTri+j] = 0;
-       }
-
-      double bigNumber = 1.e20;
-
-      for (int i=0; i<Netgen_NbOfNodes; i++)
-       {
-         listNodeCoresNetgenSmesh[i] = 0;
-         for (int j=0; j<spaceDimension; j++)
-           Netgen_Coordinates[i*spaceDimension+j] = bigNumber;
-       }
-
-      int indexNodes = 0;
-      for (int i=0; i<numberOfVertices; i++)
-       {
-         const SMESHDS_SubMesh * aSubMeshDSVertex =
-           meshVertices[i]->GetSubMeshDS();
-
-         SMDS_NodeIteratorPtr iteratorNodes = aSubMeshDSVertex->GetNodes();
-
-         while(iteratorNodes->more())
-           {
-             const SMDS_MeshNode * node = iteratorNodes->next();
-             int nodeId = node->GetID();
-             double nodeX = node->X();
-             double nodeY = node->Y();
-             double nodeZ = node->Z();
-//           MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ);
-             listNodeCoresNetgenSmesh[indexNodes] = nodeId;
-             int index = indexNodes*spaceDimension;
-             Netgen_Coordinates[index] = nodeX;
-             Netgen_Coordinates[index+1] = nodeY;
-             Netgen_Coordinates[index+2] = nodeZ;
-             netgenToDS[indexNodes] = node;
-             indexNodes++;
-           }
-       }
-
-      for (int i=0; i<numberOfEdges; i++)
-       {
-         const SMESHDS_SubMesh *  aSubMeshDSEdge =
-           meshEdges[i]->GetSubMeshDS();
-
-         SMDS_NodeIteratorPtr iteratorNodes = aSubMeshDSEdge->GetNodes();
-
-         while(iteratorNodes->more())
-           {
-             const SMDS_MeshNode * node = iteratorNodes->next();
-             int nodeId = node->GetID();
-             double nodeX = node->X();
-             double nodeY = node->Y();
-             double nodeZ = node->Z();
-//           MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ);
-             listNodeCoresNetgenSmesh[indexNodes] = node->GetID();
-             int index = indexNodes*spaceDimension;
-             Netgen_Coordinates[index] = node->X();
-             Netgen_Coordinates[index+1] = node->Y();
-             Netgen_Coordinates[index+2] = node->Z();
-             netgenToDS[indexNodes] = node;
-             indexNodes++;
-           }
-       }
-
-      for (int i=0; i<numberOfFaces; i++)
-       {
-         const SMESHDS_SubMesh * aSubMeshDSFace =
-           meshFaces[i]->GetSubMeshDS();
-
-         SMDS_NodeIteratorPtr iteratorNodes = aSubMeshDSFace->GetNodes();
-
-         while(iteratorNodes->more())
-           {
-             const SMDS_MeshNode * node = iteratorNodes->next();
-             int nodeId = node->GetID();
-             double nodeX = node->X();
-             double nodeY = node->Y();
-             double nodeZ = node->Z();
-//           MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ);
-             listNodeCoresNetgenSmesh[indexNodes] = nodeId;
-             int index = indexNodes*spaceDimension;
-             Netgen_Coordinates[index] = nodeX;
-             Netgen_Coordinates[index+1] = nodeY;
-             Netgen_Coordinates[index+2] = nodeZ;
-             netgenToDS[indexNodes] = node;
-             indexNodes++;
-           }
-       }
-
-      SCRUTE(indexNodes);
-
-      for (int i=0; i<Netgen_NbOfNodes; i++)
-       {
-         ASSERT(listNodeCoresNetgenSmesh[i] != 0);
-
-         for (int j=0; j<Netgen_NbOfNodes && j!=i; j++)
-           ASSERT(listNodeCoresNetgenSmesh[i] != listNodeCoresNetgenSmesh[j]);
-
-         for (int j=0; j<spaceDimension; j++)
-           ASSERT(Netgen_Coordinates[i*spaceDimension+j] != bigNumber);
-       }
-
-      int indexTrias = 0;
-      for (int i=0; i<numberOfFaces; i++)
-       {
-         const SMESHDS_SubMesh * aSubMeshDSFace =
-           meshFaces[i]->GetSubMeshDS();
-
-         TopoDS_Shape aFace = shapeFaces[i];
-
-         SMDS_ElemIteratorPtr iteratorTriangle = aSubMeshDSFace->GetElements();
-
-         TopoDS_Shape aShapeFace = meshFaces[i]->GetSubShape();
-
-         bool orientationMeshFace = (aFace.Orientation() == aShapeFace.Orientation());
-
-         SCRUTE(orientationMeshFace);
-
-         if (orientationMeshFace)
-           {
-             MESSAGE("The mesh and face have the same orientation");
-
-             while(iteratorTriangle->more())
-               {
-                 const SMDS_MeshElement * triangle = iteratorTriangle->next();
-                 int triangleId = triangle->GetID();
-
-                 SMDS_ElemIteratorPtr triangleNodesIt = triangle->nodesIterator();
-
-                 int triangleNode1 = (triangleNodesIt->next())->GetID();
-                 int triangleNode2 = (triangleNodesIt->next())->GetID();
-                 int triangleNode3 = (triangleNodesIt->next())->GetID();
-
-//               MESSAGE("TRIANGLE -> ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3);
-
-                 int N1New = 0;
-                 int N2New = 0;
-                 int N3New = 0;
-                 int index = indexTrias*nbNodesByTri;
-
-                 for (int j=0; j<Netgen_NbOfNodes; j++)
-                   {
-                     int jp1 = j+1;
-
-                     if (triangleNode1 == listNodeCoresNetgenSmesh[j])
-                       N1New = jp1;
-                     else if (triangleNode2 == listNodeCoresNetgenSmesh[j])
-                       N2New = jp1;
-                     else if (triangleNode3 == listNodeCoresNetgenSmesh[j])
-                       N3New = jp1;
-                   }
-
-                 triangleNode1 = N1New;
-                 triangleNode2 = N2New;
-                 triangleNode3 = N3New;
-
-                 Netgen_Connectivity[index] = triangleNode1;
-                 Netgen_Connectivity[index+1] = triangleNode2;
-                 Netgen_Connectivity[index+2] = triangleNode3;
-
-                 indexTrias++;
-               }
-           }
-         else
-           {
-             MESSAGE("The mesh and face have different orientations");
-
-             while(iteratorTriangle->more())
-               {
-                 const SMDS_MeshElement * triangle = iteratorTriangle->next();
-                 int triangleId = triangle->GetID();
-
-                 SMDS_ElemIteratorPtr triangleNodesIt = triangle->nodesIterator();
-
-                 int triangleNode1 = (triangleNodesIt->next())->GetID();
-                 int triangleNode3 = (triangleNodesIt->next())->GetID();
-                 int triangleNode2 = (triangleNodesIt->next())->GetID();
-
-//               MESSAGE("TRIANGLE -> ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3);
-
-                 int N1New = 0;
-                 int N2New = 0;
-                 int N3New = 0;
-                 int index = indexTrias*nbNodesByTri;
-
-                 for (int j=0; j<Netgen_NbOfNodes; j++)
-                   {
-                     int jp1 = j+1;
-
-                     if (triangleNode1 == listNodeCoresNetgenSmesh[j])
-                       N1New = jp1;
-                     else if (triangleNode2 == listNodeCoresNetgenSmesh[j])
-                       N2New = jp1;
-                     else if (triangleNode3 == listNodeCoresNetgenSmesh[j])
-                       N3New = jp1;
-                   }
-
-                 triangleNode1 = N1New;
-                 triangleNode2 = N2New;
-                 triangleNode3 = N3New;
-
-                 Netgen_Connectivity[index] = triangleNode1;
-                 Netgen_Connectivity[index+1] = triangleNode2;
-                 Netgen_Connectivity[index+2] = triangleNode3;
-
-                 indexTrias++;
-               }
-           }
-       }
-
-      SCRUTE(indexTrias);
-
-      int * nodesUsed = new int[Netgen_NbOfNodes];
-
-      for (int i=0; i<Netgen_NbOfNodes; i++) nodesUsed[i] = 0;
-
-      for (int i=0; i<Netgen_NbOfTria; i++)
-       for (int j=0; j<nbNodesByTri; j++)
-         {
-           int Nij = Netgen_Connectivity[i*nbNodesByTri+j];
-
-           ASSERT((Nij>=1) && (Nij<=Netgen_NbOfNodes));
-
-           nodesUsed[Nij-1] = 1;
-           Netgen_Connectivity[i*nbNodesByTri+j] = Nij;
-         }
-
-      for (int i=0; i<Netgen_NbOfNodes; i++)
-       {
-         ASSERT(nodesUsed[i] != 0);
-       }
-
-      delete [] nodesUsed;
-
-      /*
-       Feed the Netgen surface mesh
-      */
-
-      MESSAGE("NETGENPlugin_NETGEN_3D::Compute Feed the Netgen surface mesh");
-
-      Ng_Mesh * Netgen_mesh;
-
-      Ng_Init();
-
-      Netgen_mesh = Ng_NewMesh();
-
-      Ng_Meshing_Parameters Netgen_param;
-
-      for (int i=0; i<Netgen_NbOfNodes; i++)
-       {
-         for (int j=0; j<spaceDimension; j++)
-           Netgen_point[j] = Netgen_Coordinates[i*spaceDimension+j];
-
-         Ng_AddPoint(Netgen_mesh, Netgen_point);
-       }
-
-      for (int i=0; i<Netgen_NbOfTria; i++)
-       {
-         for (int j=0; j<nbNodesByTri; j++)
-           Netgen_triangle[j] = Netgen_Connectivity[i*nbNodesByTri+j];
-
-         Ng_AddSurfaceElement(Netgen_mesh, NG_TRIG, Netgen_triangle);
-       }
-
-      SCRUTE(Netgen_paramSize);
-
-      Netgen_param.secondorder = Netgen_param2ndOrder;
-      Netgen_param.fineness = Netgen_paramFine;
-      Netgen_param.maxh = Netgen_paramSize;
-
-      /*
-       Generate the volume mesh
-      */
-
-      MESSAGE("NETGENPlugin_NETGEN_3D::Compute Generate the volume mesh");
-
-      SCRUTE(Netgen_NbOfNodes);
-      SCRUTE(Netgen_NbOfTria);
-
-      SCRUTE(Ng_GetNP(Netgen_mesh));
-      SCRUTE(Ng_GetNE(Netgen_mesh));
-      SCRUTE(Ng_GetNSE(Netgen_mesh));
-
-      ASSERT(Netgen_NbOfNodes == Ng_GetNP(Netgen_mesh));
-      ASSERT(Ng_GetNE(Netgen_mesh) == 0);
-      ASSERT(Netgen_NbOfTria == Ng_GetNSE(Netgen_mesh));
-
-      Ng_Result status;
-
-      status = Ng_GenerateVolumeMesh(Netgen_mesh, &Netgen_param);
-
-      SCRUTE(status);
-
-      int Netgen_NbOfNodesNew = Ng_GetNP(Netgen_mesh);
-
-      int Netgen_NbOfTetra = Ng_GetNE(Netgen_mesh);
-
-      SCRUTE(Netgen_NbOfNodesNew);
-
-      SCRUTE(Netgen_NbOfTetra);
-
-      if ((status != NG_OK) ||
-         (Netgen_NbOfNodesNew <= Netgen_NbOfNodes) ||
-         (Netgen_NbOfTetra <= 0))
-       {
-         MESSAGE("NETGENPlugin_NETGEN_3D::Compute The Volume Mesh Generation has failed ...");
-         SCRUTE(status);
-
-         /*
-           Free the memory needed by to generate the Netgen Mesh
-         */
-
-         MESSAGE("NETGENPlugin_NETGEN_3D::Compute Free the memory needed by to generate the Netgen Mesh");
-
-         delete [] Netgen_Coordinates;
-         delete [] Netgen_Connectivity;
-         delete [] Netgen_point;
-         delete [] Netgen_triangle;
-         delete [] Netgen_tetrahedron;
-
-         delete [] listNodeCoresNetgenSmesh;
-
-         Ng_DeleteMesh(Netgen_mesh);
-         Ng_Exit();
-
-         return false;
-       }
-
-      MESSAGE("NETGENPlugin_NETGEN_3D::Compute End of Volume Mesh Generation");
-      SCRUTE(status);
-
-      double * Netgen_CoordinatesNew = new double [spaceDimension*Netgen_NbOfNodesNew];
-      int * Netgen_ConnectivityNew = new int [nbNodesByTetra*Netgen_NbOfTetra];
-
-      for (int i=0; i<Netgen_NbOfNodesNew; i++)
-       {
-         Ng_GetPoint(Netgen_mesh, (i+1), Netgen_point);
-
-         for (int j=0; j<spaceDimension; j++)
-           Netgen_CoordinatesNew[i*spaceDimension+j] = Netgen_point[j];
-       }
-
-      for (int i=0; i<Netgen_NbOfNodes; i++)
-       for (int j=0; j<spaceDimension; j++)
-         ASSERT(Netgen_CoordinatesNew[i*spaceDimension+j] == Netgen_Coordinates[i*spaceDimension+j])
-
-      for (int i=0; i<Netgen_NbOfTetra; i++)
-       {
-         Ng_GetVolumeElement(Netgen_mesh, (i+1), Netgen_tetrahedron);
-
-         for (int j=0; j<nbNodesByTetra; j++)
-           Netgen_ConnectivityNew[i*nbNodesByTetra+j] = Netgen_tetrahedron[j];
-       }
-
-      /*
-       Feed back the SMESHDS with the generated Nodes and Volume Elements
-      */
-
-      MESSAGE("NETGENPlugin_NETGEN_3D::Compute Feed back the SMESHDS with the generated Nodes and Volume Elements");
-
-      int NbTotOfNodesShell = Netgen_NbOfNodesNew - Netgen_NbOfNodes;
-
-      SCRUTE(NbTotOfNodesShell);
-
-      int * listNodeShellCoresNetgenSmesh = new int [NbTotOfNodesShell];
-
-      for (int i=0; i<NbTotOfNodesShell; i++)
-       listNodeShellCoresNetgenSmesh[i] = 0;
-
-      MESSAGE("NETGENPlugin_NETGEN_3D::Compute --> Adding the New Nodes to SMESHDS");
-
-      for (int i=0; i<NbTotOfNodesShell; i++)
-       {
-         int index = (i+Netgen_NbOfNodes)*spaceDimension;
-
-         SMDS_MeshNode * node =
-           meshDS->AddNode(Netgen_CoordinatesNew[index],
-                           Netgen_CoordinatesNew[index+1],
-                           Netgen_CoordinatesNew[index+2]);
-
-         meshDS->SetNodeInVolume(node, aShell);
-
-         index = i+Netgen_NbOfNodes;
-         netgenToDS[index] = node;
-
-         listNodeShellCoresNetgenSmesh[i] = node->GetID();
-       }
-
-      SCRUTE(Netgen_NbOfNodesNew);
-      
-      SCRUTE(netgenToDS.size());
-
-      for (int i=0; i<NbTotOfNodesShell; i++)
-       {
-         ASSERT(listNodeShellCoresNetgenSmesh[i] != 0);
-
-         for (int j=0; j<NbTotOfNodesShell && j!=i; j++)
-           ASSERT(listNodeShellCoresNetgenSmesh[i] != listNodeShellCoresNetgenSmesh[j]);
-       }
-
-      MESSAGE("NETGENPlugin_NETGEN_3D::Compute --> Adding the New elements (Tetrahedrons) to the SMESHDS");
-
-      for (int i=0; i<Netgen_NbOfTetra; i++)
-       {
-         int index = i*nbNodesByTetra;
-         int tetraNode1 = Netgen_ConnectivityNew[index];
-         int tetraNode2 = Netgen_ConnectivityNew[index+1];
-         int tetraNode3 = Netgen_ConnectivityNew[index+2];
-         int tetraNode4 = Netgen_ConnectivityNew[index+3];
-
-         const SMDS_MeshNode * node1 = netgenToDS[tetraNode1-1];
-         const SMDS_MeshNode * node2 = netgenToDS[tetraNode2-1];
-         const SMDS_MeshNode * node3 = netgenToDS[tetraNode3-1];
-         const SMDS_MeshNode * node4 = netgenToDS[tetraNode4-1];
-
-         index = tetraNode1;
-         if (index <= Netgen_NbOfNodes)
-           tetraNode1 = listNodeCoresNetgenSmesh[index-1];
-         else
-           tetraNode1 = listNodeShellCoresNetgenSmesh[index-Netgen_NbOfNodes-1];
-
-         index = tetraNode2;
-         if (index <= Netgen_NbOfNodes)
-           tetraNode2 = listNodeCoresNetgenSmesh[index-1];
-         else
-           tetraNode2 = listNodeShellCoresNetgenSmesh[index-Netgen_NbOfNodes-1];
-
-         index = tetraNode3;
-         if (index <= Netgen_NbOfNodes)
-           tetraNode3 = listNodeCoresNetgenSmesh[index-1];
-         else
-           tetraNode3 = listNodeShellCoresNetgenSmesh[index-Netgen_NbOfNodes-1];
-
-         index = tetraNode4;
-         if (index <= Netgen_NbOfNodes)
-           tetraNode4 = listNodeCoresNetgenSmesh[index-1];
-         else
-           tetraNode4 = listNodeShellCoresNetgenSmesh[index-Netgen_NbOfNodes-1];
-
-         SMDS_MeshVolume * elt =
-           meshDS->AddVolume(node1,node2,node3,node4);
-
-         meshDS->SetMeshElementOnShape(elt, aShell);
-       }
-
-      /*
-       Free the memory needed by to generate the Netgen Mesh
-      */
-
-      MESSAGE("NETGENPlugin_NETGEN_3D::Compute Free the memory needed by to generate the Netgen Mesh");
-
-      delete [] Netgen_Coordinates;
-      delete [] Netgen_Connectivity;
-      delete [] Netgen_CoordinatesNew;
-      delete [] Netgen_ConnectivityNew;
-      delete [] Netgen_point;
-      delete [] Netgen_triangle;
-      delete [] Netgen_tetrahedron;
-
-      delete [] listNodeCoresNetgenSmesh;
-      delete [] listNodeShellCoresNetgenSmesh;
-
-      Ng_DeleteMesh(Netgen_mesh);
-      Ng_Exit();
-
-      /*
-       Verification
-      */
-
-      {
-       MESSAGE("NETGENPlugin_NETGEN_3D::Compute Verification of the Shell mesh");
-
-       TopoDS_Shape aShapeShell = meshShells[0]->GetSubShape();
-       SMESH_Algo* algoShell = _gen->GetAlgo(aMesh, aShapeShell);
-       string algoShellName = algoShell->GetName();
-       SCRUTE(algoShellName);
-       if (algoShellName != "NETGEN_3D")
-         {
-           SCRUTE(algoShellName);
-           ASSERT(0);
-           return false;
-         }
-
-       const SMESHDS_SubMesh * aSubMeshDSShell = meshShells[0]->GetSubMeshDS();
-       SCRUTE(&aSubMeshDSShell);
-
-       int nbNodes = aSubMeshDSShell->NbNodes();
-       int nbTetra = aSubMeshDSShell->NbElements();
-
-       MESSAGE("NETGENPlugin_NETGEN_3D::Compute The mesh Shell has " << nbNodes << " shell internal Nodes, " << nbTetra << " tetrahedrons");
-
-       SMDS_NodeIteratorPtr iteratorNodes = aSubMeshDSShell->GetNodes();
-
-       SCRUTE(nbNodes);
-
-       int index;
-
-       index = 0;
-
-       while(iteratorNodes->more())
-         {
-           index++;
-           const SMDS_MeshNode * node = iteratorNodes->next();
-           int nodeId = node->GetID();
-           double nodeX = node->X();
-           double nodeY = node->Y();
-           double nodeZ = node->Z();
-//         MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ);
-         }
-
-       SCRUTE(index);
-
-       SMDS_ElemIteratorPtr iteratorTetra = aSubMeshDSShell->GetElements();
-
-       SCRUTE(nbTetra);
-
-       index = 0;
-       while(iteratorTetra->more())
-         {
-           index++;
-           const SMDS_MeshElement * tetra = iteratorTetra->next();
-           int tetraId = tetra->GetID();
-
-           SMDS_ElemIteratorPtr tetraNodesIt = tetra->nodesIterator();
-
-           int tetraNode1 = (tetraNodesIt->next())->GetID();
-           int tetraNode2 = (tetraNodesIt->next())->GetID();
-           int tetraNode3 = (tetraNodesIt->next())->GetID();
-           int tetraNode4 = (tetraNodesIt->next())->GetID();
-
-//         MESSAGE("TETRAHEDRON -> ID = " << tetraId << " N1 = " << tetraNode1 << " N2 = " << tetraNode2 << " N3 = " << tetraNode3 << " N4 = " << tetraNode4);
-
-         }
-
-       SCRUTE(index);
-      }
-    }
-  else
-    {
-      SCRUTE(numberOfShells);
-      MESSAGE("NETGENPlugin_NETGEN_3D::Compute ERROR More than one shell ????? ");
-      return false;
-    }
-
-  return true;
-}
-
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & NETGENPlugin_NETGEN_3D::SaveTo(ostream & save)
-{
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & NETGENPlugin_NETGEN_3D::LoadFrom(istream & load)
-{
-  return load;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator << (ostream & save, NETGENPlugin_NETGEN_3D & hyp)
-{
-  return hyp.SaveTo( save );
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >> (istream & load, NETGENPlugin_NETGEN_3D & hyp)
-{
-  return hyp.LoadFrom( load );
-}
diff --git a/src/NETGENPlugin/NETGENPlugin_NETGEN_3D.hxx b/src/NETGENPlugin/NETGENPlugin_NETGEN_3D.hxx
deleted file mode 100644 (file)
index b085880..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-//=============================================================================
-// File      : NETGENPlugin_NETGEN_3D.hxx
-//             Moved here from SMESH_NETGEN_3D.hxx
-// Created   : lundi 27 Janvier 2003
-// Author    : Nadir BOUHAMOU (CEA)
-// Project   : SALOME
-// Copyright : CEA 2003
-// $Header$
-//=============================================================================
-
-#ifndef _NETGENPlugin_NETGEN_3D_HXX_
-#define _NETGENPlugin_NETGEN_3D_HXX_
-
-#include "SMESH_3D_Algo.hxx"
-#include "SMESH_Mesh.hxx"
-#include "StdMeshers_MaxElementVolume.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-class NETGENPlugin_NETGEN_3D: public SMESH_3D_Algo
-{
-public:
-  NETGENPlugin_NETGEN_3D(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~NETGENPlugin_NETGEN_3D();
-
-  virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
-                               const TopoDS_Shape& aShape,
-                               SMESH_Hypothesis::Hypothesis_Status& aStatus);
-
-  virtual bool Compute(SMESH_Mesh& aMesh,
-                      const TopoDS_Shape& aShape);
-
-  ostream & SaveTo(ostream & save);
-  istream & LoadFrom(istream & load);
-  friend ostream & operator << (ostream & save, NETGENPlugin_NETGEN_3D & hyp);
-  friend istream & operator >> (istream & load, NETGENPlugin_NETGEN_3D & hyp);
-
-protected:
-  double _maxElementVolume;
-
-  const StdMeshers_MaxElementVolume* _hypMaxElementVolume;
-};
-
-#endif
diff --git a/src/NETGENPlugin/NETGENPlugin_NETGEN_3D_i.cxx b/src/NETGENPlugin/NETGENPlugin_NETGEN_3D_i.cxx
deleted file mode 100644 (file)
index 489d682..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : NETGENPlugin_NETGEN_3D_i.cxx
-//           Moved here from SMESH_NETGEN_3D_i.cxx
-//  Author : Nadir Bouhamou CEA
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "NETGENPlugin_NETGEN_3D_i.hxx"
-#include "SMESH_Gen.hxx"
-
-#include "Utils_CorbaException.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  NETGENPlugin_NETGEN_3D_i::NETGENPlugin_NETGEN_3D_i
- *
- *  Constructor
- */
-//=============================================================================
-
-NETGENPlugin_NETGEN_3D_i::NETGENPlugin_NETGEN_3D_i( PortableServer::POA_ptr thePOA,
-                                     int                     theStudyId,
-                                     ::SMESH_Gen*            theGenImpl )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA ), 
-       SMESH_Algo_i( thePOA ),
-       SMESH_3D_Algo_i( thePOA )
-{
-  MESSAGE( "NETGENPlugin_NETGEN_3D_i::NETGENPlugin_NETGEN_3D_i" );
-  myBaseImpl = new ::NETGENPlugin_NETGEN_3D( theGenImpl->GetANewId(),
-                                     theStudyId,
-                                     theGenImpl );
-}
-
-//=============================================================================
-/*!
- *  NETGENPlugin_NETGEN_3D_i::~NETGENPlugin_NETGEN_3D_i
- *
- *  Destructor
- */
-//=============================================================================
-
-NETGENPlugin_NETGEN_3D_i::~NETGENPlugin_NETGEN_3D_i()
-{
-  MESSAGE( "NETGENPlugin_NETGEN_3D_i::~NETGENPlugin_NETGEN_3D_i" );
-}
-
-//=============================================================================
-/*!
- *  NETGENPlugin_NETGEN_3D_i::GetImpl
- *
- *  Get implementation
- */
-//=============================================================================
-
-::NETGENPlugin_NETGEN_3D* NETGENPlugin_NETGEN_3D_i::GetImpl()
-{
-  MESSAGE( "NETGENPlugin_NETGEN_3D_i::GetImpl" );
-  return ( ::NETGENPlugin_NETGEN_3D* )myBaseImpl;
-}
-
diff --git a/src/NETGENPlugin/NETGENPlugin_NETGEN_3D_i.hxx b/src/NETGENPlugin/NETGENPlugin_NETGEN_3D_i.hxx
deleted file mode 100644 (file)
index 724fafa..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : NETGENPlugin_NETGEN_3D_i.hxx
-//           Moved here from SMESH_NETGEN_3D_i.hxx
-//  Author : Nadir Bouhamou CEA
-//  Module : SMESH
-//  $Header$
-
-#ifndef _NETGENPlugin_NETGEN_3D_I_HXX_
-#define _NETGENPlugin_NETGEN_3D_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_NetgenAlgorithm)
-
-#include "SMESH_3D_Algo_i.hxx"
-#include "NETGENPlugin_NETGEN_3D.hxx"
-
-// ======================================================
-// NETGEN 3d algorithm
-// ======================================================
-class NETGENPlugin_NETGEN_3D_i:
-  public virtual POA_NETGENPlugin::NETGENPlugin_NETGEN_3D,
-  public virtual SMESH_3D_Algo_i
-{
-public:
-  // Constructor
-  NETGENPlugin_NETGEN_3D_i( PortableServer::POA_ptr thePOA,
-                     int                     theStudyId,
-                     ::SMESH_Gen*            theGenImpl );
-  // Destructor
-  virtual ~NETGENPlugin_NETGEN_3D_i();
-  // Get implementation
-  ::NETGENPlugin_NETGEN_3D* GetImpl();
-};
-
-#endif
diff --git a/src/NETGENPlugin/NETGENPlugin_i.cxx b/src/NETGENPlugin/NETGENPlugin_i.cxx
deleted file mode 100644 (file)
index 7ec0e06..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-//  SMESH NETGENPlugin : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : NETGENPlugin.cxx
-//  Author : Julia DOROVSKIKH
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "SMESH_Hypothesis_i.hxx"
-#include "SMESH_Gen_i.hxx"
-
-#include "utilities.h"
-
-#include "NETGENPlugin_NETGEN_3D_i.hxx"
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-extern "C"
-{
-  GenericHypothesisCreator_i* GetHypothesisCreator (const char* aHypName)
-  {
-    MESSAGE("GetHypothesisCreator " << aHypName);
-
-    GenericHypothesisCreator_i* aCreator = 0;
-
-    // Hypotheses
-
-    // Algorithms
-    if (strcmp(aHypName, "NETGEN_3D") == 0)
-      aCreator = new HypothesisCreator_i<NETGENPlugin_NETGEN_3D_i>;
-    else ;
-
-    return aCreator;
-  }
-}
diff --git a/src/NETGENPlugin/NETGENPlugin_icons.po b/src/NETGENPlugin/NETGENPlugin_icons.po
deleted file mode 100644 (file)
index a3f6297..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-# This is a Qt message file in .po format.  Each msgid starts with
-# a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
-# would be translated to "Pub", not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2002-05-28 10:57:43 AM CEST\n"
-"PO-Revision-Date: YYYY-MM-DD\n"
-"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-
-#-----------------------------------------------------------
-# ObjectBrowser
-#-----------------------------------------------------------
-
-#mesh_tree_algo_netgen
-msgid "ICON_SMESH_TREE_ALGO_NETGEN_3D"
-msgstr "mesh_tree_algo_tetra.png"
-#msgstr "mesh_tree_algo_netgen.png"
diff --git a/src/OBJECT/Makefile.in b/src/OBJECT/Makefile.in
deleted file mode 100644 (file)
index 8cf070c..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#  SMESH OBJECT : interactive object for SMESH visualization
-#
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : Makefile.in
-#  Module : SMESH
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@top_srcdir@/idl:$(top_builddir)/idl
-
-@COMMENCE@
-
-EXPORT_HEADERS = SMESH_Actor.h SMESH_Object.h SMESH_ObjectDef.h SMESH_ActorUtils.h
-
-
-# Libraries targets
-
-LIB = libSMESHObject.la
-LIB_SRC = SMESH_Object.cxx SMESH_DeviceActor.cxx SMESH_Actor.cxx \
-         SMESH_ExtractGeometry.cxx SMESH_ActorUtils.cxx
-
-LIB_CLIENT_IDL = SALOME_Exception.idl \
-                SALOME_GenericObj.idl \
-                SMESH_Mesh.idl \
-                SMESH_Group.idl
-
-
-# Executables targets
-BIN = 
-BIN_SRC        =
-
-CPPFLAGS+=$(OCC_INCLUDES) $(VTK_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome -I${GUI_ROOT_DIR}/include/salome \
-         $(BOOST_CPPFLAGS) $(QT_INCLUDES)
-LDFLAGS+=$(OCC_KERNEL_LIBS) $(VTK_LIBS) -L${KERNEL_ROOT_DIR}/lib/salome -L${GUI_ROOT_DIR}/lib/salome -lSMDS \
-         -lSalomeApp -lSalomeObject -lSMESHControls
-
-@CONCLUDE@
index bdadcf0261d669de0a64417155f5b781e0774c3e..3c5e2e0d09a8baecf04fddf01c32d7ea856256d1 100644 (file)
@@ -116,7 +116,10 @@ SMESH_ActorDef::SMESH_ActorDef()
   myIsShrinkable = false;
   myIsShrunk = false;
 
-  myControlsPrecision = (long)SMESH::GetFloat( "SMESH:controls_precision", -1 );
+  myControlsPrecision = -1;
+  SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();
+  if ( mgr && mgr->booleanValue( "SMESH", "use_precision", false ) )
+    myControlsPrecision = (long)SMESH::GetFloat( "SMESH", "controls_precision", -1 );
 
   float aPointSize = SMESH::GetFloat("SMESH:node_size",3);
   float aLineWidth = SMESH::GetFloat("SMESH:element_width",1);
@@ -278,7 +281,7 @@ SMESH_ActorDef::SMESH_ActorDef()
   myScalarBarActor->SetVisibility(false);
   myScalarBarActor->SetLookupTable(myLookupTable);
 
-  SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();
+  mgr = SUIT_Session::session()->resourceMgr();
   if( !mgr )
     return;
 
@@ -585,6 +588,14 @@ SetControlMode(eControl theMode,
       myControlActor = my3DActor;
       break;
     }
+    case eVolume3D:
+    {
+      SMESH::Controls::Volume* aControl = new SMESH::Controls::Volume();
+      aControl->SetPrecision( myControlsPrecision );
+      aFunctor.reset( aControl );
+      myControlActor = my3DActor;
+      break;
+    }
     case eMinimumAngle:
     {
       SMESH::Controls::MinimumAngle* aControl = new SMESH::Controls::MinimumAngle();
@@ -743,18 +754,18 @@ bool SMESH_ActorDef::Init(TVisualObjPtr theVisualObj,
   if( !mgr )
     return false;
 
-  QString aMode = mgr->stringValue( "SMESH", "display_mode" );
+  int aMode = mgr->integerValue( "SMESH", "display_mode" );
   SetRepresentation(-1);
   
-  if(aMode.compare("Wireframe") == 0){
+  if(aMode == 0){
     SetRepresentation(eEdge);
-  }else if(aMode.compare("Shading") == 0){
+  }else if(aMode == 1){
     SetRepresentation(eSurface);
-  }else if(aMode.compare("Nodes") == 0){
+  }else if(aMode == 2){
     SetRepresentation(ePoint);
   }
   
-  if(aMode == "Shrink"){
+  if(aMode == 3){
     SetShrink();
   }
 
diff --git a/src/OBJECT/SMESH_Actor.h b/src/OBJECT/SMESH_Actor.h
deleted file mode 100644 (file)
index 038a926..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-//  SMESH OBJECT : interactive object for SMESH visualization
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Actor.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef SMESH_ACTOR_H
-#define SMESH_ACTOR_H
-
-#include <SALOME_Actor.h>
-#include "SMESH_Object.h"
-
-class vtkUnstructuredGrid;
-
-class vtkScalarBarActor;
-
-class vtkPlane;
-class vtkImplicitBoolean;
-
-class SMESH_Actor: public SALOME_Actor
-{
-  static SMESH_Actor* New() { return NULL;}
-
- public:
-  vtkTypeMacro(SMESH_Actor,SALOME_Actor);
-  static SMESH_Actor* New(TVisualObjPtr theVisualObj, 
-                         const char* theEntry, 
-                         const char* theName,
-                         int theIsClear);
-  
-  virtual void SetSufaceColor(float r,float g,float b) = 0;
-  virtual void GetSufaceColor(float& r,float& g,float& b) = 0;
-  
-  virtual void SetBackSufaceColor(float r,float g,float b) = 0;
-  virtual void GetBackSufaceColor(float& r,float& g,float& b) = 0;
-  
-  virtual void SetEdgeColor(float r,float g,float b) = 0;
-  virtual void GetEdgeColor(float& r,float& g,float& b) = 0;
-
-  virtual void SetNodeColor(float r,float g,float b) = 0;
-  virtual void GetNodeColor(float& r,float& g,float& b) = 0;
-
-  virtual void SetHighlightColor(float r,float g,float b) = 0;
-  virtual void GetHighlightColor(float& r,float& g,float& b) = 0;
-
-  virtual void SetPreHighlightColor(float r,float g,float b) = 0;
-  virtual void GetPreHighlightColor(float& r,float& g,float& b) = 0;
-  virtual float GetLineWidth() = 0;
-  virtual void SetLineWidth(float theVal) = 0;
-
-  virtual void SetNodeSize(float size) = 0;
-  virtual float GetNodeSize() = 0;
-
-  enum EReperesent { ePoint, eEdge, eSurface};
-  
-  enum EEntityMode { eEdges = 0x01, eFaces = 0x02, eVolumes = 0x04, eAllEntity = 0x07};
-  virtual void SetEntityMode(unsigned int theMode) = 0;
-  virtual unsigned int GetEntityMode() const = 0;
-
-  virtual void SetPointRepresentation(bool theIsPointsVisible) = 0;
-  virtual bool GetPointRepresentation() = 0;
-
-  virtual vtkUnstructuredGrid* GetUnstructuredGrid() = 0;
-
-  virtual void SetShrinkFactor(float theValue) = 0;
-
-  virtual void SetPointsLabeled(bool theIsPointsLabeled) = 0;
-  virtual bool GetPointsLabeled() = 0;
-
-  virtual void SetCellsLabeled(bool theIsCellsLabeled) = 0;
-  virtual bool GetCellsLabeled() = 0;
-
-  enum eControl{eNone, eLength, eLength2D, eFreeBorders, eFreeEdges, eMultiConnection, 
-               eArea, eTaper, eAspectRatio, eMinimumAngle, eWarping, eSkew,
-               eAspectRatio3D, eMultiConnection2D};
-  virtual void SetControlMode(eControl theMode) = 0;
-  virtual eControl GetControlMode() = 0;
-
-  virtual vtkScalarBarActor* GetScalarBarActor() = 0;
-
-  virtual void SetPlaneParam(float theDir[3], float theDist, vtkPlane* thePlane) = 0;
-  virtual void GetPlaneParam(float theDir[3], float& theDist, vtkPlane* thePlane) = 0;
-
-  virtual void RemoveAllClippingPlanes() = 0; 
-  virtual vtkIdType GetNumberOfClippingPlanes() = 0; 
-  virtual vtkPlane* GetClippingPlane(vtkIdType theID) = 0; 
-  virtual vtkIdType AddClippingPlane(vtkPlane* thePlane) = 0; 
-
-  virtual TVisualObjPtr GetObject() = 0;
-
-  virtual void SetControlsPrecision( const long ) = 0;
-  virtual long GetControlsPrecision() const = 0;
-
-  virtual void UpdateScalarBar() = 0;
-};
-
-
-#endif //SMESH_ACTOR_H
diff --git a/src/OBJECT/SMESH_ActorDef.h b/src/OBJECT/SMESH_ActorDef.h
deleted file mode 100644 (file)
index 7ed5149..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-//  SMESH OBJECT : interactive object for SMESH visualization
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_ActorDef.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef SMESH_ACTORDEF_H
-#define SMESH_ACTORDEF_H
-
-#include "SMESH_Actor.h"
-#include "SMESH_Object.h"
-
-#include <vtkSmartPointer.h>
-
-template <class T>
-class TVTKSmartPtr: public vtkSmartPointer<T>
-{
-public:
-  TVTKSmartPtr() {}
-  TVTKSmartPtr(T* r, bool theIsOwner = false): vtkSmartPointer<T>(r) { 
-    if(r && theIsOwner) 
-      r->Delete();
-  }
-  TVTKSmartPtr& operator()(T* r, bool theIsOwner = false){ 
-    vtkSmartPointer<T>::operator=(r); 
-    if(r && theIsOwner) 
-      r->Delete();
-    return *this;
-  }
-  TVTKSmartPtr& operator=(T* r){ vtkSmartPointer<T>::operator=(r); return *this;}
-  T* Get() const { return this->GetPointer();}
-};
-
-
-class vtkProperty;
-class vtkShrinkFilter;
-class vtkPolyDataMapper;
-class vtkUnstructuredGrid;
-class vtkMergeFilter;
-class vtkPolyData;
-
-class vtkMapper;
-class vtkActor2D;
-class vtkMaskPoints;
-class vtkCellCenters;
-class vtkLabeledDataMapper;
-class vtkSelectVisiblePoints;
-
-class vtkScalarBarActor;
-class vtkLookupTable;
-
-class vtkPlane;
-class vtkImplicitBoolean;
-
-class vtkTimeStamp;
-
-class SMESH_DeviceActor;
-
-
-class SMESH_ActorDef : public SMESH_Actor{
-  friend class SMESH_VisualObj;
-  friend class SMESH_Actor;
-
- public:
-  vtkTypeMacro(SMESH_ActorDef,SMESH_Actor);
-  
-  virtual void ReleaseGraphicsResources(vtkWindow *renWin);
-  virtual int RenderOpaqueGeometry(vtkViewport *viewport);
-  virtual int RenderTranslucentGeometry(vtkViewport *viewport);
-  virtual void Render(vtkRenderer *ren);
-
-  virtual void AddToRender(vtkRenderer* theRenderer); 
-  virtual void RemoveFromRender(vtkRenderer* theRenderer);
-
-  virtual bool hasHighlight() { return true; }  
-  virtual void highlight(bool theHighlight);  
-  virtual void SetPreSelected(bool thePreselect = false);
-
-  virtual bool IsInfinitive();  
-
-  virtual void SetOpacity(float theValue);
-  virtual float GetOpacity();
-
-  virtual void SetSufaceColor(float r,float g,float b);
-  virtual void GetSufaceColor(float& r,float& g,float& b);
-
-  virtual void SetBackSufaceColor(float r,float g,float b);
-  virtual void GetBackSufaceColor(float& r,float& g,float& b);
-
-  virtual void SetEdgeColor(float r,float g,float b);
-  virtual void GetEdgeColor(float& r,float& g,float& b);
-
-  virtual void SetNodeColor(float r,float g,float b);
-  virtual void GetNodeColor(float& r,float& g,float& b);
-
-  virtual void SetHighlightColor(float r,float g,float b);
-  virtual void GetHighlightColor(float& r,float& g,float& b);
-
-  virtual void SetPreHighlightColor(float r,float g,float b);
-  virtual void GetPreHighlightColor(float& r,float& g,float& b);
-  virtual float GetLineWidth();
-  virtual void SetLineWidth(float theVal);
-
-  virtual void SetNodeSize(float size) ;
-  virtual float GetNodeSize() ;
-
-  virtual int GetNodeObjId(int theVtkID);
-  virtual float* GetNodeCoord(int theObjID);
-
-  virtual int GetElemObjId(int theVtkID);
-  virtual vtkCell* GetElemCell(int theObjID);
-
-  virtual int GetObjDimension( const int theObjId );
-
-  virtual void SetVisibility(int theMode);
-  void SetVisibility(int theMode, bool theIsUpdateRepersentation);
-
-  virtual void SetRepresentation(int theMode);
-  
-  virtual unsigned int GetEntityMode() const { return myEntityMode;}
-  virtual void SetEntityMode(unsigned int theMode);
-
-  virtual void SetPointRepresentation(bool theIsPointsVisible);
-  virtual bool GetPointRepresentation();
-
-  virtual float* GetBounds();
-  virtual void SetTransform(VTKViewer_Transform* theTransform); 
-
-  virtual vtkUnstructuredGrid* GetUnstructuredGrid();
-  virtual vtkDataSet* GetInput();
-  virtual vtkMapper* GetMapper();
-
-  virtual float GetShrinkFactor();
-  virtual void SetShrinkFactor(float theValue);
-
-  virtual bool IsShrunkable() { return myIsShrinkable;}
-  virtual bool IsShrunk() { return myIsShrunk;}
-  virtual void SetShrink(); 
-  virtual void UnShrink(); 
-
-  virtual void SetPointsLabeled(bool theIsPointsLabeled);
-  virtual bool GetPointsLabeled(){ return myIsPointsLabeled;}
-
-  virtual void SetCellsLabeled(bool theIsCellsLabeled);
-  virtual bool GetCellsLabeled(){ return myIsCellsLabeled;}
-
-  virtual void SetControlMode(eControl theMode);
-  virtual eControl GetControlMode(){ return myControlMode;}
-
-  virtual vtkScalarBarActor* GetScalarBarActor(){ return myScalarBarActor;}
-
-  virtual void SetPlaneParam(float theDir[3], float theDist, vtkPlane* thePlane);
-  virtual void GetPlaneParam(float theDir[3], float& theDist, vtkPlane* thePlane);
-
-  virtual void RemoveAllClippingPlanes();
-  virtual vtkIdType GetNumberOfClippingPlanes();
-  virtual vtkPlane* GetClippingPlane(vtkIdType theID);
-  virtual vtkIdType AddClippingPlane(vtkPlane* thePlane); 
-
-  virtual TVisualObjPtr GetObject() { return myVisualObj;}
-
-  virtual void SetControlsPrecision( const long p ) { myControlsPrecision = p; }
-  virtual long GetControlsPrecision() const { return myControlsPrecision; }
-
-  virtual void UpdateScalarBar();
-  
- protected:
-  void SetControlMode(eControl theMode, bool theCheckEntityMode);
-  void SetImplicitFunctionUsed(bool theIsImplicitFunctionUsed);
-  bool IsImplicitFunctionUsed() const;
-
-  TVisualObjPtr myVisualObj;
-  vtkTimeStamp* myTimeStamp;
-
-  vtkScalarBarActor* myScalarBarActor;
-  vtkLookupTable* myLookupTable;
-
-  vtkProperty* mySurfaceProp;
-  vtkProperty* myBackSurfaceProp;
-  vtkProperty* myEdgeProp;
-  vtkProperty* myNodeProp;
-
-  SMESH_DeviceActor* myBaseActor;
-  SMESH_DeviceActor* myNodeActor;
-  SMESH_DeviceActor* myPickableActor;
-
-  vtkProperty* myHighlightProp;
-  vtkProperty* myPreselectProp;
-  SMESH_DeviceActor* myHighlitableActor;
-
-  eControl myControlMode;
-  SMESH_DeviceActor* my2DActor;
-  SMESH_DeviceActor* my3DActor;
-  SMESH_DeviceActor* myControlActor;
-
-  vtkProperty* my1DProp;
-  SMESH_DeviceActor* my1DActor;
-  vtkProperty* my1DExtProp;
-  SMESH_DeviceActor* my1DExtActor;
-
-  unsigned int myEntityMode;
-  unsigned int myEntityState;
-  bool myIsPointsVisible;
-
-  bool myIsShrinkable;
-  bool myIsShrunk;
-  
-  bool myIsPointsLabeled;
-  vtkUnstructuredGrid* myPointsNumDataSet;
-  vtkActor2D *myPointLabels;
-  vtkMaskPoints* myPtsMaskPoints;
-  vtkLabeledDataMapper* myPtsLabeledDataMapper;
-  vtkSelectVisiblePoints* myPtsSelectVisiblePoints;
-
-  bool myIsCellsLabeled;
-  vtkUnstructuredGrid* myCellsNumDataSet;
-  vtkActor2D *myCellsLabels;
-  vtkMaskPoints* myClsMaskPoints;
-  vtkCellCenters* myCellCenters;
-  vtkLabeledDataMapper* myClsLabeledDataMapper;
-  vtkSelectVisiblePoints* myClsSelectVisiblePoints;
-
-  vtkImplicitBoolean* myImplicitBoolean;
-  typedef TVTKSmartPtr<vtkPlane> TPlanePtr;
-  typedef std::vector<TPlanePtr> TCippingPlaneCont;
-  TCippingPlaneCont myCippingPlaneCont;
-  long myControlsPrecision;
-
-  SMESH_ActorDef();
-  ~SMESH_ActorDef();
-
-  bool Init(TVisualObjPtr theVisualObj, 
-           const char* theEntry, 
-           const char* theName,
-           int theIsClear);
-
-  void SetIsShrunkable(bool theShrunkable);
-  void UpdateHighlight();
-  void Update();
-
- private:
-  // hide the two parameter Render() method from the user and the compiler.
-  virtual void Render(vtkRenderer *, vtkMapper *) {};
-  virtual void ShallowCopy(vtkProp *prop);
-  virtual void SetMapper(vtkMapper *);
-  static SMESH_ActorDef* New();
-
-  // Not implemented.
-  SMESH_ActorDef(const SMESH_ActorDef&);  
-  void operator=(const SMESH_ActorDef&);
-};
-
-
-#endif //SMESH_ACTORDEF_H
diff --git a/src/OBJECT/SMESH_ActorUtils.cxx b/src/OBJECT/SMESH_ActorUtils.cxx
deleted file mode 100644 (file)
index feee143..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-
-#include "SMESH_ActorUtils.h"
-
-#include "SUIT_Tools.h"
-#include "SUIT_Session.h"
-#include "SUIT_ResourceMgr.h"
-
-#include "utilities.h"
-
-#include <vtkUnstructuredGrid.h>
-#include <vtkUnstructuredGridWriter.h>
-
-#ifdef _DEBUG_
-static int MYDEBUG = 1;
-#else
-static int MYDEBUG = 0;
-#endif
-
-namespace SMESH{
-
-  float GetFloat( const QString& theValue, float theDefault )
-  {
-    int pos = theValue.find( ":" );
-    float val = theDefault;
-    if( pos>=0 ) 
-    {
-      QString name = theValue.right( theValue.length()-pos-1 ),
-              sect = theValue.left( pos );
-      if( !name.isEmpty() && !sect.isEmpty() )
-       val = GetFloat( name, sect, theDefault );
-    }
-    return val;
-  }
-
-  float GetFloat( const QString& theValue, const QString& theSection, float theDefault )
-  {
-    float val = theDefault;
-    SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();
-    if( mgr )
-      val = (float) mgr->doubleValue( theValue, theSection, theDefault );
-
-    return val;
-  }
-
-  void WriteUnstructuredGrid(vtkUnstructuredGrid* theGrid, const char* theFileName){
-    vtkUnstructuredGridWriter* aWriter = vtkUnstructuredGridWriter::New();
-    aWriter->SetFileName(theFileName);
-    aWriter->SetInput(theGrid);
-    if(theGrid->GetNumberOfCells()){
-      aWriter->Write();
-    }
-    aWriter->Delete();
-  }
-
-  QColor GetColor( const QString& theSect, const QString& theName, const QColor& def )
-  {
-    QColor c = def;
-    SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();
-    if ( mgr )
-      c = mgr->colorValue( theSect, theName, def );
-    return c;
-  }
-
-  void GetColor( const QString& theSect, const QString& theName, int& r, int& g, int& b, const QColor& def )
-  {
-    QColor c = def;
-    SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();
-    if ( mgr )
-      c = mgr->colorValue( theSect, theName, def );
-
-    SUIT_Tools::rgbSet( SUIT_Tools::rgbSet( c ), r, g, b );
-  }
-
-  void GetColor( const QString& theSect, const QString& theName, float& r, float& g, float& b, const QColor& def )
-  {
-    int ir( 0 ), ig( 0 ), ib( 0 );
-    GetColor( theSect, theName, ir, ig, ib, def );
-    r = ir / 255.;
-    g = ig / 255.;
-    b = ib / 255.;
-  }
-}
diff --git a/src/OBJECT/SMESH_ActorUtils.h b/src/OBJECT/SMESH_ActorUtils.h
deleted file mode 100644 (file)
index f28e8d6..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef SMESH_ACTORUTILS_H
-#define SMESH_ACTORUTILS_H
-
-#include <qcolor.h>
-#include <qstring.h>
-
-class vtkUnstructuredGrid;
-
-namespace SMESH{
-  
-  float GetFloat( const QString& theValue, float theDefault = 0 );
-  float GetFloat( const QString& theName, const QString& theSection, float theDefault = 0 );
-
-  QColor GetColor( const QString& theSect, const QString& theName, const QColor&t = QColor() );
-  void   GetColor( const QString& theSect, const QString& theName, int&, int&, int&, const QColor&t = QColor() );
-  void   GetColor( const QString& theSect, const QString& theName, float&, float&, float&, const QColor&t = QColor() );
-
-  void WriteUnstructuredGrid(vtkUnstructuredGrid* theGrid, const char* theFileName);
-
-}
-
-#endif
diff --git a/src/OBJECT/SMESH_DeviceActor.cxx b/src/OBJECT/SMESH_DeviceActor.cxx
deleted file mode 100644 (file)
index 3548aae..0000000
+++ /dev/null
@@ -1,676 +0,0 @@
-//  SMESH OBJECT : interactive object for SMESH visualization
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_DeviceActor.cxx
-//  Author : 
-//  Module : SMESH
-//  $Header$
-
-
-#include "SMESH_DeviceActor.h"
-#include "SMESH_ExtractGeometry.h"
-#include "SMESH_ControlsDef.hxx"
-#include "SMESH_ActorUtils.h"
-
-#include <VTKViewer_Transform.h>
-#include <VTKViewer_TransformFilter.h>
-#include <VTKViewer_PassThroughFilter.h>
-#include <VTKViewer_ExtractUnstructuredGrid.h>
-
-// VTK Includes
-#include <vtkObjectFactory.h>
-#include <vtkShrinkFilter.h>
-#include <vtkShrinkPolyData.h>
-
-#include <vtkProperty.h>
-#include <vtkPolyData.h>
-#include <vtkMergeFilter.h>
-#include <vtkPolyDataMapper.h>
-#include <vtkUnstructuredGrid.h>
-
-#include <vtkScalarBarActor.h>
-#include <vtkLookupTable.h>
-#include <vtkDoubleArray.h>
-#include <vtkCellData.h>
-
-#include <vtkCell.h>
-#include <vtkIdList.h>
-#include <vtkIntArray.h>
-#include <vtkCellArray.h>
-#include <vtkUnsignedCharArray.h>
-
-#include <vtkImplicitBoolean.h>
-
-#include "utilities.h"
-
-#ifdef _DEBUG_
-static int MYDEBUG = 0;
-#else
-static int MYDEBUG = 0;
-#endif
-
-using namespace std;
-
-
-vtkStandardNewMacro(SMESH_DeviceActor);
-
-
-SMESH_DeviceActor::SMESH_DeviceActor()
-{
-  if(MYDEBUG) MESSAGE("SMESH_DeviceActor - "<<this);
-
-  myIsShrunk = false;
-  myIsShrinkable = false;
-  myRepresentation = eSurface;
-
-  myProperty = vtkProperty::New();
-  myMapper = vtkPolyDataMapper::New();
-
-  vtkMapper::GetResolveCoincidentTopologyPolygonOffsetParameters(myPolygonOffsetFactor,
-                                                                myPolygonOffsetUnits);
-
-  myMapper->UseLookupTableScalarRangeOn();
-  myMapper->SetColorModeToMapScalars();
-
-  myShrinkFilter = vtkShrinkFilter::New();
-
-  myStoreClippingMapping = false;
-
-  myExtractGeometry = SMESH_ExtractGeometry::New();
-  myExtractGeometry->SetReleaseDataFlag(true);
-  myIsImplicitFunctionUsed = false;
-
-  myExtractUnstructuredGrid = VTKViewer_ExtractUnstructuredGrid::New();
-    
-  myMergeFilter = vtkMergeFilter::New();
-
-  myGeomFilter = VTKViewer_GeometryFilter::New();
-
-  myTransformFilter = VTKViewer_TransformFilter::New();
-
-  for(int i = 0; i < 6; i++)
-    myPassFilter.push_back(VTKViewer_PassThroughFilter::New());
-}
-
-
-SMESH_DeviceActor::~SMESH_DeviceActor(){
-  if(MYDEBUG) MESSAGE("~SMESH_DeviceActor - "<<this);
-
-  myProperty->Delete();
-
-  myMapper->Delete();
-
-  myShrinkFilter->Delete();
-
-  myExtractUnstructuredGrid->Delete();
-
-  myMergeFilter->Delete();
-
-  myGeomFilter->Delete();
-
-  myExtractGeometry->Delete();
-
-  myTransformFilter->Delete();
-
-  for(int i = 0, iEnd = myPassFilter.size(); i < iEnd; i++){
-    myPassFilter[i]->Delete();
-  }
-}
-
-
-void
-SMESH_DeviceActor::
-SetStoreGemetryMapping(bool theStoreMapping)
-{
-  myGeomFilter->SetStoreMapping(theStoreMapping);
-  SetStoreClippingMapping(theStoreMapping);
-}
-
-
-void
-SMESH_DeviceActor::
-SetStoreClippingMapping(bool theStoreMapping)
-{
-  myStoreClippingMapping = theStoreMapping;
-  myExtractGeometry->SetStoreMapping(theStoreMapping && myIsImplicitFunctionUsed);
-  SetStoreIDMapping(theStoreMapping);
-}
-
-
-void
-SMESH_DeviceActor::
-SetStoreIDMapping(bool theStoreMapping)
-{
-  myExtractUnstructuredGrid->SetStoreMapping(theStoreMapping);
-}
-
-
-void SMESH_DeviceActor::Init(TVisualObjPtr theVisualObj, 
-                            vtkImplicitBoolean* theImplicitBoolean)
-{
-  myVisualObj = theVisualObj;
-  myExtractGeometry->SetImplicitFunction(theImplicitBoolean);
-  SetUnstructuredGrid(myVisualObj->GetUnstructuredGrid());
-}
-
-
-void
-SMESH_DeviceActor::
-SetImplicitFunctionUsed(bool theIsImplicitFunctionUsed)
-{
-  int anId = 0;
-  if(theIsImplicitFunctionUsed)
-    myPassFilter[ anId ]->SetInput( myExtractGeometry->GetOutput() );
-  else
-    myPassFilter[ anId ]->SetInput( myMergeFilter->GetOutput() );
-    
-  myIsImplicitFunctionUsed = theIsImplicitFunctionUsed;
-  SetStoreClippingMapping(myStoreClippingMapping);
-}
-
-
-void SMESH_DeviceActor::SetUnstructuredGrid(vtkUnstructuredGrid* theGrid){
-  if(theGrid){
-    //myIsShrinkable = theGrid->GetNumberOfCells() > 10;
-    myIsShrinkable = true;
-
-    myExtractUnstructuredGrid->SetInput(theGrid);
-
-    myMergeFilter->SetGeometry(myExtractUnstructuredGrid->GetOutput());
-
-    myExtractGeometry->SetInput(myMergeFilter->GetOutput());
-
-    int anId = 0;
-    SetImplicitFunctionUsed(myIsImplicitFunctionUsed);
-    myPassFilter[ anId + 1]->SetInput( myPassFilter[ anId ]->GetOutput() );
-    
-    anId++; // 1
-    myGeomFilter->SetInput( myPassFilter[ anId ]->GetOutput() );
-
-    anId++; // 2
-    myPassFilter[ anId ]->SetInput( myGeomFilter->GetOutput() ); 
-    myPassFilter[ anId + 1 ]->SetInput( myPassFilter[ anId ]->GetOutput() );
-
-    anId++; // 3
-    myTransformFilter->SetInput( myPassFilter[ anId ]->GetPolyDataOutput() );
-    myTransformFilter->SetInput( myPassFilter[ anId ]->GetPolyDataOutput() );
-
-    anId++; // 4
-    myPassFilter[ anId ]->SetInput( myTransformFilter->GetOutput() );
-    myPassFilter[ anId + 1 ]->SetInput( myPassFilter[ anId ]->GetOutput() );
-    myPassFilter[ anId ]->SetInput( myTransformFilter->GetOutput() );
-    myPassFilter[ anId + 1 ]->SetInput( myPassFilter[ anId ]->GetOutput() );
-
-    anId++; // 5
-    myMapper->SetInput( myPassFilter[ anId ]->GetPolyDataOutput() );
-    myMapper->SetInput( myPassFilter[ anId ]->GetPolyDataOutput() );
-
-    vtkLODActor::SetMapper( myMapper );
-    Modified();
-  }
-}
-
-
-VTKViewer_ExtractUnstructuredGrid* SMESH_DeviceActor::GetExtractUnstructuredGrid(){
-  return myExtractUnstructuredGrid;
-}
-
-
-vtkUnstructuredGrid* SMESH_DeviceActor::GetUnstructuredGrid(){
-  myExtractUnstructuredGrid->Update();
-  return myExtractUnstructuredGrid->GetOutput();
-}
-
-
-void SMESH_DeviceActor::SetControlMode(SMESH::Controls::FunctorPtr theFunctor,
-                                      vtkScalarBarActor* theScalarBarActor,
-                                      vtkLookupTable* theLookupTable)
-{
-  bool anIsInitialized = theFunctor;
-  if(anIsInitialized){
-    vtkUnstructuredGrid* aDataSet = vtkUnstructuredGrid::New();
-
-    SetStoreIDMapping(true);
-    myExtractUnstructuredGrid->Update();
-    vtkUnstructuredGrid* aGrid = myExtractUnstructuredGrid->GetOutput();
-
-    aDataSet->ShallowCopy(aGrid);
-    
-    vtkDoubleArray *aScalars = vtkDoubleArray::New();
-    vtkIdType aNbCells = aGrid->GetNumberOfCells();
-    aScalars->SetNumberOfComponents(1);
-    aScalars->SetNumberOfTuples(aNbCells);
-    
-    myVisualObj->UpdateFunctor(theFunctor);
-
-    using namespace SMESH::Controls;
-    if(NumericalFunctor* aNumericalFunctor = dynamic_cast<NumericalFunctor*>(theFunctor.get())){
-      for(vtkIdType i = 0; i < aNbCells; i++){
-       vtkIdType anId = myExtractUnstructuredGrid->GetInputId(i);
-       vtkIdType anObjId = myVisualObj->GetElemObjId(anId);
-       double aValue = aNumericalFunctor->GetValue(anObjId);
-       aScalars->SetValue(i,aValue);
-      }
-    }else if(Predicate* aPredicate = dynamic_cast<Predicate*>(theFunctor.get())){
-      for(vtkIdType i = 0; i < aNbCells; i++){
-       vtkIdType anId = myExtractUnstructuredGrid->GetInputId(i);
-       vtkIdType anObjId = myVisualObj->GetElemObjId(anId);
-       bool aValue = aPredicate->IsSatisfy(anObjId);
-       aScalars->SetValue(i,aValue);
-      }
-    }
-
-    aDataSet->GetCellData()->SetScalars(aScalars);
-    aScalars->Delete();
-       
-    theLookupTable->SetRange(aScalars->GetRange());
-    theLookupTable->Build();
-    
-    myMergeFilter->SetScalars(aDataSet);
-    aDataSet->Delete();
-  }
-  GetMapper()->SetScalarVisibility(anIsInitialized);
-  theScalarBarActor->SetVisibility(anIsInitialized);
-}
-
-void SMESH_DeviceActor::SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor,
-                                         vtkScalarBarActor* theScalarBarActor,
-                                         vtkLookupTable* theLookupTable)
-{
-  bool anIsInitialized = theFunctor;
-  myExtractUnstructuredGrid->ClearRegisteredCells();
-  myExtractUnstructuredGrid->ClearRegisteredCellsWithType();
-  myExtractUnstructuredGrid->SetModeOfChanging(VTKViewer_ExtractUnstructuredGrid::ePassAll);
-  myVisualObj->UpdateFunctor(theFunctor);
-
-  using namespace SMESH::Controls;
-  if (anIsInitialized){
-    if (Length2D* aLength2D = dynamic_cast<Length2D*>(theFunctor.get())){
-      SMESH::Controls::Length2D::TValues aValues;
-
-      aLength2D->GetValues(aValues);
-      vtkUnstructuredGrid* aDataSet = vtkUnstructuredGrid::New();
-      vtkUnstructuredGrid* aGrid = myVisualObj->GetUnstructuredGrid();
-
-      aDataSet->SetPoints(aGrid->GetPoints());
-      
-      vtkIdType aNbCells = aValues.size();
-      
-      vtkDoubleArray *aScalars = vtkDoubleArray::New();
-      aScalars->SetNumberOfComponents(1);
-      aScalars->SetNumberOfTuples(aNbCells);
-
-      vtkIdType aCellsSize = 3*aNbCells;
-      vtkCellArray* aConnectivity = vtkCellArray::New();
-      aConnectivity->Allocate( aCellsSize, 0 );
-      
-      vtkUnsignedCharArray* aCellTypesArray = vtkUnsignedCharArray::New();
-      aCellTypesArray->SetNumberOfComponents( 1 );
-      aCellTypesArray->Allocate( aNbCells * aCellTypesArray->GetNumberOfComponents() );
-      
-      vtkIdList *anIdList = vtkIdList::New();
-      anIdList->SetNumberOfIds(2);
-      
-      Length2D::TValues::const_iterator anIter = aValues.begin();
-      for(vtkIdType aVtkId = 0; anIter != aValues.end(); anIter++,aVtkId++){
-       const Length2D::Value& aValue = *anIter;
-       int aNode[2] = {
-         myVisualObj->GetNodeVTKId(aValue.myPntId[0]),
-         myVisualObj->GetNodeVTKId(aValue.myPntId[1])
-       };
-       if(aNode[0] >= 0 && aNode[1] >= 0){
-         anIdList->SetId( 0, aNode[0] );
-         anIdList->SetId( 1, aNode[1] );
-         aConnectivity->InsertNextCell( anIdList );
-         aCellTypesArray->InsertNextValue( VTK_LINE );
-         aScalars->SetValue(aVtkId,aValue.myLength);
-       }
-      }
-      
-      vtkIntArray* aCellLocationsArray = vtkIntArray::New();
-      aCellLocationsArray->SetNumberOfComponents( 1 );
-      aCellLocationsArray->SetNumberOfTuples( aNbCells );
-      
-      aConnectivity->InitTraversal();
-      for( vtkIdType idType = 0, *pts, npts; aConnectivity->GetNextCell( npts, pts ); idType++ )
-       aCellLocationsArray->SetValue( idType, aConnectivity->GetTraversalLocation( npts ) );
-      
-      aDataSet->SetCells( aCellTypesArray, aCellLocationsArray,aConnectivity );
-      SetUnstructuredGrid(aDataSet);
-
-      aDataSet->GetCellData()->SetScalars(aScalars);
-      aScalars->Delete();
-      
-      theLookupTable->SetRange(aScalars->GetRange());
-      theLookupTable->Build();
-      
-      myMergeFilter->SetScalars(aDataSet);
-      aDataSet->Delete();
-    }
-    else if (MultiConnection2D* aMultiConnection2D = dynamic_cast<MultiConnection2D*>(theFunctor.get())){
-      SMESH::Controls::MultiConnection2D::MValues aValues;
-
-      aMultiConnection2D->GetValues(aValues);
-      vtkUnstructuredGrid* aDataSet = vtkUnstructuredGrid::New();
-      vtkUnstructuredGrid* aGrid = myVisualObj->GetUnstructuredGrid();
-      aDataSet->SetPoints(aGrid->GetPoints());
-      
-      vtkIdType aNbCells = aValues.size();
-      vtkDoubleArray *aScalars = vtkDoubleArray::New();
-      aScalars->SetNumberOfComponents(1);
-      aScalars->SetNumberOfTuples(aNbCells);
-
-      vtkIdType aCellsSize = 3*aNbCells;
-      vtkCellArray* aConnectivity = vtkCellArray::New();
-      aConnectivity->Allocate( aCellsSize, 0 );
-      
-      vtkUnsignedCharArray* aCellTypesArray = vtkUnsignedCharArray::New();
-      aCellTypesArray->SetNumberOfComponents( 1 );
-      aCellTypesArray->Allocate( aNbCells * aCellTypesArray->GetNumberOfComponents() );
-      
-      vtkIdList *anIdList = vtkIdList::New();
-      anIdList->SetNumberOfIds(2);
-      
-      MultiConnection2D::MValues::const_iterator anIter = aValues.begin();
-      for(vtkIdType aVtkId = 0; anIter != aValues.end(); anIter++,aVtkId++){
-       const MultiConnection2D::Value& aValue = (*anIter).first;
-       int aNode[2] = {
-         myVisualObj->GetNodeVTKId(aValue.myPntId[0]),
-         myVisualObj->GetNodeVTKId(aValue.myPntId[1])
-       };
-       if(aNode[0] >= 0 && aNode[1] >= 0){
-         anIdList->SetId( 0, aNode[0] );
-         anIdList->SetId( 1, aNode[1] );
-         aConnectivity->InsertNextCell( anIdList );
-         aCellTypesArray->InsertNextValue( VTK_LINE );
-         aScalars->SetValue(aVtkId,(*anIter).second);
-       }
-      }
-      
-      vtkIntArray* aCellLocationsArray = vtkIntArray::New();
-      aCellLocationsArray->SetNumberOfComponents( 1 );
-      aCellLocationsArray->SetNumberOfTuples( aNbCells );
-      
-      aConnectivity->InitTraversal();
-      for( vtkIdType idType = 0, *pts, npts; aConnectivity->GetNextCell( npts, pts ); idType++ )
-       aCellLocationsArray->SetValue( idType, aConnectivity->GetTraversalLocation( npts ) );
-      
-      aDataSet->SetCells( aCellTypesArray, aCellLocationsArray,aConnectivity );
-      SetUnstructuredGrid(aDataSet);
-
-      aDataSet->GetCellData()->SetScalars(aScalars);
-      aScalars->Delete();
-      
-      theLookupTable->SetRange(aScalars->GetRange());
-      theLookupTable->Build();
-      
-      myMergeFilter->SetScalars(aDataSet);
-      aDataSet->Delete();
-    }
-  }
-  GetMapper()->SetScalarVisibility(anIsInitialized);
-  theScalarBarActor->SetVisibility(anIsInitialized);
-}
-
-void SMESH_DeviceActor::SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor)
-{
-  myExtractUnstructuredGrid->ClearRegisteredCells();
-  myExtractUnstructuredGrid->ClearRegisteredCellsWithType();
-  myExtractUnstructuredGrid->SetModeOfChanging(VTKViewer_ExtractUnstructuredGrid::ePassAll);
-  myVisualObj->UpdateFunctor(theFunctor);
-
-  using namespace SMESH::Controls;
-  if(FreeBorders* aFreeBorders = dynamic_cast<FreeBorders*>(theFunctor.get())){
-    myExtractUnstructuredGrid->SetModeOfChanging(VTKViewer_ExtractUnstructuredGrid::eAdding);
-    vtkUnstructuredGrid* aGrid = myVisualObj->GetUnstructuredGrid();
-    vtkIdType aNbCells = aGrid->GetNumberOfCells();
-    for( vtkIdType i = 0; i < aNbCells; i++ ){
-      vtkIdType anObjId = myVisualObj->GetElemObjId(i);
-      if(aFreeBorders->IsSatisfy(anObjId))
-       myExtractUnstructuredGrid->RegisterCell(i);
-    }
-    if(!myExtractUnstructuredGrid->IsCellsRegistered())
-      myExtractUnstructuredGrid->RegisterCell(-1);
-    SetUnstructuredGrid(myVisualObj->GetUnstructuredGrid());
-  }else if(FreeEdges* aFreeEdges = dynamic_cast<FreeEdges*>(theFunctor.get())){
-    SMESH::Controls::FreeEdges::TBorders aBorders;
-    aFreeEdges->GetBoreders(aBorders);
-    vtkUnstructuredGrid* aDataSet = vtkUnstructuredGrid::New();
-    vtkUnstructuredGrid* aGrid = myVisualObj->GetUnstructuredGrid();
-    aDataSet->SetPoints(aGrid->GetPoints());
-
-    vtkIdType aNbCells = aBorders.size();
-    vtkIdType aCellsSize = 3*aNbCells;
-    vtkCellArray* aConnectivity = vtkCellArray::New();
-    aConnectivity->Allocate( aCellsSize, 0 );
-    
-    vtkUnsignedCharArray* aCellTypesArray = vtkUnsignedCharArray::New();
-    aCellTypesArray->SetNumberOfComponents( 1 );
-    aCellTypesArray->Allocate( aNbCells * aCellTypesArray->GetNumberOfComponents() );
-    
-    vtkIdList *anIdList = vtkIdList::New();
-    anIdList->SetNumberOfIds(2);
-    
-    FreeEdges::TBorders::const_iterator anIter = aBorders.begin();
-    for(; anIter != aBorders.end(); anIter++){
-      const FreeEdges::Border& aBorder = *anIter;
-      int aNode[2] = {
-       myVisualObj->GetNodeVTKId(aBorder.myPntId[0]),
-       myVisualObj->GetNodeVTKId(aBorder.myPntId[1])
-      };
-      //cout<<"aNode = "<<aBorder.myPntId[0]<<"; "<<aBorder.myPntId[1]<<endl;
-      if(aNode[0] >= 0 && aNode[1] >= 0){
-       anIdList->SetId( 0, aNode[0] );
-       anIdList->SetId( 1, aNode[1] );
-       aConnectivity->InsertNextCell( anIdList );
-       aCellTypesArray->InsertNextValue( VTK_LINE );
-      }
-    }
-    
-    vtkIntArray* aCellLocationsArray = vtkIntArray::New();
-    aCellLocationsArray->SetNumberOfComponents( 1 );
-    aCellLocationsArray->SetNumberOfTuples( aNbCells );
-    
-    aConnectivity->InitTraversal();
-    for( vtkIdType idType = 0, *pts, npts; aConnectivity->GetNextCell( npts, pts ); idType++ )
-      aCellLocationsArray->SetValue( idType, aConnectivity->GetTraversalLocation( npts ) );
-    
-    aDataSet->SetCells( aCellTypesArray, aCellLocationsArray,aConnectivity );
-
-    SetUnstructuredGrid(aDataSet);
-    aDataSet->Delete();
-  }
-}
-
-
-
-
-unsigned long int SMESH_DeviceActor::GetMTime(){
-  unsigned long mTime = this->Superclass::GetMTime();
-  mTime = max(mTime,myExtractGeometry->GetMTime());
-  mTime = max(mTime,myExtractUnstructuredGrid->GetMTime());
-  mTime = max(mTime,myMergeFilter->GetMTime());
-  mTime = max(mTime,myGeomFilter->GetMTime());
-  mTime = max(mTime,myTransformFilter->GetMTime());
-  return mTime;
-}
-
-
-void SMESH_DeviceActor::SetTransform(VTKViewer_Transform* theTransform){
-  myTransformFilter->SetTransform(theTransform);
-}
-
-
-void SMESH_DeviceActor::SetShrink() {
-  if ( !myIsShrinkable ) return;
-  if ( vtkDataSet* aDataSet = myPassFilter[ 0 ]->GetOutput() )
-  {
-    myShrinkFilter->SetInput( aDataSet );
-    myPassFilter[ 1 ]->SetInput( myShrinkFilter->GetOutput() );
-    myIsShrunk = true;
-  }
-}
-
-void SMESH_DeviceActor::UnShrink() {
-  if ( !myIsShrunk ) return;
-  if ( vtkDataSet* aDataSet = myPassFilter[ 0 ]->GetOutput() )
-  {    
-    myPassFilter[ 1 ]->SetInput( aDataSet );
-    myPassFilter[ 1 ]->Modified();
-    myIsShrunk = false;
-    Modified();
-  }
-}
-
-
-void SMESH_DeviceActor::SetRepresentation(EReperesent theMode){
-  switch(theMode){
-  case ePoint:
-    myGeomFilter->SetInside(true);
-    GetProperty()->SetRepresentation(0);
-    break;
-  case eInsideframe:
-    myGeomFilter->SetInside(true);
-    GetProperty()->SetRepresentation(1);
-    break;
-  default :
-    myGeomFilter->SetInside(false);
-    GetProperty()->SetRepresentation(theMode);
-  }
-  myRepresentation = theMode;
-  GetProperty()->Modified();
-  myMapper->Modified();
-  Modified();
-}
-
-
-void SMESH_DeviceActor::SetVisibility(int theMode){
-  if(!myExtractUnstructuredGrid->GetInput() || 
-     GetUnstructuredGrid()->GetNumberOfCells())
-  {
-    vtkLODActor::SetVisibility(theMode);
-  }else{
-    vtkLODActor::SetVisibility(false);
-  }
-}
-
-
-int SMESH_DeviceActor::GetVisibility(){
-  if(!GetUnstructuredGrid()->GetNumberOfCells()){
-    vtkLODActor::SetVisibility(false);
-  }
-  return vtkLODActor::GetVisibility();
-}
-
-
-int SMESH_DeviceActor::GetNodeObjId(int theVtkID){
-  vtkIdType anID = theVtkID;
-
-  if(IsImplicitFunctionUsed())
-    anID = myExtractGeometry->GetNodeObjId(theVtkID);
-
-  vtkIdType aRetID = myVisualObj->GetNodeObjId(anID);
-  if(MYDEBUG) MESSAGE("GetNodeObjId - theVtkID = "<<theVtkID<<"; anID = "<<anID<<"; aRetID = "<<aRetID);
-  return aRetID;
-}
-
-float* SMESH_DeviceActor::GetNodeCoord(int theObjID){
-  vtkDataSet* aDataSet = myMergeFilter->GetOutput();
-  vtkIdType anID = myVisualObj->GetNodeVTKId(theObjID);
-  float* aCoord = aDataSet->GetPoint(anID);
-  if(MYDEBUG) MESSAGE("GetNodeCoord - theObjID = "<<theObjID<<"; anID = "<<anID);
-  return aCoord;
-}
-
-
-int SMESH_DeviceActor::GetElemObjId(int theVtkID){
-  vtkIdType anId = myGeomFilter->GetElemObjId(theVtkID);
-  if(anId < 0) 
-    return -1;
-
-  vtkIdType anId2 = anId;
-  if(IsImplicitFunctionUsed())
-    anId2 = myExtractGeometry->GetElemObjId(anId);
-  if(anId2 < 0) 
-    return -1;
-
-  vtkIdType anId3 = myExtractUnstructuredGrid->GetInputId(anId2);
-  if(anId3 < 0) 
-    return -1;
-
-  vtkIdType aRetID = myVisualObj->GetElemObjId(anId3);
-  if(MYDEBUG) 
-     MESSAGE("GetElemObjId - theVtkID = "<<theVtkID<<"; anId2 = "<<anId2<<"; anId3 = "<<anId3<<"; aRetID = "<<aRetID);
-  return aRetID;
-}
-
-vtkCell* SMESH_DeviceActor::GetElemCell(int theObjID){
-  vtkDataSet* aDataSet = myVisualObj->GetUnstructuredGrid();
-  vtkIdType aGridID = myVisualObj->GetElemVTKId(theObjID);
-  vtkCell* aCell = aDataSet->GetCell(aGridID);
-  if(MYDEBUG) 
-    MESSAGE("GetElemCell - theObjID = "<<theObjID<<"; aGridID = "<<aGridID);
-  return aCell;
-}
-
-
-float SMESH_DeviceActor::GetShrinkFactor(){
-  return myShrinkFilter->GetShrinkFactor();
-}
-
-void SMESH_DeviceActor::SetShrinkFactor(float theValue){
-  theValue = theValue > 0.1? theValue: 0.8;
-  myShrinkFilter->SetShrinkFactor(theValue);
-  Modified();
-}
-
-
-void SMESH_DeviceActor::SetHighlited(bool theIsHighlited){
-  myIsHighlited = theIsHighlited;
-  Modified();
-}
-
-void SMESH_DeviceActor::Render(vtkRenderer *ren, vtkMapper* m){
-  int aResolveCoincidentTopology = vtkMapper::GetResolveCoincidentTopology();
-  float aStoredFactor, aStoredUnit; 
-  vtkMapper::GetResolveCoincidentTopologyPolygonOffsetParameters(aStoredFactor,aStoredUnit);
-
-  vtkMapper::SetResolveCoincidentTopologyToPolygonOffset();
-  float aFactor = myPolygonOffsetFactor, aUnits = myPolygonOffsetUnits;
-  if(myIsHighlited){
-    static float EPS = .01;
-    aUnits *= (1.0-EPS);
-  }
-  vtkMapper::SetResolveCoincidentTopologyPolygonOffsetParameters(aFactor,aUnits);
-  vtkLODActor::Render(ren,m);
-
-  vtkMapper::SetResolveCoincidentTopologyPolygonOffsetParameters(aStoredFactor,aStoredUnit);
-  vtkMapper::SetResolveCoincidentTopology(aResolveCoincidentTopology);
-}
-
-
-void SMESH_DeviceActor::SetPolygonOffsetParameters(float factor, float units){
-  myPolygonOffsetFactor = factor;
-  myPolygonOffsetUnits = units;
-}
-
diff --git a/src/OBJECT/SMESH_DeviceActor.h b/src/OBJECT/SMESH_DeviceActor.h
deleted file mode 100644 (file)
index 88da39f..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-//  SMESH OBJECT : interactive object for SMESH visualization
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_DeviceActor.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef SMESH_DEVICE_ACTOR_H
-#define SMESH_DEVICE_ACTOR_H
-
-#include <VTKViewer_GeometryFilter.h>
-#include "SMESH_Controls.hxx"
-#include "SMESH_Object.h"
-
-#include <vtkLODActor.h>
-#include <vtkSmartPointer.h>
-
-class vtkCell;
-class vtkProperty;
-class vtkMergeFilter;
-class vtkShrinkFilter;
-class vtkPolyDataMapper;
-class vtkUnstructuredGrid;
-class vtkScalarBarActor;
-class vtkLookupTable;
-class vtkImplicitBoolean;
-
-class VTKViewer_Transform;
-class VTKViewer_TransformFilter;
-class VTKViewer_PassThroughFilter;
-class VTKViewer_ExtractUnstructuredGrid;
-
-class SMESH_ExtractGeometry;
-
-
-class SMESH_DeviceActor: public vtkLODActor{
-  friend class SMESH_ActorDef;
-
- public:
-  vtkTypeMacro(SMESH_DeviceActor,vtkLODActor);
-  static SMESH_DeviceActor* New();
-
-  void SetStoreClippingMapping(bool theStoreMapping);
-  void SetStoreGemetryMapping(bool theStoreMapping);
-  void SetStoreIDMapping(bool theStoreMapping);
-
-  virtual int GetNodeObjId(int theVtkID);
-  virtual float* GetNodeCoord(int theObjID);
-
-  virtual int GetElemObjId(int theVtkID);
-  virtual vtkCell* GetElemCell(int theObjID);
-
-  virtual void SetTransform(VTKViewer_Transform* theTransform); 
-  virtual unsigned long int GetMTime();
-
-  float GetShrinkFactor();
-  void  SetShrinkFactor(float value);
-
-  bool IsShrunkable() { return myIsShrinkable;}
-  bool IsShrunk() { return myIsShrunk;}
-  void SetShrink(); 
-  void UnShrink(); 
-
-  enum EReperesent { ePoint, eWireframe, eSurface, eInsideframe};
-  EReperesent GetRepresentation(){ return myRepresentation;}
-  void SetRepresentation(EReperesent theMode);
-
-  virtual void SetVisibility(int theMode);
-  virtual int GetVisibility();
-
-  VTKViewer_ExtractUnstructuredGrid* GetExtractUnstructuredGrid();
-  vtkUnstructuredGrid* GetUnstructuredGrid();
-
-  void SetControlMode(SMESH::Controls::FunctorPtr theFunctor,
-                     vtkScalarBarActor* theScalarBarActor,
-                     vtkLookupTable* theLookupTable);
-  void SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor,
-                        vtkScalarBarActor* theScalarBarActor,
-                        vtkLookupTable* theLookupTable);
-  void SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor);
-
-  bool IsHighlited() { return myIsHighlited;}
-  void SetHighlited(bool theIsHighlited);
-
-  virtual void Render(vtkRenderer *, vtkMapper *);
-
-  void SetImplicitFunctionUsed(bool theIsImplicitFunctionUsed);
-  bool IsImplicitFunctionUsed() const{ return myIsImplicitFunctionUsed;}
-
- protected:
-  void Init(TVisualObjPtr theVisualObj, vtkImplicitBoolean* theImplicitBoolean);
-  void SetUnstructuredGrid(vtkUnstructuredGrid* theGrid);
-
-  vtkPolyDataMapper *myMapper;
-  TVisualObjPtr myVisualObj;
-
-  vtkProperty *myProperty;
-  EReperesent myRepresentation;
-
-  SMESH_ExtractGeometry* myExtractGeometry;
-  bool myIsImplicitFunctionUsed;
-
-  vtkMergeFilter* myMergeFilter;
-  VTKViewer_ExtractUnstructuredGrid* myExtractUnstructuredGrid;
-
-  bool myStoreClippingMapping;
-  VTKViewer_GeometryFilter *myGeomFilter;
-  VTKViewer_TransformFilter *myTransformFilter;
-  std::vector<VTKViewer_PassThroughFilter*> myPassFilter;
-
-  vtkShrinkFilter* myShrinkFilter;
-  bool myIsShrinkable;
-  bool myIsShrunk;
-  
-  bool myIsHighlited;
-
-  float myPolygonOffsetFactor;
-  float myPolygonOffsetUnits;
-
-  void SetPolygonOffsetParameters(float factor, float units);
-  void GetPolygonOffsetParameters(float& factor, float& units){
-    factor = myPolygonOffsetFactor;
-    units = myPolygonOffsetUnits;
-  }
-
-  SMESH_DeviceActor();
-  ~SMESH_DeviceActor();
-  SMESH_DeviceActor(const SMESH_DeviceActor&);
-  void operator=(const SMESH_DeviceActor&);
-
-};
-
-
-#endif //SMESH_DEVICE_ACTOR_H
diff --git a/src/OBJECT/SMESH_ExtractGeometry.cxx b/src/OBJECT/SMESH_ExtractGeometry.cxx
deleted file mode 100644 (file)
index 84812a1..0000000
+++ /dev/null
@@ -1,254 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-
-#include "SMESH_ExtractGeometry.h"
-
-#include "vtkCell.h"
-#include "vtkCellData.h"
-#include "vtkFloatArray.h"
-#include "vtkIdList.h"
-#include "vtkImplicitFunction.h"
-#include "vtkObjectFactory.h"
-#include "vtkPointData.h"
-#include "vtkUnstructuredGrid.h"
-
-using namespace std;
-
-#ifdef _DEBUG_
-static int MYDEBUG = 0;
-#else
-static int MYDEBUG = 0;
-#endif
-
-#if defined __GNUC__
-  #if __GNUC__ == 2
-    #define __GNUC_2__
-  #endif
-#endif
-
-
-vtkStandardNewMacro(SMESH_ExtractGeometry);
-
-
-SMESH_ExtractGeometry::SMESH_ExtractGeometry()
-{}
-
-
-SMESH_ExtractGeometry::~SMESH_ExtractGeometry(){}
-
-
-vtkIdType SMESH_ExtractGeometry::GetElemObjId(int theVtkID){
-  if(myElemVTK2ObjIds.empty() || theVtkID > myElemVTK2ObjIds.size()) return -1;
-#if defined __GNUC_2__
-  return myElemVTK2ObjIds[theVtkID];
-#else
-  return myElemVTK2ObjIds.at(theVtkID);
-#endif
-}
-
-
-vtkIdType SMESH_ExtractGeometry::GetNodeObjId(int theVtkID){
-  if(myNodeVTK2ObjIds.empty() || theVtkID > myNodeVTK2ObjIds.size()) return -1;
-#if defined __GNUC_2__
-  return myNodeVTK2ObjIds[theVtkID];
-#else
-  return myNodeVTK2ObjIds.at(theVtkID);
-#endif
-}
-
-
-void SMESH_ExtractGeometry::Execute()
-{
-  vtkIdType ptId, numPts, numCells, i, cellId, newCellId, newId, *pointMap;
-  vtkIdList *cellPts;
-  vtkCell *cell;
-  int numCellPts;
-  float *x;
-  float multiplier;
-  vtkPoints *newPts;
-  vtkIdList *newCellPts;
-  vtkDataSet *input = this->GetInput();
-  vtkPointData *pd = input->GetPointData();
-  vtkCellData *cd = input->GetCellData();
-  vtkUnstructuredGrid *output = this->GetOutput();
-  vtkPointData *outputPD = output->GetPointData();
-  vtkCellData *outputCD = output->GetCellData();
-  int npts;
-  numCells = input->GetNumberOfCells();
-  numPts = input->GetNumberOfPoints();
-  
-  vtkDebugMacro(<< "Extracting geometry");
-
-  if ( ! this->ImplicitFunction )
-    {
-    vtkErrorMacro(<<"No implicit function specified");
-    return;
-    }
-
-  newCellPts = vtkIdList::New();
-  newCellPts->Allocate(VTK_CELL_SIZE);
-
-  if ( this->ExtractInside )
-    {
-    multiplier = 1.0;
-    }
-  else 
-    {
-    multiplier = -1.0;
-    }
-
-  // Loop over all points determining whether they are inside the
-  // implicit function. Copy the points and point data if they are.
-  //
-  pointMap = new vtkIdType[numPts]; // maps old point ids into new
-  for (i=0; i < numPts; i++)
-    {
-    pointMap[i] = -1;
-    }
-
-  output->Allocate(numCells/4); //allocate storage for geometry/topology
-  newPts = vtkPoints::New();
-  newPts->Allocate(numPts/4,numPts);
-  outputPD->CopyAllocate(pd);
-  outputCD->CopyAllocate(cd);
-  vtkFloatArray *newScalars = NULL;
-  
-  if(myStoreMapping){
-    myElemVTK2ObjIds.clear();
-    myElemVTK2ObjIds.reserve(numCells);
-    myNodeVTK2ObjIds.clear();
-    myNodeVTK2ObjIds.reserve(numPts);
-  }
-
-  if ( ! this->ExtractBoundaryCells )
-    {
-    for ( ptId=0; ptId < numPts; ptId++ )
-      {
-      x = input->GetPoint(ptId);
-      if ( (this->ImplicitFunction->FunctionValue(x)*multiplier) < 0.0 )
-        {
-        newId = newPts->InsertNextPoint(x);
-        pointMap[ptId] = newId;
-       myNodeVTK2ObjIds.push_back(ptId);
-        outputPD->CopyData(pd,ptId,newId);
-        }
-      }
-    }
-  else
-    {
-    // To extract boundary cells, we have to create supplemental information
-    if ( this->ExtractBoundaryCells )
-      {
-      float val;
-      newScalars = vtkFloatArray::New();
-      newScalars->SetNumberOfValues(numPts);
-
-      for (ptId=0; ptId < numPts; ptId++ )
-        {
-        x = input->GetPoint(ptId);
-        val = this->ImplicitFunction->FunctionValue(x) * multiplier;
-        newScalars->SetValue(ptId, val);
-        if ( val < 0.0 )
-          {
-          newId = newPts->InsertNextPoint(x);
-          pointMap[ptId] = newId;
-         myNodeVTK2ObjIds.push_back(ptId);
-          outputPD->CopyData(pd,ptId,newId);
-          }
-        }
-      }
-    }
-
-  // Now loop over all cells to see whether they are inside implicit
-  // function (or on boundary if ExtractBoundaryCells is on).
-  //
-  for (cellId=0; cellId < numCells; cellId++)
-    {
-    cell = input->GetCell(cellId);
-    cellPts = cell->GetPointIds();
-    numCellPts = cell->GetNumberOfPoints();
-
-    newCellPts->Reset();
-    if ( ! this->ExtractBoundaryCells ) //requires less work
-      {
-      for ( npts=0, i=0; i < numCellPts; i++, npts++)
-        {
-        ptId = cellPts->GetId(i);
-        if ( pointMap[ptId] < 0 )
-          {
-          break; //this cell won't be inserted
-          }
-        else
-          {
-          newCellPts->InsertId(i,pointMap[ptId]);
-          }
-        }
-      } //if don't want to extract boundary cells
-    
-    else //want boundary cells
-      {
-      for ( npts=0, i=0; i < numCellPts; i++ )
-        {
-        ptId = cellPts->GetId(i);
-        if ( newScalars->GetValue(ptId) <= 0.0 )
-          {
-          npts++;
-          }
-        }
-      if ( npts > 0 )
-        {
-        for ( i=0; i < numCellPts; i++ )
-          {
-          ptId = cellPts->GetId(i);
-          if ( pointMap[ptId] < 0 )
-            {
-            x = input->GetPoint(ptId);
-            newId = newPts->InsertNextPoint(x);
-            pointMap[ptId] = newId;
-           myNodeVTK2ObjIds.push_back(ptId);
-            outputPD->CopyData(pd,ptId,newId);
-            }
-          newCellPts->InsertId(i,pointMap[ptId]);
-          }
-        }//a boundary or interior cell
-      }//if mapping boundary cells
-      
-    if ( npts >= numCellPts || (this->ExtractBoundaryCells && npts > 0) )
-      {
-      newCellId = output->InsertNextCell(cell->GetCellType(),newCellPts);
-      myElemVTK2ObjIds.push_back(cellId);
-      outputCD->CopyData(cd,cellId,newCellId);
-      }
-    }//for all cells
-
-  // Update ourselves and release memory
-  //
-  delete [] pointMap;
-  newCellPts->Delete();
-  output->SetPoints(newPts);
-  newPts->Delete();
-  
-  if ( this->ExtractBoundaryCells )
-    {
-    newScalars->Delete();
-    }
-
-  output->Squeeze();
-}
diff --git a/src/OBJECT/SMESH_ExtractGeometry.h b/src/OBJECT/SMESH_ExtractGeometry.h
deleted file mode 100644 (file)
index 7942295..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef SALOME_ExtractGeometry_HeaderFile
-#define SALOME_ExtractGeometry_HeaderFile
-
-#include <vtkExtractGeometry.h>
-#include <vector>
-
-
-class SMESH_ExtractGeometry : public vtkExtractGeometry{
-public:
-  vtkTypeMacro(SMESH_ExtractGeometry,vtkExtractGeometry);
-
-  static SMESH_ExtractGeometry *New();
-
-  void SetStoreMapping(bool theStoreMapping){
-    myStoreMapping = theStoreMapping;
-    Modified();
-  }
-  bool GetStoreMapping(){ return myStoreMapping;}
-
-  virtual vtkIdType GetNodeObjId(int theVtkID);
-  virtual vtkIdType GetElemObjId(int theVtkID);
-
-protected:
-  SMESH_ExtractGeometry();
-  ~SMESH_ExtractGeometry();
-
-  void Execute();
-
-private:
-  bool myStoreMapping;   
-  typedef std::vector<vtkIdType> TVectorId;
-  TVectorId myElemVTK2ObjIds;
-  TVectorId myNodeVTK2ObjIds;
-
-  SMESH_ExtractGeometry(const SMESH_ExtractGeometry&);  // Not implemented.
-  void operator=(const SMESH_ExtractGeometry&);  // Not implemented.
-};
-
-
-#endif
-
-
diff --git a/src/OBJECT/SMESH_Object.cxx b/src/OBJECT/SMESH_Object.cxx
deleted file mode 100644 (file)
index 885ee3d..0000000
+++ /dev/null
@@ -1,1270 +0,0 @@
-//  SMESH OBJECT : interactive object for SMESH visualization
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Grid.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-
-#include "SMESH_ObjectDef.h"
-#include "SMESH_ActorUtils.h"
-
-#include "SMDS_Mesh.hxx"
-#include "SMESH_Actor.h"
-#include "SMESH_ControlsDef.hxx"
-#include <VTKViewer_ExtractUnstructuredGrid.h>
-
-#include CORBA_SERVER_HEADER(SALOME_Exception)
-
-#include <vtkCell.h>
-#include <vtkIdList.h>
-#include <vtkIntArray.h>
-#include <vtkCellArray.h>
-#include <vtkUnsignedCharArray.h>
-
-#include <vtkUnstructuredGrid.h>
-
-#include <memory>
-#include <sstream>     
-#include <stdexcept>
-#include <set>
-
-#include "utilities.h"
-
-using namespace std;
-
-#ifndef EXCEPTION
-#define EXCEPTION(TYPE, MSG) {\
-  std::ostringstream aStream;\
-  aStream<<__FILE__<<"["<<__LINE__<<"]::"<<MSG;\
-  throw TYPE(aStream.str());\
-}
-#endif
-
-#ifdef _DEBUG_
-static int MYDEBUG = 0;
-static int MYDEBUGWITHFILES = 0;
-#else
-static int MYDEBUG = 0;
-static int MYDEBUGWITHFILES = 0;
-#endif
-
-
-namespace{
-
-  inline const SMDS_MeshNode* FindNode(const SMDS_Mesh* theMesh, int theId){
-    if(const SMDS_MeshNode* anElem = theMesh->FindNode(theId)) return anElem;
-    EXCEPTION(runtime_error,"SMDS_Mesh::FindNode - cannot find a SMDS_MeshNode for ID = "<<theId);
-  }
-
-
-  inline const SMDS_MeshElement* FindElement(const SMDS_Mesh* theMesh, int theId){
-    if(const SMDS_MeshElement* anElem = theMesh->FindElement(theId)) return anElem;
-    EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot find a SMDS_MeshElement for ID = "<<theId);
-  }
-
-
-  inline void AddNodesWithID(SMDS_Mesh* theMesh, 
-                            SMESH::log_array_var& theSeq,
-                            CORBA::Long theId)
-  {
-    const SMESH::double_array& aCoords = theSeq[theId].coords;
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
-    if(3*aNbElems != aCoords.length())
-      EXCEPTION(runtime_error,"AddNodesWithID - 3*aNbElems != aCoords.length()");
-    for(CORBA::Long aCoordId = 0; anElemId < aNbElems; anElemId++, aCoordId+=3){
-      SMDS_MeshElement* anElem = theMesh->AddNodeWithID(aCoords[aCoordId],
-                                                       aCoords[aCoordId+1],
-                                                       aCoords[aCoordId+2],
-                                                       anIndexes[anElemId]);
-      if(!anElem)
-       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddNodeWithID for ID = "<<anElemId);
-    }
-  }
-
-
-  inline void AddEdgesWithID(SMDS_Mesh* theMesh, 
-                            SMESH::log_array_var& theSeq,
-                            CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
-    if(3*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 3*aNbElems != aCoords.length()");
-    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=3){
-      SMDS_MeshElement* anElem = theMesh->AddEdgeWithID(anIndexes[anIndexId+1],
-                                                       anIndexes[anIndexId+2],
-                                                       anIndexes[anIndexId]);
-      if(!anElem)
-       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddEdgeWithID for ID = "<<anElemId);
-    }
-  }
-
-
-  inline void AddTriasWithID(SMDS_Mesh* theMesh, 
-                            SMESH::log_array_var& theSeq,
-                            CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
-    if(4*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 4*aNbElems != anIndexes.length()");
-    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=4){
-      SMDS_MeshElement* anElem = theMesh->AddFaceWithID(anIndexes[anIndexId+1],
-                                                       anIndexes[anIndexId+2],
-                                                       anIndexes[anIndexId+3],
-                                                       anIndexes[anIndexId]);
-      if(!anElem)
-       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddFaceWithID for ID = "<<anElemId);
-    }
-  }
-
-
-  inline void AddQuadsWithID(SMDS_Mesh* theMesh, 
-                            SMESH::log_array_var theSeq,
-                            CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
-    if(5*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 4*aNbElems != anIndexes.length()");
-    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=5){
-      SMDS_MeshElement* anElem = theMesh->AddFaceWithID(anIndexes[anIndexId+1],
-                                                       anIndexes[anIndexId+2],
-                                                       anIndexes[anIndexId+3],
-                                                       anIndexes[anIndexId+4],
-                                                       anIndexes[anIndexId]);
-      if(!anElem)
-       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddFaceWithID for ID = "<<anElemId);
-    }
-  }
-
-
-  inline void AddPolygonsWithID(SMDS_Mesh* theMesh, 
-                                SMESH::log_array_var& theSeq,
-                                CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anIndexId = 0, aNbElems = theSeq[theId].number;
-
-    for (CORBA::Long anElemId = 0; anElemId < aNbElems; anElemId++) {
-      int aFaceId = anIndexes[anIndexId++];
-
-      int aNbNodes = anIndexes[anIndexId++];
-      std::vector<int> nodes_ids (aNbNodes);
-      for (int i = 0; i < aNbNodes; i++) {
-        nodes_ids[i] = anIndexes[anIndexId++];
-      }
-
-      SMDS_MeshElement* anElem = theMesh->AddPolygonalFaceWithID(nodes_ids, aFaceId);
-      if (!anElem)
-       EXCEPTION(runtime_error, "SMDS_Mesh::FindElement - cannot AddPolygonalFaceWithID for ID = "
-                  << anElemId);
-    }
-  }
-
-
-  inline void AddTetrasWithID(SMDS_Mesh* theMesh, 
-                             SMESH::log_array_var& theSeq,
-                             CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
-    if(5*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 5*aNbElems != anIndexes.length()");
-    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=5){
-      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
-                                                         anIndexes[anIndexId+2],
-                                                         anIndexes[anIndexId+3],
-                                                         anIndexes[anIndexId+4],
-                                                         anIndexes[anIndexId]);
-      if(!anElem)
-       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
-    }
-  }
-
-
-  inline void AddPiramidsWithID(SMDS_Mesh* theMesh, 
-                               SMESH::log_array_var& theSeq,
-                               CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
-    if(6*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 6*aNbElems != anIndexes.length()");
-    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=6){
-      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
-                                                         anIndexes[anIndexId+2],
-                                                         anIndexes[anIndexId+3],
-                                                         anIndexes[anIndexId+4],
-                                                         anIndexes[anIndexId+5],
-                                                         anIndexes[anIndexId]);
-      if(!anElem)
-       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
-    }
-  }
-
-
-  inline void AddPrismsWithID(SMDS_Mesh* theMesh, 
-                             SMESH::log_array_var& theSeq,
-                             CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
-    if(7*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 7*aNbElems != anIndexes.length()");
-    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=7){
-      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
-                                                         anIndexes[anIndexId+2],
-                                                         anIndexes[anIndexId+3],
-                                                         anIndexes[anIndexId+4],
-                                                         anIndexes[anIndexId+5],
-                                                         anIndexes[anIndexId+6],
-                                                         anIndexes[anIndexId]);
-      if(!anElem)
-       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
-    }
-  }
-
-
-  inline void AddHexasWithID(SMDS_Mesh* theMesh, 
-                            SMESH::log_array_var& theSeq,
-                            CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
-    if(9*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 9*aNbElems != anIndexes.length()");
-    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=9){
-      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
-                                                         anIndexes[anIndexId+2],
-                                                         anIndexes[anIndexId+3],
-                                                         anIndexes[anIndexId+4],
-                                                         anIndexes[anIndexId+5],
-                                                         anIndexes[anIndexId+6],
-                                                         anIndexes[anIndexId+7],
-                                                         anIndexes[anIndexId+8],
-                                                         anIndexes[anIndexId]);
-      if(!anElem)
-       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
-    }
-  }
-
-
-  inline void AddPolyhedronsWithID (SMDS_Mesh* theMesh, 
-                                    SMESH::log_array_var& theSeq,
-                                    CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anIndexId = 0, aNbElems = theSeq[theId].number;
-
-    for (CORBA::Long anElemId = 0; anElemId < aNbElems; anElemId++) {
-      int aFaceId = anIndexes[anIndexId++];
-
-      int aNbNodes = anIndexes[anIndexId++];
-      std::vector<int> nodes_ids (aNbNodes);
-      for (int i = 0; i < aNbNodes; i++) {
-        nodes_ids[i] = anIndexes[anIndexId++];
-      }
-
-      int aNbFaces = anIndexes[anIndexId++];
-      std::vector<int> quantities (aNbFaces);
-      for (int i = 0; i < aNbFaces; i++) {
-        quantities[i] = anIndexes[anIndexId++];
-      }
-
-      SMDS_MeshElement* anElem =
-        theMesh->AddPolyhedralVolumeWithID(nodes_ids, quantities, aFaceId);
-      if (!anElem)
-       EXCEPTION(runtime_error, "SMDS_Mesh::FindElement - cannot AddPolyhedralVolumeWithID for ID = "
-                  << anElemId);
-    }
-  }
-
-
-  inline void ChangePolyhedronNodes (SMDS_Mesh* theMesh, 
-                                     SMESH::log_array_var& theSeq,
-                                     CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long iind = 0, aNbElems = theSeq[theId].number;
-
-    for (CORBA::Long anElemId = 0; anElemId < aNbElems; anElemId++)
-    {
-      // find element
-      const SMDS_MeshElement* elem = FindElement(theMesh, anIndexes[iind++]);
-      // nb nodes
-      int nbNodes = anIndexes[iind++];
-      // nodes
-      std::vector<const SMDS_MeshNode*> aNodes (nbNodes);
-      for (int iNode = 0; iNode < nbNodes; iNode++) {
-        aNodes[iNode] = FindNode(theMesh, anIndexes[iind++]);
-      }
-      // nb faces
-      int nbFaces = anIndexes[iind++];
-      // quantities
-      std::vector<int> quantities (nbFaces);
-      for (int iFace = 0; iFace < nbFaces; iFace++) {
-        quantities[iFace] = anIndexes[iind++];
-      }
-      // change
-      theMesh->ChangePolyhedronNodes(elem, aNodes, quantities);
-    }
-  }
-
-
-}
-/*
-  Class       : SMESH_VisualObjDef
-  Description : Base class for all mesh objects to be visuilised
-*/
-
-//=================================================================================
-// function : getCellType
-// purpose  : Get type of VTK cell
-//=================================================================================
-static inline vtkIdType getCellType( const SMDSAbs_ElementType theType,
-                                    const bool thePoly,
-                                     const int theNbNodes )
-{
-  switch( theType )
-  {
-    case SMDSAbs_Edge: 
-      return theNbNodes == 2 ? VTK_LINE : VTK_EMPTY_CELL;
-
-    case SMDSAbs_Face  :
-      if (thePoly && theNbNodes>2 ) return VTK_POLYGON;
-      else if ( theNbNodes == 3 )   return VTK_TRIANGLE;
-      else if ( theNbNodes == 4 )   return VTK_QUAD;
-      else return VTK_EMPTY_CELL;
-      
-    case SMDSAbs_Volume:
-      if (thePoly && theNbNodes>3 ) return VTK_CONVEX_POINT_SET;
-      else if ( theNbNodes == 4 )   return VTK_TETRA;
-      else if ( theNbNodes == 5 )   return VTK_PYRAMID;
-      else if ( theNbNodes == 6 )   return VTK_WEDGE;
-      else if ( theNbNodes == 8 )   return VTK_HEXAHEDRON;
-      else return VTK_EMPTY_CELL;
-
-    default: return VTK_EMPTY_CELL;
-  }
-}
-
-//=================================================================================
-// functions : SMESH_VisualObjDef
-// purpose   : Constructor
-//=================================================================================
-SMESH_VisualObjDef::SMESH_VisualObjDef()
-{
-  myGrid = vtkUnstructuredGrid::New();
-}
-SMESH_VisualObjDef::~SMESH_VisualObjDef()
-{
-  if ( MYDEBUG )
-    MESSAGE( "~SMESH_MeshObj - myGrid->GetReferenceCount() = " << myGrid->GetReferenceCount() );
-  myGrid->Delete();
-}
-
-//=================================================================================
-// functions : GetNodeObjId, GetNodeVTKId, GetElemObjId, GetElemVTKId
-// purpose   : Methods for retrieving VTK IDs by SMDS IDs and  vice versa
-//=================================================================================
-vtkIdType SMESH_VisualObjDef::GetNodeObjId( int theVTKID )
-{
-  return myVTK2SMDSNodes.find(theVTKID) == myVTK2SMDSNodes.end() ? -1 : myVTK2SMDSNodes[theVTKID];
-}
-
-vtkIdType SMESH_VisualObjDef::GetNodeVTKId( int theObjID )
-{
-  return mySMDS2VTKNodes.find(theObjID) == mySMDS2VTKNodes.end() ? -1 : mySMDS2VTKNodes[theObjID];
-}
-
-vtkIdType SMESH_VisualObjDef::GetElemObjId( int theVTKID )
-{
-  return myVTK2SMDSElems.find(theVTKID) == myVTK2SMDSElems.end() ? -1 : myVTK2SMDSElems[theVTKID];
-}
-
-vtkIdType SMESH_VisualObjDef::GetElemVTKId( int theObjID )
-{
-  return mySMDS2VTKElems.find(theObjID) == mySMDS2VTKElems.end() ? -1 : mySMDS2VTKElems[theObjID];
-}
-
-//=================================================================================
-// function : SMESH_VisualObjDef::createPoints
-// purpose  : Create points from nodes
-//=================================================================================
-void SMESH_VisualObjDef::createPoints( vtkPoints* thePoints )
-{
-  if ( thePoints == 0 )
-    return;
-
-  TEntityList aNodes;
-  vtkIdType nbNodes = GetEntities( SMDSAbs_Node, aNodes );
-  thePoints->SetNumberOfPoints( nbNodes );
-  
-  int nbPoints = 0;
-
-  TEntityList::const_iterator anIter;
-  for ( anIter = aNodes.begin(); anIter != aNodes.end(); ++anIter )
-  {
-    const SMDS_MeshNode* aNode = ( const SMDS_MeshNode* )(*anIter);
-    if ( aNode != 0 )
-    {
-      thePoints->SetPoint( nbPoints, aNode->X(), aNode->Y(), aNode->Z() );
-      int anId = aNode->GetID();
-      mySMDS2VTKNodes.insert( TMapOfIds::value_type( anId, nbPoints ) );
-      myVTK2SMDSNodes.insert( TMapOfIds::value_type( nbPoints, anId ) );
-      nbPoints++;
-    }
-  }
-
-  if ( nbPoints != nbNodes )
-    thePoints->SetNumberOfPoints( nbPoints );
-}
-
-//=================================================================================
-// function : buildPrs
-// purpose  : create VTK cells( fill unstructured grid )
-//=================================================================================
-void SMESH_VisualObjDef::buildPrs()
-{
-  try
-  {
-    mySMDS2VTKNodes.clear();
-    myVTK2SMDSNodes.clear();
-    mySMDS2VTKElems.clear();
-    myVTK2SMDSElems.clear();
-    
-    if ( IsNodePrs() )
-      buildNodePrs();
-    else
-      buildElemPrs();
-  }
-  catch( const std::exception& exc )
-  {
-    INFOS("Follow exception was cought:\n\t"<<exc.what());
-  }
-  catch(...)
-  {
-    INFOS("Unknown exception was cought !!!");
-  }
-  
-  if( MYDEBUG ) MESSAGE( "Update - myGrid->GetNumberOfCells() = "<<myGrid->GetNumberOfCells() );
-  if( MYDEBUGWITHFILES ) SMESH::WriteUnstructuredGrid( myGrid,"/tmp/buildPrs" );
-}
-
-//=================================================================================
-// function : buildNodePrs
-// purpose  : create VTK cells for nodes
-//=================================================================================
-void SMESH_VisualObjDef::buildNodePrs()
-{
-  vtkPoints* aPoints = vtkPoints::New();
-  createPoints( aPoints );
-  myGrid->SetPoints( aPoints );
-  aPoints->Delete();
-
-  myGrid->SetCells( 0, 0, 0 );
-
-  // Create cells
-  /*
-  int nbPoints = aPoints->GetNumberOfPoints();
-  vtkIdList *anIdList = vtkIdList::New();
-  anIdList->SetNumberOfIds( 1 );
-
-  vtkCellArray *aCells = vtkCellArray::New();
-  aCells->Allocate( 2 * nbPoints, 0 );
-
-  vtkUnsignedCharArray* aCellTypesArray = vtkUnsignedCharArray::New();
-  aCellTypesArray->SetNumberOfComponents( 1 );
-  aCellTypesArray->Allocate( nbPoints );
-
-  for( vtkIdType aCellId = 0; aCellId < nbPoints; aCellId++ )
-  {
-    anIdList->SetId( 0, aCellId );
-    aCells->InsertNextCell( anIdList );
-    aCellTypesArray->InsertNextValue( VTK_VERTEX );
-  }
-
-  vtkIntArray* aCellLocationsArray = vtkIntArray::New();
-  aCellLocationsArray->SetNumberOfComponents( 1 );
-  aCellLocationsArray->SetNumberOfTuples( nbPoints );
-
-  aCells->InitTraversal();
-  for( vtkIdType i = 0, *pts, npts; aCells->GetNextCell( npts, pts ); i++ )
-    aCellLocationsArray->SetValue( i, aCells->GetTraversalLocation( npts ) );
-
-  myGrid->SetCells( aCellTypesArray, aCellLocationsArray, aCells );
-
-  aCellLocationsArray->Delete();
-  aCellTypesArray->Delete();
-  aCells->Delete();
-  anIdList->Delete(); 
-  */
-}
-
-//=================================================================================
-// function : buildElemPrs
-// purpose  : Create VTK cells for elements
-//=================================================================================
-
-namespace{
-  typedef std::vector<const SMDS_MeshElement*> TConnect;
-
-  int GetConnect(const SMDS_ElemIteratorPtr& theNodesIter, 
-                TConnect& theConnect)
-  {
-    theConnect.clear();
-    for(; theNodesIter->more();)
-      theConnect.push_back(theNodesIter->next());
-    return theConnect.size();
-  }
-  
-  inline 
-  void SetId(vtkIdList *theIdList, 
-            const SMESH_VisualObjDef::TMapOfIds& theSMDS2VTKNodes, 
-            const TConnect& theConnect, 
-            int thePosition,
-            int theId)
-  {
-    theIdList->SetId(thePosition,theSMDS2VTKNodes.find(theConnect[theId]->GetID())->second);
-  }
-
-}
-
-
-void SMESH_VisualObjDef::buildElemPrs()
-{
-  // Create points
-  
-  vtkPoints* aPoints = vtkPoints::New();
-  createPoints( aPoints );
-  myGrid->SetPoints( aPoints );
-  aPoints->Delete();
-    
-  if ( MYDEBUG )
-    MESSAGE("Update - myGrid->GetNumberOfPoints() = "<<myGrid->GetNumberOfPoints());
-
-  // Calculate cells size
-
-  static SMDSAbs_ElementType aTypes[ 3 ] = { SMDSAbs_Edge, SMDSAbs_Face, SMDSAbs_Volume };
-
-  // get entity data
-  map<SMDSAbs_ElementType,int> nbEnts;
-  map<SMDSAbs_ElementType,TEntityList> anEnts;
-
-  for ( int i = 0; i <= 2; i++ )
-    nbEnts[ aTypes[ i ] ] = GetEntities( aTypes[ i ], anEnts[ aTypes[ i ] ] );
-
-  vtkIdType aCellsSize =  3 * nbEnts[ SMDSAbs_Edge ];
-
-  for ( int i = 1; i <= 2; i++ ) // iterate through faces and volumes
-  {
-    if ( nbEnts[ aTypes[ i ] ] )
-    {
-      const TEntityList& aList = anEnts[ aTypes[ i ] ];
-      TEntityList::const_iterator anIter;
-      for ( anIter = aList.begin(); anIter != aList.end(); ++anIter )
-        aCellsSize += (*anIter)->NbNodes() + 1;
-    }
-  }
-
-  vtkIdType aNbCells = nbEnts[ SMDSAbs_Edge ] + nbEnts[ SMDSAbs_Face ] + nbEnts[ SMDSAbs_Volume ];
-  
-  if ( MYDEBUG )
-    MESSAGE( "Update - aNbCells = "<<aNbCells<<"; aCellsSize = "<<aCellsSize );
-
-  // Create cells
-  
-  vtkCellArray* aConnectivity = vtkCellArray::New();
-  aConnectivity->Allocate( aCellsSize, 0 );
-  
-  vtkUnsignedCharArray* aCellTypesArray = vtkUnsignedCharArray::New();
-  aCellTypesArray->SetNumberOfComponents( 1 );
-  aCellTypesArray->Allocate( aNbCells * aCellTypesArray->GetNumberOfComponents() );
-  
-  vtkIdList *anIdList = vtkIdList::New();
-  vtkIdType iElem = 0;
-
-  TConnect aConnect;
-  aConnect.reserve(VTK_CELL_SIZE);
-
-  for ( int i = 0; i <= 2; i++ ) // iterate through edges, faces and volumes
-  {
-    if( nbEnts[ aTypes[ i ] ] > 0 )
-    {
-      const SMDSAbs_ElementType& aType = aTypes[ i ];
-      const TEntityList& aList = anEnts[ aType ];
-      TEntityList::const_iterator anIter;
-      for ( anIter = aList.begin(); anIter != aList.end(); ++anIter )
-      {
-        const SMDS_MeshElement* anElem = *anIter;
-        
-        vtkIdType aNbNodes = anElem->NbNodes();
-        anIdList->SetNumberOfIds( aNbNodes );
-
-        int anId = anElem->GetID();
-
-        mySMDS2VTKElems.insert( TMapOfIds::value_type( anId, iElem ) );
-        myVTK2SMDSElems.insert( TMapOfIds::value_type( iElem, anId ) );
-
-        SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
-       switch(aType){
-       case SMDSAbs_Volume:{
-         std::vector<int> aConnectivities;
-         GetConnect(aNodesIter,aConnect);
-         // Convertions connectivities from SMDS to VTK
-         if (anElem->IsPoly() && aNbNodes > 3) { // POLYEDRE
-           for (int k = 0; k < aNbNodes; k++) {
-             aConnectivities.push_back(k);
-           }
-
-         } else if (aNbNodes == 4) {
-           static int anIds[] = {0,2,1,3};
-           for (int k = 0; k < aNbNodes; k++) aConnectivities.push_back(anIds[k]);
-
-         } else if (aNbNodes == 5) {
-           static int anIds[] = {0,3,2,1,4};
-           for (int k = 0; k < aNbNodes; k++) aConnectivities.push_back(anIds[k]);
-
-         } else if (aNbNodes == 6) {
-           static int anIds[] = {0,1,2,3,4,5};
-           for (int k = 0; k < aNbNodes; k++) aConnectivities.push_back(anIds[k]);
-
-         } else if (aNbNodes == 8) {
-           static int anIds[] = {0,3,2,1,4,7,6,5};
-           for (int k = 0; k < aNbNodes; k++) aConnectivities.push_back(anIds[k]);
-
-         } else {
-          }
-
-         if (aConnectivities.size() > 0) {
-           for (vtkIdType aNodeId = 0; aNodeId < aNbNodes; aNodeId++)
-             SetId(anIdList,mySMDS2VTKNodes,aConnect,aNodeId,aConnectivities[aNodeId]);
-         }
-         break;
-       }
-       default:
-         for( vtkIdType aNodeId = 0; aNodesIter->more(); aNodeId++ ){
-           const SMDS_MeshElement* aNode = aNodesIter->next();
-           anIdList->SetId( aNodeId, mySMDS2VTKNodes[aNode->GetID()] );
-         }
-       }
-
-        aConnectivity->InsertNextCell( anIdList );
-        aCellTypesArray->InsertNextValue( getCellType( aType, anElem->IsPoly(), aNbNodes ) );
-
-        iElem++;
-      }
-    }
-  }
-
-  // Insert cells in grid
-  
-  vtkIntArray* aCellLocationsArray = vtkIntArray::New();
-  aCellLocationsArray->SetNumberOfComponents( 1 );
-  aCellLocationsArray->SetNumberOfTuples( aNbCells );
-  
-  aConnectivity->InitTraversal();
-  for( vtkIdType idType = 0, *pts, npts; aConnectivity->GetNextCell( npts, pts ); idType++ )
-    aCellLocationsArray->SetValue( idType, aConnectivity->GetTraversalLocation( npts ) );
-
-  myGrid->SetCells( aCellTypesArray, aCellLocationsArray,aConnectivity );
-  
-  aCellLocationsArray->Delete();
-  aCellTypesArray->Delete();
-  aConnectivity->Delete();
-  anIdList->Delete();
-}
-
-//=================================================================================
-// function : GetEdgeNodes
-// purpose  : Retrieve ids of nodes from edge of elements ( edge is numbered from 1 )
-//=================================================================================
-bool SMESH_VisualObjDef::GetEdgeNodes( const int theElemId,
-                                      const int theEdgeNum,
-                                      int&      theNodeId1,
-                                      int&      theNodeId2 ) const
-{
-  const SMDS_Mesh* aMesh = GetMesh();
-  if ( aMesh == 0 )
-    return false;
-    
-  const SMDS_MeshElement* anElem = aMesh->FindElement( theElemId );
-  if ( anElem == 0 )
-    return false;
-    
-  int nbNodes = anElem->NbNodes();
-
-  if ( theEdgeNum < 0 || theEdgeNum > 3 || nbNodes != 3 && nbNodes != 4 || theEdgeNum > nbNodes )
-    return false;
-
-  int anIds[ nbNodes ];
-  SMDS_ElemIteratorPtr anIter = anElem->nodesIterator();
-  int i = 0;
-  while( anIter->more() )
-    anIds[ i++ ] = anIter->next()->GetID();
-
-  if ( theEdgeNum < nbNodes - 1 )
-  {
-    theNodeId1 = anIds[ theEdgeNum ];
-    theNodeId2 = anIds[ theEdgeNum + 1 ];
-  }
-  else
-  {
-    theNodeId1 = anIds[ nbNodes - 1 ];
-    theNodeId2 = anIds[ 0 ];
-  }
-
-  return true;
-}
-
-/*
-  Class       : SMESH_MeshObj
-  Description : Class for visualisation of mesh
-*/
-
-//=================================================================================
-// function : SMESH_MeshObj
-// purpose  : Constructor
-//=================================================================================
-SMESH_MeshObj::SMESH_MeshObj(SMESH::SMESH_Mesh_ptr theMesh)
-{
-  if ( MYDEBUG ) 
-    MESSAGE("SMESH_MeshObj - theMesh->_is_nil() = "<<theMesh->_is_nil());
-    
-  myMeshServer = SMESH::SMESH_Mesh::_duplicate( theMesh );
-  myMeshServer->Register();
-  myMesh = new SMDS_Mesh();
-}
-
-//=================================================================================
-// function : ~SMESH_MeshObj
-// purpose  : Destructor
-//=================================================================================
-SMESH_MeshObj::~SMESH_MeshObj()
-{
-  myMeshServer->Destroy();
-  delete myMesh;
-}
-
-//=================================================================================
-// function : Update
-// purpose  : Update mesh and fill grid with new values if necessary 
-//=================================================================================
-void SMESH_MeshObj::Update( int theIsClear )
-{
-  // Update SMDS_Mesh on client part
-  
-  try
-  {
-    SMESH::log_array_var aSeq = myMeshServer->GetLog( theIsClear );
-    CORBA::Long aLength = aSeq->length();
-    
-    if( MYDEBUG ) MESSAGE( "Update: length of the script is "<<aLength );
-    
-    if( !aLength )
-      return;
-
-    for ( CORBA::Long anId = 0; anId < aLength; anId++)
-    {
-      const SMESH::double_array& aCoords = aSeq[anId].coords;
-      const SMESH::long_array& anIndexes = aSeq[anId].indexes;
-      CORBA::Long anElemId = 0, aNbElems = aSeq[anId].number;
-      CORBA::Long aCommand = aSeq[anId].commandType;
-
-      switch(aCommand)
-      {
-        case SMESH::ADD_NODE       : AddNodesWithID      ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_EDGE       : AddEdgesWithID      ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_TRIANGLE   : AddTriasWithID      ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_QUADRANGLE : AddQuadsWithID      ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_POLYGON    : AddPolygonsWithID   ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_TETRAHEDRON: AddTetrasWithID     ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_PYRAMID    : AddPiramidsWithID   ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_PRISM      : AddPrismsWithID     ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_HEXAHEDRON : AddHexasWithID      ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_POLYHEDRON : AddPolyhedronsWithID( myMesh, aSeq, anId ); break;
-
-        case SMESH::REMOVE_NODE:
-          for( ; anElemId < aNbElems; anElemId++ )
-            myMesh->RemoveNode( FindNode( myMesh, anIndexes[anElemId] ) );
-        break;
-        
-        case SMESH::REMOVE_ELEMENT:
-          for( ; anElemId < aNbElems; anElemId++ )
-            myMesh->RemoveElement( FindElement( myMesh, anIndexes[anElemId] ) );
-        break;
-
-        case SMESH::MOVE_NODE:
-          for(CORBA::Long aCoordId=0; anElemId < aNbElems; anElemId++, aCoordId+=3)
-          {
-            SMDS_MeshNode* node =
-              const_cast<SMDS_MeshNode*>( FindNode( myMesh, anIndexes[anElemId] ));
-            node->setXYZ( aCoords[aCoordId], aCoords[aCoordId+1], aCoords[aCoordId+2] );
-          }
-        break;
-
-        case SMESH::CHANGE_ELEMENT_NODES:
-          for ( CORBA::Long i = 0; anElemId < aNbElems; anElemId++ )
-          {
-            // find element
-            const SMDS_MeshElement* elem = FindElement( myMesh, anIndexes[i++] );
-            // nb nodes
-            int nbNodes = anIndexes[i++];
-            // nodes
-            //ASSERT( nbNodes < 9 );
-            const SMDS_MeshNode* aNodes[ nbNodes ];
-            for ( int iNode = 0; iNode < nbNodes; iNode++ )
-              aNodes[ iNode ] = FindNode( myMesh, anIndexes[i++] );
-            // change
-            myMesh->ChangeElementNodes( elem, aNodes, nbNodes );
-          }
-          break;
-
-        case SMESH::CHANGE_POLYHEDRON_NODES:
-          ChangePolyhedronNodes(myMesh, aSeq, anId);
-          break;
-        case SMESH::RENUMBER:
-          for(CORBA::Long i=0; anElemId < aNbElems; anElemId++, i+=3)
-          {
-            myMesh->Renumber( anIndexes[i], anIndexes[i+1], anIndexes[i+2] );
-          }
-          break;
-          
-        default:;
-      }
-    }
-  }
-  catch ( SALOME::SALOME_Exception& exc )
-  {
-    INFOS("Following exception was cought:\n\t"<<exc.details.text);
-  }
-  catch( const std::exception& exc)
-  {
-    INFOS("Following exception was cought:\n\t"<<exc.what());
-  }
-  catch(...)
-  {
-    INFOS("Unknown exception was cought !!!");
-  }
-  
-  if ( MYDEBUG )
-  {
-    MESSAGE("Update - myMesh->NbNodes() = "<<myMesh->NbNodes());
-    MESSAGE("Update - myMesh->NbEdges() = "<<myMesh->NbEdges());
-    MESSAGE("Update - myMesh->NbFaces() = "<<myMesh->NbFaces());
-    MESSAGE("Update - myMesh->NbVolumes() = "<<myMesh->NbVolumes());
-  }
-
-  // Fill unstructured grid
-  buildPrs();
-}
-
-//=================================================================================
-// function : GetElemDimension
-// purpose  : Get dimension of element
-//=================================================================================
-int SMESH_MeshObj::GetElemDimension( const int theObjId )
-{
-  const SMDS_MeshElement* anElem = myMesh->FindElement( theObjId );
-  if ( anElem == 0 )
-    return 0;
-
-  int aType = anElem->GetType();
-  switch ( aType )
-  {
-    case SMDSAbs_Edge  : return 1;
-    case SMDSAbs_Face  : return 2;
-    case SMDSAbs_Volume: return 3;
-    default            : return 0;
-  }
-}
-
-//=================================================================================
-// function : GetEntities
-// purpose  : Get entities of specified type. Return number of entities
-//=================================================================================
-int SMESH_MeshObj::GetNbEntities( const SMDSAbs_ElementType theType) const
-{
-  switch ( theType )
-  {
-    case SMDSAbs_Node:
-    {
-      return myMesh->NbNodes();
-    }
-    break;
-    case SMDSAbs_Edge:
-    {
-      return myMesh->NbEdges();
-    }
-    break;
-    case SMDSAbs_Face:
-    {
-      return myMesh->NbFaces();
-    }
-    break;
-    case SMDSAbs_Volume:
-    {
-      return myMesh->NbVolumes();
-    }
-    break;
-    default:
-      return 0;
-    break;
-  }
-}
-
-int SMESH_MeshObj::GetEntities( const SMDSAbs_ElementType theType, TEntityList& theObjs ) const
-{
-  theObjs.clear();
-
-  switch ( theType )
-  {
-    case SMDSAbs_Node:
-    {
-      SMDS_NodeIteratorPtr anIter = myMesh->nodesIterator();
-      while ( anIter->more() ) theObjs.push_back( anIter->next() );
-    }
-    break;
-    case SMDSAbs_Edge:
-    {
-      SMDS_EdgeIteratorPtr anIter = myMesh->edgesIterator();
-      while ( anIter->more() ) theObjs.push_back( anIter->next() );
-    }
-    break;
-    case SMDSAbs_Face:
-    {
-      SMDS_FaceIteratorPtr anIter = myMesh->facesIterator();
-      while ( anIter->more() ) theObjs.push_back( anIter->next() );
-    }
-    break;
-    case SMDSAbs_Volume:
-    {
-      SMDS_VolumeIteratorPtr anIter = myMesh->volumesIterator();
-      while ( anIter->more() ) theObjs.push_back( anIter->next() );
-    }
-    break;
-    default:
-    break;
-  }
-
-  return theObjs.size();
-}
-
-//=================================================================================
-// function : UpdateFunctor
-// purpose  : Update functor in accordance with current mesh
-//=================================================================================
-void SMESH_MeshObj::UpdateFunctor( const SMESH::Controls::FunctorPtr& theFunctor )
-{
-  theFunctor->SetMesh( GetMesh() );
-}
-
-//=================================================================================
-// function : IsNodePrs
-// purpose  : Return true if node presentation is used
-//=================================================================================
-bool SMESH_MeshObj::IsNodePrs() const
-{
-  return myMesh->NbEdges() == 0 &&myMesh->NbFaces() == 0 &&myMesh->NbVolumes() == 0 ;
-}
-
-
-/*
-  Class       : SMESH_SubMeshObj
-  Description : Base class for visualisation of submeshes and groups
-*/
-
-//=================================================================================
-// function : SMESH_SubMeshObj
-// purpose  : Constructor
-//=================================================================================
-SMESH_SubMeshObj::SMESH_SubMeshObj( SMESH_MeshObj* theMeshObj )
-{
-  if ( MYDEBUG ) MESSAGE( "SMESH_SubMeshObj - theMeshObj = " << theMeshObj );
-  
-  myMeshObj = theMeshObj;
-}
-
-SMESH_SubMeshObj::~SMESH_SubMeshObj()
-{
-}
-
-//=================================================================================
-// function : GetElemDimension
-// purpose  : Get dimension of element
-//=================================================================================
-int SMESH_SubMeshObj::GetElemDimension( const int theObjId )
-{
-  return myMeshObj == 0 ? 0 : myMeshObj->GetElemDimension( theObjId );
-}
-
-//=================================================================================
-// function : UpdateFunctor
-// purpose  : Update functor in accordance with current mesh
-//=================================================================================
-void SMESH_SubMeshObj::UpdateFunctor( const SMESH::Controls::FunctorPtr& theFunctor )
-{
-  theFunctor->SetMesh( myMeshObj->GetMesh() );
-}
-
-//=================================================================================
-// function : Update
-// purpose  : Update mesh object and fill grid with new values 
-//=================================================================================
-void SMESH_SubMeshObj::Update( int theIsClear )
-{
-  myMeshObj->Update( theIsClear );
-  buildPrs();
-}
-
-
-/*
-  Class       : SMESH_GroupObj
-  Description : Class for visualisation of groups
-*/
-
-//=================================================================================
-// function : SMESH_GroupObj
-// purpose  : Constructor
-//=================================================================================
-SMESH_GroupObj::SMESH_GroupObj( SMESH::SMESH_GroupBase_ptr theGroup, 
-                                SMESH_MeshObj*             theMeshObj )
-: SMESH_SubMeshObj( theMeshObj ),
-  myGroupServer( SMESH::SMESH_GroupBase::_duplicate(theGroup) )
-{
-  if ( MYDEBUG ) MESSAGE("SMESH_GroupObj - theGroup->_is_nil() = "<<theGroup->_is_nil());
-  myGroupServer->Register();
-}
-
-SMESH_GroupObj::~SMESH_GroupObj()
-{
-  if ( MYDEBUG ) MESSAGE("~SMESH_GroupObj");
-  myGroupServer->Destroy();
-}
-
-//=================================================================================
-// function : IsNodePrs
-// purpose  : Return true if node presentation is used
-//=================================================================================
-bool SMESH_GroupObj::IsNodePrs() const
-{
-  return myGroupServer->GetType() == SMESH::NODE;
-}
-
-//=================================================================================
-// function : getNodesFromElems
-// purpose  : Retrieve nodes from elements
-//=================================================================================
-static int getNodesFromElems( SMESH::long_array_var&              theElemIds,
-                              const SMDS_Mesh*                    theMesh,
-                              std::list<const SMDS_MeshElement*>& theResList )
-{
-  set<const SMDS_MeshElement*> aNodeSet;
-
-  for ( CORBA::Long i = 0, n = theElemIds->length(); i < n; i++ )
-  {
-    const SMDS_MeshElement* anElem = theMesh->FindElement( theElemIds[ i ] );
-    if ( anElem != 0 )
-    {
-      SMDS_ElemIteratorPtr anIter = anElem->nodesIterator();
-      while ( anIter->more() )
-      {
-        const SMDS_MeshElement* aNode = anIter->next();
-        if ( aNode != 0 )
-          aNodeSet.insert( aNode );
-      }
-    }
-  }
-
-  set<const SMDS_MeshElement*>::const_iterator anIter;
-  for ( anIter = aNodeSet.begin(); anIter != aNodeSet.end(); ++anIter )
-    theResList.push_back( *anIter );
-
-  return theResList.size();    
-}
-
-//=================================================================================
-// function : getPointers
-// purpose  : Get std::list<const SMDS_MeshElement*> from list of IDs
-//=================================================================================
-static int getPointers( const SMDSAbs_ElementType            theRequestType,
-                        SMESH::long_array_var&              theElemIds,
-                        const SMDS_Mesh*                    theMesh,
-                        std::list<const SMDS_MeshElement*>& theResList )
-{
-  for ( CORBA::Long i = 0, n = theElemIds->length(); i < n; i++ )
-  {
-    const SMDS_MeshElement* anElem = theRequestType == SMDSAbs_Node
-      ? theMesh->FindNode( theElemIds[ i ] ) : theMesh->FindElement( theElemIds[ i ] );
-
-    if ( anElem != 0 )
-      theResList.push_back( anElem );
-  }
-
-  return theResList.size();
-}
-
-
-//=================================================================================
-// function : GetEntities
-// purpose  : Get entities of specified type. Return number of entities
-//=================================================================================
-int SMESH_GroupObj::GetNbEntities( const SMDSAbs_ElementType theType) const
-{
-  if(SMDSAbs_ElementType(myGroupServer->GetType()) == theType){
-    return myGroupServer->Size();
-  }
-  return 0;
-}
-
-int SMESH_GroupObj::GetEntities( const SMDSAbs_ElementType theType, TEntityList& theResList ) const
-{
-  theResList.clear();
-  SMDS_Mesh* aMesh = myMeshObj->GetMesh();
-  
-  if ( myGroupServer->Size() == 0 || aMesh == 0 )
-    return 0;
-
-  SMDSAbs_ElementType aGrpType = SMDSAbs_ElementType(myGroupServer->GetType());
-  SMESH::long_array_var anIds = myGroupServer->GetListOfID();
-
-  if ( aGrpType == theType )
-    return getPointers( theType, anIds, aMesh, theResList );
-  else if ( theType == SMDSAbs_Node )
-    return getNodesFromElems( anIds, aMesh, theResList );
-  else
-    return 0;
-}    
-
-
-
-/*
-  Class       : SMESH_subMeshObj
-  Description : Class for visualisation of submeshes
-*/
-
-//=================================================================================
-// function : SMESH_subMeshObj
-// purpose  : Constructor
-//=================================================================================
-SMESH_subMeshObj::SMESH_subMeshObj( SMESH::SMESH_subMesh_ptr theSubMesh,
-                                    SMESH_MeshObj*           theMeshObj )
-: SMESH_SubMeshObj( theMeshObj ),
-  mySubMeshServer( SMESH::SMESH_subMesh::_duplicate( theSubMesh ) )
-{
-  if ( MYDEBUG ) MESSAGE( "SMESH_subMeshObj - theSubMesh->_is_nil() = " << theSubMesh->_is_nil() );
-  
-  mySubMeshServer->Register();
-}
-
-SMESH_subMeshObj::~SMESH_subMeshObj()
-{
-  if ( MYDEBUG ) MESSAGE( "~SMESH_subMeshObj" );
-  mySubMeshServer->Destroy();
-}
-
-//=================================================================================
-// function : GetEntities
-// purpose  : Get entities of specified type. Return number of entities
-//=================================================================================
-int SMESH_subMeshObj::GetNbEntities( const SMDSAbs_ElementType theType) const
-{
-  switch ( theType )
-  {
-    case SMDSAbs_Node:
-    {
-      return mySubMeshServer->GetNumberOfNodes( false );
-    }
-    break;
-    case SMDSAbs_Edge:
-    case SMDSAbs_Face:
-    case SMDSAbs_Volume:
-    {
-      SMESH::long_array_var anIds = 
-       mySubMeshServer->GetElementsByType( SMESH::ElementType(theType) );
-      return anIds->length();
-    }
-    default:
-      return 0;
-    break;
-  }
-}
-
-int SMESH_subMeshObj::GetEntities( const SMDSAbs_ElementType theType, TEntityList& theResList ) const
-{
-  theResList.clear();
-
-  SMDS_Mesh* aMesh = myMeshObj->GetMesh();
-  if ( aMesh == 0 )
-    return 0;
-
-  bool isNodal = IsNodePrs();
-
-  if ( isNodal )
-  {
-    if ( theType == SMDSAbs_Node )
-    {
-      SMESH::long_array_var anIds = mySubMeshServer->GetNodesId();
-      return getPointers( SMDSAbs_Node, anIds, aMesh, theResList );
-    }
-  }
-  else
-  {
-    if ( theType == SMDSAbs_Node )
-    {
-      SMESH::long_array_var anIds = mySubMeshServer->GetElementsId();
-      return getNodesFromElems( anIds, aMesh, theResList );
-    }
-    else
-    {
-      SMESH::long_array_var anIds = 
-       mySubMeshServer->GetElementsByType( SMESH::ElementType(theType) );
-      return getPointers( theType, anIds, aMesh, theResList );
-    }
-  }
-
-  return 0;
-}
-
-//=================================================================================
-// function : IsNodePrs
-// purpose  : Return true if node presentation is used
-//=================================================================================
-bool SMESH_subMeshObj::IsNodePrs() const
-{
-  return mySubMeshServer->GetNumberOfElements() == 0;
-}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/OBJECT/SMESH_Object.h b/src/OBJECT/SMESH_Object.h
deleted file mode 100644 (file)
index aea4f77..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-//  SMESH OBJECT : interactive object for SMESH visualization
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Object.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef SMESH_OBJECT_H
-#define SMESH_OBJECT_H
-
-#include <boost/shared_ptr.hpp>
-#include <vtkSystemIncludes.h>
-
-#include "SMESH_Controls.hxx"
-#include "SMDSAbs_ElementType.hxx"
-
-class SMDS_Mesh;
-class vtkUnstructuredGrid;
-
-/*
-  Class       : SMESH_VisualObj
-  Description : Base class for all mesh objects to be visuilised
-*/
-class SMESH_VisualObj
-{
-public:
-  virtual void Update( int theIsClear = true ) = 0;
-  virtual void UpdateFunctor( const SMESH::Controls::FunctorPtr& theFunctor ) = 0;
-  virtual int GetElemDimension( const int theObjId ) = 0;
-
-  virtual int GetNbEntities( const SMDSAbs_ElementType theType) const = 0;
-  virtual SMDS_Mesh* GetMesh() const = 0;
-
-  virtual bool GetEdgeNodes( const int theElemId,
-                            const int theEdgeNum,
-                            int&      theNodeId1,
-                            int&      theNodeId2 ) const = 0;
-  
-  virtual vtkUnstructuredGrid* GetUnstructuredGrid() = 0;
-  
-  virtual vtkIdType GetNodeObjId( int theVTKID ) = 0;
-  virtual vtkIdType GetNodeVTKId( int theObjID ) = 0;
-  virtual vtkIdType GetElemObjId( int theVTKID ) = 0;
-  virtual vtkIdType GetElemVTKId( int theObjID ) = 0;
-};
-
-typedef boost::shared_ptr<SMESH_VisualObj> TVisualObjPtr;
-
-#endif
diff --git a/src/OBJECT/SMESH_ObjectDef.h b/src/OBJECT/SMESH_ObjectDef.h
deleted file mode 100644 (file)
index 134b47b..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-//  SMESH OBJECT : interactive object for SMESH visualization
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Object.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef SMESH_OBJECTDEF_H
-#define SMESH_OBJECTDEF_H
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-#include CORBA_SERVER_HEADER(SMESH_Group)
-
-#include <map>
-#include <list>
-
-#include "SMESH_Controls.hxx"
-#include "SMESH_Object.h"
-
-class vtkPoints;
-class SALOME_ExtractUnstructuredGrid;
-
-class SMESH_Actor;
-class SMDS_MeshNode;
-class SMDS_MeshElement;
-
-/*
-  Class       : SMESH_VisualObj
-  Description : Base class for all mesh objects to be visuilised
-*/
-class SMESH_VisualObjDef: public SMESH_VisualObj
-{
-public:
-  typedef std::list<const SMDS_MeshElement*>   TEntityList;
-  typedef std::map<vtkIdType,vtkIdType>  TMapOfIds;
-  
-                            SMESH_VisualObjDef();
-  virtual                   ~SMESH_VisualObjDef();
-  
-  virtual void              Update( int theIsClear = true ) = 0;
-  virtual void              UpdateFunctor( const SMESH::Controls::FunctorPtr& theFunctor ) = 0;
-  virtual int               GetElemDimension( const int theObjId ) = 0;
-
-  virtual int               GetNbEntities( const SMDSAbs_ElementType theType) const = 0;
-  virtual int               GetEntities( const SMDSAbs_ElementType, TEntityList& ) const = 0;
-  virtual bool              IsNodePrs() const = 0;
-  virtual SMDS_Mesh*        GetMesh() const = 0;
-
-  virtual bool              GetEdgeNodes( const int theElemId,
-                                          const int theEdgeNum,
-                                          int&      theNodeId1,
-                                          int&      theNodeId2 ) const;
-
-  virtual vtkUnstructuredGrid* GetUnstructuredGrid() { return myGrid; }
-  
-  virtual vtkIdType         GetNodeObjId( int theVTKID );
-  virtual vtkIdType         GetNodeVTKId( int theObjID );
-  virtual vtkIdType         GetElemObjId( int theVTKID );
-  virtual vtkIdType         GetElemVTKId( int theObjID );
-  
-protected:
-
-  void                      createPoints( vtkPoints* );
-  void                      buildPrs();
-  void                      buildNodePrs();
-  void                      buildElemPrs();
-  
-private:                                   
-
-  TMapOfIds                 mySMDS2VTKNodes;
-  TMapOfIds                 myVTK2SMDSNodes;
-  TMapOfIds                 mySMDS2VTKElems;
-  TMapOfIds                 myVTK2SMDSElems;
-
-  vtkUnstructuredGrid*      myGrid;
-};
-
-
-/*
-  Class       : SMESH_MeshObj
-  Description : Class for visualisation of mesh
-*/
-
-class SMESH_MeshObj: public SMESH_VisualObjDef
-{
-public:
-
-                            SMESH_MeshObj( SMESH::SMESH_Mesh_ptr );
-  virtual                   ~SMESH_MeshObj();
-  
-  virtual void              Update( int theIsClear = true );
-  
-  virtual int               GetNbEntities( const SMDSAbs_ElementType) const;
-  virtual int               GetEntities( const SMDSAbs_ElementType, TEntityList& ) const;
-  virtual bool              IsNodePrs() const;
-
-  virtual int               GetElemDimension( const int theObjId );
-
-  virtual void              UpdateFunctor( const SMESH::Controls::FunctorPtr& theFunctor );
-  
-  SMESH::SMESH_Mesh_ptr     GetMeshServer() { return myMeshServer.in(); }
-  SMDS_Mesh*                GetMesh() const { return myMesh; }
-
-protected:
-
-  SMESH::SMESH_Mesh_var     myMeshServer;
-  SMDS_Mesh*                myMesh;
-};
-
-
-/*
-  Class       : SMESH_SubMeshObj
-  Description : Base class for visualisation of submeshes and groups
-*/
-
-class SMESH_SubMeshObj: public SMESH_VisualObjDef
-{
-public:
-
-                            SMESH_SubMeshObj(SMESH_MeshObj* theMeshObj);
-  virtual                   ~SMESH_SubMeshObj();
-
-  virtual void              Update( int theIsClear = true );
-  
-  virtual void              UpdateFunctor( const SMESH::Controls::FunctorPtr& theFunctor );
-  virtual int               GetElemDimension( const int theObjId );
-  virtual SMDS_Mesh*        GetMesh() const { return myMeshObj->GetMesh(); }
-  
-protected:
-
-  SMESH_MeshObj*            myMeshObj;
-};
-
-
-/*
-  Class       : SMESH_GroupObj
-  Description : Class for visualisation of groups
-*/
-
-class SMESH_GroupObj: public SMESH_SubMeshObj
-{
-public:
-                            SMESH_GroupObj( SMESH::SMESH_GroupBase_ptr, SMESH_MeshObj* );
-  virtual                   ~SMESH_GroupObj();
-
-  virtual int               GetNbEntities( const SMDSAbs_ElementType) const;
-  virtual int               GetEntities( const SMDSAbs_ElementType, TEntityList& ) const;
-  virtual bool              IsNodePrs() const;
-
-private:
-
-  SMESH::SMESH_GroupBase_var    myGroupServer;
-};
-
-
-/*
-  Class       : SMESH_subMeshObj
-  Description : Class for visualisation of submeshes
-*/
-
-class SMESH_subMeshObj : public SMESH_SubMeshObj
-{
-public:
-
-                            SMESH_subMeshObj( SMESH::SMESH_subMesh_ptr, 
-                                              SMESH_MeshObj* );
-  virtual                   ~SMESH_subMeshObj();
-
-  virtual int               GetNbEntities( const SMDSAbs_ElementType) const;
-  virtual int               GetEntities( const SMDSAbs_ElementType, TEntityList& ) const;
-  virtual bool              IsNodePrs() const;    
-  
-protected:
-
-  SMESH::SMESH_subMesh_var  mySubMeshServer;
-};
-
-
-#endif
diff --git a/src/SMDS/Makefile.in b/src/SMDS/Makefile.in
deleted file mode 100644 (file)
index e066e25..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-#  SMESH SMDS : implementaion of Salome mesh data structure
-#
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : Makefile.in
-#  Author : Patrick GOLDBRONN (CEA)
-#  Module : SMESH
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@top_srcdir@/idl
-
-
-@COMMENCE@
-
-# Libraries targets
-
-LIB = libSMDS.la 
-LIB_SRC = \
-       SMDS_MeshObject.cxx \
-       SMDS_MeshElement.cxx \
-       SMDS_Position.cxx \
-       SMDS_EdgePosition.cxx \
-       SMDS_FacePosition.cxx \
-       SMDS_SpacePosition.cxx \
-       SMDS_VertexPosition.cxx \
-       SMDS_MeshNode.cxx \
-       SMDS_MeshEdge.cxx \
-       SMDS_MeshFace.cxx \
-       SMDS_MeshVolume.cxx \
-       SMDS_MeshElementIDFactory.cxx \
-       SMDS_MeshGroup.cxx \
-       SMDS_MeshIDFactory.cxx \
-       SMDS_Mesh.cxx \
-       SMDS_IteratorOfElements.cxx \
-       SMDS_VolumeOfFaces.cxx \
-       SMDS_VolumeOfNodes.cxx \
-       SMDS_PolyhedralVolumeOfNodes.cxx \
-       SMDS_FaceOfEdges.cxx \
-       SMDS_FaceOfNodes.cxx \
-       SMDS_PolygonalFaceOfNodes.cxx \
-       SMDS_VolumeTool.cxx
-#      SMDS_Tria3OfNodes.cxx \
-#      SMDS_HexahedronOfNodes.cxx
-
-#SMDSControl_BoundaryEdges.cxx \
-#SMDSControl_BoundaryFaces.cxx \
-#SMDSControl.cxx \
-#SMDSControl_MeshBoundary.cxx \
-#SMDSEdit_Transform.cxx \
-#SMDS_MeshNodeIDFactory.cxx \
-#SMDS_MeshPrism.cxx \
-#SMDS_MeshPyramid.cxx \
-#SMDS_MeshQuadrangle.cxx \
-#SMDS_MeshTetrahedron.cxx \
-#SMDS_MeshTriangle.cxx \
-
-
-LIB_CLIENT_IDL = 
-LIB_SERVER_IDL = 
-
-# Executables targets
-BIN =
-BIN_SRC =
-BIN_CLIENT_IDL = 
-BIN_SERVER_IDL = 
-
-# header files 
-EXPORT_HEADERS= \
-       SMDS_TypeOfPosition.hxx \
-       SMDSAbs_ElementType.hxx \
-       SMDS_EdgePosition.hxx \
-       SMDS_ElemIterator.hxx \
-       SMDS_FacePosition.hxx \
-       SMDS_Mesh.hxx \
-       SMDS_MeshEdge.hxx \
-       SMDS_MeshElement.hxx \
-       SMDS_MeshElementIDFactory.hxx \
-       SMDS_MeshFace.hxx \
-       SMDS_MeshGroup.hxx \
-       SMDS_MeshIDFactory.hxx \
-       SMDS_MeshNode.hxx \
-       SMDS_MeshObject.hxx \
-       SMDS_MeshVolume.hxx \
-       SMDS_Position.hxx \
-       SMDS_SpacePosition.hxx \
-       SMDS_VertexPosition.hxx \
-       SMDS_Iterator.hxx \
-       SMDS_IteratorOfElements.hxx \
-       SMDS_VolumeOfFaces.hxx \
-       SMDS_VolumeOfNodes.hxx \
-       SMDS_PolyhedralVolumeOfNodes.hxx \
-       SMDS_FaceOfEdges.hxx \
-       SMDS_FaceOfNodes.hxx \
-       SMDS_PolygonalFaceOfNodes.hxx \
-       SMDS_VolumeTool.hxx
-#      SMDS_Tria3OfNodes.hxx \
-#      SMDS_HexahedronOfNodes.hxx
-
-#SMDSControl_BoundaryEdges.hxx \
-#SMDSControl_BoundaryFaces.hxx \
-#SMDSControl.hxx \
-#SMDSControl_MeshBoundary.hxx \
-#SMDSEdit_Transform.hxx \
-#SMDS_MeshPrism.hxx \
-#SMDS_MeshPyramid.hxx \
-#SMDS_MeshQuadrangle.hxx \
-#SMDS_MeshTetrahedron.hxx \
-#SMDS_MeshTriangle.hxx \
-#SMDS_MeshNodeIDFactory.hxx
-
-# additionnal information to compil and link file
-CPPFLAGS += -I${KERNEL_ROOT_DIR}/include/salome $(OCC_INCLUDES) $(BOOST_CPPFLAGS)
-CXXFLAGS += -I${KERNEL_ROOT_DIR}/include/salome
-LDFLAGS  += -L${KERNEL_ROOT_DIR}/lib/salome $(OCC_KERNEL_LIBS)
-
-
-# additional file to be cleaned
-MOSTLYCLEAN =
-CLEAN =
-DISTCLEAN =
-
-@CONCLUDE@
diff --git a/src/SMDS/SMDSAbs_ElementType.hxx b/src/SMDS/SMDSAbs_ElementType.hxx
deleted file mode 100644 (file)
index c474a4e..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org or email : webmaster@opencascade.org 
-//
-//
-//
-//  File   : SMDSAbs_ElementType.hxx
-//  Module : SMESH
-
-#ifndef _SMDSAbs_ElementType_HeaderFile
-#define _SMDSAbs_ElementType_HeaderFile
-
-///////////////////////////////////////////////////////////////////////////////
-/// Type (node, edge, face or volume) of elements
-///////////////////////////////////////////////////////////////////////////////
-enum SMDSAbs_ElementType
-{
-       SMDSAbs_All,
-       SMDSAbs_Node,
-       SMDSAbs_Edge,
-       SMDSAbs_Face,
-       SMDSAbs_Volume
-};
-
-#endif
diff --git a/src/SMDS/SMDS_EdgePosition.cxx b/src/SMDS/SMDS_EdgePosition.cxx
deleted file mode 100644 (file)
index 82c92b3..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_EdgePosition.cxx
-//  Author : Jean-Michel BOULCOURT
-//  Module : SMESH
-
-#include "SMDS_EdgePosition.hxx"
-
-#include "utilities.h"
-
-using namespace std;
-
-//=======================================================================
-//function : SMDS_EdgePosition
-//purpose  : 
-//=======================================================================
-
-SMDS_EdgePosition::SMDS_EdgePosition(const int aEdgeId,
-       const double aUParam):SMDS_Position(aEdgeId), myUParameter(aUParam)
-{
-}
-
-//=======================================================================
-//function : Coords
-//purpose  : 
-//=======================================================================
-
-const double *SMDS_EdgePosition::Coords() const
-{
-       static double origin[]={0,0,0};
-       MESSAGE("SMDS_EdgePosition::Coords not implemented");
-       return origin;
-}
-
-/**
-*/
-SMDS_TypeOfPosition SMDS_EdgePosition::GetTypeOfPosition() const
-{
-       return SMDS_TOP_EDGE;
-}
-
-void SMDS_EdgePosition::SetUParameter(double aUparam)
-{
-       myUParameter = aUparam;
-}
-
-//=======================================================================
-//function : GetUParameter
-//purpose  : 
-//=======================================================================
-
-double SMDS_EdgePosition::GetUParameter() const 
-{
-       return myUParameter;
-}
diff --git a/src/SMDS/SMDS_EdgePosition.hxx b/src/SMDS/SMDS_EdgePosition.hxx
deleted file mode 100644 (file)
index 8491624..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_EdgePosition.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_EdgePosition_HeaderFile
-#define _SMDS_EdgePosition_HeaderFile
-
-#include "SMDS_Position.hxx"
-
-class SMDS_EdgePosition:public SMDS_Position
-{
-
-  public:
-       SMDS_EdgePosition(const int aEdgeId=0, const double aUParam=0);
-       const virtual double * Coords() const;
-       SMDS_TypeOfPosition GetTypeOfPosition() const;
-       void SetUParameter(double aUparam);
-       double GetUParameter() const;
-
-  private:
-
-       double myUParameter;
-
-};
-
-#endif
diff --git a/src/SMDS/SMDS_ElemIterator.hxx b/src/SMDS/SMDS_ElemIterator.hxx
deleted file mode 100755 (executable)
index c8432af..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_MeshElement.hxx
-//  Module : SMESH
-// Created:   12.01.05 18:02:52
-// Author:    Michael Sazonov
-
-#ifndef SMDS_ElemIterator_HeaderFile
-#define SMDS_ElemIterator_HeaderFile
-
-#include "SMDS_Iterator.hxx"
-#include <boost/shared_ptr.hpp>
-
-class SMDS_MeshElement;
-
-typedef SMDS_Iterator<const SMDS_MeshElement *> SMDS_ElemIterator;
-typedef boost::shared_ptr<SMDS_Iterator<const SMDS_MeshElement *> > SMDS_ElemIteratorPtr;
-
-#endif
diff --git a/src/SMDS/SMDS_FaceOfEdges.cxx b/src/SMDS/SMDS_FaceOfEdges.cxx
deleted file mode 100644 (file)
index 640c55d..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#endif
-
-#include "SMDS_FaceOfEdges.hxx"
-#include "SMDS_IteratorOfElements.hxx"
-#include "SMDS_MeshNode.hxx"
-
-using namespace std;
-
-//=======================================================================
-//function : NbEdges
-//purpose  : 
-//=======================================================================
-
-int SMDS_FaceOfEdges::NbEdges() const
-{
-       return myNbEdges;
-}
-
-int SMDS_FaceOfEdges::NbFaces() const
-{
-       return 1;
-}
-//=======================================================================
-//function : Print
-//purpose  : 
-//=======================================================================
-
-void SMDS_FaceOfEdges::Print(ostream & OS) const
-{
-       OS << "face <" << GetID() << " > : ";
-       int i;
-       for (i = 0; i < NbEdges() - 1; i++) OS << myEdges[i] << ",";
-       OS << myEdges[i] << ") " << endl;
-}
-
-SMDSAbs_ElementType SMDS_FaceOfEdges::GetType() const
-{
-       return SMDSAbs_Face;
-}
-
-//=======================================================================
-//function : elementsIterator
-//purpose  : 
-//=======================================================================
-
-class SMDS_FaceOfEdges_MyIterator:public SMDS_ElemIterator
-{
-  const SMDS_MeshEdge* const *mySet;
-  int myLength;
-  int index;
- public:
-  SMDS_FaceOfEdges_MyIterator(const SMDS_MeshEdge* const *s, int l):
-    mySet(s),myLength(l),index(0) {}
-
-  bool more()
-  {
-    return index<myLength;
-  }
-
-  const SMDS_MeshElement* next()
-  {
-    index++;
-    return mySet[index-1];
-  }    
-};
-
-SMDS_ElemIteratorPtr SMDS_FaceOfEdges::elementsIterator
-                         (SMDSAbs_ElementType type) const
-{
-  switch(type)
-  {
-  case SMDSAbs_Face:
-    return SMDS_MeshElement::elementsIterator(SMDSAbs_Face);
-  case SMDSAbs_Edge:
-    return SMDS_ElemIteratorPtr(new SMDS_FaceOfEdges_MyIterator(myEdges,myNbEdges));
-  default:
-    return SMDS_ElemIteratorPtr
-      (new SMDS_IteratorOfElements
-       (this,type, SMDS_ElemIteratorPtr
-        (new SMDS_FaceOfEdges_MyIterator(myEdges,myNbEdges))));
-  }
-}
-
-SMDS_FaceOfEdges::SMDS_FaceOfEdges(const SMDS_MeshEdge* edge1,
-                                   const SMDS_MeshEdge* edge2,
-                                   const SMDS_MeshEdge* edge3)
-{
-       myNbEdges = 3;
-       myEdges[0]=edge1;
-       myEdges[1]=edge2;
-       myEdges[2]=edge3;
-       myEdges[3]=0;
-}
-
-SMDS_FaceOfEdges::SMDS_FaceOfEdges(const SMDS_MeshEdge* edge1,
-                                   const SMDS_MeshEdge* edge2,
-                                   const SMDS_MeshEdge* edge3,
-                                   const SMDS_MeshEdge* edge4)
-{
-       myNbEdges = 4;
-       myEdges[0]=edge1;
-       myEdges[1]=edge2;
-       myEdges[2]=edge3;
-       myEdges[3]=edge4;       
-}
-
-/*bool operator<(const SMDS_FaceOfEdges& f1, const SMDS_FaceOfEdges& f2)
-{
-       set<SMDS_MeshNode> set1,set2;
-       SMDS_ElemIteratorPtr it;
-       const SMDS_MeshNode * n;
-
-       it=f1.nodesIterator();
-
-       while(it->more())
-       {
-               n=static_cast<const SMDS_MeshNode *>(it->next());
-               set1.insert(*n);
-       }
-
-       delete it;
-       it=f2.nodesIterator();
-       
-       while(it->more())
-       {       
-               n=static_cast<const SMDS_MeshNode *>(it->next());
-               set2.insert(*n);
-       }
-
-       delete it;
-       return set1<set2;       
-
-}*/
-
diff --git a/src/SMDS/SMDS_FaceOfEdges.hxx b/src/SMDS/SMDS_FaceOfEdges.hxx
deleted file mode 100644 (file)
index cd8e5dd..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _SMDS_FaceOfEdges_HeaderFile
-#define _SMDS_FaceOfEdges_HeaderFile
-
-#include "SMDS_MeshFace.hxx"
-#include "SMDS_MeshEdge.hxx"
-#include "SMDS_Iterator.hxx"
-
-#include <iostream>
-
-
-class SMDS_FaceOfEdges:public SMDS_MeshFace
-{
-  public:
-       void Print(std::ostream & OS) const;
-       SMDS_FaceOfEdges(const SMDS_MeshEdge* edge1,
-                         const SMDS_MeshEdge* edge2,
-                         const SMDS_MeshEdge* edge3);
-       SMDS_FaceOfEdges(const SMDS_MeshEdge* edge1,
-                         const SMDS_MeshEdge* edge2,
-                         const SMDS_MeshEdge* edge3,
-                         const SMDS_MeshEdge* edge4);
-               
-       SMDSAbs_ElementType GetType() const;
-       int NbEdges() const;
-       int NbFaces() const;
-//     friend bool operator<(const SMDS_FaceOfEdges& e1, const SMDS_FaceOfEdges& e2);
-
-  protected:
-       SMDS_ElemIteratorPtr
-               elementsIterator(SMDSAbs_ElementType type) const;
-
-  private:
-       const SMDS_MeshEdge* myEdges[4];
-        int                  myNbEdges;
-
-};
-
-#endif
diff --git a/src/SMDS/SMDS_FaceOfNodes.cxx b/src/SMDS/SMDS_FaceOfNodes.cxx
deleted file mode 100644 (file)
index aa68708..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#endif
-
-#include "SMDS_FaceOfNodes.hxx"
-#include "SMDS_IteratorOfElements.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "utilities.h"
-
-using namespace std;
-
-//=======================================================================
-//function : NbEdges
-//purpose  : 
-//=======================================================================
-
-int SMDS_FaceOfNodes::NbEdges() const
-{
-       return NbNodes();
-}
-
-int SMDS_FaceOfNodes::NbFaces() const
-{
-       return 1;
-}
-
-int SMDS_FaceOfNodes::NbNodes() const
-{
-       return myNbNodes;
-}
-
-//=======================================================================
-//function : Print
-//purpose  : 
-//=======================================================================
-
-void SMDS_FaceOfNodes::Print(ostream & OS) const
-{
-       OS << "face <" << GetID() << " > : ";
-       int i;
-       for (i = 0; i < NbNodes() - 1; i++) OS << myNodes[i] << ",";
-       OS << myNodes[i] << ") " << endl;
-}
-
-//=======================================================================
-//function : elementsIterator
-//purpose  : 
-//=======================================================================
-
-class SMDS_FaceOfNodes_MyIterator:public SMDS_ElemIterator
-{
-  const SMDS_MeshNode* const *mySet;
-  int myLength;
-  int index;
- public:
-  SMDS_FaceOfNodes_MyIterator(const SMDS_MeshNode* const *s, int l):
-    mySet(s),myLength(l),index(0) {}
-
-  bool more()
-  {
-    return index<myLength;
-  }
-
-  const SMDS_MeshElement* next()
-  {
-    index++;
-    return mySet[index-1];
-  }
-};
-
-SMDS_ElemIteratorPtr SMDS_FaceOfNodes::elementsIterator
-                         (SMDSAbs_ElementType type) const
-{
-  switch(type)
-  {
-  case SMDSAbs_Face:
-    return SMDS_MeshElement::elementsIterator(SMDSAbs_Face);
-  case SMDSAbs_Node:
-    return SMDS_ElemIteratorPtr(new SMDS_FaceOfNodes_MyIterator(myNodes,myNbNodes));
-  case SMDSAbs_Edge:
-    MESSAGE("Error : edge iterator for SMDS_FaceOfNodes not implemented");
-    break;
-  default:
-    return SMDS_ElemIteratorPtr
-      (new SMDS_IteratorOfElements
-       (this,type,SMDS_ElemIteratorPtr
-        (new SMDS_FaceOfNodes_MyIterator(myNodes,myNbNodes))));
-  }
-  return SMDS_ElemIteratorPtr();
-}
-
-SMDS_FaceOfNodes::SMDS_FaceOfNodes(const SMDS_MeshNode* node1,
-                                   const SMDS_MeshNode* node2,
-                                   const SMDS_MeshNode* node3)
-{
-       myNbNodes = 3;
-       myNodes[0]=node1;
-       myNodes[1]=node2;
-       myNodes[2]=node3;
-       myNodes[3]=0;
-}
-
-SMDS_FaceOfNodes::SMDS_FaceOfNodes(const SMDS_MeshNode* node1,
-                                   const SMDS_MeshNode* node2,
-                                   const SMDS_MeshNode* node3,
-                                   const SMDS_MeshNode* node4)
-{
-       myNbNodes = 4;
-       myNodes[0]=node1;
-       myNodes[1]=node2;
-       myNodes[2]=node3;
-       myNodes[3]=node4;       
-}
-bool SMDS_FaceOfNodes::ChangeNodes(const SMDS_MeshNode* nodes[],
-                                   const int            nbNodes)
-{
-  myNbNodes = nbNodes;
-  myNodes[0]=nodes[0];
-  myNodes[1]=nodes[1];
-  myNodes[2]=nodes[2];
-  if (nbNodes == 4)
-    myNodes[3]=nodes[3];
-  else if (nbNodes != 3)
-    return false;
-
-  return true;
-}
-
-/*bool operator<(const SMDS_FaceOfNodes& f1, const SMDS_FaceOfNodes& f2)
-{
-       set<SMDS_MeshNode> set1,set2;
-       SMDS_ElemIteratorPtr it;
-       const SMDS_MeshNode * n;
-
-       it=f1.nodesIterator();
-
-       while(it->more())
-       {
-               n=static_cast<const SMDS_MeshNode *>(it->next());
-               set1.insert(*n);
-       }
-
-       delete it;
-       it=f2.nodesIterator();
-       
-       while(it->more())
-       {       
-               n=static_cast<const SMDS_MeshNode *>(it->next());
-               set2.insert(*n);
-       }
-
-       delete it;
-       return set1<set2;       
-
-}*/
-
diff --git a/src/SMDS/SMDS_FaceOfNodes.hxx b/src/SMDS/SMDS_FaceOfNodes.hxx
deleted file mode 100644 (file)
index 2901951..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _SMDS_FaceOfNodes_HeaderFile
-#define _SMDS_FaceOfNodes_HeaderFile
-
-#include "SMDS_MeshFace.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_Iterator.hxx"
-
-#include <iostream>
-
-class SMDS_FaceOfNodes:public SMDS_MeshFace
-{
-  public:
-       void Print(std::ostream & OS) const;
-       SMDS_FaceOfNodes(const SMDS_MeshNode* node1,
-                         const SMDS_MeshNode* node2,
-                         const SMDS_MeshNode* node3);
-       SMDS_FaceOfNodes(const SMDS_MeshNode* node1,
-                         const SMDS_MeshNode* node2,
-                         const SMDS_MeshNode* node3,
-                         const SMDS_MeshNode* node4);
-        bool ChangeNodes(const SMDS_MeshNode* nodes[],
-                         const int            nbNodes);
-       int NbEdges() const;
-       int NbFaces() const;
-       int NbNodes() const;
-  protected:
-       SMDS_ElemIteratorPtr
-               elementsIterator(SMDSAbs_ElementType type) const;
-
-  private:
-       const SMDS_MeshNode* myNodes[4];
-        int                  myNbNodes;
-
-};
-
-#endif
diff --git a/src/SMDS/SMDS_FacePosition.cxx b/src/SMDS/SMDS_FacePosition.cxx
deleted file mode 100644 (file)
index c97e64f..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_FacePosition.cxx
-//  Author : Jean-Michel BOULCOURT
-//  Module : SMESH
-
-#include "SMDS_FacePosition.hxx"
-
-#include "utilities.h"
-
-using namespace std;
-
-//=======================================================================
-//function : SMDS_FacePosition
-//purpose  : 
-//=======================================================================
-
-SMDS_FacePosition::SMDS_FacePosition(const int aEdgeId,
-                                    const double aUParam,
-                                    const double aVParam)
-  :SMDS_Position(aEdgeId),
-   myUParameter(aUParam),myVParameter(aVParam)
-{
-}
-
-//=======================================================================
-//function : Coords
-//purpose  : 
-//=======================================================================
-const double *SMDS_FacePosition::Coords() const
-{
-       static double origin[]={0,0,0};
-       MESSAGE("SMDS_EdgePosition::Coords not implemented");
-       return origin;
-}
-
-/**
-*/
-SMDS_TypeOfPosition SMDS_FacePosition::GetTypeOfPosition() const
-{
-       return SMDS_TOP_FACE;
-}
-
-void SMDS_FacePosition::SetUParameter(double aUparam)
-{
-       myUParameter = aUparam;
-}
-
-//=======================================================================
-//function : SetVParameter
-//purpose  : 
-//=======================================================================
-
-void SMDS_FacePosition::SetVParameter(double aVparam)
-{
-       myVParameter = aVparam;
-}
-
-//=======================================================================
-//function : GetUParameter
-//purpose  : 
-//=======================================================================
-
-double SMDS_FacePosition::GetUParameter() const 
-{
-       return myUParameter;
-}
-
-//=======================================================================
-//function : GetVParameter
-//purpose  : 
-//=======================================================================
-
-double SMDS_FacePosition::GetVParameter() const 
-{
-       return myVParameter;
-}
diff --git a/src/SMDS/SMDS_FacePosition.hxx b/src/SMDS/SMDS_FacePosition.hxx
deleted file mode 100644 (file)
index 255fd05..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_FacePosition.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_FacePosition_HeaderFile
-#define _SMDS_FacePosition_HeaderFile
-
-#include "SMDS_Position.hxx"
-
-class SMDS_FacePosition:public SMDS_Position
-{
-
-  public:
-       SMDS_FacePosition(int aFaceId=0, double aUParam=0,
-               double aVParam=0);
-       const virtual double * Coords() const;
-       SMDS_TypeOfPosition GetTypeOfPosition() const;
-       void SetUParameter(double aUparam);
-       void SetVParameter(double aVparam);
-       double GetUParameter() const;
-       double GetVParameter() const;
-
-  private:
-       double myUParameter;
-       double myVParameter;
-};
-#endif
diff --git a/src/SMDS/SMDS_Iterator.hxx b/src/SMDS/SMDS_Iterator.hxx
deleted file mode 100644 (file)
index 264438c..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _SMDS_Iterator_HeaderFile
-#define _SMDS_Iterator_HeaderFile
-
-///////////////////////////////////////////////////////////////////////////////
-///Abstract class for iterators
-///@author Jerome Robert
-///////////////////////////////////////////////////////////////////////////////
-template<typename VALUE> class SMDS_Iterator
-{
-  public:
-       /// Return true if and only if there are other object in this iterator
-       virtual bool more()=0;
-       
-       /// Return the current object and step to the next one
-       virtual VALUE next()=0;
-       
-       /// Delete the current element and step to the next one
-       virtual void remove(){}
-       
-       /// Provide virtual destructor just for case if some derived iterator
-        /// must have a destructor
-       virtual ~SMDS_Iterator(){}
-};
-
-#endif
diff --git a/src/SMDS/SMDS_IteratorOfElements.cxx b/src/SMDS/SMDS_IteratorOfElements.cxx
deleted file mode 100644 (file)
index 472ae0d..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#endif
-
-#include "SMDS_IteratorOfElements.hxx"
-
-bool SMDS_IteratorOfElements::subMore()
-{
-       if((t2Iterator.get()==NULL)||(!t2Iterator->more()))
-       {
-               if(t1Iterator->more())
-               {
-                       t2Iterator=t1Iterator->next()->elementsIterator(myType);
-                       return subMore();
-               }
-               else return false;
-       }
-       else return true;
-}
-
-const SMDS_MeshElement * SMDS_IteratorOfElements::subNext()
-{
-       if((t2Iterator.get()==NULL)||(!t2Iterator->more()))
-               if(t1Iterator->more())
-                       t2Iterator=t1Iterator->next()->elementsIterator(myType);
-       return t2Iterator->next();
-}
-
-/////////////////////////////////////////////////////////////////////////////
-/// Create an iterator which look for elements of type type which are linked 
-/// to the element element. it is the iterator to get connectivity of element
-//////////////////////////////////////////////////////////////////////////////
-SMDS_IteratorOfElements::SMDS_IteratorOfElements(const SMDS_MeshElement * element,
-                                                 SMDSAbs_ElementType type,
-                                                 const SMDS_ElemIteratorPtr& it)
-     : t1Iterator(it),
-       t2Iterator(SMDS_ElemIteratorPtr((SMDS_ElemIterator*)NULL)),
-       myType(type), myElement(element),
-       myProxyElement(NULL)
-{
-       while(subMore())
-               alreadyReturnedElements.insert(subNext());
-       itAlreadyReturned= alreadyReturnedElements.begin();
-       switch(myElement->GetType())
-       {
-       case SMDSAbs_Node: 
-       case SMDSAbs_Edge: myReverseIteration=true; break;
-       case SMDSAbs_Face: myReverseIteration=(type==SMDSAbs_Volume); break;
-       default: myReverseIteration=false;
-       }       
-}
-
-bool SMDS_IteratorOfElements::more()
-{
-       if(myProxyElement==NULL)
-       {
-               while(itAlreadyReturned!=alreadyReturnedElements.end())
-               {
-                       myProxyElement=*itAlreadyReturned;
-                       itAlreadyReturned++;    
-
-                       if(myReverseIteration)
-                       {
-                               SMDS_ElemIteratorPtr it=
-                                       myProxyElement->elementsIterator(myElement->GetType());
-                               while(it->more())
-                               {                               
-                                       if(it->next()==myElement) return true;
-                               }
-                       }
-                       else return true;
-               }
-               myProxyElement=NULL;
-               return false;
-       }
-       else return true;
-}
-
-const SMDS_MeshElement * SMDS_IteratorOfElements::next()
-{
-       more();
-       const SMDS_MeshElement *e=myProxyElement;
-       myProxyElement=NULL;
-       return e;
-}
diff --git a/src/SMDS/SMDS_IteratorOfElements.hxx b/src/SMDS/SMDS_IteratorOfElements.hxx
deleted file mode 100644 (file)
index faf777d..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "SMDS_Iterator.hxx"
-#include "SMDS_MeshElement.hxx"
-#include <set>
-
-
-class SMDS_IteratorOfElements:public SMDS_ElemIterator
-{
-  public:
-/////////////////////////////////////////////////////////////////////////////
-/// Create an iterator which look for elements of type type which are linked 
-/// to the element element. it is the iterator to get connectivity of element
-//////////////////////////////////////////////////////////////////////////////
-       SMDS_IteratorOfElements(const SMDS_MeshElement * element,
-                                SMDSAbs_ElementType type,
-                                const SMDS_ElemIteratorPtr& it);
-       bool more();
-       const SMDS_MeshElement * next();
-
-  private:
-       SMDS_ElemIteratorPtr t2Iterator;
-       SMDS_ElemIteratorPtr t1Iterator;
-       SMDSAbs_ElementType myType;     
-       const SMDS_MeshElement * myProxyElement;
-       const SMDS_MeshElement * myElement;             
-       bool myReverseIteration;
-
-       std::set<const SMDS_MeshElement*> alreadyReturnedElements;
-       std::set<const SMDS_MeshElement*>::iterator itAlreadyReturned;  
-       bool subMore();
-       const SMDS_MeshElement * subNext();
-};
diff --git a/src/SMDS/SMDS_Mesh.cxx b/src/SMDS/SMDS_Mesh.cxx
deleted file mode 100644 (file)
index 6381e54..0000000
+++ /dev/null
@@ -1,2203 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#endif
-
-#include "utilities.h"
-#include "SMDS_Mesh.hxx"
-#include "SMDS_VolumeOfNodes.hxx"
-#include "SMDS_VolumeOfFaces.hxx"
-#include "SMDS_FaceOfNodes.hxx"
-#include "SMDS_FaceOfEdges.hxx"
-#include "SMDS_PolyhedralVolumeOfNodes.hxx"
-#include "SMDS_PolygonalFaceOfNodes.hxx"
-
-#include <algorithm>
-#include <map>
-using namespace std;
-
-///////////////////////////////////////////////////////////////////////////////
-/// Create a new mesh object
-///////////////////////////////////////////////////////////////////////////////
-SMDS_Mesh::SMDS_Mesh()
-       :myParent(NULL),
-        myNodeIDFactory(new SMDS_MeshElementIDFactory()),
-       myElementIDFactory(new SMDS_MeshElementIDFactory()),
-       myHasConstructionEdges(false), myHasConstructionFaces(false),
-       myHasInverseElements(true)
-{
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Create a new child mesh
-/// Note that the tree structure of SMDS_Mesh seems to be unused in this version
-/// (2003-09-08) of SMESH
-///////////////////////////////////////////////////////////////////////////////
-SMDS_Mesh::SMDS_Mesh(SMDS_Mesh * parent)
-       :myParent(parent), myNodeIDFactory(parent->myNodeIDFactory),
-       myElementIDFactory(parent->myElementIDFactory),
-       myHasConstructionEdges(false), myHasConstructionFaces(false),
-       myHasInverseElements(true)
-{
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create a submesh and add it to the current mesh
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_Mesh *SMDS_Mesh::AddSubMesh()
-{
-       SMDS_Mesh *submesh = new SMDS_Mesh(this);
-       myChildren.insert(myChildren.end(), submesh);
-       return submesh;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///create a MeshNode and add it to the current Mesh
-///An ID is automatically assigned to the node.
-///@return : The created node
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshNode * SMDS_Mesh::AddNode(double x, double y, double z)
-{
-  return SMDS_Mesh::AddNodeWithID(x,y,z,myNodeIDFactory->GetFreeID());
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///create a MeshNode and add it to the current Mesh
-///@param ID : The ID of the MeshNode to create
-///@return : The created node or NULL if a node with this ID already exists
-///////////////////////////////////////////////////////////////////////////////
-SMDS_MeshNode * SMDS_Mesh::AddNodeWithID(double x, double y, double z, int ID)
-{
-  // find the MeshNode corresponding to ID
-  const SMDS_MeshElement *node = myNodeIDFactory->MeshElement(ID);
-  if(!node){
-    SMDS_MeshNode * node=new SMDS_MeshNode(x, y, z);
-    myNodes.Add(node);
-    myNodeIDFactory->BindID(ID,node);
-    return node;
-  }else
-    return NULL;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// create a MeshEdge and add it to the current Mesh
-/// @return : The created MeshEdge
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshEdge* SMDS_Mesh::AddEdgeWithID(int idnode1, int idnode2, int ID) 
-{
-  SMDS_MeshNode * node1 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode1);
-  SMDS_MeshNode * node2 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode2);
-  if(!node1 || !node2) return NULL;
-  return SMDS_Mesh::AddEdgeWithID(node1, node2, ID);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// create a MeshEdge and add it to the current Mesh
-/// @return : The created MeshEdge
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshEdge* SMDS_Mesh::AddEdge(const SMDS_MeshNode * node1,
-                                 const SMDS_MeshNode * node2)
-{
-  return SMDS_Mesh::AddEdgeWithID(node1, node2, myElementIDFactory->GetFreeID());
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Create a new edge and at it to the mesh
-/// @param idnode1 ID of the first node
-/// @param idnode2 ID of the second node
-/// @param ID ID of the edge to create
-/// @return The created edge or NULL if an element with this ID already exists or
-/// if input nodes are not found.
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshEdge* SMDS_Mesh::AddEdgeWithID(const SMDS_MeshNode * n1,
-                                       const SMDS_MeshNode * n2, 
-                                       int ID)
-{
-  SMDS_MeshEdge * edge=new SMDS_MeshEdge(n1,n2);
-  if(myElementIDFactory->BindID(ID, edge)) {
-    SMDS_MeshNode *node1,*node2;
-    node1=const_cast<SMDS_MeshNode*>(n1);
-    node2=const_cast<SMDS_MeshNode*>(n2);
-    node1->AddInverseElement(edge);
-    node2->AddInverseElement(edge);            
-    myEdges.Add(edge);
-    return edge;
-  } 
-  else {
-    delete edge;
-    return NULL;
-  }
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Add a triangle defined by its nodes. An ID is automatically affected to the
-/// Created face
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshFace* SMDS_Mesh::AddFace(const SMDS_MeshNode * n1,
-                                 const SMDS_MeshNode * n2,
-                                 const SMDS_MeshNode * n3)
-{
-  return SMDS_Mesh::AddFaceWithID(n1,n2,n3, myElementIDFactory->GetFreeID());
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Add a triangle defined by its nodes IDs
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(int idnode1, int idnode2, int idnode3, int ID)
-{
-  SMDS_MeshNode * node1 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode1);
-  SMDS_MeshNode * node2 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode2);
-  SMDS_MeshNode * node3 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode3);
-  if(!node1 || !node2 || !node3) return NULL;
-  return SMDS_Mesh::AddFaceWithID(node1, node2, node3, ID);    
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Add a triangle defined by its nodes
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
-                                        const SMDS_MeshNode * n2,
-                                        const SMDS_MeshNode * n3,
-                                        int ID)
-{
-  SMDS_MeshFace * face=createTriangle(n1, n2, n3);
-
-  if (!registerElement(ID, face)) {
-    RemoveElement(face, false);
-    face = NULL;
-  }
-  return face;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Add a quadrangle defined by its nodes. An ID is automatically affected to the
-/// created face
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshFace* SMDS_Mesh::AddFace(const SMDS_MeshNode * n1,
-                                 const SMDS_MeshNode * n2,
-                                 const SMDS_MeshNode * n3,
-                                 const SMDS_MeshNode * n4)
-{
-  return SMDS_Mesh::AddFaceWithID(n1,n2,n3, n4, myElementIDFactory->GetFreeID());
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Add a quadrangle defined by its nodes IDs
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(int idnode1, 
-                                       int idnode2, 
-                                       int idnode3,
-                                       int idnode4, 
-                                       int ID)
-{
-  SMDS_MeshNode *node1, *node2, *node3, *node4;
-  node1 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode1);
-  node2 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode2);
-  node3 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode3);
-  node4 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode4);
-  if(!node1 || !node2 || !node3 || !node4) return NULL;
-  return SMDS_Mesh::AddFaceWithID(node1, node2, node3, node4, ID);     
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Add a quadrangle defined by its nodes
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
-                                        const SMDS_MeshNode * n2,
-                                        const SMDS_MeshNode * n3,
-                                        const SMDS_MeshNode * n4,
-                                        int ID)
-{
-  SMDS_MeshFace * face=createQuadrangle(n1, n2, n3, n4);
-
-  if (!registerElement(ID, face)) {
-    RemoveElement(face, false);
-    face = NULL;
-  }
-  return face;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Add a triangle defined by its edges. An ID is automatically assigned to the
-/// Created face
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshFace* SMDS_Mesh::AddFace(const SMDS_MeshEdge * e1,
-                                  const SMDS_MeshEdge * e2,
-                                  const SMDS_MeshEdge * e3)
-{
-  if (!hasConstructionEdges())
-    return NULL;
-  return AddFaceWithID(e1,e2,e3, myElementIDFactory->GetFreeID());
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Add a triangle defined by its edges
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshEdge * e1,
-                                        const SMDS_MeshEdge * e2,
-                                        const SMDS_MeshEdge * e3,
-                                        int ID)
-{
-  if (!hasConstructionEdges())
-    return NULL;
-  SMDS_MeshFace * face = new SMDS_FaceOfEdges(e1,e2,e3);
-  myFaces.Add(face);
-
-  if (!registerElement(ID, face)) {
-    RemoveElement(face, false);
-    face = NULL;
-  }
-  return face;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Add a quadrangle defined by its edges. An ID is automatically assigned to the
-/// Created face
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshFace* SMDS_Mesh::AddFace(const SMDS_MeshEdge * e1,
-                                  const SMDS_MeshEdge * e2,
-                                  const SMDS_MeshEdge * e3,
-                                  const SMDS_MeshEdge * e4)
-{
-  if (!hasConstructionEdges())
-    return NULL;
-  return AddFaceWithID(e1,e2,e3,e4, myElementIDFactory->GetFreeID());
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Add a quadrangle defined by its edges
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshEdge * e1,
-                                        const SMDS_MeshEdge * e2,
-                                        const SMDS_MeshEdge * e3,
-                                        const SMDS_MeshEdge * e4,
-                                        int ID)
-{
-  if (!hasConstructionEdges())
-    return NULL;
-  SMDS_MeshFace * face = new SMDS_FaceOfEdges(e1,e2,e3,e4);
-  myFaces.Add(face);
-
-  if (!registerElement(ID, face))
-  {
-    RemoveElement(face, false);
-    face = NULL;
-  }
-  return face;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create a new tetrahedron and add it to the mesh. 
-///@return The created tetrahedron 
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume* SMDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                     const SMDS_MeshNode * n2, 
-                                     const SMDS_MeshNode * n3,
-                                     const SMDS_MeshNode * n4)
-{
-  int ID = myElementIDFactory->GetFreeID();
-  SMDS_MeshVolume * v = SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, ID);
-  if(v==NULL) myElementIDFactory->ReleaseID(ID);
-  return v;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create a new tetrahedron and add it to the mesh. 
-///@param ID The ID of the new volume
-///@return The created tetrahedron or NULL if an element with this ID already exists
-///or if input nodes are not found.
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume * SMDS_Mesh::AddVolumeWithID(int idnode1, 
-                                            int idnode2,
-                                            int idnode3, 
-                                            int idnode4, 
-                                            int ID)
-{
-  SMDS_MeshNode *node1, *node2, *node3, *node4;
-  node1 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode1);
-  node2 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode2);
-  node3 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode3);
-  node4 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode4);
-  if(!node1 || !node2 || !node3 || !node4) return NULL;
-  return SMDS_Mesh::AddVolumeWithID(node1, node2, node3, node4, ID);
-}
-       
-///////////////////////////////////////////////////////////////////////////////
-///Create a new tetrahedron and add it to the mesh. 
-///@param ID The ID of the new volume
-///@return The created tetrahedron 
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-                                            const SMDS_MeshNode * n2,
-                                            const SMDS_MeshNode * n3,
-                                            const SMDS_MeshNode * n4,
-                                            int ID)
-{
-  SMDS_MeshVolume* volume;
-  if(hasConstructionFaces()) {
-    SMDS_MeshFace * f1=FindFaceOrCreate(n1,n2,n3);
-    SMDS_MeshFace * f2=FindFaceOrCreate(n1,n2,n4);
-    SMDS_MeshFace * f3=FindFaceOrCreate(n1,n3,n4);
-    SMDS_MeshFace * f4=FindFaceOrCreate(n2,n3,n4);
-    volume=new SMDS_VolumeOfFaces(f1,f2,f3,f4);
-    myVolumes.Add(volume);
-  }
-  else if(hasConstructionEdges()) {
-    MESSAGE("Error : Not implemented");
-    return NULL;
-  }
-  else {
-    volume=new SMDS_VolumeOfNodes(n1,n2,n3,n4);
-    myVolumes.Add(volume);
-  }
-
-  if (!registerElement(ID, volume)) {
-    RemoveElement(volume, false);
-    volume = NULL;
-  }
-  return volume;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create a new pyramid and add it to the mesh. 
-///Nodes 1,2,3 and 4 define the base of the pyramid
-///@return The created pyramid 
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume* SMDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                     const SMDS_MeshNode * n2, 
-                                     const SMDS_MeshNode * n3,
-                                     const SMDS_MeshNode * n4, 
-                                     const SMDS_MeshNode * n5)
-{
-  int ID = myElementIDFactory->GetFreeID();
-  SMDS_MeshVolume * v = SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, n5, ID);
-  if(v==NULL) myElementIDFactory->ReleaseID(ID);
-  return v;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create a new pyramid and add it to the mesh. 
-///Nodes 1,2,3 and 4 define the base of the pyramid
-///@param ID The ID of the new volume
-///@return The created pyramid or NULL if an element with this ID already exists
-///or if input nodes are not found.
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume * SMDS_Mesh::AddVolumeWithID(int idnode1, 
-                                            int idnode2,
-                                            int idnode3, 
-                                            int idnode4, 
-                                            int idnode5, 
-                                            int ID)
-{
-  SMDS_MeshNode *node1, *node2, *node3, *node4, *node5;
-  node1 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode1);
-  node2 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode2);
-  node3 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode3);
-  node4 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode4);
-  node5 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode5);
-  if(!node1 || !node2 || !node3 || !node4 || !node5) return NULL;
-  return SMDS_Mesh::AddVolumeWithID(node1, node2, node3, node4, node5, ID);
-}
-       
-///////////////////////////////////////////////////////////////////////////////
-///Create a new pyramid and add it to the mesh.
-///Nodes 1,2,3 and 4 define the base of the pyramid
-///@param ID The ID of the new volume
-///@return The created pyramid
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-                                            const SMDS_MeshNode * n2,
-                                            const SMDS_MeshNode * n3,
-                                            const SMDS_MeshNode * n4,
-                                            const SMDS_MeshNode * n5,
-                                            int ID)
-{
-  SMDS_MeshVolume* volume;
-  if(hasConstructionFaces()) {
-    SMDS_MeshFace * f1=FindFaceOrCreate(n1,n2,n3,n4);
-    SMDS_MeshFace * f2=FindFaceOrCreate(n1,n2,n5);
-    SMDS_MeshFace * f3=FindFaceOrCreate(n2,n3,n5);
-    SMDS_MeshFace * f4=FindFaceOrCreate(n3,n4,n5);
-    volume=new SMDS_VolumeOfFaces(f1,f2,f3,f4);
-    myVolumes.Add(volume);
-  }
-  else if(hasConstructionEdges()) {
-    MESSAGE("Error : Not implemented");
-    return NULL;
-  }
-  else {
-    volume=new SMDS_VolumeOfNodes(n1,n2,n3,n4,n5);
-    myVolumes.Add(volume);
-  }
-
-  if (!registerElement(ID, volume)) {
-    RemoveElement(volume, false);
-    volume = NULL;
-  }
-  return volume;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create a new prism and add it to the mesh. 
-///Nodes 1,2,3 is a triangle and 1,2,5,4 a quadrangle.
-///@return The created prism 
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume* SMDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                     const SMDS_MeshNode * n2, 
-                                     const SMDS_MeshNode * n3,
-                                     const SMDS_MeshNode * n4, 
-                                     const SMDS_MeshNode * n5,
-                                     const SMDS_MeshNode * n6)
-{
-  int ID = myElementIDFactory->GetFreeID();
-  SMDS_MeshVolume * v = SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, n5, n6, ID);
-  if(v==NULL) myElementIDFactory->ReleaseID(ID);
-  return v;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create a new prism and add it to the mesh. 
-///Nodes 1,2,3 is a triangle and 1,2,5,4 a quadrangle.
-///@param ID The ID of the new volume
-///@return The created prism or NULL if an element with this ID already exists
-///or if input nodes are not found.
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume * SMDS_Mesh::AddVolumeWithID(int idnode1, 
-                                            int idnode2,
-                                            int idnode3, 
-                                            int idnode4, 
-                                            int idnode5, 
-                                            int idnode6, 
-                                            int ID)
-{
-  SMDS_MeshNode *node1, *node2, *node3, *node4, *node5, *node6;
-  node1 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode1);
-  node2 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode2);
-  node3 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode3);
-  node4 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode4);
-  node5 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode5);
-  node6 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode6);
-  if(!node1 || !node2 || !node3 || !node4 || !node5 || !node6) return NULL;
-  return SMDS_Mesh::AddVolumeWithID(node1, node2, node3, node4, node5, node6, ID);
-}
-       
-///////////////////////////////////////////////////////////////////////////////
-///Create a new prism and add it to the mesh.
-///Nodes 1,2,3 is a triangle and 1,2,5,4 a quadrangle.
-///@param ID The ID of the new volume
-///@return The created prism
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-                                            const SMDS_MeshNode * n2,
-                                            const SMDS_MeshNode * n3,
-                                            const SMDS_MeshNode * n4,
-                                            const SMDS_MeshNode * n5,
-                                            const SMDS_MeshNode * n6,
-                                            int ID)
-{
-  SMDS_MeshVolume* volume;
-  if(hasConstructionFaces()) {
-    SMDS_MeshFace * f1=FindFaceOrCreate(n1,n2,n3);
-    SMDS_MeshFace * f2=FindFaceOrCreate(n4,n5,n6);
-    SMDS_MeshFace * f3=FindFaceOrCreate(n1,n4,n5,n2);
-    SMDS_MeshFace * f4=FindFaceOrCreate(n2,n5,n6,n3);
-    SMDS_MeshFace * f5=FindFaceOrCreate(n3,n6,n4,n1);
-    volume=new SMDS_VolumeOfFaces(f1,f2,f3,f4,f5);
-    myVolumes.Add(volume);
-  }
-  else if(hasConstructionEdges()) {
-    MESSAGE("Error : Not implemented");
-    return NULL;
-  }
-  else {
-    volume=new SMDS_VolumeOfNodes(n1,n2,n3,n4,n5,n6);
-    myVolumes.Add(volume);
-  }
-
-  if (!registerElement(ID, volume)) {
-    RemoveElement(volume, false);
-    volume = NULL;
-  }
-  return volume;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create a new hexahedron and add it to the mesh. 
-///Nodes 1,2,3,4 and 5,6,7,8 are quadrangle and 5,1 and 7,3 are an edges.
-///@return The created hexahedron 
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume* SMDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                     const SMDS_MeshNode * n2, 
-                                     const SMDS_MeshNode * n3,
-                                     const SMDS_MeshNode * n4, 
-                                     const SMDS_MeshNode * n5,
-                                     const SMDS_MeshNode * n6, 
-                                     const SMDS_MeshNode * n7,
-                                     const SMDS_MeshNode * n8)
-{
-  int ID = myElementIDFactory->GetFreeID();
-  SMDS_MeshVolume * v = SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, n5, n6, n7, n8, ID);
-  if(v==NULL) myElementIDFactory->ReleaseID(ID);
-  return v;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create a new hexahedron and add it to the mesh. 
-///Nodes 1,2,3,4 and 5,6,7,8 are quadrangle and 5,1 and 7,3 are an edges.
-///@param ID The ID of the new volume
-///@return The created hexahedron or NULL if an element with this ID already
-///exists or if input nodes are not found.
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume * SMDS_Mesh::AddVolumeWithID(int idnode1, 
-                                            int idnode2,
-                                            int idnode3, 
-                                            int idnode4, 
-                                            int idnode5, 
-                                            int idnode6, 
-                                            int idnode7,
-                                            int idnode8, 
-                                            int ID)
-{
-  SMDS_MeshNode *node1, *node2, *node3, *node4, *node5, *node6, *node7, *node8;
-  node1 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode1);
-  node2 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode2);
-  node3 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode3);
-  node4 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode4);
-  node5 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode5);
-  node6 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode6);
-  node7 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode7);
-  node8 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(idnode8);
-  if(!node1 || !node2 || !node3 || !node4 || !node5 || !node6 || !node7 || !node8)
-    return NULL;
-  return SMDS_Mesh::AddVolumeWithID(node1, node2, node3, node4, node5, node6,
-                                    node7, node8, ID);
-}
-       
-///////////////////////////////////////////////////////////////////////////////
-///Create a new hexahedron and add it to the mesh.
-///Nodes 1,2,3,4 and 5,6,7,8 are quadrangle and 5,1 and 7,3 are an edges.
-///@param ID The ID of the new volume
-///@return The created prism or NULL if an element with this ID already exists
-///or if input nodes are not found.
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-                                            const SMDS_MeshNode * n2,
-                                            const SMDS_MeshNode * n3,
-                                            const SMDS_MeshNode * n4,
-                                            const SMDS_MeshNode * n5,
-                                            const SMDS_MeshNode * n6,
-                                            const SMDS_MeshNode * n7,
-                                            const SMDS_MeshNode * n8,
-                                            int ID)
-{
-  SMDS_MeshVolume* volume;
-  if(hasConstructionFaces()) {
-    SMDS_MeshFace * f1=FindFaceOrCreate(n1,n2,n3,n4);
-    SMDS_MeshFace * f2=FindFaceOrCreate(n5,n6,n7,n8);
-    SMDS_MeshFace * f3=FindFaceOrCreate(n1,n4,n8,n5);
-    SMDS_MeshFace * f4=FindFaceOrCreate(n1,n2,n6,n5);
-    SMDS_MeshFace * f5=FindFaceOrCreate(n2,n3,n7,n6);
-    SMDS_MeshFace * f6=FindFaceOrCreate(n3,n4,n8,n7);
-    volume=new SMDS_VolumeOfFaces(f1,f2,f3,f4,f5,f6);
-    myVolumes.Add(volume);
-  }
-  else if(hasConstructionEdges()) {
-    MESSAGE("Error : Not implemented");
-    return NULL;
-  }
-  else {
-//    volume=new SMDS_HexahedronOfNodes(n1,n2,n3,n4,n5,n6,n7,n8);
-    volume=new SMDS_VolumeOfNodes(n1,n2,n3,n4,n5,n6,n7,n8);
-    myVolumes.Add(volume);
-  }
-
-  if (!registerElement(ID, volume)) {
-    RemoveElement(volume, false);
-    volume = NULL;
-  }
-  return volume;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create a new tetrahedron defined by its faces and add it to the mesh.
-///@return The created tetrahedron
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume* SMDS_Mesh::AddVolume(const SMDS_MeshFace * f1,
-                                      const SMDS_MeshFace * f2,
-                                      const SMDS_MeshFace * f3,
-                                      const SMDS_MeshFace * f4)
-{
-  if (!hasConstructionFaces())
-    return NULL;
-  return AddVolumeWithID(f1,f2,f3,f4, myElementIDFactory->GetFreeID());
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create a new tetrahedron defined by its faces and add it to the mesh.
-///@param ID The ID of the new volume
-///@return The created tetrahedron 
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshFace * f1,
-                                            const SMDS_MeshFace * f2,
-                                            const SMDS_MeshFace * f3,
-                                            const SMDS_MeshFace * f4,
-                                            int ID)
-{
-  if (!hasConstructionFaces())
-    return NULL;
-  SMDS_MeshVolume * volume = new SMDS_VolumeOfFaces(f1,f2,f3,f4);
-  myVolumes.Add(volume);
-
-  if (!registerElement(ID, volume)) {
-    RemoveElement(volume, false);
-    volume = NULL;
-  }
-  return volume;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create a new pyramid defined by its faces and add it to the mesh.
-///@return The created pyramid
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume* SMDS_Mesh::AddVolume(const SMDS_MeshFace * f1,
-                                      const SMDS_MeshFace * f2,
-                                      const SMDS_MeshFace * f3,
-                                      const SMDS_MeshFace * f4,
-                                      const SMDS_MeshFace * f5)
-{
-  if (!hasConstructionFaces())
-    return NULL;
-  return AddVolumeWithID(f1,f2,f3,f4,f5, myElementIDFactory->GetFreeID());
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create a new pyramid defined by its faces and add it to the mesh.
-///@param ID The ID of the new volume
-///@return The created pyramid 
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshFace * f1,
-                                            const SMDS_MeshFace * f2,
-                                            const SMDS_MeshFace * f3,
-                                            const SMDS_MeshFace * f4,
-                                            const SMDS_MeshFace * f5,
-                                            int ID)
-{
-  if (!hasConstructionFaces())
-    return NULL;
-  SMDS_MeshVolume * volume = new SMDS_VolumeOfFaces(f1,f2,f3,f4,f5);
-  myVolumes.Add(volume);
-
-  if (!registerElement(ID, volume)) {
-    RemoveElement(volume, false);
-    volume = NULL;
-  }
-  return volume;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create a new prism defined by its faces and add it to the mesh.
-///@return The created prism
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume* SMDS_Mesh::AddVolume(const SMDS_MeshFace * f1,
-                                      const SMDS_MeshFace * f2,
-                                      const SMDS_MeshFace * f3,
-                                      const SMDS_MeshFace * f4,
-                                      const SMDS_MeshFace * f5,
-                                      const SMDS_MeshFace * f6)
-{
-  if (!hasConstructionFaces())
-    return NULL;
-  return AddVolumeWithID(f1,f2,f3,f4,f5,f6, myElementIDFactory->GetFreeID());
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create a new prism defined by its faces and add it to the mesh.
-///@param ID The ID of the new volume
-///@return The created prism 
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshFace * f1,
-                                            const SMDS_MeshFace * f2,
-                                            const SMDS_MeshFace * f3,
-                                            const SMDS_MeshFace * f4,
-                                            const SMDS_MeshFace * f5,
-                                            const SMDS_MeshFace * f6,
-                                            int ID)
-{
-  if (!hasConstructionFaces())
-    return NULL;
-  SMDS_MeshVolume * volume = new SMDS_VolumeOfFaces(f1,f2,f3,f4,f5,f6);
-  myVolumes.Add(volume);
-
-  if (!registerElement(ID, volume)) {
-    RemoveElement(volume, false);
-    volume = NULL;
-  }
-  return volume;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Add a polygon defined by its nodes IDs
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshFace* SMDS_Mesh::AddPolygonalFaceWithID (std::vector<int> nodes_ids,
-                                                  const int        ID)
-{
-  int nbNodes = nodes_ids.size();
-  std::vector<const SMDS_MeshNode*> nodes (nbNodes);
-  for (int i = 0; i < nbNodes; i++) {
-    nodes[i] = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(nodes_ids[i]);
-    if (!nodes[i]) return NULL;
-  }
-  return SMDS_Mesh::AddPolygonalFaceWithID(nodes, ID); 
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Add a polygon defined by its nodes
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshFace* SMDS_Mesh::AddPolygonalFaceWithID
-                          (std::vector<const SMDS_MeshNode*> nodes,
-                           const int                         ID)
-{
-  SMDS_MeshFace * face;
-
-  if (hasConstructionEdges())
-  {
-    MESSAGE("Error : Not implemented");
-    return NULL;
-  }
-  else
-  {
-    face = new SMDS_PolygonalFaceOfNodes(nodes);
-    myFaces.Add(face);
-  }
-
-  if (!registerElement(ID, face)) {
-    RemoveElement(face, false);
-    face = NULL;
-  }
-  return face;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Add a polygon defined by its nodes.
-/// An ID is automatically affected to the created face.
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshFace* SMDS_Mesh::AddPolygonalFace (std::vector<const SMDS_MeshNode*> nodes)
-{
-  return SMDS_Mesh::AddPolygonalFaceWithID(nodes, myElementIDFactory->GetFreeID());
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Create a new polyhedral volume and add it to the mesh. 
-/// @param ID The ID of the new volume
-/// @return The created volume or NULL if an element with this ID already exists
-/// or if input nodes are not found.
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume * SMDS_Mesh::AddPolyhedralVolumeWithID
-                             (std::vector<int> nodes_ids,
-                              std::vector<int> quantities,
-                              const int        ID)
-{
-  int nbNodes = nodes_ids.size();
-  std::vector<const SMDS_MeshNode*> nodes (nbNodes);
-  for (int i = 0; i < nbNodes; i++) {
-    nodes[i] = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(nodes_ids[i]);
-    if (!nodes[i]) return NULL;
-  }
-  return SMDS_Mesh::AddPolyhedralVolumeWithID(nodes, quantities, ID);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Create a new polyhedral volume and add it to the mesh. 
-/// @param ID The ID of the new volume
-/// @return The created  volume
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume* SMDS_Mesh::AddPolyhedralVolumeWithID
-                            (std::vector<const SMDS_MeshNode*> nodes,
-                             std::vector<int>                  quantities,
-                             const int                         ID)
-{
-  SMDS_MeshVolume* volume;
-  if (hasConstructionFaces()) {
-    MESSAGE("Error : Not implemented");
-    return NULL;
-  } else if (hasConstructionEdges()) {
-    MESSAGE("Error : Not implemented");
-    return NULL;
-  } else {
-    volume = new SMDS_PolyhedralVolumeOfNodes(nodes, quantities);
-    myVolumes.Add(volume);
-  }
-
-  if (!registerElement(ID, volume)) {
-    RemoveElement(volume, false);
-    volume = NULL;
-  }
-  return volume;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Create a new polyhedral volume and add it to the mesh. 
-/// @return The created  volume
-///////////////////////////////////////////////////////////////////////////////
-
-SMDS_MeshVolume* SMDS_Mesh::AddPolyhedralVolume
-                            (std::vector<const SMDS_MeshNode*> nodes,
-                             std::vector<int>                  quantities)
-{
-  int ID = myElementIDFactory->GetFreeID();
-  SMDS_MeshVolume * v = SMDS_Mesh::AddPolyhedralVolumeWithID(nodes, quantities, ID);
-  if (v == NULL) myElementIDFactory->ReleaseID(ID);
-  return v;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Registers element with the given ID, maintains inverse connections
-///////////////////////////////////////////////////////////////////////////////
-bool SMDS_Mesh::registerElement(int ID, SMDS_MeshElement * element)
-{
-  if (myElementIDFactory->BindID(ID, element)) {
-    SMDS_ElemIteratorPtr it = element->nodesIterator();
-    while (it->more()) {
-      SMDS_MeshNode *node = static_cast<SMDS_MeshNode*>
-        (const_cast<SMDS_MeshElement*>(it->next()));
-      node->AddInverseElement(element);
-    }
-    return true;
-  }
-  return false;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return the node whose ID is 'ID'.
-///////////////////////////////////////////////////////////////////////////////
-const SMDS_MeshNode * SMDS_Mesh::FindNode(int ID) const
-{
-  return (const SMDS_MeshNode *)myNodeIDFactory->MeshElement(ID);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create a triangle and add it to the current mesh. This methode do not bind a
-///ID to the create triangle.
-///////////////////////////////////////////////////////////////////////////////
-SMDS_MeshFace * SMDS_Mesh::createTriangle(const SMDS_MeshNode * node1,
-                                          const SMDS_MeshNode * node2,
-                                          const SMDS_MeshNode * node3)
-{
-       if(hasConstructionEdges())
-       {
-               SMDS_MeshEdge *edge1, *edge2, *edge3;
-               edge1=FindEdgeOrCreate(node1,node2);
-               edge2=FindEdgeOrCreate(node2,node3);
-               edge3=FindEdgeOrCreate(node3,node1);
-
-               SMDS_MeshFace * face = new SMDS_FaceOfEdges(edge1,edge2,edge3);
-               myFaces.Add(face);
-               return face;
-       }
-       else
-       {
-               SMDS_MeshFace * face = new SMDS_FaceOfNodes(node1,node2,node3);
-               myFaces.Add(face);
-               return face;
-       }
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create a quadrangle and add it to the current mesh. This methode do not bind
-///a ID to the create triangle.
-///////////////////////////////////////////////////////////////////////////////
-SMDS_MeshFace * SMDS_Mesh::createQuadrangle(const SMDS_MeshNode * node1,
-                                           const SMDS_MeshNode * node2,
-                                           const SMDS_MeshNode * node3,
-                                           const SMDS_MeshNode * node4)
-{
-       if(hasConstructionEdges())
-       {
-               SMDS_MeshEdge *edge1, *edge2, *edge3, *edge4;
-               edge1=FindEdgeOrCreate(node1,node2);
-               edge2=FindEdgeOrCreate(node2,node3);
-               edge3=FindEdgeOrCreate(node3,node4);
-               edge4=FindEdgeOrCreate(node4,node1);
-
-               SMDS_MeshFace * face = new SMDS_FaceOfEdges(edge1,edge2,edge3,edge4);
-               myFaces.Add(face);
-               return face;
-       }
-       else
-       {
-               SMDS_MeshFace * face = new SMDS_FaceOfNodes(node1,node2,node3,node4);
-               myFaces.Add(face);
-               return face;
-       }
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Remove a node and all the elements which own this node
-///////////////////////////////////////////////////////////////////////////////
-
-void SMDS_Mesh::RemoveNode(const SMDS_MeshNode * node)
-{
-       RemoveElement(node, true);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Remove an edge and all the elements which own this edge
-///////////////////////////////////////////////////////////////////////////////
-
-void SMDS_Mesh::RemoveEdge(const SMDS_MeshEdge * edge)
-{
-       RemoveElement(edge,true);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Remove an face and all the elements which own this face
-///////////////////////////////////////////////////////////////////////////////
-
-void SMDS_Mesh::RemoveFace(const SMDS_MeshFace * face)
-{
-       RemoveElement(face, true);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Remove a volume
-///////////////////////////////////////////////////////////////////////////////
-
-void SMDS_Mesh::RemoveVolume(const SMDS_MeshVolume * volume)
-{
-       RemoveElement(volume, true);
-}
-
-//=======================================================================
-//function : RemoveFromParent
-//purpose  :
-//=======================================================================
-
-bool SMDS_Mesh::RemoveFromParent()
-{
-       if (myParent==NULL) return false;
-       else return (myParent->RemoveSubMesh(this));
-}
-
-//=======================================================================
-//function : RemoveSubMesh
-//purpose  :
-//=======================================================================
-
-bool SMDS_Mesh::RemoveSubMesh(const SMDS_Mesh * aMesh)
-{
-       bool found = false;
-
-       list<SMDS_Mesh *>::iterator itmsh=myChildren.begin();
-       for (; itmsh!=myChildren.end() && !found; itmsh++)
-       {
-               SMDS_Mesh * submesh = *itmsh;
-               if (submesh == aMesh)
-               {
-                       found = true;
-                       myChildren.erase(itmsh);
-               }
-       }
-
-       return found;
-}
-
-//=======================================================================
-//function : ChangeElementNodes
-//purpose  : 
-//=======================================================================
-
-bool SMDS_Mesh::ChangeElementNodes(const SMDS_MeshElement * elem,
-                                   const SMDS_MeshNode    * nodes[],
-                                   const int                nbnodes)
-{
-  // keep current nodes of elem
-  set<const SMDS_MeshElement*> oldNodes;
-  SMDS_ElemIteratorPtr itn = elem->nodesIterator();
-  while(itn->more())
-    oldNodes.insert(  itn->next() );
-
-  // change nodes
-  bool Ok = false;
-  switch ( elem->GetType() )
-  {
-  case SMDSAbs_Edge: {
-    if ( nbnodes == 2 ) {
-      const SMDS_MeshEdge* edge = dynamic_cast<const SMDS_MeshEdge*>( elem );
-      if ( edge )
-        Ok = const_cast<SMDS_MeshEdge*>( edge )->ChangeNodes( nodes[0], nodes[1] );
-    }
-    break;
-  }
-  case SMDSAbs_Face: {
-    const SMDS_FaceOfNodes* face = dynamic_cast<const SMDS_FaceOfNodes*>( elem );
-    if ( face ) {
-      Ok = const_cast<SMDS_FaceOfNodes*>( face )->ChangeNodes( nodes, nbnodes );
-    } else {
-      /// ??? begin
-      const SMDS_PolygonalFaceOfNodes* face = dynamic_cast<const SMDS_PolygonalFaceOfNodes*>(elem);
-      if (face) {
-        Ok = const_cast<SMDS_PolygonalFaceOfNodes*>(face)->ChangeNodes(nodes, nbnodes);
-      }
-      /// ??? end
-    }
-    break;
-  }
-  //case SMDSAbs_PolygonalFace: {
-  //  const SMDS_PolygonalFaceOfNodes* face = dynamic_cast<const SMDS_PolygonalFaceOfNodes*>(elem);
-  //  if (face) {
-  //    Ok = const_cast<SMDS_PolygonalFaceOfNodes*>(face)->ChangeNodes(nodes, nbnodes);
-  //  }
-  //  break;
-  //}
-  case SMDSAbs_Volume: {
-    const SMDS_VolumeOfNodes* vol = dynamic_cast<const SMDS_VolumeOfNodes*>( elem );
-    if ( vol )
-      Ok = const_cast<SMDS_VolumeOfNodes*>( vol )->ChangeNodes( nodes, nbnodes );
-    break;
-  }
-  default:
-    MESSAGE ( "WRONG ELEM TYPE");
-  }
-
-  if ( Ok ) { // update InverseElements
-
-    // AddInverseElement to new nodes
-    for ( int i = 0; i < nbnodes; i++ )
-      if ( oldNodes.find( nodes[i] ) == oldNodes.end() )
-        // new node
-        const_cast<SMDS_MeshNode*>( nodes[i] )->AddInverseElement( elem );
-      else
-        // remove from oldNodes a node that remains in elem
-        oldNodes.erase( nodes[i] );
-
-
-    // RemoveInverseElement from the nodes removed from elem
-    set<const SMDS_MeshElement*>::iterator it;
-    for ( it = oldNodes.begin(); it != oldNodes.end(); it++ )
-    {
-      SMDS_MeshNode * n = static_cast<SMDS_MeshNode *>
-        (const_cast<SMDS_MeshElement *>( *it ));
-      n->RemoveInverseElement( elem );
-    }
-  }
-
-  //MESSAGE ( "::ChangeNodes() Ok = " << Ok);
-
-  return Ok;
-}
-
-//=======================================================================
-//function : ChangePolyhedronNodes
-//purpose  : to change nodes of polyhedral volume
-//=======================================================================
-bool SMDS_Mesh::ChangePolyhedronNodes (const SMDS_MeshElement * elem,
-                                       std::vector<const SMDS_MeshNode*> nodes,
-                                       std::vector<int>                  quantities)
-{
-  if (elem->GetType() != SMDSAbs_Volume) {
-    MESSAGE("WRONG ELEM TYPE");
-    return false;
-  }
-
-  const SMDS_PolyhedralVolumeOfNodes* vol = dynamic_cast<const SMDS_PolyhedralVolumeOfNodes*>(elem);
-  if (!vol) {
-    return false;
-  }
-
-  // keep current nodes of elem
-  set<const SMDS_MeshElement*> oldNodes;
-  SMDS_ElemIteratorPtr itn = elem->nodesIterator();
-  while (itn->more()) {
-    oldNodes.insert(itn->next());
-  }
-
-  // change nodes
-  bool Ok = const_cast<SMDS_PolyhedralVolumeOfNodes*>(vol)->ChangeNodes(nodes, quantities);
-  if (!Ok) {
-    return false;
-  }
-
-  // update InverseElements
-
-  // AddInverseElement to new nodes
-  int nbnodes = nodes.size();
-  for (int i = 0; i < nbnodes; i++) {
-    if (oldNodes.find(nodes[i]) == oldNodes.end()) {
-      // new node
-      const_cast<SMDS_MeshNode*>(nodes[i])->AddInverseElement(elem);
-    } else {
-      // remove from oldNodes a node that remains in elem
-      oldNodes.erase(nodes[i]);
-    }
-  }
-
-  // RemoveInverseElement from the nodes removed from elem
-  set<const SMDS_MeshElement*>::iterator it;
-  for (it = oldNodes.begin(); it != oldNodes.end(); it++) {
-    SMDS_MeshNode * n = static_cast<SMDS_MeshNode *>
-      (const_cast<SMDS_MeshElement *>( *it ));
-    n->RemoveInverseElement(elem);
-  }
-
-  return Ok;
-}
-
-//=======================================================================
-//function : FindEdge
-//purpose  :
-//=======================================================================
-
-const SMDS_MeshEdge* SMDS_Mesh::FindEdge(int idnode1, int idnode2) const
-{
-       const SMDS_MeshNode * node1=FindNode(idnode1);
-       const SMDS_MeshNode * node2=FindNode(idnode2);
-       if((node1==NULL)||(node2==NULL)) return NULL;
-       return FindEdge(node1,node2);
-}
-
-//#include "Profiler.h"
-const SMDS_MeshEdge* SMDS_Mesh::FindEdge(const SMDS_MeshNode * node1,
-                                         const SMDS_MeshNode * node2)
-{
-       const SMDS_MeshEdge * toReturn=NULL;
-       //PROFILER_Init();
-       //PROFILER_Set();
-       SMDS_ElemIteratorPtr it1=node1->edgesIterator();
-       //PROFILER_Get(0);
-       //PROFILER_Set();
-       while(it1->more())
-       {
-               const SMDS_MeshEdge * e=static_cast<const SMDS_MeshEdge *>
-                       (it1->next());
-               SMDS_ElemIteratorPtr it2=e->nodesIterator();
-               while(it2->more())
-               {
-                       if(it2->next()->GetID()==node2->GetID())
-                       {
-                               toReturn=e;
-                               break;
-                       }
-               }
-       }
-       //PROFILER_Get(1);
-       return toReturn;
-}
-
-
-SMDS_MeshEdge* SMDS_Mesh::FindEdgeOrCreate(const SMDS_MeshNode * node1,
-       const SMDS_MeshNode * node2) 
-{
-       SMDS_MeshEdge * toReturn=NULL;
-       toReturn=const_cast<SMDS_MeshEdge*>(FindEdge(node1,node2));
-       if(toReturn==NULL)      
-       {
-          toReturn=new SMDS_MeshEdge(node1,node2);
-          myEdges.Add(toReturn);
-       } 
-       return toReturn;
-}
-
-//=======================================================================
-//function : FindFace
-//purpose  :
-//=======================================================================
-
-const SMDS_MeshFace* SMDS_Mesh::FindFace(int idnode1, int idnode2,
-       int idnode3) const
-{
-       const SMDS_MeshNode * node1=FindNode(idnode1);
-       const SMDS_MeshNode * node2=FindNode(idnode2);
-       const SMDS_MeshNode * node3=FindNode(idnode3);
-       if((node1==NULL)||(node2==NULL)||(node3==NULL)) return NULL;
-       return FindFace(node1, node2, node3);
-}
-
-const SMDS_MeshFace* SMDS_Mesh::FindFace(
-               const SMDS_MeshNode *node1,
-               const SMDS_MeshNode *node2,
-               const SMDS_MeshNode *node3)
-{
-       const SMDS_MeshFace * face;
-       const SMDS_MeshElement * node;
-       bool node2found, node3found;
-
-       SMDS_ElemIteratorPtr it1=node1->facesIterator();
-       while(it1->more())
-       {
-               face=static_cast<const SMDS_MeshFace*>(it1->next());
-               if(face->NbNodes()!=3) continue;
-               SMDS_ElemIteratorPtr it2=face->nodesIterator();
-               node2found=false;
-               node3found=false;
-               while(it2->more())
-               {
-                       node=it2->next();
-                       if(node->GetID()==node2->GetID()) node2found=true;
-                       if(node->GetID()==node3->GetID()) node3found=true;
-               }
-               if(node2found&&node3found)
-                       return face;
-       }
-       return NULL;
-}
-
-SMDS_MeshFace* SMDS_Mesh::FindFaceOrCreate(
-               const SMDS_MeshNode *node1,
-               const SMDS_MeshNode *node2,
-               const SMDS_MeshNode *node3)
-{
-       SMDS_MeshFace * toReturn=NULL;
-       toReturn=const_cast<SMDS_MeshFace*>(FindFace(node1,node2,node3));
-       if(toReturn==NULL)
-       {
-         toReturn=createTriangle(node1,node2,node3);
-       }
-       return toReturn;
-}
-
-//=======================================================================
-//function : FindFace
-//purpose  :
-//=======================================================================
-
-const SMDS_MeshFace* SMDS_Mesh::FindFace(int idnode1, int idnode2, int idnode3,
-       int idnode4) const
-{
-       const SMDS_MeshNode * node1=FindNode(idnode1);
-       const SMDS_MeshNode * node2=FindNode(idnode2);
-       const SMDS_MeshNode * node3=FindNode(idnode3);
-       const SMDS_MeshNode * node4=FindNode(idnode4);
-       if((node1==NULL)||(node2==NULL)||(node3==NULL)||(node4==NULL)) return NULL;
-       return FindFace(node1, node2, node3, node4);
-}
-
-const SMDS_MeshFace* SMDS_Mesh::FindFace(
-               const SMDS_MeshNode *node1,
-               const SMDS_MeshNode *node2,
-               const SMDS_MeshNode *node3,
-               const SMDS_MeshNode *node4)
-{
-       const SMDS_MeshFace * face;
-       const SMDS_MeshElement * node;
-       bool node2found, node3found, node4found;
-       SMDS_ElemIteratorPtr it1=node1->facesIterator();
-       while(it1->more())
-       {
-               face=static_cast<const SMDS_MeshFace *>(it1->next());
-               if(face->NbNodes()!=4) continue;
-               SMDS_ElemIteratorPtr it2=face->nodesIterator();
-               node2found=false;
-               node3found=false;
-               node4found=false;
-               while(it2->more())
-               {
-                       node=it2->next();
-                       if(node->GetID()==node2->GetID()) node2found=true;
-                       if(node->GetID()==node3->GetID()) node3found=true;
-                       if(node->GetID()==node4->GetID()) node4found=true;
-               }
-               if(node2found&&node3found&&node4found)
-                       return face;
-       }
-       return NULL;
-}
-
-SMDS_MeshFace* SMDS_Mesh::FindFaceOrCreate(
-               const SMDS_MeshNode *node1,
-               const SMDS_MeshNode *node2,
-               const SMDS_MeshNode *node3,
-               const SMDS_MeshNode *node4)
-{
-       SMDS_MeshFace * toReturn=NULL;
-       toReturn=const_cast<SMDS_MeshFace*>(FindFace(node1,node2,node3,node4));
-       if(toReturn==NULL)
-       {
-         toReturn=createQuadrangle(node1,node2,node3,node4);
-       }
-       return toReturn;
-}
-
-//=======================================================================
-//function : FindElement
-//purpose  :
-//=======================================================================
-
-const SMDS_MeshElement* SMDS_Mesh::FindElement(int IDelem) const
-{
-       return myElementIDFactory->MeshElement(IDelem);
-}
-
-//=======================================================================
-//function : FindFace
-//purpose  : find polygon
-//=======================================================================
-
-const SMDS_MeshFace* SMDS_Mesh::FindFace (std::vector<int> nodes_ids) const
-{
-  int nbnodes = nodes_ids.size();
-  std::vector<const SMDS_MeshNode *> poly_nodes (nbnodes);
-  for (int inode = 0; inode < nbnodes; inode++) {
-    const SMDS_MeshNode * node = FindNode(nodes_ids[inode]);
-    if (node == NULL) return NULL;
-  }
-  return FindFace(poly_nodes);
-}
-
-const SMDS_MeshFace* SMDS_Mesh::FindFace (std::vector<const SMDS_MeshNode *> nodes)
-{
-  int nbNodes = nodes.size();
-  if (nbNodes < 1) return NULL;
-
-  bool isFound = true;
-  const SMDS_MeshFace * face;
-  set<const SMDS_MeshFace *> faces;
-
-  for (int inode = 0; inode < nbNodes && isFound; inode++) {
-    set<const SMDS_MeshFace *> new_faces;
-
-    SMDS_ElemIteratorPtr itF = nodes[inode]->facesIterator();
-    while (itF->more()) {
-      face = static_cast<const SMDS_MeshFace *>(itF->next());
-      if (face->NbNodes() == nbNodes) {
-        if (inode == 0 || faces.find(face) != faces.end()) {
-          new_faces.insert(face);
-        }
-      }
-    }
-    faces = new_faces;
-    if (new_faces.size() == 0) {
-      isFound = false;
-    }
-  }
-
-  if (isFound)
-    return face;
-
-  return NULL;
-}
-
-//=======================================================================
-//function : DumpNodes
-//purpose  : 
-//=======================================================================
-
-void SMDS_Mesh::DumpNodes() const
-{
-       MESSAGE("dump nodes of mesh : ");
-       SMDS_NodeIteratorPtr itnode=nodesIterator();
-       while(itnode->more()) MESSAGE(itnode->next());
-}
-
-//=======================================================================
-//function : DumpEdges
-//purpose  : 
-//=======================================================================
-
-void SMDS_Mesh::DumpEdges() const
-{
-       MESSAGE("dump edges of mesh : ");
-       SMDS_EdgeIteratorPtr itedge=edgesIterator();
-       while(itedge->more()) MESSAGE(itedge->next());
-}
-
-//=======================================================================
-//function : DumpFaces
-//purpose  : 
-//=======================================================================
-
-void SMDS_Mesh::DumpFaces() const
-{
-       MESSAGE("dump faces of mesh : ");
-       SMDS_FaceIteratorPtr itface=facesIterator();
-       while(itface->more()) MESSAGE(itface->next());
-}
-
-//=======================================================================
-//function : DumpVolumes
-//purpose  : 
-//=======================================================================
-
-void SMDS_Mesh::DumpVolumes() const
-{
-       MESSAGE("dump volumes of mesh : ");
-       SMDS_VolumeIteratorPtr itvol=volumesIterator();
-       while(itvol->more()) MESSAGE(itvol->next());
-}
-
-//=======================================================================
-//function : DebugStats
-//purpose  : 
-//=======================================================================
-
-void SMDS_Mesh::DebugStats() const
-{
-       MESSAGE("Debug stats of mesh : ");
-
-       MESSAGE("===== NODES ====="<<NbNodes());
-       MESSAGE("===== EDGES ====="<<NbEdges());
-       MESSAGE("===== FACES ====="<<NbFaces());
-       MESSAGE("===== VOLUMES ====="<<NbVolumes());
-
-       MESSAGE("End Debug stats of mesh ");
-
-       //#ifdef DEB
-       
-       SMDS_NodeIteratorPtr itnode=nodesIterator();
-       int sizeofnodes = 0;
-       int sizeoffaces = 0;
-
-       while(itnode->more())
-       {
-               const SMDS_MeshNode *node = itnode->next();
-
-               sizeofnodes += sizeof(*node);
-               
-               SMDS_ElemIteratorPtr it = node->GetInverseElementIterator();
-               while(it->more())
-               {
-                       const SMDS_MeshElement *me = it->next();
-                       sizeofnodes += sizeof(me);
-               }
-
-       }
-
-       SMDS_FaceIteratorPtr itface=facesIterator();
-       while(itface->more())
-       {
-               const SMDS_MeshElement *face = itface->next();          
-               sizeoffaces += sizeof(*face);
-
-       }
-       MESSAGE("total size of node elements = " << sizeofnodes);;
-       MESSAGE("total size of face elements = " << sizeoffaces);;
-
-       //#endif
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return the number of nodes
-///////////////////////////////////////////////////////////////////////////////
-int SMDS_Mesh::NbNodes() const
-{
-       return myNodes.Size();
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return the number of edges (including construction edges)
-///////////////////////////////////////////////////////////////////////////////
-int SMDS_Mesh::NbEdges() const
-{
-       return myEdges.Size();
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return the number of faces (including construction faces)
-///////////////////////////////////////////////////////////////////////////////
-int SMDS_Mesh::NbFaces() const
-{
-       return myFaces.Size();
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return the number of volumes
-///////////////////////////////////////////////////////////////////////////////
-int SMDS_Mesh::NbVolumes() const
-{
-       return myVolumes.Size();
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return the number of child mesh of this mesh.
-/// Note that the tree structure of SMDS_Mesh seems to be unused in this version
-/// (2003-09-08) of SMESH
-///////////////////////////////////////////////////////////////////////////////
-int SMDS_Mesh::NbSubMesh() const
-{
-       return myChildren.size();
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Destroy the mesh and all its elements
-/// All pointer on elements owned by this mesh become illegals.
-///////////////////////////////////////////////////////////////////////////////
-SMDS_Mesh::~SMDS_Mesh()
-{
-  list<SMDS_Mesh*>::iterator itc=myChildren.begin();
-  while(itc!=myChildren.end())
-  {
-    delete *itc;
-    itc++;
-  }
-
-  SetOfNodes::Iterator itn(myNodes);
-  for (; itn.More(); itn.Next())
-    delete itn.Value();
-
-  SetOfEdges::Iterator ite(myEdges);
-  for (; ite.More(); ite.Next())
-  {
-    SMDS_MeshElement* elem = ite.Value();
-    if(myParent!=NULL)
-      myElementIDFactory->ReleaseID(elem->GetID());
-    delete elem;
-  }
-
-  SetOfFaces::Iterator itf(myFaces);
-  for (; itf.More(); itf.Next())
-  {
-    SMDS_MeshElement* elem = itf.Value();
-    if(myParent!=NULL)
-      myElementIDFactory->ReleaseID(elem->GetID());
-    delete elem;
-  }
-
-  SetOfVolumes::Iterator itv(myVolumes);
-  for (; itv.More(); itv.Next())
-  {
-    SMDS_MeshElement* elem = itv.Value();
-    if(myParent!=NULL)
-      myElementIDFactory->ReleaseID(elem->GetID());
-    delete elem;
-  }
-
-  if(myParent==NULL)
-  {
-    delete myNodeIDFactory;
-    delete myElementIDFactory;
-  }
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return true if this mesh create faces with edges.
-/// A false returned value mean that faces are created with nodes. A concequence
-/// is, iteration on edges (SMDS_Element::edgesIterator) will be unavailable.
-///////////////////////////////////////////////////////////////////////////////
-bool SMDS_Mesh::hasConstructionEdges()
-{
-       return myHasConstructionEdges;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return true if this mesh create volumes with faces
-/// A false returned value mean that volumes are created with nodes or edges.
-/// (see hasConstructionEdges)
-/// A concequence is, iteration on faces (SMDS_Element::facesIterator) will be
-/// unavailable.
-///////////////////////////////////////////////////////////////////////////////
-bool SMDS_Mesh::hasConstructionFaces()
-{
-       return myHasConstructionFaces;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return true if nodes are linked to the finit elements, they are belonging to.
-/// Currently, It always return true.
-///////////////////////////////////////////////////////////////////////////////
-bool SMDS_Mesh::hasInverseElements()
-{
-       return myHasInverseElements;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Make this mesh creating construction edges (see hasConstructionEdges)
-/// @param b true to have construction edges, else false.
-///////////////////////////////////////////////////////////////////////////////
-void SMDS_Mesh::setConstructionEdges(bool b)
-{
-       myHasConstructionEdges=b;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Make this mesh creating construction faces (see hasConstructionFaces)
-/// @param b true to have construction faces, else false.
-///////////////////////////////////////////////////////////////////////////////
-void SMDS_Mesh::setConstructionFaces(bool b)
-{
-        myHasConstructionFaces=b;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Make this mesh creating link from nodes to elements (see hasInverseElements)
-/// @param b true to link nodes to elements, else false.
-///////////////////////////////////////////////////////////////////////////////
-void SMDS_Mesh::setInverseElements(bool b)
-{
-       if(!b) MESSAGE("Error : inverseElement=false not implemented");
-       myHasInverseElements=b;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return an iterator on nodes of the current mesh factory
-///////////////////////////////////////////////////////////////////////////////
-class SMDS_Mesh_MyNodeIterator:public SMDS_NodeIterator
-{
-  SMDS_ElemIteratorPtr myIterator;
- public:
-  SMDS_Mesh_MyNodeIterator(const SMDS_ElemIteratorPtr& it):myIterator(it)
-  {}
-
-  bool more()
-  {
-    return myIterator->more();
-  }
-
-  const SMDS_MeshNode* next()
-  {
-    return static_cast<const SMDS_MeshNode*>(myIterator->next());
-  }
-};
-
-SMDS_NodeIteratorPtr SMDS_Mesh::nodesIterator() const
-{
-  return SMDS_NodeIteratorPtr
-    (new SMDS_Mesh_MyNodeIterator(myNodeIDFactory->elementsIterator()));
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return an iterator on elements of the current mesh factory
-///////////////////////////////////////////////////////////////////////////////
-SMDS_ElemIteratorPtr SMDS_Mesh::elementsIterator() const
-{
-  return myElementIDFactory->elementsIterator();
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Return an iterator on edges of the current mesh.
-///////////////////////////////////////////////////////////////////////////////
-class SMDS_Mesh_MyEdgeIterator:public SMDS_EdgeIterator
-{
-  typedef SMDS_Mesh::SetOfEdges SetOfEdges;
-  SetOfEdges::Iterator myIterator;
- public:
-  SMDS_Mesh_MyEdgeIterator(const SetOfEdges& s):myIterator(s)
-  {}
-
-  bool more()
-  {
-    while(myIterator.More())
-    {
-      if(myIterator.Value()->GetID()!=-1)
-        return true;
-      myIterator.Next();
-    }
-    return false;
-  }
-
-  const SMDS_MeshEdge* next()
-  {
-    const SMDS_MeshEdge* current = myIterator.Value();
-    myIterator.Next();
-    return current;
-  }
-};
-
-SMDS_EdgeIteratorPtr SMDS_Mesh::edgesIterator() const
-{
-  return SMDS_EdgeIteratorPtr(new SMDS_Mesh_MyEdgeIterator(myEdges));
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Return an iterator on faces of the current mesh.
-///////////////////////////////////////////////////////////////////////////////
-class SMDS_Mesh_MyFaceIterator:public SMDS_FaceIterator
-{
-  typedef SMDS_Mesh::SetOfFaces SetOfFaces;
-  SetOfFaces::Iterator myIterator;
- public:
-  SMDS_Mesh_MyFaceIterator(const SetOfFaces& s):myIterator(s)
-  {}
-
-  bool more()
-  {
-    while(myIterator.More())
-    {
-      if(myIterator.Value()->GetID()!=-1)
-        return true;
-      myIterator.Next();
-    }
-    return false;
-  }
-
-  const SMDS_MeshFace* next()
-  {
-    const SMDS_MeshFace* current = myIterator.Value();
-    myIterator.Next();
-    return current;
-  }
-};
-
-SMDS_FaceIteratorPtr SMDS_Mesh::facesIterator() const
-{
-  return SMDS_FaceIteratorPtr(new SMDS_Mesh_MyFaceIterator(myFaces));
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Return an iterator on volumes of the current mesh.
-///////////////////////////////////////////////////////////////////////////////
-class SMDS_Mesh_MyVolumeIterator:public SMDS_VolumeIterator
-{
-  typedef SMDS_Mesh::SetOfVolumes SetOfVolumes;
-  SetOfVolumes::Iterator myIterator;
- public:
-  SMDS_Mesh_MyVolumeIterator(const SetOfVolumes& s):myIterator(s)
-  {}
-
-  bool more()
-  {
-    return myIterator.More() != Standard_False;
-  }
-
-  const SMDS_MeshVolume* next()
-  {
-    const SMDS_MeshVolume* current = myIterator.Value();
-    myIterator.Next();
-    return current;
-  }
-};
-
-SMDS_VolumeIteratorPtr SMDS_Mesh::volumesIterator() const
-{
-  return SMDS_VolumeIteratorPtr(new SMDS_Mesh_MyVolumeIterator(myVolumes));
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Do intersection of sets (more than 2)
-///////////////////////////////////////////////////////////////////////////////
-static set<const SMDS_MeshElement*> * intersectionOfSets(
-       set<const SMDS_MeshElement*> vs[], int numberOfSets)
-{
-       set<const SMDS_MeshElement*>* rsetA=new set<const SMDS_MeshElement*>(vs[0]);
-       set<const SMDS_MeshElement*>* rsetB;
-
-       for(int i=0; i<numberOfSets-1; i++)
-       {
-               rsetB=new set<const SMDS_MeshElement*>();
-               set_intersection(
-                       rsetA->begin(), rsetA->end(),
-                       vs[i+1].begin(), vs[i+1].end(),
-                       inserter(*rsetB, rsetB->begin()));
-               delete rsetA;
-               rsetA=rsetB;
-       }
-       return rsetA;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return the list of finit elements owning the given element
-///////////////////////////////////////////////////////////////////////////////
-static set<const SMDS_MeshElement*> * getFinitElements(const SMDS_MeshElement * element)
-{
-       int numberOfSets=element->NbNodes();
-       set<const SMDS_MeshElement*> *initSet = new set<const SMDS_MeshElement*>[numberOfSets];
-
-       SMDS_ElemIteratorPtr itNodes=element->nodesIterator();
-
-       int i=0;
-       while(itNodes->more())
-       {
-               const SMDS_MeshNode * n=static_cast<const SMDS_MeshNode*>(itNodes->next());
-               SMDS_ElemIteratorPtr itFe = n->GetInverseElementIterator();
-
-               //initSet[i]=set<const SMDS_MeshElement*>();
-               while(itFe->more())
-                  initSet[i].insert(itFe->next());
-
-               i++;
-       }
-       set<const SMDS_MeshElement*> *retSet=intersectionOfSets(initSet, numberOfSets);
-        delete [] initSet;
-       return retSet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return the list of nodes used only by the given elements
-///////////////////////////////////////////////////////////////////////////////
-static set<const SMDS_MeshElement*> * getExclusiveNodes(
-       set<const SMDS_MeshElement*>& elements)
-{
-       set<const SMDS_MeshElement*> * toReturn=new set<const SMDS_MeshElement*>();
-       set<const SMDS_MeshElement*>::iterator itElements=elements.begin();
-
-       while(itElements!=elements.end())
-       {
-               SMDS_ElemIteratorPtr itNodes = (*itElements)->nodesIterator();
-               itElements++;
-       
-               while(itNodes->more())
-               {
-                       const SMDS_MeshNode * n=static_cast<const SMDS_MeshNode*>(itNodes->next());
-                       SMDS_ElemIteratorPtr itFe = n->GetInverseElementIterator();
-                       set<const SMDS_MeshElement*> s;
-                       while(itFe->more())
-                          s.insert(itFe->next());
-                       if(s==elements) toReturn->insert(n);
-               }
-       }
-       return toReturn;        
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Find the children of an element that are made of given nodes 
-///@param setOfChildren The set in which matching children will be inserted
-///@param element The element were to search matching children
-///@param nodes The nodes that the children must have to be selected
-///////////////////////////////////////////////////////////////////////////////
-void SMDS_Mesh::addChildrenWithNodes(set<const SMDS_MeshElement*>&     setOfChildren, 
-       const SMDS_MeshElement * element, set<const SMDS_MeshElement*>& nodes)
-{
-       
-       switch(element->GetType())
-       {
-       case SMDSAbs_Node:
-               MESSAGE("Internal Error: This should not append");
-               break;
-       case SMDSAbs_Edge:
-       {
-               SMDS_ElemIteratorPtr itn=element->nodesIterator();
-               while(itn->more())
-               {
-                       const SMDS_MeshElement * e=itn->next();
-                       if(nodes.find(e)!=nodes.end())
-                        {
-                          setOfChildren.insert(element);
-                          break;
-                        }
-               }
-       } break;
-       case SMDSAbs_Face:
-       {
-               SMDS_ElemIteratorPtr itn=element->nodesIterator();
-               while(itn->more())
-               {
-                       const SMDS_MeshElement * e=itn->next();
-                       if(nodes.find(e)!=nodes.end())
-                        {
-                          setOfChildren.insert(element);
-                          break;
-                        }
-               }
-               if(hasConstructionEdges())
-               {
-                       SMDS_ElemIteratorPtr ite=element->edgesIterator();
-                       while(ite->more())
-                               addChildrenWithNodes(setOfChildren, ite->next(), nodes);
-               }
-       } break;        
-       case SMDSAbs_Volume:
-       {
-               if(hasConstructionFaces())
-               {
-                       SMDS_ElemIteratorPtr ite=element->facesIterator();
-                       while(ite->more())
-                               addChildrenWithNodes(setOfChildren, ite->next(), nodes);
-               }
-               else if(hasConstructionEdges())
-               {
-                       SMDS_ElemIteratorPtr ite=element->edgesIterator();
-                       while(ite->more())
-                               addChildrenWithNodes(setOfChildren, ite->next(), nodes);
-               }
-       }
-       }
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///@param elem The element to delete
-///@param removenodes if true remaining nodes will be removed
-///////////////////////////////////////////////////////////////////////////////
-void SMDS_Mesh::RemoveElement(const SMDS_MeshElement * elem,
-       const bool removenodes)
-{
-  list<const SMDS_MeshElement *> removedElems;
-  list<const SMDS_MeshElement *> removedNodes;
-  RemoveElement( elem, removedElems, removedNodes, removenodes );
-}
-  
-///////////////////////////////////////////////////////////////////////////////
-///@param elem The element to delete
-///@param removedElems contains all removed elements
-///@param removedNodes contains all removed nodes
-///@param removenodes if true remaining nodes will be removed
-///////////////////////////////////////////////////////////////////////////////
-void SMDS_Mesh::RemoveElement(const SMDS_MeshElement *        elem,
-                              list<const SMDS_MeshElement *>& removedElems,
-                              list<const SMDS_MeshElement *>& removedNodes,
-                              bool                            removenodes)
-{
-  // get finite elements built on elem
-  set<const SMDS_MeshElement*> * s1;
-  if (!hasConstructionEdges() && elem->GetType() == SMDSAbs_Edge ||
-      !hasConstructionFaces() && elem->GetType() == SMDSAbs_Face ||
-      elem->GetType() == SMDSAbs_Volume)
-  {
-    s1 = new set<const SMDS_MeshElement*>();
-    s1->insert(elem);
-  }
-  else
-    s1 = getFinitElements(elem);
-
-  // get exclusive nodes (which would become free afterwards)
-  set<const SMDS_MeshElement*> * s2;
-  if (elem->GetType() == SMDSAbs_Node) // a node is removed
-  {
-    // do not remove nodes except elem
-    s2 = new set<const SMDS_MeshElement*>();
-    s2->insert(elem);
-    removenodes = true;
-  }
-  else
-    s2 = getExclusiveNodes(*s1);
-
-  // form the set of finite and construction elements to remove
-  set<const SMDS_MeshElement*> s3;
-  set<const SMDS_MeshElement*>::iterator it=s1->begin();
-  while(it!=s1->end())
-  {
-    addChildrenWithNodes(s3, *it ,*s2);
-    s3.insert(*it);
-    it++;
-  }
-  if(elem->GetType()!=SMDSAbs_Node) s3.insert(elem);
-
-  // remove finite and construction elements
-  it=s3.begin();
-  while(it!=s3.end())
-  {
-    // Remove element from <InverseElements> of its nodes
-    SMDS_ElemIteratorPtr itn=(*it)->nodesIterator();
-    while(itn->more())
-    {
-      SMDS_MeshNode * n = static_cast<SMDS_MeshNode *>
-        (const_cast<SMDS_MeshElement *>(itn->next()));
-      n->RemoveInverseElement( (*it) );
-    }
-
-    switch((*it)->GetType())
-    {
-    case SMDSAbs_Node:
-      MESSAGE("Internal Error: This should not happen");
-      break;
-    case SMDSAbs_Edge:
-      myEdges.Remove(static_cast<SMDS_MeshEdge*>
-                    (const_cast<SMDS_MeshElement*>(*it)));
-      break;
-    case SMDSAbs_Face:
-      myFaces.Remove(static_cast<SMDS_MeshFace*>
-                    (const_cast<SMDS_MeshElement*>(*it)));
-      break;
-    case SMDSAbs_Volume:
-      myVolumes.Remove(static_cast<SMDS_MeshVolume*>
-                      (const_cast<SMDS_MeshElement*>(*it)));
-      break;
-    }
-    //MESSAGE( "SMDS: RM elem " << (*it)->GetID() );
-    removedElems.push_back( (*it) );
-    myElementIDFactory->ReleaseID((*it)->GetID());
-    delete (*it);
-    it++;
-  }
-
-  // remove exclusive (free) nodes
-  if(removenodes)
-  {
-    it=s2->begin();
-    while(it!=s2->end())
-    {
-      //MESSAGE( "SMDS: RM node " << (*it)->GetID() );
-      myNodes.Remove(static_cast<SMDS_MeshNode*>
-                    (const_cast<SMDS_MeshElement*>(*it)));
-      myNodeIDFactory->ReleaseID((*it)->GetID());
-      removedNodes.push_back( (*it) );
-      delete *it;
-      it++;
-    }
-  }
-
-  delete s2;
-  delete s1;
-}
-
-/*!
- * Checks if the element is present in mesh.
- * Useful to determine dead pointers.
- */
-bool SMDS_Mesh::Contains (const SMDS_MeshElement* elem) const
-{
-  // we should not imply on validity of *elem, so iterate on containers
-  // of all types in the hope of finding <elem> somewhere there
-  SMDS_NodeIteratorPtr itn = nodesIterator();
-  while (itn->more())
-    if (elem == itn->next())
-      return true;
-  SMDS_EdgeIteratorPtr ite = edgesIterator();
-  while (ite->more())
-    if (elem == ite->next())
-      return true;
-  SMDS_FaceIteratorPtr itf = facesIterator();
-  while (itf->more())
-    if (elem == itf->next())
-      return true;
-  SMDS_VolumeIteratorPtr itv = volumesIterator();
-  while (itv->more())
-    if (elem == itv->next())
-      return true;
-  return false;
-}
-
-//=======================================================================
-//function : MaxNodeID
-//purpose  : 
-//=======================================================================
-
-int SMDS_Mesh::MaxNodeID() const
-{
-  return myNodeIDFactory->GetMaxID();
-}
-
-//=======================================================================
-//function : MinNodeID
-//purpose  : 
-//=======================================================================
-
-int SMDS_Mesh::MinNodeID() const
-{
-  return myNodeIDFactory->GetMinID();
-}
-
-//=======================================================================
-//function : MaxElementID
-//purpose  : 
-//=======================================================================
-
-int SMDS_Mesh::MaxElementID() const
-{
-  return myElementIDFactory->GetMaxID();
-}
-
-//=======================================================================
-//function : MinElementID
-//purpose  : 
-//=======================================================================
-
-int SMDS_Mesh::MinElementID() const
-{
-  return myElementIDFactory->GetMinID();
-}
-
-//=======================================================================
-//function : Renumber
-//purpose  : Renumber all nodes or elements.
-//=======================================================================
-
-void SMDS_Mesh::Renumber (const bool isNodes, const int  startID, const int  deltaID)
-{
-  if ( deltaID == 0 )
-    return;
-
-  SMDS_MeshElementIDFactory * idFactory =
-    isNodes ? myNodeIDFactory : myElementIDFactory;
-
-  // get existing elements in the order of ID increasing
-  map<int,SMDS_MeshElement*> elemMap;
-  SMDS_ElemIteratorPtr idElemIt = idFactory->elementsIterator();
-  while ( idElemIt->more() ) {
-    SMDS_MeshElement* elem = const_cast<SMDS_MeshElement*>(idElemIt->next());
-    int id = elem->GetID();
-    elemMap.insert(map<int,SMDS_MeshElement*>::value_type(id, elem));
-  }
-  // release their ids
-  map<int,SMDS_MeshElement*>::iterator elemIt = elemMap.begin();
-  for ( ; elemIt != elemMap.end(); elemIt++ )
-  {
-    int id = (*elemIt).first;
-    idFactory->ReleaseID( id );
-  }
-  // set new IDs
-  int ID = startID;
-  elemIt = elemMap.begin();
-  for ( ; elemIt != elemMap.end(); elemIt++ )
-  {
-    idFactory->BindID( ID, (*elemIt).second );
-    ID += deltaID;
-  }
-}
-
-//=======================================================================
-//function : GetElementType
-//purpose  : Return type of element or node with id
-//=======================================================================
-
-SMDSAbs_ElementType SMDS_Mesh::GetElementType( const int id, const bool iselem ) const
-{
-  SMDS_MeshElement* elem = 0;
-  if( iselem )
-    elem = myElementIDFactory->MeshElement( id );
-  else
-    elem = myNodeIDFactory->MeshElement( id );
-
-  if( !elem )
-  {
-    //throw SALOME_Exception(LOCALIZED ("this element isn't exist"));
-    return SMDSAbs_All;
-  }
-  else
-    return elem->GetType();
-}
\ No newline at end of file
diff --git a/src/SMDS/SMDS_Mesh.hxx b/src/SMDS/SMDS_Mesh.hxx
deleted file mode 100644 (file)
index 7f00c4b..0000000
+++ /dev/null
@@ -1,351 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_Mesh.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_Mesh_HeaderFile
-#define _SMDS_Mesh_HeaderFile
-
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_MeshEdge.hxx"
-#include "SMDS_MeshFace.hxx"
-#include "SMDS_MeshVolume.hxx"
-#include "SMDS_MeshElementIDFactory.hxx"
-#include "SMDS_ElemIterator.hxx"
-#include <NCollection_Map.hxx>
-
-#include <boost/shared_ptr.hpp>
-#include <set>
-#include <list>
-
-typedef SMDS_Iterator<const SMDS_MeshNode *> SMDS_NodeIterator;
-typedef boost::shared_ptr<SMDS_Iterator<const SMDS_MeshNode *> > SMDS_NodeIteratorPtr;
-typedef SMDS_Iterator<const SMDS_MeshEdge *> SMDS_EdgeIterator;
-typedef boost::shared_ptr<SMDS_Iterator<const SMDS_MeshEdge *> > SMDS_EdgeIteratorPtr;
-typedef SMDS_Iterator<const SMDS_MeshFace *> SMDS_FaceIterator;
-typedef boost::shared_ptr<SMDS_Iterator<const SMDS_MeshFace *> > SMDS_FaceIteratorPtr;
-typedef SMDS_Iterator<const SMDS_MeshVolume *> SMDS_VolumeIterator;
-typedef boost::shared_ptr<SMDS_Iterator<const SMDS_MeshVolume *> > SMDS_VolumeIteratorPtr;
-
-class SMDS_Mesh:public SMDS_MeshObject{
-public:
-  
-  SMDS_Mesh();
-  
-  SMDS_NodeIteratorPtr nodesIterator() const;
-  SMDS_EdgeIteratorPtr edgesIterator() const;
-  SMDS_FaceIteratorPtr facesIterator() const;
-  SMDS_VolumeIteratorPtr volumesIterator() const;
-  SMDS_ElemIteratorPtr elementsIterator() const;  
-  
-  SMDSAbs_ElementType GetElementType( const int id, const bool iselem ) const;
-
-  SMDS_Mesh *AddSubMesh();
-  
-  virtual SMDS_MeshNode* AddNodeWithID(double x, double y, double z, int ID);
-  virtual SMDS_MeshNode* AddNode(double x, double y, double z);
-  
-  virtual SMDS_MeshEdge* AddEdgeWithID(int n1, int n2, int ID);
-  virtual SMDS_MeshEdge* AddEdgeWithID(const SMDS_MeshNode * n1,
-                                      const SMDS_MeshNode * n2, 
-                                      int ID);
-  virtual SMDS_MeshEdge* AddEdge(const SMDS_MeshNode * n1,
-                                const SMDS_MeshNode * n2);
-  
-  virtual SMDS_MeshFace* AddFaceWithID(int n1, int n2, int n3, int ID);
-  virtual SMDS_MeshFace* AddFaceWithID(const SMDS_MeshNode * n1,
-                                      const SMDS_MeshNode * n2,
-                                      const SMDS_MeshNode * n3, 
-                                      int ID);
-  virtual SMDS_MeshFace* AddFace(const SMDS_MeshNode * n1,
-                                const SMDS_MeshNode * n2,
-                                const SMDS_MeshNode * n3);
-  
-  virtual SMDS_MeshFace* AddFaceWithID(int n1, int n2, int n3, int n4, int ID);
-  virtual SMDS_MeshFace* AddFaceWithID(const SMDS_MeshNode * n1,
-                                      const SMDS_MeshNode * n2,
-                                      const SMDS_MeshNode * n3,
-                                      const SMDS_MeshNode * n4, 
-                                      int ID);
-  virtual SMDS_MeshFace* AddFace(const SMDS_MeshNode * n1,
-                                const SMDS_MeshNode * n2,
-                                const SMDS_MeshNode * n3,
-                                const SMDS_MeshNode * n4);
-  
-  virtual SMDS_MeshFace* AddFaceWithID(const SMDS_MeshEdge * e1,
-                                       const SMDS_MeshEdge * e2,
-                                       const SMDS_MeshEdge * e3, int ID);
-  virtual SMDS_MeshFace* AddFace(const SMDS_MeshEdge * e1,
-                                 const SMDS_MeshEdge * e2,
-                                 const SMDS_MeshEdge * e3);
-
-  virtual SMDS_MeshFace* AddFaceWithID(const SMDS_MeshEdge * e1,
-                                       const SMDS_MeshEdge * e2,
-                                       const SMDS_MeshEdge * e3,
-                                       const SMDS_MeshEdge * e4, int ID);
-  virtual SMDS_MeshFace* AddFace(const SMDS_MeshEdge * e1,
-                                 const SMDS_MeshEdge * e2,
-                                 const SMDS_MeshEdge * e3,
-                                 const SMDS_MeshEdge * e4);
-
-  virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4, int ID);
-  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
-                                          const SMDS_MeshNode * n2,
-                                          const SMDS_MeshNode * n3,
-                                          const SMDS_MeshNode * n4, 
-                                          int ID);
-  virtual SMDS_MeshVolume* AddVolume(const SMDS_MeshNode * n1,
-                                    const SMDS_MeshNode * n2,
-                                    const SMDS_MeshNode * n3,
-                                    const SMDS_MeshNode * n4);
-  
-  virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4,
-                                           int n5, int ID);
-  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
-                                          const SMDS_MeshNode * n2,
-                                          const SMDS_MeshNode * n3,
-                                          const SMDS_MeshNode * n4,
-                                          const SMDS_MeshNode * n5, 
-                                          int ID);
-  virtual SMDS_MeshVolume* AddVolume(const SMDS_MeshNode * n1,
-                                    const SMDS_MeshNode * n2,
-                                    const SMDS_MeshNode * n3,
-                                    const SMDS_MeshNode * n4,
-                                    const SMDS_MeshNode * n5);
-  
-  virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4,
-                                           int n5, int n6, int ID);
-  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
-                                          const SMDS_MeshNode * n2,
-                                          const SMDS_MeshNode * n3,
-                                          const SMDS_MeshNode * n4,
-                                          const SMDS_MeshNode * n5,
-                                          const SMDS_MeshNode * n6, 
-                                          int ID);
-  virtual SMDS_MeshVolume* AddVolume(const SMDS_MeshNode * n1,
-                                    const SMDS_MeshNode * n2,
-                                    const SMDS_MeshNode * n3,
-                                    const SMDS_MeshNode * n4,
-                                    const SMDS_MeshNode * n5,
-                                    const SMDS_MeshNode * n6);
-  
-  virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4,
-                                           int n5, int n6, int n7, int n8, int ID);
-  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
-                                          const SMDS_MeshNode * n2,
-                                          const SMDS_MeshNode * n3,
-                                          const SMDS_MeshNode * n4,
-                                          const SMDS_MeshNode * n5,
-                                          const SMDS_MeshNode * n6,
-                                          const SMDS_MeshNode * n7,
-                                          const SMDS_MeshNode * n8, 
-                                          int ID);
-  virtual SMDS_MeshVolume* AddVolume(const SMDS_MeshNode * n1,
-                                    const SMDS_MeshNode * n2,
-                                    const SMDS_MeshNode * n3,
-                                    const SMDS_MeshNode * n4,
-                                    const SMDS_MeshNode * n5,
-                                    const SMDS_MeshNode * n6,
-                                    const SMDS_MeshNode * n7,
-                                    const SMDS_MeshNode * n8);
-
-  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshFace * f1,
-                                           const SMDS_MeshFace * f2,
-                                           const SMDS_MeshFace * f3,
-                                           const SMDS_MeshFace * f4, int ID);
-  virtual SMDS_MeshVolume* AddVolume(const SMDS_MeshFace * f1,
-                                     const SMDS_MeshFace * f2,
-                                     const SMDS_MeshFace * f3,
-                                     const SMDS_MeshFace * f4);
-
-  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshFace * f1,
-                                           const SMDS_MeshFace * f2,
-                                           const SMDS_MeshFace * f3,
-                                           const SMDS_MeshFace * f4,
-                                           const SMDS_MeshFace * f5, int ID);
-  virtual SMDS_MeshVolume* AddVolume(const SMDS_MeshFace * f1,
-                                     const SMDS_MeshFace * f2,
-                                     const SMDS_MeshFace * f3,
-                                     const SMDS_MeshFace * f4,
-                                     const SMDS_MeshFace * f5);
-
-  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshFace * f1,
-                                           const SMDS_MeshFace * f2,
-                                           const SMDS_MeshFace * f3,
-                                           const SMDS_MeshFace * f4,
-                                           const SMDS_MeshFace * f5,
-                                           const SMDS_MeshFace * f6, int ID);
-  virtual SMDS_MeshVolume* AddVolume(const SMDS_MeshFace * f1,
-                                     const SMDS_MeshFace * f2,
-                                     const SMDS_MeshFace * f3,
-                                     const SMDS_MeshFace * f4,
-                                     const SMDS_MeshFace * f5,
-                                     const SMDS_MeshFace * f6);
-
-  virtual SMDS_MeshFace* AddPolygonalFaceWithID (std::vector<int> nodes_ids,
-                                                 const int        ID);
-
-  virtual SMDS_MeshFace* AddPolygonalFaceWithID (std::vector<const SMDS_MeshNode*> nodes,
-                                                 const int                         ID);
-
-  virtual SMDS_MeshFace* AddPolygonalFace (std::vector<const SMDS_MeshNode*> nodes);
-
-  virtual SMDS_MeshVolume* AddPolyhedralVolumeWithID
-                           (std::vector<int> nodes_ids,
-                            std::vector<int> quantities,
-                            const int        ID);
-
-  virtual SMDS_MeshVolume* AddPolyhedralVolumeWithID
-                           (std::vector<const SMDS_MeshNode*> nodes,
-                            std::vector<int>                  quantities,
-                            const int                         ID);
-
-  virtual SMDS_MeshVolume* AddPolyhedralVolume
-                           (std::vector<const SMDS_MeshNode*> nodes,
-                            std::vector<int>                  quantities);
-
-  virtual void RemoveElement(const SMDS_MeshElement *        elem,
-                             std::list<const SMDS_MeshElement *>& removedElems,
-                             std::list<const SMDS_MeshElement *>& removedNodes,
-                             const bool                      removenodes = false);
-  virtual void RemoveElement(const SMDS_MeshElement * elem, bool removenodes = false);
-  virtual void RemoveNode(const SMDS_MeshNode * node);
-  virtual void RemoveEdge(const SMDS_MeshEdge * edge);
-  virtual void RemoveFace(const SMDS_MeshFace * face);
-  virtual void RemoveVolume(const SMDS_MeshVolume * volume);
-  
-  virtual bool RemoveFromParent();
-  virtual bool RemoveSubMesh(const SMDS_Mesh * aMesh);
-
-  static bool ChangeElementNodes(const SMDS_MeshElement * elem,
-                                 const SMDS_MeshNode    * nodes[],
-                                 const int                nbnodes);
-  static bool ChangePolyhedronNodes(const SMDS_MeshElement * elem,
-                                    std::vector<const SMDS_MeshNode*> nodes,
-                                    std::vector<int>                  quantities);
-
-  virtual void Renumber (const bool isNodes, const int startID = 1, const int deltaID = 1);
-  // Renumber all nodes or elements.
-
-  const SMDS_MeshNode *FindNode(int idnode) const;
-  const SMDS_MeshEdge *FindEdge(int idnode1, int idnode2) const;
-  const SMDS_MeshFace *FindFace(int idnode1, int idnode2, int idnode3) const;
-  const SMDS_MeshFace *FindFace(int idnode1, int idnode2, int idnode3, int idnode4) const;
-  const SMDS_MeshElement *FindElement(int IDelem) const;
-  static const SMDS_MeshEdge* FindEdge(const SMDS_MeshNode * n1,
-                                       const SMDS_MeshNode * n2);
-  static const SMDS_MeshFace* FindFace(const SMDS_MeshNode *n1,
-                                       const SMDS_MeshNode *n2,
-                                       const SMDS_MeshNode *n3);
-  static const SMDS_MeshFace* FindFace(const SMDS_MeshNode *n1,
-                                       const SMDS_MeshNode *n2,
-                                       const SMDS_MeshNode *n3,
-                                       const SMDS_MeshNode *n4);
-
-  const SMDS_MeshFace *FindFace(std::vector<int> nodes_ids) const;
-  static const SMDS_MeshFace* FindFace(std::vector<const SMDS_MeshNode *> nodes);
-
-  int MaxNodeID() const;
-  int MinNodeID() const;
-  int MaxElementID() const;
-  int MinElementID() const;
-
-
-  int NbNodes() const;
-  int NbEdges() const;
-  int NbFaces() const;
-  int NbVolumes() const;
-  int NbSubMesh() const;
-  void DumpNodes() const;
-  void DumpEdges() const;
-  void DumpFaces() const;
-  void DumpVolumes() const;
-  void DebugStats() const;
-  SMDS_Mesh *boundaryFaces();
-  SMDS_Mesh *boundaryEdges();
-  virtual ~SMDS_Mesh();
-  bool hasConstructionEdges();
-  bool hasConstructionFaces();
-  bool hasInverseElements();
-  void setConstructionEdges(bool);
-  void setConstructionFaces(bool);
-  void setInverseElements(bool);
-
-  /*!
-   * Checks if the element is present in mesh.
-   * Useful to determine dead pointers.
-   * Use this function for debug purpose only! Do not check in the code
-   * using it even in _DEBUG_ mode
-   */
-  bool Contains (const SMDS_MeshElement* elem) const;
-
-  typedef NCollection_Map<SMDS_MeshNode *> SetOfNodes;
-  typedef NCollection_Map<SMDS_MeshEdge *> SetOfEdges;
-  typedef NCollection_Map<SMDS_MeshFace *> SetOfFaces;
-  typedef NCollection_Map<SMDS_MeshVolume *> SetOfVolumes;
-
-private:
-  SMDS_Mesh(SMDS_Mesh * parent);
-
-  SMDS_MeshFace * createTriangle(const SMDS_MeshNode * node1, 
-                                const SMDS_MeshNode * node2, 
-                                const SMDS_MeshNode * node3);
-  SMDS_MeshFace * createQuadrangle(const SMDS_MeshNode * node1,
-                                  const SMDS_MeshNode * node2, 
-                                  const SMDS_MeshNode * node3, 
-                                  const SMDS_MeshNode * node4);
-  SMDS_MeshEdge* FindEdgeOrCreate(const SMDS_MeshNode * n1,
-                                 const SMDS_MeshNode * n2);
-  SMDS_MeshFace* FindFaceOrCreate(const SMDS_MeshNode *n1,
-                                 const SMDS_MeshNode *n2,
-                                 const SMDS_MeshNode *n3);
-  SMDS_MeshFace* FindFaceOrCreate(const SMDS_MeshNode *n1,
-                                 const SMDS_MeshNode *n2,
-                                 const SMDS_MeshNode *n3,
-                                 const SMDS_MeshNode *n4);
-
-  bool registerElement(int ID, SMDS_MeshElement * element);
-
-  void addChildrenWithNodes(std::set<const SMDS_MeshElement*>& setOfChildren, 
-                           const SMDS_MeshElement * element, 
-                           std::set<const SMDS_MeshElement*>& nodes);
-
-  // Fields PRIVATE
-  
-  SetOfNodes myNodes;
-  SetOfEdges myEdges;
-  SetOfFaces myFaces;
-  SetOfVolumes myVolumes;
-  SMDS_Mesh *myParent;
-  std::list<SMDS_Mesh *> myChildren;
-  SMDS_MeshElementIDFactory *myNodeIDFactory;
-  SMDS_MeshElementIDFactory *myElementIDFactory;
-  
-  bool myHasConstructionEdges;
-  bool myHasConstructionFaces;
-  bool myHasInverseElements;
-};
-
-
-#endif
diff --git a/src/SMDS/SMDS_MeshEdge.cxx b/src/SMDS/SMDS_MeshEdge.cxx
deleted file mode 100644 (file)
index 66c8ae3..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_MeshEdge.cxx
-//  Author : Jean-Michel BOULCOURT
-//  Module : SMESH
-
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#endif
-
-#include "SMDS_MeshEdge.hxx"
-#include "SMDS_IteratorOfElements.hxx"
-#include "SMDS_MeshNode.hxx"
-
-using namespace std;
-
-//=======================================================================
-//function : SMDS_MeshEdge
-//purpose  : 
-//=======================================================================
-
-SMDS_MeshEdge::SMDS_MeshEdge(const SMDS_MeshNode * node1,
-                             const SMDS_MeshNode * node2)
-{      
-       myNodes[0]=node1;
-       myNodes[1]=node2;
-}
-
-//=======================================================================
-//function : Print
-//purpose  : 
-//=======================================================================
-
-void SMDS_MeshEdge::Print(ostream & OS) const
-{
-       OS << "edge <" << GetID() << "> : (" << myNodes[0] << " , " << myNodes[1] <<
-               ") " << endl;
-}
-
-int SMDS_MeshEdge::NbNodes() const
-{
-       return 2;
-}
-
-int SMDS_MeshEdge::NbEdges() const
-{
-       return 1;
-}
-
-SMDSAbs_ElementType SMDS_MeshEdge::GetType() const
-{
-       return SMDSAbs_Edge;
-}
-
-class SMDS_MeshEdge_MyNodeIterator:public SMDS_ElemIterator
-{
-  const SMDS_MeshNode *const* myNodes;
-  int myIndex;
- public:
-  SMDS_MeshEdge_MyNodeIterator(const SMDS_MeshNode * const* nodes):
-    myNodes(nodes),myIndex(0) {}
-
-  bool more()
-  {
-    return myIndex<2;
-  }
-
-  const SMDS_MeshElement* next()
-  {
-    myIndex++;
-    return myNodes[myIndex-1];
-  }
-};
-
-SMDS_ElemIteratorPtr SMDS_MeshEdge::
-       elementsIterator(SMDSAbs_ElementType type) const
-{
-  switch(type)
-  {
-  case SMDSAbs_Edge:
-    return SMDS_MeshElement::elementsIterator(SMDSAbs_Edge); 
-  case SMDSAbs_Node:
-    return SMDS_ElemIteratorPtr(new SMDS_MeshEdge_MyNodeIterator(myNodes));
-  default:
-    return SMDS_ElemIteratorPtr
-      (new SMDS_IteratorOfElements
-       (this,type, SMDS_ElemIteratorPtr(new SMDS_MeshEdge_MyNodeIterator(myNodes))));
-  }
-}
-
-bool operator<(const SMDS_MeshEdge & e1, const SMDS_MeshEdge & e2)
-{
-       int id11=e1.myNodes[0]->GetID();
-       int id21=e2.myNodes[0]->GetID();
-       int id12=e1.myNodes[1]->GetID();
-       int id22=e2.myNodes[1]->GetID();
-       int tmp;
-
-       if(id11>=id12) 
-       {
-               tmp=id11;
-               id11=id12;
-               id12=tmp;       
-       }
-       if(id21>=id22) 
-       {
-               tmp=id21;
-               id21=id22;
-               id22=tmp;       
-       }
-
-       if(id11<id21) return true;
-       else if(id11==id21) return (id21<id22);
-       else return false;
-}
-
-//=======================================================================
-//function : ChangeNodes
-//purpose  : 
-//=======================================================================
-
-bool SMDS_MeshEdge::ChangeNodes(const SMDS_MeshNode * node1,
-                                const SMDS_MeshNode * node2)
-{
-  myNodes[0]=node1;
-  myNodes[1]=node2;
-  return true;
-}
-
diff --git a/src/SMDS/SMDS_MeshEdge.hxx b/src/SMDS/SMDS_MeshEdge.hxx
deleted file mode 100644 (file)
index 290210c..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_MeshEdge.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_MeshEdge_HeaderFile
-#define _SMDS_MeshEdge_HeaderFile
-
-#include "SMDS_MeshElement.hxx"
-#include <iostream>
-
-class SMDS_MeshEdge:public SMDS_MeshElement
-{
-
-  public:
-       SMDS_MeshEdge(const SMDS_MeshNode * node1,
-                      const SMDS_MeshNode * node2);
-        bool ChangeNodes(const SMDS_MeshNode * node1,
-                         const SMDS_MeshNode * node2);
-       void Print(std::ostream & OS) const;
-
-       SMDSAbs_ElementType GetType() const;
-       int NbNodes() const;
-       int NbEdges() const;
-       friend bool operator<(const SMDS_MeshEdge& e1, const SMDS_MeshEdge& e2);
-  protected:
-       SMDS_ElemIteratorPtr
-               elementsIterator(SMDSAbs_ElementType type) const;
-
-  private:
-       const SMDS_MeshNode* myNodes[2];
-
-};
-#endif
diff --git a/src/SMDS/SMDS_MeshElement.cxx b/src/SMDS/SMDS_MeshElement.cxx
deleted file mode 100644 (file)
index 8d4d9b7..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#endif
-
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_MeshEdge.hxx"
-#include "SMDS_MeshFace.hxx"
-#include "SMDS_MeshVolume.hxx"
-#include "utilities.h"
-
-using namespace std;
-
-SMDS_MeshElement::SMDS_MeshElement(int ID):myID(ID)
-{
-}
-
-void SMDS_MeshElement::Print(ostream & OS) const
-{
-       OS << "dump of mesh element" << endl;
-}
-
-ostream & operator <<(ostream & OS, const SMDS_MeshElement * ME)
-{
-       ME->Print(OS);
-       return OS;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Create an iterator which iterate on nodes owned by the element.
-/// This method call elementsIterator().
-///////////////////////////////////////////////////////////////////////////////
-SMDS_ElemIteratorPtr SMDS_MeshElement::nodesIterator() const
-{
-       return elementsIterator(SMDSAbs_Node);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Create an iterator which iterate on edges linked with or owned by the element.
-/// This method call elementsIterator().
-///////////////////////////////////////////////////////////////////////////////
-SMDS_ElemIteratorPtr SMDS_MeshElement::edgesIterator() const
-{
-       return elementsIterator(SMDSAbs_Edge);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Create an iterator which iterate on faces linked with or owned by the element.
-/// This method call elementsIterator().
-///////////////////////////////////////////////////////////////////////////////
-SMDS_ElemIteratorPtr SMDS_MeshElement::facesIterator() const
-{
-       return elementsIterator(SMDSAbs_Face);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Return The number of nodes owned by the current element
-///////////////////////////////////////////////////////////////////////////////
-int SMDS_MeshElement::NbNodes() const
-{
-       int nbnodes=0;
-       SMDS_ElemIteratorPtr it=nodesIterator();
-       while(it->more())
-       {
-               it->next();
-               nbnodes++;
-       }
-       return nbnodes;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Return the number of edges owned by or linked with the current element
-///////////////////////////////////////////////////////////////////////////////
-int SMDS_MeshElement::NbEdges() const
-{
-       int nbedges=0;
-       SMDS_ElemIteratorPtr it=edgesIterator();
-       while(it->more())
-       {
-               it->next();
-               nbedges++;
-       }
-       return nbedges;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Return the number of faces owned by or linked with the current element
-///////////////////////////////////////////////////////////////////////////////
-int SMDS_MeshElement::NbFaces() const
-{
-       int nbfaces=0;
-       SMDS_ElemIteratorPtr it=facesIterator();
-       while(it->more())
-       {
-               it->next();
-               nbfaces++;
-       }
-       return nbfaces;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Create an iterator which iterate on elements linked with the current element.
-///@param type The of elements on which you want to iterate
-///@return A smart pointer to iterator, you are not to take care of freeing memory
-///////////////////////////////////////////////////////////////////////////////
-class SMDS_MeshElement_MyIterator:public SMDS_ElemIterator
-{
-  const SMDS_MeshElement * myElement;
-  bool myMore;
- public:
-  SMDS_MeshElement_MyIterator(const SMDS_MeshElement * element):
-    myElement(element),myMore(true) {}
-
-  bool more()
-  {
-    return myMore;
-  }
-
-  const SMDS_MeshElement* next()
-  {
-    myMore=false;
-    return myElement;  
-  }    
-};
-SMDS_ElemIteratorPtr SMDS_MeshElement::
-       elementsIterator(SMDSAbs_ElementType type) const
-{
-       /** @todo Check that iterator in the child classes return elements
-       in the same order for each different implementation (i.e: SMDS_VolumeOfNodes
-       and SMDS_VolumeOfFaces */
-       
-       if(type==GetType())
-          return SMDS_ElemIteratorPtr(new SMDS_MeshElement_MyIterator(this));
-       else 
-       {
-          MESSAGE("Iterator not implemented");
-          return SMDS_ElemIteratorPtr((SMDS_ElemIterator*)NULL);
-       }
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///Return the ID of the element
-///////////////////////////////////////////////////////////////////////////////
-int SMDS_MeshElement::GetID() const
-{
-       return myID;
-}
-
-bool operator<(const SMDS_MeshElement& e1, const SMDS_MeshElement& e2)
-{
-       if(e1.GetType()!=e2.GetType()) return false;
-       switch(e1.GetType())
-       {
-       case SMDSAbs_Node:
-               return static_cast<const SMDS_MeshNode &>(e1) <
-                       static_cast<const SMDS_MeshNode &>(e2);
-
-       case SMDSAbs_Edge:
-               return static_cast<const SMDS_MeshEdge &>(e1) <
-                       static_cast<const SMDS_MeshEdge &>(e2);
-
-       case SMDSAbs_Face:
-               return static_cast<const SMDS_MeshFace &>(e1) <
-                       static_cast<const SMDS_MeshFace &>(e2);
-
-       case SMDSAbs_Volume:
-               return static_cast<const SMDS_MeshVolume &>(e1) <
-                       static_cast<const SMDS_MeshVolume &>(e2);
-
-       default : MESSAGE("Internal Error");
-       }
-        return false;
-}
diff --git a/src/SMDS/SMDS_MeshElement.hxx b/src/SMDS/SMDS_MeshElement.hxx
deleted file mode 100644 (file)
index b9f6135..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_MeshElement.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_MeshElement_HeaderFile
-#define _SMDS_MeshElement_HeaderFile
-       
-#include "SMDSAbs_ElementType.hxx"
-#include "SMDS_MeshObject.hxx"
-#include "SMDS_ElemIterator.hxx"
-#include "SMDS_MeshElementIDFactory.hxx"
-
-#include <vector>
-#include <iostream>
-
-class SMDS_MeshNode;
-class SMDS_MeshEdge;
-class SMDS_MeshFace;   
-
-///////////////////////////////////////////////////////////////////////////////
-/// Base class for elements
-///////////////////////////////////////////////////////////////////////////////
-class SMDS_MeshElement:public SMDS_MeshObject
-{
-
-  public:
-       SMDS_ElemIteratorPtr nodesIterator() const;
-       SMDS_ElemIteratorPtr edgesIterator() const;
-       SMDS_ElemIteratorPtr facesIterator() const;
-       virtual SMDS_ElemIteratorPtr
-               elementsIterator(SMDSAbs_ElementType type) const;
-
-       virtual int NbNodes() const;
-       virtual int NbEdges() const;
-       virtual int NbFaces() const;
-       int GetID() const;
-
-       ///Return the type of the current element
-       virtual SMDSAbs_ElementType GetType() const = 0;
-       virtual bool IsPoly() const { return false; };
-
-       friend std::ostream & operator <<(std::ostream & OS, const SMDS_MeshElement *);
-       friend bool SMDS_MeshElementIDFactory::BindID(int ID,SMDS_MeshElement*elem);
-
-  protected:
-       SMDS_MeshElement(int ID=-1);
-       virtual void Print(std::ostream & OS) const;
-       
-  private:
-       int myID;
-};
-
-#endif
diff --git a/src/SMDS/SMDS_MeshElementIDFactory.cxx b/src/SMDS/SMDS_MeshElementIDFactory.cxx
deleted file mode 100644 (file)
index 8fc0923..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_MeshElementIDFactory.cxx
-//  Author : Jean-Michel BOULCOURT
-//  Module : SMESH
-
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#endif
-
-#include "SMDS_MeshElementIDFactory.hxx"
-#include "SMDS_MeshElement.hxx"
-
-using namespace std;
-
-//=======================================================================
-//function : SMDS_MeshElementIDFactory
-//purpose  : 
-//=======================================================================
-SMDS_MeshElementIDFactory::SMDS_MeshElementIDFactory():
-  SMDS_MeshIDFactory(),
-  myMin(0), myMax(0)
-{
-}
-
-//=======================================================================
-//function : BindID
-//purpose  : 
-//=======================================================================
-bool SMDS_MeshElementIDFactory::BindID(int ID, SMDS_MeshElement * elem)
-{
-  if (myIDElements.IsBound(ID))
-    return false;
-  myIDElements.Bind(ID,elem);
-  elem->myID=ID;
-  updateMinMax (ID);
-  return true;
-}
-
-//=======================================================================
-//function : MeshElement
-//purpose  : 
-//=======================================================================
-SMDS_MeshElement* SMDS_MeshElementIDFactory::MeshElement(int ID)
-{
-  if (!myIDElements.IsBound(ID))
-    return NULL;
-  return myIDElements.Find(ID);
-}
-
-
-//=======================================================================
-//function : GetFreeID
-//purpose  : 
-//=======================================================================
-int SMDS_MeshElementIDFactory::GetFreeID()
-{
-  int ID;
-  do {
-    ID = SMDS_MeshIDFactory::GetFreeID();
-  } while (myIDElements.IsBound(ID));
-  return ID;
-}
-
-//=======================================================================
-//function : ReleaseID
-//purpose  : 
-//=======================================================================
-void SMDS_MeshElementIDFactory::ReleaseID(const int ID)
-{
-  myIDElements.UnBind(ID);
-  SMDS_MeshIDFactory::ReleaseID(ID);
-  if (ID == myMax)
-    myMax = 0;
-  if (ID == myMin)
-    myMin = 0;
-}
-
-//=======================================================================
-//function : GetMaxID
-//purpose  : 
-//=======================================================================
-
-int SMDS_MeshElementIDFactory::GetMaxID() const
-{
-  if (myMax == 0)
-    updateMinMax();
-  return myMax;
-}
-
-//=======================================================================
-//function : GetMinID
-//purpose  : 
-//=======================================================================
-
-int SMDS_MeshElementIDFactory::GetMinID() const
-{
-  if (myMin == 0)
-    updateMinMax();
-  return myMin;
-}
-
-//=======================================================================
-//function : updateMinMax
-//purpose  : 
-//=======================================================================
-
-void SMDS_MeshElementIDFactory::updateMinMax() const
-{
-  myMin = IntegerLast();
-  myMax = 0;
-  SMDS_IdElementMap::Iterator it(myIDElements);
-  for (; it.More(); it.Next())
-    updateMinMax (it.Key());
-  if (myMin == IntegerLast())
-    myMin = 0;
-}
-
-//=======================================================================
-//function : elementsIterator
-//purpose  : Return an iterator on elements of the factory
-//=======================================================================
-
-class SMDS_Fact_MyElemIterator:public SMDS_ElemIterator
-{
-  SMDS_IdElementMap::Iterator myIterator;
- public:
-  SMDS_Fact_MyElemIterator(const SMDS_IdElementMap& s):myIterator(s)
-  {}
-
-  bool more()
-  {
-    return myIterator.More() != Standard_False;
-  }
-
-  const SMDS_MeshElement* next()
-  {
-    const SMDS_MeshElement* current = myIterator.Value();
-    myIterator.Next();
-    return current;
-  }
-};
-
-SMDS_ElemIteratorPtr SMDS_MeshElementIDFactory::elementsIterator() const
-{
-  return SMDS_ElemIteratorPtr
-    (new SMDS_Fact_MyElemIterator(myIDElements));
-}
diff --git a/src/SMDS/SMDS_MeshElementIDFactory.hxx b/src/SMDS/SMDS_MeshElementIDFactory.hxx
deleted file mode 100644 (file)
index 526bcb5..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_MeshElementIDFactory.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_MeshElementIDFactory_HeaderFile
-#define _SMDS_MeshElementIDFactory_HeaderFile
-
-#include "SMDS_MeshIDFactory.hxx"
-#include "SMDS_ElemIterator.hxx"
-
-#include <NCollection_DataMap.hxx>
-
-class SMDS_MeshElement;
-
-typedef NCollection_DataMap<int, SMDS_MeshElement *> SMDS_IdElementMap;
-
-class SMDS_MeshElementIDFactory:public SMDS_MeshIDFactory
-{
-public:
-  SMDS_MeshElementIDFactory();
-  bool BindID(int ID, SMDS_MeshElement * elem);
-  SMDS_MeshElement * MeshElement(int ID);
-  virtual int GetFreeID();
-  virtual void ReleaseID(int ID);
-  int GetMaxID() const;
-  int GetMinID() const;
-  SMDS_ElemIteratorPtr elementsIterator() const;
-private:
-  void updateMinMax() const;
-  void updateMinMax(int id) const
-  {
-    if (id > myMax) myMax = id;
-    if (id < myMin) myMin = id;
-  }
-
-  SMDS_IdElementMap myIDElements;
-  mutable int myMin, myMax;
-
-};
-
-#endif
diff --git a/src/SMDS/SMDS_MeshFace.cxx b/src/SMDS/SMDS_MeshFace.cxx
deleted file mode 100644 (file)
index b701429..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#include "SMDS_MeshFace.hxx"
-
-SMDSAbs_ElementType SMDS_MeshFace::GetType() const
-{
-       return SMDSAbs_Face;
-}
diff --git a/src/SMDS/SMDS_MeshFace.hxx b/src/SMDS/SMDS_MeshFace.hxx
deleted file mode 100644 (file)
index 36f2fa5..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_MeshFace.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_MeshFace_HeaderFile
-#define _SMDS_MeshFace_HeaderFile
-
-#include "SMDS_MeshElement.hxx"
-
-class SMDS_MeshFace:public SMDS_MeshElement
-{
-  public:
-       SMDSAbs_ElementType GetType() const;
-};
-
-#endif
diff --git a/src/SMDS/SMDS_MeshGroup.cxx b/src/SMDS/SMDS_MeshGroup.cxx
deleted file mode 100644 (file)
index 0cb481c..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org or email : webmaster@opencascade.org 
-//
-//
-//
-//  File   : SMDS_MeshGroup.cxx
-//  Author : Jean-Michel BOULCOURT
-//  Module : SMESH
-
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#endif
-
-#include "SMDS_MeshGroup.hxx"
-#include "utilities.h"
-
-using namespace std;
-
-//=======================================================================
-//function : SMDS_MeshGroup
-//purpose  : 
-//=======================================================================
-
-SMDS_MeshGroup::SMDS_MeshGroup(const SMDS_Mesh * theMesh,
-                               const SMDSAbs_ElementType theType)
-       :myMesh(theMesh),myType(theType), myParent(NULL)
-{
-}
-
-//=======================================================================
-//function : SMDS_MeshGroup
-//purpose  : 
-//=======================================================================
-
-SMDS_MeshGroup::SMDS_MeshGroup(SMDS_MeshGroup * theParent,
-                               const SMDSAbs_ElementType theType)
-       :myMesh(theParent->myMesh),myType(theType), myParent(theParent)
-{
-}
-
-//=======================================================================
-//function : AddSubGroup
-//purpose  : 
-//=======================================================================
-
-const SMDS_MeshGroup *SMDS_MeshGroup::AddSubGroup
-                (const SMDSAbs_ElementType theType)
-{
-       const SMDS_MeshGroup * subgroup = new SMDS_MeshGroup(this,theType);
-       myChildren.insert(myChildren.end(),subgroup);
-       return subgroup;
-}
-
-//=======================================================================
-//function : RemoveSubGroup
-//purpose  : 
-//=======================================================================
-
-bool SMDS_MeshGroup::RemoveSubGroup(const SMDS_MeshGroup * theGroup)
-{
-       bool found = false;     
-       list<const SMDS_MeshGroup*>::iterator itgroup;
-       for(itgroup=myChildren.begin(); itgroup!=myChildren.end(); itgroup++)
-       {
-               const SMDS_MeshGroup* subgroup=*itgroup;
-               if (subgroup == theGroup)
-               {
-                       found = true;
-                       myChildren.erase(itgroup);
-               }
-       }
-
-       return found;
-}
-
-//=======================================================================
-//function : RemoveFromParent
-//purpose  : 
-//=======================================================================
-
-bool SMDS_MeshGroup::RemoveFromParent()
-{
-       
-       if (myParent==NULL) return false;
-       else
-       {
-               return (myParent->RemoveSubGroup(this));
-       }
-}
-//=======================================================================
-//function : Clear
-//purpose  : 
-//=======================================================================
-
-void SMDS_MeshGroup::Clear()
-{
-       myElements.clear();
-       myType = SMDSAbs_All;
-}
-
-//=======================================================================
-//function : Add
-//purpose  : 
-//=======================================================================
-
-void SMDS_MeshGroup::Add(const SMDS_MeshElement * theElem)
-{
-       // the type of the group is determined by the first element added
-       if (myElements.empty()) myType = theElem->GetType();
-       else if (theElem->GetType() != myType)
-         MESSAGE("SMDS_MeshGroup::Add : Type Mismatch "<<theElem->GetType()<<"!="<<myType);
-       
-       myElements.insert(theElem);
-}
-
-//=======================================================================
-//function : Remove
-//purpose  : 
-//=======================================================================
-
-void SMDS_MeshGroup::Remove(const SMDS_MeshElement * theElem)
-{
-       myElements.erase(theElem);
-       if (myElements.empty()) myType = SMDSAbs_All;
-}
-
-//=======================================================================
-//function : Contains
-//purpose  : 
-//=======================================================================
-
-bool SMDS_MeshGroup::Contains(const SMDS_MeshElement * theElem) const
-{
-       return myElements.find(theElem)!=myElements.end();
-}
-
-//=======================================================================
-//function : SetType
-//purpose  : 
-//=======================================================================
-
-void SMDS_MeshGroup::SetType(const SMDSAbs_ElementType theType)
-{
-  if (IsEmpty())
-    myType = theType;
-}
diff --git a/src/SMDS/SMDS_MeshGroup.hxx b/src/SMDS/SMDS_MeshGroup.hxx
deleted file mode 100644 (file)
index ef2264c..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org or email : webmaster@opencascade.org 
-//
-//
-//
-//  File   : SMDS_MeshGroup.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_MeshGroup_HeaderFile
-#define _SMDS_MeshGroup_HeaderFile
-
-#include "SMDS_Mesh.hxx"
-#include <set>
-
-
-class SMDS_MeshGroup:public SMDS_MeshObject
-{
-  public:
-       SMDS_MeshGroup(const SMDS_Mesh * theMesh,
-                       const SMDSAbs_ElementType theType = SMDSAbs_All);
-       const SMDS_MeshGroup * AddSubGroup
-                      (const SMDSAbs_ElementType theType = SMDSAbs_All);
-       virtual bool RemoveSubGroup(const SMDS_MeshGroup* theGroup);
-       virtual bool RemoveFromParent();
-
-        const SMDS_Mesh* GetMesh() const { return myMesh; }
-
-        void SetType (const SMDSAbs_ElementType theType);
-        void Clear();
-       void Add(const SMDS_MeshElement * theElem);
-       void Remove(const SMDS_MeshElement * theElem);
-       bool IsEmpty() const { return myElements.empty(); }
-       int Extent() const { return myElements.size(); }
-
-        SMDSAbs_ElementType GetType() const { return myType; }
-
-       bool Contains(const SMDS_MeshElement * theElem) const;
-
-        void InitIterator() const
-        { const_cast<TIterator&>(myIterator) = myElements.begin(); }
-
-        bool More() const { return myIterator != myElements.end(); }
-
-        const SMDS_MeshElement* Next() const
-        { return *(const_cast<TIterator&>(myIterator))++; }
-
-  private:
-       SMDS_MeshGroup(SMDS_MeshGroup* theParent,
-                       const SMDSAbs_ElementType theType = SMDSAbs_All);
-
-        typedef std::set<const SMDS_MeshElement *>::const_iterator TIterator;
-       const SMDS_Mesh *                       myMesh;
-       SMDSAbs_ElementType                     myType;
-       std::set<const SMDS_MeshElement *>      myElements;
-       SMDS_MeshGroup *                        myParent;
-       std::list<const SMDS_MeshGroup*>        myChildren;
-        TIterator                               myIterator;
-};
-#endif
diff --git a/src/SMDS/SMDS_MeshIDFactory.cxx b/src/SMDS/SMDS_MeshIDFactory.cxx
deleted file mode 100644 (file)
index 536b2f7..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_MeshIDFactory.cxx
-//  Author : Jean-Michel BOULCOURT
-//  Module : SMESH
-
-
-#include "SMDS_MeshIDFactory.hxx"
-
-using namespace std;
-
-//=======================================================================
-//function : SMDS_MeshIDFactory
-//purpose  : 
-//=======================================================================
-
-SMDS_MeshIDFactory::SMDS_MeshIDFactory():myMaxID(0)
-{
-}
-
-int SMDS_MeshIDFactory::GetFreeID()
-{
-       if (myPoolOfID.empty()) return ++myMaxID;
-       else
-       {
-                set<int>::iterator i = myPoolOfID.begin();
-               int ID = *i;//myPoolOfID.top();
-               myPoolOfID.erase( i );//myPoolOfID.pop();
-               return ID;
-       }
-}
-
-//=======================================================================
-//function : ReleaseID
-//purpose  : 
-//=======================================================================
-void SMDS_MeshIDFactory::ReleaseID(const int ID)
-{
-  if ( ID > 0 )
-  {
-    if ( ID < myMaxID )
-    {
-      myPoolOfID.insert(ID);
-    }
-    else if ( ID == myMaxID )
-    {
-      --myMaxID;
-      if ( !myPoolOfID.empty() ) // assure that myMaxID is not in myPoolOfID
-      {
-        set<int>::iterator i = --myPoolOfID.end();
-        while ( i != myPoolOfID.begin() && myMaxID == *i ) {
-          --myMaxID; --i;
-        }
-        if ( myMaxID == *i )
-          --myMaxID; // begin of myPoolOfID reached
-        else
-          ++i;
-        myPoolOfID.erase( i, myPoolOfID.end() );
-      }
-    }
-  }
-}
diff --git a/src/SMDS/SMDS_MeshIDFactory.hxx b/src/SMDS/SMDS_MeshIDFactory.hxx
deleted file mode 100644 (file)
index 8a6425a..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_MeshIDFactory.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_MeshIDFactory_HeaderFile
-#define _SMDS_MeshIDFactory_HeaderFile
-
-#include "SMDS_MeshObject.hxx"
-#include <set>
-
-
-class SMDS_MeshIDFactory:public SMDS_MeshObject
-{
-  public:
-       virtual int GetFreeID();
-       virtual void ReleaseID(int ID);
-
-  protected:
-       SMDS_MeshIDFactory();
-       int myMaxID;
-       std::set<int> myPoolOfID;
-};
-
-#endif
diff --git a/src/SMDS/SMDS_MeshNode.cxx b/src/SMDS/SMDS_MeshNode.cxx
deleted file mode 100644 (file)
index 06ab121..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#endif
-
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_SpacePosition.hxx"
-#include "SMDS_IteratorOfElements.hxx"
-
-using namespace std;
-
-//=======================================================================
-//function : SMDS_MeshNode
-//purpose  : 
-//=======================================================================
-
-SMDS_MeshNode::SMDS_MeshNode(double x, double y, double z):
-       myX(x), myY(y), myZ(z),
-       myPosition(SMDS_SpacePosition::originSpacePosition())
-{
-}
-
-//=======================================================================
-//function : RemoveInverseElement
-//purpose  : 
-//=======================================================================
-
-void SMDS_MeshNode::RemoveInverseElement(const SMDS_MeshElement * parent)
-{
-  NCollection_List<const SMDS_MeshElement*>::Iterator it(myInverseElements);
-  while (it.More()) {
-    const SMDS_MeshElement* elem = it.Value();
-    if (elem == parent)
-      myInverseElements.Remove(it);
-    else
-      it.Next();
-  }
-}
-
-//=======================================================================
-//function : Print
-//purpose  : 
-//=======================================================================
-
-void SMDS_MeshNode::Print(ostream & OS) const
-{
-       OS << "Node <" << GetID() << "> : X = " << myX << " Y = "
-               << myY << " Z = " << myZ << endl;
-}
-
-//=======================================================================
-//function : SetPosition
-//purpose  : 
-//=======================================================================
-
-void SMDS_MeshNode::SetPosition(const SMDS_PositionPtr& aPos)
-{
-       myPosition = aPos;
-}
-
-//=======================================================================
-//function : GetPosition
-//purpose  : 
-//=======================================================================
-
-const SMDS_PositionPtr& SMDS_MeshNode::GetPosition() const
-{
-       return myPosition;
-}
-
-class SMDS_MeshNode_MyInvIterator:public SMDS_ElemIterator
-{
-  NCollection_List<const SMDS_MeshElement*>::Iterator myIterator;
- public:
-  SMDS_MeshNode_MyInvIterator(const NCollection_List<const SMDS_MeshElement*>& s):
-    myIterator(s)
-  {}
-
-  bool more()
-  {
-    return myIterator.More() != Standard_False;
-  }
-
-  const SMDS_MeshElement* next()
-  {
-    const SMDS_MeshElement* current=myIterator.Value();
-    myIterator.Next();
-    return current;
-  }    
-};
-
-SMDS_ElemIteratorPtr SMDS_MeshNode::
-       GetInverseElementIterator() const
-{
-  return SMDS_ElemIteratorPtr(new SMDS_MeshNode_MyInvIterator(myInverseElements));
-}
-
-// Same as GetInverseElementIterator but the create iterator only return
-// wanted type elements.
-class SMDS_MeshNode_MyIterator:public SMDS_ElemIterator
-{
-  NCollection_List<const SMDS_MeshElement*> mySet;
-  NCollection_List<const SMDS_MeshElement*>::Iterator myIterator;
- public:
-  SMDS_MeshNode_MyIterator(SMDSAbs_ElementType type,
-                           const NCollection_List<const SMDS_MeshElement*>& s)
-  {
-    const SMDS_MeshElement * e;
-    bool toInsert;
-    NCollection_List<const SMDS_MeshElement*>::Iterator it(s);
-    for(; it.More(); it.Next())
-    {
-      e=it.Value();
-      switch(type)
-      {
-      case SMDSAbs_Edge: toInsert=true; break;
-      case SMDSAbs_Face: toInsert=(e->GetType()!=SMDSAbs_Edge); break;
-      case SMDSAbs_Volume: toInsert=(e->GetType()==SMDSAbs_Volume); break;
-      }
-      if(toInsert) mySet.Append(e);
-    }
-    myIterator.Init(mySet);
-  }
-
-  bool more()
-  {
-    return myIterator.More() != Standard_False;
-  }
-
-  const SMDS_MeshElement* next()
-  {
-    const SMDS_MeshElement* current=myIterator.Value();
-    myIterator.Next();
-    return current;
-  }
-};
-
-SMDS_ElemIteratorPtr SMDS_MeshNode::
-       elementsIterator(SMDSAbs_ElementType type) const
-{
-  if(type==SMDSAbs_Node)
-    return SMDS_MeshElement::elementsIterator(SMDSAbs_Node); 
-  else
-    return SMDS_ElemIteratorPtr
-      (new SMDS_IteratorOfElements
-       (this,type,
-        SMDS_ElemIteratorPtr(new SMDS_MeshNode_MyIterator(type, myInverseElements))));
-}
-
-int SMDS_MeshNode::NbNodes() const
-{
-       return 1;
-}
-
-double SMDS_MeshNode::X() const
-{
-       return myX;
-}
-
-double SMDS_MeshNode::Y() const
-{
-       return myY;
-}
-
-double SMDS_MeshNode::Z() const
-{
-       return myZ;
-}
-
-void SMDS_MeshNode::setXYZ(double x, double y, double z)
-{
-       myX=x;
-       myY=y;
-       myZ=z;  
-}
-
-SMDSAbs_ElementType SMDS_MeshNode::GetType() const
-{
-       return SMDSAbs_Node;
-}
-
-//=======================================================================
-//function : AddInverseElement
-//purpose  :
-//=======================================================================
-void SMDS_MeshNode::AddInverseElement(const SMDS_MeshElement* ME)
-{
-  NCollection_List<const SMDS_MeshElement*>::Iterator it(myInverseElements);
-  for (; it.More(); it.Next()) {
-    const SMDS_MeshElement* elem = it.Value();
-    if (elem == ME)
-      return;
-  }
-  myInverseElements.Append(ME);
-}
-
-//=======================================================================
-//function : ClearInverseElements
-//purpose  :
-//=======================================================================
-void SMDS_MeshNode::ClearInverseElements()
-{
-  myInverseElements.Clear();
-}
-
-bool SMDS_MeshNode::emptyInverseElements()
-{
-  return myInverseElements.IsEmpty() != Standard_False;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// To be used with STL set
-///////////////////////////////////////////////////////////////////////////////
-bool operator<(const SMDS_MeshNode& e1, const SMDS_MeshNode& e2)
-{
-       return e1.GetID()<e2.GetID();
-       /*if(e1.myX<e2.myX) return true;
-       else if(e1.myX==e2.myX)
-       {
-               if(e1.myY<e2.myY) return true;
-               else if(e1.myY==e2.myY) return (e1.myZ<e2.myZ);
-               else return false;
-       }
-       else return false;*/
-}
-
diff --git a/src/SMDS/SMDS_MeshNode.hxx b/src/SMDS/SMDS_MeshNode.hxx
deleted file mode 100644 (file)
index fec7524..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_MeshNode.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_MeshNode_HeaderFile
-#define _SMDS_MeshNode_HeaderFile
-
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_Position.hxx"
-#include <NCollection_List.hxx>
-
-class SMDS_MeshNode:public SMDS_MeshElement
-{
-
-  public:
-       SMDS_MeshNode(double x, double y, double z);
-       void Print(std::ostream & OS) const;
-       double X() const;
-       double Y() const;
-       double Z() const;
-       void AddInverseElement(const SMDS_MeshElement * ME);
-       void RemoveInverseElement(const SMDS_MeshElement * parent);
-       void ClearInverseElements();
-       bool emptyInverseElements();
-       SMDS_ElemIteratorPtr GetInverseElementIterator() const; 
-       void SetPosition(const SMDS_PositionPtr& aPos);
-       const SMDS_PositionPtr& GetPosition() const;
-       SMDSAbs_ElementType GetType() const;
-       int NbNodes() const;
-       void setXYZ(double x, double y, double z);
-       friend bool operator<(const SMDS_MeshNode& e1, const SMDS_MeshNode& e2);
-
-  protected:
-       SMDS_ElemIteratorPtr
-               elementsIterator(SMDSAbs_ElementType type) const;
-
-  private:
-       double myX, myY, myZ;
-       SMDS_PositionPtr myPosition;
-       NCollection_List<const SMDS_MeshElement*> myInverseElements;
-};
-
-#endif
diff --git a/src/SMDS/SMDS_MeshObject.cxx b/src/SMDS/SMDS_MeshObject.cxx
deleted file mode 100644 (file)
index b822b80..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_MeshObject.cxx
-//  Author : Jean-Michel BOULCOURT
-//  Module : SMESH
-
-#include "SMDS_MeshObject.hxx"
diff --git a/src/SMDS/SMDS_MeshObject.hxx b/src/SMDS/SMDS_MeshObject.hxx
deleted file mode 100644 (file)
index 8386f21..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_MeshObject.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_MeshObject_HeaderFile
-#define _SMDS_MeshObject_HeaderFile
-
-class SMDS_MeshObject
-{
- public:
-  virtual ~SMDS_MeshObject() {}
-};
-#endif
diff --git a/src/SMDS/SMDS_MeshVolume.cxx b/src/SMDS/SMDS_MeshVolume.cxx
deleted file mode 100644 (file)
index 561f0dc..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_MeshVolume.cxx
-//  Author : Jean-Michel BOULCOURT
-//  Module : SMESH
-
-#include "SMDS_MeshVolume.hxx"
-//=======================================================================
-//function : Print
-//purpose  : 
-//=======================================================================
-
-SMDSAbs_ElementType SMDS_MeshVolume::GetType() const
-{
-       return SMDSAbs_Volume;
-}
-
diff --git a/src/SMDS/SMDS_MeshVolume.hxx b/src/SMDS/SMDS_MeshVolume.hxx
deleted file mode 100644 (file)
index c543c30..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_MeshVolume.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_MeshVolume_HeaderFile
-#define _SMDS_MeshVolume_HeaderFile
-
-#include "SMDS_MeshElement.hxx"
-
-class SMDS_MeshVolume:public SMDS_MeshElement
-{
-       
-  public:
-       SMDSAbs_ElementType GetType() const;
-};
-#endif
diff --git a/src/SMDS/SMDS_PolygonalFaceOfNodes.cxx b/src/SMDS/SMDS_PolygonalFaceOfNodes.cxx
deleted file mode 100644 (file)
index 38abf18..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#endif
-
-#include "SMDS_PolygonalFaceOfNodes.hxx"
-
-#include "SMDS_IteratorOfElements.hxx"
-//#include "SMDS_MeshNode.hxx"
-#include "utilities.h"
-
-using namespace std;
-
-//=======================================================================
-//function : Constructor
-//purpose  : 
-//=======================================================================
-SMDS_PolygonalFaceOfNodes::SMDS_PolygonalFaceOfNodes
-                          (std::vector<const SMDS_MeshNode *> nodes)
-{
-  myNodes = nodes;
-}
-
-//=======================================================================
-//function : GetType
-//purpose  : 
-//=======================================================================
-SMDSAbs_ElementType SMDS_PolygonalFaceOfNodes::GetType() const
-{
-  return SMDSAbs_Face;
-  //return SMDSAbs_PolygonalFace;
-}
-
-//=======================================================================
-//function : ChangeNodes
-//purpose  : 
-//=======================================================================
-bool SMDS_PolygonalFaceOfNodes::ChangeNodes (std::vector<const SMDS_MeshNode *> nodes)
-{
-  if (nodes.size() < 3)
-    return false;
-
-  myNodes = nodes;
-
-  return true;
-}
-
-//=======================================================================
-//function : ChangeNodes
-//purpose  : to support the same interface, as SMDS_FaceOfNodes
-//=======================================================================
-bool SMDS_PolygonalFaceOfNodes::ChangeNodes (const SMDS_MeshNode* nodes[],
-                                             const int            nbNodes)
-{
-  if (nbNodes < 3)
-    return false;
-
-  myNodes.resize(nbNodes);
-  int i = 0;
-  for (; i < nbNodes; i++) {
-    myNodes[i] = nodes[i];
-  }
-
-  return true;
-}
-
-//=======================================================================
-//function : NbNodes
-//purpose  : 
-//=======================================================================
-int SMDS_PolygonalFaceOfNodes::NbNodes() const
-{
-  return myNodes.size();
-}
-
-//=======================================================================
-//function : NbEdges
-//purpose  : 
-//=======================================================================
-int SMDS_PolygonalFaceOfNodes::NbEdges() const
-{
-  return NbNodes();
-}
-
-//=======================================================================
-//function : NbFaces
-//purpose  : 
-//=======================================================================
-int SMDS_PolygonalFaceOfNodes::NbFaces() const
-{
-  return 1;
-}
-
-//=======================================================================
-//function : Print
-//purpose  : 
-//=======================================================================
-void SMDS_PolygonalFaceOfNodes::Print(ostream & OS) const
-{
-  OS << "polygonal face <" << GetID() << " > : ";
-  int i, nbNodes = myNodes.size();
-  for (i = 0; i < nbNodes - 1; i++)
-    OS << myNodes[i] << ",";
-  OS << myNodes[i] << ") " << endl;
-}
-
-//=======================================================================
-//function : elementsIterator
-//purpose  : 
-//=======================================================================
-class SMDS_PolygonalFaceOfNodes_MyIterator:public SMDS_ElemIterator
-{
-  //const SMDS_MeshNode* const *mySet;
-  const std::vector<const SMDS_MeshNode *> mySet;
-  //int myLength;
-  int index;
- public:
-  //SMDS_PolygonalFaceOfNodes_MyIterator(const SMDS_MeshNode* const *s, int l):
-  //  mySet(s),myLength(l),index(0) {}
-  SMDS_PolygonalFaceOfNodes_MyIterator(const std::vector<const SMDS_MeshNode *> s):
-    mySet(s),index(0) {}
-
-  bool more()
-  {
-    return index < mySet.size();
-  }
-
-  const SMDS_MeshElement* next()
-  {
-    index++;
-    return mySet[index-1];
-  }
-};
-
-SMDS_ElemIteratorPtr SMDS_PolygonalFaceOfNodes::elementsIterator
-                                         (SMDSAbs_ElementType type) const
-{
-  switch(type)
-  {
-  case SMDSAbs_Face:
-    return SMDS_MeshElement::elementsIterator(SMDSAbs_Face);
-  case SMDSAbs_Node:
-    return SMDS_ElemIteratorPtr(new SMDS_PolygonalFaceOfNodes_MyIterator(myNodes));
-  case SMDSAbs_Edge:
-    MESSAGE("Error : edge iterator for SMDS_PolygonalFaceOfNodes not implemented");
-    break;
-  default:
-    return SMDS_ElemIteratorPtr
-      (new SMDS_IteratorOfElements
-       (this,type,SMDS_ElemIteratorPtr
-        (new SMDS_PolygonalFaceOfNodes_MyIterator(myNodes))));
-  }
-  return SMDS_ElemIteratorPtr();
-}
diff --git a/src/SMDS/SMDS_PolygonalFaceOfNodes.hxx b/src/SMDS/SMDS_PolygonalFaceOfNodes.hxx
deleted file mode 100644 (file)
index 5677462..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _SMDS_PolygonalFaceOfNodes_HeaderFile
-#define _SMDS_PolygonalFaceOfNodes_HeaderFile
-
-#include "SMDS_MeshFace.hxx"
-//#include "SMDS_FaceOfNodes.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_Iterator.hxx"
-
-#include <iostream>
-
-//class SMDS_PolygonalFaceOfNodes:public SMDS_FaceOfNodes
-class SMDS_PolygonalFaceOfNodes:public SMDS_MeshFace
-{
- public:
-  SMDS_PolygonalFaceOfNodes (std::vector<const SMDS_MeshNode *> nodes);
-
-  virtual SMDSAbs_ElementType GetType() const;
-  virtual bool IsPoly() const { return true; };
-
-  bool ChangeNodes (std::vector<const SMDS_MeshNode *> nodes);
-
-  bool ChangeNodes (const SMDS_MeshNode* nodes[],
-                    const int            nbNodes);
-  // to support the same interface, as SMDS_FaceOfNodes
-
-  virtual int NbNodes() const;
-  virtual int NbEdges() const;
-  virtual int NbFaces() const;
-
-  virtual void Print (std::ostream & OS) const;
-
- protected:
-  virtual SMDS_ElemIteratorPtr elementsIterator (SMDSAbs_ElementType type) const;
-
- private:
-  std::vector<const SMDS_MeshNode *> myNodes;
-};
-
-#endif
diff --git a/src/SMDS/SMDS_PolyhedralVolumeOfNodes.cxx b/src/SMDS/SMDS_PolyhedralVolumeOfNodes.cxx
deleted file mode 100644 (file)
index 8b26134..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#endif
-
-#include "SMDS_PolyhedralVolumeOfNodes.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "utilities.h"
-
-#include <set>
-
-using namespace std;
-
-//=======================================================================
-//function : Constructor
-//purpose  : Create a volume of many faces
-//=======================================================================
-SMDS_PolyhedralVolumeOfNodes::SMDS_PolyhedralVolumeOfNodes
-                                (std::vector<const SMDS_MeshNode *> nodes,
-                                 std::vector<int>                   quantities)
-: SMDS_VolumeOfNodes(NULL, NULL, NULL, NULL)
-{
-  ChangeNodes(nodes, quantities);
-}
-
-//=======================================================================
-//function : GetType
-//purpose  : 
-//=======================================================================
-SMDSAbs_ElementType SMDS_PolyhedralVolumeOfNodes::GetType() const
-{
-//  return SMDSAbs_PolyhedralVolume;
-  return SMDSAbs_Volume;
-}
-
-//=======================================================================
-//function : ChangeNodes
-//purpose  : 
-//=======================================================================
-bool SMDS_PolyhedralVolumeOfNodes::ChangeNodes (std::vector<const SMDS_MeshNode *> nodes,
-                                                std::vector<int>                   quantities)
-{
-  myNodesByFaces = nodes;
-  myQuantities = quantities;
-
-  // Init fields of parent class
-  int aNbNodes = 0;
-  std::set<const SMDS_MeshNode *> aSet;
-  int nodes_len = nodes.size();
-  for (int j = 0; j < nodes_len; j++) {
-    if (aSet.find(nodes[j]) == aSet.end()) {
-      aSet.insert(nodes[j]);
-      aNbNodes++;
-    }
-  }
-
-  int k = 0;
-  const SMDS_MeshNode* aNodes [aNbNodes];
-  std::set<const SMDS_MeshNode *>::iterator anIter = aSet.begin();
-  for (; anIter != aSet.end(); anIter++, k++) {
-    aNodes[k] = *anIter;
-  }
-
-  //SMDS_VolumeOfNodes::ChangeNodes(aNodes, aNbNodes);
-  delete [] myNodes;
-  //myNbNodes = nodes.size();
-  myNbNodes = aNbNodes;
-  myNodes = new const SMDS_MeshNode* [myNbNodes];
-  for (int i = 0; i < myNbNodes; i++) {
-    //myNodes[i] = nodes[i];
-    myNodes[i] = aNodes[i];
-  }
-
-  return true;
-}
-
-//=======================================================================
-//function : NbEdges
-//purpose  : 
-//=======================================================================
-int SMDS_PolyhedralVolumeOfNodes::NbEdges() const
-{
-  int nbEdges = 0;
-
-  for (int ifa = 0; ifa < myQuantities.size(); ifa++) {
-    nbEdges += myQuantities[ifa];
-  }
-  nbEdges /= 2;
-
-  return nbEdges;
-}
-
-//=======================================================================
-//function : NbFaces
-//purpose  : 
-//=======================================================================
-int SMDS_PolyhedralVolumeOfNodes::NbFaces() const
-{
-  return myQuantities.size();
-}
-
-//=======================================================================
-//function : NbFaceNodes
-//purpose  : 
-//=======================================================================
-int SMDS_PolyhedralVolumeOfNodes::NbFaceNodes (const int face_ind) const
-{
-  if (face_ind < 1 || myQuantities.size() < face_ind)
-    return 0;
-  return myQuantities[face_ind - 1];
-}
-
-//=======================================================================
-//function : GetFaceNode
-//purpose  : 
-//=======================================================================
-const SMDS_MeshNode* SMDS_PolyhedralVolumeOfNodes::GetFaceNode (const int face_ind,
-                                                                const int node_ind) const
-{
-  if (node_ind < 1 || NbFaceNodes(face_ind) < node_ind)
-    return NULL;
-
-  int i, first_node = 0;
-  for (i = 0; i < face_ind - 1; i++) {
-    first_node += myQuantities[i];
-  }
-
-  return myNodesByFaces[first_node + node_ind - 1];
-}
-
-//=======================================================================
-//function : Print
-//purpose  : 
-//=======================================================================
-void SMDS_PolyhedralVolumeOfNodes::Print (ostream & OS) const
-{
-  OS << "polyhedral volume <" << GetID() << "> : ";
-
-  int faces_len = myQuantities.size();
-  //int nodes_len = myNodesByFaces.size();
-  int cur_first_node = 0;
-
-  int i, j;
-  for (i = 0; i < faces_len; i++) {
-    OS << "face_" << i << " (";
-    for (j = 0; j < myQuantities[i] - 1; j++) {
-      OS << myNodesByFaces[cur_first_node + j] << ",";
-    }
-    OS << myNodesByFaces[cur_first_node + j] << ") ";
-    cur_first_node += myQuantities[i];
-  }
-}
-
-//=======================================================================
-//function : ChangeNodes
-//purpose  : usage disabled
-//=======================================================================
-bool SMDS_PolyhedralVolumeOfNodes::ChangeNodes (const SMDS_MeshNode* nodes[],
-                                                const int            nbNodes)
-{
-  return false;
-}
diff --git a/src/SMDS/SMDS_PolyhedralVolumeOfNodes.hxx b/src/SMDS/SMDS_PolyhedralVolumeOfNodes.hxx
deleted file mode 100644 (file)
index d7cfeee..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_PolyhedralVolumeOfNodes.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_PolyhedralVolumeOfNodes_HeaderFile
-#define _SMDS_PolyhedralVolumeOfNodes_HeaderFile
-
-#include "SMDS_VolumeOfNodes.hxx"
-
-class SMDS_PolyhedralVolumeOfNodes:public SMDS_VolumeOfNodes
-{
- public:
-  SMDS_PolyhedralVolumeOfNodes (std::vector<const SMDS_MeshNode *> nodes,
-                                std::vector<int>                   quantities);
-
-  //virtual ~SMDS_PolyhedralVolumeOfNodes();
-
-  virtual SMDSAbs_ElementType GetType() const; 
-  virtual bool IsPoly() const { return true; };
-
-  bool ChangeNodes (std::vector<const SMDS_MeshNode *> nodes,
-                    std::vector<int>                   quantities);
-
-  //virtual int NbNodes() const;
-  virtual int NbEdges() const;
-  virtual int NbFaces() const;
-
-  int NbFaceNodes (const int face_ind) const;
-  // 1 <= face_ind <= NbFaces()
-
-  const SMDS_MeshNode* GetFaceNode (const int face_ind, const int node_ind) const;
-  // 1 <= face_ind <= NbFaces()
-  // 1 <= node_ind <= NbFaceNodes()
-
-  virtual void Print (std::ostream & OS) const;
-
- protected:
-  //virtual SMDS_ElemIteratorPtr elementsIterator (SMDSAbs_ElementType type) const;
-
- private:
-  // usage disabled
-  bool ChangeNodes (const SMDS_MeshNode* nodes[],
-                    const int            nbNodes);
-
- private:
-  std::vector<const SMDS_MeshNode *> myNodesByFaces;
-  std::vector<int> myQuantities;
-};
-
-#endif
diff --git a/src/SMDS/SMDS_Position.cxx b/src/SMDS/SMDS_Position.cxx
deleted file mode 100644 (file)
index 926aa4b..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_Position.cxx
-//  Author : Jean-Michel BOULCOURT
-//  Module : SMESH
-
-#include "SMDS_Position.hxx"
-
-//=======================================================================
-//function : SMDS_Position
-//purpose  : 
-//=======================================================================
-
-SMDS_Position::SMDS_Position(int aShapeId) :myShapeId(aShapeId)
-{
-}
-
-//=======================================================================
-//function : SetShapeId
-//purpose  : 
-//=======================================================================
-
-void SMDS_Position::SetShapeId(int aShapeId)
-{
-       myShapeId = aShapeId;
-}
-
-//=======================================================================
-//function : GetShapeId
-//purpose  : 
-//=======================================================================
-
-int SMDS_Position::GetShapeId() const
-{
-       return myShapeId;
-}
-
-//=======================================================================
-//function : GetDim
-//purpose  : 
-//=======================================================================
-
-int SMDS_Position::GetDim() const
-{
-//   switch ( GetTypeOfPosition() ) {
-//   case SMDS_TOP_UNSPEC:  return -1;
-//   case SMDS_TOP_VERTEX:  return 0;
-//   case SMDS_TOP_EDGE:    return 1;
-//   case SMDS_TOP_FACE:    return 2;
-//   case SMDS_TOP_3DSPACE: return 3;
-//   }
-  return GetTypeOfPosition();
-}
-
-     
diff --git a/src/SMDS/SMDS_Position.hxx b/src/SMDS/SMDS_Position.hxx
deleted file mode 100644 (file)
index a18ec9e..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_Position.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_Position_HeaderFile
-#define _SMDS_Position_HeaderFile
-
-#include "SMDS_TypeOfPosition.hxx"
-#include <boost/shared_ptr.hpp>
-
-class SMDS_Position;
-typedef boost::shared_ptr<SMDS_Position> SMDS_PositionPtr;
-
-
-class SMDS_Position
-{
-
-  public:
-       const virtual double * Coords() const = 0;
-       virtual SMDS_TypeOfPosition GetTypeOfPosition() const = 0;
-       virtual int GetDim() const;
-       void SetShapeId(int aShapeId);
-       int GetShapeId() const;
-       virtual ~SMDS_Position() {}
-
-  protected:
-         SMDS_Position(int aShapeId);
-
-  private:
-       int myShapeId;
-};
-
-
-#endif
diff --git a/src/SMDS/SMDS_SpacePosition.cxx b/src/SMDS/SMDS_SpacePosition.cxx
deleted file mode 100644 (file)
index 7ce582f..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_SpacePosition.cxx
-//  Author : Jean-Michel BOULCOURT
-//  Module : SMESH
-
-#include "SMDS_SpacePosition.hxx"
-
-//=======================================================================
-//function : SMDS_SpacePosition
-//purpose  : 
-//=======================================================================
-
-SMDS_SpacePosition::SMDS_SpacePosition(double x, double y, double z):
-       SMDS_Position(0)
-{
-       myCoords[0]=x;
-       myCoords[1]=y;
-       myCoords[2]=z;
-}
-
-/**
-*/
-SMDS_TypeOfPosition SMDS_SpacePosition::GetTypeOfPosition() const
-{
-       return SMDS_TOP_3DSPACE;
-}
-
-const double * SMDS_SpacePosition::Coords() const
-{
-       return myCoords;
-}
-
-SMDS_PositionPtr SMDS_SpacePosition::originSpacePosition()
-{
-  static SMDS_PositionPtr staticpos (new SMDS_SpacePosition());
-  return staticpos;
-}
diff --git a/src/SMDS/SMDS_SpacePosition.hxx b/src/SMDS/SMDS_SpacePosition.hxx
deleted file mode 100644 (file)
index e4fadd6..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_SpacePosition.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_SpacePosition_HeaderFile
-#define _SMDS_SpacePosition_HeaderFile
-
-#include "SMDS_Position.hxx"
-
-class SMDS_SpacePosition:public SMDS_Position
-{
-
-  public:
-       SMDS_SpacePosition(double x=0, double y=0, double z=0);
-       const virtual double * Coords() const;
-       virtual inline SMDS_TypeOfPosition GetTypeOfPosition() const;
-       inline void SetCoords(const double x, const double y, const double z);
-        static SMDS_PositionPtr originSpacePosition();
-  private:
-       double myCoords[3];     
-};
-
-#endif
diff --git a/src/SMDS/SMDS_TypeOfPosition.hxx b/src/SMDS/SMDS_TypeOfPosition.hxx
deleted file mode 100644 (file)
index 8c0631b..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_TypeOfPosition.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_TypeOfPosition_HeaderFile
-#define _SMDS_TypeOfPosition_HeaderFile
-
-enum SMDS_TypeOfPosition // Value is equal to shape dimention
-{
-       SMDS_TOP_UNSPEC  = -1,
-       SMDS_TOP_VERTEX  = 0,
-       SMDS_TOP_EDGE    = 1,
-       SMDS_TOP_FACE    = 2,
-       SMDS_TOP_3DSPACE = 3
-};
-
-#endif
diff --git a/src/SMDS/SMDS_VertexPosition.cxx b/src/SMDS/SMDS_VertexPosition.cxx
deleted file mode 100644 (file)
index 022f76a..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_VertexPosition.cxx
-//  Author : Jean-Michel BOULCOURT
-//  Module : SMESH
-
-#include "SMDS_VertexPosition.hxx"
-
-#include "utilities.h"
-
-using namespace std;
-
-//=======================================================================
-//function : SMDS_VertexPosition
-//purpose  : 
-//=======================================================================
-
-SMDS_VertexPosition:: SMDS_VertexPosition(const int aVertexId)
-       :SMDS_Position(aVertexId)
-{
-}
-
-//=======================================================================
-//function : Coords
-//purpose  : 
-//=======================================================================
-
-const double *SMDS_VertexPosition::Coords() const
-{
-       const static double origin[]={0,0,0};
-       MESSAGE("SMDS_VertexPosition::Coords not implemented");
-       return origin;
-}
-
-
-SMDS_TypeOfPosition SMDS_VertexPosition::GetTypeOfPosition() const
-{
-       return SMDS_TOP_VERTEX;
-}
diff --git a/src/SMDS/SMDS_VertexPosition.hxx b/src/SMDS/SMDS_VertexPosition.hxx
deleted file mode 100644 (file)
index 52ef059..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_VertexPosition.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_VertexPosition_HeaderFile
-#define _SMDS_VertexPosition_HeaderFile
-
-#include "SMDS_Position.hxx"
-
-class SMDS_VertexPosition:public SMDS_Position
-{
-
-  public:      
-       SMDS_TypeOfPosition GetTypeOfPosition() const;
-       SMDS_VertexPosition(int aVertexId=0);
-       const double *Coords() const;
-};
-
-#endif
diff --git a/src/SMDS/SMDS_VolumeOfFaces.cxx b/src/SMDS/SMDS_VolumeOfFaces.cxx
deleted file mode 100644 (file)
index 51e71f8..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_VolumeOfFaces.cxx
-//  Author : Jean-Michel BOULCOURT
-//  Module : SMESH
-
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#endif
-
-#include "SMDS_VolumeOfFaces.hxx"
-#include "SMDS_IteratorOfElements.hxx"
-
-using namespace std;
-
-//=======================================================================
-//function : Print
-//purpose  : 
-//=======================================================================
-
-void SMDS_VolumeOfFaces::Print(ostream & OS) const
-{
-       OS << "volume <" << GetID() << "> : ";
-       int i;
-       for (i = 0; i < NbFaces()-1; ++i) OS << myFaces[i] << ",";
-       OS << myFaces[i]<< ") " << endl;
-}
-
-
-int SMDS_VolumeOfFaces::NbFaces() const
-{
-       return myNbFaces;
-}
-
-class SMDS_VolumeOfFaces_MyIterator:public SMDS_ElemIterator
-{
-  const SMDS_MeshFace* const *mySet;
-  int myLength;
-  int index;
- public:
-  SMDS_VolumeOfFaces_MyIterator(const SMDS_MeshFace* const *s, int l):
-    mySet(s),myLength(l),index(0) {}
-
-  bool more()
-  {
-    return index<myLength;
-  }
-
-  const SMDS_MeshElement* next()
-  {
-    index++;
-    return mySet[index-1];
-  }
-};
-
-SMDS_ElemIteratorPtr SMDS_VolumeOfFaces::
-       elementsIterator(SMDSAbs_ElementType type) const
-{
-  switch(type)
-  {
-  case SMDSAbs_Volume:
-    return SMDS_MeshElement::elementsIterator(SMDSAbs_Volume);
-  case SMDSAbs_Face:
-    return SMDS_ElemIteratorPtr(new SMDS_VolumeOfFaces_MyIterator(myFaces,myNbFaces));
-  default:
-    return SMDS_ElemIteratorPtr
-      (new SMDS_IteratorOfElements
-       (this,type,SMDS_ElemIteratorPtr
-        (new SMDS_VolumeOfFaces_MyIterator(myFaces,myNbFaces))));
-  }
-}
-
-SMDS_VolumeOfFaces::SMDS_VolumeOfFaces(const SMDS_MeshFace * face1,
-                                       const SMDS_MeshFace * face2,
-                                       const SMDS_MeshFace * face3,
-                                       const SMDS_MeshFace * face4)
-{
-       myNbFaces = 4;
-       myFaces[0]=face1;
-       myFaces[1]=face2;
-       myFaces[2]=face3;
-       myFaces[3]=face4;
-       myFaces[4]=0;
-       myFaces[5]=0;
-}
-
-SMDS_VolumeOfFaces::SMDS_VolumeOfFaces(const SMDS_MeshFace * face1,
-                                       const SMDS_MeshFace * face2,
-                                       const SMDS_MeshFace * face3,
-                                       const SMDS_MeshFace * face4,
-                                       const SMDS_MeshFace * face5)
-{
-       myNbFaces = 5;
-       myFaces[0]=face1;
-       myFaces[1]=face2;
-       myFaces[2]=face3;
-       myFaces[3]=face4;
-       myFaces[4]=face5;
-       myFaces[5]=0;
-}
-
-SMDS_VolumeOfFaces::SMDS_VolumeOfFaces(const SMDS_MeshFace * face1,
-                                       const SMDS_MeshFace * face2,
-                                       const SMDS_MeshFace * face3,
-                                       const SMDS_MeshFace * face4,
-                                       const SMDS_MeshFace * face5,
-                                       const SMDS_MeshFace * face6)
-{
-       myNbFaces = 6;
-       myFaces[0]=face1;
-       myFaces[1]=face2;
-       myFaces[2]=face3;
-       myFaces[3]=face4;
-       myFaces[4]=face5;
-       myFaces[5]=face6;
-}
-
diff --git a/src/SMDS/SMDS_VolumeOfFaces.hxx b/src/SMDS/SMDS_VolumeOfFaces.hxx
deleted file mode 100644 (file)
index ae3b288..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_VolumeOfFaces.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_VolumeOfFaces_HeaderFile
-#define _SMDS_VolumeOfFaces_HeaderFile
-
-#include "SMDS_MeshVolume.hxx"
-#include "SMDS_MeshFace.hxx"
-#include "SMDS_Iterator.hxx"
-#include <iostream>
-
-
-class SMDS_VolumeOfFaces:public SMDS_MeshVolume
-{
-       
-  public:
-       SMDS_VolumeOfFaces(const SMDS_MeshFace * face1,
-                           const SMDS_MeshFace * face2,
-                           const SMDS_MeshFace * face3,
-                           const SMDS_MeshFace * face4);
-       SMDS_VolumeOfFaces(const SMDS_MeshFace * face1,
-                           const SMDS_MeshFace * face2,
-                           const SMDS_MeshFace * face3,
-                           const SMDS_MeshFace * face4,
-                           const SMDS_MeshFace * face5);
-       SMDS_VolumeOfFaces(const SMDS_MeshFace * face1,
-                           const SMDS_MeshFace * face2,
-                           const SMDS_MeshFace * face3,
-                           const SMDS_MeshFace * face4,
-                           const SMDS_MeshFace * face5,
-                           const SMDS_MeshFace * face6);
-
-       void Print(std::ostream & OS) const;
-       
-       int NbFaces() const;
-
-  protected:
-       SMDS_ElemIteratorPtr
-               elementsIterator(SMDSAbs_ElementType type) const;
-       const SMDS_MeshFace * myFaces[6];
-       int                   myNbFaces;
-};
-#endif
diff --git a/src/SMDS/SMDS_VolumeOfNodes.cxx b/src/SMDS/SMDS_VolumeOfNodes.cxx
deleted file mode 100644 (file)
index cd893f4..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#endif
-
-#include "SMDS_VolumeOfNodes.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "utilities.h"
-
-using namespace std;
-
-///////////////////////////////////////////////////////////////////////////////
-/// Create an hexahedron. node 1,2,3,4 and 5,6,7,8 are quadrangle and
-/// 5,1 and 7,3 are an edges.
-///////////////////////////////////////////////////////////////////////////////
-SMDS_VolumeOfNodes::SMDS_VolumeOfNodes(
-               const SMDS_MeshNode * node1,
-               const SMDS_MeshNode * node2,
-               const SMDS_MeshNode * node3,
-               const SMDS_MeshNode * node4,
-               const SMDS_MeshNode * node5,
-               const SMDS_MeshNode * node6,
-               const SMDS_MeshNode * node7,
-               const SMDS_MeshNode * node8)
-{
-       myNbNodes = 8;
-       myNodes = new const SMDS_MeshNode* [myNbNodes];
-       myNodes[0]=node1;
-       myNodes[1]=node2;
-       myNodes[2]=node3;
-       myNodes[3]=node4;
-       myNodes[4]=node5;
-       myNodes[5]=node6;
-       myNodes[6]=node7;
-       myNodes[7]=node8;
-}
-
-SMDS_VolumeOfNodes::SMDS_VolumeOfNodes(
-               const SMDS_MeshNode * node1,
-               const SMDS_MeshNode * node2,
-               const SMDS_MeshNode * node3,
-               const SMDS_MeshNode * node4)
-{
-       myNbNodes = 4;
-       myNodes = new const SMDS_MeshNode* [myNbNodes];
-       myNodes[0]=node1;
-       myNodes[1]=node2;
-       myNodes[2]=node3;
-       myNodes[3]=node4;
-}
-
-SMDS_VolumeOfNodes::SMDS_VolumeOfNodes(
-               const SMDS_MeshNode * node1,
-               const SMDS_MeshNode * node2,
-               const SMDS_MeshNode * node3,
-               const SMDS_MeshNode * node4,
-               const SMDS_MeshNode * node5)
-{
-       myNbNodes = 5;
-       myNodes = new const SMDS_MeshNode* [myNbNodes];
-       myNodes[0]=node1;
-       myNodes[1]=node2;
-       myNodes[2]=node3;
-       myNodes[3]=node4;
-       myNodes[4]=node5;
-}
-
-SMDS_VolumeOfNodes::SMDS_VolumeOfNodes(
-               const SMDS_MeshNode * node1,
-               const SMDS_MeshNode * node2,
-               const SMDS_MeshNode * node3,
-               const SMDS_MeshNode * node4,
-               const SMDS_MeshNode * node5,
-               const SMDS_MeshNode * node6)
-{
-       myNbNodes = 6;
-       myNodes = new const SMDS_MeshNode* [myNbNodes];
-       myNodes[0]=node1;
-       myNodes[1]=node2;
-       myNodes[2]=node3;
-       myNodes[3]=node4;
-       myNodes[4]=node5;
-       myNodes[5]=node6;
-}
-
-bool SMDS_VolumeOfNodes::ChangeNodes(const SMDS_MeshNode* nodes[],
-                                     const int            nbNodes)
-{
-  if (nbNodes < 4 || nbNodes > 8 || nbNodes == 7)
-    return false;
-
-  delete [] myNodes;
-  myNbNodes = nbNodes;
-  myNodes = new const SMDS_MeshNode* [myNbNodes];
-  for ( int i = 0; i < nbNodes; i++ )
-    myNodes[ i ] = nodes [ i ];
-
-  return true;
-}
-
-SMDS_VolumeOfNodes::~SMDS_VolumeOfNodes()
-{
-  if (myNodes != NULL) {
-    delete [] myNodes;
-    myNodes = NULL;
-  }
-}
-
-//=======================================================================
-//function : Print
-//purpose  : 
-//=======================================================================
-
-void SMDS_VolumeOfNodes::Print(ostream & OS) const
-{
-       OS << "volume <" << GetID() << "> : ";
-       int i;
-       for (i = 0; i < NbNodes(); ++i) OS << myNodes[i] << ",";
-       OS << myNodes[NbNodes()-1]<< ") " << endl;
-}
-
-int SMDS_VolumeOfNodes::NbFaces() const
-{
-       switch(NbNodes())
-       {
-       case 4: return 4;
-       case 5: return 5;
-       case 6: return 5;
-       case 8: return 6;
-       default: MESSAGE("invalid number of nodes");
-       }
-        return 0;
-}
-
-int SMDS_VolumeOfNodes::NbNodes() const
-{
-       return myNbNodes;
-}
-
-int SMDS_VolumeOfNodes::NbEdges() const
-{
-       switch(NbNodes())
-       {
-       case 4: return 6;
-       case 5: return 8;
-       case 6: return 9;
-       case 8: return 12;
-       default: MESSAGE("invalid number of nodes");
-       }
-        return 0;
-}
-
-class SMDS_VolumeOfNodes_MyIterator:public SMDS_ElemIterator
-{
-  const SMDS_MeshNode* const* mySet;
-  int myLength;
-  int index;
- public:
-  SMDS_VolumeOfNodes_MyIterator(const SMDS_MeshNode* const* s, int l):
-    mySet(s),myLength(l),index(0) {}
-
-  bool more()
-  {
-    return index<myLength;
-  }
-
-  const SMDS_MeshElement* next()
-  {
-    index++;
-    return mySet[index-1];
-  }
-};
-
-SMDS_ElemIteratorPtr SMDS_VolumeOfNodes::
-       elementsIterator(SMDSAbs_ElementType type) const
-{
-  switch(type)
-  {
-  case SMDSAbs_Volume:
-    return SMDS_MeshElement::elementsIterator(SMDSAbs_Volume);
-  case SMDSAbs_Node:
-    return SMDS_ElemIteratorPtr(new SMDS_VolumeOfNodes_MyIterator(myNodes,myNbNodes));
-  default:
-    MESSAGE("ERROR : Iterator not implemented");
-    return SMDS_ElemIteratorPtr((SMDS_ElemIterator*)NULL);
-  }
-}
-
-SMDSAbs_ElementType SMDS_VolumeOfNodes::GetType() const
-{
-       return SMDSAbs_Volume;
-}
diff --git a/src/SMDS/SMDS_VolumeOfNodes.hxx b/src/SMDS/SMDS_VolumeOfNodes.hxx
deleted file mode 100644 (file)
index bb553a0..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMDS_MeshVolume.hxx
-//  Module : SMESH
-
-#ifndef _SMDS_VolumeOfNodes_HeaderFile
-#define _SMDS_VolumeOfNodes_HeaderFile
-
-#include "SMDS_MeshVolume.hxx"
-
-
-class SMDS_VolumeOfNodes:public SMDS_MeshVolume
-{
-       
-  public:
-       SMDS_VolumeOfNodes(
-               const SMDS_MeshNode * node1,
-               const SMDS_MeshNode * node2,
-               const SMDS_MeshNode * node3,
-               const SMDS_MeshNode * node4);
-       SMDS_VolumeOfNodes(
-               const SMDS_MeshNode * node1,
-               const SMDS_MeshNode * node2,
-               const SMDS_MeshNode * node3,
-               const SMDS_MeshNode * node4,
-               const SMDS_MeshNode * node5);
-       SMDS_VolumeOfNodes(
-               const SMDS_MeshNode * node1,
-               const SMDS_MeshNode * node2,
-               const SMDS_MeshNode * node3,
-               const SMDS_MeshNode * node4,
-               const SMDS_MeshNode * node5,
-               const SMDS_MeshNode * node6);
-       SMDS_VolumeOfNodes(
-               const SMDS_MeshNode * node1,
-               const SMDS_MeshNode * node2,
-               const SMDS_MeshNode * node3,
-               const SMDS_MeshNode * node4,
-               const SMDS_MeshNode * node5,
-               const SMDS_MeshNode * node6,
-               const SMDS_MeshNode * node7,
-               const SMDS_MeshNode * node8);
-        bool ChangeNodes(const SMDS_MeshNode* nodes[],
-                         const int            nbNodes);
-        ~SMDS_VolumeOfNodes();
-
-       void Print(std::ostream & OS) const;
-       int NbFaces() const;
-       int NbNodes() const;
-       int NbEdges() const;
-       SMDSAbs_ElementType GetType() const;    
-  protected:
-       SMDS_ElemIteratorPtr
-               elementsIterator(SMDSAbs_ElementType type) const;
-       const SMDS_MeshNode** myNodes;
-       int                   myNbNodes;
-};
-#endif
diff --git a/src/SMDS/SMDS_VolumeTool.cxx b/src/SMDS/SMDS_VolumeTool.cxx
deleted file mode 100644 (file)
index fe3c56a..0000000
+++ /dev/null
@@ -1,1045 +0,0 @@
-// File      : SMDS_VolumeTool.cxx
-// Created   : Tue Jul 13 12:22:13 2004
-// Author    : Edward AGAPOV (eap)
-// Copyright : Open CASCADE
-
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#endif
-
-#include "SMDS_VolumeTool.hxx"
-
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_PolyhedralVolumeOfNodes.hxx"
-
-#include "utilities.h"
-
-#include <map>
-#include <float.h>
-#include <math.h>
-
-using namespace std;
-
-// ======================================================
-// Node indices in faces depending on volume orientation
-// making most faces normals external
-// ======================================================
-
-/*
-//           N3
-//           +
-//          /|\
-//         / | \
-//        /  |  \
-//    N0 +---|---+ N1                TETRAHEDRON
-//       \   |   /
-//        \  |  /
-//         \ | /
-//          \|/
-//           +
-//           N2
-*/
-static int Tetra_F [4][4] = { // FORWARD == EXTERNAL
-  { 0, 1, 2, 0 },              // All faces have external normals
-  { 0, 3, 1, 0 },
-  { 1, 3, 2, 1 },
-  { 0, 2, 3, 0 }}; 
-static int Tetra_R [4][4] = { // REVERSED
-  { 0, 1, 2, 0 },             // All faces but a bottom have external normals
-  { 0, 1, 3, 0 },
-  { 1, 2, 3, 1 },
-  { 0, 3, 2, 0 }};
-static int Tetra_RE [4][4] = { // REVERSED -> FORWARD (EXTERNAL)
-  { 0, 2, 1, 0 },              // All faces have external normals
-  { 0, 1, 3, 0 },
-  { 1, 2, 3, 1 },
-  { 0, 3, 2, 0 }};
-static int Tetra_nbN [] = { 3, 3, 3, 3 };
-
-//
-//     PYRAMID
-//
-static int Pyramid_F [5][5] = { // FORWARD == EXTERNAL
-  { 0, 1, 2, 3, 0 },            // All faces have external normals
-  { 0, 4, 1, 0, 4 },
-  { 1, 4, 2, 1, 4 },
-  { 2, 4, 3, 2, 4 },
-  { 3, 4, 0, 3, 4 }}; 
-static int Pyramid_R [5][5] = { // REVERSED
-  { 0, 1, 2, 3, 0 },            // All faces but a bottom have external normals
-  { 0, 1, 4, 0, 4 },
-  { 1, 2, 4, 1, 4 },
-  { 2, 3, 4, 2, 4 },
-  { 3, 0, 4, 3, 4 }}; 
-static int Pyramid_RE [5][5] = { // REVERSED -> FORWARD (EXTERNAL)
-  { 0, 3, 2, 1, 0 },             // All faces but a bottom have external normals
-  { 0, 1, 4, 0, 4 },
-  { 1, 2, 4, 1, 4 },
-  { 2, 3, 4, 2, 4 },
-  { 3, 0, 4, 3, 4 }}; 
-static int Pyramid_nbN [] = { 4, 3, 3, 3, 3 };
-
-/*   
-//            + N4
-//           /|\
-//          / | \
-//         /  |  \
-//        /   |   \
-//    N3 +---------+ N5
-//       |    |    |
-//       |    + N1 |
-//       |   / \   |                PENTAHEDRON
-//       |  /   \  |
-//       | /     \ |
-//       |/       \|
-//    N0 +---------+ N2
-*/
-static int Penta_F [5][5] = { // FORWARD
-  { 0, 1, 2, 0, 0 },          // Top face has an internal normal, other - external
-  { 3, 4, 5, 3, 3 },          // 0 is bottom, 1 is top face
-  { 0, 2, 5, 3, 0 },
-  { 1, 4, 5, 2, 1 },
-  { 0, 3, 4, 1, 0 }}; 
-static int Penta_R [5][5] = { // REVERSED
-  { 0, 1, 2, 0, 0 },          // Bottom face has an internal normal, other - external
-  { 3, 4, 5, 3, 3 },          // 0 is bottom, 1 is top face
-  { 0, 3, 5, 2, 0 },
-  { 1, 2, 5, 4, 1 },
-  { 0, 1, 4, 3, 0 }}; 
-static int Penta_FE [5][5] = { // FORWARD -> EXTERNAL
-  { 0, 1, 2, 0, 0 },
-  { 3, 5, 4, 3, 3 },
-  { 0, 2, 5, 3, 0 },
-  { 1, 4, 5, 2, 1 },
-  { 0, 3, 4, 1, 0 }}; 
-static int Penta_RE [5][5] = { // REVERSED -> EXTERNAL
-  { 0, 2, 1, 0, 0 },
-  { 3, 4, 5, 3, 3 },
-  { 0, 3, 5, 2, 0 },
-  { 1, 2, 5, 4, 1 },
-  { 0, 1, 4, 3, 0 }}; 
-static int Penta_nbN [] = { 3, 3, 4, 4, 4 };
-
-/*
-//         N5+----------+N6
-//          /|         /|
-//         / |        / |
-//        /  |       /  |
-//     N4+----------+N7 |
-//       |   |      |   |           HEXAHEDRON
-//       |   |      |   |
-//       |   |      |   |
-//       | N1+------|---+N2
-//       |  /       |  /
-//       | /        | /
-//       |/         |/
-//     N0+----------+N3
-*/
-static int Hexa_F [6][5] = { // FORWARD
-  { 0, 1, 2, 3, 0 },         // opposite faces are neighbouring,
-  { 4, 5, 6, 7, 4 },         // odd face(1,3,5) normal is internal, even(0,2,4) - external
-  { 1, 0, 4, 5, 1 },         // same index nodes of opposite faces are linked
-  { 2, 3, 7, 6, 2 }, 
-  { 0, 3, 7, 4, 0 }, 
-  { 1, 2, 6, 5, 1 }};
-// static int Hexa_R [6][5] = { // REVERSED
-//   { 0, 3, 2, 1, 0 },         // opposite faces are neighbouring,
-//   { 4, 7, 6, 5, 4 },         // odd face(1,3,5) normal is external, even(0,2,4) - internal
-//   { 1, 5, 4, 0, 1 },         // same index nodes of opposite faces are linked
-//   { 2, 6, 7, 3, 2 }, 
-//   { 0, 4, 7, 3, 0 }, 
-//   { 1, 5, 6, 2, 1 }};
-static int Hexa_FE [6][5] = { // FORWARD -> EXTERNAL
-  { 0, 1, 2, 3, 0 } ,         // opposite faces are neighbouring,
-  { 4, 7, 6, 5, 4 },          // all face normals are external,
-  { 0, 4, 5, 1, 0 },          // links in opposite faces: 0-0, 1-3, 2-2, 3-1
-  { 3, 2, 6, 7, 3 }, 
-  { 0, 3, 7, 4, 0 },
-  { 1, 5, 6, 2, 1 }};
-static int Hexa_RE [6][5] = { // REVERSED -> EXTERNAL
-  { 0, 3, 2, 1, 0 },          // opposite faces are neighbouring,
-  { 4, 5, 6, 7, 4 },          // all face normals are external,
-  { 0, 1, 5, 4, 0 },          // links in opposite faces: 0-0, 1-3, 2-2, 3-1
-  { 3, 7, 6, 2, 3 }, 
-  { 0, 4, 7, 3, 0 },
-  { 1, 2, 6, 5, 1 }};
-static int Hexa_nbN [] = { 4, 4, 4, 4, 4, 4 };
-
-// ========================================================
-// to perform some calculations without linkage to CASCADE
-// ========================================================
-struct XYZ {
-  double x;
-  double y;
-  double z;
-  XYZ()                               { x = 0; y = 0; z = 0; }
-  XYZ( double X, double Y, double Z ) { x = X; y = Y; z = Z; }
-  XYZ( const XYZ& other )             { x = other.x; y = other.y; z = other.z; }
-  XYZ( const SMDS_MeshNode* n )       { x = n->X(); y = n->Y(); z = n->Z(); }
-  XYZ operator-( const XYZ& other );
-  XYZ Crossed( const XYZ& other );
-  double Dot( const XYZ& other );
-  double Magnitude();
-};
-XYZ XYZ::operator-( const XYZ& Right ) {
-  return XYZ(x - Right.x, y - Right.y, z - Right.z);
-}
-XYZ XYZ::Crossed( const XYZ& Right ) {
-  return XYZ (y * Right.z - z * Right.y,
-              z * Right.x - x * Right.z,
-              x * Right.y - y * Right.x);
-}
-double XYZ::Dot( const XYZ& Other ) {
-  return(x * Other.x + y * Other.y + z * Other.z);
-}
-double XYZ::Magnitude() {
-  return sqrt (x * x + y * y + z * z);
-}
-
-//=======================================================================
-//function : SMDS_VolumeTool
-//purpose  : 
-//=======================================================================
-
-SMDS_VolumeTool::SMDS_VolumeTool ()
-     : myVolume( 0 ),
-       myPolyedre( 0 ),
-       myVolForward( true ),
-       myNbFaces( 0 ),
-       myVolumeNbNodes( 0 ),
-       myVolumeNodes( NULL ),
-       myExternalFaces( false ),
-       myFaceNbNodes( 0 ),
-       myCurFace( -1 ),
-       myFaceNodeIndices( NULL ),
-       myFaceNodes( NULL )
-{
-}
-
-//=======================================================================
-//function : SMDS_VolumeTool
-//purpose  : 
-//=======================================================================
-
-SMDS_VolumeTool::SMDS_VolumeTool (const SMDS_MeshElement* theVolume)
-     : myVolume( 0 ),
-       myPolyedre( 0 ),
-       myVolForward( true ),
-       myNbFaces( 0 ),
-       myVolumeNbNodes( 0 ),
-       myVolumeNodes( NULL ),
-       myExternalFaces( false ),
-       myFaceNbNodes( 0 ),
-       myCurFace( -1 ),
-       myFaceNodeIndices( NULL ),
-       myFaceNodes( NULL )
-{
-  Set( theVolume );
-}
-
-//=======================================================================
-//function : SMDS_VolumeTool
-//purpose  : 
-//=======================================================================
-
-SMDS_VolumeTool::~SMDS_VolumeTool()
-{
-  if (myVolumeNodes != NULL) {
-    delete [] myVolumeNodes;
-    myVolumeNodes = NULL;
-  }
-  if (myFaceNodes != NULL) {
-    delete [] myFaceNodes;
-    myFaceNodes = NULL;
-  }
-}
-
-//=======================================================================
-//function : SetVolume
-//purpose  : Set volume to iterate on
-//=======================================================================
-
-bool SMDS_VolumeTool::Set (const SMDS_MeshElement* theVolume)
-{
-  myVolume = 0;
-  myPolyedre = 0;
-
-  myVolForward = true;
-  myNbFaces = 0;
-  myVolumeNbNodes = 0;
-  if (myVolumeNodes != NULL) {
-    delete [] myVolumeNodes;
-    myVolumeNodes = NULL;
-  }
-
-  myExternalFaces = false;
-  myFaceNbNodes = 0;
-
-  myCurFace = -1;
-  myFaceNodeIndices = NULL;
-  if (myFaceNodes != NULL) {
-    delete [] myFaceNodes;
-    myFaceNodes = NULL;
-  }
-
-  if ( theVolume && theVolume->GetType() == SMDSAbs_Volume )
-  {
-    myVolume = theVolume;
-
-    myNbFaces = theVolume->NbFaces();
-    myVolumeNbNodes = theVolume->NbNodes();
-
-    // set volume nodes
-    int iNode = 0;
-    myVolumeNodes = new const SMDS_MeshNode* [myVolumeNbNodes];
-    SMDS_ElemIteratorPtr nodeIt = myVolume->nodesIterator();
-    while ( nodeIt->more() ) {
-      myVolumeNodes[ iNode++ ] = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
-    }
-
-    if (myVolume->IsPoly()) {
-      myPolyedre = static_cast<const SMDS_PolyhedralVolumeOfNodes*>( myVolume );
-      if (!myPolyedre) {
-        MESSAGE("Warning: bad volumic element");
-        return false;
-      }
-    } else {
-      switch ( myVolumeNbNodes ) {
-      case 4:
-      case 5:
-      case 6:
-      case 8: {
-        // define volume orientation
-        XYZ botNormal;
-        GetFaceNormal( 0, botNormal.x, botNormal.y, botNormal.z );
-        const SMDS_MeshNode* topNode = myVolumeNodes[ myVolumeNbNodes - 1 ];
-        const SMDS_MeshNode* botNode = myVolumeNodes[ 0 ];
-        XYZ upDir (topNode->X() - botNode->X(),
-                   topNode->Y() - botNode->Y(),
-                   topNode->Z() - botNode->Z() );
-        myVolForward = ( botNormal.Dot( upDir ) < 0 );
-        break;
-      }
-      default:
-        break;
-      }
-    }
-  }
-  return ( myVolume != 0 );
-}
-
-//=======================================================================
-//function : Inverse
-//purpose  : Inverse volume
-//=======================================================================
-
-#define SWAP_NODES(nodes,i1,i2)           \
-{                                         \
-  const SMDS_MeshNode* tmp = nodes[ i1 ]; \
-  nodes[ i1 ] = nodes[ i2 ];              \
-  nodes[ i2 ] = tmp;                      \
-}
-void SMDS_VolumeTool::Inverse ()
-{
-  if ( !myVolume ) return;
-
-  if (myVolume->IsPoly()) {
-    MESSAGE("Warning: attempt to inverse polyhedral volume");
-    return;
-  }
-
-  myVolForward = !myVolForward;
-  myCurFace = -1;
-
-  // inverse top and bottom faces
-  switch ( myVolumeNbNodes ) {
-  case 4:
-    SWAP_NODES( myVolumeNodes, 1, 2 );
-    break;
-  case 5:
-    SWAP_NODES( myVolumeNodes, 1, 3 );
-    break;
-  case 6:
-    SWAP_NODES( myVolumeNodes, 1, 2 );
-    SWAP_NODES( myVolumeNodes, 4, 5 );
-    break;
-  case 8:
-    SWAP_NODES( myVolumeNodes, 1, 3 );
-    SWAP_NODES( myVolumeNodes, 5, 7 );
-    break;
-  default:;
-  }
-}
-
-//=======================================================================
-//function : GetSize
-//purpose  : Return element volume
-//=======================================================================
-
-double SMDS_VolumeTool::GetSize() const
-{
-  return 0;
-}
-
-//=======================================================================
-//function : GetBaryCenter
-//purpose  : 
-//=======================================================================
-
-bool SMDS_VolumeTool::GetBaryCenter(double & X, double & Y, double & Z) const
-{
-  X = Y = Z = 0.;
-  if ( !myVolume )
-    return false;
-
-  for ( int i = 0; i < myVolumeNbNodes; i++ ) {
-    X += myVolumeNodes[ i ]->X();
-    Y += myVolumeNodes[ i ]->Y();
-    Z += myVolumeNodes[ i ]->Z();
-  }
-  X /= myVolumeNbNodes;
-  Y /= myVolumeNbNodes;
-  Z /= myVolumeNbNodes;
-
-  return true;
-}
-
-//=======================================================================
-//function : SetExternalNormal
-//purpose  : Node order will be so that faces normals are external
-//=======================================================================
-
-void SMDS_VolumeTool::SetExternalNormal ()
-{
-  myExternalFaces = true;
-  myCurFace = -1;
-}
-
-//=======================================================================
-//function : NbFaceNodes
-//purpose  : Return number of nodes in the array of face nodes
-//=======================================================================
-
-int SMDS_VolumeTool::NbFaceNodes( int faceIndex )
-{
-    if ( !setFace( faceIndex ))
-      return 0;
-    return myFaceNbNodes;
-}
-
-//=======================================================================
-//function : GetFaceNodes
-//purpose  : Return pointer to the array of face nodes.
-//           To comfort link iteration, the array
-//           length == NbFaceNodes( faceIndex ) + 1 and
-//           the last node == the first one.
-//=======================================================================
-
-const SMDS_MeshNode** SMDS_VolumeTool::GetFaceNodes( int faceIndex )
-{
-  if ( !setFace( faceIndex ))
-    return 0;
-  return myFaceNodes;
-}
-
-//=======================================================================
-//function : GetFaceNodesIndices
-//purpose  : Return pointer to the array of face nodes indices
-//           To comfort link iteration, the array
-//           length == NbFaceNodes( faceIndex ) + 1 and
-//           the last node index == the first one.
-//=======================================================================
-
-const int* SMDS_VolumeTool::GetFaceNodesIndices( int faceIndex )
-{
-  if (myVolume->IsPoly()) {
-    MESSAGE("Warning: attempt to obtain FaceNodesIndices of polyhedral volume");
-    return NULL;
-  }
-  if ( !setFace( faceIndex ))
-    return 0;
-  return myFaceNodeIndices;
-}
-
-//=======================================================================
-//function : GetFaceNodes
-//purpose  : Return a set of face nodes.
-//=======================================================================
-
-bool SMDS_VolumeTool::GetFaceNodes (int                        faceIndex,
-                                    set<const SMDS_MeshNode*>& theFaceNodes )
-{
-  if ( !setFace( faceIndex ))
-    return false;
-
-  theFaceNodes.clear();
-  int iNode, nbNode = myFaceNbNodes;
-  for ( iNode = 0; iNode < nbNode; iNode++ )
-    theFaceNodes.insert( myFaceNodes[ iNode ]);
-
-  return true;
-}
-
-//=======================================================================
-//function : IsFaceExternal
-//purpose  : Check normal orientation of a returned face
-//=======================================================================
-
-bool SMDS_VolumeTool::IsFaceExternal( int faceIndex )
-{
-  if ( myExternalFaces || !myVolume )
-    return true;
-
-  if (myVolume->IsPoly()) {
-    XYZ aNormal, baryCenter, p0 (myPolyedre->GetFaceNode(faceIndex + 1, 1));
-    GetFaceNormal(faceIndex, aNormal.x, aNormal.y, aNormal.z);
-    GetBaryCenter(baryCenter.x, baryCenter.y, baryCenter.z);
-    XYZ insideVec (baryCenter - p0);
-    if (insideVec.Dot(aNormal) > 0)
-      return false;
-    return true;
-  }
-
-  switch ( myVolumeNbNodes ) {
-  case 4:
-  case 5:
-    // only the bottom of a reversed tetrahedron can be internal
-    return ( myVolForward || faceIndex != 0 );
-  case 6:
-    // in a forward pentahedron, the top is internal, in a reversed one - bottom
-    return ( myVolForward ? faceIndex != 1 : faceIndex != 0 );
-  case 8: {
-    // in a forward hexahedron, even face normal is external, odd - internal
-    bool odd = faceIndex % 2;
-    return ( myVolForward ? !odd : odd );
-  }
-  default:;
-  }
-  return false;
-}
-
-//=======================================================================
-//function : GetFaceNormal
-//purpose  : Return a normal to a face
-//=======================================================================
-
-bool SMDS_VolumeTool::GetFaceNormal (int faceIndex, double & X, double & Y, double & Z)
-{
-  if ( !setFace( faceIndex ))
-    return false;
-
-  XYZ p1 ( myFaceNodes[0] );
-  XYZ p2 ( myFaceNodes[1] );
-  XYZ p3 ( myFaceNodes[2] );
-  XYZ aVec12( p2 - p1 );
-  XYZ aVec13( p3 - p1 );
-  XYZ cross = aVec12.Crossed( aVec13 );
-
-  if ( myFaceNbNodes == 4 ) {
-    XYZ p4 ( myFaceNodes[3] );
-    XYZ aVec14( p4 - p1 );
-    XYZ cross2 = aVec13.Crossed( aVec14 );
-    cross.x += cross2.x;
-    cross.y += cross2.y;
-    cross.z += cross2.z;    
-  }
-
-  double size = cross.Magnitude();
-  if ( size <= DBL_MIN )
-    return false;
-
-  X = cross.x / size;
-  Y = cross.y / size;
-  Z = cross.z / size;
-
-  return true;
-}
-
-//=======================================================================
-//function : GetFaceArea
-//purpose  : Return face area
-//=======================================================================
-
-double SMDS_VolumeTool::GetFaceArea( int faceIndex )
-{
-  if (myVolume->IsPoly()) {
-    MESSAGE("Warning: attempt to obtain area of a face of polyhedral volume");
-    return 0;
-  }
-
-  if ( !setFace( faceIndex ))
-    return 0;
-
-  XYZ p1 ( myFaceNodes[0] );
-  XYZ p2 ( myFaceNodes[1] );
-  XYZ p3 ( myFaceNodes[2] );
-  XYZ aVec12( p2 - p1 );
-  XYZ aVec13( p3 - p1 );
-  double area = aVec12.Crossed( aVec13 ).Magnitude() * 0.5;
-
-  if ( myFaceNbNodes == 4 ) {
-    XYZ p4 ( myFaceNodes[3] );
-    XYZ aVec14( p4 - p1 );
-    area += aVec14.Crossed( aVec13 ).Magnitude() * 0.5;
-  }
-  return area;
-}
-
-//=======================================================================
-//function : GetOppFaceIndex
-//purpose  : Return index of the opposite face if it exists, else -1.
-//=======================================================================
-
-int SMDS_VolumeTool::GetOppFaceIndex( int faceIndex ) const
-{
-  int ind = -1;
-  if (myVolume->IsPoly()) {
-    MESSAGE("Warning: attempt to obtain opposite face on polyhedral volume");
-    return ind;
-  }
-
-  if ( faceIndex >= 0 && faceIndex < NbFaces() ) {
-    switch ( myVolumeNbNodes ) {
-    case 6:
-      if ( faceIndex == 0 || faceIndex == 1 )
-        ind = 1 - faceIndex;
-        break;
-    case 8:
-      ind = faceIndex + ( faceIndex % 2 ? -1 : 1 );
-      break;
-    default:;
-    }
-  }
-  return ind;
-}
-
-//=======================================================================
-//function : IsLinked
-//purpose  : return true if theNode1 is linked with theNode2
-//=======================================================================
-
-bool SMDS_VolumeTool::IsLinked (const SMDS_MeshNode* theNode1,
-                                const SMDS_MeshNode* theNode2) const
-{
-  if ( !myVolume )
-    return false;
-
-  if (myVolume->IsPoly()) {
-    if (!myPolyedre) {
-      MESSAGE("Warning: bad volumic element");
-      return false;
-    }
-    bool isLinked = false;
-    int iface;
-    for (iface = 1; iface <= myNbFaces && !isLinked; iface++) {
-      int inode, nbFaceNodes = myPolyedre->NbFaceNodes(iface);
-
-      for (inode = 1; inode <= nbFaceNodes && !isLinked; inode++) {
-        const SMDS_MeshNode* curNode = myPolyedre->GetFaceNode(iface, inode);
-
-        if (curNode == theNode1 || curNode == theNode2) {
-          int inextnode = (inode == nbFaceNodes) ? 1 : inode + 1;
-          const SMDS_MeshNode* nextNode = myPolyedre->GetFaceNode(iface, inextnode);
-
-          if ((curNode == theNode1 && nextNode == theNode2) ||
-              (curNode == theNode2 && nextNode == theNode1)) {
-            isLinked = true;
-          }
-        }
-      }
-    }
-    return isLinked;
-  }
-
-  // find nodes indices
-  int i1 = -1, i2 = -1;
-  for ( int i = 0; i < myVolumeNbNodes; i++ ) {
-    if ( myVolumeNodes[ i ] == theNode1 )
-      i1 = i;
-    else if ( myVolumeNodes[ i ] == theNode2 )
-      i2 = i;
-  }
-  return IsLinked( i1, i2 );
-}
-
-//=======================================================================
-//function : IsLinked
-//purpose  : return true if the node with theNode1Index is linked
-//           with the node with theNode2Index
-//=======================================================================
-
-bool SMDS_VolumeTool::IsLinked (const int theNode1Index,
-                                const int theNode2Index) const
-{
-  if (myVolume->IsPoly()) {
-    return IsLinked(myVolumeNodes[theNode1Index], myVolumeNodes[theNode2Index]);
-  }
-
-  int minInd = theNode1Index < theNode2Index ? theNode1Index : theNode2Index;
-  int maxInd = theNode1Index < theNode2Index ? theNode2Index : theNode1Index;
-
-  if ( minInd < 0 || maxInd > myVolumeNbNodes - 1 || maxInd == minInd )
-    return false;
-
-  switch ( myVolumeNbNodes ) {
-  case 4:
-    return true;
-  case 5:
-    if ( maxInd == 4 )
-      return true;
-    switch ( maxInd - minInd ) {
-    case 1:
-    case 3: return true;
-    default:;
-    }
-    break;
-  case 6:
-    switch ( maxInd - minInd ) {
-    case 1: return minInd != 2;
-    case 2: return minInd == 0 || minInd == 3;
-    case 3: return true;
-    default:;
-    }
-    break;
-  case 8:
-    switch ( maxInd - minInd ) {
-    case 1: return minInd != 3;
-    case 3: return minInd == 0 || minInd == 4;
-    case 4: return true;
-    default:;
-    }
-    break;
-  default:;
-  }
-  return false;
-}
-
-//=======================================================================
-//function : GetNodeIndex
-//purpose  : Return an index of theNode
-//=======================================================================
-
-int SMDS_VolumeTool::GetNodeIndex(const SMDS_MeshNode* theNode) const
-{
-  if ( myVolume ) {
-    for ( int i = 0; i < myVolumeNbNodes; i++ ) {
-      if ( myVolumeNodes[ i ] == theNode )
-        return i;
-    }
-  }
-  return -1;
-}
-
-//=======================================================================
-//function : IsFreeFace
-//purpose  : check that only one volume is build on the face nodes
-//=======================================================================
-
-bool SMDS_VolumeTool::IsFreeFace( int faceIndex )
-{
-  const int free = true;
-
-  if (!setFace( faceIndex ))
-    return !free;
-
-  const SMDS_MeshNode** nodes = GetFaceNodes( faceIndex );
-  int nbFaceNodes = myFaceNbNodes;
-
-  // evaluate nb of face nodes shared by other volume
-  int maxNbShared = -1;
-  typedef map< const SMDS_MeshElement*, int > TElemIntMap;
-  TElemIntMap volNbShared;
-  TElemIntMap::iterator vNbIt;
-  for ( int iNode = 0; iNode < nbFaceNodes; iNode++ )
-  {
-    const SMDS_MeshNode* n = nodes[ iNode ];
-    SMDS_ElemIteratorPtr eIt = n->GetInverseElementIterator();
-    while ( eIt->more() ) {
-      const SMDS_MeshElement* elem = eIt->next();
-      if ( elem != myVolume && elem->GetType() == SMDSAbs_Volume ) {
-        int nbShared = 1;
-        vNbIt = volNbShared.find( elem );
-        if ( vNbIt == volNbShared.end() )
-          volNbShared.insert ( TElemIntMap::value_type( elem, nbShared ));
-        else
-          nbShared = ++(*vNbIt).second;
-        if ( nbShared > maxNbShared )
-          maxNbShared = nbShared;
-      }
-    }
-  }
-  if ( maxNbShared < 3 )
-    return free; // is free
-
-  // find volumes laying on the opposite side of the face
-  // and sharing all nodes
-  XYZ intNormal; // internal normal
-  GetFaceNormal( faceIndex, intNormal.x, intNormal.y, intNormal.z );
-  if ( IsFaceExternal( faceIndex ))
-    intNormal = XYZ( -intNormal.x, -intNormal.y, -intNormal.z );
-  XYZ p0 ( nodes[0] ), baryCenter;
-  for ( vNbIt = volNbShared.begin(); vNbIt != volNbShared.end(); vNbIt++ )
-  {
-    int nbShared = (*vNbIt).second;
-    if ( nbShared >= 3 ) {
-      SMDS_VolumeTool volume( (*vNbIt).first );
-      volume.GetBaryCenter( baryCenter.x, baryCenter.y, baryCenter.z );
-      XYZ intNormal2( baryCenter - p0 );
-      if ( intNormal.Dot( intNormal2 ) < 0 )
-        continue; // opposite side
-    }
-    // remove a volume from volNbShared map
-    volNbShared.erase( vNbIt );
-  }
-  // here volNbShared contains only volumes laying on the
-  // opposite side of the face
-  if ( volNbShared.empty() )
-    return free; // is free
-
-  // check if the whole area of a face is shared
-  bool isShared[] = { false, false, false, false }; // 4 triangle parts of a quadrangle
-  for ( vNbIt = volNbShared.begin(); vNbIt != volNbShared.end(); vNbIt++ )
-  {
-    SMDS_VolumeTool volume( (*vNbIt).first );
-    bool prevLinkShared = false;
-    int nbSharedLinks = 0;
-    for ( int iNode = 0; iNode < nbFaceNodes; iNode++ )
-    {
-      bool linkShared = volume.IsLinked( nodes[ iNode ], nodes[ iNode + 1] );
-      if ( linkShared )
-        nbSharedLinks++;
-      if ( linkShared && prevLinkShared &&
-          volume.IsLinked( nodes[ iNode - 1 ], nodes[ iNode + 1] ))
-        isShared[ iNode ] = true;
-      prevLinkShared = linkShared;
-    }
-    if ( nbSharedLinks == nbFaceNodes )
-      return !free; // is not free
-    if ( nbFaceNodes == 4 ) {
-      // check traingle parts 1 & 3
-      if ( isShared[1] && isShared[3] )
-        return !free; // is not free
-      // check triangle parts 0 & 2;
-      // 0 part could not be checked in the loop; check it here
-      if ( isShared[2] && prevLinkShared &&
-          volume.IsLinked( nodes[ 0 ], nodes[ 1 ] ) &&
-          volume.IsLinked( nodes[ 1 ], nodes[ 3 ] ) )
-        return !free; // is not free
-    }
-  }
-  return free;
-}
-
-//=======================================================================
-//function : GetFaceIndex
-//purpose  : Return index of a face formed by theFaceNodes
-//=======================================================================
-
-int SMDS_VolumeTool::GetFaceIndex( const set<const SMDS_MeshNode*>& theFaceNodes )
-{
-  for ( int iFace = 0; iFace < myNbFaces; iFace++ ) {
-    const SMDS_MeshNode** nodes = GetFaceNodes( iFace );
-    int nbFaceNodes = NbFaceNodes( iFace );
-    set<const SMDS_MeshNode*> nodeSet;
-    for ( int iNode = 0; iNode < nbFaceNodes; iNode++ )
-      nodeSet.insert( nodes[ iNode ] );
-    if ( theFaceNodes == nodeSet )
-      return iFace;
-  }
-  return -1;
-}
-
-//=======================================================================
-//function : GetFaceIndex
-//purpose  : Return index of a face formed by theFaceNodes
-//=======================================================================
-
-/*int SMDS_VolumeTool::GetFaceIndex( const set<int>& theFaceNodesIndices )
-{
-  for ( int iFace = 0; iFace < myNbFaces; iFace++ ) {
-    const int* nodes = GetFaceNodesIndices( iFace );
-    int nbFaceNodes = NbFaceNodes( iFace );
-    set<int> nodeSet;
-    for ( int iNode = 0; iNode < nbFaceNodes; iNode++ )
-      nodeSet.insert( nodes[ iNode ] );
-    if ( theFaceNodesIndices == nodeSet )
-      return iFace;
-  }
-  return -1;
-}*/
-
-//=======================================================================
-//function : setFace
-//purpose  : 
-//=======================================================================
-
-bool SMDS_VolumeTool::setFace( int faceIndex )
-{
-  if ( !myVolume )
-    return false;
-
-  if ( myCurFace == faceIndex )
-    return true;
-
-  myCurFace = -1;
-
-  if ( faceIndex < 0 || faceIndex >= NbFaces() )
-    return false;
-
-  if (myFaceNodes != NULL) {
-    delete [] myFaceNodes;
-    myFaceNodes = NULL;
-  }
-
-  if (myVolume->IsPoly()) {
-    if (!myPolyedre) {
-      MESSAGE("Warning: bad volumic element");
-      return false;
-    }
-
-    // check orientation
-    bool isGoodOri = true;
-    if (myExternalFaces) {
-      // get natural orientation
-      XYZ aNormal, baryCenter, p0 (myPolyedre->GetFaceNode(faceIndex + 1, 1));
-      SMDS_VolumeTool vTool (myPolyedre);
-      vTool.GetFaceNormal(faceIndex, aNormal.x, aNormal.y, aNormal.z);
-      vTool.GetBaryCenter(baryCenter.x, baryCenter.y, baryCenter.z);
-      XYZ insideVec (baryCenter - p0);
-      if (insideVec.Dot(aNormal) > 0)
-        isGoodOri = false;
-    }
-
-    // set face nodes
-    int iNode;
-    myFaceNbNodes = myPolyedre->NbFaceNodes(faceIndex + 1);
-    myFaceNodes = new const SMDS_MeshNode* [myFaceNbNodes + 1];
-    if (isGoodOri) {
-      for ( iNode = 0; iNode < myFaceNbNodes; iNode++ )
-        myFaceNodes[ iNode ] = myPolyedre->GetFaceNode(faceIndex + 1, iNode + 1);
-    } else {
-      for ( iNode = 0; iNode < myFaceNbNodes; iNode++ )
-        myFaceNodes[ iNode ] = myPolyedre->GetFaceNode(faceIndex + 1, myFaceNbNodes - iNode);
-    }
-    myFaceNodes[ myFaceNbNodes ] = myFaceNodes[ 0 ]; // last = first
-
-  } else {
-    // choose face node indices
-    switch ( myVolumeNbNodes ) {
-    case 4:
-      myFaceNbNodes = Tetra_nbN[ faceIndex ];
-      if ( myExternalFaces )
-        myFaceNodeIndices = myVolForward ? Tetra_F[ faceIndex ] : Tetra_RE[ faceIndex ];
-      else
-        myFaceNodeIndices = myVolForward ? Tetra_F[ faceIndex ] : Tetra_R[ faceIndex ];
-      break;
-    case 5:
-      myFaceNbNodes = Pyramid_nbN[ faceIndex ];
-      if ( myExternalFaces )
-        myFaceNodeIndices = myVolForward ? Pyramid_F[ faceIndex ] : Pyramid_RE[ faceIndex ];
-      else
-        myFaceNodeIndices = myVolForward ? Pyramid_F[ faceIndex ] : Pyramid_R[ faceIndex ];
-      break;
-    case 6:
-      myFaceNbNodes = Penta_nbN[ faceIndex ];
-      if ( myExternalFaces )
-        myFaceNodeIndices = myVolForward ? Penta_FE[ faceIndex ] : Penta_RE[ faceIndex ];
-      else
-        myFaceNodeIndices = myVolForward ? Penta_F[ faceIndex ] : Penta_R[ faceIndex ];
-      break;
-    case 8:
-      myFaceNbNodes = Hexa_nbN[ faceIndex ];
-      if ( myExternalFaces )
-        myFaceNodeIndices = myVolForward ? Hexa_FE[ faceIndex ] : Hexa_RE[ faceIndex ];
-      else
-        myFaceNodeIndices = Hexa_F[ faceIndex ];
-      break;
-    default:
-      return false;
-    }
-
-    // set face nodes
-    myFaceNodes = new const SMDS_MeshNode* [myFaceNbNodes + 1];
-    for ( int iNode = 0; iNode < myFaceNbNodes; iNode++ )
-      myFaceNodes[ iNode ] = myVolumeNodes[ myFaceNodeIndices[ iNode ]];
-    myFaceNodes[ myFaceNbNodes ] = myFaceNodes[ 0 ];
-  }
-
-  myCurFace = faceIndex;
-
-  return true;
-}
-
-//=======================================================================
-//function : GetType
-//purpose  : return VolumeType by nb of nodes in a volume
-//=======================================================================
-
-SMDS_VolumeTool::VolumeType SMDS_VolumeTool::GetType(int nbNodes)
-{
-  switch ( nbNodes ) {
-  case 4: return TETRA;
-  case 5: return PYRAM;
-  case 6: return PENTA;
-  case 8: return HEXA;
-  default:return UNKNOWN;
-  }
-}
-
-//=======================================================================
-//function : NbFaces
-//purpose  : return nb of faces by volume type
-//=======================================================================
-
-int SMDS_VolumeTool::NbFaces( VolumeType type )
-{
-  switch ( type ) {
-  case TETRA: return 4;
-  case PYRAM: return 5;
-  case PENTA: return 5;
-  case HEXA : return 6;
-  default:    return 0;
-  }
-}
-
-//=======================================================================
-//function : GetFaceNodesIndices
-//purpose  : Return the array of face nodes indices
-//           To comfort link iteration, the array
-//           length == NbFaceNodes( faceIndex ) + 1 and
-//           the last node index == the first one.
-//=======================================================================
-
-const int* SMDS_VolumeTool::GetFaceNodesIndices(VolumeType type,
-                                                int        faceIndex,
-                                                bool       external)
-{
-  switch ( type ) {
-  case TETRA: return Tetra_F[ faceIndex ];
-  case PYRAM: return Pyramid_F[ faceIndex ];
-  case PENTA: return external ? Penta_FE[ faceIndex ] : Penta_F[ faceIndex ];
-  case HEXA:  return external ? Hexa_FE[ faceIndex ] : Hexa_F[ faceIndex ];
-  default:;
-  }
-  return 0;
-}
-
-//=======================================================================
-//function : NbFaceNodes
-//purpose  : Return number of nodes in the array of face nodes
-//=======================================================================
-
-int SMDS_VolumeTool::NbFaceNodes(VolumeType type,
-                                 int        faceIndex )
-{
-  switch ( type ) {
-  case TETRA: return Tetra_nbN[ faceIndex ];
-  case PYRAM: return Pyramid_nbN[ faceIndex ];
-  case PENTA: return Penta_nbN[ faceIndex ];
-  case HEXA:  return Hexa_nbN[ faceIndex ];
-  default:;
-  }
-  return 0;
-}
-
diff --git a/src/SMDS/SMDS_VolumeTool.hxx b/src/SMDS/SMDS_VolumeTool.hxx
deleted file mode 100644 (file)
index 89732b1..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-//  SMESH SMDS : implementaion of Salome mesh data structure
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-// File      : SMDS_VolumeTool.hxx
-// Module    : SMESH
-// Created   : Tue Jul 13 11:27:17 2004
-// Author    : Edward AGAPOV (eap)
-
-
-#ifndef SMDS_VolumeTool_HeaderFile
-#define SMDS_VolumeTool_HeaderFile
-
-class SMDS_MeshElement;
-class SMDS_MeshNode;
-class SMDS_PolyhedralVolumeOfNodes;
-
-#include <vector>
-#include <set>
-
-// =========================================================================
-//
-// Class providing topological and other information about SMDS_MeshVolume:
-// allows iteration on faces or, to be precise, on nodes of volume sides;
-// provides info on nodes connection etc.
-//
-// =========================================================================
-
-class SMDS_VolumeTool
-{
- public:
-
-  SMDS_VolumeTool ();
-  ~SMDS_VolumeTool ();
-  SMDS_VolumeTool (const SMDS_MeshElement* theVolume);
-
-  bool Set (const SMDS_MeshElement* theVolume);
-  // Set volume.
-  // Return false if theVolume is not of type SMDSAbs_Volume
-
-  // -----------------------
-  // general info
-  // -----------------------
-
-  bool IsForward() const { return myVolForward; }
-  // Check volume orientation. can be changed by Inverse().
-  // See node order of forward volumes at the file bottom
-
-  void Inverse();
-  // Change nodes order as if the volume changes its orientation:
-  // top and bottom faces are reversed.
-  // Result of IsForward() and methods returning nodes change
-
-  const SMDS_MeshNode** GetNodes() { return myVolumeNodes; }
-  // Return array of volume nodes
-
-  int NbNodes() { return myVolumeNbNodes; }
-  // Return array of volume nodes
-
-  double GetSize() const;
-  // Return element volume
-
-  bool GetBaryCenter (double & X, double & Y, double & Z) const;
-
-
-  // -----------------------
-  // info on node connection
-  // -----------------------
-
-  bool IsLinked (const SMDS_MeshNode* theNode1,
-                 const SMDS_MeshNode* theNode2) const;
-  // Return true if theNode1 is linked with theNode2.
-
-  bool IsLinked (const int theNode1Index,
-                 const int theNode2Index) const;
-  // Return true if the node with theNode1Index is linked
-  // with the node with theNode2Index
-
-  int GetNodeIndex(const SMDS_MeshNode* theNode) const;
-  // Return an index of theNode
-
-  // -------------
-  // info on faces
-  // -------------
-
-  void SetExternalNormal ();
-  // Node order in faces  will be so that faces normals are external.
-
-  int NbFaces() const { return myNbFaces; }
-  // Return number of faces of the volume. In the following
-  // methods 0 <= faceIndex < NbFaces()
-
-  int NbFaceNodes( int faceIndex );
-  // Return number of nodes in the array of face nodes
-
-  const int* GetFaceNodesIndices( int faceIndex );
-  // Return the array of face nodes indices
-  // To comfort link iteration, the array
-  // length == NbFaceNodes( faceIndex ) + 1 and
-  // the last node index == the first one.
-
-  const SMDS_MeshNode** GetFaceNodes( int faceIndex );
-  // Return the array of face nodes.
-  // To comfort link iteration, the array
-  // length == NbFaceNodes( faceIndex ) + 1 and
-  // the last node == the first one.
-  // WARNING: do not modify the array, some methods
-  //          work basing on its contents
-
-  bool GetFaceNodes (int faceIndex,
-                     std::set<const SMDS_MeshNode*>& theFaceNodes );
-  // Return a set of face nodes.
-
-  bool IsFaceExternal( int faceIndex );
-  // Check normal orientation of a face.
-  // SetExternalNormal() is taken into account.
-
-  bool IsFreeFace(  int faceIndex );
-  // Check that all volumes built on the face nodes lays on one side
-
-  bool GetFaceNormal (int faceIndex, double & X, double & Y, double & Z);
-  // Return a normal to a face
-
-  double GetFaceArea( int faceIndex );
-  // Return face area
-
-  int GetOppFaceIndex( int faceIndex ) const;
-  // Return index of the opposite face if it exists, else -1.
-
-  int GetFaceIndex( const std::set<const SMDS_MeshNode*>& theFaceNodes );
-  // Return index of a face formed by theFaceNodes.
-  // Return -1 if a face not found
-
-  //int GetFaceIndex( const std::set<int>& theFaceNodesIndices );
-  // Return index of a face formed by theFaceNodesIndices
-  // Return -1 if a face not found
-
-  // ------------------------
-  // static methods for faces
-  // ------------------------
-
-  enum VolumeType { UNKNOWN, TETRA, PYRAM, PENTA, HEXA };
-
-  static VolumeType GetType(int nbNodes);
-  // return VolumeType by nb of nodes in a volume
-
-  static int NbFaces( VolumeType type );
-  // return nb of faces by volume type
-
-  static const int* GetFaceNodesIndices(VolumeType type,
-                                        int        faceIndex,
-                                        bool       external);
-  // Return the array of face nodes indices
-  // To comfort link iteration, the array
-  // length == NbFaceNodes( faceIndex ) + 1 and
-  // the last node index == the first one.
-
-  static int NbFaceNodes(VolumeType type,
-                         int        faceIndex );
-  // Return number of nodes in the array of face nodes
-
- private:
-
-  bool setFace( int faceIndex );
-
-  const SMDS_MeshElement* myVolume;
-  const SMDS_PolyhedralVolumeOfNodes* myPolyedre;
-
-  bool                    myVolForward;
-  int                     myNbFaces;
-  int                     myVolumeNbNodes;
-  const SMDS_MeshNode**   myVolumeNodes;
-
-  bool                    myExternalFaces;
-
-  int                     myCurFace;
-  int                     myFaceNbNodes;
-  int*                    myFaceNodeIndices;
-  const SMDS_MeshNode**   myFaceNodes;
-
-};
-#endif
-
-
-///////////////////////////////////////////////////////////////////////////
-//
-//                   ORDER OF NODES OF FORWARD ELEMENT
-//
-///////////////////////////////////////////////////////////////////////////
-/*
-//           N3
-//           +
-//          /|\
-//         / | \
-//        /  |  \
-//    N0 +---|---+ N1                TETRAHEDRON
-//       \   |   /
-//        \  |  /
-//         \ | /
-//          \|/
-//           +
-//           N2
-
-//            + N4
-//           /|\
-//          / | \
-//         /  |  \
-//        /   |   \
-//    N3 +---------+ N5
-//       |    |    |
-//       |    + N1 |
-//       |   / \   |                PENTAHEDRON
-//       |  /   \  |
-//       | /     \ |
-//       |/       \|
-//    N0 +---------+ N2
-
-//         N5+----------+N6
-//          /|         /|
-//         / |        / |
-//        /  |       /  |
-//     N4+----------+N7 |
-//       |   |      |   |           HEXAHEDRON
-//       |   |      |   |
-//       |   |      |   |
-//       | N1+------|---+N2
-//       |  /       |  /
-//       | /        | /
-//       |/         |/
-//     N0+----------+N3
-//
-*/
diff --git a/src/SMESH/Makefile.in b/src/SMESH/Makefile.in
deleted file mode 100644 (file)
index 5242617..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-#  SMESH SMESH : implementaion of SMESH idl descriptions
-#
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : Makefile.in
-#  Author : Paul RASCLE, EDF
-#  Module : SMESH
-#  $Header$
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@top_srcdir@/idl:$(top_builddir)/idl
-
-
-@COMMENCE@
-
-# header files  
-EXPORT_HEADERS= \
-       SMESH_Gen.hxx \
-       SMESH_Mesh.hxx \
-       SMESH_subMesh.hxx \
-       SMESH_Hypothesis.hxx \
-       SMESH_Algo.hxx \
-       SMESH_1D_Algo.hxx \
-       SMESH_2D_Algo.hxx \
-       SMESH_3D_Algo.hxx \
-       SMESH_Group.hxx \
-       SMESH_MeshEditor.hxx \
-       SMESH_Block.hxx \
-       SMESH_Pattern.hxx
-
-EXPORT_PYSCRIPTS =
-
-# Libraries targets
-
-LIB= libSMESHimpl.la
-
-LIB_SRC = SMESH_Gen.cxx SMESH_Mesh.cxx SMESH_subMesh.cxx \
-         SMESH_Hypothesis.cxx \
-         SMESH_Algo.cxx \
-         SMESH_1D_Algo.cxx \
-         SMESH_2D_Algo.cxx \
-         SMESH_3D_Algo.cxx \
-         SMESH_Group.cxx \
-         SMESH_MeshEditor.cxx \
-         SMESH_Block.cxx \
-         SMESH_Pattern.cxx \
-          SMESH_HypoFilter.cxx
-
-LIB_SERVER_IDL = 
-
-LIB_CLIENT_IDL =
-
-# Executables targets
-BIN = 
-BIN_SRC = 
-
-# additionnal information to compile and link file
-CPPFLAGS+= $(OCC_INCLUDES) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \
-           -I${MED_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS)
-CXXFLAGS+= $(OCC_CXXFLAGS) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \
-           -I${MED_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome
-LDFLAGS+= -L${KERNEL_ROOT_DIR}/lib/salome -L${GEOM_ROOT_DIR}/lib/salome -L${MED_ROOT_DIR}/lib/salome -lNMTTools -lSMESHDS -lMeshDriverDAT -lMeshDriverSTL -lMeshDriverMED -lMeshDriverUNV
-
-@CONCLUDE@
-
diff --git a/src/SMESH/SMESH_1D_Algo.cxx b/src/SMESH/SMESH_1D_Algo.cxx
deleted file mode 100644 (file)
index 37567a5..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_1D_Algo.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "SMESH_1D_Algo.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_subMesh.hxx"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_1D_Algo::SMESH_1D_Algo(int hypId, int studyId, SMESH_Gen* gen)
-  : SMESH_Algo(hypId, studyId, gen)
-{
-//   _compatibleHypothesis.push_back("hypothese_1D_bidon");
-  _type = ALGO_1D;
-  gen->_map1D_Algo[hypId] = this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_1D_Algo::~SMESH_1D_Algo()
-{
-}
-
diff --git a/src/SMESH/SMESH_1D_Algo.hxx b/src/SMESH/SMESH_1D_Algo.hxx
deleted file mode 100644 (file)
index 378ed75..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_1D_Algo.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_1D_ALGO_HXX_
-#define _SMESH_1D_ALGO_HXX_
-
-#include "SMESH_Algo.hxx"
-
-class SMESH_1D_Algo:
-  public SMESH_Algo
-{
-public:
-  SMESH_1D_Algo(int hypId, int studyId,  SMESH_Gen* gen);
-  virtual ~SMESH_1D_Algo();
-};
-
-#endif
diff --git a/src/SMESH/SMESH_2D_Algo.cxx b/src/SMESH/SMESH_2D_Algo.cxx
deleted file mode 100644 (file)
index d1084f7..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_2D_Algo.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "SMESH_2D_Algo.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_subMesh.hxx"
-
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_2D_Algo::SMESH_2D_Algo(int hypId, int studyId, SMESH_Gen* gen)
-  : SMESH_Algo(hypId, studyId, gen)
-{
-//   _compatibleHypothesis.push_back("hypothese_2D_bidon");
-  _type = ALGO_2D;
-  gen->_map2D_Algo[hypId] = this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_2D_Algo::~SMESH_2D_Algo()
-{
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-int SMESH_2D_Algo::NumberOfWires(const TopoDS_Shape& S)
-{
-  int i = 0;
-  for (TopExp_Explorer exp(S,TopAbs_WIRE); exp.More(); exp.Next())
-    i++;
-  return i;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-int SMESH_2D_Algo::NumberOfPoints(SMESH_Mesh& aMesh, const TopoDS_Wire& W)
-{
-  int nbPoints = 0;
-  for (TopExp_Explorer exp(W,TopAbs_EDGE); exp.More(); exp.Next())
-    {
-      const TopoDS_Edge& E = TopoDS::Edge(exp.Current());
-      int nb = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
-      //SCRUTE(nb);
-      nbPoints += nb +1; // internal points plus 1 vertex of 2 (last point ?)
-    }
-  //SCRUTE(nbPoints);
-  return nbPoints;
-}
diff --git a/src/SMESH/SMESH_2D_Algo.hxx b/src/SMESH/SMESH_2D_Algo.hxx
deleted file mode 100644 (file)
index 5c904e2..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_2D_Algo.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_2D_ALGO_HXX_
-#define _SMESH_2D_ALGO_HXX_
-
-#include "SMESH_Algo.hxx"
-#include <TopoDS_Wire.hxx>
-
-class SMESH_2D_Algo:
-  public SMESH_Algo
-{
-public:
-  SMESH_2D_Algo(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~SMESH_2D_Algo();
-
-  int NumberOfWires(const TopoDS_Shape& S);
-  int NumberOfPoints(SMESH_Mesh& aMesh,const TopoDS_Wire& W);
-};
-
-#endif
diff --git a/src/SMESH/SMESH_3D_Algo.cxx b/src/SMESH/SMESH_3D_Algo.cxx
deleted file mode 100644 (file)
index d42680f..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_3D_Algo.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "SMESH_3D_Algo.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_subMesh.hxx"
-
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_3D_Algo::SMESH_3D_Algo(int hypId, int studyId, SMESH_Gen* gen)
-  : SMESH_Algo(hypId, studyId, gen)
-{
-//   _compatibleHypothesis.push_back("hypothese_3D_bidon");
-  _type = ALGO_3D;
-  gen->_map3D_Algo[hypId] = this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_3D_Algo::~SMESH_3D_Algo()
-{
-}
diff --git a/src/SMESH/SMESH_3D_Algo.hxx b/src/SMESH/SMESH_3D_Algo.hxx
deleted file mode 100644 (file)
index 62621ce..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_3D_Algo.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_3D_ALGO_HXX_
-#define _SMESH_3D_ALGO_HXX_
-
-#include "SMESH_Algo.hxx"
-
-class SMESH_3D_Algo:
-  public SMESH_Algo
-{
-public:
-  SMESH_3D_Algo(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~SMESH_3D_Algo();
-};
-
-#endif
diff --git a/src/SMESH/SMESH_Algo.cxx b/src/SMESH/SMESH_Algo.cxx
deleted file mode 100644 (file)
index 60a55f3..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Algo.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "SMESH_Algo.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_Mesh.hxx"
-#include "SMESH_HypoFilter.hxx"
-
-#include <GeomAdaptor_Curve.hxx>
-#include <BRep_Tool.hxx>
-#include <GCPnts_AbscissaPoint.hxx>
-
-#include "utilities.h"
-
-#include <algorithm>
-#include <TopTools_ListOfShape.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_Algo::SMESH_Algo(int hypId, int studyId,
-       SMESH_Gen * gen):SMESH_Hypothesis(hypId, studyId, gen)
-{
-//   _compatibleHypothesis.push_back("hypothese_bidon");
-       _type = ALGO;
-       gen->_mapAlgo[hypId] = this;
-
-        _onlyUnaryInput = _requireDescretBoundary = true;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_Algo::~SMESH_Algo()
-{
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-const vector < string > &SMESH_Algo::GetCompatibleHypothesis()
-{
-       return _compatibleHypothesis;
-}
-
-//=============================================================================
-/*!
- *  List the hypothesis used by the algorithm associated to the shape.
- *  Hypothesis associated to father shape -are- taken into account (see
- *  GetAppliedHypothesis). Relevant hypothesis have a name (type) listed in
- *  the algorithm. This method could be surcharged by specific algorithms, in 
- *  case of several hypothesis simultaneously applicable.
- */
-//=============================================================================
-
-const list <const SMESHDS_Hypothesis *> & SMESH_Algo::GetUsedHypothesis(
-       SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
-{
-  _usedHypList.clear();
-  if ( !_compatibleHypothesis.empty() )
-  {
-    SMESH_HypoFilter filter( SMESH_HypoFilter::HasName( _compatibleHypothesis[0] ));
-    for ( int i = 1; i < _compatibleHypothesis.size(); ++i )
-      filter.Or( filter.HasName( _compatibleHypothesis[ i ] ));
-
-    aMesh.GetHypotheses( aShape, filter, _usedHypList, true );
-    if ( _usedHypList.size() > 1 )
-      _usedHypList.clear();    //only one compatible hypothesis allowed
-  }
-  return _usedHypList;
-}
-
-//=============================================================================
-/*!
- *  List the relevant hypothesis associated to the shape. Relevant hypothesis
- *  have a name (type) listed in the algorithm. Hypothesis associated to
- *  father shape -are not- taken into account (see GetUsedHypothesis)
- */
-//=============================================================================
-
-const list<const SMESHDS_Hypothesis *> & SMESH_Algo::GetAppliedHypothesis(
-       SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
-{
-  _appliedHypList.clear();
-  if ( !_compatibleHypothesis.empty() )
-  {
-    SMESH_HypoFilter filter( SMESH_HypoFilter::HasName( _compatibleHypothesis[0] ));
-    for ( int i = 1; i < _compatibleHypothesis.size(); ++i )
-      filter.Or( filter.HasName( _compatibleHypothesis[ i ] ));
-    
-    aMesh.GetHypotheses( aShape, filter, _appliedHypList, false );
-  }
-  return _appliedHypList;
-}
-
-//=============================================================================
-/*!
- *  Compute length of an edge
- */
-//=============================================================================
-
-double SMESH_Algo::EdgeLength(const TopoDS_Edge & E)
-{
-       double UMin = 0, UMax = 0;
-       TopLoc_Location L;
-       if (BRep_Tool::Degenerated(E))
-               return 0;
-       Handle(Geom_Curve) C = BRep_Tool::Curve(E, L, UMin, UMax);
-       GeomAdaptor_Curve AdaptCurve(C);
-       GCPnts_AbscissaPoint gabs;
-       double length = gabs.Length(AdaptCurve, UMin, UMax);
-       return length;
-}
diff --git a/src/SMESH/SMESH_Algo.hxx b/src/SMESH/SMESH_Algo.hxx
deleted file mode 100644 (file)
index 029dc67..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Algo.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_ALGO_HXX_
-#define _SMESH_ALGO_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-
-#include <TopoDS_Shape.hxx>
-#include <TopoDS_Edge.hxx>
-
-#include <string>
-#include <vector>
-#include <list>
-
-class SMESH_Gen;
-class SMESH_Mesh;
-
-class SMESH_Algo:public SMESH_Hypothesis
-{
-  public:
-       SMESH_Algo(int hypId, int studyId, SMESH_Gen * gen);
-         virtual ~ SMESH_Algo();
-
-       const std::vector < std::string > &GetCompatibleHypothesis();
-       virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
-                                     const TopoDS_Shape& aShape,
-                                     SMESH_Hypothesis::Hypothesis_Status& aStatus) = 0;
-
-       virtual bool Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape) = 0;
-
-       virtual const std::list <const SMESHDS_Hypothesis *> &
-               GetUsedHypothesis(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape);
-
-       const list <const SMESHDS_Hypothesis *> &
-               GetAppliedHypothesis(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape);
-
-       static double EdgeLength(const TopoDS_Edge & E);
-
- public:
-        // algo features
-
-        // SMESH_Hypothesis::GetDim();
-        // 1 - dimention of target mesh
-
-        bool OnlyUnaryInput() const { return _onlyUnaryInput; }
-        // 2 - is collection of tesselatable shapes inacceptable as input;
-        // "collection" means a shape containing shapes of dim equal
-        // to GetDim().
-        // Algo which can process a collection shape should expect
-        // an input temporary shape that is neither MainShape nor
-        // its child.
-        
-        bool NeedDescretBoundary() const { return _requireDescretBoundary; }
-        // 3 - is a Dim-1 mesh prerequisite
-
- protected:
-        bool _onlyUnaryInput;
-        bool _requireDescretBoundary;
-        std::vector<std::string> _compatibleHypothesis;
-        std::list<const SMESHDS_Hypothesis *> _appliedHypList;
-        std::list<const SMESHDS_Hypothesis *> _usedHypList;
-};
-
-#endif
diff --git a/src/SMESH/SMESH_Block.cxx b/src/SMESH/SMESH_Block.cxx
deleted file mode 100644 (file)
index 431208f..0000000
+++ /dev/null
@@ -1,1391 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-// File      : SMESH_Pattern.hxx
-// Created   : Mon Aug  2 10:30:00 2004
-// Author    : Edward AGAPOV (eap)
-
-#include "SMESH_Block.hxx"
-
-#include <BRepTools.hxx>
-#include <BRepTools_WireExplorer.hxx>
-#include <BRep_Tool.hxx>
-#include <Extrema_ExtPC.hxx>
-#include <Extrema_POnCurv.hxx>
-#include <GeomAdaptor_Curve.hxx>
-#include <TopAbs_ShapeEnum.hxx>
-#include <TopExp_Explorer.hxx>
-#include <TopLoc_Location.hxx>
-#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TopTools_ListOfShape.hxx>
-#include <TopoDS.hxx>
-#include <TopoDS_Face.hxx>
-#include <TopoDS_Iterator.hxx>
-#include <TopoDS_Wire.hxx>
-#include <gp_Trsf.hxx>
-#include <gp_Vec.hxx>
-#include <math_FunctionSetRoot.hxx>
-
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_MeshVolume.hxx"
-#include "SMDS_VolumeTool.hxx"
-#include "utilities.h"
-
-#include <list>
-
-using namespace std;
-
-#define SQRT_FUNC 1
-
-//=======================================================================
-//function : SMESH_Block::TEdge::GetU
-//purpose  : 
-//=======================================================================
-
-double SMESH_Block::TEdge::GetU( const gp_XYZ& theParams ) const
-{
-  double u = theParams.Coord( myCoordInd );
-  if ( myC3d.IsNull() ) // if mesh block
-    return u;
-  return ( 1 - u ) * myFirst + u * myLast;
-}
-
-//=======================================================================
-//function : SMESH_Block::TEdge::Point
-//purpose  : 
-//=======================================================================
-
-gp_XYZ SMESH_Block::TEdge::Point( const gp_XYZ& theParams ) const
-{
-  double u = GetU( theParams );
-
-  if ( myC3d.IsNull() ) // if mesh block
-    return myNodes[0] * ( 1 - u ) + myNodes[1] * u;
-
-  gp_XYZ p = myC3d->Value( u ).XYZ();
-  if ( myTrsf.Form() != gp_Identity )
-    myTrsf.Transforms( p );
-  return p;
-}
-
-//=======================================================================
-//function : SMESH_Block::TFace::GetCoefs
-//purpose  : return coefficients for addition of [0-3]-th edge and vertex
-//=======================================================================
-
-void SMESH_Block::TFace::GetCoefs(int           iE,
-                                  const gp_XYZ& theParams,
-                                  double&       Ecoef,
-                                  double&       Vcoef ) const
-{
-  double dU = theParams.Coord( GetUInd() );
-  double dV = theParams.Coord( GetVInd() );
-  switch ( iE ) {
-  case 0:
-    Ecoef = ( 1 - dV ); // u0
-    Vcoef = ( 1 - dU ) * ( 1 - dV ); break; // 00
-  case 1:
-    Ecoef = dV; // u1
-    Vcoef = dU * ( 1 - dV ); break; // 10
-  case 2:
-    Ecoef = ( 1 - dU ); // 0v
-    Vcoef = dU * dV  ; break; // 11
-  case 3:
-    Ecoef = dU  ; // 1v
-    Vcoef = ( 1 - dU ) * dV  ; break; // 01
-  default: ASSERT(0);
-  }
-}
-
-//=======================================================================
-//function : SMESH_Block::TFace::GetUV
-//purpose  : 
-//=======================================================================
-
-gp_XY SMESH_Block::TFace::GetUV( const gp_XYZ& theParams ) const
-{
-  gp_XY uv(0.,0.);
-  for ( int iE = 0; iE < 4; iE++ ) // loop on 4 edges
-  {
-    double Ecoef = 0, Vcoef = 0;
-    GetCoefs( iE, theParams, Ecoef, Vcoef );
-    // edge addition
-    double u = theParams.Coord( myCoordInd[ iE ] );
-    u = ( 1 - u ) * myFirst[ iE ] + u * myLast[ iE ];
-    uv += Ecoef * myC2d[ iE ]->Value( u ).XY();
-    // corner addition
-    uv -= Vcoef * myCorner[ iE ];
-  }
-  return uv;
-}
-
-//=======================================================================
-//function : SMESH_Block::TFace::Point
-//purpose  : 
-//=======================================================================
-
-gp_XYZ SMESH_Block::TFace::Point( const gp_XYZ& theParams ) const
-{
-  gp_XYZ p(0.,0.,0.);
-  if ( myS.IsNull() ) // if mesh block
-  {
-    for ( int iE = 0; iE < 4; iE++ ) // loop on 4 edges
-    {
-      double Ecoef = 0, Vcoef = 0;
-      GetCoefs( iE, theParams, Ecoef, Vcoef );
-      // edge addition
-      double u = theParams.Coord( myCoordInd[ iE ] );
-      int i1 = 0, i2 = 1;
-      switch ( iE ) {
-      case 1: i1 = 3; i2 = 2; break;
-      case 2: i1 = 1; i2 = 2; break;
-      case 3: i1 = 0; i2 = 3; break;
-      }
-      p += Ecoef * ( myNodes[ i1 ] * ( 1 - u ) + myNodes[ i2 ] * u );
-      // corner addition
-      p -= Vcoef * myNodes[ iE ];
-    }
-    
-  }
-  else // shape block
-  {
-    gp_XY uv = GetUV( theParams );
-    p = myS->Value( uv.X(), uv.Y() ).XYZ();
-    if ( myTrsf.Form() != gp_Identity )
-      myTrsf.Transforms( p );
-  }
-  return p;
-}
-
-//=======================================================================
-//function : GetShapeCoef
-//purpose  : 
-//=======================================================================
-
-double* SMESH_Block::GetShapeCoef (const int theShapeID)
-{
-  static double shapeCoef[][3] = {
-    //    V000,        V100,        V010,         V110
-    { -1,-1,-1 }, {  1,-1,-1 }, { -1, 1,-1 }, {  1, 1,-1 },
-    //    V001,        V101,        V011,         V111,
-    { -1,-1, 1 }, {  1,-1, 1 }, { -1, 1, 1 }, {  1, 1, 1 },
-    //    Ex00,        Ex10,        Ex01,         Ex11,
-    {  0,-1,-1 }, {  0, 1,-1 }, {  0,-1, 1 }, {  0, 1, 1 },
-    //    E0y0,        E1y0,        E0y1,         E1y1,
-    { -1, 0,-1 }, {  1, 0,-1 }, { -1, 0, 1 }, {  1, 0, 1 },
-    //    E00z,        E10z,        E01z,         E11z,
-    { -1,-1, 0 }, {  1,-1, 0 }, { -1, 1, 0 }, {  1, 1, 0 },
-    //    Fxy0,        Fxy1,        Fx0z,         Fx1z,         F0yz,           F1yz,
-    {  0, 0,-1 }, {  0, 0, 1 }, {  0,-1, 0 }, {  0, 1, 0 }, { -1, 0, 0 }, {  1, 0, 0 },
-    // ID_Shell
-    {  0, 0, 0 }
-  };
-  if ( theShapeID < ID_V000 || theShapeID > ID_F1yz )
-    return shapeCoef[ ID_Shell - 1 ];
-
-  return shapeCoef[ theShapeID - 1 ];
-}
-
-//=======================================================================
-//function : ShellPoint
-//purpose  : return coordinates of a point in shell
-//=======================================================================
-
-bool SMESH_Block::ShellPoint( const gp_XYZ& theParams, gp_XYZ& thePoint ) const
-{
-  thePoint.SetCoord( 0., 0., 0. );
-  for ( int shapeID = ID_V000; shapeID < ID_Shell; shapeID++ )
-  {
-    // coef
-    double* coefs = GetShapeCoef( shapeID );
-    double k = 1;
-    for ( int iCoef = 0; iCoef < 3; iCoef++ ) {
-      if ( coefs[ iCoef ] != 0 ) {
-        if ( coefs[ iCoef ] < 0 )
-          k *= ( 1. - theParams.Coord( iCoef + 1 ));
-        else
-          k *= theParams.Coord( iCoef + 1 );
-      }
-    }
-    // point on a shape
-    gp_XYZ Ps;
-    if ( shapeID < ID_Ex00 ) // vertex
-      VertexPoint( shapeID, Ps );
-    else if ( shapeID < ID_Fxy0 ) { // edge
-      EdgePoint( shapeID, theParams, Ps );
-      k = -k;
-    } else // face
-      FacePoint( shapeID, theParams, Ps );
-
-    thePoint += k * Ps;
-  }
-  return true;
-}
-
-//=======================================================================
-//function : ShellPoint
-//purpose  : computes coordinates of a point in shell by points on sub-shapes;
-//           thePointOnShape[ subShapeID ] must be a point on a subShape
-//=======================================================================
-
-bool SMESH_Block::ShellPoint(const gp_XYZ&         theParams,
-                             const vector<gp_XYZ>& thePointOnShape,
-                             gp_XYZ&               thePoint )
-{
-  if ( thePointOnShape.size() < ID_F1yz )
-    return false;
-
-  double x = theParams.X(), y = theParams.Y(), z = theParams.Z();
-  double x1 = 1. - x,       y1 = 1. - y,       z1 = 1. - z;
-  const vector<gp_XYZ>& p = thePointOnShape;
-
-  thePoint = 
-    x1 * p[ID_F0yz] + x * p[ID_F1yz]
-      + y1 * p[ID_Fx0z] + y * p[ID_Fx1z]
-        + z1 * p[ID_Fxy0] + z * p[ID_Fxy1]
-          + x1 * (y1 * (z1 * p[ID_V000] + z * p[ID_V001])
-                  + y * (z1 * p[ID_V010] + z * p[ID_V011]))
-            + x * (y1 * (z1 * p[ID_V100] + z * p[ID_V101])
-                   + y * (z1 * p[ID_V110] + z * p[ID_V111]));
-  thePoint -=
-    x1 * (y1 * p[ID_E00z] + y * p[ID_E01z])
-      + x * (y1 * p[ID_E10z] + y * p[ID_E11z])
-        + y1 * (z1 * p[ID_Ex00] + z * p[ID_Ex01])
-          + y * (z1 * p[ID_Ex10] + z * p[ID_Ex11])
-            + z1 * (x1 * p[ID_E0y0] + x * p[ID_E1y0])
-              + z * (x1 * p[ID_E0y1] + x * p[ID_E1y1]);
-
-  return true;
-}
-
-//=======================================================================
-//function : NbVariables
-//purpose  : 
-//=======================================================================
-
-Standard_Integer SMESH_Block::NbVariables() const
-{
-  return 3;
-}
-
-//=======================================================================
-//function : NbEquations
-//purpose  : 
-//=======================================================================
-
-Standard_Integer SMESH_Block::NbEquations() const
-{
-  return 1;
-}
-
-//=======================================================================
-//function : Value
-//purpose  : 
-//=======================================================================
-
-Standard_Boolean SMESH_Block::Value(const math_Vector& theXYZ, math_Vector& theFxyz) 
-{
-  gp_XYZ P, params( theXYZ(1), theXYZ(2), theXYZ(3) );
-  if ( params.IsEqual( myParam, DBL_MIN )) { // same param
-    theFxyz( 1 ) = myValues[ 0 ];
-  }
-  else {
-    ShellPoint( params, P );
-    gp_Vec dP( P - myPoint );
-    theFxyz(1) = SQRT_FUNC ? dP.SquareMagnitude() : dP.Magnitude();
-  }
-  return true;
-}
-
-//=======================================================================
-//function : Derivatives
-//purpose  : 
-//=======================================================================
-
-Standard_Boolean SMESH_Block::Derivatives(const math_Vector& XYZ,math_Matrix& Df) 
-{
-  MESSAGE( "SMESH_Block::Derivatives()");
-  math_Vector F(1,3);
-  return Values(XYZ,F,Df);
-}
-
-//=======================================================================
-//function : Values
-//purpose  : 
-//=======================================================================
-
-Standard_Boolean SMESH_Block::Values(const math_Vector& theXYZ,
-                                     math_Vector&       theFxyz,
-                                     math_Matrix&       theDf) 
-{
-//  MESSAGE( endl<<"SMESH_Block::Values( "<<theXYZ(1)<<", "<<theXYZ(2)<<", "<<theXYZ(3)<<")");
-
-  gp_XYZ P, params( theXYZ(1), theXYZ(2), theXYZ(3) );
-  if ( params.IsEqual( myParam, DBL_MIN )) { // same param
-    theFxyz( 1 ) = myValues[ 0 ];
-    theDf( 1,1 ) = myValues[ 1 ];
-    theDf( 1,2 ) = myValues[ 2 ];
-    theDf( 1,3 ) = myValues[ 3 ];
-    return true;
-  }
-
-  ShellPoint( params, P );
-  //myNbIterations++; // how many time call ShellPoint()
-
-  gp_Vec dP( P - myPoint );
-  theFxyz(1) = SQRT_FUNC ? dP.SquareMagnitude() : dP.Magnitude();
-  if ( theFxyz(1) < 1e-6 ) {
-    myParam      = params;
-    myValues[ 0 ]= 0;
-    theDf( 1,1 ) = 0;
-    theDf( 1,2 ) = 0;
-    theDf( 1,3 ) = 0;
-    return true;
-  }
-
-  if ( theFxyz(1) < myValues[0] ) // a better guess
-  {
-    // 3 partial derivatives
-    gp_Vec drv[ 3 ];
-    for ( int iP = 1; iP <= 3; iP++ ) {
-      gp_XYZ Pi;
-      params.SetCoord( iP, theXYZ( iP ) + 0.001 );
-      ShellPoint( params, Pi );
-      params.SetCoord( iP, theXYZ( iP ) ); // restore params
-      gp_Vec dPi ( P, Pi );
-      double mag = dPi.Magnitude();
-      if ( mag > DBL_MIN )
-        dPi /= mag;
-      drv[ iP - 1 ] = dPi;
-    }
-    for ( int iP = 0; iP < 3; iP++ ) {
-      if ( iP == myFaceIndex )
-        theDf( 1, iP + 1 ) = myFaceParam;
-      else {
-        // like IntAna_IntConicQuad::Perform (const gp_Lin& L, const gp_Pln& P)
-        // where L is (P -> myPoint), P is defined by the 2 other derivative direction
-        int iPrev = ( iP ? iP - 1 : 2 );
-        int iNext = ( iP == 2 ? 0 : iP + 1 );
-        gp_Vec plnNorm = drv[ iPrev ].Crossed( drv [ iNext ] );
-        double Direc = plnNorm * drv[ iP ];
-        if ( Abs(Direc) <= DBL_MIN )
-          theDf( 1, iP + 1 ) = dP * drv[ iP ];
-        else {
-          double Dis = plnNorm * P - plnNorm * myPoint;
-          theDf( 1, iP + 1 ) = Dis/Direc;
-        }
-      }
-    }
-    //myNbIterations +=3; // how many time call ShellPoint()
-
-    // store better values
-    myParam    = params;
-    myValues[0]= theFxyz(1);
-    myValues[1]= theDf(1,1);
-    myValues[2]= theDf(1,2);
-    myValues[3]= theDf(1,3);
-
-//     SCRUTE( theFxyz(1)  );
-//     SCRUTE( theDf( 1,1 ));
-//     SCRUTE( theDf( 1,2 ));
-//     SCRUTE( theDf( 1,3 ));
-  }
-
-  return true;
-}
-
-//=======================================================================
-//function : ComputeParameters
-//purpose  : compute point parameters in the block
-//=======================================================================
-
-bool SMESH_Block::ComputeParameters(const gp_Pnt& thePoint,
-                                    gp_XYZ&       theParams,
-                                    const int     theShapeID)
-{
-  if ( VertexParameters( theShapeID, theParams ))
-    return true;
-
-  if ( IsEdgeID( theShapeID )) {
-    TEdge& e = myEdge[ theShapeID - ID_Ex00 ];
-    GeomAdaptor_Curve curve( e.myC3d );
-    double f = Min( e.myFirst, e.myLast ), l = Max( e.myFirst, e.myLast );
-    Extrema_ExtPC anExtPC( thePoint, curve, f, l );
-    int i, nb = anExtPC.IsDone() ? anExtPC.NbExt() : 0;
-    for ( i = 1; i <= nb; i++ ) {
-      if ( anExtPC.IsMin( i ))
-        return EdgeParameters( theShapeID, anExtPC.Point( i ).Parameter(), theParams );
-    }
-    return false;
-  }
-
-//   MESSAGE( endl<<"SMESH_Block::ComputeParameters( "
-//           <<thePoint.X()<<", "<<thePoint.Y()<<", "<<thePoint.Z()<<")");
-  myPoint = thePoint.XYZ();
-
-  myParam.SetCoord( -1,-1,-1 );
-  myValues[0] = 1e100;
-
-  const bool isOnFace = IsFaceID( theShapeID );
-  double * coef = GetShapeCoef( theShapeID );
-
-  // the first guess
-  math_Vector start( 1, 3, 0.0 );
-  if ( !myGridComputed )
-  {
-    // define the first guess by thePoint projection on lines
-    // connecting vertices
-    bool needGrid = false;
-    gp_XYZ par000( 0, 0, 0 ), par111( 1, 1, 1 );
-    double zero = DBL_MIN * DBL_MIN;
-    for ( int iEdge = 0, iParam = 1; iParam <= 3 && !needGrid; iParam++ )
-    {
-      if ( isOnFace && coef[ iParam - 1 ] != 0 ) {
-        iEdge += 4;
-        continue;
-      }
-      for ( int iE = 0; iE < 4; iE++, iEdge++ ) { // loop on 4 parallel edges
-        gp_Pnt p0 = myEdge[ iEdge ].Point( par000 );
-        gp_Pnt p1 = myEdge[ iEdge ].Point( par111 );
-        gp_Vec v01( p0, p1 ), v0P( p0, thePoint );
-        double len2 = v01.SquareMagnitude();
-        double par = 0;
-        if ( len2 > zero ) {
-          par = v0P.Dot( v01 ) / len2;
-          if ( par < 0 || par > 1 ) {
-            needGrid = true;
-            break;
-          }
-        }
-        start( iParam ) += par;
-      }
-      start( iParam ) /= 4.;
-    }
-    if ( needGrid ) {
-      // compute nodes of 3 x 3 x 3 grid
-      int iNode = 0;
-      for ( double x = 0.25; x < 0.9; x += 0.25 )
-        for ( double y = 0.25; y < 0.9; y += 0.25 )
-          for ( double z = 0.25; z < 0.9; z += 0.25 ) {
-            TxyzPair & prmPtn = my3x3x3GridNodes[ iNode++ ];
-            prmPtn.first.SetCoord( x, y, z );
-            ShellPoint( prmPtn.first, prmPtn.second );
-          }
-      myGridComputed = true;
-    }
-  }
-  if ( myGridComputed ) {
-    double minDist = DBL_MAX;
-    gp_XYZ* bestParam = 0;
-    for ( int iNode = 0; iNode < 27; iNode++ ) {
-      TxyzPair & prmPtn = my3x3x3GridNodes[ iNode ];
-      double dist = ( thePoint.XYZ() - prmPtn.second ).SquareModulus();
-      if ( dist < minDist ) {
-        minDist = dist;
-        bestParam = & prmPtn.first;
-      }
-    }
-    start( 1 ) = bestParam->X();
-    start( 2 ) = bestParam->Y();
-    start( 3 ) = bestParam->Z();
-  }
-
-  int myFaceIndex = -1;
-  if ( isOnFace ) {
-    // put a point on the face
-    for ( int iCoord = 0; iCoord < 3; iCoord++ )
-      if ( coef[ iCoord ] ) {
-        myFaceIndex = iCoord;
-        myFaceParam = ( coef[ myFaceIndex ] < 0.5 ) ? 0.0 : 1.0;
-        start( iCoord + 1 ) = myFaceParam;
-      }
-  }
-  math_Vector low  ( 1, 3, 0.0 );
-  math_Vector up   ( 1, 3, 1.0 );
-  math_Vector tol  ( 1, 3, 1e-4 );
-  math_FunctionSetRoot paramSearch( *this, tol );
-
-  int nbLoops = 0;
-  while ( myValues[0] > 1e-1 && nbLoops++ < 10 ) {
-    paramSearch.Perform ( *this, start, low, up );
-    if ( !paramSearch.IsDone() ) {
-      //MESSAGE( " !paramSearch.IsDone() " );
-    }
-    else {
-      //MESSAGE( " NB ITERATIONS: " << paramSearch.NbIterations() );
-    }
-    start( 1 ) = myParam.X();
-    start( 2 ) = myParam.Y();
-    start( 3 ) = myParam.Z();
-    //MESSAGE( "Distance: " << ( SQRT_FUNC ? sqrt(myValues[0]) : myValues[0] ));
-  }
-//   MESSAGE( endl << myParam.X() << " " << myParam.Y() << " " << myParam.Z() << endl);
-//   mySumDist += myValues[0];
-//   MESSAGE( " TOTAL NB ITERATIONS: " << myNbIterations <<
-//             " DIST: " << ( SQRT_FUNC ? sqrt(mySumDist) : mySumDist ));
-
-
-  theParams = myParam;
-
-  return true;
-}
-
-//=======================================================================
-//function : VertexParameters
-//purpose  : return parameters of a vertex given by TShapeID
-//=======================================================================
-
-bool SMESH_Block::VertexParameters(const int theVertexID, gp_XYZ& theParams)
-{
-  switch ( theVertexID ) {
-  case ID_V000: theParams.SetCoord(0., 0., 0.); return true;
-  case ID_V100: theParams.SetCoord(1., 0., 0.); return true;
-  case ID_V110: theParams.SetCoord(1., 1., 0.); return true;
-  case ID_V010: theParams.SetCoord(0., 1., 0.); return true;
-  default:;
-  }
-  return false;
-}
-
-//=======================================================================
-//function : EdgeParameters
-//purpose  : return parameters of a point given by theU on edge
-//=======================================================================
-
-bool SMESH_Block::EdgeParameters(const int theEdgeID, const double theU, gp_XYZ& theParams)
-{
-  if ( IsEdgeID( theEdgeID )) {
-    vector< int > vertexVec;
-    GetEdgeVertexIDs( theEdgeID, vertexVec );
-    VertexParameters( vertexVec[0], theParams );
-    TEdge& e = myEdge[ theEdgeID - ID_Ex00 ];
-    double param = ( theU - e.myFirst ) / ( e.myLast - e.myFirst );
-    theParams.SetCoord( e.myCoordInd, param );
-    return true;
-  }
-  return false;
-}
-
-//=======================================================================
-//function : GetStateNumber
-//purpose  : 
-//=======================================================================
-
-Standard_Integer SMESH_Block::GetStateNumber ()
-{
-//   MESSAGE( endl<<"SMESH_Block::GetStateNumber( "<<myParam.X()<<", "<<
-//           myParam.Y()<<", "<<myParam.Z()<<") DISTANCE: " << myValues[0]);
-  return myValues[0] < 1e-1;
-}
-
-//=======================================================================
-//function : DumpShapeID
-//purpose  : debug an id of a block sub-shape
-//=======================================================================
-
-#define CASEDUMP(id,strm) case id: strm << #id; break;
-
-ostream& SMESH_Block::DumpShapeID (const int id, ostream& stream)
-{
-  switch ( id ) {
-  CASEDUMP( ID_V000, stream );
-  CASEDUMP( ID_V100, stream );
-  CASEDUMP( ID_V010, stream );
-  CASEDUMP( ID_V110, stream );
-  CASEDUMP( ID_V001, stream );
-  CASEDUMP( ID_V101, stream );
-  CASEDUMP( ID_V011, stream );
-  CASEDUMP( ID_V111, stream );
-  CASEDUMP( ID_Ex00, stream );
-  CASEDUMP( ID_Ex10, stream );
-  CASEDUMP( ID_Ex01, stream );
-  CASEDUMP( ID_Ex11, stream );
-  CASEDUMP( ID_E0y0, stream );
-  CASEDUMP( ID_E1y0, stream );
-  CASEDUMP( ID_E0y1, stream );
-  CASEDUMP( ID_E1y1, stream );
-  CASEDUMP( ID_E00z, stream );
-  CASEDUMP( ID_E10z, stream );
-  CASEDUMP( ID_E01z, stream );
-  CASEDUMP( ID_E11z, stream );
-  CASEDUMP( ID_Fxy0, stream );
-  CASEDUMP( ID_Fxy1, stream );
-  CASEDUMP( ID_Fx0z, stream );
-  CASEDUMP( ID_Fx1z, stream );
-  CASEDUMP( ID_F0yz, stream );
-  CASEDUMP( ID_F1yz, stream );
-  CASEDUMP( ID_Shell, stream );
-  default: stream << "ID_INVALID";
-  }
-  return stream;
-}
-
-//=======================================================================
-//function : GetShapeIDByParams
-//purpose  : define an id of the block sub-shape by normlized point coord
-//=======================================================================
-
-int SMESH_Block::GetShapeIDByParams ( const gp_XYZ& theCoord )
-{
-  //   id ( 0 - 26 ) computation:
-
-  //   vertex     ( 0 - 7 )  : id = 1*x + 2*y + 4*z
-
-  //   edge || X  ( 8 - 11 ) : id = 8   + 1*y + 2*z
-  //   edge || Y  ( 12 - 15 ): id = 1*x + 12  + 2*z
-  //   edge || Z  ( 16 - 19 ): id = 1*x + 2*y + 16 
-
-  //   face || XY ( 20 - 21 ): id = 8   + 12  + 1*z - 0
-  //   face || XZ ( 22 - 23 ): id = 8   + 1*y + 16  - 2
-  //   face || YZ ( 24 - 25 ): id = 1*x + 12  + 16  - 4
-
-  static int iAddBnd[]    = { 1, 2, 4 };
-  static int iAddNotBnd[] = { 8, 12, 16 };
-  static int iFaceSubst[] = { 0, 2, 4 };
-
-  int id = 0;
-  int iOnBoundary = 0;
-  for ( int iCoord = 0; iCoord < 3; iCoord++ )
-  {
-    double val = theCoord.Coord( iCoord + 1 );
-    if ( val == 0.0 )
-      iOnBoundary++;
-    else if ( val == 1.0 )
-      id += iAddBnd[ iOnBoundary++ ];
-    else
-      id += iAddNotBnd[ iCoord ];
-  }
-  if ( iOnBoundary == 1 ) // face
-    id -= iFaceSubst[ (id - 20) / 4 ];
-  else if ( iOnBoundary == 0 ) // shell
-    id = 26;
-
-  if ( id > 26 || id < 0 ) {
-    MESSAGE( "GetShapeIDByParams() = " << id
-            <<" "<< theCoord.X() <<" "<< theCoord.Y() <<" "<< theCoord.Z() );
-  }
-
-  return id + 1; // shape ids start at 1
-}
-
-
-//=======================================================================
-//function : getOrderedEdges
-//purpose  : return nb wires and a list of oredered edges
-//=======================================================================
-
-static int getOrderedEdges (const TopoDS_Face&   theFace,
-                            const TopoDS_Vertex& theFirstVertex,
-                            list< TopoDS_Edge >& theEdges,
-                            list< int >  &       theNbVertexInWires)
-{
-  // put wires in a list, so that an outer wire comes first
-  list<TopoDS_Wire> aWireList;
-  TopoDS_Wire anOuterWire = BRepTools::OuterWire( theFace );
-  aWireList.push_back( anOuterWire );
-  for ( TopoDS_Iterator wIt (theFace); wIt.More(); wIt.Next() )
-    if ( !anOuterWire.IsSame( wIt.Value() ))
-      aWireList.push_back( TopoDS::Wire( wIt.Value() ));
-
-  // loop on edges of wires
-  theNbVertexInWires.clear();
-  list<TopoDS_Wire>::iterator wlIt = aWireList.begin();
-  for ( ; wlIt != aWireList.end(); wlIt++ )
-  {
-    int iE;
-    BRepTools_WireExplorer wExp( *wlIt, theFace );
-    for ( iE = 0; wExp.More(); wExp.Next(), iE++ )
-    {
-      TopoDS_Edge edge = wExp.Current();
-      edge = TopoDS::Edge( edge.Oriented( wExp.Orientation() ));
-      theEdges.push_back( edge );
-    }
-    theNbVertexInWires.push_back( iE );
-    iE = 0;
-    if ( wlIt == aWireList.begin() && theEdges.size() > 1 ) { // the outer wire
-      // orient closed edges
-      list< TopoDS_Edge >::iterator eIt, eIt2;
-      for ( eIt = theEdges.begin(); eIt != theEdges.end(); eIt++ )
-      {
-        TopoDS_Edge& edge = *eIt;
-        if ( TopExp::FirstVertex( edge ).IsSame( TopExp::LastVertex( edge ) ))
-        {
-          eIt2 = eIt;
-          bool isNext = ( eIt2 == theEdges.begin() );
-          TopoDS_Edge edge2 = isNext ? *(++eIt2) : *(--eIt2);
-          double f1,l1,f2,l2;
-          Handle(Geom2d_Curve) c1 = BRep_Tool::CurveOnSurface( edge, theFace, f1,l1 );
-          Handle(Geom2d_Curve) c2 = BRep_Tool::CurveOnSurface( edge2, theFace, f2,l2 );
-          gp_Pnt2d pf = c1->Value( edge.Orientation() == TopAbs_FORWARD ? f1 : l1 );
-          gp_Pnt2d pl = c1->Value( edge.Orientation() == TopAbs_FORWARD ? l1 : f1 );
-          bool isFirst = ( edge2.Orientation() == TopAbs_FORWARD ? isNext : !isNext );
-          gp_Pnt2d p2 = c2->Value( isFirst ? f2 : l2 );
-          isFirst = ( p2.SquareDistance( pf ) < p2.SquareDistance( pl ));
-          if ( isNext ? isFirst : !isFirst )
-            edge.Reverse();
-        }
-      }
-      // rotate theEdges until it begins from theFirstVertex
-      if ( ! theFirstVertex.IsNull() )
-        while ( !theFirstVertex.IsSame( TopExp::FirstVertex( theEdges.front(), true )))
-        {
-          theEdges.splice(theEdges.end(), theEdges,
-                          theEdges.begin(), ++ theEdges.begin());
-          if ( iE++ > theNbVertexInWires.back() ) 
-            break; // break infinite loop
-        }
-    }
-  }
-
-  return aWireList.size();
-}
-
-//=======================================================================
-//function : LoadMeshBlock
-//purpose  : prepare to work with theVolume
-//=======================================================================
-
-#define gpXYZ(n) gp_XYZ(n->X(),n->Y(),n->Z())
-
-bool SMESH_Block::LoadMeshBlock(const SMDS_MeshVolume*        theVolume,
-                                const int                     theNode000Index,
-                                const int                     theNode001Index,
-                                vector<const SMDS_MeshNode*>& theOrderedNodes)
-{
-  MESSAGE(" ::LoadMeshBlock()");
-
-  myNbIterations = 0;
-  mySumDist = 0;
-  myGridComputed = false;
-
-  SMDS_VolumeTool vTool;
-  if (!vTool.Set( theVolume ) || vTool.NbNodes() != 8 ||
-      !vTool.IsLinked( theNode000Index, theNode001Index )) {
-    MESSAGE(" Bad arguments ");
-    return false;
-  }
-  vTool.SetExternalNormal();
-  // In terms of indices used for access to nodes and faces in SMDS_VolumeTool:
-  int V000, V100, V010, V110, V001, V101, V011, V111; // 8 vertices
-  int Fxy0, Fxy1; // bottom and top faces
-  // vertices of faces
-  vector<int> vFxy0, vFxy1;
-
-  V000 = theNode000Index;
-  V001 = theNode001Index;
-
-  // get faces sharing V000 and V001
-  list<int> fV000, fV001;
-  int i, iF, iE, iN;
-  for ( iF = 0; iF < vTool.NbFaces(); ++iF ) {
-    const int* nid = vTool.GetFaceNodesIndices( iF );
-    for ( iN = 0; iN < 4; ++iN )
-      if ( nid[ iN ] == V000 ) {
-        fV000.push_back( iF );
-      } else if ( nid[ iN ] == V001 ) {
-        fV001.push_back( iF );
-      }
-  }
-
-  // find the bottom (Fxy0), the top (Fxy1) faces
-  list<int>::iterator fIt1, fIt2, Fxy0Pos;
-  for ( fIt1 = fV000.begin(); fIt1 != fV000.end(); fIt1++) {
-    fIt2 = std::find( fV001.begin(), fV001.end(), *fIt1 );
-    if ( fIt2 != fV001.end() ) { // *fIt1 is in the both lists
-      fV001.erase( fIt2 ); // erase Fx0z or F0yz from fV001
-    } else { // *fIt1 is in fV000 only
-      Fxy0Pos = fIt1; // points to Fxy0
-    }
-  }
-  Fxy0 = *Fxy0Pos;
-  Fxy1 = fV001.front();
-  const SMDS_MeshNode** nn = vTool.GetNodes();
-
-  // find bottom veritices, their order is that a face normal is external
-  vFxy0.resize(4);
-  const int* nid = vTool.GetFaceNodesIndices( Fxy0 );
-  for ( i = 0; i < 4; ++i )
-    if ( nid[ i ] == V000 )
-      break;
-  for ( iN = 0; iN < 4; ++iN, ++i ) {
-    if ( i == 4 ) i = 0;
-    vFxy0[ iN ] = nid[ i ];
-  }
-  // find top veritices, their order is that a face normal is external
-  vFxy1.resize(4);
-  nid = vTool.GetFaceNodesIndices( Fxy1 );
-  for ( i = 0; i < 4; ++i )
-    if ( nid[ i ] == V001 )
-      break;
-  for ( iN = 0; iN < 4; ++iN, ++i ) {
-    if ( i == 4 ) i = 0;
-    vFxy1[ iN ] = nid[ i ];
-  }
-  // find indices of the rest veritices 
-  V100 = vFxy0[3];
-  V010 = vFxy0[1];
-  V110 = vFxy0[2];
-  V101 = vFxy1[1];
-  V011 = vFxy1[3];
-  V111 = vFxy1[2];
-
-  // set points coordinates
-  myPnt[ ID_V000 - 1 ] = gpXYZ( nn[ V000 ] );
-  myPnt[ ID_V100 - 1 ] = gpXYZ( nn[ V100 ] );
-  myPnt[ ID_V010 - 1 ] = gpXYZ( nn[ V010 ] );
-  myPnt[ ID_V110 - 1 ] = gpXYZ( nn[ V110 ] );
-  myPnt[ ID_V001 - 1 ] = gpXYZ( nn[ V001 ] );
-  myPnt[ ID_V101 - 1 ] = gpXYZ( nn[ V101 ] );
-  myPnt[ ID_V011 - 1 ] = gpXYZ( nn[ V011 ] );
-  myPnt[ ID_V111 - 1 ] = gpXYZ( nn[ V111 ] );
-
-  // fill theOrderedNodes
-  theOrderedNodes.resize( 8 );
-  theOrderedNodes[ 0 ] = nn[ V000 ];
-  theOrderedNodes[ 1 ] = nn[ V100 ];
-  theOrderedNodes[ 2 ] = nn[ V010 ];
-  theOrderedNodes[ 3 ] = nn[ V110 ];
-  theOrderedNodes[ 4 ] = nn[ V001 ];
-  theOrderedNodes[ 5 ] = nn[ V101 ];
-  theOrderedNodes[ 6 ] = nn[ V011 ];
-  theOrderedNodes[ 7 ] = nn[ V111 ];
-  
-  // fill edges
-  myEdge[ ID_Ex00 - ID_Ex00 ].myNodes[ 0 ] = myPnt[ ID_V000 - 1 ];
-  myEdge[ ID_Ex00 - ID_Ex00 ].myNodes[ 1 ] = myPnt[ ID_V100 - 1 ];
-
-  myEdge[ ID_Ex10 - ID_Ex00 ].myNodes[ 0 ] = myPnt[ ID_V010 - 1 ];
-  myEdge[ ID_Ex10 - ID_Ex00 ].myNodes[ 1 ] = myPnt[ ID_V110 - 1 ];
-
-  myEdge[ ID_Ex01 - ID_Ex00 ].myNodes[ 0 ] = myPnt[ ID_V001 - 1 ];
-  myEdge[ ID_Ex01 - ID_Ex00 ].myNodes[ 1 ] = myPnt[ ID_V101 - 1 ];
-
-  myEdge[ ID_Ex11 - ID_Ex00 ].myNodes[ 0 ] = myPnt[ ID_V011 - 1 ];
-  myEdge[ ID_Ex11 - ID_Ex00 ].myNodes[ 1 ] = myPnt[ ID_V111 - 1 ];
-
-  myEdge[ ID_E0y0 - ID_Ex00 ].myNodes[ 0 ] = myPnt[ ID_V000 - 1 ];
-  myEdge[ ID_E0y0 - ID_Ex00 ].myNodes[ 1 ] = myPnt[ ID_V010 - 1 ];
-
-  myEdge[ ID_E1y0 - ID_Ex00 ].myNodes[ 0 ] = myPnt[ ID_V100 - 1 ];
-  myEdge[ ID_E1y0 - ID_Ex00 ].myNodes[ 1 ] = myPnt[ ID_V110 - 1 ];
-
-  myEdge[ ID_E0y1 - ID_Ex00 ].myNodes[ 0 ] = myPnt[ ID_V001 - 1 ];
-  myEdge[ ID_E0y1 - ID_Ex00 ].myNodes[ 1 ] = myPnt[ ID_V011 - 1 ];
-
-  myEdge[ ID_E1y1 - ID_Ex00 ].myNodes[ 0 ] = myPnt[ ID_V101 - 1 ];
-  myEdge[ ID_E1y1 - ID_Ex00 ].myNodes[ 1 ] = myPnt[ ID_V111 - 1 ];
-
-  myEdge[ ID_E00z - ID_Ex00 ].myNodes[ 0 ] = myPnt[ ID_V000 - 1 ];
-  myEdge[ ID_E00z - ID_Ex00 ].myNodes[ 1 ] = myPnt[ ID_V001 - 1 ];
-
-  myEdge[ ID_E10z - ID_Ex00 ].myNodes[ 0 ] = myPnt[ ID_V100 - 1 ];
-  myEdge[ ID_E10z - ID_Ex00 ].myNodes[ 1 ] = myPnt[ ID_V101 - 1 ];
-
-  myEdge[ ID_E01z - ID_Ex00 ].myNodes[ 0 ] = myPnt[ ID_V010 - 1 ];
-  myEdge[ ID_E01z - ID_Ex00 ].myNodes[ 1 ] = myPnt[ ID_V011 - 1 ];
-
-  myEdge[ ID_E11z - ID_Ex00 ].myNodes[ 0 ] = myPnt[ ID_V110 - 1 ];
-  myEdge[ ID_E11z - ID_Ex00 ].myNodes[ 1 ] = myPnt[ ID_V111 - 1 ];
-
-  for ( iE = ID_Ex00; iE <= ID_E11z; ++iE )
-    myEdge[ iE - ID_Ex00 ].myCoordInd = GetCoordIndOnEdge( iE );
-
-  // fill faces corners
-  for ( iF = ID_Fxy0; iF < ID_Shell; ++iF )
-  {
-    TFace& tFace = myFace[ iF - ID_Fxy0 ];
-    vector< int > edgeIdVec(4, -1);
-    GetFaceEdgesIDs( iF, edgeIdVec );
-    tFace.myNodes[ 0 ] = myEdge[ edgeIdVec [ 0 ] - ID_Ex00 ].myNodes[ 1 ];
-    tFace.myNodes[ 1 ] = myEdge[ edgeIdVec [ 0 ] - ID_Ex00 ].myNodes[ 0 ];
-    tFace.myNodes[ 2 ] = myEdge[ edgeIdVec [ 1 ] - ID_Ex00 ].myNodes[ 0 ];
-    tFace.myNodes[ 3 ] = myEdge[ edgeIdVec [ 1 ] - ID_Ex00 ].myNodes[ 1 ];
-    tFace.myCoordInd[ 0 ] = GetCoordIndOnEdge( edgeIdVec[ 0 ] );
-    tFace.myCoordInd[ 1 ] = GetCoordIndOnEdge( edgeIdVec[ 1 ] );
-    tFace.myCoordInd[ 2 ] = GetCoordIndOnEdge( edgeIdVec[ 2 ] );
-    tFace.myCoordInd[ 3 ] = GetCoordIndOnEdge( edgeIdVec[ 3 ] );
-  }
-
-  return true;
-}
-
-//=======================================================================
-//function : LoadBlockShapes
-//purpose  : add sub-shapes of theBlock to theShapeIDMap so that they get
-//           IDs acoording to enum TShapeID
-//=======================================================================
-
-bool SMESH_Block::LoadBlockShapes(const TopoDS_Shell&         theShell,
-                                  const TopoDS_Vertex&        theVertex000,
-                                  const TopoDS_Vertex&        theVertex001,
-                                  TopTools_IndexedMapOfOrientedShape& theShapeIDMap )
-{
-  MESSAGE(" ::LoadBlockShapes()");
-
-  myShell = theShell;
-  myNbIterations = 0;
-  mySumDist = 0;
-  myGridComputed = false;
-
-  // 8 vertices
-  TopoDS_Shape V000, V100, V010, V110, V001, V101, V011, V111;
-  // 12 edges
-  TopoDS_Shape Ex00, Ex10, Ex01, Ex11;
-  TopoDS_Shape E0y0, E1y0, E0y1, E1y1;
-  TopoDS_Shape E00z, E10z, E01z, E11z;
-  // 6 faces
-  TopoDS_Shape Fxy0, Fx0z, F0yz, Fxy1, Fx1z, F1yz;
-
-  // nb of faces bound to a vertex in TopTools_IndexedDataMapOfShapeListOfShape
-  // filled by TopExp::MapShapesAndAncestors()
-  const int NB_FACES_BY_VERTEX = 6;
-
-  TopTools_IndexedDataMapOfShapeListOfShape vfMap;
-  TopExp::MapShapesAndAncestors( myShell, TopAbs_VERTEX, TopAbs_FACE, vfMap );
-  if ( vfMap.Extent() != 8 ) {
-    MESSAGE(" Wrong nb of vertices in the block: " << vfMap.Extent() );
-    return false;
-  }
-
-  V000 = theVertex000;
-  V001 = theVertex001;
-
-  if ( V000.IsNull() ) {
-    // find vertex 000 - the one with smallest coordinates
-    double minVal = DBL_MAX, minX, val;
-    for ( int i = 1; i <= 8; i++ ) {
-      const TopoDS_Vertex& v = TopoDS::Vertex( vfMap.FindKey( i ));
-      gp_Pnt P = BRep_Tool::Pnt( v );
-      val = P.X() + P.Y() + P.Z();
-      if ( val < minVal || ( val == minVal && P.X() < minX )) {
-        V000 = v;
-        minVal = val;
-        minX = P.X();
-      }
-    }
-    // find vertex 001 - the one on the most vertical edge passing through V000
-    TopTools_IndexedDataMapOfShapeListOfShape veMap;
-    TopExp::MapShapesAndAncestors( myShell, TopAbs_VERTEX, TopAbs_EDGE, veMap );
-    gp_Vec dir001 = gp::DZ();
-    gp_Pnt p000 = BRep_Tool::Pnt( TopoDS::Vertex( V000 ));
-    double maxVal = -DBL_MAX;
-    TopTools_ListIteratorOfListOfShape eIt ( veMap.FindFromKey( V000 ));
-    for (  ; eIt.More(); eIt.Next() ) {
-      const TopoDS_Edge& e = TopoDS::Edge( eIt.Value() );
-      TopoDS_Vertex v = TopExp::FirstVertex( e );
-      if ( v.IsSame( V000 ))
-        v = TopExp::LastVertex( e );
-      val = dir001 * gp_Vec( p000, BRep_Tool::Pnt( v )).Normalized();
-      if ( val > maxVal ) {
-        V001 = v;
-        maxVal = val;
-      }
-    }
-  }
-
-  // find the bottom (Fxy0), Fx0z and F0yz faces
-
-  const TopTools_ListOfShape& f000List = vfMap.FindFromKey( V000 );
-  const TopTools_ListOfShape& f001List = vfMap.FindFromKey( V001 );
-  if (f000List.Extent() != NB_FACES_BY_VERTEX ||
-      f001List.Extent() != NB_FACES_BY_VERTEX ) {
-    MESSAGE(" LoadBlockShapes() " << f000List.Extent() << " " << f001List.Extent());
-    return false;
-  }
-  TopTools_ListIteratorOfListOfShape f001It, f000It ( f000List );
-  int i, j, iFound1, iFound2;
-  for ( j = 0; f000It.More(); f000It.Next(), j++ )
-  {
-    if ( NB_FACES_BY_VERTEX == 6 && j % 2 ) continue; // each face encounters twice
-    const TopoDS_Shape& F = f000It.Value();
-    for ( i = 0, f001It.Initialize( f001List ); f001It.More(); f001It.Next(), i++ ) {
-      if ( NB_FACES_BY_VERTEX == 6 && i % 2 ) continue; // each face encounters twice
-      if ( F.IsSame( f001It.Value() ))
-        break;
-    }
-    if ( f001It.More() ) // Fx0z or F0yz found
-      if ( Fx0z.IsNull() ) {
-        Fx0z = F;
-        iFound1 = i;
-      } else {
-        F0yz = F;
-        iFound2 = i;
-      }
-    else // F is the bottom face
-      Fxy0 = F;
-  }
-  if ( Fxy0.IsNull() || Fx0z.IsNull() || F0yz.IsNull() ) {
-    MESSAGE( Fxy0.IsNull() <<" "<< Fx0z.IsNull() <<" "<< F0yz.IsNull() );
-    return false;
-  }
-
-  // choose the top face (Fxy1)
-  for ( i = 0, f001It.Initialize( f001List ); f001It.More(); f001It.Next(), i++ ) {
-    if ( NB_FACES_BY_VERTEX == 6 && i % 2 ) continue; // each face encounters twice
-    if ( i != iFound1 && i != iFound2 )
-      break;
-  }
-  Fxy1 = f001It.Value();
-  if ( Fxy1.IsNull() ) {
-    MESSAGE(" LoadBlockShapes() error ");
-    return false;
-  }
-
-  // find bottom edges and veritices
-  list< TopoDS_Edge > eList;
-  list< int >         nbVertexInWires;
-  getOrderedEdges( TopoDS::Face( Fxy0 ), TopoDS::Vertex( V000 ), eList, nbVertexInWires );
-  if ( nbVertexInWires.size() != 1 || nbVertexInWires.front() != 4 ) {
-    MESSAGE(" LoadBlockShapes() error ");
-    return false;
-  }
-  list< TopoDS_Edge >::iterator elIt = eList.begin();
-  for ( i = 0; elIt != eList.end(); elIt++, i++ )
-    switch ( i ) {
-    case 0: E0y0 = *elIt; V010 = TopExp::LastVertex( *elIt, true ); break;
-    case 1: Ex10 = *elIt; V110 = TopExp::LastVertex( *elIt, true ); break;
-    case 2: E1y0 = *elIt; V100 = TopExp::LastVertex( *elIt, true ); break;
-    case 3: Ex00 = *elIt; break;
-    default:;
-    }
-  if ( i != 4 || E0y0.IsNull() || Ex10.IsNull() || E1y0.IsNull() || Ex00.IsNull() ) {
-    MESSAGE(" LoadBlockShapes() error, eList.size()=" << eList.size());
-    return false;
-  }
-
-
-  // find top edges and veritices
-  eList.clear();
-  getOrderedEdges( TopoDS::Face( Fxy1 ), TopoDS::Vertex( V001 ), eList, nbVertexInWires );
-  if ( nbVertexInWires.size() != 1 || nbVertexInWires.front() != 4 ) {
-    MESSAGE(" LoadBlockShapes() error ");
-    return false;
-  }
-  for ( i = 0, elIt = eList.begin(); elIt != eList.end(); elIt++, i++ )
-    switch ( i ) {
-    case 0: Ex01 = *elIt; V101 = TopExp::LastVertex( *elIt, true ); break;
-    case 1: E1y1 = *elIt; V111 = TopExp::LastVertex( *elIt, true ); break;
-    case 2: Ex11 = *elIt; V011 = TopExp::LastVertex( *elIt, true ); break;
-    case 3: E0y1 = *elIt; break;
-    default:;
-    }
-  if ( i != 4 || Ex01.IsNull() || E1y1.IsNull() || Ex11.IsNull() || E0y1.IsNull() ) {
-    MESSAGE(" LoadBlockShapes() error, eList.size()=" << eList.size());
-    return false;
-  }
-
-  // swap Fx0z and F0yz if necessary
-  TopExp_Explorer exp( Fx0z, TopAbs_VERTEX );
-  for ( ; exp.More(); exp.Next() ) // Fx0z shares V101 and V100
-    if ( V101.IsSame( exp.Current() ) || V100.IsSame( exp.Current() ))
-      break; // V101 or V100 found
-  if ( !exp.More() ) { // not found
-    TopoDS_Shape f = Fx0z; Fx0z = F0yz; F0yz = f;
-  }
-
-  // find Fx1z and F1yz faces
-  const TopTools_ListOfShape& f111List = vfMap.FindFromKey( V111 );
-  const TopTools_ListOfShape& f110List = vfMap.FindFromKey( V110 );
-  if (f111List.Extent() != NB_FACES_BY_VERTEX ||
-      f110List.Extent() != NB_FACES_BY_VERTEX ) {
-    MESSAGE(" LoadBlockShapes() " << f111List.Extent() << " " << f110List.Extent());
-    return false;
-  }
-  TopTools_ListIteratorOfListOfShape f111It, f110It ( f110List);
-  for ( j = 0 ; f110It.More(); f110It.Next(), j++ ) {
-    if ( NB_FACES_BY_VERTEX == 6 && j % 2 ) continue; // each face encounters twice
-    const TopoDS_Shape& F = f110It.Value();
-    for ( i = 0, f111It.Initialize( f111List ); f111It.More(); f111It.Next(), i++ ) {
-      if ( NB_FACES_BY_VERTEX == 6 && i % 2 ) continue; // each face encounters twice
-      if ( F.IsSame( f111It.Value() )) { // Fx1z or F1yz found
-        if ( Fx1z.IsNull() )
-          Fx1z = F;
-        else
-          F1yz = F;
-      }
-    }
-  }
-  if ( Fx1z.IsNull() || F1yz.IsNull() ) {
-    MESSAGE(" LoadBlockShapes() error ");
-    return false;
-  }
-
-  // swap Fx1z and F1yz if necessary
-  for ( exp.Init( Fx1z, TopAbs_VERTEX ); exp.More(); exp.Next() )
-    if ( V010.IsSame( exp.Current() ) || V011.IsSame( exp.Current() ))
-      break;
-  if ( !exp.More() ) {
-    TopoDS_Shape f = Fx1z; Fx1z = F1yz; F1yz = f;
-  }
-
-  // find vertical edges
-  for ( exp.Init( Fx0z, TopAbs_EDGE ); exp.More(); exp.Next() ) {
-    const TopoDS_Edge& edge = TopoDS::Edge( exp.Current() );
-    const TopoDS_Shape& vFirst = TopExp::FirstVertex( edge, true );
-    if ( vFirst.IsSame( V001 ))
-      E00z = edge;
-    else if ( vFirst.IsSame( V100 ))
-      E10z = edge;
-  }
-  if ( E00z.IsNull() || E10z.IsNull() ) {
-    MESSAGE(" LoadBlockShapes() error ");
-    return false;
-  }
-  for ( exp.Init( Fx1z, TopAbs_EDGE ); exp.More(); exp.Next() ) {
-    const TopoDS_Edge& edge = TopoDS::Edge( exp.Current() );
-    const TopoDS_Shape& vFirst = TopExp::FirstVertex( edge, true );
-    if ( vFirst.IsSame( V111 ))
-      E11z = edge;
-    else if ( vFirst.IsSame( V010 ))
-      E01z = edge;
-  }
-  if ( E01z.IsNull() || E11z.IsNull() ) {
-    MESSAGE(" LoadBlockShapes() error ");
-    return false;
-  }
-
-  // load shapes in theShapeIDMap
-
-  theShapeIDMap.Clear();
-  
-  theShapeIDMap.Add(V000.Oriented( TopAbs_FORWARD ));
-  theShapeIDMap.Add(V100.Oriented( TopAbs_FORWARD ));
-  theShapeIDMap.Add(V010.Oriented( TopAbs_FORWARD ));
-  theShapeIDMap.Add(V110.Oriented( TopAbs_FORWARD ));
-  theShapeIDMap.Add(V001.Oriented( TopAbs_FORWARD ));
-  theShapeIDMap.Add(V101.Oriented( TopAbs_FORWARD ));
-  theShapeIDMap.Add(V011.Oriented( TopAbs_FORWARD ));
-  theShapeIDMap.Add(V111.Oriented( TopAbs_FORWARD ));
-
-  theShapeIDMap.Add(Ex00);
-  theShapeIDMap.Add(Ex10);
-  theShapeIDMap.Add(Ex01);
-  theShapeIDMap.Add(Ex11);
-
-  theShapeIDMap.Add(E0y0);
-  theShapeIDMap.Add(E1y0);
-  theShapeIDMap.Add(E0y1);
-  theShapeIDMap.Add(E1y1);
-
-  theShapeIDMap.Add(E00z);
-  theShapeIDMap.Add(E10z);
-  theShapeIDMap.Add(E01z);
-  theShapeIDMap.Add(E11z);
-
-  theShapeIDMap.Add(Fxy0);
-  theShapeIDMap.Add(Fxy1);
-  theShapeIDMap.Add(Fx0z);
-  theShapeIDMap.Add(Fx1z);
-  theShapeIDMap.Add(F0yz);
-  theShapeIDMap.Add(F1yz);
-  
-  theShapeIDMap.Add(myShell);
-
-  if ( theShapeIDMap.Extent() != 27 ) {
-    MESSAGE("LoadBlockShapes() " << theShapeIDMap.Extent() );
-    return false;
-  }
-
-  // store shapes geometry
-  for ( int shapeID = 1; shapeID < theShapeIDMap.Extent(); shapeID++ )
-  {
-    const TopoDS_Shape& S = theShapeIDMap( shapeID );
-    switch ( S.ShapeType() )
-    {
-    case TopAbs_VERTEX: {
-
-      if ( shapeID > ID_V111 ) {
-        MESSAGE(" shapeID =" << shapeID );
-        return false;
-      }
-      myPnt[ shapeID - ID_V000 ] =
-        BRep_Tool::Pnt( TopoDS::Vertex( S )).XYZ();
-      break;
-    }
-    case TopAbs_EDGE: {
-
-      const TopoDS_Edge& edge = TopoDS::Edge( S );
-      if ( shapeID < ID_Ex00 || shapeID > ID_E11z || edge.IsNull() ) {
-        MESSAGE(" shapeID =" << shapeID );
-        return false;
-      }
-      TEdge& tEdge = myEdge[ shapeID - ID_Ex00 ];
-      tEdge.myCoordInd = GetCoordIndOnEdge( shapeID );
-      TopLoc_Location loc;
-      tEdge.myC3d = BRep_Tool::Curve( edge, loc, tEdge.myFirst, tEdge.myLast );
-      if ( !IsForwardEdge( edge, theShapeIDMap ))
-        Swap( tEdge.myFirst, tEdge.myLast );
-      tEdge.myTrsf = loc;
-      break;
-    }
-    case TopAbs_FACE: {
-
-      const TopoDS_Face& face = TopoDS::Face( S );
-      if ( shapeID < ID_Fxy0 || shapeID > ID_F1yz || face.IsNull() ) {
-        MESSAGE(" shapeID =" << shapeID );
-        return false;
-      }
-      TFace& tFace = myFace[ shapeID - ID_Fxy0 ];
-      // pcurves
-      vector< int > edgeIdVec(4, -1);
-      GetFaceEdgesIDs( shapeID, edgeIdVec );
-      for ( int iE = 0; iE < 4; iE++ ) // loop on 4 edges
-      {
-        const TopoDS_Edge& edge = TopoDS::Edge( theShapeIDMap( edgeIdVec[ iE ]));
-        tFace.myCoordInd[ iE ] = GetCoordIndOnEdge( edgeIdVec[ iE ] );
-        tFace.myC2d[ iE ] =
-          BRep_Tool::CurveOnSurface( edge, face, tFace.myFirst[iE], tFace.myLast[iE] );
-        if ( !IsForwardEdge( edge, theShapeIDMap ))
-          Swap( tFace.myFirst[ iE ], tFace.myLast[ iE ] );
-      }
-      // 2d corners
-      tFace.myCorner[ 0 ] = tFace.myC2d[ 0 ]->Value( tFace.myFirst[0] ).XY();
-      tFace.myCorner[ 1 ] = tFace.myC2d[ 0 ]->Value( tFace.myLast[0] ).XY();
-      tFace.myCorner[ 2 ] = tFace.myC2d[ 1 ]->Value( tFace.myLast[1] ).XY();
-      tFace.myCorner[ 3 ] = tFace.myC2d[ 1 ]->Value( tFace.myFirst[1] ).XY();
-      // sufrace
-      TopLoc_Location loc;
-      tFace.myS = BRep_Tool::Surface( face, loc );
-      tFace.myTrsf = loc;
-      break;
-    }
-    default: break;
-    }
-  } // loop on shapes in theShapeIDMap
-
-  return true;
-}
-
-//=======================================================================
-//function : GetFaceEdgesIDs
-//purpose  : return edges IDs in the order u0, u1, 0v, 1v
-//           u0 means "|| u, v == 0"
-//=======================================================================
-
-void SMESH_Block::GetFaceEdgesIDs (const int faceID, vector< int >& edgeVec )
-{
-  edgeVec.resize( 4 );
-  switch ( faceID ) {
-  case ID_Fxy0:
-    edgeVec[ 0 ] = ID_Ex00;
-    edgeVec[ 1 ] = ID_Ex10;
-    edgeVec[ 2 ] = ID_E0y0;
-    edgeVec[ 3 ] = ID_E1y0;
-    break;
-  case ID_Fxy1:
-    edgeVec[ 0 ] = ID_Ex01;
-    edgeVec[ 1 ] = ID_Ex11;
-    edgeVec[ 2 ] = ID_E0y1;
-    edgeVec[ 3 ] = ID_E1y1;
-    break;
-  case ID_Fx0z:
-    edgeVec[ 0 ] = ID_Ex00;
-    edgeVec[ 1 ] = ID_Ex01;
-    edgeVec[ 2 ] = ID_E00z;
-    edgeVec[ 3 ] = ID_E10z;
-    break;
-  case ID_Fx1z:
-    edgeVec[ 0 ] = ID_Ex10;
-    edgeVec[ 1 ] = ID_Ex11;
-    edgeVec[ 2 ] = ID_E01z;
-    edgeVec[ 3 ] = ID_E11z;
-    break;
-  case ID_F0yz:
-    edgeVec[ 0 ] = ID_E0y0;
-    edgeVec[ 1 ] = ID_E0y1;
-    edgeVec[ 2 ] = ID_E00z;
-    edgeVec[ 3 ] = ID_E01z;
-    break;
-  case ID_F1yz:
-    edgeVec[ 0 ] = ID_E1y0;
-    edgeVec[ 1 ] = ID_E1y1;
-    edgeVec[ 2 ] = ID_E10z;
-    edgeVec[ 3 ] = ID_E11z;
-    break;
-  default:
-    MESSAGE(" GetFaceEdgesIDs(), wrong face ID: " << faceID );
-  }
-}
-
-//=======================================================================
-//function : GetEdgeVertexIDs
-//purpose  : return vertex IDs of an edge
-//=======================================================================
-
-void SMESH_Block::GetEdgeVertexIDs (const int edgeID, vector< int >& vertexVec )
-{
-  vertexVec.resize( 2 );
-  switch ( edgeID ) {
-
-  case ID_Ex00:
-    vertexVec[ 0 ] = ID_V000;
-    vertexVec[ 1 ] = ID_V100;
-    break;
-  case ID_Ex10:
-    vertexVec[ 0 ] = ID_V010;
-    vertexVec[ 1 ] = ID_V110;
-    break;
-  case ID_Ex01:
-    vertexVec[ 0 ] = ID_V001;
-    vertexVec[ 1 ] = ID_V101;
-    break;
-  case ID_Ex11:
-    vertexVec[ 0 ] = ID_V011;
-    vertexVec[ 1 ] = ID_V111;
-    break;
-
-  case ID_E0y0:
-    vertexVec[ 0 ] = ID_V000;
-    vertexVec[ 1 ] = ID_V010;
-    break;
-  case ID_E1y0:
-    vertexVec[ 0 ] = ID_V100;
-    vertexVec[ 1 ] = ID_V110;
-    break;
-  case ID_E0y1:
-    vertexVec[ 0 ] = ID_V001;
-    vertexVec[ 1 ] = ID_V011;
-    break;
-  case ID_E1y1:
-    vertexVec[ 0 ] = ID_V101;
-    vertexVec[ 1 ] = ID_V111;
-    break;
-
-  case ID_E00z:
-    vertexVec[ 0 ] = ID_V000;
-    vertexVec[ 1 ] = ID_V001;
-    break;
-  case ID_E10z:
-    vertexVec[ 0 ] = ID_V100;
-    vertexVec[ 1 ] = ID_V101;
-    break;
-  case ID_E01z:
-    vertexVec[ 0 ] = ID_V010;
-    vertexVec[ 1 ] = ID_V011;
-    break;
-  case ID_E11z:
-    vertexVec[ 0 ] = ID_V110;
-    vertexVec[ 1 ] = ID_V111;
-    break;
-  default:
-    MESSAGE(" GetEdgeVertexIDs(), wrong edge ID: " << edgeID );
-  }
-}
-
diff --git a/src/SMESH/SMESH_Block.hxx b/src/SMESH/SMESH_Block.hxx
deleted file mode 100644 (file)
index 1551048..0000000
+++ /dev/null
@@ -1,275 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-// File      : SMESH_Block.hxx
-// Created   : Tue Nov 30 12:42:18 2004
-// Author    : Edward AGAPOV (eap)
-
-
-#ifndef SMESH_Block_HeaderFile
-#define SMESH_Block_HeaderFile
-
-#include <Geom2d_Curve.hxx>
-#include <Geom_Curve.hxx>
-#include <Geom_Surface.hxx>
-#include <TopExp.hxx>
-#include <TopTools_IndexedMapOfOrientedShape.hxx>
-#include <TopoDS_Edge.hxx>
-#include <TopoDS_Shell.hxx>
-#include <TopoDS_Vertex.hxx>
-#include <gp_Pnt.hxx>
-#include <gp_Trsf.hxx>
-#include <gp_XY.hxx>
-#include <gp_XYZ.hxx>
-#include <math_FunctionSetWithDerivatives.hxx>
-#include <math_Matrix.hxx>
-#include <math_Vector.hxx>
-
-#include <ostream>
-#include <vector>
-
-class SMDS_MeshVolume;
-class SMDS_MeshNode;
-
-// =========================================================
-// class calculating coordinates of 3D points by normalized
-// parameters inside the block and vice versa
-// =========================================================
-
-class SMESH_Block: public math_FunctionSetWithDerivatives
-{
- public:
-  enum TShapeID { // ids of the block sub-shapes
-    ID_NONE = 0,
-
-    ID_V000 = 1, ID_V100, ID_V010, ID_V110, ID_V001, ID_V101, ID_V011, ID_V111,
-
-    ID_Ex00, ID_Ex10, ID_Ex01, ID_Ex11,
-    ID_E0y0, ID_E1y0, ID_E0y1, ID_E1y1,
-    ID_E00z, ID_E10z, ID_E01z, ID_E11z,
-
-    ID_Fxy0, ID_Fxy1, ID_Fx0z, ID_Fx1z, ID_F0yz, ID_F1yz,
-
-    ID_Shell
-    };
-
-
- public: // methods about ids of the block sub-shapes
-
-  static int NbVertices()  { return  8; }
-  static int NbEdges()     { return 12; }
-  static int NbFaces()     { return  6; }
-  static int NbSubShapes() { return ID_Shell; }
-  // to avoid magic numbers when allocating memory for subshapes
-
-  static inline bool IsVertexID( int theShapeID )
-  { return ( theShapeID >= ID_V000 && theShapeID <= ID_V111 ); }
-
-  static inline bool IsEdgeID( int theShapeID )
-  { return ( theShapeID >= ID_Ex00 && theShapeID <= ID_E11z ); }
-
-  static inline bool IsFaceID( int theShapeID )
-  { return ( theShapeID >= ID_Fxy0 && theShapeID <= ID_F1yz ); }
-
-  static int ShapeIndex( int theShapeID )
-  {
-    if ( IsVertexID( theShapeID )) return theShapeID - ID_V000;
-    if ( IsEdgeID( theShapeID ))   return theShapeID - ID_Ex00;
-    if ( IsFaceID( theShapeID ))   return theShapeID - ID_Fxy0;
-    return 0;
-  }
-  // return index [0-...] for each type of sub-shapes,
-  // for example :
-  // ShapeIndex( ID_Ex00 ) == 0
-  // ShapeIndex( ID_Ex10 ) == 1
-
-  static void GetFaceEdgesIDs (const int faceID, vector< int >& edgeVec );
-  // return edges IDs of a face in the order u0, u1, 0v, 1v
-
-  static void GetEdgeVertexIDs (const int edgeID, vector< int >& vertexVec );
-  // return vertex IDs of an edge
-
-  static int GetCoordIndOnEdge (const int theEdgeID)
-  { return (theEdgeID < ID_E0y0) ? 1 : (theEdgeID < ID_E00z) ? 2 : 3; }
-  // return an index of a coordinate which varies along the edge
-
-  static double* GetShapeCoef (const int theShapeID);
-  // for theShapeID( TShapeID ), returns 3 coefficients used
-  // to compute an addition of an on-theShape point to coordinates
-  // of an in-shell point. If an in-shell point has parameters (Px,Py,Pz),
-  // then the addition of a point P is computed as P*kx*ky*kz and ki is
-  // defined by the returned coef like this:
-  // ki = (coef[i] == 0) ? 1 : (coef[i] < 0) ? 1 - Pi : Pi
-
-  static int GetShapeIDByParams ( const gp_XYZ& theParams );
-  // define an id of the block sub-shape by point parameters
-
-  static ostream& DumpShapeID (const int theBlockShapeID, ostream& stream);
-  // DEBUG: dump an id of a block sub-shape
-
-
- public: // initialization
-
-  SMESH_Block (): myNbIterations(0), mySumDist(0.) {}
-
-  bool LoadBlockShapes(const TopoDS_Shell&         theShell,
-                       const TopoDS_Vertex&        theVertex000,
-                       const TopoDS_Vertex&        theVertex001,
-                       TopTools_IndexedMapOfOrientedShape& theShapeIDMap );
-  // add sub-shapes of theBlock to theShapeIDMap so that they get
-  // IDs acoording to enum TShapeID
-
-  bool LoadMeshBlock(const SMDS_MeshVolume*        theVolume,
-                     const int                     theNode000Index,
-                     const int                     theNode001Index,
-                     vector<const SMDS_MeshNode*>& theOrderedNodes);
-  // prepare to work with theVolume and
-  // return nodes in the order of TShapeID enum
-
-
- public: // define coordinates by parameters
-
-  bool VertexPoint( const int theVertexID, gp_XYZ& thePoint ) const {
-    if ( !IsVertexID( theVertexID ))           return false;
-    thePoint = myPnt[ theVertexID - ID_V000 ]; return true;
-  }
-  // return vertex coordinates, parameters are defined by theVertexID
-
-  bool EdgePoint( const int theEdgeID, const gp_XYZ& theParams, gp_XYZ& thePoint ) const {
-    if ( !IsEdgeID( theEdgeID ))                                 return false;
-    thePoint = myEdge[ theEdgeID - ID_Ex00 ].Point( theParams ); return true;
-  }
-  // return coordinates of a point on edge
-
-  bool FacePoint( const int theFaceID, const gp_XYZ& theParams, gp_XYZ& thePoint ) const {
-    if ( !IsFaceID ( theFaceID ))                                return false;
-    thePoint = myFace[ theFaceID - ID_Fxy0 ].Point( theParams ); return true;
-  }
-  // return coordinates of a point on face
-
-  bool ShellPoint( const gp_XYZ& theParams, gp_XYZ& thePoint ) const;
-  // return coordinates of a point in shell
-
-  static bool ShellPoint(const gp_XYZ&         theParams,
-                         const vector<gp_XYZ>& thePointOnShape,
-                         gp_XYZ&               thePoint );
-  // computes coordinates of a point in shell by points on sub-shapes;
-  // thePointOnShape[ subShapeID ] must be a point on a subShape;
-  // thePointOnShape.size() == ID_Shell, thePointOnShape[0] not used
-
-
- public: // define parameters by coordinates
-
-  bool ComputeParameters (const gp_Pnt& thePoint,
-                          gp_XYZ&       theParams,
-                          const int     theShapeID = ID_Shell);
-  // compute point parameters in the block.
-  // Note: for edges, it is better to use EdgeParameters()
-
-  bool VertexParameters(const int theVertexID, gp_XYZ& theParams);
-  // return parameters of a vertex given by TShapeID
-
-  bool EdgeParameters(const int theEdgeID, const double theU, gp_XYZ& theParams);
-  // return parameters of a point given by theU on edge
-
-
- public: // services
-
-  static bool IsForwardEdge (const TopoDS_Edge &                 theEdge,
-                             TopTools_IndexedMapOfOrientedShape& theShapeIDMap) {
-    int v1ID = theShapeIDMap.FindIndex( TopExp::FirstVertex( theEdge ).Oriented( TopAbs_FORWARD ));
-    int v2ID = theShapeIDMap.FindIndex( TopExp::LastVertex( theEdge ).Oriented( TopAbs_FORWARD ));
-    return ( v1ID < v2ID );
-  }
-  // Return true if an in-block parameter increases along theEdge curve
-
-  static void Swap(double& a, double& b) { double tmp = a; a = b; b = tmp; }
-
-
- public:
-  // methods of math_FunctionSetWithDerivatives used internally
-  // to define parameters by coordinates
-  Standard_Integer NbVariables() const;
-  Standard_Integer NbEquations() const;
-  Standard_Boolean Value(const math_Vector& X,math_Vector& F) ;
-  Standard_Boolean Derivatives(const math_Vector& X,math_Matrix& D) ;
-  Standard_Boolean Values(const math_Vector& X,math_Vector& F,math_Matrix& D) ;
-  Standard_Integer GetStateNumber ();
-
- private:
-
-  struct TEdge {
-    int                myCoordInd;
-    double             myFirst;
-    double             myLast;
-    Handle(Geom_Curve) myC3d;
-    gp_Trsf            myTrsf;
-    double GetU( const gp_XYZ& theParams ) const;
-    gp_XYZ Point( const gp_XYZ& theParams ) const;
-    // if mesh volume
-    gp_XYZ             myNodes[2];
-  };
-
-  struct TFace {
-    // 4 edges in the order u0, u1, 0v, 1v
-    int                  myCoordInd[ 4 ];
-    double               myFirst   [ 4 ];
-    double               myLast    [ 4 ];
-    Handle(Geom2d_Curve) myC2d     [ 4 ];
-    // 4 corner points in the order 00, 10, 11, 01
-    gp_XY                myCorner  [ 4 ];
-    // surface
-    Handle(Geom_Surface) myS;
-    gp_Trsf              myTrsf;
-    gp_XY  GetUV( const gp_XYZ& theParams ) const;
-    gp_XYZ Point( const gp_XYZ& theParams ) const;
-    int GetUInd() const { return myCoordInd[ 0 ]; }
-    int GetVInd() const { return myCoordInd[ 2 ]; }
-    void GetCoefs( int i, const gp_XYZ& theParams, double& eCoef, double& vCoef ) const;
-    // if mesh volume
-    gp_XYZ               myNodes[4];
-  };
-
-  TopoDS_Shell myShell;
-  // geometry in the order as in TShapeID:
-  // 8 vertices
-  gp_XYZ myPnt[ 8 ];
-  // 12 edges
-  TEdge  myEdge[ 12 ];
-  // 6 faces
-  TFace  myFace[ 6 ];
-
-  // for param computation
-
-  int      myFaceIndex;
-  double   myFaceParam;
-  int      myNbIterations;
-  double   mySumDist;
-
-  gp_XYZ   myPoint; // the given point
-  gp_XYZ   myParam; // the best parameters guess
-  double   myValues[ 4 ]; // values computed at myParam
-
-  typedef pair<gp_XYZ,gp_XYZ> TxyzPair;
-  TxyzPair my3x3x3GridNodes[ 27 ];
-  bool     myGridComputed;
-};
-
-
-#endif
diff --git a/src/SMESH/SMESH_Gen.cxx b/src/SMESH/SMESH_Gen.cxx
deleted file mode 100644 (file)
index 7a3c34a..0000000
+++ /dev/null
@@ -1,721 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESH_Gen.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#include "SMESH_Gen.hxx"
-#include "SMESH_subMesh.hxx"
-#include "SMESH_HypoFilter.hxx"
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-
-#include "utilities.h"
-#include "OpUtil.hxx"
-#include "Utils_ExceptHandlers.hxx"
-
-#include <gp_Pnt.hxx>
-#include <BRep_Tool.hxx>
-#include <TopTools_ListOfShape.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-
-using namespace std;
-
-//=============================================================================
-/*!
- *  default constructor:
- */
-//=============================================================================
-
-SMESH_Gen::SMESH_Gen()
-{
-       MESSAGE("SMESH_Gen::SMESH_Gen");
-       _localId = 0;
-       _hypId = 0;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-SMESH_Gen::~SMESH_Gen()
-{
-       MESSAGE("SMESH_Gen::~SMESH_Gen");
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-/*SMESH_Hypothesis *SMESH_Gen::CreateHypothesis(const char *anHyp, int studyId)
-       throw(SALOME_Exception)
-{
-
-       MESSAGE("CreateHypothesis("<<anHyp<<","<<studyId<<")");
-       // Get studyContext, create it if it does'nt exist, with a SMESHDS_Document
-
-       StudyContextStruct *myStudyContext = GetStudyContext(studyId);
-
-       // create a new hypothesis object, store its ref. in studyContext
-
-       SMESH_Hypothesis *myHypothesis = _hypothesisFactory.Create(anHyp, studyId);
-       int hypId = myHypothesis->GetID();
-       myStudyContext->mapHypothesis[hypId] = myHypothesis;
-       SCRUTE(studyId);
-       SCRUTE(hypId);
-
-       // store hypothesis in SMESHDS document
-
-       myStudyContext->myDocument->AddHypothesis(myHypothesis);
-       return myHypothesis;
-}*/
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-SMESH_Mesh* SMESH_Gen::CreateMesh(int studyId)
-throw(SALOME_Exception)
-{
-        Unexpect aCatch(SalomeException);
-       MESSAGE("SMESH_Gen::CreateMesh");
-//   if (aShape.ShapeType() == TopAbs_COMPOUND)
-//     {
-//       INFOS("Mesh Compound not yet implemented!");
-//       throw(SALOME_Exception(LOCALIZED("Mesh Compound not yet implemented!")));
-//     }
-
-       // Get studyContext, create it if it does'nt exist, with a SMESHDS_Document
-
-       StudyContextStruct *myStudyContext = GetStudyContext(studyId);
-
-       // create a new SMESH_mesh object
-
-       SMESH_Mesh *mesh = new SMESH_Mesh(_localId++,
-               studyId,
-               this,
-               myStudyContext->myDocument);
-       myStudyContext->mapMesh[_localId] = mesh;
-
-       // associate a TopoDS_Shape to the mesh
-
-//mesh->ShapeToMesh(aShape);
-       return mesh;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-bool SMESH_Gen::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
-{
-  MESSAGE("SMESH_Gen::Compute");
-  //   bool isDone = false;
-  /*
-     Algo : s'appuie ou non sur une geometrie
-     Si geometrie:
-     Vertex : rien Ã  faire (range le point)
-     Edge, Wire, collection d'edge et wire : 1D
-     Face, Shell, collection de Face et Shells : 2D
-     Solid, Collection de Solid : 3D
-     */
-  // *** corriger commentaires
-  // check hypothesis associated to the mesh :
-  // - only one algo : type compatible with the type of the shape
-  // - hypothesis = compatible with algo
-  //    - check if hypothesis are applicable to this algo
-  //    - check contradictions within hypothesis
-  //    (test if enough hypothesis is done further)
-
-  bool ret = true;
-
-//   if ( !CheckAlgoState( aMesh, aShape ))
-//   {
-//     INFOS( "ABORT MESHING: some algos or hypothesis are missing");
-//     return false;
-//   }
-
-  SMESH_subMesh *sm = aMesh.GetSubMesh(aShape);
-
-  if ( sm->GetComputeState() == SMESH_subMesh::COMPUTE_OK )
-    return true; // already computed
-
-  // -----------------------------------------------------------------
-  // apply algos that do not require descretized boundaries, starting
-  // from the most complex shapes
-  // -----------------------------------------------------------------
-
-  // map containing all subshapes in the order: vertices, edges, faces...
-  const map<int, SMESH_subMesh*>& smMap = sm->DependsOn();
-  map<int, SMESH_subMesh*>::const_reverse_iterator revItSub = smMap.rbegin();
-
-  SMESH_subMesh* smToCompute = sm;
-  while ( smToCompute )
-  {
-    const TopoDS_Shape& aSubShape = smToCompute->GetSubShape();
-    if ( GetShapeDim( aSubShape ) < 1 ) break;
-
-    SMESH_Algo* algo = GetAlgo( aMesh, aSubShape );
-    if (algo && !algo->NeedDescretBoundary()) {
-      if (smToCompute->GetComputeState() == SMESH_subMesh::READY_TO_COMPUTE) {
-        ret = smToCompute->ComputeStateEngine( SMESH_subMesh::COMPUTE );
-      } else if (smToCompute->GetComputeState() == SMESH_subMesh::FAILED_TO_COMPUTE) {
-        // JFA for PAL6524
-        ret = false;
-      } else {
-      }
-    }
-    if (!ret)
-      return false;
-
-    // next subMesh
-    if (revItSub != smMap.rend())
-    {
-      smToCompute = (*revItSub).second;
-      revItSub++;
-    }
-    else
-      smToCompute = 0;
-  }
-
-  // -----------------------------------------------
-  // mesh the rest subshapes starting from vertices
-  // -----------------------------------------------
-
-  int i, nbSub = smMap.size();
-  map<int, SMESH_subMesh*>::const_iterator itSub = smMap.begin();
-  for ( i = 0; i <= nbSub; ++i ) // loop on the whole map plus <sm>
-  {
-    if ( itSub == smMap.end() )
-      smToCompute = sm;
-    else
-      smToCompute = (itSub++)->second;
-    if (smToCompute->GetComputeState() != SMESH_subMesh::READY_TO_COMPUTE) {
-      if (smToCompute->GetComputeState() == SMESH_subMesh::FAILED_TO_COMPUTE)
-        ret = false;
-      continue;
-    }
-    TopoDS_Shape subShape = smToCompute->GetSubShape();
-    if ( subShape.ShapeType() != TopAbs_VERTEX )
-    {
-      if ( !smToCompute->ComputeStateEngine(SMESH_subMesh::COMPUTE) )
-        ret = false;
-    }
-    else
-    {
-      TopoDS_Vertex V1 = TopoDS::Vertex(subShape);
-      gp_Pnt P1 = BRep_Tool::Pnt(V1);
-      SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
-      SMDS_MeshNode * node = meshDS->AddNode(P1.X(), P1.Y(), P1.Z());
-      if ( node ) {  // san - increase robustness
-        meshDS->SetNodeOnVertex(node, V1);
-        smToCompute->ComputeStateEngine(SMESH_subMesh::COMPUTE);
-      }
-    }
-  }
-
-  MESSAGE( "VSR - SMESH_Gen::Compute() finished, OK = " << ret);
-  return ret;
-}
-
-
-//=======================================================================
-//function : checkConformIgnoredAlgos
-//purpose  :
-//=======================================================================
-
-static bool checkConformIgnoredAlgos(SMESH_Mesh&               aMesh,
-                                     SMESH_subMesh*            aSubMesh,
-                                     const SMESH_Algo*         aGlobIgnoAlgo,
-                                     const SMESH_Algo*         aLocIgnoAlgo,
-                                     bool &                    checkConform,
-                                     map<int, SMESH_subMesh*>& aCheckedMap)
-{
-  ASSERT( aSubMesh );
-  if ( aSubMesh->GetSubShape().ShapeType() == TopAbs_VERTEX)
-    return true;
-
-
-  bool ret = true;
-
-  const list<const SMESHDS_Hypothesis*>& listHyp =
-    aMesh.GetMeshDS()->GetHypothesis( aSubMesh->GetSubShape() );
-  list<const SMESHDS_Hypothesis*>::const_iterator it=listHyp.begin();
-  for ( ; it != listHyp.end(); it++)
-  {
-    const SMESHDS_Hypothesis * aHyp = *it;
-    if (aHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO)
-      continue;
-
-    const SMESH_Algo* algo = dynamic_cast<const SMESH_Algo*> (aHyp);
-    ASSERT ( algo );
-
-    if ( aLocIgnoAlgo ) // algo is hidden by a local algo of upper dim
-    {
-      INFOS( "Local <" << algo->GetName() << "> is hidden by local <"
-            << aLocIgnoAlgo->GetName() << ">");
-    }
-    else
-    {
-      bool isGlobal = (aMesh.IsMainShape( aSubMesh->GetSubShape() ));
-      int dim = algo->GetDim();
-      int aMaxGlobIgnoDim = ( aGlobIgnoAlgo ? aGlobIgnoAlgo->GetDim() : -1 );
-
-      if ( dim < aMaxGlobIgnoDim )
-      {
-        // algo is hidden by a global algo
-        INFOS( ( isGlobal ? "Global" : "Local" )
-              << " <" << algo->GetName() << "> is hidden by global <"
-              << aGlobIgnoAlgo->GetName() << ">");
-      }
-      else if ( !algo->NeedDescretBoundary() && !isGlobal)
-      {
-        // local algo is not hidden and hides algos on sub-shapes
-        if (checkConform && !aSubMesh->IsConform( algo ))
-        {
-          ret = false;
-          checkConform = false; // no more check conformity
-          INFOS( "ERROR: Local <" << algo->GetName() <<
-                "> would produce not conform mesh: "
-                "<Not Conform Mesh Allowed> hypotesis is missing");
-        }
-
-        // sub-algos will be hidden by a local <algo>
-        const map<int, SMESH_subMesh*>& smMap = aSubMesh->DependsOn();
-        map<int, SMESH_subMesh*>::const_reverse_iterator revItSub;
-        bool checkConform2 = false;
-          for ( revItSub = smMap.rbegin(); revItSub != smMap.rend(); revItSub++)
-        {
-          checkConformIgnoredAlgos (aMesh, (*revItSub).second, aGlobIgnoAlgo,
-                                    algo, checkConform2, aCheckedMap);
-          int key = (*revItSub).first;
-         SMESH_subMesh* sm = (*revItSub).second;
-          if ( aCheckedMap.find( key ) == aCheckedMap.end() )
-          {
-            aCheckedMap[ key ] = sm;
-          }
-        }
-      }
-    }
-  }
-
-  return ret;
-}
-
-//=======================================================================
-//function : checkMissing
-//purpose  : notify on missing hypothesis
-//           Return false if algo or hipothesis is missing
-//=======================================================================
-
-static bool checkMissing(SMESH_Gen*                aGen,
-                         SMESH_Mesh&               aMesh,
-                         SMESH_subMesh*            aSubMesh,
-                         const int                 aTopAlgoDim,
-                         bool*                     globalChecked,
-                         const bool                checkNoAlgo,
-                         map<int, SMESH_subMesh*>& aCheckedMap)
-{
-  if ( aSubMesh->GetSubShape().ShapeType() == TopAbs_VERTEX)
-    return true;
-
-  //MESSAGE("=====checkMissing");
-
-  int ret = true;
-  SMESH_Algo* algo = 0;
-
-  switch (aSubMesh->GetAlgoState())
-  {
-  case SMESH_subMesh::NO_ALGO: {
-    if (checkNoAlgo)
-    {
-      // should there be any algo?
-      int shapeDim = SMESH_Gen::GetShapeDim( aSubMesh->GetSubShape() );
-      if (aTopAlgoDim > shapeDim)
-      {
-        INFOS( "ERROR: " << shapeDim << "D algorithm is missing" );
-        ret = false;
-      }
-    }
-    return ret;
-  }
-  case SMESH_subMesh::MISSING_HYP: {
-    // notify if an algo missing hyp is attached to aSubMesh
-    algo = aGen->GetAlgo( aMesh, aSubMesh->GetSubShape() );
-    ASSERT( algo );
-    bool IsGlobalHypothesis = aGen->IsGlobalHypothesis( algo, aMesh );
-    if (!IsGlobalHypothesis || !globalChecked[ algo->GetDim() ])
-    {
-      INFOS( "ERROR: " << (IsGlobalHypothesis ? "Global " : "Local ")
-            << "<" << algo->GetName() << "> misses some hypothesis");
-      if (IsGlobalHypothesis)
-        globalChecked[ algo->GetDim() ] = true;
-    }
-    ret = false;
-    break;
-  }
-  case SMESH_subMesh::HYP_OK:
-    algo = aGen->GetAlgo( aMesh, aSubMesh->GetSubShape() );
-    ret = true;
-    break;
-  default: ASSERT(0);
-  }
-
-  // do not check under algo that hides sub-algos or
-  // re-start checking NO_ALGO state
-  ASSERT (algo);
-  bool isTopLocalAlgo =
-    ( aTopAlgoDim <= algo->GetDim() && !aGen->IsGlobalHypothesis( algo, aMesh ));
-  if (!algo->NeedDescretBoundary() || isTopLocalAlgo)
-  {
-    bool checkNoAlgo2 = ( algo->NeedDescretBoundary() );
-    const map<int, SMESH_subMesh*>& subMeshes = aSubMesh->DependsOn();
-    map<int, SMESH_subMesh*>::const_iterator itsub;
-    for (itsub = subMeshes.begin(); itsub != subMeshes.end(); itsub++)
-    {
-      // sub-meshes should not be checked further more
-      int key = (*itsub).first;
-      SMESH_subMesh* sm = (*itsub).second;
-      if ( aCheckedMap.find( key ) == aCheckedMap.end() )
-        aCheckedMap[ key ] = sm;
-
-      if (isTopLocalAlgo)
-      {
-        //check algo on sub-meshes
-        int aTopAlgoDim2 = algo->GetDim();
-        if (!checkMissing (aGen, aMesh, sm, aTopAlgoDim2,
-                           globalChecked, checkNoAlgo2, aCheckedMap))
-        {
-          ret = false;
-          if (sm->GetAlgoState() == SMESH_subMesh::NO_ALGO )
-            checkNoAlgo2 = false;
-        }
-      }
-    }
-  }
-  return ret;
-}
-
-//=======================================================================
-//function : CheckAlgoState
-//purpose  : notify on bad state of attached algos, return false
-//           if Compute() would fail because of some algo bad state
-//=======================================================================
-
-bool SMESH_Gen::CheckAlgoState(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape)
-{
-  //MESSAGE("SMESH_Gen::CheckAlgoState");
-
-  bool ret = true;
-  bool hasAlgo = false;
-
-  SMESH_subMesh* sm = aMesh.GetSubMesh(aShape);
-  const SMESHDS_Mesh* meshDS = aMesh.GetMeshDS();
-  TopoDS_Shape mainShape = meshDS->ShapeToMesh();
-
-  // -----------------
-  // get global algos
-  // -----------------
-
-  const SMESH_Algo* aGlobAlgoArr[] = {0,0,0,0};
-
-  const list<const SMESHDS_Hypothesis*>& listHyp = meshDS->GetHypothesis( mainShape );
-  list<const SMESHDS_Hypothesis*>::const_iterator it=listHyp.begin();
-  for ( ; it != listHyp.end(); it++)
-  {
-    const SMESHDS_Hypothesis * aHyp = *it;
-    if (aHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO)
-      continue;
-
-    const SMESH_Algo* algo = dynamic_cast<const SMESH_Algo*> (aHyp);
-    ASSERT ( algo );
-
-    int dim = algo->GetDim();
-    aGlobAlgoArr[ dim ] = algo;
-
-    hasAlgo = true;
-  }
-
-  // --------------------------------------------------------
-  // info on algos that will be ignored because of ones that
-  // don't NeedDescretBoundary() attached to super-shapes,
-  // check that a conform mesh will be produced
-  // --------------------------------------------------------
-
-
-  // find a global algo possibly hidding sub-algos
-  int dim;
-  const SMESH_Algo* aGlobIgnoAlgo = 0;
-  for (dim = 3; dim > 0; dim--)
-  {
-    if (aGlobAlgoArr[ dim ] &&
-        !aGlobAlgoArr[ dim ]->NeedDescretBoundary())
-    {
-      aGlobIgnoAlgo = aGlobAlgoArr[ dim ];
-      break;
-    }
-  }
-
-  const map<int, SMESH_subMesh*>& smMap = sm->DependsOn();
-  map<int, SMESH_subMesh*>::const_reverse_iterator revItSub = smMap.rbegin();
-  map<int, SMESH_subMesh*> aCheckedMap;
-  bool checkConform = ( !aMesh.IsNotConformAllowed() );
-  int aKey = 1;
-  SMESH_subMesh* smToCheck = sm;
-
-  // loop on aShape and its sub-shapes
-  while ( smToCheck )
-  {
-    if ( smToCheck->GetSubShape().ShapeType() == TopAbs_VERTEX)
-      break;
-
-    if ( aCheckedMap.find( aKey ) == aCheckedMap.end() )
-      if (!checkConformIgnoredAlgos (aMesh, smToCheck, aGlobIgnoAlgo,
-                                     0, checkConform, aCheckedMap))
-        ret = false;
-
-    if ( smToCheck->GetAlgoState() != SMESH_subMesh::NO_ALGO )
-      hasAlgo = true;
-
-    // next subMesh
-    if (revItSub != smMap.rend())
-    {
-      aKey = (*revItSub).first;
-      smToCheck = (*revItSub).second;
-      revItSub++;
-    }
-    else
-    {
-      smToCheck = 0;
-    }
-
-  }
-
-  // ----------------------------------------------------------------
-  // info on missing hypothesis and find out if all needed algos are
-  // well defined
-  // ----------------------------------------------------------------
-
-  //MESSAGE( "---info on missing hypothesis and find out if all needed algos are");
-
-  // find max dim of global algo
-  int aTopAlgoDim = 0;
-  for (dim = 3; dim > 0; dim--)
-  {
-    if (aGlobAlgoArr[ dim ])
-    {
-      aTopAlgoDim = dim;
-      break;
-    }
-  }
-  aCheckedMap.clear();
-  smToCheck = sm;
-  revItSub = smMap.rbegin();
-  bool checkNoAlgo = (bool) aTopAlgoDim;
-  bool globalChecked[] = { false, false, false, false };
-
-  // loop on aShape and its sub-shapes
-  while ( smToCheck )
-  {
-    if ( smToCheck->GetSubShape().ShapeType() == TopAbs_VERTEX)
-      break;
-
-    if ( aCheckedMap.find( aKey ) == aCheckedMap.end() )
-      if (!checkMissing (this, aMesh, smToCheck, aTopAlgoDim,
-                         globalChecked, checkNoAlgo, aCheckedMap))
-      {
-        ret = false;
-        if (smToCheck->GetAlgoState() == SMESH_subMesh::NO_ALGO )
-          checkNoAlgo = false;
-      }
-
-    // next subMesh
-    if (revItSub != smMap.rend())
-    {
-      aKey = (*revItSub).first;
-      smToCheck = (*revItSub).second;
-      revItSub++;
-    }
-    else
-      smToCheck = 0;
-  }
-
-  if ( !hasAlgo )
-    INFOS( "None algorithm attached" );
-
-  return ( ret && hasAlgo );
-}
-
-//=======================================================================
-//function : IsGlobalHypothesis
-//purpose  : check if theAlgo is attached to the main shape
-//=======================================================================
-
-bool SMESH_Gen::IsGlobalHypothesis(const SMESH_Hypothesis* theHyp, SMESH_Mesh& aMesh)
-{
-  SMESH_HypoFilter filter( SMESH_HypoFilter::Is( theHyp ));
-  return aMesh.GetHypothesis( aMesh.GetMeshDS()->ShapeToMesh(), filter, false );
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-SMESH_Algo *SMESH_Gen::GetAlgo(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
-{
-//  MESSAGE("SMESH_Gen::GetAlgo");
-
-  SMESH_HypoFilter filter( SMESH_HypoFilter::IsAlgo() );
-  filter.And( filter.IsApplicableTo( aShape ));
-
-  list <const SMESHDS_Hypothesis * > algoList;
-  aMesh.GetHypotheses( aShape, filter, algoList, true );
-
-  if ( algoList.empty() )
-    return NULL;
-
-  if (algoList.size() > 1 ) { // check if there is one algo several times
-    list <const SMESHDS_Hypothesis * >::iterator algo = algoList.begin();
-    for ( ; algo != algoList.end(); ++algo )
-      if ( (*algo) != algoList.front() &&
-           (*algo)->GetName() != algoList.front()->GetName() )
-        return NULL;
-  }
-
-  return const_cast<SMESH_Algo*> ( static_cast<const SMESH_Algo* >( algoList.front() ));
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-StudyContextStruct *SMESH_Gen::GetStudyContext(int studyId)
-{
-       // Get studyContext, create it if it does'nt exist, with a SMESHDS_Document
-
-       if (_mapStudyContext.find(studyId) == _mapStudyContext.end())
-       {
-               _mapStudyContext[studyId] = new StudyContextStruct;
-               _mapStudyContext[studyId]->myDocument = new SMESHDS_Document(studyId);
-       }
-       StudyContextStruct *myStudyContext = _mapStudyContext[studyId];
-//   ASSERT(_mapStudyContext.find(studyId) != _mapStudyContext.end());
-       return myStudyContext;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-void SMESH_Gen::Save(int studyId, const char *aUrlOfFile)
-{
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-void SMESH_Gen::Load(int studyId, const char *aUrlOfFile)
-{
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-void SMESH_Gen::Close(int studyId)
-{
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-int SMESH_Gen::GetShapeDim(const TopAbs_ShapeEnum & aShapeType)
-{
-       int shapeDim = -1;                      // Shape dimension: 0D, 1D, 2D, 3D
-       int type = aShapeType;//.ShapeType();
-       switch (type)
-       {
-       case TopAbs_COMPOUND:
-       case TopAbs_COMPSOLID:
-       case TopAbs_SOLID:
-       case TopAbs_SHELL:
-       {
-               shapeDim = 3;
-               break;
-       }
-               //    case TopAbs_SHELL:
-       case TopAbs_FACE:
-       {
-               shapeDim = 2;
-               break;
-       }
-       case TopAbs_WIRE:
-       case TopAbs_EDGE:
-       {
-               shapeDim = 1;
-               break;
-       }
-       case TopAbs_VERTEX:
-       {
-               shapeDim = 0;
-               break;
-       }
-       }
-       return shapeDim;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-int SMESH_Gen::GetANewId()
-{
-       //MESSAGE("SMESH_Gen::GetANewId");
-       return _hypId++;
-}
diff --git a/src/SMESH/SMESH_Gen.hxx b/src/SMESH/SMESH_Gen.hxx
deleted file mode 100644 (file)
index 17dbe35..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Gen.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_GEN_HXX_
-#define _SMESH_GEN_HXX_
-
-#include "Utils_SALOME_Exception.hxx"
-
-#include "SMESH_Hypothesis.hxx"
-#include "SMESH_Algo.hxx"
-#include "SMESH_1D_Algo.hxx"
-#include "SMESH_2D_Algo.hxx"
-#include "SMESH_3D_Algo.hxx"
-#include "SMESH_Mesh.hxx"
-
-#include "SMESHDS_Document.hxx"
-
-#include <TopoDS_Shape.hxx>
-
-#include <map>
-
-
-typedef struct studyContextStruct
-{
-       std::map < int, SMESH_Hypothesis * >mapHypothesis;
-         std::map < int, SMESH_Mesh * >mapMesh;
-         SMESHDS_Document * myDocument;
-} StudyContextStruct;
-
-class SMESH_Gen
-{
- public:
-  SMESH_Gen();
-  ~SMESH_Gen();
-
-//  SMESH_Hypothesis *CreateHypothesis(const char *anHyp, int studyId)
-//    throw(SALOME_Exception);
-  SMESH_Mesh* CreateMesh(int studyId)
-    throw(SALOME_Exception);
-  bool Compute(::SMESH_Mesh & aMesh, const TopoDS_Shape & aShape);
-
-  bool CheckAlgoState(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape);
-  // notify on bad state of attached algos, return false
-  // if Compute() would fail because of some algo bad state
-
-
-  StudyContextStruct *GetStudyContext(int studyId);
-
-  static int GetShapeDim(const TopAbs_ShapeEnum & aShapeType);
-  static int GetShapeDim(const TopoDS_Shape & aShape)
-  { return GetShapeDim( aShape.ShapeType() ); }
-  SMESH_Algo* GetAlgo(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape);
-  static bool IsGlobalHypothesis(const SMESH_Hypothesis* theHyp, SMESH_Mesh& aMesh);
-
-  // inherited methods from SALOMEDS::Driver
-
-  void Save(int studyId, const char *aUrlOfFile);
-  void Load(int studyId, const char *aUrlOfFile);
-  void Close(int studyId);
-  const char *ComponentDataType();
-
-  const char *IORToLocalPersistentID(const char *IORString, bool & IsAFile);
-  const char *LocalPersistentIDToIOR(const char *aLocalPersistentID);
-
-  int GetANewId();
-
-  std::map < int, SMESH_Algo * >_mapAlgo;
-  std::map < int, SMESH_1D_Algo * >_map1D_Algo;
-  std::map < int, SMESH_2D_Algo * >_map2D_Algo;
-  std::map < int, SMESH_3D_Algo * >_map3D_Algo;
-
- private:
-
-  int _localId;                                // unique Id of created objects, within SMESH_Gen entity
-  std::map < int, StudyContextStruct * >_mapStudyContext;
-
-  // hypotheses managing
-  int _hypId;
-};
-
-#endif
diff --git a/src/SMESH/SMESH_Group.cxx b/src/SMESH/SMESH_Group.cxx
deleted file mode 100644 (file)
index 49cade1..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2004  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESH_Group.cxx
-//  Author : Michael Sazonov (OCC)
-//  Module : SMESH
-//  $Header$
-
-#include "SMESH_Group.hxx"
-#include "SMESH_Mesh.hxx"
-#include "SMESHDS_Group.hxx"
-#include "SMESHDS_GroupOnGeom.hxx"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_Group::SMESH_Group (int                       theID,
-                          const SMESH_Mesh*         theMesh,
-                          const SMDSAbs_ElementType theType,
-                          const char*               theName,
-                          const TopoDS_Shape&       theShape)
-     : myName(theName)
-{
-  if ( theShape.IsNull() )
-    myGroupDS = new SMESHDS_Group (theID,
-                                   const_cast<SMESH_Mesh*>(theMesh)->GetMeshDS(),
-                                   theType);
-  else
-    myGroupDS = new SMESHDS_GroupOnGeom (theID,
-                                         const_cast<SMESH_Mesh*>(theMesh)->GetMeshDS(),
-                                         theType,
-                                         theShape);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_Group::~SMESH_Group ()
-{
-  delete myGroupDS;
-}
diff --git a/src/SMESH/SMESH_Group.hxx b/src/SMESH/SMESH_Group.hxx
deleted file mode 100644 (file)
index 26493e4..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2004  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESH_Group.hxx
-//  Author : Michael Sazonov (OCC)
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_Group_HeaderFile
-#define _SMESH_Group_HeaderFile
-
-#include <SMDSAbs_ElementType.hxx>
-#include <string>
-#include <TopoDS_Shape.hxx>
-
-
-class SMESHDS_GroupBase;
-class SMESH_Mesh;
-
-class SMESH_Group
-{
- public:
-
-  SMESH_Group (int                       theID,
-               const SMESH_Mesh*         theMesh,
-               const SMDSAbs_ElementType theType,
-               const char*               theName,
-               const TopoDS_Shape&       theShape = TopoDS_Shape());
-  ~SMESH_Group ();
-
-  void SetName (const char* theName) { myName = theName; }
-
-  const char* GetName () const { return myName.c_str(); }
-
-  SMESHDS_GroupBase * GetGroupDS () { return myGroupDS; }
-
- private:
-  SMESH_Group (const SMESH_Group& theOther);
-  // prohibited copy constructor
-  SMESH_Group& operator = (const SMESH_Group& theOther);
-  // prohibited assign operator
-
-  SMESHDS_GroupBase * myGroupDS;
-  std::string         myName;
-
-};
-
-#endif
diff --git a/src/SMESH/SMESH_HypoFilter.cxx b/src/SMESH/SMESH_HypoFilter.cxx
deleted file mode 100644 (file)
index 783547b..0000000
+++ /dev/null
@@ -1,290 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_HypoFilter.cxx
-//  Module : SMESH
-//  $Header$
-
-#include "SMESH_HypoFilter.hxx"
-
-#include "SMESH_Hypothesis.hxx"
-#include "SMESH_subMesh.hxx"
-
-using namespace std;
-
-
-//=======================================================================
-//function : NamePredicate::Value
-//purpose  : 
-//=======================================================================
-
-bool SMESH_HypoFilter::NamePredicate::IsOk (const SMESH_Hypothesis* aHyp,
-                                            const TopoDS_Shape&     /*aShape*/ ) const
-{
-  return ( _name == aHyp->GetName() );
-}
-
-//=======================================================================
-//function : TypePredicate::Value
-//purpose  : 
-//=======================================================================
-
-int SMESH_HypoFilter::TypePredicate::Value( const SMESH_Hypothesis* aHyp ) const
-{
-  return aHyp->GetType();
-};
-
-//=======================================================================
-//function : DimPredicate::Value
-//purpose  : 
-//=======================================================================
-
-int SMESH_HypoFilter::DimPredicate::Value( const SMESH_Hypothesis* aHyp ) const
-{
-  return aHyp->GetDim();
-}
-
-//=======================================================================
-//function : ApplicablePredicate::IsOk
-//purpose  : 
-//=======================================================================
-
-bool SMESH_HypoFilter::ApplicablePredicate::IsOk(const SMESH_Hypothesis* aHyp,
-                                                 const TopoDS_Shape&     /*aShape*/) const
-{
-  return SMESH_subMesh::IsApplicableHypotesis( aHyp, (TopAbs_ShapeEnum)_shapeType );
-};
-
-//=======================================================================
-//function : ApplicablePredicate::ApplicablePredicate
-//purpose  : 
-//=======================================================================
-
-SMESH_HypoFilter::ApplicablePredicate::ApplicablePredicate( const TopoDS_Shape& theShape )
-{
-  _shapeType = ( theShape.IsNull() ? TopAbs_SHAPE : theShape.ShapeType());
-}
-
-//=======================================================================
-//function : InstancePredicate::IsOk
-//purpose  : 
-//=======================================================================
-
-bool SMESH_HypoFilter::InstancePredicate::IsOk(const SMESH_Hypothesis* aHyp,
-                                               const TopoDS_Shape&     /*aShape*/) const
-{
-  return _hypo == aHyp;
-}
-
-//=======================================================================
-//function : IsGlobalPredicate::IsOk
-//purpose  : 
-//=======================================================================
-
-bool SMESH_HypoFilter::IsGlobalPredicate::IsOk(const SMESH_Hypothesis* aHyp,
-                                               const TopoDS_Shape&     aShape) const
-{
-  return ( !_mainShape.IsNull() && !aShape.IsNull() && _mainShape.IsSame( aShape ));
-}
-
-//=======================================================================
-//function : SMESH_HypoFilter
-//purpose  : 
-//=======================================================================
-
-SMESH_HypoFilter::SMESH_HypoFilter()
-{
-}
-
-//=======================================================================
-//function : SMESH_HypoFilter
-//purpose  : 
-//=======================================================================
-
-SMESH_HypoFilter::SMESH_HypoFilter( SMESH_HypoPredicate* aPredicate, bool notNagate )
-{
-  add( notNagate ? AND : AND_NOT, aPredicate );
-}
-
-//=======================================================================
-//function : And
-//purpose  : 
-//=======================================================================
-
-void SMESH_HypoFilter::And( SMESH_HypoPredicate* aPredicate )
-{
-  add( AND, aPredicate );
-}
-
-//=======================================================================
-//function : AndNot
-//purpose  : 
-//=======================================================================
-
-void SMESH_HypoFilter::AndNot( SMESH_HypoPredicate* aPredicate )
-{
-  add( AND_NOT, aPredicate );
-}
-
-//=======================================================================
-//function : Or
-//purpose  : 
-//=======================================================================
-
-void SMESH_HypoFilter::Or( SMESH_HypoPredicate* aPredicate )
-{
-  add( OR, aPredicate );
-}
-
-//=======================================================================
-//function : OrNot
-//purpose  : Return predicates
-//=======================================================================
-
-void SMESH_HypoFilter::OrNot( SMESH_HypoPredicate* aPredicate )
-{
-  add( OR_NOT, aPredicate );
-}
-
-//=======================================================================
-//function : Is
-//purpose  : 
-//=======================================================================
-
-SMESH_HypoPredicate* SMESH_HypoFilter::Is(const SMESH_Hypothesis* theHypo)
-{
-  return new InstancePredicate( theHypo );
-}
-
-//=======================================================================
-//function : IsAlgo
-//purpose  : 
-//=======================================================================
-
-SMESH_HypoPredicate* SMESH_HypoFilter::IsAlgo()
-{
-  return new TypePredicate( MORE, SMESHDS_Hypothesis::PARAM_ALGO );
-}
-
-//=======================================================================
-//function : IsGlobal
-//purpose  : 
-//=======================================================================
-
- SMESH_HypoPredicate* SMESH_HypoFilter::IsGlobal(const TopoDS_Shape& theMainShape)
-{
-  return new IsGlobalPredicate( theMainShape );
-}
-
-//=======================================================================
-//function : HasName
-//purpose  : 
-//=======================================================================
-
-SMESH_HypoPredicate* SMESH_HypoFilter::HasName(const string & theName)
-{
-  return new NamePredicate( theName );
-}
-
-//=======================================================================
-//function : HasDim
-//purpose  : 
-//=======================================================================
-
-SMESH_HypoPredicate* SMESH_HypoFilter::HasDim(const int theDim)
-{
-  return new DimPredicate( EQUAL, theDim );
-}
-
-//=======================================================================
-//function : IsApplicableTo
-//purpose  : 
-//=======================================================================
-
-SMESH_HypoPredicate* SMESH_HypoFilter::IsApplicableTo(const TopoDS_Shape& theShape)
-{
-  return new ApplicablePredicate( theShape );
-}
-
-//=======================================================================
-//function : HasType
-//purpose  : 
-//=======================================================================
-
-SMESH_HypoPredicate* SMESH_HypoFilter::HasType(const int theHypType)
-{
-  return new TypePredicate( EQUAL, theHypType );
-}
-
-//=======================================================================
-//function : IsOk
-//purpose  : 
-//=======================================================================
-
-bool SMESH_HypoFilter::IsOk (const SMESH_Hypothesis* aHyp,
-                             const TopoDS_Shape&     aShape) const
-{
-  if ( myPredicates.empty() )
-    return true;
-
-  bool ok = ( myPredicates.front()->_logical_op <= AND_NOT );
-  list<SMESH_HypoPredicate*>::const_iterator pred = myPredicates.begin();
-  for ( ; pred != myPredicates.end(); ++pred )
-  {
-    bool ok2 = (*pred)->IsOk( aHyp, aShape );
-    switch ( (*pred)->_logical_op ) {
-    case AND:     ok = ok && ok2; break;
-    case AND_NOT: ok = ok && !ok2; break;
-    case OR:      ok = ok || ok2; break;
-    case OR_NOT:  ok = ok || !ok2; break;
-    default:;
-    }
-  }
-  return ok;
-}
-
-//=======================================================================
-//function : Init
-//purpose  : 
-//=======================================================================
-
-void SMESH_HypoFilter::Init  ( SMESH_HypoPredicate* aPredicate, bool notNagate )
-{
-  list<SMESH_HypoPredicate*>::const_iterator pred = myPredicates.begin();
-  for ( ; pred != myPredicates.end(); ++pred )
-    delete *pred;
-
-  add( notNagate ? AND : AND_NOT, aPredicate );
-}
-
-
-//=======================================================================
-//function : IsOk
-//purpose  : 
-//=======================================================================
-
-SMESH_HypoFilter::~SMESH_HypoFilter()
-{
-  Init(0);
-}
-
diff --git a/src/SMESH/SMESH_HypoFilter.hxx b/src/SMESH/SMESH_HypoFilter.hxx
deleted file mode 100644 (file)
index 673b9fe..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_HypoFilter.hxx
-//  Module : SMESH
-//  $Header$
-
-
-#ifndef SMESH_HypoFilter_HeaderFile
-#define SMESH_HypoFilter_HeaderFile
-
-// ===========================
-// Filter of SMESH_Hypothesis
-// ===========================
-
-#include <list>
-#include <string>
-
-class SMESH_HypoFilter;
-class SMESH_Hypothesis;
-class TopoDS_Shape;
-
-class SMESH_HypoPredicate {
- public:
-  virtual bool IsOk(const SMESH_Hypothesis* aHyp,
-                    const TopoDS_Shape&     aShape) const = 0;
-  // check aHyp or/and aShape it is assigned to
-  virtual ~SMESH_HypoPredicate() {}
- private:
-  int _logical_op;
-  friend class SMESH_HypoFilter;
-};
-
-class SMESH_HypoFilter: public SMESH_HypoPredicate
-{
- public:
-  // Create and add predicates.
-  // Added predicates will be destroyed by filter when it dies
-  SMESH_HypoFilter();
-  SMESH_HypoFilter( SMESH_HypoPredicate* aPredicate, bool notNagate = true );
-  // notNagate==false means !aPredicate->IsOk()
-  void Init  ( SMESH_HypoPredicate* aPredicate, bool notNagate = true );
-  void And   ( SMESH_HypoPredicate* aPredicate );
-  void AndNot( SMESH_HypoPredicate* aPredicate );
-  void Or    ( SMESH_HypoPredicate* aPredicate );
-  void OrNot ( SMESH_HypoPredicate* aPredicate );
-
-  // Create predicates
-  static SMESH_HypoPredicate* IsAlgo();
-  static SMESH_HypoPredicate* IsApplicableTo(const TopoDS_Shape& theMainShape);
-  static SMESH_HypoPredicate* Is(const SMESH_Hypothesis* theHypo);
-  static SMESH_HypoPredicate* IsGlobal(const TopoDS_Shape& theMainShape);
-  static SMESH_HypoPredicate* HasName(const std::string & theName);
-  static SMESH_HypoPredicate* HasDim(const int theDim);
-  static SMESH_HypoPredicate* HasType(const int theHypType);
-
-  bool IsOk (const SMESH_Hypothesis* aHyp,
-             const TopoDS_Shape&     aShape) const;
-  // check aHyp or/and aShape it is assigned to
-
-  ~SMESH_HypoFilter();
-
-
- protected:
-  // fields
-
-  std::list<SMESH_HypoPredicate*> myPredicates;
-
-  // private methods
-
-  enum Logical { AND, AND_NOT, OR, OR_NOT };
-  enum Comparison { EQUAL, NOT_EQUAL, MORE, LESS };
-
-  SMESH_HypoFilter(const SMESH_HypoFilter& other){}
-
-  void add( Logical bool_op, SMESH_HypoPredicate* pred )
-  {
-    if ( pred ) {
-      pred->_logical_op = bool_op;
-      myPredicates.push_back( pred );
-    }
-  }
-
-  // predicates implementation
-
-  template <typename TValue>
-    struct templPredicate: public SMESH_HypoPredicate {
-      Comparison _comp;
-      TValue     _val;
-      virtual TValue Value(const SMESH_Hypothesis* aHyp) const = 0;
-      virtual bool IsOk(const SMESH_Hypothesis* aHyp, const TopoDS_Shape& ) const
-      {
-        if      ( _comp == EQUAL )     return _val == Value( aHyp );
-        else if ( _comp == NOT_EQUAL ) return _val != Value( aHyp );
-        else if ( _comp == MORE )      return _val < Value( aHyp );
-        else                           return _val > Value( aHyp );
-      }
-    };
-
-  struct NamePredicate : public SMESH_HypoPredicate {
-    std::string _name;
-    NamePredicate( std::string name ): _name(name){}
-    bool IsOk(const SMESH_Hypothesis* aHyp,
-              const TopoDS_Shape&     aShape) const;
-  };
-  
-  struct TypePredicate : public templPredicate< int > {
-    TypePredicate( Comparison comp, int hypType )
-    { _comp = comp; _val = hypType; }
-    int Value( const SMESH_Hypothesis* aHyp ) const;
-  };
-  
-  struct DimPredicate : public templPredicate< int > {
-    DimPredicate( Comparison comp, int dim )
-    { _comp = comp; _val = dim; }
-    int Value( const SMESH_Hypothesis* aHyp ) const;
-  };
-  
-  struct ApplicablePredicate : public SMESH_HypoPredicate {
-    int _shapeType;
-    ApplicablePredicate( const TopoDS_Shape& theShape );
-    bool IsOk(const SMESH_Hypothesis* aHyp,
-              const TopoDS_Shape&     aShape) const;
-  };
-        
-  struct InstancePredicate : public SMESH_HypoPredicate {
-    const SMESH_Hypothesis* _hypo;
-    InstancePredicate( const SMESH_Hypothesis* hypo ):_hypo(hypo){}
-    bool IsOk(const SMESH_Hypothesis* aHyp,
-              const TopoDS_Shape&     aShape) const;
-  };
-        
-  struct IsGlobalPredicate : public SMESH_HypoPredicate {
-    const TopoDS_Shape& _mainShape;
-    IsGlobalPredicate( const TopoDS_Shape& mainShape ):_mainShape(mainShape){}
-    bool IsOk(const SMESH_Hypothesis* aHyp,
-              const TopoDS_Shape&     aShape) const;
-  };
-        
-};
-
-
-#endif
diff --git a/src/SMESH/SMESH_Hypothesis.cxx b/src/SMESH/SMESH_Hypothesis.cxx
deleted file mode 100644 (file)
index 0107c3e..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Hypothesis.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-using namespace std;
-#include "SMESH_Hypothesis.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_subMesh.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-SMESH_Hypothesis::SMESH_Hypothesis(int hypId,
-                                  int studyId,
-                                  SMESH_Gen* gen) : SMESHDS_Hypothesis(hypId)
-{
-  //MESSAGE("SMESH_Hypothesis::SMESH_Hypothesis");
-  _gen = gen;
-  _studyId = studyId;
-  StudyContextStruct* myStudyContext = _gen->GetStudyContext(_studyId);
-  myStudyContext->mapHypothesis[_hypId] = this;
-  _type = PARAM_ALGO;
-  _shapeType = 0; // to be set by algo with TopAbs_Enum
-  _param_algo_dim = -1; // to be set by algo parameter
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-SMESH_Hypothesis::~SMESH_Hypothesis()
-{
-  MESSAGE("SMESH_Hypothesis::~SMESH_Hypothesis");
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-int SMESH_Hypothesis::GetDim() const
-{
-  int dim = -1;
-  switch (_type)
-    {
-    case ALGO_1D: dim = 1; break;
-    case ALGO_2D: dim = 2; break;
-    case ALGO_3D: dim = 3; break;
-    case PARAM_ALGO: dim = _param_algo_dim; break;
-    }
-  return dim;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-int SMESH_Hypothesis::GetShapeType() const
-{
-  return _shapeType;
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-int SMESH_Hypothesis::GetStudyId() const
-{
-  return _studyId;
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-void SMESH_Hypothesis::NotifySubMeshesHypothesisModification()
-{
-  MESSAGE("SMESH_Hypothesis::NotifySubMeshesHypothesisModification");
-
-  // for all meshes in study
-
-  StudyContextStruct* myStudyContext = _gen->GetStudyContext(_studyId);
-  map<int, SMESH_Mesh*>::iterator itm;
-  for (itm = myStudyContext->mapMesh.begin();
-       itm != myStudyContext->mapMesh.end();
-       itm++)
-    {
-      SMESH_Mesh* mesh = (*itm).second;
-      const list<SMESH_subMesh*>& subMeshes =
-        mesh->GetSubMeshUsingHypothesis(this);
-
-      //for all subMeshes using hypothesis
-       
-      list<SMESH_subMesh*>::const_iterator its;
-      for (its = subMeshes.begin(); its != subMeshes.end(); its++)
-       (*its)->ComputeStateEngine(SMESH_subMesh::MODIF_HYP);
-    }
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-const char* SMESH_Hypothesis::GetLibName() const
-{
-//   MESSAGE("SMESHDS_Hypothesis::GetLibName");
-//   SCRUTE(_LibName);
-//   SCRUTE(&_LibName);
-  return _libName.c_str();
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-void SMESH_Hypothesis::SetLibName(const char* theLibName)
-{
-//   MESSAGE("SMESHDS_Hypothesis::SetLibName");
-  _libName = string(theLibName);
-}
diff --git a/src/SMESH/SMESH_Hypothesis.hxx b/src/SMESH/SMESH_Hypothesis.hxx
deleted file mode 100644 (file)
index 1d881a6..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Hypothesis.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_HYPOTHESIS_HXX_
-#define _SMESH_HYPOTHESIS_HXX_
-
-#include "SMESHDS_Hypothesis.hxx"
-
-class SMESH_Gen;
-
-class SMESH_Hypothesis: public SMESHDS_Hypothesis
-{
-public:
-  enum Hypothesis_Status // in the order of severity
-  {
-    HYP_OK,
-    HYP_MISSING,      // algo misses a hypothesis
-    HYP_CONCURENT,    // several applicable hypotheses
-    HYP_BAD_PARAMETER,// hypothesis has a bad parameter value
-    HYP_UNKNOWN_FATAL,//  --- all statuses below should be considered as fatal
-                      //      for Add/RemoveHypothesis operations
-    HYP_INCOMPATIBLE, // hypothesis does not fit algo
-    HYP_NOTCONFORM,   // not conform mesh is produced appling a hypothesis
-    HYP_ALREADY_EXIST,// such hypothesis already exist
-    HYP_BAD_DIM       // bad dimension
-  };
-  static bool IsStatusFatal(Hypothesis_Status theStatus)
-  { return theStatus >= HYP_UNKNOWN_FATAL; }
-
-  SMESH_Hypothesis(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~SMESH_Hypothesis();
-  int GetDim() const;
-  int GetStudyId() const;
-  void NotifySubMeshesHypothesisModification();
-  int GetShapeType() const;
-  const char* GetLibName() const;
-  void  SetLibName(const char* theLibName);
-
-protected:
-  SMESH_Gen* _gen;
-  int _studyId;
-  int _shapeType;
-  int _param_algo_dim;
-
-private:
-  std::string _libName;
-};
-
-#endif
diff --git a/src/SMESH/SMESH_Mesh.cxx b/src/SMESH/SMESH_Mesh.cxx
deleted file mode 100644 (file)
index c473bd6..0000000
+++ /dev/null
@@ -1,1429 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Mesh.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#include "SMESH_Mesh.hxx"
-#include "SMESH_subMesh.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_Hypothesis.hxx"
-#include "SMESH_Group.hxx"
-#include "SMESH_HypoFilter.hxx"
-#include "SMESHDS_Group.hxx"
-#include "SMESHDS_Script.hxx"
-#include "SMESHDS_GroupOnGeom.hxx"
-#include "SMDS_MeshVolume.hxx"
-
-#include "utilities.h"
-
-#include "DriverMED_W_SMESHDS_Mesh.h"
-#include "DriverDAT_W_SMDS_Mesh.h"
-#include "DriverUNV_W_SMDS_Mesh.h"
-#include "DriverSTL_W_SMDS_Mesh.h"
-
-#include "DriverMED_R_SMESHDS_Mesh.h"
-#include "DriverUNV_R_SMDS_Mesh.h"
-#include "DriverSTL_R_SMDS_Mesh.h"
-
-#include <BRepTools_WireExplorer.hxx>
-#include <BRep_Builder.hxx>
-#include <gp_Pnt.hxx>
-
-#include <TCollection_AsciiString.hxx>
-#include <TopExp.hxx>
-#include <TopTools_ListOfShape.hxx>
-#include <TopTools_Array1OfShape.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TopTools_MapOfShape.hxx>
-
-#include <memory>
-
-#include "Utils_ExceptHandlers.hxx"
-
-#ifdef _DEBUG_
-static int MYDEBUG = 0;
-#else
-static int MYDEBUG = 0;
-#endif
-
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-SMESH_Mesh::SMESH_Mesh(int localId, int studyId, SMESH_Gen * gen, SMESHDS_Document * myDocument)
-: _groupId( 0 )
-{
-  INFOS("SMESH_Mesh::SMESH_Mesh(int localId)");
-       _id = localId;
-       _studyId = studyId;
-       _gen = gen;
-       _myDocument = myDocument;
-       _idDoc = _myDocument->NewMesh();
-       _myMeshDS = _myDocument->GetMesh(_idDoc);
-       _isShapeToMesh = false;
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-SMESH_Mesh::~SMESH_Mesh()
-{
-  INFOS("SMESH_Mesh::~SMESH_Mesh");
-
-  // delete groups
-  map < int, SMESH_Group * >::iterator itg;
-  for (itg = _mapGroup.begin(); itg != _mapGroup.end(); itg++) {
-    SMESH_Group *aGroup = (*itg).second;
-    delete aGroup;
-  }
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-void SMESH_Mesh::ShapeToMesh(const TopoDS_Shape & aShape)
-{
-  if(MYDEBUG) MESSAGE("SMESH_Mesh::ShapeToMesh");
-
-  if ( !_myMeshDS->ShapeToMesh().IsNull() && aShape.IsNull() )
-  {
-    // removal of a shape to mesh, delete objects referring to sub-shapes:
-    // - sub-meshes
-    map <int, SMESH_subMesh *>::iterator i_sm = _mapSubMesh.begin();
-    for ( ; i_sm != _mapSubMesh.end(); ++i_sm )
-      delete i_sm->second;
-    _mapSubMesh.clear();
-    //  - groups on geometry
-    map <int, SMESH_Group *>::iterator i_gr = _mapGroup.begin();
-    while ( i_gr != _mapGroup.end() ) {
-      if ( dynamic_cast<SMESHDS_GroupOnGeom*>( i_gr->second->GetGroupDS() )) {
-        _myMeshDS->RemoveGroup( i_gr->second->GetGroupDS() );
-        delete i_gr->second;
-        _mapGroup.erase( i_gr++ );
-      }
-      else
-        i_gr++;
-    }
-    _mapPropagationChains.Clear();
-  }
-  else
-  {
-    if (_isShapeToMesh)
-      throw SALOME_Exception(LOCALIZED ("a shape to mesh has already been defined"));
-  }
-  _isShapeToMesh = true;
-  _myMeshDS->ShapeToMesh(aShape);
-
-  // fill _mapAncestors
-  _mapAncestors.Clear();
-  int desType, ancType;
-  for ( desType = TopAbs_EDGE; desType > TopAbs_COMPOUND; desType-- )
-    for ( ancType = desType - 1; ancType >= TopAbs_COMPOUND; ancType-- )
-      TopExp::MapShapesAndAncestors ( aShape,
-                                     (TopAbs_ShapeEnum) desType,
-                                     (TopAbs_ShapeEnum) ancType,
-                                     _mapAncestors );
-
-  // NRI : 24/02/03
-  //EAP: 1/9/04 TopExp::MapShapes(aShape, _subShapes); USE the same map of _myMeshDS
-}
-
-//=======================================================================
-//function : UNVToMesh
-//purpose  : 
-//=======================================================================
-
-int SMESH_Mesh::UNVToMesh(const char* theFileName)
-{
-  if(MYDEBUG) MESSAGE("UNVToMesh - theFileName = "<<theFileName);
-  if(_isShapeToMesh)
-    throw SALOME_Exception(LOCALIZED("a shape to mesh has already been defined"));
-  _isShapeToMesh = true;
-  DriverUNV_R_SMDS_Mesh myReader;
-  myReader.SetMesh(_myMeshDS);
-  myReader.SetFile(theFileName);
-  myReader.SetMeshId(-1);
-  myReader.Perform();
-  if(MYDEBUG){
-    MESSAGE("MEDToMesh - _myMeshDS->NbNodes() = "<<_myMeshDS->NbNodes());
-    MESSAGE("MEDToMesh - _myMeshDS->NbEdges() = "<<_myMeshDS->NbEdges());
-    MESSAGE("MEDToMesh - _myMeshDS->NbFaces() = "<<_myMeshDS->NbFaces());
-    MESSAGE("MEDToMesh - _myMeshDS->NbVolumes() = "<<_myMeshDS->NbVolumes());
-  }
-  return 1;
-}
-
-//=======================================================================
-//function : MEDToMesh
-//purpose  : 
-//=======================================================================
-
-int SMESH_Mesh::MEDToMesh(const char* theFileName, const char* theMeshName)
-{
-  if(MYDEBUG) MESSAGE("MEDToMesh - theFileName = "<<theFileName<<", mesh name = "<<theMeshName);
-  if(_isShapeToMesh)
-    throw SALOME_Exception(LOCALIZED("a shape to mesh has already been defined"));
-  _isShapeToMesh = true;
-  DriverMED_R_SMESHDS_Mesh myReader;
-  myReader.SetMesh(_myMeshDS);
-  myReader.SetMeshId(-1);
-  myReader.SetFile(theFileName);
-  myReader.SetMeshName(theMeshName);
-  Driver_Mesh::Status status = myReader.Perform();
-  if(MYDEBUG){
-    MESSAGE("MEDToMesh - _myMeshDS->NbNodes() = "<<_myMeshDS->NbNodes());
-    MESSAGE("MEDToMesh - _myMeshDS->NbEdges() = "<<_myMeshDS->NbEdges());
-    MESSAGE("MEDToMesh - _myMeshDS->NbFaces() = "<<_myMeshDS->NbFaces());
-    MESSAGE("MEDToMesh - _myMeshDS->NbVolumes() = "<<_myMeshDS->NbVolumes());
-  }
-
-  // Reading groups (sub-meshes are out of scope of MED import functionality)
-  list<string> aGroupNames = myReader.GetGroupNames();
-  if(MYDEBUG) MESSAGE("MEDToMesh - Nb groups = "<<aGroupNames.size()); 
-  int anId;
-  for ( list<string>::iterator it = aGroupNames.begin(); it != aGroupNames.end(); it++ ) {
-    SMESH_Group* aGroup = AddGroup( SMDSAbs_All, it->c_str(), anId );
-    if ( aGroup ) {
-      if(MYDEBUG) MESSAGE("MEDToMesh - group added: "<<it->c_str());      
-      SMESHDS_Group* aGroupDS = dynamic_cast<SMESHDS_Group*>( aGroup->GetGroupDS() );
-      if ( aGroupDS ) {
-        aGroupDS->SetStoreName( it->c_str() );
-        myReader.GetGroup( aGroupDS );
-      }
-    }
-  }
-  return (int) status;
-}
-
-//=======================================================================
-//function : STLToMesh
-//purpose  : 
-//=======================================================================
-
-int SMESH_Mesh::STLToMesh(const char* theFileName)
-{
-  if(MYDEBUG) MESSAGE("UNVToMesh - theFileName = "<<theFileName);
-  if(_isShapeToMesh)
-    throw SALOME_Exception(LOCALIZED("a shape to mesh has already been defined"));
-  _isShapeToMesh = true;
-  DriverSTL_R_SMDS_Mesh myReader;
-  myReader.SetMesh(_myMeshDS);
-  myReader.SetFile(theFileName);
-  myReader.SetMeshId(-1);
-  myReader.Perform();
-  if(MYDEBUG){
-    MESSAGE("MEDToMesh - _myMeshDS->NbNodes() = "<<_myMeshDS->NbNodes());
-    MESSAGE("MEDToMesh - _myMeshDS->NbEdges() = "<<_myMeshDS->NbEdges());
-    MESSAGE("MEDToMesh - _myMeshDS->NbFaces() = "<<_myMeshDS->NbFaces());
-    MESSAGE("MEDToMesh - _myMeshDS->NbVolumes() = "<<_myMeshDS->NbVolumes());
-  }
-  return 1;
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-SMESH_Hypothesis::Hypothesis_Status
-  SMESH_Mesh::AddHypothesis(const TopoDS_Shape & aSubShape,
-                            int                  anHypId  ) throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  if(MYDEBUG) MESSAGE("SMESH_Mesh::AddHypothesis");
-
-  SMESH_subMesh *subMesh = GetSubMesh(aSubShape);
-  SMESHDS_SubMesh *subMeshDS = subMesh->GetSubMeshDS();
-  if ( subMeshDS && subMeshDS->IsComplexSubmesh() ) // group of sub-shapes and maybe of not sub-
-  {
-    MESSAGE("AddHypothesis() to complex submesh");
-    // return the worst but not fatal state of all group memebers
-    SMESH_Hypothesis::Hypothesis_Status aBestRet, aWorstNotFatal, ret;
-    aBestRet = SMESH_Hypothesis::HYP_BAD_DIM;
-    aWorstNotFatal = SMESH_Hypothesis::HYP_OK;
-    for ( TopoDS_Iterator itS ( aSubShape ); itS.More(); itS.Next())
-    {
-      if ( !GetMeshDS()->ShapeToIndex( itS.Value() ))
-        continue; // not sub-shape
-      ret = AddHypothesis( itS.Value(), anHypId );
-      if ( !SMESH_Hypothesis::IsStatusFatal( ret ) && ret > aWorstNotFatal )
-        aWorstNotFatal = ret;
-      if ( ret < aBestRet )
-        aBestRet = ret;
-    }
-    if ( SMESH_Hypothesis::IsStatusFatal( aBestRet ))
-      return aBestRet;
-    return aWorstNotFatal;
-  }
-
-  StudyContextStruct *sc = _gen->GetStudyContext(_studyId);
-  if (sc->mapHypothesis.find(anHypId) == sc->mapHypothesis.end())
-  {
-    if(MYDEBUG) MESSAGE("Hypothesis ID does not give an hypothesis");
-    if(MYDEBUG) {
-      SCRUTE(_studyId);
-      SCRUTE(anHypId);
-    }
-    throw SALOME_Exception(LOCALIZED("hypothesis does not exist"));
-  }
-
-  SMESH_Hypothesis *anHyp = sc->mapHypothesis[anHypId];
-  MESSAGE( "SMESH_Mesh::AddHypothesis " << anHyp->GetName() );
-
-  bool isGlobalHyp = IsMainShape( aSubShape );
-
-  // NotConformAllowed can be only global
-  if ( !isGlobalHyp )
-  {
-    string hypName = anHyp->GetName();
-    if ( hypName == "NotConformAllowed" )
-    {
-      if(MYDEBUG) MESSAGE( "Hypotesis <NotConformAllowed> can be only global" );
-      return SMESH_Hypothesis::HYP_INCOMPATIBLE;
-    }
-  }
-
-  // shape 
-
-  int event;
-  if (anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO)
-    event = SMESH_subMesh::ADD_HYP;
-  else
-    event = SMESH_subMesh::ADD_ALGO;
-  SMESH_Hypothesis::Hypothesis_Status ret = subMesh->AlgoStateEngine(event, anHyp);
-
-  // subShapes
-  if (!SMESH_Hypothesis::IsStatusFatal(ret) &&
-      !subMesh->IsApplicableHypotesis( anHyp )) // is added on father
-  {
-    if (anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO)
-      event = SMESH_subMesh::ADD_FATHER_HYP;
-    else
-      event = SMESH_subMesh::ADD_FATHER_ALGO;
-    SMESH_Hypothesis::Hypothesis_Status ret2 =
-      subMesh->SubMeshesAlgoStateEngine(event, anHyp);
-    if (ret2 > ret)
-      ret = ret2;
-
-    // check concurent hypotheses on ansestors
-    if (ret < SMESH_Hypothesis::HYP_CONCURENT && !isGlobalHyp )
-    {
-      const map < int, SMESH_subMesh * >& smMap = subMesh->DependsOn();
-      map < int, SMESH_subMesh * >::const_iterator smIt = smMap.begin();
-      for ( ; smIt != smMap.end(); smIt++ ) {
-        if ( smIt->second->IsApplicableHypotesis( anHyp )) {
-          ret2 = smIt->second->CheckConcurentHypothesis( anHyp->GetType() );
-          if (ret2 > ret) {
-            ret = ret2;
-            break;
-          }
-        }
-      }
-    }
-  }
-
-  if(MYDEBUG) subMesh->DumpAlgoState(true);
-  SCRUTE(ret);
-  return ret;
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-SMESH_Hypothesis::Hypothesis_Status
-  SMESH_Mesh::RemoveHypothesis(const TopoDS_Shape & aSubShape,
-                               int anHypId)throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  if(MYDEBUG) MESSAGE("SMESH_Mesh::RemoveHypothesis");
-  
-  SMESH_subMesh *subMesh = GetSubMesh(aSubShape);
-  SMESHDS_SubMesh *subMeshDS = subMesh->GetSubMeshDS();
-  if ( subMeshDS && subMeshDS->IsComplexSubmesh() )
-  {
-    // return the worst but not fatal state of all group memebers
-    SMESH_Hypothesis::Hypothesis_Status aBestRet, aWorstNotFatal, ret;
-    aBestRet = SMESH_Hypothesis::HYP_BAD_DIM;
-    aWorstNotFatal = SMESH_Hypothesis::HYP_OK;
-    for ( TopoDS_Iterator itS ( aSubShape ); itS.More(); itS.Next())
-    {
-      if ( !GetMeshDS()->ShapeToIndex( itS.Value() ))
-        continue; // not sub-shape
-      ret = RemoveHypothesis( itS.Value(), anHypId );
-      if ( !SMESH_Hypothesis::IsStatusFatal( ret ) && ret > aWorstNotFatal )
-        aWorstNotFatal = ret;
-      if ( ret < aBestRet )
-        aBestRet = ret;
-    }
-    if ( SMESH_Hypothesis::IsStatusFatal( aBestRet ))
-      return aBestRet;
-    return aWorstNotFatal;
-  }
-
-  StudyContextStruct *sc = _gen->GetStudyContext(_studyId);
-  if (sc->mapHypothesis.find(anHypId) == sc->mapHypothesis.end())
-    throw SALOME_Exception(LOCALIZED("hypothesis does not exist"));
-  
-  SMESH_Hypothesis *anHyp = sc->mapHypothesis[anHypId];
-  int hypType = anHyp->GetType();
-  if(MYDEBUG) SCRUTE(hypType);
-  int event;
-  
-  // shape 
-  
-  if (anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO)
-    event = SMESH_subMesh::REMOVE_HYP;
-  else
-    event = SMESH_subMesh::REMOVE_ALGO;
-  SMESH_Hypothesis::Hypothesis_Status ret = subMesh->AlgoStateEngine(event, anHyp);
-
-  // there may appear concurrent hyps that were covered by the removed hyp
-  if (ret < SMESH_Hypothesis::HYP_CONCURENT &&
-      subMesh->IsApplicableHypotesis( anHyp ) &&
-      subMesh->CheckConcurentHypothesis( anHyp->GetType() ) != SMESH_Hypothesis::HYP_OK)
-    ret = SMESH_Hypothesis::HYP_CONCURENT;
-
-  // subShapes
-  if (!SMESH_Hypothesis::IsStatusFatal(ret) &&
-      !subMesh->IsApplicableHypotesis( anHyp )) // is removed from father
-  {
-    if (anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO)
-      event = SMESH_subMesh::REMOVE_FATHER_HYP;
-    else
-      event = SMESH_subMesh::REMOVE_FATHER_ALGO;
-    SMESH_Hypothesis::Hypothesis_Status ret2 =
-      subMesh->SubMeshesAlgoStateEngine(event, anHyp);
-    if (ret2 > ret) // more severe
-      ret = ret2;
-
-    // check concurent hypotheses on ansestors
-    if (ret < SMESH_Hypothesis::HYP_CONCURENT && !IsMainShape( aSubShape ) )
-    {
-      const map < int, SMESH_subMesh * >& smMap = subMesh->DependsOn();
-      map < int, SMESH_subMesh * >::const_iterator smIt = smMap.begin();
-      for ( ; smIt != smMap.end(); smIt++ ) {
-        if ( smIt->second->IsApplicableHypotesis( anHyp )) {
-          ret2 = smIt->second->CheckConcurentHypothesis( anHyp->GetType() );
-          if (ret2 > ret) {
-            ret = ret2;
-            break;
-          }
-        }
-      }
-    }
-  }
-  
-  if(MYDEBUG) subMesh->DumpAlgoState(true);
-  if(MYDEBUG) SCRUTE(ret);
-  return ret;
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-SMESHDS_Mesh * SMESH_Mesh::GetMeshDS()
-{
-  return _myMeshDS;
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-const list<const SMESHDS_Hypothesis*>&
-SMESH_Mesh::GetHypothesisList(const TopoDS_Shape & aSubShape) const
-  throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  return _myMeshDS->GetHypothesis(aSubShape);
-}
-
-//=======================================================================
-//function : GetHypothesis
-//purpose  : 
-//=======================================================================
-
-const SMESH_Hypothesis * SMESH_Mesh::GetHypothesis(const TopoDS_Shape &    aSubShape,
-                                                   const SMESH_HypoFilter& aFilter,
-                                                   const bool              andAncestors) const
-{
-  {
-    const list<const SMESHDS_Hypothesis*>& hypList = _myMeshDS->GetHypothesis(aSubShape);
-    list<const SMESHDS_Hypothesis*>::const_iterator hyp = hypList.begin();
-    for ( ; hyp != hypList.end(); hyp++ ) {
-      const SMESH_Hypothesis * h = static_cast<const SMESH_Hypothesis*>( *hyp );
-      if ( aFilter.IsOk( h, aSubShape))
-        return h;
-    }
-  }
-  if ( andAncestors )
-  {
-    TopTools_ListIteratorOfListOfShape it( GetAncestors( aSubShape ));
-    for (; it.More(); it.Next() )
-    {
-      const list<const SMESHDS_Hypothesis*>& hypList = _myMeshDS->GetHypothesis(it.Value());
-      list<const SMESHDS_Hypothesis*>::const_iterator hyp = hypList.begin();
-      for ( ; hyp != hypList.end(); hyp++ ) {
-        const SMESH_Hypothesis * h = static_cast<const SMESH_Hypothesis*>( *hyp );
-        if (aFilter.IsOk( h, it.Value() ))
-          return h;
-      }
-    }
-  }
-  return 0;
-}
-
-//=======================================================================
-//function : GetHypotheses
-//purpose  : 
-//=======================================================================
-
-bool SMESH_Mesh::GetHypotheses(const TopoDS_Shape &                aSubShape,
-                               const SMESH_HypoFilter&             aFilter,
-                               list <const SMESHDS_Hypothesis * >& aHypList,
-                               const bool                          andAncestors) const
-{
-  int nbHyp = 0;
-  {
-    const list<const SMESHDS_Hypothesis*>& hypList = _myMeshDS->GetHypothesis(aSubShape);
-    list<const SMESHDS_Hypothesis*>::const_iterator hyp = hypList.begin();
-    for ( ; hyp != hypList.end(); hyp++ )
-      if ( aFilter.IsOk (static_cast<const SMESH_Hypothesis*>( *hyp ), aSubShape)) {
-        aHypList.push_back( *hyp );
-        nbHyp++;
-      }
-  }
-  // get hypos from shape of one type only: if any hypo is found on edge, do
-  // not look up on faces
-  if ( !nbHyp && andAncestors )
-  {
-    TopTools_MapOfShape map;
-    TopTools_ListIteratorOfListOfShape it( GetAncestors( aSubShape ));
-    int shapeType = it.More() ? it.Value().ShapeType() : TopAbs_SHAPE;
-    for (; it.More(); it.Next() )
-    {
-      if ( nbHyp && shapeType != it.Value().ShapeType() )
-        break;
-      shapeType = it.Value().ShapeType();
-      if ( !map.Add( it.Value() ))
-        continue;
-      const list<const SMESHDS_Hypothesis*>& hypList = _myMeshDS->GetHypothesis(it.Value());
-      list<const SMESHDS_Hypothesis*>::const_iterator hyp = hypList.begin();
-      for ( ; hyp != hypList.end(); hyp++ )
-        if (aFilter.IsOk( static_cast<const SMESH_Hypothesis*>( *hyp ), it.Value() )) {
-        aHypList.push_back( *hyp );
-        nbHyp++;
-      }
-    }
-  }
-  return nbHyp;
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-const list<SMESHDS_Command*> & SMESH_Mesh::GetLog() throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  if(MYDEBUG) MESSAGE("SMESH_Mesh::GetLog");
-  return _myMeshDS->GetScript()->GetCommands();
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-void SMESH_Mesh::ClearLog() throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  if(MYDEBUG) MESSAGE("SMESH_Mesh::ClearLog");
-  _myMeshDS->GetScript()->Clear();
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-int SMESH_Mesh::GetId()
-{
-  if(MYDEBUG) MESSAGE("SMESH_Mesh::GetId");
-  return _id;
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-SMESH_Gen *SMESH_Mesh::GetGen()
-{
-  return _gen;
-}
-
-//=============================================================================
-/*!
- * Get or Create the SMESH_subMesh object implementation
- */
-//=============================================================================
-
-SMESH_subMesh *SMESH_Mesh::GetSubMesh(const TopoDS_Shape & aSubShape)
-throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  SMESH_subMesh *aSubMesh;
-  int index = _myMeshDS->ShapeToIndex(aSubShape);
-  
-  // for submeshes on GEOM Group
-  if ( !index && aSubShape.ShapeType() == TopAbs_COMPOUND ) {
-    TopoDS_Iterator it( aSubShape );
-    if ( it.More() )
-      index = _myMeshDS->AddCompoundSubmesh( aSubShape, it.Value().ShapeType() );
-  }
-
-  if (_mapSubMesh.find(index) != _mapSubMesh.end())
-    {
-      aSubMesh = _mapSubMesh[index];
-    }
-  else
-    {
-      aSubMesh = new SMESH_subMesh(index, this, _myMeshDS, aSubShape);
-      _mapSubMesh[index] = aSubMesh;
-    }
-  return aSubMesh;
-}
-
-//=============================================================================
-/*!
- * Get the SMESH_subMesh object implementation. Dont create it, return null
- * if it does not exist.
- */
-//=============================================================================
-
-SMESH_subMesh *SMESH_Mesh::GetSubMeshContaining(const TopoDS_Shape & aSubShape)
-throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  bool isFound = false;
-  SMESH_subMesh *aSubMesh = NULL;
-  
-  int index = _myMeshDS->ShapeToIndex(aSubShape);
-  if (_mapSubMesh.find(index) != _mapSubMesh.end())
-    {
-      aSubMesh = _mapSubMesh[index];
-      isFound = true;
-    }
-  if (!isFound)
-    aSubMesh = NULL;
-  return aSubMesh;
-}
-
-//=============================================================================
-/*!
- * Get the SMESH_subMesh object implementation. Dont create it, return null
- * if it does not exist.
- */
-//=============================================================================
-
-SMESH_subMesh *SMESH_Mesh::GetSubMeshContaining(const int aShapeID)
-throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  
-  map <int, SMESH_subMesh *>::iterator i_sm = _mapSubMesh.find(aShapeID);
-  if (i_sm == _mapSubMesh.end())
-    return NULL;
-  return i_sm->second;
-}
-
-//=======================================================================
-//function : IsUsedHypothesis
-//purpose  : Return True if anHyp is used to mesh aSubShape
-//=======================================================================
-
-bool SMESH_Mesh::IsUsedHypothesis(SMESHDS_Hypothesis * anHyp,
-                                  const TopoDS_Shape & aSubShape)
-{
-  SMESH_Hypothesis* hyp = static_cast<SMESH_Hypothesis*>(anHyp);
-  // check if anHyp is applicable to aSubShape
-  SMESH_subMesh * subMesh = GetSubMeshContaining( aSubShape );
-  if ( !subMesh || !subMesh->IsApplicableHypotesis( hyp ))
-    return false;
-
-  SMESH_Algo *algo = _gen->GetAlgo(*this, aSubShape);
-
-  // algorithm
-  if (anHyp->GetType() > SMESHDS_Hypothesis::PARAM_ALGO)
-    return ( anHyp == algo );
-
-  // algorithm parameter
-  if (algo)
-  {
-    // look trough hypotheses used by algo
-    const list <const SMESHDS_Hypothesis * >&usedHyps =
-      algo->GetUsedHypothesis(*this, aSubShape);
-    return ( find( usedHyps.begin(), usedHyps.end(), anHyp ) != usedHyps.end() );
-  }
-
-  // look through all assigned hypotheses
-  SMESH_HypoFilter filter( SMESH_HypoFilter::Is( hyp ));
-  return GetHypothesis( aSubShape, filter, true );
-}
-
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-const list < SMESH_subMesh * >&
-       SMESH_Mesh::GetSubMeshUsingHypothesis(SMESHDS_Hypothesis * anHyp)
-throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-       if(MYDEBUG) MESSAGE("SMESH_Mesh::GetSubMeshUsingHypothesis");
-       map < int, SMESH_subMesh * >::iterator itsm;
-       _subMeshesUsingHypothesisList.clear();
-       for (itsm = _mapSubMesh.begin(); itsm != _mapSubMesh.end(); itsm++)
-       {
-               SMESH_subMesh *aSubMesh = (*itsm).second;
-               if ( IsUsedHypothesis ( anHyp, aSubMesh->GetSubShape() ))
-                       _subMeshesUsingHypothesisList.push_back(aSubMesh);
-       }
-       return _subMeshesUsingHypothesisList;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-void SMESH_Mesh::ExportMED(const char *file, 
-                          const char* theMeshName, 
-                          bool theAutoGroups,
-                          int theVersion) 
-  throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  DriverMED_W_SMESHDS_Mesh myWriter;
-  myWriter.SetFile    ( file, MED::EVersion(theVersion) );
-  myWriter.SetMesh    ( _myMeshDS   );
-  if ( !theMeshName ) 
-    myWriter.SetMeshId  ( _idDoc      );
-  else {
-    myWriter.SetMeshId  ( -1          );
-    myWriter.SetMeshName( theMeshName );
-  }
-
-  if ( theAutoGroups ) {
-    myWriter.AddGroupOfNodes();
-    myWriter.AddGroupOfEdges();
-    myWriter.AddGroupOfFaces();
-    myWriter.AddGroupOfVolumes();
-  }
-
-  for ( map<int, SMESH_Group*>::iterator it = _mapGroup.begin(); it != _mapGroup.end(); it++ ) {
-    SMESH_Group*       aGroup   = it->second;
-    SMESHDS_GroupBase* aGroupDS = aGroup->GetGroupDS();
-    if ( aGroupDS ) {
-      aGroupDS->SetStoreName( aGroup->GetName() );
-      myWriter.AddGroup( aGroupDS );
-    }
-  }
-
-  myWriter.Perform();
-}
-
-void SMESH_Mesh::ExportDAT(const char *file) throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  DriverDAT_W_SMDS_Mesh myWriter;
-  myWriter.SetFile(string(file));
-  myWriter.SetMesh(_myMeshDS);
-  myWriter.SetMeshId(_idDoc);
-  myWriter.Perform();
-}
-
-void SMESH_Mesh::ExportUNV(const char *file) throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  DriverUNV_W_SMDS_Mesh myWriter;
-  myWriter.SetFile(string(file));
-  myWriter.SetMesh(_myMeshDS);
-  myWriter.SetMeshId(_idDoc);
-  myWriter.Perform();
-}
-
-void SMESH_Mesh::ExportSTL(const char *file, const bool isascii) throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  DriverSTL_W_SMDS_Mesh myWriter;
-  myWriter.SetFile(string(file));
-  myWriter.SetIsAscii( isascii );
-  myWriter.SetMesh(_myMeshDS);
-  myWriter.SetMeshId(_idDoc);
-  myWriter.Perform();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-int SMESH_Mesh::NbNodes() throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  return _myMeshDS->NbNodes();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-int SMESH_Mesh::NbEdges() throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  return _myMeshDS->NbEdges();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-int SMESH_Mesh::NbFaces() throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  return _myMeshDS->NbFaces();
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return the number of 3 nodes faces in the mesh. This method run in O(n)
-///////////////////////////////////////////////////////////////////////////////
-int SMESH_Mesh::NbTriangles() throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  int Nb = 0;
-  
-  SMDS_FaceIteratorPtr itFaces=_myMeshDS->facesIterator();
-  //while(itFaces->more()) if(itFaces->next()->NbNodes()==3) Nb++;
-  const SMDS_MeshFace * curFace;
-  while (itFaces->more()) {
-    curFace = itFaces->next();
-    if (!curFace->IsPoly() && curFace->NbNodes() == 3) Nb++;
-  }
-  return Nb;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return the number of 4 nodes faces in the mesh. This method run in O(n)
-///////////////////////////////////////////////////////////////////////////////
-int SMESH_Mesh::NbQuadrangles() throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  int Nb = 0;
-  
-  SMDS_FaceIteratorPtr itFaces=_myMeshDS->facesIterator();
-  //while(itFaces->more()) if(itFaces->next()->NbNodes()==4) Nb++;
-  const SMDS_MeshFace * curFace;
-  while (itFaces->more()) {
-    curFace = itFaces->next();
-    if (!curFace->IsPoly() && curFace->NbNodes() == 4) Nb++;
-  }
-  return Nb;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return the number of polygonal faces in the mesh. This method run in O(n)
-///////////////////////////////////////////////////////////////////////////////
-int SMESH_Mesh::NbPolygons() throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  int Nb = 0;
-  SMDS_FaceIteratorPtr itFaces = _myMeshDS->facesIterator();
-  while (itFaces->more())
-    if (itFaces->next()->IsPoly()) Nb++;
-  return Nb;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-int SMESH_Mesh::NbVolumes() throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  return _myMeshDS->NbVolumes();
-}
-
-int SMESH_Mesh::NbTetras() throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  int Nb = 0;
-  SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
-  //while(itVolumes->more()) if(itVolumes->next()->NbNodes()==4) Nb++;
-  const SMDS_MeshVolume * curVolume;
-  while (itVolumes->more()) {
-    curVolume = itVolumes->next();
-    if (!curVolume->IsPoly() && curVolume->NbNodes() == 4) Nb++;
-  }
-  return Nb;
-}
-
-int SMESH_Mesh::NbHexas() throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  int Nb = 0;
-  SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
-  //while(itVolumes->more()) if(itVolumes->next()->NbNodes()==8) Nb++;
-  const SMDS_MeshVolume * curVolume;
-  while (itVolumes->more()) {
-    curVolume = itVolumes->next();
-    if (!curVolume->IsPoly() && curVolume->NbNodes() == 8) Nb++;
-  }
-  return Nb;
-}
-
-int SMESH_Mesh::NbPyramids() throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  int Nb = 0;
-  SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
-  //while(itVolumes->more()) if(itVolumes->next()->NbNodes()==5) Nb++;
-  const SMDS_MeshVolume * curVolume;
-  while (itVolumes->more()) {
-    curVolume = itVolumes->next();
-    if (!curVolume->IsPoly() && curVolume->NbNodes() == 5) Nb++;
-  }
-  return Nb;
-}
-
-int SMESH_Mesh::NbPrisms() throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  int Nb = 0;
-  SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
-  //while(itVolumes->more()) if(itVolumes->next()->NbNodes()==6) Nb++;
-  const SMDS_MeshVolume * curVolume;
-  while (itVolumes->more()) {
-    curVolume = itVolumes->next();
-    if (!curVolume->IsPoly() && curVolume->NbNodes() == 6) Nb++;
-  }
-  return Nb;
-}
-
-int SMESH_Mesh::NbPolyhedrons() throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  int Nb = 0;
-  SMDS_VolumeIteratorPtr itVolumes = _myMeshDS->volumesIterator();
-  while (itVolumes->more())
-    if (itVolumes->next()->IsPoly()) Nb++;
-  return Nb;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-int SMESH_Mesh::NbSubMesh() throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  return _myMeshDS->NbSubMesh();
-}
-
-//=======================================================================
-//function : IsNotConformAllowed
-//purpose  : check if a hypothesis alowing notconform mesh is present
-//=======================================================================
-
-bool SMESH_Mesh::IsNotConformAllowed() const
-{
-  if(MYDEBUG) MESSAGE("SMESH_Mesh::IsNotConformAllowed");
-
-  SMESH_HypoFilter filter( SMESH_HypoFilter::HasName( "NotConformAllowed" ));
-  return GetHypothesis( _myMeshDS->ShapeToMesh(), filter, false );
-}
-
-//=======================================================================
-//function : IsMainShape
-//purpose  : 
-//=======================================================================
-
-bool SMESH_Mesh::IsMainShape(const TopoDS_Shape& theShape) const
-{
-  return theShape.IsSame(_myMeshDS->ShapeToMesh() );
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_Group* SMESH_Mesh::AddGroup (const SMDSAbs_ElementType theType,
-                                   const char*               theName,
-                                  int&                      theId,
-                                   const TopoDS_Shape&       theShape)
-{
-  if (_mapGroup.find(_groupId) != _mapGroup.end())
-    return NULL;
-  theId = _groupId;
-  SMESH_Group* aGroup = new SMESH_Group (theId, this, theType, theName, theShape);
-  GetMeshDS()->AddGroup( aGroup->GetGroupDS() );
-  _mapGroup[_groupId++] = aGroup;
-  return aGroup;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_Group* SMESH_Mesh::GetGroup (const int theGroupID)
-{
-  if (_mapGroup.find(theGroupID) == _mapGroup.end())
-    return NULL;
-  return _mapGroup[theGroupID];
-}
-
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-list<int> SMESH_Mesh::GetGroupIds()
-{
-  list<int> anIds;
-  for ( map<int, SMESH_Group*>::const_iterator it = _mapGroup.begin(); it != _mapGroup.end(); it++ )
-    anIds.push_back( it->first );
-  
-  return anIds;
-}
-
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_Mesh::RemoveGroup (const int theGroupID)
-{
-  if (_mapGroup.find(theGroupID) == _mapGroup.end())
-    return;
-  GetMeshDS()->RemoveGroup( _mapGroup[theGroupID]->GetGroupDS() );
-  _mapGroup.erase (theGroupID);
-  delete _mapGroup[theGroupID];
-}
-
-//=============================================================================
-/*!
- *  IsLocal1DHypothesis
- *  Returns a local 1D hypothesis used for theEdge
- */
-//=============================================================================
-const SMESH_Hypothesis* SMESH_Mesh::IsLocal1DHypothesis (const TopoDS_Shape& theEdge)
-{
-  SMESH_HypoFilter filter( SMESH_HypoFilter::HasDim( 1 ));
-  filter.AndNot( SMESH_HypoFilter::IsAlgo() );
-  filter.AndNot( SMESH_HypoFilter::IsGlobal( GetMeshDS()->ShapeToMesh() ));
-
-  return GetHypothesis( theEdge, filter, true );
-}
-
-//=============================================================================
-/*!
- *  IsPropagationHypothesis
- */
-//=============================================================================
-bool SMESH_Mesh::IsPropagationHypothesis (const TopoDS_Shape& theEdge)
-{
-  return _mapPropagationChains.Contains(theEdge);
-}
-
-//=============================================================================
-/*!
- *  IsPropagatedHypothesis
- */
-//=============================================================================
-bool SMESH_Mesh::IsPropagatedHypothesis (const TopoDS_Shape& theEdge,
-                                         TopoDS_Shape&       theMainEdge)
-{
-  int nbChains = _mapPropagationChains.Extent();
-  for (int i = 1; i <= nbChains; i++) {
-    const TopTools_IndexedMapOfShape& aChain = _mapPropagationChains.FindFromIndex(i);
-    if (aChain.Contains(theEdge)) {
-      theMainEdge = _mapPropagationChains.FindKey(i);
-      return true;
-    }
-  }
-
-  return false;
-}
-//=============================================================================
-/*!
- *  IsReversedInChain
- */
-//=============================================================================
-
-bool SMESH_Mesh::IsReversedInChain (const TopoDS_Shape& theEdge,
-                                    const TopoDS_Shape& theMainEdge)
-{
-  if ( !theMainEdge.IsNull() && !theEdge.IsNull() &&
-      _mapPropagationChains.Contains( theMainEdge ))
-  {
-    const TopTools_IndexedMapOfShape& aChain =
-      _mapPropagationChains.FindFromKey( theMainEdge );
-    int index = aChain.FindIndex( theEdge );
-    if ( index )
-      return aChain(index).Orientation() == TopAbs_REVERSED;
-  }
-  return false;
-}
-
-//=============================================================================
-/*!
- *  CleanMeshOnPropagationChain
- */
-//=============================================================================
-void SMESH_Mesh::CleanMeshOnPropagationChain (const TopoDS_Shape& theMainEdge)
-{
-  const TopTools_IndexedMapOfShape& aChain = _mapPropagationChains.FindFromKey(theMainEdge);
-  int i, nbEdges = aChain.Extent();
-  for (i = 1; i <= nbEdges; i++) {
-    TopoDS_Shape anEdge = aChain.FindKey(i);
-    SMESH_subMesh *subMesh = GetSubMesh(anEdge);
-    SMESHDS_SubMesh *subMeshDS = subMesh->GetSubMeshDS();
-    if (subMeshDS && subMeshDS->NbElements() > 0) {
-      subMesh->ComputeStateEngine(SMESH_subMesh::CLEANDEP);
-    }
-  }
-}
-
-//=============================================================================
-/*!
- *  RebuildPropagationChains
- *  Rebuild all existing propagation chains.
- *  Have to be used, if 1D hypothesis have been assigned/removed to/from any edge
- */
-//=============================================================================
-bool SMESH_Mesh::RebuildPropagationChains()
-{
-  bool ret = true;
-
-  // Clean all chains, because they can be not up-to-date
-  int i, nbChains = _mapPropagationChains.Extent();
-  for (i = 1; i <= nbChains; i++) {
-    TopoDS_Shape aMainEdge = _mapPropagationChains.FindKey(i);
-    CleanMeshOnPropagationChain(aMainEdge);
-    _mapPropagationChains.ChangeFromIndex(i).Clear();
-  }
-
-  // Build all chains
-  for (i = 1; i <= nbChains; i++) {
-    TopoDS_Shape aMainEdge = _mapPropagationChains.FindKey(i);
-    if (!BuildPropagationChain(aMainEdge))
-      ret = false;
-    CleanMeshOnPropagationChain(aMainEdge);
-  }
-
-  return ret;
-}
-
-//=============================================================================
-/*!
- *  RemovePropagationChain
- *  Have to be used, if Propagation hypothesis is removed from <theMainEdge>
- */
-//=============================================================================
-bool SMESH_Mesh::RemovePropagationChain (const TopoDS_Shape& theMainEdge)
-{
-  if (!_mapPropagationChains.Contains(theMainEdge))
-    return false;
-
-  // Clean mesh elements and nodes, built on the chain
-  CleanMeshOnPropagationChain(theMainEdge);
-
-  // Clean the chain
-  _mapPropagationChains.ChangeFromKey(theMainEdge).Clear();
-
-  // Remove the chain from the map
-  int i = _mapPropagationChains.FindIndex(theMainEdge);
-  if ( i == _mapPropagationChains.Extent() )
-    _mapPropagationChains.RemoveLast();
-  else {
-    TopoDS_Vertex anEmptyShape;
-    BRep_Builder BB;
-    BB.MakeVertex(anEmptyShape, gp_Pnt(0,0,0), 0.1);
-    TopTools_IndexedMapOfShape anEmptyMap;
-    _mapPropagationChains.Substitute(i, anEmptyShape, anEmptyMap);
-  }
-
-  return true;
-}
-
-//=============================================================================
-/*!
- *  BuildPropagationChain
- */
-//=============================================================================
-bool SMESH_Mesh::BuildPropagationChain (const TopoDS_Shape& theMainEdge)
-{
-  if (theMainEdge.ShapeType() != TopAbs_EDGE) return true;
-
-  // Add new chain, if there is no
-  if (!_mapPropagationChains.Contains(theMainEdge)) {
-    TopTools_IndexedMapOfShape aNewChain;
-    _mapPropagationChains.Add(theMainEdge, aNewChain);
-  }
-
-  // Check presence of 1D hypothesis to be propagated
-  const SMESH_Hypothesis* aMainHyp = IsLocal1DHypothesis(theMainEdge);
-  if (!aMainHyp) {
-    MESSAGE("Warning: There is no 1D hypothesis to propagate. Please, assign.");
-    return true;
-  }
-
-  // Edges, on which the 1D hypothesis will be propagated from <theMainEdge>
-  TopTools_IndexedMapOfShape& aChain = _mapPropagationChains.ChangeFromKey(theMainEdge);
-  if (aChain.Extent() > 0) {
-    CleanMeshOnPropagationChain(theMainEdge);
-    aChain.Clear();
-  }
-
-  // At first put <theMainEdge> in the chain
-  aChain.Add(theMainEdge);
-
-  // List of edges, added to chain on the previous cycle pass
-  TopTools_ListOfShape listPrevEdges;
-  listPrevEdges.Append(theMainEdge.Oriented( TopAbs_FORWARD ));
-
-//   5____4____3____4____5____6
-//   |    |    |    |    |    |
-//   |    |    |    |    |    |
-//   4____3____2____3____4____5
-//   |    |    |    |    |    |      Number in the each knot of
-//   |    |    |    |    |    |      grid indicates cycle pass,
-//   3____2____1____2____3____4      on which corresponding edge
-//   |    |    |    |    |    |      (perpendicular to the plane
-//   |    |    |    |    |    |      of view) will be found.
-//   2____1____0____1____2____3
-//   |    |    |    |    |    |
-//   |    |    |    |    |    |
-//   3____2____1____2____3____4
-
-  // Collect all edges pass by pass
-  while (listPrevEdges.Extent() > 0) {
-    // List of edges, added to chain on this cycle pass
-    TopTools_ListOfShape listCurEdges;
-
-    // Find the next portion of edges
-    TopTools_ListIteratorOfListOfShape itE (listPrevEdges);
-    for (; itE.More(); itE.Next()) {
-      TopoDS_Shape anE = itE.Value();
-
-      // Iterate on faces, having edge <anE>
-      TopTools_ListIteratorOfListOfShape itA (GetAncestors(anE));
-      for (; itA.More(); itA.Next()) {
-        TopoDS_Shape aW = itA.Value();
-
-        // There are objects of different type among the ancestors of edge
-        if (aW.ShapeType() == TopAbs_WIRE) {
-          TopoDS_Shape anOppE;
-
-          BRepTools_WireExplorer aWE (TopoDS::Wire(aW));
-          Standard_Integer nb = 1, found = 0;
-          TopTools_Array1OfShape anEdges (1,4);
-          for (; aWE.More(); aWE.Next(), nb++) {
-            if (nb > 4) {
-              found = 0;
-              break;
-            }
-            anEdges(nb) = aWE.Current();
-            if (!_mapAncestors.Contains(anEdges(nb))) {
-              MESSAGE("WIRE EXPLORER HAVE GIVEN AN INVALID EDGE !!!");
-              break;
-            }
-            if (anEdges(nb).IsSame(anE)) found = nb;
-          }
-
-          if (nb == 5 && found > 0) {
-            // Quadrangle face found, get an opposite edge
-            Standard_Integer opp = found + 2;
-            if (opp > 4) opp -= 4;
-            anOppE = anEdges(opp);
-
-            // add anOppE to aChain if ...
-            if (!aChain.Contains(anOppE)) { // ... anOppE is not in aChain
-              if (!IsLocal1DHypothesis(anOppE)) { // ... no other 1d hyp on anOppE
-                TopoDS_Shape aMainEdgeForOppEdge; // ... no other hyp is propagated to anOppE
-                if (!IsPropagatedHypothesis(anOppE, aMainEdgeForOppEdge))
-                {
-                  // Add found edge to the chain oriented so that to
-                  // have it co-directed with a forward MainEdge
-                  TopAbs_Orientation ori = anE.Orientation();
-                  if ( anEdges(opp).Orientation() == anEdges(found).Orientation() )
-                    ori = TopAbs::Reverse( ori );
-                  anOppE.Orientation( ori );
-                  aChain.Add(anOppE);
-                  listCurEdges.Append(anOppE);
-                }
-                else {
-                  // Collision!
-                  MESSAGE("Error: Collision between propagated hypotheses");
-                  CleanMeshOnPropagationChain(theMainEdge);
-                  aChain.Clear();
-                  return ( aMainHyp == IsLocal1DHypothesis(aMainEdgeForOppEdge) );
-                }
-              }
-            }
-          } // if (nb == 5 && found > 0)
-        } // if (aF.ShapeType() == TopAbs_WIRE)
-      } // for (; itF.More(); itF.Next())
-    } // for (; itE.More(); itE.Next())
-
-    listPrevEdges = listCurEdges;
-  } // while (listPrevEdges.Extent() > 0)
-
-  CleanMeshOnPropagationChain(theMainEdge);
-  return true;
-}
-
-//=======================================================================
-//function : GetAncestors
-//purpose  : return list of ancestors of theSubShape in the order
-//           that lower dimention shapes come first.
-//=======================================================================
-
-const TopTools_ListOfShape& SMESH_Mesh::GetAncestors(const TopoDS_Shape& theS) const
-{
-  if ( _mapAncestors.Contains( theS ) )
-    return _mapAncestors.FindFromKey( theS );
-
-  static TopTools_ListOfShape emptyList;
-  return emptyList;
-}
-
-//=======================================================================
-//function : Dump
-//purpose  : dumps contents of mesh to stream [ debug purposes ]
-//=======================================================================
-ostream& SMESH_Mesh::Dump(ostream& save)
-{
-  save << "========================== Dump contents of mesh ==========================" << endl;
-  save << "1) Total number of nodes:     " << NbNodes() << endl;
-  save << "2) Total number of edges:     " << NbEdges() << endl;
-  save << "3) Total number of faces:     " << NbFaces() << endl;
-  if ( NbFaces() > 0 ) {
-    int nb3 = NbTriangles();
-    int nb4 = NbQuadrangles();
-    save << "3.1.) Number of triangles:    " << nb3 << endl;
-    save << "3.2.) Number of quadrangles:  " << nb4 << endl;
-    if ( nb3 + nb4 !=  NbFaces() ) {
-      map<int,int> myFaceMap;
-      SMDS_FaceIteratorPtr itFaces=_myMeshDS->facesIterator();
-      while( itFaces->more( ) ) {
-       int nbNodes = itFaces->next()->NbNodes();
-       if ( myFaceMap.find( nbNodes ) == myFaceMap.end() )
-         myFaceMap[ nbNodes ] = 0;
-       myFaceMap[ nbNodes ] = myFaceMap[ nbNodes ] + 1;
-      }
-      save << "3.3.) Faces in detail: " << endl;
-      map <int,int>::iterator itF;
-      for (itF = myFaceMap.begin(); itF != myFaceMap.end(); itF++)
-       save << "--> nb nodes: " << itF->first << " - nb elemens: " << itF->second << endl;
-    }
-  }
-  save << "4) Total number of volumes:   " << NbVolumes() << endl;
-  if ( NbVolumes() > 0 ) {
-    int nb8 = NbHexas();
-    int nb4 = NbTetras();
-    int nb5 = NbPyramids();
-    int nb6 = NbPrisms();
-    save << "4.1.) Number of hexahedrons:  " << nb8 << endl;
-    save << "4.2.) Number of tetrahedrons: " << nb4 << endl;
-    save << "4.3.) Number of prisms:       " << nb6 << endl;
-    save << "4.4.) Number of pyramides:    " << nb5 << endl;
-    if ( nb8 + nb4 + nb5 + nb6 != NbVolumes() ) {
-      map<int,int> myVolumesMap;
-      SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
-      while( itVolumes->more( ) ) {
-       int nbNodes = itVolumes->next()->NbNodes();
-       if ( myVolumesMap.find( nbNodes ) == myVolumesMap.end() )
-         myVolumesMap[ nbNodes ] = 0;
-       myVolumesMap[ nbNodes ] = myVolumesMap[ nbNodes ] + 1;
-      }
-      save << "4.5.) Volumes in detail: " << endl;
-      map <int,int>::iterator itV;
-      for (itV = myVolumesMap.begin(); itV != myVolumesMap.end(); itV++)
-       save << "--> nb nodes: " << itV->first << " - nb elemens: " << itV->second << endl;
-    }
-  }
-  save << "===========================================================================" << endl;
-  return save;
-}
-
-//=======================================================================
-//function : GetElementType
-//purpose  : Returns type of mesh element with certain id
-//=======================================================================
-SMDSAbs_ElementType SMESH_Mesh::GetElementType( const int id, const bool iselem )
-{
-  return _myMeshDS->GetElementType( id, iselem );
-}
\ No newline at end of file
diff --git a/src/SMESH/SMESH_Mesh.hxx b/src/SMESH/SMESH_Mesh.hxx
deleted file mode 100644 (file)
index 321714a..0000000
+++ /dev/null
@@ -1,254 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Mesh.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_MESH_HXX_
-#define _SMESH_MESH_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-//#include "SMESH_subMesh.hxx"
-
-#include "SMESHDS_Document.hxx"
-#include "SMESHDS_Mesh.hxx"
-#include "SMESHDS_Command.hxx"
-#include "SMDSAbs_ElementType.hxx"
-
-#include "NMTTools_IndexedDataMapOfShapeIndexedMapOfShape.hxx"
-
-#include "Utils_SALOME_Exception.hxx"
-
-#include <TopExp.hxx>
-#include <TopExp_Explorer.hxx>
-#include <TopoDS.hxx>
-#include <TopoDS_Iterator.hxx>
-#include <TopoDS_Compound.hxx>
-#include <TopoDS_CompSolid.hxx>
-#include <TopoDS_Solid.hxx>
-#include <TopoDS_Shell.hxx>
-#include <TopoDS_Face.hxx>
-#include <TopoDS_Wire.hxx>
-#include <TopoDS_Edge.hxx>
-#include <TopoDS_Vertex.hxx>
-#include <TopoDS_Shape.hxx>
-#include <TopTools_IndexedMapOfShape.hxx>
-#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
-
-#include <vector>
-#include <list>
-#include <map>
-
-#include <string>
-#include <iostream>
-
-class SMESH_Gen;
-class SMESH_Group;
-class TopTools_ListOfShape;
-class SMESH_subMesh;
-class SMESH_HypoFilter;
-
-typedef NMTTools_IndexedDataMapOfShapeIndexedMapOfShape IndexedMapOfChain;
-
-class SMESH_Mesh
-{
-  SMESH_Mesh();
-  SMESH_Mesh(const SMESH_Mesh&);
-public:
-  SMESH_Mesh(int localId, int studyId, SMESH_Gen * gen,
-            SMESHDS_Document * myDocument);
-  
-  virtual ~SMESH_Mesh();
-  
-  void ShapeToMesh(const TopoDS_Shape & aShape);
-  
-  int UNVToMesh(const char* theFileName);
-  /*!
-   * consult DriverMED_R_SMESHDS_Mesh::ReadStatus for returned value
-   */
-  int MEDToMesh(const char* theFileName, const char* theMeshName);
-  
-  int STLToMesh(const char* theFileName);
-
-  SMESH_Hypothesis::Hypothesis_Status
-  AddHypothesis(const TopoDS_Shape & aSubShape, int anHypId)
-    throw(SALOME_Exception);
-  
-  SMESH_Hypothesis::Hypothesis_Status
-  RemoveHypothesis(const TopoDS_Shape & aSubShape, int anHypId)
-    throw(SALOME_Exception);
-  
-  const list <const SMESHDS_Hypothesis * >&
-  GetHypothesisList(const TopoDS_Shape & aSubShape) const
-    throw(SALOME_Exception);
-
-  const SMESH_Hypothesis * GetHypothesis(const TopoDS_Shape &    aSubShape,
-                                         const SMESH_HypoFilter& aFilter,
-                                         const bool              andAncestors) const;
-  
-  bool GetHypotheses(const TopoDS_Shape &                aSubShape,
-                     const SMESH_HypoFilter&             aFilter,
-                     list <const SMESHDS_Hypothesis * >& aHypList,
-                     const bool                          andAncestors) const;
-
-  const list<SMESHDS_Command*> & GetLog() throw(SALOME_Exception);
-  
-  void ClearLog() throw(SALOME_Exception);
-  
-  int GetId();
-  
-  SMESHDS_Mesh * GetMeshDS();
-  
-  SMESH_Gen *GetGen();
-  
-  SMESH_subMesh *GetSubMesh(const TopoDS_Shape & aSubShape)
-    throw(SALOME_Exception);
-  
-  SMESH_subMesh *GetSubMeshContaining(const TopoDS_Shape & aSubShape)
-    throw(SALOME_Exception);
-  
-  SMESH_subMesh *GetSubMeshContaining(const int aShapeID)
-    throw(SALOME_Exception);
-  
-  const list < SMESH_subMesh * >&
-  GetSubMeshUsingHypothesis(SMESHDS_Hypothesis * anHyp)
-    throw(SALOME_Exception);
-  
-  bool IsUsedHypothesis(SMESHDS_Hypothesis * anHyp,
-                       const TopoDS_Shape & aSubShape);
-  // Return True if anHyp is used to mesh aSubShape
-  
-  bool IsNotConformAllowed() const;
-  // check if a hypothesis alowing notconform mesh is present
-  
-  bool IsMainShape(const TopoDS_Shape& theShape) const;
-
-  const TopTools_ListOfShape& GetAncestors(const TopoDS_Shape& theSubShape) const;
-  // return list of ancestors of theSubShape in the order
-  // that lower dimention shapes come first.
-  
-  void ExportMED(const char *file, 
-                const char* theMeshName = NULL, 
-                bool theAutoGroups = true, 
-                int theVersion = 0) 
-    throw(SALOME_Exception);
-
-  void ExportDAT(const char *file) throw(SALOME_Exception);
-  void ExportUNV(const char *file) throw(SALOME_Exception);
-  void ExportSTL(const char *file, const bool isascii) throw(SALOME_Exception);
-  
-  int NbNodes() throw(SALOME_Exception);
-  
-  int NbEdges() throw(SALOME_Exception);
-  
-  int NbFaces() throw(SALOME_Exception);
-  
-  int NbTriangles() throw(SALOME_Exception);
-  
-  int NbQuadrangles() throw(SALOME_Exception);
-
-  int NbPolygons() throw(SALOME_Exception);
-  
-  int NbVolumes() throw(SALOME_Exception);
-  
-  int NbTetras() throw(SALOME_Exception);
-  
-  int NbHexas() throw(SALOME_Exception);
-  
-  int NbPyramids() throw(SALOME_Exception);
-
-  int NbPrisms() throw(SALOME_Exception);
-  
-  int NbPolyhedrons() throw(SALOME_Exception);
-  
-  int NbSubMesh() throw(SALOME_Exception);
-  
-  int NbGroup() const { return _mapGroup.size(); }
-  
-  SMESH_Group* AddGroup (const SMDSAbs_ElementType theType,
-                        const char*               theName,
-                        int&                      theId,
-                         const TopoDS_Shape&       theShape=TopoDS_Shape());
-  
-  SMESH_Group* GetGroup (const int theGroupID);
-  
-  list<int> GetGroupIds();
-  
-  void RemoveGroup (const int theGroupID);
-
-  // Propagation hypothesis management
-
-  const SMESH_Hypothesis* IsLocal1DHypothesis (const TopoDS_Shape& theEdge);
-  // Returns a local 1D hypothesis used for theEdge.
-
-  bool IsPropagationHypothesis (const TopoDS_Shape& theEdge);
-  // Returns true, if a local Propagation hypothesis is set directly on <theEdge>
-
-  bool IsPropagatedHypothesis (const TopoDS_Shape& theEdge,
-                               TopoDS_Shape&       theMainEdge);
-  // Returns true, if a local 1D hypothesis is
-  // propagated on <theEdge> from some other edge.
-  // Returns through <theMainEdge> the edge, from
-  // which the 1D hypothesis is propagated on <theEdge>
-
-  bool IsReversedInChain (const TopoDS_Shape& theEdge,
-                          const TopoDS_Shape& theMainEdge);
-  // Returns true if theEdge should be reversed to be
-  // co-directed with theMainEdge
-
-  bool RebuildPropagationChains();
-  bool RemovePropagationChain (const TopoDS_Shape& theMainEdge);
-  bool BuildPropagationChain (const TopoDS_Shape& theMainEdge);
-  
-  SMDSAbs_ElementType GetElementType( const int id, const bool iselem );
-
-  //
-  
-  ostream& Dump(ostream & save);
-  
-private:
-  // Propagation hypothesis management
-  void CleanMeshOnPropagationChain(const TopoDS_Shape& theMainEdge);
-  //
-  
-private:
-  int                        _id;           // id given by creator (unique within the creator instance)
-  int                        _studyId;
-  int                        _idDoc;        // id given by SMESHDS_Document
-  int                        _groupId;      // id generator for group objects
-  bool                       _isShapeToMesh;// set to true when a shape is given (only once)
-  list <SMESH_subMesh *>     _subMeshesUsingHypothesisList;
-  SMESHDS_Document *         _myDocument;
-  SMESHDS_Mesh *             _myMeshDS;
-  map <int, SMESH_subMesh *> _mapSubMesh;
-  map <int, SMESH_Group *>   _mapGroup;
-  SMESH_Gen *                _gen;
-  
-  TopTools_IndexedDataMapOfShapeListOfShape _mapAncestors;
-
-  IndexedMapOfChain _mapPropagationChains; // Propagation hypothesis management
-};
-
-#endif
diff --git a/src/SMESH/SMESH_MeshEditor.cxx b/src/SMESH/SMESH_MeshEditor.cxx
deleted file mode 100644 (file)
index c1d184c..0000000
+++ /dev/null
@@ -1,5053 +0,0 @@
-//  SMESH SMESH : idl implementation based on 'SMESH' unit's classes
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-// File      : SMESH_MeshEditor.cxx
-// Created   : Mon Apr 12 16:10:22 2004
-// Author    : Edward AGAPOV (eap)
-
-
-#include "SMESH_MeshEditor.hxx"
-
-#include "SMDS_FaceOfNodes.hxx"
-#include "SMDS_VolumeTool.hxx"
-#include "SMDS_EdgePosition.hxx"
-#include "SMDS_PolyhedralVolumeOfNodes.hxx"
-#include "SMDS_FacePosition.hxx"
-#include "SMDS_SpacePosition.hxx"
-
-#include "SMESHDS_Group.hxx"
-#include "SMESHDS_Mesh.hxx"
-
-#include "SMESH_subMesh.hxx"
-#include "SMESH_ControlsDef.hxx"
-
-#include "utilities.h"
-
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TopTools_ListOfShape.hxx>
-#include <math.h>
-#include <gp_Dir.hxx>
-#include <gp_Vec.hxx>
-#include <gp_Ax1.hxx>
-#include <gp_Trsf.hxx>
-#include <gp_Lin.hxx>
-#include <gp_XYZ.hxx>
-#include <gp_XY.hxx>
-#include <gp.hxx>
-#include <gp_Pln.hxx>
-#include <BRep_Tool.hxx>
-#include <Geom_Curve.hxx>
-#include <Geom_Surface.hxx>
-#include <Geom2d_Curve.hxx>
-#include <Extrema_GenExtPS.hxx>
-#include <Extrema_POnSurf.hxx>
-#include <GeomAdaptor_Surface.hxx>
-#include <ElCLib.hxx>
-
-#include <map>
-
-using namespace std;
-using namespace SMESH::Controls;
-
-typedef map<const SMDS_MeshNode*, const SMDS_MeshNode*>              TNodeNodeMap;
-typedef map<const SMDS_MeshElement*, list<const SMDS_MeshNode*> >    TElemOfNodeListMap;
-typedef map<const SMDS_MeshElement*, list<const SMDS_MeshElement*> > TElemOfElemListMap;
-typedef map<const SMDS_MeshNode*, list<const SMDS_MeshNode*> >       TNodeOfNodeListMap;
-typedef TNodeOfNodeListMap::iterator                                 TNodeOfNodeListMapItr;
-typedef map<const SMDS_MeshElement*, vector<TNodeOfNodeListMapItr> > TElemOfVecOfNnlmiMap;
-
-//=======================================================================
-//function : SMESH_MeshEditor
-//purpose  :
-//=======================================================================
-
-SMESH_MeshEditor::SMESH_MeshEditor( SMESH_Mesh* theMesh ):
-myMesh( theMesh )
-{
-}
-
-//=======================================================================
-//function : Remove
-//purpose  : Remove a node or an element.
-//           Modify a compute state of sub-meshes which become empty
-//=======================================================================
-
-bool SMESH_MeshEditor::Remove (const list< int >& theIDs,
-                               const bool         isNodes )
-{
-
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-  set< SMESH_subMesh *> smmap;
-
-  list<int>::const_iterator it = theIDs.begin();
-  for ( ; it != theIDs.end(); it++ )
-  {
-    const SMDS_MeshElement * elem;
-    if ( isNodes )
-      elem = aMesh->FindNode( *it );
-    else
-      elem = aMesh->FindElement( *it );
-    if ( !elem )
-      continue;
-
-    // Find sub-meshes to notify about modification
-    SMDS_ElemIteratorPtr nodeIt = elem->nodesIterator();
-    while ( nodeIt->more() )
-    {
-      const SMDS_MeshNode* node = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
-      const SMDS_PositionPtr& aPosition = node->GetPosition();
-      if ( aPosition.get() ) {
-        int aShapeID = aPosition->GetShapeId();
-        if ( aShapeID ) {
-          TopoDS_Shape aShape = aMesh->IndexToShape( aShapeID );
-          SMESH_subMesh * sm = GetMesh()->GetSubMeshContaining( aShape );
-          if ( sm )
-            smmap.insert( sm );
-        }
-      }
-    }
-
-    // Do remove
-    if ( isNodes )
-      aMesh->RemoveNode( static_cast< const SMDS_MeshNode* >( elem ));
-    else
-      aMesh->RemoveElement( elem );
-  }
-
-  // Notify sub-meshes about modification
-  if ( !smmap.empty() ) {
-    set< SMESH_subMesh *>::iterator smIt;
-    for ( smIt = smmap.begin(); smIt != smmap.end(); smIt++ )
-      (*smIt)->ComputeStateEngine( SMESH_subMesh::MESH_ENTITY_REMOVED );
-  }
-  return true;
-}
-
-//=======================================================================
-//function : FindShape
-//purpose  : Return an index of the shape theElem is on
-//           or zero if a shape not found
-//=======================================================================
-
-int SMESH_MeshEditor::FindShape (const SMDS_MeshElement * theElem)
-{
-  SMESHDS_Mesh * aMesh = GetMeshDS();
-  if ( aMesh->ShapeToMesh().IsNull() )
-    return 0;
-
-  if ( theElem->GetType() == SMDSAbs_Node )
-  {
-    const SMDS_PositionPtr& aPosition =
-      static_cast<const SMDS_MeshNode*>( theElem )->GetPosition();
-    if ( aPosition.get() )
-      return aPosition->GetShapeId();
-    else
-      return 0;
-  }
-
-  TopoDS_Shape aShape; // the shape a node is on
-  SMDS_ElemIteratorPtr nodeIt = theElem->nodesIterator();
-  while ( nodeIt->more() )
-  {
-    const SMDS_MeshNode* node = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
-    const SMDS_PositionPtr& aPosition = node->GetPosition();
-    if ( aPosition.get() ) {
-        int aShapeID = aPosition->GetShapeId();
-        SMESHDS_SubMesh * sm = aMesh->MeshElements( aShapeID );
-        if ( sm )
-        {
-          if ( sm->Contains( theElem ))
-            return aShapeID;
-          if ( aShape.IsNull() )
-            aShape = aMesh->IndexToShape( aShapeID );
-        }
-        else
-        {
-          //MESSAGE ( "::FindShape() No SubShape for aShapeID " << aShapeID );
-        }
-      }
-  }
-
-  // None of nodes is on a proper shape,
-  // find the shape among ancestors of aShape on which a node is
-  if ( aShape.IsNull() ) {
-    //MESSAGE ("::FindShape() - NONE node is on shape")
-    return 0;
-  }
-  TopTools_ListIteratorOfListOfShape ancIt( GetMesh()->GetAncestors( aShape ));
-  for ( ; ancIt.More(); ancIt.Next() )
-  {
-      SMESHDS_SubMesh * sm = aMesh->MeshElements( ancIt.Value() );
-      if ( sm && sm->Contains( theElem ))
-        return aMesh->ShapeToIndex( ancIt.Value() );
-  }
-
-  //MESSAGE ("::FindShape() - SHAPE NOT FOUND")
-  return 0;
-}
-
-//=======================================================================
-//function : InverseDiag
-//purpose  : Replace two neighbour triangles with ones built on the same 4 nodes
-//           but having other common link.
-//           Return False if args are improper
-//=======================================================================
-
-bool SMESH_MeshEditor::InverseDiag (const SMDS_MeshElement * theTria1,
-                                    const SMDS_MeshElement * theTria2 )
-{
-  if (!theTria1 || !theTria2)
-    return false;
-  const SMDS_FaceOfNodes* F1 = dynamic_cast<const SMDS_FaceOfNodes*>( theTria1 );
-  if (!F1) return false;
-  const SMDS_FaceOfNodes* F2 = dynamic_cast<const SMDS_FaceOfNodes*>( theTria2 );
-  if (!F2) return false;
-
-  //  1 +--+ A  theTria1: ( 1 A B ) A->2 ( 1 2 B ) 1 +--+ A
-  //    | /|    theTria2: ( B A 2 ) B->1 ( 1 A 2 )   |\ |
-  //    |/ |                                         | \|
-  //  B +--+ 2                                     B +--+ 2
-
-  // put nodes in array and find out indices of the same ones
-  const SMDS_MeshNode* aNodes [6];
-  int sameInd [] = { 0, 0, 0, 0, 0, 0 };
-  int i = 0;
-  SMDS_ElemIteratorPtr it = theTria1->nodesIterator();
-  while ( it->more() )
-  {
-    aNodes[ i ] = static_cast<const SMDS_MeshNode*>( it->next() );
-
-    if ( i > 2 ) // theTria2
-      // find same node of theTria1
-      for ( int j = 0; j < 3; j++ )
-        if ( aNodes[ i ] == aNodes[ j ]) {
-          sameInd[ j ] = i;
-          sameInd[ i ] = j;
-          break;
-        }
-    // next
-    i++;
-    if ( i == 3 ) {
-      if ( it->more() )
-        return false; // theTria1 is not a triangle
-      it = theTria2->nodesIterator();
-    }
-    if ( i == 6 && it->more() )
-      return false; // theTria2 is not a triangle
-  }
-
-  // find indices of 1,2 and of A,B in theTria1
-  int iA = 0, iB = 0, i1 = 0, i2 = 0;
-  for ( i = 0; i < 6; i++ )
-  {
-    if ( sameInd [ i ] == 0 )
-      if ( i < 3 ) i1 = i;
-      else         i2 = i;
-    else if (i < 3)
-      if ( iA ) iB = i;
-      else      iA = i;
-  }
-  // nodes 1 and 2 should not be the same
-  if ( aNodes[ i1 ] == aNodes[ i2 ] )
-    return false;
-
-
-  // theTria1: A->2
-  aNodes[ iA ] = aNodes[ i2 ];
-  // theTria2: B->1
-  aNodes[ sameInd[ iB ]] = aNodes[ i1 ];
-
-  //MESSAGE( theTria1 << theTria2 );
-
-  GetMeshDS()->ChangeElementNodes( theTria1, aNodes, 3 );
-  GetMeshDS()->ChangeElementNodes( theTria2, &aNodes[ 3 ], 3 );
-
-  //MESSAGE( theTria1 << theTria2 );
-
-  return true;
-}
-
-//=======================================================================
-//function : findTriangles
-//purpose  : find triangles sharing theNode1-theNode2 link
-//=======================================================================
-
-static bool findTriangles(const SMDS_MeshNode *    theNode1,
-                          const SMDS_MeshNode *    theNode2,
-                          const SMDS_MeshElement*& theTria1,
-                          const SMDS_MeshElement*& theTria2)
-{
-  if ( !theNode1 || !theNode2 ) return false;
-
-  theTria1 = theTria2 = 0;
-
-  set< const SMDS_MeshElement* > emap;
-  SMDS_ElemIteratorPtr it = theNode1->GetInverseElementIterator();
-  while (it->more()) {
-    const SMDS_MeshElement* elem = it->next();
-    if ( elem->GetType() == SMDSAbs_Face && elem->NbNodes() == 3 )
-      emap.insert( elem );
-  }
-  it = theNode2->GetInverseElementIterator();
-  while (it->more()) {
-    const SMDS_MeshElement* elem = it->next();
-    if ( elem->GetType() == SMDSAbs_Face &&
-         emap.find( elem ) != emap.end() )
-      if ( theTria1 ) {
-        theTria2 = elem;
-        break;
-      } else {
-        theTria1 = elem;
-      }
-  }
-  return ( theTria1 && theTria2 );
-}
-
-//=======================================================================
-//function : InverseDiag
-//purpose  : Replace two neighbour triangles sharing theNode1-theNode2 link
-//           with ones built on the same 4 nodes but having other common link.
-//           Return false if proper faces not found
-//=======================================================================
-
-bool SMESH_MeshEditor::InverseDiag (const SMDS_MeshNode * theNode1,
-                                    const SMDS_MeshNode * theNode2)
-{
-  MESSAGE( "::InverseDiag()" );
-
-  const SMDS_MeshElement *tr1, *tr2;
-  if ( !findTriangles( theNode1, theNode2, tr1, tr2 ))
-    return false;
-
-  const SMDS_FaceOfNodes* F1 = dynamic_cast<const SMDS_FaceOfNodes*>( tr1 );
-  if (!F1) return false;
-  const SMDS_FaceOfNodes* F2 = dynamic_cast<const SMDS_FaceOfNodes*>( tr2 );
-  if (!F2) return false;
-
-  //  1 +--+ A  tr1: ( 1 A B ) A->2 ( 1 2 B ) 1 +--+ A
-  //    | /|    tr2: ( B A 2 ) B->1 ( 1 A 2 )   |\ |
-  //    |/ |                                    | \|
-  //  B +--+ 2                                B +--+ 2
-
-  // put nodes in array
-  // and find indices of 1,2 and of A in tr1 and of B in tr2
-  int i, iA1 = 0, i1 = 0;
-  const SMDS_MeshNode* aNodes1 [3];
-  SMDS_ElemIteratorPtr it;
-  for (i = 0, it = tr1->nodesIterator(); it->more(); i++ ) {
-    aNodes1[ i ] = static_cast<const SMDS_MeshNode*>( it->next() );
-    if ( aNodes1[ i ] == theNode1 )
-      iA1 = i; // node A in tr1
-    else if ( aNodes1[ i ] != theNode2 )
-      i1 = i;  // node 1
-  }
-  int iB2 = 0, i2 = 0;
-  const SMDS_MeshNode* aNodes2 [3];
-  for (i = 0, it = tr2->nodesIterator(); it->more(); i++ ) {
-    aNodes2[ i ] = static_cast<const SMDS_MeshNode*>( it->next() );
-    if ( aNodes2[ i ] == theNode2 )
-      iB2 = i; // node B in tr2
-    else if ( aNodes2[ i ] != theNode1 )
-      i2 = i;  // node 2
-  }
-
-  // nodes 1 and 2 should not be the same
-  if ( aNodes1[ i1 ] == aNodes2[ i2 ] )
-    return false;
-
-  // tr1: A->2
-  aNodes1[ iA1 ] = aNodes2[ i2 ];
-  // tr2: B->1
-  aNodes2[ iB2 ] = aNodes1[ i1 ];
-
-  //MESSAGE( tr1 << tr2 );
-
-  GetMeshDS()->ChangeElementNodes( tr1, aNodes1, 3 );
-  GetMeshDS()->ChangeElementNodes( tr2, aNodes2, 3 );
-
-  //MESSAGE( tr1 << tr2 );
-
-  return true;
-
-}
-
-//=======================================================================
-//function : getQuadrangleNodes
-//purpose  : fill theQuadNodes - nodes of a quadrangle resulting from
-//           fusion of triangles tr1 and tr2 having shared link on
-//           theNode1 and theNode2
-//=======================================================================
-
-bool getQuadrangleNodes(const SMDS_MeshNode *    theQuadNodes [],
-                        const SMDS_MeshNode *    theNode1,
-                        const SMDS_MeshNode *    theNode2,
-                        const SMDS_MeshElement * tr1,
-                        const SMDS_MeshElement * tr2 )
-{
-  // find the 4-th node to insert into tr1
-  const SMDS_MeshNode* n4 = 0;
-  SMDS_ElemIteratorPtr it = tr2->nodesIterator();
-  while ( !n4 && it->more() )
-  {
-    const SMDS_MeshNode * n = static_cast<const SMDS_MeshNode*>( it->next() );
-    bool isDiag = ( n == theNode1 || n == theNode2 );
-    if ( !isDiag )
-      n4 = n;
-  }
-  // Make an array of nodes to be in a quadrangle
-  int iNode = 0, iFirstDiag = -1;
-  it = tr1->nodesIterator();
-  while ( it->more() )
-  {
-    const SMDS_MeshNode * n = static_cast<const SMDS_MeshNode*>( it->next() );
-    bool isDiag = ( n == theNode1 || n == theNode2 );
-    if ( isDiag )
-    {
-      if ( iFirstDiag < 0 )
-        iFirstDiag = iNode;
-      else if ( iNode - iFirstDiag == 1 )
-        theQuadNodes[ iNode++ ] = n4; // insert the 4-th node between diagonal nodes
-    }
-    else if ( n == n4 )
-    {
-      return false; // tr1 and tr2 should not have all the same nodes
-    }
-    theQuadNodes[ iNode++ ] = n;
-  }
-  if ( iNode == 3 ) // diagonal nodes have 0 and 2 indices
-    theQuadNodes[ iNode ] = n4;
-
-  return true;
-}
-
-//=======================================================================
-//function : DeleteDiag
-//purpose  : Replace two neighbour triangles sharing theNode1-theNode2 link
-//           with a quadrangle built on the same 4 nodes.
-//           Return false if proper faces not found
-//=======================================================================
-
-bool SMESH_MeshEditor::DeleteDiag (const SMDS_MeshNode * theNode1,
-                                   const SMDS_MeshNode * theNode2)
-{
-  MESSAGE( "::DeleteDiag()" );
-
-  const SMDS_MeshElement *tr1, *tr2;
-  if ( !findTriangles( theNode1, theNode2, tr1, tr2 ))
-    return false;
-
-  const SMDS_FaceOfNodes* F1 = dynamic_cast<const SMDS_FaceOfNodes*>( tr1 );
-  if (!F1) return false;
-  const SMDS_FaceOfNodes* F2 = dynamic_cast<const SMDS_FaceOfNodes*>( tr2 );
-  if (!F2) return false;
-
-  const SMDS_MeshNode* aNodes [ 4 ];
-  if ( ! getQuadrangleNodes( aNodes, theNode1, theNode2, tr1, tr2 ))
-    return false;
-
-  //MESSAGE( endl << tr1 << tr2 );
-
-  GetMeshDS()->ChangeElementNodes( tr1, aNodes, 4 );
-  GetMeshDS()->RemoveElement( tr2 );
-
-  //MESSAGE( endl << tr1 );
-
-  return true;
-}
-
-//=======================================================================
-//function : Reorient
-//purpose  : Reverse theElement orientation
-//=======================================================================
-
-bool SMESH_MeshEditor::Reorient (const SMDS_MeshElement * theElem)
-{
-  if (!theElem)
-    return false;
-  SMDS_ElemIteratorPtr it = theElem->nodesIterator();
-  if ( !it || !it->more() )
-    return false;
-
-  switch ( theElem->GetType() ) {
-
-  case SMDSAbs_Edge:
-  case SMDSAbs_Face:
-  {
-    int i = theElem->NbNodes();
-    vector<const SMDS_MeshNode*> aNodes( i );
-    while ( it->more() )
-      aNodes[ --i ]= static_cast<const SMDS_MeshNode*>( it->next() );
-    return GetMeshDS()->ChangeElementNodes( theElem, &aNodes[0], theElem->NbNodes() );
-  }
-  case SMDSAbs_Volume:
-  {
-    if (theElem->IsPoly()) {
-      const SMDS_PolyhedralVolumeOfNodes* aPolyedre =
-        static_cast<const SMDS_PolyhedralVolumeOfNodes*>( theElem );
-      if (!aPolyedre) {
-        MESSAGE("Warning: bad volumic element");
-        return false;
-      }
-
-      int nbFaces = aPolyedre->NbFaces();
-      vector<const SMDS_MeshNode *> poly_nodes;
-      vector<int> quantities (nbFaces);
-
-      // reverse each face of the polyedre
-      for (int iface = 1; iface <= nbFaces; iface++) {
-        int inode, nbFaceNodes = aPolyedre->NbFaceNodes(iface);
-        quantities[iface - 1] = nbFaceNodes;
-
-        for (inode = nbFaceNodes; inode >= 1; inode--) {
-          const SMDS_MeshNode* curNode = aPolyedre->GetFaceNode(iface, inode);
-          poly_nodes.push_back(curNode);
-        }
-      }
-
-      return GetMeshDS()->ChangePolyhedronNodes( theElem, poly_nodes, quantities );
-
-    } else {
-      SMDS_VolumeTool vTool;
-      if ( !vTool.Set( theElem ))
-        return false;
-      vTool.Inverse();
-      return GetMeshDS()->ChangeElementNodes( theElem, vTool.GetNodes(), vTool.NbNodes() );
-    }
-  }
-  default:;
-  }
-
-  return false;
-}
-
-//=======================================================================
-//function : getBadRate
-//purpose  :
-//=======================================================================
-
-static double getBadRate (const SMDS_MeshElement*               theElem,
-                          SMESH::Controls::NumericalFunctorPtr& theCrit)
-{
-  SMESH::Controls::TSequenceOfXYZ P;
-  if ( !theElem || !theCrit->GetPoints( theElem, P ))
-    return 1e100;
-  return theCrit->GetBadRate( theCrit->GetValue( P ), theElem->NbNodes() );
-  //return theCrit->GetBadRate( theCrit->GetValue( theElem->GetID() ), theElem->NbNodes() );
-}
-
-//=======================================================================
-//function : QuadToTri
-//purpose  : Cut quadrangles into triangles.
-//           theCrit is used to select a diagonal to cut
-//=======================================================================
-
-bool SMESH_MeshEditor::QuadToTri (set<const SMDS_MeshElement*> &       theElems,
-                                  SMESH::Controls::NumericalFunctorPtr theCrit)
-{
-  MESSAGE( "::QuadToTri()" );
-
-  if ( !theCrit.get() )
-    return false;
-
-  SMESHDS_Mesh * aMesh = GetMeshDS();
-
-  set< const SMDS_MeshElement * >::iterator itElem;
-  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ )
-  {
-    const SMDS_MeshElement* elem = (*itElem);
-    if ( !elem || elem->GetType() != SMDSAbs_Face || elem->NbNodes() != 4 )
-      continue;
-
-    // retrieve element nodes
-    const SMDS_MeshNode* aNodes [4];
-    SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    int i = 0;
-    while ( itN->more() )
-      aNodes[ i++ ] = static_cast<const SMDS_MeshNode*>( itN->next() );
-
-    // compare two sets of possible triangles
-    double aBadRate1, aBadRate2; // to what extent a set is bad
-    SMDS_FaceOfNodes tr1 ( aNodes[0], aNodes[1], aNodes[2] );
-    SMDS_FaceOfNodes tr2 ( aNodes[2], aNodes[3], aNodes[0] );
-    aBadRate1 = getBadRate( &tr1, theCrit ) + getBadRate( &tr2, theCrit );
-
-    SMDS_FaceOfNodes tr3 ( aNodes[1], aNodes[2], aNodes[3] );
-    SMDS_FaceOfNodes tr4 ( aNodes[3], aNodes[0], aNodes[1] );
-    aBadRate2 = getBadRate( &tr3, theCrit ) + getBadRate( &tr4, theCrit );
-
-    int aShapeId = FindShape( elem );
-    //MESSAGE( "aBadRate1 = " << aBadRate1 << "; aBadRate2 = " << aBadRate2
-      //      << " ShapeID = " << aShapeId << endl << elem );
-
-    if ( aBadRate1 <= aBadRate2 ) {
-      // tr1 + tr2 is better
-      aMesh->ChangeElementNodes( elem, aNodes, 3 );
-      //MESSAGE( endl << elem );
-
-      elem = aMesh->AddFace( aNodes[2], aNodes[3], aNodes[0] );
-    }
-    else {
-      // tr3 + tr4 is better
-      aMesh->ChangeElementNodes( elem, &aNodes[1], 3 );
-      //MESSAGE( endl << elem );
-
-      elem = aMesh->AddFace( aNodes[3], aNodes[0], aNodes[1] );
-    }
-    //MESSAGE( endl << elem );
-
-    // put a new triangle on the same shape
-    if ( aShapeId )
-      aMesh->SetMeshElementOnShape( elem, aShapeId );
-  }
-
-  return true;
-}
-
-//=======================================================================
-//function : BestSplit
-//purpose  : Find better diagonal for cutting.
-//=======================================================================
-int SMESH_MeshEditor::BestSplit (const SMDS_MeshElement*              theQuad,
-                                 SMESH::Controls::NumericalFunctorPtr theCrit)
-{
-  if (!theCrit.get())
-    return -1;
-
-  if (!theQuad || theQuad->GetType() != SMDSAbs_Face || theQuad->NbNodes() != 4)
-    return -1;
-
-  // retrieve element nodes
-  const SMDS_MeshNode* aNodes [4];
-  SMDS_ElemIteratorPtr itN = theQuad->nodesIterator();
-  int i = 0;
-  while (itN->more())
-    aNodes[ i++ ] = static_cast<const SMDS_MeshNode*>( itN->next() );
-
-  // compare two sets of possible triangles
-  double aBadRate1, aBadRate2; // to what extent a set is bad
-  SMDS_FaceOfNodes tr1 ( aNodes[0], aNodes[1], aNodes[2] );
-  SMDS_FaceOfNodes tr2 ( aNodes[2], aNodes[3], aNodes[0] );
-  aBadRate1 = getBadRate( &tr1, theCrit ) + getBadRate( &tr2, theCrit );
-
-  SMDS_FaceOfNodes tr3 ( aNodes[1], aNodes[2], aNodes[3] );
-  SMDS_FaceOfNodes tr4 ( aNodes[3], aNodes[0], aNodes[1] );
-  aBadRate2 = getBadRate( &tr3, theCrit ) + getBadRate( &tr4, theCrit );
-
-  if (aBadRate1 <= aBadRate2) // tr1 + tr2 is better
-    return 1; // diagonal 1-3
-
-  return 2; // diagonal 2-4
-}
-
-//=======================================================================
-//function : AddToSameGroups
-//purpose  : add elemToAdd to the groups the elemInGroups belongs to
-//=======================================================================
-
-void SMESH_MeshEditor::AddToSameGroups (const SMDS_MeshElement* elemToAdd,
-                                        const SMDS_MeshElement* elemInGroups,
-                                        SMESHDS_Mesh *          aMesh)
-{
-  const set<SMESHDS_GroupBase*>& groups = aMesh->GetGroups();
-  set<SMESHDS_GroupBase*>::const_iterator grIt = groups.begin();
-  for ( ; grIt != groups.end(); grIt++ ) {
-    SMESHDS_Group* group = dynamic_cast<SMESHDS_Group*>( *grIt );
-    if ( group && group->SMDSGroup().Contains( elemInGroups ))
-      group->SMDSGroup().Add( elemToAdd );
-  }
-}
-
-//=======================================================================
-//function : QuadToTri
-//purpose  : Cut quadrangles into triangles.
-//           theCrit is used to select a diagonal to cut
-//=======================================================================
-
-bool SMESH_MeshEditor::QuadToTri (std::set<const SMDS_MeshElement*> & theElems,
-                                  const bool                          the13Diag)
-{
-  MESSAGE( "::QuadToTri()" );
-
-  SMESHDS_Mesh * aMesh = GetMeshDS();
-
-  set< const SMDS_MeshElement * >::iterator itElem;
-  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ )
-  {
-    const SMDS_MeshElement* elem = (*itElem);
-    if ( !elem || elem->GetType() != SMDSAbs_Face || elem->NbNodes() != 4 )
-      continue;
-
-    // retrieve element nodes
-    const SMDS_MeshNode* aNodes [4];
-    SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    int i = 0;
-    while ( itN->more() )
-      aNodes[ i++ ] = static_cast<const SMDS_MeshNode*>( itN->next() );
-
-    int aShapeId = FindShape( elem );
-    const SMDS_MeshElement* newElem = 0;
-    if ( the13Diag )
-    {
-      aMesh->ChangeElementNodes( elem, aNodes, 3 );
-      newElem = aMesh->AddFace( aNodes[2], aNodes[3], aNodes[0] );
-    }
-    else
-    {
-      aMesh->ChangeElementNodes( elem, &aNodes[1], 3 );
-      newElem = aMesh->AddFace( aNodes[3], aNodes[0], aNodes[1] );
-    }
-
-    // put a new triangle on the same shape and add to the same groups
-
-    if ( aShapeId )
-      aMesh->SetMeshElementOnShape( newElem, aShapeId );
-
-    AddToSameGroups( newElem, elem, aMesh );
-  }
-
-  return true;
-}
-
-//=======================================================================
-//function : getAngle
-//purpose  :
-//=======================================================================
-
-double getAngle(const SMDS_MeshElement * tr1,
-                const SMDS_MeshElement * tr2,
-                const SMDS_MeshNode *    n1,
-                const SMDS_MeshNode *    n2)
-{
-  double angle = 2*PI; // bad angle
-
-  // get normals
-  SMESH::Controls::TSequenceOfXYZ P1, P2;
-  if ( !SMESH::Controls::NumericalFunctor::GetPoints( tr1, P1 ) ||
-       !SMESH::Controls::NumericalFunctor::GetPoints( tr2, P2 ))
-    return angle;
-  gp_Vec N1 = gp_Vec( P1(2) - P1(1) ) ^ gp_Vec( P1(3) - P1(1) );
-  if ( N1.SquareMagnitude() <= gp::Resolution() )
-    return angle;
-  gp_Vec N2 = gp_Vec( P2(2) - P2(1) ) ^ gp_Vec( P2(3) - P2(1) );
-  if ( N2.SquareMagnitude() <= gp::Resolution() )
-    return angle;
-
-  // find the first diagonal node n1 in the triangles:
-  // take in account a diagonal link orientation
-  const SMDS_MeshElement *nFirst[2], *tr[] = { tr1, tr2 };
-  for ( int t = 0; t < 2; t++ )
-  {
-    SMDS_ElemIteratorPtr it = tr[ t ]->nodesIterator();
-    int i = 0, iDiag = -1;
-    while ( it->more()) {
-      const SMDS_MeshElement *n = it->next();
-      if ( n == n1 || n == n2 )
-        if ( iDiag < 0)
-          iDiag = i;
-        else {
-          if ( i - iDiag == 1 )
-            nFirst[ t ] = ( n == n1 ? n2 : n1 );
-          else
-            nFirst[ t ] = n;
-          break;
-        }
-      i++;
-    }
-  }
-  if ( nFirst[ 0 ] == nFirst[ 1 ] )
-    N2.Reverse();
-
-  angle = N1.Angle( N2 );
-  //SCRUTE( angle );
-  return angle;
-}
-
-// =================================================
-// class generating a unique ID for a pair of nodes
-// and able to return nodes by that ID
-// =================================================
-
-class LinkID_Gen {
- public:
-
-  LinkID_Gen( const SMESHDS_Mesh* theMesh )
-    :myMesh( theMesh ), myMaxID( theMesh->MaxNodeID() + 1)
-  {}
-
-  long GetLinkID (const SMDS_MeshNode * n1,
-                  const SMDS_MeshNode * n2) const
-  {
-    return ( Min(n1->GetID(),n2->GetID()) * myMaxID + Max(n1->GetID(),n2->GetID()));
-  }
-
-  bool GetNodes (const long             theLinkID,
-                 const SMDS_MeshNode* & theNode1,
-                 const SMDS_MeshNode* & theNode2) const
-  {
-    theNode1 = myMesh->FindNode( theLinkID / myMaxID );
-    if ( !theNode1 ) return false;
-    theNode2 = myMesh->FindNode( theLinkID % myMaxID );
-    if ( !theNode2 ) return false;
-    return true;
-  }
-
- private:
-  LinkID_Gen();
-  const SMESHDS_Mesh* myMesh;
-  long                myMaxID;
-};
-
-//=======================================================================
-//function : TriToQuad
-//purpose  : Fuse neighbour triangles into quadrangles.
-//           theCrit is used to select a neighbour to fuse with.
-//           theMaxAngle is a max angle between element normals at which
-//           fusion is still performed.
-//=======================================================================
-
-bool SMESH_MeshEditor::TriToQuad (set<const SMDS_MeshElement*> &       theElems,
-                                  SMESH::Controls::NumericalFunctorPtr theCrit,
-                                  const double                         theMaxAngle)
-{
-  MESSAGE( "::TriToQuad()" );
-
-  if ( !theCrit.get() )
-    return false;
-
-  SMESHDS_Mesh * aMesh = GetMeshDS();
-  LinkID_Gen aLinkID_Gen( aMesh );
-
-
-  // Prepare data for algo: build
-  // 1. map of elements with their linkIDs
-  // 2. map of linkIDs with their elements
-
-  map< long, list< const SMDS_MeshElement* > > mapLi_listEl;
-  map< long, list< const SMDS_MeshElement* > >::iterator itLE;
-  map< const SMDS_MeshElement*, set< long > >  mapEl_setLi;
-  map< const SMDS_MeshElement*, set< long > >::iterator itEL;
-
-  set<const SMDS_MeshElement*>::iterator itElem;
-  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ )
-  {
-    const SMDS_MeshElement* elem = (*itElem);
-    if ( !elem || elem->NbNodes() != 3 )
-      continue;
-
-    // retrieve element nodes
-    const SMDS_MeshNode* aNodes [4];
-    SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    int i = 0;
-    while ( itN->more() )
-      aNodes[ i++ ] = static_cast<const SMDS_MeshNode*>( itN->next() );
-    ASSERT( i == 3 );
-    aNodes[ 3 ] = aNodes[ 0 ];
-
-    // fill maps
-    for ( i = 0; i < 3; i++ )
-    {
-      long linkID = aLinkID_Gen.GetLinkID( aNodes[ i ], aNodes[ i+1 ] );
-      // check if elements sharing a link can be fused
-      itLE = mapLi_listEl.find( linkID );
-      if ( itLE != mapLi_listEl.end() )
-      {
-        if ((*itLE).second.size() > 1 ) // consider only 2 elems adjacent by a link
-          continue;
-        const SMDS_MeshElement* elem2 = (*itLE).second.front();
-//         if ( FindShape( elem ) != FindShape( elem2 ))
-//           continue; // do not fuse triangles laying on different shapes
-        if ( getAngle( elem, elem2, aNodes[i], aNodes[i+1] ) > theMaxAngle )
-          continue; // avoid making badly shaped quads
-        (*itLE).second.push_back( elem );
-      }
-      else
-        mapLi_listEl[ linkID ].push_back( elem );
-      mapEl_setLi [ elem ].insert( linkID );
-    }
-  }
-  // Clean the maps from the links shared by a sole element, ie
-  // links to which only one element is bound in mapLi_listEl
-
-  for ( itLE = mapLi_listEl.begin(); itLE != mapLi_listEl.end(); itLE++ )
-  {
-    int nbElems = (*itLE).second.size();
-    if ( nbElems < 2  ) {
-      const SMDS_MeshElement* elem = (*itLE).second.front();
-      long link = (*itLE).first;
-      mapEl_setLi[ elem ].erase( link );
-      if ( mapEl_setLi[ elem ].empty() )
-        mapEl_setLi.erase( elem );
-    }
-  }
-
-  // Algo: fuse triangles into quadrangles
-
-  while ( ! mapEl_setLi.empty() )
-  {
-    // Look for the start element:
-    // the element having the least nb of shared links
-
-    const SMDS_MeshElement* startElem = 0;
-    int minNbLinks = 4;
-    for ( itEL = mapEl_setLi.begin(); itEL != mapEl_setLi.end(); itEL++ )
-    {
-      int nbLinks = (*itEL).second.size();
-      if ( nbLinks < minNbLinks )
-      {
-        startElem = (*itEL).first;
-        minNbLinks = nbLinks;
-        if ( minNbLinks == 1 )
-          break;
-      }
-    }
-
-    // search elements to fuse starting from startElem or links of elements
-    // fused earlyer - startLinks
-    list< long > startLinks;
-    while ( startElem || !startLinks.empty() )
-    {
-      while ( !startElem && !startLinks.empty() )
-      {
-        // Get an element to start, by a link
-        long linkId = startLinks.front();
-        startLinks.pop_front();
-        itLE = mapLi_listEl.find( linkId );
-        if ( itLE != mapLi_listEl.end() )
-        {
-          list< const SMDS_MeshElement* > & listElem = (*itLE).second;
-          list< const SMDS_MeshElement* >::iterator itE = listElem.begin();
-          for ( ; itE != listElem.end() ; itE++ )
-            if ( mapEl_setLi.find( (*itE) ) != mapEl_setLi.end() )
-              startElem = (*itE);
-          mapLi_listEl.erase( itLE );
-        }
-      }
-
-      if ( startElem )
-      {
-        // Get candidates to be fused
-
-        const SMDS_MeshElement *tr1 = startElem, *tr2 = 0, *tr3 = 0;
-        long link12, link13;
-        startElem = 0;
-        ASSERT( mapEl_setLi.find( tr1 ) != mapEl_setLi.end() );
-        set< long >& setLi = mapEl_setLi[ tr1 ];
-        ASSERT( !setLi.empty() );
-        set< long >::iterator itLi;
-        for ( itLi = setLi.begin(); itLi != setLi.end(); itLi++ )
-        {
-          long linkID = (*itLi);
-          itLE = mapLi_listEl.find( linkID );
-          if ( itLE == mapLi_listEl.end() )
-            continue;
-          const SMDS_MeshElement* elem = (*itLE).second.front();
-          if ( elem == tr1 )
-            elem = (*itLE).second.back();
-          mapLi_listEl.erase( itLE );
-          if ( mapEl_setLi.find( elem ) == mapEl_setLi.end())
-            continue;
-          if ( tr2 )
-          {
-            tr3 = elem;
-            link13 = linkID;
-          }
-          else
-          {
-            tr2 = elem;
-            link12 = linkID;
-          }
-
-          // add other links of elem to list of links to re-start from
-          set< long >& links = mapEl_setLi[ elem ];
-          set< long >::iterator it;
-          for ( it = links.begin(); it != links.end(); it++ )
-          {
-            long linkID2 = (*it);
-            if ( linkID2 != linkID )
-              startLinks.push_back( linkID2 );
-          }
-        }
-
-        // Get nodes of possible quadrangles
-
-        const SMDS_MeshNode *n12 [4], *n13 [4];
-        bool Ok12 = false, Ok13 = false;
-        const SMDS_MeshNode *linkNode1, *linkNode2;
-        if ( tr2 &&
-             aLinkID_Gen.GetNodes( link12, linkNode1, linkNode2 ) &&
-             getQuadrangleNodes( n12, linkNode1, linkNode2, tr1, tr2 ))
-          Ok12 = true;
-        if ( tr3 &&
-             aLinkID_Gen.GetNodes( link13, linkNode1, linkNode2 ) &&
-             getQuadrangleNodes( n13, linkNode1, linkNode2, tr1, tr3 ))
-          Ok13 = true;
-
-        // Choose a pair to fuse
-
-        if ( Ok12 && Ok13 )
-        {
-          SMDS_FaceOfNodes quad12 ( n12[ 0 ], n12[ 1 ], n12[ 2 ], n12[ 3 ] );
-          SMDS_FaceOfNodes quad13 ( n13[ 0 ], n13[ 1 ], n13[ 2 ], n13[ 3 ] );
-          double aBadRate12 = getBadRate( &quad12, theCrit );
-          double aBadRate13 = getBadRate( &quad13, theCrit );
-          if (  aBadRate13 < aBadRate12 )
-            Ok12 = false;
-          else
-            Ok13 = false;
-        }
-
-
-        // Make quadrangles
-        // and remove fused elems and removed links from the maps
-
-        mapEl_setLi.erase( tr1 );
-        if ( Ok12 )
-        {
-          mapEl_setLi.erase( tr2 );
-          mapLi_listEl.erase( link12 );
-          aMesh->ChangeElementNodes( tr1, n12, 4 );
-          aMesh->RemoveElement( tr2 );
-        }
-        else if ( Ok13 )
-        {
-          mapEl_setLi.erase( tr3 );
-          mapLi_listEl.erase( link13 );
-          aMesh->ChangeElementNodes( tr1, n13, 4 );
-          aMesh->RemoveElement( tr3 );
-        }
-
-        // Next element to fuse: the rejected one
-        if ( tr3 )
-          startElem = Ok12 ? tr3 : tr2;
-
-      } // if ( startElem )
-    } // while ( startElem || !startLinks.empty() )
-  } // while ( ! mapEl_setLi.empty() )
-
-  return true;
-}
-
-
-/*#define DUMPSO(txt) \
-//  cout << txt << endl;
-//=============================================================================
-//
-//
-//
-//=============================================================================
-static void swap( int i1, int i2, int idNodes[], gp_Pnt P[] )
-{
-  if ( i1 == i2 )
-    return;
-  int tmp = idNodes[ i1 ];
-  idNodes[ i1 ] = idNodes[ i2 ];
-  idNodes[ i2 ] = tmp;
-  gp_Pnt Ptmp = P[ i1 ];
-  P[ i1 ] = P[ i2 ];
-  P[ i2 ] = Ptmp;
-  DUMPSO( i1 << "(" << idNodes[ i2 ] << ") <-> " << i2 << "(" << idNodes[ i1 ] << ")");
-}
-
-//=======================================================================
-//function : SortQuadNodes
-//purpose  : Set 4 nodes of a quadrangle face in a good order.
-//           Swap 1<->2 or 2<->3 nodes and correspondingly return
-//           1 or 2 else 0.
-//=======================================================================
-
-int SMESH_MeshEditor::SortQuadNodes (const SMDS_Mesh * theMesh,
-                                     int               idNodes[] )
-{
-  gp_Pnt P[4];
-  int i;
-  for ( i = 0; i < 4; i++ ) {
-    const SMDS_MeshNode *n = theMesh->FindNode( idNodes[i] );
-    if ( !n ) return 0;
-    P[ i ].SetCoord( n->X(), n->Y(), n->Z() );
-  }
-
-  gp_Vec V1(P[0], P[1]);
-  gp_Vec V2(P[0], P[2]);
-  gp_Vec V3(P[0], P[3]);
-
-  gp_Vec Cross1 = V1 ^ V2;
-  gp_Vec Cross2 = V2 ^ V3;
-
-  i = 0;
-  if (Cross1.Dot(Cross2) < 0)
-  {
-    Cross1 = V2 ^ V1;
-    Cross2 = V1 ^ V3;
-
-    if (Cross1.Dot(Cross2) < 0)
-      i = 2;
-    else
-      i = 1;
-    swap ( i, i + 1, idNodes, P );
-
-//     for ( int ii = 0; ii < 4; ii++ ) {
-//       const SMDS_MeshNode *n = theMesh->FindNode( idNodes[ii] );
-//       DUMPSO( ii << "(" << idNodes[ii] <<") : "<<n->X()<<" "<<n->Y()<<" "<<n->Z());
-//     }
-  }
-  return i;
-}
-
-//=======================================================================
-//function : SortHexaNodes
-//purpose  : Set 8 nodes of a hexahedron in a good order.
-//           Return success status
-//=======================================================================
-
-bool SMESH_MeshEditor::SortHexaNodes (const SMDS_Mesh * theMesh,
-                                      int               idNodes[] )
-{
-  gp_Pnt P[8];
-  int i;
-  DUMPSO( "INPUT: ========================================");
-  for ( i = 0; i < 8; i++ ) {
-    const SMDS_MeshNode *n = theMesh->FindNode( idNodes[i] );
-    if ( !n ) return false;
-    P[ i ].SetCoord( n->X(), n->Y(), n->Z() );
-    DUMPSO( i << "(" << idNodes[i] <<") : "<<n->X()<<" "<<n->Y()<<" "<<n->Z());
-  }
-  DUMPSO( "========================================");
-
-
-  set<int> faceNodes;  // ids of bottom face nodes, to be found
-  set<int> checkedId1; // ids of tried 2-nd nodes
-  Standard_Real leastDist = DBL_MAX; // dist of the 4-th node from 123 plane
-  const Standard_Real tol = 1.e-6;   // tolerance to find nodes in plane
-  int iMin, iLoop1 = 0;
-
-  // Loop to try the 2-nd nodes
-
-  while ( leastDist > DBL_MIN && ++iLoop1 < 8 )
-  {
-    // Find not checked 2-nd node
-    for ( i = 1; i < 8; i++ )
-      if ( checkedId1.find( idNodes[i] ) == checkedId1.end() ) {
-        int id1 = idNodes[i];
-        swap ( 1, i, idNodes, P );
-        checkedId1.insert ( id1 );
-        break;
-      }
-
-    // Find the 3-d node so that 1-2-3 triangle to be on a hexa face,
-    // ie that all but meybe one (id3 which is on the same face) nodes
-    // lay on the same side from the triangle plane.
-
-    bool manyInPlane = false; // more than 4 nodes lay in plane
-    int iLoop2 = 0;
-    while ( ++iLoop2 < 6 ) {
-
-      // get 1-2-3 plane coeffs
-      Standard_Real A, B, C, D;
-      gp_Vec N = gp_Vec (P[0], P[1]).Crossed( gp_Vec (P[0], P[2]) );
-      if ( N.SquareMagnitude() > gp::Resolution() )
-      {
-        gp_Pln pln ( P[0], N );
-        pln.Coefficients( A, B, C, D );
-
-        // find the node (iMin) closest to pln
-        Standard_Real dist[ 8 ], minDist = DBL_MAX;
-        set<int> idInPln;
-        for ( i = 3; i < 8; i++ ) {
-          dist[i] = A * P[i].X() + B * P[i].Y() + C * P[i].Z() + D;
-          if ( fabs( dist[i] ) < minDist ) {
-            minDist = fabs( dist[i] );
-            iMin = i;
-          }
-          if ( fabs( dist[i] ) <= tol )
-            idInPln.insert( idNodes[i] );
-        }
-
-        // there should not be more than 4 nodes in bottom plane
-        if ( idInPln.size() > 1 )
-        {
-          DUMPSO( "### idInPln.size() = " << idInPln.size());
-          // idInPlane does not contain the first 3 nodes
-          if ( manyInPlane || idInPln.size() == 5)
-            return false; // all nodes in one plane
-          manyInPlane = true;
-
-          // set the 1-st node to be not in plane
-          for ( i = 3; i < 8; i++ ) {
-            if ( idInPln.find( idNodes[ i ] ) == idInPln.end() ) {
-              DUMPSO( "### Reset 0-th node");
-              swap( 0, i, idNodes, P );
-              break;
-            }
-          }
-
-          // reset to re-check second nodes
-          leastDist = DBL_MAX;
-          faceNodes.clear();
-          checkedId1.clear();
-          iLoop1 = 0;
-          break; // from iLoop2;
-        }
-
-        // check that the other 4 nodes are on the same side
-        bool sameSide = true;
-        bool isNeg = dist[ iMin == 3 ? 4 : 3 ] <= 0.;
-        for ( i = 3; sameSide && i < 8; i++ ) {
-          if ( i != iMin )
-            sameSide = ( isNeg == dist[i] <= 0.);
-        }
-
-        // keep best solution
-        if ( sameSide && minDist < leastDist ) {
-          leastDist = minDist;
-          faceNodes.clear();
-          faceNodes.insert( idNodes[ 1 ] );
-          faceNodes.insert( idNodes[ 2 ] );
-          faceNodes.insert( idNodes[ iMin ] );
-          DUMPSO( "loop " << iLoop2 << " id2 " << idNodes[ 1 ] << " id3 " << idNodes[ 2 ]
-            << " leastDist = " << leastDist);
-          if ( leastDist <= DBL_MIN )
-            break;
-        }
-      }
-
-      // set next 3-d node to check
-      int iNext = 2 + iLoop2;
-      if ( iNext < 8 ) {
-        DUMPSO( "Try 2-nd");
-        swap ( 2, iNext, idNodes, P );
-      }
-    } // while ( iLoop2 < 6 )
-  } // iLoop1
-
-  if ( faceNodes.empty() ) return false;
-
-  // Put the faceNodes in proper places
-  for ( i = 4; i < 8; i++ ) {
-    if ( faceNodes.find( idNodes[ i ] ) != faceNodes.end() ) {
-      // find a place to put
-      int iTo = 1;
-      while ( faceNodes.find( idNodes[ iTo ] ) != faceNodes.end() )
-        iTo++;
-      DUMPSO( "Set faceNodes");
-      swap ( iTo, i, idNodes, P );
-    }
-  }
-
-
-  // Set nodes of the found bottom face in good order
-  DUMPSO( " Found bottom face: ");
-  i = SortQuadNodes( theMesh, idNodes );
-  if ( i ) {
-    gp_Pnt Ptmp = P[ i ];
-    P[ i ] = P[ i+1 ];
-    P[ i+1 ] = Ptmp;
-  }
-//   else
-//     for ( int ii = 0; ii < 4; ii++ ) {
-//       const SMDS_MeshNode *n = theMesh->FindNode( idNodes[ii] );
-//       DUMPSO( ii << "(" << idNodes[ii] <<") : "<<n->X()<<" "<<n->Y()<<" "<<n->Z());
-//    }
-
-  // Gravity center of the top and bottom faces
-  gp_Pnt aGCb = ( P[0].XYZ() + P[1].XYZ() + P[2].XYZ() + P[3].XYZ() ) / 4.;
-  gp_Pnt aGCt = ( P[4].XYZ() + P[5].XYZ() + P[6].XYZ() + P[7].XYZ() ) / 4.;
-
-  // Get direction from the bottom to the top face
-  gp_Vec upDir ( aGCb, aGCt );
-  Standard_Real upDirSize = upDir.Magnitude();
-  if ( upDirSize <= gp::Resolution() ) return false;
-  upDir / upDirSize;
-
-  // Assure that the bottom face normal points up
-  gp_Vec Nb = gp_Vec (P[0], P[1]).Crossed( gp_Vec (P[0], P[2]) );
-  Nb += gp_Vec (P[0], P[2]).Crossed( gp_Vec (P[0], P[3]) );
-  if ( Nb.Dot( upDir ) < 0 ) {
-    DUMPSO( "Reverse bottom face");
-    swap( 1, 3, idNodes, P );
-  }
-
-  // Find 5-th node - the one closest to the 1-st among the last 4 nodes.
-  Standard_Real minDist = DBL_MAX;
-  for ( i = 4; i < 8; i++ ) {
-    // projection of P[i] to the plane defined by P[0] and upDir
-    gp_Pnt Pp = P[i].Translated( upDir * ( upDir.Dot( gp_Vec( P[i], P[0] ))));
-    Standard_Real sqDist = P[0].SquareDistance( Pp );
-    if ( sqDist < minDist ) {
-      minDist = sqDist;
-      iMin = i;
-    }
-  }
-  DUMPSO( "Set 4-th");
-  swap ( 4, iMin, idNodes, P );
-
-  // Set nodes of the top face in good order
-  DUMPSO( "Sort top face");
-  i = SortQuadNodes( theMesh, &idNodes[4] );
-  if ( i ) {
-    i += 4;
-    gp_Pnt Ptmp = P[ i ];
-    P[ i ] = P[ i+1 ];
-    P[ i+1 ] = Ptmp;
-  }
-
-  // Assure that direction of the top face normal is from the bottom face
-  gp_Vec Nt = gp_Vec (P[4], P[5]).Crossed( gp_Vec (P[4], P[6]) );
-  Nt += gp_Vec (P[4], P[6]).Crossed( gp_Vec (P[4], P[7]) );
-  if ( Nt.Dot( upDir ) < 0 ) {
-    DUMPSO( "Reverse top face");
-    swap( 5, 7, idNodes, P );
-  }
-
-//   DUMPSO( "OUTPUT: ========================================");
-//   for ( i = 0; i < 8; i++ ) {
-//     float *p = ugrid->GetPoint(idNodes[i]);
-//     DUMPSO( i << "(" << idNodes[i] << ") : " << p[0] << " " << p[1] << " " << p[2]);
-//   }
-
-  return true;
-}*/
-
-//=======================================================================
-//function : laplacianSmooth
-//purpose  : pulls theNode toward the center of surrounding nodes directly
-//           connected to that node along an element edge
-//=======================================================================
-
-void laplacianSmooth(const SMDS_MeshNode*                 theNode,
-                     const Handle(Geom_Surface)&          theSurface,
-                     map< const SMDS_MeshNode*, gp_XY* >& theUVMap)
-{
-  // find surrounding nodes
-
-  set< const SMDS_MeshNode* > nodeSet;
-  SMDS_ElemIteratorPtr elemIt = theNode->GetInverseElementIterator();
-  while ( elemIt->more() )
-  {
-    const SMDS_MeshElement* elem = elemIt->next();
-    if ( elem->GetType() != SMDSAbs_Face )
-      continue;
-
-    // put all nodes in array
-    int nbNodes = 0, iNode = 0;
-    vector< const SMDS_MeshNode*> aNodes( elem->NbNodes() );
-    SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    while ( itN->more() )
-    {
-      aNodes[ nbNodes ] = static_cast<const SMDS_MeshNode*>( itN->next() );
-      if ( aNodes[ nbNodes ] == theNode )
-        iNode = nbNodes; // index of theNode within aNodes
-      nbNodes++;
-    }
-    // add linked nodes
-    int iAfter = ( iNode + 1 == nbNodes ) ? 0 : iNode + 1;
-    nodeSet.insert( aNodes[ iAfter ]);
-    int iBefore = ( iNode == 0 ) ? nbNodes - 1 : iNode - 1;
-    nodeSet.insert( aNodes[ iBefore ]);
-  }
-
-  // compute new coodrs
-
-  double coord[] = { 0., 0., 0. };
-  set< const SMDS_MeshNode* >::iterator nodeSetIt = nodeSet.begin();
-  for ( ; nodeSetIt != nodeSet.end(); nodeSetIt++ ) {
-    const SMDS_MeshNode* node = (*nodeSetIt);
-    if ( theSurface.IsNull() ) { // smooth in 3D
-      coord[0] += node->X();
-      coord[1] += node->Y();
-      coord[2] += node->Z();
-    }
-    else { // smooth in 2D
-      ASSERT( theUVMap.find( node ) != theUVMap.end() );
-      gp_XY* uv = theUVMap[ node ];
-      coord[0] += uv->X();
-      coord[1] += uv->Y();
-    }
-  }
-  int nbNodes = nodeSet.size();
-  if ( !nbNodes )
-    return;
-  coord[0] /= nbNodes;
-  coord[1] /= nbNodes;
-
-  if ( !theSurface.IsNull() ) {
-    ASSERT( theUVMap.find( theNode ) != theUVMap.end() );
-    theUVMap[ theNode ]->SetCoord( coord[0], coord[1] );
-    gp_Pnt p3d = theSurface->Value( coord[0], coord[1] );
-    coord[0] = p3d.X();
-    coord[1] = p3d.Y();
-    coord[2] = p3d.Z();
-  }
-  else
-    coord[2] /= nbNodes;
-
-  // move node
-
-  const_cast< SMDS_MeshNode* >( theNode )->setXYZ(coord[0],coord[1],coord[2]);
-}
-
-//=======================================================================
-//function : centroidalSmooth
-//purpose  : pulls theNode toward the element-area-weighted centroid of the
-//           surrounding elements
-//=======================================================================
-
-void centroidalSmooth(const SMDS_MeshNode*                 theNode,
-                      const Handle(Geom_Surface)&          theSurface,
-                      map< const SMDS_MeshNode*, gp_XY* >& theUVMap)
-{
-  gp_XYZ aNewXYZ(0.,0.,0.);
-  SMESH::Controls::Area anAreaFunc;
-  double totalArea = 0.;
-  int nbElems = 0;
-
-  // compute new XYZ
-
-  SMDS_ElemIteratorPtr elemIt = theNode->GetInverseElementIterator();
-  while ( elemIt->more() )
-  {
-    const SMDS_MeshElement* elem = elemIt->next();
-    if ( elem->GetType() != SMDSAbs_Face )
-      continue;
-    nbElems++;
-
-    gp_XYZ elemCenter(0.,0.,0.);
-    SMESH::Controls::TSequenceOfXYZ aNodePoints;
-    SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    while ( itN->more() )
-    {
-      const SMDS_MeshNode* aNode = static_cast<const SMDS_MeshNode*>( itN->next() );
-      gp_XYZ aP( aNode->X(), aNode->Y(), aNode->Z() );
-      aNodePoints.push_back( aP );
-      if ( !theSurface.IsNull() ) { // smooth in 2D
-        ASSERT( theUVMap.find( aNode ) != theUVMap.end() );
-        gp_XY* uv = theUVMap[ aNode ];
-        aP.SetCoord( uv->X(), uv->Y(), 0. );
-      }
-      elemCenter += aP;
-    }
-    double elemArea = anAreaFunc.GetValue( aNodePoints );
-    totalArea += elemArea;
-    elemCenter /= elem->NbNodes();
-    aNewXYZ += elemCenter * elemArea;
-  }
-  aNewXYZ /= totalArea;
-  if ( !theSurface.IsNull() ) {
-    ASSERT( theUVMap.find( theNode ) != theUVMap.end() );
-    theUVMap[ theNode ]->SetCoord( aNewXYZ.X(), aNewXYZ.Y() );
-    aNewXYZ = theSurface->Value( aNewXYZ.X(), aNewXYZ.Y() ).XYZ();
-  }
-
-  // move node
-
-  const_cast< SMDS_MeshNode* >( theNode )->setXYZ(aNewXYZ.X(),aNewXYZ.Y(),aNewXYZ.Z());
-}
-
-//=======================================================================
-//function : getClosestUV
-//purpose  : return UV of closest projection
-//=======================================================================
-
-static bool getClosestUV (Extrema_GenExtPS& projector,
-                          const gp_Pnt&     point,
-                          gp_XY &           result)
-{
-  projector.Perform( point );
-  if ( projector.IsDone() ) {
-    double u, v, minVal = DBL_MAX;
-    for ( int i = projector.NbExt(); i > 0; i-- )
-      if ( projector.Value( i ) < minVal ) {
-        minVal = projector.Value( i );
-        projector.Point( i ).Parameter( u, v );
-      }
-    result.SetCoord( u, v );
-    return true;
-  }
-  return false;
-}
-
-//=======================================================================
-//function : Smooth
-//purpose  : Smooth theElements during theNbIterations or until a worst
-//           element has aspect ratio <= theTgtAspectRatio.
-//           Aspect Ratio varies in range [1.0, inf].
-//           If theElements is empty, the whole mesh is smoothed.
-//           theFixedNodes contains additionally fixed nodes. Nodes built
-//           on edges and boundary nodes are always fixed.
-//=======================================================================
-
-void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
-                               set<const SMDS_MeshNode*> &    theFixedNodes,
-                               const SmoothMethod             theSmoothMethod,
-                               const int                      theNbIterations,
-                               double                         theTgtAspectRatio,
-                               const bool                     the2D)
-{
-  MESSAGE((theSmoothMethod==LAPLACIAN ? "LAPLACIAN" : "CENTROIDAL") << "--::Smooth()");
-
-  if ( theTgtAspectRatio < 1.0 )
-    theTgtAspectRatio = 1.0;
-
-  SMESH::Controls::AspectRatio aQualityFunc;
-
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  if ( theElems.empty() ) {
-    // add all faces to theElems
-    SMDS_FaceIteratorPtr fIt = aMesh->facesIterator();
-    while ( fIt->more() )
-      theElems.insert( fIt->next() );
-  }
-  // get all face ids theElems are on
-  set< int > faceIdSet;
-  set< const SMDS_MeshElement* >::iterator itElem;
-  if ( the2D )
-    for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
-      int fId = FindShape( *itElem );
-      // check that corresponding submesh exists and a shape is face
-      if (fId &&
-          faceIdSet.find( fId ) == faceIdSet.end() &&
-          aMesh->MeshElements( fId )) {
-        TopoDS_Shape F = aMesh->IndexToShape( fId );
-        if ( !F.IsNull() && F.ShapeType() == TopAbs_FACE )
-          faceIdSet.insert( fId );
-      }
-    }
-  faceIdSet.insert( 0 ); // to smooth elements that are not on any TopoDS_Face
-
-  // ===============================================
-  // smooth elements on each TopoDS_Face separately
-  // ===============================================
-
-  set< int >::reverse_iterator fId = faceIdSet.rbegin(); // treate 0 fId at the end
-  for ( ; fId != faceIdSet.rend(); ++fId )
-  {
-    // get face surface and submesh
-    Handle(Geom_Surface) surface;
-    SMESHDS_SubMesh* faceSubMesh = 0;
-    TopoDS_Face face;
-    double fToler2 = 0, vPeriod = 0., uPeriod = 0., f,l;
-    double u1 = 0, u2 = 0, v1 = 0, v2 = 0;
-    bool isUPeriodic = false, isVPeriodic = false;
-    if ( *fId ) {
-      face = TopoDS::Face( aMesh->IndexToShape( *fId ));
-      surface = BRep_Tool::Surface( face );
-      faceSubMesh = aMesh->MeshElements( *fId );
-      fToler2 = BRep_Tool::Tolerance( face );
-      fToler2 *= fToler2 * 10.;
-      isUPeriodic = surface->IsUPeriodic();
-      if ( isUPeriodic )
-        vPeriod = surface->UPeriod();
-      isVPeriodic = surface->IsVPeriodic();
-      if ( isVPeriodic )
-        uPeriod = surface->VPeriod();
-      surface->Bounds( u1, u2, v1, v2 );
-    }
-    // ---------------------------------------------------------
-    // for elements on a face, find movable and fixed nodes and
-    // compute UV for them
-    // ---------------------------------------------------------
-    bool checkBoundaryNodes = false;
-    set<const SMDS_MeshNode*> setMovableNodes;
-    map< const SMDS_MeshNode*, gp_XY* > uvMap, uvMap2;
-    list< gp_XY > listUV; // uvs the 2 uvMaps refer to
-    list< const SMDS_MeshElement* > elemsOnFace;
-
-    Extrema_GenExtPS projector;
-    GeomAdaptor_Surface surfAdaptor;
-    if ( !surface.IsNull() ) {
-      surfAdaptor.Load( surface );
-      projector.Initialize( surfAdaptor, 20,20, 1e-5,1e-5 );
-    }
-    int nbElemOnFace = 0;
-    itElem = theElems.begin();
-     // loop on not yet smoothed elements: look for elems on a face
-    while ( itElem != theElems.end() )
-    {
-      if ( faceSubMesh && nbElemOnFace == faceSubMesh->NbElements() )
-        break; // all elements found
-
-      const SMDS_MeshElement* elem = (*itElem);
-      if ( !elem || elem->GetType() != SMDSAbs_Face || elem->NbNodes() < 3 ||
-          ( faceSubMesh && !faceSubMesh->Contains( elem ))) {
-        ++itElem;
-        continue;
-      }
-      elemsOnFace.push_back( elem );
-      theElems.erase( itElem++ );
-      nbElemOnFace++;
-
-      // get movable nodes of elem
-      const SMDS_MeshNode* node;
-      SMDS_TypeOfPosition posType;
-      SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-      while ( itN->more() ) {
-        node = static_cast<const SMDS_MeshNode*>( itN->next() );
-        const SMDS_PositionPtr& pos = node->GetPosition();
-        posType = pos.get() ? pos->GetTypeOfPosition() : SMDS_TOP_3DSPACE;
-        if (posType != SMDS_TOP_EDGE &&
-            posType != SMDS_TOP_VERTEX &&
-            theFixedNodes.find( node ) == theFixedNodes.end())
-        {
-          // check if all faces around the node are on faceSubMesh
-          // because a node on edge may be bound to face
-          SMDS_ElemIteratorPtr eIt = node->GetInverseElementIterator();
-          bool all = true;
-          if ( faceSubMesh ) {
-            while ( eIt->more() && all ) {
-              const SMDS_MeshElement* e = eIt->next();
-              if ( e->GetType() == SMDSAbs_Face )
-                all = faceSubMesh->Contains( e );
-            }
-          }
-          if ( all )
-            setMovableNodes.insert( node );
-          else
-            checkBoundaryNodes = true;
-        }
-        if ( posType == SMDS_TOP_3DSPACE )
-          checkBoundaryNodes = true;
-      }
-
-      if ( surface.IsNull() )
-        continue;
-
-      // get nodes to check UV
-      list< const SMDS_MeshNode* > uvCheckNodes;
-      itN = elem->nodesIterator();
-      while ( itN->more() ) {
-        node = static_cast<const SMDS_MeshNode*>( itN->next() );
-        if ( uvMap.find( node ) == uvMap.end() )
-          uvCheckNodes.push_back( node );
-        // add nodes of elems sharing node
-//         SMDS_ElemIteratorPtr eIt = node->GetInverseElementIterator();
-//         while ( eIt->more() ) {
-//           const SMDS_MeshElement* e = eIt->next();
-//           if ( e != elem && e->GetType() == SMDSAbs_Face ) {
-//             SMDS_ElemIteratorPtr nIt = e->nodesIterator();
-//             while ( nIt->more() ) {
-//               const SMDS_MeshNode* n =
-//                 static_cast<const SMDS_MeshNode*>( nIt->next() );
-//               if ( uvMap.find( n ) == uvMap.end() )
-//                 uvCheckNodes.push_back( n );
-//             }
-//           }
-//         }
-      }
-      // check UV on face
-      list< const SMDS_MeshNode* >::iterator n = uvCheckNodes.begin();
-      for ( ; n != uvCheckNodes.end(); ++n )
-      {
-        node = *n;
-        gp_XY uv( 0, 0 );
-        const SMDS_PositionPtr& pos = node->GetPosition();
-        posType = pos.get() ? pos->GetTypeOfPosition() : SMDS_TOP_3DSPACE;
-        // get existing UV
-        switch ( posType ) {
-        case SMDS_TOP_FACE: {
-          SMDS_FacePosition* fPos = ( SMDS_FacePosition* ) pos.get();
-          uv.SetCoord( fPos->GetUParameter(), fPos->GetVParameter() );
-          break;
-        }
-        case SMDS_TOP_EDGE: {
-          TopoDS_Shape S = aMesh->IndexToShape( pos->GetShapeId() );
-          Handle(Geom2d_Curve) pcurve;
-          if ( !S.IsNull() && S.ShapeType() == TopAbs_EDGE )
-            pcurve = BRep_Tool::CurveOnSurface( TopoDS::Edge( S ), face, f,l );
-          if ( !pcurve.IsNull() ) {
-            double u = (( SMDS_EdgePosition* ) pos.get() )->GetUParameter();
-            uv = pcurve->Value( u ).XY();
-          }
-          break;
-        }
-        case SMDS_TOP_VERTEX: {
-          TopoDS_Shape S = aMesh->IndexToShape( pos->GetShapeId() );
-          if ( !S.IsNull() && S.ShapeType() == TopAbs_VERTEX )
-            uv = BRep_Tool::Parameters( TopoDS::Vertex( S ), face ).XY();
-          break;
-        }
-        default:;
-        }
-        // check existing UV
-        bool project = true;
-        gp_Pnt pNode ( node->X(), node->Y(), node->Z() );
-        double dist1 = DBL_MAX, dist2 = 0;
-        if ( posType != SMDS_TOP_3DSPACE ) {
-          dist1 = pNode.SquareDistance( surface->Value( uv.X(), uv.Y() ));
-          project = dist1 > fToler2;
-        }
-        if ( project ) { // compute new UV
-          gp_XY newUV;
-          if ( !getClosestUV( projector, pNode, newUV )) {
-            MESSAGE("Node Projection Failed " << node);
-          }
-          else {
-            if ( isUPeriodic )
-              newUV.SetX( ElCLib::InPeriod( newUV.X(), u1, u2 ));
-            if ( isVPeriodic )
-              newUV.SetY( ElCLib::InPeriod( newUV.Y(), v1, v2 ));
-            // check new UV
-            if ( posType != SMDS_TOP_3DSPACE )
-              dist2 = pNode.SquareDistance( surface->Value( newUV.X(), newUV.Y() ));
-            if ( dist2 < dist1 )
-              uv = newUV;
-          }
-        }
-        // store UV in the map
-        listUV.push_back( uv );
-        uvMap.insert( make_pair( node, &listUV.back() ));
-      }
-    } // loop on not yet smoothed elements
-
-    if ( !faceSubMesh || nbElemOnFace != faceSubMesh->NbElements() )
-      checkBoundaryNodes = true;
-
-    // fix nodes on mesh boundary
-
-    if ( checkBoundaryNodes )
-    {
-      typedef pair<const SMDS_MeshNode*, const SMDS_MeshNode*> TLink;
-      map< TLink, int > linkNbMap; // how many times a link encounters in elemsOnFace
-      map< TLink, int >::iterator link_nb;
-      // put all elements links to linkNbMap
-      list< const SMDS_MeshElement* >::iterator elemIt = elemsOnFace.begin();
-      for ( ; elemIt != elemsOnFace.end(); ++elemIt )
-      {
-        // put elem nodes in array
-        vector< const SMDS_MeshNode* > nodes;
-        nodes.reserve( (*elemIt)->NbNodes() + 1 );
-        SMDS_ElemIteratorPtr itN = (*elemIt)->nodesIterator();
-        while ( itN->more() )
-          nodes.push_back( static_cast<const SMDS_MeshNode*>( itN->next() ));
-        nodes.push_back( nodes.front() );
-        // loop on elem links: insert them in linkNbMap
-        for ( int iN = 1; iN < nodes.size(); ++iN ) {
-          TLink link;
-          if ( nodes[ iN-1 ]->GetID() < nodes[ iN ]->GetID() )
-            link = make_pair( nodes[ iN-1 ], nodes[ iN ] );
-          else
-            link = make_pair( nodes[ iN ], nodes[ iN-1 ] );
-          link_nb = linkNbMap.find( link );
-          if ( link_nb == linkNbMap.end() )
-            linkNbMap.insert( make_pair ( link, 1 ));
-          else
-            link_nb->second++;
-        }
-      }
-      // remove nodes that are in links encountered only once from setMovableNodes
-      for ( link_nb = linkNbMap.begin(); link_nb != linkNbMap.end(); ++link_nb ) {
-        if ( link_nb->second == 1 ) {
-          setMovableNodes.erase( link_nb->first.first );
-          setMovableNodes.erase( link_nb->first.second );
-        }
-      }
-    }
-
-    // -----------------------------------------------------
-    // for nodes on seam edge, compute one more UV ( uvMap2 );
-    // find movable nodes linked to nodes on seam and which
-    // are to be smoothed using the second UV ( uvMap2 )
-    // -----------------------------------------------------
-
-    set<const SMDS_MeshNode*> nodesNearSeam; // to smooth using uvMap2
-    if ( !surface.IsNull() )
-    {
-      TopExp_Explorer eExp( face, TopAbs_EDGE );
-      for ( ; eExp.More(); eExp.Next() )
-      {
-        TopoDS_Edge edge = TopoDS::Edge( eExp.Current() );
-        if ( !BRep_Tool::IsClosed( edge, face ))
-          continue;
-        SMESHDS_SubMesh* sm = aMesh->MeshElements( edge );
-        if ( !sm ) continue;
-        // find out which parameter varies for a node on seam
-        double f,l;
-        gp_Pnt2d uv1, uv2;
-        Handle(Geom2d_Curve) pcurve = BRep_Tool::CurveOnSurface( edge, face, f, l );
-        if ( pcurve.IsNull() ) continue;
-        uv1 = pcurve->Value( f );
-        edge.Reverse();
-        pcurve = BRep_Tool::CurveOnSurface( edge, face, f, l );
-        if ( pcurve.IsNull() ) continue;
-        uv2 = pcurve->Value( f );
-        int iPar = Abs( uv1.X() - uv2.X() ) > Abs( uv1.Y() - uv2.Y() ) ? 1 : 2;
-        // assure uv1 < uv2
-        if ( uv1.Coord( iPar ) > uv2.Coord( iPar )) {
-          gp_Pnt2d tmp = uv1; uv1 = uv2; uv2 = tmp;
-        }
-        // get nodes on seam and its vertices
-        list< const SMDS_MeshNode* > seamNodes;
-        SMDS_NodeIteratorPtr nSeamIt = sm->GetNodes();
-        while ( nSeamIt->more() )
-          seamNodes.push_back( nSeamIt->next() );
-        TopExp_Explorer vExp( edge, TopAbs_VERTEX );
-        for ( ; vExp.More(); vExp.Next() ) {
-          sm = aMesh->MeshElements( vExp.Current() );
-          if ( sm ) {
-            nSeamIt = sm->GetNodes();
-            while ( nSeamIt->more() )
-              seamNodes.push_back( nSeamIt->next() );
-          }
-        }
-        // loop on nodes on seam
-        list< const SMDS_MeshNode* >::iterator noSeIt = seamNodes.begin();
-        for ( ; noSeIt != seamNodes.end(); ++noSeIt )
-        {
-          const SMDS_MeshNode* nSeam = *noSeIt;
-          map< const SMDS_MeshNode*, gp_XY* >::iterator n_uv = uvMap.find( nSeam );
-          if ( n_uv == uvMap.end() )
-            continue;
-          // set the first UV
-          n_uv->second->SetCoord( iPar, uv1.Coord( iPar ));
-          // set the second UV
-          listUV.push_back( *n_uv->second );
-          listUV.back().SetCoord( iPar, uv2.Coord( iPar ));
-          if ( uvMap2.empty() )
-            uvMap2 = uvMap; // copy the uvMap contents
-          uvMap2[ nSeam ] = &listUV.back();
-
-          // collect movable nodes linked to ones on seam in nodesNearSeam
-          SMDS_ElemIteratorPtr eIt = nSeam->GetInverseElementIterator();
-          while ( eIt->more() )
-          {
-            const SMDS_MeshElement* e = eIt->next();
-            if ( e->GetType() != SMDSAbs_Face )
-              continue;
-            int nbUseMap1 = 0, nbUseMap2 = 0;
-            SMDS_ElemIteratorPtr nIt = e->nodesIterator();
-            while ( nIt->more() )
-            {
-              const SMDS_MeshNode* n =
-                static_cast<const SMDS_MeshNode*>( nIt->next() );
-              if (n == nSeam ||
-                  setMovableNodes.find( n ) == setMovableNodes.end() )
-                continue;
-              // add only nodes being closer to uv2 than to uv1
-              gp_Pnt pMid (0.5 * ( n->X() + nSeam->X() ),
-                           0.5 * ( n->Y() + nSeam->Y() ),
-                           0.5 * ( n->Z() + nSeam->Z() ));
-              gp_XY uv;
-              getClosestUV( projector, pMid, uv );
-              if ( uv.Coord( iPar ) > uvMap[ n ]->Coord( iPar ) ) {
-                nodesNearSeam.insert( n );
-                nbUseMap2++;
-              }
-              else
-                nbUseMap1++;
-            }
-            // for centroidalSmooth all element nodes must
-            // be on one side of a seam
-            if ( theSmoothMethod == CENTROIDAL && nbUseMap1 && nbUseMap2 )
-            {
-              SMDS_ElemIteratorPtr nIt = e->nodesIterator();
-              while ( nIt->more() ) {
-                const SMDS_MeshNode* n =
-                  static_cast<const SMDS_MeshNode*>( nIt->next() );
-                setMovableNodes.erase( n );
-              }
-            }
-          }
-        } // loop on nodes on seam
-      } // loop on edge of a face
-    } // if ( !face.IsNull() )
-
-    if ( setMovableNodes.empty() ) {
-      MESSAGE( "Face id : " << *fId << " - NO SMOOTHING: no nodes to move!!!");
-      continue; // goto next face
-    }
-
-    // -------------
-    // SMOOTHING //
-    // -------------
-
-    int it = -1;
-    double maxRatio = -1., maxDisplacement = -1.;
-    set<const SMDS_MeshNode*>::iterator nodeToMove;
-    for ( it = 0; it < theNbIterations; it++ )
-    {
-      maxDisplacement = 0.;
-      nodeToMove = setMovableNodes.begin();
-      for ( ; nodeToMove != setMovableNodes.end(); nodeToMove++ )
-      {
-        const SMDS_MeshNode* node = (*nodeToMove);
-        gp_XYZ aPrevPos ( node->X(), node->Y(), node->Z() );
-
-        // smooth
-        bool map2 = ( nodesNearSeam.find( node ) != nodesNearSeam.end() );
-        if ( theSmoothMethod == LAPLACIAN )
-          laplacianSmooth( node, surface, map2 ? uvMap2 : uvMap );
-        else
-          centroidalSmooth( node, surface, map2 ? uvMap2 : uvMap );
-
-        // node displacement
-        gp_XYZ aNewPos ( node->X(), node->Y(), node->Z() );
-        Standard_Real aDispl = (aPrevPos - aNewPos).SquareModulus();
-        if ( aDispl > maxDisplacement )
-          maxDisplacement = aDispl;
-      }
-      // no node movement => exit
-      if ( maxDisplacement < 1.e-16 ) {
-        MESSAGE("-- no node movement --");
-        break;
-      }
-
-      // check elements quality
-      maxRatio  = 0;
-      list< const SMDS_MeshElement* >::iterator elemIt = elemsOnFace.begin();
-      for ( ; elemIt != elemsOnFace.end(); ++elemIt )
-      {
-        const SMDS_MeshElement* elem = (*elemIt);
-        if ( !elem || elem->GetType() != SMDSAbs_Face )
-          continue;
-        SMESH::Controls::TSequenceOfXYZ aPoints;
-        if ( aQualityFunc.GetPoints( elem, aPoints )) {
-          double aValue = aQualityFunc.GetValue( aPoints );
-          if ( aValue > maxRatio )
-            maxRatio = aValue;
-        }
-      }
-      if ( maxRatio <= theTgtAspectRatio ) {
-        MESSAGE("-- quality achived --");
-        break;
-      }
-      if (it+1 == theNbIterations) {
-        MESSAGE("-- Iteration limit exceeded --");
-      }
-    } // smoothing iterations
-
-    MESSAGE(" Face id: " << *fId <<
-            " Nb iterstions: " << it <<
-            " Displacement: " << maxDisplacement <<
-            " Aspect Ratio " << maxRatio);
-
-    // ---------------------------------------
-    // new nodes positions are computed,
-    // record movement in DS and set new UV
-    // ---------------------------------------
-
-    nodeToMove = setMovableNodes.begin();
-    for ( ; nodeToMove != setMovableNodes.end(); nodeToMove++ )
-    {
-      SMDS_MeshNode* node = const_cast< SMDS_MeshNode* > (*nodeToMove);
-      aMesh->MoveNode( node, node->X(), node->Y(), node->Z() );
-      map< const SMDS_MeshNode*, gp_XY* >::iterator node_uv = uvMap.find( node );
-      if ( node_uv != uvMap.end() ) {
-        gp_XY* uv = node_uv->second;
-        node->SetPosition
-          ( SMDS_PositionPtr( new SMDS_FacePosition( *fId, uv->X(), uv->Y() )));
-      }
-    }
-
-  } // loop on face ids
-}
-
-//=======================================================================
-//function : isReverse
-//purpose  : Return true if normal of prevNodes is not co-directied with
-//           gp_Vec(prevNodes[iNotSame],nextNodes[iNotSame]).
-//           iNotSame is where prevNodes and nextNodes are different
-//=======================================================================
-
-static bool isReverse(const SMDS_MeshNode* prevNodes[],
-                      const SMDS_MeshNode* nextNodes[],
-                      const int            nbNodes,
-                      const int            iNotSame)
-{
-  int iBeforeNotSame = ( iNotSame == 0 ? nbNodes - 1 : iNotSame - 1 );
-  int iAfterNotSame  = ( iNotSame + 1 == nbNodes ? 0 : iNotSame + 1 );
-
-  const SMDS_MeshNode* nB = prevNodes[ iBeforeNotSame ];
-  const SMDS_MeshNode* nA = prevNodes[ iAfterNotSame ];
-  const SMDS_MeshNode* nP = prevNodes[ iNotSame ];
-  const SMDS_MeshNode* nN = nextNodes[ iNotSame ];
-
-  gp_Pnt pB ( nB->X(), nB->Y(), nB->Z() );
-  gp_Pnt pA ( nA->X(), nA->Y(), nA->Z() );
-  gp_Pnt pP ( nP->X(), nP->Y(), nP->Z() );
-  gp_Pnt pN ( nN->X(), nN->Y(), nN->Z() );
-
-  gp_Vec vB ( pP, pB ), vA ( pP, pA ), vN ( pP, pN );
-
-  return (vA ^ vB) * vN < 0.0;
-}
-
-//=======================================================================
-//function : sweepElement
-//purpose  :
-//=======================================================================
-
-static void sweepElement(SMESHDS_Mesh*                         aMesh,
-                         const SMDS_MeshElement*               elem,
-                         const vector<TNodeOfNodeListMapItr> & newNodesItVec,
-                         list<const SMDS_MeshElement*>&        newElems)
-{
-  // Loop on elem nodes:
-  // find new nodes and detect same nodes indices
-  int nbNodes = elem->NbNodes();
-  list<const SMDS_MeshNode*>::const_iterator itNN[ nbNodes ];
-  const SMDS_MeshNode* prevNod[ nbNodes ], *nextNod[ nbNodes ];
-  int iNode, nbSame = 0, iNotSameNode = 0, iSameNode = 0;
-
-  for ( iNode = 0; iNode < nbNodes; iNode++ )
-  {
-    TNodeOfNodeListMapItr nnIt = newNodesItVec[ iNode ];
-    const SMDS_MeshNode*                 node         = nnIt->first;
-    const list< const SMDS_MeshNode* > & listNewNodes = nnIt->second;
-    if ( listNewNodes.empty() )
-      return;
-
-    itNN[ iNode ] = listNewNodes.begin();
-    prevNod[ iNode ] = node;
-    nextNod[ iNode ] = listNewNodes.front();
-    if ( prevNod[ iNode ] != nextNod [ iNode ])
-      iNotSameNode = iNode;
-    else {
-      iSameNode = iNode;
-      nbSame++;
-    }
-  }
-  if ( nbSame == nbNodes || nbSame > 2) {
-    MESSAGE( " Too many same nodes of element " << elem->GetID() );
-    return;
-  }
-
-  int iBeforeSame = 0, iAfterSame = 0, iOpposSame = 0;
-  if ( nbSame > 0 ) {
-    iBeforeSame = ( iSameNode == 0 ? nbNodes - 1 : iSameNode - 1 );
-    iAfterSame  = ( iSameNode + 1 == nbNodes ? 0 : iSameNode + 1 );
-    iOpposSame  = ( iSameNode - 2 < 0  ? iSameNode + 2 : iSameNode - 2 );
-  }
-
-  // check element orientation
-  int i0 = 0, i2 = 2;
-  if ( nbNodes > 2 && !isReverse( prevNod, nextNod, nbNodes, iNotSameNode )) {
-    //MESSAGE("Reversed elem " << elem );
-    i0 = 2;
-    i2 = 0;
-    if ( nbSame > 0 ) {
-      int iAB = iAfterSame + iBeforeSame;
-      iBeforeSame = iAB - iBeforeSame;
-      iAfterSame  = iAB - iAfterSame;
-    }
-  }
-
-  // make new elements
-  int iStep, nbSteps = newNodesItVec[ 0 ]->second.size();
-  for (iStep = 0; iStep < nbSteps; iStep++ )
-  {
-    // get next nodes
-    for ( iNode = 0; iNode < nbNodes; iNode++ ) {
-      nextNod[ iNode ] = *itNN[ iNode ];
-      itNN[ iNode ]++;
-    }
-    SMDS_MeshElement* aNewElem = 0;
-    switch ( nbNodes )
-    {
-    case 0:
-      return;
-    case 1: { // NODE
-      if ( nbSame == 0 )
-        aNewElem = aMesh->AddEdge( prevNod[ 0 ], nextNod[ 0 ] );
-      break;
-    }
-    case 2: { // EDGE
-
-      if ( nbSame == 0 )
-        aNewElem = aMesh->AddFace(prevNod[ 0 ], prevNod[ 1 ],
-                                  nextNod[ 1 ], nextNod[ 0 ] );
-      else
-        aNewElem = aMesh->AddFace(prevNod[ 0 ], prevNod[ 1 ],
-                                  nextNod[ iNotSameNode ] );
-      break;
-    }
-    case 3: { // TRIANGLE
-
-      if ( nbSame == 0 )       // --- pentahedron
-        aNewElem = aMesh->AddVolume (prevNod[ i0 ], prevNod[ 1 ], prevNod[ i2 ],
-                                     nextNod[ i0 ], nextNod[ 1 ], nextNod[ i2 ] );
-
-      else if ( nbSame == 1 )  // --- pyramid
-        aNewElem = aMesh->AddVolume (prevNod[ iBeforeSame ],  prevNod[ iAfterSame ],
-                                     nextNod[ iAfterSame ], nextNod[ iBeforeSame ],
-                                     nextNod[ iSameNode ]);
-
-      else // 2 same nodes:      --- tetrahedron
-        aNewElem = aMesh->AddVolume (prevNod[ i0 ], prevNod[ 1 ], prevNod[ i2 ],
-                                     nextNod[ iNotSameNode ]);
-      break;
-    }
-    case 4: { // QUADRANGLE
-
-      if ( nbSame == 0 )       // --- hexahedron
-        aNewElem = aMesh->AddVolume (prevNod[ i0 ], prevNod[ 1 ], prevNod[ i2 ], prevNod[ 3 ],
-                                     nextNod[ i0 ], nextNod[ 1 ], nextNod[ i2 ], nextNod[ 3 ]);
-
-      else if ( nbSame == 1 )  // --- pyramid + pentahedron
-      {
-        aNewElem = aMesh->AddVolume (prevNod[ iBeforeSame ],  prevNod[ iAfterSame ],
-                                     nextNod[ iAfterSame ], nextNod[ iBeforeSame ],
-                                     nextNod[ iSameNode ]);
-        newElems.push_back( aNewElem );
-        aNewElem = aMesh->AddVolume (prevNod[ iAfterSame ], prevNod[ iOpposSame ],
-                                     prevNod[ iBeforeSame ],  nextNod[ iAfterSame ],
-                                     nextNod[ iOpposSame ],  nextNod[ iBeforeSame ] );
-      }
-      else if ( nbSame == 2 )  // pentahedron
-      {
-        if ( prevNod[ iBeforeSame ] == nextNod[ iBeforeSame ] )
-          // iBeforeSame is same too
-          aNewElem = aMesh->AddVolume (prevNod[ iBeforeSame ], prevNod[ iOpposSame ],
-                                       nextNod[ iOpposSame ], prevNod[ iSameNode ],
-                                       prevNod[ iAfterSame ],  nextNod[ iAfterSame ]);
-        else
-          // iAfterSame is same too
-          aNewElem = aMesh->AddVolume (prevNod[ iSameNode ], prevNod[ iBeforeSame ],
-                                       nextNod[ iBeforeSame ], prevNod[ iAfterSame ],
-                                       prevNod[ iOpposSame ],  nextNod[ iOpposSame ]);
-      }
-      break;
-    }
-    default: {
-      // realized for extrusion only
-      vector<const SMDS_MeshNode*> polyedre_nodes (nbNodes*2 + 4*nbNodes);
-      vector<int> quantities (nbNodes + 2);
-
-      quantities[0] = nbNodes; // bottom of prism
-      for (int inode = 0; inode < nbNodes; inode++) {
-        polyedre_nodes[inode] = prevNod[inode];
-      }
-
-      quantities[1] = nbNodes; // top of prism
-      for (int inode = 0; inode < nbNodes; inode++) {
-        polyedre_nodes[nbNodes + inode] = nextNod[inode];
-      }
-
-      for (int iface = 0; iface < nbNodes; iface++) {
-        quantities[iface + 2] = 4;
-        int inextface = (iface == nbNodes - 1) ? 0 : iface + 1;
-        polyedre_nodes[2*nbNodes + 4*iface + 0] = prevNod[iface];
-        polyedre_nodes[2*nbNodes + 4*iface + 1] = prevNod[inextface];
-        polyedre_nodes[2*nbNodes + 4*iface + 2] = nextNod[inextface];
-        polyedre_nodes[2*nbNodes + 4*iface + 3] = nextNod[iface];
-      }
-      aNewElem = aMesh->AddPolyhedralVolume (polyedre_nodes, quantities);
-    }
-    }
-    if ( aNewElem )
-      newElems.push_back( aNewElem );
-
-    // set new prev nodes
-    for ( iNode = 0; iNode < nbNodes; iNode++ )
-      prevNod[ iNode ] = nextNod[ iNode ];
-
-  } // for steps
-}
-
-//=======================================================================
-//function : makeWalls
-//purpose  : create 1D and 2D elements around swept elements
-//=======================================================================
-
-static void makeWalls (SMESHDS_Mesh*                 aMesh,
-                       TNodeOfNodeListMap &          mapNewNodes,
-                       TElemOfElemListMap &          newElemsMap,
-                       TElemOfVecOfNnlmiMap &        elemNewNodesMap,
-                       set<const SMDS_MeshElement*>& elemSet)
-{
-  ASSERT( newElemsMap.size() == elemNewNodesMap.size() );
-
-  // Find nodes belonging to only one initial element - sweep them to get edges.
-
-  TNodeOfNodeListMapItr nList = mapNewNodes.begin();
-  for ( ; nList != mapNewNodes.end(); nList++ )
-  {
-    const SMDS_MeshNode* node =
-      static_cast<const SMDS_MeshNode*>( nList->first );
-    SMDS_ElemIteratorPtr eIt = node->GetInverseElementIterator();
-    int nbInitElems = 0;
-    while ( eIt->more() && nbInitElems < 2 )
-      if ( elemSet.find( eIt->next() ) != elemSet.end() )
-        nbInitElems++;
-    if ( nbInitElems < 2 ) {
-      vector<TNodeOfNodeListMapItr> newNodesItVec( 1, nList );
-      list<const SMDS_MeshElement*> newEdges;
-      sweepElement( aMesh, node, newNodesItVec, newEdges );
-    }
-  }
-
-  // Make a ceiling for each element ie an equal element of last new nodes.
-  // Find free links of faces - make edges and sweep them into faces.
-
-  TElemOfElemListMap::iterator   itElem      = newElemsMap.begin();
-  TElemOfVecOfNnlmiMap::iterator itElemNodes = elemNewNodesMap.begin();
-  for ( ; itElem != newElemsMap.end(); itElem++, itElemNodes++ )
-  {
-    const SMDS_MeshElement* elem = itElem->first;
-    vector<TNodeOfNodeListMapItr>& vecNewNodes = itElemNodes->second;
-
-    if ( elem->GetType() == SMDSAbs_Edge )
-    {
-      // create a ceiling edge
-      aMesh->AddEdge(vecNewNodes[ 0 ]->second.back(),
-                     vecNewNodes[ 1 ]->second.back() );
-    }
-    if ( elem->GetType() != SMDSAbs_Face )
-      continue;
-
-    bool hasFreeLinks = false;
-
-    set<const SMDS_MeshElement*> avoidSet;
-    avoidSet.insert( elem );
-
-    // loop on a face nodes
-    set<const SMDS_MeshNode*> aFaceLastNodes;
-    int iNode, nbNodes = vecNewNodes.size();
-    for ( iNode = 0; iNode < nbNodes; iNode++ )
-    {
-      aFaceLastNodes.insert( vecNewNodes[ iNode ]->second.back() );
-      // look for free links of a face
-      int iNext = ( iNode + 1 == nbNodes ) ? 0 : iNode + 1;
-      const SMDS_MeshNode* n1 = vecNewNodes[ iNode ]->first;
-      const SMDS_MeshNode* n2 = vecNewNodes[ iNext ]->first;
-      // check if a link is free
-      if ( ! SMESH_MeshEditor::FindFaceInSet ( n1, n2, elemSet, avoidSet ))
-      {
-        hasFreeLinks = true;
-        // make an edge and a ceiling for a new edge
-        if ( !aMesh->FindEdge( n1, n2 ))
-          aMesh->AddEdge( n1, n2 );
-        n1 = vecNewNodes[ iNode ]->second.back();
-        n2 = vecNewNodes[ iNext ]->second.back();
-        if ( !aMesh->FindEdge( n1, n2 ))
-          aMesh->AddEdge( n1, n2 );
-      }
-    }
-    // sweep free links into faces
-
-    if ( hasFreeLinks )
-    {
-      list<const SMDS_MeshElement*> & newVolumes = itElem->second;
-      int iStep, nbSteps = vecNewNodes[0]->second.size();
-      int iVol, volNb, nbVolumesByStep = newVolumes.size() / nbSteps;
-
-      set<const SMDS_MeshNode*> initNodeSet, faceNodeSet;
-      for ( iNode = 0; iNode < nbNodes; iNode++ )
-        initNodeSet.insert( vecNewNodes[ iNode ]->first );
-
-      for ( volNb = 0; volNb < nbVolumesByStep; volNb++ )
-      {
-        list<const SMDS_MeshElement*>::iterator v = newVolumes.begin();
-        iVol = 0;
-        while ( iVol++ < volNb ) v++;
-        // find indices of free faces of a volume
-        list< int > fInd;
-        SMDS_VolumeTool vTool( *v );
-        int iF, nbF = vTool.NbFaces();
-        for ( iF = 0; iF < nbF; iF ++ )
-          if (vTool.IsFreeFace( iF ) &&
-              vTool.GetFaceNodes( iF, faceNodeSet ) &&
-              initNodeSet != faceNodeSet) // except an initial face
-            fInd.push_back( iF );
-        if ( fInd.empty() )
-          continue;
-
-        // create faces for all steps
-        for ( iStep = 0; iStep < nbSteps; iStep++ )
-        {
-          vTool.Set( *v );
-          vTool.SetExternalNormal();
-          list< int >::iterator ind = fInd.begin();
-          for ( ; ind != fInd.end(); ind++ )
-          {
-            const SMDS_MeshNode** nodes = vTool.GetFaceNodes( *ind );
-            switch ( vTool.NbFaceNodes( *ind ) ) {
-            case 3:
-              aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] ); break;
-            case 4:
-              aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ], nodes[ 3 ] ); break;
-            default:
-              {
-                int nbPolygonNodes = vTool.NbFaceNodes( *ind );
-                vector<const SMDS_MeshNode*> polygon_nodes (nbPolygonNodes);
-                for (int inode = 0; inode < nbPolygonNodes; inode++) {
-                  polygon_nodes[inode] = nodes[inode];
-                }
-                aMesh->AddPolygonalFace(polygon_nodes);
-                break;
-              }
-            }
-          }
-          // go to the next volume
-          iVol = 0;
-          while ( iVol++ < nbVolumesByStep ) v++;
-        }
-      }
-    } // sweep free links into faces
-
-    // make a ceiling face with a normal external to a volume
-
-    SMDS_VolumeTool lastVol( itElem->second.back() );
-    int iF = lastVol.GetFaceIndex( aFaceLastNodes );
-    if ( iF >= 0 )
-    {
-      lastVol.SetExternalNormal();
-      const SMDS_MeshNode** nodes = lastVol.GetFaceNodes( iF );
-      switch ( lastVol.NbFaceNodes( iF ) ) {
-      case 3:
-        if (!hasFreeLinks ||
-            !aMesh->FindFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ]))
-          aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] );
-        break;
-      case 4:
-        if (!hasFreeLinks ||
-            !aMesh->FindFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ], nodes[ 3 ]))
-          aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ], nodes[ 3 ] );
-        break;
-      default:
-        {
-          int nbPolygonNodes = lastVol.NbFaceNodes( iF );
-          vector<const SMDS_MeshNode*> polygon_nodes (nbPolygonNodes);
-          for (int inode = 0; inode < nbPolygonNodes; inode++) {
-            polygon_nodes[inode] = nodes[inode];
-          }
-          if (!hasFreeLinks || !aMesh->FindFace(polygon_nodes))
-            aMesh->AddPolygonalFace(polygon_nodes);
-        }
-        break;
-      }
-    }
-
-  } // loop on swept elements
-}
-
-//=======================================================================
-//function : RotationSweep
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor::RotationSweep(set<const SMDS_MeshElement*> & theElems,
-                                     const gp_Ax1&                  theAxis,
-                                     const double                   theAngle,
-                                     const int                      theNbSteps,
-                                     const double                   theTol)
-{
-  MESSAGE( "RotationSweep()");
-  gp_Trsf aTrsf;
-  aTrsf.SetRotation( theAxis, theAngle );
-
-  gp_Lin aLine( theAxis );
-  double aSqTol = theTol * theTol;
-
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  TNodeOfNodeListMap mapNewNodes;
-  TElemOfVecOfNnlmiMap mapElemNewNodes;
-  TElemOfElemListMap newElemsMap;
-
-  // loop on theElems
-  set< const SMDS_MeshElement* >::iterator itElem;
-  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ )
-  {
-    const SMDS_MeshElement* elem = (*itElem);
-    if ( !elem )
-      continue;
-    vector<TNodeOfNodeListMapItr> & newNodesItVec = mapElemNewNodes[ elem ];
-    newNodesItVec.reserve( elem->NbNodes() );
-
-    // loop on elem nodes
-    SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    while ( itN->more() ) {
-
-      // check if a node has been already sweeped
-      const SMDS_MeshNode* node =
-        static_cast<const SMDS_MeshNode*>( itN->next() );
-      TNodeOfNodeListMapItr nIt = mapNewNodes.find( node );
-      if ( nIt == mapNewNodes.end() )
-      {
-        nIt = mapNewNodes.insert( make_pair( node, list<const SMDS_MeshNode*>() )).first;
-        list<const SMDS_MeshNode*>& listNewNodes = nIt->second;
-
-        // make new nodes
-        gp_XYZ aXYZ( node->X(), node->Y(), node->Z() );
-        double coord[3];
-        aXYZ.Coord( coord[0], coord[1], coord[2] );
-        bool isOnAxis = ( aLine.SquareDistance( aXYZ ) <= aSqTol );
-        const SMDS_MeshNode * newNode = node;
-        for ( int i = 0; i < theNbSteps; i++ ) {
-          if ( !isOnAxis ) {
-            aTrsf.Transforms( coord[0], coord[1], coord[2] );
-            newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
-          }
-          listNewNodes.push_back( newNode );
-        }
-      }
-      newNodesItVec.push_back( nIt );
-    }
-    // make new elements
-    sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem] );
-  }
-
-  makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems );
-
-}
-//=======================================================================
-//function : ExtrusionSweep
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor::ExtrusionSweep(set<const SMDS_MeshElement*> & theElems,
-                                      const gp_Vec&                  theStep,
-                                      const int                      theNbSteps)
-{
-  gp_Trsf aTrsf;
-  aTrsf.SetTranslation( theStep );
-
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  TNodeOfNodeListMap mapNewNodes;
-  TElemOfVecOfNnlmiMap mapElemNewNodes;
-  TElemOfElemListMap newElemsMap;
-
-  // loop on theElems
-  set< const SMDS_MeshElement* >::iterator itElem;
-  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ )
-  {
-    // check element type
-    const SMDS_MeshElement* elem = (*itElem);
-    if ( !elem )
-      continue;
-
-    vector<TNodeOfNodeListMapItr> & newNodesItVec = mapElemNewNodes[ elem ];
-    newNodesItVec.reserve( elem->NbNodes() );
-
-    // loop on elem nodes
-    SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    while ( itN->more() ) {
-
-      // check if a node has been already sweeped
-      const SMDS_MeshNode* node =
-        static_cast<const SMDS_MeshNode*>( itN->next() );
-      TNodeOfNodeListMap::iterator nIt = mapNewNodes.find( node );
-      if ( nIt == mapNewNodes.end() )
-      {
-        nIt = mapNewNodes.insert( make_pair( node, list<const SMDS_MeshNode*>() )).first;
-        list<const SMDS_MeshNode*>& listNewNodes = nIt->second;
-
-        // make new nodes
-        double coord[] = { node->X(), node->Y(), node->Z() };
-        for ( int i = 0; i < theNbSteps; i++ ) {
-          aTrsf.Transforms( coord[0], coord[1], coord[2] );
-          const SMDS_MeshNode * newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
-          listNewNodes.push_back( newNode );
-        }
-      }
-      newNodesItVec.push_back( nIt );
-    }
-    // make new elements
-    sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem] );
-  }
-  makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems );
-}
-
-//=======================================================================
-//class    : SMESH_MeshEditor_PathPoint
-//purpose  : auxiliary class
-//=======================================================================
-class SMESH_MeshEditor_PathPoint {
-public:
-  SMESH_MeshEditor_PathPoint() {
-    myPnt.SetCoord(99., 99., 99.);
-    myTgt.SetCoord(1.,0.,0.);
-    myAngle=0.;
-    myPrm=0.;
-  }
-  void SetPnt(const gp_Pnt& aP3D){
-    myPnt=aP3D;
-  }
-  void SetTangent(const gp_Dir& aTgt){
-    myTgt=aTgt;
-  }
-  void SetAngle(const double& aBeta){
-    myAngle=aBeta;
-  }
-  void SetParameter(const double& aPrm){
-    myPrm=aPrm;
-  }
-  const gp_Pnt& Pnt()const{
-    return myPnt;
-  }
-  const gp_Dir& Tangent()const{
-    return myTgt;
-  }
-  double Angle()const{
-    return myAngle;
-  }
-  double Parameter()const{
-    return myPrm;
-  }
-
-protected:
-  gp_Pnt myPnt;
-  gp_Dir myTgt;
-  double myAngle;
-  double myPrm;
-};
-
-//=======================================================================
-//function : ExtrusionAlongTrack
-//purpose  :
-//=======================================================================
-SMESH_MeshEditor::Extrusion_Error
-  SMESH_MeshEditor::ExtrusionAlongTrack (std::set<const SMDS_MeshElement*> & theElements,
-                                        SMESH_subMesh* theTrack,
-                                        const SMDS_MeshNode* theN1,
-                                        const bool theHasAngles,
-                                        std::list<double>& theAngles,
-                                        const bool theHasRefPoint,
-                                        const gp_Pnt& theRefPoint)
-{
-  MESSAGE("SMESH_MeshEditor::ExtrusionAlongTrack")
-  int j, aNbTP, aNbE, aNb;
-  double aT1, aT2, aT, aAngle, aX, aY, aZ;
-  std::list<double> aPrms;
-  std::list<double>::iterator aItD;
-  std::set< const SMDS_MeshElement* >::iterator itElem;
-
-  Standard_Real aTx1, aTx2, aL2, aTolVec, aTolVec2;
-  gp_Pnt aP3D, aV0;
-  gp_Vec aVec;
-  gp_XYZ aGC;
-  Handle(Geom_Curve) aC3D;
-  TopoDS_Edge aTrackEdge;
-  TopoDS_Vertex aV1, aV2;
-
-  SMDS_ElemIteratorPtr aItE;
-  SMDS_NodeIteratorPtr aItN;
-  SMDSAbs_ElementType aTypeE;
-
-  TNodeOfNodeListMap mapNewNodes;
-  TElemOfVecOfNnlmiMap mapElemNewNodes;
-  TElemOfElemListMap newElemsMap;
-
-  aTolVec=1.e-7;
-  aTolVec2=aTolVec*aTolVec;
-
-  // 1. Check data
-  aNbE = theElements.size();
-  // nothing to do
-  if ( !aNbE )
-    return EXTR_NO_ELEMENTS;
-
-  // 1.1 Track Pattern
-  ASSERT( theTrack );
-
-  SMESHDS_SubMesh* pSubMeshDS=theTrack->GetSubMeshDS();
-
-  aItE = pSubMeshDS->GetElements();
-  while ( aItE->more() ) {
-    const SMDS_MeshElement* pE = aItE->next();
-    aTypeE = pE->GetType();
-    // Pattern must contain links only
-    if ( aTypeE != SMDSAbs_Edge )
-      return EXTR_PATH_NOT_EDGE;
-  }
-
-  const TopoDS_Shape& aS = theTrack->GetSubShape();
-  // Sub shape for the Pattern must be an Edge
-  if ( aS.ShapeType() != TopAbs_EDGE )
-    return EXTR_BAD_PATH_SHAPE;
-
-  aTrackEdge = TopoDS::Edge( aS );
-  // the Edge must not be degenerated
-  if ( BRep_Tool::Degenerated( aTrackEdge ) )
-    return EXTR_BAD_PATH_SHAPE;
-
-  TopExp::Vertices( aTrackEdge, aV1, aV2 );
-  aT1=BRep_Tool::Parameter( aV1, aTrackEdge );
-  aT2=BRep_Tool::Parameter( aV2, aTrackEdge );
-
-  aItN = theTrack->GetFather()->GetSubMesh( aV1 )->GetSubMeshDS()->GetNodes();
-  const SMDS_MeshNode* aN1 = aItN->next();
-
-  aItN = theTrack->GetFather()->GetSubMesh( aV2 )->GetSubMeshDS()->GetNodes();
-  const SMDS_MeshNode* aN2 = aItN->next();
-
-  // starting node must be aN1 or aN2
-  if ( !( aN1 == theN1 || aN2 == theN1 ) )
-    return EXTR_BAD_STARTING_NODE;
-
-  aNbTP = pSubMeshDS->NbNodes() + 2;
-
-  // 1.2. Angles
-  vector<double> aAngles( aNbTP );
-
-  for ( j=0; j < aNbTP; ++j ) {
-    aAngles[j] = 0.;
-  }
-
-  if ( theHasAngles ) {
-    aItD = theAngles.begin();
-    for ( j=1; (aItD != theAngles.end()) && (j<aNbTP); ++aItD, ++j ) {
-      aAngle = *aItD;
-      aAngles[j] = aAngle;
-    }
-  }
-
-  // 2. Collect parameters on the track edge
-  aPrms.push_back( aT1 );
-  aPrms.push_back( aT2 );
-
-  aItN = pSubMeshDS->GetNodes();
-  while ( aItN->more() ) {
-    const SMDS_MeshNode* pNode = aItN->next();
-    const SMDS_EdgePosition* pEPos =
-      static_cast<const SMDS_EdgePosition*>( pNode->GetPosition().get() );
-    aT = pEPos->GetUParameter();
-    aPrms.push_back( aT );
-  }
-
-  // sort parameters
-  aPrms.sort();
-  if ( aN1 == theN1 ) {
-    if ( aT1 > aT2 ) {
-      aPrms.reverse();
-    }
-  }
-  else {
-    if ( aT2 > aT1 ) {
-      aPrms.reverse();
-    }
-  }
-
-  // 3. Path Points
-  SMESH_MeshEditor_PathPoint aPP;
-  vector<SMESH_MeshEditor_PathPoint> aPPs( aNbTP );
-  //
-  aC3D = BRep_Tool::Curve( aTrackEdge, aTx1, aTx2 );
-  //
-  aItD = aPrms.begin();
-  for ( j=0; aItD != aPrms.end(); ++aItD, ++j ) {
-    aT = *aItD;
-    aC3D->D1( aT, aP3D, aVec );
-    aL2 = aVec.SquareMagnitude();
-    if ( aL2 < aTolVec2 )
-      return EXTR_CANT_GET_TANGENT;
-
-    gp_Dir aTgt( aVec );
-    aAngle = aAngles[j];
-
-    aPP.SetPnt( aP3D );
-    aPP.SetTangent( aTgt );
-    aPP.SetAngle( aAngle );
-    aPP.SetParameter( aT );
-    aPPs[j]=aPP;
-  }
-
-  // 3. Center of rotation aV0
-  aV0 = theRefPoint;
-  if ( !theHasRefPoint ) {
-    aNb = 0;
-    aGC.SetCoord( 0.,0.,0. );
-
-    itElem = theElements.begin();
-    for ( ; itElem != theElements.end(); itElem++ ) {
-      const SMDS_MeshElement* elem = (*itElem);
-
-      SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-      while ( itN->more() ) {
-       const SMDS_MeshNode* node = static_cast<const SMDS_MeshNode*>( itN->next() );
-       aX = node->X();
-       aY = node->Y();
-       aZ = node->Z();
-
-       if ( mapNewNodes.find( node ) == mapNewNodes.end() ) {
-         list<const SMDS_MeshNode*> aLNx;
-         mapNewNodes[node] = aLNx;
-         //
-         gp_XYZ aXYZ( aX, aY, aZ );
-         aGC += aXYZ;
-         ++aNb;
-       }
-      }
-    }
-    aGC /= aNb;
-    aV0.SetXYZ( aGC );
-  } // if (!theHasRefPoint) {
-  mapNewNodes.clear();
-
-  // 4. Processing the elements
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  for ( itElem = theElements.begin(); itElem != theElements.end(); itElem++ ) {
-    // check element type
-    const SMDS_MeshElement* elem = (*itElem);
-    aTypeE = elem->GetType();
-    if ( !elem || ( aTypeE != SMDSAbs_Face && aTypeE != SMDSAbs_Edge ) )
-      continue;
-
-    vector<TNodeOfNodeListMapItr> & newNodesItVec = mapElemNewNodes[ elem ];
-    newNodesItVec.reserve( elem->NbNodes() );
-
-    // loop on elem nodes
-    SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    while ( itN->more() ) {
-
-      // check if a node has been already processed
-      const SMDS_MeshNode* node =
-       static_cast<const SMDS_MeshNode*>( itN->next() );
-      TNodeOfNodeListMap::iterator nIt = mapNewNodes.find( node );
-      if ( nIt == mapNewNodes.end() ) {
-        nIt = mapNewNodes.insert( make_pair( node, list<const SMDS_MeshNode*>() )).first;
-        list<const SMDS_MeshNode*>& listNewNodes = nIt->second;
-
-       // make new nodes
-       aX = node->X();  aY = node->Y(); aZ = node->Z();
-
-       Standard_Real aAngle1x, aAngleT1T0, aTolAng;
-       gp_Pnt aP0x, aP1x, aPN0, aPN1, aV0x, aV1x;
-       gp_Ax1 anAx1, anAxT1T0;
-       gp_Dir aDT1x, aDT0x, aDT1T0;
-
-       aTolAng=1.e-4;
-
-       aV0x = aV0;
-       aPN0.SetCoord(aX, aY, aZ);
-
-       const SMESH_MeshEditor_PathPoint& aPP0 = aPPs[0];
-       aP0x = aPP0.Pnt();
-       aDT0x= aPP0.Tangent();
-
-       for ( j = 1; j < aNbTP; ++j ) {
-         const SMESH_MeshEditor_PathPoint& aPP1 = aPPs[j];
-         aP1x = aPP1.Pnt();
-         aDT1x = aPP1.Tangent();
-         aAngle1x = aPP1.Angle();
-
-         gp_Trsf aTrsf, aTrsfRot, aTrsfRotT1T0;
-         // Translation
-         gp_Vec aV01x( aP0x, aP1x );
-         aTrsf.SetTranslation( aV01x );
-
-         // traslated point
-         aV1x = aV0x.Transformed( aTrsf );
-         aPN1 = aPN0.Transformed( aTrsf );
-
-         // rotation 1 [ T1,T0 ]
-         aAngleT1T0=-aDT1x.Angle( aDT0x );
-         if (fabs(aAngleT1T0) > aTolAng) {
-           aDT1T0=aDT1x^aDT0x;
-           anAxT1T0.SetLocation( aV1x );
-           anAxT1T0.SetDirection( aDT1T0 );
-           aTrsfRotT1T0.SetRotation( anAxT1T0, aAngleT1T0 );
-
-           aPN1 = aPN1.Transformed( aTrsfRotT1T0 );
-         }
-
-         // rotation 2
-         if ( theHasAngles ) {
-           anAx1.SetLocation( aV1x );
-           anAx1.SetDirection( aDT1x );
-           aTrsfRot.SetRotation( anAx1, aAngle1x );
-
-           aPN1 = aPN1.Transformed( aTrsfRot );
-         }
-
-         // make new node
-         aX = aPN1.X();
-         aY = aPN1.Y();
-         aZ = aPN1.Z();
-         const SMDS_MeshNode* newNode = aMesh->AddNode( aX, aY, aZ );
-         listNewNodes.push_back( newNode );
-
-         aPN0 = aPN1;
-         aP0x = aP1x;
-         aV0x = aV1x;
-         aDT0x = aDT1x;
-       }
-      }
-      newNodesItVec.push_back( nIt );
-    }
-    // make new elements
-    sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem] );
-  }
-
-  makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElements );
-
-  return EXTR_OK;
-}
-
-//=======================================================================
-//function : Transform
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor::Transform (set<const SMDS_MeshElement*> & theElems,
-                                  const gp_Trsf&                 theTrsf,
-                                  const bool                     theCopy)
-{
-  bool needReverse;
-  switch ( theTrsf.Form() ) {
-  case gp_PntMirror:
-  case gp_Ax2Mirror:
-    needReverse = true;
-    break;
-  default:
-    needReverse = false;
-  }
-
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  // map old node to new one
-  TNodeNodeMap nodeMap;
-
-  // elements sharing moved nodes; those of them which have all
-  // nodes mirrored but are not in theElems are to be reversed
-  set<const SMDS_MeshElement*> inverseElemSet;
-
-  // loop on theElems
-  set< const SMDS_MeshElement* >::iterator itElem;
-  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ )
-  {
-    const SMDS_MeshElement* elem = (*itElem);
-    if ( !elem )
-      continue;
-
-    // loop on elem nodes
-    SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    while ( itN->more() ) {
-
-      // check if a node has been already transformed
-      const SMDS_MeshNode* node =
-        static_cast<const SMDS_MeshNode*>( itN->next() );
-      if (nodeMap.find( node ) != nodeMap.end() )
-        continue;
-
-      double coord[3];
-      coord[0] = node->X();
-      coord[1] = node->Y();
-      coord[2] = node->Z();
-      theTrsf.Transforms( coord[0], coord[1], coord[2] );
-      const SMDS_MeshNode * newNode = node;
-      if ( theCopy )
-        newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
-      else {
-        aMesh->MoveNode( node, coord[0], coord[1], coord[2] );
-        // node position on shape becomes invalid
-        const_cast< SMDS_MeshNode* > ( node )->SetPosition
-          ( SMDS_SpacePosition::originSpacePosition() );
-      }
-      nodeMap.insert( TNodeNodeMap::value_type( node, newNode ));
-
-      // keep inverse elements
-      if ( !theCopy && needReverse ) {
-        SMDS_ElemIteratorPtr invElemIt = node->GetInverseElementIterator();
-        while ( invElemIt->more() )
-          inverseElemSet.insert( invElemIt->next() );
-      }
-    }
-  }
-
-  // either new elements are to be created
-  // or a mirrored element are to be reversed
-  if ( !theCopy && !needReverse)
-    return;
-
-  if ( !inverseElemSet.empty()) {
-    set<const SMDS_MeshElement*>::iterator invElemIt = inverseElemSet.begin();
-    for ( ; invElemIt != inverseElemSet.end(); invElemIt++ )
-      theElems.insert( *invElemIt );
-  }
-
-  // replicate or reverse elements
-
-  enum {
-    REV_TETRA   = 0,  //  = nbNodes - 4
-    REV_PYRAMID = 1,  //  = nbNodes - 4
-    REV_PENTA   = 2,  //  = nbNodes - 4
-    REV_FACE    = 3,
-    REV_HEXA    = 4,  //  = nbNodes - 4
-    FORWARD     = 5
-    };
-  int index[][8] = {
-    { 2, 1, 0, 3, 4, 0, 0, 0 },  // REV_TETRA
-    { 2, 1, 0, 3, 4, 0, 0, 0 },  // REV_PYRAMID
-    { 2, 1, 0, 5, 4, 3, 0, 0 },  // REV_PENTA
-    { 2, 1, 0, 3, 0, 0, 0, 0 },  // REV_FACE
-    { 2, 1, 0, 3, 6, 5, 4, 7 },  // REV_HEXA
-    { 0, 1, 2, 3, 4, 5, 6, 7 }   // FORWARD
-  };
-
-  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ )
-  {
-    const SMDS_MeshElement* elem = (*itElem);
-    if ( !elem || elem->GetType() == SMDSAbs_Node )
-      continue;
-
-    int nbNodes = elem->NbNodes();
-    int elemType = elem->GetType();
-
-    if (elem->IsPoly()) {
-      // Polygon or Polyhedral Volume
-      switch ( elemType ) {
-      case SMDSAbs_Face:
-        {
-          vector<const SMDS_MeshNode*> poly_nodes (nbNodes);
-          int iNode = 0;
-          SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-          while (itN->more()) {
-            const SMDS_MeshNode* node =
-              static_cast<const SMDS_MeshNode*>(itN->next());
-            TNodeNodeMap::iterator nodeMapIt = nodeMap.find(node);
-            if (nodeMapIt == nodeMap.end())
-              break; // not all nodes transformed
-            if (needReverse) {
-              // reverse mirrored faces and volumes
-              poly_nodes[nbNodes - iNode - 1] = (*nodeMapIt).second;
-            } else {
-              poly_nodes[iNode] = (*nodeMapIt).second;
-            }
-            iNode++;
-          }
-          if ( iNode != nbNodes )
-            continue; // not all nodes transformed
-
-          if ( theCopy ) {
-            aMesh->AddPolygonalFace(poly_nodes);
-          } else {
-            aMesh->ChangePolygonNodes(elem, poly_nodes);
-          }
-        }
-        break;
-      case SMDSAbs_Volume:
-        {
-          // ATTENTION: Reversing is not yet done!!!
-          const SMDS_PolyhedralVolumeOfNodes* aPolyedre =
-            (const SMDS_PolyhedralVolumeOfNodes*) elem;
-          if (!aPolyedre) {
-            MESSAGE("Warning: bad volumic element");
-            continue;
-          }
-
-          vector<const SMDS_MeshNode*> poly_nodes;
-          vector<int> quantities;
-
-          bool allTransformed = true;
-          int nbFaces = aPolyedre->NbFaces();
-          for (int iface = 1; iface <= nbFaces && allTransformed; iface++) {
-            int nbFaceNodes = aPolyedre->NbFaceNodes(iface);
-            for (int inode = 1; inode <= nbFaceNodes && allTransformed; inode++) {
-              const SMDS_MeshNode* node = aPolyedre->GetFaceNode(iface, inode);
-              TNodeNodeMap::iterator nodeMapIt = nodeMap.find(node);
-              if (nodeMapIt == nodeMap.end()) {
-                allTransformed = false; // not all nodes transformed
-              } else {
-                poly_nodes.push_back((*nodeMapIt).second);
-              }
-            }
-            quantities.push_back(nbFaceNodes);
-          }
-          if ( !allTransformed )
-            continue; // not all nodes transformed
-
-          if ( theCopy ) {
-            aMesh->AddPolyhedralVolume(poly_nodes, quantities);
-          } else {
-            aMesh->ChangePolyhedronNodes(elem, poly_nodes, quantities);
-          }
-        }
-        break;
-      default:;
-      }
-      continue;
-    }
-
-    // Regular elements
-    int* i = index[ FORWARD ];
-    if ( needReverse && nbNodes > 2) // reverse mirrored faces and volumes
-      if ( elemType == SMDSAbs_Face )
-        i = index[ REV_FACE ];
-      else
-        i = index[ nbNodes - 4 ];
-
-    // find transformed nodes
-    const SMDS_MeshNode* nodes[8];
-    int iNode = 0;
-    SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    while ( itN->more() )
-    {
-      const SMDS_MeshNode* node =
-        static_cast<const SMDS_MeshNode*>( itN->next() );
-      TNodeNodeMap::iterator nodeMapIt = nodeMap.find( node );
-      if ( nodeMapIt == nodeMap.end() )
-        break; // not all nodes transformed
-      nodes[ i [ iNode++ ]] = (*nodeMapIt).second;
-    }
-    if ( iNode != nbNodes )
-      continue; // not all nodes transformed
-
-    if ( theCopy )
-    {
-      // add a new element
-      switch ( elemType ) {
-      case SMDSAbs_Edge:
-        aMesh->AddEdge( nodes[ 0 ], nodes[ 1 ] );
-        break;
-      case SMDSAbs_Face:
-        if ( nbNodes == 3 )
-          aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] );
-        else
-          aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ]);
-        break;
-      case SMDSAbs_Volume:
-        if ( nbNodes == 4 )
-          aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ] );
-        else if ( nbNodes == 8 )
-          aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ],
-                            nodes[ 4 ], nodes[ 5 ], nodes[ 6 ] , nodes[ 7 ]);
-        else if ( nbNodes == 6 )
-          aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ],
-                            nodes[ 4 ], nodes[ 5 ]);
-        else if ( nbNodes == 5 )
-          aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ],
-                            nodes[ 4 ]);
-        break;
-      default:;
-      }
-    }
-    else
-    {
-      // reverse element as it was reversed by transformation
-      if ( nbNodes > 2 )
-        aMesh->ChangeElementNodes( elem, nodes, nbNodes );
-    }
-  }
-}
-
-//=======================================================================
-//function : FindCoincidentNodes
-//purpose  : Return list of group of nodes close to each other within theTolerance
-//           Search among theNodes or in the whole mesh if theNodes is empty.
-//=======================================================================
-
-void SMESH_MeshEditor::FindCoincidentNodes (set<const SMDS_MeshNode*> & theNodes,
-                                            const double                theTolerance,
-                                            TListOfListOfNodes &        theGroupsOfNodes)
-{
-  double tol2 = theTolerance * theTolerance;
-
-  list<const SMDS_MeshNode*> nodes;
-  if ( theNodes.empty() )
-  { // get all nodes in the mesh
-    SMDS_NodeIteratorPtr nIt = GetMeshDS()->nodesIterator();
-    while ( nIt->more() )
-      nodes.push_back( nIt->next() );
-  }
-  else
-  {
-    nodes.insert( nodes.end(), theNodes.begin(), theNodes.end() );
-  }
-
-  list<const SMDS_MeshNode*>::iterator it2, it1 = nodes.begin();
-  for ( ; it1 != nodes.end(); it1++ )
-  {
-    const SMDS_MeshNode* n1 = *it1;
-    gp_Pnt p1( n1->X(), n1->Y(), n1->Z() );
-
-    list<const SMDS_MeshNode*> * groupPtr = 0;
-    it2 = it1;
-    for ( it2++; it2 != nodes.end(); it2++ )
-    {
-      const SMDS_MeshNode* n2 = *it2;
-      gp_Pnt p2( n2->X(), n2->Y(), n2->Z() );
-      if ( p1.SquareDistance( p2 ) <= tol2 )
-      {
-        if ( !groupPtr ) {
-          theGroupsOfNodes.push_back( list<const SMDS_MeshNode*>() );
-          groupPtr = & theGroupsOfNodes.back();
-          groupPtr->push_back( n1 );
-        }
-        groupPtr->push_back( n2 );
-        it2 = nodes.erase( it2 );
-        it2--;
-      }
-    }
-  }
-}
-
-//=======================================================================
-//function : SimplifyFace
-//purpose  :
-//=======================================================================
-int SMESH_MeshEditor::SimplifyFace (const vector<const SMDS_MeshNode *> faceNodes,
-                                    vector<const SMDS_MeshNode *>&      poly_nodes,
-                                    vector<int>&                        quantities) const
-{
-  int nbNodes = faceNodes.size();
-
-  if (nbNodes < 3)
-    return 0;
-
-  set<const SMDS_MeshNode*> nodeSet;
-
-  // get simple seq of nodes
-  const SMDS_MeshNode* simpleNodes[ nbNodes ];
-  int iSimple = 0, nbUnique = 0;
-
-  simpleNodes[iSimple++] = faceNodes[0];
-  nbUnique++;
-  for (int iCur = 1; iCur < nbNodes; iCur++) {
-    if (faceNodes[iCur] != simpleNodes[iSimple - 1]) {
-      simpleNodes[iSimple++] = faceNodes[iCur];
-      if (nodeSet.insert( faceNodes[iCur] ).second)
-        nbUnique++;
-    }
-  }
-  int nbSimple = iSimple;
-  if (simpleNodes[nbSimple - 1] == simpleNodes[0]) {
-    nbSimple--;
-    iSimple--;
-  }
-
-  if (nbUnique < 3)
-    return 0;
-
-  // separate loops
-  int nbNew = 0;
-  bool foundLoop = (nbSimple > nbUnique);
-  while (foundLoop) {
-    foundLoop = false;
-    set<const SMDS_MeshNode*> loopSet;
-    for (iSimple = 0; iSimple < nbSimple && !foundLoop; iSimple++) {
-      const SMDS_MeshNode* n = simpleNodes[iSimple];
-      if (!loopSet.insert( n ).second) {
-        foundLoop = true;
-
-        // separate loop
-        int iC = 0, curLast = iSimple;
-        for (; iC < curLast; iC++) {
-          if (simpleNodes[iC] == n) break;
-        }
-        int loopLen = curLast - iC;
-        if (loopLen > 2) {
-          // create sub-element
-          nbNew++;
-          quantities.push_back(loopLen);
-          for (; iC < curLast; iC++) {
-            poly_nodes.push_back(simpleNodes[iC]);
-          }
-        }
-        // shift the rest nodes (place from the first loop position)
-        for (iC = curLast + 1; iC < nbSimple; iC++) {
-          simpleNodes[iC - loopLen] = simpleNodes[iC];
-        }
-        nbSimple -= loopLen;
-        iSimple -= loopLen;
-      }
-    } // for (iSimple = 0; iSimple < nbSimple; iSimple++)
-  } // while (foundLoop)
-
-  if (iSimple > 2) {
-    nbNew++;
-    quantities.push_back(iSimple);
-    for (int i = 0; i < iSimple; i++)
-      poly_nodes.push_back(simpleNodes[i]);
-  }
-
-  return nbNew;
-}
-
-//=======================================================================
-//function : MergeNodes
-//purpose  : In each group, the cdr of nodes are substituted by the first one
-//           in all elements.
-//=======================================================================
-
-void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
-{
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  TNodeNodeMap nodeNodeMap; // node to replace - new node
-  set<const SMDS_MeshElement*> elems; // all elements with changed nodes
-  list< int > rmElemIds, rmNodeIds;
-
-  // Fill nodeNodeMap and elems
-
-  TListOfListOfNodes::iterator grIt = theGroupsOfNodes.begin();
-  for ( ; grIt != theGroupsOfNodes.end(); grIt++ )
-  {
-    list<const SMDS_MeshNode*>& nodes = *grIt;
-    list<const SMDS_MeshNode*>::iterator nIt = nodes.begin();
-    const SMDS_MeshNode* nToKeep = *nIt;
-    for ( ; nIt != nodes.end(); nIt++ )
-    {
-      const SMDS_MeshNode* nToRemove = *nIt;
-      nodeNodeMap.insert( TNodeNodeMap::value_type( nToRemove, nToKeep ));
-      if ( nToRemove != nToKeep ) {
-        rmNodeIds.push_back( nToRemove->GetID() );
-        AddToSameGroups( nToKeep, nToRemove, aMesh );
-      }
-
-      SMDS_ElemIteratorPtr invElemIt = nToRemove->GetInverseElementIterator();
-      while ( invElemIt->more() )
-        elems.insert( invElemIt->next() );
-    }
-  }
-  // Change element nodes or remove an element
-
-  set<const SMDS_MeshElement*>::iterator eIt = elems.begin();
-  for ( ; eIt != elems.end(); eIt++ )
-  {
-    const SMDS_MeshElement* elem = *eIt;
-    int nbNodes = elem->NbNodes();
-    int aShapeId = FindShape( elem );
-
-    set<const SMDS_MeshNode*> nodeSet;
-    const SMDS_MeshNode* curNodes[ nbNodes ], *uniqueNodes[ nbNodes ];
-    int iUnique = 0, iCur = 0, nbRepl = 0, iRepl [ nbNodes ];
-
-    // get new seq of nodes
-    SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    while ( itN->more() )
-    {
-      const SMDS_MeshNode* n =
-        static_cast<const SMDS_MeshNode*>( itN->next() );
-
-      TNodeNodeMap::iterator nnIt = nodeNodeMap.find( n );
-      if ( nnIt != nodeNodeMap.end() ) { // n sticks
-        n = (*nnIt).second;
-        iRepl[ nbRepl++ ] = iCur;
-      }
-      curNodes[ iCur ] = n;
-      bool isUnique = nodeSet.insert( n ).second;
-      if ( isUnique )
-        uniqueNodes[ iUnique++ ] = n;
-      iCur++;
-    }
-
-    // Analyse element topology after replacement
-
-    bool isOk = true;
-    int nbUniqueNodes = nodeSet.size();
-    if ( nbNodes != nbUniqueNodes ) // some nodes stick
-    {
-      // Polygons and Polyhedral volumes
-      if (elem->IsPoly()) {
-
-        if (elem->GetType() == SMDSAbs_Face) {
-          // Polygon
-          vector<const SMDS_MeshNode *> face_nodes (nbNodes);
-          int inode = 0;
-          for (; inode < nbNodes; inode++) {
-            face_nodes[inode] = curNodes[inode];
-          }
-
-          vector<const SMDS_MeshNode *> polygons_nodes;
-          vector<int> quantities;
-          int nbNew = SimplifyFace(face_nodes, polygons_nodes, quantities);
-
-          if (nbNew > 0) {
-            inode = 0;
-            for (int iface = 0; iface < nbNew - 1; iface++) {
-              int nbNodes = quantities[iface];
-              vector<const SMDS_MeshNode *> poly_nodes (nbNodes);
-              for (int ii = 0; ii < nbNodes; ii++, inode++) {
-                poly_nodes[ii] = polygons_nodes[inode];
-              }
-              SMDS_MeshElement* newElem = aMesh->AddPolygonalFace(poly_nodes);
-              if (aShapeId)
-                aMesh->SetMeshElementOnShape(newElem, aShapeId);
-            }
-            aMesh->ChangeElementNodes(elem, &polygons_nodes[inode], quantities[nbNew - 1]);
-          } else {
-            rmElemIds.push_back(elem->GetID());
-          }
-
-        } else if (elem->GetType() == SMDSAbs_Volume) {
-          // Polyhedral volume
-          if (nbUniqueNodes < 4) {
-            rmElemIds.push_back(elem->GetID());
-          } else {
-            // each face has to be analized in order to check volume validity
-            const SMDS_PolyhedralVolumeOfNodes* aPolyedre =
-              static_cast<const SMDS_PolyhedralVolumeOfNodes*>( elem );
-            if (aPolyedre) {
-              int nbFaces = aPolyedre->NbFaces();
-
-              vector<const SMDS_MeshNode *> poly_nodes;
-              vector<int> quantities;
-
-              for (int iface = 1; iface <= nbFaces; iface++) {
-                int nbFaceNodes = aPolyedre->NbFaceNodes(iface);
-                vector<const SMDS_MeshNode *> faceNodes (nbFaceNodes);
-
-                for (int inode = 1; inode <= nbFaceNodes; inode++) {
-                  const SMDS_MeshNode * faceNode = aPolyedre->GetFaceNode(iface, inode);
-                  TNodeNodeMap::iterator nnIt = nodeNodeMap.find(faceNode);
-                  if (nnIt != nodeNodeMap.end()) { // faceNode sticks
-                    faceNode = (*nnIt).second;
-                  }
-                  faceNodes[inode - 1] = faceNode;
-                }
-
-                SimplifyFace(faceNodes, poly_nodes, quantities);
-              }
-
-              if (quantities.size() > 3) {
-                // to be done: remove coincident faces
-              }
-
-              if (quantities.size() > 3)
-                aMesh->ChangePolyhedronNodes(elem, poly_nodes, quantities);
-              else
-                rmElemIds.push_back(elem->GetID());
-
-            } else {
-              rmElemIds.push_back(elem->GetID());
-            }
-          }
-        } else {
-        }
-
-        continue;
-      }
-
-      // Regular elements
-      switch ( nbNodes ) {
-      case 2: ///////////////////////////////////// EDGE
-        isOk = false; break;
-      case 3: ///////////////////////////////////// TRIANGLE
-        isOk = false; break;
-      case 4:
-        if ( elem->GetType() == SMDSAbs_Volume ) // TETRAHEDRON
-          isOk = false;
-        else { //////////////////////////////////// QUADRANGLE
-          if ( nbUniqueNodes < 3 )
-            isOk = false;
-          else if ( nbRepl == 2 && iRepl[ 1 ] - iRepl[ 0 ] == 2 )
-            isOk = false; // opposite nodes stick
-        }
-        break;
-      case 6: ///////////////////////////////////// PENTAHEDRON
-        if ( nbUniqueNodes == 4 ) {
-          // ---------------------------------> tetrahedron
-          if (nbRepl == 3 &&
-              iRepl[ 0 ] > 2 && iRepl[ 1 ] > 2 && iRepl[ 2 ] > 2 ) {
-            // all top nodes stick: reverse a bottom
-            uniqueNodes[ 0 ] = curNodes [ 1 ];
-            uniqueNodes[ 1 ] = curNodes [ 0 ];
-          }
-          else if (nbRepl == 3 &&
-                   iRepl[ 0 ] < 3 && iRepl[ 1 ] < 3 && iRepl[ 2 ] < 3 ) {
-            // all bottom nodes stick: set a top before
-            uniqueNodes[ 3 ] = uniqueNodes [ 0 ];
-            uniqueNodes[ 0 ] = curNodes [ 3 ];
-            uniqueNodes[ 1 ] = curNodes [ 4 ];
-            uniqueNodes[ 2 ] = curNodes [ 5 ];
-          }
-          else if (nbRepl == 4 &&
-                   iRepl[ 2 ] - iRepl [ 0 ] == 3 && iRepl[ 3 ] - iRepl [ 1 ] == 3 ) {
-            // a lateral face turns into a line: reverse a bottom
-            uniqueNodes[ 0 ] = curNodes [ 1 ];
-            uniqueNodes[ 1 ] = curNodes [ 0 ];
-          }
-          else
-            isOk = false;
-        }
-        else if ( nbUniqueNodes == 5 ) {
-          // PENTAHEDRON --------------------> 2 tetrahedrons
-          if ( nbRepl == 2 && iRepl[ 1 ] - iRepl [ 0 ] == 3 ) {
-            // a bottom node sticks with a linked top one
-            // 1.
-            SMDS_MeshElement* newElem =
-              aMesh->AddVolume(curNodes[ 3 ],
-                               curNodes[ 4 ],
-                               curNodes[ 5 ],
-                               curNodes[ iRepl[ 0 ] == 2 ? 1 : 2 ]);
-            if ( aShapeId )
-              aMesh->SetMeshElementOnShape( newElem, aShapeId );
-            // 2. : reverse a bottom
-            uniqueNodes[ 0 ] = curNodes [ 1 ];
-            uniqueNodes[ 1 ] = curNodes [ 0 ];
-            nbUniqueNodes = 4;
-          }
-          else
-            isOk = false;
-        }
-        else
-          isOk = false;
-        break;
-      case 8: { //////////////////////////////////// HEXAHEDRON
-        isOk = false;
-        SMDS_VolumeTool hexa (elem);
-        hexa.SetExternalNormal();
-        if ( nbUniqueNodes == 4 && nbRepl == 6 ) {
-          //////////////////////// ---> tetrahedron
-          for ( int iFace = 0; iFace < 6; iFace++ ) {
-            const int *ind = hexa.GetFaceNodesIndices( iFace ); // indices of face nodes
-            if (curNodes[ind[ 0 ]] == curNodes[ind[ 1 ]] &&
-                curNodes[ind[ 0 ]] == curNodes[ind[ 2 ]] &&
-                curNodes[ind[ 0 ]] == curNodes[ind[ 3 ]] ) {
-              // one face turns into a point ...
-              int iOppFace = hexa.GetOppFaceIndex( iFace );
-              ind = hexa.GetFaceNodesIndices( iOppFace );
-              int nbStick = 0;
-              iUnique = 2; // reverse a tetrahedron bottom
-              for ( iCur = 0; iCur < 4 && nbStick < 2; iCur++ ) {
-                if ( curNodes[ind[ iCur ]] == curNodes[ind[ iCur + 1 ]] )
-                  nbStick++;
-                else if ( iUnique >= 0 )
-                  uniqueNodes[ iUnique-- ] = curNodes[ind[ iCur ]];
-              }
-              if ( nbStick == 1 ) {
-                // ... and the opposite one - into a triangle.
-                // set a top node
-                ind = hexa.GetFaceNodesIndices( iFace );
-                uniqueNodes[ 3 ] = curNodes[ind[ 0 ]];
-                isOk = true;
-              }
-              break;
-            }
-          }
-        }
-        else if (nbUniqueNodes == 5 && nbRepl == 4 ) {
-          //////////////////// HEXAHEDRON ---> 2 tetrahedrons
-          for ( int iFace = 0; iFace < 6; iFace++ ) {
-            const int *ind = hexa.GetFaceNodesIndices( iFace ); // indices of face nodes
-            if (curNodes[ind[ 0 ]] == curNodes[ind[ 1 ]] &&
-                curNodes[ind[ 0 ]] == curNodes[ind[ 2 ]] &&
-                curNodes[ind[ 0 ]] == curNodes[ind[ 3 ]] ) {
-              // one face turns into a point ...
-              int iOppFace = hexa.GetOppFaceIndex( iFace );
-              ind = hexa.GetFaceNodesIndices( iOppFace );
-              int nbStick = 0;
-              iUnique = 2;  // reverse a tetrahedron 1 bottom
-              for ( iCur = 0; iCur < 4 && nbStick == 0; iCur++ ) {
-                if ( curNodes[ind[ iCur ]] == curNodes[ind[ iCur + 1 ]] )
-                  nbStick++;
-                else if ( iUnique >= 0 )
-                  uniqueNodes[ iUnique-- ] = curNodes[ind[ iCur ]];
-              }
-              if ( nbStick == 0 ) {
-                // ... and the opposite one is a quadrangle
-                // set a top node
-                const int* indTop = hexa.GetFaceNodesIndices( iFace );
-                uniqueNodes[ 3 ] = curNodes[indTop[ 0 ]];
-                nbUniqueNodes = 4;
-                // tetrahedron 2
-                SMDS_MeshElement* newElem =
-                  aMesh->AddVolume(curNodes[ind[ 0 ]],
-                                   curNodes[ind[ 3 ]],
-                                   curNodes[ind[ 2 ]],
-                                   curNodes[indTop[ 0 ]]);
-                if ( aShapeId )
-                  aMesh->SetMeshElementOnShape( newElem, aShapeId );
-                isOk = true;
-              }
-              break;
-            }
-          }
-        }
-        else if ( nbUniqueNodes == 6 && nbRepl == 4 ) {
-          ////////////////// HEXAHEDRON ---> 2 tetrahedrons or 1 prism
-          // find indices of quad and tri faces
-          int iQuadFace[ 6 ], iTriFace[ 6 ], nbQuad = 0, nbTri = 0, iFace;
-          for ( iFace = 0; iFace < 6; iFace++ ) {
-            const int *ind = hexa.GetFaceNodesIndices( iFace ); // indices of face nodes
-            nodeSet.clear();
-            for ( iCur = 0; iCur < 4; iCur++ )
-              nodeSet.insert( curNodes[ind[ iCur ]] );
-            nbUniqueNodes = nodeSet.size();
-            if ( nbUniqueNodes == 3 )
-              iTriFace[ nbTri++ ] = iFace;
-            else if ( nbUniqueNodes == 4 )
-              iQuadFace[ nbQuad++ ] = iFace;
-          }
-          if (nbQuad == 2 && nbTri == 4 &&
-              hexa.GetOppFaceIndex( iQuadFace[ 0 ] ) == iQuadFace[ 1 ]) {
-            // 2 opposite quadrangles stuck with a diagonal;
-            // sample groups of merged indices: (0-4)(2-6)
-            // --------------------------------------------> 2 tetrahedrons
-            const int *ind1 = hexa.GetFaceNodesIndices( iQuadFace[ 0 ]); // indices of quad1 nodes
-            const int *ind2 = hexa.GetFaceNodesIndices( iQuadFace[ 1 ]);
-            int i0, i1d, i2, i3d, i0t, i2t; // d-daigonal, t-top
-            if (curNodes[ind1[ 0 ]] == curNodes[ind2[ 0 ]] &&
-                curNodes[ind1[ 2 ]] == curNodes[ind2[ 2 ]]) {
-              // stuck with 0-2 diagonal
-              i0  = ind1[ 3 ];
-              i1d = ind1[ 0 ];
-              i2  = ind1[ 1 ];
-              i3d = ind1[ 2 ];
-              i0t = ind2[ 1 ];
-              i2t = ind2[ 3 ];
-            }
-            else if (curNodes[ind1[ 1 ]] == curNodes[ind2[ 3 ]] &&
-                     curNodes[ind1[ 3 ]] == curNodes[ind2[ 1 ]]) {
-              // stuck with 1-3 diagonal
-              i0  = ind1[ 0 ];
-              i1d = ind1[ 1 ];
-              i2  = ind1[ 2 ];
-              i3d = ind1[ 3 ];
-              i0t = ind2[ 0 ];
-              i2t = ind2[ 1 ];
-            }
-            else {
-              ASSERT(0);
-            }
-            // tetrahedron 1
-            uniqueNodes[ 0 ] = curNodes [ i0 ];
-            uniqueNodes[ 1 ] = curNodes [ i1d ];
-            uniqueNodes[ 2 ] = curNodes [ i3d ];
-            uniqueNodes[ 3 ] = curNodes [ i0t ];
-            nbUniqueNodes = 4;
-            // tetrahedron 2
-            SMDS_MeshElement* newElem = aMesh->AddVolume(curNodes[ i1d ],
-                                                         curNodes[ i2 ],
-                                                         curNodes[ i3d ],
-                                                         curNodes[ i2t ]);
-            if ( aShapeId )
-              aMesh->SetMeshElementOnShape( newElem, aShapeId );
-            isOk = true;
-          }
-          else if (( nbTri == 2 && nbQuad == 3 ) || // merged (0-4)(1-5)
-                   ( nbTri == 4 && nbQuad == 2 )) { // merged (7-4)(1-5)
-            // --------------------------------------------> prism
-            // find 2 opposite triangles
-            nbUniqueNodes = 6;
-            for ( iFace = 0; iFace + 1 < nbTri; iFace++ ) {
-              if ( hexa.GetOppFaceIndex( iTriFace[ iFace ] ) == iTriFace[ iFace + 1 ]) {
-                // find indices of kept and replaced nodes
-                // and fill unique nodes of 2 opposite triangles
-                const int *ind1 = hexa.GetFaceNodesIndices( iTriFace[ iFace ]);
-                const int *ind2 = hexa.GetFaceNodesIndices( iTriFace[ iFace + 1 ]);
-                const SMDS_MeshNode** hexanodes = hexa.GetNodes();
-                // fill unique nodes
-                iUnique = 0;
-                isOk = true;
-                for ( iCur = 0; iCur < 4 && isOk; iCur++ ) {
-                  const SMDS_MeshNode* n     = curNodes[ind1[ iCur ]];
-                  const SMDS_MeshNode* nInit = hexanodes[ind1[ iCur ]];
-                  if ( n == nInit ) {
-                    // iCur of a linked node of the opposite face (make normals co-directed):
-                    int iCurOpp = ( iCur == 1 || iCur == 3 ) ? 4 - iCur : iCur;
-                    // check that correspondent corners of triangles are linked
-                    if ( !hexa.IsLinked( ind1[ iCur ], ind2[ iCurOpp ] ))
-                      isOk = false;
-                    else {
-                      uniqueNodes[ iUnique ] = n;
-                      uniqueNodes[ iUnique + 3 ] = curNodes[ind2[ iCurOpp ]];
-                      iUnique++;
-                    }
-                  }
-                }
-                break;
-              }
-            }
-          }
-        } // if ( nbUniqueNodes == 6 && nbRepl == 4 )
-        break;
-      } // HEXAHEDRON
-
-      default:
-        isOk = false;
-      } // switch ( nbNodes )
-
-    } // if ( nbNodes != nbUniqueNodes ) // some nodes stick
-
-    if ( isOk ) {
-      if (elem->IsPoly() && elem->GetType() == SMDSAbs_Volume) {
-        // Change nodes of polyedre
-        const SMDS_PolyhedralVolumeOfNodes* aPolyedre =
-          static_cast<const SMDS_PolyhedralVolumeOfNodes*>( elem );
-        if (aPolyedre) {
-          int nbFaces = aPolyedre->NbFaces();
-
-          vector<const SMDS_MeshNode *> poly_nodes;
-          vector<int> quantities (nbFaces);
-
-          for (int iface = 1; iface <= nbFaces; iface++) {
-            int inode, nbFaceNodes = aPolyedre->NbFaceNodes(iface);
-            quantities[iface - 1] = nbFaceNodes;
-
-            for (inode = 1; inode <= nbFaceNodes; inode++) {
-              const SMDS_MeshNode* curNode = aPolyedre->GetFaceNode(iface, inode);
-
-              TNodeNodeMap::iterator nnIt = nodeNodeMap.find( curNode );
-              if (nnIt != nodeNodeMap.end()) { // curNode sticks
-                curNode = (*nnIt).second;
-              }
-              poly_nodes.push_back(curNode);
-            }
-          }
-          aMesh->ChangePolyhedronNodes( elem, poly_nodes, quantities );
-        }
-      } else {
-        // Change regular element or polygon
-        aMesh->ChangeElementNodes( elem, uniqueNodes, nbUniqueNodes );
-      }
-    } else {
-      // Remove invalid regular element or invalid polygon
-      rmElemIds.push_back( elem->GetID() );
-    }
-
-  } // loop on elements
-
-  // Remove equal nodes and bad elements
-
-  Remove( rmNodeIds, true );
-  Remove( rmElemIds, false );
-
-}
-
-//=======================================================================
-//function : MergeEqualElements
-//purpose  : Remove all but one of elements built on the same nodes.
-//=======================================================================
-
-void SMESH_MeshEditor::MergeEqualElements()
-{
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  SMDS_EdgeIteratorPtr   eIt = aMesh->edgesIterator();
-  SMDS_FaceIteratorPtr   fIt = aMesh->facesIterator();
-  SMDS_VolumeIteratorPtr vIt = aMesh->volumesIterator();
-
-  list< int > rmElemIds; // IDs of elems to remove
-
-  for ( int iDim = 1; iDim <= 3; iDim++ ) {
-
-    set< set <const SMDS_MeshElement*> > setOfNodeSet;
-
-    while ( 1 ) {
-      // get next element
-      const SMDS_MeshElement* elem = 0;
-      if ( iDim == 1 ) {
-        if ( eIt->more() ) elem = eIt->next();
-      } else if ( iDim == 2 ) {
-        if ( fIt->more() ) elem = fIt->next();
-      } else {
-        if ( vIt->more() ) elem = vIt->next();
-      }
-      if ( !elem ) break;
-
-      // get elem nodes
-      set <const SMDS_MeshElement*> nodeSet;
-      SMDS_ElemIteratorPtr nodeIt = elem->nodesIterator();
-      while ( nodeIt->more() )
-        nodeSet.insert( nodeIt->next() );
-
-      // check uniqueness
-      bool isUnique = setOfNodeSet.insert( nodeSet ).second;
-      if ( !isUnique )
-        rmElemIds.push_back( elem->GetID() );
-    }
-  }
-
-  Remove( rmElemIds, false );
-}
-
-//=======================================================================
-//function : FindFaceInSet
-//purpose  : Return a face having linked nodes n1 and n2 and which is
-//           - not in avoidSet,
-//           - in elemSet provided that !elemSet.empty()
-//=======================================================================
-
-const SMDS_MeshElement*
-  SMESH_MeshEditor::FindFaceInSet(const SMDS_MeshNode*                n1,
-                                  const SMDS_MeshNode*                n2,
-                                  const set<const SMDS_MeshElement*>& elemSet,
-                                  const set<const SMDS_MeshElement*>& avoidSet)
-
-{
-  SMDS_ElemIteratorPtr invElemIt = n1->GetInverseElementIterator();
-  while ( invElemIt->more() ) { // loop on inverse elements of n1
-    const SMDS_MeshElement* elem = invElemIt->next();
-    if (elem->GetType() != SMDSAbs_Face ||
-        avoidSet.find( elem ) != avoidSet.end() )
-      continue;
-    if ( !elemSet.empty() && elemSet.find( elem ) == elemSet.end())
-      continue;
-    // get face nodes and find index of n1
-    int i1, nbN = elem->NbNodes(), iNode = 0;
-    const SMDS_MeshNode* faceNodes[ nbN ], *n;
-    SMDS_ElemIteratorPtr nIt = elem->nodesIterator();
-    while ( nIt->more() ) {
-      faceNodes[ iNode ] = static_cast<const SMDS_MeshNode*>( nIt->next() );
-      if ( faceNodes[ iNode++ ] == n1 )
-        i1 = iNode - 1;
-    }
-    // find a n2 linked to n1
-    for ( iNode = 0; iNode < 2; iNode++ ) {
-      if ( iNode ) // node before n1
-        n = faceNodes[ i1 == 0 ? nbN - 1 : i1 - 1 ];
-      else         // node after n1
-        n = faceNodes[ i1 + 1 == nbN ? 0 : i1 + 1 ];
-      if ( n == n2 )
-        return elem;
-    }
-  }
-  return 0;
-}
-
-//=======================================================================
-//function : findAdjacentFace
-//purpose  :
-//=======================================================================
-
-static const SMDS_MeshElement* findAdjacentFace(const SMDS_MeshNode* n1,
-                                                const SMDS_MeshNode* n2,
-                                                const SMDS_MeshElement* elem)
-{
-  set<const SMDS_MeshElement*> elemSet, avoidSet;
-  if ( elem )
-    avoidSet.insert ( elem );
-  return SMESH_MeshEditor::FindFaceInSet( n1, n2, elemSet, avoidSet );
-}
-
-//=======================================================================
-//function : findFreeBorder
-//purpose  :
-//=======================================================================
-
-#define ControlFreeBorder SMESH::Controls::FreeEdges::IsFreeEdge
-
-static bool findFreeBorder (const SMDS_MeshNode*                theFirstNode,
-                            const SMDS_MeshNode*                theSecondNode,
-                            const SMDS_MeshNode*                theLastNode,
-                            list< const SMDS_MeshNode* > &      theNodes,
-                            list< const SMDS_MeshElement* > &   theFaces)
-{
-  if ( !theFirstNode || !theSecondNode )
-    return false;
-  // find border face between theFirstNode and theSecondNode
-  const SMDS_MeshElement* curElem = findAdjacentFace( theFirstNode, theSecondNode, 0 );
-  if ( !curElem )
-    return false;
-
-  theFaces.push_back( curElem );
-  theNodes.push_back( theFirstNode );
-  theNodes.push_back( theSecondNode );
-
-  const SMDS_MeshNode* nodes [5], *nIgnore = theFirstNode, * nStart = theSecondNode;
-  set < const SMDS_MeshElement* > foundElems;
-  bool needTheLast = ( theLastNode != 0 );
-
-  while ( nStart != theLastNode )
-  {
-    if ( nStart == theFirstNode )
-      return !needTheLast;
-
-    // find all free border faces sharing form nStart
-
-    list< const SMDS_MeshElement* > curElemList;
-    list< const SMDS_MeshNode* > nStartList;
-    SMDS_ElemIteratorPtr invElemIt = nStart->facesIterator();
-    while ( invElemIt->more() ) {
-      const SMDS_MeshElement* e = invElemIt->next();
-      if ( e == curElem || foundElems.insert( e ).second )
-      {
-        // get nodes
-        SMDS_ElemIteratorPtr nIt = e->nodesIterator();
-        int iNode = 0, nbNodes = e->NbNodes();
-        while ( nIt->more() )
-          nodes[ iNode++ ] = static_cast<const SMDS_MeshNode*>( nIt->next() );
-        nodes[ iNode ] = nodes[ 0 ];
-        // check 2 links
-        for ( iNode = 0; iNode < nbNodes; iNode++ )
-          if (((nodes[ iNode ] == nStart && nodes[ iNode + 1] != nIgnore ) ||
-               (nodes[ iNode + 1] == nStart && nodes[ iNode ] != nIgnore )) &&
-              ControlFreeBorder( &nodes[ iNode ], e->GetID() ))
-          {
-            nStartList.push_back( nodes[ iNode + ( nodes[ iNode ] == nStart ? 1 : 0 )]);
-            curElemList.push_back( e );
-          }
-      }
-    }
-    // analyse the found
-
-    int nbNewBorders = curElemList.size();
-    if ( nbNewBorders == 0 ) {
-      // no free border furthermore
-      return !needTheLast;
-    }
-    else if ( nbNewBorders == 1 ) {
-      // one more element found
-      nIgnore = nStart;
-      nStart = nStartList.front();
-      curElem = curElemList.front();
-      theFaces.push_back( curElem );
-      theNodes.push_back( nStart );
-    }
-    else {
-      // several continuations found
-      list< const SMDS_MeshElement* >::iterator curElemIt;
-      list< const SMDS_MeshNode* >::iterator nStartIt;
-      // check if one of them reached the last node
-      if ( needTheLast ) {
-        for (curElemIt = curElemList.begin(), nStartIt = nStartList.begin();
-             curElemIt!= curElemList.end();
-             curElemIt++, nStartIt++ )
-          if ( *nStartIt == theLastNode ) {
-            theFaces.push_back( *curElemIt );
-            theNodes.push_back( *nStartIt );
-            return true;
-          }
-      }
-      // find the best free border by the continuations
-      list<const SMDS_MeshNode*>    contNodes[ 2 ], *cNL;
-      list<const SMDS_MeshElement*> contFaces[ 2 ], *cFL;
-      for (curElemIt = curElemList.begin(), nStartIt = nStartList.begin();
-           curElemIt!= curElemList.end();
-           curElemIt++, nStartIt++ )
-      {
-        cNL = & contNodes[ contNodes[0].empty() ? 0 : 1 ];
-        cFL = & contFaces[ contFaces[0].empty() ? 0 : 1 ];
-        // find one more free border
-        if ( ! findFreeBorder( nIgnore, nStart, theLastNode, *cNL, *cFL )) {
-          cNL->clear();
-          cFL->clear();
-        }
-        else if ( !contNodes[0].empty() && !contNodes[1].empty() ) {
-          // choice: clear a worse one
-          int iLongest = ( contNodes[0].size() < contNodes[1].size() ? 1 : 0 );
-          int iWorse = ( needTheLast ? 1 - iLongest : iLongest );
-          contNodes[ iWorse ].clear();
-          contFaces[ iWorse ].clear();
-        }
-      }
-      if ( contNodes[0].empty() && contNodes[1].empty() )
-        return false;
-
-      // append the best free border
-      cNL = & contNodes[ contNodes[0].empty() ? 1 : 0 ];
-      cFL = & contFaces[ contFaces[0].empty() ? 1 : 0 ];
-      theNodes.pop_back(); // remove nIgnore
-      theNodes.pop_back(); // remove nStart
-      theFaces.pop_back(); // remove curElem
-      list< const SMDS_MeshNode* >::iterator nIt = cNL->begin();
-      list< const SMDS_MeshElement* >::iterator fIt = cFL->begin();
-      for ( ; nIt != cNL->end(); nIt++ ) theNodes.push_back( *nIt );
-      for ( ; fIt != cFL->end(); fIt++ ) theFaces.push_back( *fIt );
-      return true;
-
-    } // several continuations found
-  } // while ( nStart != theLastNode )
-
-  return true;
-}
-
-//=======================================================================
-//function : CheckFreeBorderNodes
-//purpose  : Return true if the tree nodes are on a free border
-//=======================================================================
-
-bool SMESH_MeshEditor::CheckFreeBorderNodes(const SMDS_MeshNode* theNode1,
-                                            const SMDS_MeshNode* theNode2,
-                                            const SMDS_MeshNode* theNode3)
-{
-  list< const SMDS_MeshNode* > nodes;
-  list< const SMDS_MeshElement* > faces;
-  return findFreeBorder( theNode1, theNode2, theNode3, nodes, faces);
-}
-
-//=======================================================================
-//function : SewFreeBorder
-//purpose  :
-//=======================================================================
-
-SMESH_MeshEditor::Sew_Error
-  SMESH_MeshEditor::SewFreeBorder (const SMDS_MeshNode* theBordFirstNode,
-                                   const SMDS_MeshNode* theBordSecondNode,
-                                   const SMDS_MeshNode* theBordLastNode,
-                                   const SMDS_MeshNode* theSideFirstNode,
-                                   const SMDS_MeshNode* theSideSecondNode,
-                                   const SMDS_MeshNode* theSideThirdNode,
-                                   const bool           theSideIsFreeBorder,
-                                   const bool           toCreatePolygons,
-                                   const bool           toCreatePolyedrs)
-{
-  MESSAGE("::SewFreeBorder()");
-  Sew_Error aResult = SEW_OK;
-
-  // ====================================
-  //    find side nodes and elements
-  // ====================================
-
-  list< const SMDS_MeshNode* > nSide[ 2 ];
-  list< const SMDS_MeshElement* > eSide[ 2 ];
-  list< const SMDS_MeshNode* >::iterator nIt[ 2 ];
-  list< const SMDS_MeshElement* >::iterator eIt[ 2 ];
-
-  // Free border 1
-  // --------------
-  if (!findFreeBorder(theBordFirstNode,theBordSecondNode,theBordLastNode,
-                      nSide[0], eSide[0])) {
-    MESSAGE(" Free Border 1 not found " );
-    aResult = SEW_BORDER1_NOT_FOUND;
-  }
-  if (theSideIsFreeBorder)
-  {
-    // Free border 2
-    // --------------
-    if (!findFreeBorder(theSideFirstNode, theSideSecondNode, theSideThirdNode,
-                        nSide[1], eSide[1])) {
-      MESSAGE(" Free Border 2 not found " );
-      aResult = ( aResult != SEW_OK ? SEW_BOTH_BORDERS_NOT_FOUND : SEW_BORDER2_NOT_FOUND );
-    }
-  }
-  if ( aResult != SEW_OK )
-    return aResult;
-
-  if (!theSideIsFreeBorder)
-  {
-    // Side 2
-    // --------------
-
-    // -------------------------------------------------------------------------
-    // Algo:
-    // 1. If nodes to merge are not coincident, move nodes of the free border
-    //    from the coord sys defined by the direction from the first to last
-    //    nodes of the border to the correspondent sys of the side 2
-    // 2. On the side 2, find the links most co-directed with the correspondent
-    //    links of the free border
-    // -------------------------------------------------------------------------
-
-    // 1. Since sewing may brake if there are volumes to split on the side 2,
-    //    we wont move nodes but just compute new coordinates for them
-    typedef map<const SMDS_MeshNode*, gp_XYZ> TNodeXYZMap;
-    TNodeXYZMap nBordXYZ;
-    list< const SMDS_MeshNode* >& bordNodes = nSide[ 0 ];
-    list< const SMDS_MeshNode* >::iterator nBordIt;
-
-    gp_XYZ Pb1( theBordFirstNode->X(), theBordFirstNode->Y(), theBordFirstNode->Z() );
-    gp_XYZ Pb2( theBordLastNode->X(), theBordLastNode->Y(), theBordLastNode->Z() );
-    gp_XYZ Ps1( theSideFirstNode->X(), theSideFirstNode->Y(), theSideFirstNode->Z() );
-    gp_XYZ Ps2( theSideSecondNode->X(), theSideSecondNode->Y(), theSideSecondNode->Z() );
-    double tol2 = 1.e-8;
-    gp_Vec Vbs1( Pb1 - Ps1 ),Vbs2( Pb2 - Ps2 );
-    if ( Vbs1.SquareMagnitude() > tol2 || Vbs2.SquareMagnitude() > tol2 )
-    {
-      // Need node movement.
-
-      // find X and Z axes to create trsf
-      gp_Vec Zb( Pb1 - Pb2 ), Zs( Ps1 - Ps2 );
-      gp_Vec X = Zs ^ Zb;
-      if ( X.SquareMagnitude() <= gp::Resolution() * gp::Resolution() )
-        // Zb || Zs
-        X = gp_Ax2( gp::Origin(), Zb ).XDirection();
-
-      // coord systems
-      gp_Ax3 toBordAx( Pb1, Zb, X );
-      gp_Ax3 fromSideAx( Ps1, Zs, X );
-      gp_Ax3 toGlobalAx( gp::Origin(), gp::DZ(), gp::DX() );
-      // set trsf
-      gp_Trsf toBordSys, fromSide2Sys;
-      toBordSys.SetTransformation( toBordAx );
-      fromSide2Sys.SetTransformation( fromSideAx, toGlobalAx );
-      fromSide2Sys.SetScaleFactor( Zs.Magnitude() / Zb.Magnitude() );
-
-      // move
-      for ( nBordIt = bordNodes.begin(); nBordIt != bordNodes.end(); nBordIt++ ) {
-        const SMDS_MeshNode* n = *nBordIt;
-        gp_XYZ xyz( n->X(),n->Y(),n->Z() );
-        toBordSys.Transforms( xyz );
-        fromSide2Sys.Transforms( xyz );
-        nBordXYZ.insert( TNodeXYZMap::value_type( n, xyz ));
-      }
-    }
-    else
-    {
-      // just insert nodes XYZ in the nBordXYZ map
-      for ( nBordIt = bordNodes.begin(); nBordIt != bordNodes.end(); nBordIt++ ) {
-        const SMDS_MeshNode* n = *nBordIt;
-        nBordXYZ.insert( TNodeXYZMap::value_type( n, gp_XYZ( n->X(),n->Y(),n->Z() )));
-      }
-    }
-
-    // 2. On the side 2, find the links most co-directed with the correspondent
-    //    links of the free border
-
-    list< const SMDS_MeshElement* >& sideElems = eSide[ 1 ];
-    list< const SMDS_MeshNode* >& sideNodes = nSide[ 1 ];
-    sideNodes.push_back( theSideFirstNode );
-
-    bool hasVolumes = false;
-    LinkID_Gen aLinkID_Gen( GetMeshDS() );
-    set<long> foundSideLinkIDs, checkedLinkIDs;
-    SMDS_VolumeTool volume;
-    //const SMDS_MeshNode* faceNodes[ 4 ];
-
-    const SMDS_MeshNode*    sideNode;
-    const SMDS_MeshElement* sideElem;
-    const SMDS_MeshNode* prevSideNode = theSideFirstNode;
-    const SMDS_MeshNode* prevBordNode = theBordFirstNode;
-    nBordIt = bordNodes.begin();
-    nBordIt++;
-    // border node position and border link direction to compare with
-    gp_XYZ bordPos = nBordXYZ[ *nBordIt ];
-    gp_XYZ bordDir = bordPos - nBordXYZ[ prevBordNode ];
-    // choose next side node by link direction or by closeness to
-    // the current border node:
-    bool searchByDir = ( *nBordIt != theBordLastNode );
-    do {
-      // find the next node on the Side 2
-      sideNode = 0;
-      double maxDot = -DBL_MAX, minDist = DBL_MAX;
-      long linkID;
-      checkedLinkIDs.clear();
-      gp_XYZ prevXYZ( prevSideNode->X(), prevSideNode->Y(), prevSideNode->Z() );
-
-      SMDS_ElemIteratorPtr invElemIt
-        = prevSideNode->GetInverseElementIterator();
-      while ( invElemIt->more() ) { // loop on inverse elements on the Side 2
-        const SMDS_MeshElement* elem = invElemIt->next();
-        // prepare data for a loop on links, of a face or a volume
-        int iPrevNode, iNode = 0, nbNodes = elem->NbNodes();
-        const SMDS_MeshNode* faceNodes[ nbNodes ];
-        bool isVolume = volume.Set( elem );
-        const SMDS_MeshNode** nodes = isVolume ? volume.GetNodes() : faceNodes;
-        if ( isVolume ) // --volume
-          hasVolumes = true;
-        else if ( nbNodes > 2 ) { // --face
-          // retrieve all face nodes and find iPrevNode - an index of the prevSideNode
-          SMDS_ElemIteratorPtr nIt = elem->nodesIterator();
-          while ( nIt->more() ) {
-            nodes[ iNode ] = static_cast<const SMDS_MeshNode*>( nIt->next() );
-            if ( nodes[ iNode++ ] == prevSideNode )
-              iPrevNode = iNode - 1;
-          }
-          // there are 2 links to check
-          nbNodes = 2;
-        }
-        else // --edge
-          continue;
-        // loop on links, to be precise, on the second node of links
-        for ( iNode = 0; iNode < nbNodes; iNode++ ) {
-          const SMDS_MeshNode* n = nodes[ iNode ];
-          if ( isVolume ) {
-            if ( !volume.IsLinked( n, prevSideNode ))
-              continue;
-          } else {
-            if ( iNode ) // a node before prevSideNode
-              n = nodes[ iPrevNode == 0 ? elem->NbNodes() - 1 : iPrevNode - 1 ];
-            else         // a node after prevSideNode
-              n = nodes[ iPrevNode + 1 == elem->NbNodes() ? 0 : iPrevNode + 1 ];
-          }
-          // check if this link was already used
-          long iLink = aLinkID_Gen.GetLinkID( prevSideNode, n );
-          bool isJustChecked = !checkedLinkIDs.insert( iLink ).second;
-          if (!isJustChecked &&
-              foundSideLinkIDs.find( iLink ) == foundSideLinkIDs.end() ) {
-            // test a link geometrically
-            gp_XYZ nextXYZ ( n->X(), n->Y(), n->Z() );
-            bool linkIsBetter = false;
-            double dot, dist;
-            if ( searchByDir ) { // choose most co-directed link
-              dot = bordDir * ( nextXYZ - prevXYZ ).Normalized();
-              linkIsBetter = ( dot > maxDot );
-            }
-            else { // choose link with the node closest to bordPos
-              dist = ( nextXYZ - bordPos ).SquareModulus();
-              linkIsBetter = ( dist < minDist );
-            }
-            if ( linkIsBetter ) {
-              maxDot = dot;
-              minDist = dist;
-              linkID = iLink;
-              sideNode = n;
-              sideElem = elem;
-            }
-          }
-        }
-      } // loop on inverse elements of prevSideNode
-
-      if ( !sideNode ) {
-        MESSAGE(" Cant find path by links of the Side 2 ");
-        return SEW_BAD_SIDE_NODES;
-      }
-      sideNodes.push_back( sideNode );
-      sideElems.push_back( sideElem );
-      foundSideLinkIDs.insert ( linkID );
-      prevSideNode = sideNode;
-
-      if ( *nBordIt == theBordLastNode )
-        searchByDir = false;
-      else {
-        // find the next border link to compare with
-        gp_XYZ sidePos( sideNode->X(), sideNode->Y(), sideNode->Z() );
-        searchByDir = ( bordDir * ( sidePos - bordPos ) <= 0 );
-        while ( *nBordIt != theBordLastNode && !searchByDir ) {
-          prevBordNode = *nBordIt;
-          nBordIt++;
-          bordPos = nBordXYZ[ *nBordIt ];
-          bordDir = bordPos - nBordXYZ[ prevBordNode ];
-          searchByDir = ( bordDir * ( sidePos - bordPos ) <= 0 );
-        }
-      }
-    }
-    while ( sideNode != theSideSecondNode );
-
-    if ( hasVolumes && sideNodes.size () != bordNodes.size() && !toCreatePolyedrs) {
-      MESSAGE("VOLUME SPLITTING IS FORBIDDEN");
-      return SEW_VOLUMES_TO_SPLIT; // volume splitting is forbidden
-    }
-  } // end nodes search on the side 2
-
-  // ============================
-  // sew the border to the side 2
-  // ============================
-
-  int nbNodes[]  = { nSide[0].size(), nSide[1].size() };
-  int maxNbNodes = Max( nbNodes[0], nbNodes[1] );
-
-  TListOfListOfNodes nodeGroupsToMerge;
-  if ( nbNodes[0] == nbNodes[1] ||
-      ( theSideIsFreeBorder && !theSideThirdNode)) {
-
-    // all nodes are to be merged
-
-    for (nIt[0] = nSide[0].begin(), nIt[1] = nSide[1].begin();
-         nIt[0] != nSide[0].end() && nIt[1] != nSide[1].end();
-         nIt[0]++, nIt[1]++ )
-    {
-      nodeGroupsToMerge.push_back( list<const SMDS_MeshNode*>() );
-      nodeGroupsToMerge.back().push_back( *nIt[1] ); // to keep
-      nodeGroupsToMerge.back().push_back( *nIt[0] ); // tp remove
-    }
-  }
-  else {
-
-    // insert new nodes into the border and the side to get equal nb of segments
-
-    // get normalized parameters of nodes on the borders
-    double param[ 2 ][ maxNbNodes ];
-    int iNode, iBord;
-    for ( iBord = 0; iBord < 2; iBord++ ) { // loop on 2 borders
-      list< const SMDS_MeshNode* >& nodes = nSide[ iBord ];
-      list< const SMDS_MeshNode* >::iterator nIt = nodes.begin();
-      const SMDS_MeshNode* nPrev = *nIt;
-      double bordLength = 0;
-      for ( iNode = 0; nIt != nodes.end(); nIt++, iNode++ ) { // loop on border nodes
-        const SMDS_MeshNode* nCur = *nIt;
-        gp_XYZ segment (nCur->X() - nPrev->X(),
-                        nCur->Y() - nPrev->Y(),
-                        nCur->Z() - nPrev->Z());
-        double segmentLen = segment.Modulus();
-        bordLength += segmentLen;
-        param[ iBord ][ iNode ] = bordLength;
-        nPrev = nCur;
-      }
-      // normalize within [0,1]
-      for ( iNode = 0; iNode < nbNodes[ iBord ]; iNode++ ) {
-        param[ iBord ][ iNode ] /= bordLength;
-      }
-    }
-
-    // loop on border segments
-    const SMDS_MeshNode *nPrev[ 2 ] = { 0, 0 };
-    int i[ 2 ] = { 0, 0 };
-    nIt[0] = nSide[0].begin(); eIt[0] = eSide[0].begin();
-    nIt[1] = nSide[1].begin(); eIt[1] = eSide[1].begin();
-
-    TElemOfNodeListMap insertMap;
-    TElemOfNodeListMap::iterator insertMapIt;
-    // insertMap is
-    // key:   elem to insert nodes into
-    // value: 2 nodes to insert between + nodes to be inserted
-    do {
-      bool next[ 2 ] = { false, false };
-
-      // find min adjacent segment length after sewing
-      double nextParam = 10., prevParam = 0;
-      for ( iBord = 0; iBord < 2; iBord++ ) { // loop on 2 borders
-        if ( i[ iBord ] + 1 < nbNodes[ iBord ])
-          nextParam = Min( nextParam, param[iBord][ i[iBord] + 1 ]);
-        if ( i[ iBord ] > 0 )
-          prevParam = Max( prevParam, param[iBord][ i[iBord] - 1 ]);
-      }
-      double minParam = Min( param[ 0 ][ i[0] ], param[ 1 ][ i[1] ]);
-      double maxParam = Max( param[ 0 ][ i[0] ], param[ 1 ][ i[1] ]);
-      double minSegLen = Min( nextParam - minParam, maxParam - prevParam );
-
-      // choose to insert or to merge nodes
-      double du = param[ 1 ][ i[1] ] - param[ 0 ][ i[0] ];
-      if ( Abs( du ) <= minSegLen * 0.2 ) {
-        // merge
-        // ------
-        nodeGroupsToMerge.push_back( list<const SMDS_MeshNode*>() );
-        const SMDS_MeshNode* n0 = *nIt[0];
-        const SMDS_MeshNode* n1 = *nIt[1];
-        nodeGroupsToMerge.back().push_back( n1 );
-        nodeGroupsToMerge.back().push_back( n0 );
-        // position of node of the border changes due to merge
-        param[ 0 ][ i[0] ] += du;
-        // move n1 for the sake of elem shape evaluation during insertion.
-        // n1 will be removed by MergeNodes() anyway
-        const_cast<SMDS_MeshNode*>( n0 )->setXYZ( n1->X(), n1->Y(), n1->Z() );
-        next[0] = next[1] = true;
-      }
-      else {
-        // insert
-        // ------
-        int intoBord = ( du < 0 ) ? 0 : 1;
-        const SMDS_MeshElement* elem = *eIt[ intoBord ];
-        const SMDS_MeshNode*    n1   = nPrev[ intoBord ];
-        const SMDS_MeshNode*    n2   = *nIt[ intoBord ];
-        const SMDS_MeshNode*    nIns = *nIt[ 1 - intoBord ];
-        if ( intoBord == 1 ) {
-          // move node of the border to be on a link of elem of the side
-          gp_XYZ p1 (n1->X(), n1->Y(), n1->Z());
-          gp_XYZ p2 (n2->X(), n2->Y(), n2->Z());
-          double ratio = du / ( param[ 1 ][ i[1] ] - param[ 1 ][ i[1]-1 ]);
-          gp_XYZ p = p2 * ( 1 - ratio ) + p1 * ratio;
-          GetMeshDS()->MoveNode( nIns, p.X(), p.Y(), p.Z() );
-        }
-        insertMapIt = insertMap.find( elem );
-        bool notFound = ( insertMapIt == insertMap.end() );
-        bool otherLink = ( !notFound && (*insertMapIt).second.front() != n1 );
-        if ( otherLink ) {
-          // insert into another link of the same element:
-          // 1. perform insertion into the other link of the elem
-          list<const SMDS_MeshNode*> & nodeList = (*insertMapIt).second;
-          const SMDS_MeshNode* n12 = nodeList.front(); nodeList.pop_front();
-          const SMDS_MeshNode* n22 = nodeList.front(); nodeList.pop_front();
-          InsertNodesIntoLink( elem, n12, n22, nodeList, toCreatePolygons );
-          // 2. perform insertion into the link of adjacent faces
-          while (true) {
-            const SMDS_MeshElement* adjElem = findAdjacentFace( n12, n22, elem );
-            if ( adjElem )
-              InsertNodesIntoLink( adjElem, n12, n22, nodeList, toCreatePolygons );
-            else
-              break;
-          }
-          if (toCreatePolyedrs) {
-            // perform insertion into the links of adjacent volumes
-            UpdateVolumes(n12, n22, nodeList);
-          }
-          // 3. find an element appeared on n1 and n2 after the insertion
-          insertMap.erase( elem );
-          elem = findAdjacentFace( n1, n2, 0 );
-        }
-        if ( notFound || otherLink ) {
-          // add element and nodes of the side into the insertMap
-          insertMapIt = insertMap.insert
-            ( TElemOfNodeListMap::value_type( elem, list<const SMDS_MeshNode*>() )).first;
-          (*insertMapIt).second.push_back( n1 );
-          (*insertMapIt).second.push_back( n2 );
-        }
-        // add node to be inserted into elem
-        (*insertMapIt).second.push_back( nIns );
-        next[ 1 - intoBord ] = true;
-      }
-
-      // go to the next segment
-      for ( iBord = 0; iBord < 2; iBord++ ) { // loop on 2 borders
-        if ( next[ iBord ] ) {
-          if ( i[ iBord ] != 0 && eIt[ iBord ] != eSide[ iBord ].end())
-            eIt[ iBord ]++;
-          nPrev[ iBord ] = *nIt[ iBord ];
-          nIt[ iBord ]++; i[ iBord ]++;
-        }
-      }
-    }
-    while ( nIt[0] != nSide[0].end() && nIt[1] != nSide[1].end());
-
-    // perform insertion of nodes into elements
-
-    for (insertMapIt = insertMap.begin();
-         insertMapIt != insertMap.end();
-         insertMapIt++ )
-    {
-      const SMDS_MeshElement* elem = (*insertMapIt).first;
-      list<const SMDS_MeshNode*> & nodeList = (*insertMapIt).second;
-      const SMDS_MeshNode* n1 = nodeList.front(); nodeList.pop_front();
-      const SMDS_MeshNode* n2 = nodeList.front(); nodeList.pop_front();
-
-      InsertNodesIntoLink( elem, n1, n2, nodeList, toCreatePolygons );
-
-      if ( !theSideIsFreeBorder ) {
-        // look for and insert nodes into the faces adjacent to elem
-        while (true) {
-          const SMDS_MeshElement* adjElem = findAdjacentFace( n1, n2, elem );
-          if ( adjElem )
-            InsertNodesIntoLink( adjElem, n1, n2, nodeList, toCreatePolygons );
-          else
-            break;
-        }
-      }
-      if (toCreatePolyedrs) {
-        // perform insertion into the links of adjacent volumes
-        UpdateVolumes(n1, n2, nodeList);
-      }
-    }
-
-  } // end: insert new nodes
-
-  MergeNodes ( nodeGroupsToMerge );
-
-  return aResult;
-}
-
-//=======================================================================
-//function : InsertNodesIntoLink
-//purpose  : insert theNodesToInsert into theFace between theBetweenNode1
-//           and theBetweenNode2 and split theElement
-//=======================================================================
-
-void SMESH_MeshEditor::InsertNodesIntoLink(const SMDS_MeshElement*     theFace,
-                                           const SMDS_MeshNode*        theBetweenNode1,
-                                           const SMDS_MeshNode*        theBetweenNode2,
-                                           list<const SMDS_MeshNode*>& theNodesToInsert,
-                                           const bool                  toCreatePoly)
-{
-  if ( theFace->GetType() != SMDSAbs_Face ) return;
-
-  // find indices of 2 link nodes and of the rest nodes
-  int iNode = 0, il1, il2, i3, i4;
-  il1 = il2 = i3 = i4 = -1;
-  const SMDS_MeshNode* nodes[ theFace->NbNodes() ];
-  SMDS_ElemIteratorPtr nodeIt = theFace->nodesIterator();
-  while ( nodeIt->more() ) {
-    const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
-    if ( n == theBetweenNode1 )
-      il1 = iNode;
-    else if ( n == theBetweenNode2 )
-      il2 = iNode;
-    else if ( i3 < 0 )
-      i3 = iNode;
-    else
-      i4 = iNode;
-    nodes[ iNode++ ] = n;
-  }
-  if ( il1 < 0 || il2 < 0 || i3 < 0 )
-    return ;
-
-  // arrange link nodes to go one after another regarding the face orientation
-  bool reverse = ( Abs( il2 - il1 ) == 1 ? il2 < il1 : il1 < il2 );
-  list<const SMDS_MeshNode *> aNodesToInsert = theNodesToInsert;
-  if ( reverse ) {
-    iNode = il1;
-    il1 = il2;
-    il2 = iNode;
-    aNodesToInsert.reverse();
-  }
-  // check that not link nodes of a quadrangles are in good order
-  int nbFaceNodes = theFace->NbNodes();
-  if ( nbFaceNodes == 4 && i4 - i3 != 1 ) {
-    iNode = i3;
-    i3 = i4;
-    i4 = iNode;
-  }
-
-  if (toCreatePoly || theFace->IsPoly()) {
-
-    iNode = 0;
-    vector<const SMDS_MeshNode *> poly_nodes (nbFaceNodes + aNodesToInsert.size());
-
-    // add nodes of face up to first node of link
-    bool isFLN = false;
-    nodeIt = theFace->nodesIterator();
-    while ( nodeIt->more() && !isFLN ) {
-      const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
-      poly_nodes[iNode++] = n;
-      if (n == nodes[il1]) {
-        isFLN = true;
-      }
-    }
-
-    // add nodes to insert
-    list<const SMDS_MeshNode*>::iterator nIt = aNodesToInsert.begin();
-    for (; nIt != aNodesToInsert.end(); nIt++) {
-      poly_nodes[iNode++] = *nIt;
-    }
-
-    // add nodes of face starting from last node of link
-    while ( nodeIt->more() ) {
-      const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
-      poly_nodes[iNode++] = n;
-    }
-
-    // edit or replace the face
-    SMESHDS_Mesh *aMesh = GetMeshDS();
-
-    if (theFace->IsPoly()) {
-      aMesh->ChangePolygonNodes(theFace, poly_nodes);
-
-    } else {
-      int aShapeId = FindShape( theFace );
-
-      SMDS_MeshElement* newElem = aMesh->AddPolygonalFace(poly_nodes);
-      if ( aShapeId && newElem )
-        aMesh->SetMeshElementOnShape( newElem, aShapeId );
-
-      aMesh->RemoveElement(theFace);
-    }
-    return;
-  }
-
-  // put aNodesToInsert between theBetweenNode1 and theBetweenNode2
-  int nbLinkNodes = 2 + aNodesToInsert.size();
-  const SMDS_MeshNode* linkNodes[ nbLinkNodes ];
-  linkNodes[ 0 ] = nodes[ il1 ];
-  linkNodes[ nbLinkNodes - 1 ] = nodes[ il2 ];
-  list<const SMDS_MeshNode*>::iterator nIt = aNodesToInsert.begin();
-  for ( iNode = 1; nIt != aNodesToInsert.end(); nIt++ ) {
-    linkNodes[ iNode++ ] = *nIt;
-  }
-  // decide how to split a quadrangle: compare possible variants
-  // and choose which of splits to be a quadrangle
-  int i1, i2, iSplit, nbSplits = nbLinkNodes - 1, iBestQuad;
-  if ( nbFaceNodes == 3 )
-  {
-    iBestQuad = nbSplits;
-    i4 = i3;
-  }
-  else if ( nbFaceNodes == 4 )
-  {
-    SMESH::Controls::NumericalFunctorPtr aCrit( new SMESH::Controls::AspectRatio);
-    double aBestRate = DBL_MAX;
-    for ( int iQuad = 0; iQuad < nbSplits; iQuad++ ) {
-      i1 = 0; i2 = 1;
-      double aBadRate = 0;
-      // evaluate elements quality
-      for ( iSplit = 0; iSplit < nbSplits; iSplit++ ) {
-        if ( iSplit == iQuad ) {
-          SMDS_FaceOfNodes quad (linkNodes[ i1++ ],
-                                 linkNodes[ i2++ ],
-                                 nodes[ i3 ],
-                                 nodes[ i4 ]);
-          aBadRate += getBadRate( &quad, aCrit );
-        }
-        else {
-          SMDS_FaceOfNodes tria (linkNodes[ i1++ ],
-                                 linkNodes[ i2++ ],
-                                 nodes[ iSplit < iQuad ? i4 : i3 ]);
-          aBadRate += getBadRate( &tria, aCrit );
-        }
-      }
-      // choice
-      if ( aBadRate < aBestRate ) {
-        iBestQuad = iQuad;
-        aBestRate = aBadRate;
-      }
-    }
-  }
-
-  // create new elements
-  SMESHDS_Mesh *aMesh = GetMeshDS();
-  int aShapeId = FindShape( theFace );
-
-  i1 = 0; i2 = 1;
-  for ( iSplit = 0; iSplit < nbSplits - 1; iSplit++ ) {
-    SMDS_MeshElement* newElem = 0;
-    if ( iSplit == iBestQuad )
-      newElem = aMesh->AddFace (linkNodes[ i1++ ],
-                                linkNodes[ i2++ ],
-                                nodes[ i3 ],
-                                nodes[ i4 ]);
-    else
-      newElem = aMesh->AddFace (linkNodes[ i1++ ],
-                                linkNodes[ i2++ ],
-                                nodes[ iSplit < iBestQuad ? i4 : i3 ]);
-    if ( aShapeId && newElem )
-      aMesh->SetMeshElementOnShape( newElem, aShapeId );
-  }
-
-  // change nodes of theFace
-  const SMDS_MeshNode* newNodes[ 4 ];
-  newNodes[ 0 ] = linkNodes[ i1 ];
-  newNodes[ 1 ] = linkNodes[ i2 ];
-  newNodes[ 2 ] = nodes[ iSplit >= iBestQuad ? i3 : i4 ];
-  newNodes[ 3 ] = nodes[ i4 ];
-  aMesh->ChangeElementNodes( theFace, newNodes, iSplit == iBestQuad ? 4 : 3 );
-}
-
-//=======================================================================
-//function : UpdateVolumes
-//purpose  :
-//=======================================================================
-void SMESH_MeshEditor::UpdateVolumes (const SMDS_MeshNode*        theBetweenNode1,
-                                      const SMDS_MeshNode*        theBetweenNode2,
-                                      list<const SMDS_MeshNode*>& theNodesToInsert)
-{
-  SMDS_ElemIteratorPtr invElemIt = theBetweenNode1->GetInverseElementIterator();
-  while (invElemIt->more()) { // loop on inverse elements of theBetweenNode1
-    const SMDS_MeshElement* elem = invElemIt->next();
-    if (elem->GetType() != SMDSAbs_Volume)
-      continue;
-
-    // check, if current volume has link theBetweenNode1 - theBetweenNode2
-    SMDS_VolumeTool aVolume (elem);
-    if (!aVolume.IsLinked(theBetweenNode1, theBetweenNode2))
-      continue;
-
-    // insert new nodes in all faces of the volume, sharing link theBetweenNode1 - theBetweenNode2
-    int iface, nbFaces = aVolume.NbFaces();
-    vector<const SMDS_MeshNode *> poly_nodes;
-    vector<int> quantities (nbFaces);
-
-    for (iface = 0; iface < nbFaces; iface++) {
-      int nbFaceNodes = aVolume.NbFaceNodes(iface), nbInserted = 0;
-      // faceNodes will contain (nbFaceNodes + 1) nodes, last = first
-      const SMDS_MeshNode** faceNodes = aVolume.GetFaceNodes(iface);
-
-      for (int inode = 0; inode < nbFaceNodes; inode++) {
-        poly_nodes.push_back(faceNodes[inode]);
-
-        if (nbInserted == 0) {
-          if (faceNodes[inode] == theBetweenNode1) {
-            if (faceNodes[inode + 1] == theBetweenNode2) {
-              nbInserted = theNodesToInsert.size();
-
-              // add nodes to insert
-              list<const SMDS_MeshNode*>::iterator nIt = theNodesToInsert.begin();
-              for (; nIt != theNodesToInsert.end(); nIt++) {
-                poly_nodes.push_back(*nIt);
-              }
-            }
-          } else if (faceNodes[inode] == theBetweenNode2) {
-            if (faceNodes[inode + 1] == theBetweenNode1) {
-              nbInserted = theNodesToInsert.size();
-
-              // add nodes to insert in reversed order
-              list<const SMDS_MeshNode*>::iterator nIt = theNodesToInsert.end();
-              nIt--;
-              for (; nIt != theNodesToInsert.begin(); nIt--) {
-                poly_nodes.push_back(*nIt);
-              }
-              poly_nodes.push_back(*nIt);
-            }
-          } else {
-          }
-        }
-      }
-      quantities[iface] = nbFaceNodes + nbInserted;
-    }
-
-    // Replace or update the volume
-    SMESHDS_Mesh *aMesh = GetMeshDS();
-
-    if (elem->IsPoly()) {
-      aMesh->ChangePolyhedronNodes(elem, poly_nodes, quantities);
-
-    } else {
-      int aShapeId = FindShape( elem );
-
-      SMDS_MeshElement* newElem =
-        aMesh->AddPolyhedralVolume(poly_nodes, quantities);
-      if (aShapeId && newElem)
-        aMesh->SetMeshElementOnShape(newElem, aShapeId);
-
-      aMesh->RemoveElement(elem);
-    }
-  }
-}
-
-//=======================================================================
-//function : SewSideElements
-//purpose  :
-//=======================================================================
-
-SMESH_MeshEditor::Sew_Error
-  SMESH_MeshEditor::SewSideElements (set<const SMDS_MeshElement*>& theSide1,
-                                     set<const SMDS_MeshElement*>& theSide2,
-                                     const SMDS_MeshNode*          theFirstNode1,
-                                     const SMDS_MeshNode*          theFirstNode2,
-                                     const SMDS_MeshNode*          theSecondNode1,
-                                     const SMDS_MeshNode*          theSecondNode2)
-{
-  MESSAGE ("::::SewSideElements()");
-  if ( theSide1.size() != theSide2.size() )
-    return SEW_DIFF_NB_OF_ELEMENTS;
-
-  Sew_Error aResult = SEW_OK;
-  // Algo:
-  // 1. Build set of faces representing each side
-  // 2. Find which nodes of the side 1 to merge with ones on the side 2
-  // 3. Replace nodes in elements of the side 1 and remove replaced nodes
-
-  // =======================================================================
-  // 1. Build set of faces representing each side:
-  // =======================================================================
-  // a. build set of nodes belonging to faces
-  // b. complete set of faces: find missing fices whose nodes are in set of nodes
-  // c. create temporary faces representing side of volumes if correspondent
-  //    face does not exist
-
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-  SMDS_Mesh aTmpFacesMesh;
-  set<const SMDS_MeshElement*> faceSet1, faceSet2;
-  set<const SMDS_MeshElement*> volSet1,  volSet2;
-  set<const SMDS_MeshNode*>    nodeSet1, nodeSet2;
-  set<const SMDS_MeshElement*> * faceSetPtr[] = { &faceSet1, &faceSet2 };
-  set<const SMDS_MeshElement*>  * volSetPtr[] = { &volSet1,  &volSet2  };
-  set<const SMDS_MeshNode*>    * nodeSetPtr[] = { &nodeSet1, &nodeSet2 };
-  set<const SMDS_MeshElement*> * elemSetPtr[] = { &theSide1, &theSide2 };
-  int iSide, iFace, iNode;
-
-  for ( iSide = 0; iSide < 2; iSide++ ) {
-    set<const SMDS_MeshNode*>    * nodeSet = nodeSetPtr[ iSide ];
-    set<const SMDS_MeshElement*> * elemSet = elemSetPtr[ iSide ];
-    set<const SMDS_MeshElement*> * faceSet = faceSetPtr[ iSide ];
-    set<const SMDS_MeshElement*> * volSet  = volSetPtr [ iSide ];
-    set<const SMDS_MeshElement*>::iterator vIt, eIt;
-    set<const SMDS_MeshNode*>::iterator    nIt;
-
-  // -----------------------------------------------------------
-  // 1a. Collect nodes of existing faces
-  //     and build set of face nodes in order to detect missing
-  //     faces corresponing to sides of volumes
-  // -----------------------------------------------------------
-
-    set< set <const SMDS_MeshNode*> > setOfFaceNodeSet;
-
-    // loop on the given element of a side
-    for (eIt = elemSet->begin(); eIt != elemSet->end(); eIt++ ) {
-      const SMDS_MeshElement* elem = *eIt;
-      if ( elem->GetType() == SMDSAbs_Face ) {
-        faceSet->insert( elem );
-        set <const SMDS_MeshNode*> faceNodeSet;
-        SMDS_ElemIteratorPtr nodeIt = elem->nodesIterator();
-        while ( nodeIt->more() ) {
-          const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
-          nodeSet->insert( n );
-          faceNodeSet.insert( n );
-        }
-        setOfFaceNodeSet.insert( faceNodeSet );
-      }
-      else if ( elem->GetType() == SMDSAbs_Volume )
-        volSet->insert( elem );
-    }
-    // ------------------------------------------------------------------------------
-    // 1b. Complete set of faces: find missing fices whose nodes are in set of nodes
-    // ------------------------------------------------------------------------------
-
-    for ( nIt = nodeSet->begin(); nIt != nodeSet->end(); nIt++ ) { // loop on nodes of iSide
-      SMDS_ElemIteratorPtr fIt = (*nIt)->facesIterator();
-      while ( fIt->more() ) { // loop on faces sharing a node
-        const SMDS_MeshElement* f = fIt->next();
-        if ( faceSet->find( f ) == faceSet->end() ) {
-          // check if all nodes are in nodeSet and
-          // complete setOfFaceNodeSet if they are
-          set <const SMDS_MeshNode*> faceNodeSet;
-          SMDS_ElemIteratorPtr nodeIt = f->nodesIterator();
-          bool allInSet = true;
-          while ( nodeIt->more() && allInSet ) { // loop on nodes of a face
-            const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
-            if ( nodeSet->find( n ) == nodeSet->end() )
-              allInSet = false;
-            else
-              faceNodeSet.insert( n );
-          }
-          if ( allInSet ) {
-            faceSet->insert( f );
-            setOfFaceNodeSet.insert( faceNodeSet );
-          }
-        }
-      }
-    }
-
-    // -------------------------------------------------------------------------
-    // 1c. Create temporary faces representing sides of volumes if correspondent
-    //     face does not exist
-    // -------------------------------------------------------------------------
-
-    if ( !volSet->empty() )
-    {
-      //int nodeSetSize = nodeSet->size();
-
-      // loop on given volumes
-      for ( vIt = volSet->begin(); vIt != volSet->end(); vIt++ ) {
-        SMDS_VolumeTool vol (*vIt);
-        // loop on volume faces: find free faces
-        // --------------------------------------
-        list<const SMDS_MeshElement* > freeFaceList;
-        for ( iFace = 0; iFace < vol.NbFaces(); iFace++ ) {
-          if ( !vol.IsFreeFace( iFace ))
-            continue;
-          // check if there is already a face with same nodes in a face set
-          const SMDS_MeshElement* aFreeFace = 0;
-          const SMDS_MeshNode** fNodes = vol.GetFaceNodes( iFace );
-          int nbNodes = vol.NbFaceNodes( iFace );
-          set <const SMDS_MeshNode*> faceNodeSet;
-          vol.GetFaceNodes( iFace, faceNodeSet );
-          bool isNewFace = setOfFaceNodeSet.insert( faceNodeSet ).second;
-          if ( isNewFace ) {
-            // no such a face is given but it still can exist, check it
-            if ( nbNodes == 3 ) {
-              aFreeFace = aMesh->FindFace( fNodes[0],fNodes[1],fNodes[2] );
-            } else if ( nbNodes == 4 ) {
-              aFreeFace = aMesh->FindFace( fNodes[0],fNodes[1],fNodes[2],fNodes[3] );
-            } else {
-              vector<const SMDS_MeshNode *> poly_nodes (nbNodes);
-              for (int inode = 0; inode < nbNodes; inode++) {
-                poly_nodes[inode] = fNodes[inode];
-              }
-              aFreeFace = aMesh->FindFace(poly_nodes);
-            }
-          }
-          if ( !aFreeFace ) {
-            // create a temporary face
-            if ( nbNodes == 3 ) {
-              aFreeFace = aTmpFacesMesh.AddFace( fNodes[0],fNodes[1],fNodes[2] );
-            } else if ( nbNodes == 4 ) {
-              aFreeFace = aTmpFacesMesh.AddFace( fNodes[0],fNodes[1],fNodes[2],fNodes[3] );
-            } else {
-              vector<const SMDS_MeshNode *> poly_nodes (nbNodes);
-              for (int inode = 0; inode < nbNodes; inode++) {
-                poly_nodes[inode] = fNodes[inode];
-              }
-              aFreeFace = aTmpFacesMesh.AddPolygonalFace(poly_nodes);
-            }
-          }
-          if ( aFreeFace )
-            freeFaceList.push_back( aFreeFace );
-
-        } // loop on faces of a volume
-
-        // choose one of several free faces
-        // --------------------------------------
-        if ( freeFaceList.size() > 1 ) {
-          // choose a face having max nb of nodes shared by other elems of a side
-          int maxNbNodes = -1/*, nbExcludedFaces = 0*/;
-          list<const SMDS_MeshElement* >::iterator fIt = freeFaceList.begin();
-          while ( fIt != freeFaceList.end() ) { // loop on free faces
-            int nbSharedNodes = 0;
-            SMDS_ElemIteratorPtr nodeIt = (*fIt)->nodesIterator();
-            while ( nodeIt->more() ) { // loop on free face nodes
-              const SMDS_MeshNode* n =
-                static_cast<const SMDS_MeshNode*>( nodeIt->next() );
-              SMDS_ElemIteratorPtr invElemIt = n->GetInverseElementIterator();
-              while ( invElemIt->more() ) {
-                const SMDS_MeshElement* e = invElemIt->next();
-                if ( faceSet->find( e ) != faceSet->end() )
-                  nbSharedNodes++;
-                if ( elemSet->find( e ) != elemSet->end() )
-                  nbSharedNodes++;
-              }
-            }
-            if ( nbSharedNodes >= maxNbNodes ) {
-              maxNbNodes = nbSharedNodes;
-              fIt++;
-            }
-            else
-              freeFaceList.erase( fIt++ ); // here fIt++ occures before erase
-          }
-          if ( freeFaceList.size() > 1 )
-          {
-            // could not choose one face, use another way
-            // choose a face most close to the bary center of the opposite side
-            gp_XYZ aBC( 0., 0., 0. );
-            set <const SMDS_MeshNode*> addedNodes;
-            set<const SMDS_MeshElement*> * elemSet2 = elemSetPtr[ 1 - iSide ];
-            eIt = elemSet2->begin();
-            for ( eIt = elemSet2->begin(); eIt != elemSet2->end(); eIt++ ) {
-              SMDS_ElemIteratorPtr nodeIt = (*eIt)->nodesIterator();
-              while ( nodeIt->more() ) { // loop on free face nodes
-                const SMDS_MeshNode* n =
-                  static_cast<const SMDS_MeshNode*>( nodeIt->next() );
-                if ( addedNodes.insert( n ).second )
-                  aBC += gp_XYZ( n->X(),n->Y(),n->Z() );
-              }
-            }
-            aBC /= addedNodes.size();
-            double minDist = DBL_MAX;
-            fIt = freeFaceList.begin();
-            while ( fIt != freeFaceList.end() ) { // loop on free faces
-              double dist = 0;
-              SMDS_ElemIteratorPtr nodeIt = (*fIt)->nodesIterator();
-              while ( nodeIt->more() ) { // loop on free face nodes
-                const SMDS_MeshNode* n =
-                  static_cast<const SMDS_MeshNode*>( nodeIt->next() );
-                gp_XYZ p( n->X(),n->Y(),n->Z() );
-                dist += ( aBC - p ).SquareModulus();
-              }
-              if ( dist < minDist ) {
-                minDist = dist;
-                freeFaceList.erase( freeFaceList.begin(), fIt++ );
-              }
-              else
-                fIt = freeFaceList.erase( fIt++ );
-            }
-          }
-        } // choose one of several free faces of a volume
-
-        if ( freeFaceList.size() == 1 ) {
-          const SMDS_MeshElement* aFreeFace = freeFaceList.front();
-          faceSet->insert( aFreeFace );
-          // complete a node set with nodes of a found free face
-//           for ( iNode = 0; iNode < ; iNode++ )
-//             nodeSet->insert( fNodes[ iNode ] );
-        }
-
-      } // loop on volumes of a side
-
-//       // complete a set of faces if new nodes in a nodeSet appeared
-//       // ----------------------------------------------------------
-//       if ( nodeSetSize != nodeSet->size() ) {
-//         for ( ; nIt != nodeSet->end(); nIt++ ) { // loop on nodes of iSide
-//           SMDS_ElemIteratorPtr fIt = (*nIt)->facesIterator();
-//           while ( fIt->more() ) { // loop on faces sharing a node
-//             const SMDS_MeshElement* f = fIt->next();
-//             if ( faceSet->find( f ) == faceSet->end() ) {
-//               // check if all nodes are in nodeSet and
-//               // complete setOfFaceNodeSet if they are
-//               set <const SMDS_MeshNode*> faceNodeSet;
-//               SMDS_ElemIteratorPtr nodeIt = f->nodesIterator();
-//               bool allInSet = true;
-//               while ( nodeIt->more() && allInSet ) { // loop on nodes of a face
-//                 const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
-//                 if ( nodeSet->find( n ) == nodeSet->end() )
-//                   allInSet = false;
-//                 else
-//                   faceNodeSet.insert( n );
-//               }
-//               if ( allInSet ) {
-//                 faceSet->insert( f );
-//                 setOfFaceNodeSet.insert( faceNodeSet );
-//               }
-//             }
-//           }
-//         }
-//       }
-    } // Create temporary faces, if there are volumes given
-  } // loop on sides
-
-  if ( faceSet1.size() != faceSet2.size() ) {
-    // delete temporary faces: they are in reverseElements of actual nodes
-    SMDS_FaceIteratorPtr tmpFaceIt = aTmpFacesMesh.facesIterator();
-    while ( tmpFaceIt->more() )
-      aTmpFacesMesh.RemoveElement( tmpFaceIt->next() );
-    MESSAGE("Diff nb of faces");
-    return SEW_TOPO_DIFF_SETS_OF_ELEMENTS;
-  }
-
-  // ============================================================
-  // 2. Find nodes to merge:
-  //              bind a node to remove to a node to put instead
-  // ============================================================
-
-  TNodeNodeMap nReplaceMap; // bind a node to remove to a node to put instead
-  if ( theFirstNode1 != theFirstNode2 )
-    nReplaceMap.insert( TNodeNodeMap::value_type( theFirstNode1, theFirstNode2 ));
-  if ( theSecondNode1 != theSecondNode2 )
-    nReplaceMap.insert( TNodeNodeMap::value_type( theSecondNode1, theSecondNode2 ));
-
-  LinkID_Gen aLinkID_Gen( GetMeshDS() );
-  set< long > linkIdSet; // links to process
-  linkIdSet.insert( aLinkID_Gen.GetLinkID( theFirstNode1, theSecondNode1 ));
-
-  typedef pair< const SMDS_MeshNode*, const SMDS_MeshNode* > TPairOfNodes;
-  list< TPairOfNodes > linkList[2];
-  linkList[0].push_back( TPairOfNodes( theFirstNode1, theSecondNode1 ));
-  linkList[1].push_back( TPairOfNodes( theFirstNode2, theSecondNode2 ));
-  // loop on links in linkList; find faces by links and append links
-  // of the found faces to linkList
-  list< TPairOfNodes >::iterator linkIt[] = { linkList[0].begin(), linkList[1].begin() } ;
-  for ( ; linkIt[0] != linkList[0].end(); linkIt[0]++, linkIt[1]++ )
-  {
-    TPairOfNodes link[] = { *linkIt[0], *linkIt[1] };
-    long linkID = aLinkID_Gen.GetLinkID( link[0].first, link[0].second );
-    if ( linkIdSet.find( linkID ) == linkIdSet.end() )
-      continue;
-
-    // by links, find faces in the face sets,
-    // and find indices of link nodes in the found faces;
-    // in a face set, there is only one or no face sharing a link
-    // ---------------------------------------------------------------
-
-    const SMDS_MeshElement* face[] = { 0, 0 };
-    const SMDS_MeshNode* faceNodes[ 2 ][ 5 ];
-    const SMDS_MeshNode* notLinkNodes[ 2 ][ 2 ] = {{ 0, 0 },{ 0, 0 }} ;
-    int iLinkNode[2][2];
-    for ( iSide = 0; iSide < 2; iSide++ ) { // loop on 2 sides
-      const SMDS_MeshNode* n1 = link[iSide].first;
-      const SMDS_MeshNode* n2 = link[iSide].second;
-      set<const SMDS_MeshElement*> * faceSet = faceSetPtr[ iSide ];
-      set< const SMDS_MeshElement* > fMap;
-      for ( int i = 0; i < 2; i++ ) { // loop on 2 nodes of a link
-        const SMDS_MeshNode* n = i ? n1 : n2; // a node of a link
-        SMDS_ElemIteratorPtr fIt = n->facesIterator();
-        while ( fIt->more() ) { // loop on faces sharing a node
-          const SMDS_MeshElement* f = fIt->next();
-          if (faceSet->find( f ) != faceSet->end() && // f is in face set
-              ! fMap.insert( f ).second ) // f encounters twice
-          {
-            if ( face[ iSide ] ) {
-              MESSAGE( "2 faces per link " );
-              aResult = iSide ? SEW_BAD_SIDE2_NODES : SEW_BAD_SIDE1_NODES;
-              break;
-            }
-            face[ iSide ] = f;
-            faceSet->erase( f );
-            // get face nodes and find ones of a link
-            iNode = 0;
-            SMDS_ElemIteratorPtr nIt = f->nodesIterator();
-            while ( nIt->more() ) {
-              const SMDS_MeshNode* n =
-                static_cast<const SMDS_MeshNode*>( nIt->next() );
-              if ( n == n1 )
-                iLinkNode[ iSide ][ 0 ] = iNode;
-              else if ( n == n2 )
-                iLinkNode[ iSide ][ 1 ] = iNode;
-              else if ( notLinkNodes[ iSide ][ 0 ] )
-                notLinkNodes[ iSide ][ 1 ] = n;
-              else
-                notLinkNodes[ iSide ][ 0 ] = n;
-              faceNodes[ iSide ][ iNode++ ] = n;
-            }
-            faceNodes[ iSide ][ iNode ] = faceNodes[ iSide ][ 0 ];
-          }
-        }
-      }
-    }
-    // check similarity of elements of the sides
-    if (aResult == SEW_OK && ( face[0] && !face[1] ) || ( !face[0] && face[1] )) {
-      MESSAGE("Correspondent face not found on side " << ( face[0] ? 1 : 0 ));
-      if ( nReplaceMap.size() == 2 ) // faces on input nodes not found
-        aResult = ( face[0] ? SEW_BAD_SIDE2_NODES : SEW_BAD_SIDE1_NODES );
-      else
-        aResult = SEW_TOPO_DIFF_SETS_OF_ELEMENTS;
-      break; // do not return because it s necessary to remove tmp faces
-    }
-
-    // set nodes to merge
-    // -------------------
-
-    if ( face[0] && face[1] )
-    {
-      int nbNodes = face[0]->NbNodes();
-      if ( nbNodes != face[1]->NbNodes() ) {
-        MESSAGE("Diff nb of face nodes");
-        aResult = SEW_TOPO_DIFF_SETS_OF_ELEMENTS;
-        break; // do not return because it s necessary to remove tmp faces
-      }
-      bool reverse[] = { false, false }; // order of notLinkNodes of quadrangle
-      if ( nbNodes == 3 )
-        nReplaceMap.insert( TNodeNodeMap::value_type
-                           ( notLinkNodes[0][0], notLinkNodes[1][0] ));
-      else {
-        for ( iSide = 0; iSide < 2; iSide++ ) { // loop on 2 sides
-          // analyse link orientation in faces
-          int i1 = iLinkNode[ iSide ][ 0 ];
-          int i2 = iLinkNode[ iSide ][ 1 ];
-          reverse[ iSide ] = Abs( i1 - i2 ) == 1 ? i1 > i2 : i2 > i1;
-          // if notLinkNodes are the first and the last ones, then
-          // their order does not correspond to the link orientation
-          if (( i1 == 1 && i2 == 2 ) ||
-              ( i1 == 2 && i2 == 1 ))
-            reverse[ iSide ] = !reverse[ iSide ];
-        }
-        if ( reverse[0] == reverse[1] ) {
-          nReplaceMap.insert( TNodeNodeMap::value_type
-                             ( notLinkNodes[0][0], notLinkNodes[1][0] ));
-          nReplaceMap.insert( TNodeNodeMap::value_type
-                             ( notLinkNodes[0][1], notLinkNodes[1][1] ));
-        }
-        else {
-          nReplaceMap.insert( TNodeNodeMap::value_type
-                             ( notLinkNodes[0][0], notLinkNodes[1][1] ));
-          nReplaceMap.insert( TNodeNodeMap::value_type
-                             ( notLinkNodes[0][1], notLinkNodes[1][0] ));
-        }
-      }
-
-      // add other links of the faces to linkList
-      // -----------------------------------------
-
-      const SMDS_MeshNode** nodes = faceNodes[ 0 ];
-      for ( iNode = 0; iNode < nbNodes; iNode++ )
-      {
-        linkID = aLinkID_Gen.GetLinkID( nodes[iNode], nodes[iNode+1] );
-        pair< set<long>::iterator, bool > iter_isnew = linkIdSet.insert( linkID );
-        if ( !iter_isnew.second ) { // already in a set: no need to process
-          linkIdSet.erase( iter_isnew.first );
-        }
-        else // new in set == encountered for the first time: add
-        {
-          const SMDS_MeshNode* n1 = nodes[ iNode ];
-          const SMDS_MeshNode* n2 = nodes[ iNode + 1];
-          linkList[0].push_back ( TPairOfNodes( n1, n2 ));
-          linkList[1].push_back ( TPairOfNodes( nReplaceMap[n1], nReplaceMap[n2] ));
-        }
-      }
-    } // 2 faces found
-  } // loop on link lists
-
-  if ( aResult == SEW_OK &&
-      ( linkIt[0] != linkList[0].end() ||
-       !faceSetPtr[0]->empty() || !faceSetPtr[1]->empty() )) {
-    MESSAGE( (linkIt[0] != linkList[0].end()) <<" "<< (faceSetPtr[0]->empty()) <<
-            " " << (faceSetPtr[1]->empty()));
-    aResult = SEW_TOPO_DIFF_SETS_OF_ELEMENTS;
-  }
-
-  // ====================================================================
-  // 3. Replace nodes in elements of the side 1 and remove replaced nodes
-  // ====================================================================
-
-  // delete temporary faces: they are in reverseElements of actual nodes
-  SMDS_FaceIteratorPtr tmpFaceIt = aTmpFacesMesh.facesIterator();
-  while ( tmpFaceIt->more() )
-    aTmpFacesMesh.RemoveElement( tmpFaceIt->next() );
-
-  if ( aResult != SEW_OK)
-    return aResult;
-
-  list< int > nodeIDsToRemove/*, elemIDsToRemove*/;
-  // loop on nodes replacement map
-  TNodeNodeMap::iterator nReplaceMapIt = nReplaceMap.begin(), nnIt;
-  for ( ; nReplaceMapIt != nReplaceMap.end(); nReplaceMapIt++ )
-    if ( (*nReplaceMapIt).first != (*nReplaceMapIt).second )
-    {
-      const SMDS_MeshNode* nToRemove = (*nReplaceMapIt).first;
-      nodeIDsToRemove.push_back( nToRemove->GetID() );
-      // loop on elements sharing nToRemove
-      SMDS_ElemIteratorPtr invElemIt = nToRemove->GetInverseElementIterator();
-      while ( invElemIt->more() ) {
-        const SMDS_MeshElement* e = invElemIt->next();
-        // get a new suite of nodes: make replacement
-        int nbReplaced = 0, i = 0, nbNodes = e->NbNodes();
-        const SMDS_MeshNode* nodes[ 8 ];
-        SMDS_ElemIteratorPtr nIt = e->nodesIterator();
-        while ( nIt->more() ) {
-          const SMDS_MeshNode* n =
-            static_cast<const SMDS_MeshNode*>( nIt->next() );
-          nnIt = nReplaceMap.find( n );
-          if ( nnIt != nReplaceMap.end() ) {
-            nbReplaced++;
-            n = (*nnIt).second;
-          }
-          nodes[ i++ ] = n;
-        }
-        //       if ( nbReplaced == nbNodes && e->GetType() == SMDSAbs_Face )
-        //         elemIDsToRemove.push_back( e->GetID() );
-        //       else
-        if ( nbReplaced )
-          aMesh->ChangeElementNodes( e, nodes, nbNodes );
-      }
-  }
-
-  Remove( nodeIDsToRemove, true );
-
-  return aResult;
-}
diff --git a/src/SMESH/SMESH_MeshEditor.hxx b/src/SMESH/SMESH_MeshEditor.hxx
deleted file mode 100644 (file)
index 0dfd8c0..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-// File      : SMESH_MeshEditor.hxx
-// Created   : Mon Apr 12 14:56:19 2004
-// Author    : Edward AGAPOV (eap)
-// Module    : SMESH
-
-
-#ifndef SMESH_MeshEditor_HeaderFile
-#define SMESH_MeshEditor_HeaderFile
-
-#include "SMESH_Mesh.hxx"
-#include "SMESH_Controls.hxx"
-
-#include <list>
-#include <map>
-
-class SMDS_MeshElement;
-class SMDS_MeshFace;
-class SMDS_MeshNode;
-class gp_Ax1;
-class gp_Vec;
-class gp_Pnt;
-
-class SMESH_MeshEditor {
- public:
-
-  SMESH_MeshEditor( SMESH_Mesh* theMesh );
-
-  bool Remove (const std::list< int >& theElemIDs, const bool isNodes);
-  // Remove a node or an element.
-  // Modify a compute state of sub-meshes which become empty
-
-  bool InverseDiag (const SMDS_MeshElement * theTria1,
-                    const SMDS_MeshElement * theTria2 );
-  // Replace two neighbour triangles with ones built on the same 4 nodes
-  // but having other common link.
-  // Return False if args are improper
-
-  bool InverseDiag (const SMDS_MeshNode * theNode1,
-                    const SMDS_MeshNode * theNode2 );
-  // Replace two neighbour triangles sharing theNode1-theNode2 link
-  // with ones built on the same 4 nodes but having other common link.
-  // Return false if proper faces not found
-
-  bool DeleteDiag (const SMDS_MeshNode * theNode1,
-                   const SMDS_MeshNode * theNode2 );
-  // Replace two neighbour triangles sharing theNode1-theNode2 link
-  // with a quadrangle built on the same 4 nodes.
-  // Return false if proper faces not found
-
-  bool Reorient (const SMDS_MeshElement * theElement);
-  // Reverse theElement orientation
-
-
-  /*!
-   * \brief Fuse neighbour triangles into quadrangles.
-   * \param theElems     - The triangles to be fused.
-   * \param theCriterion - Is used to choose a neighbour to fuse with.
-   * \param theMaxAngle  - Is a max angle between element normals at which fusion
-   *                       is still performed; theMaxAngle is mesured in radians.
-   * \retval bool - Success or not.
-   */
-  bool TriToQuad (std::set<const SMDS_MeshElement*> &  theElems,
-                  SMESH::Controls::NumericalFunctorPtr theCriterion,
-                  const double                         theMaxAngle);
-
-  /*!
-   * \brief Split quadrangles into triangles.
-   * \param theElems     - The faces to be splitted.
-   * \param theCriterion - Is used to choose a diagonal for splitting.
-   * \retval bool - Success or not.
-   */
-  bool QuadToTri (std::set<const SMDS_MeshElement*> &  theElems,
-                  SMESH::Controls::NumericalFunctorPtr theCriterion);
-
-  /*!
-   * \brief Split quadrangles into triangles.
-   * \param theElems  - The faces to be splitted.
-   * \param the13Diag - Is used to choose a diagonal for splitting.
-   * \retval bool - Success or not.
-   */
-  bool QuadToTri (std::set<const SMDS_MeshElement*> & theElems,
-                  const bool                          the13Diag);
-
-  /*!
-   * \brief Find better diagonal for splitting.
-   * \param theQuad      - The face to find better splitting of.
-   * \param theCriterion - Is used to choose a diagonal for splitting.
-   * \retval int - 1 for 1-3 diagonal, 2 for 2-4, -1 - for errors.
-   */
-  int BestSplit (const SMDS_MeshElement*              theQuad,
-                 SMESH::Controls::NumericalFunctorPtr theCriterion);
-
-
-  enum SmoothMethod { LAPLACIAN = 0, CENTROIDAL };
-
-  void Smooth (std::set<const SMDS_MeshElement*> & theElements,
-               std::set<const SMDS_MeshNode*> &    theFixedNodes,
-               const SmoothMethod                  theSmoothMethod,
-               const int                           theNbIterations,
-               double                              theTgtAspectRatio = 1.0,
-               const bool                          the2D = true);
-  // Smooth theElements using theSmoothMethod during theNbIterations
-  // or until a worst element has aspect ratio <= theTgtAspectRatio.
-  // Aspect Ratio varies in range [1.0, inf].
-  // If theElements is empty, the whole mesh is smoothed.
-  // theFixedNodes contains additionally fixed nodes. Nodes built
-  // on edges and boundary nodes are always fixed.
-  // If the2D, smoothing is performed using UV parameters of nodes
-  // on geometrical faces
-
-
-  void RotationSweep (std::set<const SMDS_MeshElement*> & theElements,
-                      const gp_Ax1&                       theAxis,
-                      const double                        theAngle,
-                      const int                           theNbSteps,
-                      const double                        theToler);
-  // Generate new elements by rotation of theElements around theAxis
-  // by theAngle by theNbSteps
-
-  void ExtrusionSweep (std::set<const SMDS_MeshElement*> & theElements,
-                       const gp_Vec&                       theStep,
-                       const int                           theNbSteps);
-  // Generate new elements by extrusion of theElements 
-  // by theStep by theNbSteps
-
-  enum Extrusion_Error {
-    EXTR_OK,
-    EXTR_NO_ELEMENTS, 
-    EXTR_PATH_NOT_EDGE,
-    EXTR_BAD_PATH_SHAPE,
-    EXTR_BAD_STARTING_NODE,
-    EXTR_BAD_ANGLES_NUMBER,
-    EXTR_CANT_GET_TANGENT
-    };
-  
-  Extrusion_Error ExtrusionAlongTrack (std::set<const SMDS_MeshElement*> & theElements,
-                                       SMESH_subMesh*                      theTrackPattern,
-                                       const SMDS_MeshNode*                theNodeStart,
-                                       const bool                          theHasAngles,
-                                       std::list<double>&                  theAngles,
-                                       const bool                          theHasRefPoint,
-                                       const gp_Pnt&                       theRefPoint);
-  // Generate new elements by extrusion of theElements along path given by theTrackPattern,
-  // theHasAngles are the rotation angles, base point can be given by theRefPoint
-
-  void Transform (std::set<const SMDS_MeshElement*> & theElements,
-                  const gp_Trsf&                      theTrsf,
-                  const bool                          theCopy);
-  // Move or copy theElements applying theTrsf to their nodes
-
-  typedef std::list< std::list< const SMDS_MeshNode* > > TListOfListOfNodes;
-
-  void FindCoincidentNodes (std::set<const SMDS_MeshNode*> & theNodes,
-                            const double                     theTolerance,
-                            TListOfListOfNodes &             theGroupsOfNodes);
-  // Return list of group of nodes close to each other within theTolerance.
-  // Search among theNodes or in the whole mesh if theNodes is empty.
-
-  int SimplifyFace (const vector<const SMDS_MeshNode *> faceNodes,
-                    vector<const SMDS_MeshNode *>&      poly_nodes,
-                    vector<int>&                        quantities) const;
-  // Split face, defined by <faceNodes>, into several faces by repeating nodes.
-  // Is used by MergeNodes()
-
-  void MergeNodes (TListOfListOfNodes & theNodeGroups);
-  // In each group, the cdr of nodes are substituted by the first one
-  // in all elements.
-
-  void MergeEqualElements();
-  // Remove all but one of elements built on the same nodes.
-  // Return nb of successfully merged groups.
-
-  static bool CheckFreeBorderNodes(const SMDS_MeshNode* theNode1,
-                                   const SMDS_MeshNode* theNode2,
-                                   const SMDS_MeshNode* theNode3 = 0);
-  // Return true if the three nodes are on a free border
-
-  enum Sew_Error {
-    SEW_OK,
-    // for SewFreeBorder()
-    SEW_BORDER1_NOT_FOUND,
-    SEW_BORDER2_NOT_FOUND,
-    SEW_BOTH_BORDERS_NOT_FOUND,
-    SEW_BAD_SIDE_NODES,
-    SEW_VOLUMES_TO_SPLIT,
-    // for SewSideElements()
-    SEW_DIFF_NB_OF_ELEMENTS,
-    SEW_TOPO_DIFF_SETS_OF_ELEMENTS,
-    SEW_BAD_SIDE1_NODES,
-    SEW_BAD_SIDE2_NODES
-    };
-    
-
-  Sew_Error SewFreeBorder (const SMDS_MeshNode* theBorderFirstNode,
-                           const SMDS_MeshNode* theBorderSecondNode,
-                           const SMDS_MeshNode* theBorderLastNode,
-                           const SMDS_MeshNode* theSide2FirstNode,
-                           const SMDS_MeshNode* theSide2SecondNode,
-                           const SMDS_MeshNode* theSide2ThirdNode = 0,
-                           const bool           theSide2IsFreeBorder = true,
-                           const bool           toCreatePolygons = false,
-                           const bool           toCreatePolyedrs = false);
-  // Sew the free border to the side2 by replacing nodes in
-  // elements on the free border with nodes of the elements
-  // of the side 2. If nb of links in the free border and
-  // between theSide2FirstNode and theSide2LastNode are different,
-  // additional nodes are inserted on a link provided that no
-  // volume elements share the splitted link.
-  // The side 2 is a free border if theSide2IsFreeBorder == true.
-  // Sewing is peformed between the given first, second and last
-  // nodes on the sides.
-  // theBorderFirstNode is merged with theSide2FirstNode.
-  // if (!theSide2IsFreeBorder) then theSide2SecondNode gives
-  // the last node on the side 2, which will be merged with
-  // theBorderLastNode.
-  // if (theSide2IsFreeBorder) then theSide2SecondNode will
-  // be merged with theBorderSecondNode.
-  // if (theSide2IsFreeBorder && theSide2ThirdNode == 0) then
-  // the 2 free borders are sewn link by link and no additional
-  // nodes are inserted.
-  // Return false, if sewing failed.
-
-  Sew_Error SewSideElements (std::set<const SMDS_MeshElement*>& theSide1,
-                             std::set<const SMDS_MeshElement*>& theSide2,
-                             const SMDS_MeshNode*               theFirstNode1ToMerge,
-                             const SMDS_MeshNode*               theFirstNode2ToMerge,
-                             const SMDS_MeshNode*               theSecondNode1ToMerge,
-                             const SMDS_MeshNode*               theSecondNode2ToMerge);
-  // Sew two sides of a mesh. Nodes belonging to theSide1 are
-  // merged with nodes of elements of theSide2.
-  // Number of elements in theSide1 and in theSide2 must be
-  // equal and they should have similar node connectivity.
-  // The nodes to merge should belong to side s borders and
-  // the first node should be linked to the second.
-
-  void InsertNodesIntoLink(const SMDS_MeshElement*          theFace,
-                           const SMDS_MeshNode*             theBetweenNode1,
-                           const SMDS_MeshNode*             theBetweenNode2,
-                           std::list<const SMDS_MeshNode*>& theNodesToInsert,
-                           const bool                       toCreatePoly = false);
-  // insert theNodesToInsert into theFace between theBetweenNode1 and theBetweenNode2.
-  // If toCreatePoly is true, replace theFace by polygon, else split theFace.
-
-  void UpdateVolumes (const SMDS_MeshNode*             theBetweenNode1,
-                      const SMDS_MeshNode*             theBetweenNode2,
-                      std::list<const SMDS_MeshNode*>& theNodesToInsert);
-  // insert theNodesToInsert into all volumes, containing link
-  // theBetweenNode1 - theBetweenNode2, between theBetweenNode1 and theBetweenNode2.
-
-//  static int SortQuadNodes (const SMDS_Mesh * theMesh,
-//                            int               theNodeIds[] );
-//  // Set 4 nodes of a quadrangle face in a good order.
-//  // Swap 1<->2 or 2<->3 nodes and correspondingly return
-//  // 1 or 2 else 0.
-//
-//  static bool SortHexaNodes (const SMDS_Mesh * theMesh,
-//                             int               theNodeIds[] );
-//  // Set 8 nodes of a hexahedron in a good order.
-//  // Return success status
-
-  static void AddToSameGroups (const SMDS_MeshElement* elemToAdd,
-                               const SMDS_MeshElement* elemInGroups,
-                               SMESHDS_Mesh *          aMesh);
-  // Add elemToAdd to the groups the elemInGroups belongs to
-
-  static const SMDS_MeshElement*
-    FindFaceInSet(const SMDS_MeshNode*                     n1,
-                  const SMDS_MeshNode*                     n2,
-                  const std::set<const SMDS_MeshElement*>& elemSet,
-                  const std::set<const SMDS_MeshElement*>& avoidSet);
-  // Return a face having linked nodes n1 and n2 and which is
-  // - not in avoidSet,
-  // - in elemSet provided that !elemSet.empty()
-
-  int FindShape (const SMDS_MeshElement * theElem);
-  // Return an index of the shape theElem is on
-  // or zero if a shape not found
-
-
-  SMESH_Mesh * GetMesh() { return myMesh; }
-
-  SMESHDS_Mesh * GetMeshDS() { return myMesh->GetMeshDS(); }
-
-
- private:
-
-  SMESH_Mesh * myMesh;
-
-};
-
-#endif
diff --git a/src/SMESH/SMESH_Pattern.cxx b/src/SMESH/SMESH_Pattern.cxx
deleted file mode 100644 (file)
index fb9b5af..0000000
+++ /dev/null
@@ -1,4344 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-// File      : SMESH_Pattern.hxx
-// Created   : Mon Aug  2 10:30:00 2004
-// Author    : Edward AGAPOV (eap)
-
-#include "SMESH_Pattern.hxx"
-
-#include <BRepTools.hxx>
-#include <BRepTools_WireExplorer.hxx>
-#include <BRep_Tool.hxx>
-#include <Bnd_Box.hxx>
-#include <Bnd_Box2d.hxx>
-#include <ElSLib.hxx>
-#include <Extrema_GenExtPS.hxx>
-#include <Extrema_POnSurf.hxx>
-#include <Geom2d_Curve.hxx>
-#include <GeomAdaptor_Surface.hxx>
-#include <Geom_Curve.hxx>
-#include <Geom_Surface.hxx>
-#include <IntAna2d_AnaIntersection.hxx>
-#include <TopAbs_ShapeEnum.hxx>
-#include <TopExp.hxx>
-#include <TopLoc_Location.hxx>
-#include <TopoDS.hxx>
-#include <TopoDS_Edge.hxx>
-#include <TopoDS_Face.hxx>
-#include <TopoDS_Iterator.hxx>
-#include <TopoDS_Shell.hxx>
-#include <TopoDS_Vertex.hxx>
-#include <TopoDS_Wire.hxx>
-#include <gp_Ax2.hxx>
-#include <gp_Lin2d.hxx>
-#include <gp_Pnt2d.hxx>
-#include <gp_Trsf.hxx>
-#include <gp_XY.hxx>
-#include <gp_XYZ.hxx>
-
-#include "SMDS_EdgePosition.hxx"
-#include "SMDS_FacePosition.hxx"
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshFace.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_VolumeTool.hxx"
-#include "SMESHDS_Group.hxx"
-#include "SMESHDS_Mesh.hxx"
-#include "SMESHDS_SubMesh.hxx"
-#include "SMESH_Block.hxx"
-#include "SMESH_Mesh.hxx"
-#include "SMESH_MeshEditor.hxx"
-#include "SMESH_subMesh.hxx"
-
-#include "utilities.h"
-
-using namespace std;
-
-typedef map< const SMDS_MeshElement*, int > TNodePointIDMap;
-
-//=======================================================================
-//function : SMESH_Pattern
-//purpose  : 
-//=======================================================================
-
-SMESH_Pattern::SMESH_Pattern ()
-{
-}
-//=======================================================================
-//function : getInt
-//purpose  : 
-//=======================================================================
-
-static inline int getInt( const char * theSring )
-{
-  if ( *theSring < '0' || *theSring > '9' )
-    return -1;
-
-  char *ptr;
-  int val = strtol( theSring, &ptr, 10 );
-  if ( ptr == theSring ||
-      // there must not be neither '.' nor ',' nor 'E' ...
-      (*ptr != ' ' && *ptr != '\n' && *ptr != '\0'))
-    return -1;
-
-  return val;
-}
-
-//=======================================================================
-//function : getDouble
-//purpose  : 
-//=======================================================================
-
-static inline double getDouble( const char * theSring )
-{
-  char *ptr;
-  return strtod( theSring, &ptr );
-}
-
-//=======================================================================
-//function : readLine
-//purpose  : Put token starting positions in theFields until '\n' or '\0'
-//           Return the number of the found tokens
-//=======================================================================
-
-static int readLine (list <const char*> & theFields,
-                     const char*        & theLineBeg,
-                     const bool           theClearFields )
-{
-  if ( theClearFields )
-    theFields.clear();
-
-  //  algo:
-  /*  loop                                                       */
-  /*    switch ( symbol ) {                                      */
-  /*    case white-space:                                        */
-  /*      look for a non-space symbol;                           */
-  /*    case string-end:                                         */
-  /*    case line-end:                                           */
-  /*      exit;                                                  */
-  /*    case comment beginning:                                  */
-  /*      skip all till a line-end;                              */
-  /*    case a number                                            */
-  /*      put its position in theFields, skip till a white-space;*/
-  /*    default:                                                 */
-  /*      abort;                                                 */
-  /*  till line-end                                              */
-
-  int nbRead = 0;
-  bool stopReading = false;
-  do {
-    bool goOn = true;
-    bool isNumber = false;
-    switch ( *theLineBeg )
-    {
-    case ' ':  // white space
-    case '\t': // tab
-    case 13:   // ^M
-      break;
-
-    case '\n': // a line ends
-      stopReading = ( nbRead > 0 );
-      break;
-
-    case '!':  // comment
-      do theLineBeg++;
-      while ( *theLineBeg != '\n' && *theLineBeg != '\0' );
-      goOn = false;
-      break;
-
-    case '\0': // file ends
-      return nbRead;
-
-    case '-': // real number
-    case '+':
-    case '.':
-      isNumber = true;
-    default: // data
-      isNumber = isNumber || ( *theLineBeg >= '0' && *theLineBeg <= '9' );
-      if ( isNumber ) {
-        theFields.push_back( theLineBeg );
-        nbRead++;
-        do theLineBeg++;
-        while (*theLineBeg != ' ' &&
-               *theLineBeg != '\n' &&
-               *theLineBeg != '\0');
-        goOn = false;
-      }
-      else
-        return 0; // incorrect file format
-    }
-
-    if ( goOn )
-      theLineBeg++;
-
-  } while ( !stopReading );
-
-  return nbRead;
-}
-
-//=======================================================================
-//function : Load
-//purpose  : Load a pattern from <theFile>
-//=======================================================================
-
-bool SMESH_Pattern::Load (const char* theFileContents)
-{
-  MESSAGE("Load( file ) ");
-
-  // file structure:
-
-  // ! This is a comment
-  // NB_POINTS               ! 1 integer - the number of points in the pattern.
-  //   X1 Y1 [Z1]            ! 2 or 3 reals - nodes coordinates within 2D or 3D domain:
-  //   X2 Y2 [Z2]            ! the pattern dimention is defined by the number of coordinates
-  //   ...
-  // [ ID1 ID2 ... IDn ]     ! Indices of key-points for a 2D pattern (only).
-  // ! elements description goes after all
-  // ID1 ID2 ... IDn         ! 2-4 or 4-8 integers - nodal connectivity of a 2D or 3D element.
-  // ...
-
-  Clear();
-
-  const char* lineBeg = theFileContents;
-  list <const char*> fields;
-  const bool clearFields = true;
-
-  // NB_POINTS               ! 1 integer - the number of points in the pattern.
-
-  if ( readLine( fields, lineBeg, clearFields ) != 1 ) {
-    MESSAGE("Error reading NB_POINTS");
-    return setErrorCode( ERR_READ_NB_POINTS );
-  }
-  int nbPoints = getInt( fields.front() );
-
-  //   X1 Y1 [Z1]            ! 2 or 3 reals - nodes coordinates within 2D or 3D domain:
-
-  // read the first point coordinates to define pattern dimention
-  int dim = readLine( fields, lineBeg, clearFields );
-  if ( dim == 2 )
-    myIs2D = true;
-  else if ( dim == 3 )
-    myIs2D = false;
-  else {
-    MESSAGE("Error reading points: wrong nb of coordinates");
-    return setErrorCode( ERR_READ_POINT_COORDS );
-  }
-  if ( nbPoints <= dim ) {
-    MESSAGE(" Too few points ");
-    return setErrorCode( ERR_READ_TOO_FEW_POINTS );
-  }
-    
-  // read the rest points
-  int iPoint;
-  for ( iPoint = 1; iPoint < nbPoints; iPoint++ )
-    if ( readLine( fields, lineBeg, !clearFields ) != dim ) {
-      MESSAGE("Error reading  points : wrong nb of coordinates ");
-      return setErrorCode( ERR_READ_POINT_COORDS );
-    }
-  // store point coordinates
-  myPoints.resize( nbPoints );
-  list <const char*>::iterator fIt = fields.begin();
-  for ( iPoint = 0; iPoint < nbPoints; iPoint++ )
-  {
-    TPoint & p = myPoints[ iPoint ];
-    for ( int iCoord = 1; iCoord <= dim; iCoord++, fIt++ )
-    {
-      double coord = getDouble( *fIt );
-      if ( !myIs2D && ( coord < 0.0 || coord > 1.0 )) {
-        MESSAGE("Error reading 3D points, value should be in [0,1]: " << coord);
-        Clear();
-        return setErrorCode( ERR_READ_3D_COORD );
-      }
-      p.myInitXYZ.SetCoord( iCoord, coord );
-      if ( myIs2D )
-        p.myInitUV.SetCoord( iCoord, coord );
-    }
-  }
-
-  // [ ID1 ID2 ... IDn ]     ! Indices of key-points for a 2D pattern (only).
-  if ( myIs2D )
-  {
-    if ( readLine( fields, lineBeg, clearFields ) == 0 ) {
-      MESSAGE("Error: missing key-points");
-      Clear();
-      return setErrorCode( ERR_READ_NO_KEYPOINT );
-    }
-    set<int> idSet;
-    for ( fIt = fields.begin(); fIt != fields.end(); fIt++ )
-    {
-      int pointIndex = getInt( *fIt );
-      if ( pointIndex >= nbPoints || pointIndex < 0 ) {
-        MESSAGE("Error: invalid point index " << pointIndex );
-        Clear();
-        return setErrorCode( ERR_READ_BAD_INDEX );
-      }
-      if ( idSet.insert( pointIndex ).second ) // unique?
-        myKeyPointIDs.push_back( pointIndex );
-    }
-  }
-
-  // ID1 ID2 ... IDn         ! 2-4 or 4-8 integers - nodal connectivity of a 2D or 3D element.
-
-  while ( readLine( fields, lineBeg, clearFields ))
-  {
-    myElemPointIDs.push_back( TElemDef() );
-    TElemDef& elemPoints = myElemPointIDs.back();
-    for ( fIt = fields.begin(); fIt != fields.end(); fIt++ )
-    {
-      int pointIndex = getInt( *fIt );
-      if ( pointIndex >= nbPoints || pointIndex < 0 ) {
-        MESSAGE("Error: invalid point index " << pointIndex );
-        Clear();
-        return setErrorCode( ERR_READ_BAD_INDEX );
-      }
-      elemPoints.push_back( pointIndex );
-    }
-    // check the nb of nodes in element
-    bool Ok = true;
-    switch ( elemPoints.size() ) {
-    case 3: if ( !myIs2D ) Ok = false; break;
-    case 4: break;
-    case 5:
-    case 6:
-    case 8: if ( myIs2D ) Ok = false; break;
-    default: Ok = false;
-    }
-    if ( !Ok ) {
-      MESSAGE("Error: wrong nb of nodes in element " << elemPoints.size() );
-      Clear();
-      return setErrorCode( ERR_READ_ELEM_POINTS );
-    }
-  }
-  if ( myElemPointIDs.empty() ) {
-    MESSAGE("Error: no elements");
-    Clear();
-    return setErrorCode( ERR_READ_NO_ELEMS );
-  }
-
-  findBoundaryPoints(); // sort key-points
-
-  return setErrorCode( ERR_OK );
-}
-
-//=======================================================================
-//function : Save
-//purpose  : Save the loaded pattern into the file <theFileName>
-//=======================================================================
-
-bool SMESH_Pattern::Save (ostream& theFile)
-{
-  MESSAGE(" ::Save(file) " );
-  if ( !IsLoaded() ) {
-    MESSAGE(" Pattern not loaded ");
-    return setErrorCode( ERR_SAVE_NOT_LOADED );
-  }
-
-  theFile << "!!! SALOME Mesh Pattern file" << endl;
-  theFile << "!!!" << endl;
-  theFile << "!!! Nb of points:" << endl;
-  theFile << myPoints.size() << endl;
-
-  // point coordinates
-  const int width = 8;
-//  theFile.width( 8 );
-//  theFile.setf(ios::fixed);// use 123.45 floating notation
-//  theFile.setf(ios::right);
-//  theFile.flags( theFile.flags() & ~ios::showpoint); // do not show trailing zeros
-//   theFile.setf(ios::showpoint); // do not show trailing zeros
-  vector< TPoint >::const_iterator pVecIt = myPoints.begin();
-  for ( int i = 0; pVecIt != myPoints.end(); pVecIt++, i++ ) {
-    const gp_XYZ & xyz = (*pVecIt).myInitXYZ;
-    theFile << " " << setw( width ) << xyz.X() << " " << setw( width ) << xyz.Y();
-    if ( !myIs2D ) theFile  << " " << setw( width ) << xyz.Z();
-    theFile  << "  !- " << i << endl; // point id to ease reading by a human being
-  }
-  // key-points
-  if ( myIs2D ) {
-    theFile << "!!! Indices of " << myKeyPointIDs.size() << " key-points:" << endl;
-    list< int >::const_iterator kpIt = myKeyPointIDs.begin();
-    for ( ; kpIt != myKeyPointIDs.end(); kpIt++ )
-      theFile << " " << *kpIt;
-    if ( !myKeyPointIDs.empty() )
-      theFile << endl;
-  }
-  // elements
-  theFile << "!!! Indices of points of " << myElemPointIDs.size() << " elements:" << endl;
-  list<TElemDef >::const_iterator epIt = myElemPointIDs.begin();
-  for ( ; epIt != myElemPointIDs.end(); epIt++ )
-  {
-    const TElemDef & elemPoints = *epIt;
-    TElemDef::const_iterator iIt = elemPoints.begin();
-    for ( ; iIt != elemPoints.end(); iIt++ )
-      theFile << " " << *iIt;
-    theFile << endl;
-  }
-
-  theFile << endl;
-  
-  return setErrorCode( ERR_OK );
-}
-
-//=======================================================================
-//function : sortBySize
-//purpose  : sort theListOfList by size
-//=======================================================================
-
-template<typename T> struct TSizeCmp {
-  bool operator ()( const list < T > & l1, const list < T > & l2 )
-    const { return l1.size() < l2.size(); }
-};
-
-template<typename T> void sortBySize( list< list < T > > & theListOfList )
-{
-  if ( theListOfList.size() > 2 ) {
-    TSizeCmp< T > SizeCmp;
-    theListOfList.sort( SizeCmp );
-  }
-}
-
-//=======================================================================
-//function : getOrderedEdges
-//purpose  : return nb wires and a list of oredered edges
-//=======================================================================
-
-static int getOrderedEdges (const TopoDS_Face&   theFace,
-                            const TopoDS_Vertex& theFirstVertex,
-                            list< TopoDS_Edge >& theEdges,
-                            list< int >  &       theNbVertexInWires)
-{
-  // put wires in a list, so that an outer wire comes first
-  list<TopoDS_Wire> aWireList;
-  TopoDS_Wire anOuterWire = BRepTools::OuterWire( theFace );
-  aWireList.push_back( anOuterWire );
-  for ( TopoDS_Iterator wIt (theFace); wIt.More(); wIt.Next() )
-    if ( !anOuterWire.IsSame( wIt.Value() ))
-      aWireList.push_back( TopoDS::Wire( wIt.Value() ));
-
-  // loop on edges of wires
-  theNbVertexInWires.clear();
-  list<TopoDS_Wire>::iterator wlIt = aWireList.begin();
-  for ( ; wlIt != aWireList.end(); wlIt++ )
-  {
-    int iE;
-    BRepTools_WireExplorer wExp( *wlIt, theFace );
-    for ( iE = 0; wExp.More(); wExp.Next(), iE++ )
-    {
-      TopoDS_Edge edge = wExp.Current();
-      edge = TopoDS::Edge( edge.Oriented( wExp.Orientation() ));
-      theEdges.push_back( edge );
-    }
-    theNbVertexInWires.push_back( iE );
-    iE = 0;
-    if ( wlIt == aWireList.begin() && theEdges.size() > 1 ) { // the outer wire
-      // orient closed edges
-      list< TopoDS_Edge >::iterator eIt, eIt2;
-      for ( eIt = theEdges.begin(); eIt != theEdges.end(); eIt++ )
-      {
-        TopoDS_Edge& edge = *eIt;
-        if ( TopExp::FirstVertex( edge ).IsSame( TopExp::LastVertex( edge ) ))
-        {
-          eIt2 = eIt;
-          bool isNext = ( eIt2 == theEdges.begin() );
-          TopoDS_Edge edge2 = isNext ? *(++eIt2) : *(--eIt2);
-          double f1,l1,f2,l2;
-          Handle(Geom2d_Curve) c1 = BRep_Tool::CurveOnSurface( edge, theFace, f1,l1 );
-          Handle(Geom2d_Curve) c2 = BRep_Tool::CurveOnSurface( edge2, theFace, f2,l2 );
-          gp_Pnt2d pf = c1->Value( edge.Orientation() == TopAbs_FORWARD ? f1 : l1 );
-          gp_Pnt2d pl = c1->Value( edge.Orientation() == TopAbs_FORWARD ? l1 : f1 );
-          bool isFirst = ( edge2.Orientation() == TopAbs_FORWARD ? isNext : !isNext );
-          gp_Pnt2d p2 = c2->Value( isFirst ? f2 : l2 );
-          isFirst = ( p2.SquareDistance( pf ) < p2.SquareDistance( pl ));
-          if ( isNext ? isFirst : !isFirst )
-            edge.Reverse();
-        }
-      }
-      // rotate theEdges until it begins from theFirstVertex
-      if ( ! theFirstVertex.IsNull() )
-        while ( !theFirstVertex.IsSame( TopExp::FirstVertex( theEdges.front(), true )))
-        {
-          theEdges.splice(theEdges.end(), theEdges,
-                          theEdges.begin(), ++ theEdges.begin());
-          if ( iE++ > theNbVertexInWires.back() ) 
-            break; // break infinite loop
-        }
-    }
-  }
-
-  return aWireList.size();
-}
-
-//=======================================================================
-//function : project
-//purpose  : 
-//=======================================================================
-
-static gp_XY project (const SMDS_MeshNode* theNode,
-                      Extrema_GenExtPS &   theProjectorPS)
-{
-  gp_Pnt P( theNode->X(), theNode->Y(), theNode->Z() );
-  theProjectorPS.Perform( P );
-  if ( !theProjectorPS.IsDone() ) {
-    MESSAGE( "SMESH_Pattern: point projection FAILED");
-    return gp_XY(0.,0.);
-  }
-  double u, v, minVal = DBL_MAX;
-  for ( int i = theProjectorPS.NbExt(); i > 0; i-- )
-    if ( theProjectorPS.Value( i ) < minVal ) {
-      minVal = theProjectorPS.Value( i );
-      theProjectorPS.Point( i ).Parameter( u, v );
-    }
-  return gp_XY( u, v );
-}
-
-//=======================================================================
-//function : isMeshBoundToShape
-//purpose  : return true if all 2d elements are bound to shape
-//=======================================================================
-
-static bool isMeshBoundToShape(SMESH_Mesh* theMesh)
-{
-  // check faces binding
-  SMESHDS_Mesh * aMeshDS = theMesh->GetMeshDS();
-  SMESHDS_SubMesh * aMainSubMesh = aMeshDS->MeshElements( aMeshDS->ShapeToMesh() );
-  if ( aMeshDS->NbFaces() != aMainSubMesh->NbElements() )
-    return false;
-
-  // check face nodes binding
-  SMDS_FaceIteratorPtr fIt = aMeshDS->facesIterator();
-  while ( fIt->more() )
-  {
-    SMDS_ElemIteratorPtr nIt = fIt->next()->nodesIterator();
-    while ( nIt->more() )
-    {
-      const SMDS_MeshNode* node = static_cast<const SMDS_MeshNode*>( nIt->next() );
-      SMDS_PositionPtr pos = node->GetPosition();
-      if ( !pos || !pos->GetShapeId() )
-        return false;
-    }
-  }
-  return true;
-}
-
-//=======================================================================
-//function : Load
-//purpose  : Create a pattern from the mesh built on <theFace>.
-//           <theProject>==true makes override nodes positions
-//           on <theFace> computed by mesher
-//=======================================================================
-
-bool SMESH_Pattern::Load (SMESH_Mesh*        theMesh,
-                          const TopoDS_Face& theFace,
-                          bool               theProject)
-{
-  MESSAGE(" ::Load(face) " );
-  Clear();
-  myIs2D = true;
-
-  SMESHDS_Mesh * aMeshDS = theMesh->GetMeshDS();
-  SMESHDS_SubMesh * fSubMesh = aMeshDS->MeshElements( theFace );
-
-  int nbNodes = ( !fSubMesh ? 0 : fSubMesh->NbNodes() );
-  int nbElems = ( !fSubMesh ? 0 : fSubMesh->NbElements() );
-  if ( nbElems == 0 && aMeshDS->NbFaces() == 0 )
-  {
-    MESSAGE( "No elements bound to the face");
-    return setErrorCode( ERR_LOAD_EMPTY_SUBMESH );
-  }
-
-  TopoDS_Face face = TopoDS::Face( theFace.Oriented( TopAbs_FORWARD ));
-
-  // check that face is not closed
-  TopoDS_Vertex bidon;
-  list<TopoDS_Edge> eList;
-  getOrderedEdges( face, bidon, eList, myNbKeyPntInBoundary );
-  list<TopoDS_Edge>::iterator elIt = eList.begin();
-  for ( ; elIt != eList.end() ; elIt++ )
-    if ( BRep_Tool::IsClosed( *elIt , face ))
-      return setErrorCode( ERR_LOADF_CLOSED_FACE );
-  
-
-  Extrema_GenExtPS projector;
-  GeomAdaptor_Surface aSurface( BRep_Tool::Surface( face ));
-  if ( theProject || nbElems == 0 )
-    projector.Initialize( aSurface, 20,20, 1e-5,1e-5 );
-
-  int iPoint = 0;
-  TNodePointIDMap nodePointIDMap;
-
-  if ( nbElems == 0 || (theProject &&
-                        theMesh->IsMainShape( face ) &&
-                        !isMeshBoundToShape( theMesh )))
-  {
-    MESSAGE("Project the whole mesh");
-    // ---------------------------------------------------------------
-    // The case where the whole mesh is projected to theFace
-    // ---------------------------------------------------------------
-
-    // put nodes of all faces in the nodePointIDMap and fill myElemPointIDs
-    SMDS_FaceIteratorPtr fIt = aMeshDS->facesIterator();
-    while ( fIt->more() )
-    {
-      myElemPointIDs.push_back( TElemDef() );
-      TElemDef& elemPoints = myElemPointIDs.back();
-      SMDS_ElemIteratorPtr nIt = fIt->next()->nodesIterator();
-      while ( nIt->more() )
-      {
-        const SMDS_MeshElement* node = nIt->next();
-        TNodePointIDMap::iterator nIdIt = nodePointIDMap.find( node );
-        if ( nIdIt == nodePointIDMap.end() )
-        {
-          elemPoints.push_back( iPoint );
-          nodePointIDMap.insert( make_pair( node, iPoint++ ));
-        }
-        else
-          elemPoints.push_back( (*nIdIt).second );
-      }
-    }
-    myPoints.resize( iPoint );
-
-    // project all nodes of 2d elements to theFace
-    TNodePointIDMap::iterator nIdIt = nodePointIDMap.begin();
-    for ( ; nIdIt != nodePointIDMap.end(); nIdIt++ )
-    {
-      const SMDS_MeshNode* node = 
-        static_cast<const SMDS_MeshNode*>( (*nIdIt).first );
-      TPoint * p = & myPoints[ (*nIdIt).second ];
-      p->myInitUV = project( node, projector );
-      p->myInitXYZ.SetCoord( p->myInitUV.X(), p->myInitUV.Y(), 0 );
-    }
-    // find key-points: the points most close to UV of vertices
-    TopExp_Explorer vExp( face, TopAbs_VERTEX );
-    set<int> foundIndices;
-    for ( ; vExp.More(); vExp.Next() ) {
-      const TopoDS_Vertex v = TopoDS::Vertex( vExp.Current() );
-      gp_Pnt2d uv = BRep_Tool::Parameters( v, face );
-      double minDist = DBL_MAX;
-      int index;
-      vector< TPoint >::const_iterator pVecIt = myPoints.begin();
-      for ( iPoint = 0; pVecIt != myPoints.end(); pVecIt++, iPoint++ ) {
-        double dist = uv.SquareDistance( (*pVecIt).myInitUV );
-        if ( dist < minDist ) {
-          minDist = dist;
-          index = iPoint;
-        }
-      }
-      if ( foundIndices.insert( index ).second ) // unique?
-        myKeyPointIDs.push_back( index );
-    }
-    myIsBoundaryPointsFound = false;
-
-  }
-  else
-  {
-    // ---------------------------------------------------------------------
-    // The case where a pattern is being made from the mesh built by mesher
-    // ---------------------------------------------------------------------
-
-    // Load shapes in the consequent order and count nb of points
-
-    // vertices
-    for ( elIt = eList.begin(); elIt != eList.end(); elIt++ ) {
-      myShapeIDMap.Add( TopExp::FirstVertex( *elIt, true ));
-      SMESHDS_SubMesh * eSubMesh = aMeshDS->MeshElements( *elIt );
-      if ( eSubMesh )
-        nbNodes += eSubMesh->NbNodes() + 1;
-    }
-    // edges
-    for ( elIt = eList.begin(); elIt != eList.end(); elIt++ )
-      myShapeIDMap.Add( *elIt );
-    // the face
-    myShapeIDMap.Add( face );
-
-    myPoints.resize( nbNodes );
-
-    // Load U of points on edges
-
-    for ( elIt = eList.begin(); elIt != eList.end(); elIt++ )
-    {
-      TopoDS_Edge & edge = *elIt;
-      list< TPoint* > & ePoints = getShapePoints( edge );
-      double f, l;
-      Handle(Geom2d_Curve) C2d;
-      if ( !theProject )
-        C2d = BRep_Tool::CurveOnSurface( edge, face, f, l );
-      bool isForward = ( edge.Orientation() == TopAbs_FORWARD );
-
-      // the forward key-point
-      TopoDS_Shape v = TopExp::FirstVertex( edge, true );
-      list< TPoint* > & vPoint = getShapePoints( v );
-      if ( vPoint.empty() )
-      {
-        SMESHDS_SubMesh * vSubMesh = aMeshDS->MeshElements( v );
-        if ( vSubMesh && vSubMesh->NbNodes() ) {
-          myKeyPointIDs.push_back( iPoint );
-          SMDS_NodeIteratorPtr nIt = vSubMesh->GetNodes();
-          const SMDS_MeshNode* node = nIt->next();
-          nodePointIDMap.insert( make_pair( node, iPoint ));
-
-          TPoint* keyPoint = &myPoints[ iPoint++ ];
-          vPoint.push_back( keyPoint );
-          if ( theProject )
-            keyPoint->myInitUV = project( node, projector );
-          else
-            keyPoint->myInitUV = C2d->Value( isForward ? f : l ).XY();
-          keyPoint->myInitXYZ.SetCoord (keyPoint->myInitUV.X(), keyPoint->myInitUV.Y(), 0);
-        }
-      }
-      if ( !vPoint.empty() )
-        ePoints.push_back( vPoint.front() );
-
-      // on-edge points
-      SMESHDS_SubMesh * eSubMesh = aMeshDS->MeshElements( edge );
-      if ( eSubMesh && eSubMesh->NbNodes() )
-      {
-        // loop on nodes of an edge: sort them by param on edge
-        typedef map < double, const SMDS_MeshNode* > TParamNodeMap;
-        TParamNodeMap paramNodeMap;
-        SMDS_NodeIteratorPtr nIt = eSubMesh->GetNodes();
-        while ( nIt->more() )
-        {
-          const SMDS_MeshNode* node = 
-            static_cast<const SMDS_MeshNode*>( nIt->next() );
-          const SMDS_EdgePosition* epos =
-            static_cast<const SMDS_EdgePosition*>(node->GetPosition().get());
-          double u = epos->GetUParameter();
-          paramNodeMap.insert( TParamNodeMap::value_type( u, node ));
-        }
-        // put U in [0,1] so that the first key-point has U==0
-        double du = l - f;
-        TParamNodeMap::iterator         unIt  = paramNodeMap.begin();
-        TParamNodeMap::reverse_iterator unRIt = paramNodeMap.rbegin();
-        while ( unIt != paramNodeMap.end() )
-        {
-          TPoint* p = & myPoints[ iPoint ];
-          ePoints.push_back( p );
-          const SMDS_MeshNode* node = isForward ? (*unIt).second : (*unRIt).second;
-          nodePointIDMap.insert ( make_pair( node, iPoint ));
-
-          if ( theProject )
-            p->myInitUV = project( node, projector );
-          else {
-            double u = isForward ? (*unIt).first : (*unRIt).first;
-            p->myInitU = isForward ? (( u - f ) / du ) : ( 1.0 - ( u - f ) / du );
-            p->myInitUV = C2d->Value( u ).XY();
-          }
-          p->myInitXYZ.SetCoord( p->myInitUV.X(), p->myInitUV.Y(), 0 );
-          unIt++; unRIt++;
-          iPoint++;
-        }
-      }
-      // the reverse key-point
-      v = TopExp::LastVertex( edge, true ).Reversed();
-      list< TPoint* > & vPoint2 = getShapePoints( v );
-      if ( vPoint2.empty() )
-      {
-        SMESHDS_SubMesh * vSubMesh = aMeshDS->MeshElements( v );
-        if ( vSubMesh && vSubMesh->NbNodes() ) {
-          myKeyPointIDs.push_back( iPoint );
-          SMDS_NodeIteratorPtr nIt = vSubMesh->GetNodes();
-          const SMDS_MeshNode* node = nIt->next();
-          nodePointIDMap.insert( make_pair( node, iPoint ));
-
-          TPoint* keyPoint = &myPoints[ iPoint++ ];
-          vPoint2.push_back( keyPoint );
-          if ( theProject )
-            keyPoint->myInitUV = project( node, projector );
-          else
-            keyPoint->myInitUV = C2d->Value( isForward ? l : f ).XY();
-          keyPoint->myInitXYZ.SetCoord( keyPoint->myInitUV.X(), keyPoint->myInitUV.Y(), 0 );
-        }
-      }
-      if ( !vPoint2.empty() )
-        ePoints.push_back( vPoint2.front() );
-
-      // compute U of edge-points
-      if ( theProject )
-      {
-        double totalDist = 0;
-        list< TPoint* >::iterator pIt = ePoints.begin();
-        TPoint* prevP = *pIt;
-        prevP->myInitU = totalDist;
-        for ( pIt++; pIt != ePoints.end(); pIt++ ) {
-          TPoint* p = *pIt;
-          totalDist += ( p->myInitUV - prevP->myInitUV ).Modulus();
-          p->myInitU = totalDist;
-          prevP = p;
-        }
-        if ( totalDist > DBL_MIN)
-          for ( pIt = ePoints.begin(); pIt != ePoints.end(); pIt++ ) {
-            TPoint* p = *pIt;
-            p->myInitU /= totalDist;
-          }
-      }
-    } // loop on edges of a wire
-
-    // Load in-face points and elements
-
-    if ( fSubMesh && fSubMesh->NbElements() )
-    {
-      list< TPoint* > & fPoints = getShapePoints( face );
-      SMDS_NodeIteratorPtr nIt = fSubMesh->GetNodes();
-      while ( nIt->more() )
-      {
-        const SMDS_MeshNode* node = 
-          static_cast<const SMDS_MeshNode*>( nIt->next() );
-        nodePointIDMap.insert( make_pair( node, iPoint ));
-        TPoint* p = &myPoints[ iPoint++ ];
-        fPoints.push_back( p );
-        if ( theProject )
-          p->myInitUV = project( node, projector );
-        else {
-          const SMDS_FacePosition* pos =
-            static_cast<const SMDS_FacePosition*>(node->GetPosition().get());
-          p->myInitUV.SetCoord( pos->GetUParameter(), pos->GetVParameter() );
-        }
-        p->myInitXYZ.SetCoord( p->myInitUV.X(), p->myInitUV.Y(), 0 );
-      }
-      // load elements
-      SMDS_ElemIteratorPtr elemIt = fSubMesh->GetElements();
-      while ( elemIt->more() ) {
-        SMDS_ElemIteratorPtr nIt = elemIt->next()->nodesIterator();
-        myElemPointIDs.push_back( TElemDef() );
-        TElemDef& elemPoints = myElemPointIDs.back();
-        while ( nIt->more() )
-          elemPoints.push_back( nodePointIDMap[ nIt->next() ]);
-      }
-    }
-
-    myIsBoundaryPointsFound = true;
-  }
-
-  // Assure that U range is proportional to V range
-
-  Bnd_Box2d bndBox;
-  vector< TPoint >::iterator pVecIt = myPoints.begin();
-  for ( ; pVecIt != myPoints.end(); pVecIt++ )
-    bndBox.Add( gp_Pnt2d( (*pVecIt).myInitUV ));
-  double minU, minV, maxU, maxV;
-  bndBox.Get( minU, minV, maxU, maxV );
-  double dU = maxU - minU, dV = maxV - minV;
-  if ( dU <= DBL_MIN || dV <= DBL_MIN ) {
-    Clear();
-    return setErrorCode( ERR_LOADF_NARROW_FACE );
-  }
-  double ratio = dU / dV, maxratio = 3, scale;
-  int iCoord = 0;
-  if ( ratio > maxratio ) {
-    scale = ratio / maxratio;
-    iCoord = 2;
-  }
-  else if ( ratio < 1./maxratio ) {
-    scale = maxratio / ratio;
-    iCoord = 1;
-  }
-  if ( iCoord ) {
-    SCRUTE( scale );
-    for ( pVecIt = myPoints.begin(); pVecIt != myPoints.end(); pVecIt++ ) {
-      TPoint & p = *pVecIt;
-      p.myInitUV.SetCoord( iCoord, p.myInitUV.Coord( iCoord ) * scale );
-      p.myInitXYZ.SetCoord( p.myInitUV.X(), p.myInitUV.Y(), 0 );
-    }
-  }
-  if ( myElemPointIDs.empty() ) {
-    MESSAGE( "No elements bound to the face");
-    return setErrorCode( ERR_LOAD_EMPTY_SUBMESH );
-  }
-
-  return setErrorCode( ERR_OK );
-}
-
-//=======================================================================
-//function : computeUVOnEdge
-//purpose  : compute coordinates of points on theEdge
-//=======================================================================
-
-void SMESH_Pattern::computeUVOnEdge (const TopoDS_Edge&      theEdge,
-                                     const list< TPoint* > & ePoints )
-{
-  bool isForward = ( theEdge.Orientation() == TopAbs_FORWARD );
-  double f, l;
-  Handle(Geom2d_Curve) C2d =
-    BRep_Tool::CurveOnSurface( theEdge, TopoDS::Face( myShape ), f, l );
-
-  ePoints.back()->myInitU = 1.0;
-  list< TPoint* >::const_iterator pIt = ePoints.begin();
-  for ( pIt++; pIt != ePoints.end(); pIt++ )
-  {
-    TPoint* point = *pIt;
-    // U
-    double du = ( isForward ? point->myInitU : 1 - point->myInitU );
-    point->myU = ( f * ( 1 - du ) + l * du );
-    // UV
-    point->myUV = C2d->Value( point->myU ).XY();
-  }
-}
-
-//=======================================================================
-//function : intersectIsolines
-//purpose  : 
-//=======================================================================
-
-static bool intersectIsolines(const gp_XY& uv11, const gp_XY& uv12, const double r1,
-                              const gp_XY& uv21, const gp_XY& uv22, const double r2,
-                              gp_XY& resUV,
-                              bool& isDeformed)
-{
-  gp_XY loc1 = uv11 * ( 1 - r1 ) + uv12 * r1;
-  gp_XY loc2 = uv21 * ( 1 - r2 ) + uv22 * r2;
-  resUV = 0.5 * ( loc1 + loc2 );
-  isDeformed = ( loc1 - loc2 ).SquareModulus() > 1e-8;
-//   double len1 = ( uv11 - uv12 ).Modulus();
-//   double len2 = ( uv21 - uv22 ).Modulus();
-//   resUV = loc1 * len2 / ( len1 + len2 ) + loc2 * len1 / ( len1 + len2 );
-//  return true;
-
-  
-//   gp_Lin2d line1( uv11, uv12 - uv11 );
-//   gp_Lin2d line2( uv21, uv22 - uv21 );
-//   double angle = Abs( line1.Angle( line2 ) );
-
-//     IntAna2d_AnaIntersection inter;
-//     inter.Perform( line1.Normal( loc1 ), line2.Normal( loc2 ) );
-//     if ( inter.IsDone() && inter.NbPoints() == 1 )
-//     {
-//       gp_Pnt2d interUV = inter.Point(1).Value();
-//       resUV += interUV.XY();
-//   inter.Perform( line1, line2 );
-//   interUV = inter.Point(1).Value();
-//   resUV += interUV.XY();
-  
-//   resUV /= 2.;
-//     }
-  return true;
-}
-
-//=======================================================================
-//function : compUVByIsoIntersection
-//purpose  : 
-//=======================================================================
-
-bool SMESH_Pattern::compUVByIsoIntersection (const list< list< TPoint* > >& theBndPoints,
-                                             const gp_XY&                   theInitUV,
-                                             gp_XY&                         theUV,
-                                             bool &                         theIsDeformed )
-{
-  // compute UV by intersection of 2 iso lines
-  //gp_Lin2d isoLine[2];
-  gp_XY uv1[2], uv2[2];
-  double ratio[2];
-  const double zero = DBL_MIN;
-  for ( int iIso = 0; iIso < 2; iIso++ )
-  {
-    // to build an iso line:
-    // find 2 pairs of consequent edge-points such that the range of their
-    // initial parameters encloses the in-face point initial parameter
-    gp_XY UV[2], initUV[2];
-    int nbUV = 0, iCoord = iIso + 1;
-    double initParam = theInitUV.Coord( iCoord );
-
-    list< list< TPoint* > >::const_iterator bndIt = theBndPoints.begin();
-    for ( ; bndIt != theBndPoints.end(); bndIt++ )
-    {
-      const list< TPoint* > & bndPoints = * bndIt;
-      TPoint* prevP = bndPoints.back(); // this is the first point
-      list< TPoint* >::const_iterator pIt = bndPoints.begin();
-      bool coincPrev = false; 
-      // loop on the edge-points
-      for ( ; pIt != bndPoints.end(); pIt++ )
-      {
-        double paramDiff     = initParam - (*pIt)->myInitUV.Coord( iCoord );
-        double prevParamDiff = initParam - prevP->myInitUV.Coord( iCoord );
-        double sumOfDiff = Abs(prevParamDiff) + Abs(paramDiff);
-        if (!coincPrev && // ignore if initParam coincides with prev point param
-            sumOfDiff > zero && // ignore if both points coincide with initParam
-            prevParamDiff * paramDiff <= zero )
-        {
-          // find UV in parametric space of theFace
-          double r = Abs(prevParamDiff) / sumOfDiff;
-          gp_XY uvInit = (*pIt)->myInitUV * r + prevP->myInitUV * ( 1 - r );
-          int i = nbUV++;
-          if ( i >= 2 ) {
-            // throw away uv most distant from <theInitUV>
-            gp_XY vec0 = initUV[0] - theInitUV;
-            gp_XY vec1 = initUV[1] - theInitUV;
-            gp_XY vec  = uvInit    - theInitUV;
-            bool isBetween = ( vec0 * vec1 < 0 ); // is theInitUV between initUV[0] and initUV[1]
-            double dist0 = vec0.SquareModulus();
-            double dist1 = vec1.SquareModulus();
-            double dist  = vec .SquareModulus();
-            if ( !isBetween || dist < dist0 || dist < dist1 ) {
-              i = ( dist0 < dist1 ? 1 : 0 );
-              if ( isBetween && vec.Dot( i ? vec1 : vec0 ) < 0 )
-                i = 3; // theInitUV must remain between
-            }
-          }
-          if ( i < 2 ) {
-            initUV[ i ] = uvInit;
-            UV[ i ]     = (*pIt)->myUV * r + prevP->myUV * ( 1 - r );
-          }
-          coincPrev = ( Abs(paramDiff) <= zero );
-        }
-        else
-          coincPrev = false;
-        prevP = *pIt;
-      }
-    }
-    if ( nbUV < 2 || (UV[0]-UV[1]).SquareModulus() <= DBL_MIN*DBL_MIN ) {
-      MESSAGE(" consequent edge-points not found, nb UV found: " << nbUV <<
-              ", for point: " << theInitUV.X() <<" " << theInitUV.Y() );
-      return setErrorCode( ERR_APPLF_BAD_TOPOLOGY );
-    }
-    // an iso line should be normal to UV[0] - UV[1] direction
-    // and be located at the same relative distance as from initial ends
-    //gp_Lin2d iso( UV[0], UV[0] - UV[1] );
-    double r =
-      (initUV[0]-theInitUV).Modulus() / (initUV[0]-initUV[1]).Modulus();
-    //gp_Pnt2d isoLoc = UV[0] * ( 1 - r ) + UV[1] * r;
-    //isoLine[ iIso ] = iso.Normal( isoLoc );
-    uv1[ iIso ] = UV[0];
-    uv2[ iIso ] = UV[1];
-    ratio[ iIso ] = r;
-  }
-  if ( !intersectIsolines( uv1[0], uv2[0], ratio[0],
-                          uv1[1], uv2[1], ratio[1], theUV, theIsDeformed )) {
-    MESSAGE(" Cant intersect isolines for a point "<<theInitUV.X()<<", "<<theInitUV.Y());
-    return setErrorCode( ERR_APPLF_BAD_TOPOLOGY );
-  }
-
-  return true;
-}
-
-
-// ==========================================================
-// structure representing a node of a grid of iso-poly-lines
-// ==========================================================
-
-struct TIsoNode {
-  bool   myIsMovable;
-  gp_XY  myInitUV;
-  gp_XY  myUV;
-  double myRatio[2];
-  gp_Dir2d  myDir[2]; // boundary tangent dir for boundary nodes, iso dir for internal ones
-  TIsoNode* myNext[4]; // order: (iDir=0,isForward=0), (1,0), (0,1), (1,1)
-  TIsoNode* myBndNodes[4];     // order: (iDir=0,i=0), (1,0), (0,1), (1,1)
-  TIsoNode(double initU, double initV):
-    myInitUV( initU, initV ), myUV( 1e100, 1e100 ), myIsMovable(true)
-  { myNext[0] = myNext[1] = myNext[2] = myNext[3] = 0; }
-  bool IsUVComputed() const
-  { return myUV.X() != 1e100; }
-  bool IsMovable() const
-  { return myIsMovable && myNext[0] && myNext[1] && myNext[2] && myNext[3]; }
-  void SetNotMovable()
-  { myIsMovable = false; }
-  void SetBoundaryNode(TIsoNode* node, int iDir, int i)
-  { myBndNodes[ iDir + i * 2 ] = node; }
-  TIsoNode* GetBoundaryNode(int iDir, int i)
-  { return myBndNodes[ iDir + i * 2 ]; }
-  void SetNext(TIsoNode* node, int iDir, int isForward)
-  { myNext[ iDir + isForward  * 2 ] = node; }
-  TIsoNode* GetNext(int iDir, int isForward)
-  { return myNext[ iDir + isForward * 2 ]; }
-};
-
-//=======================================================================
-//function : getNextNode
-//purpose  : 
-//=======================================================================
-
-static inline TIsoNode* getNextNode(const TIsoNode* node, int dir )
-{
-  TIsoNode* n = node->myNext[ dir ];
-  if ( n && !n->IsUVComputed()/* && node->IsMovable()*/ ) {
-    n = 0;//node->myBndNodes[ dir ];
-//     MESSAGE("getNextNode: use bnd for node "<<
-//             node->myInitUV.X()<<" "<<node->myInitUV.Y());
-  }
-  return n;
-}
-//=======================================================================
-//function : checkQuads
-//purpose  : check if newUV destortes quadrangles around node,
-//           and if ( crit == FIX_OLD ) fix newUV in this case
-//=======================================================================
-
-enum { CHECK_NEW_IN, CHECK_NEW_OK, FIX_OLD };
-
-static bool checkQuads (const TIsoNode* node,
-                        gp_XY&          newUV,
-                        const bool      reversed,
-                        const int       crit = FIX_OLD,
-                        double          fixSize = 0.)
-{
-  gp_XY oldUV = node->myUV, oldUVFixed[4], oldUVImpr[4];
-  int nbOldFix = 0, nbOldImpr = 0;
-  double newBadRate = 0, oldBadRate = 0;
-  bool newIsOk = true, newIsIn = true, oldIsIn = true, oldIsOk = true;
-  int i, dir1 = 0, dir2 = 3;
-  for ( ; dir1 < 4; dir1++, dir2++ )  // loop on 4 quadrangles around <node>
-  {
-    if ( dir2 > 3 ) dir2 = 0;
-    TIsoNode* n[3];
-    // walking counterclockwise around a quad,
-    // nodes are in the order: node, n[0], n[1], n[2]
-    n[0] = getNextNode( node, dir1 );
-    n[2] = getNextNode( node, dir2 );
-    if ( !n[0] || !n[2] ) continue;
-    n[1] = getNextNode( n[0], dir2 );
-    if ( !n[1] ) n[1] = getNextNode( n[2], dir1 );
-    bool isTriangle = ( !n[1] );
-    if ( reversed ) {
-      TIsoNode* tmp = n[0]; n[0] = n[2]; n[2] = tmp;
-    }
-//     if ( fixSize != 0 ) {
-// cout<<"NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<" UV: "<<node->myUV.X()<<" "<<node->myUV.Y()<<endl;
-// cout<<"\t0: "<<n[0]->myInitUV.X()<<" "<<n[0]->myInitUV.Y()<<" UV: "<<n[0]->myUV.X()<<" "<<n[0]->myUV.Y()<<endl;
-// cout<<"\t1: "<<n[1]->myInitUV.X()<<" "<<n[1]->myInitUV.Y()<<" UV: "<<n[1]->myUV.X()<<" "<<n[1]->myUV.Y()<<endl;
-// cout<<"\t2: "<<n[2]->myInitUV.X()<<" "<<n[2]->myInitUV.Y()<<" UV: "<<n[2]->myUV.X()<<" "<<n[2]->myUV.Y()<<endl;
-// }
-    // check if a quadrangle is degenerated
-    if ( !isTriangle &&
-        ((( n[0]->myUV - n[1]->myUV ).SquareModulus() <= DBL_MIN ) ||
-         (( n[2]->myUV - n[1]->myUV ).SquareModulus() <= DBL_MIN )))
-      isTriangle = true;
-    if ( isTriangle &&
-        ( n[0]->myUV - n[2]->myUV ).SquareModulus() <= DBL_MIN )
-      continue;
-
-    // find min size of the diagonal node-n[1]
-    double minDiag = fixSize;
-    if ( minDiag == 0. ) {
-      double maxLen2 = ( node->myUV - n[0]->myUV ).SquareModulus();
-      if ( !isTriangle ) {
-        maxLen2 = Max( maxLen2, ( n[0]->myUV - n[1]->myUV ).SquareModulus() );
-        maxLen2 = Max( maxLen2, ( n[1]->myUV - n[2]->myUV ).SquareModulus() );
-      }
-      maxLen2 = Max( maxLen2, ( n[2]->myUV - node->myUV ).SquareModulus() );
-      minDiag = sqrt( maxLen2 ) * PI / 60.; // ~ maxLen * Sin( 3 deg )
-    }
-
-    // check if newUV is behind 3 dirs: n[0]-n[1], n[1]-n[2] and n[0]-n[2]
-    // ( behind means "to the right of")
-    // it is OK if
-    // 1. newUV is not behind 01 and 12 dirs
-    // 2. or newUV is not behind 02 dir and n[2] is convex
-    bool newIn[3] = { true, true, true }, newOk[3] = { true, true, true };
-    bool wasIn[3] = { true, true, true }, wasOk[3] = { true, true, true };
-    gp_Vec2d moveVec[3], outVec[3];
-    for ( i = isTriangle ? 2 : 0; i < 3; i++ )
-    {
-      bool isDiag = ( i == 2 );
-      if ( isDiag && newOk[0] && newOk[1] && !isTriangle )
-        break;
-      gp_Vec2d sideDir;
-      if ( isDiag )
-        sideDir = gp_Vec2d( n[0]->myUV, n[2]->myUV );
-      else
-        sideDir = gp_Vec2d( n[i]->myUV, n[i+1]->myUV );
-
-      gp_Vec2d outDir( sideDir.Y(), -sideDir.X() ); // to the right
-      outDir.Normalize();
-      gp_Vec2d newDir( n[i]->myUV, newUV );
-      gp_Vec2d oldDir( n[i]->myUV, oldUV );
-      outVec[i] = outDir;
-      if ( newIsOk ) newOk[i] = ( outDir * newDir < -minDiag );
-      if ( newIsIn ) newIn[i] = ( outDir * newDir < 0 );
-      if ( crit == FIX_OLD ) {
-        wasIn[i] = ( outDir * oldDir < 0 );
-        wasOk[i] = ( outDir * oldDir < -minDiag );
-        if ( !newOk[i] )
-          newBadRate += outDir * newDir;
-        if ( !wasOk[i] )
-          oldBadRate += outDir * oldDir;
-        // push node inside
-        if ( !wasOk[i] ) {
-          double oldDist = - outDir * oldDir;//, l2 = outDir * newDir;
-          //               double r = ( l1 - minDiag ) / ( l1 + l2 );
-          //               moveVec[i] = r * gp_Vec2d( node->myUV, newUV );
-          moveVec[i] = ( oldDist - minDiag ) * outDir;
-        }
-      }
-    }
-
-    // check if n[2] is convex
-    bool convex = true;
-    if ( !isTriangle )
-      convex = ( outVec[0] * gp_Vec2d( n[1]->myUV, n[2]->myUV ) < 0 );
-
-    bool isNewOk = ( newOk[0] && newOk[1] ) || ( newOk[2] && convex );
-    bool isNewIn = ( newIn[0] && newIn[1] ) || ( newIn[2] && convex );
-    newIsOk = ( newIsOk && isNewOk );
-    newIsIn = ( newIsIn && isNewIn );
-
-    if ( crit != FIX_OLD ) {
-      if ( crit == CHECK_NEW_OK && !newIsOk ) break;
-      if ( crit == CHECK_NEW_IN && !newIsIn ) break;
-      continue;
-    }
-
-    bool isOldIn = ( wasIn[0] && wasIn[1] ) || ( wasIn[2] && convex );
-    bool isOldOk = ( wasOk[0] && wasOk[1] ) || ( wasOk[2] && convex );
-    oldIsIn = ( oldIsIn && isOldIn );
-    oldIsOk = ( oldIsOk && isOldIn );
-
-
-    if ( !isOldIn ) { // node is outside a quadrangle
-      // move newUV inside a quadrangle
-//MESSAGE("Quad "<< dir1 << "  WAS IN " << wasIn[0]<<" "<<wasIn[1]<<" "<<wasIn[2]);
-      // node and newUV are outside: push newUV inside
-      gp_XY uv;
-      if ( convex || isTriangle ) {
-        uv = 0.5 * ( n[0]->myUV + n[2]->myUV ) - minDiag * outVec[2].XY();
-      }
-      else {
-        gp_Vec2d out = outVec[0].Normalized() + outVec[1].Normalized();
-        double outSize = out.Magnitude();
-        if ( outSize > DBL_MIN )
-          out /= outSize;
-        else
-          out.SetCoord( -outVec[1].Y(), outVec[1].X() );
-        uv = n[1]->myUV - minDiag * out.XY();
-      }
-      oldUVFixed[ nbOldFix++ ] = uv;
-      //node->myUV = newUV;
-    }
-    else if ( !isOldOk )  {
-      // try to fix old UV: move node inside as less as possible
-//MESSAGE("Quad "<< dir1 << "  old is BAD, try to fix old, minDiag: "<< minDiag);
-      gp_XY uv1, uv2 = node->myUV;
-      for ( i = isTriangle ? 2 : 0; i < 3; i++ ) // mark not computed vectors
-        if ( wasOk[i] )
-          moveVec[ i ].SetCoord( 1, 2e100); // not use this vector 
-      while ( !isOldOk ) {
-        // find the least moveVec
-        int i, iMin = 4;
-        double minMove2 = 1e100;
-        for ( i = isTriangle ? 2 : 0; i < 3; i++ )
-        {
-          if ( moveVec[i].Coord(1) < 1e100 ) {
-            double move2 = moveVec[i].SquareMagnitude();
-            if ( move2 < minMove2 ) {
-              minMove2 = move2;
-              iMin = i;
-            }
-          }
-        }
-        if ( iMin == 4 ) {
-          break;
-        }
-        // move node to newUV
-        uv1 = node->myUV + moveVec[ iMin ].XY();
-        uv2 += moveVec[ iMin ].XY();
-        moveVec[ iMin ].SetCoord( 1, 2e100); // not use this vector more
-        // check if uv1 is ok
-        for ( i = isTriangle ? 2 : 0; i < 3; i++ )
-          wasOk[i] = ( outVec[i] * gp_Vec2d( n[i]->myUV, uv1 ) < -minDiag );
-        isOldOk = ( wasOk[0] && wasOk[1] ) || ( wasOk[2] && convex );
-        if ( isOldOk )
-          oldUVImpr[ nbOldImpr++ ] = uv1;
-        else {
-          // check if uv2 is ok
-          for ( i = isTriangle ? 2 : 0; i < 3; i++ )
-            wasOk[i] = ( outVec[i] * gp_Vec2d( n[i]->myUV, uv2 ) < -minDiag );
-          isOldOk = ( wasOk[0] && wasOk[1] ) || ( wasOk[2] && convex );
-          if ( isOldOk )
-            oldUVImpr[ nbOldImpr++ ] = uv2;
-        }
-      }
-    }
-
-  } // loop on 4 quadrangles around <node>
-
-  if ( crit == CHECK_NEW_OK  )
-    return newIsOk;
-  if ( crit == CHECK_NEW_IN  )
-    return newIsIn;
-
-  if ( newIsOk )
-    return true;
-
-  if ( oldIsOk )
-    newUV = oldUV;
-  else {
-    if ( oldIsIn && nbOldImpr ) {
-//       MESSAGE(" Try to improve UV, init: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<
-//               " uv: "<<oldUV.X()<<" "<<oldUV.Y() );
-      gp_XY uv = oldUVImpr[ 0 ];
-      for ( int i = 1; i < nbOldImpr; i++ )
-        uv += oldUVImpr[ i ];
-      uv /= nbOldImpr;
-      if ( checkQuads( node, uv, reversed, CHECK_NEW_OK )) {
-        newUV = uv;
-        return false;
-      }
-      else {
-        //MESSAGE(" Cant improve UV, uv: "<<uv.X()<<" "<<uv.Y());
-      }
-    }
-    if ( !oldIsIn && nbOldFix ) {
-//       MESSAGE(" Try to fix UV, init: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<
-//               " uv: "<<oldUV.X()<<" "<<oldUV.Y() );
-      gp_XY uv = oldUVFixed[ 0 ];
-      for ( int i = 1; i < nbOldFix; i++ )
-        uv += oldUVFixed[ i ];
-      uv /= nbOldFix;
-      if ( checkQuads( node, uv, reversed, CHECK_NEW_IN )) {
-        newUV = uv;
-        return false;
-      }
-      else {
-        //MESSAGE(" Cant fix UV, uv: "<<uv.X()<<" "<<uv.Y());
-      }
-    }
-    if ( newIsIn && oldIsIn )
-      newUV = ( newBadRate < oldBadRate ) ? newUV : oldUV;
-    else if ( !newIsIn )
-      newUV = oldUV;
-  }
-
-  return false;
-}
-
-//=======================================================================
-//function : compUVByElasticIsolines
-//purpose  : compute UV as nodes of iso-poly-lines consisting of
-//           segments keeping relative size as in the pattern
-//=======================================================================
-//#define DEB_COMPUVBYELASTICISOLINES
-bool SMESH_Pattern::
-  compUVByElasticIsolines(const list< list< TPoint* > >& theBndPoints,
-                          const list< TPoint* >&         thePntToCompute)
-{
-//cout << "============================== KEY POINTS =============================="<<endl;
-//   list< int >::iterator kpIt = myKeyPointIDs.begin();
-//   for ( ; kpIt != myKeyPointIDs.end(); kpIt++ ) {
-//     TPoint& p = myPoints[ *kpIt ];
-//     cout << "INIT: " << p.myInitUV.X() << " " << p.myInitUV.Y() <<
-//       " UV: " << p.myUV.X() << " " << p.myUV.Y() << endl;
-//  }
-//cout << "=============================="<<endl;
-
-  // Define parameters of iso-grid nodes in U and V dir
-
-  set< double > paramSet[ 2 ];
-  list< list< TPoint* > >::const_iterator pListIt;
-  list< TPoint* >::const_iterator pIt;
-  for ( pListIt = theBndPoints.begin(); pListIt != theBndPoints.end(); pListIt++ ) {
-    const list< TPoint* > & pList = * pListIt;
-    for ( pIt = pList.begin(); pIt != pList.end(); pIt++ ) {
-      paramSet[0].insert( (*pIt)->myInitUV.X() );
-      paramSet[1].insert( (*pIt)->myInitUV.Y() );
-    }
-  }
-  for ( pIt = thePntToCompute.begin(); pIt != thePntToCompute.end(); pIt++ ) {
-    paramSet[0].insert( (*pIt)->myInitUV.X() );
-    paramSet[1].insert( (*pIt)->myInitUV.Y() );
-  }
-  // unite close parameters and split too long segments
-  int iDir;
-  double tol[ 2 ];
-  for ( iDir = 0; iDir < 2; iDir++ )
-  {
-    set< double > & params = paramSet[ iDir ];
-    double range = ( *params.rbegin() - *params.begin() );
-    double toler = range / 1e6;
-    tol[ iDir ] = toler;
-//    double maxSegment = range / params.size() / 2.;
-//
-//     set< double >::iterator parIt = params.begin();
-//     double prevPar = *parIt;
-//     for ( parIt++; parIt != params.end(); parIt++ )
-//     {
-//       double segLen = (*parIt) - prevPar;
-//       if ( segLen < toler )
-//         ;//params.erase( prevPar ); // unite
-//       else if ( segLen > maxSegment )
-//         params.insert( prevPar + 0.5 * segLen ); // split
-//       prevPar = (*parIt);
-//     }
-  }
-
-  // Make nodes of a grid of iso-poly-lines
-
-  list < TIsoNode > nodes;
-  typedef list < TIsoNode *> TIsoLine;
-  map < double, TIsoLine > isoMap[ 2 ];
-
-  set< double > & params0 = paramSet[ 0 ];
-  set< double >::iterator par0It = params0.begin();
-  for ( ; par0It != params0.end(); par0It++ )
-  {
-    TIsoLine & isoLine0 = isoMap[0][ *par0It ]; // vertical isoline with const U
-    set< double > & params1 = paramSet[ 1 ];
-    set< double >::iterator par1It = params1.begin();
-    for ( ; par1It != params1.end(); par1It++ )
-    {
-      nodes.push_back( TIsoNode( *par0It, *par1It ) );
-      isoLine0.push_back( & nodes.back() );
-      isoMap[1][ *par1It ].push_back( & nodes.back() );
-    }
-  }
-
-  // Compute intersections of boundaries with iso-lines:
-  // only boundary nodes will have computed UV so far
-
-  Bnd_Box2d uvBnd;
-  list< list< TPoint* > >::const_iterator bndIt = theBndPoints.begin();
-  list< TIsoNode* > bndNodes; // nodes corresponding to outer theBndPoints
-  for ( ; bndIt != theBndPoints.end(); bndIt++ )
-  {
-    const list< TPoint* > & bndPoints = * bndIt;
-    TPoint* prevP = bndPoints.back(); // this is the first point
-    list< TPoint* >::const_iterator pIt = bndPoints.begin();
-    // loop on the edge-points
-    for ( ; pIt != bndPoints.end(); pIt++ )
-    {
-      TPoint* point = *pIt;
-      for ( iDir = 0; iDir < 2; iDir++ )
-      {
-        const int iCoord = iDir + 1;
-        const int iOtherCoord = 2 - iDir;
-        double par1 = prevP->myInitUV.Coord( iCoord );
-        double par2 = point->myInitUV.Coord( iCoord );
-        double parDif = par2 - par1;
-        if ( Abs( parDif ) <= DBL_MIN )
-          continue;
-        // find iso-lines intersecting a bounadry
-        double toler = tol[ 1 - iDir ];
-        double minPar = Min ( par1, par2 );
-        double maxPar = Max ( par1, par2 );
-        map < double, TIsoLine >& isos = isoMap[ iDir ];
-        map < double, TIsoLine >::iterator isoIt = isos.begin();
-        for ( ; isoIt != isos.end(); isoIt++ )
-        {
-          double isoParam = (*isoIt).first;
-          if ( isoParam < minPar || isoParam > maxPar )
-            continue;
-          double r = ( isoParam - par1 ) / parDif;
-          gp_XY uv = ( 1 - r ) * prevP->myUV + r * point->myUV;
-          gp_XY initUV = ( 1 - r ) * prevP->myInitUV + r * point->myInitUV;
-          double otherPar = initUV.Coord( iOtherCoord ); // along isoline
-          // find existing node with otherPar or insert a new one
-          TIsoLine & isoLine = (*isoIt).second;
-          double nodePar;
-          TIsoLine::iterator nIt = isoLine.begin();
-          for ( ; nIt != isoLine.end(); nIt++ ) {
-            nodePar = (*nIt)->myInitUV.Coord( iOtherCoord );
-            if ( nodePar >= otherPar )
-              break;
-          }
-          TIsoNode * node;
-          if ( Abs( nodePar - otherPar ) <= toler )
-            node = ( nIt == isoLine.end() ) ? isoLine.back() : (*nIt);
-          else {
-            nodes.push_back( TIsoNode( initUV.X(), initUV.Y() ) );
-            node = & nodes.back();
-            isoLine.insert( nIt, node );
-          }
-          node->SetNotMovable();
-          node->myUV = uv;
-          uvBnd.Add( gp_Pnt2d( uv ));
-//  cout << "bnd: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<" UV: "<<node->myUV.X()<<" "<<node->myUV.Y()<<endl;
-          // tangent dir
-          gp_XY tgt( point->myUV - prevP->myUV );
-          if ( ::IsEqual( r, 1. ))
-            node->myDir[ 0 ] = tgt;
-          else if ( ::IsEqual( r, 0. ))
-            node->myDir[ 1 ] = tgt;
-          else
-            node->myDir[ 1 ] = node->myDir[ 0 ] = tgt;
-          // keep boundary nodes corresponding to boundary points
-          if ( bndIt == theBndPoints.begin() && ::IsEqual( r, 1. ))
-            if ( bndNodes.empty() || bndNodes.back() != node )
-              bndNodes.push_back( node );
-        } // loop on isolines
-      } // loop on 2 directions
-      prevP = point;
-    } // loop on boundary points
-  } // loop on boundaries
-
-  // Define orientation
-
-  // find the point with the least X
-  double leastX = DBL_MAX;
-  TIsoNode * leftNode;
-  list < TIsoNode >::iterator nodeIt = nodes.begin();
-  for ( ; nodeIt != nodes.end(); nodeIt++  ) {
-    TIsoNode & node = *nodeIt;
-    if ( node.IsUVComputed() && node.myUV.X() < leastX ) {
-      leastX = node.myUV.X();
-      leftNode = &node;
-    }
-// if ( node.IsUVComputed() ) {
-// cout << "bndNode INIT: " << node.myInitUV.X()<<" "<<node.myInitUV.Y()<<" UV: "<<
-//   node.myUV.X()<<" "<<node.myUV.Y()<<endl<<
-//    " dir0: "<<node.myDir[0].X()<<" "<<node.myDir[0].Y() <<
-//      " dir1: "<<node.myDir[1].X()<<" "<<node.myDir[1].Y() << endl;
-// }
-  }
-  bool reversed = ( leftNode->myDir[0].Y() + leftNode->myDir[1].Y() > 0 );
-  //SCRUTE( reversed );
-
-  // Prepare internal nodes:
-  // 1. connect nodes
-  // 2. compute ratios
-  // 3. find boundary nodes for each node
-  // 4. remove nodes out of the boundary
-  for ( iDir = 0; iDir < 2; iDir++ )
-  {
-    const int iCoord = 2 - iDir; // coord changing along an isoline
-    map < double, TIsoLine >& isos = isoMap[ iDir ];
-    map < double, TIsoLine >::iterator isoIt = isos.begin();
-    for ( ; isoIt != isos.end(); isoIt++ )
-    {
-      TIsoLine & isoLine = (*isoIt).second;
-      bool firstCompNodeFound = false;
-      TIsoLine::iterator lastCompNodePos, nPrevIt, nIt, nNextIt, nIt2;
-      nPrevIt = nIt = nNextIt = isoLine.begin();
-      nIt++;
-      nNextIt++; nNextIt++;
-      while ( nIt != isoLine.end() )
-      {
-        // 1. connect prev - cur
-        TIsoNode* node = *nIt, * prevNode = *nPrevIt;
-        if ( !firstCompNodeFound && prevNode->IsUVComputed() ) {
-          firstCompNodeFound = true;
-          lastCompNodePos = nPrevIt;
-        }
-        if ( firstCompNodeFound ) {
-          node->SetNext( prevNode, iDir, 0 );
-          prevNode->SetNext( node, iDir, 1 );
-        }
-        // 2. compute ratio
-        if ( nNextIt != isoLine.end() ) {
-          double par1 = prevNode->myInitUV.Coord( iCoord );
-          double par2 = node->myInitUV.Coord( iCoord );
-          double par3 = (*nNextIt)->myInitUV.Coord( iCoord );
-          node->myRatio[ iDir ] = ( par2 - par1 ) / ( par3 - par1 );
-        }
-        // 3. find boundary nodes
-        if ( node->IsUVComputed() )
-          lastCompNodePos = nIt;
-        else if ( firstCompNodeFound && nNextIt != isoLine.end() ) {
-          TIsoNode* bndNode1 = *lastCompNodePos, *bndNode2 = 0;
-          for ( nIt2 = nNextIt; nIt2 != isoLine.end(); nIt2++ )
-            if ( (*nIt2)->IsUVComputed() )
-              break;
-          if ( nIt2 != isoLine.end() ) {
-            bndNode2 = *nIt2;
-            node->SetBoundaryNode( bndNode1, iDir, 0 );
-            node->SetBoundaryNode( bndNode2, iDir, 1 );
-// cout << "--------------------------------------------------"<<endl;
-//  cout << "bndNode1: " << bndNode1->myUV.X()<<" "<<bndNode1->myUV.Y()<<endl<<
-//   " dir0: "<<bndNode1->myDir[0].X()<<" "<<bndNode1->myDir[0].Y() <<
-//     " dir1: "<<bndNode1->myDir[1].X()<<" "<<bndNode1->myDir[1].Y() << endl;
-//  cout << "bndNode2: " << bndNode2->myUV.X()<<" "<<bndNode2->myUV.Y()<<endl<<
-//   " dir0: "<<bndNode2->myDir[0].X()<<" "<<bndNode2->myDir[0].Y() <<
-//     " dir1: "<<bndNode2->myDir[1].X()<<" "<<bndNode2->myDir[1].Y() << endl;
-          }
-        }
-        nIt++; nPrevIt++;
-        if ( nNextIt != isoLine.end() ) nNextIt++;
-        // 4. remove nodes out of the boundary
-        if ( !firstCompNodeFound )
-          isoLine.pop_front();
-      } // loop on isoLine nodes
-
-      // remove nodes after the boundary
-//       for ( nIt = ++lastCompNodePos; nIt != isoLine.end(); nIt++ )
-//         (*nIt)->SetNotMovable();
-      isoLine.erase( ++lastCompNodePos, isoLine.end() );
-    } // loop on isolines
-  } // loop on 2 directions
-
-  // Compute local isoline direction for internal nodes
-
-  /*
-  map < double, TIsoLine >& isos = isoMap[ 0 ]; // vertical isolines with const U
-  map < double, TIsoLine >::iterator isoIt = isos.begin();
-  for ( ; isoIt != isos.end(); isoIt++ )
-  {
-    TIsoLine & isoLine = (*isoIt).second;
-    TIsoLine::iterator nIt = isoLine.begin();
-    for ( ; nIt != isoLine.end(); nIt++ )
-    {
-      TIsoNode* node = *nIt;
-      if ( node->IsUVComputed() || !node->IsMovable() )
-        continue;
-      gp_Vec2d aTgt[2], aNorm[2];
-      double ratio[2];
-      bool OK = true;
-      for ( iDir = 0; iDir < 2; iDir++ )
-      {
-        TIsoNode* bndNode1 = node->GetBoundaryNode( iDir, 0 );
-        TIsoNode* bndNode2 = node->GetBoundaryNode( iDir, 1 );
-        if ( !bndNode1 || !bndNode2 ) {
-          OK = false;
-          break;
-        }
-        const int iCoord = 2 - iDir; // coord changing along an isoline
-        double par1 = bndNode1->myInitUV.Coord( iCoord );
-        double par2 = node->myInitUV.Coord( iCoord );
-        double par3 = bndNode2->myInitUV.Coord( iCoord );
-        ratio[ iDir ] = ( par2 - par1 ) / ( par3 - par1 );
-
-        gp_Vec2d tgt1( bndNode1->myDir[0].XY() + bndNode1->myDir[1].XY() );
-        gp_Vec2d tgt2( bndNode2->myDir[0].XY() + bndNode2->myDir[1].XY() );
-        if ( bool( iDir ) == reversed ) tgt2.Reverse(); // along perpend. isoline
-        else                            tgt1.Reverse();
-//cout<<" tgt: " << tgt1.X()<<" "<<tgt1.Y()<<" | "<< tgt2.X()<<" "<<tgt2.Y()<<endl;
-
-        if ( ratio[ iDir ] < 0.5 )
-          aNorm[ iDir ] = gp_Vec2d( -tgt1.Y(), tgt1.X() ); // rotate tgt to the left
-        else
-          aNorm[ iDir ] = gp_Vec2d( -tgt2.Y(), tgt2.X() );
-        if ( iDir == 1 )
-          aNorm[ iDir ].Reverse();  // along iDir isoline
-
-        double angle = tgt1.Angle( tgt2 ); //  [-PI, PI]
-        // maybe angle is more than |PI|
-        if ( Abs( angle ) > PI / 2. ) {
-          // check direction of the last but one perpendicular isoline
-          TIsoNode* prevNode = bndNode2->GetNext( iDir, 0 );
-          bndNode1 = prevNode->GetBoundaryNode( 1 - iDir, 0 );
-          bndNode2 = prevNode->GetBoundaryNode( 1 - iDir, 1 );
-          gp_Vec2d isoDir( bndNode1->myUV, bndNode2->myUV );
-          if ( isoDir * tgt2 < 0 )
-            isoDir.Reverse();
-          double angle2 = tgt1.Angle( isoDir );
-          //cout << " isoDir: "<< isoDir.X() <<" "<<isoDir.Y() << " ANGLE: "<< angle << " "<<angle2<<endl;
-          if (angle2 * angle < 0 && // check the sign of an angle close to PI
-              Abs ( Abs ( angle ) - PI ) <= PI / 180. ) {
-            //MESSAGE("REVERSE ANGLE");
-            angle = -angle;
-          }
-          if ( Abs( angle2 ) > Abs( angle ) ||
-              ( angle2 * angle < 0 && Abs( angle2 ) > Abs( angle - angle2 ))) {
-            //MESSAGE("Add PI");
-            // cout << "NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<endl;
-            // cout <<"ISO: " << isoParam << " " << (*iso2It).first << endl;
-            // cout << "bndNode1: " << bndNode1->myUV.X()<<" "<<bndNode1->myUV.Y()<< endl;
-            // cout << "bndNode2: " << bndNode2->myUV.X()<<" "<<bndNode2->myUV.Y()<<endl;
-            // cout <<" tgt: " << tgt1.X()<<" "<<tgt1.Y()<<"  "<< tgt2.X()<<" "<<tgt2.Y()<<endl;
-            angle += ( angle < 0 ) ? 2. * PI : -2. * PI;
-          }
-        }
-        aTgt[ iDir ] = tgt1.Rotated( angle * ratio[ iDir ] ).XY();
-      } // loop on 2 dir
-
-      if ( OK ) {
-        for ( iDir = 0; iDir < 2; iDir++ )
-        {
-          aTgt[iDir].Normalize();
-          aNorm[1-iDir].Normalize();
-          double r = Abs ( ratio[iDir] - 0.5 ) * 2.0; // [0,1] - distance from the middle
-          r *= r;
-          
-          node->myDir[iDir] = //aTgt[iDir];
-            aNorm[1-iDir] * r + aTgt[iDir] * ( 1. - r );
-        }
-// cout << "NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<endl;
-// cout <<" tgt: " << tgt1.X()<<" "<<tgt1.Y()<<" - "<< tgt2.X()<<" "<<tgt2.Y()<<endl;
-//  cout << " isoDir: "<< node->myDir[0].X() <<" "<<node->myDir[0].Y()<<"  |  "
-//    << node->myDir[1].X() <<" "<<node->myDir[1].Y()<<endl;
-      }
-    } // loop on iso nodes
-  } // loop on isolines
-*/
-  // Find nodes to start computing UV from
-
-  list< TIsoNode* > startNodes;
-  list< TIsoNode* >::iterator nIt = bndNodes.end();
-  TIsoNode* node = *(--nIt);
-  TIsoNode* prevNode = *(--nIt);
-  for ( nIt = bndNodes.begin(); nIt != bndNodes.end(); nIt++ )
-  {
-    TIsoNode* nextNode = *nIt;
-    gp_Vec2d initTgt1( prevNode->myInitUV, node->myInitUV );
-    gp_Vec2d initTgt2( node->myInitUV, nextNode->myInitUV );
-    double initAngle = initTgt1.Angle( initTgt2 );
-    double angle = node->myDir[0].Angle( node->myDir[1] );
-    if ( reversed ) angle = -angle;
-    if ( initAngle > angle && initAngle - angle > PI / 2.1 ) {
-      // find a close internal node
-      TIsoNode* nClose = 0;
-      list< TIsoNode* > testNodes;
-      testNodes.push_back( node );
-      list< TIsoNode* >::iterator it = testNodes.begin();
-      for ( ; !nClose && it != testNodes.end(); it++ )
-      {
-        for (int i = 0; i < 4; i++ )
-        {
-          nClose = (*it)->myNext[ i ];
-          if ( nClose ) {
-            if ( !nClose->IsUVComputed() )
-              break;
-            else {
-              testNodes.push_back( nClose );
-              nClose = 0;
-            }
-          }
-        }
-      }
-      startNodes.push_back( nClose );
-// cout << "START: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<" UV: "<<
-//   node->myUV.X()<<" "<<node->myUV.Y()<<endl<<
-//   "initAngle: " << initAngle << " angle: " << angle << endl;
-// cout <<" init tgt: " << initTgt1.X()<<" "<<initTgt1.Y()<<" | "<< initTgt2.X()<<" "<<initTgt2.Y()<<endl;
-// cout << " tgt: "<< node->myDir[ 0 ].X() <<" "<<node->myDir[ 0 ].Y()<<" | "<<
-//    node->myDir[ 1 ].X() <<" "<<node->myDir[ 1 ].Y()<<endl;
-// cout << "CLOSE: "<<nClose->myInitUV.X()<<" "<<nClose->myInitUV.Y()<<endl;
-    }
-    prevNode = node;
-    node = nextNode;
-  }
-
-  // Compute starting UV of internal nodes
-
-  list < TIsoNode* > internNodes;
-  bool needIteration = true;
-  if ( startNodes.empty() ) {
-    MESSAGE( " Starting UV by compUVByIsoIntersection()");
-    needIteration = false;
-    map < double, TIsoLine >& isos = isoMap[ 0 ];
-    map < double, TIsoLine >::iterator isoIt = isos.begin();
-    for ( ; isoIt != isos.end(); isoIt++ )
-    {
-      TIsoLine & isoLine = (*isoIt).second;
-      TIsoLine::iterator nIt = isoLine.begin();
-      for ( ; !needIteration && nIt != isoLine.end(); nIt++ )
-      {
-        TIsoNode* node = *nIt;
-        if ( !node->IsUVComputed() && node->IsMovable() ) {
-          internNodes.push_back( node );
-          //bool isDeformed;
-          if ( !compUVByIsoIntersection(theBndPoints, node->myInitUV,
-                                        node->myUV, needIteration ))
-            node->myUV = node->myInitUV;
-        }
-      }
-    }
-    if ( needIteration )
-      for ( nIt = bndNodes.begin(); nIt != bndNodes.end(); nIt++ )
-      {
-        TIsoNode* node = *nIt, *nClose = 0;
-        list< TIsoNode* > testNodes;
-        testNodes.push_back( node );
-        list< TIsoNode* >::iterator it = testNodes.begin();
-        for ( ; !nClose && it != testNodes.end(); it++ )
-        {
-          for (int i = 0; i < 4; i++ )
-          {
-            nClose = (*it)->myNext[ i ];
-            if ( nClose ) {
-              if ( !nClose->IsUVComputed() && nClose->IsMovable() )
-                break;
-              else {
-                testNodes.push_back( nClose );
-                nClose = 0;
-              }
-            }
-          }
-        }
-        startNodes.push_back( nClose );
-      }
-  }
-
-  double aMin[2], aMax[2], step[2];
-  uvBnd.Get( aMin[0], aMin[1], aMax[0], aMax[1] );
-  double minUvSize = Min ( aMax[0]-aMin[0], aMax[1]-aMin[1] );
-  step[0] = minUvSize / paramSet[ 0 ].size() / 10;
-  step[1] = minUvSize / paramSet[ 1 ].size() / 10;
-//cout << "STEPS: " << step[0] << " " << step[1]<< endl;
-
-  for ( nIt = startNodes.begin(); nIt != startNodes.end(); nIt++ )
-  {
-    TIsoNode* prevN[2], *node = *nIt;
-    if ( node->IsUVComputed() || !node->IsMovable() )
-      continue;
-    gp_XY newUV( 0, 0 ), sumDir( 0, 0 );
-    int nbComp = 0, nbPrev = 0;
-    for ( iDir = 0; iDir < 2; iDir++ )
-    {
-      TIsoNode* prevNode1 = 0, *prevNode2 = 0;
-      TIsoNode* n = node->GetNext( iDir, 0 );
-      if ( n->IsUVComputed() )
-        prevNode1 = n;
-      else
-        startNodes.push_back( n );
-      n = node->GetNext( iDir, 1 );
-      if ( n->IsUVComputed() )
-        prevNode2 = n;
-      else
-        startNodes.push_back( n );
-      if ( !prevNode1 ) {
-        prevNode1 = prevNode2;
-        prevNode2 = 0;
-      }
-      if ( prevNode1 ) nbPrev++;
-      if ( prevNode2 ) nbPrev++;
-      if ( prevNode1 ) {
-        gp_XY dir;
-          double prevPar = prevNode1->myInitUV.Coord( 2 - iDir );
-          double par = node->myInitUV.Coord( 2 - iDir );
-          bool isEnd = ( prevPar > par );
-//          dir = node->myDir[ 1 - iDir ].XY() * ( isEnd ? -1. : 1. );
-        //cout << "__________"<<endl<< "NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<endl;
-          TIsoNode* bndNode = node->GetBoundaryNode( iDir, isEnd );
-          gp_XY tgt( bndNode->myDir[0].XY() + bndNode->myDir[1].XY() );
-          dir.SetCoord( 1, tgt.Y() * ( reversed ? 1 : -1 ));
-          dir.SetCoord( 2, tgt.X() * ( reversed ? -1 : 1 ));
-        //cout << "bndNode UV: " << bndNode->myUV.X()<<" "<<bndNode->myUV.Y()<< endl;
-          //  cout << " tgt: "<< bndNode->myDir[ 0 ].X() <<" "<<bndNode->myDir[ 0 ].Y()<<" | "<<
-          //     bndNode->myDir[ 1 ].X() <<" "<<bndNode->myDir[ 1 ].Y()<<endl;
-          //cout << "prevNode UV: " << prevNode1->myUV.X()<<" "<<prevNode1->myUV.Y()<<
-            //" par: " << prevPar << endl;
-          //           cout <<" tgt: " << tgt.X()<<" "<<tgt.Y()<<endl;
-        //cout << " DIR: "<< dir.X() <<" "<<dir.Y()<<endl;
-        if ( prevNode2 ) {
-          //cout << "____2next______"<<endl<< "NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<endl;
-          gp_XY & uv1 = prevNode1->myUV;
-          gp_XY & uv2 = prevNode2->myUV;
-//           dir = ( uv2 - uv1 );
-//           double len = dir.Modulus();
-//           if ( len > DBL_MIN )
-//             dir /= len * 0.5;
-          double r = node->myRatio[ iDir ];
-          newUV += uv1 * ( 1 - r ) + uv2 * r;
-        }
-        else {
-          newUV += prevNode1->myUV + dir * step[ iDir ];
-        }
-        sumDir += dir;
-        prevN[ iDir ] = prevNode1;
-        nbComp++;
-      }
-    }
-    newUV /= nbComp;
-    node->myUV = newUV;
-    //cout << "NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<endl;
-
-    // check if a quadrangle is not distorted
-    if ( nbPrev > 1 ) {
-      //int crit = ( nbPrev == 4 ) ? FIX_OLD : CHECK_NEW_IN;
-      if ( !checkQuads( node, newUV, reversed, FIX_OLD, step[0] + step[1] )) {
-      //cout <<" newUV: " << node->myUV.X() << " "<<node->myUV.Y() << " nbPrev: "<<nbPrev<< endl;
-      //  cout << "_FIX_INIT_ fixedUV: " << newUV.X() << " "<<newUV.Y() << endl;
-        node->myUV = newUV;
-      }
-    }
-    internNodes.push_back( node );
-  }
-  
-  // Move nodes
-
-  static int maxNbIter = 100;
-#ifdef DEB_COMPUVBYELASTICISOLINES
-//   maxNbIter++;
-  bool useNbMoveNode = 0;
-  static int maxNbNodeMove = 100;
-  maxNbNodeMove++;
-  int nbNodeMove = 0;
-  if ( !useNbMoveNode )
-    maxNbIter = ( maxNbIter < 0 ) ? 100 : -1;
-#endif    
-  double maxMove;
-  int nbIter = 0;
-  do {
-    if ( !needIteration) break;
-#ifdef DEB_COMPUVBYELASTICISOLINES
-    if ( nbIter >= maxNbIter ) break;
-#endif
-    maxMove = 0.0;
-    list < TIsoNode* >::iterator nIt = internNodes.begin();
-    for ( ; nIt != internNodes.end(); nIt++  ) {
-#ifdef DEB_COMPUVBYELASTICISOLINES
-      if (useNbMoveNode )
-        cout << nbNodeMove <<" =================================================="<<endl;
-#endif
-      TIsoNode * node = *nIt;
-      // make lines
-      //gp_Lin2d line[2];
-      gp_XY loc[2];
-      for ( iDir = 0; iDir < 2; iDir++ )
-      {
-        gp_XY & uv1 = node->GetNext( iDir, 0 )->myUV;
-        gp_XY & uv2 = node->GetNext( iDir, 1 )->myUV;
-        double r = node->myRatio[ iDir ];
-        loc[ iDir ] = uv1 * ( 1 - r ) + uv2 * r;
-//         line[ iDir ].SetLocation( loc[ iDir ] );
-//         line[ iDir ].SetDirection( node->myDir[ iDir ] );
-      }
-      // define ratio
-      double locR[2] = { 0, 0 };
-      for ( iDir = 0; iDir < 2; iDir++ )
-      {
-        const int iCoord = 2 - iDir; // coord changing along an isoline
-        TIsoNode* bndNode1 = node->GetBoundaryNode( iDir, 0 );
-        TIsoNode* bndNode2 = node->GetBoundaryNode( iDir, 1 );
-        double par1 = bndNode1->myInitUV.Coord( iCoord );
-        double par2 = node->myInitUV.Coord( iCoord );
-        double par3 = bndNode2->myInitUV.Coord( iCoord );
-        double r = ( par2 - par1 ) / ( par3 - par1 );
-        r = Abs ( r - 0.5 ) * 2.0;  // [0,1] - distance from the middle
-        locR[ iDir ] = ( 1 - r * r ) * 0.25;
-      }
-      //locR[0] = locR[1] = 0.25;
-      // intersect the 2 lines and move a node
-      //IntAna2d_AnaIntersection inter( line[0], line[1] );
-      if ( /*inter.IsDone() && inter.NbPoints() ==*/ 1 )
-      {
-//         double intR = 1 - locR[0] - locR[1];
-//         gp_XY newUV = inter.Point(1).Value().XY();
-//         if ( !checkQuads( node, newUV, reversed, CHECK_NEW_IN ))
-//           newUV = ( locR[0] * loc[0] + locR[1] * loc[1] ) / ( 1 - intR );
-//         else
-//           newUV = intR * newUV + locR[0] * loc[0] + locR[1] * loc[1];
-        gp_XY newUV = 0.5 * ( loc[0] +  loc[1] );
-        // avoid parallel isolines intersection
-        checkQuads( node, newUV, reversed );
-
-        maxMove = Max( maxMove, ( newUV - node->myUV ).SquareModulus());
-        node->myUV = newUV;
-      } // intersection found
-#ifdef DEB_COMPUVBYELASTICISOLINES
-      if (useNbMoveNode && ++nbNodeMove >= maxNbNodeMove ) break;
-#endif
-    } // loop on internal nodes
-#ifdef DEB_COMPUVBYELASTICISOLINES
-    if (useNbMoveNode && nbNodeMove >= maxNbNodeMove ) break;
-#endif
-  } while ( maxMove > 1e-8 && nbIter++ < maxNbIter );
-
-  MESSAGE( "compUVByElasticIsolines(): Nb iterations " << nbIter << " dist: " << sqrt( maxMove ));
-
-  if ( nbIter >= maxNbIter && sqrt(maxMove) > minUvSize * 0.05 ) {
-    MESSAGE( "compUVByElasticIsolines() failed: "<<sqrt(maxMove)<<">"<<minUvSize * 0.05);
-#ifndef DEB_COMPUVBYELASTICISOLINES
-    return false;
-#endif
-  }
-
-  // Set computed UV to points
-
-  for ( pIt = thePntToCompute.begin(); pIt != thePntToCompute.end(); pIt++ ) {
-    TPoint* point = *pIt;
-    //gp_XY oldUV = point->myUV;
-    double minDist = DBL_MAX;
-    list < TIsoNode >::iterator nIt = nodes.begin();
-    for ( ; nIt != nodes.end(); nIt++ ) {
-      double dist = ( (*nIt).myInitUV - point->myInitUV ).SquareModulus();
-      if ( dist < minDist ) {
-        minDist = dist;
-        point->myUV = (*nIt).myUV;
-      }
-    }
-  }
-      
-    
-  return true;
-}
-
-
-//=======================================================================
-//function : setFirstEdge
-//purpose  : choose the best first edge of theWire; return the summary distance
-//           between point UV computed by isolines intersection and
-//           eventual UV got from edge p-curves
-//=======================================================================
-
-//#define DBG_SETFIRSTEDGE
-double SMESH_Pattern::setFirstEdge (list< TopoDS_Edge > & theWire, int theFirstEdgeID)
-{
-  int iE, nbEdges = theWire.size();
-  if ( nbEdges == 1 )
-    return 0;
-
-  // Transform UVs computed by iso to fit bnd box of a wire
-
-  // max nb of points on an edge
-  int maxNbPnt = 0;
-  int eID = theFirstEdgeID;
-  for ( iE = 0; iE < nbEdges; iE++ )
-    maxNbPnt = Max ( maxNbPnt, getShapePoints( eID++ ).size() );
-  
-  // compute bnd boxes
-  TopoDS_Face face = TopoDS::Face( myShape );
-  Bnd_Box2d bndBox, eBndBox;
-  eID = theFirstEdgeID;
-  list< TopoDS_Edge >::iterator eIt;
-  list< TPoint* >::iterator pIt;
-  for ( eIt = theWire.begin(); eIt != theWire.end(); eIt++ )
-  {
-    // UV by isos stored in TPoint.myXYZ
-    list< TPoint* > & ePoints = getShapePoints( eID++ );
-    for ( pIt = ePoints.begin(); pIt != ePoints.end(); pIt++ ) {
-      TPoint* p = (*pIt);
-      bndBox.Add( gp_Pnt2d( p->myXYZ.X(), p->myXYZ.Y() ));
-    }
-    // UV by an edge p-curve
-    double f, l;
-    Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface( *eIt, face, f, l );
-    double dU = ( l - f ) / ( maxNbPnt - 1 );
-    for ( int i = 0; i < maxNbPnt; i++ )
-      eBndBox.Add( C2d->Value( f + i * dU ));
-  }
-
-  // transform UVs by isos
-  double minPar[2], maxPar[2], eMinPar[2], eMaxPar[2];
-  bndBox.Get( minPar[0], minPar[1], maxPar[0], maxPar[1] );
-  eBndBox.Get( eMinPar[0], eMinPar[1], eMaxPar[0], eMaxPar[1] );
-#ifdef DBG_SETFIRSTEDGE
-  cout << "EDGES: X: " << eMinPar[0] << " - " << eMaxPar[0] << " Y: "
-    << eMinPar[1] << " - " << eMaxPar[1] << endl;
-#endif
-  for ( int iC = 1, i = 0; i < 2; iC++, i++ ) // loop on 2 coordinates
-  {
-    double dMin = eMinPar[i] - minPar[i];
-    double dMax = eMaxPar[i] - maxPar[i];
-    double dPar = maxPar[i] - minPar[i];
-    eID = theFirstEdgeID;
-    for ( iE = 0; iE < nbEdges; iE++ ) // loop on edges of a boundary
-    {
-      list< TPoint* > & ePoints = getShapePoints( eID++ );
-      for ( pIt = ++ePoints.begin(); pIt != ePoints.end(); pIt++ ) // loop on edge points
-      {
-        double par = (*pIt)->myXYZ.Coord( iC );
-        double r = ( par - minPar[i] ) / dPar;
-        par += ( 1 - r ) * dMin + r * dMax;
-        (*pIt)->myXYZ.SetCoord( iC, par );
-      }
-    }
-  }
-
-  TopoDS_Edge eBest;
-  double minDist = DBL_MAX;
-  for ( iE = 0 ; iE < nbEdges; iE++ )
-  {
-#ifdef DBG_SETFIRSTEDGE
-    cout << " VARIANT " << iE << endl;
-#endif
-    // evaluate the distance between UV computed by the 2 methods:
-    // by isos intersection ( myXYZ ) and by edge p-curves ( myUV )
-    double dist = 0;
-    int eID = theFirstEdgeID;
-    for ( eIt = theWire.begin(); eIt != theWire.end(); eIt++ )
-    {
-      list< TPoint* > & ePoints = getShapePoints( eID++ );
-      computeUVOnEdge( *eIt, ePoints );
-      for ( pIt = ++ePoints.begin(); pIt != ePoints.end(); pIt++ ) {
-        TPoint* p = (*pIt);
-        dist += ( p->myUV - gp_XY( p->myXYZ.X(), p->myXYZ.Y() )).SquareModulus();
-#ifdef DBG_SETFIRSTEDGE
-        cout << " ISO : ( " << p->myXYZ.X() << ", "<< p->myXYZ.Y() << " ) PCURVE : ( " <<
-          p->myUV.X() << ", " << p->myUV.Y() << ") " << endl;
-#endif
-      }
-    }
-#ifdef DBG_SETFIRSTEDGE
-    cout << "dist -- " << dist << endl;
-#endif
-    if ( dist < minDist ) {
-      minDist = dist;
-      eBest = theWire.front();
-    }
-    // check variant with another first edge
-    theWire.splice( theWire.begin(), theWire, --theWire.end(), theWire.end() );
-  }
-  // put the best first edge to the theWire front
-  if ( eBest != theWire.front() ) {
-    eIt = find ( theWire.begin(), theWire.end(), eBest );
-    theWire.splice( theWire.begin(), theWire, eIt, theWire.end() );
-  }
-
-  return minDist;
-}
-
-//=======================================================================
-//function : sortSameSizeWires
-//purpose  : sort wires in theWireList from theFromWire until theToWire,
-//           the wires are set in the order to correspond to the order
-//           of boundaries; after sorting, edges in the wires are put
-//           in a good order, point UVs on edges are computed and points
-//           are appended to theEdgesPointsList
-//=======================================================================
-
-bool SMESH_Pattern::sortSameSizeWires (TListOfEdgesList &                theWireList,
-                                       const TListOfEdgesList::iterator& theFromWire,
-                                       const TListOfEdgesList::iterator& theToWire,
-                                       const int                         theFirstEdgeID,
-                                       list< list< TPoint* > >&          theEdgesPointsList )
-{
-  TopoDS_Face F = TopoDS::Face( myShape );
-  int iW, nbWires = 0;
-  TListOfEdgesList::iterator wlIt = theFromWire;
-  while ( wlIt++ != theToWire )
-    nbWires++;
-
-  // Recompute key-point UVs by isolines intersection,
-  // compute CG of key-points for each wire and bnd boxes of GCs
-
-  bool aBool;
-  gp_XY orig( gp::Origin2d().XY() );
-  vector< gp_XY > vGcVec( nbWires, orig ), gcVec( nbWires, orig );
-  Bnd_Box2d bndBox, vBndBox;
-  int eID = theFirstEdgeID;
-  list< TopoDS_Edge >::iterator eIt;
-  for ( iW = 0, wlIt = theFromWire; wlIt != theToWire; wlIt++, iW++ )
-  {
-    list< TopoDS_Edge > & wire = *wlIt;
-    for ( eIt = wire.begin(); eIt != wire.end(); eIt++ )
-    {
-      list< TPoint* > & ePoints = getShapePoints( eID++ );
-      TPoint* p = ePoints.front();
-      if ( !compUVByIsoIntersection( theEdgesPointsList, p->myInitUV, p->myUV, aBool )) {
-        MESSAGE("cant sortSameSizeWires()");
-        return false;
-      }
-      gcVec[iW] += p->myUV;
-      bndBox.Add( gp_Pnt2d( p->myUV ));
-      TopoDS_Vertex V = TopExp::FirstVertex( *eIt, true );
-      gp_Pnt2d vXY = BRep_Tool::Parameters( V, F );
-      vGcVec[iW] += vXY.XY();
-      vBndBox.Add( vXY );
-      // keep the computed UV to compare against by setFirstEdge()
-      p->myXYZ.SetCoord( p->myUV.X(), p->myUV.Y(), 0. );
-    }
-    gcVec[iW] /= nbWires;
-    vGcVec[iW] /= nbWires;
-// cout << " Wire " << iW << " iso: " << gcVec[iW].X() << " " << gcVec[iW].Y() << endl <<
-//   " \t vertex: " << vGcVec[iW].X() << " " << vGcVec[iW].Y() << endl;
-  }
-
-  // Transform GCs computed by isos to fit in bnd box of GCs by vertices
-
-  double minPar[2], maxPar[2], vMinPar[2], vMaxPar[2];
-  bndBox.Get( minPar[0], minPar[1], maxPar[0], maxPar[1] );
-  vBndBox.Get( vMinPar[0], vMinPar[1], vMaxPar[0], vMaxPar[1] );
-  for ( int iC = 1, i = 0; i < 2; iC++, i++ ) // loop on 2 coordinates
-  {
-    double dMin = vMinPar[i] - minPar[i];
-    double dMax = vMaxPar[i] - maxPar[i];
-    double dPar = maxPar[i] - minPar[i];
-    if ( Abs( dPar ) <= DBL_MIN )
-      continue;
-    for ( iW = 0; iW < nbWires; iW++ ) { // loop on GCs of wires
-      double par = gcVec[iW].Coord( iC );
-      double r = ( par - minPar[i] ) / dPar;
-      par += ( 1 - r ) * dMin + r * dMax;
-      gcVec[iW].SetCoord( iC, par );
-    }
-  }
-
-  // Define boundary - wire correspondence by GC closeness
-
-  TListOfEdgesList tmpWList;
-  tmpWList.splice( tmpWList.end(), theWireList, theFromWire, theToWire );
-  typedef map< int, TListOfEdgesList::iterator > TIntWirePosMap;
-  TIntWirePosMap bndIndWirePosMap;
-  vector< bool > bndFound( nbWires, false );
-  for ( iW = 0, wlIt = tmpWList.begin(); iW < nbWires; iW++, wlIt++ )
-  {
-// cout << " TRSF Wire " << iW << " iso: " << gcVec[iW].X() << " " << gcVec[iW].Y() << endl <<
-//   " \t vertex: " << vGcVec[iW].X() << " " << vGcVec[iW].Y() << endl;
-    double minDist = DBL_MAX;
-    gp_XY & wGc = vGcVec[ iW ];
-    int bIndex;
-    for ( int iB = 0; iB < nbWires; iB++ ) {
-      if ( bndFound[ iB ] ) continue;
-      double dist = ( wGc - gcVec[ iB ] ).SquareModulus();
-      if ( dist < minDist ) {
-        minDist = dist;
-        bIndex = iB;
-      }
-    }
-    bndFound[ bIndex ] = true;
-    bndIndWirePosMap.insert( TIntWirePosMap::value_type( bIndex, wlIt ));
-  }
-
-  // Treat each wire  
-
-  TIntWirePosMap::iterator bIndWPosIt = bndIndWirePosMap.begin();
-  eID = theFirstEdgeID;
-  for ( ; bIndWPosIt != bndIndWirePosMap.end(); bIndWPosIt++ )
-  {
-    TListOfEdgesList::iterator wirePos = (*bIndWPosIt).second;
-    list < TopoDS_Edge > & wire = ( *wirePos );
-
-    // choose the best first edge of a wire
-    setFirstEdge( wire, eID );
-    
-    // compute eventual UV and fill theEdgesPointsList
-    theEdgesPointsList.push_back( list< TPoint* >() );
-    list< TPoint* > & edgesPoints = theEdgesPointsList.back();
-    for ( eIt = wire.begin(); eIt != wire.end(); eIt++ )
-    {
-      list< TPoint* > & ePoints = getShapePoints( eID++ );
-      computeUVOnEdge( *eIt, ePoints );
-      edgesPoints.insert( edgesPoints.end(), ePoints.begin(), (--ePoints.end()));
-    }
-    // put wire back to theWireList
-    wlIt = wirePos++;
-    theWireList.splice( theToWire, tmpWList, wlIt, wirePos );
-  }
-
-  return true;
-}
-
-//=======================================================================
-//function : Apply
-//purpose  : Compute  nodes coordinates applying
-//           the loaded pattern to <theFace>. The first key-point
-//           will be mapped into <theVertexOnKeyPoint1>
-//=======================================================================
-
-bool SMESH_Pattern::Apply (const TopoDS_Face&   theFace,
-                           const TopoDS_Vertex& theVertexOnKeyPoint1,
-                           const bool           theReverse)
-{
-  MESSAGE(" ::Apply(face) " );
-  TopoDS_Face face  = theReverse ? TopoDS::Face( theFace.Reversed() ) : theFace;
-  if ( !setShapeToMesh( face ))
-    return false;
-
-  // find points on edges, it fills myNbKeyPntInBoundary
-  if ( !findBoundaryPoints() )
-    return false;
-
-  // Define the edges order so that the first edge starts at
-  // theVertexOnKeyPoint1
-
-  list< TopoDS_Edge > eList;
-  list< int >         nbVertexInWires;
-  int nbWires = getOrderedEdges( face, theVertexOnKeyPoint1, eList, nbVertexInWires);
-  if ( !theVertexOnKeyPoint1.IsSame( TopExp::FirstVertex( eList.front(), true )))
-  {
-    MESSAGE( " theVertexOnKeyPoint1 not found in the outer wire ");
-    return setErrorCode( ERR_APPLF_BAD_VERTEX );
-  }
-  // check nb wires and edges
-  list< int > l1 = myNbKeyPntInBoundary, l2 = nbVertexInWires;
-  l1.sort(); l2.sort();
-  if ( l1 != l2 )
-  {
-    MESSAGE( "Wrong nb vertices in wires" );
-    return setErrorCode( ERR_APPL_BAD_NB_VERTICES );
-  }
-
-  // here shapes get IDs, for the outer wire IDs are OK
-  list<TopoDS_Edge>::iterator elIt = eList.begin();
-  for ( ; elIt != eList.end(); elIt++ ) {
-    myShapeIDMap.Add( TopExp::FirstVertex( *elIt, true ));
-    if ( BRep_Tool::IsClosed( *elIt, theFace ) )
-      myShapeIDMap.Add( TopExp::LastVertex( *elIt, true ));
-  }
-  int nbVertices = myShapeIDMap.Extent();
-
-  for ( elIt = eList.begin(); elIt != eList.end(); elIt++ )
-    myShapeIDMap.Add( *elIt );
-
-  myShapeIDMap.Add( face );
-
-  if ( myShapeIDToPointsMap.size() != myShapeIDMap.Extent()/* + nbSeamShapes*/ ) {
-    MESSAGE( myShapeIDToPointsMap.size() <<" != " << myShapeIDMap.Extent());
-    return setErrorCode( ERR_APPLF_INTERNAL_EEROR );
-  }
-
-  // points on edges to be used for UV computation of in-face points
-  list< list< TPoint* > > edgesPointsList;
-  edgesPointsList.push_back( list< TPoint* >() );
-  list< TPoint* > * edgesPoints = & edgesPointsList.back();
-  list< TPoint* >::iterator pIt;
-
-  // compute UV of points on the outer wire
-  int iE, nbEdgesInOuterWire = nbVertexInWires.front();
-  for (iE = 0, elIt = eList.begin();
-       iE < nbEdgesInOuterWire && elIt != eList.end();
-       iE++, elIt++ )
-  {
-    list< TPoint* > & ePoints = getShapePoints( *elIt );
-    // compute UV
-    computeUVOnEdge( *elIt, ePoints );
-    // collect on-edge points (excluding the last one)
-    edgesPoints->insert( edgesPoints->end(), ePoints.begin(), --ePoints.end());
-  }
-
-  // If there are several wires, define the order of edges of inner wires:
-  // compute UV of inner edge-points using 2 methods: the one for in-face points
-  // and the one for on-edge points and then choose the best edge order
-  // by the best correspondance of the 2 results
-  if ( nbWires > 1 )
-  {
-    // compute UV of inner edge-points using the method for in-face points
-    // and devide eList into a list of separate wires
-    bool aBool;
-    list< list< TopoDS_Edge > > wireList;
-    list<TopoDS_Edge>::iterator eIt = elIt;
-    list<int>::iterator nbEIt = nbVertexInWires.begin();
-    for ( nbEIt++; nbEIt != nbVertexInWires.end(); nbEIt++ )
-    {
-      int nbEdges = *nbEIt;
-      wireList.push_back( list< TopoDS_Edge >() );
-      list< TopoDS_Edge > & wire = wireList.back();
-      for ( iE = 0 ; iE < nbEdges; eIt++, iE++ )
-      {
-        list< TPoint* > & ePoints = getShapePoints( *eIt );
-        pIt = ePoints.begin();
-        for (  pIt++; pIt != ePoints.end(); pIt++ ) {
-          TPoint* p = (*pIt);
-          if ( !compUVByIsoIntersection( edgesPointsList, p->myInitUV, p->myUV, aBool )) {
-            MESSAGE("cant Apply(face)");
-            return false;
-          }
-          // keep the computed UV to compare against by setFirstEdge()
-          p->myXYZ.SetCoord( p->myUV.X(), p->myUV.Y(), 0. );
-        }
-        wire.push_back( *eIt );
-      }
-    }
-    // remove inner edges from eList
-    eList.erase( elIt, eList.end() );
-
-    // sort wireList by nb edges in a wire
-    sortBySize< TopoDS_Edge > ( wireList );
-
-    // an ID of the first edge of a boundary
-    int id1 = nbVertices + nbEdgesInOuterWire + 1;
-//     if ( nbSeamShapes > 0 )
-//       id1 += 2; // 2 vertices more
-
-    // find points - edge correspondence for wires of unique size,
-    // edge order within a wire should be defined only
-
-    list< list< TopoDS_Edge > >::iterator wlIt = wireList.begin();
-    while ( wlIt != wireList.end() )
-    {
-      list< TopoDS_Edge >& wire = (*wlIt);
-      int nbEdges = wire.size();
-      wlIt++;
-      if ( wlIt == wireList.end() || (*wlIt).size() != nbEdges ) // a unique size wire
-      {
-        // choose the best first edge of a wire
-        setFirstEdge( wire, id1 );
-
-        // compute eventual UV and collect on-edge points
-        edgesPointsList.push_back( list< TPoint* >() );
-        edgesPoints = & edgesPointsList.back();
-        int eID = id1;
-        for ( eIt = wire.begin(); eIt != wire.end(); eIt++ )
-        {
-          list< TPoint* > & ePoints = getShapePoints( eID++ );
-          computeUVOnEdge( *eIt, ePoints );
-          edgesPoints->insert( edgesPoints->end(), ePoints.begin(), (--ePoints.end()));
-        }
-      }
-      id1 += nbEdges;
-    }
-
-    // find boundary - wire correspondence for several wires of same size
-    
-    id1 = nbVertices + nbEdgesInOuterWire + 1;
-    wlIt = wireList.begin();
-    while ( wlIt != wireList.end() )
-    {
-      int nbSameSize = 0, nbEdges = (*wlIt).size();
-      list< list< TopoDS_Edge > >::iterator wlIt2 = wlIt;
-      wlIt2++;
-      while ( wlIt2 != wireList.end() && (*wlIt2).size() == nbEdges ) { // a same size wire
-        nbSameSize++;
-        wlIt2++;
-      }
-      if ( nbSameSize > 0 )
-        if (!sortSameSizeWires(wireList, wlIt, wlIt2, id1, edgesPointsList))
-          return false;
-      wlIt = wlIt2;
-      id1 += nbEdges * ( nbSameSize + 1 );
-    }
-
-    // add well-ordered edges to eList
-    
-    for ( wlIt = wireList.begin(); wlIt != wireList.end(); wlIt++ )
-    {
-      list< TopoDS_Edge >& wire = (*wlIt);
-      eList.splice( eList.end(), wire, wire.begin(), wire.end() );
-    }
-
-    // re-fill myShapeIDMap - all shapes get good IDs
-
-    myShapeIDMap.Clear();
-    for ( elIt = eList.begin(); elIt != eList.end(); elIt++ )
-      myShapeIDMap.Add( TopExp::FirstVertex( *elIt, true ));
-    for ( elIt = eList.begin(); elIt != eList.end(); elIt++ )
-      myShapeIDMap.Add( *elIt );
-    myShapeIDMap.Add( face );
-    
-  } // there are inner wires
-
-  // Compute XYZ of on-edge points
-
-  TopLoc_Location loc;
-  for ( iE = nbVertices + 1, elIt = eList.begin(); elIt != eList.end(); elIt++ )
-  {
-    double f,l;
-    Handle(Geom_Curve) C3d = BRep_Tool::Curve( *elIt, loc, f, l );
-    const gp_Trsf & aTrsf = loc.Transformation();
-    list< TPoint* > & ePoints = getShapePoints( iE++ );
-    pIt = ePoints.begin();
-    for ( pIt++; pIt != ePoints.end(); pIt++ )
-    {
-      TPoint* point = *pIt;
-      point->myXYZ = C3d->Value( point->myU );
-      if ( !loc.IsIdentity() )
-        aTrsf.Transforms( point->myXYZ.ChangeCoord() );
-    }
-  }
-
-  // Compute UV and XYZ of in-face points
-
-  // try to use a simple algo
-  list< TPoint* > & fPoints = getShapePoints( face );
-  bool isDeformed = false;
-  for ( pIt = fPoints.begin(); !isDeformed && pIt != fPoints.end(); pIt++ )
-    if ( !compUVByIsoIntersection( edgesPointsList, (*pIt)->myInitUV,
-                                  (*pIt)->myUV, isDeformed )) {
-      MESSAGE("cant Apply(face)");
-      return false;
-    }
-  // try to use a complex algo if it is a difficult case
-  if ( isDeformed && !compUVByElasticIsolines( edgesPointsList, fPoints ))
-  {
-    for ( ; pIt != fPoints.end(); pIt++ ) // continue with the simple algo
-      if ( !compUVByIsoIntersection( edgesPointsList, (*pIt)->myInitUV,
-                                    (*pIt)->myUV, isDeformed )) {
-        MESSAGE("cant Apply(face)");
-        return false;
-      }
-  }
-
-  Handle(Geom_Surface) aSurface = BRep_Tool::Surface( face, loc );
-  const gp_Trsf & aTrsf = loc.Transformation();
-  for ( pIt = fPoints.begin(); pIt != fPoints.end(); pIt++ )
-  {
-    TPoint * point = *pIt;
-    point->myXYZ = aSurface->Value( point->myUV.X(), point->myUV.Y() );
-    if ( !loc.IsIdentity() )
-      aTrsf.Transforms( point->myXYZ.ChangeCoord() );
-  }
-
-  myIsComputed = true;
-
-  return setErrorCode( ERR_OK );
-}
-
-//=======================================================================
-//function : Apply
-//purpose  : Compute nodes coordinates applying
-//           the loaded pattern to <theFace>. The first key-point
-//           will be mapped into <theNodeIndexOnKeyPoint1>-th node
-//=======================================================================
-
-bool SMESH_Pattern::Apply (const SMDS_MeshFace* theFace,
-                           const int            theNodeIndexOnKeyPoint1,
-                           const bool           theReverse)
-{
-//  MESSAGE(" ::Apply(MeshFace) " );
-
-  if ( !IsLoaded() ) {
-    MESSAGE( "Pattern not loaded" );
-    return setErrorCode( ERR_APPL_NOT_LOADED );
-  }
-
-  // check nb of nodes
-  if (theFace->NbNodes() != myNbKeyPntInBoundary.front() ) {
-    MESSAGE( myKeyPointIDs.size() << " != " << theFace->NbNodes() );
-    return setErrorCode( ERR_APPL_BAD_NB_VERTICES );
-  }
-
-  // find points on edges, it fills myNbKeyPntInBoundary
-  if ( !findBoundaryPoints() )
-    return false;
-
-  // check that there are no holes in a pattern
-  if (myNbKeyPntInBoundary.size() > 1 ) {
-    return setErrorCode( ERR_APPL_BAD_NB_VERTICES );
-  }
-
-  // Define the nodes order
-
-  list< const SMDS_MeshNode* > nodes;
-  list< const SMDS_MeshNode* >::iterator n = nodes.end();
-  SMDS_ElemIteratorPtr noIt = theFace->nodesIterator();
-  int iSub = 0;
-  while ( noIt->more() ) {
-    const SMDS_MeshNode* node = static_cast<const SMDS_MeshNode*>( noIt->next() );
-    nodes.push_back( node );
-    if ( iSub++ == theNodeIndexOnKeyPoint1 )
-      n = --nodes.end();
-  }
-  if ( n != nodes.end() ) {
-    if ( theReverse ) {
-      if ( n != --nodes.end() )
-        nodes.splice( nodes.begin(), nodes, ++n, nodes.end() );
-      nodes.reverse();
-    }
-    else if ( n != nodes.begin() )
-      nodes.splice( nodes.end(), nodes, nodes.begin(), n );
-  }
-  list< gp_XYZ > xyzList;
-  myOrderedNodes.resize( theFace->NbNodes() );
-  for ( iSub = 0, n = nodes.begin(); n != nodes.end(); ++n ) {
-    xyzList.push_back( gp_XYZ( (*n)->X(), (*n)->Y(), (*n)->Z() ));
-    myOrderedNodes[ iSub++] = *n;
-  }
-
-  // Define a face plane
-
-  list< gp_XYZ >::iterator xyzIt = xyzList.begin();
-  gp_Pnt P ( *xyzIt++ );
-  gp_Vec Vx( P, *xyzIt++ ), N;
-  do {
-    N = Vx ^ gp_Vec( P, *xyzIt++ );
-  } while ( N.SquareMagnitude() <= DBL_MIN && xyzIt != xyzList.end() );
-  if ( N.SquareMagnitude() <= DBL_MIN )
-    return setErrorCode( ERR_APPLF_BAD_FACE_GEOM );
-  gp_Ax2 pos( P, N, Vx );
-
-  // Compute UV of key-points on a plane
-  for ( xyzIt = xyzList.begin(), iSub = 1; xyzIt != xyzList.end(); xyzIt++, iSub++ )
-  {
-    gp_Vec vec ( pos.Location(), *xyzIt );
-    TPoint* p = getShapePoints( iSub ).front();
-    p->myUV.SetX( vec * pos.XDirection() );
-    p->myUV.SetY( vec * pos.YDirection() );
-    p->myXYZ = *xyzIt;
-  }
-
-  // points on edges to be used for UV computation of in-face points
-  list< list< TPoint* > > edgesPointsList;
-  edgesPointsList.push_back( list< TPoint* >() );
-  list< TPoint* > * edgesPoints = & edgesPointsList.back();
-  list< TPoint* >::iterator pIt;
-
-  // compute UV and XYZ of points on edges
-
-  for ( xyzIt = xyzList.begin(); xyzIt != xyzList.end(); iSub++ )
-  {
-    gp_XYZ& xyz1 = *xyzIt++;
-    gp_XYZ& xyz2 = ( xyzIt != xyzList.end() ) ? *xyzIt : xyzList.front();
-    
-    list< TPoint* > & ePoints = getShapePoints( iSub );
-    ePoints.back()->myInitU = 1.0;
-    list< TPoint* >::const_iterator pIt = ++ePoints.begin();
-    while ( *pIt != ePoints.back() )
-    {
-      TPoint* p = *pIt++;
-      p->myXYZ = xyz1 * ( 1 - p->myInitU ) + xyz2 * p->myInitU;
-      gp_Vec vec ( pos.Location(), p->myXYZ );
-      p->myUV.SetX( vec * pos.XDirection() );
-      p->myUV.SetY( vec * pos.YDirection() );
-    }
-    // collect on-edge points (excluding the last one)
-    edgesPoints->insert( edgesPoints->end(), ePoints.begin(), --ePoints.end());
-  }
-
-  // Compute UV and XYZ of in-face points
-
-  // try to use a simple algo to compute UV
-  list< TPoint* > & fPoints = getShapePoints( iSub );
-  bool isDeformed = false;
-  for ( pIt = fPoints.begin(); !isDeformed && pIt != fPoints.end(); pIt++ )
-    if ( !compUVByIsoIntersection( edgesPointsList, (*pIt)->myInitUV,
-                                  (*pIt)->myUV, isDeformed )) {
-      MESSAGE("cant Apply(face)");
-      return false;
-    }
-  // try to use a complex algo if it is a difficult case
-  if ( isDeformed && !compUVByElasticIsolines( edgesPointsList, fPoints ))
-  {
-    for ( ; pIt != fPoints.end(); pIt++ ) // continue with the simple algo
-      if ( !compUVByIsoIntersection( edgesPointsList, (*pIt)->myInitUV,
-                                    (*pIt)->myUV, isDeformed )) {
-        MESSAGE("cant Apply(face)");
-        return false;
-      }
-  }
-
-  for ( pIt = fPoints.begin(); pIt != fPoints.end(); pIt++ )
-  {
-    (*pIt)->myXYZ = ElSLib::PlaneValue( (*pIt)->myUV.X(), (*pIt)->myUV.Y(), pos );
-  }
-
-  myIsComputed = true;
-
-  return setErrorCode( ERR_OK );
-}
-
-//=======================================================================
-//function : undefinedXYZ
-//purpose  : 
-//=======================================================================
-
-static const gp_XYZ& undefinedXYZ()
-{
-  static gp_XYZ xyz( 1.e100, 0., 0. );
-  return xyz;
-}
-
-//=======================================================================
-//function : isDefined
-//purpose  : 
-//=======================================================================
-
-inline static bool isDefined(const gp_XYZ& theXYZ)
-{
-  return theXYZ.X() < 1.e100;
-}
-
-//=======================================================================
-//function : Apply
-//purpose  : Compute nodes coordinates applying
-//           the loaded pattern to <theFaces>. The first key-point
-//           will be mapped into <theNodeIndexOnKeyPoint1>-th node
-//=======================================================================
-
-bool SMESH_Pattern::Apply (std::set<const SMDS_MeshFace*>& theFaces,
-                           const int                       theNodeIndexOnKeyPoint1,
-                           const bool                      theReverse)
-{
-  MESSAGE(" ::Apply(set<MeshFace>) " );
-
-  if ( !IsLoaded() ) {
-    MESSAGE( "Pattern not loaded" );
-    return setErrorCode( ERR_APPL_NOT_LOADED );
-  }
-
-  // find points on edges, it fills myNbKeyPntInBoundary
-  if ( !findBoundaryPoints() )
-    return false;
-
-  // check that there are no holes in a pattern
-  if (myNbKeyPntInBoundary.size() > 1 ) {
-    return setErrorCode( ERR_APPL_BAD_NB_VERTICES );
-  }
-
-  myShape.Nullify();
-  myXYZ.clear();
-  myElemXYZIDs.clear();
-  myXYZIdToNodeMap.clear();
-  myElements.clear();
-  myIdsOnBoundary.clear();
-  myReverseConnectivity.clear();
-
-  myXYZ.resize( myPoints.size() * theFaces.size(), undefinedXYZ() );
-  myElements.reserve( theFaces.size() );
-
-  // to find point index
-  map< TPoint*, int > pointIndex;
-  for ( int i = 0; i < myPoints.size(); i++ )
-    pointIndex.insert( make_pair( & myPoints[ i ], i ));
-
-  int ind1 = 0; // lowest point index for a face
-
-  // apply to each face in theFaces set
-  set<const SMDS_MeshFace*>::iterator face = theFaces.begin();
-  for ( ; face != theFaces.end(); ++face )
-  {
-    if ( !Apply( *face, theNodeIndexOnKeyPoint1, theReverse )) {
-      MESSAGE( "Failed on " << *face );
-      continue;
-    }
-    myElements.push_back( *face );
-
-    // store computed points belonging to elements
-    list< TElemDef >::iterator ll = myElemPointIDs.begin();
-    for ( ; ll != myElemPointIDs.end(); ++ll )
-    {
-      myElemXYZIDs.push_back(TElemDef());
-      TElemDef& xyzIds = myElemXYZIDs.back();
-      TElemDef& pIds = *ll;
-      for ( TElemDef::iterator id = pIds.begin(); id != pIds.end(); id++ ) {
-        int pIndex = *id + ind1;
-        xyzIds.push_back( pIndex );
-        myXYZ[ pIndex ] = myPoints[ *id ].myXYZ.XYZ();
-        myReverseConnectivity[ pIndex ].push_back( & xyzIds );
-      }
-    }
-    // put points on links to myIdsOnBoundary,
-    // they will be used to sew new elements on adjacent refined elements
-    int nbNodes = (*face)->NbNodes(), eID = nbNodes + 1;
-    for ( int i = 0; i < nbNodes; i++ )
-    {
-      list< TPoint* > & linkPoints = getShapePoints( eID++ );
-      const SMDS_MeshNode* n1 = myOrderedNodes[ i ];
-      const SMDS_MeshNode* n2 = myOrderedNodes[ i + 1 == nbNodes ? 0 : i + 1 ];
-      // make a link and a node set
-      TNodeSet linkSet, node1Set;
-      linkSet.insert( n1 );
-      linkSet.insert( n2 );
-      node1Set.insert( n1 );
-      list< TPoint* >::iterator p = linkPoints.begin();
-      {
-        // map the first link point to n1
-        int nId = pointIndex[ *p ] + ind1;
-        myXYZIdToNodeMap[ nId ] = n1;
-        list< list< int > >& groups = myIdsOnBoundary[ node1Set ];
-        groups.push_back(list< int > ());
-        groups.back().push_back( nId );
-      }
-      // add the linkSet to the map
-      list< list< int > >& groups = myIdsOnBoundary[ linkSet ];
-      groups.push_back(list< int > ());
-      list< int >& indList = groups.back();
-      // add points to the map excluding the end points
-      for ( p++; *p != linkPoints.back(); p++ )
-        indList.push_back( pointIndex[ *p ] + ind1 );
-    }
-    ind1 += myPoints.size();
-  }
-
-  return !myElemXYZIDs.empty();
-}
-
-//=======================================================================
-//function : Apply
-//purpose  : Compute nodes coordinates applying
-//           the loaded pattern to <theVolumes>. The (0,0,0) key-point
-//           will be mapped into <theNode000Index>-th node. The
-//           (0,0,1) key-point will be mapped into <theNode000Index>-th
-//           node.
-//=======================================================================
-
-bool SMESH_Pattern::Apply (std::set<const SMDS_MeshVolume*> & theVolumes,
-                           const int                          theNode000Index,
-                           const int                          theNode001Index)
-{
-  MESSAGE(" ::Apply(set<MeshVolumes>) " );
-
-  if ( !IsLoaded() ) {
-    MESSAGE( "Pattern not loaded" );
-    return setErrorCode( ERR_APPL_NOT_LOADED );
-  }
-
-   // bind ID to points
-  if ( !findBoundaryPoints() )
-    return false;
-
-  // check that there are no holes in a pattern
-  if (myNbKeyPntInBoundary.size() > 1 ) {
-    return setErrorCode( ERR_APPL_BAD_NB_VERTICES );
-  }
-
-  myShape.Nullify();
-  myXYZ.clear();
-  myElemXYZIDs.clear();
-  myXYZIdToNodeMap.clear();
-  myElements.clear();
-  myIdsOnBoundary.clear();
-  myReverseConnectivity.clear();
-
-  myXYZ.resize( myPoints.size() * theVolumes.size(), undefinedXYZ() );
-  myElements.reserve( theVolumes.size() );
-
-  // to find point index
-  map< TPoint*, int > pointIndex;
-  for ( int i = 0; i < myPoints.size(); i++ )
-    pointIndex.insert( make_pair( & myPoints[ i ], i ));
-
-  int ind1 = 0; // lowest point index for an element
-
-  // apply to each element in theVolumes set
-  set<const SMDS_MeshVolume*>::iterator vol = theVolumes.begin();
-  for ( ; vol != theVolumes.end(); ++vol )
-  {
-    if ( !Apply( *vol, theNode000Index, theNode001Index )) {
-      MESSAGE( "Failed on " << *vol );
-      continue;
-    }
-    myElements.push_back( *vol );
-
-    // store computed points belonging to elements
-    list< TElemDef >::iterator ll = myElemPointIDs.begin();
-    for ( ; ll != myElemPointIDs.end(); ++ll )
-    {
-      myElemXYZIDs.push_back(TElemDef());
-      TElemDef& xyzIds = myElemXYZIDs.back();
-      TElemDef& pIds = *ll;
-      for ( TElemDef::iterator id = pIds.begin(); id != pIds.end(); id++ ) {
-        int pIndex = *id + ind1;
-        xyzIds.push_back( pIndex );
-        myXYZ[ pIndex ] = myPoints[ *id ].myXYZ.XYZ();
-        myReverseConnectivity[ pIndex ].push_back( & xyzIds );
-      }
-    }
-    // put points on edges and faces to myIdsOnBoundary,
-    // they will be used to sew new elements on adjacent refined elements
-    for ( int Id = SMESH_Block::ID_V000; Id <= SMESH_Block::ID_F1yz; Id++ )
-    {
-      // make a set of sub-points
-      TNodeSet subNodes;
-      vector< int > subIDs;
-      if ( SMESH_Block::IsVertexID( Id )) {
-        subNodes.insert( myOrderedNodes[ Id - 1 ]);
-      }
-      else if ( SMESH_Block::IsEdgeID( Id )) {
-        SMESH_Block::GetEdgeVertexIDs( Id, subIDs );
-        subNodes.insert( myOrderedNodes[ subIDs.front() - 1 ]);
-        subNodes.insert( myOrderedNodes[ subIDs.back() - 1 ]);
-      }
-      else {
-        SMESH_Block::GetFaceEdgesIDs( Id, subIDs );
-        int e1 = subIDs[ 0 ], e2 = subIDs[ 1 ];
-        SMESH_Block::GetEdgeVertexIDs( e1, subIDs );
-        subNodes.insert( myOrderedNodes[ subIDs.front() - 1 ]);
-        subNodes.insert( myOrderedNodes[ subIDs.back() - 1 ]);
-        SMESH_Block::GetEdgeVertexIDs( e2, subIDs );
-        subNodes.insert( myOrderedNodes[ subIDs.front() - 1 ]);
-        subNodes.insert( myOrderedNodes[ subIDs.back() - 1 ]);
-      }
-      // add points
-      list< TPoint* > & points = getShapePoints( Id );
-      list< TPoint* >::iterator p = points.begin();
-      list< list< int > >& groups = myIdsOnBoundary[ subNodes ];
-      groups.push_back(list< int > ());
-      list< int >& indList = groups.back();
-      for ( ; p != points.end(); p++ )
-        indList.push_back( pointIndex[ *p ] + ind1 );
-      if ( subNodes.size() == 1 ) // vertex case
-        myXYZIdToNodeMap[ indList.back() ] = myOrderedNodes[ Id - 1 ];
-    }
-    ind1 += myPoints.size();
-  }
-
-  return !myElemXYZIDs.empty();
-}
-
-//=======================================================================
-//function : Load
-//purpose  : Create a pattern from the mesh built on <theBlock>
-//=======================================================================
-
-bool SMESH_Pattern::Load (SMESH_Mesh*         theMesh,
-                          const TopoDS_Shell& theBlock)
-{
-  MESSAGE(" ::Load(volume) " );
-  Clear();
-  myIs2D = false;
-  SMESHDS_Mesh * aMeshDS = theMesh->GetMeshDS();
-
-  // load shapes in myShapeIDMap
-  SMESH_Block block;
-  TopoDS_Vertex v1, v2;
-  if ( !block.LoadBlockShapes( theBlock, v1, v2, myShapeIDMap ))
-    return setErrorCode( ERR_LOADV_BAD_SHAPE );
-
-  // count nodes
-  int nbNodes = 0, shapeID;
-  for ( shapeID = 1; shapeID <= myShapeIDMap.Extent(); shapeID++ )
-  {
-    const TopoDS_Shape& S = myShapeIDMap( shapeID );
-    SMESHDS_SubMesh * aSubMesh = aMeshDS->MeshElements( S );
-    if ( aSubMesh )
-      nbNodes += aSubMesh->NbNodes();
-  }
-  myPoints.resize( nbNodes );
-
-  // load U of points on edges
-  TNodePointIDMap nodePointIDMap;
-  int iPoint = 0;
-  for ( shapeID = 1; shapeID <= myShapeIDMap.Extent(); shapeID++ )
-  {
-    const TopoDS_Shape& S = myShapeIDMap( shapeID );
-    list< TPoint* > & shapePoints = getShapePoints( shapeID );
-    SMESHDS_SubMesh * aSubMesh = aMeshDS->MeshElements( S );
-    if ( ! aSubMesh ) continue;
-    SMDS_NodeIteratorPtr nIt = aSubMesh->GetNodes();
-    if ( !nIt->more() ) continue;
-
-      // store a node and a point
-    while ( nIt->more() ) {
-      const SMDS_MeshNode* node = static_cast<const SMDS_MeshNode*>( nIt->next() );
-      nodePointIDMap.insert( make_pair( node, iPoint ));
-      if ( block.IsVertexID( shapeID ))
-        myKeyPointIDs.push_back( iPoint );
-      TPoint* p = & myPoints[ iPoint++ ];
-      shapePoints.push_back( p );
-      p->myXYZ.SetCoord( node->X(), node->Y(), node->Z() );
-      p->myInitXYZ.SetCoord( 0,0,0 );
-    }
-    list< TPoint* >::iterator pIt = shapePoints.begin();
-
-    // compute init XYZ
-    switch ( S.ShapeType() )
-    {
-    case TopAbs_VERTEX:
-    case TopAbs_EDGE: {
-
-      for ( ; pIt != shapePoints.end(); pIt++ ) {
-        double * coef = block.GetShapeCoef( shapeID );
-        for ( int iCoord = 1; iCoord <= 3; iCoord++ )
-          if ( coef[ iCoord - 1] > 0 )
-            (*pIt)->myInitXYZ.SetCoord( iCoord, 1. );
-      }
-      if ( S.ShapeType() == TopAbs_VERTEX )
-        break;
-
-      const TopoDS_Edge& edge = TopoDS::Edge( S );
-      double f,l;
-      BRep_Tool::Range( edge, f, l );
-      int iCoord     = SMESH_Block::GetCoordIndOnEdge( shapeID );
-      bool isForward = SMESH_Block::IsForwardEdge( edge, myShapeIDMap );
-      pIt = shapePoints.begin();
-      nIt = aSubMesh->GetNodes();
-      for ( ; nIt->more(); pIt++ )
-      {
-        const SMDS_MeshNode* node = 
-          static_cast<const SMDS_MeshNode*>( nIt->next() );
-        const SMDS_EdgePosition* epos =
-          static_cast<const SMDS_EdgePosition*>(node->GetPosition().get());
-        double u = ( epos->GetUParameter() - f ) / ( l - f );
-        (*pIt)->myInitXYZ.SetCoord( iCoord, isForward ? u : 1 - u );
-      }
-      break;
-    }
-    default:
-      for ( ; pIt != shapePoints.end(); pIt++ )
-      {
-        if ( !block.ComputeParameters( (*pIt)->myXYZ, (*pIt)->myInitXYZ, shapeID )) {
-          MESSAGE( "!block.ComputeParameters()" );
-          return setErrorCode( ERR_LOADV_COMPUTE_PARAMS );
-        }
-      }
-    }
-  } // loop on block sub-shapes
-
-  // load elements
-
-  SMESHDS_SubMesh * aSubMesh = aMeshDS->MeshElements( theBlock );
-  if ( aSubMesh )
-  {
-    SMDS_ElemIteratorPtr elemIt = aSubMesh->GetElements();
-    while ( elemIt->more() ) {
-      SMDS_ElemIteratorPtr nIt = elemIt->next()->nodesIterator();
-      myElemPointIDs.push_back( TElemDef() );
-      TElemDef& elemPoints = myElemPointIDs.back();
-      while ( nIt->more() )
-        elemPoints.push_back( nodePointIDMap[ nIt->next() ]);
-    }
-  }
-
-  myIsBoundaryPointsFound = true;
-
-  return setErrorCode( ERR_OK );
-}
-
-//=======================================================================
-//function : Apply
-//purpose  : Compute nodes coordinates applying
-//           the loaded pattern to <theBlock>. The (0,0,0) key-point
-//           will be mapped into <theVertex000>. The (0,0,1)
-//           fifth key-point will be mapped into <theVertex001>.
-//=======================================================================
-
-bool SMESH_Pattern::Apply (const TopoDS_Shell&  theBlock,
-                           const TopoDS_Vertex& theVertex000,
-                           const TopoDS_Vertex& theVertex001)
-{
-  MESSAGE(" ::Apply(volume) " );
-
-  if (!findBoundaryPoints()     || // bind ID to points
-      !setShapeToMesh( theBlock )) // check theBlock is a suitable shape
-    return false;
-
-  SMESH_Block block;  // bind ID to shape
-  if (!block.LoadBlockShapes( theBlock, theVertex000, theVertex001, myShapeIDMap ))
-    return setErrorCode( ERR_APPLV_BAD_SHAPE );
-
-  // compute XYZ of points on shapes
-
-  for ( int shapeID = 1; shapeID <= myShapeIDMap.Extent(); shapeID++ )
-  {
-    list< TPoint* > & shapePoints = getShapePoints( shapeID );
-    list< TPoint* >::iterator pIt = shapePoints.begin();
-    const TopoDS_Shape& S = myShapeIDMap( shapeID );
-    switch ( S.ShapeType() )
-    {
-    case TopAbs_VERTEX: {
-
-      for ( ; pIt != shapePoints.end(); pIt++ )
-        block.VertexPoint( shapeID, (*pIt)->myXYZ.ChangeCoord() );
-      break;
-    }
-    case TopAbs_EDGE: {
-
-      for ( ; pIt != shapePoints.end(); pIt++ )
-        block.EdgePoint( shapeID, (*pIt)->myInitXYZ, (*pIt)->myXYZ.ChangeCoord() );
-      break;
-    }
-    case TopAbs_FACE: {
-
-      for ( ; pIt != shapePoints.end(); pIt++ )
-        block.FacePoint( shapeID, (*pIt)->myInitXYZ, (*pIt)->myXYZ.ChangeCoord() );
-      break;
-    }
-    default:
-      for ( ; pIt != shapePoints.end(); pIt++ )
-        block.ShellPoint( (*pIt)->myInitXYZ, (*pIt)->myXYZ.ChangeCoord() );
-    }
-  } // loop on block sub-shapes
-
-  myIsComputed = true;
-
-  return setErrorCode( ERR_OK );
-}
-
-//=======================================================================
-//function : Apply
-//purpose  : Compute nodes coordinates applying
-//           the loaded pattern to <theVolume>. The (0,0,0) key-point
-//           will be mapped into <theNode000Index>-th node. The
-//           (0,0,1) key-point will be mapped into <theNode000Index>-th
-//           node.
-//=======================================================================
-
-bool SMESH_Pattern::Apply (const SMDS_MeshVolume* theVolume,
-                           const int              theNode000Index,
-                           const int              theNode001Index)
-{
-  //MESSAGE(" ::Apply(MeshVolume) " );
-
-  if (!findBoundaryPoints()) // bind ID to points
-    return false;
-
-  SMESH_Block block;  // bind ID to shape
-  if (!block.LoadMeshBlock( theVolume, theNode000Index, theNode001Index, myOrderedNodes ))
-    return setErrorCode( ERR_APPLV_BAD_SHAPE );
-  // compute XYZ of points on shapes
-
-  for ( int ID = SMESH_Block::ID_V000; ID <= SMESH_Block::ID_Shell; ID++ )
-  {
-    list< TPoint* > & shapePoints = getShapePoints( ID );
-    list< TPoint* >::iterator pIt = shapePoints.begin();
-
-    if ( block.IsVertexID( ID ))
-      for ( ; pIt != shapePoints.end(); pIt++ ) {
-        block.VertexPoint( ID, (*pIt)->myXYZ.ChangeCoord() );
-      }
-    else if ( block.IsEdgeID( ID ))
-      for ( ; pIt != shapePoints.end(); pIt++ ) {
-        block.EdgePoint( ID, (*pIt)->myInitXYZ, (*pIt)->myXYZ.ChangeCoord() );
-      }
-    else if ( block.IsFaceID( ID ))
-      for ( ; pIt != shapePoints.end(); pIt++ ) {
-        block.FacePoint( ID, (*pIt)->myInitXYZ, (*pIt)->myXYZ.ChangeCoord() );
-      }
-    else
-      for ( ; pIt != shapePoints.end(); pIt++ )
-        block.ShellPoint( (*pIt)->myInitXYZ, (*pIt)->myXYZ.ChangeCoord() );
-  } // loop on block sub-shapes
-
-  myIsComputed = true;
-
-  return setErrorCode( ERR_OK );
-}
-
-//=======================================================================
-//function : mergePoints
-//purpose  : Merge XYZ on edges and/or faces.
-//=======================================================================
-
-void SMESH_Pattern::mergePoints (const bool uniteGroups)
-{
-  map< TNodeSet, list< list< int > > >::iterator idListIt = myIdsOnBoundary.begin();
-  for ( ; idListIt != myIdsOnBoundary.end(); idListIt++ )
-  {
-    list<list< int > >& groups = idListIt->second;
-    if ( groups.size() < 2 )
-      continue;
-
-    // find tolerance
-    const TNodeSet& nodes = idListIt->first;
-    double tol2 = 1.e-10;
-    if ( nodes.size() > 1 ) {
-      Bnd_Box box;
-      TNodeSet::const_iterator n = nodes.begin();
-      for ( ; n != nodes.end(); ++n )
-        box.Add( gp_Pnt( (*n)->X(), (*n)->Y(), (*n)->Z() ));
-      double x, y, z, X, Y, Z;
-      box.Get( x, y, z, X, Y, Z );
-      gp_Pnt p( x, y, z ), P( X, Y, Z );
-      tol2 = 1.e-4 * p.SquareDistance( P );
-    }
-
-    // to unite groups on link
-    bool unite = ( uniteGroups && nodes.size() == 2 );
-    map< double, int > distIndMap;
-    const SMDS_MeshNode* node = *nodes.begin();
-    gp_Pnt P( node->X(), node->Y(), node->Z() );
-
-    // compare points, replace indices
-
-    list< int >::iterator ind1, ind2;
-    list< list< int > >::iterator grpIt1, grpIt2;
-    for ( grpIt1 = groups.begin(); grpIt1 != groups.end(); grpIt1++ )
-    {
-      list< int >& indices1 = *grpIt1;
-      grpIt2 = grpIt1;
-      for ( grpIt2++; grpIt2 != groups.end(); grpIt2++ )
-      {
-        list< int >& indices2 = *grpIt2;
-        for ( ind1 = indices1.begin(); ind1 != indices1.end(); ind1++ )
-        {
-          gp_XYZ& p1 = myXYZ[ *ind1 ];
-          ind2 = indices2.begin();
-          while ( ind2 != indices2.end() )
-          {
-            gp_XYZ& p2 = myXYZ[ *ind2 ];
-            //MESSAGE("COMP: " << *ind1 << " " << *ind2 << " X: " << p2.X() << " tol2: " << tol2);
-            if ( ( p1 - p2 ).SquareModulus() <= tol2 )
-            {
-              ASSERT( myReverseConnectivity.find( *ind2 ) != myReverseConnectivity.end() );
-              list< TElemDef* > & elemXYZIDsList = myReverseConnectivity[ *ind2 ];
-              list< TElemDef* >::iterator elemXYZIDs = elemXYZIDsList.begin();
-              for ( ; elemXYZIDs != elemXYZIDsList.end(); elemXYZIDs++ )
-              {
-                //MESSAGE( " Replace " << *ind2 << " with " << *ind1 );
-                myXYZ[ *ind2 ] = undefinedXYZ();
-                replace( (*elemXYZIDs)->begin(), (*elemXYZIDs)->end(), *ind2, *ind1 );
-              }
-              ind2 = indices2.erase( ind2 );
-            }
-            else
-              ind2++;
-          }
-        }
-      }
-      if ( unite ) { // sort indices using distIndMap
-        for ( ind1 = indices1.begin(); ind1 != indices1.end(); ind1++ )
-        {
-          ASSERT( isDefined( myXYZ[ *ind1 ] ));
-          double dist = P.SquareDistance( myXYZ[ *ind1 ]);
-          distIndMap.insert( make_pair( dist, *ind1 ));
-        }
-      }
-    }
-    if ( unite ) { // put all sorted indices into the first group
-      list< int >& g = groups.front();
-      g.clear();
-      map< double, int >::iterator dist_ind = distIndMap.begin();
-      for ( ; dist_ind != distIndMap.end(); dist_ind++ )
-        g.push_back( dist_ind->second );
-    }
-  } // loop on myIdsOnBoundary
-}
-
-//=======================================================================
-//function : makePolyElements
-//purpose  : prepare intermediate data to create Polygons and Polyhedrons
-//=======================================================================
-
-void SMESH_Pattern::
-  makePolyElements(const vector< const SMDS_MeshNode* >& theNodes,
-                   const bool                            toCreatePolygons,
-                   const bool                            toCreatePolyedrs)
-{
-  myPolyElemXYZIDs.clear();
-  myPolyElems.clear();
-  myPolyElems.reserve( myIdsOnBoundary.size() );
-
-  // make a set of refined elements
-  set< const SMDS_MeshElement* > avoidSet, elemSet;
-  avoidSet.insert( myElements.begin(), myElements.end() );
-
-  map< TNodeSet, list< list< int > > >::iterator indListIt, nn_IdList;
-
-  if ( toCreatePolygons )
-  {
-    int lastFreeId = myXYZ.size();
-
-    // loop on links of refined elements
-    indListIt = myIdsOnBoundary.begin();
-    for ( ; indListIt != myIdsOnBoundary.end(); indListIt++ )
-    {
-      const TNodeSet & linkNodes = indListIt->first;
-      if ( linkNodes.size() != 2 )
-        continue; // skip face
-      const SMDS_MeshNode* n1 = * linkNodes.begin();
-      const SMDS_MeshNode* n2 = * linkNodes.rbegin();
-
-      list<list< int > >& idGroups = indListIt->second; // ids of nodes to build
-      if ( idGroups.empty() || idGroups.front().empty() )
-        continue;
-
-      // find not refined face having n1-n2 link
-
-      while (true)
-      {
-        const SMDS_MeshElement* face =
-          SMESH_MeshEditor::FindFaceInSet( n1, n2, elemSet, avoidSet );
-        if ( face )
-        {
-          avoidSet.insert ( face );
-          myPolyElems.push_back( face );
-
-          // some links of <face> are split;
-          // make list of xyz for <face>
-          myPolyElemXYZIDs.push_back(TElemDef());
-          TElemDef & faceNodeIds = myPolyElemXYZIDs.back();
-          // loop on links of a <face>
-          SMDS_ElemIteratorPtr nIt = face->nodesIterator();
-          int i = 0, nbNodes = face->NbNodes();
-          vector<const SMDS_MeshNode*> nodes( nbNodes + 1 );
-          while ( nIt->more() )
-            nodes[ i++ ] = static_cast<const SMDS_MeshNode*>( nIt->next() );
-          nodes[ i ] = nodes[ 0 ];
-          for ( i = 0; i < nbNodes; ++i )
-          {
-            // look for point mapped on a link
-            TNodeSet faceLinkNodes;
-            faceLinkNodes.insert( nodes[ i ] );
-            faceLinkNodes.insert( nodes[ i + 1 ] );
-            if ( faceLinkNodes == linkNodes )
-              nn_IdList = indListIt;
-            else
-              nn_IdList = myIdsOnBoundary.find( faceLinkNodes );
-            // add face point ids
-            faceNodeIds.push_back( ++lastFreeId );
-            myXYZIdToNodeMap.insert( make_pair( lastFreeId, nodes[ i ]));
-            if ( nn_IdList != myIdsOnBoundary.end() )
-            {
-              // there are points mapped on a link
-              list< int >& mappedIds = nn_IdList->second.front();
-              if ( isReversed( nodes[ i ], mappedIds ))
-                faceNodeIds.insert (faceNodeIds.end(),mappedIds.rbegin(), mappedIds.rend() );
-              else
-                faceNodeIds.insert (faceNodeIds.end(),mappedIds.begin(), mappedIds.end() );
-            }
-          } // loop on links of a <face>
-        } // if ( face )
-        else
-          break;
-      } // while (true)
-
-      if ( myIs2D && idGroups.size() > 1 ) {
-
-        // sew new elements on 2 refined elements sharing n1-n2 link
-
-        list< int >& idsOnLink = idGroups.front();
-        // temporarily add ids of link nodes to idsOnLink
-        bool rev = isReversed( n1, idsOnLink );
-        for ( int i = 0; i < 2; ++i )
-        {
-          TNodeSet nodeSet;
-          nodeSet.insert( i ? n2 : n1 );
-          ASSERT( myIdsOnBoundary.find( nodeSet ) != myIdsOnBoundary.end() );
-          list<list< int > >& groups = myIdsOnBoundary[ nodeSet ];
-          int nodeId = groups.front().front();
-          bool append = i;
-          if ( rev ) append = !append;
-          if ( append )
-            idsOnLink.push_back( nodeId );
-          else
-            idsOnLink.push_front( nodeId );
-        }
-        list< int >::iterator id = idsOnLink.begin();
-        for ( ; id != idsOnLink.end(); ++id ) // loop on XYZ ids on a link
-        {
-          list< TElemDef* >& elemDefs = myReverseConnectivity[ *id ]; // elems sharing id
-          list< TElemDef* >::iterator pElemDef = elemDefs.begin();
-          for ( ; pElemDef != elemDefs.end(); pElemDef++ ) // loop on elements sharing id
-          {
-            TElemDef* pIdList = *pElemDef; // ptr on list of ids making element up
-            // look for <id> in element definition
-            TElemDef::iterator idDef = find( pIdList->begin(), pIdList->end(), *id );
-            ASSERT ( idDef != pIdList->end() );
-            // look for 2 neighbour ids of <id> in element definition
-            for ( int prev = 0; prev < 2; ++prev ) {
-              TElemDef::iterator idDef2 = idDef;
-              if ( prev )
-                idDef2 = ( idDef2 == pIdList->begin() ) ? --pIdList->end() : --idDef2;
-              else
-                idDef2 = ( ++idDef2 == pIdList->end() ) ? pIdList->begin() : idDef2;
-              // look for idDef2 on a link starting from id
-              list< int >::iterator id2 = find( id, idsOnLink.end(), *idDef2 );
-              if ( id2 != idsOnLink.end() && id != --id2 ) { // found not next to id
-                // insert ids located on link between <id> and <id2>
-                // into the element definition between idDef and idDef2
-                if ( prev )
-                  for ( ; id2 != id; --id2 )
-                    pIdList->insert( idDef, *id2 );
-                else {
-                  list< int >::iterator id1 = id;
-                  for ( ++id1, ++id2; id1 != id2; ++id1 )
-                    pIdList->insert( idDef2, *id1 );
-                }
-              }
-            }
-          }
-        }
-        // remove ids of link nodes
-        idsOnLink.pop_front();
-        idsOnLink.pop_back();
-      }
-    } // loop on myIdsOnBoundary
-  } // if ( toCreatePolygons )
-
-  if ( toCreatePolyedrs )
-  {
-    // check volumes adjacent to the refined elements
-    SMDS_VolumeTool volTool;
-    vector<const SMDS_MeshElement*>::iterator refinedElem = myElements.begin();
-    for ( ; refinedElem != myElements.end(); ++refinedElem )
-    {
-      // loop on nodes of refinedElem
-      SMDS_ElemIteratorPtr nIt = (*refinedElem)->nodesIterator();
-      while ( nIt->more() ) {
-        const SMDS_MeshNode* node = static_cast<const SMDS_MeshNode*>( nIt->next() );
-        // loop on inverse elements of node
-        SMDS_ElemIteratorPtr eIt = node->GetInverseElementIterator();
-        while ( eIt->more() )
-        {
-          const SMDS_MeshElement* elem = eIt->next();
-          if ( !volTool.Set( elem ) || !avoidSet.insert( elem ).second )
-            continue; // skip faces or refined elements
-          // add polyhedron definition
-          myPolyhedronQuantities.push_back(vector<int> ());
-          myPolyElemXYZIDs.push_back(TElemDef());
-          vector<int>& quantity = myPolyhedronQuantities.back();
-          TElemDef &   elemDef  = myPolyElemXYZIDs.back();
-          // get definitions of new elements on volume faces
-          bool makePoly = false;
-          for ( int iF = 0; iF < volTool.NbFaces(); ++iF )
-          {
-            if ( getFacesDefinition(volTool.GetFaceNodes( iF ),
-                                    volTool.NbFaceNodes( iF ),
-                                    theNodes, elemDef, quantity))
-              makePoly = true;
-          }
-          if ( makePoly )
-            myPolyElems.push_back( elem );
-          else {
-            myPolyhedronQuantities.pop_back();
-            myPolyElemXYZIDs.pop_back();
-          }
-        }
-      }
-    }
-  }
-}
-
-//=======================================================================
-//function : getFacesDefinition
-//purpose  : return faces definition for a volume face defined by theBndNodes
-//=======================================================================
-
-bool SMESH_Pattern::
-  getFacesDefinition(const SMDS_MeshNode**                 theBndNodes,
-                     const int                             theNbBndNodes,
-                     const vector< const SMDS_MeshNode* >& theNodes,
-                     list< int >&                          theFaceDefs,
-                     vector<int>&                          theQuantity)
-{
-  bool makePoly = false;
-//   cout << "FROM FACE NODES: " <<endl;
-//   for ( int i = 0; i < theNbBndNodes; ++i )
-//     cout << theBndNodes[ i ];
-
-  set< const SMDS_MeshNode* > bndNodeSet;
-  for ( int i = 0; i < theNbBndNodes; ++i )
-    bndNodeSet.insert( theBndNodes[ i ]);
-
-  map< TNodeSet, list< list< int > > >::iterator nn_IdList;
-
-  // make a set of all nodes on a face
-  set< int > ids;
-  if ( !myIs2D ) { // for 2D, merge only edges
-    nn_IdList = myIdsOnBoundary.find( bndNodeSet );
-    if ( nn_IdList != myIdsOnBoundary.end() ) {
-      makePoly = true;
-      list< int > & faceIds = nn_IdList->second.front();
-      ids.insert( faceIds.begin(), faceIds.end() );
-    }
-  }
-  //bool hasIdsInFace = !ids.empty();
-
-  // add ids on links and bnd nodes
-  int lastFreeId = Max( myXYZIdToNodeMap.rbegin()->first, theNodes.size() );
-  TElemDef faceDef; // definition for the case if there is no new adjacent volumes
-  for ( int iN = 0; iN < theNbBndNodes; ++iN )
-  {
-    // add id of iN-th bnd node
-    TNodeSet nSet;
-    nSet.insert( theBndNodes[ iN ] );
-    nn_IdList = myIdsOnBoundary.find( nSet );
-    int bndId = ++lastFreeId;
-    if ( nn_IdList != myIdsOnBoundary.end() ) {
-      bndId = nn_IdList->second.front().front();
-      ids.insert( bndId );
-    }
-    else 
-      myXYZIdToNodeMap.insert( make_pair( bndId, theBndNodes[ iN ] ));
-    faceDef.push_back( bndId );
-    // add ids on a link
-    TNodeSet linkNodes;
-    linkNodes.insert( theBndNodes[ iN ]);
-    linkNodes.insert( theBndNodes[ iN + 1 == theNbBndNodes ? 0 : iN + 1 ]);
-    nn_IdList = myIdsOnBoundary.find( linkNodes );
-    if ( nn_IdList != myIdsOnBoundary.end() ) {
-      makePoly = true;
-      list< int > & linkIds = nn_IdList->second.front();
-      ids.insert( linkIds.begin(), linkIds.end() );
-      if ( isReversed( theBndNodes[ iN ], linkIds ))
-        faceDef.insert( faceDef.end(), linkIds.begin(), linkIds.end() );
-      else
-        faceDef.insert( faceDef.end(), linkIds.rbegin(), linkIds.rend() );
-    }
-  }
-
-  // find faces definition of new volumes
-
-  bool defsAdded = false;
-  if ( !myIs2D ) { // for 2D, merge only edges
-    SMDS_VolumeTool vol;
-    set< TElemDef* > checkedVolDefs;
-    set< int >::iterator id = ids.begin();
-    for ( ; id != ids.end(); ++id )
-    {
-      // definitions of volumes sharing id
-      list< TElemDef* >& defList = myReverseConnectivity[ *id ];
-      ASSERT( !defList.empty() );
-      // loop on volume definitions
-      list< TElemDef* >::iterator pIdList = defList.begin();
-      for ( ; pIdList != defList.end(); ++pIdList)
-      {
-        if ( !checkedVolDefs.insert( *pIdList ).second )
-          continue; // skip already checked volume definition
-        vector< int > idVec;
-        idVec.reserve( (*pIdList)->size() );
-        idVec.insert( idVec.begin(), (*pIdList)->begin(), (*pIdList)->end() );
-        // loop on face defs of a volume
-        SMDS_VolumeTool::VolumeType volType = vol.GetType( idVec.size() );
-        if ( volType == SMDS_VolumeTool::UNKNOWN )
-          continue;
-        int nbFaces = vol.NbFaces( volType );
-        for ( int iF = 0; iF < nbFaces; ++iF )
-        {
-          const int* nodeInds = vol.GetFaceNodesIndices( volType, iF, true );
-          int iN, nbN = vol.NbFaceNodes( volType, iF );
-          // check if all nodes of a faces are in <ids>
-          bool all = true;
-          for ( iN = 0; iN < nbN && all; ++iN ) {
-            int nodeId = idVec[ nodeInds[ iN ]];
-            all = ( ids.find( nodeId ) != ids.end() );
-          }
-          if ( all ) {
-            // store a face definition
-            for ( iN = 0; iN < nbN; ++iN ) {
-              theFaceDefs.push_back( idVec[ nodeInds[ iN ]]);
-            }
-            theQuantity.push_back( nbN );
-            defsAdded = true;
-          }
-        }
-      }
-    }
-  }
-  if ( !defsAdded ) {
-    theQuantity.push_back( faceDef.size() );
-    theFaceDefs.splice( theFaceDefs.end(), faceDef, faceDef.begin(), faceDef.end() );
-  }
-
-  return makePoly;
-}
-
-//=======================================================================
-//function : MakeMesh
-//purpose  : Create nodes and elements in <theMesh> using nodes
-//           coordinates computed by either of Apply...() methods
-//=======================================================================
-
-bool SMESH_Pattern::MakeMesh(SMESH_Mesh* theMesh,
-                             const bool  toCreatePolygons,
-                             const bool  toCreatePolyedrs)
-{
-  MESSAGE(" ::MakeMesh() " );
-  if ( !myIsComputed )
-    return setErrorCode( ERR_MAKEM_NOT_COMPUTED );
-
-  mergePoints( toCreatePolygons );
-
-  SMESHDS_Mesh* aMeshDS = theMesh->GetMeshDS();
-
-  // clear elements and nodes existing on myShape
-
-  if ( !myShape.IsNull() )
-  {
-    SMESH_subMesh * aSubMesh = theMesh->GetSubMeshContaining( myShape );
-    SMESHDS_SubMesh * aSubMeshDS = aMeshDS->MeshElements( myShape );
-    if ( aSubMesh )
-      aSubMesh->ComputeStateEngine( SMESH_subMesh::CLEAN );
-    else if ( aSubMeshDS )
-    {
-      SMDS_ElemIteratorPtr eIt = aSubMeshDS->GetElements();
-      while ( eIt->more() )
-        aMeshDS->RemoveElement( eIt->next() );
-      SMDS_NodeIteratorPtr nIt = aSubMeshDS->GetNodes();
-      while ( nIt->more() )
-        aMeshDS->RemoveNode( static_cast<const SMDS_MeshNode*>( nIt->next() ));
-    }
-  }
-
-  bool onMeshElements = ( !myElements.empty() );
-
-  vector< const SMDS_MeshNode* > nodesVector; // i-th point/xyz -> node
-  if ( onMeshElements )
-  {
-    nodesVector.resize( Max( myXYZ.size(), myXYZIdToNodeMap.rbegin()->first ), 0 );
-    map< int, const SMDS_MeshNode*>::iterator i_node = myXYZIdToNodeMap.begin();
-    for ( ; i_node != myXYZIdToNodeMap.end(); i_node++ ) {
-      nodesVector[ i_node->first ] = i_node->second;
-    }
-    for ( int i = 0; i < myXYZ.size(); ++i ) {
-      if ( !nodesVector[ i ] && isDefined( myXYZ[ i ] ) )
-        nodesVector[ i ] = aMeshDS->AddNode (myXYZ[ i ].X(),
-                                             myXYZ[ i ].Y(),
-                                             myXYZ[ i ].Z());
-    }
-  }
-  else
-  {
-    nodesVector.resize( myPoints.size(), 0 );
-
-    // to find point index
-    map< TPoint*, int > pointIndex;
-    for ( int i = 0; i < myPoints.size(); i++ )
-      pointIndex.insert( make_pair( & myPoints[ i ], i ));
-
-    // loop on sub-shapes of myShape: create nodes
-    map< int, list< TPoint* > >::iterator idPointIt = myShapeIDToPointsMap.begin();
-    for ( ; idPointIt != myShapeIDToPointsMap.end(); idPointIt++ )
-    {
-      TopoDS_Shape S;
-      SMESHDS_SubMesh * subMeshDS = 0;
-      if ( !myShapeIDMap.IsEmpty() ) {
-        S = myShapeIDMap( idPointIt->first );
-        subMeshDS = aMeshDS->MeshElements( S );
-      }
-      list< TPoint* > & points = idPointIt->second;
-      list< TPoint* >::iterator pIt = points.begin();
-      for ( ; pIt != points.end(); pIt++ )
-      {
-        TPoint* point = *pIt;
-        int pIndex = pointIndex[ point ];
-        if ( nodesVector [ pIndex ] )
-          continue;
-        SMDS_MeshNode* node = aMeshDS->AddNode (point->myXYZ.X(),
-                                                point->myXYZ.Y(),
-                                                point->myXYZ.Z());
-        nodesVector [ pIndex ] = node;
-
-        if ( subMeshDS ) {
-          switch ( S.ShapeType() ) {
-          case TopAbs_VERTEX: {
-            aMeshDS->SetNodeOnVertex( node, TopoDS::Vertex( S ));
-            break;
-          }
-          case TopAbs_EDGE: {
-            aMeshDS->SetNodeOnEdge( node, TopoDS::Edge( S ));
-            SMDS_EdgePosition* epos =
-              dynamic_cast<SMDS_EdgePosition *>(node->GetPosition().get());
-            epos->SetUParameter( point->myU );
-            break;
-          }
-          case TopAbs_FACE: {
-            aMeshDS->SetNodeOnFace( node, TopoDS::Face( S ));
-            SMDS_FacePosition* pos =
-              dynamic_cast<SMDS_FacePosition *>(node->GetPosition().get());
-            pos->SetUParameter( point->myUV.X() );
-            pos->SetVParameter( point->myUV.Y() );
-            break;
-          }
-          default:
-            aMeshDS->SetNodeInVolume( node, TopoDS::Shell( S ));
-          }
-        }
-      }
-    }
-  }
-
-  // create elements
-
-  if ( onMeshElements )
-  {
-    // prepare data to create poly elements
-    makePolyElements( nodesVector, toCreatePolygons, toCreatePolyedrs );
-
-    // refine elements
-    createElements( theMesh, nodesVector, myElemXYZIDs, myElements );
-    // sew old and new elements
-    createElements( theMesh, nodesVector, myPolyElemXYZIDs, myPolyElems );
-  }
-  else
-  {
-    createElements( theMesh, nodesVector, myElemPointIDs, myElements );
-  }
-
-//   const map<int,SMESHDS_SubMesh*>& sm = aMeshDS->SubMeshes();
-//   map<int,SMESHDS_SubMesh*>::const_iterator i_sm = sm.begin();
-//   for ( ; i_sm != sm.end(); i_sm++ )
-//   {
-//     cout << " SM " << i_sm->first << " ";
-//     TopAbs::Print( aMeshDS->IndexToShape( i_sm->first ).ShapeType(), cout)<< " ";
-//     //SMDS_ElemIteratorPtr GetElements();
-//     SMDS_NodeIteratorPtr nit = i_sm->second->GetNodes();
-//     while ( nit->more() )
-//       cout << nit->next()->GetID() << " ";
-//     cout << endl;
-//   }
-  return setErrorCode( ERR_OK );
-}
-
-//=======================================================================
-//function : createElements
-//purpose  : add elements to the mesh
-//=======================================================================
-
-void SMESH_Pattern::createElements(SMESH_Mesh*                            theMesh,
-                                   const vector<const SMDS_MeshNode* >&   theNodesVector,
-                                   const list< TElemDef > &               theElemNodeIDs,
-                                   const vector<const SMDS_MeshElement*>& theElements)
-{
-  SMESHDS_Mesh* aMeshDS = theMesh->GetMeshDS();
-  SMESH_MeshEditor editor( theMesh ); 
-
-  bool onMeshElements = !theElements.empty();
-
-  // shapes and groups theElements are on
-  vector< int > shapeIDs;
-  vector< list< SMESHDS_Group* > > groups;
-  set< const SMDS_MeshNode* > shellNodes;
-  if ( onMeshElements )
-  {
-    shapeIDs.resize( theElements.size() );
-    groups.resize( theElements.size() );
-    const set<SMESHDS_GroupBase*>& allGroups = aMeshDS->GetGroups();
-    set<SMESHDS_GroupBase*>::const_iterator grIt;
-    for ( int i = 0; i < theElements.size(); i++ )
-    {
-      shapeIDs[ i ] = editor.FindShape( theElements[ i ] );
-      for ( grIt = allGroups.begin(); grIt != allGroups.end(); grIt++ ) {
-        SMESHDS_Group* group = dynamic_cast<SMESHDS_Group*>( *grIt );
-        if ( group && group->SMDSGroup().Contains( theElements[ i ] ))
-          groups[ i ].push_back( group );
-      }
-    }
-    // get all nodes bound to shells because their SpacePosition is not set
-    // by SMESHDS_Mesh::SetNodeInVolume()
-    TopoDS_Shape aMainShape = aMeshDS->ShapeToMesh();
-    if ( !aMainShape.IsNull() ) {
-      TopExp_Explorer shellExp( aMainShape, TopAbs_SHELL );
-      for ( ; shellExp.More(); shellExp.Next() )
-      {
-        SMESHDS_SubMesh * sm = aMeshDS->MeshElements( shellExp.Current() );
-        if ( sm ) {
-          SMDS_NodeIteratorPtr nIt = sm->GetNodes();
-          while ( nIt->more() )
-            shellNodes.insert( nIt->next() );
-        }
-      }
-    }
-  }
-   // nb new elements per a refined element
-  int nbNewElemsPerOld = 1;
-  if ( onMeshElements )
-    nbNewElemsPerOld = theElemNodeIDs.size() / theElements.size();
-
-  bool is2d = myIs2D;
-
-  list< TElemDef >::const_iterator enIt = theElemNodeIDs.begin();
-  list< vector<int> >::iterator quantity = myPolyhedronQuantities.begin();
-  for ( int iElem = 0; enIt != theElemNodeIDs.end(); enIt++, iElem++ )
-  {
-    const TElemDef & elemNodeInd = *enIt;
-    // retrieve nodes
-    vector< const SMDS_MeshNode* > nodes( elemNodeInd.size() );
-    TElemDef::const_iterator id = elemNodeInd.begin();
-    int nbNodes;
-    for ( nbNodes = 0; id != elemNodeInd.end(); id++ ) {
-      if ( *id < theNodesVector.size() )
-        nodes[ nbNodes++ ] = theNodesVector[ *id ];
-      else
-        nodes[ nbNodes++ ] = myXYZIdToNodeMap[ *id ];
-    }
-    // dim of refined elem
-    int elemIndex = iElem / nbNewElemsPerOld; // refined element index
-    if ( onMeshElements ) {
-      is2d = ( theElements[ elemIndex ]->GetType() == SMDSAbs_Face );
-    }
-    // add an element
-    const SMDS_MeshElement* elem = 0;
-    if ( is2d ) {
-      switch ( nbNodes ) {
-      case 3:
-        elem = aMeshDS->AddFace( nodes[0], nodes[1], nodes[2] ); break;
-      case 4:
-        elem = aMeshDS->AddFace( nodes[0], nodes[1], nodes[2], nodes[3] ); break;
-      default:
-        elem = aMeshDS->AddPolygonalFace( nodes );
-      }
-    }
-    else {
-      switch ( nbNodes ) {
-      case 4:
-        elem = aMeshDS->AddVolume (nodes[0], nodes[1], nodes[2], nodes[3] ); break;
-      case 5:
-        elem = aMeshDS->AddVolume (nodes[0], nodes[1], nodes[2], nodes[3],
-                                   nodes[4] ); break;
-      case 6:
-        elem = aMeshDS->AddVolume (nodes[0], nodes[1], nodes[2], nodes[3],
-                                   nodes[4], nodes[5] ); break;
-      case 8:
-        elem = aMeshDS->AddVolume (nodes[0], nodes[1], nodes[2], nodes[3],
-                                   nodes[4], nodes[5], nodes[6], nodes[7] ); break;
-      default:
-        elem = aMeshDS->AddPolyhedralVolume( nodes, *quantity++ );
-      }
-    }
-    // set element on a shape
-    if ( elem && onMeshElements ) // applied to mesh elements
-    {
-      int shapeID = shapeIDs[ elemIndex ];
-      if ( shapeID > 0 ) {
-        aMeshDS->SetMeshElementOnShape( elem, shapeID );
-        // set nodes on a shape
-        TopoDS_Shape S = aMeshDS->IndexToShape( shapeID );
-        if ( S.ShapeType() == TopAbs_SOLID ) {
-          TopoDS_Iterator shellIt( S );
-          if ( shellIt.More() )
-            shapeID = aMeshDS->ShapeToIndex( shellIt.Value() );
-        }
-        SMDS_ElemIteratorPtr noIt = elem->nodesIterator();
-        while ( noIt->more() ) {
-          SMDS_MeshNode* node = const_cast<SMDS_MeshNode*>
-            ( static_cast<const SMDS_MeshNode*>( noIt->next() ));
-          if (!node->GetPosition()->GetShapeId() &&
-              shellNodes.find( node ) == shellNodes.end() ) {
-            if ( S.ShapeType() == TopAbs_FACE )
-              aMeshDS->SetNodeOnFace( node, shapeID );
-            else {
-              aMeshDS->SetNodeInVolume( node, shapeID );
-              shellNodes.insert( node );
-            }
-          }
-        }
-      }
-      // add elem in groups
-      list< SMESHDS_Group* >::iterator g = groups[ elemIndex ].begin();
-      for ( ; g != groups[ elemIndex ].end(); ++g )
-        (*g)->SMDSGroup().Add( elem );
-    }
-    if ( elem && !myShape.IsNull() ) // applied to shape
-      aMeshDS->SetMeshElementOnShape( elem, myShape );
-  }
-
-  // make that SMESH_subMesh::_computeState == COMPUTE_OK
-  // so that operations with hypotheses will erase the mesh being built
-
-  SMESH_subMesh * subMesh;
-  if ( !myShape.IsNull() ) {
-    subMesh = theMesh->GetSubMeshContaining( myShape );
-    if ( subMesh )
-      subMesh->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
-  }
-  if ( onMeshElements ) {
-    list< int > elemIDs;
-    for ( int i = 0; i < theElements.size(); i++ )
-    {
-      subMesh = theMesh->GetSubMeshContaining( shapeIDs[ i ] );
-      if ( subMesh )
-        subMesh->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
-
-      elemIDs.push_back( theElements[ i ]->GetID() );
-    }
-    // remove refined elements
-    editor.Remove( elemIDs, false );
-  }
-}
-
-//=======================================================================
-//function : isReversed
-//purpose  : check xyz ids order in theIdsList taking into account
-//           theFirstNode on a link
-//=======================================================================
-
-bool SMESH_Pattern::isReversed(const SMDS_MeshNode* theFirstNode,
-                               const list< int >&   theIdsList) const
-{
-  if ( theIdsList.size() < 2 )
-    return false;
-
-  gp_Pnt Pf ( theFirstNode->X(), theFirstNode->Y(), theFirstNode->Z() );
-  gp_Pnt P[2];
-  list<int>::const_iterator id = theIdsList.begin();
-  for ( int i = 0; i < 2; ++i, ++id ) {
-    if ( *id < myXYZ.size() )
-      P[ i ] = myXYZ[ *id ];
-    else {
-      map< int, const SMDS_MeshNode*>::const_iterator i_n;
-      i_n = myXYZIdToNodeMap.find( *id );
-      ASSERT( i_n != myXYZIdToNodeMap.end() );
-      const SMDS_MeshNode* n = i_n->second;
-      P[ i ].SetCoord( n->X(), n->Y(), n->Z() );
-    }
-  }
-  return Pf.SquareDistance( P[ 1 ] ) < Pf.SquareDistance( P[ 0 ] );
-}
-
-
-//=======================================================================
-//function : arrangeBoundaries
-//purpose  : if there are several wires, arrange boundaryPoints so that
-//           the outer wire goes first and fix inner wires orientation
-//           update myKeyPointIDs to correspond to the order of key-points
-//           in boundaries; sort internal boundaries by the nb of key-points
-//=======================================================================
-
-void SMESH_Pattern::arrangeBoundaries (list< list< TPoint* > >& boundaryList)
-{
-  typedef list< list< TPoint* > >::iterator TListOfListIt;
-  TListOfListIt bndIt;
-  list< TPoint* >::iterator pIt;
-
-  int nbBoundaries = boundaryList.size();
-  if ( nbBoundaries > 1 )
-  {
-    // sort boundaries by nb of key-points
-    if ( nbBoundaries > 2 )
-    {
-      // move boundaries in tmp list
-      list< list< TPoint* > > tmpList; 
-      tmpList.splice( tmpList.begin(), boundaryList, boundaryList.begin(), boundaryList.end());
-      // make a map nb-key-points to boundary-position-in-tmpList,
-      // boundary-positions get ordered in it
-      typedef map< int, TListOfListIt > TNbKpBndPosMap;
-      TNbKpBndPosMap nbKpBndPosMap;
-      bndIt = tmpList.begin();
-      list< int >::iterator nbKpIt = myNbKeyPntInBoundary.begin();
-      for ( ; nbKpIt != myNbKeyPntInBoundary.end(); nbKpIt++, bndIt++ ) {
-        int nb = *nbKpIt * nbBoundaries;
-        while ( nbKpBndPosMap.find ( nb ) != nbKpBndPosMap.end() )
-          nb++;
-        nbKpBndPosMap.insert( TNbKpBndPosMap::value_type( nb, bndIt ));
-      }
-      // move boundaries back to boundaryList
-      TNbKpBndPosMap::iterator nbKpBndPosIt = nbKpBndPosMap.begin();
-      for ( ; nbKpBndPosIt != nbKpBndPosMap.end(); nbKpBndPosIt++ ) {
-        TListOfListIt & bndPos2 = (*nbKpBndPosIt).second;
-        TListOfListIt bndPos1 = bndPos2++;
-        boundaryList.splice( boundaryList.end(), tmpList, bndPos1, bndPos2 );
-      }
-    }
-
-    // Look for the outer boundary: the one with the point with the least X
-    double leastX = DBL_MAX;
-    TListOfListIt outerBndPos;
-    for ( bndIt = boundaryList.begin(); bndIt != boundaryList.end(); bndIt++ )
-    {
-      list< TPoint* >& boundary = (*bndIt);
-      for ( pIt = boundary.begin(); pIt != boundary.end(); pIt++)
-      {
-        TPoint* point = *pIt;
-        if ( point->myInitXYZ.X() < leastX ) {
-          leastX = point->myInitXYZ.X();
-          outerBndPos = bndIt;
-        }
-      }
-    }
-
-    if ( outerBndPos != boundaryList.begin() )
-      boundaryList.splice( boundaryList.begin(), boundaryList, outerBndPos, ++outerBndPos );
-
-  } // if nbBoundaries > 1
-                 
-  // Check boundaries orientation and re-fill myKeyPointIDs
-
-  set< TPoint* > keyPointSet;
-  list< int >::iterator kpIt = myKeyPointIDs.begin();
-  for ( ; kpIt != myKeyPointIDs.end(); kpIt++ )
-    keyPointSet.insert( & myPoints[ *kpIt ]);
-  myKeyPointIDs.clear();
-
-  // update myNbKeyPntInBoundary also
-  list< int >::iterator nbKpIt = myNbKeyPntInBoundary.begin();
-
-  for ( bndIt = boundaryList.begin(); bndIt != boundaryList.end(); bndIt++, nbKpIt++ )
-  {
-    // find the point with the least X
-    double leastX = DBL_MAX;
-    list< TPoint* >::iterator xpIt;
-    list< TPoint* >& boundary = (*bndIt);
-    for ( pIt = boundary.begin(); pIt != boundary.end(); pIt++)
-    {
-      TPoint* point = *pIt;
-      if ( point->myInitXYZ.X() < leastX ) {
-        leastX = point->myInitXYZ.X();
-        xpIt = pIt;
-      }
-    }
-    // find points next to the point with the least X
-    TPoint* p = *xpIt, *pPrev, *pNext;
-    if ( p == boundary.front() )
-      pPrev = *(++boundary.rbegin());
-    else {
-      xpIt--;
-      pPrev = *xpIt;
-      xpIt++;
-    }
-    if ( p == boundary.back() )
-      pNext = *(++boundary.begin());
-    else {
-      xpIt++;
-      pNext = *xpIt;
-    }
-    // vectors of boundary direction near <p>
-    gp_Vec2d v1( pPrev->myInitUV, p->myInitUV ), v2( p->myInitUV, pNext->myInitUV );
-    double sqMag1 = v1.SquareMagnitude(), sqMag2 = v2.SquareMagnitude();
-    if ( sqMag1 > DBL_MIN && sqMag2 > DBL_MIN ) {
-      double yPrev = v1.Y() / sqrt( sqMag1 );
-      double yNext = v2.Y() / sqrt( sqMag2 );
-      double sumY = yPrev + yNext;
-      bool reverse;
-      if ( bndIt == boundaryList.begin() ) // outer boundary
-        reverse = sumY > 0;
-      else
-        reverse = sumY < 0;
-      if ( reverse )
-        boundary.reverse();
-    }
-
-    // Put key-point IDs of a well-oriented boundary in myKeyPointIDs
-    (*nbKpIt) = 0; // count nb of key-points again
-    pIt = boundary.begin();
-    for ( ; pIt != boundary.end(); pIt++)
-    {
-      TPoint* point = *pIt;
-      if ( keyPointSet.find( point ) == keyPointSet.end() )
-        continue;
-      // find an index of a keypoint
-      int index = 0;
-      vector< TPoint >::const_iterator pVecIt = myPoints.begin();
-      for ( ; pVecIt != myPoints.end(); pVecIt++, index++ )
-        if ( &(*pVecIt) == point )
-          break;
-      myKeyPointIDs.push_back( index );
-      (*nbKpIt)++;
-    }
-    myKeyPointIDs.pop_back(); // remove the first key-point from the back
-    (*nbKpIt)--;
-
-  } // loop on a list of boundaries
-
-  ASSERT( myKeyPointIDs.size() == keyPointSet.size() );
-}
-
-//=======================================================================
-//function : findBoundaryPoints
-//purpose  : if loaded from file, find points to map on edges and faces and
-//           compute their parameters
-//=======================================================================
-
-bool SMESH_Pattern::findBoundaryPoints()
-{
-  if ( myIsBoundaryPointsFound ) return true;
-
-  MESSAGE(" findBoundaryPoints() ");
-
-  if ( myIs2D )
-  {
-    set< TPoint* > pointsInElems;
-
-    // Find free links of elements:
-    // put links of all elements in a set and remove links encountered twice
-
-    typedef pair< TPoint*, TPoint*> TLink;
-    set< TLink > linkSet;
-    list<TElemDef >::iterator epIt = myElemPointIDs.begin();
-    for ( ; epIt != myElemPointIDs.end(); epIt++ )
-    {
-      TElemDef & elemPoints = *epIt;
-      TElemDef::iterator pIt = elemPoints.begin();
-      int prevP = elemPoints.back();
-      for ( ; pIt != elemPoints.end(); pIt++ ) {
-        TPoint* p1 = & myPoints[ prevP ];
-        TPoint* p2 = & myPoints[ *pIt ];
-        TLink link(( p1 < p2 ? p1 : p2 ), ( p1 < p2 ? p2 : p1 ));
-        ASSERT( link.first != link.second );
-        pair<set< TLink >::iterator,bool> itUniq = linkSet.insert( link );
-        if ( !itUniq.second )
-          linkSet.erase( itUniq.first );
-        prevP = *pIt;
-
-        pointsInElems.insert( p1 );
-      }
-    }
-    // Now linkSet contains only free links,
-    // find the points order that they have in boundaries
-
-    // 1. make a map of key-points
-    set< TPoint* > keyPointSet;
-    list< int >::iterator kpIt = myKeyPointIDs.begin();
-    for ( ; kpIt != myKeyPointIDs.end(); kpIt++ )
-      keyPointSet.insert( & myPoints[ *kpIt ]);
-
-    // 2. chain up boundary points
-    list< list< TPoint* > > boundaryList;
-    boundaryList.push_back( list< TPoint* >() );
-    list< TPoint* > * boundary = & boundaryList.back();
-
-    TPoint *point1, *point2, *keypoint1;
-    kpIt = myKeyPointIDs.begin();
-    point1 = keypoint1 = & myPoints[ *kpIt++ ];
-    // loop on free links: look for the next point
-    int iKeyPoint = 0;
-    set< TLink >::iterator lIt = linkSet.begin();
-    while ( lIt != linkSet.end() )
-    {
-      if ( (*lIt).first == point1 )
-        point2 = (*lIt).second;
-      else if ( (*lIt).second == point1 )
-        point2 = (*lIt).first;
-      else {
-        lIt++;
-        continue;
-      }
-      linkSet.erase( lIt );
-      lIt = linkSet.begin();
-
-      if ( keyPointSet.find( point2 ) == keyPointSet.end() ) // not a key-point
-      {
-        boundary->push_back( point2 );
-      }
-      else // a key-point found
-      {
-        keyPointSet.erase( point2 ); // keyPointSet contains not found key-points only
-        iKeyPoint++;
-        if ( point2 != keypoint1 ) // its not the boundary end
-        {
-          boundary->push_back( point2 );
-        }
-        else  // the boundary end reached
-        {
-          boundary->push_front( keypoint1 );
-          boundary->push_back( keypoint1 );
-          myNbKeyPntInBoundary.push_back( iKeyPoint );
-          if ( keyPointSet.empty() )
-            break; // all boundaries containing key-points are found
-
-          // prepare to search for the next boundary
-          boundaryList.push_back( list< TPoint* >() );
-          boundary = & boundaryList.back();
-          point2 = keypoint1 = (*keyPointSet.begin());
-        }
-      }
-      point1 = point2;
-    } // loop on the free links set
-
-    if ( boundary->empty() ) {
-      MESSAGE(" a separate key-point");
-      return setErrorCode( ERR_READ_BAD_KEY_POINT );
-    }
-
-    // if there are several wires, arrange boundaryPoints so that
-    // the outer wire goes first and fix inner wires orientation;
-    // sort myKeyPointIDs to correspond to the order of key-points
-    // in boundaries
-    arrangeBoundaries( boundaryList );
-
-    // Find correspondence shape ID - points,
-    // compute points parameter on edge
-
-    keyPointSet.clear();
-    for ( kpIt = myKeyPointIDs.begin(); kpIt != myKeyPointIDs.end(); kpIt++ )
-      keyPointSet.insert( & myPoints[ *kpIt ]);
-
-    set< TPoint* > edgePointSet; // to find in-face points
-    int vertexID = 1; // the first index in TopTools_IndexedMapOfShape
-    int edgeID = myKeyPointIDs.size() + 1;
-
-    list< list< TPoint* > >::iterator bndIt = boundaryList.begin();
-    for ( ; bndIt != boundaryList.end(); bndIt++ )
-    {
-      boundary = & (*bndIt);
-      double edgeLength = 0;
-      list< TPoint* >::iterator pIt = boundary->begin();
-      getShapePoints( edgeID ).push_back( *pIt );
-      getShapePoints( vertexID++ ).push_back( *pIt );
-      for ( pIt++; pIt != boundary->end(); pIt++)
-      {
-        list< TPoint* > & edgePoints = getShapePoints( edgeID );
-        TPoint* prevP = edgePoints.empty() ? 0 : edgePoints.back();
-        TPoint* point = *pIt;
-        edgePointSet.insert( point );
-        if ( keyPointSet.find( point ) == keyPointSet.end() ) // inside-edge point
-        {
-          edgePoints.push_back( point );
-          edgeLength += ( point->myInitUV - prevP->myInitUV ).Modulus();
-          point->myInitU = edgeLength;
-        }
-        else // a key-point
-        {
-          // treat points on the edge which ends up: compute U [0,1]
-          edgePoints.push_back( point );
-          if ( edgePoints.size() > 2 ) {
-            edgeLength += ( point->myInitUV - prevP->myInitUV ).Modulus();
-            list< TPoint* >::iterator epIt = edgePoints.begin();
-            for ( ; epIt != edgePoints.end(); epIt++ )
-              (*epIt)->myInitU /= edgeLength;
-          }
-          // begin the next edge treatment
-          edgeLength = 0;
-          edgeID++;
-          if ( point != boundary->front() ) { // not the first key-point again
-            getShapePoints( edgeID ).push_back( point );
-            getShapePoints( vertexID++ ).push_back( point );
-          }
-        }
-      }
-    }
-
-    // find in-face points
-    list< TPoint* > & facePoints = getShapePoints( edgeID );
-    vector< TPoint >::iterator pVecIt = myPoints.begin();
-    for ( ; pVecIt != myPoints.end(); pVecIt++ ) {
-      TPoint* point = &(*pVecIt);
-      if ( edgePointSet.find( point ) == edgePointSet.end() &&
-          pointsInElems.find( point ) != pointsInElems.end())
-        facePoints.push_back( point );
-    }
-
-  } // 2D case
-
-  else // 3D case
-  {
-    // bind points to shapes according to point parameters
-    vector< TPoint >::iterator pVecIt = myPoints.begin();
-    for ( int i = 0; pVecIt != myPoints.end(); pVecIt++, i++ ) {
-      TPoint* point = &(*pVecIt);
-      int shapeID = SMESH_Block::GetShapeIDByParams( point->myInitXYZ );
-      getShapePoints( shapeID ).push_back( point );
-      // detect key-points
-      if ( SMESH_Block::IsVertexID( shapeID ))
-        myKeyPointIDs.push_back( i );        
-    }
-  }
-
-  myIsBoundaryPointsFound = true;
-  return myIsBoundaryPointsFound;
-}
-
-//=======================================================================
-//function : Clear
-//purpose  : clear fields
-//=======================================================================
-
-void SMESH_Pattern::Clear()
-{
-  myIsComputed = myIsBoundaryPointsFound = false;
-
-  myPoints.clear();
-  myKeyPointIDs.clear();
-  myElemPointIDs.clear();
-  myShapeIDToPointsMap.clear();
-  myShapeIDMap.Clear();
-  myShape.Nullify();
-  myNbKeyPntInBoundary.clear();
-}
-
-//=======================================================================
-//function : setShapeToMesh
-//purpose  : set a shape to be meshed. Return True if meshing is possible
-//=======================================================================
-
-bool SMESH_Pattern::setShapeToMesh(const TopoDS_Shape& theShape)
-{
-  if ( !IsLoaded() ) {
-    MESSAGE( "Pattern not loaded" );
-    return setErrorCode( ERR_APPL_NOT_LOADED );
-  }
-
-  TopAbs_ShapeEnum aType = theShape.ShapeType();
-  bool dimOk = ( myIs2D ? aType == TopAbs_FACE : aType == TopAbs_SHELL );
-  if ( !dimOk ) {
-    MESSAGE( "Pattern dimention mismatch" );
-    return setErrorCode( ERR_APPL_BAD_DIMENTION );
-  }
-
-  // check if a face is closed
-  int nbNodeOnSeamEdge = 0;
-  if ( myIs2D ) {
-    TopoDS_Face face = TopoDS::Face( theShape );
-    TopExp_Explorer eExp( theShape, TopAbs_EDGE );
-    for ( ; eExp.More() && nbNodeOnSeamEdge == 0; eExp.Next() )
-      if ( BRep_Tool::IsClosed( TopoDS::Edge( eExp.Current() ), face ))
-        nbNodeOnSeamEdge = 2;
-  }
-    
-  // check nb of vertices
-  TopTools_IndexedMapOfShape vMap;
-  TopExp::MapShapes( theShape, TopAbs_VERTEX, vMap );
-  if ( vMap.Extent() + nbNodeOnSeamEdge != myKeyPointIDs.size() ) {
-    MESSAGE( myKeyPointIDs.size() << " != " << vMap.Extent() );
-    return setErrorCode( ERR_APPL_BAD_NB_VERTICES );
-  }
-
-  myElements.clear(); // not refine elements
-  myElemXYZIDs.clear();
-
-  myShapeIDMap.Clear();
-  myShape = theShape;
-  return true;
-}
-
-//=======================================================================
-//function : GetMappedPoints
-//purpose  : Return nodes coordinates computed by Apply() method
-//=======================================================================
-
-bool SMESH_Pattern::GetMappedPoints ( list< const gp_XYZ * > & thePoints ) const
-{
-  thePoints.clear();
-  if ( !myIsComputed )
-    return false;
-
-  if ( myElements.empty() ) { // applied to shape
-    vector< TPoint >::const_iterator pVecIt = myPoints.begin();
-    for ( ; pVecIt != myPoints.end(); pVecIt++ )
-      thePoints.push_back( & (*pVecIt).myXYZ.XYZ() );
-  }
-  else { // applied to mesh elements
-    const gp_XYZ * definedXYZ = & myPoints[ myKeyPointIDs.front() ].myXYZ.XYZ();
-    vector<gp_XYZ>::const_iterator xyz = myXYZ.begin();
-    for ( ; xyz != myXYZ.end(); ++xyz )
-      if ( !isDefined( *xyz ))
-        thePoints.push_back( definedXYZ );
-      else
-        thePoints.push_back( & (*xyz) );
-  }
-  return !thePoints.empty();
-}
-
-
-//=======================================================================
-//function : GetPoints
-//purpose  : Return nodes coordinates of the pattern
-//=======================================================================
-
-bool SMESH_Pattern::GetPoints ( list< const gp_XYZ * > & thePoints ) const
-{
-  thePoints.clear();
-
-  if ( !IsLoaded() )
-    return false;
-
-  vector< TPoint >::const_iterator pVecIt = myPoints.begin();
-  for ( ; pVecIt != myPoints.end(); pVecIt++ )
-    thePoints.push_back( & (*pVecIt).myInitXYZ );
-
-  return ( thePoints.size() > 0 );
-}
-
-//=======================================================================
-//function : getShapePoints
-//purpose  : return list of points located on theShape
-//=======================================================================
-
-list< SMESH_Pattern::TPoint* > &
-  SMESH_Pattern::getShapePoints(const TopoDS_Shape& theShape)
-{
-  int aShapeID;
-  if ( !myShapeIDMap.Contains( theShape ))
-    aShapeID = myShapeIDMap.Add( theShape );
-  else
-    aShapeID = myShapeIDMap.FindIndex( theShape );
-
-  return myShapeIDToPointsMap[ aShapeID ];
-}
-
-//=======================================================================
-//function : getShapePoints
-//purpose  : return list of points located on the shape
-//=======================================================================
-
-list< SMESH_Pattern::TPoint* > & SMESH_Pattern::getShapePoints(const int theShapeID)
-{
-  return myShapeIDToPointsMap[ theShapeID ];
-}
-
-//=======================================================================
-//function : DumpPoints
-//purpose  : Debug
-//=======================================================================
-
-void SMESH_Pattern::DumpPoints() const
-{
-#ifdef _DEBUG_
-  vector< TPoint >::const_iterator pVecIt = myPoints.begin();
-  for ( int i = 0; pVecIt != myPoints.end(); pVecIt++, i++ )
-    cout << i << ": " << *pVecIt;
-#endif
-}
-
-//=======================================================================
-//function : TPoint()
-//purpose  : 
-//=======================================================================
-
-SMESH_Pattern::TPoint::TPoint()
-{
-#ifdef _DEBUG_
-  myInitXYZ.SetCoord(0,0,0);
-  myInitUV.SetCoord(0.,0.);
-  myInitU = 0;
-  myXYZ.SetCoord(0,0,0);
-  myUV.SetCoord(0.,0.);
-  myU = 0;
-#endif
-}
-
-//=======================================================================
-//function : operator <<
-//purpose  : 
-//=======================================================================
-
-ostream & operator <<(ostream & OS, const SMESH_Pattern::TPoint& p)
-{
-  gp_XYZ xyz = p.myInitXYZ;
-  OS << "\tinit( xyz( " << xyz.X() << " " << xyz.Y() << " " << xyz.Z() << " )";
-  gp_XY xy = p.myInitUV;
-  OS << " uv( " <<  xy.X() << " " << xy.Y() << " )";
-  double u = p.myInitU;
-  OS << " u( " <<  u << " )) " << &p << endl;
-  xyz = p.myXYZ.XYZ();
-  OS << "\t    ( xyz( " << xyz.X() << " " << xyz.Y() << " " << xyz.Z() << " )";
-  xy = p.myUV;
-  OS << " uv( " <<  xy.X() << " " << xy.Y() << " )";
-  u = p.myU;
-  OS << " u( " <<  u << " ))" << endl;
-  
-  return OS;
-}
diff --git a/src/SMESH/SMESH_Pattern.hxx b/src/SMESH/SMESH_Pattern.hxx
deleted file mode 100644 (file)
index 373d2ef..0000000
+++ /dev/null
@@ -1,353 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-// File      : SMESH_Pattern.hxx
-// Created   : Mon Aug  2 10:30:00 2004
-// Author    : Edward AGAPOV (eap)
-
-#ifndef SMESH_Pattern_HeaderFile
-#define SMESH_Pattern_HeaderFile
-
-#include <vector>
-#include <list>
-#include <map>
-#include <set>
-#include <iostream>
-
-#include <TopoDS_Shape.hxx>
-#include <TopTools_IndexedMapOfOrientedShape.hxx>
-#include <gp_XYZ.hxx>
-#include <gp_XY.hxx>
-#include <gp_Pnt.hxx>
-
-class SMDS_MeshElement;
-class SMDS_MeshFace;
-class SMDS_MeshVolume;
-class SMDS_MeshNode;
-class SMESH_Mesh;
-class TopoDS_Shell;
-class TopoDS_Vertex;
-class TopoDS_Face;
-class TopoDS_Edge;
-
-//
-// Class allowing meshing by mapping of pre-defined patterns: it generates
-// a 2D mesh on a geometrical face or a 3D mesh inside a geometrical block
-// of 6 faces.
-//
-
-class SMESH_Pattern {
- public:
-  
-  SMESH_Pattern ();
-
-  void Clear();
-  // clear fields
-
-  bool Load (const char* theFileContents);
-  // Load a pattern from <theFileContents>
-
-  bool Load (SMESH_Mesh*        theMesh,
-             const TopoDS_Face& theFace,
-             bool               theProject);
-  // Create a pattern from the mesh built on <theFace>.
-  // <theProject>==true makes override nodes positions
-  // on <theFace> computed by mesher
-
-  bool Load (SMESH_Mesh*         theMesh,
-             const TopoDS_Shell& theBlock);
-  // Create a pattern from the mesh built on <theBlock>
-
-  bool Save (std::ostream& theFile);
-  // Save the loaded pattern into theFile
-
-  bool Apply (const TopoDS_Face&   theFace,
-              const TopoDS_Vertex& theVertexOnKeyPoint1,
-              const bool           theReverse);
-  // Compute nodes coordinates applying
-  // the loaded pattern to <theFace>. The first key-point
-  // will be mapped into <theVertexOnKeyPoint1>, which must
-  // be in the outer wire of theFace
-
-  bool Apply (const TopoDS_Shell&  theBlock,
-              const TopoDS_Vertex& theVertex000,
-              const TopoDS_Vertex& theVertex001);
-  // Compute nodes coordinates applying
-  // the loaded pattern to <theBlock>. The (0,0,0) key-point
-  // will be mapped into <theVertex000>. The
-  // (0,0,1) key-point will be mapped into <theVertex001>.
-
-  bool Apply (const SMDS_MeshFace* theFace,
-              const int            theNodeIndexOnKeyPoint1,
-              const bool           theReverse);
-  // Compute nodes coordinates applying
-  // the loaded pattern to <theFace>. The first key-point
-  // will be mapped into <theNodeIndexOnKeyPoint1>-th node
-
-  bool Apply (std::set<const SMDS_MeshFace*>& theFaces,
-              const int                       theNodeIndexOnKeyPoint1,
-              const bool                      theReverse);
-  // Compute nodes coordinates applying
-  // the loaded pattern to <theFaces>. The first key-point
-  // will be mapped into <theNodeIndexOnKeyPoint1>-th node
-
-  bool Apply (const SMDS_MeshVolume* theVolume,
-              const int              theNode000Index,
-              const int              theNode001Index);
-  // Compute nodes coordinates applying
-  // the loaded pattern to <theVolume>. The (0,0,0) key-point
-  // will be mapped into <theNode000Index>-th node. The
-  // (0,0,1) key-point will be mapped into <theNode000Index>-th
-  // node.
-
-  bool Apply (std::set<const SMDS_MeshVolume*>& theVolumes,
-              const int                         theNode000Index,
-              const int                         theNode001Index);
-  // Compute nodes coordinates applying
-  // the loaded pattern to <theVolumes>. The (0,0,0) key-point
-  // will be mapped into <theNode000Index>-th node. The
-  // (0,0,1) key-point will be mapped into <theNode000Index>-th
-  // node.
-
-  bool GetMappedPoints ( std::list<const gp_XYZ *> & thePoints ) const;
-  // Return nodes coordinates computed by Apply() method
-
-  bool MakeMesh(SMESH_Mesh* theMesh,
-                const bool toCreatePolygons = false,
-                const bool toCreatePolyedrs = false);
-  // Create nodes and elements in <theMesh> using nodes
-  // coordinates computed by either of Apply...() methods
-
-
-  // Inquiries
-
-  enum ErrorCode {
-    ERR_OK,
-    // Load(file)
-    ERR_READ_NB_POINTS, // couldn't read nb of points
-    ERR_READ_POINT_COORDS, // invalid nb of point coordinates
-    ERR_READ_TOO_FEW_POINTS,  // too few points in a pattern
-    ERR_READ_3D_COORD,  // coordinate of 3D point out of [0,1] range
-    ERR_READ_NO_KEYPOINT, // no key-points in 2D pattern
-    ERR_READ_BAD_INDEX, // invalid point index
-    ERR_READ_ELEM_POINTS, // invalid nb of points in element
-    ERR_READ_NO_ELEMS, // no elements in a pattern
-    ERR_READ_BAD_KEY_POINT, // a key-point not on a boundary
-    // Save(file)
-    ERR_SAVE_NOT_LOADED, // pattern was not loaded
-    // Load(shape)
-    ERR_LOAD_EMPTY_SUBMESH, // no elements to load
-    // Load(face)
-    ERR_LOADF_NARROW_FACE, // too narrow face
-    ERR_LOADF_CLOSED_FACE, // closed face
-    // Load(volume)
-    ERR_LOADV_BAD_SHAPE, // volume is not a brick of 6 faces
-    ERR_LOADV_COMPUTE_PARAMS, // cant compute point parameters
-    // Apply(shape)
-    ERR_APPL_NOT_COMPUTED, // mapping failed
-    ERR_APPL_NOT_LOADED, // pattern was not loaded
-    ERR_APPL_BAD_DIMENTION, // wrong shape dimention
-    ERR_APPL_BAD_NB_VERTICES, // keypoints - vertices mismatch
-    // Apply(face)
-    ERR_APPLF_BAD_TOPOLOGY, // bad pattern topology
-    ERR_APPLF_BAD_VERTEX, // first vertex not on an outer face boundary
-    ERR_APPLF_INTERNAL_EEROR, // program error
-    // Apply(volume)
-    ERR_APPLV_BAD_SHAPE, // volume is not a brick of 6 faces
-    // Apply(mesh_face)
-    ERR_APPLF_BAD_FACE_GEOM, // bad face geometry
-    // MakeMesh
-    ERR_MAKEM_NOT_COMPUTED // mapping failed
-  };
-
-  ErrorCode GetErrorCode() const { return myErrorCode; }
-  // return ErrorCode of the last operation
-
-  bool IsLoaded() const { return !myPoints.empty() && !myElemPointIDs.empty(); }
-  // Return true if a pattern was successfully loaded
-
-  bool Is2D() const { return myIs2D; }
-  // Return true if the loaded pattern is a 2D one
-
-  bool GetPoints ( std::list<const gp_XYZ *> & thePoints ) const;
-  // Return nodes coordinates of the pattern
-
-  const std::list< int > & GetKeyPointIDs () const { return myKeyPointIDs; }
-  // Return indices of key-points within the sequences returned by
-  // GetPoints() and GetMappedPoints()
-  
-  const std::list< std::list< int > >& GetElementPointIDs (bool applied) const
-  { return myElemXYZIDs.empty() || !applied ? myElemPointIDs : myElemXYZIDs; }
-  // Return nodal connectivity of the elements of the pattern
-
-  void DumpPoints() const;
-  // Debug
-
-
- private:
-  // private methods
-
-  struct TPoint {
-    gp_XYZ myInitXYZ; // loaded postion
-    gp_XY  myInitUV;
-    double myInitU; // [0,1]
-    gp_Pnt myXYZ; // position to compute
-    gp_XY  myUV;
-    double myU;
-    TPoint();
-  };
-  friend std::ostream & operator <<(std::ostream & OS, const TPoint& p);
-
-  bool setErrorCode( const ErrorCode theErrorCode )
-  { myErrorCode = theErrorCode; return myErrorCode == ERR_OK; }
-  // set ErrorCode and return true if it is Ok
-
-  bool setShapeToMesh(const TopoDS_Shape& theShape);
-  // Set a shape to be meshed. Return True if meshing is possible
-
-  list< TPoint* > & getShapePoints(const TopoDS_Shape& theShape);
-  // Return list of points located on theShape.
-  // A list of edge-points include vertex-points (for 2D pattern only).
-  // A list of face-points doesnt include edge-points.
-  // A list of volume-points doesnt include face-points.
-
-  list< TPoint* > & getShapePoints(const int theShapeID);
-  // Return list of points located on the shape
-
-  bool findBoundaryPoints();
-  // If loaded from file, find points to map on edges and faces and
-  // compute their parameters
-
-  void arrangeBoundaries (list< list< TPoint* > >& boundaryPoints);
-  // if there are several wires, arrange boundaryPoints so that
-  // the outer wire goes first and fix inner wires orientation;
-  // update myKeyPointIDs to correspond to the order of key-points
-  // in boundaries; sort internal boundaries by the nb of key-points
-
-  void computeUVOnEdge( const TopoDS_Edge& theEdge, const list< TPoint* > & ePoints );
-  // compute coordinates of points on theEdge
-
-  bool compUVByIsoIntersection (const list< list< TPoint* > >& boundaryPoints,
-                                const gp_XY&                   theInitUV,
-                                gp_XY&                         theUV,
-                                bool &                         theIsDeformed);
-  // compute UV by intersection of iso-lines found by points on edges
-
-  bool compUVByElasticIsolines(const list< list< TPoint* > >& boundaryPoints,
-                               const list< TPoint* >&         pointsToCompute);
-  // compute UV as nodes of iso-poly-lines consisting of
-  // segments keeping relative size as in the pattern
-
-  double setFirstEdge (list< TopoDS_Edge > & theWire, int theFirstEdgeID);
-  // choose the best first edge of theWire; return the summary distance
-  // between point UV computed by isolines intersection and
-  // eventual UV got from edge p-curves
-
-  typedef list< list< TopoDS_Edge > > TListOfEdgesList;
-
-  bool sortSameSizeWires (TListOfEdgesList &                theWireList,
-                          const TListOfEdgesList::iterator& theFromWire,
-                          const TListOfEdgesList::iterator& theToWire,
-                          const int                         theFirstEdgeID,
-                          list< list< TPoint* > >&          theEdgesPointsList );
-  // sort wires in theWireList from theFromWire until theToWire,
-  // the wires are set in the order to correspond to the order
-  // of boundaries; after sorting, edges in the wires are put
-  // in a good order, point UVs on edges are computed and points
-  // are appended to theEdgesPointsList
-
-  typedef std::set<const SMDS_MeshNode*> TNodeSet;
-
-  void mergePoints (const bool uniteGroups);
-  // Merge XYZ on edges and/or faces.
-
-  void makePolyElements(const std::vector< const SMDS_MeshNode* >& theNodes,
-                        const bool                                 toCreatePolygons,
-                        const bool                                 toCreatePolyedrs);
-  // prepare intermediate data to create Polygons and Polyhedrons
-
-  void createElements(SMESH_Mesh*                                 theMesh,
-                      const std::vector<const SMDS_MeshNode* >&   theNodesVector,
-                      const std::list< std::list< int > > &       theElemNodeIDs,
-                      const std::vector<const SMDS_MeshElement*>& theElements);
-  // add elements to the mesh
-
-  bool getFacesDefinition(const SMDS_MeshNode**                      theBndNodes,
-                          const int                                  theNbBndNodes,
-                          const std::vector< const SMDS_MeshNode* >& theNodes,
-                          std::list< int >&                          theFaceDefs,
-                          std::vector<int>&                          theQuantity);
-  // fill faces definition for a volume face defined by theBndNodes
-  // return true if a face definition changes
-  
-
-  bool isReversed(const SMDS_MeshNode*    theFirstNode,
-                  const std::list< int >& theIdsList) const;
-  // check xyz ids order in theIdsList taking into account
-  // theFirstNode on a link
-                  
- private:
-  // fields
-
-  typedef std::list< int > TElemDef; // element definition is its nodes ids
-
-  bool                                 myIs2D;
-  std::vector< TPoint >                myPoints;
-  std::list< int >                     myKeyPointIDs;
-  std::list< TElemDef >                myElemPointIDs;
-
-  ErrorCode                            myErrorCode;
-  bool                                 myIsComputed;
-  bool                                 myIsBoundaryPointsFound;
-
-  TopoDS_Shape                         myShape;
-  // all functions assure that shapes are indexed so that first go
-  // ordered vertices, then ordered edge, then faces and maybe a shell
-  TopTools_IndexedMapOfOrientedShape   myShapeIDMap;
-  std::map< int, list< TPoint* > >     myShapeIDToPointsMap;
-
-  // for the 2d case:
-  // nb of key-points in each of pattern boundaries
-  std::list< int >                     myNbKeyPntInBoundary;
-
-  
-  // to compute while applying to mesh elements, not to shapes
-
-  std::vector<gp_XYZ>                  myXYZ;            // XYZ of nodes to create
-  std::list< TElemDef >                myElemXYZIDs;     // new elements definitions
-  std::map< int, const SMDS_MeshNode*> myXYZIdToNodeMap; // map XYZ id to node of a refined element
-  std::vector<const SMDS_MeshElement*> myElements;       // refined elements
-  std::vector<const SMDS_MeshNode*>    myOrderedNodes;
-
-   // elements to replace with polygon or polyhedron
-  std::vector<const SMDS_MeshElement*> myPolyElems;
-  // definitions of new poly elements
-  std::list< TElemDef >                myPolyElemXYZIDs;
-  std::list< std::vector<int> >        myPolyhedronQuantities;
-
-  // map a boundary to XYZs on it;
-  // a boundary (edge or face) is defined as a set of its nodes,
-  // XYZs on a boundary are indices of myXYZ s
-  std::map<TNodeSet,std::list<std::list<int> > >  myIdsOnBoundary;
-  // map XYZ id to element it is in
-  std::map< int, std::list< TElemDef* > >         myReverseConnectivity;
-};
-
-
-#endif
diff --git a/src/SMESH/SMESH_subMesh.cxx b/src/SMESH/SMESH_subMesh.cxx
deleted file mode 100644 (file)
index 163a8a4..0000000
+++ /dev/null
@@ -1,1698 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESH_subMesh.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "SMESH_subMesh.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_Mesh.hxx"
-#include "SMESH_Hypothesis.hxx"
-#include "SMESH_Algo.hxx"
-#include "SMESH_HypoFilter.hxx"
-
-#include "utilities.h"
-#include "OpUtil.hxx"
-
-#include <BRep_Builder.hxx>
-
-#include <TopExp.hxx>
-#include <TopoDS_Compound.hxx>
-#include <TopTools_MapOfShape.hxx>
-#include <TopTools_ListOfShape.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
-
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
-
-#ifdef _DEBUG_
-#include <gp_Pnt.hxx>
-#include <BRep_Tool.hxx>
-#include <TopoDS.hxx>
-#endif
-
-//=============================================================================
-/*!
- *  default constructor:
- */
-//=============================================================================
-
-SMESH_subMesh::SMESH_subMesh(int Id, SMESH_Mesh * father, SMESHDS_Mesh * meshDS,
-       const TopoDS_Shape & aSubShape)
-{
-       _subShape = aSubShape;
-       _meshDS = meshDS;
-       _subMeshDS = meshDS->MeshElements(_subShape);   // may be null ...
-       _father = father;
-       _Id = Id;
-       _dependenceAnalysed = false;
-
-       if (_subShape.ShapeType() == TopAbs_VERTEX)
-       {
-               _algoState = HYP_OK;
-               _computeState = READY_TO_COMPUTE;
-       }
-       else
-       {
-               _algoState = NO_ALGO;
-               _computeState = NOT_READY;
-       }
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-SMESH_subMesh::~SMESH_subMesh()
-{
-       MESSAGE("SMESH_subMesh::~SMESH_subMesh");
-       // ****
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-int SMESH_subMesh::GetId() const
-{
-       //MESSAGE("SMESH_subMesh::GetId");
-       return _Id;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-SMESHDS_SubMesh * SMESH_subMesh::GetSubMeshDS()
-{
-       //MESSAGE("SMESH_subMesh::GetSubMeshDS");
-       if (_subMeshDS==NULL)
-       {
-               //MESSAGE("subMesh pointer still null, trying to get it...");
-               _subMeshDS = _meshDS->MeshElements(_subShape);  // may be null ...
-               if (_subMeshDS==NULL)
-               {
-                       MESSAGE("problem... subMesh still empty");
-                       //NRI   ASSERT(0);
-                       //NRI   throw SALOME_Exception(LOCALIZED(subMesh still empty));
-               }
-       }
-       return _subMeshDS;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-SMESHDS_SubMesh* SMESH_subMesh::CreateSubMeshDS()
-{
-  if ( !GetSubMeshDS() )
-    _meshDS->NewSubMesh( _meshDS->ShapeToIndex( _subShape ) );
-
-  return GetSubMeshDS();
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-SMESH_subMesh *SMESH_subMesh::GetFirstToCompute()
-{
-  //MESSAGE("SMESH_subMesh::GetFirstToCompute");
-  const map < int, SMESH_subMesh * >&subMeshes = DependsOn();
-  SMESH_subMesh *firstToCompute = 0;
-
-  map < int, SMESH_subMesh * >::const_iterator itsub;
-  for (itsub = subMeshes.begin(); itsub != subMeshes.end(); itsub++)
-  {
-    SMESH_subMesh *sm = (*itsub).second;
-    //       SCRUTE(sm->GetId());
-    //       SCRUTE(sm->GetComputeState());
-    bool readyToCompute = (sm->GetComputeState() == READY_TO_COMPUTE);
-    if (readyToCompute)
-    {
-      firstToCompute = sm;
-      //SCRUTE(sm->GetId());
-      break;
-    }
-  }
-  if (firstToCompute)
-  {
-    return firstToCompute;     // a subMesh of this
-  }
-  if (_computeState == READY_TO_COMPUTE)
-  {
-    return this;               // this
-  }
-  return 0;                     // nothing to compute
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-bool SMESH_subMesh::SubMeshesComputed()
-{
-  //MESSAGE("SMESH_subMesh::SubMeshesComputed");
-  const map < int, SMESH_subMesh * >&subMeshes = DependsOn();
-
-  bool subMeshesComputed = true;
-  map < int, SMESH_subMesh * >::const_iterator itsub;
-  for (itsub = subMeshes.begin(); itsub != subMeshes.end(); itsub++)
-  {
-    SMESH_subMesh *sm = (*itsub).second;
-
-    const TopoDS_Shape & ss = sm->GetSubShape();
-    int type = ss.ShapeType();
-    bool computeOk = (sm->GetComputeState() == COMPUTE_OK);
-    if (!computeOk)
-    {
-      subMeshesComputed = false;
-
-      switch (type)
-      {
-      case TopAbs_COMPOUND:
-        {
-          MESSAGE("The not computed sub mesh is a COMPOUND");
-          break;
-        }
-      case TopAbs_COMPSOLID:
-        {
-          MESSAGE("The not computed sub mesh is a COMPSOLID");
-          break;
-        }
-      case TopAbs_SHELL:
-        {
-          MESSAGE("The not computed sub mesh is a SHEL");
-          break;
-        }
-      case TopAbs_WIRE:
-        {
-          MESSAGE("The not computed sub mesh is a WIRE");
-          break;
-        }
-      case TopAbs_SOLID:
-        {
-          MESSAGE("The not computed sub mesh is a SOLID");
-          break;
-        }
-      case TopAbs_FACE:
-        {
-          MESSAGE("The not computed sub mesh is a FACE");
-          break;
-        }
-      case TopAbs_EDGE:
-        {
-          MESSAGE("The not computed sub mesh is a EDGE");
-          break;
-        }
-      default:
-        {
-          MESSAGE("The not computed sub mesh is of unknown type");
-          break;
-        }
-      }
-
-      break;
-    }
-  }
-  return subMeshesComputed;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-bool SMESH_subMesh::SubMeshesReady()
-{
-  MESSAGE("SMESH_subMesh::SubMeshesReady");
-  const map < int, SMESH_subMesh * >&subMeshes = DependsOn();
-
-  bool subMeshesReady = true;
-  map < int, SMESH_subMesh * >::const_iterator itsub;
-  for (itsub = subMeshes.begin(); itsub != subMeshes.end(); itsub++)
-  {
-    SMESH_subMesh *sm = (*itsub).second;
-    bool computeOk = ((sm->GetComputeState() == COMPUTE_OK)
-                      || (sm->GetComputeState() == READY_TO_COMPUTE));
-    if (!computeOk)
-    {
-      subMeshesReady = false;
-      SCRUTE(sm->GetId());
-      break;
-    }
-  }
-  return subMeshesReady;
-}
-
-//=============================================================================
-/*!
- * Construct dependence on first level subMeshes. complex shapes (compsolid,
- * shell, wire) are not analysed the same way as simple shapes (solid, face,
- * edge).
- * For collection shapes (compsolid, shell, wire) prepare a list of submeshes
- * with possible multiples occurences. Multiples occurences corresponds to
- * internal frontiers within shapes of the collection and must not be keeped.
- * See FinalizeDependence.
- */
-//=============================================================================
-
-const map < int, SMESH_subMesh * >&SMESH_subMesh::DependsOn()
-{
-  if (_dependenceAnalysed)
-    return _mapDepend;
-
-  //MESSAGE("SMESH_subMesh::DependsOn");
-
-  int type = _subShape.ShapeType();
-  //SCRUTE(type);
-  switch (type)
-  {
-  case TopAbs_COMPOUND:
-    {
-      //MESSAGE("compound");
-      for (TopExp_Explorer exp(_subShape, TopAbs_SOLID); exp.More();
-           exp.Next())
-      {
-        InsertDependence(exp.Current());
-      }
-      for (TopExp_Explorer exp(_subShape, TopAbs_SHELL, TopAbs_SOLID); exp.More();
-           exp.Next())
-      {
-          InsertDependence(exp.Current());      //only shell not in solid
-      }
-      for (TopExp_Explorer exp(_subShape, TopAbs_FACE, TopAbs_SHELL); exp.More();
-           exp.Next())
-      {
-        InsertDependence(exp.Current());
-      }
-      for (TopExp_Explorer exp(_subShape, TopAbs_EDGE, TopAbs_FACE); exp.More();
-           exp.Next())
-      {
-        InsertDependence(exp.Current());
-      }
-      break;
-    }
-  case TopAbs_COMPSOLID:
-    {
-               //MESSAGE("compsolid");
-      for (TopExp_Explorer exp(_subShape, TopAbs_SOLID); exp.More();
-           exp.Next())
-      {
-        InsertDependence(exp.Current());
-      }
-      break;
-    }
-  case TopAbs_SHELL:
-    {
-      //MESSAGE("shell");
-      for (TopExp_Explorer exp(_subShape, TopAbs_FACE); exp.More();
-           exp.Next())
-      {
-        InsertDependence(exp.Current());
-      }
-      break;
-    }
-  case TopAbs_WIRE:
-    {
-      //MESSAGE("wire");
-      for (TopExp_Explorer exp(_subShape, TopAbs_EDGE); exp.More();
-           exp.Next())
-      {
-        InsertDependence(exp.Current());
-      }
-      break;
-    }
-  case TopAbs_SOLID:
-    {
-      //MESSAGE("solid");
-      for (TopExp_Explorer exp(_subShape, TopAbs_FACE); exp.More();
-           exp.Next())
-      {
-        InsertDependence(exp.Current());
-      }
-      break;
-    }
-  case TopAbs_FACE:
-    {
-      //MESSAGE("face");
-      for (TopExp_Explorer exp(_subShape, TopAbs_EDGE); exp.More();
-           exp.Next())
-      {
-        InsertDependence(exp.Current());
-      }
-      break;
-    }
-  case TopAbs_EDGE:
-    {
-      //MESSAGE("edge");
-      for (TopExp_Explorer exp(_subShape, TopAbs_VERTEX); exp.More();
-           exp.Next())
-      {
-                       InsertDependence(exp.Current());
-                      }
-      break;
-    }
-  case TopAbs_VERTEX:
-    {
-      break;
-    }
-  default:
-    {
-      break;
-    }
-  }
-  _dependenceAnalysed = true;
-  return _mapDepend;
-}
-
-//=============================================================================
-/*!
- * For simple Shapes (solid, face, edge): add subMesh into dependence list.
- */
-//=============================================================================
-
-void SMESH_subMesh::InsertDependence(const TopoDS_Shape aSubShape)
-{
-  //MESSAGE("SMESH_subMesh::InsertDependence");
-  SMESH_subMesh *aSubMesh = _father->GetSubMesh(aSubShape);
-  int type = aSubShape.ShapeType();
-  int ordType = 9 - type;               // 2 = Vertex, 8 = CompSolid
-  int cle = aSubMesh->GetId();
-  cle += 10000000 * ordType;    // sort map by ordType then index
-  if (_mapDepend.find(cle) == _mapDepend.end())
-  {
-    _mapDepend[cle] = aSubMesh;
-    const map < int, SMESH_subMesh * >&subMap = aSubMesh->DependsOn();
-    map < int, SMESH_subMesh * >::const_iterator im;
-    for (im = subMap.begin(); im != subMap.end(); im++)
-    {
-      int clesub = (*im).first;
-      SMESH_subMesh *sm = (*im).second;
-      if (_mapDepend.find(clesub) == _mapDepend.end())
-        _mapDepend[clesub] = sm;
-    }
-  }
-
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-const TopoDS_Shape & SMESH_subMesh::GetSubShape()
-{
-       //MESSAGE("SMESH_subMesh::GetSubShape");
-       return _subShape;
-}
-
-
-//=======================================================================
-//function : CanAddHypothesis
-//purpose  : return true if theHypothesis can be attached to me:
-//           its dimention is checked
-//=======================================================================
-
-bool SMESH_subMesh::CanAddHypothesis(const SMESH_Hypothesis* theHypothesis) const
-{
-  int aHypDim   = theHypothesis->GetDim();
-  int aShapeDim = SMESH_Gen::GetShapeDim(_subShape);
-  if ( aHypDim <= aShapeDim )
-    return true;
-//   if ( aHypDim < aShapeDim )
-//     return ( _father->IsMainShape( _subShape ));
-
-  return false;
-}
-
-//=======================================================================
-//function : IsApplicableHypotesis
-//purpose  : 
-//=======================================================================
-
-bool SMESH_subMesh::IsApplicableHypotesis(const SMESH_Hypothesis* theHypothesis,
-                                          const TopAbs_ShapeEnum  theShapeType)
-{
-  if ( theHypothesis->GetType() > SMESHDS_Hypothesis::PARAM_ALGO)
-    // algorithm
-    return ( theHypothesis->GetShapeType() & (1<< theShapeType));
-
-  // hypothesis
-  int aShapeDim = 100;
-  switch ( theShapeType ) {
-  case TopAbs_EDGE: aShapeDim = 1; break;
-  case TopAbs_FACE: aShapeDim = 2; break;
-  case TopAbs_SHELL:aShapeDim = 3; break;
-  case TopAbs_SOLID:aShapeDim = 3; break;
-//   case TopAbs_VERTEX:
-//   case TopAbs_WIRE:
-//   case TopAbs_COMPSOLID:
-//   case TopAbs_COMPOUND:
-  default:  return false;
-  }
-
-  return ( theHypothesis->GetDim() == aShapeDim );
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-SMESH_Hypothesis::Hypothesis_Status
-  SMESH_subMesh::AlgoStateEngine(int event, SMESH_Hypothesis * anHyp)
-{
-  //  MESSAGE("SMESH_subMesh::AlgoStateEngine");
-  //SCRUTE(_algoState);
-  //SCRUTE(event);
-
-  // **** les retour des evenement shape sont significatifs
-  // (add ou remove fait ou non)
-  // le retour des evenement father n'indiquent pas que add ou remove fait
-
-  SMESH_Hypothesis::Hypothesis_Status aux_ret, ret = SMESH_Hypothesis::HYP_OK;
-
-  int dim = SMESH_Gen::GetShapeDim(_subShape);
-
-  if (dim < 1)
-  {
-    _algoState = HYP_OK;
-    if (event == ADD_HYP || event == ADD_ALGO)
-      return SMESH_Hypothesis::HYP_BAD_DIM; // do not allow to assign any hyp
-    else
-      return SMESH_Hypothesis::HYP_OK;
-  }
-
-  SMESH_Gen* gen =_father->GetGen();
-//  bool ret = false;
-  int oldAlgoState = _algoState;
-  bool modifiedHyp = false;  // if set to true, force event MODIF_ALGO_STATE
-                             // in ComputeStateEngine
-
-  // ----------------------
-  // check mesh conformity
-  // ----------------------
-  if (event == ADD_ALGO)
-  {
-    if (IsApplicableHypotesis( anHyp ) &&
-        !_father->IsNotConformAllowed() &&
-        !IsConform( static_cast< SMESH_Algo* >( anHyp )))
-      return SMESH_Hypothesis::HYP_NOTCONFORM;
-  }
-
-  // ----------------------------------
-  // add a hypothesis to DS if possible
-  // ----------------------------------
-  if (event == ADD_HYP || event == ADD_ALGO)
-  {
-    if ( ! CanAddHypothesis( anHyp ))
-      return SMESH_Hypothesis::HYP_BAD_DIM;
-
-    if ( GetSimilarAttached( _subShape, anHyp ) )
-      return SMESH_Hypothesis::HYP_ALREADY_EXIST;
-
-    if ( !_meshDS->AddHypothesis(_subShape, anHyp))
-      return SMESH_Hypothesis::HYP_ALREADY_EXIST;
-
-    // Serve Propagation of 1D hypothesis
-    if (event == ADD_HYP) {
-      bool isPropagationOk = true;
-      string hypName = anHyp->GetName();
-
-      if (hypName == "Propagation") {
-        TopExp_Explorer exp (_subShape, TopAbs_EDGE);
-        TopTools_MapOfShape aMap;
-        for (; exp.More(); exp.Next()) {
-          if (aMap.Add(exp.Current())) {
-            if (!_father->BuildPropagationChain(exp.Current())) {
-              isPropagationOk = false;
-            }
-          }
-        }
-      }
-      else if (anHyp->GetDim() == 1) { // Only 1D hypothesis can be propagated
-        TopExp_Explorer exp (_subShape, TopAbs_EDGE);
-        TopTools_MapOfShape aMap;
-        for (; exp.More(); exp.Next()) {
-          if (aMap.Add(exp.Current())) {
-            TopoDS_Shape aMainEdge;
-            if (_father->IsPropagatedHypothesis(exp.Current(), aMainEdge)) {
-              isPropagationOk = _father->RebuildPropagationChains();
-            } else if (_father->IsPropagationHypothesis(exp.Current())) {
-              isPropagationOk = _father->BuildPropagationChain(exp.Current());
-            } else {
-            }
-          }
-        }
-      } else {
-      }
-
-      if (!isPropagationOk && ret < SMESH_Hypothesis::HYP_CONCURENT) {
-        ret = SMESH_Hypothesis::HYP_CONCURENT;
-      }
-    } // Serve Propagation of 1D hypothesis
-  }
-
-  // --------------------------
-  // remove a hypothesis from DS
-  // --------------------------
-  if (event == REMOVE_HYP || event == REMOVE_ALGO)
-  {
-    if (!_meshDS->RemoveHypothesis(_subShape, anHyp))
-      return SMESH_Hypothesis::HYP_OK; // nothing changes
-
-    // Serve Propagation of 1D hypothesis
-    if (event == REMOVE_HYP)
-    {
-      bool isPropagationOk = true;
-      SMESH_HypoFilter propagFilter( SMESH_HypoFilter::HasName( "Propagation" ));
-      if ( propagFilter.IsOk( anHyp, _subShape ))
-      {
-        TopExp_Explorer exp (_subShape, TopAbs_EDGE);
-        TopTools_MapOfShape aMap;
-        for (; exp.More(); exp.Next()) {
-          if (aMap.Add(exp.Current()) &&
-              !_father->GetHypothesis( exp.Current(), propagFilter, true )) {
-            // no more Propagation on the current edge
-            if (!_father->RemovePropagationChain(exp.Current())) {
-              return SMESH_Hypothesis::HYP_UNKNOWN_FATAL;
-            }
-          }
-        }
-        // rebuild propagation chains, because removing one
-        // chain can resolve concurention, existing before
-        isPropagationOk = _father->RebuildPropagationChains();
-      }
-      else if (anHyp->GetDim() == 1) // Only 1D hypothesis can be propagated
-      {
-        isPropagationOk = _father->RebuildPropagationChains();
-      }
-
-      if (!isPropagationOk && ret < SMESH_Hypothesis::HYP_CONCURENT) {
-        ret = SMESH_Hypothesis::HYP_CONCURENT;
-      }
-    } // Serve Propagation of 1D hypothesis
-  }
-
-  // ------------------
-  // analyse algo state
-  // ------------------
-  if (!IsApplicableHypotesis( anHyp ))
-    return ret; // not applicable hypotheses do not change algo state
-
-  switch (_algoState)
-  {
-
-    // ----------------------------------------------------------------------
-
-  case NO_ALGO:
-    switch (event) {
-    case ADD_HYP:
-      break;
-    case ADD_ALGO: {
-      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
-      ASSERT(algo);
-      if (algo->CheckHypothesis((*_father),_subShape, aux_ret))
-        SetAlgoState(HYP_OK);
-      else
-        SetAlgoState(MISSING_HYP);
-      break;
-    }
-    case REMOVE_HYP:
-      break;
-    case REMOVE_ALGO:
-      break;
-    case ADD_FATHER_HYP:
-      break;
-    case ADD_FATHER_ALGO: {    // Algo just added in father
-      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
-      ASSERT(algo);
-      if ( algo == anHyp ) {
-        if ( algo->CheckHypothesis((*_father),_subShape, aux_ret))
-          SetAlgoState(HYP_OK);
-        else
-          SetAlgoState(MISSING_HYP);
-      }
-      break;
-    }
-    case REMOVE_FATHER_HYP:
-      break;
-    case REMOVE_FATHER_ALGO: {
-      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
-      if (algo)
-      {
-        if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
-            SetAlgoState(HYP_OK);
-        else
-          SetAlgoState(MISSING_HYP);
-      }
-      break;
-    }
-    default:
-      ASSERT(0);
-      break;
-    }
-    break;
-
-    // ----------------------------------------------------------------------
-
-  case MISSING_HYP:
-    switch (event)
-    {
-    case ADD_HYP: {
-      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
-      ASSERT(algo);
-      if ( algo->CheckHypothesis((*_father),_subShape, ret ))
-        SetAlgoState(HYP_OK);
-      if (SMESH_Hypothesis::IsStatusFatal( ret ))
-        _meshDS->RemoveHypothesis(_subShape, anHyp);
-      else if (!_father->IsUsedHypothesis(  anHyp, _subShape ))
-      {
-        _meshDS->RemoveHypothesis(_subShape, anHyp);
-        ret = SMESH_Hypothesis::HYP_INCOMPATIBLE;
-      }
-      break;
-    }
-    case ADD_ALGO: {           //already existing algo : on father ?
-      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
-      ASSERT(algo);
-      if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))// ignore hyp status
-        SetAlgoState(HYP_OK);
-      else
-        SetAlgoState(MISSING_HYP);
-      break;
-    }
-    case REMOVE_HYP:
-      break;
-    case REMOVE_ALGO: {        // perhaps a father algo applies ?
-      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
-      if (algo == NULL)  // no more algo applying on subShape...
-      {
-        SetAlgoState(NO_ALGO);
-      }
-      else
-      {
-        if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
-          SetAlgoState(HYP_OK);
-        else
-          SetAlgoState(MISSING_HYP);
-      }
-      break;
-    }
-    case ADD_FATHER_HYP: {
-      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
-      ASSERT(algo);
-      if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
-        SetAlgoState(HYP_OK);
-      else
-        SetAlgoState(MISSING_HYP);
-    }
-      break;
-    case ADD_FATHER_ALGO: { // new father algo
-      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
-      ASSERT( algo );
-      if ( algo == anHyp ) {
-        if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
-          SetAlgoState(HYP_OK);
-        else
-          SetAlgoState(MISSING_HYP);
-      }
-      break;
-    }
-    case REMOVE_FATHER_HYP:    // nothing to do
-      break;
-    case REMOVE_FATHER_ALGO: {
-      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
-      if (algo == NULL)  // no more applying algo on father
-      {
-        SetAlgoState(NO_ALGO);
-      }
-      else
-      {
-        if ( algo->CheckHypothesis((*_father),_subShape , aux_ret ))
-          SetAlgoState(HYP_OK);
-        else
-          SetAlgoState(MISSING_HYP);
-      }
-      break;
-    }
-    default:
-      ASSERT(0);
-      break;
-    }
-    break;
-
-    // ----------------------------------------------------------------------
-
-  case HYP_OK:
-    switch (event)
-    {
-    case ADD_HYP: {
-      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
-      ASSERT(algo);
-      if (!algo->CheckHypothesis((*_father),_subShape, ret ))
-      {
-        //two applying algo on the same shape not allowed
-        _meshDS->RemoveHypothesis(_subShape, anHyp);
-        if ( !SMESH_Hypothesis::IsStatusFatal( ret ))
-          // ret should be fatal: anHyp was not added
-          ret = SMESH_Hypothesis::HYP_INCOMPATIBLE;
-      }
-      else if (SMESH_Hypothesis::IsStatusFatal( ret ))
-      {
-        _meshDS->RemoveHypothesis(_subShape, anHyp);
-      }
-      else if (!_father->IsUsedHypothesis(  anHyp, _subShape ))
-      {
-        _meshDS->RemoveHypothesis(_subShape, anHyp);
-        ret = SMESH_Hypothesis::HYP_INCOMPATIBLE;
-      }
-      else
-      {
-        modifiedHyp = true;
-      }
-      break;
-    }
-    case ADD_ALGO: {           //already existing algo : on father ?
-      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
-      if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
-        SetAlgoState(HYP_OK);
-      else
-        SetAlgoState(MISSING_HYP);
-      modifiedHyp = true;
-      break;
-    }
-    case REMOVE_HYP: {
-      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
-      ASSERT(algo);
-      if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
-        SetAlgoState(HYP_OK);
-      else
-        SetAlgoState(MISSING_HYP);
-      modifiedHyp = true;
-      break;
-    }
-    case REMOVE_ALGO: {         // perhaps a father algo applies ?
-      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
-      if (algo == NULL)   // no more algo applying on subShape...
-      {
-        SetAlgoState(NO_ALGO);
-      }
-      else
-      {
-        if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
-          SetAlgoState(HYP_OK);
-        else
-          SetAlgoState(MISSING_HYP);
-        // check if same algo remains
-        if ( anHyp != algo && strcmp( anHyp->GetName(), algo->GetName()) )
-          modifiedHyp = true;
-      }
-      break;
-    }
-    case ADD_FATHER_HYP: {  // new father hypothesis ?
-      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
-      ASSERT(algo);
-      if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
-      {
-        SetAlgoState(HYP_OK);
-        if (_father->IsUsedHypothesis( anHyp, _subShape )) // new Hyp
-          modifiedHyp = true;
-      }
-      else
-        SetAlgoState(MISSING_HYP);
-      break;
-    }
-    case ADD_FATHER_ALGO: {    // a new algo on father
-      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
-      if ( algo == anHyp ) {
-        if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
-          SetAlgoState(HYP_OK);
-        else
-          SetAlgoState(MISSING_HYP);
-        modifiedHyp = true;
-      }
-      break;
-    }
-    case REMOVE_FATHER_HYP: {
-      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
-      ASSERT(algo);
-      if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
-        SetAlgoState(HYP_OK);
-      else
-        SetAlgoState(MISSING_HYP);
-      // is there the same local hyp or maybe a new father algo applied?
-      if ( !GetSimilarAttached( _subShape, anHyp ) )
-        modifiedHyp = true;
-      break;
-    }
-    case REMOVE_FATHER_ALGO: {
-      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
-      if (algo == NULL)  // no more applying algo on father
-      {
-        SetAlgoState(NO_ALGO);
-      }
-      else
-      {
-        if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
-          SetAlgoState(HYP_OK);
-        else
-          SetAlgoState(MISSING_HYP);
-        // is there the same local algo or maybe a new father algo applied?
-        if ( !GetSimilarAttached( _subShape, anHyp ))
-          modifiedHyp = true;
-      }
-      break;
-    }
-    default:
-      ASSERT(0);
-      break;
-    }
-    break;
-
-    // ----------------------------------------------------------------------
-
-  default:
-    ASSERT(0);
-    break;
-  }
-
-  if ((_algoState != oldAlgoState) || modifiedHyp)
-    ComputeStateEngine(MODIF_ALGO_STATE);
-
-  return ret;
-}
-
-
-//=======================================================================
-//function : IsConform
-//purpose  : check if a conform mesh will be produced by the Algo
-//=======================================================================
-
-bool SMESH_subMesh::IsConform(const SMESH_Algo* theAlgo)
-{
-//  MESSAGE( "SMESH_subMesh::IsConform" );
-
-  if ( !theAlgo ) return false;
-
-  // check only algo that doesn't NeedDescretBoundary(): because mesh made
-  // on a sub-shape will be ignored by theAlgo
-  if ( theAlgo->NeedDescretBoundary() )
-    return true;
-
-  SMESH_Gen* gen =_father->GetGen();
-
-  // only local algo is to be checked
-  if ( gen->IsGlobalHypothesis( theAlgo, *_father ))
-    return true;
-
-  // check algo attached to adjacent shapes
-
-  // loop on one level down sub-meshes
-  TopoDS_Iterator itsub( _subShape );
-  for (; itsub.More(); itsub.Next())
-  {
-    // loop on adjacent subShapes
-    TopTools_ListIteratorOfListOfShape it( _father->GetAncestors( itsub.Value() ));
-    for (; it.More(); it.Next())
-    {
-      const TopoDS_Shape& adjacent = it.Value();
-      if ( _subShape.IsSame( adjacent )) continue;
-      if ( adjacent.ShapeType() != _subShape.ShapeType())
-        break;
-
-      // check algo attached to smAdjacent
-      SMESH_Algo * algo = gen->GetAlgo((*_father), adjacent);
-      if (algo &&
-          //algo != theAlgo &&
-          !algo->NeedDescretBoundary() /*&&
-          !gen->IsGlobalHypothesis( algo, *_father )*/)
-        return false; // NOT CONFORM MESH WILL BE PRODUCED
-    }
-  }
-
-  return true;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-void SMESH_subMesh::SetAlgoState(int state)
-{
-//     if (state != _oldAlgoState)
-//     int retc = ComputeStateEngine(MODIF_ALGO_STATE);
-               _algoState = state;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-SMESH_Hypothesis::Hypothesis_Status
-  SMESH_subMesh::SubMeshesAlgoStateEngine(int event,
-                                          SMESH_Hypothesis * anHyp)
-{
-  //MESSAGE("SMESH_subMesh::SubMeshesAlgoStateEngine");
-  SMESH_Hypothesis::Hypothesis_Status ret = SMESH_Hypothesis::HYP_OK;
-  //EAP: a wire (dim==1) should notify edges (dim==1)
-  //EAP: int dim = SMESH_Gen::GetShapeDim(_subShape);
-  if (/*EAP:dim > 1*/ _subShape.ShapeType() < TopAbs_EDGE )
-  {
-    const map < int, SMESH_subMesh * >&subMeshes = DependsOn();
-
-    map < int, SMESH_subMesh * >::const_iterator itsub;
-    for (itsub = subMeshes.begin(); itsub != subMeshes.end(); itsub++)
-    {
-      SMESH_subMesh *sm = (*itsub).second;
-      SMESH_Hypothesis::Hypothesis_Status ret2 =
-        sm->AlgoStateEngine(event, anHyp);
-      if ( ret2 > ret )
-        ret = ret2;
-    }
-  }
-  return ret;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-void SMESH_subMesh::CleanDependsOn()
-{
-       MESSAGE("SMESH_subMesh::CleanDependsOn");
-       // **** parcourir les ancetres dans l'ordre de dépendance
-
-       ComputeStateEngine(CLEAN);
-
-       const map < int, SMESH_subMesh * >&dependson = DependsOn();
-       map < int, SMESH_subMesh * >::const_iterator its;
-       for (its = dependson.begin(); its != dependson.end(); its++)
-       {
-               SMESH_subMesh *sm = (*its).second;
-               //              SCRUTE((*its).first);
-               sm->ComputeStateEngine(CLEAN);
-       }
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-void SMESH_subMesh::DumpAlgoState(bool isMain)
-{
-       int dim = SMESH_Gen::GetShapeDim(_subShape);
-//   if (dim < 1) return;
-       if (isMain)
-       {
-               const map < int, SMESH_subMesh * >&subMeshes = DependsOn();
-
-               map < int, SMESH_subMesh * >::const_iterator itsub;
-               for (itsub = subMeshes.begin(); itsub != subMeshes.end(); itsub++)
-               {
-                       SMESH_subMesh *sm = (*itsub).second;
-                       sm->DumpAlgoState(false);
-               }
-       }
-       int type = _subShape.ShapeType();
-       MESSAGE("dim = " << dim << " type of shape " << type);
-       switch (_algoState)
-       {
-       case NO_ALGO:
-               MESSAGE(" AlgoState = NO_ALGO");
-               break;
-       case MISSING_HYP:
-               MESSAGE(" AlgoState = MISSING_HYP");
-               break;
-       case HYP_OK:
-               MESSAGE(" AlgoState = HYP_OK");
-               break;
-       }
-       switch (_computeState)
-       {
-       case NOT_READY:
-               MESSAGE(" ComputeState = NOT_READY");
-               break;
-       case READY_TO_COMPUTE:
-               MESSAGE(" ComputeState = READY_TO_COMPUTE");
-               break;
-       case COMPUTE_OK:
-               MESSAGE(" ComputeState = COMPUTE_OK");
-               break;
-       case FAILED_TO_COMPUTE:
-               MESSAGE(" ComputeState = FAILED_TO_COMPUTE");
-               break;
-       }
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-bool SMESH_subMesh::ComputeStateEngine(int event)
-{
-  //MESSAGE("SMESH_subMesh::ComputeStateEngine");
-  //SCRUTE(_computeState);
-  //SCRUTE(event);
-
-  int dim = SMESH_Gen::GetShapeDim(_subShape);
-
-  if (dim < 1)
-  {
-    if ( IsMeshComputed() )
-      _computeState = COMPUTE_OK;
-    else
-      _computeState = READY_TO_COMPUTE;
-    return true;
-  }
-  SMESH_Gen *gen = _father->GetGen();
-  SMESH_Algo *algo = 0;
-  bool ret = true;
-  SMESH_Hypothesis::Hypothesis_Status hyp_status;
-
-  switch (_computeState)
-  {
-
-    // ----------------------------------------------------------------------
-
-  case NOT_READY:
-    switch (event)
-    {
-    case MODIF_HYP:            // nothing to do
-      break;
-    case MODIF_ALGO_STATE:
-      if (_algoState == HYP_OK)
-      {
-        _computeState = READY_TO_COMPUTE;
-      }
-      break;
-    case COMPUTE:                      // nothing to do
-      break;
-    case CLEAN:
-      RemoveSubMeshElementsAndNodes();
-      break;
-    case CLEANDEP:
-      CleanDependants();
-      break;
-    case SUBMESH_COMPUTED:     // nothing to do
-      break;
-    case SUBMESH_RESTORED:
-      ComputeSubMeshStateEngine( CHECK_COMPUTE_STATE );
-      break;
-    case MESH_ENTITY_REMOVED:
-      break;
-    case CHECK_COMPUTE_STATE:
-      if ( IsMeshComputed() )
-        _computeState = COMPUTE_OK;
-      break;
-    default:
-      ASSERT(0);
-      break;
-    }
-    break;
-
-    // ----------------------------------------------------------------------
-
-  case READY_TO_COMPUTE:
-    switch (event)
-    {
-    case MODIF_HYP:            // nothing to do
-      break;
-    case MODIF_ALGO_STATE:
-      _computeState = NOT_READY;
-      algo = gen->GetAlgo((*_father), _subShape);
-      if (algo)
-      {
-        ret = algo->CheckHypothesis((*_father), _subShape, hyp_status);
-        if (ret)
-          _computeState = READY_TO_COMPUTE;
-      }
-      break;
-    case COMPUTE:
-      {
-        algo = gen->GetAlgo((*_father), _subShape);
-        ASSERT(algo);
-        ret = algo->CheckHypothesis((*_father), _subShape, hyp_status);
-        if (!ret)
-        {
-          MESSAGE("***** verify compute state *****");
-          _computeState = NOT_READY;
-          break;
-        }
-        // check submeshes needed
-        if (algo->NeedDescretBoundary())
-          ret = SubMeshesComputed();
-        if (!ret)
-        {
-          MESSAGE("Some SubMeshes not computed");
-          _computeState = FAILED_TO_COMPUTE;
-          break;
-        }
-        RemoveSubMeshElementsAndNodes();
-        // compute
-        if (!algo->NeedDescretBoundary() && !algo->OnlyUnaryInput())
-          ret = ApplyToCollection( algo, GetCollection( gen, algo ) );
-        else
-          ret = algo->Compute((*_father), _subShape);
-
-        if (!ret)
-        {
-          MESSAGE("problem in algo execution: failed to compute");
-          _computeState = FAILED_TO_COMPUTE;
-          if (!algo->NeedDescretBoundary())
-            UpdateSubMeshState( FAILED_TO_COMPUTE );
-
-#ifdef _DEBUG_
-          // Show vertices location of a failed shape
-          TopExp_Explorer exp( _subShape, TopAbs_VERTEX);
-          for ( ; exp.More(); exp.Next() ) {
-            gp_Pnt P( BRep_Tool::Pnt( TopoDS::Vertex( exp.Current() )));
-            cout << P.X() << " " << P.Y() << " " << P.Z() << " " << endl;
-          }
-#endif
-          break;
-        }
-        else
-        {
-          _computeState = COMPUTE_OK;
-          UpdateDependantsState( SUBMESH_COMPUTED ); // send event SUBMESH_COMPUTED
-          if (!algo->NeedDescretBoundary())
-            UpdateSubMeshState( COMPUTE_OK );
-        }
-      }
-      break;
-    case CLEAN:
-      RemoveSubMeshElementsAndNodes();
-      _computeState = NOT_READY;
-      algo = gen->GetAlgo((*_father), _subShape);
-      if (algo)
-      {
-        ret = algo->CheckHypothesis((*_father), _subShape, hyp_status);
-        if (ret)
-          _computeState = READY_TO_COMPUTE;
-      }
-      break;
-    case CLEANDEP:
-      CleanDependants();
-      break;
-    case SUBMESH_COMPUTED:      // nothing to do
-      break;
-    case SUBMESH_RESTORED:
-      // check if a mesh is already computed that may
-      // happen after retrieval from a file
-      ComputeStateEngine( CHECK_COMPUTE_STATE );
-      ComputeSubMeshStateEngine( CHECK_COMPUTE_STATE );
-      break;
-    case MESH_ENTITY_REMOVED:
-      break;
-    case CHECK_COMPUTE_STATE:
-      if ( IsMeshComputed() )
-        _computeState = COMPUTE_OK;
-      break;
-    default:
-      ASSERT(0);
-      break;
-    }
-    break;
-
-    // ----------------------------------------------------------------------
-
-  case COMPUTE_OK:
-    switch (event)
-    {
-    case MODIF_HYP:
-      CleanDependants();        // recursive recall with event CLEANDEP
-      algo = gen->GetAlgo((*_father), _subShape);
-      if (algo && !algo->NeedDescretBoundary())
-        CleanDependsOn(); // remove sub-mesh with event CLEANDEP
-      break;
-    case MODIF_ALGO_STATE:
-      CleanDependants();        // recursive recall with event CLEANDEP
-      algo = gen->GetAlgo((*_father), _subShape);
-      if (algo && !algo->NeedDescretBoundary())
-        CleanDependsOn(); // remove sub-mesh with event CLEANDEP
-      break;
-    case COMPUTE:                       // nothing to do
-      break;
-    case CLEAN:
-      RemoveSubMeshElementsAndNodes();
-      _computeState = NOT_READY;
-      algo = gen->GetAlgo((*_father), _subShape);
-      if (algo)
-      {
-        ret = algo->CheckHypothesis((*_father), _subShape, hyp_status);
-        if (ret)
-          _computeState = READY_TO_COMPUTE;
-      }
-      break;
-    case CLEANDEP:
-      CleanDependants();        // recursive recall with event CLEANDEP
-      break;
-    case SUBMESH_COMPUTED:      // nothing to do
-      break;
-    case SUBMESH_RESTORED:
-      ComputeStateEngine( CHECK_COMPUTE_STATE );
-      ComputeSubMeshStateEngine( CHECK_COMPUTE_STATE );
-      break;
-    case MESH_ENTITY_REMOVED:
-      UpdateDependantsState( CHECK_COMPUTE_STATE );
-      ComputeStateEngine( CHECK_COMPUTE_STATE );
-      ComputeSubMeshStateEngine( CHECK_COMPUTE_STATE );
-      break;
-    case CHECK_COMPUTE_STATE:
-      if ( !IsMeshComputed() )
-        if (_algoState == HYP_OK)
-          _computeState = READY_TO_COMPUTE;
-        else
-          _computeState = NOT_READY;
-      break;
-    default:
-      ASSERT(0);
-      break;
-    }
-    break;
-
-    // ----------------------------------------------------------------------
-
-  case FAILED_TO_COMPUTE:
-    switch (event)
-    {
-    case MODIF_HYP:
-      if (_algoState == HYP_OK)
-        _computeState = READY_TO_COMPUTE;
-      else
-        _computeState = NOT_READY;
-      break;
-    case MODIF_ALGO_STATE:
-      if (_algoState == HYP_OK)
-        _computeState = READY_TO_COMPUTE;
-      else
-        _computeState = NOT_READY;
-      break;
-    case COMPUTE:      // nothing to do
-      break;
-    case CLEAN:
-      RemoveSubMeshElementsAndNodes();
-      if (_algoState == HYP_OK)
-        _computeState = READY_TO_COMPUTE;
-      else
-        _computeState = NOT_READY;
-      break;
-    case CLEANDEP:
-      CleanDependants();
-      break;
-    case SUBMESH_COMPUTED:      // allow retry compute
-      if (_algoState == HYP_OK)
-        _computeState = READY_TO_COMPUTE;
-      else
-        _computeState = NOT_READY;
-      break;
-    case SUBMESH_RESTORED:
-      ComputeSubMeshStateEngine( CHECK_COMPUTE_STATE );
-      break;
-    case MESH_ENTITY_REMOVED:
-      break;
-    case CHECK_COMPUTE_STATE:
-      if ( IsMeshComputed() )
-        _computeState = COMPUTE_OK;
-      else
-        if (_algoState == HYP_OK)
-          _computeState = READY_TO_COMPUTE;
-        else
-          _computeState = NOT_READY;
-      break;
-    default:
-      ASSERT(0);
-      break;
-    }
-    break;
-
-    // ----------------------------------------------------------------------
-  default:
-    ASSERT(0);
-    break;
-  }
-
-  //SCRUTE(_computeState);
-  return ret;
-}
-
-//=======================================================================
-//function : ApplyToCollection
-//purpose  : Apply theAlgo to all subshapes in theCollection
-//=======================================================================
-
-bool SMESH_subMesh::ApplyToCollection (SMESH_Algo*         theAlgo,
-                                       const TopoDS_Shape& theCollection)
-{
-  MESSAGE("SMESH_subMesh::ApplyToCollection");
-  ASSERT ( !theAlgo->NeedDescretBoundary() );
-
-  bool ret = false;
-
-
-  ret = theAlgo->Compute( *_father, theCollection );
-
-  // set _computeState of subshapes
-  TopExp_Explorer anExplorer( theCollection, _subShape.ShapeType() );
-  for ( ; anExplorer.More(); anExplorer.Next() )
-  {
-    const TopoDS_Shape& aSubShape = anExplorer.Current();
-    SMESH_subMesh* subMesh = _father->GetSubMeshContaining( aSubShape );
-    if ( subMesh )
-    {
-      if (ret)
-      {
-        subMesh->_computeState = COMPUTE_OK;
-        subMesh->UpdateDependantsState( SUBMESH_COMPUTED );
-        subMesh->UpdateSubMeshState( COMPUTE_OK );
-      }
-      else
-      {
-        subMesh->_computeState = FAILED_TO_COMPUTE;
-      }
-    }
-  }
-  return ret;
-}
-
-
-//=======================================================================
-//function : UpdateSubMeshState
-//purpose  :
-//=======================================================================
-
-void SMESH_subMesh::UpdateSubMeshState(const compute_state theState)
-{
-  const map<int, SMESH_subMesh*>& smMap = DependsOn();
-  map<int, SMESH_subMesh*>::const_iterator itsub;
-  for (itsub = smMap.begin(); itsub != smMap.end(); itsub++)
-  {
-    SMESH_subMesh* sm = (*itsub).second;
-    sm->_computeState = theState;
-  }
-}
-
-//=======================================================================
-//function : ComputeSubMeshStateEngine
-//purpose  :
-//=======================================================================
-
-void SMESH_subMesh::ComputeSubMeshStateEngine(int event)
-{
-  const map<int, SMESH_subMesh*>& smMap = DependsOn();
-  map<int, SMESH_subMesh*>::const_iterator itsub;
-  for (itsub = smMap.begin(); itsub != smMap.end(); itsub++)
-  {
-    SMESH_subMesh* sm = (*itsub).second;
-    sm->ComputeStateEngine(event);
-  }
-}
-
-//=======================================================================
-//function : UpdateDependantsState
-//purpose  :
-//=======================================================================
-
-void SMESH_subMesh::UpdateDependantsState(const compute_event theEvent)
-{
-  //MESSAGE("SMESH_subMesh::UpdateDependantsState");
-  TopTools_ListIteratorOfListOfShape it( _father->GetAncestors( _subShape ));
-  for (; it.More(); it.Next())
-  {
-    const TopoDS_Shape& ancestor = it.Value();
-    SMESH_subMesh *aSubMesh =
-      _father->GetSubMeshContaining(ancestor);
-    if (aSubMesh)
-      aSubMesh->ComputeStateEngine( theEvent );
-  }
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-void SMESH_subMesh::CleanDependants()
-{
-  //MESSAGE("SMESH_subMesh::CleanDependants: shape type " << _subShape.ShapeType() );
-
-  TopTools_ListIteratorOfListOfShape it( _father->GetAncestors( _subShape ));
-  for (; it.More(); it.Next())
-  {
-    const TopoDS_Shape& ancestor = it.Value();
-    //MESSAGE("ancestor shape type " << ancestor.ShapeType() );
-    SMESH_subMesh *aSubMesh = _father->GetSubMeshContaining(ancestor);
-    if (aSubMesh)
-      aSubMesh->ComputeStateEngine(CLEANDEP);
-  }
-  ComputeStateEngine(CLEAN);
-}
-
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-static void removeSubMesh( SMESHDS_Mesh * meshDS, const TopoDS_Shape& subShape)
-{
-  SMESHDS_SubMesh * subMeshDS = meshDS->MeshElements(subShape);
-  if (subMeshDS!=NULL)
-  {
-    SMDS_ElemIteratorPtr ite=subMeshDS->GetElements();
-    while(ite->more())
-    {
-      const SMDS_MeshElement * elt = ite->next();
-      //MESSAGE( " RM elt: "<<elt->GetID()<<" ( "<<elt->NbNodes()<<" )" );
-      meshDS->RemoveElement(elt);
-    }
-
-    SMDS_NodeIteratorPtr itn=subMeshDS->GetNodes();
-    while(itn->more())
-    {
-      const SMDS_MeshNode * node = itn->next();
-      //MESSAGE( " RM node: "<<node->GetID());
-      meshDS->RemoveNode(node);
-    }
-  }
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-void SMESH_subMesh::RemoveSubMeshElementsAndNodes()
-{
-  //SCRUTE(_subShape.ShapeType());
-
-  removeSubMesh( _meshDS, _subShape );
-
-  // algo may bind a submesh not to _subShape, eg 3D algo
-  // sets nodes on SHELL while _subShape may be SOLID
-
-  int dim = SMESH_Gen::GetShapeDim( _subShape );
-  int type = _subShape.ShapeType() + 1;
-  for ( ; type <= TopAbs_EDGE; type++)
-    if ( dim == SMESH_Gen::GetShapeDim( (TopAbs_ShapeEnum) type ))
-    {
-      TopExp_Explorer exp( _subShape, (TopAbs_ShapeEnum) type );
-      for ( ; exp.More(); exp.Next() )
-        removeSubMesh( _meshDS, exp.Current() );
-    }
-    else
-      break;
-}
-
-//=======================================================================
-//function : IsMeshComputed
-//purpose  : check if _subMeshDS contains mesh elements
-//=======================================================================
-
-bool SMESH_subMesh::IsMeshComputed() const
-{
-  // algo may bind a submesh not to _subShape, eg 3D algo
-  // sets nodes on SHELL while _subShape may be SOLID
-
-  int dim = SMESH_Gen::GetShapeDim( _subShape );
-  int type = _subShape.ShapeType();
-  for ( ; type <= TopAbs_VERTEX; type++) {
-    if ( dim == SMESH_Gen::GetShapeDim( (TopAbs_ShapeEnum) type ))
-    {
-      TopExp_Explorer exp( _subShape, (TopAbs_ShapeEnum) type );
-      for ( ; exp.More(); exp.Next() )
-      {
-        SMESHDS_SubMesh * subMeshDS = _meshDS->MeshElements( exp.Current() );
-        if ( subMeshDS != NULL &&
-            (subMeshDS->GetElements()->more() || subMeshDS->GetNodes()->more())) {
-          return true;
-        }
-      }
-    }
-    else
-      break;
-  }
-
-  return false;
-}
-
-
-//=======================================================================
-//function : GetCollection
-//purpose  : return a shape containing all sub-shapes of the MainShape that can be
-//           meshed at once along with _subShape
-//=======================================================================
-
-TopoDS_Shape SMESH_subMesh::GetCollection(SMESH_Gen * theGen, SMESH_Algo* theAlgo)
-{
-  MESSAGE("SMESH_subMesh::GetCollection");
-  ASSERT (!theAlgo->NeedDescretBoundary());
-
-  TopoDS_Shape mainShape = _father->GetMeshDS()->ShapeToMesh();
-
-  if ( mainShape.IsSame( _subShape ))
-    return _subShape;
-
-  list<const SMESHDS_Hypothesis*> aUsedHyp =
-    theAlgo->GetUsedHypothesis( *_father, _subShape ); // copy
-
-  // put in a compound all shapes with the same hypothesis assigned
-  // and a good ComputState
-
-  TopoDS_Compound aCompound;
-  BRep_Builder aBuilder;
-  aBuilder.MakeCompound( aCompound );
-
-  TopExp_Explorer anExplorer( mainShape, _subShape.ShapeType() );
-  for ( ; anExplorer.More(); anExplorer.Next() )
-  {
-    const TopoDS_Shape& S = anExplorer.Current();
-    SMESH_subMesh* subMesh = _father->GetSubMesh( S );
-    SMESH_Algo* anAlgo = theGen->GetAlgo( *_father, S );
-
-    if (subMesh->GetComputeState() == READY_TO_COMPUTE &&
-        anAlgo == theAlgo &&
-        anAlgo->GetUsedHypothesis( *_father, S ) == aUsedHyp)
-    {
-      aBuilder.Add( aCompound, S );
-    }
-  }
-
-  return aCompound;
-}
-
-//=======================================================================
-//function : GetSimilarAttached
-//purpose  : return nb of hypotheses attached to theShape.
-//           If theHyp is provided, similar but not same hypotheses
-//           are countered; else only applicable ones having theHypType
-//           are countered
-//=======================================================================
-
-const SMESH_Hypothesis* SMESH_subMesh::GetSimilarAttached(const TopoDS_Shape&      theShape,
-                                                          const SMESH_Hypothesis * theHyp,
-                                                          const int                theHypType)
-{
-  SMESH_HypoFilter filter;
-  filter.Init( SMESH_HypoFilter::HasType( theHyp ? theHyp->GetType() : theHypType ));
-  if ( theHyp ) {
-    filter.And( SMESH_HypoFilter::HasDim( theHyp->GetDim() ));
-    filter.AndNot( SMESH_HypoFilter::Is( theHyp ));
-  }
-  else
-    filter.And( SMESH_HypoFilter::IsApplicableTo( theShape ));
-
-  return _father->GetHypothesis( theShape, filter, false );
-}
-
-//=======================================================================
-//function : CheckConcurentHypothesis
-//purpose  : check if there are several applicable hypothesis attached to
-//           ansestors
-//=======================================================================
-
-SMESH_Hypothesis::Hypothesis_Status
-  SMESH_subMesh::CheckConcurentHypothesis (const int theHypType)
-{
-  MESSAGE ("SMESH_subMesh::CheckConcurentHypothesis");
-
-  // is there local hypothesis on me?
-  if ( GetSimilarAttached( _subShape, 0, theHypType ) )
-    return SMESH_Hypothesis::HYP_OK;
-
-
-  TopoDS_Shape aPrevWithHyp;
-  const SMESH_Hypothesis* aPrevHyp = 0;
-  TopTools_ListIteratorOfListOfShape it( _father->GetAncestors( _subShape ));
-  for (; it.More(); it.Next())
-  {
-    const TopoDS_Shape& ancestor = it.Value();
-    const SMESH_Hypothesis* hyp = GetSimilarAttached( ancestor, 0, theHypType );
-    if ( hyp )
-    {
-      if ( aPrevWithHyp.IsNull() || aPrevWithHyp.IsSame( ancestor ))
-      {
-        aPrevWithHyp = ancestor;
-        aPrevHyp     = hyp;
-      }
-      else if ( aPrevWithHyp.ShapeType() == ancestor.ShapeType() && aPrevHyp != hyp )
-        return SMESH_Hypothesis::HYP_CONCURENT;
-      else
-        return SMESH_Hypothesis::HYP_OK;
-    }
-  }
-  return SMESH_Hypothesis::HYP_OK;
-}
diff --git a/src/SMESH/SMESH_subMesh.hxx b/src/SMESH/SMESH_subMesh.hxx
deleted file mode 100644 (file)
index 8251c6b..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_subMesh.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_SUBMESH_HXX_
-#define _SMESH_SUBMESH_HXX_
-
-#include "SMESHDS_Mesh.hxx"
-#include "SMESHDS_SubMesh.hxx"
-#include "SMESH_Hypothesis.hxx"
-#include "Utils_SALOME_Exception.hxx"
-#include <TopoDS_Shape.hxx>
-#include <TColStd_IndexedMapOfTransient.hxx>
-#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
-
-#include <set>
-#include <list>
-#include <map>
-
-class SMESH_Mesh;
-class SMESH_Hypothesis;
-class SMESH_Algo;
-class SMESH_Gen;
-
-class SMESH_subMesh
-{
- public:
-  SMESH_subMesh(int Id, SMESH_Mesh * father, SMESHDS_Mesh * meshDS,
-               const TopoDS_Shape & aSubShape);
-  virtual ~ SMESH_subMesh();
-
-  int GetId() const;
-
-  //   bool Contains(const TopoDS_Shape & aSubShape)
-  //     throw (SALOME_Exception);
-
-  SMESH_Mesh* GetFather() { return _father; }
-  
-  SMESHDS_SubMesh * GetSubMeshDS();
-
-  SMESHDS_SubMesh* CreateSubMeshDS();
-  // Explicit SMESHDS_SubMesh creation method, required for persistence mechanism
-
-  SMESH_subMesh *GetFirstToCompute();
-
-  const map < int, SMESH_subMesh * >&DependsOn();
-  //const map < int, SMESH_subMesh * >&Dependants();
-
-  const TopoDS_Shape & GetSubShape();
-
-//  bool _vertexSet;                   // only for vertex subMesh, set to false for dim > 0
-
-  enum compute_state
-  {
-    NOT_READY, READY_TO_COMPUTE,
-    COMPUTE_OK, FAILED_TO_COMPUTE
-    };
-  enum algo_state
-  {
-    NO_ALGO, MISSING_HYP, HYP_OK
-    };
-  enum algo_event
-  {
-    ADD_HYP, ADD_ALGO,
-    REMOVE_HYP, REMOVE_ALGO,
-    ADD_FATHER_HYP, ADD_FATHER_ALGO,
-    REMOVE_FATHER_HYP, REMOVE_FATHER_ALGO
-    };
-  enum compute_event
-  {
-    MODIF_HYP, MODIF_ALGO_STATE, COMPUTE,
-    CLEAN, CLEANDEP, SUBMESH_COMPUTED, SUBMESH_RESTORED,
-    MESH_ENTITY_REMOVED, CHECK_COMPUTE_STATE
-    };
-
-  SMESH_Hypothesis::Hypothesis_Status
-    AlgoStateEngine(int event, SMESH_Hypothesis * anHyp);
-
-  SMESH_Hypothesis::Hypothesis_Status
-    SubMeshesAlgoStateEngine(int event, SMESH_Hypothesis * anHyp);
-
-  int GetAlgoState() { return _algoState; }
-
-  void DumpAlgoState(bool isMain);
-
-  bool ComputeStateEngine(int event);
-
-  int GetComputeState()
-  {
-    return _computeState;
-  };
-
-  bool IsConform(const SMESH_Algo* theAlgo);
-  // check if a conform mesh will be produced by the Algo
-
-  bool CanAddHypothesis(const SMESH_Hypothesis* theHypothesis) const;
-  // return true if theHypothesis can be attached to me:
-  // its dimention is checked
-
-  static bool IsApplicableHypotesis(const SMESH_Hypothesis* theHypothesis,
-                                    const TopAbs_ShapeEnum  theShapeType);
-
-  bool IsApplicableHypotesis(const SMESH_Hypothesis* theHypothesis) const
-  { return IsApplicableHypotesis( theHypothesis, _subShape.ShapeType() ); }
-  // return true if theHypothesis can be used to mesh me:
-  // its shape type is checked
-  
-  SMESH_Hypothesis::Hypothesis_Status CheckConcurentHypothesis (const int theHypType);
-  // check if there are several applicable hypothesis on fathers
-
- protected:
-  void InsertDependence(const TopoDS_Shape aSubShape);
-
-  bool SubMeshesComputed();
-
-  bool SubMeshesReady();
-
-  void RemoveSubMeshElementsAndNodes();
-  void UpdateDependantsState(const compute_event theEvent);
-  void UpdateSubMeshState(const compute_state theState);
-  void ComputeSubMeshStateEngine(int event);
-  void CleanDependants();
-  void CleanDependsOn();
-  void SetAlgoState(int state);
-
-  bool IsMeshComputed() const;
-  // check if _subMeshDS contains mesh elements
-
-  TopoDS_Shape GetCollection(SMESH_Gen * theGen, SMESH_Algo* theAlgo);
-  // return a shape containing all sub-shapes of the MainShape that can be
-  // meshed at once along with _subShape
-
-  bool ApplyToCollection (SMESH_Algo*         theAlgo,
-                          const TopoDS_Shape& theCollection);
-  // Apply theAlgo to all subshapes in theCollection
-
-  const SMESH_Hypothesis* GetSimilarAttached(const TopoDS_Shape&      theShape,
-                                             const SMESH_Hypothesis * theHyp,
-                                             const int                theHypType = 0);
-  // return a hypothesis attached to theShape.
-  // If theHyp is provided, similar but not same hypotheses
-  // is returned; else an applicable ones having theHypType
-  // is returned
-  
-  TopoDS_Shape _subShape;
-  SMESHDS_Mesh * _meshDS;
-  SMESHDS_SubMesh * _subMeshDS;
-  int _Id;
-  SMESH_Mesh *_father;
-  map < int, SMESH_subMesh * >_mapDepend;
-  bool _dependenceAnalysed;
-
-  int _algoState;
-  int _computeState;
-
-};
-
-#endif
diff --git a/src/SMESHDS/Makefile.in b/src/SMESHDS/Makefile.in
deleted file mode 100644 (file)
index 50d4fa7..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-#  SMESH SMESHDS : management of mesh data and SMESH document
-#
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : Makefile.in
-#  Author : Patrick GOLDBRONN (CEA)
-#  Module : SMESH
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@top_srcdir@/idl
-
-
-@COMMENCE@
-
-# Libraries targets
-
-LIB = libSMESHDS.la 
-LIB_SRC = \
-       SMESHDS_Document.cxx \
-       SMESHDS_Hypothesis.cxx \
-       SMESHDS_Script.cxx \
-       SMESHDS_Command.cxx \
-       SMESHDS_SubMesh.cxx \
-       SMESHDS_Mesh.cxx \
-       SMESHDS_GroupBase.cxx \
-       SMESHDS_Group.cxx \
-       SMESHDS_GroupOnGeom.cxx
-
-LIB_CLIENT_IDL = 
-LIB_SERVER_IDL = 
-
-# Executables targets
-BIN =
-BIN_SRC =
-BIN_CLIENT_IDL = 
-BIN_SERVER_IDL = 
-
-# header files 
-EXPORT_HEADERS= \
-       SMESHDS_Document.hxx \
-       SMESHDS_Hypothesis.hxx \
-       SMESHDS_Mesh.hxx \
-       SMESHDS_Script.hxx \
-       SMESHDS_Command.hxx \
-       SMESHDS_CommandType.hxx \
-       SMESHDS_SubMesh.hxx \
-       SMESHDS_GroupBase.hxx \
-       SMESHDS_Group.hxx \
-       SMESHDS_GroupOnGeom.hxx
-
-# additionnal information to compil and link file
-CPPFLAGS += $(OCC_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS)
-CXXFLAGS += $(OCC_CXXFLAGS) -I${KERNEL_ROOT_DIR}/include/salome
-LDFLAGS  += $(OCC_KERNEL_LIBS) -lSMDS
-
-
-# additional file to be cleaned
-MOSTLYCLEAN =
-CLEAN =
-DISTCLEAN =
-
-@CONCLUDE@
diff --git a/src/SMESHDS/SMESHDS_Command.cxx b/src/SMESHDS/SMESHDS_Command.cxx
deleted file mode 100644 (file)
index b55b5af..0000000
+++ /dev/null
@@ -1,410 +0,0 @@
-//  SMESH SMESHDS : management of mesh data and SMESH document
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Command.cxx
-//  Author : Yves FRICAUD, OCC
-//  Module : SMESH
-//  $Header: 
-
-#include "SMESHDS_Command.hxx"
-
-#include "utilities.h"
-
-using namespace std;
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-SMESHDS_Command::SMESHDS_Command(const SMESHDS_CommandType aType):myType(aType),
-myNumber(0)
-{
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Command::AddNode(int NewNodeID, double x, double y, double z)
-{
-       if (!myType == SMESHDS_AddNode)
-       {
-               MESSAGE("SMESHDS_Command::AddNode : Bad Type");
-               return;
-       }
-       myIntegers.push_back(NewNodeID);
-       myReals.push_back(x);
-       myReals.push_back(y);
-       myReals.push_back(z);
-       myNumber++;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Command::MoveNode(int NodeID, double x, double y, double z)
-{
-       if (!myType == SMESHDS_MoveNode)
-       {
-               MESSAGE("SMESHDS_Command::MoveNode : Bad Type");
-               return;
-       }
-       myIntegers.push_back(NodeID);
-       myReals.push_back(x);
-       myReals.push_back(y);
-       myReals.push_back(z);
-       myNumber++;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Command::AddEdge(int NewEdgeID, int idnode1, int idnode2)
-{
-       if (!myType == SMESHDS_AddEdge)
-       {
-               MESSAGE("SMESHDS_Command::AddEdge : Bad Type");
-               return;
-       }
-       myIntegers.push_back(NewEdgeID);
-       myIntegers.push_back(idnode1);
-       myIntegers.push_back(idnode2);
-       myNumber++;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Command::AddFace(int NewFaceID,
-       int idnode1, int idnode2, int idnode3)
-{
-       if (!myType == SMESHDS_AddTriangle)
-       {
-               MESSAGE("SMESHDS_Command::AddFace : Bad Type");
-               return;
-       }
-       myIntegers.push_back(NewFaceID);
-       myIntegers.push_back(idnode1);
-       myIntegers.push_back(idnode2);
-       myIntegers.push_back(idnode3);
-       myNumber++;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Command::AddFace(int NewFaceID,
-       int idnode1, int idnode2, int idnode3, int idnode4)
-{
-       if (!myType == SMESHDS_AddQuadrangle)
-       {
-               MESSAGE("SMESHDS_Command::AddFace : Bad Type");
-               return;
-       }
-       myIntegers.push_back(NewFaceID);
-       myIntegers.push_back(idnode1);
-       myIntegers.push_back(idnode2);
-       myIntegers.push_back(idnode3);
-       myIntegers.push_back(idnode4);
-       myNumber++;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Command::AddVolume(int NewVolID,
-       int idnode1, int idnode2, int idnode3, int idnode4)
-{
-       if (!myType == SMESHDS_AddTetrahedron)
-       {
-               MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
-               return;
-       }
-       myIntegers.push_back(NewVolID);
-       myIntegers.push_back(idnode1);
-       myIntegers.push_back(idnode2);
-       myIntegers.push_back(idnode3);
-       myIntegers.push_back(idnode4);
-       myNumber++;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Command::AddVolume(int NewVolID,
-       int idnode1, int idnode2, int idnode3, int idnode4, int idnode5)
-{
-       if (!myType == SMESHDS_AddPyramid)
-       {
-               MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
-               return;
-       }
-       myIntegers.push_back(NewVolID);
-       myIntegers.push_back(idnode1);
-       myIntegers.push_back(idnode2);
-       myIntegers.push_back(idnode3);
-       myIntegers.push_back(idnode4);
-       myIntegers.push_back(idnode5);
-       myNumber++;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Command::AddVolume(int NewVolID,
-       int idnode1,
-       int idnode2, int idnode3, int idnode4, int idnode5, int idnode6)
-{
-       if (!myType == SMESHDS_AddPrism)
-       {
-               MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
-               return;
-       }
-       myIntegers.push_back(NewVolID);
-       myIntegers.push_back(idnode1);
-       myIntegers.push_back(idnode2);
-       myIntegers.push_back(idnode3);
-       myIntegers.push_back(idnode4);
-       myIntegers.push_back(idnode5);
-       myIntegers.push_back(idnode6);
-       myNumber++;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Command::AddVolume(int NewVolID,
-       int idnode1,
-       int idnode2,
-       int idnode3,
-       int idnode4, int idnode5, int idnode6, int idnode7, int idnode8)
-{
-       if (!myType == SMESHDS_AddHexahedron)
-       {
-               MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
-               return;
-       }
-       myIntegers.push_back(NewVolID);
-       myIntegers.push_back(idnode1);
-       myIntegers.push_back(idnode2);
-       myIntegers.push_back(idnode3);
-       myIntegers.push_back(idnode4);
-       myIntegers.push_back(idnode5);
-       myIntegers.push_back(idnode6);
-       myIntegers.push_back(idnode7);
-       myIntegers.push_back(idnode8);
-       myNumber++;
-}
-
-//=======================================================================
-//function : AddPolygonalFace
-//purpose  : 
-//=======================================================================
-void SMESHDS_Command::AddPolygonalFace (const int        ElementID,
-                                        std::vector<int> nodes_ids)
-{
-  if (!myType == SMESHDS_AddPolygon) {
-    MESSAGE("SMESHDS_Command::AddPolygonalFace : Bad Type");
-    return;
-  }
-  myIntegers.push_back(ElementID);
-
-  int i, nbNodes = nodes_ids.size();
-  myIntegers.push_back(nbNodes);
-  for (i = 0; i < nbNodes; i++) {
-    myIntegers.push_back(nodes_ids[i]);
-  }
-
-  myNumber++;
-}
-
-//=======================================================================
-//function : AddPolyhedralVolume
-//purpose  : 
-//=======================================================================
-void SMESHDS_Command::AddPolyhedralVolume (const int        ElementID,
-                                           std::vector<int> nodes_ids,
-                                           std::vector<int> quantities)
-{
-  if (!myType == SMESHDS_AddPolyhedron) {
-    MESSAGE("SMESHDS_Command::AddPolyhedralVolume : Bad Type");
-    return;
-  }
-  myIntegers.push_back(ElementID);
-
-  int i, nbNodes = nodes_ids.size();
-  myIntegers.push_back(nbNodes);
-  for (i = 0; i < nbNodes; i++) {
-    myIntegers.push_back(nodes_ids[i]);
-  }
-
-  int nbFaces = quantities.size();
-  myIntegers.push_back(nbFaces);
-  for (i = 0; i < nbFaces; i++) {
-    myIntegers.push_back(quantities[i]);
-  }
-
-  myNumber++;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Command::RemoveNode(int NodeID)
-{
-       if (!myType == SMESHDS_RemoveNode)
-       {
-               MESSAGE("SMESHDS_Command::RemoveNode : Bad Type");
-               return;
-       }
-       myIntegers.push_back(NodeID);
-       myNumber++;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Command::RemoveElement(int ElementID)
-{
-       if (!myType == SMESHDS_RemoveElement)
-       {
-               MESSAGE("SMESHDS_Command::RemoveElement : Bad Type");
-               return;
-       }
-       myIntegers.push_back(ElementID);
-       myNumber++;
-}
-
-//=======================================================================
-//function : ChangeElementNodes
-//purpose  : 
-//=======================================================================
-
-void SMESHDS_Command::ChangeElementNodes(int ElementID, int nodes[], int nbnodes)
-{
-  if (!myType == SMESHDS_ChangeElementNodes)
-  {
-    MESSAGE("SMESHDS_Command::ChangeElementNodes : Bad Type");
-    return;
-  }
-  myIntegers.push_back(ElementID);
-  myIntegers.push_back(nbnodes);
-  for ( int i = 0; i < nbnodes; i++ )
-    myIntegers.push_back( nodes[ i ] );
-
-  myNumber++;
-}
-
-//=======================================================================
-//function : ChangePolyhedronNodes
-//purpose  : 
-//=======================================================================
-void SMESHDS_Command::ChangePolyhedronNodes (const int ElementID,
-                                             std::vector<int> nodes_ids,
-                                             std::vector<int> quantities)
-{
-  if (myType != SMESHDS_ChangePolyhedronNodes)
-  {
-    MESSAGE("SMESHDS_Command::ChangePolyhedronNodes : Bad Type");
-    return;
-  }
-  myIntegers.push_back(ElementID);
-
-  int i, nbNodes = nodes_ids.size();
-  myIntegers.push_back(nbNodes);
-  for (i = 0; i < nbNodes; i++) {
-    myIntegers.push_back(nodes_ids[i]);
-  }
-
-  int nbFaces = quantities.size();
-  myIntegers.push_back(nbFaces);
-  for (i = 0; i < nbFaces; i++) {
-    myIntegers.push_back(quantities[i]);
-  }
-
-  myNumber++;
-}
-
-//=======================================================================
-//function : Renumber
-//purpose  : 
-//=======================================================================
-
-void SMESHDS_Command::Renumber (const bool isNodes, const int startID, const int deltaID)
-{
-  if (!myType == SMESHDS_Renumber)
-  {
-    MESSAGE("SMESHDS_Command::Renumber : Bad Type");
-    return;
-  }
-  myIntegers.push_back(isNodes);
-  myIntegers.push_back(startID);
-  myIntegers.push_back(deltaID);
-  myNumber++;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-SMESHDS_CommandType SMESHDS_Command::GetType()
-{
-       return myType;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-int SMESHDS_Command::GetNumber()
-{
-       return myNumber;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-const list < int >&SMESHDS_Command::GetIndexes()
-{
-       return myIntegers;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-const list < double >&SMESHDS_Command::GetCoords()
-{
-       return myReals;
-}
diff --git a/src/SMESHDS/SMESHDS_Command.hxx b/src/SMESHDS/SMESHDS_Command.hxx
deleted file mode 100644 (file)
index 3ecd762..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-//  SMESH SMESHDS : management of mesh data and SMESH document
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHDS_Command.hxx
-//  Module : SMESH
-
-#ifndef _SMESHDS_Command_HeaderFile
-#define _SMESHDS_Command_HeaderFile
-
-#include "SMESHDS_CommandType.hxx"
-#include <list>
-#include <vector>
-
-class SMESHDS_Command
-{
-
-  public:
-       SMESHDS_Command(const SMESHDS_CommandType aType);
-       void AddNode(int NewNodeID, double x, double y, double z);
-       void AddEdge(int NewEdgeID, int idnode1, int idnode2);
-       void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3);
-       void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3,
-               int idnode4);
-       void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
-               int idnode4);
-       void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
-               int idnode4, int idnode5);
-       void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
-               int idnode4, int idnode5, int idnode6);
-       void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
-               int idnode4, int idnode5, int idnode6, int idnode7, int idnode8);
-        void AddPolygonalFace (const int        ElementID,
-                               std::vector<int> nodes_ids);
-        void AddPolyhedralVolume (const int        ElementID,
-                                  std::vector<int> nodes_ids,
-                                  std::vector<int> quantities);
-       void MoveNode(int NewNodeID, double x, double y, double z);
-       void RemoveNode(int NodeID);
-       void RemoveElement(int ElementID);
-       void ChangeElementNodes(int ElementID, int nodes[], int nbnodes);
-       void ChangePolyhedronNodes(const int ElementID,
-                                   std::vector<int> nodes_ids,
-                                   std::vector<int> quantities);
-       void Renumber (const bool isNodes, const int startID, const int deltaID);
-       SMESHDS_CommandType GetType();
-       int GetNumber();
-       const std::list<int> & GetIndexes();
-       const std::list<double> & GetCoords();
-        ~SMESHDS_Command();
-  private:
-       SMESHDS_CommandType myType;
-       int myNumber;
-       std::list<double> myReals;
-       std::list<int> myIntegers;
-};
-#endif
diff --git a/src/SMESHDS/SMESHDS_CommandType.hxx b/src/SMESHDS/SMESHDS_CommandType.hxx
deleted file mode 100644 (file)
index f2c505b..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-//  SMESH SMESHDS : management of mesh data and SMESH document
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHDS_CommandType.hxx
-//  Module : SMESH
-
-#ifndef _SMESHDS_CommandType_HeaderFile
-#define _SMESHDS_CommandType_HeaderFile
-
-//#include <Standard_PrimitiveTypes.hxx>
-
-enum SMESHDS_CommandType { 
- SMESHDS_AddNode,
- SMESHDS_AddEdge,
- SMESHDS_AddTriangle,
- SMESHDS_AddQuadrangle,
- SMESHDS_AddPolygon,
- SMESHDS_AddTetrahedron,
- SMESHDS_AddPyramid,
- SMESHDS_AddPrism,
- SMESHDS_AddHexahedron,
- SMESHDS_AddPolyhedron,
- SMESHDS_RemoveNode,
- SMESHDS_RemoveElement,
- SMESHDS_MoveNode,
- SMESHDS_ChangeElementNodes,
- SMESHDS_ChangePolyhedronNodes,
- SMESHDS_Renumber
-};
-
-
-#endif
diff --git a/src/SMESHDS/SMESHDS_Document.cxx b/src/SMESHDS/SMESHDS_Document.cxx
deleted file mode 100644 (file)
index f533a72..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-//  SMESH SMESHDS : management of mesh data and SMESH document
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHDS_Document.cxx
-//  Author : Yves FRICAUD, OCC
-//  Module : SMESH
-//  $Header: 
-
-#include "SMESHDS_Document.hxx"
-#include "utilities.h"
-
-using namespace std;
-
-//=======================================================================
-//function : Create
-//purpose  : 
-//=======================================================================
-SMESHDS_Document::SMESHDS_Document(int UserID):myUserID(UserID)
-{
-}
-
-//=======================================================================
-//function : NewMesh
-//purpose  : 
-//=======================================================================
-int SMESHDS_Document::NewMesh()
-{
-       static int NewMeshID = 0;
-       NewMeshID++;
-       SMESHDS_Mesh *aNewMesh = new SMESHDS_Mesh(NewMeshID);
-       myMeshes[NewMeshID] = aNewMesh;
-       return NewMeshID;
-}
-
-//=======================================================================
-//function : GetMesh
-//purpose  : 
-//=======================================================================
-SMESHDS_Mesh *SMESHDS_Document::GetMesh(int MeshID)
-{
-       map<int,SMESHDS_Mesh*>::iterator it=myMeshes.find(MeshID);
-       if (it==myMeshes.end())
-       {
-               MESSAGE("SMESHDS_Document::GetMesh : ID not found");
-               return NULL;
-       }
-       else return (*it).second;
-}
-
-//=======================================================================
-//function : RemoveMesh
-//purpose  : 
-//=======================================================================
-void SMESHDS_Document::RemoveMesh(int MeshID)
-{
-       map<int,SMESHDS_Mesh*>::iterator it=myMeshes.find(MeshID);
-       if (it==myMeshes.end())
-               MESSAGE("SMESHDS_Document::RemoveMesh : ID not found"); 
-       myMeshes.erase(it);
-}
-
-//=======================================================================
-//function : AddHypothesis
-//purpose  : 
-//=======================================================================
-void SMESHDS_Document::AddHypothesis(SMESHDS_Hypothesis * H)
-{
-       myHypothesis[H->GetID()]=H;
-}
-
-//=======================================================================
-//function : GetHypothesis
-//purpose  : 
-//=======================================================================
-SMESHDS_Hypothesis * SMESHDS_Document::GetHypothesis(int HypID)
-{
-       map<int,SMESHDS_Hypothesis*>::iterator it=myHypothesis.find(HypID);
-       if (it==myHypothesis.end())
-       {
-               MESSAGE("SMESHDS_Document::GetHypothesis : ID not found");
-               return NULL;
-       }
-       else return (*it).second;
-}
-
-//=======================================================================
-//function : RemoveHypothesis
-//purpose  : 
-//=======================================================================
-void SMESHDS_Document::RemoveHypothesis(int HypID)
-{
-       map<int,SMESHDS_Hypothesis*>::iterator it=myHypothesis.find(HypID);
-       if (it==myHypothesis.end())
-               MESSAGE("SMESHDS_Document::RemoveHypothesis : ID not found");   
-       myHypothesis.erase(it);
-}
-
-//=======================================================================
-//function : NbMeshes
-//purpose  : 
-//=======================================================================
-int SMESHDS_Document::NbMeshes()
-{
-       return myMeshes.size();
-}
-
-//=======================================================================
-//function : NbHypothesis
-//purpose  : 
-//=======================================================================
-int SMESHDS_Document::NbHypothesis()
-{
-       return myHypothesis.size();
-}
-
-//=======================================================================
-//function : InitMeshesIterator
-//purpose  : 
-//=======================================================================
-void SMESHDS_Document::InitMeshesIterator()
-{
-       myMeshesIt=myMeshes.begin();
-}
-
-//=======================================================================
-//function : NextMesh
-//purpose  : 
-//=======================================================================
-SMESHDS_Mesh * SMESHDS_Document::NextMesh()
-{
-       SMESHDS_Mesh * toReturn=(*myMeshesIt).second;
-       myMeshesIt++;
-       return toReturn;
-}
-
-//=======================================================================
-//function : MoreMesh
-//purpose  : 
-//=======================================================================
-bool SMESHDS_Document::MoreMesh()
-{
-       return myMeshesIt!=myMeshes.end();
-}
-
-//=======================================================================
-//function : InitHypothesisIterator
-//purpose  : 
-//=======================================================================
-void SMESHDS_Document::InitHypothesisIterator()
-{
-       myHypothesisIt=myHypothesis.begin();
-}
-
-//=======================================================================
-//function : NextMesh
-//purpose  : 
-//=======================================================================
-SMESHDS_Hypothesis * SMESHDS_Document::NextHypothesis()
-{
-       SMESHDS_Hypothesis * toReturn=(*myHypothesisIt).second;
-       myHypothesisIt++;
-       return toReturn;
-}
-
-//=======================================================================
-//function : MoreMesh
-//purpose  : 
-//=======================================================================
-bool SMESHDS_Document::MoreHypothesis()
-{
-       return myHypothesisIt!=myHypothesis.end();
-}
diff --git a/src/SMESHDS/SMESHDS_Document.hxx b/src/SMESHDS/SMESHDS_Document.hxx
deleted file mode 100644 (file)
index e95269f..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-//  SMESH SMESHDS : management of mesh data and SMESH document
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHDS_Document.hxx
-//  Module : SMESH
-
-#ifndef _SMESHDS_Document_HeaderFile
-#define _SMESHDS_Document_HeaderFile
-
-#include "SMESHDS_Mesh.hxx"
-#include "SMESHDS_Hypothesis.hxx"
-#include <map>
-
-
-class SMESHDS_Document
-{
-  public:
-       SMESHDS_Document(int UserID);
-       int NewMesh();
-       void RemoveMesh(int MeshID);
-       SMESHDS_Mesh * GetMesh(int MeshID);
-       void AddHypothesis(SMESHDS_Hypothesis * H);
-       void RemoveHypothesis(int HypID);
-       SMESHDS_Hypothesis * GetHypothesis(int HypID);
-       int NbMeshes();
-       int NbHypothesis();
-       void InitMeshesIterator();
-       SMESHDS_Mesh * NextMesh();
-       bool MoreMesh();        
-       void InitHypothesisIterator();
-       SMESHDS_Hypothesis * NextHypothesis();
-       bool MoreHypothesis();  
-        ~SMESHDS_Document();
-
-  private:
-       int myUserID;
-       std::map<int,SMESHDS_Mesh*> myMeshes;
-       std::map<int,SMESHDS_Hypothesis*> myHypothesis;
-       std::map<int,SMESHDS_Mesh*>::iterator myMeshesIt;
-       std::map<int,SMESHDS_Hypothesis*>::iterator myHypothesisIt;
-};
-
-#endif
diff --git a/src/SMESHDS/SMESHDS_Group.cxx b/src/SMESHDS/SMESHDS_Group.cxx
deleted file mode 100644 (file)
index 9c7dfa4..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-//  SMESH SMESHDS : idl implementation based on 'SMESH' unit's classes
-//
-//  Copyright (C) 2004  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHDS_Group.cxx
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHDS_Group.hxx"
-#include "SMESHDS_Mesh.hxx"
-
-using namespace std;
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESHDS_Group::SMESHDS_Group (const int                 theID,
-                              const SMESHDS_Mesh*       theMesh,
-                              const SMDSAbs_ElementType theType)
-     : SMESHDS_GroupBase(theID,theMesh,theType),
-       myGroup(theMesh,theType)
-{
-}
-
-//=======================================================================
-//function : Extent
-//purpose  : 
-//=======================================================================
-
-int SMESHDS_Group::Extent()
-{
-  return myGroup.Extent();
-}
-
-//=======================================================================
-//function : IsEmpty
-//purpose  : 
-//=======================================================================
-
-bool SMESHDS_Group::IsEmpty()
-{
-  return myGroup.IsEmpty();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool SMESHDS_Group::Contains (const int theID)
-{
-  const SMDS_MeshElement* aElem = findInMesh (theID);
-  if (aElem)
-    return myGroup.Contains(aElem);
-  return false;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool SMESHDS_Group::Add (const int theID)
-{
-  const SMDS_MeshElement* aElem = findInMesh (theID);
-  if (!aElem || myGroup.Contains(aElem))
-    return false;
-
-  if (myGroup.IsEmpty())
-    SetType( aElem->GetType() );
-
-  myGroup.Add (aElem);
-  resetIterator();
-  return true;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool SMESHDS_Group::Remove (const int theID)
-{
-  const SMDS_MeshElement* aElem = findInMesh (theID);
-  if (!aElem || !myGroup.Contains(aElem))
-    return false;
-  myGroup.Remove (aElem);
-  resetIterator();
-  return true;
-}
-
-//=======================================================================
-//function : Clear
-//purpose  : 
-//=======================================================================
-
-void SMESHDS_Group::Clear()
-{
-  myGroup.Clear();
-  resetIterator();
-}
-
-// =====================
-// class MyGroupIterator
-// =====================
-
-class MyGroupIterator: public SMDS_ElemIterator
-{
-  const SMDS_MeshGroup& myGroup;
- public:
-  MyGroupIterator(const SMDS_MeshGroup& group): myGroup(group) { myGroup.InitIterator(); }
-  bool more() { return myGroup.More(); }
-  const SMDS_MeshElement* next() { return myGroup.Next(); }
-};
-   
-//=======================================================================
-//function : GetElements
-//purpose  : 
-//=======================================================================
-
-SMDS_ElemIteratorPtr SMESHDS_Group::GetElements()
-{
-  return SMDS_ElemIteratorPtr( new MyGroupIterator ( myGroup ));
-}
-
-//=======================================================================
-//function : SetType
-//purpose  : 
-//=======================================================================
-
-void SMESHDS_Group::SetType(SMDSAbs_ElementType theType)
-{
-  if ( myGroup.IsEmpty() || GetType() == SMDSAbs_All ) {
-    SMESHDS_GroupBase::SetType( theType );
-    myGroup.SetType ( theType );
-  }
-  else
-    SMESHDS_GroupBase::SetType( myGroup.GetType() );
-}
-
diff --git a/src/SMESHDS/SMESHDS_Group.hxx b/src/SMESHDS/SMESHDS_Group.hxx
deleted file mode 100644 (file)
index b318a0f..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-//  SMESH SMESHDS : management of mesh data and SMESH document
-//
-//  Copyright (C) 2004  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHDS_Group.hxx
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESHDS_Group_HeaderFile
-#define _SMESHDS_Group_HeaderFile
-
-#include <string>
-#include "SMESHDS_GroupBase.hxx"
-#include "SMDS_MeshGroup.hxx"
-
-class SMESHDS_Mesh;
-
-class SMESHDS_Group : public SMESHDS_GroupBase
-{
- public:
-
-  SMESHDS_Group (const int                 theID,
-                 const SMESHDS_Mesh*       theMesh,
-                 const SMDSAbs_ElementType theType);
-
-  virtual void SetType(SMDSAbs_ElementType theType);
-
-  virtual int Extent();
-
-  virtual bool IsEmpty();
-
-  virtual bool Contains (const int theID);
-
-  virtual SMDS_ElemIteratorPtr GetElements();
-
-  bool SMESHDS_Group::Add (const int theID);
-
-  bool SMESHDS_Group::Remove (const int theID);
-
-  void Clear();
-
-  SMDS_MeshGroup& SMDSGroup() { return myGroup; }
-
- private:
-
-  SMDS_MeshGroup myGroup;
-
-};
-
-#endif
diff --git a/src/SMESHDS/SMESHDS_GroupBase.cxx b/src/SMESHDS/SMESHDS_GroupBase.cxx
deleted file mode 100644 (file)
index c4adcc5..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-//  SMESH SMESHDS : idl implementation based on 'SMESH' unit's classes
-//
-//  Copyright (C) 2004  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHDS_Group.cxx
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHDS_GroupBase.hxx"
-#include "SMESHDS_Mesh.hxx"
-
-#include "utilities.h"
-
-using namespace std;
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESHDS_GroupBase::SMESHDS_GroupBase (const int                 theID,
-                                      const SMESHDS_Mesh*       theMesh,
-                                      const SMDSAbs_ElementType theType):
-       myID(theID), myMesh(theMesh), myType(theType), myStoreName(""),
-       myCurIndex(0), myCurID(-1)
-{
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-int SMESHDS_GroupBase::GetID (const int theIndex)
-{
-  if (myCurIndex < 1 || myCurIndex > theIndex) {
-    myIterator = GetElements();
-    myCurIndex = 0;
-    myCurID = -1;
-  }
-  while (myCurIndex < theIndex && myIterator->more()) {
-    myCurIndex++;
-    myCurID = myIterator->next()->GetID();
-  }
-  return myCurIndex == theIndex ? myCurID : -1;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-const SMDS_MeshElement* SMESHDS_GroupBase::findInMesh (const int theID) const
-{
-  SMDSAbs_ElementType aType = GetType();
-  const SMDS_MeshElement* aElem = NULL;
-  if (aType == SMDSAbs_Node) {
-    aElem = GetMesh()->FindNode(theID);
-  }
-  else if (aType != SMDSAbs_All) {
-    aElem = GetMesh()->FindElement(theID);
-    if (aElem && aType != aElem->GetType())
-      aElem = NULL;
-  }
-  return aElem;
-}
-
-//=============================================================================
-/*!
- *  Internal method: resets cached iterator, should be called by ancestors
- *  when they are modified (ex: Add() or Remove() )
- */
-//=============================================================================
-void SMESHDS_GroupBase::resetIterator()
-{
-  myCurIndex = 0;
-  myCurID = -1;
-}
-
-//=======================================================================
-//function : Extent
-//purpose  : 
-//=======================================================================
-
-int SMESHDS_GroupBase::Extent()
-{
-  SMDS_ElemIteratorPtr it = GetElements();
-  int nb = 0;
-  if ( it )
-    for ( ; it->more(); it->next() ) 
-      nb++;
-  return nb;
-}
-
-//=======================================================================
-//function : IsEmpty
-//purpose  : 
-//=======================================================================
-
-bool SMESHDS_GroupBase::IsEmpty()
-{
-  SMDS_ElemIteratorPtr it = GetElements();
-  return ( !it || !it->more() );
-}
-
-//=======================================================================
-//function : Contains
-//purpose  : 
-//=======================================================================
-
-bool SMESHDS_GroupBase::Contains (const int theID)
-{
-  SMDS_ElemIteratorPtr it = GetElements();
-  bool contains = false;
-  if ( it )
-    while ( !contains && it->more() )
-      contains = ( it->next()->GetID() == theID );
-  return contains;
-}
-
-//=======================================================================
-//function : SetType
-//purpose  : 
-//=======================================================================
-
-void SMESHDS_GroupBase::SetType(SMDSAbs_ElementType theType)
-{
-  myType = theType;
-}
diff --git a/src/SMESHDS/SMESHDS_GroupBase.hxx b/src/SMESHDS/SMESHDS_GroupBase.hxx
deleted file mode 100644 (file)
index a7aa87c..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-//  SMESH SMESHDS : management of mesh data and SMESH document
-//
-//  Copyright (C) 2004  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHDS_Group.hxx
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESHDS_GroupBase_HeaderFile
-#define _SMESHDS_GroupBase_HeaderFile
-
-#include <string>
-#include "SMDSAbs_ElementType.hxx"
-#include "SMDS_MeshElement.hxx"
-  
-class SMESHDS_Mesh;
-
-class SMESHDS_GroupBase
-{
- public:
-
-  SMESHDS_GroupBase (const int                 theID,
-                     const SMESHDS_Mesh*       theMesh,
-                     const SMDSAbs_ElementType theType);
-
-  int GetID() const { return myID; }
-
-  const SMESHDS_Mesh* GetMesh() const { return myMesh; }
-
-  virtual void SetType(SMDSAbs_ElementType theType);
-
-  SMDSAbs_ElementType GetType() const { return myType; }
-
-  void SetStoreName (const char* theName) { myStoreName = theName; }
-
-  const char* GetStoreName () const { return myStoreName.c_str(); }
-
-  virtual int Extent();
-
-  virtual bool IsEmpty();
-
-  virtual bool Contains (const int theID);
-
-  virtual SMDS_ElemIteratorPtr GetElements() = 0;
-
-  int GetID (const int theIndex);
-  // use it for iterations 1..Extent()
-
-  virtual ~SMESHDS_GroupBase() {}
-
- protected:
-  const SMDS_MeshElement* findInMesh (const int theID) const;
-  void resetIterator();
-
- private:
-  SMESHDS_GroupBase (const SMESHDS_GroupBase& theOther);
-  // prohibited copy constructor
-  SMESHDS_GroupBase& operator = (const SMESHDS_GroupBase& theOther);
-  // prohibited assign operator
-
-  int                  myID;
-  const SMESHDS_Mesh*  myMesh;
-  SMDSAbs_ElementType  myType;
-  std::string          myStoreName;
-  // for GetID()
-  int                  myCurIndex;
-  int                  myCurID;
-  SMDS_ElemIteratorPtr myIterator;
-
-};
-
-#endif
diff --git a/src/SMESHDS/SMESHDS_GroupOnGeom.cxx b/src/SMESHDS/SMESHDS_GroupOnGeom.cxx
deleted file mode 100644 (file)
index 187357a..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-//  SMESH SMESHDS : idl implementation based on 'SMESH' unit's classes
-//
-//  Copyright (C) 2004  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHDS_GroupOnGeom.cxx
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHDS_GroupOnGeom.hxx"
-#include "SMESHDS_Mesh.hxx"
-#include "utilities.h"
-
-using namespace std;
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESHDS_GroupOnGeom::SMESHDS_GroupOnGeom (const int                 theID,
-                                          const SMESHDS_Mesh*       theMesh,
-                                          const SMDSAbs_ElementType theType,
-                                          const TopoDS_Shape&       theShape)
-     : SMESHDS_GroupBase(theID,theMesh,theType), myShape(theShape)
-{
-  SMESHDS_Mesh* aMesh = const_cast<SMESHDS_Mesh*>(theMesh);
-  mySubMesh = aMesh->MeshElements( aMesh->AddCompoundSubmesh( theShape ));
-}
-
-// =====================
-// class MyGroupIterator
-// =====================
-
-class MyIterator: public SMDS_ElemIterator
-{
-  SMDSAbs_ElementType     myType;
-  SMDS_ElemIteratorPtr    myElemIt;
-  SMDS_NodeIteratorPtr    myNodeIt;
-  const SMDS_MeshElement* myElem;
- public:
-  MyIterator(SMDSAbs_ElementType type, const SMESHDS_SubMesh* subMesh)
-    : myType(type), myElem(0)
-  {
-    if ( subMesh ) 
-      if ( myType == SMDSAbs_Node )
-        myNodeIt = subMesh->GetNodes();
-      else {
-        myElemIt = subMesh->GetElements();
-        next();
-      }
-  }
-  bool more()
-  {
-    if ( myType == SMDSAbs_Node && myNodeIt )
-      return myNodeIt->more();
-    return ( myElem != 0 );
-  }
-  const SMDS_MeshElement* next()
-  {
-    if ( myType == SMDSAbs_Node && myNodeIt )
-      return myNodeIt->next();
-    const SMDS_MeshElement* res = myElem;
-    myElem = 0;
-    while ( myElemIt && myElemIt->more() ) {
-      myElem = myElemIt->next();
-      if ( myElem && myElem->GetType() == myType )
-        break;
-      else
-        myElem = 0;
-    }
-    return res;
-  }
-};
-
-//=======================================================================
-//function : GetElements
-//purpose  : 
-//=======================================================================
-
-SMDS_ElemIteratorPtr SMESHDS_GroupOnGeom::GetElements()
-{
-  return SMDS_ElemIteratorPtr( new MyIterator ( GetType(), mySubMesh ));
-}
-
-//=======================================================================
-//function : Contains
-//purpose  : 
-//=======================================================================
-
-bool SMESHDS_GroupOnGeom::Contains (const int theID)
-{
-  return mySubMesh->Contains( findInMesh( theID ));
-}
diff --git a/src/SMESHDS/SMESHDS_GroupOnGeom.hxx b/src/SMESHDS/SMESHDS_GroupOnGeom.hxx
deleted file mode 100644 (file)
index 6a514e2..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-//  SMESH SMESHDS : management of mesh data and SMESH document
-//
-//  Copyright (C) 2004  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHDS_GroupOnGeom.hxx
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESHDS_GroupOnGeom_HeaderFile
-#define _SMESHDS_GroupOnGeom_HeaderFile
-
-#include "SMESHDS_GroupBase.hxx"
-#include <TopoDS_Shape.hxx>
-  
-class SMESHDS_SubMesh;
-
-class SMESHDS_GroupOnGeom: public SMESHDS_GroupBase
-{
- public:
-
-  SMESHDS_GroupOnGeom (const int                 theID,
-                       const SMESHDS_Mesh*       theMesh,
-                       const SMDSAbs_ElementType theType,
-                       const TopoDS_Shape&       theShape);
-
-  TopoDS_Shape GetShape() const { return myShape; }
-
-  virtual bool Contains (const int theID);
-
-  virtual SMDS_ElemIteratorPtr GetElements();
-
- private:
-
-  TopoDS_Shape           myShape;
-  const SMESHDS_SubMesh* mySubMesh;
-};
-
-#endif
diff --git a/src/SMESHDS/SMESHDS_Hypothesis.cxx b/src/SMESHDS/SMESHDS_Hypothesis.cxx
deleted file mode 100644 (file)
index 29501c4..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-//  SMESH SMESHDS : management of mesh data and SMESH document
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHDS_Hypothesis.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHDS_Hypothesis.hxx"
-
-using namespace std;
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-SMESHDS_Hypothesis::SMESHDS_Hypothesis(int hypId)
-{
-//   MESSAGE("SMESHDS_Hypothesis::SMESHDS_Hypothesis");
-  _hypId = hypId;
-  _name = "generic";
-//   SCRUTE(_name);
-//   SCRUTE(_hypId);
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-SMESHDS_Hypothesis::~SMESHDS_Hypothesis()
-{
-//   MESSAGE("SMESHDS_Hypothesis::~SMESHDS_Hypothesis");
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-const char* SMESHDS_Hypothesis::GetName() const
-{
-//   MESSAGE("SMESHDS_Hypothesis::GetName");
-//   SCRUTE(_name);
-//   SCRUTE(&_name);
-  return _name.c_str();
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-int SMESHDS_Hypothesis::GetID() const
-{
-//   MESSAGE("SMESHDS_Hypothesis::GetId");
-//   SCRUTE(_hypId);
-  return _hypId;
-}
-
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-int SMESHDS_Hypothesis::GetType() const
-{
-//   MESSAGE("SMESHDS_Hypothesis::GetType");
-//   SCRUTE(_type);
-  return _type;
-}
-
diff --git a/src/SMESHDS/SMESHDS_Hypothesis.hxx b/src/SMESHDS/SMESHDS_Hypothesis.hxx
deleted file mode 100644 (file)
index 9fb413f..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-//  SMESH SMESHDS : management of mesh data and SMESH document
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHDS_Hypothesis.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESHDS_HYPOTHESIS_HXX_
-#define _SMESHDS_HYPOTHESIS_HXX_
-
-#include <string>
-#include <iostream>
-
-class SMESHDS_Hypothesis
-{
-public:
-  SMESHDS_Hypothesis(int hypId);
-  virtual ~SMESHDS_Hypothesis();
-
-  const char* GetName() const;
-  int GetID() const;
-  int GetType() const;
-
-  virtual std::ostream & SaveTo(std::ostream & save)=0;
-  virtual std::istream & LoadFrom(std::istream & load)=0;
-
-enum hypothesis_type {PARAM_ALGO, ALGO, ALGO_1D, ALGO_2D, ALGO_3D};
-
-protected:
-  std::string _name;
-  int _hypId;
-  int _type;
-};
-
-#endif
diff --git a/src/SMESHDS/SMESHDS_Mesh.cxx b/src/SMESHDS/SMESHDS_Mesh.cxx
deleted file mode 100644 (file)
index ded954d..0000000
+++ /dev/null
@@ -1,1127 +0,0 @@
-//  SMESH SMESHDS : management of mesh data and SMESH document
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Mesh.cxx
-//  Author : Yves FRICAUD, OCC
-//  Module : SMESH
-//  $Header: 
-
-#include "SMESHDS_Mesh.hxx"
-
-#include "SMESHDS_Group.hxx"
-#include "SMDS_VertexPosition.hxx"
-#include "SMDS_EdgePosition.hxx"
-#include "SMDS_FacePosition.hxx"
-#include "SMESHDS_GroupOnGeom.hxx"
-#include <TopExp_Explorer.hxx>
-#include <TopExp.hxx>
-#include <TopoDS_Iterator.hxx>
-
-#include "utilities.h"
-
-using namespace std;
-
-//=======================================================================
-//function : Create
-//purpose  : 
-//=======================================================================
-SMESHDS_Mesh::SMESHDS_Mesh(int MeshID):myMeshID(MeshID)
-{
-       myScript = new SMESHDS_Script();
-}
-
-//=======================================================================
-//function : ShapeToMesh
-//purpose  : 
-//=======================================================================
-void SMESHDS_Mesh::ShapeToMesh(const TopoDS_Shape & S)
-{
-  if ( !myShape.IsNull() && S.IsNull() )
-  {
-    // removal of a shape to mesh, delete ...
-    // - hypotheses
-    myShapeToHypothesis.clear();
-    // - shape indices in SMDS_Position of nodes
-    map<int,SMESHDS_SubMesh*>::iterator i_sub = myShapeIndexToSubMesh.begin();
-    for ( ; i_sub != myShapeIndexToSubMesh.end(); i_sub++ ) {
-      if ( !i_sub->second->IsComplexSubmesh() ) {
-        SMDS_NodeIteratorPtr nIt = i_sub->second->GetNodes();
-        while ( nIt->more() )
-          nIt->next()->GetPosition()->SetShapeId( 0 );
-      }
-    }
-    // - sub-meshes
-    myIndexToShape.Clear();
-    myShapeIndexToSubMesh.clear();
-    // - groups on geometry
-    set<SMESHDS_GroupBase*>::iterator gr = myGroups.begin();
-    while ( gr != myGroups.end() ) {
-      if ( dynamic_cast<SMESHDS_GroupOnGeom*>( *gr ))
-        myGroups.erase( gr++ );
-      else
-        gr++;
-    }
-  }
-  else {
-    myShape = S;
-    if ( !S.IsNull() )
-      TopExp::MapShapes(myShape, myIndexToShape);
-  }
-}
-
-//=======================================================================
-//function : AddHypothesis
-//purpose  : 
-//=======================================================================
-
-bool SMESHDS_Mesh::AddHypothesis(const TopoDS_Shape & SS,
-       const SMESHDS_Hypothesis * H)
-{
-       list<const SMESHDS_Hypothesis *>& alist=myShapeToHypothesis[SS];
-
-       //Check if the Hypothesis is still present
-       list<const SMESHDS_Hypothesis*>::iterator ith=alist.begin();
-
-       for (; ith!=alist.end(); ith++)
-               if (H == *ith) return false;
-
-       alist.push_back(H);
-       return true;
-}
-
-//=======================================================================
-//function : RemoveHypothesis
-//purpose  : 
-//=======================================================================
-
-bool SMESHDS_Mesh::RemoveHypothesis(const TopoDS_Shape & S,
-       const SMESHDS_Hypothesis * H)
-{
-       ShapeToHypothesis::iterator its=myShapeToHypothesis.find(S);
-       if(its!=myShapeToHypothesis.end())
-       {
-               list<const SMESHDS_Hypothesis*>::iterator ith=(*its).second.begin();
-
-               for (; ith!=(*its).second.end(); ith++)
-                       if (H == *ith)
-                       {
-                               (*its).second.erase(ith);
-                               return true;
-                       }
-       }
-       return false;
-}
-
-//=======================================================================
-//function : AddNode
-//purpose  : 
-//=======================================================================
-SMDS_MeshNode* SMESHDS_Mesh::AddNode(double x, double y, double z){
-  SMDS_MeshNode* node = SMDS_Mesh::AddNode(x, y, z);
-  if(node!=NULL) myScript->AddNode(node->GetID(), x, y, z);
-  return node;
-}
-
-SMDS_MeshNode* SMESHDS_Mesh::AddNodeWithID(double x, double y, double z, int ID){
-  SMDS_MeshNode* node = SMDS_Mesh::AddNodeWithID(x,y,z,ID);
-  if(node!=NULL) myScript->AddNode(node->GetID(), x, y, z);
-  return node;
-}
-
-//=======================================================================
-//function : MoveNode
-//purpose  : 
-//=======================================================================
-void SMESHDS_Mesh::MoveNode(const SMDS_MeshNode *n, double x, double y, double z)
-{
-  SMDS_MeshNode * node=const_cast<SMDS_MeshNode*>(n);
-  node->setXYZ(x,y,z);
-  myScript->MoveNode(n->GetID(), x, y, z);
-}
-
-//=======================================================================
-//function : ChangeElementNodes
-//purpose  : 
-//=======================================================================
-
-bool SMESHDS_Mesh::ChangeElementNodes(const SMDS_MeshElement * elem,
-                                      const SMDS_MeshNode    * nodes[],
-                                      const int                nbnodes)
-{
-  if ( ! SMDS_Mesh::ChangeElementNodes( elem, nodes, nbnodes ))
-    return false;
-
-  //ASSERT( nbnodes < 9 );
-  //int i, IDs[ 8 ];
-  int i, IDs[ nbnodes ];
-  for ( i = 0; i < nbnodes; i++ )
-    IDs [ i ] = nodes[ i ]->GetID();
-  myScript->ChangeElementNodes( elem->GetID(), IDs, nbnodes);
-
-  return true;
-}
-
-//=======================================================================
-//function : ChangePolygonNodes
-//purpose  : 
-//=======================================================================
-bool SMESHDS_Mesh::ChangePolygonNodes
-                   (const SMDS_MeshElement * elem,
-                    std::vector<const SMDS_MeshNode*> nodes)
-{
-  ASSERT(nodes.size() > 3);
-
-  int nb = nodes.size();
-  const SMDS_MeshNode* nodes_array [nb];
-  for (int inode = 0; inode < nb; inode++) {
-    nodes_array[inode] = nodes[inode];
-  }
-
-  return ChangeElementNodes(elem, nodes_array, nb);
-}
-
-//=======================================================================
-//function : ChangePolyhedronNodes
-//purpose  : 
-//=======================================================================
-bool SMESHDS_Mesh::ChangePolyhedronNodes
-                   (const SMDS_MeshElement * elem,
-                    std::vector<const SMDS_MeshNode*> nodes,
-                    std::vector<int>                  quantities)
-{
-  ASSERT(nodes.size() > 3);
-
-  if (!SMDS_Mesh::ChangePolyhedronNodes(elem, nodes, quantities))
-    return false;
-
-  int i, len = nodes.size();
-  std::vector<int> nodes_ids (len);
-  for (i = 0; i < len; i++) {
-    nodes_ids[i] = nodes[i]->GetID();
-  }
-  myScript->ChangePolyhedronNodes(elem->GetID(), nodes_ids, quantities);
-
-  return true;
-}
-
-//=======================================================================
-//function : Renumber
-//purpose  : 
-//=======================================================================
-
-void SMESHDS_Mesh::Renumber (const bool isNodes, const int startID, const int deltaID)
-{
-  SMDS_Mesh::Renumber( isNodes, startID, deltaID );
-  myScript->Renumber( isNodes, startID, deltaID );
-}
-
-//=======================================================================
-//function :AddEdgeWithID
-//purpose  : 
-//=======================================================================
-SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(int n1, int n2, int ID)
-{
-  SMDS_MeshEdge* anElem = SMDS_Mesh::AddEdgeWithID(n1,n2,ID);
-  if(anElem) myScript->AddEdge(ID,n1,n2);
-  return anElem;
-}
-
-SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(const SMDS_MeshNode * n1,
-                                          const SMDS_MeshNode * n2, 
-                                          int ID)
-{
-  return AddEdgeWithID(n1->GetID(),
-                      n2->GetID(),
-                      ID);
-}
-
-SMDS_MeshEdge* SMESHDS_Mesh::AddEdge(const SMDS_MeshNode * n1,
-                                    const SMDS_MeshNode * n2)
-{
-  SMDS_MeshEdge* anElem = SMDS_Mesh::AddEdge(n1,n2);
-  if(anElem) myScript->AddEdge(anElem->GetID(), 
-                              n1->GetID(), 
-                              n2->GetID());
-  return anElem;
-}
-
-//=======================================================================
-//function :AddFace
-//purpose  : 
-//=======================================================================
-SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(int n1, int n2, int n3, int ID)
-{
-  SMDS_MeshFace *anElem = SMDS_Mesh::AddFaceWithID(n1, n2, n3, ID);
-  if(anElem) myScript->AddFace(ID,n1,n2,n3);
-  return anElem;
-}
-
-SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
-                                          const SMDS_MeshNode * n2,
-                                          const SMDS_MeshNode * n3, 
-                                          int ID)
-{
-  return AddFaceWithID(n1->GetID(),
-                      n2->GetID(),
-                      n3->GetID(),
-                      ID);
-}
-
-SMDS_MeshFace* SMESHDS_Mesh::AddFace( const SMDS_MeshNode * n1,
-                                     const SMDS_MeshNode * n2,
-                                     const SMDS_MeshNode * n3)
-{
-  SMDS_MeshFace *anElem = SMDS_Mesh::AddFace(n1, n2, n3);
-  if(anElem) myScript->AddFace(anElem->GetID(), 
-                              n1->GetID(), 
-                              n2->GetID(),
-                              n3->GetID());
-  return anElem;
-}
-
-//=======================================================================
-//function :AddFace
-//purpose  : 
-//=======================================================================
-SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(int n1, int n2, int n3, int n4, int ID)
-{
-  SMDS_MeshFace *anElem = SMDS_Mesh::AddFaceWithID(n1, n2, n3, n4, ID);
-  if(anElem) myScript->AddFace(ID, n1, n2, n3, n4);
-  return anElem;
-}
-
-SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
-                                          const SMDS_MeshNode * n2,
-                                          const SMDS_MeshNode * n3,
-                                          const SMDS_MeshNode * n4, 
-                                          int ID)
-{
-  return AddFaceWithID(n1->GetID(),
-                      n2->GetID(),
-                      n3->GetID(),
-                      n4->GetID(),
-                      ID);
-}
-
-SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
-                                    const SMDS_MeshNode * n2,
-                                    const SMDS_MeshNode * n3,
-                                    const SMDS_MeshNode * n4)
-{
-  SMDS_MeshFace *anElem = SMDS_Mesh::AddFace(n1, n2, n3, n4);
-  if(anElem) myScript->AddFace(anElem->GetID(), 
-                              n1->GetID(), 
-                              n2->GetID(), 
-                              n3->GetID(),
-                              n4->GetID());
-  return anElem;
-}
-
-//=======================================================================
-//function :AddVolume
-//purpose  : 
-//=======================================================================
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4, int ID)
-{
-  SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, ID);
-  if(anElem) myScript->AddVolume(ID, n1, n2, n3, n4);
-  return anElem;
-}
-
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-                                              const SMDS_MeshNode * n2,
-                                              const SMDS_MeshNode * n3,
-                                              const SMDS_MeshNode * n4, 
-                                              int ID)
-{
-  return AddVolumeWithID(n1->GetID(), 
-                        n2->GetID(), 
-                        n3->GetID(),
-                        n4->GetID(),
-                        ID);
-}
-
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                        const SMDS_MeshNode * n2,
-                                        const SMDS_MeshNode * n3,
-                                        const SMDS_MeshNode * n4)
-{
-  SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1, n2, n3, n4);
-  if(anElem) myScript->AddVolume(anElem->GetID(), 
-                                n1->GetID(), 
-                                n2->GetID(), 
-                                n3->GetID(),
-                                n4->GetID());
-  return anElem;
-}
-
-//=======================================================================
-//function :AddVolume
-//purpose  : 
-//=======================================================================
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int ID)
-{
-  SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, n5, ID);
-  if(anElem) myScript->AddVolume(ID, n1, n2, n3, n4, n5);
-  return anElem;
-}
-
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-                                              const SMDS_MeshNode * n2,
-                                              const SMDS_MeshNode * n3,
-                                              const SMDS_MeshNode * n4,
-                                              const SMDS_MeshNode * n5, 
-                                              int ID)
-{
-  return AddVolumeWithID(n1->GetID(), 
-                        n2->GetID(), 
-                        n3->GetID(),
-                        n4->GetID(), 
-                        n5->GetID(),
-                        ID);
-}
-
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                        const SMDS_MeshNode * n2,
-                                        const SMDS_MeshNode * n3,
-                                        const SMDS_MeshNode * n4,
-                                        const SMDS_MeshNode * n5)
-{
-  SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1, n2, n3, n4, n5);
-  if(anElem) myScript->AddVolume(anElem->GetID(), 
-                                n1->GetID(), 
-                                n2->GetID(), 
-                                n3->GetID(),
-                                n4->GetID(), 
-                                n5->GetID());
-  return anElem;
-}
-
-//=======================================================================
-//function :AddVolume
-//purpose  : 
-//=======================================================================
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int n6, int ID)
-{
-  SMDS_MeshVolume *anElem= SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, n5, n6, ID);
-  if(anElem) myScript->AddVolume(ID, n1, n2, n3, n4, n5, n6);
-  return anElem;
-}
-
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-                                              const SMDS_MeshNode * n2,
-                                              const SMDS_MeshNode * n3,
-                                              const SMDS_MeshNode * n4,
-                                              const SMDS_MeshNode * n5,
-                                              const SMDS_MeshNode * n6, 
-                                              int ID)
-{
-  return AddVolumeWithID(n1->GetID(), 
-                        n2->GetID(), 
-                        n3->GetID(),
-                        n4->GetID(), 
-                        n5->GetID(), 
-                        n6->GetID(),
-                        ID);
-}
-
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                        const SMDS_MeshNode * n2,
-                                        const SMDS_MeshNode * n3,
-                                        const SMDS_MeshNode * n4,
-                                        const SMDS_MeshNode * n5,
-                                        const SMDS_MeshNode * n6)
-{
-  SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1, n2, n3, n4, n5, n6);
-  if(anElem) myScript->AddVolume(anElem->GetID(), 
-                                n1->GetID(), 
-                                n2->GetID(), 
-                                n3->GetID(),
-                                n4->GetID(), 
-                                n5->GetID(), 
-                                n6->GetID());
-  return anElem;
-}
-
-//=======================================================================
-//function :AddVolume
-//purpose  : 
-//=======================================================================
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int ID)
-{
-  SMDS_MeshVolume *anElem= SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, n5, n6, n7, n8, ID);
-  if(anElem) myScript->AddVolume(ID, n1, n2, n3, n4, n5, n6, n7, n8);
-  return anElem;
-}
-
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-                                              const SMDS_MeshNode * n2,
-                                              const SMDS_MeshNode * n3,
-                                              const SMDS_MeshNode * n4,
-                                              const SMDS_MeshNode * n5,
-                                              const SMDS_MeshNode * n6,
-                                              const SMDS_MeshNode * n7,
-                                              const SMDS_MeshNode * n8, 
-                                              int ID)
-{
-  return AddVolumeWithID(n1->GetID(), 
-                        n2->GetID(), 
-                        n3->GetID(),
-                        n4->GetID(), 
-                        n5->GetID(), 
-                        n6->GetID(), 
-                        n7->GetID(), 
-                        n8->GetID(),
-                        ID);
-}
-
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                        const SMDS_MeshNode * n2,
-                                        const SMDS_MeshNode * n3,
-                                        const SMDS_MeshNode * n4,
-                                        const SMDS_MeshNode * n5,
-                                        const SMDS_MeshNode * n6,
-                                        const SMDS_MeshNode * n7,
-                                        const SMDS_MeshNode * n8)
-{
-  SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1, n2, n3, n4, n5, n6, n7, n8);
-  if(anElem) myScript->AddVolume(anElem->GetID(), 
-                                n1->GetID(), 
-                                n2->GetID(), 
-                                n3->GetID(),
-                                n4->GetID(), 
-                                n5->GetID(), 
-                                n6->GetID(), 
-                                n7->GetID(), 
-                                n8->GetID());
-  return anElem;
-}
-
-//=======================================================================
-//function : AddPolygonalFace
-//purpose  : 
-//=======================================================================
-SMDS_MeshFace* SMESHDS_Mesh::AddPolygonalFaceWithID (std::vector<int> nodes_ids,
-                                                     const int        ID)
-{
-  SMDS_MeshFace *anElem = SMDS_Mesh::AddPolygonalFaceWithID(nodes_ids, ID);
-  if (anElem) {
-    myScript->AddPolygonalFace(ID, nodes_ids);
-  }
-  return anElem;
-}
-
-SMDS_MeshFace* SMESHDS_Mesh::AddPolygonalFaceWithID
-                             (std::vector<const SMDS_MeshNode*> nodes,
-                              const int                         ID)
-{
-  SMDS_MeshFace *anElem = SMDS_Mesh::AddPolygonalFaceWithID(nodes, ID);
-  if (anElem) {
-    int i, len = nodes.size();
-    std::vector<int> nodes_ids (len);
-    for (i = 0; i < len; i++) {
-      nodes_ids[i] = nodes[i]->GetID();
-    }
-    myScript->AddPolygonalFace(ID, nodes_ids);
-  }
-  return anElem;
-}
-
-SMDS_MeshFace* SMESHDS_Mesh::AddPolygonalFace
-                             (std::vector<const SMDS_MeshNode*> nodes)
-{
-  SMDS_MeshFace *anElem = SMDS_Mesh::AddPolygonalFace(nodes);
-  if (anElem) {
-    int i, len = nodes.size();
-    std::vector<int> nodes_ids (len);
-    for (i = 0; i < len; i++) {
-      nodes_ids[i] = nodes[i]->GetID();
-    }
-    myScript->AddPolygonalFace(anElem->GetID(), nodes_ids);
-  }
-  return anElem;
-}
-
-//=======================================================================
-//function : AddPolyhedralVolume
-//purpose  : 
-//=======================================================================
-SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolumeWithID (std::vector<int> nodes_ids,
-                                                          std::vector<int> quantities,
-                                                          const int        ID)
-{
-  SMDS_MeshVolume *anElem = SMDS_Mesh::AddPolyhedralVolumeWithID(nodes_ids, quantities, ID);
-  if (anElem) {
-    myScript->AddPolyhedralVolume(ID, nodes_ids, quantities);
-  }
-  return anElem;
-}
-
-SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolumeWithID
-                               (std::vector<const SMDS_MeshNode*> nodes,
-                                std::vector<int>                  quantities,
-                                const int                         ID)
-{
-  SMDS_MeshVolume *anElem = SMDS_Mesh::AddPolyhedralVolumeWithID(nodes, quantities, ID);
-  if (anElem) {
-    int i, len = nodes.size();
-    std::vector<int> nodes_ids (len);
-    for (i = 0; i < len; i++) {
-      nodes_ids[i] = nodes[i]->GetID();
-    }
-    myScript->AddPolyhedralVolume(ID, nodes_ids, quantities);
-  }
-  return anElem;
-}
-
-SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolume
-                               (std::vector<const SMDS_MeshNode*> nodes,
-                                std::vector<int>                  quantities)
-{
-  SMDS_MeshVolume *anElem = SMDS_Mesh::AddPolyhedralVolume(nodes, quantities);
-  if (anElem) {
-    int i, len = nodes.size();
-    std::vector<int> nodes_ids (len);
-    for (i = 0; i < len; i++) {
-      nodes_ids[i] = nodes[i]->GetID();
-    }
-    myScript->AddPolyhedralVolume(anElem->GetID(), nodes_ids, quantities);
-  }
-  return anElem;
-}
-
-//=======================================================================
-//function : removeFromContainers
-//purpose  : 
-//=======================================================================
-
-static void removeFromContainers (map<int,SMESHDS_SubMesh*> &      theSubMeshes,
-                                  set<SMESHDS_GroupBase*>&             theGroups,
-                                  list<const SMDS_MeshElement *> & theElems,
-                                  const bool                       isNode)
-{
-  if ( theElems.empty() )
-    return;
-
-  // Rm from group
-  // Element can belong to several groups
-  if ( !theGroups.empty() )
-  {
-    set<SMESHDS_GroupBase*>::iterator GrIt = theGroups.begin();
-    for ( ; GrIt != theGroups.end(); GrIt++ )
-    {
-      SMESHDS_Group* group = dynamic_cast<SMESHDS_Group*>( *GrIt );
-      if ( !group || group->IsEmpty() ) continue;
-
-      list<const SMDS_MeshElement *>::iterator elIt = theElems.begin();
-      for ( ; elIt != theElems.end(); elIt++ )
-      {
-        group->SMDSGroup().Remove( *elIt );
-        if ( group->IsEmpty() ) break;
-      }
-    }
-  }
-
-  // Rm from sub-meshes
-  // Element should belong to only one sub-mesh
-  map<int,SMESHDS_SubMesh*>::iterator SubIt = theSubMeshes.begin();
-  for ( ; SubIt != theSubMeshes.end(); SubIt++ )
-  {
-    int size = isNode ? (*SubIt).second->NbNodes() : (*SubIt).second->NbElements();
-    if ( size == 0 ) continue;
-
-    list<const SMDS_MeshElement *>::iterator elIt = theElems.begin();
-    while ( elIt != theElems.end() )
-    {
-      bool removed = false;
-      if ( isNode )
-        removed = (*SubIt).second->RemoveNode( static_cast<const SMDS_MeshNode*> (*elIt) );
-      else
-        removed = (*SubIt).second->RemoveElement( *elIt );
-
-      if (removed)
-      {
-        elIt = theElems.erase( elIt );
-        if ( theElems.empty() )
-          return; // all elements are found and removed
-      }
-      else
-      {
-        elIt++ ;
-      }
-    }
-  }
-}
-  
-//=======================================================================
-//function : RemoveNode
-//purpose  : 
-//=======================================================================
-void SMESHDS_Mesh::RemoveNode(const SMDS_MeshNode * n)
-{
-  myScript->RemoveNode(n->GetID());
-  
-  list<const SMDS_MeshElement *> removedElems;
-  list<const SMDS_MeshElement *> removedNodes;
-
-  SMDS_Mesh::RemoveElement( n, removedElems, removedNodes, true );
-
-  removeFromContainers( myShapeIndexToSubMesh, myGroups, removedElems, false );
-  removeFromContainers( myShapeIndexToSubMesh, myGroups, removedNodes, true );
-}
-
-//=======================================================================
-//function : RemoveElement
-//purpose  : 
-//========================================================================
-void SMESHDS_Mesh::RemoveElement(const SMDS_MeshElement * elt)
-{
-  if (elt->GetType() == SMDSAbs_Node)
-  {
-    RemoveNode( static_cast<const SMDS_MeshNode*>( elt ));
-    return;
-  }
-
-  myScript->RemoveElement(elt->GetID());
-
-  list<const SMDS_MeshElement *> removedElems;
-  list<const SMDS_MeshElement *> removedNodes;
-
-  SMDS_Mesh::RemoveElement(elt, removedElems, removedNodes, false);
-  
-  removeFromContainers( myShapeIndexToSubMesh, myGroups, removedElems, false );
-}
-
-//=======================================================================
-//function : SetNodeOnVolume
-//purpose  : 
-//=======================================================================
-void SMESHDS_Mesh::SetNodeInVolume(SMDS_MeshNode * aNode,
-       const TopoDS_Shell & S)
-{
-       if (myShape.IsNull()) MESSAGE("myShape is NULL");
-
-       int Index = myIndexToShape.FindIndex(S);
-
-       //Set Position on Node
-       //Handle (SMDS_FacePosition) aPos = new SMDS_FacePosition (myFaceToId(S),0.,0.);;
-       //aNode->SetPosition(aPos);
-
-       //Update or build submesh
-       map<int,SMESHDS_SubMesh*>::iterator it=myShapeIndexToSubMesh.find(Index);
-       if (it==myShapeIndexToSubMesh.end())
-               myShapeIndexToSubMesh[Index]= new SMESHDS_SubMesh();
-
-       myShapeIndexToSubMesh[Index]->AddNode(aNode);
-}
-
-//=======================================================================
-//function : SetNodeOnFace
-//purpose  : 
-//=======================================================================
-void SMESHDS_Mesh::SetNodeOnFace(SMDS_MeshNode * aNode,
-       const TopoDS_Face & S)
-{
-       if (myShape.IsNull()) MESSAGE("myShape is NULL");
-
-       int Index = myIndexToShape.FindIndex(S);
-
-       //Set Position on Node
-       aNode->SetPosition(SMDS_PositionPtr(new SMDS_FacePosition(Index, 0., 0.)));
-
-       //Update or build submesh
-       map<int,SMESHDS_SubMesh*>::iterator it=myShapeIndexToSubMesh.find(Index);
-       if (it==myShapeIndexToSubMesh.end())
-               myShapeIndexToSubMesh[Index]= new SMESHDS_SubMesh();
-
-       myShapeIndexToSubMesh[Index]->AddNode(aNode);
-}
-
-//=======================================================================
-//function : SetNodeOnEdge
-//purpose  : 
-//=======================================================================
-void SMESHDS_Mesh::SetNodeOnEdge(SMDS_MeshNode * aNode,
-       const TopoDS_Edge & S)
-{
-       if (myShape.IsNull()) MESSAGE("myShape is NULL");
-
-       int Index = myIndexToShape.FindIndex(S);
-
-       //Set Position on Node
-       aNode->SetPosition(SMDS_PositionPtr(new SMDS_EdgePosition(Index, 0.)));
-
-       //Update or build submesh
-       map<int,SMESHDS_SubMesh*>::iterator it=myShapeIndexToSubMesh.find(Index);
-       if (it==myShapeIndexToSubMesh.end())
-               myShapeIndexToSubMesh[Index]= new SMESHDS_SubMesh();
-
-       myShapeIndexToSubMesh[Index]->AddNode(aNode);
-}
-
-//=======================================================================
-//function : SetNodeOnVertex
-//purpose  : 
-//=======================================================================
-void SMESHDS_Mesh::SetNodeOnVertex(SMDS_MeshNode * aNode,
-       const TopoDS_Vertex & S)
-{
-       if (myShape.IsNull()) MESSAGE("myShape is NULL");
-
-       int Index = myIndexToShape.FindIndex(S);
-
-       //Set Position on Node
-       aNode->SetPosition(SMDS_PositionPtr(new SMDS_VertexPosition(Index)));
-
-       //Update or build submesh
-       map<int,SMESHDS_SubMesh*>::iterator it=myShapeIndexToSubMesh.find(Index);
-       if (it==myShapeIndexToSubMesh.end())
-               myShapeIndexToSubMesh[Index]= new SMESHDS_SubMesh();
-
-       myShapeIndexToSubMesh[Index]->AddNode(aNode);
-}
-
-//=======================================================================
-//function : UnSetNodeOnShape
-//purpose  : 
-//=======================================================================
-void SMESHDS_Mesh::UnSetNodeOnShape(const SMDS_MeshNode* aNode)
-{
-       MESSAGE("not implemented");
-}
-
-//=======================================================================
-//function : SetMeshElementOnShape
-//purpose  : 
-//=======================================================================
-void SMESHDS_Mesh::SetMeshElementOnShape(const SMDS_MeshElement * anElement,
-       const TopoDS_Shape & S)
-{
-       if (myShape.IsNull()) MESSAGE("myShape is NULL");
-
-       int Index = myIndexToShape.FindIndex(S);
-
-       if (myShapeIndexToSubMesh.find(Index)==myShapeIndexToSubMesh.end())
-               myShapeIndexToSubMesh[Index]=new SMESHDS_SubMesh();
-
-       myShapeIndexToSubMesh[Index]->AddElement(anElement);
-}
-
-//=======================================================================
-//function : UnSetMeshElementOnShape
-//purpose  : 
-//=======================================================================
-void SMESHDS_Mesh::
-UnSetMeshElementOnShape(const SMDS_MeshElement * anElement,
-       const TopoDS_Shape & S)
-{
-       if (myShape.IsNull()) MESSAGE("myShape is NULL");
-
-       int Index = myIndexToShape.FindIndex(S);
-
-       if (myShapeIndexToSubMesh.find(Index)!=myShapeIndexToSubMesh.end())
-               myShapeIndexToSubMesh[Index]->RemoveElement(anElement);
-}
-
-//=======================================================================
-//function : ShapeToMesh
-//purpose  : 
-//=======================================================================
-TopoDS_Shape SMESHDS_Mesh::ShapeToMesh() const
-{
-       return myShape;
-}
-
-//=======================================================================
-//function : IsGroupOfSubShapes
-//purpose  : return true if at least one subshape of theShape is a subshape
-//           of myShape or theShape == myShape
-//=======================================================================
-
-bool SMESHDS_Mesh::IsGroupOfSubShapes (const TopoDS_Shape& theShape) const
-{
-  if ( myShape.IsSame( theShape ))
-    return true;
-
-  for ( TopoDS_Iterator it( theShape ); it.More(); it.Next() ) {
-    if (myIndexToShape.Contains( it.Value() ) ||
-        IsGroupOfSubShapes( it.Value() ))
-      return true;
-  }
-  
-  return false;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return the sub mesh linked to the a given TopoDS_Shape or NULL if the given
-/// TopoDS_Shape is unknown
-///////////////////////////////////////////////////////////////////////////////
-SMESHDS_SubMesh * SMESHDS_Mesh::MeshElements(const TopoDS_Shape & S) const
-{
-  if (myShape.IsNull()) MESSAGE("myShape is NULL");
-
-  int Index = ShapeToIndex(S);
-  TShapeIndexToSubMesh::const_iterator anIter = myShapeIndexToSubMesh.find(Index);
-  if (anIter != myShapeIndexToSubMesh.end())
-    return anIter->second;
-  else
-    return NULL;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// Return the sub mesh by Id of shape it is linked to
-///////////////////////////////////////////////////////////////////////////////
-SMESHDS_SubMesh * SMESHDS_Mesh::MeshElements(const int Index)
-{
-  if (myShape.IsNull()) MESSAGE("myShape is NULL");
-
-  if (myShapeIndexToSubMesh.find(Index)!=myShapeIndexToSubMesh.end())
-    return myShapeIndexToSubMesh[Index];
-  else
-    return NULL;
-}
-
-//=======================================================================
-//function : SubMeshIndices
-//purpose  : 
-//=======================================================================
-list<int> SMESHDS_Mesh::SubMeshIndices()
-{
-  list<int> anIndices;
-  std::map<int,SMESHDS_SubMesh*>::iterator anIter = myShapeIndexToSubMesh.begin();
-  for (; anIter != myShapeIndexToSubMesh.end(); anIter++) {
-    anIndices.push_back((*anIter).first);
-  }
-  return anIndices;
-}
-
-//=======================================================================
-//function : GetHypothesis
-//purpose  : 
-//=======================================================================
-
-const list<const SMESHDS_Hypothesis*>& SMESHDS_Mesh::GetHypothesis(
-       const TopoDS_Shape & S) const
-{
-       if (myShapeToHypothesis.find(S)!=myShapeToHypothesis.end())
-               return myShapeToHypothesis.find(S)->second;
-
-       static list<const SMESHDS_Hypothesis*> empty;
-       return empty;
-}
-
-//=======================================================================
-//function : GetScript
-//purpose  : 
-//=======================================================================
-SMESHDS_Script* SMESHDS_Mesh::GetScript()
-{
-       return myScript;
-}
-
-//=======================================================================
-//function : ClearScript
-//purpose  : 
-//=======================================================================
-void SMESHDS_Mesh::ClearScript()
-{
-       myScript->Clear();
-}
-
-//=======================================================================
-//function : HasMeshElements
-//purpose  : 
-//=======================================================================
-bool SMESHDS_Mesh::HasMeshElements(const TopoDS_Shape & S)
-{
-       if (myShape.IsNull()) MESSAGE("myShape is NULL");
-       int Index = myIndexToShape.FindIndex(S);
-       return myShapeIndexToSubMesh.find(Index)!=myShapeIndexToSubMesh.end();
-}
-
-//=======================================================================
-//function : HasHypothesis
-//purpose  : 
-//=======================================================================
-bool SMESHDS_Mesh::HasHypothesis(const TopoDS_Shape & S)
-{
-       return myShapeToHypothesis.find(S)!=myShapeToHypothesis.end();
-}
-
-//=======================================================================
-//function : NewSubMesh 
-//purpose  : 
-//=======================================================================
-SMESHDS_SubMesh * SMESHDS_Mesh::NewSubMesh(int Index)
-{
-  SMESHDS_SubMesh* SM = 0;
-  if (myShapeIndexToSubMesh.find(Index)==myShapeIndexToSubMesh.end())
-  {
-    SM = new SMESHDS_SubMesh();
-    myShapeIndexToSubMesh[Index]=SM;
-  }
-  else
-    SM = myShapeIndexToSubMesh[Index];
-  return SM;
-}
-
-//=======================================================================
-//function : AddCompoundSubmesh
-//purpose  : 
-//=======================================================================
-
-int SMESHDS_Mesh::AddCompoundSubmesh(const TopoDS_Shape& S,
-                                     TopAbs_ShapeEnum    type)
-{
-  int aMainIndex = 0;
-  if ( IsGroupOfSubShapes( S ) || (S.ShapeType() == TopAbs_VERTEX && myIndexToShape.Contains(S)) )
-  {
-    aMainIndex = myIndexToShape.Add( S );
-    bool all = ( type == TopAbs_SHAPE );
-    if ( all ) // corresponding simple submesh may exist
-      aMainIndex = -aMainIndex;
-    //MESSAGE("AddCompoundSubmesh index = " << aMainIndex );
-    SMESHDS_SubMesh * aNewSub = NewSubMesh( aMainIndex );
-    if ( !aNewSub->IsComplexSubmesh() ) // is empty
-    {
-      int shapeType = all ? myShape.ShapeType() : type;
-      int typeLimit = all ? TopAbs_VERTEX : type;
-      for ( ; shapeType <= typeLimit; shapeType++ )
-      {
-        TopExp_Explorer exp( S, TopAbs_ShapeEnum( shapeType ));
-        for ( ; exp.More(); exp.Next() )
-        {
-          int index = myIndexToShape.FindIndex( exp.Current() );
-          if ( index )
-            aNewSub->AddSubMesh( NewSubMesh( index ));
-        }
-      }
-    }
-  }
-  return aMainIndex;
-}
-
-//=======================================================================
-//function : IndexToShape
-//purpose  : 
-//=======================================================================
-TopoDS_Shape SMESHDS_Mesh::IndexToShape(int ShapeIndex)
-{
-       return myIndexToShape.FindKey(ShapeIndex);
-}
-
-//=======================================================================
-//function : ShapeToIndex
-//purpose  : 
-//=======================================================================
-int SMESHDS_Mesh::ShapeToIndex(const TopoDS_Shape & S) const
-{
-  if (myShape.IsNull())
-    MESSAGE("myShape is NULL");
-
-  int index = myIndexToShape.FindIndex(S);
-  
-  return index;
-}
-
-//=======================================================================
-//function : SetNodeOnVolume
-//purpose  : 
-//=======================================================================
-void SMESHDS_Mesh::SetNodeInVolume(const SMDS_MeshNode* aNode, int Index)
-{
-       //Set Position on Node
-       //Handle (SMDS_FacePosition) aPos = new SMDS_FacePosition (myFaceToId(S),0.,0.);;
-       //aNode->SetPosition(aPos);
-
-       //Update or build submesh
-       if (myShapeIndexToSubMesh.find(Index)==myShapeIndexToSubMesh.end())
-               myShapeIndexToSubMesh[Index]=new SMESHDS_SubMesh();
-
-       myShapeIndexToSubMesh[Index]->AddNode(aNode);
-}
-
-//=======================================================================
-//function : SetNodeOnFace
-//purpose  : 
-//=======================================================================
-void SMESHDS_Mesh::SetNodeOnFace(SMDS_MeshNode* aNode, int Index)
-{
-       //Set Position on Node
-       aNode->SetPosition(SMDS_PositionPtr(new SMDS_FacePosition(Index, 0., 0.)));
-
-       //Update or build submesh
-       if (myShapeIndexToSubMesh.find(Index)==myShapeIndexToSubMesh.end())
-               myShapeIndexToSubMesh[Index]=new SMESHDS_SubMesh();
-
-       myShapeIndexToSubMesh[Index]->AddNode(aNode);
-}
-
-//=======================================================================
-//function : SetNodeOnEdge
-//purpose  : 
-//=======================================================================
-void SMESHDS_Mesh::SetNodeOnEdge(SMDS_MeshNode* aNode, int Index)
-{
-       //Set Position on Node
-       aNode->SetPosition(SMDS_PositionPtr(new SMDS_EdgePosition(Index, 0.)));
-
-       //Update or build submesh
-       if (myShapeIndexToSubMesh.find(Index)==myShapeIndexToSubMesh.end())
-               myShapeIndexToSubMesh[Index]=new SMESHDS_SubMesh();
-
-       myShapeIndexToSubMesh[Index]->AddNode(aNode);
-}
-
-//=======================================================================
-//function : SetNodeOnVertex
-//purpose  : 
-//=======================================================================
-void SMESHDS_Mesh::SetNodeOnVertex(SMDS_MeshNode* aNode, int Index)
-{
-       //Set Position on Node
-       aNode->SetPosition(SMDS_PositionPtr(new SMDS_VertexPosition(Index)));
-
-       //Update or build submesh
-       if (myShapeIndexToSubMesh.find(Index)==myShapeIndexToSubMesh.end())
-               myShapeIndexToSubMesh[Index]=new SMESHDS_SubMesh();
-
-       myShapeIndexToSubMesh[Index]->AddNode(aNode);
-}
-
-//=======================================================================
-//function : SetMeshElementOnShape
-//purpose  : 
-//=======================================================================
-void SMESHDS_Mesh::SetMeshElementOnShape(const SMDS_MeshElement* anElement,
-       int Index)
-{
-       if (myShapeIndexToSubMesh.find(Index)==myShapeIndexToSubMesh.end())
-               myShapeIndexToSubMesh[Index]=new SMESHDS_SubMesh();
-
-       myShapeIndexToSubMesh[Index]->AddElement(anElement);
-}
-
-SMESHDS_Mesh::~SMESHDS_Mesh()
-{
-}
diff --git a/src/SMESHDS/SMESHDS_Mesh.hxx b/src/SMESHDS/SMESHDS_Mesh.hxx
deleted file mode 100644 (file)
index 86b9071..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-//  SMESH SMESHDS : management of mesh data and SMESH document
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHDS_Mesh.hxx
-//  Module : SMESH
-
-#ifndef _SMESHDS_Mesh_HeaderFile
-#define _SMESHDS_Mesh_HeaderFile
-
-#include "SMDS_Mesh.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_MeshEdge.hxx"
-#include "SMDS_MeshFace.hxx"
-#include "SMDS_MeshVolume.hxx"
-#include "SMESHDS_Hypothesis.hxx"
-#include "SMESHDS_SubMesh.hxx"
-#include "SMESHDS_Script.hxx"
-
-#include <TopTools_IndexedMapOfShape.hxx>
-#include <TopoDS_Shape.hxx>
-#include <TopoDS_Shell.hxx>
-#include <TopoDS_Face.hxx>
-#include <TopoDS_Vertex.hxx>
-#include <TopoDS_Edge.hxx>
-#include <map>
-
-//Not portable see http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#5_4 to know more.
-#ifdef __GNUC__
-  #if __GNUC__ < 3
-    #include <hash_map.h>
-    namespace gstd { using ::hash_map; }; // inherit globals
-  #else
-    #include <ext/hash_map>
-    #if __GNUC_MINOR__ == 0
-      namespace gstd = std;               // GCC 3.0
-    #else
-      namespace gstd = ::__gnu_cxx;       // GCC 3.1 and later
-    #endif
-  #endif
-#else      // ...  there are other compilers, right?
-  namespace gstd = std;
-#endif
-
-class SMESHDS_GroupBase;
-
-class SMESHDS_Mesh:public SMDS_Mesh{
-public:
-  SMESHDS_Mesh(int MeshID);
-  void ShapeToMesh(const TopoDS_Shape & S);
-  bool AddHypothesis(const TopoDS_Shape & SS, const SMESHDS_Hypothesis * H);
-  bool RemoveHypothesis(const TopoDS_Shape & S, const SMESHDS_Hypothesis * H);
-  
-  virtual SMDS_MeshNode* AddNodeWithID(double x, double y, double z, int ID);
-  virtual SMDS_MeshNode * AddNode(double x, double y, double z);
-  
-  virtual SMDS_MeshEdge* AddEdgeWithID(int n1, int n2, int ID);
-  virtual SMDS_MeshEdge* AddEdgeWithID(const SMDS_MeshNode * n1,
-                                      const SMDS_MeshNode * n2, 
-                                      int ID);
-  virtual SMDS_MeshEdge* AddEdge(const SMDS_MeshNode * n1,
-                                const SMDS_MeshNode * n2);
-  
-  virtual SMDS_MeshFace* AddFaceWithID(int n1, int n2, int n3, int ID);
-  virtual SMDS_MeshFace* AddFaceWithID(const SMDS_MeshNode * n1,
-                                      const SMDS_MeshNode * n2,
-                                      const SMDS_MeshNode * n3, 
-                                      int ID);
-  virtual SMDS_MeshFace* AddFace(const SMDS_MeshNode * n1,
-                                const SMDS_MeshNode * n2,
-                                const SMDS_MeshNode * n3);
-
-  virtual SMDS_MeshFace* AddFaceWithID(int n1, int n2, int n3, int n4, int ID);
-  virtual SMDS_MeshFace* AddFaceWithID(const SMDS_MeshNode * n1,
-                                      const SMDS_MeshNode * n2,
-                                      const SMDS_MeshNode * n3,
-                                      const SMDS_MeshNode * n4, 
-                                      int ID);
-  virtual SMDS_MeshFace* AddFace(const SMDS_MeshNode * n1,
-                                const SMDS_MeshNode * n2,
-                                const SMDS_MeshNode * n3,
-                                const SMDS_MeshNode * n4);
-
-  virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4, int ID);
-  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
-                                          const SMDS_MeshNode * n2,
-                                          const SMDS_MeshNode * n3,
-                                          const SMDS_MeshNode * n4, 
-                                          int ID);
-  virtual SMDS_MeshVolume* AddVolume(const SMDS_MeshNode * n1,
-                                    const SMDS_MeshNode * n2,
-                                    const SMDS_MeshNode * n3,
-                                    const SMDS_MeshNode * n4);
-
-  virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int ID);
-  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
-                                          const SMDS_MeshNode * n2,
-                                          const SMDS_MeshNode * n3,
-                                          const SMDS_MeshNode * n4,
-                                          const SMDS_MeshNode * n5, 
-                                          int ID);
-  virtual SMDS_MeshVolume* AddVolume(const SMDS_MeshNode * n1,
-                                    const SMDS_MeshNode * n2,
-                                    const SMDS_MeshNode * n3,
-                                    const SMDS_MeshNode * n4,
-                                    const SMDS_MeshNode * n5);
-
-  virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int n6, int ID);
-  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
-                                          const SMDS_MeshNode * n2,
-                                          const SMDS_MeshNode * n3,
-                                          const SMDS_MeshNode * n4,
-                                          const SMDS_MeshNode * n5,
-                                          const SMDS_MeshNode * n6, 
-                                          int ID);
-  virtual SMDS_MeshVolume* AddVolume(const SMDS_MeshNode * n1,
-                                    const SMDS_MeshNode * n2,
-                                    const SMDS_MeshNode * n3,
-                                    const SMDS_MeshNode * n4,
-                                    const SMDS_MeshNode * n5,
-                                    const SMDS_MeshNode * n6);
-
-  virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int ID);
-  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
-                                          const SMDS_MeshNode * n2,
-                                          const SMDS_MeshNode * n3,
-                                          const SMDS_MeshNode * n4,
-                                          const SMDS_MeshNode * n5,
-                                          const SMDS_MeshNode * n6,
-                                          const SMDS_MeshNode * n7,
-                                          const SMDS_MeshNode * n8, 
-                                          int ID);
-  virtual SMDS_MeshVolume* AddVolume(const SMDS_MeshNode * n1,
-                                    const SMDS_MeshNode * n2,
-                                    const SMDS_MeshNode * n3,
-                                    const SMDS_MeshNode * n4,
-                                    const SMDS_MeshNode * n5,
-                                    const SMDS_MeshNode * n6,
-                                    const SMDS_MeshNode * n7,
-                                    const SMDS_MeshNode * n8);
-  
-  virtual SMDS_MeshFace* AddPolygonalFaceWithID (std::vector<int> nodes_ids,
-                                                 const int        ID);
-
-  virtual SMDS_MeshFace* AddPolygonalFaceWithID (std::vector<const SMDS_MeshNode*> nodes,
-                                                 const int                         ID);
-
-  virtual SMDS_MeshFace* AddPolygonalFace (std::vector<const SMDS_MeshNode*> nodes);
-
-  virtual SMDS_MeshVolume* AddPolyhedralVolumeWithID
-                           (std::vector<int> nodes_ids,
-                            std::vector<int> quantities,
-                            const int        ID);
-
-  virtual SMDS_MeshVolume* AddPolyhedralVolumeWithID
-                           (std::vector<const SMDS_MeshNode*> nodes,
-                            std::vector<int>                  quantities,
-                            const int                         ID);
-
-  virtual SMDS_MeshVolume* AddPolyhedralVolume
-                           (std::vector<const SMDS_MeshNode*> nodes,
-                            std::vector<int>                  quantities);
-
-  void MoveNode(const SMDS_MeshNode *, double x, double y, double z);
-  virtual void RemoveNode(const SMDS_MeshNode *);
-  void RemoveElement(const SMDS_MeshElement *);
-  bool ChangeElementNodes(const SMDS_MeshElement * elem,
-                          const SMDS_MeshNode    * nodes[],
-                          const int                nbnodes);
-  bool ChangePolygonNodes(const SMDS_MeshElement * elem,
-                          std::vector<const SMDS_MeshNode*> nodes);
-  bool ChangePolyhedronNodes(const SMDS_MeshElement * elem,
-                             std::vector<const SMDS_MeshNode*> nodes,
-                             std::vector<int>                  quantities);
-  void Renumber (const bool isNodes, const int startID=1, const int deltaID=1);
-
-  void SetNodeInVolume(SMDS_MeshNode * aNode, const TopoDS_Shell & S);
-  void SetNodeOnFace(SMDS_MeshNode * aNode, const TopoDS_Face & S);
-  void SetNodeOnEdge(SMDS_MeshNode * aNode, const TopoDS_Edge & S);
-  void SetNodeOnVertex(SMDS_MeshNode * aNode, const TopoDS_Vertex & S);
-  void UnSetNodeOnShape(const SMDS_MeshNode * aNode);
-  void SetMeshElementOnShape(const SMDS_MeshElement * anElt,
-                            const TopoDS_Shape & S);
-  void UnSetMeshElementOnShape(const SMDS_MeshElement * anElt,
-                              const TopoDS_Shape & S);
-  TopoDS_Shape ShapeToMesh() const;
-  bool HasMeshElements(const TopoDS_Shape & S);
-  SMESHDS_SubMesh * MeshElements(const TopoDS_Shape & S) const;
-  SMESHDS_SubMesh * MeshElements(const int Index);
-  std::list<int> SubMeshIndices();
-  const std::map<int,SMESHDS_SubMesh*>& SubMeshes()
-  { return myShapeIndexToSubMesh; }
-
-  bool HasHypothesis(const TopoDS_Shape & S);
-  const std::list<const SMESHDS_Hypothesis*>& GetHypothesis(const TopoDS_Shape & S) const;
-  SMESHDS_Script * GetScript();
-  void ClearScript();
-  int ShapeToIndex(const TopoDS_Shape & aShape) const;
-  TopoDS_Shape IndexToShape(int ShapeIndex);
-
-  SMESHDS_SubMesh * NewSubMesh(int Index);
-  int AddCompoundSubmesh(const TopoDS_Shape& S, TopAbs_ShapeEnum type = TopAbs_SHAPE);
-  void SetNodeInVolume(const SMDS_MeshNode * aNode, int Index);
-  void SetNodeOnFace(SMDS_MeshNode * aNode, int Index);
-  void SetNodeOnEdge(SMDS_MeshNode * aNode, int Index);
-  void SetNodeOnVertex(SMDS_MeshNode * aNode, int Index);
-  void SetMeshElementOnShape(const SMDS_MeshElement * anElt, int Index);
-
-  void AddGroup (SMESHDS_GroupBase* theGroup)      { myGroups.insert(theGroup); }
-  void RemoveGroup (SMESHDS_GroupBase* theGroup)   { myGroups.erase(theGroup); }
-  int GetNbGroups() const                      { return myGroups.size(); }
-  const std::set<SMESHDS_GroupBase*>& GetGroups() const { return myGroups; }
-
-  bool IsGroupOfSubShapes (const TopoDS_Shape& aSubShape) const;
-
-  ~SMESHDS_Mesh();
-  
-private:
-  struct HashTopoDS_Shape{
-    size_t operator()(const TopoDS_Shape& S) const {
-      return S.HashCode(2147483647);
-    }
-  };
-  typedef std::list<const SMESHDS_Hypothesis*> THypList;
-  typedef gstd::hash_map<TopoDS_Shape,THypList,HashTopoDS_Shape> ShapeToHypothesis;
-  ShapeToHypothesis          myShapeToHypothesis;
-
-  int                        myMeshID;
-  TopoDS_Shape               myShape;
-
-  typedef std::map<int,SMESHDS_SubMesh*> TShapeIndexToSubMesh;
-  TShapeIndexToSubMesh myShapeIndexToSubMesh;
-
-  TopTools_IndexedMapOfShape myIndexToShape;
-
-  typedef std::set<SMESHDS_GroupBase*> TGroups;
-  TGroups myGroups;
-
-  SMESHDS_Script*            myScript;
-};
-
-
-#endif
diff --git a/src/SMESHDS/SMESHDS_Script.cxx b/src/SMESHDS/SMESHDS_Script.cxx
deleted file mode 100644 (file)
index 369ab46..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-//  SMESH SMESHDS : management of mesh data and SMESH document
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Script.cxx
-//  Author : Yves FRICAUD, OCC
-//  Module : SMESH
-//  $Header: 
-
-#include "SMESHDS_Script.hxx"
-
-using namespace std;
-
-//=======================================================================
-//function : getCommand
-//purpose  : 
-//=======================================================================
-SMESHDS_Command* SMESHDS_Script::getCommand(const SMESHDS_CommandType aType)
-{
-  SMESHDS_Command* com;
-  if (myCommands.empty())
-  {
-    com = new SMESHDS_Command(aType);
-    myCommands.insert(myCommands.end(),com);
-  }
-  else
-  {
-    com = myCommands.back();
-    if (com->GetType() != aType)
-    {
-      com = new SMESHDS_Command(aType);
-      myCommands.insert(myCommands.end(),com);
-    }
-  }
-  return com;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Script::AddNode(int NewNodeID, double x, double y, double z)
-{
-  getCommand(SMESHDS_AddNode)->AddNode(NewNodeID, x, y, z);
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Script::AddEdge(int NewEdgeID, int idnode1, int idnode2)
-{
-  getCommand(SMESHDS_AddEdge)->AddEdge(NewEdgeID, idnode1, idnode2);
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Script::AddFace(int NewFaceID,
-                             int idnode1, int idnode2, int idnode3)
-{
-  getCommand(SMESHDS_AddTriangle)->AddFace(NewFaceID,
-                                           idnode1, idnode2, idnode3);
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Script::AddFace(int NewFaceID,
-                             int idnode1, int idnode2,
-                             int idnode3, int idnode4)
-{
-  getCommand(SMESHDS_AddQuadrangle)->AddFace(NewFaceID,
-                                             idnode1, idnode2,
-                                             idnode3, idnode4);
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Script::AddVolume(int NewID,
-                               int idnode1, int idnode2,
-                               int idnode3, int idnode4)
-{
-  getCommand(SMESHDS_AddTetrahedron)->AddVolume(NewID,
-                                                idnode1, idnode2,
-                                                idnode3, idnode4);
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Script::AddVolume(int NewID,
-                               int idnode1, int idnode2,
-                               int idnode3, int idnode4, int idnode5)
-{
-  getCommand(SMESHDS_AddPyramid)->AddVolume(NewID,
-                                            idnode1, idnode2,
-                                            idnode3, idnode4, idnode5);
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Script::AddVolume(int NewID,
-                               int idnode1, int idnode2, int idnode3,
-                               int idnode4, int idnode5, int idnode6)
-{
-  getCommand(SMESHDS_AddPrism)->AddVolume(NewID,
-                                          idnode1, idnode2, idnode3,
-                                          idnode4, idnode5, idnode6);
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Script::AddVolume(int NewID,
-                               int idnode1, int idnode2, int idnode3, int idnode4,
-                               int idnode5, int idnode6, int idnode7, int idnode8)
-{
-  getCommand(SMESHDS_AddHexahedron)->AddVolume(NewID,
-                                               idnode1, idnode2, idnode3, idnode4,
-                                               idnode5, idnode6, idnode7, idnode8);
-}
-
-//=======================================================================
-//function : AddPolygonalFace
-//purpose  : 
-//=======================================================================
-void SMESHDS_Script::AddPolygonalFace (int NewFaceID, std::vector<int> nodes_ids)
-{
-  getCommand(SMESHDS_AddPolygon)->AddPolygonalFace(NewFaceID, nodes_ids);
-}
-
-//=======================================================================
-//function : AddPolyhedralVolume
-//purpose  : 
-//=======================================================================
-void SMESHDS_Script::AddPolyhedralVolume (int NewID,
-                                          std::vector<int> nodes_ids,
-                                          std::vector<int> quantities)
-{
-  getCommand(SMESHDS_AddPolyhedron)->AddPolyhedralVolume
-    (NewID, nodes_ids, quantities);
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Script::MoveNode(int NewNodeID, double x, double y, double z)
-{
-  getCommand(SMESHDS_MoveNode)->MoveNode(NewNodeID, x, y, z);
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Script::RemoveNode(int ID)
-{
-  getCommand(SMESHDS_RemoveNode)->RemoveNode(ID);
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Script::RemoveElement(int ElementID)
-{
-  getCommand(SMESHDS_RemoveElement)->RemoveElement(ElementID);
-}
-
-//=======================================================================
-//function : ChangeElementNodes
-//purpose  : 
-//=======================================================================
-
-void SMESHDS_Script::ChangeElementNodes(int ElementID, int nodes[], int nbnodes)
-{
-  getCommand(SMESHDS_ChangeElementNodes)->ChangeElementNodes( ElementID, nodes, nbnodes );
-}
-
-//=======================================================================
-//function : ChangePolyhedronNodes
-//purpose  : 
-//=======================================================================
-void SMESHDS_Script::ChangePolyhedronNodes (const int        ElementID,
-                                            std::vector<int> nodes_ids,
-                                            std::vector<int> quantities)
-{
-  getCommand(SMESHDS_ChangePolyhedronNodes)->ChangePolyhedronNodes
-    (ElementID, nodes_ids, quantities);
-}
-
-//=======================================================================
-//function : Renumber
-//purpose  : 
-//=======================================================================
-
-void SMESHDS_Script::Renumber (const bool isNodes, const int startID, const int deltaID)
-{
-  getCommand(SMESHDS_Renumber)->Renumber( isNodes, startID, deltaID );
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void SMESHDS_Script::Clear()
-{
-       myCommands.clear();
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-const list<SMESHDS_Command*>& SMESHDS_Script::GetCommands()
-{
-       return myCommands;
-}
diff --git a/src/SMESHDS/SMESHDS_Script.hxx b/src/SMESHDS/SMESHDS_Script.hxx
deleted file mode 100644 (file)
index 3874fac..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-//  SMESH SMESHDS : management of mesh data and SMESH document
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHDS_Script.hxx
-//  Module : SMESH
-
-#ifndef _SMESHDS_Script_HeaderFile
-#define _SMESHDS_Script_HeaderFile
-
-#include "SMESHDS_Command.hxx"
-
-#include <list>
-#include <vector>
-
-
-class SMESHDS_Script
-{
-  public:
-       void AddNode(int NewNodeID, double x, double y, double z);
-       void AddEdge(int NewEdgeID, int idnode1, int idnode2);
-       void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3);
-       void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3,
-               int idnode4);
-       void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
-               int idnode4);
-       void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
-               int idnode4, int idnode5);
-       void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
-               int idnode4, int idnode5, int idnode6);
-       void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
-               int idnode4, int idnode5, int idnode6, int idnode7, int idnode8);
-
-        void AddPolygonalFace (const int NewFaceID,
-                               std::vector<int> nodes_ids);
-       void AddPolyhedralVolume (const int NewVolID,
-                                  std::vector<int> nodes_ids,
-                                  std::vector<int> quantities);
-
-        void MoveNode(int NewNodeID, double x, double y, double z);
-       void RemoveNode(int NodeID);
-       void RemoveElement(int ElementID);
-       void ChangeElementNodes(int ElementID, int nodes[], int nbnodes);
-       void ChangePolyhedronNodes(const int        ElementID,
-                                   std::vector<int> nodes_ids,
-                                   std::vector<int> quantities);
-       void Renumber (const bool isNodes, const int startID, const int deltaID);
-       void Clear();
-       const std::list<SMESHDS_Command*> & GetCommands();
-       ~SMESHDS_Script();
-  
-  private:
-       SMESHDS_Command* getCommand(const SMESHDS_CommandType aType);
-
-       std::list<SMESHDS_Command*> myCommands;
-};
-
-#endif
diff --git a/src/SMESHDS/SMESHDS_SubMesh.cxx b/src/SMESHDS/SMESHDS_SubMesh.cxx
deleted file mode 100644 (file)
index 4218db7..0000000
+++ /dev/null
@@ -1,291 +0,0 @@
-//  SMESH SMESHDS : management of mesh data and SMESH document
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_SubMesh.cxx
-//  Author : Yves FRICAUD, OCC
-//  Module : SMESH
-//  $Header: 
-
-#include "SMESHDS_SubMesh.hxx"
-
-#include "utilities.h"
-
-using namespace std;
-
-//=======================================================================
-//function : AddElement
-//purpose  : 
-//=======================================================================
-void SMESHDS_SubMesh::AddElement(const SMDS_MeshElement * ME)
-{
-  if ( !IsComplexSubmesh() )
-    myElements.insert(ME);
-}
-
-//=======================================================================
-//function : RemoveElement
-//purpose  : 
-//=======================================================================
-bool SMESHDS_SubMesh::RemoveElement(const SMDS_MeshElement * ME)
-{
-  if ( !IsComplexSubmesh() && NbElements() )
-    return myElements.erase(ME);
-  
-  return false;
-}
-
-//=======================================================================
-//function : AddNode
-//purpose  : 
-//=======================================================================
-void SMESHDS_SubMesh::AddNode(const SMDS_MeshNode * N)
-{
-  if ( !IsComplexSubmesh() )
-    myNodes.insert(N);
-}
-
-//=======================================================================
-//function : RemoveNode
-//purpose  : 
-//=======================================================================
-
-bool SMESHDS_SubMesh::RemoveNode(const SMDS_MeshNode * N)
-{
-  if ( !IsComplexSubmesh() && NbNodes() )
-    return myNodes.erase(N);
-
-  return false;
-}
-
-//=======================================================================
-//function : NbElements
-//purpose  : 
-//=======================================================================
-int SMESHDS_SubMesh::NbElements() const
-{
-  if ( !IsComplexSubmesh() )
-    return myElements.size();
-
-  int nbElems = 0;
-  set<const SMESHDS_SubMesh*>::iterator it = mySubMeshes.begin();
-  for ( ; it != mySubMeshes.end(); it++ )
-    nbElems += (*it)->NbElements();
-
-  return nbElems;
-}
-
-//=======================================================================
-//function : NbNodes
-//purpose  : 
-//=======================================================================
-
-int SMESHDS_SubMesh::NbNodes() const
-{
- if ( !IsComplexSubmesh() )
-   return myNodes.size(); 
-
-  int nbElems = 0;
-  set<const SMESHDS_SubMesh*>::iterator it = mySubMeshes.begin();
-  for ( ; it != mySubMeshes.end(); it++ )
-    nbElems += (*it)->NbNodes();
-
-  return nbElems;
-}
-
-// =====================
-// class MySetIterator
-// =====================
-
-template<typename T> class MySetIterator:public SMDS_Iterator<const T*>
-{
-  typedef const set<const T*> TSet;
-  typename TSet::const_iterator myIt;
-  TSet& mySet;
-
-  public:
-       MySetIterator(const set<const T*>& s):mySet(s), myIt(s.begin())
-       {
-       }
-
-       bool more()
-       {
-               return myIt!=mySet.end();
-       }
-       const T* next()
-       {
-               const T* t=*myIt;
-               myIt++;
-               return t;                       
-       }
-};
-
-// =====================
-// class MyIterator
-// =====================
-
-template<typename VALUE> class MyIterator : public SMDS_Iterator<VALUE>
-{
- public:
-  MyIterator (const set<const SMESHDS_SubMesh*>& theSubMeshes)
-    : mySubMeshes( theSubMeshes ), mySubIt( theSubMeshes.begin() ), myMore(false)
-    {}
-  bool more()
-  {
-    while (( !myElemIt.get() || !myElemIt->more() ) &&
-           mySubIt != mySubMeshes.end())
-    {
-      myElemIt = getElements(*mySubIt);
-      mySubIt++;
-    }
-    myMore = myElemIt.get() && myElemIt->more();
-    return myMore;
-  }
-  VALUE next()
-  {
-    VALUE elem = 0;
-    if ( myMore )
-      elem = myElemIt->next();
-    return elem;
-  }
- protected:
-  virtual boost::shared_ptr< SMDS_Iterator<VALUE> >
-    getElements(const SMESHDS_SubMesh*) const = 0;
-
- private:
-  bool                                        myMore;
-  const set<const SMESHDS_SubMesh*>&          mySubMeshes;
-  set<const SMESHDS_SubMesh*>::const_iterator mySubIt;
-  boost::shared_ptr< SMDS_Iterator<VALUE> >   myElemIt;
-};
-
-// =====================
-// class MyElemIterator
-// =====================
-
-class MyElemIterator: public MyIterator<const SMDS_MeshElement*>
-{
- public:
-  MyElemIterator (const set<const SMESHDS_SubMesh*>& theSubMeshes)
-    :MyIterator<const SMDS_MeshElement*>( theSubMeshes ) {}
-  SMDS_ElemIteratorPtr getElements(const SMESHDS_SubMesh* theSubMesh) const
-  { return theSubMesh->GetElements(); }
-};
-
-// =====================
-// class MyNodeIterator
-// =====================
-
-class MyNodeIterator: public MyIterator<const SMDS_MeshNode*>
-{
- public:
-  MyNodeIterator (const set<const SMESHDS_SubMesh*>& theSubMeshes)
-    :MyIterator<const SMDS_MeshNode*>( theSubMeshes ) {}
-  SMDS_NodeIteratorPtr getElements(const SMESHDS_SubMesh* theSubMesh) const
-  { return theSubMesh->GetNodes(); }
-};
-  
-//=======================================================================
-//function : GetElements
-//purpose  : 
-//=======================================================================
-
-SMDS_ElemIteratorPtr SMESHDS_SubMesh::GetElements() const
-{
-  if ( IsComplexSubmesh() )
-    return SMDS_ElemIteratorPtr( new MyElemIterator( mySubMeshes ));
-
-  return SMDS_ElemIteratorPtr(new MySetIterator<SMDS_MeshElement>(myElements));
-}
-
-//=======================================================================
-//function : GetNodes
-//purpose  : 
-//=======================================================================
-
-SMDS_NodeIteratorPtr SMESHDS_SubMesh::GetNodes() const
-{
-  if ( IsComplexSubmesh() )
-    return SMDS_NodeIteratorPtr( new MyNodeIterator( mySubMeshes ));
-
-  return SMDS_NodeIteratorPtr(new MySetIterator<SMDS_MeshNode>(myNodes));
-}
-
-//=======================================================================
-//function : Contains
-//purpose  : check if elem or node is in
-//=======================================================================
-
-bool SMESHDS_SubMesh::Contains(const SMDS_MeshElement * ME) const
-{
-  // DO NOT TRY TO FIND A REMOVED ELEMENT !!
-  if ( !ME )
-    return false;
-
-  if ( IsComplexSubmesh() )
-  {
-    set<const SMESHDS_SubMesh*>::const_iterator aSubIt = mySubMeshes.begin();
-    for ( ; aSubIt != mySubMeshes.end(); aSubIt++ )
-      if ( (*aSubIt)->Contains( ME ))
-        return true;
-    return false;
-  }
-
-  if ( ME->GetType() == SMDSAbs_Node )
-  {
-    const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( ME );
-    return ( myNodes.find( n ) != myNodes.end() );
-  }
-
-  return ( myElements.find( ME ) != myElements.end() );
-}
-
-//=======================================================================
-//function : AddSubMesh
-//purpose  : 
-//=======================================================================
-
-void SMESHDS_SubMesh::AddSubMesh( const SMESHDS_SubMesh* theSubMesh )
-{
-  ASSERT( theSubMesh );
-  mySubMeshes.insert( theSubMesh );
-}
-
-//=======================================================================
-//function : RemoveSubMesh
-//purpose  : 
-//=======================================================================
-
-bool SMESHDS_SubMesh::RemoveSubMesh( const SMESHDS_SubMesh* theSubMesh )
-{
-  return mySubMeshes.erase( theSubMesh );
-}
-
-//=======================================================================
-//function : ContainsSubMesh
-//purpose  : 
-//=======================================================================
-
-bool SMESHDS_SubMesh::ContainsSubMesh( const SMESHDS_SubMesh* theSubMesh ) const
-{
-  return mySubMeshes.find( theSubMesh ) != mySubMeshes.end();
-}
diff --git a/src/SMESHDS/SMESHDS_SubMesh.hxx b/src/SMESHDS/SMESHDS_SubMesh.hxx
deleted file mode 100644 (file)
index 7b202b9..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-//  SMESH SMESHDS : management of mesh data and SMESH document
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHDS_SubMesh.hxx
-//  Module : SMESH
-
-#ifndef _SMESHDS_SubMesh_HeaderFile
-#define _SMESHDS_SubMesh_HeaderFile
-
-#include "SMDS_Mesh.hxx"
-#include <set>
-
-class SMESHDS_SubMesh
-{
- public:
-
-  bool IsComplexSubmesh() const { return !mySubMeshes.empty(); }
-
-  // if !IsComplexSubmesh()
-  void AddElement(const SMDS_MeshElement * ME);
-  bool RemoveElement(const SMDS_MeshElement * ME); // ret true if ME was in
-  void AddNode(const SMDS_MeshNode * ME);
-  bool RemoveNode(const SMDS_MeshNode * ME);       // ret true if ME was in
-
-  // if IsComplexSubmesh()
-  void AddSubMesh( const SMESHDS_SubMesh* theSubMesh );
-  bool RemoveSubMesh( const SMESHDS_SubMesh* theSubMesh );
-  bool ContainsSubMesh( const SMESHDS_SubMesh* theSubMesh ) const;
-
-  // for both types
-  int NbElements() const;
-  SMDS_ElemIteratorPtr GetElements() const;
-  int NbNodes() const;
-  SMDS_NodeIteratorPtr GetNodes() const;
-  bool Contains(const SMDS_MeshElement * ME) const;      // check if elem or node is in
-
- private:
-  //const SMDS_Mesh * myMesh;
-  std::set<const SMDS_MeshElement*> myElements;
-  std::set<const SMDS_MeshNode*>    myNodes;
-  std::set<const SMESHDS_SubMesh*>  mySubMeshes;
-};
-#endif
diff --git a/src/SMESHFiltersSelection/Handle_SMESH_TypeFilter.hxx b/src/SMESHFiltersSelection/Handle_SMESH_TypeFilter.hxx
deleted file mode 100644 (file)
index 79db470..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-// File generated by CPPExt (Transient)
-//
-//                     Copyright (C) 1991,1995 by
-//  
-//                      MATRA DATAVISION, FRANCE
-//  
-// This software is furnished in accordance with the terms and conditions
-// of the contract and with the inclusion of the above copyright notice.
-// This software or any other copy thereof may not be provided or otherwise
-// be made available to any other person. No title to an ownership of the
-// software is hereby transferred.
-//  
-// At the termination of the contract, the software and all copies of this
-// software must be deleted.
-
-#ifndef _Handle_SMESH_TypeFilter_HeaderFile
-#define _Handle_SMESH_TypeFilter_HeaderFile
-
-#ifndef _Standard_Macro_HeaderFile
-#include <Standard_Macro.hxx>
-#endif
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-
-#ifndef _Handle_SALOME_Filter_HeaderFile
-#include "Handle_SALOME_Filter.hxx"
-#endif
-
-class Standard_Transient;
-class Handle_Standard_Type;
-class Handle(SALOME_Filter);
-class SMESH_TypeFilter;
-Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(SMESH_TypeFilter);
-
-class Handle(SMESH_TypeFilter) : public Handle(SALOME_Filter) {
-  public:
-    inline void* operator new(size_t,void* anAddress) 
-      {
-        return anAddress;
-      }
-    inline void* operator new(size_t size) 
-      { 
-        return Standard::Allocate(size); 
-      }
-    inline void  operator delete(void *anAddress) 
-      { 
-        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
-      }
-//    inline void  operator delete(void *anAddress, size_t size) 
-//      { 
-//        if (anAddress) Standard::Free((Standard_Address&)anAddress,size); 
-//      }
-    Handle(SMESH_TypeFilter)():Handle(SALOME_Filter)() {} 
-    Handle(SMESH_TypeFilter)(const Handle(SMESH_TypeFilter)& aHandle) : Handle(SALOME_Filter)(aHandle) 
-     {
-     }
-
-    Handle(SMESH_TypeFilter)(const SMESH_TypeFilter* anItem) : Handle(SALOME_Filter)((SALOME_Filter *)anItem) 
-     {
-     }
-
-    Handle(SMESH_TypeFilter)& operator=(const Handle(SMESH_TypeFilter)& aHandle)
-     {
-      Assign(aHandle.Access());
-      return *this;
-     }
-
-    Handle(SMESH_TypeFilter)& operator=(const SMESH_TypeFilter* anItem)
-     {
-      Assign((Standard_Transient *)anItem);
-      return *this;
-     }
-
-    SMESH_TypeFilter* operator->() 
-     {
-      return (SMESH_TypeFilter *)ControlAccess();
-     }
-
-    SMESH_TypeFilter* operator->() const 
-     {
-      return (SMESH_TypeFilter *)ControlAccess();
-     }
-
-   Standard_EXPORT ~Handle(SMESH_TypeFilter)();
-   Standard_EXPORT static const Handle(SMESH_TypeFilter) DownCast(const Handle(Standard_Transient)& AnObject);
-};
-#endif
diff --git a/src/SMESHFiltersSelection/SMESH_LogicalFilter.cxx b/src/SMESHFiltersSelection/SMESH_LogicalFilter.cxx
deleted file mode 100644 (file)
index 18631a4..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-//  File   : SMESH_LogicalFilter.cxx
-//  Module : SMESH
-
-#include "SMESH_LogicalFilter.hxx"
-
-//=======================================================================
-// name    : SMESH_LogicalFilter::SMESH_LogicalFilter
-// Purpose : Constructor
-//=======================================================================
-SMESH_LogicalFilter::SMESH_LogicalFilter (const QPtrList<SUIT_SelectionFilter>& theFilters,
-                                          const int                             theLogOp)
-{
-  setFilters(theFilters); 
-  setOperation(theLogOp);
-}
-
-//=======================================================================
-// name    : SMESH_LogicalFilter::~SMESH_LogicalFilter
-// Purpose : Destructor
-//=======================================================================
-SMESH_LogicalFilter::~SMESH_LogicalFilter()
-{
-}
-
-//=======================================================================
-// name    : SMESH_LogicalFilter::IsOk
-// Purpose : Verify validity of entry object
-//=======================================================================
-bool SMESH_LogicalFilter::isOk (const SUIT_DataOwner* owner) const
-{
-  bool res = true;
-  QPtrListIterator<SUIT_SelectionFilter> it (myFilters);
-  SUIT_SelectionFilter* filter;
-  for (; ((filter = it.current()) != 0) && res; ++it)
-  {
-    if (myOperation == LO_OR && filter->isOk(owner))
-      return true;
-    if (myOperation == LO_AND && !filter->isOk(owner))
-      return false;
-    if (myOperation == LO_NOT)
-      return !filter->isOk(owner);
-  }
-
-  return (myOperation != LO_OR);
-}
-
-//=======================================================================
-// name    : SMESH_LogicalFilter::setFilters
-// Purpose : Set new list of filters. Old wilters are removed
-//=======================================================================
-void SMESH_LogicalFilter::setFilters (const QPtrList<SUIT_SelectionFilter>& theFilters)
-{
-  myFilters = theFilters;
-}
-
-//=======================================================================
-// name    : SMESH_LogicalFilter::setOperation
-// Purpose : Set logical operation
-//=======================================================================
-void SMESH_LogicalFilter::setOperation (const int theLogOp)
-{
-  myOperation = theLogOp;
-}
-
-//=======================================================================
-// name    : SMESH_LogicalFilter::getFilters
-// Purpose : Get list of filters
-//=======================================================================
-const QPtrList<SUIT_SelectionFilter> SMESH_LogicalFilter::getFilters() const
-{
-  return myFilters;
-}
-
-//=======================================================================
-// name    : SMESH_LogicalFilter::getOperation
-// Purpose : Get logical operation
-//=======================================================================
-int SMESH_LogicalFilter::getOperation() const
-{
-  return myOperation;
-}
diff --git a/src/SMESHFiltersSelection/SMESH_LogicalFilter.hxx b/src/SMESHFiltersSelection/SMESH_LogicalFilter.hxx
deleted file mode 100644 (file)
index a453bb1..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-//  File   : SMESH_LogicalFilter.hxx
-//  Module : SMESH
-
-#ifndef _SMESH_LogicalFilter_HeaderFile
-#define _SMESH_LogicalFilter_HeaderFile
-
-#include <SUIT_SelectionFilter.h>
-
-#include <qptrlist.h>
-
-class SMESH_LogicalFilter : public SUIT_SelectionFilter
-{
- public:
-  enum { LO_OR, LO_AND, LO_NOT, LO_UNDEFINED };
-
- public:
-  SMESH_LogicalFilter (const QPtrList<SUIT_SelectionFilter>&,
-                       const int);
-  virtual ~SMESH_LogicalFilter();
-
-  virtual bool isOk (const SUIT_DataOwner*) const;
-
-  void                                 setFilters (const QPtrList<SUIT_SelectionFilter>&);
-  void                                 setOperation (const int);
-  const QPtrList<SUIT_SelectionFilter> getFilters() const;
-  int                                  getOperation() const;
-
-private:
-  QPtrList<SUIT_SelectionFilter>  myFilters;
-  int                             myOperation;
-};
-
-#endif
diff --git a/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx b/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx
deleted file mode 100644 (file)
index 3f0cd88..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-//  File   : SMESH_NumberFilter.cxx
-//  Module : SMESH
-
-#include "SMESH_NumberFilter.hxx"
-
-#include "GEOMBase.h"
-
-#include "SUIT_Application.h"
-#include "SUIT_Session.h"
-
-#include "SalomeApp_Study.h"
-#include "SalomeApp_DataOwner.h"
-
-#include "SALOME_InteractiveObject.hxx"
-#include "SALOMEDSClient_SObject.hxx"
-#include "SALOMEDS_SObject.hxx"
-
-#include <TopTools_MapOfShape.hxx>
-#include <TopExp_Explorer.hxx>
-
-/*!
- *  Class       : SMESH_NumberFilter
- *  Description : Filter for geom objects.
- *                Filter geom objects by number of subshapes of the given type
- */
-
-//=======================================================================
-// name    : SMESH_NumberFilter::SMESH_NumberFilter
-// Purpose : Constructor
-//=======================================================================
-SMESH_NumberFilter::SMESH_NumberFilter (const char*            theKind,
-                                        const TopAbs_ShapeEnum theSubShapeType,
-                                        const int              theNumber,
-                                        const TopAbs_ShapeEnum theShapeType,
-                                        GEOM::GEOM_Object_ptr  theMainObj,
-                                        const bool             theIsClosedOnly)
-{
-  myKind = (char*)theKind;
-  mySubShapeType = theSubShapeType;
-  myNumber = theNumber;
-  myIsClosedOnly = theIsClosedOnly;
-  myShapeTypes.Add(theShapeType);
-  myMainObj = GEOM::GEOM_Object::_duplicate(theMainObj);
-}
-
-//=======================================================================
-// name    : SMESH_NumberFilter::SMESH_NumberFilter
-// Purpose : Constructor
-//=======================================================================
-SMESH_NumberFilter::SMESH_NumberFilter (const char*                 theKind,
-                                        const TopAbs_ShapeEnum      theSubShapeType,
-                                        const int                   theNumber,
-                                        const TColStd_MapOfInteger& theShapeTypes,
-                                        GEOM::GEOM_Object_ptr       theMainObj,
-                                        const bool                  theIsClosedOnly )
-{
-  myKind = (char*)theKind;
-  mySubShapeType = theSubShapeType;
-  myNumber = theNumber;
-  myIsClosedOnly = theIsClosedOnly;
-  myShapeTypes = theShapeTypes;
-  myMainObj = GEOM::GEOM_Object::_duplicate(theMainObj);
-}
-
-SMESH_NumberFilter::~SMESH_NumberFilter()
-{
-}
-
-//=======================================================================
-// name    : SMESH_NumberFilter::SMESH_NumberFilter
-// Purpose : Verify validity of entry object
-//=======================================================================
-bool SMESH_NumberFilter::isOk (const SUIT_DataOwner* theDataOwner) const
-{
-  if (!theDataOwner)
-    return false;
-
-  // Get geom object from IO
-  GEOM::GEOM_Object_var aGeomObj = getGeom(theDataOwner);
-  if (aGeomObj->_is_nil())
-    return false;
-
-  // Get shape from geom object and verify its parameters
-  TopoDS_Shape aShape;
-  if (!GEOMBase::GetShape(aGeomObj, aShape) ||
-      aShape.IsNull() ||
-      !myShapeTypes.Contains(aShape.ShapeType()))
-    return false;
-
-  if (myIsClosedOnly && aShape.ShapeType() == TopAbs_SHELL && !aShape.Closed())
-    return false;
-
-  // Verify whether shape of entry object is sub-shape of myMainObj
-  if (!myMainObj->_is_nil()) {
-    TopoDS_Shape aMainShape;
-    if (!GEOMBase::GetShape(myMainObj, aMainShape))
-      return false;
-
-    bool isFound = false;
-    TopAbs_ShapeEnum aShapeType = aShape.ShapeType();
-    TopExp_Explorer anExp (aMainShape, aShapeType);
-    for (; anExp.More(); anExp.Next()) {
-      if (anExp.Current() == aShape) {
-        isFound = true;
-        break;
-      }
-    }
-    if (!isFound)
-      return false;
-  }
-
-  // Verify number of sub-shapes
-  if (mySubShapeType == TopAbs_SHAPE);
-    return true;
-
-  TopExp_Explorer anExp2 (aShape, mySubShapeType);
-  TopTools_MapOfShape aMap;
-  for (; anExp2.More(); anExp2.Next())
-    aMap.Add(anExp2.Current());
-
-  return myNumber == aMap.Extent();
-}
-
-//=======================================================================
-// name    : SMESH_NumberFilter::getGeom
-// Purpose : Retrieve geom object from SALOME_InteractiveObject
-//=======================================================================
-GEOM::GEOM_Object_ptr SMESH_NumberFilter::getGeom
-  (const SUIT_DataOwner* theDataOwner) const
-{
-  const SalomeApp_DataOwner* owner =
-    dynamic_cast<const SalomeApp_DataOwner*>(theDataOwner);
-  SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>
-    (SUIT_Session::session()->activeApplication()->activeStudy());
-
-  GEOM::GEOM_Object_var anObj;
-
-  if (!owner || !appStudy)
-    return GEOM::GEOM_Object::_nil();
-
-  _PTR(Study) study = appStudy->studyDS();
-  QString entry = owner->entry();
-
-  _PTR(SObject) aSO(study->FindObjectID(entry.latin1()));
-  if (!aSO)
-    return GEOM::GEOM_Object::_nil();
-
-  CORBA::Object_var anObject = _CAST(SObject,aSO)->GetObject();
-  anObj = GEOM::GEOM_Object::_narrow(anObject);
-  if (!CORBA::is_nil(anObj))
-    return anObj._retn();
-
-  // Get geom object corresponding to the mesh
-  _PTR(ChildIterator) anIter = study->NewChildIterator(aSO);
-  for (; anIter->More(); anIter->Next()) {
-    _PTR(SObject) aSO = anIter->Value();
-    if (!aSO)
-      continue;
-    _PTR(SObject) aRefSO;
-    _PTR(SObject) anObj;
-    if (aSO->ReferencedObject(aRefSO))
-      anObj = aRefSO;
-
-    if (!anObj)
-      anObj = aSO;
-
-    anObject = _CAST(SObject,anObj)->GetObject();
-    GEOM::GEOM_Object_var aMeshShape = GEOM::GEOM_Object::_narrow(anObject);
-
-    if (!aMeshShape->_is_nil())
-      return aMeshShape._retn();
-  }
-
-  return GEOM::GEOM_Object::_nil();
-}
-
-void SMESH_NumberFilter::SetSubShapeType (const TopAbs_ShapeEnum theSubShapeType)
-{
-  mySubShapeType = theSubShapeType;
-}
-
-void SMESH_NumberFilter::SetNumber (const int theNumber)
-{
-  myNumber = theNumber;
-}
-
-void SMESH_NumberFilter::SetClosedOnly (const bool theIsClosedOnly)
-{
-  myIsClosedOnly = theIsClosedOnly;
-}
-
-void SMESH_NumberFilter::SetShapeType (const TopAbs_ShapeEnum theShapeType)
-{
-  myShapeTypes.Add( theShapeType );
-}
-
-void SMESH_NumberFilter::SetMainShape (GEOM::GEOM_Object_ptr theMainObj)
-{
-  myMainObj = GEOM::GEOM_Object::_duplicate(theMainObj);
-}
diff --git a/src/SMESHFiltersSelection/SMESH_NumberFilter.hxx b/src/SMESHFiltersSelection/SMESH_NumberFilter.hxx
deleted file mode 100644 (file)
index 6b34112..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-//  File   : SMESH_NumberFilter.hxx
-//  Module : SMESH
-
-#ifndef _SMESH_NumberFilter_HeaderFile
-#define _SMESH_NumberFilter_HeaderFile
-
-#include "SUIT_SelectionFilter.h"
-
-#include <TopAbs_ShapeEnum.hxx>
-#include <TColStd_MapOfInteger.hxx>
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-
-class SUIT_DataOwner;
-
-/*!
- *  Class       : SMESH_NumberFilter
- *  Description : Filter for geom or smesh objects.
- *                Filter geom objects by number of subshapes of the given type
- *                Parameters of constructor:
- *                * theSubShapeType - Type of subshape
- *                * theNumber       - Number of subshapes. Object is selected if it contains theNumber of
- *                                    theSubShapeType sub-shapes
- *                * theShapeType    - This map specifies types of object to be selected
- *                * theMainObject   - Sub-shapes of this object is selected only
- *                * theIsClosedOnly - Closed shapes is selected if this parameter is true
- */
-class SMESH_NumberFilter : public SUIT_SelectionFilter
-{
- public:
-  SMESH_NumberFilter (const char*            theKind,
-                      const TopAbs_ShapeEnum theSubShapeType,
-                      const int              theNumber,
-                      const TopAbs_ShapeEnum theShapeType = TopAbs_SHAPE,
-                      GEOM::GEOM_Object_ptr  theMainObj = GEOM::GEOM_Object::_nil(),
-                      const bool             theIsClosedOnly = false );
-
-  SMESH_NumberFilter (const char*                 theKind,
-                      const TopAbs_ShapeEnum      theSubShapeType,
-                      const int                   theNumber,
-                      const TColStd_MapOfInteger& theShapeTypes,
-                      GEOM::GEOM_Object_ptr       theMainObj = GEOM::GEOM_Object::_nil(),
-                      const bool                  theIsClosedOnly = false );
-
-  virtual ~SMESH_NumberFilter();
-
-  virtual bool isOk (const SUIT_DataOwner*) const;
-
-  void SetSubShapeType (const TopAbs_ShapeEnum);
-  void SetNumber       (const int);
-  void SetClosedOnly   (const bool);
-  void SetShapeType    (const TopAbs_ShapeEnum);
-  void SetShapeTypes   (const TColStd_MapOfInteger&);
-  void SetMainShape    (GEOM::GEOM_Object_ptr);
-
- private:
-  GEOM::GEOM_Object_ptr getGeom (const SUIT_DataOwner*) const;
-
- private:
-  char*                 myKind;
-  TopAbs_ShapeEnum      mySubShapeType;
-  int                   myNumber;
-  bool                  myIsClosedOnly;
-  TColStd_MapOfInteger  myShapeTypes;
-  GEOM::GEOM_Object_var myMainObj;
-};
-
-#endif
diff --git a/src/SMESHFiltersSelection/SMESH_Type.h b/src/SMESHFiltersSelection/SMESH_Type.h
deleted file mode 100644 (file)
index f80b9cc..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-//  File      : SMESH_Type.h
-//  Created   : Mon Jun 03 15:14:15 2002
-//  Author    : Nicolas REJNERI
-
-//  Project   : SALOME
-//  Module    : SMESH
-//  Copyright : Open CASCADE 2002
-//  $Header$
-
-#ifndef SMESH_TYPE_HEADER
-#define SMESH_TYPE_HEADER
-
-enum MeshObjectType {
-  HYPOTHESIS,
-  ALGORITHM,
-  MESH,
-  SUBMESH,
-  MESHorSUBMESH,
-  SUBMESH_VERTEX,
-  SUBMESH_EDGE,
-  SUBMESH_FACE,
-  SUBMESH_SOLID,
-  SUBMESH_COMPOUND,
-  GROUP
-};
-
-#endif
diff --git a/src/SMESHFiltersSelection/SMESH_TypeFilter.cxx b/src/SMESHFiltersSelection/SMESH_TypeFilter.cxx
deleted file mode 100644 (file)
index 8561317..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-#include "SMESH_TypeFilter.hxx"
-
-#include <SUIT_Session.h>
-
-#include <SalomeApp_Study.h>
-#include <SalomeApp_DataOwner.h>
-
-SMESH_TypeFilter::SMESH_TypeFilter (MeshObjectType theType) 
-{
-  myType = theType;
-}
-
-SMESH_TypeFilter::~SMESH_TypeFilter() 
-{
-}
-
-bool SMESH_TypeFilter::isOk (const SUIT_DataOwner* theDataOwner) const
-{
-  bool Ok = false;
-
-  const SalomeApp_DataOwner* owner =
-    dynamic_cast<const SalomeApp_DataOwner*>(theDataOwner);
-  SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>
-    (SUIT_Session::session()->activeApplication()->activeStudy());
-
-  if (owner && appStudy) {
-    _PTR(Study) study = appStudy->studyDS();
-    QString entry = owner->entry();
-
-    _PTR(SObject) obj (study->FindObjectID(entry.latin1()));
-    if (!obj) return false;
-
-    _PTR(SObject) objFather = obj->GetFather();
-    _PTR(SComponent) objComponent = obj->GetFatherComponent();
-
-    if( objComponent->ComponentDataType()!="SMESH" )
-      return false;
-
-    int aLevel = obj->Depth() - objComponent->Depth();
-
-    // Max level under the component is 4:
-    //
-    // 0    Mesh Component
-    // 1    |- Hypotheses
-    // 2    |  |- Regular 1D
-    //      |- Algorithms
-    //      |- Mesh 1
-    //         |- Applied Hypotheses
-    //         |- Applied Algorithms
-    //         |- Submeshes on Face
-    // 3       |  |- SubmeshFace
-    // 4       |     |- Applied algorithms ( selectable in Use Case Browser )
-    //         |- Group Of Nodes
-
-    if (aLevel <= 0)
-      return false;
-
-    switch (myType)
-      {
-      case HYPOTHESIS:
-       {
-         if ( aLevel == 2 && ( objFather->Tag() == 1 ))
-           Ok = true;
-         break;
-       }
-      case ALGORITHM:
-       {
-         if ( aLevel == 2 && ( objFather->Tag() == 2 ))
-           Ok = true;
-         break;
-       }
-      case MESH:
-       {
-         if ( aLevel == 1 && ( obj->Tag() >= 3 ))
-           Ok = true;
-         break;
-       }
-      case SUBMESH:
-       {
-         // see SMESH_Gen_i.cxx for tag numbers
-         if ( aLevel == 3 && ( objFather->Tag() >= 4 && objFather->Tag() <= 10 ))
-           Ok = true;
-         break;
-       }
-      case MESHorSUBMESH:
-       {
-         if ( aLevel == 1 && ( obj->Tag() >= 3 ))
-           Ok = true; // mesh
-          else if ( aLevel == 3 && ( objFather->Tag() >= 4 && objFather->Tag() <= 10 ))
-           Ok = true;
-         break;
-       }
-      case SUBMESH_VERTEX:  // Label "SubMeshes on vertexes"
-       {
-         if ( aLevel == 3 && ( objFather->Tag() == 4 ))
-           Ok = true;
-         break;
-       }
-      case SUBMESH_EDGE:
-       {
-         if ( aLevel == 3 && ( objFather->Tag() == 5 ))
-           Ok = true;
-         break;
-       }
-      case SUBMESH_FACE:
-       {
-         if ( aLevel == 3 && ( objFather->Tag() == 7 ))
-           Ok = true;
-         break;
-       }
-      case SUBMESH_SOLID:
-       {
-         if ( aLevel == 3 && ( objFather->Tag() == 9 ))
-           Ok = true;
-         break;
-       }
-      case SUBMESH_COMPOUND:
-       {
-         if ( aLevel == 3 && ( objFather->Tag() == 10 ))
-           Ok = true;
-         break;
-       }
-      case GROUP:
-       {
-         if ( aLevel == 3 && ( objFather->Tag() > 10 ))
-           Ok = true;
-         break;
-       }
-      }
-  }
-  return Ok;
-}
-
-MeshObjectType SMESH_TypeFilter::type() const 
-{
-  return myType;
-}
diff --git a/src/SMESHFiltersSelection/SMESH_TypeFilter.hxx b/src/SMESHFiltersSelection/SMESH_TypeFilter.hxx
deleted file mode 100644 (file)
index 442d72d..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-//  File   : SMESH_TypeFilter.hxx
-//  Module : SMESH
-
-#ifndef _SMESH_TypeFilter_HeaderFile
-#define _SMESH_TypeFilter_HeaderFile
-
-#include "SMESH_Type.h"
-#include "SUIT_SelectionFilter.h"
-
-class SUIT_DataOwner;
-
-class SMESH_TypeFilter : public SUIT_SelectionFilter
-{
-public:
-  SMESH_TypeFilter (MeshObjectType theType);
-  ~SMESH_TypeFilter();
-
-  virtual bool isOk (const SUIT_DataOwner*) const;
-  MeshObjectType type() const;
-
-protected:
-  MeshObjectType myType;
-};
-
-#endif
diff --git a/src/SMESHFiltersSelection/SMESH_TypeFilter.ixx b/src/SMESHFiltersSelection/SMESH_TypeFilter.ixx
deleted file mode 100644 (file)
index a01d02e..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-// File generated by CPPExt (Transient)
-//                     Copyright (C) 1991,1995 by
-//  
-//                      MATRA DATAVISION, FRANCE
-//  
-// This software is furnished in accordance with the terms and conditions
-// of the contract and with the inclusion of the above copyright notice.
-// This software or any other copy thereof may not be provided or otherwise
-// be made available to any other person. No title to an ownership of the
-// software is hereby transferred.
-//  
-// At the termination of the contract, the software and all copies of this
-// software must be deleted.
-//
-#include "SMESH_TypeFilter.jxx"
-
-#ifndef _Standard_TypeMismatch_HeaderFile
-#include <Standard_TypeMismatch.hxx>
-#endif
-
-SMESH_TypeFilter::~SMESH_TypeFilter() {}
-
-
-Standard_EXPORT Handle_Standard_Type& SMESH_TypeFilter_Type_()
-{
-
-    static Handle_Standard_Type aType1 = STANDARD_TYPE(SALOME_Filter);
-  if ( aType1.IsNull()) aType1 = STANDARD_TYPE(SALOME_Filter);
-  static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared);
-  if ( aType2.IsNull()) aType2 = STANDARD_TYPE(MMgt_TShared);
-  static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient);
-  if ( aType3.IsNull()) aType3 = STANDARD_TYPE(Standard_Transient);
-
-  static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL};
-  static Handle_Standard_Type _aType = new Standard_Type("SMESH_TypeFilter",
-                                                        sizeof(SMESH_TypeFilter),
-                                                        1,
-                                                        (Standard_Address)_Ancestors,
-                                                        (Standard_Address)NULL);
-
-  return _aType;
-}
-
-
-// DownCast method
-//   allow safe downcasting
-//
-const Handle(SMESH_TypeFilter) Handle(SMESH_TypeFilter)::DownCast(const Handle(Standard_Transient)& AnObject) 
-{
-  Handle(SMESH_TypeFilter) _anOtherObject;
-
-  if (!AnObject.IsNull()) {
-     if (AnObject->IsKind(STANDARD_TYPE(SMESH_TypeFilter))) {
-       _anOtherObject = Handle(SMESH_TypeFilter)((Handle(SMESH_TypeFilter)&)AnObject);
-     }
-  }
-
-  return _anOtherObject ;
-}
-const Handle(Standard_Type)& SMESH_TypeFilter::DynamicType() const 
-{ 
-  return STANDARD_TYPE(SMESH_TypeFilter) ; 
-}
-Standard_Boolean SMESH_TypeFilter::IsKind(const Handle(Standard_Type)& AType) const 
-{ 
-  return (STANDARD_TYPE(SMESH_TypeFilter) == AType || SALOME_Filter::IsKind(AType)); 
-}
-Handle_SMESH_TypeFilter::~Handle_SMESH_TypeFilter() {}
-
diff --git a/src/SMESHFiltersSelection/SMESH_TypeFilter.jxx b/src/SMESHFiltersSelection/SMESH_TypeFilter.jxx
deleted file mode 100644 (file)
index 2aed9c3..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#ifndef _SMESH_TypeFilter_HeaderFile
-#include "SMESH_TypeFilter.hxx"
-#endif
diff --git a/src/SMESHGUI/Makefile.in b/src/SMESHGUI/Makefile.in
deleted file mode 100644 (file)
index e637c77..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-#  SMESH SMESHGUI : GUI for SMESH component
-#
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : Makefile.in
-#  Author : Nicolas REJNERI
-#  Module : SMESH
-#  $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@top_srcdir@/idl:$(top_builddir)/idl
-
-
-@COMMENCE@
-
-# header files 
-EXPORT_HEADERS= SMESHGUI_Swig.hxx \
-               SMESHGUI_Swig.i \
-               SMESHGUI.h \
-               SMESHGUI_Utils.h \
-               SMESHGUI_Hypotheses.h \
-               SMESHGUI_HypothesesUtils.h \
-               SMESHGUI_SpinBox.h \
-               SMESHGUI_aParameter.h \
-               SMESHGUI_aParameterDlg.h \
-               SMESHGUI_Selection.h
-
-# .po files to transform in .qm
-PO_FILES = \
-          SMESH_images.po \
-          SMESH_msg_en.po
-
-# Libraries targets
-LIB = libSMESH.la
-LIB_SRC =      SMESHGUI.cxx \
-               SMESHGUI_PatternWidget.cxx \
-               SMESHGUI_CreatePatternDlg.cxx \
-               SMESHGUI_MeshPatternDlg.cxx \
-               SMESHGUI_SpinBox.cxx \
-               SMESHGUI_NodesDlg.cxx \
-               SMESHGUI_InitMeshDlg.cxx \
-               SMESHGUI_AddSubMeshDlg.cxx \
-               SMESHGUI_TransparencyDlg.cxx \
-               SMESHGUI_ClippingDlg.cxx \
-               SMESHGUI_GroupDlg.cxx \
-               SMESHGUI_RemoveNodesDlg.cxx \
-               SMESHGUI_RemoveElementsDlg.cxx \
-               SMESHGUI_MeshInfosDlg.cxx \
-               SMESHGUI_StandardMeshInfosDlg.cxx \
-               SMESHGUI_Preferences_ColorDlg.cxx \
-               SMESHGUI_Preferences_ScalarBarDlg.cxx \
-               SMESHGUI_Preferences_SelectionDlg.cxx \
-               SMESHGUI_aParameterDlg.cxx \
-               SMESHGUI_Swig.cxx \
-               SMESHGUI_MoveNodesDlg.cxx \
-               SMESHGUI_AddMeshElementDlg.cxx \
-               SMESHGUI_EditHypothesesDlg.cxx \
-               SMESHGUI_CreateHypothesesDlg.cxx \
-               SMESHGUI_XmlHandler.cxx \
-               SMESHGUI_Filter.cxx \
-               SMESHGUI_FilterDlg.cxx \
-               SMESHGUI_FilterLibraryDlg.cxx \
-               SMESHGUI_SingleEditDlg.cxx \
-               SMESHGUI_MultiEditDlg.cxx \
-               SMESHGUI_aParameter.cxx \
-               SMESHGUI_DeleteGroupDlg.cxx \
-               SMESHGUI_GroupOpDlg.cxx \
-               SMESHGUI_SmoothingDlg.cxx \
-               SMESHGUI_RenumberingDlg.cxx \
-               SMESHGUI_ExtrusionDlg.cxx \
-               SMESHGUI_ExtrusionAlongPathDlg.cxx \
-               SMESHGUI_RevolutionDlg.cxx \
-               SMESHGUI_RotationDlg.cxx \
-               SMESHGUI_TranslationDlg.cxx \
-               SMESHGUI_SymmetryDlg.cxx \
-               SMESHGUI_SewingDlg.cxx \
-               SMESHGUI_MergeNodesDlg.cxx \
-               SMESHGUI_EditMeshDlg.cxx \
-               SMESHGUI_Utils.cxx \
-               SMESHGUI_GEOMGenUtils.cxx \
-               SMESHGUI_MeshUtils.cxx \
-               SMESHGUI_GroupUtils.cxx \
-               SMESHGUI_FilterUtils.cxx \
-               SMESHGUI_PatternUtils.cxx \
-               SMESHGUI_HypothesesUtils.cxx \
-               SMESHGUI_PrecisionDlg.cxx \
-               SMESHGUI_VTKUtils.cxx \
-               SMESHGUI_Selection.cxx \
-               SMESHGUI_CreatePolyhedralVolumeDlg.cxx \
-               SMESHGUI_Operation.cxx \
-               SMESHGUI_SelectionOp.cxx \
-               SMESHGUI_Dialog.cxx \
-               SMESHGUI_MeshDlg.cxx \
-               SMESHGUI_MeshOp.cxx
-
-LIB_MOC = \
-               SMESHGUI.h \
-               SMESHGUI_PatternWidget.h \
-               SMESHGUI_MeshPatternDlg.h \
-               SMESHGUI_CreatePatternDlg.h \
-               SMESHGUI_NodesDlg.h \
-               SMESHGUI_SpinBox.h \
-               SMESHGUI_InitMeshDlg.h \
-               SMESHGUI_AddSubMeshDlg.h \
-               SMESHGUI_TransparencyDlg.h \
-               SMESHGUI_ClippingDlg.h \
-               SMESHGUI_GroupDlg.h \
-               SMESHGUI_RemoveNodesDlg.h \
-               SMESHGUI_RemoveElementsDlg.h \
-               SMESHGUI_MeshInfosDlg.h \
-               SMESHGUI_StandardMeshInfosDlg.h \
-               SMESHGUI_Preferences_ColorDlg.h \
-               SMESHGUI_Preferences_ScalarBarDlg.h \
-               SMESHGUI_Preferences_SelectionDlg.h \
-               SMESHGUI_aParameterDlg.h \
-               SMESHGUI_MoveNodesDlg.h \
-               SMESHGUI_AddMeshElementDlg.h \
-               SMESHGUI_EditHypothesesDlg.h \
-               SMESHGUI_CreateHypothesesDlg.h \
-               SMESHGUI_FilterDlg.h \
-               SMESHGUI_FilterLibraryDlg.h \
-               SMESHGUI_SingleEditDlg.h \
-               SMESHGUI_MultiEditDlg.h \
-               SMESHGUI_DeleteGroupDlg.h \
-               SMESHGUI_GroupOpDlg.h \
-               SMESHGUI_SmoothingDlg.h \
-               SMESHGUI_RenumberingDlg.h \
-               SMESHGUI_ExtrusionDlg.h \
-               SMESHGUI_ExtrusionAlongPathDlg.h \
-               SMESHGUI_RevolutionDlg.h \
-               SMESHGUI_RotationDlg.h \
-               SMESHGUI_TranslationDlg.h \
-               SMESHGUI_SymmetryDlg.h \
-               SMESHGUI_SewingDlg.h \
-               SMESHGUI_PrecisionDlg.h \
-               SMESHGUI_MergeNodesDlg.h \
-               SMESHGUI_aParameter.h \
-               SMESHGUI_EditMeshDlg.h \
-               SMESHGUI_CreatePolyhedralVolumeDlg.h \
-               SMESHGUI_Operation.h \
-               SMESHGUI_SelectionOp.h \
-               SMESHGUI_Dialog.h \
-               SMESHGUI_MeshDlg.h \
-               SMESHGUI_MeshOp.h
-
-
-LIB_CLIENT_IDL = SALOME_Exception.idl \
-                GEOM_Gen.idl \
-                SMESH_Gen.idl \
-                SMESH_Mesh.idl \
-                SMESH_Hypothesis.idl \
-                SMESH_Group.idl \
-                SALOMEDS.idl \
-                SALOMEDS_Attributes.idl \
-                SALOME_ModuleCatalog.idl \
-                SALOME_Component.idl \
-                MED.idl \
-                SMESH_Filter.idl \
-                SMESH_Pattern.idl \
-                SALOME_GenericObj.idl \
-                SALOME_Comm.idl
-
-LIB_SERVER_IDL = 
-
-# additionnal information to compil and link file
-
-#BIN = SMESHBin
-
-CPPFLAGS += $(QT_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(OCC_INCLUDES) $(PYTHON_INCLUDES) \
-            -I${KERNEL_ROOT_DIR}/include/salome -I${GUI_ROOT_DIR}/include/salome \
-            -I${GEOM_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS)
-
-CXXFLAGS += -I${KERNEL_ROOT_DIR}/include/salome -I${GUI_ROOT_DIR}/include/salome \
-            -I${GEOM_ROOT_DIR}/include/salome
-
-
-LDFLAGS += -lSMESHObject -lSMESHFiltersSelection -lSMDS -lSMESHControls -lDlgRef $(OCC_KERNEL_LIBS) -lTKBO -L${KERNEL_ROOT_DIR}/lib/salome -L${GUI_ROOT_DIR}/lib/salome -lVTKViewer -lSalomeApp -lSalomePrs -lSalomeNS -lSalomeLifeCycleCORBA -lOpUtil -lSalomeObject -lEvent -lSALOMELocalTrace -lSVTK -lOCCViewer -L${GEOM_ROOT_DIR}/lib/salome -lGEOM -lGEOMClient -lGEOMBase -lGEOMObject -lGEOMFiltersSelection
-
-LDFLAGSFORBIN += $(LDFLAGS)
-
-@CONCLUDE@
diff --git a/src/SMESHGUI/SMESHBin.cxx b/src/SMESHGUI/SMESHBin.cxx
deleted file mode 100644 (file)
index 61f9777..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-int main(int argc, char** argv){ 
-  return 0;
-}
-
index f92fdf0679a152e963d387176661991ca421c78c..349eb3ec4bbe6bded65ffa9b4e08992647849d3e 100644 (file)
@@ -587,6 +587,7 @@ namespace{
          }
          anActor->SetControlMode(aControl);
          anActor->GetScalarBarActor()->SetTitle(aTitle.latin1());
+         SMESH::RepaintCurrentView();
        }
       }
     }
@@ -1169,8 +1170,13 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
          }
        }
       }
-      SALOME_ListIO l1;
-      aSel->setSelectedObjects( l1 );
+      
+      if (anAction == SMESH::eErase) {
+       SALOME_ListIO l1;
+       aSel->setSelectedObjects( l1 );
+      }
+      else
+       aSel->setSelectedObjects( selected );
       break;
     }
 
@@ -2802,14 +2808,16 @@ void SMESHGUI::createPreferences()
 {
   int genTab = addPreference( tr( "PREF_TAB_GENERAL" ) );
 
+  int updateGroup = addPreference( tr( "PREF_GROUP_UPDATE" ), genTab );
+  addPreference( tr( "PREF_AUTO_UPDATE" ), updateGroup, SalomeApp_Preferences::Bool, "SMESH", "auto_update" );
+
   int qaGroup = addPreference( tr( "PREF_GROUP_QUALITY" ), genTab );
   addPreference( tr( "PREF_DISPLAY_ENTITY" ), qaGroup, SalomeApp_Preferences::Bool, "SMESH", "display_entity" );
-  addPreference( tr( "PREF_AUTO_UPDATE" ), qaGroup, SalomeApp_Preferences::Bool, "SMESH", "auto_update" );
-
+  addPreference( tr( "PREF_PRECISION_USE" ), qaGroup, SalomeApp_Preferences::Bool, "SMESH", "use_precision" );
+  
   int precGroup = addPreference( tr( "PREF_GROUP_PRECISION" ), genTab );
   setPreferenceProperty( precGroup, "columns", 1 );
 
-  addPreference( tr( "PREF_PRECISION_USE" ), precGroup, SalomeApp_Preferences::Bool );
   int prec = addPreference( tr( "PREF_PRECISION_VALUE" ), precGroup, SalomeApp_Preferences::IntSpin, "SMESH", "controls_precision" );
 
   setPreferenceProperty( prec, "min", 0 );
@@ -2820,9 +2828,15 @@ void SMESHGUI::createPreferences()
   QStringList modes;
   modes.append( "Wireframe" );
   modes.append( "Shading" );
-  modes.append( "Shrink" );
   modes.append( "Nodes" );
+  modes.append( "Shrink" );
+  QValueList<QVariant> indices; 
+  indices.append( 0 ); 
+  indices.append( 1 );
+  indices.append( 2 );
+  indices.append( 3 );
   setPreferenceProperty( dispmode, "strings", modes );
+  setPreferenceProperty( dispmode, "indexes", indices );
   
   int meshTab = addPreference( tr( "PREF_TAB_MESH" ) );
   int nodeGroup = addPreference( tr( "PREF_GROUP_NODES" ), meshTab );
@@ -2909,7 +2923,7 @@ void SMESHGUI::createPreferences()
   QStringList orients;
   orients.append( tr( "SMESH_VERTICAL" ) );
   orients.append( tr( "SMESH_HORIZONTAL" ) );
-  QValueList<QVariant> indices; indices.append( 0 ); indices.append( 1 );
+  indices.clear(); indices.append( 0 ); indices.append( 1 );
   setPreferenceProperty( orient, "strings", orients );
   setPreferenceProperty( orient, "indexes", indices );
   
diff --git a/src/SMESHGUI/SMESHGUI.h b/src/SMESHGUI/SMESHGUI.h
deleted file mode 100644 (file)
index 5ccfbe8..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details.
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef SMESHGUI_HeaderFile
-#define SMESHGUI_HeaderFile
-
-// SALOME Includes
-#include <SalomeApp_Module.h>
-#include <SALOME_InteractiveObject.hxx>
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Gen)
-
-class QDialog;
-
-class SUIT_Desktop;
-class SUIT_Study;
-class SUIT_ViewWindow;
-class SUIT_ResourceMgr;
-class SUIT_ViewManager;
-
-class SalomeApp_Operation;
-class SalomeApp_Study;
-class SalomeApp_SelectionMgr;
-
-
-//=================================================================================
-// class    : SMESHGUI
-// purpose  :
-//=================================================================================
-class SMESHGUI : public SalomeApp_Module
-{
-  Q_OBJECT;
-
-public :
-  SMESHGUI();
-  ~SMESHGUI();
-
-  static SMESH::SMESH_Gen_var     GetSMESHGen();
-  static SMESHGUI*                GetSMESHGUI();
-  static SalomeApp_SelectionMgr*  selectionMgr();
-  static SUIT_ResourceMgr*        resourceMgr();
-  static SUIT_Desktop*            desktop() ;
-  static SalomeApp_Study*         activeStudy();
-  bool                            isActiveStudyLocked();
-
-  static bool                     automaticUpdate();
-
-  virtual QString     engineIOR() const;
-  virtual void        initialize( CAM_Application* );
-  virtual void        windows( QMap<int, int>& ) const;
-  virtual void        viewManagers( QStringList& ) const;
-
-  QDialog*            GetActiveDialogBox() ;
-  void                SetActiveDialogBox(QDialog* aDlg) ;
-
-  void                ResetState() ;
-  void                SetState(int aState) ;
-  bool                DefineDlgPosition(QWidget* aDlg, int& x, int& y) ;
-
-  virtual bool OnGUIEvent        ( int id );
-  virtual bool OnMousePress      ( QMouseEvent*, SUIT_ViewWindow* );
-  virtual bool OnMouseMove       ( QMouseEvent*, SUIT_ViewWindow* );
-  virtual bool OnKeyPress        ( QKeyEvent*, SUIT_ViewWindow* );
-
-  virtual void contextMenuPopup( const QString&, QPopupMenu*, QString& );
-
-  virtual void BuildPresentation ( const Handle(SALOME_InteractiveObject)&,
-                                   SUIT_ViewWindow* = 0 );
-
-  /* Non modal dialog boxes management */
-  void EmitSignalDeactivateDialog() ;
-  void EmitSignalStudyFrameChanged() ;
-  void EmitSignalCloseAllDialogs() ;
-
-  virtual void                createPreferences();
-  virtual void                preferencesChanged( const QString&, const QString& );
-  
-  virtual void                update( const int );
-
-public slots:
-  virtual bool                deactivateModule( SUIT_Study* );
-  virtual bool                activateModule( SUIT_Study* );
-
-private slots:
-  void                        OnGUIEvent();
-  void                        onViewManagerAdded( SUIT_ViewManager* );
-  void                        onOperationCommited( SUIT_Operation* );
-  void                        onOperationAborted( SUIT_Operation* );
-
-
-signals:
-  void SignalDeactivateActiveDialog() ;
-  void SignalStudyFrameChanged() ;
-  void SignalCloseAllDialogs() ;
-
-protected:
-  void createSMESHAction( const int, const QString&, const QString& = QString(""),
-                          const int = 0, const bool = false );
-  void createPopupItem( const int, const QString&, const QString&,
-                        const QString& = QString::null, const int = -1 );
-  
-  virtual SalomeApp_Operation*      createOperation( const int ) const;
-
-private:
-  void OnEditDelete();
-
-private :
-  static SMESH::SMESH_Gen_var      myComponentSMESH;
-  QDialog*                         myActiveDialogBox;
-  int                              myState;
-  QMap<int,QString>                myRules;
-};
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_AddMeshElementDlg.cxx b/src/SMESHGUI/SMESHGUI_AddMeshElementDlg.cxx
deleted file mode 100644 (file)
index 0915c39..0000000
+++ /dev/null
@@ -1,756 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_AddMeshElementDlg.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_AddMeshElementDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_MeshUtils.h"
-#include "SMESHGUI_IdValidator.h"
-#include "SMESH_ActorUtils.h"
-
-#include "SMDS_Mesh.hxx"
-#include "SMESH_Actor.h"
-
-#include "SUIT_Session.h"
-
-#include "SVTK_Selection.h"
-#include "SVTK_Selector.h"
-#include "SALOME_ListIO.hxx"
-#include "SALOME_ListIteratorOfListIO.hxx"
-
-#include "SalomeApp_Study.h"
-#include "SalomeApp_Application.h"
-
-#include "SVTK_ViewModel.h"
-#include "SVTK_ViewWindow.h"
-
-#include "utilities.h"
-
-// OCCT Includes
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_IndexedMapOfInteger.hxx>
-
-// VTK Includes
-#include <vtkCell.h>
-#include <vtkIdList.h>
-#include <vtkIntArray.h>
-#include <vtkCellArray.h>
-#include <vtkUnsignedCharArray.h>
-#include <vtkUnstructuredGrid.h>
-#include <vtkDataSetMapper.h>
-
-// QT Includes
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qlayout.h>
-#include <qvariant.h>
-#include <qtooltip.h>
-#include <qwhatsthis.h>
-#include <qimage.h>
-#include <qpixmap.h>
-#include <qcheckbox.h>
-#include <qregexp.h>
-
-// STL includes
-#include <list>
-
-using namespace std;
-
-namespace SMESH {
-
-  class TElementSimulation {
-    SalomeApp_Application* myApplication;
-    SUIT_ViewWindow* myViewWindow;
-    SVTK_ViewWindow* myVTKViewWindow;
-
-    SALOME_Actor* myPreviewActor;
-    vtkDataSetMapper* myMapper;
-    vtkUnstructuredGrid* myGrid;
-
-  public:
-    TElementSimulation (SalomeApp_Application* theApplication)
-    {
-      myApplication = theApplication;
-      SUIT_ViewManager* mgr = theApplication->activeViewManager();
-      if (!mgr) return;
-      myViewWindow = mgr->getActiveView();
-      myVTKViewWindow = GetVtkViewWindow(myViewWindow);
-
-      myGrid = vtkUnstructuredGrid::New();
-
-      // Create and display actor
-      myMapper = vtkDataSetMapper::New();
-      myMapper->SetInput(myGrid);
-
-      myPreviewActor = SALOME_Actor::New();
-      myPreviewActor->PickableOff();
-      myPreviewActor->VisibilityOff();
-      myPreviewActor->SetMapper(myMapper);
-
-      float anRGB[3];
-      vtkProperty* aProp = vtkProperty::New();
-      GetColor( "SMESH", "fill_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 170, 255 ) );
-      aProp->SetColor( anRGB[0], anRGB[1], anRGB[2] );
-      myPreviewActor->SetProperty( aProp );
-      aProp->Delete();
-
-      vtkProperty* aBackProp = vtkProperty::New();
-      GetColor( "SMESH", "backface_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 0, 255 ) );
-      aBackProp->SetColor( anRGB[0], anRGB[1], anRGB[2] );
-      myPreviewActor->SetBackfaceProperty( aBackProp );
-      aBackProp->Delete();
-
-      myVTKViewWindow->AddActor(myPreviewActor);
-    }
-
-    typedef std::vector<vtkIdType> TVTKIds;
-    void SetPosition (SMESH_Actor* theActor,
-                      vtkIdType theType,
-                      const TVTKIds& theIds)
-    {
-      vtkUnstructuredGrid *aGrid = theActor->GetUnstructuredGrid();
-      myGrid->SetPoints(aGrid->GetPoints());
-
-      const int* aConn = NULL;
-      switch (theType) {
-      case VTK_TETRA:
-        {
-          static int anIds[] = {0,2,1,3};
-          aConn = anIds;
-          break;
-        }
-      case VTK_PYRAMID:
-        {
-          static int anIds[] = {0,3,2,1,4};
-          aConn = anIds;
-          break;
-        }
-      case VTK_HEXAHEDRON:
-        {
-          static int anIds[] = {0,3,2,1,4,7,6,5};
-          aConn = anIds;
-          break;
-        }
-      }
-
-      myGrid->Reset();
-      vtkIdList *anIds = vtkIdList::New();
-
-      if(aConn)
-       for (int i = 0, iEnd = theIds.size(); i < iEnd; i++)
-         anIds->InsertId(i,theIds[aConn[i]]);
-      else
-       for (int i = 0, iEnd = theIds.size(); i < iEnd; i++)
-         anIds->InsertId(i,theIds[i]);
-
-      myGrid->InsertNextCell(theType,anIds);
-      anIds->Delete();
-
-      myGrid->Modified();
-
-      SetVisibility(true);
-    }
-
-
-    void SetVisibility (bool theVisibility)
-    {
-      myPreviewActor->SetVisibility(theVisibility);
-      RepaintCurrentView();
-    }
-
-
-    ~TElementSimulation()
-    {
-      if (FindVtkViewWindow(myApplication->activeViewManager(), myViewWindow)) {
-       myVTKViewWindow->RemoveActor(myPreviewActor);
-      }
-      myPreviewActor->Delete();
-
-      myMapper->RemoveAllInputs();
-      myMapper->Delete();
-
-      myGrid->Delete();
-    }
-  };
-}
-
-//=================================================================================
-// function : SMESHGUI_AddMeshElementDlg()
-// purpose  : constructor
-//=================================================================================
-SMESHGUI_AddMeshElementDlg::SMESHGUI_AddMeshElementDlg( SMESHGUI* theModule,
-                                                       const char* name,
-                                                        SMDSAbs_ElementType ElementType, int nbNodes,
-                                                        bool modal, WFlags fl)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-                WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
-     mySMESHGUI( theModule ),
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-  SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>
-    (SUIT_Session::session()->activeApplication());
-  myIsPoly = false;
-  mySimulation = new SMESH::TElementSimulation (anApp);
-  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
-
-  // verify nb nodes and type
-  myNbNodes = nbNodes;
-  myElementType = ElementType;
-  switch (ElementType) {
-  case SMDSAbs_Face:
-//     if (myNbNodes != 3 && myNbNodes != 4)
-//       myNbNodes = 3;
-//     break;
-  case SMDSAbs_Volume:
-//     if (myNbNodes != 4 && myNbNodes != 8) //(nbNodes < 4 || nbNodes > 8 || nbNodes == 7)
-//       myNbNodes = 4;
-    break;
-  default:
-    myElementType = SMDSAbs_Edge;
-    myNbNodes = 2;
-  }
-
-  QString elemName;
-  if (myNbNodes == 2)
-    elemName = "EDGE";
-  else if (myNbNodes == 3)
-    elemName = "TRIANGLE";
-  else if (myNbNodes == 4)
-    if (myElementType == SMDSAbs_Face)
-      elemName = "QUADRANGLE";
-    else
-      elemName = "TETRAS";
-  else if (myNbNodes == 8)
-    elemName = "HEXAS";
-  else if (myElementType == SMDSAbs_Face){
-    elemName = "POLYGON";
-    myIsPoly = true;
-  }
-  
-  QString iconName      = tr(QString("ICON_DLG_%1").arg(elemName));
-  QString buttonGrTitle = tr(QString("SMESH_%1").arg(elemName));
-  QString caption       = tr(QString("SMESH_ADD_%1_TITLE").arg(elemName));
-  QString grBoxTitle    = tr(QString("SMESH_ADD_%1").arg(elemName));
-
-  QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", iconName));
-  QPixmap image1 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
-
-  if (!name)
-    setName("SMESHGUI_AddMeshElementDlg");
-  resize(303, 185);
-  setCaption(caption);
-
-  setSizeGripEnabled(TRUE);
-  SMESHGUI_AddMeshElementDlgLayout = new QGridLayout(this);
-  SMESHGUI_AddMeshElementDlgLayout->setSpacing(6);
-  SMESHGUI_AddMeshElementDlgLayout->setMargin(11);
-
-  /***************************************************************/
-  GroupConstructors = new QButtonGroup(this, "GroupConstructors");
-  GroupConstructors->setTitle(buttonGrTitle);
-
-  GroupConstructors->setExclusive(TRUE);
-  GroupConstructors->setColumnLayout(0, Qt::Vertical);
-  GroupConstructors->layout()->setSpacing(0);
-  GroupConstructors->layout()->setMargin(0);
-  GroupConstructorsLayout = new QGridLayout(GroupConstructors->layout());
-  GroupConstructorsLayout->setAlignment(Qt::AlignTop);
-  GroupConstructorsLayout->setSpacing(6);
-  GroupConstructorsLayout->setMargin(11);
-  Constructor1 = new QRadioButton(GroupConstructors, "Constructor1");
-  Constructor1->setText(tr("" ));
-  Constructor1->setPixmap(image0);
-  Constructor1->setChecked(TRUE);
-  Constructor1->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)1, (QSizePolicy::SizeType)0, Constructor1->sizePolicy().hasHeightForWidth()));
-  Constructor1->setMinimumSize(QSize(50, 0));
-  GroupConstructorsLayout->addWidget(Constructor1, 0, 0);
-  QSpacerItem* spacer = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupConstructorsLayout->addItem(spacer, 0, 1);
-  SMESHGUI_AddMeshElementDlgLayout->addWidget(GroupConstructors, 0, 0);
-
-  /***************************************************************/
-  GroupButtons = new QGroupBox(this, "GroupButtons");
-  GroupButtons->setGeometry(QRect(10, 10, 281, 48));
-  GroupButtons->setTitle(tr("" ));
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-  buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
-  buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
-  buttonCancel->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-  buttonApply = new QPushButton(GroupButtons, "buttonApply");
-  buttonApply->setText(tr("SMESH_BUT_APPLY" ));
-  buttonApply->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-  QSpacerItem* spacer_9 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupButtonsLayout->addItem(spacer_9, 0, 2);
-  buttonOk = new QPushButton(GroupButtons, "buttonOk");
-  buttonOk->setText(tr("SMESH_BUT_OK" ));
-  buttonOk->setAutoDefault(TRUE);
-  buttonOk->setDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-  SMESHGUI_AddMeshElementDlgLayout->addWidget(GroupButtons, 2, 0);
-
-  /***************************************************************/
-  GroupC1 = new QGroupBox(this, "GroupC1");
-  GroupC1->setTitle(grBoxTitle);
-
-  GroupC1->setMinimumSize(QSize(0, 0));
-  GroupC1->setFrameShape(QGroupBox::Box);
-  GroupC1->setFrameShadow(QGroupBox::Sunken);
-  GroupC1->setColumnLayout(0, Qt::Vertical);
-  GroupC1->layout()->setSpacing(0);
-  GroupC1->layout()->setMargin(0);
-  GroupC1Layout = new QGridLayout(GroupC1->layout());
-  GroupC1Layout->setAlignment(Qt::AlignTop);
-  GroupC1Layout->setSpacing(6);
-  GroupC1Layout->setMargin(11);
-  TextLabelC1A1 = new QLabel(GroupC1, "TextLabelC1A1");
-  TextLabelC1A1->setText(tr("SMESH_ID_NODES" ));
-  TextLabelC1A1->setMinimumSize(QSize(50, 0));
-  TextLabelC1A1->setFrameShape(QLabel::NoFrame);
-  TextLabelC1A1->setFrameShadow(QLabel::Plain);
-  GroupC1Layout->addWidget(TextLabelC1A1, 0, 0);
-  SelectButtonC1A1 = new QPushButton(GroupC1, "SelectButtonC1A1");
-  SelectButtonC1A1->setText(tr("" ));
-  SelectButtonC1A1->setPixmap(image1);
-  SelectButtonC1A1->setToggleButton(FALSE);
-  GroupC1Layout->addWidget(SelectButtonC1A1, 0, 1);
-  LineEditC1A1 = new QLineEdit(GroupC1, "LineEditC1A1");
-//  LineEditC1A1->setReadOnly(TRUE);
-  if (!myIsPoly)
-    LineEditC1A1->setValidator(new SMESHGUI_IdValidator(this, "validator", myNbNodes));
-  GroupC1Layout->addWidget(LineEditC1A1, 0, 2);
-
-  if (myElementType == SMDSAbs_Face) {
-    Reverse = new QCheckBox(GroupC1, "Reverse");
-    Reverse->setText(tr("SMESH_REVERSE" ));
-    GroupC1Layout->addWidget(Reverse, 1, 0);
-  }
-  else
-    Reverse = 0;
-
-  SMESHGUI_AddMeshElementDlgLayout->addWidget(GroupC1, 1, 0);
-
-  Init(); /* Initialisations */
-}
-
-//=================================================================================
-// function : ~SMESHGUI_AddMeshElementDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_AddMeshElementDlg::~SMESHGUI_AddMeshElementDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-  delete mySimulation;
-}
-
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddMeshElementDlg::Init()
-{
-  GroupC1->show();
-  Constructor1->setChecked(TRUE);
-  myEditCurrentArgument = LineEditC1A1;
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  myNbOkNodes = 0;
-  myActor = 0;
-
-  /* signals and slots connections */
-  connect(buttonOk, SIGNAL(clicked()),     SLOT(ClickOnOk()));
-  connect(buttonCancel, SIGNAL(clicked()), SLOT(ClickOnCancel()));
-  connect(buttonApply, SIGNAL(clicked()),  SLOT(ClickOnApply()));
-
-  connect(SelectButtonC1A1, SIGNAL(clicked()), SLOT(SetEditCurrentArgument()));
-  connect(LineEditC1A1, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
-  connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), SLOT(DeactivateActiveDialog()));
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(SelectionIntoArgument()));
-  /* to close dialog if study frame change */
-  connect(mySMESHGUI, SIGNAL (SignalStudyFrameChanged()), SLOT(ClickOnCancel()));
-
-  if (Reverse)
-    connect(Reverse, SIGNAL(stateChanged(int)), SLOT(CheckBox(int)));
-
-  // Move widget on the botton right corner of main widget
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show(); // displays Dialog
-
-  // set selection mode
-  SMESH::SetPointRepresentation(true);
-
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode( NodeSelection );
-
-  myBusy = false;
-
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddMeshElementDlg::ClickOnApply()
-{
-  if (myNbOkNodes && !mySMESHGUI->isActiveStudyLocked()) {
-    myBusy = true;
-    SMESH::long_array_var anArrayOfIdeces = new SMESH::long_array;
-    anArrayOfIdeces->length(myNbNodes);
-    bool reverse = (Reverse && Reverse->isChecked());
-    QStringList aListId = QStringList::split(" ", myEditCurrentArgument->text(), false);
-    for (int i = 0; i < aListId.count(); i++)
-      if (reverse)
-        anArrayOfIdeces[i] = aListId[ myNbNodes - i - 1 ].toInt();
-      else
-        anArrayOfIdeces[i] = aListId[ i ].toInt();
-
-    SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
-    switch (myElementType) {
-    case SMDSAbs_Edge:
-      aMeshEditor->AddEdge(anArrayOfIdeces.inout()); break;
-    case SMDSAbs_Face:
-      aMeshEditor->AddFace(anArrayOfIdeces.inout()); break;
-    case SMDSAbs_Volume:
-      aMeshEditor->AddVolume(anArrayOfIdeces.inout()); break;
-    default:;
-    }
-
-    SALOME_ListIO aList; aList.Append( myActor->getIO() );
-    mySelectionMgr->setSelectedObjects( aList, false );
-
-    SMESH::UpdateView();
-    mySimulation->SetVisibility(false);
-
-    buttonOk->setEnabled(false);
-    buttonApply->setEnabled(false);
-
-    myEditCurrentArgument->setText("");
-
-    myBusy = false;
-  }
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddMeshElementDlg::ClickOnOk()
-{
-  this->ClickOnApply();
-  this->ClickOnCancel();
-  return;
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddMeshElementDlg::ClickOnCancel()
-{
-  mySelectionMgr->clearSelected();
-  mySimulation->SetVisibility(false);
-  SMESH::SetPointRepresentation(false);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode( ActorSelection );
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySMESHGUI->ResetState();
-  reject();
-  return;
-}
-
-//=================================================================================
-// function : onTextChange()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddMeshElementDlg::onTextChange (const QString& theNewText)
-{
-  if (myBusy) return;
-  myBusy = true;
-
-  myNbOkNodes = 0;
-
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-
-  mySimulation->SetVisibility(false);
-
-  // hilight entered nodes
-  SMDS_Mesh* aMesh = 0;
-  if (myActor)
-    aMesh = myActor->GetObject()->GetMesh();
-
-  if (aMesh) {
-    TColStd_MapOfInteger newIndices;
-    
-    QStringList aListId = QStringList::split(" ", theNewText, false);
-    bool allOk = true;
-    for (int i = 0; i < aListId.count(); i++) {
-      if( const SMDS_MeshNode * n = aMesh->FindNode( aListId[ i ].toInt() ) )
-      {
-       newIndices.Add( n->GetID() );
-       myNbOkNodes++;
-      }
-      else
-       allOk = false;  
-    }
-    
-    mySelector->AddOrRemoveIndex( myActor->getIO(), newIndices, false );
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->highlight( myActor->getIO(), true, true );
-    
-    myNbOkNodes = ( allOk && myNbNodes == aListId.count() );
-    
-    if (myIsPoly)
-      {
-       if ( !allOk || myElementType != SMDSAbs_Face || aListId.count() < 3 )
-         myNbOkNodes = 0;
-       else
-         myNbOkNodes = aListId.count();
-      }
-  }
-  
-  if(myNbOkNodes) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-    displaySimulation();
-  }
-  
-  myBusy = false;
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection has changed
-//=================================================================================
-void SMESHGUI_AddMeshElementDlg::SelectionIntoArgument()
-{
-  if (myBusy) return;
-
-  // clear
-  myNbOkNodes = 0;
-  myActor = 0;
-
-  myBusy = true;
-  myEditCurrentArgument->setText("");
-  myBusy = false;
-
-  if (!GroupButtons->isEnabled()) // inactive
-    return;
-
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-
-  mySimulation->SetVisibility(false);
-//  SMESH::SetPointRepresentation(true);
-
-  // get selected mesh
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
-
-  if (aList.Extent() != 1)
-    return;
-
-  Handle(SALOME_InteractiveObject) anIO = aList.First();
-  myMesh = SMESH::GetMeshByIO(anIO);
-  if (myMesh->_is_nil())
-    return;
-
-  myActor = SMESH::FindActorByEntry(anIO->getEntry());
-  if (!myActor)
-    return;
-
-  // get selected nodes
-  QString aString = "";
-  int nbNodes = SMESH::GetNameOfSelectedNodes(mySelector,myActor->getIO(),aString);
-  myBusy = true;
-  myEditCurrentArgument->setText(aString);
-  myBusy = false;
-  if (myIsPoly && myElementType == SMDSAbs_Face && nbNodes >= 3 ) {
-    myNbNodes = nbNodes;
-  } else if (myNbNodes != nbNodes) {
-    return;
-  }
-
-  // OK
-  myNbOkNodes = nbNodes;
-
-  buttonOk->setEnabled(true);
-  buttonApply->setEnabled(true);
-
-  displaySimulation();
-}
-
-//=================================================================================
-// function : displaySimulation()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddMeshElementDlg::displaySimulation()
-{
-  if (myNbOkNodes && GroupButtons->isEnabled()) {
-    SMESH::TElementSimulation::TVTKIds anIds;
-    QStringList aListId = QStringList::split(" ", myEditCurrentArgument->text(), false);
-    for (int i = 0; i < aListId.count(); i++)
-      anIds.push_back(myActor->GetObject()->GetNodeVTKId(aListId[ i ].toInt()));
-
-    if (Reverse && Reverse->isChecked())
-      reverse(anIds.begin(),anIds.end());
-
-    vtkIdType aType = 0;
-    if (myIsPoly)
-      switch ( myElementType ) {
-      case SMDSAbs_Face  : aType = VTK_POLYGON; break;
-      default: return;
-      }
-    else {
-      switch (myNbNodes) {
-      case 2: aType = VTK_LINE; break;
-      case 3: aType = VTK_TRIANGLE; break;
-      case 4: aType = myElementType == SMDSAbs_Face ? VTK_QUAD : VTK_TETRA; break;
-      case 8: aType = VTK_HEXAHEDRON; break;
-      default: return;
-      }
-    }
-
-    mySimulation->SetPosition(myActor,aType,anIds);
-    SMESH::UpdateView();
-  }
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddMeshElementDlg::SetEditCurrentArgument()
-{
-  QPushButton* send = (QPushButton*)sender();
-  if (send == SelectButtonC1A1) {
-    LineEditC1A1->setFocus();
-    myEditCurrentArgument = LineEditC1A1;
-  }
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddMeshElementDlg::DeactivateActiveDialog()
-{
-  if (GroupConstructors->isEnabled()) {
-    GroupConstructors->setEnabled(false);
-    GroupC1->setEnabled(false);
-    GroupButtons->setEnabled(false);
-    mySimulation->SetVisibility(false);
-    mySMESHGUI->ResetState();
-    mySMESHGUI->SetActiveDialogBox(0);
-  }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddMeshElementDlg::ActivateThisDialog()
-{
-  /* Emit a signal to deactivate the active dialog */
-  mySMESHGUI->EmitSignalDeactivateDialog();
-
-  GroupConstructors->setEnabled(true);
-  GroupC1->setEnabled(true);
-  GroupButtons->setEnabled(true);
-
-  SMESH::SetPointRepresentation(true);
-
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode( NodeSelection );
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddMeshElementDlg::enterEvent (QEvent*)
-{
-  if (GroupConstructors->isEnabled())
-    return;
-  ActivateThisDialog();
-  return;
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddMeshElementDlg::closeEvent (QCloseEvent*)
-{
-  /* same than click on cancel button */
-  this->ClickOnCancel();
-  return;
-}
-
-//=================================================================================
-// function : hideEvent()
-// purpose  : caused by ESC key
-//=================================================================================
-void SMESHGUI_AddMeshElementDlg::hideEvent (QHideEvent*)
-{
-  if (!isMinimized())
-    ClickOnCancel();
-}
-
-//=================================================================================
-// function : CheckBox()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddMeshElementDlg::CheckBox (int state)
-{
-  if (!myNbOkNodes)
-    return;
-
-  if (state >= 0) {
-    mySimulation->SetVisibility(false);
-    displaySimulation();
-  }
-}
diff --git a/src/SMESHGUI/SMESHGUI_AddMeshElementDlg.h b/src/SMESHGUI/SMESHGUI_AddMeshElementDlg.h
deleted file mode 100644 (file)
index e6149a3..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_AddMeshElementDlg.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef DIALOGBOX_ADD_FACE_H
-#define DIALOGBOX_ADD_FACE_H
-
-#include "SalomeApp_SelectionMgr.h"
-
-#include "SMDSAbs_ElementType.hxx"
-
-
-// QT Includes
-#include <qvariant.h>
-#include <qdialog.h>
-
-class QVBoxLayout; 
-class QHBoxLayout; 
-class QGridLayout; 
-class QButtonGroup;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-class QCheckBox;
-class SMESHGUI;
-class SMESH_Actor;
-class SMDS_Mesh;
-class SVTK_ViewWindow;
-class SVTK_Selector;
-
-namespace SMESH{
-  struct TElementSimulation;
-}
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-//=================================================================================
-// class    : SMESHGUI_AddMeshElementDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_AddMeshElementDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_AddMeshElementDlg( SMESHGUI*,
-                               const char* = 0, 
-                                SMDSAbs_ElementType ElementType = SMDSAbs_Edge,
-                               int nbNodes = 2, bool modal = FALSE, WFlags fl = 0 );
-    ~SMESHGUI_AddMeshElementDlg();
-
-private:
-    void Init ();
-    void closeEvent (QCloseEvent*);
-    void hideEvent (QHideEvent*);                 /* ESC key */
-    void enterEvent (QEvent*);                    /* mouse enter the QWidget */
-    void displaySimulation();
-
-    SMESHGUI*                   mySMESHGUI;              /* Current SMESHGUI object */
-    SalomeApp_SelectionMgr*     mySelectionMgr;          /* User shape selection */
-    int                         myNbOkNodes;               /* to check when arguments is defined */
-    bool                        myBusy;
-    SVTK_Selector*              mySelector;
-
-    QLineEdit*                  myEditCurrentArgument;   /* Current  LineEdit */
-
-    int                         myElementType;
-    int                         myNbNodes;
-    bool                        myIsPoly;
-
-    SMESH::SMESH_Mesh_var       myMesh;
-    SMESH_Actor*                myActor;
-    SMESH::TElementSimulation*  mySimulation;
-    
-    QButtonGroup* GroupConstructors;
-    QRadioButton* Constructor1;
-    QGroupBox   * GroupButtons;
-    QPushButton * buttonOk;
-    QPushButton * buttonCancel;
-    QPushButton * buttonApply;
-    QGroupBox   * GroupC1;
-    QLabel      * TextLabelC1A1;
-    QPushButton * SelectButtonC1A1;
-    QLineEdit   * LineEditC1A1;
-
-    QCheckBox   * Reverse;
-
-private slots:
-
-    void ClickOnOk();
-    void ClickOnCancel();
-    void ClickOnApply();
-    void SetEditCurrentArgument() ;
-    void SelectionIntoArgument() ;
-    void DeactivateActiveDialog() ;
-    void ActivateThisDialog() ;
-    void CheckBox( int );
-    void onTextChange(const QString&);
-
-protected:
-    QGridLayout* SMESHGUI_AddMeshElementDlgLayout;
-    QGridLayout* GroupConstructorsLayout;
-    QGridLayout* GroupButtonsLayout;
-    QGridLayout* GroupC1Layout;
-};
-
-#endif // DIALOGBOX_ADD_FACE_H
diff --git a/src/SMESHGUI/SMESHGUI_AddSubMeshDlg.cxx b/src/SMESHGUI/SMESHGUI_AddSubMeshDlg.cxx
deleted file mode 100644 (file)
index 79cbb32..0000000
+++ /dev/null
@@ -1,535 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_AddSubMeshDlg.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_AddSubMeshDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_GEOMGenUtils.h"
-#include "SMESHGUI_HypothesesUtils.h"
-
-#include "SMESH_TypeFilter.hxx"
-#include "SMESH_NumberFilter.hxx"
-
-#include "GEOMBase.h"
-
-#include "SUIT_Session.h"
-#include "SUIT_MessageBox.h"
-#include "SUIT_OverrideCursor.h"
-#include "SUIT_Operation.h"
-#include "SUIT_Desktop.h"
-
-#include "SALOMEDSClient_Study.hxx"
-#include "SALOMEDS_SObject.hxx"
-#include "SALOME_ListIO.hxx"
-#include "SALOME_ListIteratorOfListIO.hxx"
-#include "SalomeApp_Tools.h"
-
-#include "SVTK_ViewModel.h"
-
-#include "utilities.h"
-
-// QT Includes
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qlayout.h>
-#include <qpixmap.h>
-
-using namespace std;
-
-namespace SMESH {
-  SMESH::SMESH_subMesh_var AddSubMesh (SMESH::SMESH_Mesh_ptr theMesh,
-                                       GEOM::GEOM_Object_ptr theShapeObject,
-                                       const char* theMeshName)
-  {
-    SMESH::SMESH_subMesh_var aSubMesh;
-    try {
-      if (!theMesh->_is_nil() && !theShapeObject->_is_nil())
-       aSubMesh = theMesh->GetSubMesh(theShapeObject, theMeshName);
-    } catch (const SALOME::SALOME_Exception& S_ex) {
-      SalomeApp_Tools::QtCatchCorbaException(S_ex);
-    }
-    return aSubMesh._retn();
-  }
-}
-
-//=================================================================================
-// function : SMESHGUI_AddSubMeshDlg()
-// purpose  : Constructs a SMESHGUI_AddSubMeshDlg which is a child of 'parent', with the
-//            name 'name' and widget flags set to 'f'.
-//            The dialog will by default be modeless, unless you set 'modal' to
-//            TRUE to construct a modal dialog.
-//=================================================================================
-SMESHGUI_AddSubMeshDlg::SMESHGUI_AddSubMeshDlg( SMESHGUI* theModule, const char* name,
-                                                bool modal, WFlags fl)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-                WStyle_Title | WStyle_SysMenu | WDestructiveClose),
-     mySMESHGUI( theModule ),
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-    QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
-    if (!name)
-      setName("SMESHGUI_AddSubMeshDlg");
-    setCaption(tr("SMESH_ADD_SUBMESH"));
-    setSizeGripEnabled(TRUE);
-    QGridLayout* SMESHGUI_AddSubMeshDlgLayout = new QGridLayout(this);
-    SMESHGUI_AddSubMeshDlgLayout->setSpacing(6);
-    SMESHGUI_AddSubMeshDlgLayout->setMargin(11);
-
-    /***************************************************************/
-    GroupC1 = new QGroupBox (tr("SMESH_ARGUMENTS"), this, "GroupC1");
-    GroupC1->setColumnLayout(0, Qt::Vertical);
-    GroupC1->layout()->setSpacing(0);
-    GroupC1->layout()->setMargin(0);
-    QGridLayout* GroupC1Layout = new QGridLayout (GroupC1->layout());
-    GroupC1Layout->setAlignment(Qt::AlignTop);
-    GroupC1Layout->setSpacing(6);
-    GroupC1Layout->setMargin(11);
-
-    TextLabel_NameMesh = new QLabel (tr("SMESH_NAME"), GroupC1, "TextLabel_NameMesh");
-    GroupC1Layout->addWidget(TextLabel_NameMesh, 0, 0);
-    LineEdit_NameMesh = new QLineEdit (GroupC1, "LineEdit_NameMesh");
-    GroupC1Layout->addWidget(LineEdit_NameMesh, 0, 2);
-
-    TextLabelC1A1 = new QLabel (tr("SMESH_OBJECT_MESH"), GroupC1, "TextLabelC1A1");
-    GroupC1Layout->addWidget(TextLabelC1A1, 1, 0);
-    SelectButtonC1A1 = new QPushButton (GroupC1, "SelectButtonC1A1");
-    SelectButtonC1A1->setPixmap(image0);
-    SelectButtonC1A1->setToggleButton(FALSE);
-    GroupC1Layout->addWidget(SelectButtonC1A1, 1, 1);
-    LineEditC1A1 = new QLineEdit (GroupC1, "LineEditC1A1");
-    LineEditC1A1->setReadOnly(true);
-    GroupC1Layout->addWidget(LineEditC1A1, 1, 2);
-
-    TextLabelC1A2 = new QLabel(tr("SMESH_OBJECT_GEOM"), GroupC1, "TextLabelC1A2");
-    GroupC1Layout->addWidget(TextLabelC1A2, 2, 0);
-    SelectButtonC1A2 = new QPushButton(GroupC1, "SelectButtonC1A2");
-    SelectButtonC1A2->setPixmap(image0);
-    SelectButtonC1A2->setToggleButton(FALSE);
-    GroupC1Layout->addWidget(SelectButtonC1A2, 2, 1);
-    LineEditC1A2 = new QLineEdit(GroupC1, "LineEditC1A2");
-    LineEditC1A2->setReadOnly(true);
-    GroupC1Layout->addWidget(LineEditC1A2, 2, 2);
-
-    TextLabelC1A1Hyp = new QLabel(tr("SMESH_OBJECT_HYPOTHESIS"), GroupC1, "TextLabelC1A1Hyp");
-    GroupC1Layout->addWidget(TextLabelC1A1Hyp, 3, 0);
-    SelectButtonC1A1Hyp = new QPushButton(GroupC1, "SelectButtonC1A1Hyp");
-    SelectButtonC1A1Hyp->setPixmap(image0);
-    GroupC1Layout->addWidget(SelectButtonC1A1Hyp, 3, 1);
-    LineEditC1A1Hyp = new QLineEdit(GroupC1, "LineEditC1A1Hyp");
-    LineEditC1A1Hyp->setReadOnly(true);
-    GroupC1Layout->addWidget(LineEditC1A1Hyp, 3, 2);
-
-    TextLabelC1A1Algo = new QLabel(tr("SMESH_OBJECT_ALGORITHM"), GroupC1, "TextLabelC1A1Algo");
-    GroupC1Layout->addWidget(TextLabelC1A1Algo, 4, 0);
-    SelectButtonC1A1Algo = new QPushButton(GroupC1, "SelectButtonC1A1Algo");
-    SelectButtonC1A1Algo->setPixmap(image0);
-    GroupC1Layout->addWidget(SelectButtonC1A1Algo, 4, 1);
-    LineEditC1A1Algo = new QLineEdit(GroupC1, "LineEditC1A1Algo");
-    LineEditC1A1Algo->setReadOnly(true);
-    GroupC1Layout->addWidget(LineEditC1A1Algo, 4, 2);
-
-    SMESHGUI_AddSubMeshDlgLayout->addWidget(GroupC1, 1, 0);
-
-    /***************************************************************/
-    GroupButtons = new QGroupBox(this, "GroupButtons");
-    GroupButtons->setColumnLayout(0, Qt::Vertical);
-    GroupButtons->layout()->setSpacing(0);
-    GroupButtons->layout()->setMargin(0);
-    QGridLayout* GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-    GroupButtonsLayout->setAlignment(Qt::AlignTop);
-    GroupButtonsLayout->setSpacing(6);
-    GroupButtonsLayout->setMargin(11);
-
-    buttonOk = new QPushButton(tr("SMESH_BUT_OK"), GroupButtons, "buttonOk");
-    buttonOk->setAutoDefault(TRUE);
-    buttonOk->setDefault(TRUE);
-    GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-
-    buttonApply = new QPushButton(tr("SMESH_BUT_APPLY"), GroupButtons, "buttonApply");
-    buttonApply->setAutoDefault(TRUE);
-    GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-
-    GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 2);
-
-    buttonCancel = new QPushButton(tr("SMESH_BUT_CLOSE"), GroupButtons, "buttonCancel");
-    buttonCancel->setAutoDefault(TRUE);
-    GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-
-    SMESHGUI_AddSubMeshDlgLayout->addWidget(GroupButtons, 2, 0);
-
-    /***************************************************************/
-    Init();
-}
-
-//=================================================================================
-// function : ~SMESHGUI_AddSubMeshDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_AddSubMeshDlg::~SMESHGUI_AddSubMeshDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddSubMeshDlg::Init ()
-{
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  //myGeomFilter       = new SALOME_TypeFilter("GEOM");
-  TColStd_MapOfInteger allTypesMap;
-  for (int i = 0; i < 10; i++)
-    allTypesMap.Add(i);
-  myGeomFilter       = new SMESH_NumberFilter ("GEOM", TopAbs_SHAPE, 0, allTypesMap);
-  myMeshFilter       = new SMESH_TypeFilter (MESH);
-  myAlgorithmFilter  = new SMESH_TypeFilter (ALGORITHM);
-  myHypothesisFilter = new SMESH_TypeFilter (HYPOTHESIS);
-
-  /* signals and slots connections */
-  connect(buttonOk,     SIGNAL(clicked()), this, SLOT(ClickOnOk()));
-  connect(buttonApply,  SIGNAL(clicked()), this, SLOT(ClickOnApply()));
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-
-  connect(SelectButtonC1A1,     SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(SelectButtonC1A2,     SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(SelectButtonC1A1Hyp,  SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(SelectButtonC1A1Algo, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
-
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()),  this, SLOT(SelectionIntoArgument()));
-  connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()),        this, SLOT(ClickOnCancel()));
-
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show();
-
-  LineEdit_NameMesh->setText(tr("SMESH_SUBMESH"));
-  LineEdit_NameMesh->setFocus();
-  myEditCurrentArgument = LineEditC1A1;
-  mySelectionMgr->clearFilters();
-  mySelectionMgr->installFilter(myMeshFilter);
-
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddSubMeshDlg::ClickOnOk()
-{
-  if (this->ClickOnApply())
-    this->ClickOnCancel();
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-bool SMESHGUI_AddSubMeshDlg::ClickOnApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return false;
-
-  QString myNameSubMesh = LineEdit_NameMesh->text().stripWhiteSpace();
-  if (myNameSubMesh.isEmpty()) {
-    SUIT_MessageBox::warn1(this, tr("SMESH_WRN_WARNING"),
-                           tr("SMESH_WRN_EMPTY_NAME"), tr("SMESH_BUT_OK"));
-    return false;
-  }
-
-  if (myMesh->_is_nil() || myGeomShape->_is_nil() ||
-      (!HypoList.count() && !AlgoList.count()))
-    return false;
-
-  _PTR(SObject) aMeshSO = SMESH::FindSObject(myMesh);
-  GEOM::GEOM_Object_var myMainShape = SMESH::GetShapeOnMeshOrSubMesh(aMeshSO);
-  if (myMainShape->_is_nil())
-    return false;
-
-  SUIT_OverrideCursor wc;
-
-  SUIT_Operation* op =
-    new SUIT_Operation (SUIT_Session::session()->activeApplication());
-
-  // start transaction
-  op->start();
-
-  // create submesh
-  SMESH::SMESH_subMesh_var aSubMesh = SMESH::AddSubMesh(myMesh, myGeomShape, myNameSubMesh);
-  int nbSuccess = 0;
-
-  if (!aSubMesh->_is_nil()) {
-    // assign hypotheses
-    int nbAlgo = AlgoList.count();
-    int nbHyps = HypoList.count() + nbAlgo;
-    for (int i = 0; i < nbHyps; i++) {
-      _PTR(SObject) aHypSOClient =
-        SMESH::GetActiveStudyDocument()->FindObjectID
-          (i < nbAlgo ? AlgoList[i].latin1() : HypoList[i-nbAlgo].latin1());
-      if (aHypSOClient) {
-       CORBA::Object_var anObject = _CAST(SObject,aHypSOClient)->GetObject();
-       if (!CORBA::is_nil(anObject)) {
-         SMESH::SMESH_Hypothesis_var aHyp = SMESH::SMESH_Hypothesis::_narrow(anObject);
-         if (!aHyp->_is_nil())
-           if (SMESH::AddHypothesisOnSubMesh(aSubMesh, aHyp))
-              nbSuccess++;
-       } else {
-          SCRUTE(CORBA::is_nil(anObject));
-        }
-      } else {
-        SCRUTE(!aHypSOClient);
-      }
-    }
-  } else {
-    SCRUTE(aSubMesh->_is_nil());
-  }
-
-  // commit transaction
-  op->commit();
-  mySMESHGUI->updateObjBrowser();
-  return (nbSuccess > 0);
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddSubMeshDlg::ClickOnCancel()
-{
-  close();
-}
-
-//=================================================================================
-// function : IsFatherOf()
-// purpose  :
-//=================================================================================
-static bool IsFatherOf (_PTR(SObject) SO, _PTR(SObject) fatherSO)
-{
-  if (SO && fatherSO) {
-    _PTR(SObject) aSO = SO->GetFather();
-    //while (strlen(aSO->GetID()) >= strlen(fatherSO->GetID())) {
-    while (aSO->GetID().length() >= fatherSO->GetID().length()) {
-      //if (QString(aSO->GetID()) == QString(fatherSO->GetID()))
-      if (aSO->GetID() == fatherSO->GetID())
-       return true;
-      aSO = aSO->GetFather();
-    }
-  }
-  return false;
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_AddSubMeshDlg::SelectionIntoArgument()
-{
-  QString aString = "";
-
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList, SVTK_Viewer::Type());
-  int nbSel = SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
-
-  if (myEditCurrentArgument == LineEditC1A1) {
-    // mesh
-    if (nbSel != 1) {
-      myMesh = SMESH::SMESH_Mesh::_nil();
-      aString = "";
-    } else {
-      Handle(SALOME_InteractiveObject) IO = aList.First();
-      myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO);
-      if (myMesh->_is_nil()) {
-       aString = "";
-      }
-    }
-    myGeomShape = GEOM::GEOM_Object::_nil();
-    LineEditC1A2->setText("");
-
-  } else if (myEditCurrentArgument == LineEditC1A2) {
-    // geom shape
-    if (nbSel != 1) {
-      myGeomShape = GEOM::GEOM_Object::_nil();
-      aString = "";
-    } else {
-      Handle(SALOME_InteractiveObject) IO = aList.First();
-      myGeomShape = SMESH::IObjectToInterface<GEOM::GEOM_Object>(IO);
-      if (myGeomShape->_is_nil() || !GEOMBase::IsShape(myGeomShape)) {
-        myGeomShape = GEOM::GEOM_Object::_nil();
-        aString = "";
-      }
-      if (!myMesh->_is_nil()) {
-       _PTR(SObject) aMeshSO = SMESH::FindSObject(myMesh);
-       GEOM::GEOM_Object_var aMainGeomShape = SMESH::GetShapeOnMeshOrSubMesh(aMeshSO);
-       _PTR(SObject) aMainGeomShapeSO = SMESH::FindSObject(aMainGeomShape);
-       if (!aMainGeomShapeSO ||
-            !IsFatherOf(SMESH::GetActiveStudyDocument()->FindObjectID
-                        (IO->getEntry()), aMainGeomShapeSO)) {
-         myGeomShape = GEOM::GEOM_Object::_nil();
-         aString = "";
-       }
-      }
-    }
-  } else if (myEditCurrentArgument == LineEditC1A1Hyp) {
-    // hypotheses
-    HypoList.clear();
-    if (nbSel >= 1) {
-      SALOME_ListIteratorOfListIO Itinit (aList);
-      for (; Itinit.More(); Itinit.Next()) {
-       HypoList.append(Itinit.Value()->getEntry());
-      }
-      if (nbSel > 1)
-       aString = tr("%1 Hypothesis").arg(nbSel);
-    } else {
-      aString = "";
-    }
-  } else if (myEditCurrentArgument == LineEditC1A1Algo) {
-    // algorithms
-    AlgoList.clear();
-    if (nbSel >= 1) {
-      SALOME_ListIteratorOfListIO Itinit (aList);
-      for (; Itinit.More(); Itinit.Next()) {
-       AlgoList.append(Itinit.Value()->getEntry());
-      }
-      if (nbSel > 1)
-       aString = tr("%1 Algorithms").arg(nbSel);
-    } else {
-      aString = "";
-    }
-  } else {
-  }
-
-  myEditCurrentArgument->setText(aString);
-  myEditCurrentArgument->setCursorPosition( 0 );
-
-  UpdateControlState();
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddSubMeshDlg::SetEditCurrentArgument()
-{
-  QPushButton* send = (QPushButton*)sender();
-  if(send == SelectButtonC1A1) {
-    LineEditC1A1->setFocus();
-    mySelectionMgr->clearFilters();
-    mySelectionMgr->installFilter(myMeshFilter);
-    myEditCurrentArgument = LineEditC1A1;
-  } else if (send == SelectButtonC1A2) {
-    LineEditC1A2->setFocus();
-    mySelectionMgr->clearFilters();
-    mySelectionMgr->installFilter(myGeomFilter);
-    myEditCurrentArgument = LineEditC1A2;
-  } else if(send == SelectButtonC1A1Hyp) {
-    LineEditC1A1Hyp->setFocus();
-    mySelectionMgr->clearFilters();
-    mySelectionMgr->installFilter(myHypothesisFilter);
-    myEditCurrentArgument = LineEditC1A1Hyp;
-  } else if(send == SelectButtonC1A1Algo) {
-    LineEditC1A1Algo->setFocus();
-    mySelectionMgr->clearFilters();
-    mySelectionMgr->installFilter(myAlgorithmFilter);
-    myEditCurrentArgument = LineEditC1A1Algo;
-  }
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddSubMeshDlg::DeactivateActiveDialog()
-{
-  if (GroupC1->isEnabled()) {
-    disconnect(mySelectionMgr, 0, this, 0);
-    GroupC1->setEnabled(false);
-    GroupButtons->setEnabled(false);
-  }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddSubMeshDlg::ActivateThisDialog()
-{
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupC1->setEnabled(true);
-  GroupButtons->setEnabled(true);
-  connect (mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddSubMeshDlg::enterEvent (QEvent*)
-{
-  if (!GroupC1->isEnabled())
-    ActivateThisDialog();
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddSubMeshDlg::closeEvent (QCloseEvent* e)
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySMESHGUI->ResetState();
-  mySelectionMgr->clearFilters();
-  QDialog::closeEvent(e);
-}
-
-//=================================================================================
-// function : UpdateControlState()
-// purpose  :
-//=================================================================================
-void SMESHGUI_AddSubMeshDlg::UpdateControlState()
-{
-  bool isEnabled = (!myMesh->_is_nil() &&
-                    !myGeomShape->_is_nil() &&
-                    (HypoList.count() || AlgoList.count()));
-  bool isImportedMesh = false;
-  if (!myMesh->_is_nil()) {
-    _PTR(SObject) aMeshSO = SMESH::FindSObject(myMesh);
-    GEOM::GEOM_Object_var myGeomShape = SMESH::GetShapeOnMeshOrSubMesh(aMeshSO);
-    isImportedMesh = myGeomShape->_is_nil();
-  }
-
-  buttonOk   ->setEnabled(isEnabled && !isImportedMesh);
-  buttonApply->setEnabled(isEnabled && !isImportedMesh);
-}
diff --git a/src/SMESHGUI/SMESHGUI_AddSubMeshDlg.h b/src/SMESHGUI/SMESHGUI_AddSubMeshDlg.h
deleted file mode 100644 (file)
index 20e1976..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_AddSubMeshDlg.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef DIALOGBOX_ADD_SUBMESH_H
-#define DIALOGBOX_ADD_SUBMESH_H
-
-//#include "SMESH_TypeFilter.hxx"
-
-#include "SUIT_SelectionFilter.h"
-#include "SalomeApp_SelectionMgr.h"
-
-// QT Includes
-#include <qdialog.h>
-#include <qstringlist.h>
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class SMESHGUI;
-
-//=================================================================================
-// class    : SMESHGUI_AddSubMeshDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_AddSubMeshDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_AddSubMeshDlg( SMESHGUI*,
-                           const char* name = 0,
-                           bool modal = FALSE,
-                           WFlags fl = 0);
-    ~SMESHGUI_AddSubMeshDlg();
-
-protected:
-    void closeEvent (QCloseEvent* e);
-    void enterEvent (QEvent *) ;
-
-private:
-    void Init ();
-
-    void UpdateControlState();
-
-private:
-    SMESHGUI*               mySMESHGUI;
-    SalomeApp_SelectionMgr* mySelectionMgr;
-
-    SMESH::SMESH_Mesh_var   myMesh;
-    GEOM::GEOM_Object_var   myGeomShape;
-    QLineEdit*              myEditCurrentArgument; 
-
-    //Handle(SALOME_TypeFilter)     myMeshFilter;
-    //Handle(SMESH_TypeFilter)      myMeshFilter;
-    //Handle(SMESH_TypeFilter)      myHypothesisFilter;
-    //Handle(SMESH_TypeFilter)      myAlgorithmFilter;
-    SUIT_SelectionFilter*   myGeomFilter;
-    SUIT_SelectionFilter*   myMeshFilter;
-    SUIT_SelectionFilter*   myHypothesisFilter;
-    SUIT_SelectionFilter*   myAlgorithmFilter;
-
-    QStringList             HypoList;
-    QStringList             AlgoList;
-
-    QGroupBox*    GroupButtons;
-    QPushButton*  buttonOk;
-    QPushButton*  buttonApply;
-    QPushButton*  buttonCancel;
-
-    QGroupBox*    GroupC1;
-    QLabel*       TextLabel_NameMesh;
-    QLineEdit*    LineEdit_NameMesh;
-    QLabel*       TextLabelC1A1;
-    QPushButton*  SelectButtonC1A1;
-    QLineEdit*    LineEditC1A1;
-    QLabel*       TextLabelC1A2;
-    QPushButton*  SelectButtonC1A2;
-    QLineEdit*    LineEditC1A2;
-
-    QLabel*       TextLabelC1A1Hyp;
-    QPushButton*  SelectButtonC1A1Hyp;
-    QLineEdit*    LineEditC1A1Hyp;
-
-    QLabel*       TextLabelC1A1Algo;
-    QPushButton*  SelectButtonC1A1Algo;
-    QLineEdit*    LineEditC1A1Algo;
-
-private slots:
-    void ClickOnOk();
-    bool ClickOnApply();
-    void ClickOnCancel();
-    void SetEditCurrentArgument();
-    void SelectionIntoArgument();
-    void DeactivateActiveDialog();
-    void ActivateThisDialog();
-};
-
-#endif // DIALOGBOX_ADD_SUBMESH_H
diff --git a/src/SMESHGUI/SMESHGUI_ClippingDlg.cxx b/src/SMESHGUI/SMESHGUI_ClippingDlg.cxx
deleted file mode 100644 (file)
index bdc7b83..0000000
+++ /dev/null
@@ -1,745 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_ClippingDlg.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_ClippingDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-
-#include "SMESH_Actor.h"
-#include "SMESH_ActorUtils.h"
-
-#include "SUIT_Session.h"
-#include "SUIT_OverrideCursor.h"
-
-#include "SALOME_ListIO.hxx"
-#include "SALOME_InteractiveObject.hxx"
-#include "SALOME_ListIteratorOfListIO.hxx"
-
-#include "SalomeApp_Application.h"
-#include "SalomeApp_SelectionMgr.h"
-
-#include "SVTK_Selector.h"
-#include "SVTK_ViewWindow.h"
-
-// QT Includes
-#include <qlabel.h>
-#include <qpushbutton.h>
-#include <qcombobox.h>
-#include <qcheckbox.h>
-#include <qlayout.h>
-#include <qgroupbox.h>
-
-// VTK Includes
-#include <vtkMath.h>
-#include <vtkCamera.h>
-#include <vtkRenderer.h>
-#include <vtkImplicitBoolean.h>
-#include <vtkImplicitFunctionCollection.h>
-#include <vtkObjectFactory.h>
-
-#include <vtkDataSet.h>
-#include <vtkDataSetMapper.h>
-#include <vtkPlaneSource.h>
-#include <vtkPolyData.h>
-#include <vtkRenderer.h>
-
-// STL includes
-#include <algorithm>
-
-using namespace std;
-
-
-class OrientedPlane: public vtkPlane
-{
-  SVTK_ViewWindow* myViewWindow;
-
-  vtkDataSetMapper* myMapper;
-
-public:
-  static OrientedPlane *New()
-  {
-    return new OrientedPlane();
-  }
-  static OrientedPlane *New(SVTK_ViewWindow* theViewWindow)
-  {
-    return new OrientedPlane(theViewWindow);
-  }
-  vtkTypeMacro (OrientedPlane, vtkPlane);
-
-  SMESH::Orientation myOrientation;
-  float myDistance;
-  double myAngle[2];
-
-  vtkPlaneSource* myPlaneSource;
-  SALOME_Actor *myActor;
-
-  void SetOrientation (SMESH::Orientation theOrientation) { myOrientation = theOrientation; }
-  SMESH::Orientation GetOrientation() { return myOrientation; }
-
-  void SetDistance (float theDistance) { myDistance = theDistance; }
-  float GetDistance() { return myDistance; }
-
-  void ShallowCopy (OrientedPlane* theOrientedPlane)
-  {
-    SetNormal(theOrientedPlane->GetNormal());
-    SetOrigin(theOrientedPlane->GetOrigin());
-
-    myOrientation = theOrientedPlane->GetOrientation();
-    myDistance = theOrientedPlane->GetDistance();
-
-    myAngle[0] = theOrientedPlane->myAngle[0];
-    myAngle[1] = theOrientedPlane->myAngle[1];
-
-    myPlaneSource->SetNormal(theOrientedPlane->myPlaneSource->GetNormal());
-    myPlaneSource->SetOrigin(theOrientedPlane->myPlaneSource->GetOrigin());
-    myPlaneSource->SetPoint1(theOrientedPlane->myPlaneSource->GetPoint1());
-    myPlaneSource->SetPoint2(theOrientedPlane->myPlaneSource->GetPoint2());
-  }
-
-protected:
-  OrientedPlane(SVTK_ViewWindow* theViewWindow):
-    myViewWindow(theViewWindow),
-    myOrientation(SMESH::XY),
-    myDistance(0.5)
-  {
-    Init();
-    myViewWindow->AddActor(myActor);
-  }
-
-  OrientedPlane():
-    myOrientation(SMESH::XY),
-    myViewWindow(NULL),
-    myDistance(0.5)
-  {
-    Init();
-  }
-
-  void Init()
-  {
-    myPlaneSource = vtkPlaneSource::New();
-
-    myAngle[0] = myAngle[1] = 0.0;
-
-    // Create and display actor
-    myMapper = vtkDataSetMapper::New();
-    myMapper->SetInput(myPlaneSource->GetOutput());
-
-    myActor = SALOME_Actor::New();
-    myActor->VisibilityOff();
-    myActor->PickableOff();
-    myActor->SetInfinitive(true);
-    myActor->SetMapper(myMapper);
-
-    float anRGB[3];
-    vtkProperty* aProp = vtkProperty::New();
-    SMESH::GetColor( "SMESH", "fill_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 170, 255 ) );
-    aProp->SetColor(anRGB[0],anRGB[1],anRGB[2]);
-    aProp->SetOpacity(0.75);
-    myActor->SetProperty(aProp);
-    aProp->Delete();
-
-    vtkProperty* aBackProp = vtkProperty::New();
-    SMESH::GetColor( "SMESH", "backface_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 0, 255 ) );
-    aBackProp->SetColor(anRGB[0],anRGB[1],anRGB[2]);
-    aBackProp->SetOpacity(0.75);
-    myActor->SetBackfaceProperty(aBackProp);
-    aBackProp->Delete();
-  }
-
-  ~OrientedPlane(){
-    myViewWindow->RemoveActor(myActor);
-    myActor->Delete();
-    
-    myMapper->RemoveAllInputs();
-    myMapper->Delete();
-
-    myPlaneSource->UnRegisterAllOutputs();
-    myPlaneSource->Delete();
-  };
-
-private:
-  // Not implemented.
-  OrientedPlane (const OrientedPlane&);
-  void operator= (const OrientedPlane&);
-
-};
-
-struct TSetVisiblity {
-  TSetVisiblity(int theIsVisible): myIsVisible(theIsVisible){}
-  void operator()(SMESH::TVTKPlane& theOrientedPlane){
-    theOrientedPlane->myActor->SetVisibility(myIsVisible);
-  }
-  int myIsVisible;
-};
-
-//=================================================================================
-// class    : SMESHGUI_ClippingDlg()
-// purpose  :
-//
-//=================================================================================
-SMESHGUI_ClippingDlg::SMESHGUI_ClippingDlg (SMESHGUI* theModule,
-                                           const char* name,
-                                           bool modal,
-                                           WFlags fl):
-  QDialog(SMESH::GetDesktop(theModule),
-         name, 
-         modal, 
-         WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose),
-  mySelector(SMESH::GetViewWindow(theModule)->GetSelector()),
-  mySelectionMgr(SMESH::GetSelectionMgr(theModule)),
-  mySMESHGUI(theModule)
-{
-  if (!name)
-    setName("SMESHGUI_ClippingDlg");
-  setCaption(tr("SMESH_CLIPPING_TITLE"));
-  setSizeGripEnabled(TRUE);
-  QGridLayout* SMESHGUI_ClippingDlgLayout = new QGridLayout(this);
-  SMESHGUI_ClippingDlgLayout->setSpacing(6);
-  SMESHGUI_ClippingDlgLayout->setMargin(11);
-
-  // Controls for selecting, creating, deleting planes
-  QGroupBox* GroupPlanes = new QGroupBox (this, "GroupPlanes");
-  GroupPlanes->setTitle(tr("Clipping planes"));
-  GroupPlanes->setColumnLayout(0, Qt::Vertical);
-  GroupPlanes->layout()->setSpacing(0);
-  GroupPlanes->layout()->setMargin(0);
-  QGridLayout* GroupPlanesLayout = new QGridLayout (GroupPlanes->layout());
-  GroupPlanesLayout->setAlignment(Qt::AlignTop);
-  GroupPlanesLayout->setSpacing(6);
-  GroupPlanesLayout->setMargin(11);
-
-  ComboBoxPlanes = new QComboBox(GroupPlanes, "ComboBoxPlanes");
-  GroupPlanesLayout->addWidget(ComboBoxPlanes, 0, 0);
-
-  QSpacerItem* spacerGP = new QSpacerItem (20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupPlanesLayout->addItem(spacerGP, 0, 1);
-
-  buttonNew = new QPushButton (GroupPlanes, "buttonNew");
-  buttonNew->setText(tr("SMESH_BUT_NEW"));
-  GroupPlanesLayout->addWidget(buttonNew, 0, 2);
-
-  buttonDelete = new QPushButton (GroupPlanes, "buttonDelete");
-  buttonDelete->setText(tr("SMESH_BUT_DELETE"));
-  GroupPlanesLayout->addWidget(buttonDelete, 0, 3);
-
-  // Controls for defining plane parameters
-  QGroupBox* GroupParameters = new QGroupBox (this, "GroupParameters");
-  GroupParameters->setTitle(tr("SMESH_PARAMETERS"));
-  GroupParameters->setColumnLayout(0, Qt::Vertical);
-  GroupParameters->layout()->setSpacing(0);
-  GroupParameters->layout()->setMargin(0);
-  QGridLayout* GroupParametersLayout = new QGridLayout (GroupParameters->layout());
-  GroupParametersLayout->setAlignment(Qt::AlignTop);
-  GroupParametersLayout->setSpacing(6);
-  GroupParametersLayout->setMargin(11);
-
-  TextLabelOrientation = new QLabel(GroupParameters, "TextLabelOrientation");
-  TextLabelOrientation->setText(tr("SMESH_ORIENTATION"));
-  GroupParametersLayout->addWidget(TextLabelOrientation, 0, 0);
-
-  ComboBoxOrientation = new QComboBox(GroupParameters, "ComboBoxOrientation");
-  GroupParametersLayout->addWidget(ComboBoxOrientation, 0, 1);
-
-  TextLabelDistance = new QLabel(GroupParameters, "TextLabelDistance");
-  TextLabelDistance->setText(tr("SMESH_DISTANCE"));
-  GroupParametersLayout->addWidget(TextLabelDistance, 1, 0);
-
-  SpinBoxDistance = new SMESHGUI_SpinBox(GroupParameters, "SpinBoxDistance");
-  GroupParametersLayout->addWidget(SpinBoxDistance, 1, 1);
-
-  TextLabelRot1 = new QLabel(GroupParameters, "TextLabelRot1");
-  TextLabelRot1->setText(tr("Rotation around X (Y to Z):"));
-  GroupParametersLayout->addWidget(TextLabelRot1, 2, 0);
-
-  SpinBoxRot1 = new SMESHGUI_SpinBox(GroupParameters, "SpinBoxRot1");
-  GroupParametersLayout->addWidget(SpinBoxRot1, 2, 1);
-
-  TextLabelRot2 = new QLabel(GroupParameters, "TextLabelRot2");
-  TextLabelRot2->setText(tr("Rotation around Y (X to Z):"));
-  GroupParametersLayout->addWidget(TextLabelRot2, 3, 0);
-
-  SpinBoxRot2 = new SMESHGUI_SpinBox(GroupParameters, "SpinBoxRot2");
-  GroupParametersLayout->addWidget(SpinBoxRot2, 3, 1);
-
-  PreviewCheckBox = new QCheckBox(tr("Show preview"), GroupParameters);
-  PreviewCheckBox->setChecked(true);
-  GroupParametersLayout->addWidget(PreviewCheckBox, 4, 0);
-
-  AutoApplyCheckBox = new QCheckBox(tr("Auto Apply"), GroupParameters);
-  AutoApplyCheckBox->setChecked(false);
-  GroupParametersLayout->addWidget(AutoApplyCheckBox, 4, 1);
-
-  // Controls for "Ok", "Apply" and "Close" button
-  QGroupBox* GroupButtons = new QGroupBox(this, "GroupButtons");
-  GroupButtons->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, GroupButtons->sizePolicy().hasHeightForWidth()));
-  GroupButtons->setGeometry(QRect(10, 10, 281, 48));
-  GroupButtons->setTitle(tr("" ));
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  QGridLayout* GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-  buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
-  buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
-  buttonCancel->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-  buttonApply = new QPushButton(GroupButtons, "buttonApply");
-  buttonApply->setText(tr("SMESH_BUT_APPLY" ));
-  buttonApply->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-  QSpacerItem* spacer_9 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupButtonsLayout->addItem(spacer_9, 0, 2);
-  buttonOk = new QPushButton(GroupButtons, "buttonOk");
-  buttonOk->setText(tr("SMESH_BUT_OK" ));
-  buttonOk->setAutoDefault(TRUE);
-  buttonOk->setDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-
-  SMESHGUI_ClippingDlgLayout->addWidget(GroupPlanes,      0, 0);
-  SMESHGUI_ClippingDlgLayout->addWidget(GroupParameters,  1, 0);
-  SMESHGUI_ClippingDlgLayout->addWidget(GroupButtons,     2, 0);
-
-  // Initial state
-  SpinBoxDistance->RangeStepAndValidator(0.0, 1.0, 0.01, 3);
-  SpinBoxRot1->RangeStepAndValidator(-180.0, 180.0, 1, 3);
-  SpinBoxRot2->RangeStepAndValidator(-180.0, 180.0, 1, 3);
-
-  ComboBoxOrientation->insertItem(tr("|| X-Y"));
-  ComboBoxOrientation->insertItem(tr("|| Y-Z"));
-  ComboBoxOrientation->insertItem(tr("|| Z-X"));
-
-  SpinBoxDistance->SetValue(0.5);
-
-  myActor = 0;
-  myIsSelectPlane = false;
-  onSelectionChanged();
-
-  // signals and slots connections :
-  connect(ComboBoxPlanes, SIGNAL(activated(int)), this, SLOT(onSelectPlane(int)));
-  connect(buttonNew, SIGNAL(clicked()), this, SLOT(ClickOnNew()));
-  connect(buttonDelete, SIGNAL(clicked()), this, SLOT(ClickOnDelete()));
-  connect(ComboBoxOrientation, SIGNAL(activated(int)), this, SLOT(onSelectOrientation(int)));
-  connect(SpinBoxDistance, SIGNAL(valueChanged(double)), this, SLOT(SetCurrentPlaneParam()));
-  connect(SpinBoxRot1, SIGNAL(valueChanged(double)), this, SLOT(SetCurrentPlaneParam()));
-  connect(SpinBoxRot2, SIGNAL(valueChanged(double)), this, SLOT(SetCurrentPlaneParam()));
-  connect(PreviewCheckBox, SIGNAL(toggled(bool)), this, SLOT(OnPreviewToggle(bool)));
-  connect(AutoApplyCheckBox, SIGNAL(toggled(bool)), this, SLOT(ClickOnApply()));
-  connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-  connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
-  connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnOk()));
-  connect(mySelectionMgr,  SIGNAL(currentSelectionChanged()), this, SLOT(onSelectionChanged()));
-  /* to close dialog if study frame change */
-  connect(mySMESHGUI, SIGNAL (SignalStudyFrameChanged()), this, SLOT(ClickOnCancel()));
-
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show();
-}
-
-//=================================================================================
-// function : ~SMESHGUI_ClippingDlg()
-// purpose  :
-//=================================================================================
-SMESHGUI_ClippingDlg::~SMESHGUI_ClippingDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-  std::for_each(myPlanes.begin(),myPlanes.end(),TSetVisiblity(false));
-  SMESH::RenderViewWindow(SMESH::GetViewWindow(mySMESHGUI));
-}
-
-//=======================================================================
-// function : ClickOnApply()
-// purpose  :
-//=======================================================================
-void SMESHGUI_ClippingDlg::ClickOnApply()
-{
-  if (!myActor)
-    return;
-
-  if (SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow(mySMESHGUI)) {
-    SUIT_OverrideCursor wc;
-
-    myActor->RemoveAllClippingPlanes();
-
-    SMESH::TPlanes::iterator anIter = myPlanes.begin();
-    for (; anIter != myPlanes.end(); anIter++) {
-      OrientedPlane* anOrientedPlane = OrientedPlane::New(aViewWindow);
-      anOrientedPlane->ShallowCopy(anIter->GetPointer());
-      myActor->AddClippingPlane(anOrientedPlane);
-      anOrientedPlane->Delete();
-    }
-
-    SMESH::RenderViewWindow(aViewWindow);
-  }
-}
-
-//=======================================================================
-// function : ClickOnOk()
-// purpose  :
-//=======================================================================
-void SMESHGUI_ClippingDlg::ClickOnOk()
-{
-  ClickOnApply();
-  ClickOnCancel();
-}
-
-//=======================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=======================================================================
-void SMESHGUI_ClippingDlg::ClickOnCancel()
-{
-  close();
-}
-
-//=================================================================================
-// function : onSelectionChanged()
-// purpose  : Called when selection is changed
-//=================================================================================
-void SMESHGUI_ClippingDlg::onSelectionChanged()
-{
-  if (SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow(mySMESHGUI)) {
-    const SALOME_ListIO& aList = mySelector->StoredIObjects();
-    if (aList.Extent() > 0) {
-      Handle(SALOME_InteractiveObject) IOS = aList.First();
-      myActor = SMESH::FindActorByEntry(IOS->getEntry());
-      if (myActor) {
-       std::for_each(myPlanes.begin(),myPlanes.end(),TSetVisiblity(false));
-       myPlanes.clear();
-
-       vtkIdType anId = 0, anEnd = myActor->GetNumberOfClippingPlanes();
-       for (; anId < anEnd; anId++) {
-         if (vtkImplicitFunction* aFunction = myActor->GetClippingPlane(anId)) {
-           if(OrientedPlane* aPlane = OrientedPlane::SafeDownCast(aFunction)){
-             OrientedPlane* anOrientedPlane = OrientedPlane::New(aViewWindow);
-             SMESH::TVTKPlane aTVTKPlane(anOrientedPlane);
-             anOrientedPlane->Delete();
-             aTVTKPlane->ShallowCopy(aPlane);
-             myPlanes.push_back(aTVTKPlane);
-           }
-         }
-       }
-
-       std::for_each(myPlanes.begin(),myPlanes.end(),
-                     TSetVisiblity(PreviewCheckBox->isChecked()));
-      }
-    }
-    SMESH::RenderViewWindow(aViewWindow);
-  }
-  Sinchronize();
-}
-
-//=======================================================================
-// function : onSelectPlane()
-// purpose  :
-//=======================================================================
-void SMESHGUI_ClippingDlg::onSelectPlane (int theIndex)
-{
-  if (!myActor || myPlanes.empty())
-    return;
-
-  OrientedPlane* aPlane = myPlanes[theIndex].GetPointer();
-
-  // Orientation
-  SMESH::Orientation anOrientation = aPlane->GetOrientation();
-
-  // Rotations
-  double aRot[2] = {aPlane->myAngle[0], aPlane->myAngle[1]};
-
-  // Set plane parameters in the dialog
-  myIsSelectPlane = true;
-  setDistance(aPlane->GetDistance());
-  setRotation(aRot[0], aRot[1]);
-  switch (anOrientation) {
-  case SMESH::XY:
-    ComboBoxOrientation->setCurrentItem(0);
-    onSelectOrientation(0);
-    break;
-  case SMESH::YZ:
-    ComboBoxOrientation->setCurrentItem(1);
-    onSelectOrientation(1);
-    break;
-  case SMESH::ZX:
-    ComboBoxOrientation->setCurrentItem(2);
-    onSelectOrientation(2);
-    break;
-  }
-  myIsSelectPlane = false;
-}
-
-//=======================================================================
-// function : ClickOnNew()
-// purpose  :
-//=======================================================================
-void SMESHGUI_ClippingDlg::ClickOnNew()
-{
-  if (!myActor)
-    return;
-
-  if(SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow(mySMESHGUI)){
-    OrientedPlane* aPlane = OrientedPlane::New(aViewWindow);
-    SMESH::TVTKPlane aTVTKPlane(aPlane);
-    myPlanes.push_back(aTVTKPlane);
-
-    if (PreviewCheckBox->isChecked())
-      aTVTKPlane->myActor->VisibilityOn();
-    
-    Sinchronize();
-    SetCurrentPlaneParam();
-  }
-}
-
-//=======================================================================
-// function : ClickOnDelete()
-// purpose  :
-//=======================================================================
-void SMESHGUI_ClippingDlg::ClickOnDelete()
-{
-  if (!myActor || myPlanes.empty())
-    return;
-
-  int aPlaneIndex = ComboBoxPlanes->currentItem();
-
-  SMESH::TPlanes::iterator anIter = myPlanes.begin() + aPlaneIndex;
-  anIter->GetPointer()->myActor->SetVisibility(false);
-  myPlanes.erase(anIter);
-
-  if(AutoApplyCheckBox->isChecked())
-    ClickOnApply();
-
-  Sinchronize();
-  SMESH::RenderViewWindow(SMESH::GetCurrentVtkView());
-}
-
-//=======================================================================
-// function : onSelectOrientation()
-// purpose  :
-//=======================================================================
-void SMESHGUI_ClippingDlg::onSelectOrientation (int theItem)
-{
-  if (myPlanes.empty())
-    return;
-
-  if      (theItem == 0) {
-    TextLabelRot1->setText(tr("Rotation around X (Y to Z):"));
-    TextLabelRot2->setText(tr("Rotation around Y (X to Z):"));
-  }
-  else if (theItem == 1) {
-    TextLabelRot1->setText(tr("Rotation around Y (Z to X):"));
-    TextLabelRot2->setText(tr("Rotation around Z (Y to X):"));
-  }
-  else if (theItem == 2) {
-    TextLabelRot1->setText(tr("Rotation around Z (X to Y):"));
-    TextLabelRot2->setText(tr("Rotation around X (Z to Y):"));
-  }
-
-  if((QComboBox*)sender() == ComboBoxOrientation)
-    SetCurrentPlaneParam();
-}
-
-//=======================================================================
-// function : Sinchronize()
-// purpose  :
-//=======================================================================
-void SMESHGUI_ClippingDlg::Sinchronize()
-{
-  int aNbPlanes = myPlanes.size();
-  ComboBoxPlanes->clear();
-
-  QString aName;
-  for(int i = 1; i<=aNbPlanes; i++) {
-    aName = QString(tr("Plane# %1")).arg(i);
-    ComboBoxPlanes->insertItem(aName);
-  }
-
-  int aPos = ComboBoxPlanes->count() - 1;
-  ComboBoxPlanes->setCurrentItem(aPos);
-
-  bool anIsControlsEnable = (aPos >= 0);
-  if (anIsControlsEnable) {
-    onSelectPlane(aPos);
-  } else {
-    ComboBoxPlanes->insertItem(tr("No planes"));
-    SpinBoxRot1->SetValue(0.0);
-    SpinBoxRot2->SetValue(0.0);
-    SpinBoxDistance->SetValue(0.5);
-  }
-
-  buttonDelete->setEnabled(anIsControlsEnable);
-  buttonApply->setEnabled(anIsControlsEnable);
-  PreviewCheckBox->setEnabled(anIsControlsEnable);
-  AutoApplyCheckBox->setEnabled(anIsControlsEnable);
-  ComboBoxOrientation->setEnabled(anIsControlsEnable);
-  SpinBoxDistance->setEnabled(anIsControlsEnable);
-  SpinBoxRot1->setEnabled(anIsControlsEnable);
-  SpinBoxRot2->setEnabled(anIsControlsEnable);
-}
-
-//=======================================================================
-// function : setRotation()
-// purpose  :
-//=======================================================================
-void SMESHGUI_ClippingDlg::setRotation (const double theRot1, const double theRot2)
-{
-  SpinBoxRot1->SetValue(theRot1);
-  SpinBoxRot2->SetValue(theRot2);
-}
-
-//=======================================================================
-// function : SetCurrentPlaneParam()
-// purpose  :
-//=======================================================================
-void SMESHGUI_ClippingDlg::SetCurrentPlaneParam()
-{
-  if (myPlanes.empty() || myIsSelectPlane)
-    return;
-
-  int aCurPlaneIndex = ComboBoxPlanes->currentItem();
-
-  OrientedPlane* aPlane = myPlanes[aCurPlaneIndex].GetPointer();
-
-  float aNormal[3];
-  SMESH::Orientation anOrientation;
-  float aDir[3][3] = {{0, 0, 0}, {0, 0, 0}};
-  {
-    static double aCoeff = vtkMath::Pi()/180.0;
-
-    float aRot[2] = {getRotation1(), getRotation2()};
-    aPlane->myAngle[0] = aRot[0];
-    aPlane->myAngle[1] = aRot[1];
-
-    float anU[2] = {cos(aCoeff*aRot[0]), cos(aCoeff*aRot[1])};
-    float aV[2] = {sqrt(1.0-anU[0]*anU[0]), sqrt(1.0-anU[1]*anU[1])};
-    aV[0] = aRot[0] > 0? aV[0]: -aV[0];
-    aV[1] = aRot[1] > 0? aV[1]: -aV[1];
-
-    switch (ComboBoxOrientation->currentItem()) {
-    case 0:
-      anOrientation = SMESH::XY;
-
-      aDir[0][1] = anU[0];
-      aDir[0][2] = aV[0];
-
-      aDir[1][0] = anU[1];
-      aDir[1][2] = aV[1];
-
-      break;
-    case 1:
-      anOrientation = SMESH::YZ;
-
-      aDir[0][2] = anU[0];
-      aDir[0][0] = aV[0];
-
-      aDir[1][1] = anU[1];
-      aDir[1][0] = aV[1];
-
-      break;
-    case 2:
-      anOrientation = SMESH::ZX;
-
-      aDir[0][0] = anU[0];
-      aDir[0][1] = aV[0];
-
-      aDir[1][2] = anU[1];
-      aDir[1][1] = aV[1];
-
-      break;
-    }
-
-    vtkMath::Cross(aDir[1],aDir[0],aNormal);
-    vtkMath::Normalize(aNormal);
-    vtkMath::Cross(aNormal,aDir[1],aDir[0]);
-  }
-
-  aPlane->SetOrientation(anOrientation);
-  aPlane->SetDistance(getDistance());
-
-  myActor->SetPlaneParam(aNormal, getDistance(), aPlane);
-
-  vtkDataSet* aDataSet = myActor->GetInput();
-  float *aPnt = aDataSet->GetCenter();
-
-  float* anOrigin = aPlane->GetOrigin();
-  float aDel = aDataSet->GetLength()/2.0;
-
-  float aDelta[2][3] = {{aDir[0][0]*aDel, aDir[0][1]*aDel, aDir[0][2]*aDel},
-                       {aDir[1][0]*aDel, aDir[1][1]*aDel, aDir[1][2]*aDel}};
-  float aParam, aPnt0[3], aPnt1[3], aPnt2[3];
-
-  float aPnt01[3] = {aPnt[0] - aDelta[0][0] - aDelta[1][0],
-                    aPnt[1] - aDelta[0][1] - aDelta[1][1],
-                    aPnt[2] - aDelta[0][2] - aDelta[1][2]};
-  float aPnt02[3] = {aPnt01[0] + aNormal[0],
-                     aPnt01[1] + aNormal[1],
-                     aPnt01[2] + aNormal[2]};
-  vtkPlane::IntersectWithLine(aPnt01,aPnt02,aNormal,anOrigin,aParam,aPnt0);
-
-  float aPnt11[3] = {aPnt[0] - aDelta[0][0] + aDelta[1][0],
-                    aPnt[1] - aDelta[0][1] + aDelta[1][1],
-                    aPnt[2] - aDelta[0][2] + aDelta[1][2]};
-  float aPnt12[3] = {aPnt11[0] + aNormal[0],
-                    aPnt11[1] + aNormal[1],
-                    aPnt11[2] + aNormal[2]};
-  vtkPlane::IntersectWithLine(aPnt11,aPnt12,aNormal,anOrigin,aParam,aPnt1);
-
-  float aPnt21[3] = {aPnt[0] + aDelta[0][0] - aDelta[1][0],
-                    aPnt[1] + aDelta[0][1] - aDelta[1][1],
-                    aPnt[2] + aDelta[0][2] - aDelta[1][2]};
-  float aPnt22[3] = {aPnt21[0] + aNormal[0],
-                    aPnt21[1] + aNormal[1],
-                    aPnt21[2] + aNormal[2]};
-  vtkPlane::IntersectWithLine(aPnt21,aPnt22,aNormal,anOrigin,aParam,aPnt2);
-
-  vtkPlaneSource* aPlaneSource = aPlane->myPlaneSource;
-  aPlaneSource->SetNormal(aNormal[0],aNormal[1],aNormal[2]);
-  aPlaneSource->SetOrigin(aPnt0[0],aPnt0[1],aPnt0[2]);
-  aPlaneSource->SetPoint1(aPnt1[0],aPnt1[1],aPnt1[2]);
-  aPlaneSource->SetPoint2(aPnt2[0],aPnt2[1],aPnt2[2]);
-
-  if(AutoApplyCheckBox->isChecked())
-    ClickOnApply();
-
-  SMESH::RenderViewWindow(SMESH::GetCurrentVtkView());
-}
-
-//=======================================================================
-// function : OnPreviewToggle()
-// purpose  :
-//=======================================================================
-void SMESHGUI_ClippingDlg::OnPreviewToggle (bool theIsToggled)
-{
-  std::for_each(myPlanes.begin(),myPlanes.end(),TSetVisiblity(theIsToggled));
-  SMESH::RenderViewWindow(SMESH::GetCurrentVtkView());
-}
diff --git a/src/SMESHGUI/SMESHGUI_ClippingDlg.h b/src/SMESHGUI/SMESHGUI_ClippingDlg.h
deleted file mode 100644 (file)
index 2887244..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_TransparencyDlg.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef DIALOGBOX_CLIPPING_H
-#define DIALOGBOX_CLIPPING_H
-
-#include <SMESHGUI_SpinBox.h>
-
-#include <vtkSmartPointer.h>
-#include <vtkPlane.h>
-
-#include <vector>
-
-// QT Includes
-#include <qdialog.h>
-#include <qtable.h>
-
-class QLabel;
-class QPushButton;
-class QTable;
-class QCheckBox;
-class QComboBox;
-
-class SalomeApp_SelectionMgr;
-class SVTK_Selector;
-
-class SMESHGUI;
-class SMESH_Actor;
-
-class OrientedPlane;
-
-
-namespace SMESH {
-
-  typedef vtkSmartPointer<OrientedPlane> TVTKPlane;
-  typedef std::vector<TVTKPlane> TPlanes;
-  enum Orientation {XY, YZ, ZX};
-
-};
-
-
-//=================================================================================
-// class    : SMESHGUI_ClippingDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_ClippingDlg : public QDialog
-{
-    Q_OBJECT
-
-public:
-    SMESHGUI_ClippingDlg (SMESHGUI* theModule,
-                         const char* name = 0,
-                         bool modal = false,
-                         WFlags fl = 0);
-
-    float  getDistance()  { return  (float)SpinBoxDistance->GetValue(); }
-    void   setDistance (const float theDistance) { SpinBoxDistance->SetValue(theDistance); }
-    double getRotation1() { return SpinBoxRot1->GetValue(); }
-    double getRotation2() { return SpinBoxRot2->GetValue(); }
-    void   setRotation (const double theRot1, const double theRot2);
-    void   Sinchronize();
-
-    ~SMESHGUI_ClippingDlg();
-
-private:
-
-    SalomeApp_SelectionMgr* mySelectionMgr;
-    SVTK_Selector*          mySelector;
-    SMESHGUI*               mySMESHGUI;
-    SMESH_Actor*            myActor;
-    SMESH::TPlanes          myPlanes;
-
-    QComboBox*        ComboBoxPlanes;
-    QPushButton*      buttonNew;
-    QPushButton*      buttonDelete;
-    QLabel*           TextLabelOrientation;
-    QComboBox*        ComboBoxOrientation;
-    QLabel*           TextLabelDistance;
-    SMESHGUI_SpinBox* SpinBoxDistance;
-    QLabel*           TextLabelRot1;
-    SMESHGUI_SpinBox* SpinBoxRot1;
-    QLabel*           TextLabelRot2;
-    SMESHGUI_SpinBox* SpinBoxRot2;
-    QCheckBox*        PreviewCheckBox;
-    QCheckBox*        AutoApplyCheckBox;
-    QPushButton*      buttonOk;
-    QPushButton*      buttonCancel;
-    QPushButton*      buttonApply;
-
-    bool myIsSelectPlane;
-
-public slots:
-
-    void onSelectPlane (int theIndex);
-    void ClickOnNew();
-    void ClickOnDelete();
-    void onSelectOrientation (int theItem);
-    void SetCurrentPlaneParam();
-    void onSelectionChanged();
-    void OnPreviewToggle (bool theIsToggled);
-    void ClickOnOk();
-    void ClickOnCancel();
-    void ClickOnApply();
-};
-
-#endif // DIALOGBOX_TRANSPARENCYDLG_H
diff --git a/src/SMESHGUI/SMESHGUI_CreateHypothesesDlg.cxx b/src/SMESHGUI/SMESHGUI_CreateHypothesesDlg.cxx
deleted file mode 100644 (file)
index 68d2f10..0000000
+++ /dev/null
@@ -1,294 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  CEA
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_CreateHypothesesDlg.cxx
-//  Author : Julia DOROVSKIKH
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_CreateHypothesesDlg.h"
-
-#include "SMESHGUI_HypothesesUtils.h"
-#include "SMESHGUI_Hypotheses.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI.h"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_ResourceMgr.h"
-
-#include "SALOME_ListIteratorOfListIO.hxx"
-
-#include "utilities.h"
-
-// QT Includes
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qpushbutton.h>
-#include <qlayout.h>
-#include <qlistview.h>
-#include <qheader.h>
-
-using namespace std;
-
-//=================================================================================
-// function : SMESHGUI_CreateHypothesesDlg()
-// purpose  : Constructs a SMESHGUI_CreateHypothesesDlg which is a child of 'parent', with the
-//            name 'name' and widget flags set to 'f'.
-//            The dialog will by default be modeless, unless you set 'modal' to
-//            TRUE to construct a modal dialog.
-//=================================================================================
-SMESHGUI_CreateHypothesesDlg::SMESHGUI_CreateHypothesesDlg (SMESHGUI* theModule,
-                                                            const char* name,
-                                                            bool modal,
-                                                            bool isAlgo)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-               WStyle_Title | WStyle_SysMenu | WDestructiveClose),
-       myIsAlgo(isAlgo),
-       mySMESHGUI( theModule )
-{
-  if (!name)
-    setName("SMESHGUI_CreateHypothesesDlg");
-  setCaption(isAlgo ? tr("SMESH_CREATE_ALGORITHMS" ) : tr("SMESH_CREATE_HYPOTHESES" ));
-  setSizeGripEnabled(TRUE);
-
-  QGridLayout* SMESHGUI_CreateHypothesesDlgLayout = new QGridLayout(this);
-  SMESHGUI_CreateHypothesesDlgLayout->setSpacing(6);
-  SMESHGUI_CreateHypothesesDlgLayout->setMargin(11);
-
-  /***************************************************************/
-  GroupAlgorithms = new QGroupBox(this, "GroupAlgorithms");
-  GroupAlgorithms->setTitle(isAlgo ? tr("SMESH_AVAILABLE_ALGORITHMS") : tr("SMESH_AVAILABLE_HYPOTHESES"));
-  GroupAlgorithms->setColumnLayout(0, Qt::Vertical);
-  GroupAlgorithms->layout()->setSpacing(0);
-  GroupAlgorithms->layout()->setMargin(0);
-
-  QGridLayout* hypLayout = new QGridLayout(GroupAlgorithms->layout());
-  hypLayout->setGeometry(QRect(12, 18, 139, 250));
-  hypLayout->setAlignment(Qt::AlignTop);
-  hypLayout->setSpacing(6);
-  hypLayout->setMargin(11);
-
-  ListAlgoDefinition = new QListView(GroupAlgorithms, "ListAlgoDefinition");
-  ListAlgoDefinition->setMinimumSize(400, 200);
-  ListAlgoDefinition->addColumn("");
-  ListAlgoDefinition->header()->hide();
-  ListAlgoDefinition->setSelectionMode(QListView::Single);
-  ListAlgoDefinition->setResizeMode(QListView::AllColumns);
-  ListAlgoDefinition->setRootIsDecorated(true);
-
-  hypLayout->addWidget(ListAlgoDefinition, 0, 0);
-  SMESHGUI_CreateHypothesesDlgLayout->addWidget(GroupAlgorithms, 0, 0);
-
-  /***************************************************************/
-  GroupButtons = new QGroupBox(this, "GroupButtons");
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  QGridLayout* GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-
-  buttonApply = new QPushButton(GroupButtons, "buttonApply");
-  buttonApply->setText(tr("SMESH_BUT_CREATE" ));
-  buttonApply->setAutoDefault(TRUE);
-  buttonApply->setDefault(FALSE);
-  buttonApply->setEnabled(FALSE);
-  GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-
-  QSpacerItem* spacer_9 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupButtonsLayout->addItem(spacer_9, 0, 2);
-
-  buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
-  buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
-  buttonCancel->setAutoDefault(TRUE);
-  buttonCancel->setDefault(TRUE);
-  buttonCancel->setEnabled(TRUE);
-  GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-
-  SMESHGUI_CreateHypothesesDlgLayout->addWidget(GroupButtons, 1, 0);
-  /***************************************************************/
-
-  Init();
-}
-
-//=================================================================================
-// function : ~SMESHGUI_CreateHypothesesDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_CreateHypothesesDlg::~SMESHGUI_CreateHypothesesDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::Init()
-{
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  InitAlgoDefinition();
-
-  /* signals and slots connections */
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-  connect(buttonApply , SIGNAL(clicked()), this, SLOT(ClickOnApply()));
-
-//  connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
-
-  connect(ListAlgoDefinition, SIGNAL(selectionChanged()), this, SLOT(onSelectionChanged()));
-  connect(ListAlgoDefinition, SIGNAL(doubleClicked(QListViewItem*)), this, SLOT(onDoubleClicked(QListViewItem*)));
-
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show();
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::ClickOnCancel()
-{
-  close();
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::ClickOnApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return;
-  QListViewItem* item = ListAlgoDefinition->selectedItem();
-  if (!item)
-    return;
-  QString aHypType = item->text(1);
-  MESSAGE("Apply " << aHypType);
-  char* sHypType = (char*)aHypType.latin1();
-
-  HypothesisData* aHypData = SMESH::GetHypothesisData(sHypType);
-  if (!aHypData)
-    return;
-  QString aClientLibName = aHypData->ClientLibName;
-  MESSAGE("Client lib name = " << aClientLibName);
-
-  if (aClientLibName == "") {
-    // Call hypothesis creation server method (without GUI)
-    QString aHypName = aHypData->Label;
-    SMESH::CreateHypothesis(sHypType, aHypName, myIsAlgo);
-  } else {
-    // Get hypotheses creator client (GUI)
-    SMESHGUI_GenericHypothesisCreator* aCreator =
-      SMESH::GetHypothesisCreator(sHypType);
-
-    // Create hypothesis/algorithm
-    aCreator->CreateHypothesis(myIsAlgo, this);
-  }
-
-//  buttonApply->setEnabled(FALSE);
-  return;
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::ActivateThisDialog()
-{
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupButtons->setEnabled(true);
-  return;
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::enterEvent (QEvent*)
-{
-  ActivateThisDialog();
-  return;
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::closeEvent (QCloseEvent* e)
-{
-  mySMESHGUI->ResetState();
-  QDialog::closeEvent(e);
-}
-
-//=================================================================================
-// function : onSelectionChanged()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::onSelectionChanged()
-{
-  QListViewItem* item = ListAlgoDefinition->selectedItem();
-  buttonApply->setEnabled(item && item->depth() > 0);
-}
-
-//=================================================================================
-// function : onDoubleClicked()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::onDoubleClicked (QListViewItem* i)
-{
-  if (i && i->depth() > 0)
-    this->ClickOnApply();
-}
-
-//=================================================================================
-// function : InitAlgoDefinition()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::InitAlgoDefinition()
-{
-  ListAlgoDefinition->clear();
-  QStringList HypList = SMESH::GetAvailableHypotheses(myIsAlgo);
-  for (int i = 0; i < HypList.count(); ++i) {
-    HypothesisData* aHypData = SMESH::GetHypothesisData(HypList[i]);
-    QListViewItem* parentItem = 0;
-    QListViewItem* childItem = ListAlgoDefinition->firstChild();
-    while (childItem) {
-      if (childItem->text(0) == aHypData->PluginName) {
-       parentItem = childItem;
-       break;
-      }
-      childItem = childItem->nextSibling();
-    }
-    if (!parentItem)
-      parentItem = new QListViewItem(ListAlgoDefinition, aHypData->PluginName);
-    parentItem->setOpen(true);
-    QListViewItem* aItem = new QListViewItem(parentItem, aHypData->Label, HypList[i]);
-    QPixmap aPixMap (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr(aHypData->IconId)));
-    if (!aPixMap.isNull())
-      aItem->setPixmap(0, aPixMap);
-  }
-}
diff --git a/src/SMESHGUI/SMESHGUI_CreateHypothesesDlg.h b/src/SMESHGUI/SMESHGUI_CreateHypothesesDlg.h
deleted file mode 100644 (file)
index e2bb65a..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_CreateHypothesesDlg.h
-//  Author : Julia DOROVSKIKH
-//  Module : SMESH
-//  $Header$
-
-#ifndef DIALOGBOX_CREATE_HYPOTHESES_H
-#define DIALOGBOX_CREATE_HYPOTHESES_H
-
-// QT Includes
-#include <qvariant.h>
-#include <qdialog.h>
-#include <qstringlist.h>
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-#include <map>
-#include <string>
-
-class QButtonGroup;
-class QGroupBox;
-class QPushButton;
-class QListView;
-class QListViewItem;
-class SMESHGUI;
-
-//=================================================================================
-// class    : SMESHGUI_CreateHypothesesDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_CreateHypothesesDlg : public QDialog
-{
-    Q_OBJECT
-
-public:
-    SMESHGUI_CreateHypothesesDlg (SMESHGUI*,
-                                 const char* name = 0,
-                                 bool modal = FALSE,
-                                 bool isAlgo = FALSE);
-    ~SMESHGUI_CreateHypothesesDlg ();
-
-private:
-
-    void Init() ;
-    void closeEvent( QCloseEvent* e ) ;
-    void enterEvent ( QEvent * ) ;
-
-    void InitAlgoDefinition();
-
-    SMESHGUI*     mySMESHGUI;
-    bool          myIsAlgo;
-
-    QGroupBox*    GroupButtons;
-    QPushButton*  buttonCancel;
-    QPushButton*  buttonApply;
-
-    QGroupBox* GroupAlgorithms;
-    QListView* ListAlgoDefinition;
-
-private slots:
-
-    void ClickOnCancel();
-    void ClickOnApply();
-    void ActivateThisDialog() ;
-
-    void onSelectionChanged();
-    void onDoubleClicked(QListViewItem*);
-};
-
-#endif // DIALOGBOX_CREATE_HYPOTHESES_H
diff --git a/src/SMESHGUI/SMESHGUI_CreatePatternDlg.cxx b/src/SMESHGUI/SMESHGUI_CreatePatternDlg.cxx
deleted file mode 100755 (executable)
index 6b1f20e..0000000
+++ /dev/null
@@ -1,720 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component\r
-//\r
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,\r
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS\r
-//\r
-//  This library is free software; you can redistribute it and/or\r
-//  modify it under the terms of the GNU Lesser General Public\r
-//  License as published by the Free Software Foundation; either\r
-//  version 2.1 of the License.\r
-//\r
-//  This library is distributed in the hope that it will be useful,\r
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
-//  Lesser General Public License for more details.\r
-//\r
-//  You should have received a copy of the GNU Lesser General Public\r
-//  License along with this library; if not, write to the Free Software\r
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
-//\r
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org\r
-//\r
-//\r
-//\r
-//  File   : SMESHGUI_CreatePatternDlg.cxx\r
-//  Author : Sergey LITONIN\r
-//  Module : SMESH\r
-\r
-#include "SMESHGUI_CreatePatternDlg.h"\r
-\r
-#include "SMESHGUI.h"\r
-#include "SMESHGUI_SpinBox.h"\r
-#include "SMESHGUI_PatternWidget.h"\r
-#include "SMESHGUI_Utils.h"\r
-#include "SMESHGUI_VTKUtils.h"\r
-#include "SMESHGUI_PatternUtils.h"\r
-#include "SMESHGUI_GEOMGenUtils.h"\r
-\r
-#include "SMESH_NumberFilter.hxx"\r
-\r
-#include "SUIT_ResourceMgr.h"\r
-#include "SUIT_Desktop.h"\r
-#include "SUIT_FileDlg.h"\r
-\r
-#include "SalomeApp_Study.h"\r
-#include "SalomeApp_DataOwner.h"\r
-#include "SalomeApp_SelectionMgr.h"\r
-#include "SalomeApp_Tools.h"\r
-\r
-#include "SALOMEDS_SObject.hxx"\r
-\r
-#include "SALOME_ListIO.hxx"\r
-#include "SVTK_ViewModel.h"\r
-#include "SVTK_ViewWindow.h"\r
-#include "SVTK_Selector.h"\r
-#include "SVTK_Selection.h"\r
-\r
-// OCCT Includes\r
-#include <TColStd_MapOfInteger.hxx>\r
-\r
-// QT Includes\r
-#include <qframe.h>\r
-#include <qlayout.h>\r
-#include <qlineedit.h>\r
-#include <qpushbutton.h>\r
-#include <qgroupbox.h>\r
-#include <qlabel.h>\r
-#include <qradiobutton.h>\r
-#include <qcheckbox.h>\r
-#include <qbuttongroup.h>\r
-#include <qmessagebox.h>\r
-#include <qapplication.h>\r
-\r
-#define SPACING 5\r
-#define MARGIN  10\r
-\r
-/*!\r
- *  Class       : SMESHGUI_CreatePatternDlg\r
- *  Description : Dialog to specify filters for VTK viewer\r
- */\r
-\r
-//=======================================================================\r
-// function : SMESHGUI_CreatePatternDlg()\r
-// purpose  : Constructor\r
-//=======================================================================\r
-SMESHGUI_CreatePatternDlg::SMESHGUI_CreatePatternDlg( SMESHGUI*   theModule,\r
-                                                      const int   theType,\r
-                                                      const char* theName)\r
-     : QDialog( SMESH::GetDesktop( theModule ), theName, false,\r
-                WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),\r
-     mySMESHGUI( theModule ),\r
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )\r
-{\r
-  setCaption(tr("CAPTION"));\r
-\r
-  QVBoxLayout* aDlgLay = new QVBoxLayout (this, MARGIN, SPACING);\r
-\r
-  QFrame* aMainFrame = createMainFrame  (this);\r
-  QFrame* aBtnFrame  = createButtonFrame(this);\r
-\r
-  aDlgLay->addWidget(aMainFrame);\r
-  aDlgLay->addWidget(aBtnFrame);\r
-\r
-  aDlgLay->setStretchFactor(aMainFrame, 1);\r
-\r
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))\r
-    mySelector = aViewWindow->GetSelector();\r
-\r
-  Init(theType);\r
-}\r
-\r
-//=======================================================================\r
-// function : createMainFrame()\r
-// purpose  : Create frame containing dialog's input fields\r
-//=======================================================================\r
-QFrame* SMESHGUI_CreatePatternDlg::createMainFrame (QWidget* theParent)\r
-{\r
-  QPixmap iconSlct     (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));\r
-  QPixmap icon2d       (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_PATTERN_2d")));\r
-  QPixmap icon3d       (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_PATTERN_3d")));\r
-  QPixmap iconSample2d (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_PATTERN_SAMPLE_2D")));\r
-\r
-  QGroupBox* aMainGrp = new QGroupBox(1, Qt::Horizontal, theParent);\r
-  aMainGrp->setFrameStyle(QFrame::NoFrame);\r
-  aMainGrp->setInsideMargin(0);\r
-\r
-  // Pattern type group\r
-\r
-  myTypeGrp = new QButtonGroup (1, Qt::Vertical, tr("PATTERN_TYPE"), aMainGrp);\r
-  mySwitch2d = new QRadioButton (myTypeGrp);\r
-  mySwitch3d = new QRadioButton (myTypeGrp);\r
-  mySwitch2d->setPixmap(icon2d);\r
-  mySwitch3d->setPixmap(icon3d);\r
-  myTypeGrp->insert(mySwitch2d, Type_2d);\r
-  myTypeGrp->insert(mySwitch3d, Type_3d);\r
-\r
-  QGroupBox* aPatternGrp = new QGroupBox(1, Qt::Horizontal, tr("PATTERN"), aMainGrp);\r
-\r
-  // Mesh and pattern name group\r
-\r
-  QGroupBox* aMeshGrp = new QGroupBox(1, Qt::Vertical, aPatternGrp);\r
-  aMeshGrp->setFrameStyle(QFrame::NoFrame);\r
-  aMeshGrp->setInsideMargin(0);\r
-\r
-  new QLabel(tr("MESH_OR_SUBMESH"), aMeshGrp);\r
-\r
-  QPushButton* aSelBtn = new QPushButton(aMeshGrp);\r
-  aSelBtn->setPixmap(iconSlct);\r
-  myMeshEdit = new QLineEdit(aMeshGrp);\r
-  myMeshEdit->setReadOnly(true);\r
-\r
-  QGroupBox* aPattGrp = new QGroupBox(1, Qt::Vertical, aPatternGrp);\r
-  aPattGrp->setFrameStyle(QFrame::NoFrame);\r
-  aPattGrp->setInsideMargin(0);\r
-\r
-  new QLabel(tr("PATTERN_NAME"), aPattGrp);\r
-  myName = new QLineEdit(aPattGrp);\r
-\r
-  // Picture 2d\r
-\r
-  myPicture2d = new SMESHGUI_PatternWidget(aPatternGrp),\r
-  myPicture2d->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));\r
-\r
-  // Project check box\r
-\r
-  myProjectChk = new QCheckBox(tr("PROJECT"), aPatternGrp);\r
-\r
-  // Connect signals and slots\r
-\r
-  connect(myTypeGrp,    SIGNAL(clicked(int) ), SLOT(onTypeChanged(int)));\r
-  connect(myProjectChk, SIGNAL(toggled(bool)), SLOT(onProject(bool)   ));\r
-  connect(aSelBtn,      SIGNAL(clicked()      ), SLOT(onSelBtnClicked()));\r
-\r
-  return aMainGrp;\r
-}\r
-\r
-//=======================================================================\r
-// function : createButtonFrame()\r
-// purpose  : Create frame containing buttons\r
-//=======================================================================\r
-QFrame* SMESHGUI_CreatePatternDlg::createButtonFrame (QWidget* theParent)\r
-{\r
-  QFrame* aFrame = new QFrame(theParent);\r
-  aFrame->setFrameStyle(QFrame::Box | QFrame::Sunken);\r
-\r
-  myOkBtn    = new QPushButton(tr("SMESH_BUT_OK"    ), aFrame);\r
-  mySaveBtn  = new QPushButton(tr("SAVE"            ), aFrame);\r
-  myCloseBtn = new QPushButton(tr("SMESH_BUT_CANCEL"), aFrame);\r
-\r
-  QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);\r
-\r
-  QHBoxLayout* aLay = new QHBoxLayout(aFrame, MARGIN, SPACING);\r
-\r
-  aLay->addWidget(myOkBtn);\r
-  aLay->addWidget(mySaveBtn);\r
-  aLay->addItem(aSpacer);\r
-  aLay->addWidget(myCloseBtn);\r
-\r
-  connect(myOkBtn,    SIGNAL(clicked()), SLOT(onOk()));\r
-  connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));\r
-  connect(mySaveBtn, SIGNAL(clicked()), SLOT(onSave()));\r
-\r
-  return aFrame;\r
-}\r
-\r
-//=======================================================================\r
-// function : ~SMESHGUI_CreatePatternDlg()\r
-// purpose  : Destructor\r
-//=======================================================================\r
-SMESHGUI_CreatePatternDlg::~SMESHGUI_CreatePatternDlg()\r
-{\r
-  // no need to delete child widgets, Qt does it all for us\r
-}\r
-\r
-//=======================================================================\r
-// function : onProject()\r
-// purpose  : SLOT. Called when state of "Project nodes on ther face"\r
-//            checkbox is changed\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::onProject (bool)\r
-{\r
-  loadFromObject(false);\r
-  displayPreview();\r
-}\r
-\r
-//=======================================================================\r
-// function : Init()\r
-// purpose  : Init dialog fields, connect signals and slots, show dialog\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::Init( const int theType )\r
-{\r
-  myIsLoaded     = false;\r
-  myType         = -1;\r
-  myNbPoints     = -1;\r
-  mySubMesh      = SMESH::SMESH_subMesh::_nil();\r
-  myMesh         = SMESH::SMESH_Mesh::_nil();\r
-  myGeomObj      = GEOM::GEOM_Object::_nil();\r
-  myPattern      = SMESH::SMESH_Pattern::_nil();\r
-\r
-  erasePreview();\r
-\r
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);\r
-\r
-  // selection and SMESHGUI\r
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));\r
-  connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));\r
-  connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));\r
-\r
-  mySwitch2d->setEnabled(theType == Type_2d);\r
-  mySwitch3d->setEnabled(theType == Type_3d);\r
-\r
-  if (theType == Type_2d)\r
-    myProjectChk->show();\r
-  else\r
-    myProjectChk->hide();\r
-\r
-  myTypeGrp->setButton(theType);\r
-  onTypeChanged(theType);\r
-\r
-  myName->setText(getDefaultName());\r
-  myMeshEdit->setText("");\r
-\r
-  setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));\r
-  qApp->processEvents();\r
-  updateGeometry();\r
-  myPicture2d->updateGeometry();\r
-  adjustSize();\r
-  resize(minimumSize());\r
-\r
-  activateSelection();\r
-  onSelectionDone();\r
-\r
-  int x, y;\r
-  mySMESHGUI->DefineDlgPosition(this, x, y);\r
-  this->move(x, y);\r
-  this->show();\r
-}\r
-\r
-//=======================================================================\r
-// function : SetMesh()\r
-// purpose  : Set mesh to dialog\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::SetMesh (SMESH::SMESH_Mesh_ptr thePtr)\r
-{\r
-  myMesh = SMESH::SMESH_Mesh::_duplicate(thePtr);\r
-  mySubMesh = SMESH::SMESH_subMesh::_nil();\r
-\r
-  bool isValidMesh = false;\r
-  if (!myMesh->_is_nil())\r
-  {\r
-    _PTR(SObject) aSobj = SMESH::FindSObject(myMesh.in());\r
-    //Handle(SALOME_InteractiveObject) anIObj =\r
-    //  new SALOME_InteractiveObject(aSobj->GetID().c_str(), "SMESH");\r
-    SUIT_DataOwnerPtr anIObj (new SalomeApp_DataOwner(aSobj->GetID().c_str()));\r
-\r
-    isValidMesh = mySelectionMgr->isOk(anIObj);\r
-  }\r
-\r
-  if (isValidMesh) {\r
-    _PTR(SObject) aSO = SMESH::FindSObject(myMesh.in());\r
-    myMeshEdit->setText(aSO->GetName().c_str());\r
-    myGeomObj = SMESH::GetGeom(aSO);\r
-  } else {\r
-    myMeshEdit->setText("");\r
-    myGeomObj = GEOM::GEOM_Object::_nil();\r
-  }\r
-\r
-  if (myType == Type_2d) {\r
-    loadFromObject(false);\r
-    displayPreview();\r
-  }\r
-}\r
-\r
-//=======================================================================\r
-// function : isValid()\r
-// purpose  : Verify validity of entry data\r
-//=======================================================================\r
-bool SMESHGUI_CreatePatternDlg::isValid()\r
-{\r
-  if (myGeomObj->_is_nil()) {\r
-    QMessageBox::information(SMESH::GetDesktop( mySMESHGUI ),\r
-                             tr("SMESH_INSUFFICIENT_DATA"),\r
-                             tr("SMESHGUI_INVALID_PARAMETERS"),\r
-                             QMessageBox::Ok);\r
-    return false;\r
-  }\r
-  else\r
-    return true;\r
-}\r
-\r
-//=======================================================================\r
-// function : getDefaultName()\r
-// purpose  : Get default pattern name\r
-//=======================================================================\r
-QString SMESHGUI_CreatePatternDlg::getDefaultName() const\r
-{\r
-  return myType == Type_2d ? tr("DEFAULT_2D") : tr("DEFAULT_3D");\r
-}\r
-\r
-//=======================================================================\r
-// function : onSave()\r
-// purpose  : SLOT called when "Save" button pressed. Build pattern and\r
-//           save it to disk\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::onSave()\r
-{\r
-  try {\r
-    if (!isValid())\r
-      return;\r
-\r
-    if (!myIsLoaded)\r
-      loadFromObject(true);\r
-\r
-    // Load pattern from object\r
-    if (!myIsLoaded)\r
-      return;\r
-\r
-    ///////////////////////////////////////////////////////\r
-    SUIT_FileDlg* aDlg = new SUIT_FileDlg (this, false);\r
-    aDlg->setCaption(tr("SAVE_PATTERN"));\r
-    aDlg->setMode(QFileDialog::AnyFile);\r
-    aDlg->setFilters(tr("PATTERN_FILT"));\r
-    if (myName->text() != "")\r
-      aDlg->setSelection(myName->text());\r
-\r
-    if (aDlg->exec() != Accepted)\r
-      return;\r
-\r
-    QString fName = aDlg->selectedFile();\r
-    if (fName.isEmpty())\r
-      return;\r
-\r
-    if (QFileInfo(fName).extension().isEmpty())\r
-      fName = autoExtension(fName);\r
-\r
-    fName = QDir::convertSeparators(fName);\r
-\r
-    QString aData (myPattern->GetString());\r
-    long aLen = aData.length();\r
-\r
-    QFile aFile (fName);\r
-    aFile.open(IO_WriteOnly);\r
-    long aWritten = aFile.writeBlock(aData, aLen);\r
-    aFile.close();\r
-\r
-    if (aWritten != aLen) {\r
-      QMessageBox::information(SMESH::GetDesktop( mySMESHGUI ), tr("SMESH_ERROR"),\r
-                               tr("ERROR_OF_SAVING"), QMessageBox::Ok);\r
-    } else {\r
-      //SUIT_Application::getDesktop()->setSelectionModes(ActorSelection);\r
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))\r
-       aViewWindow->SetSelectionMode(ActorSelection);\r
-      disconnect(mySelectionMgr, 0, this, 0);\r
-      disconnect(mySMESHGUI, 0, this, 0);\r
-      mySMESHGUI->ResetState();\r
-      accept();\r
-      emit NewPattern();\r
-    }\r
-  } catch (const SALOME::SALOME_Exception& S_ex) {\r
-    SalomeApp_Tools::QtCatchCorbaException(S_ex);\r
-  } catch (...) {\r
-  }\r
-}\r
-\r
-//=======================================================================\r
-// function : GetPatternName()\r
-// purpose  : Get name of pattern\r
-//=======================================================================\r
-QString SMESHGUI_CreatePatternDlg::GetPatternName() const\r
-{\r
-  return myName->text();\r
-}\r
-\r
-//=======================================================================\r
-// function : GetPattern()\r
-// purpose  : Get result pattern\r
-//=======================================================================\r
-SMESH::SMESH_Pattern_ptr SMESHGUI_CreatePatternDlg::GetPattern()\r
-{\r
-  return myPattern.in();\r
-}\r
-\r
-//=======================================================================\r
-// function : onOk()\r
-// purpose  : SLOT called when "Ok" button pressed.\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::onOk()\r
-{\r
-  try {\r
-    if (!isValid())\r
-      return;\r
-\r
-    if (!myIsLoaded)\r
-      loadFromObject(true);\r
-\r
-    // Load pattern from object\r
-    if (!myIsLoaded) {\r
-      return;\r
-    } else {\r
-      //SUIT_Application::getDesktop()->setSelectionModes(ActorSelection);\r
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))\r
-       aViewWindow->SetSelectionMode(ActorSelection);\r
-      disconnect(mySelectionMgr, 0, this, 0);\r
-      disconnect(mySMESHGUI, 0, this, 0);\r
-      mySMESHGUI->ResetState();\r
-      accept();\r
-      emit NewPattern();\r
-    }\r
-  } catch (const SALOME::SALOME_Exception& S_ex) {\r
-    SalomeApp_Tools::QtCatchCorbaException(S_ex);\r
-  } catch (...) {\r
-  }\r
-}\r
-\r
-//=======================================================================\r
-// function : onClose()\r
-// purpose  : SLOT called when "Close" button pressed. Close dialog\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::onClose()\r
-{\r
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))\r
-    aViewWindow->SetSelectionMode(ActorSelection);\r
-  disconnect(mySelectionMgr, 0, this, 0);\r
-  disconnect(mySMESHGUI, 0, this, 0);\r
-  mySMESHGUI->ResetState();\r
-  reject();\r
-  emit Close();\r
-}\r
-\r
-//=======================================================================\r
-// function : loadFromObject()\r
-// purpose  : Load pattern from geom object corresponding to the mesh/submesh\r
-//=======================================================================\r
-bool SMESHGUI_CreatePatternDlg::loadFromObject (const bool theMess)\r
-{\r
-  try {\r
-    myIsLoaded = false;\r
-\r
-    if (myPattern->_is_nil())\r
-      myPattern = SMESH::GetPattern();\r
-\r
-    if (myMesh->_is_nil() && mySubMesh->_is_nil() || myGeomObj->_is_nil())\r
-      return false;\r
-\r
-    SMESH::SMESH_Mesh_ptr aMesh = mySubMesh->_is_nil() ? myMesh.in() : mySubMesh->GetFather();\r
-\r
-    myIsLoaded = myType == Type_2d\r
-      ? myPattern->LoadFromFace(aMesh, myGeomObj, myProjectChk->isChecked())\r
-      : myPattern->LoadFrom3DBlock(aMesh, myGeomObj);\r
-\r
-    if (!myIsLoaded && theMess) {\r
-      QString aMess;\r
-      SMESH::SMESH_Pattern::ErrorCode aCode = myPattern->GetErrorCode();\r
-\r
-      if      (aCode == SMESH::SMESH_Pattern::ERR_LOAD_EMPTY_SUBMESH  ) aMess = tr("ERR_LOAD_EMPTY_SUBMESH");\r
-      else if (aCode == SMESH::SMESH_Pattern::ERR_LOADF_NARROW_FACE   ) aMess = tr("ERR_LOADF_NARROW_FACE");\r
-      else if (aCode == SMESH::SMESH_Pattern::ERR_LOADF_CLOSED_FACE   ) aMess = tr("ERR_LOADF_CLOSED_FACE");\r
-      else if (aCode == SMESH::SMESH_Pattern::ERR_LOADV_BAD_SHAPE     ) aMess = tr("ERR_LOADV_BAD_SHAPE");\r
-      else if (aCode == SMESH::SMESH_Pattern::ERR_LOADV_COMPUTE_PARAMS) aMess = tr("ERR_LOADV_COMPUTE_PARAMS");\r
-      else                                                              aMess = tr("ERROR_OF_CREATION");\r
-\r
-      QMessageBox::information(SMESH::GetDesktop( mySMESHGUI ),\r
-                               tr("SMESH_ERROR"), aMess, QMessageBox::Ok);\r
-    }\r
-  } catch (const SALOME::SALOME_Exception& S_ex) {\r
-    SalomeApp_Tools::QtCatchCorbaException(S_ex);\r
-  }\r
-\r
-  return myIsLoaded;\r
-}\r
-\r
-//=======================================================================\r
-// function : onSelectionDone()\r
-// purpose  : SLOT called when selection changed\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::onSelectionDone()\r
-{\r
-  try {\r
-    SALOME_ListIO aList;\r
-    mySelectionMgr->selectedObjects(aList, SVTK_Viewer::Type());\r
-    if (aList.Extent() != 1)\r
-      return;\r
-\r
-    // Get mesh or sub-mesh from selection\r
-    Handle(SALOME_InteractiveObject) anIO = aList.First();\r
-    SMESH::SMESH_Mesh_var aMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(anIO);\r
-    SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(anIO);\r
-    if (aMesh->_is_nil() && aSubMesh->_is_nil())\r
-      return;\r
-\r
-    // Get geom object corresponding to the mesh\r
-    _PTR(SObject) aSO;\r
-    if (!aMesh->_is_nil())\r
-      aSO = SMESH::FindSObject(aMesh.in());\r
-    else\r
-      aSO = SMESH::FindSObject(aSubMesh.in());\r
-\r
-    GEOM::GEOM_Object_var aGeomObj = SMESH::GetGeom(aSO);\r
-    if (aGeomObj->_is_nil())\r
-      return;\r
-\r
-    myGeomObj = aGeomObj;\r
-\r
-    // init class fields\r
-    if (!aMesh->_is_nil()) {\r
-      myMesh = aMesh;\r
-      mySubMesh = SMESH::SMESH_subMesh::_nil();\r
-    } else {\r
-      mySubMesh = aSubMesh;\r
-      myMesh = SMESH::SMESH_Mesh::_nil();\r
-    }\r
-\r
-    QString aName;\r
-    SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aName);\r
-    myMeshEdit->setText(aName);\r
-\r
-    if (myType == Type_2d) {\r
-      loadFromObject(true);\r
-      displayPreview();\r
-    }\r
-  } catch (...) {\r
-    myMesh = SMESH::SMESH_Mesh::_nil();\r
-    mySubMesh = SMESH::SMESH_subMesh::_nil();\r
-    myGeomObj = GEOM::GEOM_Object::_nil();\r
-    erasePreview();\r
-  }\r
-}\r
-\r
-//=======================================================================\r
-// function : onDeactivate()\r
-// purpose  : SLOT called when dialog must be deativated\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::onDeactivate()\r
-{\r
-  disconnect(mySelectionMgr, 0, this, 0);\r
-  setEnabled(false);\r
-}\r
-\r
-//=======================================================================\r
-// function : enterEvent()\r
-// purpose  : Event filter\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::enterEvent (QEvent*)\r
-{\r
-  mySMESHGUI->EmitSignalDeactivateDialog();\r
-  setEnabled(true);\r
-  activateSelection();\r
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));\r
-}\r
-\r
-//=================================================================================\r
-// function : closeEvent()\r
-// purpose  : Close dialog box\r
-//=================================================================================\r
-void SMESHGUI_CreatePatternDlg::closeEvent (QCloseEvent*)\r
-{\r
-  onClose();\r
-}\r
-\r
-//=======================================================================\r
-// function : onSelBtnClicked()\r
-// purpose  : SLOT. Called when -> button clicked.\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::onSelBtnClicked()\r
-{\r
-  onSelectionDone();\r
-}\r
-\r
-//================================================================\r
-// function : autoExtension()\r
-// purpose  : Append extension to the file name\r
-//================================================================\r
-QString SMESHGUI_CreatePatternDlg::autoExtension (const QString& theFileName) const\r
-{\r
-  QString anExt = theFileName.section('.', -1);\r
-  return anExt != "smp" && anExt != "SMP" ? theFileName + ".smp" : theFileName;\r
-}\r
-\r
-//=======================================================================\r
-// function : displayPreview()\r
-// purpose  : Display preview\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::displayPreview()\r
-{\r
-  // Redisplay preview in dialog\r
-  try {\r
-    if (!myIsLoaded) {\r
-      erasePreview();\r
-    } else {\r
-      SMESH::point_array_var pnts = myPattern->GetPoints();\r
-      SMESH::long_array_var keyPoints = myPattern->GetKeyPoints();\r
-      SMESH::array_of_long_array_var elemPoints = myPattern->GetElementPoints(false);\r
-\r
-      if (pnts->length()       == 0 ||\r
-          keyPoints->length()  == 0 ||\r
-          elemPoints->length() == 0) {\r
-        myIsLoaded = false;\r
-        erasePreview();\r
-        return;\r
-      }\r
-\r
-      PointVector aPoints (pnts->length());\r
-      QValueVector<int> aKeyPoints (keyPoints->length());\r
-      ConnectivityVector anElemPoints (elemPoints->length());\r
-\r
-      for (int i = 0, n = pnts->length(); i < n; i++)\r
-        aPoints[ i ] = pnts[ i ];\r
-\r
-      for (int i2 = 0, n2 = keyPoints->length(); i2 < n2; i2++)\r
-        aKeyPoints[ i2 ] = keyPoints[ i2 ];\r
-\r
-      for (int i3 = 0, n3 = elemPoints->length(); i3 < n3; i3++) {\r
-        QValueVector<int> aVec (elemPoints[ i3 ].length());\r
-        for (int i4 = 0, n4 = elemPoints[ i3 ].length(); i4 < n4; i4++)\r
-          aVec[ i4 ] = elemPoints[ i3 ][ i4 ];\r
-\r
-        anElemPoints[ i3 ] = aVec;\r
-      }\r
-\r
-      myPicture2d->SetPoints(aPoints, aKeyPoints, anElemPoints);\r
-    }\r
-\r
-    return;\r
-\r
-  } catch (const SALOME::SALOME_Exception& S_ex) {\r
-    SalomeApp_Tools::QtCatchCorbaException(S_ex);\r
-  } catch (...) {\r
-  }\r
-  erasePreview();\r
-}\r
-\r
-//=======================================================================\r
-// function : erasePreview()\r
-// purpose  : Erase preview\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::erasePreview()\r
-{\r
-  // Erase preview in 2D viewer\r
-  myPicture2d->SetPoints(PointVector(), QValueVector<int>(), ConnectivityVector());\r
-}\r
-\r
-//=======================================================================\r
-// function : activateSelection()\r
-// purpose  : Activate selection in accordance with current pattern type\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::activateSelection()\r
-{\r
-  mySelectionMgr->clearFilters();\r
-  //SUIT_Application::getDesktop()->setSelectionModes(ActorSelection);\r
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))\r
-    aViewWindow->SetSelectionMode(ActorSelection);\r
-\r
-  if (myType == Type_2d) {\r
-    mySelectionMgr->installFilter(new SMESH_NumberFilter\r
-      ("SMESH", TopAbs_SHAPE, -1, TopAbs_FACE));\r
-  } else {\r
-    TColStd_MapOfInteger aTypes;\r
-    aTypes.Add(TopAbs_SHELL);\r
-    aTypes.Add(TopAbs_SOLID);\r
-    mySelectionMgr->installFilter(new SMESH_NumberFilter\r
-      ("SMESH", TopAbs_FACE, 6, aTypes, GEOM::GEOM_Object::_nil(), true));\r
-  }\r
-}\r
-\r
-//=======================================================================\r
-// function : onTypeChanged()\r
-// purpose  : SLOT. Called when pattern type changed.\r
-//            Change dialog's look and feel\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::onTypeChanged (int theType)\r
-{\r
-  if (myType == theType)\r
-    return;\r
-\r
-  myType = theType;\r
-\r
-  if (theType == Type_2d)\r
-    myPicture2d->show();\r
-  else\r
-    myPicture2d->hide();\r
-}\r
diff --git a/src/SMESHGUI/SMESHGUI_CreatePatternDlg.h b/src/SMESHGUI/SMESHGUI_CreatePatternDlg.h
deleted file mode 100755 (executable)
index 2e2555c..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_CreatePatternDlg.h
-//  Author : Sergey LITONIN
-//  Module : SMESH
-
-
-#ifndef SMESHGUI_CreatePatternDlg_H
-#define SMESHGUI_CreatePatternDlg_H
-
-#include <qdialog.h>
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-#include CORBA_SERVER_HEADER(SMESH_Pattern)
-
-class SMESHGUI_PatternWidget;
-class SALOMEDSClient_SObject;
-
-class QCloseEvent;
-class QFrame;
-class QLineEdit;
-class SMESHGUI_SpinBox;
-class QPushButton;
-class SalomeApp_SelectionMgr;
-class QRadioButton;
-class QCheckBox;
-class QButtonGroup;
-class QLabel;
-class SVTK_ViewWindow;
-class SVTK_Selector;
-class SMESHGUI;
-
-/*!
- *  Class       : SMESHGUI_CreatePatternDlg
- *  Description : Dialog to specify filters for VTK viewer
- */
-
-class SMESHGUI_CreatePatternDlg : public QDialog
-{
-  Q_OBJECT
-
-public:
-  enum { Type_2d, Type_3d };
-
-public:
-                           SMESHGUI_CreatePatternDlg( SMESHGUI*,
-                                                     const int,
-                                                     const char* = 0);
-  virtual                  ~SMESHGUI_CreatePatternDlg();
-
-  void                     Init(const int);
-  QString                  GetPatternName() const;
-  SMESH::SMESH_Pattern_ptr GetPattern();
-  void                     SetMesh (SMESH::SMESH_Mesh_ptr);
-
-signals:
-
-  void                     NewPattern();
-  void                     Close();
-
-private:
-
-  void                     closeEvent (QCloseEvent* e);
-  void                     enterEvent (QEvent*);
-
-private slots:
-
-  void                     onOk();
-  void                     onSave();
-  void                     onClose();
-
-  void                     onDeactivate();
-
-  void                     onSelectionDone();
-  void                     onTypeChanged (int);
-  void                     onProject (bool);
-  void                     onSelBtnClicked();
-
-private:
-
-  QFrame*                  createButtonFrame (QWidget*);
-  QFrame*                  createMainFrame   (QWidget*);
-  void                     displayPreview();
-  void                     erasePreview();
-  void                     activateSelection();
-  QString                  autoExtension (const QString& theFileName) const;
-  bool                     isValid();
-  bool                     loadFromObject (const bool = true);
-  QString                  getDefaultName() const;
-  GEOM::GEOM_Object_ptr    getGeom (SALOMEDSClient_SObject*) const;
-
-private:
-
-  QPushButton*             myOkBtn;
-  QPushButton*             mySaveBtn;
-  QPushButton*             myCloseBtn;
-
-  QButtonGroup*            myTypeGrp;
-  QRadioButton*            mySwitch2d;
-  QRadioButton*            mySwitch3d;
-  QRadioButton*            mySwitchSMESH_Pattern3d;
-
-  QLineEdit*               myMeshEdit;
-  QLineEdit*               myName;
-
-  SMESHGUI_PatternWidget*  myPicture2d;
-
-  QCheckBox*               myProjectChk;
-
-  SMESHGUI*                mySMESHGUI;
-  SVTK_Selector*           mySelector;
-  SalomeApp_SelectionMgr*  mySelectionMgr;
-  int                      myNbPoints;
-  int                      myType;
-
-  SMESH::SMESH_Mesh_var    myMesh;
-  SMESH::SMESH_subMesh_var mySubMesh;
-  GEOM::GEOM_Object_var    myGeomObj;
-
-  SMESH::SMESH_Pattern_var myPattern;
-  bool                     myIsLoaded;
-};
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.cxx b/src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.cxx
deleted file mode 100644 (file)
index a58fd06..0000000
+++ /dev/null
@@ -1,999 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_CreatePolyhedralVolumeDlg.cxx
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header: 
-
-#include "SMESHGUI_CreatePolyhedralVolumeDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_MeshUtils.h"
-#include "SMESHGUI_IdValidator.h"
-#include "SMESH_ActorUtils.h"
-#include "SMESHGUI_SpinBox.h"
-#include "SMESH_Actor.h"
-#include "SMESH_TypeFilter.hxx"
-#include "SMDS_Mesh.hxx"
-
-#include "VTKViewer_ViewWindow.h"
-
-#include "SUIT_ResourceMgr.h"
-
-#include "SalomeApp_Application.h"
-#include "SalomeApp_Study.h"
-#include "SUIT_Desktop.h"
-#include "SUIT_MessageBox.h"
-#include "SalomeApp_SelectionMgr.h"
-#include "utilities.h"
-
-#include "SVTK_ViewWindow.h"
-#include "SVTK_Selector.h"
-
-#include <TColStd_MapIteratorOfMapOfInteger.hxx>
-#include <TColStd_ListOfInteger.hxx>
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
-
-#include <vtkCell.h>
-#include <vtkIdList.h>
-#include <vtkIntArray.h>
-#include <vtkCellArray.h>
-#include <vtkUnsignedCharArray.h>
-#include <vtkUnstructuredGrid.h>
-#include <vtkDataSetMapper.h>
-
-// QT Includes
-#include <qapplication.h>
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qcheckbox.h>
-#include <qlayout.h>
-#include <qspinbox.h> 
-#include <qpixmap.h>
-#include <qlistbox.h>
-
-// IDL Headers
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Group)
-
-using namespace std;
-
-namespace SMESH{
-
-class TPolySimulation{
-    SVTK_ViewWindow* myViewWindow;
-
-    SALOME_Actor *myPreviewActor;
-    vtkDataSetMapper* myMapper;
-    vtkUnstructuredGrid* myGrid;
-
-  public:
-
-    TPolySimulation(SalomeApp_Application* app)
-    {
-      SUIT_ViewManager* mgr = app->activeViewManager();
-      myViewWindow = mgr ? dynamic_cast<SVTK_ViewWindow*>( mgr->getActiveView() ) : NULL;
-
-      myGrid = vtkUnstructuredGrid::New();
-  
-      // Create and display actor
-      myMapper = vtkDataSetMapper::New();
-      myMapper->SetInput( myGrid );
-
-      myPreviewActor = SALOME_Actor::New();
-      myPreviewActor->PickableOff();
-      myPreviewActor->VisibilityOff();
-      myPreviewActor->SetMapper( myMapper );
-
-      float anRGB[3];
-      vtkProperty* aProp = vtkProperty::New();
-      GetColor( "SMESH", "fill_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 170, 255 ) );
-      aProp->SetColor(anRGB[0],anRGB[1],anRGB[2]);
-      myPreviewActor->SetProperty( aProp );
-      aProp->Delete();
-
-      vtkProperty* aBackProp = vtkProperty::New();
-      GetColor( "SMESH", "backface_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 0, 255 ) );
-      aBackProp->SetColor(anRGB[0],anRGB[1],anRGB[2]);
-      myPreviewActor->SetBackfaceProperty( aBackProp );
-      aBackProp->Delete();
-
-      myViewWindow->AddActor( myPreviewActor );
-
-    }
-
-
-    typedef std::vector<vtkIdType> TVTKIds;
-    void SetPosition(SMESH_Actor* theActor, 
-                    vtkIdType theType, 
-                    const TVTKIds& theIds,
-                    bool theReset=true)
-    {
-      vtkUnstructuredGrid *aGrid = theActor->GetUnstructuredGrid();
-      myGrid->SetPoints(aGrid->GetPoints());
-
-      if (theReset) ResetGrid(theReset);
-      
-      vtkIdList *anIds = vtkIdList::New();
-
-      for (int i = 0, iEnd = theIds.size(); i < iEnd; i++)
-       anIds->InsertId(i,theIds[i]);
-
-      myGrid->InsertNextCell(theType,anIds);
-      if(theIds.size()!=0){
-       myGrid->InsertNextCell(theType,anIds);
-       myGrid->Modified();
-      }
-       
-      anIds->Delete();
-
-      SetVisibility(true);
-
-    }
-  
-    void ResetGrid(bool theReset=true){
-      if (theReset) myGrid->Reset();
-    }
-
-    void SetVisibility(bool theVisibility){
-      myPreviewActor->SetVisibility(theVisibility);
-      RepaintCurrentView();
-    }
-
-
-    ~TPolySimulation(){
-        if( myViewWindow )
-         myViewWindow->RemoveActor(myPreviewActor);
-
-      myPreviewActor->Delete();
-
-      myMapper->RemoveAllInputs();
-      myMapper->Delete();
-
-      myGrid->Delete();
-    }
-
-  };
-}
-
-//=================================================================================
-// class    : SMESHGUI_CreatePolyhedralVolumeDlgDlg()
-// purpose  : 
-//=================================================================================
-SMESHGUI_CreatePolyhedralVolumeDlg::SMESHGUI_CreatePolyhedralVolumeDlg( SMESHGUI* theModule, const char* name,
-                                                                       bool modal, WFlags fl )
-  : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
-    mySMESHGUI( theModule ),
-    mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-  QPixmap image0( SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap( "SMESH",tr("ICON_SELECT")));
-
-  if ( !name )
-    setName( "SMESHGUI_CreatePolyhedralVolumeDlg" );
-  resize( 300, 185 ); 
-  setCaption( tr( "SMESH_CREATE_POLYHEDRAL_VOLUME_TITLE" ) );
-  setSizeGripEnabled( TRUE );
-  SMESHGUI_CreatePolyhedralVolumeDlgLayout = new QGridLayout( this ); 
-  SMESHGUI_CreatePolyhedralVolumeDlgLayout->setSpacing( 6 );
-  SMESHGUI_CreatePolyhedralVolumeDlgLayout->setMargin( 11 );
-
-  /***************************************************************/
-  GroupConstructors = new QButtonGroup( this, "GroupConstructors" );
-  GroupConstructors->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)0, 0, 0, GroupConstructors->sizePolicy().hasHeightForWidth() ) );
-  GroupConstructors->setTitle( tr( "SMESH_ELEMENTS_TYPE" ) );
-  GroupConstructors->setExclusive( TRUE );
-  GroupConstructors->setColumnLayout(0, Qt::Vertical );
-  GroupConstructors->layout()->setSpacing( 0 );
-  GroupConstructors->layout()->setMargin( 0 );
-  GroupConstructorsLayout = new QGridLayout( GroupConstructors->layout() );
-  GroupConstructorsLayout->setAlignment( Qt::AlignTop );
-  GroupConstructorsLayout->setSpacing( 6 );
-  GroupConstructorsLayout->setMargin( 11 );
-  RadioButton1= new QRadioButton( GroupConstructors, "RadioButton1" );
-  RadioButton1->setText( tr( "MESH_NODE"  ) );
-  GroupConstructorsLayout->addWidget( RadioButton1, 0, 0 );
-  RadioButton2= new QRadioButton( GroupConstructors, "RadioButton2" );
-  RadioButton2->setText( tr( "SMESH_FACE"  ) );
-  GroupConstructorsLayout->addWidget( RadioButton2, 0, 2  );
-  SMESHGUI_CreatePolyhedralVolumeDlgLayout->addWidget( GroupConstructors, 0, 0 );
-  
-  /***************************************************************/
-  GroupButtons = new QGroupBox( this, "GroupButtons" );
-  GroupButtons->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, GroupButtons->sizePolicy().hasHeightForWidth() ) );
-  GroupButtons->setGeometry( QRect( 10, 10, 281, 48 ) ); 
-  GroupButtons->setTitle( tr( ""  ) );
-  GroupButtons->setColumnLayout(0, Qt::Vertical );
-  GroupButtons->layout()->setSpacing( 0 );
-  GroupButtons->layout()->setMargin( 0 );
-  GroupButtonsLayout = new QGridLayout( GroupButtons->layout() );
-  GroupButtonsLayout->setAlignment( Qt::AlignTop );
-  GroupButtonsLayout->setSpacing( 6 );
-  GroupButtonsLayout->setMargin( 11 );
-  buttonCancel = new QPushButton( GroupButtons, "cancel" );
-  buttonCancel->setText( tr( "SMESH_BUT_CLOSE"  ) );
-  buttonCancel->setAutoDefault( TRUE );
-  GroupButtonsLayout->addWidget( buttonCancel, 0, 3 );
-  buttonApply = new QPushButton( GroupButtons, "apply" );
-  buttonApply->setText( tr( "SMESH_BUT_APPLY"  ) );
-  buttonApply->setAutoDefault( TRUE );
-  GroupButtonsLayout->addWidget( buttonApply, 0, 1 );
-  QSpacerItem* spacer_9 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
-  GroupButtonsLayout->addItem( spacer_9, 0, 2 );
-  buttonOk = new QPushButton( GroupButtons, "ok" );
-  buttonOk->setText( tr( "SMESH_BUT_OK"  ) );
-  buttonOk->setAutoDefault( TRUE );
-  buttonOk->setDefault( TRUE );
-  GroupButtonsLayout->addWidget( buttonOk, 0, 0 );
-  SMESHGUI_CreatePolyhedralVolumeDlgLayout->addWidget( GroupButtons, 2, 0 );
-
-  /***************************************************************/
-  GroupContent = new QGroupBox( this, "GroupContent" );
-  GroupContent->setTitle( tr( "SMESH_CONTENT" ) );
-  GroupContent->setColumnLayout(0, Qt::Vertical );
-  GroupContent->layout()->setSpacing( 0 );
-  GroupContent->layout()->setMargin( 0 );
-  GroupContentLayout = new QGridLayout( GroupContent->layout() );
-  GroupContentLayout->setAlignment( Qt::AlignTop );
-  GroupContentLayout->setSpacing( 6 );
-  GroupContentLayout->setMargin( 11 );
-
-  QFrame* anIds = new QFrame(GroupContent, "anIds");
-  QGridLayout* aLayout = new QGridLayout(anIds, 1, 3);
-  aLayout->setSpacing(6);
-  aLayout->setAutoAdd(false);
-  
-  TextLabelIds = new QLabel( anIds, "TextLabelIds" );
-  TextLabelIds->setText( tr( "SMESH_ID_NODES" ) );
-  TextLabelIds->setFixedWidth(74);
-  aLayout->addWidget( TextLabelIds, 0, 0 );
-
-  SelectElementsButton  = new QPushButton( anIds, "SelectElementsButton" );
-  SelectElementsButton->setText( tr( "" ) );
-  SelectElementsButton->setPixmap( image0 );
-  SelectElementsButton->setToggleButton( FALSE );
-  aLayout->addWidget( SelectElementsButton, 0, 1 );
-
-  LineEditElements  = new QLineEdit( anIds, "LineEditElements" );
-  LineEditElements->setValidator( new SMESHGUI_IdValidator( this, "validator" ));
-  aLayout->addWidget( LineEditElements, 0, 2 );
-  
-  GroupContentLayout->addMultiCellWidget(anIds, 0, 0, 0, 1);
-
-  myFacesByNodesLabel = new QLabel(GroupContent, "faces by nodes label");
-  myFacesByNodesLabel->setText(tr("FACES_BY_NODES"));
-  GroupContentLayout->addWidget( myFacesByNodesLabel, 1, 0 );
-
-  myFacesByNodes = new QListBox(GroupContent, "faces by nodes list");
-  myFacesByNodes->setSelectionMode(QListBox::Extended);
-  myFacesByNodes->setMinimumHeight(150);
-  GroupContentLayout->addMultiCellWidget( myFacesByNodes, 2, 4, 0, 0 );
-
-  AddButton = new QPushButton(GroupContent, "add");
-  AddButton->setText(tr("SMESH_BUT_ADD"));
-  AddButton->setMaximumWidth(85);
-  GroupContentLayout->addWidget( AddButton, 2, 1 );
-
-  RemoveButton = new QPushButton(GroupContent, "remove");
-  RemoveButton->setText(tr("SMESH_BUT_REMOVE"));
-  RemoveButton->setMaximumWidth(85);
-  GroupContentLayout->addWidget( RemoveButton, 3, 1 );
-
-  Preview = new QCheckBox( GroupContent, "Preview" );
-  Preview->setText( tr( "SMESH_POLYEDRE_PREVIEW"  ) );
-  GroupContentLayout->addWidget( Preview , 5, 0 );
-
-  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
-  
-  SMESHGUI_CreatePolyhedralVolumeDlgLayout->addWidget( GroupContent, 1, 0 );
-  
-  GroupContent->show();
-  RadioButton1->setChecked( TRUE );
-  mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
-  
-  Init();
-}
-
-//=================================================================================
-// function : ~SMESHGUI_CreatePolyhedralVolumeDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_CreatePolyhedralVolumeDlg::~SMESHGUI_CreatePolyhedralVolumeDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-  delete mySimulation;
-}
-
-static bool busy = false;
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreatePolyhedralVolumeDlg::Init()
-{
-  myEditCurrentArgument = LineEditElements;
-  mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
-
-  myNbOkElements = 0;
-  myActor = 0;
-
-  mySimulation = new SMESH::TPolySimulation( dynamic_cast<SalomeApp_Application*>( mySMESHGUI->application() ) );
-
-  /* signals and slots connections */
-  connect(buttonOk, SIGNAL( clicked() ),     SLOT( ClickOnOk() ) );
-  connect(buttonCancel, SIGNAL( clicked() ), SLOT( ClickOnCancel() ) ) ;
-  connect(buttonApply, SIGNAL( clicked() ),  SLOT(ClickOnApply() ) );
-
-  connect( GroupConstructors, SIGNAL(clicked(int) ), SLOT( ConstructorsClicked(int) ) );
-  connect(SelectElementsButton, SIGNAL( clicked() ), SLOT( SetEditCurrentArgument() ) ) ;
-  connect(LineEditElements, SIGNAL( textChanged(const QString&) ), SLOT(onTextChange(const QString&)));
-
-  connect(myFacesByNodes, SIGNAL(selectionChanged()), this, SLOT(onListSelectionChanged()));
-  connect(AddButton, SIGNAL(clicked()), this, SLOT(onAdd()));
-  connect(RemoveButton, SIGNAL(clicked()), this, SLOT(onRemove()));
-  
-  connect( mySMESHGUI, SIGNAL ( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ) ;
-  connect( mySelectionMgr, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
-  connect( Preview, SIGNAL(toggled(bool)), this, SLOT(ClickOnPreview(bool)));
-  /* to close dialog if study change */
-  connect( mySMESHGUI, SIGNAL ( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ) ;
-  
-  /* Move widget on the botton right corner of main widget */
-  int x, y ;
-  mySMESHGUI->DefineDlgPosition( this, x, y ) ;
-  this->move( x, y ) ;
-  this->show() ; /* displays Dialog */
-
-  ConstructorsClicked(0);
-  SelectionIntoArgument();
-}
-
-
-//=================================================================================
-// function : ConstructorsClicked()
-// purpose  : Radio button management
-//=================================================================================
-void SMESHGUI_CreatePolyhedralVolumeDlg::ConstructorsClicked(int constructorId)
-{
-  //disconnect(mySelectionMgr, 0, this, 0);
-
-  SALOME_ListIO aList;
-  mySelectionMgr->setSelectedObjects( aList );
-  myEditCurrentArgument->clear();
-  myNbOkElements = 0;
-  buttonApply->setEnabled(false);
-  buttonOk->setEnabled(false);
-  mySimulation->SetVisibility(false);
-
-  switch(constructorId)
-    {
-    case 0 :
-      { 
-       if ( myActor ){
-          myActor->SetPointRepresentation(true);
-         myActor->SetEntityMode(SMESH_Actor::eVolumes);
-         myActor->SetRepresentation(SMESH_Actor::eSurface);
-       }
-        else
-          SMESH::SetPointRepresentation(true);
-       if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-         aViewWindow->SetSelectionMode(NodeSelection);
-       
-       AddButton->setEnabled(false);
-       RemoveButton->setEnabled(false);
-       TextLabelIds->setText( tr( "SMESH_ID_NODES" ) );
-       myFacesByNodesLabel->show();
-       myFacesByNodes->clear();
-       myFacesByNodes->show();
-       AddButton->show();
-       RemoveButton->show();
-       Preview->show();
-       break;
-      }
-    case 1 :
-      {
-       if( myActor ){
-         myActor->SetPointRepresentation(false);
-         myActor->SetEntityMode(SMESH_Actor::eFaces);
-         myActor->SetEntityMode(SMESH_Actor::eVolumes);
-         myActor->SetRepresentation(SMESH_Actor::eSurface);
-       } else {
-         SMESH::SetPointRepresentation(false);
-       }
-       if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-         aViewWindow->SetSelectionMode(FaceSelection);
-       
-       TextLabelIds->setText( tr( "SMESH_ID_FACES" ) );
-       myFacesByNodesLabel->hide();
-       myFacesByNodes->hide();
-       AddButton->hide();
-       RemoveButton->hide();
-       Preview->show();
-       break;
-      }
-    }
-  
-  //connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-}
-
-//=================================================================================
-// function : ClickOnPreview()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreatePolyhedralVolumeDlg::ClickOnPreview(bool theToggled){
-  Preview->setChecked(theToggled);
-  displaySimulation();
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreatePolyhedralVolumeDlg::ClickOnApply()
-{
-  if ( myNbOkElements>0 && !mySMESHGUI->isActiveStudyLocked())
-    {
-      busy = true;
-      if (GetConstructorId() == 0)
-       {
-         SMESH::long_array_var anIdsOfNodes = new SMESH::long_array;
-         SMESH::long_array_var aQuantities  = new SMESH::long_array;
-
-         aQuantities->length( myFacesByNodes->count() );
-
-         TColStd_ListOfInteger aNodesIds;
-
-         QListBoxItem* anItem;
-         int aNbQuantities = 0;
-         for (anItem = myFacesByNodes->firstItem(); anItem != 0; anItem = anItem->next()) {
-           QStringList anIds = QStringList::split(" ", anItem->text());
-           int aNbNodesInFace = 0;
-           for (QStringList::iterator it = anIds.begin(); it != anIds.end(); ++it, ++aNbNodesInFace)
-             aNodesIds.Append( (*it).toInt() );
-
-           aQuantities[aNbQuantities++] = aNbNodesInFace;
-         }
-
-         anIdsOfNodes->length(aNodesIds.Extent());
-
-         int aNbIdsOfNodes = 0;
-         TColStd_ListIteratorOfListOfInteger It;
-         It.Initialize(aNodesIds);
-         for(;It.More();It.Next())
-           anIdsOfNodes[aNbIdsOfNodes++] = It.Value();
-           
-         try{
-           SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
-           QApplication::setOverrideCursor(Qt::waitCursor);
-           aMeshEditor->AddPolyhedralVolume(anIdsOfNodes, aQuantities);
-           QApplication::restoreOverrideCursor();
-         }catch(SALOME::SALOME_Exception& exc){
-           INFOS("Follow exception was cought:\n\t"<<exc.details.text);
-         }catch(std::exception& exc){
-           INFOS("Follow exception was cought:\n\t"<<exc.what());
-         }catch(...){
-           INFOS("Unknown exception was cought !!!");
-         }
-       }
-      else if (GetConstructorId() == 1)
-       {
-         SMESH::long_array_var anIdsOfFaces = new SMESH::long_array;
-         
-         QStringList aListId = QStringList::split( " ", myEditCurrentArgument->text() );
-         anIdsOfFaces->length(aListId.count());
-         for ( int i = 0; i < aListId.count(); i++ )
-           anIdsOfFaces[i] = aListId[i].toInt();
-         
-         try{
-           SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
-           QApplication::setOverrideCursor(Qt::waitCursor);
-           aMeshEditor->AddPolyhedralVolumeByFaces(anIdsOfFaces);
-           QApplication::restoreOverrideCursor();
-         }catch(SALOME::SALOME_Exception& exc){
-           INFOS("Follow exception was cought:\n\t"<<exc.details.text);
-         }catch(std::exception& exc){
-           INFOS("Follow exception was cought:\n\t"<<exc.what());
-         }catch(...){
-           INFOS("Unknown exception was cought !!!");
-         }
-       }
-      
-      SALOME_ListIO aList;
-      mySelectionMgr->setSelectedObjects( aList );
-      mySimulation->SetVisibility(false);
-      SMESH::UpdateView();
-      ConstructorsClicked( GetConstructorId() );
-      busy = false;
-    }
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreatePolyhedralVolumeDlg::ClickOnOk()
-{
-  ClickOnApply() ;
-  ClickOnCancel() ;
-}
-
-       
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreatePolyhedralVolumeDlg::ClickOnCancel()
-{
-  mySelectionMgr->clearFilters();
-  SALOME_ListIO aList;
-  mySelectionMgr->setSelectedObjects( aList );
-  SMESH::SetPointRepresentation(false);
-  mySimulation->SetVisibility(false);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode( ActorSelection );
-  disconnect( mySelectionMgr, 0, this, 0 );
-  mySMESHGUI->ResetState() ;
-  reject() ;
-}
-
-//=======================================================================
-//function : onTextChange
-//purpose  : 
-//=======================================================================
-
-void SMESHGUI_CreatePolyhedralVolumeDlg::onTextChange(const QString& theNewText)
-{
-  if ( busy ) return;
-  busy = true;
-
-  mySimulation->SetVisibility(false);
-
-  SMDS_Mesh* aMesh = 0;
-  if ( myActor )
-    aMesh = myActor->GetObject()->GetMesh();
-
-  if (GetConstructorId() == 0)
-  {
-    if ( aMesh ) {
-      TColStd_MapOfInteger newIndices;
-      
-      QStringList aListId = QStringList::split( " ", theNewText, false);
-      for ( int i = 0; i < aListId.count(); i++ ) {
-       const SMDS_MeshNode * n = aMesh->FindNode( aListId[ i ].toInt() );
-       if ( n ) {
-         newIndices.Add(n->GetID());
-         myNbOkElements++;
-        }
-      }
-      
-      mySelector->AddOrRemoveIndex( myActor->getIO(), newIndices, false );
-      
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->highlight( myActor->getIO(), true, true );
-      
-      if ( myNbOkElements>0 && aListId.count()>=3)
-       AddButton->setEnabled(true);
-      else
-       AddButton->setEnabled(false);
-      
-      displaySimulation();
-    }
-  } else if (GetConstructorId() == 1)
-  {
-    myNbOkElements = 0;
-    buttonOk->setEnabled( false );
-    buttonApply->setEnabled( false );
-      
-      // check entered ids of faces and hilight them
-    QStringList aListId;
-    if ( aMesh ) {
-      TColStd_MapOfInteger newIndices;
-      
-      aListId = QStringList::split( " ", theNewText, false);
-
-      for ( int i = 0; i < aListId.count(); i++ ) {
-       const SMDS_MeshElement * e = aMesh->FindElement( aListId[ i ].toInt() );
-       if ( e ) {
-         newIndices.Add(e->GetID());
-         myNbOkElements++;  
-       }
-      }
-
-      mySelector->AddOrRemoveIndex( myActor->getIO(), newIndices, false );
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->highlight( myActor->getIO(), true, true );
-      
-      if ( myNbOkElements ) {
-       if (aListId.count()>1){ 
-         buttonOk->setEnabled( true );
-         buttonApply->setEnabled( true );
-       }
-       else{
-         buttonOk->setEnabled( false );
-         buttonApply->setEnabled( false );
-       }
-       displaySimulation();
-      }
-    }
-  }
-  busy = false;
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_CreatePolyhedralVolumeDlg::SelectionIntoArgument()
-{
-  if ( busy ) return;
-  
-  // clear
-  
-  if (GetConstructorId() == 1 || myFacesByNodes->count() <= 1)
-    {
-      myNbOkElements = 0;
-      AddButton->setEnabled(false);
-      buttonOk->setEnabled( false );
-      buttonApply->setEnabled( false );
-    }
-
-  myActor = 0;
-
-  busy = true;
-  myEditCurrentArgument->setText( "" );
-  busy = false;
-  if ( !GroupButtons->isEnabled() ) // inactive
-    return;
-  
-  mySimulation->SetVisibility(false);
-  
-  // get selected mesh
-  
-  SALOME_ListIO selected;
-  mySelectionMgr->selectedObjects( selected );
-  int nbSel = selected.Extent();
-  if(nbSel != 1){
-    return;
-  }
-  
-  myMesh = SMESH::GetMeshByIO( selected.First() );
-  if ( myMesh->_is_nil() )
-    return;
-  
-  myActor = SMESH::FindActorByObject(myMesh);
-  if ( !myActor )
-    return;
-  
-  // get selected nodes/faces
-  QString aString = "";
-  switch(GetConstructorId()){
-  case 0:{
-    int anbNodes = SMESH::GetNameOfSelectedNodes(mySelector, myActor->getIO(), aString);
-    if (anbNodes >= 3)
-      AddButton->setEnabled(true);
-    else if (anbNodes < 3){
-      AddButton->setEnabled(false);
-    }
-    busy = true;
-    myEditCurrentArgument->setText( aString );
-    busy = false;
-    break;
-  }
-  case 1:{
-    // get selected faces
-    int aNbFaces = SMESH::GetNameOfSelectedElements(mySelector, myActor->getIO(), aString);
-    if (aNbFaces<=1){
-      buttonOk->setEnabled( false );
-      buttonApply->setEnabled( false );
-    } else {
-      buttonOk->setEnabled( true );
-      buttonApply->setEnabled( true );
-    }
-    busy = true;
-    myEditCurrentArgument->setText( aString );
-    busy = false;
-    
-    // OK
-    myNbOkElements = 1;
-    break;
-  }
-  default: return;
-  }
-  
-  displaySimulation();
-}
-
-//=======================================================================
-//function : displaySimulation
-//purpose  : 
-//=======================================================================
-void SMESHGUI_CreatePolyhedralVolumeDlg::displaySimulation()
-{
-  if ( (myNbOkElements || AddButton->isEnabled()) && GroupButtons->isEnabled() && myActor)
-    {
-      SMESH::TPolySimulation::TVTKIds aVTKIds;
-      vtkIdType aType = VTK_CONVEX_POINT_SET ;
-      if (GetConstructorId() == 0){
-       if(!Preview->isChecked()) myActor->SetEntityMode(SMESH_Actor::eFaces);
-       else myActor->SetEntityMode(SMESH_Actor::eVolumes);
-       if (!AddButton->isEnabled()){
-         QListBoxItem* anItem;
-         mySimulation->ResetGrid(true);
-         for (anItem = myFacesByNodes->firstItem(); anItem != 0; anItem = anItem->next()) {
-           QStringList anIds = QStringList::split(" ", anItem->text());
-           SMESH::TPolySimulation::TVTKIds aVTKIds_faces;
-           for (QStringList::iterator it = anIds.begin(); it != anIds.end(); ++it){
-             vtkIdType aId = myActor->GetObject()->GetNodeVTKId( (*it).toInt() ) ;
-             aVTKIds.push_back(aId);
-             aVTKIds_faces.push_back(aId);
-           }
-           if(!Preview->isChecked()){
-             aType = VTK_POLYGON;
-             mySimulation->SetPosition(myActor, aType, aVTKIds_faces,false);
-           }
-         }
-         if(myFacesByNodes->count() == 0){
-           mySimulation->SetVisibility(false);
-         } else {
-           mySimulation->SetVisibility(true);
-         }
-         if(Preview->isChecked()){
-           mySimulation->SetPosition(myActor, aType, aVTKIds);
-         }
-       } else {
-         // add ids from edit line
-         QStringList anEditIds = QStringList::split( " ", myEditCurrentArgument->text(), false);
-         myActor->SetEntityMode(SMESH_Actor::eFaces);
-         for ( int i = 0; i < anEditIds.count(); i++ )
-           aVTKIds.push_back( myActor->GetObject()->GetNodeVTKId( anEditIds[ i ].toInt() ));
-         aType = VTK_POLYGON;
-         mySimulation->SetPosition(myActor, aType, aVTKIds);
-       }
-      }else if(GetConstructorId() == 1){
-       SMDS_Mesh* aMesh = 0;
-       if ( myActor ){
-         aMesh = myActor->GetObject()->GetMesh();
-         if (Preview->isChecked())
-           myActor->SetEntityMode(SMESH_Actor::eVolumes);
-         else
-           myActor->SetEntityMode(SMESH_Actor::eFaces);
-       }
-       if ( aMesh ) {
-         QStringList aListId = QStringList::split( " ", myEditCurrentArgument->text(), false);
-         for ( int i = 0; i < aListId.count(); i++ )
-           {
-             const SMDS_MeshElement * anElem = aMesh->FindElement( aListId[ i ].toInt() );
-             if ( !anElem )
-               return;
-             
-             SMDS_ElemIteratorPtr anIter = anElem->nodesIterator();
-             SMESH::TPolySimulation::TVTKIds aVTKIds_faces;
-             while( anIter->more() )
-               if ( const SMDS_MeshNode* aNode = (SMDS_MeshNode*)anIter->next() ){
-                 vtkIdType aId = myActor->GetObject()->GetNodeVTKId( aNode->GetID() ) ;
-                 aVTKIds.push_back(aId);
-                 aVTKIds_faces.push_back(aId);
-               }
-             if(!Preview->isChecked()){
-               aType = VTK_POLYGON;
-               mySimulation->SetPosition(myActor, aType, aVTKIds_faces);
-             }
-           }
-         if(Preview->isChecked())
-           mySimulation->SetPosition(myActor, aType, aVTKIds);
-       }
-      }
-      SMESH::UpdateView();
-    }
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreatePolyhedralVolumeDlg::SetEditCurrentArgument()
-{
-  QPushButton* send = (QPushButton*)sender();
-  if(send == SelectElementsButton) {
-    LineEditElements->setFocus() ;
-    myEditCurrentArgument = LineEditElements;
-  }
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreatePolyhedralVolumeDlg::DeactivateActiveDialog()
-{
-  if ( GroupConstructors->isEnabled() ) {
-    GroupConstructors->setEnabled(false) ;
-    GroupContent->setEnabled(false) ;
-    GroupButtons->setEnabled(false) ;
-    mySimulation->SetVisibility(false);
-    mySMESHGUI->ResetState() ;    
-    mySMESHGUI->SetActiveDialogBox(0) ;
-  }
-}
-
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreatePolyhedralVolumeDlg::ActivateThisDialog()
-{
-  /* Emit a signal to deactivate the active dialog */
-  mySMESHGUI->EmitSignalDeactivateDialog() ;   
-  GroupConstructors->setEnabled(true) ;
-  GroupContent->setEnabled(true) ;
-  GroupButtons->setEnabled(true) ;
-  
-  mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
-
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode( FaceSelection );
-  SelectionIntoArgument();
-}
-
-
-//=================================================================================
-// function : enterEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreatePolyhedralVolumeDlg::enterEvent(QEvent* e)
-{
-  if ( GroupConstructors->isEnabled() )
-    return ;  
-  ActivateThisDialog() ;
-}
-
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreatePolyhedralVolumeDlg::closeEvent( QCloseEvent* e )
-{
-  /* same than click on cancel button */
-  this->ClickOnCancel() ;
-}
-
-
-//=======================================================================
-//function : hideEvent
-//purpose  : caused by ESC key
-//=======================================================================
-
-void SMESHGUI_CreatePolyhedralVolumeDlg::hideEvent ( QHideEvent * e )
-{
-  if ( !isMinimized() )
-    ClickOnCancel();
-}
-
-
-//=================================================================================
-// function : GetConstructorId()
-// purpose  : 
-//=================================================================================
-int SMESHGUI_CreatePolyhedralVolumeDlg::GetConstructorId()
-{ 
-  if ( GroupConstructors != NULL && GroupConstructors->selected() != NULL )
-    return GroupConstructors->id( GroupConstructors->selected() );
-  return -1;
-}
-
-//=================================================================================
-// function : onAdd()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreatePolyhedralVolumeDlg::onAdd()
-{
-  SALOME_ListIO selected;
-  mySelectionMgr->selectedObjects( selected );
-  int aNbSel = selected.Extent();
-  if (aNbSel == 0 || !myActor || myMesh->_is_nil()) return;
-
-  busy = true;
-
-  if ( !(myEditCurrentArgument->text().isEmpty()) )
-    {
-      myFacesByNodes->insertItem(myEditCurrentArgument->text());
-      //myFacesByNodes->setSelected(myFacesByNodes->count() - 1, true);
-      myNbOkElements = 1;
-      myEditCurrentArgument->clear();
-      AddButton->setEnabled(false);
-      buttonOk->setEnabled( true );
-      if(myFacesByNodes->count()>1) buttonApply->setEnabled( true );
-    }
-  busy = false;
-  onListSelectionChanged();
-  displaySimulation();
-}
-
-//=================================================================================
-// function : onRemove()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreatePolyhedralVolumeDlg::onRemove()
-{
-  busy = true;
-  for (int i = myFacesByNodes->count(); i > 0; i--) {
-    if (myFacesByNodes->isSelected(i-1)) {
-      myFacesByNodes->removeItem(i-1);
-      myNbOkElements = 1;
-    }
-  }
-  if (myFacesByNodes->count() < 1){
-    RemoveButton->setEnabled(false);
-    buttonOk->setEnabled( false );
-    buttonApply->setEnabled( false );
-  } 
-  else if (myFacesByNodes->count() == 1){
-    buttonOk->setEnabled( false );
-    buttonApply->setEnabled( false );
-  }
-  busy = false;
-  displaySimulation();
-}
-
-//=================================================================================
-// function : onListSelectionChanged()
-// purpose  : Called when selection in element list is changed
-//=================================================================================
-void SMESHGUI_CreatePolyhedralVolumeDlg::onListSelectionChanged()
-{
-  if (busy || !myActor) return;
-  busy = true;
-  bool isSelected=false;
-  SALOME_ListIO aList;
-  mySelectionMgr->setSelectedObjects( aList );
-  TColStd_MapOfInteger aIndexes;
-  QListBoxItem* anItem;
-  for (anItem = myFacesByNodes->firstItem(); anItem != 0; anItem = anItem->next()) {
-    if (anItem->isSelected()) {
-      isSelected = true;
-      QStringList anIds = QStringList::split(" ", anItem->text());
-      for (QStringList::iterator it = anIds.begin(); it != anIds.end(); ++it)
-       aIndexes.Add((*it).toInt());
-    }
-  }
-  if(isSelected) RemoveButton->setEnabled(true);
-  else RemoveButton->setEnabled(false);
-  mySelector->AddOrRemoveIndex(myActor->getIO(), aIndexes, true );
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->highlight( myActor->getIO(), true, true );
-  mySelectionMgr->clearFilters(); 
-  aList.Append( myActor->getIO() );
-  mySelectionMgr->setSelectedObjects( aList );
-  
-  busy = false;
-}
diff --git a/src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.h b/src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.h
deleted file mode 100644 (file)
index 8ba99e3..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_CreatePolyhedralVolumeDlg.h
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header: 
-
-#ifndef DIALOGBOX_CREATEPOLYHEDRAL_H
-#define DIALOGBOX_CREATEPOLYHEDRAL_H
-
-// QT Includes
-#include <qdialog.h>
-
-class QGridLayout; 
-class QButtonGroup;
-class QGroupBox;
-class QListBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-class QCheckBox;
-class SMESHGUI;
-class SMESH_Actor;
-class SVTK_Selector;
-class SVTK_ViewWindow;
-class SalomeApp_SelectionMgr;
-
-namespace SMESH{
-  struct TPolySimulation;
-}
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-//=================================================================================
-// class    : SMESHGUI_CreatePolyhedralVolumeDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_CreatePolyhedralVolumeDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_CreatePolyhedralVolumeDlg( SMESHGUI*, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
-    ~SMESHGUI_CreatePolyhedralVolumeDlg();
-
-private:
-
-    void Init() ;
-    void closeEvent( QCloseEvent* e ) ;
-    void enterEvent ( QEvent * ) ;                          /* mouse enter the QWidget */
-    void hideEvent ( QHideEvent * );                        /* ESC key */
-    int  GetConstructorId();
-    void displaySimulation();
-    
-    SMESHGUI*                     mySMESHGUI ;              /* Current SMESHGUI object */
-    SalomeApp_SelectionMgr*       mySelectionMgr ;             /* User shape selection */
-    SVTK_Selector*                mySelector;
-    QString                       myIDs;
-    int                           myNbOkElements ;            /* to check when elements are defined */
-
-    QLineEdit*                    myEditCurrentArgument;
-   
-    SMESH::SMESH_Mesh_var         myMesh;
-    SMESH_Actor*                  myActor;
-    SMESH::TPolySimulation*       mySimulation;
-    
-    QButtonGroup* GroupConstructors;
-    QRadioButton* RadioButton1;
-    QRadioButton* RadioButton2;
-    QCheckBox* Preview;
-    QGroupBox* GroupButtons;
-    QPushButton* buttonOk;
-    QPushButton* buttonCancel;
-    QPushButton* buttonApply;
-    QGroupBox* GroupContent;
-    QLabel* TextLabelIds;
-    QPushButton* SelectElementsButton;
-    QLineEdit* LineEditElements;
-    QListBox* myFacesByNodes;
-    QLabel* myFacesByNodesLabel;
-    QPushButton* AddButton;
-    QPushButton* RemoveButton;
-       
-    public slots:
-
-    void onAdd();
-    void onRemove();
-
-    private slots:
-
-    void ConstructorsClicked(int constructorId);
-    void ClickOnPreview(bool theToggled);
-    void ClickOnOk();
-    void ClickOnCancel();
-    void ClickOnApply();
-    void SetEditCurrentArgument() ;
-    void SelectionIntoArgument() ;
-    void DeactivateActiveDialog() ;
-    void ActivateThisDialog() ;
-    void onTextChange(const QString&);
-    void onListSelectionChanged();
-    
-protected:
-    QGridLayout* SMESHGUI_CreatePolyhedralVolumeDlgLayout;
-    QGridLayout* GroupConstructorsLayout;
-    QGridLayout* GroupButtonsLayout;
-    QGridLayout* GroupContentLayout;
-};
-
-#endif // DIALOGBOX_CREATEPOLYHEDRAL_H
diff --git a/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx b/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx
deleted file mode 100644 (file)
index cd6afe1..0000000
+++ /dev/null
@@ -1,305 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_DeleteGroupDlg.cxx
-//  Author : Sergey LITONIN
-//  Module : SMESH
-
-#include "SMESHGUI_DeleteGroupDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-
-#include "SMESH_TypeFilter.hxx"
-
-#include "SUIT_Desktop.h"
-
-#include "SalomeApp_Study.h"
-#include "SalomeApp_SelectionMgr.h"
-
-#include "SALOME_ListIO.hxx"
-#include "SALOME_ListIteratorOfListIO.hxx"
-
-#include "SVTK_Selection.h"
-#include "SVTK_ViewWindow.h"
-
-// QT Includes
-#include <qframe.h>
-#include <qlayout.h>
-#include <qpushbutton.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlistbox.h>
-#include <qlist.h>
-#include <qmessagebox.h>
-
-// IDL Headers
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-#define SPACING 5
-#define MARGIN  10
-
-/*!
- *  Class       : SMESHGUI_DeleteGroupDlg
- *  Description : Delete groups and their contents
- */
-
-//=================================================================================
-// function : SMESHGUI_DeleteGroupDlg()
-// purpose  : Constructor
-//=================================================================================
-SMESHGUI_DeleteGroupDlg::SMESHGUI_DeleteGroupDlg (SMESHGUI* theModule):
-  QDialog(SMESH::GetDesktop(theModule), 
-         "SMESHGUI_DeleteGroupDlg", 
-         false,
-         WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
-  mySelectionMgr(SMESH::GetSelectionMgr(theModule)),
-  mySMESHGUI(theModule)
-{
-  setCaption(tr("CAPTION"));
-
-  QVBoxLayout* aDlgLay = new QVBoxLayout(this, MARGIN, SPACING);
-
-  QFrame* aMainFrame = createMainFrame  (this);
-  QFrame* aBtnFrame  = createButtonFrame(this);
-
-  aDlgLay->addWidget(aMainFrame);
-  aDlgLay->addWidget(aBtnFrame);
-
-  aDlgLay->setStretchFactor(aMainFrame, 1);
-
-  Init();
-}
-
-//=================================================================================
-// function : createMainFrame()
-// purpose  : Create frame containing dialog's input fields
-//=================================================================================
-QFrame* SMESHGUI_DeleteGroupDlg::createMainFrame (QWidget* theParent)
-{
-  QGroupBox* aMainGrp =
-    new QGroupBox(1, Qt::Horizontal, tr("SELECTED_GROUPS"), theParent);
-
-  myListBox = new QListBox(aMainGrp);
-  myListBox->setMinimumHeight(100);
-  myListBox->setSelectionMode(QListBox::NoSelection);
-  myListBox->setRowMode(QListBox::FitToWidth);
-
-  return aMainGrp;
-}
-
-//=================================================================================
-// function : createButtonFrame()
-// purpose  : Create frame containing buttons
-//=================================================================================
-QFrame* SMESHGUI_DeleteGroupDlg::createButtonFrame (QWidget* theParent)
-{
-  QFrame* aFrame = new QFrame(theParent);
-  aFrame->setFrameStyle(QFrame::Box | QFrame::Sunken);
-
-  myOkBtn     = new QPushButton(tr("SMESH_BUT_OK"   ), aFrame);
-  myApplyBtn  = new QPushButton(tr("SMESH_BUT_APPLY"), aFrame);
-  myCloseBtn  = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame);
-
-  QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
-
-  QHBoxLayout* aLay = new QHBoxLayout(aFrame, MARGIN, SPACING);
-
-  aLay->addWidget(myOkBtn);
-  aLay->addWidget(myApplyBtn);
-  aLay->addItem(aSpacer);
-  aLay->addWidget(myCloseBtn);
-
-  // connect signals and slots
-  connect(myOkBtn,    SIGNAL(clicked()), SLOT(onOk()));
-  connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
-  connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
-
-  return aFrame;
-}
-
-//=================================================================================
-// name    : ~SMESHGUI_DeleteGroupDlg()
-// Purpose : Destructor
-//=================================================================================
-SMESHGUI_DeleteGroupDlg::~SMESHGUI_DeleteGroupDlg()
-{
-}
-
-//=================================================================================
-// function : Init()
-// purpose  : Init dialog fields, connect signals and slots, show dialog
-//=================================================================================
-void SMESHGUI_DeleteGroupDlg::Init ()
-{
-  myBlockSelection = false;
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  // selection and SMESHGUI
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
-  connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
-  connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
-
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show();
-
-  // set selection mode
-  mySelectionMgr->installFilter(new SMESH_TypeFilter(GROUP));
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-  onSelectionDone();
-
-  return;
-}
-
-//=================================================================================
-// function : isValid()
-// purpose  : Verify validity of input data
-//=================================================================================
-bool SMESHGUI_DeleteGroupDlg::isValid()
-{
-  if (myListBox->count() == 0) {
-    QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_INSUFFICIENT_DATA"),
-                             tr("NO_SELECTED_GROUPS"), QMessageBox::Ok);
-    return false;
-  }
-
-  return !mySMESHGUI->isActiveStudyLocked();
-}
-
-//=================================================================================
-// function : onApply()
-// purpose  : SLOT called when "Apply" button pressed.
-//=================================================================================
-bool SMESHGUI_DeleteGroupDlg::onApply()
-{
-  if (!isValid())
-    return false;
-
-  myBlockSelection = true;
-
-  QValueList<SMESH::SMESH_GroupBase_var>::iterator anIter;
-  for (anIter = myListGrp.begin(); anIter != myListGrp.end(); ++anIter) {
-    SMESH::SMESH_Mesh_ptr aMesh = (*anIter)->GetMesh();
-    if (!aMesh->_is_nil())
-      aMesh->RemoveGroupWithContents(*anIter);
-  }
-
-  myListBox->clear();
-  myListGrp.clear();
-  mySelectionMgr->clearSelected();
-  SMESH::UpdateView();
-  mySMESHGUI->updateObjBrowser(true);
-
-  myBlockSelection = false;
-  return true;
-}
-
-//=================================================================================
-// function : onOk()
-// purpose  : SLOT called when "Ok" button pressed.
-//=================================================================================
-void SMESHGUI_DeleteGroupDlg::onOk()
-{
-  if (onApply())
-    onClose();
-}
-
-//=================================================================================
-// function : onClose()
-// purpose  : SLOT called when "Close" button pressed. Close dialog
-//=================================================================================
-void SMESHGUI_DeleteGroupDlg::onClose()
-{
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-  disconnect(mySelectionMgr, 0, this, 0);
-  disconnect(mySMESHGUI, 0, this, 0);
-  mySMESHGUI->ResetState();
-  mySelectionMgr->clearFilters();
-  reject();
-}
-
-//=================================================================================
-// function : onSelectionDone()
-// purpose  : SLOT called when selection changed
-//=================================================================================
-void SMESHGUI_DeleteGroupDlg::onSelectionDone()
-{
-  if (myBlockSelection)
-    return;
-
-  myListGrp.clear();
-  QStringList aNames;
-
-  SALOME_ListIO aListIO;
-  mySelectionMgr->selectedObjects(aListIO);
-  SALOME_ListIteratorOfListIO anIter (aListIO);
-  for (; anIter.More(); anIter.Next()) {
-    SMESH::SMESH_GroupBase_var aGroup =
-      SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(anIter.Value());
-    if (!aGroup->_is_nil()) {
-      aNames.append(aGroup->GetName());
-      myListGrp.append(aGroup);
-    }
-  }
-
-  myListBox->clear();
-  myListBox->insertStringList(aNames);
-}
-
-//=================================================================================
-// function : onDeactivate()
-// purpose  : SLOT called when dialog must be deativated
-//=================================================================================
-void SMESHGUI_DeleteGroupDlg::onDeactivate()
-{
-  mySelectionMgr->clearFilters();
-  setEnabled(false);
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  : Event filter
-//=================================================================================
-void SMESHGUI_DeleteGroupDlg::enterEvent (QEvent*)
-{
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  setEnabled(true);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-  mySelectionMgr->installFilter(new SMESH_TypeFilter (GROUP));
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_DeleteGroupDlg::closeEvent (QCloseEvent*)
-{
-  onClose();
-}
diff --git a/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.h b/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.h
deleted file mode 100644 (file)
index 320f411..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_DeleteGroupDlg.h
-//  Author : Sergey LITONIN
-//  Module : SMESH
-
-
-#ifndef SMESHGUI_DELETEGROUPDLG_H
-#define SMESHGUI_DELETEGROUPDLG_H
-
-#include <qdialog.h>
-#include <qlist.h>
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Group)
-
-class QCloseEvent;
-class QFrame;
-class QPushButton;
-class QListBox;
-
-class SMESHGUI;
-class SVTK_ViewWindow;
-class SalomeApp_SelectionMgr;
-
-/*!
- *  Class       : SMESHGUI_DeleteGroupDlg
- *  Description : Delete groups and their contents
- */
-
-class SMESHGUI_DeleteGroupDlg : public QDialog
-{
-  Q_OBJECT
-
-public:
-                          SMESHGUI_DeleteGroupDlg( SMESHGUI* );
-  virtual                 ~SMESHGUI_DeleteGroupDlg();
-
-  void                    Init ();
-
-private:
-
-  void                    closeEvent (QCloseEvent*);
-  void                    enterEvent (QEvent*);
-
-private slots:
-
-  void                    onOk();
-  bool                    onApply();
-  void                    onClose();
-
-  void                    onDeactivate();
-
-  void                    onSelectionDone();
-
-private:
-
-  QFrame*                 createButtonFrame (QWidget*);
-  QFrame*                 createMainFrame   (QWidget*);
-  bool                    isValid();
-
-private:
-
-  QPushButton*            myOkBtn;
-  QPushButton*            myApplyBtn;
-  QPushButton*            myCloseBtn;
-  QListBox*               myListBox;
-
-  SMESHGUI*               mySMESHGUI;
-  SalomeApp_SelectionMgr* mySelectionMgr;
-
-  QValueList<SMESH::SMESH_GroupBase_var> myListGrp;
-  bool                                   myBlockSelection;
-};
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_Dialog.cxx b/src/SMESHGUI/SMESHGUI_Dialog.cxx
deleted file mode 100644 (file)
index 1e1df64..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_Dialog.cxx
-//  Author : Alexander SOLOVYOV
-//  Module : SMESH
-//  $Header$
-
-#include <SMESHGUI_Dialog.h>
-#include <SMESH_Type.h>
-#include <SUIT_Session.h>
-#include <SalomeApp_Application.h>
-
-//=================================================================================
-// function : SMESHGUI_Dialog
-// purpose  : Constructor
-//=================================================================================
-SMESHGUI_Dialog::SMESHGUI_Dialog( QWidget* parent, const bool modal,
-                                  const bool allowResize, const int flags )
-: SalomeApp_Dialog( parent == 0 ? desktop() : parent, "", modal, allowResize, flags )
-{
-  int pr = prefix( "SMESH" );
-  typeName( pr + MESH ) = tr( "DLG_MESH" );
-  typeName( pr + HYPOTHESIS ) = tr( "DLG_HYPO" );
-  typeName( pr + ALGORITHM ) = tr( "DLG_ALGO" );
-  if ( flags & Close )
-    setButtonPosition( Right, Close );
-}
-
-//=================================================================================
-// function : ~SMESHGUI_Dialog
-// purpose  : Destructor
-//=================================================================================
-SMESHGUI_Dialog::~SMESHGUI_Dialog()
-{
-}
-
-//=================================================================================
-// function : show
-// purpose  :
-//=================================================================================
-void SMESHGUI_Dialog::show()
-{
-  adjustSize();
-  SUIT_Desktop *PP = desktop();
-  int x = abs( PP->x() + PP->size().width() - size().width() - 10 ),
-      y = abs( PP->y() + PP->size().height() - size().height() - 10 );
-  move(x, y);
-  SalomeApp_Dialog::show();
-}
-
-//=================================================================================
-// function : setContentActive
-// purpose  :
-//=================================================================================
-void SMESHGUI_Dialog::setContentActive( const bool active ) const
-{
-  mainFrame()->setEnabled( active );
-}
-
-//=================================================================================
-// function : desktop
-// purpose  :
-//=================================================================================
-SUIT_Desktop* SMESHGUI_Dialog::desktop() const
-{
-  SUIT_Desktop* d = 0;
-  SUIT_Session* s = SUIT_Session::session();
-  if( s )
-  {
-    SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( s->activeApplication() );
-    if( app )
-      d = app->desktop();
-  }
-  return d;
-}
-
-//=======================================================================
-// name    : prefix
-// Purpose : Get prefix for module types
-//=======================================================================
-int SMESHGUI_Dialog::prefix( const QString& name )
-{
-  if( name == "GEOM" )
-    return 100;
-  else if( name == "SMESH" )
-    return 200;
-  else if( name == "SMESH element" )
-    return 300;
-  else
-    return 0;
-}
-
-//=======================================================================
-// name    : resourceMgr
-// Purpose : Gets resource manager
-//=======================================================================
-SUIT_ResourceMgr* resourceMgr()
-{
-  return SUIT_Session::session()->resourceMgr();
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/SMESHGUI/SMESHGUI_Dialog.h b/src/SMESHGUI/SMESHGUI_Dialog.h
deleted file mode 100644 (file)
index 66f61c6..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_Dialog.h
-//  Author : Alexander SOLOVYOV
-//  Module : SMESH
-//  $Header$
-
-
-#ifndef SMESHGUI_DIALOG_H
-#define SMESHGUI_DIALOG_H
-
-#include <SalomeApp_Dialog.h>
-
-class SUIT_Desktop;
-class SUIT_ResourceMgr;
-
-//=================================================================================
-// class    : SMESHGUI_Dialog
-// purpose  : Base dialog for all SMESHGUI dialogs
-//=================================================================================
-class SMESHGUI_Dialog : public SalomeApp_Dialog
-{
-  Q_OBJECT
-  
-public:
-  SMESHGUI_Dialog( QWidget* = 0, const bool = false, const bool = false, const int = OK | Close | Apply );
-  virtual ~SMESHGUI_Dialog();
-
-  virtual void show();
-
-  //! set all content to enable (parameter is true) or disable state
-  virtual void setContentActive( const bool ) const;
-
-  //! Return hard-coded prefix using to differ overlapping types
-  static int   prefix( const QString& );
-
-protected:
-  //! find desktop of active application
-  SUIT_Desktop* desktop() const;
-  
-  //! gets resource manager
-  SUIT_ResourceMgr* resourceMgr();
-};
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_EditHypothesesDlg.cxx b/src/SMESHGUI/SMESHGUI_EditHypothesesDlg.cxx
deleted file mode 100644 (file)
index c2d0185..0000000
+++ /dev/null
@@ -1,963 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_EditHypothesesDlg.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_EditHypothesesDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_GEOMGenUtils.h"
-#include "SMESHGUI_HypothesesUtils.h"
-
-#include "SMESH_TypeFilter.hxx"
-#include "SMESH_NumberFilter.hxx"
-
-#include "SALOME_ListIO.hxx"
-#include "SALOME_ListIteratorOfListIO.hxx"
-
-#include "SALOMEDSClient_Study.hxx"
-#include "SALOMEDSClient_AttributeIOR.hxx"
-#include "SALOMEDSClient_AttributeName.hxx"
-
-#include "SUIT_Session.h"
-#include "SUIT_OverrideCursor.h"
-#include "SUIT_Operation.h"
-#include "SUIT_Desktop.h"
-
-#include "utilities.h"
-
-#include "SVTK_ViewModel.h"
-
-// QT Includes
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qlayout.h>
-#include <qpixmap.h>
-
-using namespace std;
-
-//VRV: porting on Qt 3.0.5
-#if QT_VERSION >= 0x030005
-#include <qlistbox.h>
-#endif
-//VRV: porting on Qt 3.0.5
-
-class ListBoxIOR : public QListBoxText
-{
-public:
-  enum { RTTI_IOR = 1000 };
-
-public:
-  ListBoxIOR (QListBox* listbox,
-              const char* ior,
-              const QString& text = QString::null)
-  : QListBoxText(listbox, text), myIOR(ior) {}
-  virtual ~ListBoxIOR() {};
-  virtual int rtti() const { return RTTI_IOR; }
-  const char* GetIOR() { return myIOR.c_str(); }
-
-private:
-  string myIOR;
-};
-
-#define ALLOW_CHANGE_SHAPE 0
-
-int findItem (QListBox* listBox, const string& ior)
-{
-  for (int i = 0; i < listBox->count(); i++) {
-    if (listBox->item(i)->rtti() == ListBoxIOR::RTTI_IOR) {
-      ListBoxIOR* anItem = (ListBoxIOR*)(listBox->item(i));
-      if (anItem && ior == string(anItem->GetIOR()))
-       return i;
-    }
-  }
-  return -1;
-}
-
-//=================================================================================
-// function : SMESHGUI_EditHypothesesDlg()
-// purpose  : Constructs a SMESHGUI_EditHypothesesDlg which is a child of 'parent', with the
-//            name 'name' and widget flags set to 'f'.
-//            The dialog will by default be modeless, unless you set 'modal' to
-//            TRUE to construct a modal dialog.
-//=================================================================================
-SMESHGUI_EditHypothesesDlg::SMESHGUI_EditHypothesesDlg (SMESHGUI* theModule, const char* name,
-                                                        bool modal, WFlags fl)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-                WStyle_Title | WStyle_SysMenu | WDestructiveClose),
-    myImportedMesh(false),
-    mySMESHGUI( theModule ),
-    mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-    QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
-    if (!name)
-      setName("SMESHGUI_EditHypothesesDlg");
-    setCaption(tr("SMESH_EDIT_HYPOTHESES"));
-    setSizeGripEnabled(TRUE);
-    QGridLayout* SMESHGUI_EditHypothesesDlgLayout = new QGridLayout(this);
-    SMESHGUI_EditHypothesesDlgLayout->setSpacing(6);
-    SMESHGUI_EditHypothesesDlgLayout->setMargin(11);
-
-    /***************************************************************/
-    GroupC1 = new QGroupBox(tr("SMESH_ARGUMENTS"), this, "GroupC1");
-    GroupC1->setColumnLayout(0, Qt::Vertical);
-    GroupC1->layout()->setSpacing(0);
-    GroupC1->layout()->setMargin(0);
-    QGridLayout* GroupC1Layout = new QGridLayout(GroupC1->layout());
-    GroupC1Layout->setAlignment(Qt::AlignTop);
-    GroupC1Layout->setSpacing(6);
-    GroupC1Layout->setMargin(11);
-
-    TextLabelC1A1 = new QLabel(tr("SMESH_OBJECT_MESHorSUBMESH"), GroupC1, "TextLabelC1A1");
-    GroupC1Layout->addWidget(TextLabelC1A1, 0, 0);
-    SelectButtonC1A1 = new QPushButton(GroupC1, "SelectButtonC1A1");
-    SelectButtonC1A1->setPixmap(image0);
-    GroupC1Layout->addWidget(SelectButtonC1A1, 0, 1);
-    LineEditC1A1 = new QLineEdit(GroupC1, "LineEditC1A1");
-    LineEditC1A1->setReadOnly(true);
-    GroupC1Layout->addWidget(LineEditC1A1, 0, 2);
-
-    TextLabelC1A2 = new QLabel(tr("SMESH_OBJECT_GEOM"), GroupC1, "TextLabelC1A2");
-    GroupC1Layout->addWidget(TextLabelC1A2, 1, 0);
-    SelectButtonC1A2 = new QPushButton(GroupC1, "SelectButtonC1A2");
-    SelectButtonC1A2->setPixmap(image0);
-    SelectButtonC1A2->setToggleButton(FALSE);
-    GroupC1Layout->addWidget(SelectButtonC1A2, 1, 1);
-    LineEditC1A2 = new QLineEdit(GroupC1, "LineEditC1A2");
-    LineEditC1A2->setReadOnly(true);
-    GroupC1Layout->addWidget(LineEditC1A2, 1, 2);
-
-    SMESHGUI_EditHypothesesDlgLayout->addWidget(GroupC1, 0, 0);
-
-    /***************************************************************/
-    GroupHypotheses = new QGroupBox(tr("SMESH_HYPOTHESES"), this, "GroupHypotheses");
-    GroupHypotheses->setColumnLayout(0, Qt::Vertical);
-    GroupHypotheses->layout()->setSpacing(0);
-    GroupHypotheses->layout()->setMargin(0);
-    QGridLayout* grid_3 = new QGridLayout(GroupHypotheses->layout());
-    grid_3->setAlignment(Qt::AlignTop);
-    grid_3->setSpacing(6);
-    grid_3->setMargin(11);
-
-    TextHypDefinition = new QLabel(tr("SMESH_AVAILABLE"), GroupHypotheses, "TextHypDefinition");
-    grid_3->addWidget(TextHypDefinition, 0, 0);
-
-    ListHypDefinition = new QListBox(GroupHypotheses, "ListHypDefinition");
-    ListHypDefinition->setMinimumSize(100, 100);
-    grid_3->addWidget(ListHypDefinition, 1, 0);
-
-    TextHypAssignation = new QLabel(tr("SMESH_EDIT_USED"), GroupHypotheses, "TextHypAssignation");
-    grid_3->addWidget(TextHypAssignation, 0, 1);
-
-    ListHypAssignation = new QListBox(GroupHypotheses, "ListHypAssignation");
-    ListHypAssignation->setMinimumSize(100, 100);
-    grid_3->addWidget(ListHypAssignation, 1, 1);
-
-    SMESHGUI_EditHypothesesDlgLayout->addWidget(GroupHypotheses, 1, 0);
-
-    /***************************************************************/
-    GroupAlgorithms = new QGroupBox(tr("SMESH_ADD_ALGORITHM"), this, "GroupAlgorithms");
-    GroupAlgorithms->setColumnLayout(0, Qt::Vertical);
-    GroupAlgorithms->layout()->setSpacing(0);
-    GroupAlgorithms->layout()->setMargin(0);
-    QGridLayout* grid_4 = new QGridLayout(GroupAlgorithms->layout());
-    grid_4->setAlignment(Qt::AlignTop);
-    grid_4->setSpacing(6);
-    grid_4->setMargin(11);
-
-    TextAlgoDefinition = new QLabel(tr("SMESH_AVAILABLE"), GroupAlgorithms, "TextAlgoDefinition");
-    grid_4->addWidget(TextAlgoDefinition, 0, 0);
-
-    ListAlgoDefinition = new QListBox(GroupAlgorithms, "ListAlgoDefinition");
-    ListAlgoDefinition->setMinimumSize(100, 100);
-    grid_4->addWidget(ListAlgoDefinition, 1, 0);
-
-    TextAlgoAssignation = new QLabel(tr("SMESH_EDIT_USED"), GroupAlgorithms, "TextAlgoAssignation");
-    grid_4->addWidget(TextAlgoAssignation, 0, 1);
-
-    ListAlgoAssignation = new QListBox(GroupAlgorithms, "ListAlgoAssignation");
-    ListAlgoAssignation ->setMinimumSize(100, 100);
-    grid_4->addWidget(ListAlgoAssignation, 1, 1);
-
-    SMESHGUI_EditHypothesesDlgLayout->addWidget(GroupAlgorithms, 2, 0);
-
-    /***************************************************************/
-    GroupButtons = new QGroupBox(this, "GroupButtons");
-    GroupButtons->setColumnLayout(0, Qt::Vertical);
-    GroupButtons->layout()->setSpacing(0);
-    GroupButtons->layout()->setMargin(0);
-    QGridLayout* GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-    GroupButtonsLayout->setAlignment(Qt::AlignTop);
-    GroupButtonsLayout->setSpacing(6);
-    GroupButtonsLayout->setMargin(11);
-
-    buttonOk = new QPushButton(tr("SMESH_BUT_OK"), GroupButtons, "buttonOk");
-    buttonOk->setAutoDefault(TRUE);
-    buttonOk->setDefault(FALSE);
-    GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-
-    buttonApply = new QPushButton(tr("SMESH_BUT_APPLY"), GroupButtons, "buttonApply");
-    buttonApply->setAutoDefault(TRUE);
-    buttonApply->setDefault(FALSE);
-    GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-
-    GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 2);
-
-    buttonCancel = new QPushButton(tr("SMESH_BUT_CLOSE"), GroupButtons, "buttonCancel");
-    buttonCancel->setAutoDefault(TRUE);
-    buttonCancel->setDefault(TRUE);
-    buttonCancel->setEnabled(TRUE);
-    GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-
-    SMESHGUI_EditHypothesesDlgLayout->addWidget(GroupButtons, 4, 0);
-
-    /***************************************************************/
-    Init();
-}
-
-//=================================================================================
-// function : ~SMESHGUI_EditHypothesesDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_EditHypothesesDlg::~SMESHGUI_EditHypothesesDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::Init()
-{
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  InitHypDefinition();
-  InitAlgoDefinition();
-
-  //myGeomFilter = new SALOME_TypeFilter ("GEOM");
-  TColStd_MapOfInteger allTypesMap;
-  for (int i = 0; i < 10; i++)
-    allTypesMap.Add(i);
-  myGeomFilter          = new SMESH_NumberFilter ("GEOM", TopAbs_SHAPE, 0, allTypesMap);
-  myMeshOrSubMeshFilter = new SMESH_TypeFilter (MESHorSUBMESH);
-
-  myGeomShape = GEOM::GEOM_Object::_nil();
-  myMesh = SMESH::SMESH_Mesh::_nil();
-  mySubMesh = SMESH::SMESH_subMesh::_nil();
-
-  /* signals and slots connections */
-  connect(buttonOk,     SIGNAL(clicked()), this, SLOT(ClickOnOk()));
-  connect(buttonApply,  SIGNAL(clicked()), this, SLOT(ClickOnApply()));
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-
-  connect(SelectButtonC1A1, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(SelectButtonC1A2, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
-
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()),      this, SLOT(SelectionIntoArgument()));
-  connect(mySMESHGUI,     SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySMESHGUI,     SIGNAL(SignalCloseAllDialogs()),        this, SLOT(ClickOnCancel()));
-
-  connect(ListHypAssignation,  SIGNAL(doubleClicked(QListBoxItem*)), this, SLOT(removeItem(QListBoxItem*)));
-  connect(ListAlgoAssignation, SIGNAL(doubleClicked(QListBoxItem*)), this, SLOT(removeItem(QListBoxItem*)));
-
-  connect(ListHypDefinition,  SIGNAL(doubleClicked(QListBoxItem*)), this, SLOT(addItem(QListBoxItem*)));
-  connect(ListAlgoDefinition, SIGNAL(doubleClicked(QListBoxItem*)), this, SLOT(addItem(QListBoxItem*)));
-
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show();
-
-  LineEditC1A1->setFocus();
-  myEditCurrentArgument = LineEditC1A1;
-  mySelectionMgr->clearFilters();
-  mySelectionMgr->installFilter(myMeshOrSubMeshFilter);
-
-  SelectionIntoArgument();
-
-  UpdateControlState();
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::ClickOnOk()
-{
-  if (ClickOnApply())
-    ClickOnCancel();
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-bool SMESHGUI_EditHypothesesDlg::ClickOnApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return false;
-
-  bool aRes = false;
-
-  SUIT_OverrideCursor wc;
-
-  SUIT_Operation* op = new SUIT_Operation
-    (SUIT_Session::session()->activeApplication());
-
-  // start transaction
-  op->start();
-
-  if (!myMesh->_is_nil())
-    aRes = StoreMesh();
-  else if (!mySubMesh->_is_nil())
-    aRes = StoreSubMesh();
-
-  if (true/*aRes*/) { // abort desynchronizes contents of a Study and a mesh on server
-    // commit transaction
-    op->commit();
-    InitHypAssignation();
-    InitAlgoAssignation();
-  } else {
-    // abort transaction
-    op->abort();
-  }
-
-  UpdateControlState();
-  mySMESHGUI->updateObjBrowser();
-
-  return aRes;
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::ClickOnCancel()
-{
-  close();
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::SelectionIntoArgument()
-{
-  QString aString = "";
-
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
-
-  int nbSel = SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
-
-  if (myEditCurrentArgument == LineEditC1A1) {
-    if (nbSel != 1) {
-      myMesh    = SMESH::SMESH_Mesh::_nil();
-      mySubMesh = SMESH::SMESH_subMesh::_nil();
-      aString   = "";
-    } else {
-      Handle(SALOME_InteractiveObject) IO = aList.First();
-      myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO);
-      if (myMesh->_is_nil()) {
-       mySubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO);
-       if (mySubMesh->_is_nil()) {
-         aString = "";
-       }
-      }
-    }
-    myEditCurrentArgument->setText(aString);
-
-    // InitGeom() will try to retrieve a shape from myMesh or mySubMesh
-    myGeomShape = GEOM::GEOM_Object::_nil();
-    InitGeom();
-
-    myImportedMesh = myGeomShape->_is_nil();
-
-    InitHypAssignation();
-    InitAlgoAssignation();
-
-  } else if (myEditCurrentArgument == LineEditC1A2) {
-    if (nbSel != 1) {
-      myGeomShape = GEOM::GEOM_Object::_nil();
-    } else {
-      Handle(SALOME_InteractiveObject) IO = aList.First();
-      myGeomShape = SMESH::IObjectToInterface<GEOM::GEOM_Object>(IO);
-    }
-    InitGeom();
-  }
-
-  UpdateControlState();
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::SetEditCurrentArgument()
-{
-  QPushButton* send = (QPushButton*)sender();
-  if(send == SelectButtonC1A1) {
-    LineEditC1A1->setFocus();
-    myEditCurrentArgument = LineEditC1A1;
-    mySelectionMgr->clearFilters();
-    mySelectionMgr->installFilter(myMeshOrSubMeshFilter);
-  } else if (send == SelectButtonC1A2) {
-    LineEditC1A2->setFocus();
-    myEditCurrentArgument = LineEditC1A2;
-    mySelectionMgr->clearFilters();
-    mySelectionMgr->installFilter(myGeomFilter);
-  }
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::DeactivateActiveDialog()
-{
-  if (GroupC1->isEnabled()) {
-    disconnect(mySelectionMgr, 0, this, 0);
-    GroupC1->setEnabled(false);
-    GroupButtons->setEnabled(false);
-  }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::ActivateThisDialog()
-{
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupC1->setEnabled(true);
-  GroupButtons->setEnabled(true);
-  connect (mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::enterEvent (QEvent*)
-{
-  if (!GroupC1->isEnabled())
-    ActivateThisDialog();
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::closeEvent (QCloseEvent* e)
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySMESHGUI->ResetState();
-  mySelectionMgr->clearFilters();
-  QDialog::closeEvent(e);
-}
-
-//=======================================================================
-// function : IsOld()
-// purpose  :
-//=======================================================================
-bool SMESHGUI_EditHypothesesDlg::IsOld (QListBoxItem* hypItem)
-{
-  if (hypItem->rtti() == ListBoxIOR::RTTI_IOR) {
-    ListBoxIOR* hyp = (ListBoxIOR*) hypItem;
-    return (myMapOldHypos.find(hyp->GetIOR()) != myMapOldHypos.end() ||
-            myMapOldAlgos.find(hyp->GetIOR()) != myMapOldAlgos.end());
-  }
-
-  return false;
-}
-
-//=================================================================================
-// function : removeItem()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::removeItem (QListBoxItem* item)
-{
-  const QObject* aSender = sender();
-
-  if (!item) return;
-
-  if (aSender == ListHypAssignation) {
-    myNbModification += IsOld(item) ? 1 : -1;
-    ListHypAssignation->removeItem(ListHypAssignation->index(item));
-  }
-  else if (aSender == ListAlgoAssignation) {
-    myNbModification += IsOld(item) ? 1 : -1;
-    ListAlgoAssignation->removeItem(ListAlgoAssignation->index(item));
-  }
-
-  UpdateControlState();
-}
-
-//=================================================================================
-// function : addItem()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::addItem (QListBoxItem* item)
-{
-  const QObject* aSender = sender();
-
-  if (!item) return;
-
-  ListBoxIOR* i = 0;
-  if (item->rtti() == ListBoxIOR::RTTI_IOR)
-    i = (ListBoxIOR*)item;
-  if (!i) return;
-
-  bool isFound = false;
-
-  ListBoxIOR* anItem;
-  if (aSender == ListHypDefinition) {
-    for (int j = 0, n = ListHypAssignation->count(); !isFound && j < n; j++) {
-      if (ListHypAssignation->item(j)->rtti() == ListBoxIOR::RTTI_IOR) {
-       anItem = (ListBoxIOR*)ListHypAssignation->item(j);
-       isFound = !strcmp(anItem->GetIOR(), i->GetIOR());
-      }
-    }
-    if (!isFound)
-      anItem = new ListBoxIOR (ListHypAssignation,
-                               CORBA::string_dup(i->GetIOR()),
-                               CORBA::string_dup(i->text().latin1()));
-
-  } else if (aSender == ListAlgoDefinition) {
-    for (int j = 0, n = ListAlgoAssignation->count(); !isFound && j < n; j++) {
-      if (ListAlgoAssignation->item(j)->rtti() == ListBoxIOR::RTTI_IOR) {
-       anItem = (ListBoxIOR*)ListAlgoAssignation->item(j);
-       isFound = !strcmp(anItem->GetIOR(), i->GetIOR());
-      }
-    }
-    if (!isFound)
-      anItem = new ListBoxIOR (ListAlgoAssignation,
-                               CORBA::string_dup(i->GetIOR()),
-                               CORBA::string_dup(i->text().latin1()));
-  } else {
-  }
-
-  if (!isFound)
-    myNbModification += IsOld(item) ? -1 : 1;
-
-  UpdateControlState();
-}
-
-//=================================================================================
-// function : InitHypDefinition()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::InitHypDefinition()
-{
-  ListHypDefinition->clear();
-
-  _PTR(SComponent) father = SMESH::GetActiveStudyDocument()->FindComponent("SMESH");
-  if (!father)
-    return;
-
-  _PTR(SObject)          HypothesisRoot;
-  _PTR(GenericAttribute) anAttr;
-  _PTR(AttributeName)    aName;
-  _PTR(AttributeIOR)     anIOR;
-
-  //int Tag_HypothesisRoot = 1;
-  if (father->FindSubObject(1, HypothesisRoot)) {
-    _PTR(ChildIterator) it =
-      SMESH::GetActiveStudyDocument()->NewChildIterator(HypothesisRoot);
-    ListBoxIOR* anItem;
-    for (; it->More();it->Next()) {
-      _PTR(SObject) Obj = it->Value();
-      if (Obj->FindAttribute(anAttr, "AttributeName")) {
-        aName = anAttr;
-        if (Obj->FindAttribute(anAttr, "AttributeIOR")) {
-          anIOR = anAttr;
-          anItem = new ListBoxIOR (ListHypDefinition,
-                                   anIOR->Value().c_str(),
-                                   aName->Value().c_str());
-        }
-      }
-    }
-  }
-}
-
-//=================================================================================
-// function : InitHypAssignation()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::InitHypAssignation()
-{
-  myNbModification = 0;
-
-  myMapOldHypos.clear();
-  ListHypAssignation->clear();
-  if (myImportedMesh)
-    return;
-
-  _PTR(SObject)          aMorSM, AHR, aRef;
-  _PTR(GenericAttribute) anAttr;
-  _PTR(AttributeName)    aName;
-  _PTR(AttributeIOR)     anIOR;
-
-  if (!myMesh->_is_nil())
-    aMorSM = SMESH::FindSObject(myMesh);
-  else if (!mySubMesh->_is_nil())
-    aMorSM = SMESH::FindSObject(mySubMesh);
-
-  if (aMorSM && aMorSM->FindSubObject(2, AHR)) {
-    _PTR(ChildIterator) it =
-      SMESH::GetActiveStudyDocument()->NewChildIterator(AHR);
-    for (; it->More();it->Next()) {
-      _PTR(SObject) Obj = it->Value();
-      if (Obj->ReferencedObject(aRef)) {
-        if (aRef->FindAttribute(anAttr, "AttributeName")) {
-          aName = anAttr;
-         if (aRef->FindAttribute(anAttr, "AttributeIOR")) {
-            anIOR = anAttr;
-           ListBoxIOR* anItem = new ListBoxIOR (ListHypAssignation,
-                                                anIOR->Value().c_str(),
-                                                aName->Value().c_str());
-           myMapOldHypos[ anIOR->Value() ] = ListHypAssignation->index(anItem);
-         }
-       }
-      }
-    }
-  }
-}
-
-//=================================================================================
-// function : InitAlgoDefinition()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::InitAlgoDefinition()
-{
-  ListAlgoDefinition->clear();
-
-  _PTR(SComponent) father = SMESH::GetActiveStudyDocument()->FindComponent("SMESH");
-  if (!father)
-    return;
-
-  _PTR(SObject)          AlgorithmsRoot;
-  _PTR(GenericAttribute) anAttr;
-  _PTR(AttributeName)    aName;
-  _PTR(AttributeIOR)     anIOR;
-
-  if (father->FindSubObject (2, AlgorithmsRoot)) {
-    _PTR(ChildIterator) it =
-      SMESH::GetActiveStudyDocument()->NewChildIterator(AlgorithmsRoot);
-    ListBoxIOR* anItem;
-    for (; it->More();it->Next()) {
-      _PTR(SObject) Obj = it->Value();
-      if (Obj->FindAttribute(anAttr, "AttributeName")) {
-        aName = anAttr;
-        if (Obj->FindAttribute(anAttr, "AttributeIOR")) {
-          anIOR = anAttr;
-          anItem = new ListBoxIOR (ListAlgoDefinition,
-                                   anIOR->Value().c_str(),
-                                   aName->Value().c_str());
-        }
-      }
-    }
-  }
-}
-
-//=================================================================================
-// function : InitAlgoAssignation()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::InitAlgoAssignation()
-{
-  myMapOldAlgos.clear();
-  ListAlgoAssignation->clear();
-  if (myImportedMesh)
-    return;
-
-  _PTR(SObject)          aMorSM, AHR, aRef;
-  _PTR(GenericAttribute) anAttr;
-  _PTR(AttributeName)    aName;
-  _PTR(AttributeIOR)     anIOR;
-
-  if (!myMesh->_is_nil())
-    aMorSM = SMESH::FindSObject(myMesh);
-  else if (!mySubMesh->_is_nil())
-    aMorSM = SMESH::FindSObject(mySubMesh);
-
-  if (aMorSM && aMorSM->FindSubObject(3, AHR)) {
-    _PTR(ChildIterator) it =
-      SMESH::GetActiveStudyDocument()->NewChildIterator(AHR);
-    for (; it->More();it->Next()) {
-      _PTR(SObject) Obj = it->Value();
-      if (Obj->ReferencedObject(aRef)) {
-        if (aRef->FindAttribute(anAttr, "AttributeName")) {
-         aName = anAttr;
-         if (aRef->FindAttribute(anAttr, "AttributeIOR")) {
-           anIOR = anAttr;
-           ListBoxIOR* anItem = new ListBoxIOR (ListAlgoAssignation,
-                                                anIOR->Value().c_str(),
-                                                aName->Value().c_str());
-           myMapOldAlgos[ anIOR->Value() ] = ListAlgoAssignation->index(anItem);
-         }
-       }
-      }
-    }
-  }
-}
-
-//=================================================================================
-// function : InitGeom()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::InitGeom()
-{
-  LineEditC1A2->setText("");
-
-  if (myGeomShape->_is_nil() && !myMesh->_is_nil()) {
-    _PTR(SObject) aMesh = SMESH::FindSObject(myMesh);
-    if (aMesh)
-      myGeomShape = SMESH::GetShapeOnMeshOrSubMesh(aMesh);
-  }
-  if (myGeomShape->_is_nil() && !mySubMesh->_is_nil()) {
-    _PTR(SObject) aSubMesh = SMESH::FindSObject(mySubMesh);
-    if (aSubMesh)
-      myGeomShape = SMESH::GetShapeOnMeshOrSubMesh(aSubMesh);
-  }
-
-  _PTR(GenericAttribute) anAttr;
-  _PTR(AttributeName)    aName;
-  if (!myGeomShape->_is_nil() && (!myMesh->_is_nil() || !mySubMesh->_is_nil())) {
-    _PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
-    //_PTR(SObject) aSO = aStudy->FindObjectIOR(aStudy->ConvertObjectToIOR(myGeomShape));
-    _PTR(SObject) aSO = aStudy->FindObjectID(myGeomShape->GetStudyEntry());
-    if (aSO) {
-      if (aSO->FindAttribute(anAttr, "AttributeName")) {
-       aName = anAttr;
-       LineEditC1A2->setText(QString(aName->Value().c_str()));
-      }
-    }
-  }
-}
-
-//=================================================================================
-// function : UpdateControlState()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::UpdateControlState()
-{
-  // asl the check of "count" is commented because of PAL9787
-  bool isEnabled = (!myMesh->_is_nil() && !myGeomShape->_is_nil() /*&&
-                    ListHypAssignation->count() && ListAlgoAssignation->count()*/ )
-    ||
-      (!mySubMesh->_is_nil() && !myGeomShape->_is_nil() /*&&
-       (ListHypAssignation->count() || ListAlgoAssignation->count())*/);
-
-  buttonOk   ->setEnabled(myNbModification && isEnabled && !myImportedMesh);
-  buttonApply->setEnabled(myNbModification && isEnabled && !myImportedMesh);
-
-  SelectButtonC1A2   ->setEnabled(ALLOW_CHANGE_SHAPE && !myImportedMesh);
-  LineEditC1A2       ->setEnabled(ALLOW_CHANGE_SHAPE && !myImportedMesh);
-  ListHypDefinition  ->setEnabled(!myImportedMesh);
-  ListHypAssignation ->setEnabled(!myImportedMesh);
-  ListAlgoDefinition ->setEnabled(!myImportedMesh);
-  ListAlgoAssignation->setEnabled(!myImportedMesh);
-}
-
-//=================================================================================
-// function : StoreMesh()
-// purpose  :
-//=================================================================================
-bool SMESHGUI_EditHypothesesDlg::StoreMesh()
-{
-  MapIOR anOldHypos, aNewHypos;
-  if (myGeomShape->_is_nil())
-    return false;
-
-  // 1. Check whether the geometric shape has changed
-  _PTR(SObject) aMeshSO = SMESH::FindSObject(myMesh);
-  GEOM::GEOM_Object_var aIniGeomShape = SMESH::GetShapeOnMeshOrSubMesh(aMeshSO);
-  bool bShapeChanged = aIniGeomShape->_is_nil() ||
-                       !aIniGeomShape->_is_equivalent(myGeomShape);
-  if (bShapeChanged) {
-    // VSR : TODO : Set new shape - not supported yet by SMESH engine
-    // 1. remove all old hypotheses and algorithms and also submeshes
-    // 2. set new shape
-  }
-
-  int nbFail = 0;
-  MapIOR::iterator it;
-
-  // 2. remove not used hypotheses from the mesh
-  for (it = myMapOldHypos.begin(); it != myMapOldHypos.end(); ++it) {
-    string ior = it->first;
-    int index = findItem(ListHypAssignation, ior);
-    if (index < 0) {
-      SMESH::SMESH_Hypothesis_var aHyp =
-        SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
-      if (!aHyp->_is_nil()) {
-       if (!SMESH::RemoveHypothesisOrAlgorithmOnMesh(aMeshSO, aHyp))
-         nbFail++;
-      }
-    }
-  }
-
-  // 3. remove not used algorithms from the mesh
-  for (it = myMapOldAlgos.begin(); it != myMapOldAlgos.end(); ++it) {
-    string ior = it->first;
-    int index = findItem(ListAlgoAssignation, ior);
-    if (index < 0) {
-      SMESH::SMESH_Hypothesis_var aHyp =
-        SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
-      if (!aHyp->_is_nil()) {
-       if (!SMESH::RemoveHypothesisOrAlgorithmOnMesh(aMeshSO, aHyp))
-         nbFail++;
-      }
-    }
-  }
-
-  // 4. Add new algorithms
-  for (int i = 0; i < ListAlgoAssignation->count(); i++) {
-    if (ListAlgoAssignation->item(i)->rtti() == ListBoxIOR::RTTI_IOR) {
-      ListBoxIOR* anItem = (ListBoxIOR*)(ListAlgoAssignation->item(i));
-      if (anItem) {
-       string ior = anItem->GetIOR();
-       if (myMapOldAlgos.find(ior) == myMapOldAlgos.end()) {
-         SMESH::SMESH_Hypothesis_var aHyp =
-            SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
-         if (!aHyp->_is_nil()) {
-           if (!SMESH::AddHypothesisOnMesh(myMesh, aHyp))
-             nbFail++;
-         }
-       }
-      }
-    }
-  }
-
-  // 5. Add new hypotheses
-  for (int i = 0; i < ListHypAssignation->count(); i++) {
-    if (ListHypAssignation->item(i)->rtti() == ListBoxIOR::RTTI_IOR) {
-      ListBoxIOR* anItem = (ListBoxIOR*)(ListHypAssignation->item(i));
-      if (anItem) {
-       string ior = anItem->GetIOR();
-       if (myMapOldHypos.find(ior) == myMapOldHypos.end()) {
-         SMESH::SMESH_Hypothesis_var aHyp =
-            SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
-         if (!aHyp->_is_nil()) {
-           if (!SMESH::AddHypothesisOnMesh(myMesh, aHyp))
-             nbFail++;
-         }
-       }
-      }
-    }
-  }
-  return (nbFail == 0);
-}
-
-//=================================================================================
-// function : StoreSubMesh()
-// purpose  :
-//=================================================================================
-bool SMESHGUI_EditHypothesesDlg::StoreSubMesh()
-{
-  MapIOR anOldHypos, aNewHypos;
-  if (myGeomShape->_is_nil())
-    return false;
-
-  // 1. Check whether the geometric shape has changed
-  _PTR(SObject) aSubMeshSO = SMESH::FindSObject(mySubMesh);
-  GEOM::GEOM_Object_var aIniGeomShape = SMESH::GetShapeOnMeshOrSubMesh(aSubMeshSO);
-  bool bShapeChanged = aIniGeomShape->_is_nil() || !aIniGeomShape->_is_equivalent(myGeomShape);
-  if (bShapeChanged) {
-    // VSR : TODO : Set new shape - not supported yet by engine
-    // 1. remove all old hypotheses and algorithms
-    // 2. set new shape
-  }
-  int nbFail = 0;
-  MapIOR::iterator it;
-
-  // 2. remove not used hypotheses from the submesh
-  for (it = myMapOldHypos.begin(); it != myMapOldHypos.end(); ++it) {
-    string ior = it->first;
-    int index = findItem(ListHypAssignation, ior);
-    if (index < 0) {
-      SMESH::SMESH_Hypothesis_var aHyp = SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
-      if (!aHyp->_is_nil()) {
-       if (!SMESH::RemoveHypothesisOrAlgorithmOnMesh(aSubMeshSO, aHyp))
-         nbFail++;
-      }
-    }
-  }
-
-  // 3. remove not used algorithms from the submesh
-  for (it = myMapOldAlgos.begin(); it != myMapOldAlgos.end(); ++it) {
-    string ior = it->first;
-    int index = findItem(ListAlgoAssignation, ior);
-    if (index < 0) {
-      SMESH::SMESH_Hypothesis_var aHyp = SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
-      if (!aHyp->_is_nil()){
-       if (!SMESH::RemoveHypothesisOrAlgorithmOnMesh(aSubMeshSO, aHyp))
-         nbFail++;
-      }
-    }
-  }
-
-  // 4. Add new algorithms
-  for (int i = 0; i < ListAlgoAssignation->count(); i++) {
-    if (ListAlgoAssignation->item(i)->rtti() == ListBoxIOR::RTTI_IOR) {
-      ListBoxIOR* anItem = (ListBoxIOR*)(ListAlgoAssignation->item(i));
-      if (anItem) {
-       string ior = anItem->GetIOR();
-       if (myMapOldAlgos.find(ior) == myMapOldAlgos.end()) {
-         SMESH::SMESH_Hypothesis_var aHyp = SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
-         if (!aHyp->_is_nil()){
-           if (!SMESH::AddHypothesisOnSubMesh(mySubMesh, aHyp))
-             nbFail++;
-         }
-       }
-      }
-    }
-  }
-
-  // 5. Add new hypotheses
-  for (int i = 0; i < ListHypAssignation->count(); i++) {
-    if (ListHypAssignation->item(i)->rtti() == ListBoxIOR::RTTI_IOR) {
-      ListBoxIOR* anItem = (ListBoxIOR*)(ListHypAssignation->item(i));
-      if (anItem) {
-       string ior = anItem->GetIOR();
-       if (myMapOldHypos.find(ior) == myMapOldHypos.end()) {
-         SMESH::SMESH_Hypothesis_var aHyp = SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
-         if (!aHyp->_is_nil()){
-           if (!SMESH::AddHypothesisOnSubMesh(mySubMesh, aHyp))
-             nbFail++;
-         }
-       }
-      }
-    }
-  }
-  return (nbFail == 0);
-}
diff --git a/src/SMESHGUI/SMESHGUI_EditHypothesesDlg.h b/src/SMESHGUI/SMESHGUI_EditHypothesesDlg.h
deleted file mode 100644 (file)
index 6c40460..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_EditHypothesesDlg.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef DIALOGBOX_EDIT_HYPOTHESES_H
-#define DIALOGBOX_EDIT_HYPOTHESES_H
-
-//#include "SMESH_TypeFilter.hxx"
-#include "SUIT_SelectionFilter.h"
-#include "SalomeApp_SelectionMgr.h"
-
-// QT Includes
-#include <qdialog.h>
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-#include <map>
-#include <string>
-
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QListBox;
-class QListBoxItem;
-class SMESHGUI;
-
-typedef map<std::string, int> MapIOR;
-
-//=================================================================================
-// class    : SMESHGUI_EditHypothesesDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_EditHypothesesDlg : public QDialog
-{
-    Q_OBJECT
-
-public:
-    SMESHGUI_EditHypothesesDlg (SMESHGUI*,
-                               const char* name = 0,
-                               bool modal = FALSE,
-                               WFlags fl = 0);
-    ~SMESHGUI_EditHypothesesDlg();
-
-protected:
-    virtual void closeEvent (QCloseEvent*);
-    virtual void enterEvent (QEvent*);
-
-private:
-    void Init();
-
-    void InitHypDefinition();
-    void InitAlgoDefinition();
-    void InitHypAssignation();
-    void InitAlgoAssignation();
-
-    void InitGeom();
-
-    void UpdateControlState();
-
-    bool StoreMesh();
-    bool StoreSubMesh();
-
-    bool IsOld(QListBoxItem* hypItem);
-
-private:
-    SMESHGUI*                     mySMESHGUI;
-    SalomeApp_SelectionMgr*       mySelectionMgr;
-
-    GEOM::GEOM_Object_var         myGeomShape;
-    QLineEdit*                    myEditCurrentArgument; 
-
-    SMESH::SMESH_Mesh_var         myMesh;
-    SMESH::SMESH_subMesh_var      mySubMesh;
-
-    //Handle(SALOME_TypeFilter)     myGeomFilter;
-    //Handle(SMESH_TypeFilter)      myMeshOrSubMeshFilter;
-    SUIT_SelectionFilter*         myGeomFilter;
-    SUIT_SelectionFilter*         myMeshOrSubMeshFilter;
-
-    MapIOR                        myMapOldHypos, myMapOldAlgos;
-    int                           myNbModification;
-
-    bool                          myImportedMesh;
-
-    QGroupBox*    GroupButtons;
-    QPushButton*  buttonOk;
-    QPushButton*  buttonApply;
-    QPushButton*  buttonCancel;
-
-    QGroupBox*    GroupC1;
-    QLabel*       TextLabelC1A1;
-    QPushButton*  SelectButtonC1A1;
-    QLineEdit*    LineEditC1A1;
-    QLabel*       TextLabelC1A2;
-    QPushButton*  SelectButtonC1A2;
-    QLineEdit*    LineEditC1A2;
-
-    QGroupBox*    GroupHypotheses;
-    QLabel*       TextHypDefinition;
-    QListBox*     ListHypDefinition;
-    QLabel*       TextHypAssignation;
-    QListBox*     ListHypAssignation;
-
-    QGroupBox*    GroupAlgorithms;
-    QLabel*       TextAlgoDefinition;
-    QListBox*     ListAlgoDefinition;
-    QLabel*       TextAlgoAssignation;
-    QListBox*     ListAlgoAssignation;
-
-private slots:
-    void ClickOnOk();
-    bool ClickOnApply();
-    void ClickOnCancel();
-    void SetEditCurrentArgument();
-    void SelectionIntoArgument();
-    void DeactivateActiveDialog();
-    void ActivateThisDialog();
-
-    void removeItem(QListBoxItem*);
-    void addItem(QListBoxItem*);
-};
-
-#endif // DIALOGBOX_EDIT_HYPOTHESES_H
diff --git a/src/SMESHGUI/SMESHGUI_EditMeshDlg.cxx b/src/SMESHGUI/SMESHGUI_EditMeshDlg.cxx
deleted file mode 100644 (file)
index 935f18b..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-
-#include "SMESHGUI_EditMeshDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-
-#include "SMESH_TypeFilter.hxx"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_Session.h"
-
-#include "SALOME_ListIO.hxx"
-
-#include "utilities.h"
-
-// QT Includes
-#include <qapplication.h>
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qlayout.h>
-#include <qpixmap.h>
-
-//=================================================================================
-// class    : SMESHGUI_EditMeshDlg()
-// purpose  :
-//=================================================================================
-SMESHGUI_EditMeshDlg::SMESHGUI_EditMeshDlg (SMESHGUI* theModule,
-                                            const char* title, const char* icon,
-                                            int theAction)
-  : QDialog(SMESH::GetDesktop(theModule), "SMESHGUI_EditMeshDlg", false, WStyle_Customize |
-            WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
-    mySMESHGUI(theModule),
-    mySelectionMgr(SMESH::GetSelectionMgr(theModule)),
-    myAction(theAction)
-{
-  resize(303, 185);
-  setCaption(tr(title));
-
-  SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr();
-  QPixmap image0 (aResMgr->loadPixmap("SMESH", tr(icon)));
-  QPixmap image1 (aResMgr->loadPixmap("SMESH", tr("ICON_SELECT")));
-
-  setSizeGripEnabled(TRUE);
-  DlgLayout = new QGridLayout (this);
-  DlgLayout->setSpacing(6);
-  DlgLayout->setMargin(11);
-
-  /***************************************************************/
-  GroupConstructors = new QButtonGroup (this, "GroupConstructors");
-  GroupConstructors->setExclusive(TRUE);
-  GroupConstructors->setColumnLayout(0, Qt::Vertical);
-  GroupConstructors->layout()->setSpacing(0);
-  GroupConstructors->layout()->setMargin(0);
-  GroupConstructorsLayout = new QGridLayout (GroupConstructors->layout());
-  GroupConstructorsLayout->setAlignment(Qt::AlignTop);
-  GroupConstructorsLayout->setSpacing(6);
-  GroupConstructorsLayout->setMargin(11);
-  Constructor1 = new QRadioButton (GroupConstructors, "Constructor1");
-  Constructor1->setText(tr(""));
-  Constructor1->setPixmap(image0);
-  Constructor1->setChecked(TRUE);
-  Constructor1->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)1,
-                                          (QSizePolicy::SizeType)0,
-                                          Constructor1->sizePolicy().hasHeightForWidth()));
-  Constructor1->setMinimumSize(QSize(50, 0));
-  GroupConstructorsLayout->addWidget(Constructor1, 0, 0);
-  QSpacerItem* spacer = new QSpacerItem (20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupConstructorsLayout->addItem(spacer, 0, 1);
-  DlgLayout->addWidget(GroupConstructors, 0, 0);
-
-  /***************************************************************/
-  GroupButtons = new QGroupBox (this, "GroupButtons");
-  GroupButtons->setGeometry(QRect(10, 10, 281, 48));
-  GroupButtons->setTitle(tr("" ));
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  GroupButtonsLayout = new QGridLayout (GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-  buttonCancel = new QPushButton (GroupButtons, "buttonCancel");
-  buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
-  buttonCancel->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-  buttonApply = new QPushButton (GroupButtons, "buttonApply");
-  buttonApply->setText(tr("SMESH_BUT_APPLY" ));
-  buttonApply->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-  QSpacerItem* spacer_9 = new QSpacerItem (20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupButtonsLayout->addItem(spacer_9, 0, 2);
-  buttonOk = new QPushButton (GroupButtons, "buttonOk");
-  buttonOk->setText(tr("SMESH_BUT_OK" ));
-  buttonOk->setAutoDefault(TRUE);
-  buttonOk->setDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-  DlgLayout->addWidget(GroupButtons, 2, 0);
-
-  /***************************************************************/
-  GroupMesh = new QGroupBox (this, "GroupMesh");
-  GroupMesh->setTitle(tr("SMESH_MESH" ));
-  GroupMesh->setMinimumSize(QSize(0, 0));
-  GroupMesh->setFrameShape(QGroupBox::Box);
-  GroupMesh->setFrameShadow(QGroupBox::Sunken);
-  GroupMesh->setColumnLayout(0, Qt::Vertical);
-  GroupMesh->layout()->setSpacing(0);
-  GroupMesh->layout()->setMargin(0);
-  GroupMeshLayout = new QGridLayout (GroupMesh->layout());
-  GroupMeshLayout->setAlignment(Qt::AlignTop);
-  GroupMeshLayout->setSpacing(6);
-  GroupMeshLayout->setMargin(11);
-  TextLabelMesh = new QLabel (GroupMesh, "TextLabelMesh");
-  TextLabelMesh->setText(tr("SMESH_MESH"));
-  TextLabelMesh->setMinimumSize(QSize(50, 0));
-  TextLabelMesh->setFrameShape(QLabel::NoFrame);
-  TextLabelMesh->setFrameShadow(QLabel::Plain);
-  GroupMeshLayout->addWidget(TextLabelMesh, 0, 0);
-  SelectButton = new QPushButton (GroupMesh, "SelectButton");
-  SelectButton->setText(tr(""));
-  SelectButton->setPixmap(image1);
-  SelectButton->setToggleButton(FALSE);
-  GroupMeshLayout->addWidget(SelectButton, 0, 1);
-  LineEditMesh = new QLineEdit (GroupMesh, "LineEditMesh");
-  LineEditMesh->setReadOnly(true);
-  GroupMeshLayout->addWidget(LineEditMesh, 0, 2);
-  DlgLayout->addWidget(GroupMesh, 1, 0);
-
-  Init(); // Initialisations
-}
-
-//=================================================================================
-// function : ~SMESHGUI_EditMeshDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_EditMeshDlg::~SMESHGUI_EditMeshDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditMeshDlg::Init()
-{
-  GroupMesh->show();
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  myMesh = SMESH::SMESH_Mesh::_nil();
-
-  myMeshFilter = new SMESH_TypeFilter (MESH);
-
-  // signals and slots connections
-  connect(buttonOk    , SIGNAL(clicked()), this, SLOT(ClickOnOk()));
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-  connect(buttonApply , SIGNAL(clicked()), this, SLOT(ClickOnApply()));
-
-  connect(SelectButton, SIGNAL(clicked()), this, SLOT(SelectionIntoArgument()));
-
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-
-  connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs())       , this, SLOT(ClickOnCancel()));
-
-  // Move widget on the bottom right corner of main widget
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show(); // displays Dialog
-
-  LineEditMesh->setFocus();
-  mySelectionMgr->clearFilters();
-  mySelectionMgr->installFilter(myMeshFilter);
-
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditMeshDlg::ClickOnApply()
-{
-  if (!myMesh->_is_nil()) {
-    try        {
-      QApplication::setOverrideCursor(Qt::waitCursor);
-
-      if (myAction == 1) {
-        SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
-        aMeshEditor->MergeEqualElements();
-      }
-
-      QApplication::restoreOverrideCursor();
-    } catch(...) {
-    }
-
-    mySelectionMgr->clearSelected();
-    SMESH::UpdateView();
-  }
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditMeshDlg::ClickOnOk()
-{
-  ClickOnApply();
-  ClickOnCancel();
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditMeshDlg::ClickOnCancel()
-{
-  mySelectionMgr->clearSelected();
-  mySelectionMgr->clearFilters();
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySMESHGUI->ResetState();
-  reject();
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_EditMeshDlg::SelectionIntoArgument()
-{
-  if (!GroupButtons->isEnabled()) // inactive
-    return;
-
-  QString aString = "";
-
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList);
-  int nbSel = SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
-
-  // mesh
-  if (nbSel != 1) {
-    myMesh = SMESH::SMESH_Mesh::_nil();
-    aString = "";
-  } else {
-    Handle(SALOME_InteractiveObject) IO = aList.First();
-    myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO);
-    if (myMesh->_is_nil())
-      aString = "";
-  }
-
-  LineEditMesh->setText(aString);
-
-  bool isEnabled = (!myMesh->_is_nil());
-  buttonOk->setEnabled(isEnabled);
-  buttonApply->setEnabled(isEnabled);
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditMeshDlg::DeactivateActiveDialog()
-{
-  if (GroupConstructors->isEnabled()) {
-    GroupConstructors->setEnabled(false);
-    GroupMesh->setEnabled(false);
-    GroupButtons->setEnabled(false);
-    mySMESHGUI->ResetState();
-    mySMESHGUI->SetActiveDialogBox(0);
-  }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditMeshDlg::ActivateThisDialog()
-{
-  /* Emit a signal to deactivate the active dialog */
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupConstructors->setEnabled(true);
-  GroupMesh->setEnabled(true);
-  GroupButtons->setEnabled(true);
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditMeshDlg::enterEvent(QEvent* e)
-{
-  if (GroupConstructors->isEnabled())
-    return;
-  ActivateThisDialog();
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditMeshDlg::closeEvent(QCloseEvent* e)
-{
-  /* same than click on cancel button */
-  this->ClickOnCancel();
-}
-
-//=======================================================================
-//function : hideEvent
-//purpose  : caused by ESC key
-//=======================================================================
-void SMESHGUI_EditMeshDlg::hideEvent (QHideEvent * e)
-{
-  if (!isMinimized())
-    ClickOnCancel();
-}
diff --git a/src/SMESHGUI/SMESHGUI_EditMeshDlg.h b/src/SMESHGUI/SMESHGUI_EditMeshDlg.h
deleted file mode 100644 (file)
index 20cf710..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-
-#ifndef DIALOGBOX_GETMESH_H
-#define DIALOGBOX_GETMESH_H
-
-#include "SalomeApp_SelectionMgr.h"
-#include "SUIT_SelectionFilter.h"
-
-// QT Includes
-#include <qdialog.h>
-
-// Open CASCADE Includes
-
-class QGridLayout;
-class QButtonGroup;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-class SMESHGUI;
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-//=================================================================================
-// class    : SMESHGUI_EditMeshDlg
-// purpose  : 
-//=================================================================================
-class SMESHGUI_EditMeshDlg : public QDialog
-{
-  Q_OBJECT;
-
- public:
-  SMESHGUI_EditMeshDlg (SMESHGUI  * theModule,
-                       const char* title,
-                       const char* icon,
-                       int         theAction);
-  ~SMESHGUI_EditMeshDlg();
-
- private:
-  void Init();
-  void closeEvent (QCloseEvent*);
-  void enterEvent (QEvent*);              /* mouse enter the QWidget */
-  void hideEvent  (QHideEvent*);          /* ESC key */
-
- private:
-  SMESHGUI*               mySMESHGUI;     /* Current SMESHGUI object */
-  SalomeApp_SelectionMgr* mySelectionMgr; /* User shape selection */
-
-  SMESH::SMESH_Mesh_var   myMesh;
-  SUIT_SelectionFilter*   myMeshFilter;
-
-  int myAction;
-
-  // Widgets
-  QButtonGroup* GroupConstructors;
-  QRadioButton* Constructor1;
-
-  QGroupBox* GroupButtons;
-  QPushButton* buttonOk;
-  QPushButton* buttonCancel;
-  QPushButton* buttonApply;
-
-  QGroupBox* GroupMesh;
-  QLabel* TextLabelMesh;
-  QPushButton* SelectButton;
-  QLineEdit* LineEditMesh;
-
-  //protected:
-  QGridLayout* DlgLayout;
-  QGridLayout* GroupConstructorsLayout;
-  QGridLayout* GroupButtonsLayout;
-  QGridLayout* GroupMeshLayout;
-
- private slots:
-  void ClickOnOk();
-  void ClickOnCancel();
-  void ClickOnApply();
-  void SelectionIntoArgument();
-  void DeactivateActiveDialog();
-  void ActivateThisDialog();
-};
-
-#endif // DIALOGBOX_GETMESH_H
diff --git a/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.cxx b/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.cxx
deleted file mode 100644 (file)
index 3e84be4..0000000
+++ /dev/null
@@ -1,1169 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_ExtrusionAlongPathDlg.cxx
-//  Author : Vadim SANDLER
-//  Module : SMESH
-//  $Header:
-
-#include "SMESHGUI_ExtrusionAlongPathDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_MeshUtils.h"
-#include "SMESHGUI_SpinBox.h"
-#include "SMESHGUI_IdValidator.h"
-
-#include "SMESH_Actor.h"
-#include "SMESH_TypeFilter.hxx"
-#include "SMESH_NumberFilter.hxx"
-#include "SMESH_LogicalFilter.hxx"
-
-#include "SMDS_Mesh.hxx"
-
-#include "GEOMBase.h"
-
-#include "SUIT_ResourceMgr.h"
-#include "SUIT_OverrideCursor.h"
-#include "SUIT_Desktop.h"
-#include "SUIT_MessageBox.h"
-
-#include "SVTK_ViewModel.h"
-#include "SVTK_ViewWindow.h"
-#include "SVTK_Selector.h"
-#include "SVTK_Selection.h"
-#include "SALOME_ListIO.hxx"
-
-#include "utilities.h"
-
-// OCCT Includes
-#include <BRep_Tool.hxx>
-#include <TopoDS_Shape.hxx>
-#include <TopoDS.hxx>
-#include <TopoDS_Vertex.hxx>
-#include <gp_Pnt.hxx>
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_IndexedMapOfInteger.hxx>
-
-// QT Includes
-#include <qapplication.h>
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qtoolbutton.h>
-#include <qradiobutton.h>
-#include <qcheckbox.h>
-#include <qlistbox.h>
-#include <qlayout.h>
-#include <qvalidator.h>
-#include <qptrlist.h>
-#include <qpixmap.h>
-
-// IDL Headers
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Group)
-
-using namespace std;
-
-//=================================================================================
-// function : SMESHGUI_ExtrusionAlongPathDlg()
-// purpose  : constructor
-//=================================================================================
-SMESHGUI_ExtrusionAlongPathDlg::SMESHGUI_ExtrusionAlongPathDlg( SMESHGUI* theModule,
-                                                                bool modal )
-     : QDialog( SMESH::GetDesktop( theModule ), "SMESHGUI_ExtrusionAlongPathDlg", modal,
-                WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
-     mySMESHGUI( theModule ),
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-  SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );
-  QPixmap edgeImage   ( mgr->loadPixmap("SMESH", tr("ICON_DLG_EDGE")));
-  QPixmap faceImage   ( mgr->loadPixmap("SMESH", tr("ICON_DLG_TRIANGLE")));
-  QPixmap selectImage ( mgr->loadPixmap("SMESH", tr("ICON_SELECT")));
-  QPixmap addImage    ( mgr->loadPixmap("SMESH", tr("ICON_APPEND")));
-  QPixmap removeImage ( mgr->loadPixmap("SMESH", tr("ICON_REMOVE")));
-
-  myType = -1;
-
-  setCaption(tr("EXTRUSION_ALONG_PATH"));
-  setSizeGripEnabled(TRUE);
-
-  QGridLayout* topLayout = new QGridLayout(this);
-  topLayout->setSpacing(6);
-  topLayout->setMargin(11);
-
-  /***************************************************************/
-  // Elements type group box (1d / 2d elements)
-  GroupConstructors = new QButtonGroup(tr("SMESH_EXTRUSION"), this);
-  GroupConstructors->setColumnLayout(0, Qt::Vertical);
-  GroupConstructors->layout()->setSpacing(0);
-  GroupConstructors->layout()->setMargin(0);
-  QGridLayout* GroupConstructorsLayout = new QGridLayout(GroupConstructors->layout());
-  GroupConstructorsLayout->setAlignment(Qt::AlignTop);
-  GroupConstructorsLayout->setSpacing(6); GroupConstructorsLayout->setMargin(11);
-
-  Elements1dRB = new QRadioButton(GroupConstructors);
-  Elements1dRB->setPixmap(edgeImage);
-  Elements2dRB = new QRadioButton(GroupConstructors);
-  Elements2dRB->setPixmap(faceImage);
-  Elements1dRB->setChecked(true);
-
-  // layouting
-  GroupConstructorsLayout->addWidget(Elements1dRB, 0, 0);
-  GroupConstructorsLayout->addWidget(Elements2dRB, 0, 2);
-
-  /***************************************************************/
-  // Arguments group box
-  GroupArguments = new QGroupBox(tr("EXTRUSION_1D"), this);
-  GroupArguments->setColumnLayout(0, Qt::Vertical);
-  GroupArguments->layout()->setSpacing(0); GroupArguments->layout()->setMargin(0);
-  QGridLayout* GroupArgumentsLayout = new QGridLayout(GroupArguments->layout());
-  GroupArgumentsLayout->setAlignment(Qt::AlignTop);
-  GroupArgumentsLayout->setSpacing(6); GroupArgumentsLayout->setMargin(11);
-
-  // Controls for elements selection
-  ElementsLab = new QLabel(tr("SMESH_ID_ELEMENTS"), GroupArguments);
-
-  SelectElementsButton = new QToolButton(GroupArguments);
-  SelectElementsButton->setPixmap(selectImage);
-
-  ElementsLineEdit = new QLineEdit(GroupArguments);
-  ElementsLineEdit->setValidator(new SMESHGUI_IdValidator(this));
-
-  // Controls for the whole mesh selection
-  MeshCheck = new QCheckBox(tr("SMESH_SELECT_WHOLE_MESH"), GroupArguments);
-
-  // Controls for path selection
-  PathGrp = new QGroupBox(tr("SMESH_PATH"), GroupArguments);
-  PathGrp->setColumnLayout(0, Qt::Vertical);
-  PathGrp->layout()->setSpacing(0); PathGrp->layout()->setMargin(0);
-  QGridLayout* PathGrpLayout = new QGridLayout(PathGrp->layout());
-  PathGrpLayout->setAlignment(Qt::AlignTop);
-  PathGrpLayout->setSpacing(6); PathGrpLayout->setMargin(11);
-
-  // Controls for path mesh selection
-  PathMeshLab = new QLabel(tr("SMESH_PATH_MESH"), PathGrp);
-
-  SelectPathMeshButton = new QToolButton(PathGrp);
-  SelectPathMeshButton->setPixmap(selectImage);
-
-  PathMeshLineEdit = new QLineEdit(PathGrp);
-  PathMeshLineEdit->setReadOnly(true);
-
-  // Controls for path shape selection
-  PathShapeLab = new QLabel(tr("SMESH_PATH_SHAPE"), PathGrp);
-
-  SelectPathShapeButton = new QToolButton(PathGrp);
-  SelectPathShapeButton->setPixmap(selectImage);
-
-  PathShapeLineEdit = new QLineEdit(PathGrp);
-  PathShapeLineEdit->setReadOnly(true);
-
-  // Controls for path starting point selection
-  StartPointLab = new QLabel(tr("SMESH_PATH_START"), PathGrp);
-
-  SelectStartPointButton = new QToolButton(PathGrp);
-  SelectStartPointButton->setPixmap(selectImage);
-
-  StartPointLineEdit = new QLineEdit(PathGrp);
-  StartPointLineEdit->setValidator(new QIntValidator(this));
-
-  // layouting
-  PathGrpLayout->addWidget(PathMeshLab,            0, 0);
-  PathGrpLayout->addWidget(SelectPathMeshButton,   0, 1);
-  PathGrpLayout->addWidget(PathMeshLineEdit,       0, 2);
-  PathGrpLayout->addWidget(PathShapeLab,           1, 0);
-  PathGrpLayout->addWidget(SelectPathShapeButton,  1, 1);
-  PathGrpLayout->addWidget(PathShapeLineEdit,      1, 2);
-  PathGrpLayout->addWidget(StartPointLab,          2, 0);
-  PathGrpLayout->addWidget(SelectStartPointButton, 2, 1);
-  PathGrpLayout->addWidget(StartPointLineEdit,     2, 2);
-
-  // Controls for base point defining
-  BasePointCheck = new QCheckBox(tr("SMESH_USE_BASE_POINT"), GroupArguments);
-
-  BasePointGrp = new QGroupBox(tr("SMESH_BASE_POINT"), GroupArguments);
-  BasePointGrp->setColumnLayout(0, Qt::Vertical);
-  BasePointGrp->layout()->setSpacing(0); BasePointGrp->layout()->setMargin(0);
-  QGridLayout* BasePointGrpLayout = new QGridLayout(BasePointGrp->layout());
-  BasePointGrpLayout->setAlignment(Qt::AlignTop);
-  BasePointGrpLayout->setSpacing(6); BasePointGrpLayout->setMargin(11);
-
-  SelectBasePointButton = new QToolButton(BasePointGrp);
-  SelectBasePointButton->setPixmap(selectImage);
-
-  XLab  = new QLabel(tr("SMESH_X"), BasePointGrp);
-  XSpin = new SMESHGUI_SpinBox(BasePointGrp);
-  YLab  = new QLabel(tr("SMESH_Y"), BasePointGrp);
-  YSpin = new SMESHGUI_SpinBox(BasePointGrp);
-  ZLab  = new QLabel(tr("SMESH_Z"), BasePointGrp);
-  ZSpin = new SMESHGUI_SpinBox(BasePointGrp);
-
-  // layouting
-  BasePointGrpLayout->addWidget(SelectBasePointButton, 0, 0);
-  BasePointGrpLayout->addWidget(XLab,                  0, 1);
-  BasePointGrpLayout->addWidget(XSpin,                 0, 2);
-  BasePointGrpLayout->addWidget(YLab,                  0, 3);
-  BasePointGrpLayout->addWidget(YSpin,                 0, 4);
-  BasePointGrpLayout->addWidget(ZLab,                  0, 5);
-  BasePointGrpLayout->addWidget(ZSpin,                 0, 6);
-
-  // Controls for angles defining
-  AnglesCheck = new QCheckBox(tr("SMESH_USE_ANGLES"), GroupArguments);
-
-  AnglesGrp = new QGroupBox(tr("SMESH_ANGLES"), GroupArguments);
-  AnglesGrp->setColumnLayout(0, Qt::Vertical);
-  AnglesGrp->layout()->setSpacing(0); AnglesGrp->layout()->setMargin(0);
-  QGridLayout* AnglesGrpLayout = new QGridLayout(AnglesGrp->layout());
-  AnglesGrpLayout->setAlignment(Qt::AlignTop);
-  AnglesGrpLayout->setSpacing(6); AnglesGrpLayout->setMargin(11);
-
-  AnglesList = new QListBox(AnglesGrp);
-  AnglesList->setSelectionMode(QListBox::Extended);
-
-  AddAngleButton = new QToolButton(AnglesGrp);
-  AddAngleButton->setPixmap(addImage);
-
-  RemoveAngleButton = new QToolButton(AnglesGrp);
-  RemoveAngleButton->setPixmap(removeImage);
-
-  AngleSpin = new SMESHGUI_SpinBox(AnglesGrp);
-
-  // layouting
-  QVBoxLayout* bLayout = new QVBoxLayout();
-  bLayout->addWidget(AddAngleButton);
-  bLayout->addSpacing(6);
-  bLayout->addWidget(RemoveAngleButton);
-  bLayout->addStretch();
-  AnglesGrpLayout->addMultiCellWidget(AnglesList, 0, 1, 0, 0);
-  AnglesGrpLayout->addMultiCellLayout(bLayout,    0, 1, 1, 1);
-  AnglesGrpLayout->addWidget(         AngleSpin,  0,    2   );
-  AnglesGrpLayout->setRowStretch(1, 10);
-
-  // layouting
-  GroupArgumentsLayout->addWidget(         ElementsLab,            0,    0   );
-  GroupArgumentsLayout->addWidget(         SelectElementsButton,   0,    1   );
-  GroupArgumentsLayout->addWidget(         ElementsLineEdit,       0,    2   );
-  GroupArgumentsLayout->addMultiCellWidget(MeshCheck,              1, 1, 0, 2);
-  GroupArgumentsLayout->addMultiCellWidget(PathGrp,                2, 2, 0, 2);
-  GroupArgumentsLayout->addWidget(         BasePointCheck,         3,    0   );
-  GroupArgumentsLayout->addMultiCellWidget(BasePointGrp,           3, 4, 1, 2);
-  GroupArgumentsLayout->addWidget(         AnglesCheck,            5,    0   );
-  GroupArgumentsLayout->addMultiCellWidget(AnglesGrp,              5, 6, 1, 2);
-  GroupArgumentsLayout->setRowStretch(6, 10);
-
-  /***************************************************************/
-  // common buttons group box
-  GroupButtons = new QGroupBox(this);
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  QGridLayout* GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6); GroupButtonsLayout->setMargin(11);
-
-  OkButton = new QPushButton(tr("SMESH_BUT_OK"), GroupButtons);
-  OkButton->setAutoDefault(true);
-  OkButton->setDefault(true);
-
-  ApplyButton = new QPushButton(tr("SMESH_BUT_APPLY"), GroupButtons);
-  ApplyButton->setAutoDefault(true);
-
-  CloseButton = new QPushButton(tr("SMESH_BUT_CLOSE"), GroupButtons);
-  CloseButton->setAutoDefault(true);
-
-  // layouting
-  GroupButtonsLayout->addWidget(OkButton,    0, 0);
-  GroupButtonsLayout->addWidget(ApplyButton, 0, 1);
-  GroupButtonsLayout->addWidget(CloseButton, 0, 3);
-  GroupButtonsLayout->addColSpacing(2, 10);
-  GroupButtonsLayout->setColStretch(2, 10);
-
-  /***************************************************************/
-  // layouting
-  topLayout->addWidget(GroupConstructors, 0, 0);
-  topLayout->addWidget(GroupArguments,    1, 0);
-  topLayout->addWidget(GroupButtons,      2, 0);
-
-  /***************************************************************/
-  // Initialisations
-  XSpin->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  YSpin->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  ZSpin->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  AngleSpin->RangeStepAndValidator(-999999.999, +999999.999, 5.0, 3);
-
-  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
-
-  mySMESHGUI->SetActiveDialogBox(this);
-
-  // Costruction of the logical filter for the elements: mesh/sub-mesh/group
-  SMESH_TypeFilter* aMeshOrSubMeshFilter = new SMESH_TypeFilter (MESHorSUBMESH);
-  SMESH_TypeFilter* aSmeshGroupFilter    = new SMESH_TypeFilter (GROUP);
-
-  QPtrList<SUIT_SelectionFilter> aListOfFilters;
-  if (aMeshOrSubMeshFilter) aListOfFilters.append(aMeshOrSubMeshFilter);
-  if (aSmeshGroupFilter)    aListOfFilters.append(aSmeshGroupFilter);
-
-  myElementsFilter = new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
-  myPathMeshFilter = new SMESH_TypeFilter (MESH);
-
-  Init();
-
-  /***************************************************************/
-  // signals-slots connections
-  connect(OkButton,     SIGNAL(clicked()), this, SLOT(ClickOnOk()));
-  connect(CloseButton,  SIGNAL(clicked()), this, SLOT(reject()));
-  connect(ApplyButton,  SIGNAL(clicked()), this, SLOT(ClickOnApply()));
-
-  connect(AddAngleButton,    SIGNAL(clicked()), this, SLOT(OnAngleAdded()));
-  connect(RemoveAngleButton, SIGNAL(clicked()), this, SLOT(OnAngleRemoved()));
-
-  connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
-
-  connect(SelectElementsButton,   SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(SelectPathMeshButton,   SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(SelectPathShapeButton,  SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(SelectStartPointButton, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(SelectBasePointButton,  SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
-
-  connect(mySMESHGUI,  SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()),      this, SLOT(SelectionIntoArgument()));
-  connect(mySMESHGUI,  SIGNAL(SignalCloseAllDialogs()),        this, SLOT(reject()));
-
-  connect(ElementsLineEdit, SIGNAL(textChanged(const QString&)),
-          SLOT(onTextChange(const QString&)));
-  connect(StartPointLineEdit, SIGNAL(textChanged(const QString&)),
-          SLOT(onTextChange(const QString&)));
-
-  connect(MeshCheck,      SIGNAL(toggled(bool)), SLOT(onSelectMesh()));
-  connect(AnglesCheck,    SIGNAL(toggled(bool)), SLOT(onAnglesCheck()));
-  connect(BasePointCheck, SIGNAL(toggled(bool)), SLOT(onBasePointCheck()));
-
-  AnglesList->installEventFilter(this);
-  ElementsLineEdit->installEventFilter(this);
-  StartPointLineEdit->installEventFilter(this);
-  XSpin->editor()->installEventFilter(this);
-  YSpin->editor()->installEventFilter(this);
-  ZSpin->editor()->installEventFilter(this);
-
-  /***************************************************************/
-  // set position and show dialog box
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show(); // displays Dialog
-}
-
-//=================================================================================
-// function : ~SMESHGUI_ExtrusionAlongPathDlg()
-// purpose  : destructor
-//=================================================================================
-SMESHGUI_ExtrusionAlongPathDlg::~SMESHGUI_ExtrusionAlongPathDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose  : initialization
-//=================================================================================
-void SMESHGUI_ExtrusionAlongPathDlg::Init (bool ResetControls)
-{
-  myBusy = false;
-  myEditCurrentArgument = 0;
-
-  myMesh      = SMESH::SMESH_Mesh::_nil();
-  myIDSource  = SMESH::SMESH_IDSource::_nil();
-  myMeshActor = 0;
-  myPathMesh  = SMESH::SMESH_Mesh::_nil();
-  myPathShape = GEOM::GEOM_Object::_nil();
-
-  ElementsLineEdit->clear();
-  PathMeshLineEdit->clear();
-  PathShapeLineEdit->clear();
-  StartPointLineEdit->clear();
-
-  if (ResetControls) {
-    XSpin->SetValue(0.0);
-    YSpin->SetValue(0.0);
-    ZSpin->SetValue(0.0);
-
-    AngleSpin->SetValue(45);
-    MeshCheck->setChecked(false);
-    ConstructorsClicked(0);
-    onSelectMesh();
-    onAnglesCheck();
-    onBasePointCheck();
-  }
-  SetEditCurrentArgument(0);
-}
-
-//=================================================================================
-// function : ConstructorsClicked()
-// purpose  : Called when user changes type of elements (1d / 2d)
-//=================================================================================
-void SMESHGUI_ExtrusionAlongPathDlg::ConstructorsClicked (int type)
-{
-  if (myType == type) return;
-
-  disconnect(mySelectionMgr, 0, this, 0);
-
-  if (type == 0)
-    GroupArguments->setTitle(tr("EXTRUSION_1D"));
-  else if (type == 1)
-    GroupArguments->setTitle(tr("EXTRUSION_2D"));
-
-  // clear elements ID list
-  if (!MeshCheck->isChecked()) {
-    ElementsLineEdit->clear();
-  }
-  // set selection mode if necessary
-  if (myEditCurrentArgument == ElementsLineEdit) {
-    mySelectionMgr->clearSelected();
-    mySelectionMgr->clearFilters();
-    SMESH::SetPickable();
-
-    SMESH::SetPointRepresentation(false);
-    if (MeshCheck->isChecked()) {
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->SetSelectionMode(ActorSelection);
-      mySelectionMgr->installFilter(myElementsFilter);
-    } else {
-      if (type == 0)
-       {
-         if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-           aViewWindow->SetSelectionMode(EdgeSelection);
-       }
-      if (type == 1)
-       {
-         if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-           aViewWindow->SetSelectionMode(FaceSelection);
-       }
-    }
-  }
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-
-  myType = type;
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  : Called when user presses <Apply> button
-//=================================================================================
-bool SMESHGUI_ExtrusionAlongPathDlg::ClickOnApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return false;
-
-  if (myMesh->_is_nil() || MeshCheck->isChecked() && myIDSource->_is_nil() ||
-      !myMeshActor || myPathMesh->_is_nil() || myPathShape->_is_nil())
-    return false;
-
-  SMESH::long_array_var anElementsId = new SMESH::long_array;
-
-  if (MeshCheck->isChecked()) {
-    // If "Select whole mesh, submesh or group" check box is on ->
-    // get all elements of the required type from the object selected
-
-    // if MESH object is selected
-    if (!CORBA::is_nil(SMESH::SMESH_Mesh::_narrow(myIDSource))) {
-      // get mesh
-      SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow(myIDSource);
-      // get IDs from mesh...
-      if (Elements1dRB->isChecked())
-       // 1d elements
-       anElementsId = aMesh->GetElementsByType(SMESH::EDGE);
-      else if (Elements2dRB->isChecked()) {
-       anElementsId = aMesh->GetElementsByType(SMESH::FACE);
-      }
-    }
-    // SUBMESH is selected
-    if (!CORBA::is_nil(SMESH::SMESH_subMesh::_narrow(myIDSource))) {
-      // get submesh
-      SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow(myIDSource);
-      // get IDs from submesh
-      if (Elements1dRB->isChecked())
-       // 1d elements
-       anElementsId = aSubMesh->GetElementsByType(SMESH::EDGE);
-      else if (Elements2dRB->isChecked())
-       // 2d elements
-       anElementsId = aSubMesh->GetElementsByType(SMESH::FACE);
-    }
-    // GROUP is selected
-    if (!CORBA::is_nil(SMESH::SMESH_GroupBase::_narrow(myIDSource))) {
-      // get smesh group
-      SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(myIDSource);
-      // get IDs from group
-      // 1d elements or 2d elements
-      if (Elements1dRB->isChecked() && aGroup->GetType() == SMESH::EDGE ||
-          Elements2dRB->isChecked() && aGroup->GetType() == SMESH::FACE)
-       anElementsId = aGroup->GetListOfID();
-    }
-  } else {
-    // If "Select whole mesh, submesh or group" check box is off ->
-    // use only elements of given type selected by user
-
-    SMDS_Mesh* aMesh = myMeshActor->GetObject()->GetMesh();
-    if (aMesh) {
-      QStringList aListElementsId = QStringList::split(" ", ElementsLineEdit->text(), false);
-      anElementsId = new SMESH::long_array;
-      anElementsId->length(aListElementsId.count());
-      bool bOk;
-      int j = 0;
-      for (int i = 0; i < aListElementsId.count(); i++) {
-       long ind = aListElementsId[ i ].toLong(&bOk);
-       if  (bOk) {
-         const SMDS_MeshElement* e = aMesh->FindElement(ind);
-         if (e) {
-           bool typeMatch = Elements1dRB->isChecked() && e->GetType() == SMDSAbs_Edge ||
-                            Elements2dRB->isChecked() && e->GetType() == SMDSAbs_Face;
-           if (typeMatch)
-             anElementsId[ j++ ] = ind;
-         }
-       }
-      }
-      anElementsId->length(j);
-    }
-  }
-
-  if (anElementsId->length() <= 0) {
-    return false;
-  }
-
-  if (StartPointLineEdit->text().stripWhiteSpace().isEmpty()) {
-    return false;
-  }
-
-  bool bOk;
-  long aNodeStart = StartPointLineEdit->text().toLong(&bOk);
-  if (!bOk) {
-    return false;
-  }
-
-  // get angles
-  SMESH::double_array_var anAngles = new SMESH::double_array;
-  if (AnglesCheck->isChecked()) {
-    anAngles->length(AnglesList->count());
-    int j = 0;
-    bool bOk;
-    for (int i = 0; i < AnglesList->count(); i++) {
-      double angle = AnglesList->text(i).toDouble(&bOk);
-      if  (bOk)
-       anAngles[ j++ ] = angle*PI/180;
-    }
-    anAngles->length(j);
-  }
-
-  // get base point
-  SMESH::PointStruct aBasePoint;
-  if (BasePointCheck->isChecked()) {
-    aBasePoint.x = XSpin->GetValue();
-    aBasePoint.y = YSpin->GetValue();
-    aBasePoint.z = ZSpin->GetValue();
-  }
-
-  try {
-    SUIT_OverrideCursor wc;
-    SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
-    SMESH::SMESH_MeshEditor::Extrusion_Error retVal =
-      aMeshEditor->ExtrusionAlongPath(anElementsId.inout(), myPathMesh, myPathShape, aNodeStart,
-                                      AnglesCheck->isChecked(), anAngles.inout(),
-                                      BasePointCheck->isChecked(), aBasePoint);
-
-    //wc.stop();
-    wc.suspend();
-    switch (retVal) {
-    case SMESH::SMESH_MeshEditor::EXTR_NO_ELEMENTS:
-      SUIT_MessageBox::warn1(SMESHGUI::desktop(),
-                            tr("SMESH_ERROR"),
-                            tr("NO_ELEMENTS_SELECTED"),
-                            tr("SMESH_BUT_OK"));
-      return false; break;
-    case SMESH::SMESH_MeshEditor::EXTR_PATH_NOT_EDGE:
-      SUIT_MessageBox::warn1(SMESHGUI::desktop(),
-                            tr("SMESH_ERROR"),
-                            tr("SELECTED_PATH_IS_NOT_EDGE"),
-                            tr("SMESH_BUT_OK"));
-      return false; break;
-    case SMESH::SMESH_MeshEditor::EXTR_BAD_PATH_SHAPE:
-      SUIT_MessageBox::warn1(SMESHGUI::desktop(),
-                            tr("SMESH_ERROR"),
-                            tr("BAD_SHAPE_TYPE"),
-                            tr("SMESH_BUT_OK"));
-      return false; break;
-    case SMESH::SMESH_MeshEditor::EXTR_BAD_STARTING_NODE:
-      SUIT_MessageBox::warn1(SMESHGUI::desktop(),
-                            tr("SMESH_ERROR"),
-                            tr("EXTR_BAD_STARTING_NODE"),
-                            tr("SMESH_BUT_OK"));
-      return false; break;
-    case SMESH::SMESH_MeshEditor::EXTR_BAD_ANGLES_NUMBER:
-      SUIT_MessageBox::warn1(SMESHGUI::desktop(),
-                            tr("SMESH_ERROR"),
-                            tr("WRONG_ANGLES_NUMBER"),
-                            tr("SMESH_BUT_OK"));
-      return false; break;
-    case SMESH::SMESH_MeshEditor::EXTR_CANT_GET_TANGENT:
-      SUIT_MessageBox::warn1(SMESHGUI::desktop(),
-                            tr("SMESH_ERROR"),
-                            tr("CANT_GET_TANGENT"),
-                            tr("SMESH_BUT_OK"));
-      return false; break;
-    case SMESH::SMESH_MeshEditor::EXTR_OK:
-      break;
-    }
-  } catch (...) {
-    return false;
-  }
-
-  mySelectionMgr->clearSelected();
-  SMESH::UpdateView();
-  Init(false);
-  ConstructorsClicked(GetConstructorId());
-  return true;
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  : Called when user presses <OK> button
-//=================================================================================
-void SMESHGUI_ExtrusionAlongPathDlg::ClickOnOk()
-{
-  if (ClickOnApply())
-    reject();
-}
-
-//=================================================================================
-// function : reject()
-// purpose  : Called when dialog box is closed
-//=================================================================================
-void SMESHGUI_ExtrusionAlongPathDlg::reject()
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySelectionMgr->clearFilters();
-  mySelectionMgr->clearSelected();
-  SMESH::SetPickable(); // ???
-  SMESH::SetPointRepresentation(false);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-  mySMESHGUI->ResetState();
-  QDialog::reject();
-}
-
-//=======================================================================
-// function : onTextChange()
-// purpose  :
-//=======================================================================
-void SMESHGUI_ExtrusionAlongPathDlg::onTextChange (const QString& theNewText)
-{
-  QLineEdit* send = (QLineEdit*)sender();
-
-  // return if busy
-  if (myBusy) return;
-
-  // set busy flag
-  SetBusy sb (this);
-
-  if (send != StartPointLineEdit && send != ElementsLineEdit)
-    send = ElementsLineEdit;
-
-  if (send == ElementsLineEdit && myEditCurrentArgument == ElementsLineEdit) {
-    // hilight entered elements
-    SMDS_Mesh* aMesh = 0;
-    if (myMeshActor)
-      aMesh = myMeshActor->GetObject()->GetMesh();
-
-    if (aMesh) {
-      //mySelectionMgr->clearSelected();
-      //mySelectionMgr->AddIObject(myMeshActor->getIO());
-      SALOME_ListIO aList;
-      aList.Append(myMeshActor->getIO());
-      mySelectionMgr->setSelectedObjects(aList, false);
-
-      QStringList aListId = QStringList::split(" ", theNewText, false);
-      bool bOk;
-      const Handle(SALOME_InteractiveObject)& anIO = myMeshActor->getIO();
-      TColStd_MapOfInteger newIndices;
-      for (int i = 0; i < aListId.count(); i++) {
-       long ind = aListId[ i ].toLong(&bOk);
-       if (bOk) {
-         const SMDS_MeshElement* e = aMesh->FindElement(ind);
-         if (e) {
-           // check also type of element
-           bool typeMatch = Elements1dRB->isChecked() && e->GetType() == SMDSAbs_Edge ||
-                            Elements2dRB->isChecked() && e->GetType() == SMDSAbs_Face;
-           if (typeMatch)
-             newIndices.Add(e->GetID());
-         }
-       }
-      }
-      mySelector->AddOrRemoveIndex(anIO, newIndices, false);
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->highlight( anIO, true, true );
-    }
-  } else if (send == StartPointLineEdit &&
-             myEditCurrentArgument == StartPointLineEdit) {
-    if (!myPathMesh->_is_nil()) {
-      SMESH_Actor* aPathActor = SMESH::FindActorByObject(myPathMesh);
-      SMDS_Mesh* aMesh = 0;
-      if (aPathActor)
-       aMesh = aPathActor->GetObject()->GetMesh();
-      if (aMesh) {
-       //mySelectionMgr->clearSelected();
-       //mySelectionMgr->AddIObject(aPathActor->getIO());
-        SALOME_ListIO aList;
-        aList.Append(aPathActor->getIO());
-        mySelectionMgr->setSelectedObjects(aList, false);
-
-       bool bOk;
-       long ind = theNewText.toLong(&bOk);
-       if (bOk) {
-         const SMDS_MeshNode* n = aMesh->FindNode(ind);
-         if (n) {
-           //if (!mySelectionMgr->IsIndexSelected(aPathActor->getIO(), n->GetID())) {
-            TColStd_MapOfInteger newIndices;
-           newIndices.Add(n->GetID());
-           mySelector->AddOrRemoveIndex( aPathActor->getIO(), newIndices, false );
-           if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-             aViewWindow->highlight( aPathActor->getIO(), true, true );
-         }
-       }
-      }
-    }
-  }
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_ExtrusionAlongPathDlg::SelectionIntoArgument()
-{
-  if (myBusy) return;
-
-  // return if dialog box is inactive
-  if (!GroupButtons->isEnabled())
-    return;
-
-  // selected objects count
-  const SALOME_ListIO& aList = mySelector->StoredIObjects();
-  int nbSel = aList.Extent();
-  if (nbSel != 1)
-    return;
-
-  // set busy flag
-  SetBusy sb (this);
-
-  if (myEditCurrentArgument == ElementsLineEdit) {
-    // we are now selecting mesh elements (or whole mesh/submesh/group)
-    // reset
-    ElementsLineEdit->clear();
-    myMesh      = SMESH::SMESH_Mesh::_nil();
-    myIDSource  = SMESH::SMESH_IDSource::_nil();
-    myMeshActor = 0;
-
-    // try to get mesh from selection
-    Handle(SALOME_InteractiveObject) IO = aList.First();
-    myMesh = SMESH::GetMeshByIO(IO);
-    if (myMesh->_is_nil())
-      return;
-    // find actor
-    myMeshActor = SMESH::FindActorByObject(myMesh);
-    if (!myMeshActor)
-      return;
-
-    if (MeshCheck->isChecked()) {
-      // If "Select whole mesh, submesh or group" check box is on ->
-      // get ID source and put it's name to the edit box
-      QString aString;
-      SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
-
-      myIDSource = SMESH::IObjectToInterface<SMESH::SMESH_IDSource>(IO);
-      ElementsLineEdit->setText(aString);
-    } else {
-      // If "Select whole mesh, submesh or group" check box is off ->
-      // try to get selected elements IDs
-      QString aString;
-      //int aNbUnits = SMESH::GetNameOfSelectedElements(mySelectionMgr, aString);
-      SMESH::GetNameOfSelectedElements(mySelector, myMeshActor->getIO(), aString);
-      ElementsLineEdit->setText(aString);
-    }
-  } else if (myEditCurrentArgument == PathMeshLineEdit) {
-    // we are now selecting path mesh
-    // reset
-    PathMeshLineEdit->clear();
-    myPathMesh = SMESH::SMESH_Mesh::_nil();
-    PathShapeLineEdit->clear();
-    myPathShape = GEOM::GEOM_Object::_nil();
-    StartPointLineEdit->clear();
-
-    // try to get mesh from selection
-    Handle(SALOME_InteractiveObject) IO = aList.First();
-    myPathMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO);
-    if(myPathMesh->_is_nil())
-      return;
-
-    QString aString;
-    SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
-    PathMeshLineEdit->setText(aString);
-  } else if (myEditCurrentArgument == PathShapeLineEdit) {
-    // we are now selecting path mesh
-    // reset
-    PathShapeLineEdit->clear();
-    myPathShape = GEOM::GEOM_Object::_nil();
-    StartPointLineEdit->clear();
-
-    // return if path mesh is not yet selected
-    if (myPathMesh->_is_nil())
-      return;
-
-    // try to get shape from selection
-    Handle(SALOME_InteractiveObject) IO = aList.First();
-    myPathShape = SMESH::IObjectToInterface<GEOM::GEOM_Object>(IO);
-    if (myPathShape->_is_nil())
-      return;
-
-    QString aString;
-    SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
-    PathShapeLineEdit->setText(aString);
-  } else if (myEditCurrentArgument == StartPointLineEdit) {
-    // we are now selecting start point of path
-    // reset
-    StartPointLineEdit->clear();
-
-    // return if path mesh or path shape is not yet selected
-    if (myPathMesh->_is_nil() || myPathShape->_is_nil())
-      return;
-
-    // try to get shape from selection
-    Handle(SALOME_InteractiveObject) IO = aList.First();
-
-    QString aString;
-    int aNbUnits = SMESH::GetNameOfSelectedElements(mySelector, myMeshActor->getIO(), aString);
-    if (aNbUnits == 1)
-      StartPointLineEdit->setText(aString.stripWhiteSpace());
-
-  } else if (myEditCurrentArgument == XSpin) {
-    // we are now selecting base point
-    // reset is not performed here!
-
-    // return if is not enabled
-    if (!BasePointGrp->isEnabled())
-      return;
-
-    // try to get shape from selection
-    Handle(SALOME_InteractiveObject) IO = aList.First();
-
-    // check if geom vertex is selected
-    GEOM::GEOM_Object_var aGeomObj = SMESH::IObjectToInterface<GEOM::GEOM_Object>(IO);
-    TopoDS_Vertex aVertex;
-    if (!aGeomObj->_is_nil()) {
-      if (aGeomObj->IsShape() && GEOMBase::GetShape(aGeomObj, aVertex) && !aVertex.IsNull()) {
-       gp_Pnt aPnt = BRep_Tool::Pnt(aVertex);
-       XSpin->SetValue(aPnt.X());
-       YSpin->SetValue(aPnt.Y());
-       ZSpin->SetValue(aPnt.Z());
-      }
-      return;
-    }
-
-    // check if smesh node is selected
-    SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO(IO);
-    if (aMesh->_is_nil())
-      return;
-
-    QString aString;
-    int aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, myMeshActor->getIO(), aString);
-    // return if more than one node is selected
-    if (aNbUnits != 1)
-      return;
-
-    SMESH_Actor* aMeshActor = SMESH::FindActorByObject(aMesh);
-    if (!aMeshActor)
-      return;
-
-    SMDS_Mesh* mesh = aMeshActor->GetObject()->GetMesh();
-    if (!mesh)
-      return;
-
-    const SMDS_MeshNode* n = mesh->FindNode(aString.toLong());
-    if (!n)
-      return;
-
-    XSpin->SetValue(n->X());
-    YSpin->SetValue(n->Y());
-    ZSpin->SetValue(n->Z());
-  }
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose  :
-//=================================================================================
-void SMESHGUI_ExtrusionAlongPathDlg::SetEditCurrentArgument()
-{
-  QToolButton* send = (QToolButton*)sender();
-  if (send != SelectElementsButton   &&
-      send != SelectPathMeshButton   &&
-      send != SelectPathShapeButton  &&
-      send != SelectStartPointButton &&
-      send != SelectBasePointButton)
-    return;
-  SetEditCurrentArgument(send);
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose  :
-//=================================================================================
-void SMESHGUI_ExtrusionAlongPathDlg::SetEditCurrentArgument (QToolButton* button)
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySelectionMgr->clearSelected();
-  mySelectionMgr->clearFilters();
-  SMESH::SetPickable();
-
-  if (button == SelectElementsButton) {
-    myEditCurrentArgument = ElementsLineEdit;
-    SMESH::SetPointRepresentation(false);
-    if (MeshCheck->isChecked()) {
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->SetSelectionMode(ActorSelection);
-      mySelectionMgr->installFilter(myElementsFilter);
-    } else {
-      if (Elements1dRB->isChecked())
-       {
-         if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-           aViewWindow->SetSelectionMode(EdgeSelection);
-       }
-      else if (Elements2dRB->isChecked())
-       {
-         if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-           aViewWindow->SetSelectionMode(FaceSelection);
-       }
-    }
-  } else if (button == SelectPathMeshButton) {
-    myEditCurrentArgument = PathMeshLineEdit;
-    SMESH::SetPointRepresentation(false);
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(ActorSelection);
-    mySelectionMgr->installFilter(myPathMeshFilter);
-  }
-  else if (button == SelectPathShapeButton) {
-    myEditCurrentArgument = PathShapeLineEdit;
-    SMESH::SetPointRepresentation(false);
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(ActorSelection);
-
-    if (!myPathMesh->_is_nil()) {
-      GEOM::GEOM_Object_var aMainShape = myPathMesh->GetShapeToMesh();
-      SMESH_Actor* aPathActor = SMESH::FindActorByObject(myPathMesh);
-
-      if (!aMainShape->_is_nil() && aPathActor)
-       mySelectionMgr->installFilter(new SMESH_NumberFilter ("GEOM", TopAbs_SHAPE, -1,
-                                                              TopAbs_EDGE, aMainShape));
-       //SMESH::SetPickable(aPathActor);
-    }
-  }
-  else if (button == SelectStartPointButton) {
-    myEditCurrentArgument = StartPointLineEdit;
-    if (!myPathMesh->_is_nil()) {
-      SMESH_Actor* aPathActor = SMESH::FindActorByObject(myPathMesh);
-      if (aPathActor) {
-       SMESH::SetPointRepresentation(true);
-       if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-         aViewWindow->SetSelectionMode(NodeSelection);
-       SMESH::SetPickable(aPathActor);
-      }
-    }
-  }
-  else if (button == SelectBasePointButton) {
-    myEditCurrentArgument = XSpin;
-    SMESH::SetPointRepresentation(true);
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(NodeSelection);
-
-    SMESH_TypeFilter* aMeshOrSubMeshFilter = new SMESH_TypeFilter(MESHorSUBMESH);
-    SMESH_TypeFilter* aSmeshGroupFilter    = new SMESH_TypeFilter(GROUP);
-    SMESH_NumberFilter* aVertexFilter      = new SMESH_NumberFilter ("GEOM", TopAbs_SHAPE,
-                                                                     -1, TopAbs_VERTEX);
-    QPtrList<SUIT_SelectionFilter> aListOfFilters;
-    if (aMeshOrSubMeshFilter) aListOfFilters.append(aMeshOrSubMeshFilter);
-    if (aSmeshGroupFilter)    aListOfFilters.append(aSmeshGroupFilter);
-    if (aVertexFilter)        aListOfFilters.append(aVertexFilter);
-
-    mySelectionMgr->installFilter(new SMESH_LogicalFilter
-                                  (aListOfFilters, SMESH_LogicalFilter::LO_OR));
-  }
-
-  if (myEditCurrentArgument && !myEditCurrentArgument->hasFocus())
-    myEditCurrentArgument->setFocus();
-
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  : Deactivates this dialog
-//=================================================================================
-void SMESHGUI_ExtrusionAlongPathDlg::DeactivateActiveDialog()
-{
-  if (GroupConstructors->isEnabled()) {
-    GroupConstructors->setEnabled(false);
-    GroupArguments->setEnabled(false);
-    GroupButtons->setEnabled(false);
-    mySMESHGUI->ResetState();
-    mySMESHGUI->SetActiveDialogBox(0);
-  }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  : Activates this dialog
-//=================================================================================
-void SMESHGUI_ExtrusionAlongPathDlg::ActivateThisDialog()
-{
-  // Emit a signal to deactivate the active dialog
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupConstructors->setEnabled(true);
-  GroupArguments->setEnabled(true);
-  GroupButtons->setEnabled(true);
-
-  mySMESHGUI->SetActiveDialogBox(this);
-
-  ConstructorsClicked(GetConstructorId());
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  : Mouse enter event
-//=================================================================================
-void SMESHGUI_ExtrusionAlongPathDlg::enterEvent (QEvent*)
-{
-  if (!GroupConstructors->isEnabled())
-    ActivateThisDialog();
-}
-
-//=======================================================================
-// function : onSelectMesh()
-// purpose  :
-//=======================================================================
-void SMESHGUI_ExtrusionAlongPathDlg::onSelectMesh()
-{
-  bool toSelectMesh = MeshCheck->isChecked();
-
-  ElementsLineEdit->setReadOnly(toSelectMesh);
-  ElementsLab->setText(toSelectMesh ? tr("SMESH_NAME") : tr("SMESH_ID_ELEMENTS"));
-  ElementsLineEdit->clear();
-
-  SetEditCurrentArgument(SelectElementsButton);
-}
-
-//=================================================================================
-// function : GetConstructorId()
-// purpose  :
-//=================================================================================
-int SMESHGUI_ExtrusionAlongPathDlg::GetConstructorId()
-{
-  if (GroupConstructors != NULL && GroupConstructors->selected() != NULL)
-    return GroupConstructors->id(GroupConstructors->selected());
-  return -1;
-}
-
-//=======================================================================
-// function : onAnglesCheck()
-// purpose  : called when "Use Angles" check box is switched
-//=======================================================================
-void SMESHGUI_ExtrusionAlongPathDlg::onAnglesCheck()
-{
-  AnglesGrp->setEnabled(AnglesCheck->isChecked());
-}
-
-//=======================================================================
-// function : onBasePointCheck()
-// purpose  : called when "Use Base Point" check box is switched
-//=======================================================================
-void SMESHGUI_ExtrusionAlongPathDlg::onBasePointCheck()
-{
-  BasePointGrp->setEnabled(BasePointCheck->isChecked());
-}
-
-//=======================================================================
-// function : OnAngleAdded()
-// purpose  : Called when user adds angle to the list
-//=======================================================================
-void SMESHGUI_ExtrusionAlongPathDlg::OnAngleAdded()
-{
-  AnglesList->insertItem(QString::number(AngleSpin->GetValue()));
-}
-
-//=======================================================================
-// function : OnAngleRemoved()
-// purpose  : Called when user removes angle(s) from the list
-//=======================================================================
-void SMESHGUI_ExtrusionAlongPathDlg::OnAngleRemoved()
-{
-  QList<QListBoxItem> aList;
-  aList.setAutoDelete(false);
-  for (int i = 0; i < AnglesList->count(); i++)
-    if (AnglesList->isSelected(i))
-      aList.append(AnglesList->item(i));
-
-  for (int i = 0; i < aList.count(); i++)
-    delete aList.at(i);
-}
-
-//=================================================================================
-// function : eventFilter()
-// purpose  : event filter ???
-//=================================================================================
-bool SMESHGUI_ExtrusionAlongPathDlg::eventFilter (QObject* object, QEvent* event)
-{
-  if (event->type() == QEvent::KeyPress) {
-    QKeyEvent* ke = (QKeyEvent*)event;
-    if (object == AnglesList) {
-      if (ke->key() == Key_Delete)
-       OnAngleRemoved();
-    }
-  }
-  else if (event->type() == QEvent::FocusIn) {
-    if (object == ElementsLineEdit) {
-      if (myEditCurrentArgument != ElementsLineEdit)
-       SetEditCurrentArgument(SelectElementsButton);
-    }
-    else if (object == StartPointLineEdit) {
-      if (myEditCurrentArgument != StartPointLineEdit)
-       SetEditCurrentArgument(SelectStartPointButton);
-    }
-    else if (object == XSpin->editor() || object == YSpin->editor() || object == ZSpin->editor()) {
-      if (myEditCurrentArgument != XSpin)
-       SetEditCurrentArgument(SelectBasePointButton);
-    }
-  }
-  return QDialog::eventFilter(object, event);
-}
diff --git a/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.h b/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.h
deleted file mode 100644 (file)
index 91ba508..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_ExtrusionAlongPathDlg.h
-//  Author : Vadim SANDLER
-//  Module : SMESH
-//  $Header: 
-
-#ifndef DIALOGBOX_EXTRUSION_PATH_H
-#define DIALOGBOX_EXTRUSION_PATH_H
-
-#include "SalomeApp_SelectionMgr.h"
-#include "SUIT_SelectionFilter.h"
-
-// QT Includes
-#include <qdialog.h>
-
-class QButtonGroup;
-class QRadioButton;
-class QGroupBox;
-class QLabel;
-class QToolButton;
-class QLineEdit;
-class QCheckBox;
-class QListBox;
-class QPushButton;
-
-class SMESHGUI;
-class SMESH_Actor;
-class SMESHGUI_SpinBox;
-class SVTK_ViewWindow;
-class SVTK_Selector;
-
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-//=================================================================================
-// class    : SMESHGUI_ExtrusionAlongPathDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_ExtrusionAlongPathDlg : public QDialog
-{
-  Q_OBJECT
-
-  class SetBusy {
-    public:
-      SetBusy (SMESHGUI_ExtrusionAlongPathDlg* _dlg) { myDlg = _dlg; myDlg->myBusy = true; }
-      ~SetBusy() { myDlg->myBusy = false; }
-    private:
-      SMESHGUI_ExtrusionAlongPathDlg* myDlg;
-  };
-  friend class SetBusy;
-
-public:
-  SMESHGUI_ExtrusionAlongPathDlg (SMESHGUI*,
-                                 bool modal = FALSE);
-  ~SMESHGUI_ExtrusionAlongPathDlg();
-
-  bool eventFilter (QObject* object, QEvent* event);
-
-private:
-  void Init (bool ResetControls = true);
-  void enterEvent (QEvent*);                           /* mouse enter the QWidget */
-  int  GetConstructorId();
-  void SetEditCurrentArgument (QToolButton* button);
-
-  SMESHGUI*                     mySMESHGUI;            /* Current SMESHGUI object */
-  SalomeApp_SelectionMgr*       mySelectionMgr;        /* User shape selection */
-  SVTK_Selector*                mySelector;
-
-  QWidget*                      myEditCurrentArgument; /* Current  argument */
-
-  bool                          myBusy;
-  SMESH::SMESH_Mesh_var         myMesh;
-  SMESH_Actor*                  myMeshActor;
-  SMESH::SMESH_IDSource_var     myIDSource;
-  SMESH::SMESH_Mesh_var         myPathMesh;
-  GEOM::GEOM_Object_var         myPathShape;
-  SUIT_SelectionFilter*         myElementsFilter;
-  SUIT_SelectionFilter*         myPathMeshFilter;
-  int                           myType;
-
-  // widgets
-  QButtonGroup*     GroupConstructors;
-  QRadioButton*     Elements1dRB;
-  QRadioButton*     Elements2dRB;
-
-  QGroupBox*        GroupArguments;
-  QLabel*           ElementsLab;
-  QToolButton*      SelectElementsButton;
-  QLineEdit*        ElementsLineEdit;
-  QCheckBox*        MeshCheck;
-  QGroupBox*        PathGrp;
-  QLabel*           PathMeshLab;
-  QToolButton*      SelectPathMeshButton;
-  QLineEdit*        PathMeshLineEdit;
-  QLabel*           PathShapeLab;
-  QToolButton*      SelectPathShapeButton;
-  QLineEdit*        PathShapeLineEdit;
-  QLabel*           StartPointLab;
-  QToolButton*      SelectStartPointButton;
-  QLineEdit*        StartPointLineEdit;
-  QCheckBox*        AnglesCheck;
-  QGroupBox*        AnglesGrp;
-  QListBox*         AnglesList;
-  QToolButton*      AddAngleButton;
-  QToolButton*      RemoveAngleButton;
-  SMESHGUI_SpinBox* AngleSpin;
-  QCheckBox*        BasePointCheck;
-  QGroupBox*        BasePointGrp;
-  QToolButton*      SelectBasePointButton;
-  QLabel*           XLab;
-  SMESHGUI_SpinBox* XSpin;
-  QLabel*           YLab;
-  SMESHGUI_SpinBox* YSpin;
-  QLabel*           ZLab;
-  SMESHGUI_SpinBox* ZSpin;
-
-  QGroupBox*        GroupButtons;
-  QPushButton*      OkButton;
-  QPushButton*      ApplyButton;
-  QPushButton*      CloseButton;
-
-protected slots:
-  void reject();
-
-private slots:
-  void ConstructorsClicked (int);
-  void ClickOnOk();
-  bool ClickOnApply();
-  void SetEditCurrentArgument();
-  void SelectionIntoArgument();
-  void DeactivateActiveDialog();
-  void ActivateThisDialog();
-  void onTextChange (const QString&);
-  void onSelectMesh();
-  void onAnglesCheck();
-  void onBasePointCheck();
-  void OnAngleAdded();
-  void OnAngleRemoved();
-};
-
-#endif // DIALOGBOX_EXTRUSION_PATH_H
diff --git a/src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx b/src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx
deleted file mode 100644 (file)
index 0caa16c..0000000
+++ /dev/null
@@ -1,757 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_ExtrusionDlg.cxx
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header:
-
-#include "SMESHGUI_ExtrusionDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_MeshUtils.h"
-#include "SMESHGUI_SpinBox.h"
-#include "SMESHGUI_IdValidator.h"
-
-#include "SMESH_Actor.h"
-#include "SMESH_TypeFilter.hxx"
-#include "SMESH_NumberFilter.hxx"
-#include "SMESH_LogicalFilter.hxx"
-
-#include "SMDS_Mesh.hxx"
-
-#include "SUIT_ResourceMgr.h"
-#include "SUIT_OverrideCursor.h"
-#include "SUIT_Desktop.h"
-#include "SUIT_MessageBox.h"
-
-#include "SVTK_ViewModel.h"
-#include "SVTK_ViewWindow.h"
-#include "SVTK_Selector.h"
-#include "SVTK_Selection.h"
-#include "SALOME_ListIO.hxx"
-
-#include "utilities.h"
-
-// OCCT Includes
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_IndexedMapOfInteger.hxx>
-
-// QT Includes
-#include <qapplication.h>
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qcheckbox.h>
-#include <qspinbox.h>
-#include <qlayout.h>
-#include <qvalidator.h>
-#include <qpixmap.h>
-
-// IDL Headers
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Group)
-
-using namespace std;
-
-//=================================================================================
-// function : SMESHGUI_ExtrusionDlg()
-// purpose  : constructor
-//=================================================================================
-SMESHGUI_ExtrusionDlg::SMESHGUI_ExtrusionDlg (SMESHGUI* theModule,
-                                             bool modal)
-     : QDialog( SMESH::GetDesktop( theModule ), "SMESHGUI_ExtrusionDlg", modal, WStyle_Customize |
-                WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
-     mySMESHGUI( theModule ),
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-  QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_DLG_EDGE")));
-  QPixmap image1 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_DLG_TRIANGLE")));
-  QPixmap image2 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
-
-  resize(303, 185);
-  setCaption(tr("EXTRUSION_ALONG_LINE"));
-  setSizeGripEnabled(TRUE);
-
-  QGridLayout* SMESHGUI_ExtrusionDlgLayout = new QGridLayout(this);
-  SMESHGUI_ExtrusionDlgLayout->setSpacing(6);
-  SMESHGUI_ExtrusionDlgLayout->setMargin(11);
-
-  /***************************************************************/
-  GroupConstructors = new QButtonGroup("GroupConstructors", this);
-  GroupConstructors->setTitle(tr("SMESH_EXTRUSION"));
-  GroupConstructors->setExclusive(TRUE);
-  GroupConstructors->setColumnLayout(0, Qt::Vertical);
-  GroupConstructors->layout()->setSpacing(0);
-  GroupConstructors->layout()->setMargin(0);
-  QGridLayout* GroupConstructorsLayout = new QGridLayout(GroupConstructors->layout());
-  GroupConstructorsLayout->setAlignment(Qt::AlignTop);
-  GroupConstructorsLayout->setSpacing(6);
-  GroupConstructorsLayout->setMargin(11);
-  RadioButton1= new QRadioButton(GroupConstructors, "RadioButton1");
-  RadioButton1->setText(tr(""));
-  RadioButton1->setPixmap(image0);
-  GroupConstructorsLayout->addWidget(RadioButton1, 0, 0);
-  RadioButton2= new QRadioButton(GroupConstructors, "RadioButton2");
-  RadioButton2->setText(tr(""));
-  RadioButton2->setPixmap(image1);
-  GroupConstructorsLayout->addWidget(RadioButton2, 0, 2);
-  SMESHGUI_ExtrusionDlgLayout->addWidget(GroupConstructors, 0, 0);
-
-  /***************************************************************/
-  GroupButtons = new QGroupBox(this, "GroupButtons");
-  GroupButtons->setGeometry(QRect(10, 10, 281, 48));
-  GroupButtons->setTitle(tr(""));
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  QGridLayout* GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-  buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
-  buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
-  buttonCancel->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-  buttonApply = new QPushButton(GroupButtons, "buttonApply");
-  buttonApply->setText(tr("SMESH_BUT_APPLY" ));
-  buttonApply->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-  QSpacerItem* spacer_9 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupButtonsLayout->addItem(spacer_9, 0, 2);
-  buttonOk = new QPushButton(GroupButtons, "buttonOk");
-  buttonOk->setText(tr("SMESH_BUT_OK" ));
-  buttonOk->setAutoDefault(TRUE);
-  buttonOk->setDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-  SMESHGUI_ExtrusionDlgLayout->addWidget(GroupButtons, 2, 0);
-
-  /***************************************************************/
-  GroupArguments = new QGroupBox(this, "GroupArguments");
-  GroupArguments->setTitle(tr("EXTRUSION_1D"));
-  GroupArguments->setColumnLayout(0, Qt::Vertical);
-  GroupArguments->layout()->setSpacing(0);
-  GroupArguments->layout()->setMargin(0);
-  QGridLayout* GroupArgumentsLayout = new QGridLayout(GroupArguments->layout());
-  GroupArgumentsLayout->setAlignment(Qt::AlignTop);
-  GroupArgumentsLayout->setSpacing(6);
-  GroupArgumentsLayout->setMargin(11);
-
-  // Controls for elements selection
-  TextLabelElements  = new QLabel(GroupArguments, "TextLabelElements");
-  TextLabelElements->setText(tr("SMESH_ID_ELEMENTS" ));
-  TextLabelElements->setFixedWidth(74);
-  GroupArgumentsLayout->addWidget(TextLabelElements, 0, 0);
-
-  SelectElementsButton  = new QPushButton(GroupArguments, "SelectElementsButton");
-  SelectElementsButton->setText(tr("" ));
-  SelectElementsButton->setPixmap(image2);
-  SelectElementsButton->setToggleButton(FALSE);
-  GroupArgumentsLayout->addWidget(SelectElementsButton, 0, 1);
-
-  LineEditElements  = new QLineEdit(GroupArguments, "LineEditElements");
-  LineEditElements->setValidator(new SMESHGUI_IdValidator(this, "validator"));
-  GroupArgumentsLayout->addMultiCellWidget(LineEditElements, 0, 0, 2, 7);
-
-  // Control for the whole mesh selection
-  CheckBoxMesh = new QCheckBox(GroupArguments, "CheckBoxMesh");
-  CheckBoxMesh->setText(tr("SMESH_SELECT_WHOLE_MESH" ));
-  GroupArgumentsLayout->addMultiCellWidget(CheckBoxMesh, 1, 1, 0, 7);
-
-  // Controls for vector selection
-  TextLabelVector = new QLabel(GroupArguments, "TextLabelVector");
-  TextLabelVector->setText(tr("SMESH_VECTOR"));
-  GroupArgumentsLayout->addWidget(TextLabelVector, 2, 0);
-
-  TextLabelDx = new QLabel(GroupArguments, "TextLabelDx");
-  TextLabelDx->setText(tr("SMESH_DX"));
-  GroupArgumentsLayout->addWidget(TextLabelDx, 2, 2);
-
-  SpinBox_Dx = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Dx");
-  GroupArgumentsLayout->addWidget(SpinBox_Dx, 2, 3);
-
-  TextLabelDy = new QLabel(GroupArguments, "TextLabelDy");
-  TextLabelDy->setText(tr("SMESH_DY"));
-  GroupArgumentsLayout->addWidget(TextLabelDy, 2, 4);
-
-  SpinBox_Dy = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Dy");
-  GroupArgumentsLayout->addWidget(SpinBox_Dy, 2, 5);
-
-  TextLabelDz = new QLabel(GroupArguments, "TextLabelDz");
-  TextLabelDz->setText(tr("SMESH_DZ"));
-  GroupArgumentsLayout->addWidget(TextLabelDz, 2, 6);
-
-  SpinBox_Dz = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Dz");
-  GroupArgumentsLayout->addWidget(SpinBox_Dz, 2, 7);
-
-  // Controls for nb. steps defining
-  TextLabelNbSteps = new QLabel(GroupArguments, "TextLabelNbSteps");
-  TextLabelNbSteps->setText(tr("SMESH_NUMBEROFSTEPS" ));
-  GroupArgumentsLayout->addMultiCellWidget(TextLabelNbSteps, 3, 3, 0, 1);
-
-  SpinBox_NbSteps = new QSpinBox(GroupArguments, "SpinBox_NbSteps");
-  GroupArgumentsLayout->addMultiCellWidget(SpinBox_NbSteps, 3, 3,  2, 7);
-
-  SMESHGUI_ExtrusionDlgLayout->addWidget(GroupArguments, 1, 0);
-
-  /* Initialisations */
-  SpinBox_Dx->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox_Dy->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox_Dz->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-
-  QIntValidator* anIntValidator = new QIntValidator(SpinBox_NbSteps);
-  SpinBox_NbSteps->setValidator(anIntValidator);
-  SpinBox_NbSteps->setRange(1, 999999);
-
-  GroupArguments->show();
-  RadioButton1->setChecked(TRUE);
-
-  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
-
-  mySMESHGUI->SetActiveDialogBox(this);
-
-  // Costruction of the logical filter for the elements: mesh/sub-mesh/group
-  SMESH_TypeFilter* aMeshOrSubMeshFilter = new SMESH_TypeFilter (MESHorSUBMESH);
-  SMESH_TypeFilter* aSmeshGroupFilter    = new SMESH_TypeFilter (GROUP);
-
-  QPtrList<SUIT_SelectionFilter> aListOfFilters;
-  if (aMeshOrSubMeshFilter) aListOfFilters.append(aMeshOrSubMeshFilter);
-  if (aSmeshGroupFilter)    aListOfFilters.append(aSmeshGroupFilter);
-
-  myMeshOrSubMeshOrGroupFilter =
-    new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
-
-  Init();
-
-  /***************************************************************/
-  // signals and slots connections
-  connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-  connect(buttonApply, SIGNAL(clicked()),  this, SLOT(ClickOnApply()));
-  connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
-
-  connect(SelectElementsButton, SIGNAL (clicked()),            this, SLOT(SetEditCurrentArgument()));
-  connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()),   this, SLOT(SelectionIntoArgument()));
-  /* to close dialog if study change */
-  connect(mySMESHGUI,       SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
-  connect(LineEditElements, SIGNAL(textChanged(const QString&)),    SLOT(onTextChange(const QString&)));
-  connect(CheckBoxMesh,     SIGNAL(toggled(bool)),                  SLOT(onSelectMesh(bool)));
-
-  /***************************************************************/
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show(); // displays Dialog
-
-  ConstructorsClicked(0);
-}
-
-//=================================================================================
-// function : ~SMESHGUI_ExtrusionDlg()
-// purpose  : destructor
-//=================================================================================
-SMESHGUI_ExtrusionDlg::~SMESHGUI_ExtrusionDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose  : initialization
-//=================================================================================
-void SMESHGUI_ExtrusionDlg::Init (bool ResetControls)
-{
-  myBusy = false;
-
-  LineEditElements->clear();
-  myElementsId = "";
-  myNbOkElements = 0;
-
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-
-  myActor = 0;
-  myMesh = SMESH::SMESH_Mesh::_nil();
-
-  if (ResetControls) {
-    SpinBox_NbSteps->setValue(1);
-    SpinBox_Dx->SetValue(0);
-    SpinBox_Dy->SetValue(0);
-    SpinBox_Dz->SetValue(0);
-
-    CheckBoxMesh->setChecked(false);
-    onSelectMesh(false);
-  }
-}
-
-//=================================================================================
-// function : ConstructorsClicked()
-// purpose  : Radio button management
-//=================================================================================
-void SMESHGUI_ExtrusionDlg::ConstructorsClicked (int constructorId)
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-
-  switch (constructorId) {
-  case 0:
-    {
-      GroupArguments->setTitle(tr("EXTRUSION_1D"));
-      if (!CheckBoxMesh->isChecked())
-       {
-         if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-           aViewWindow->SetSelectionMode(EdgeSelection);
-       }
-      break;
-    }
-  case 1:
-    {
-      GroupArguments->setTitle(tr("EXTRUSION_2D"));
-      if (!CheckBoxMesh->isChecked())
-       {
-         if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-           aViewWindow->SetSelectionMode(FaceSelection);
-       }
-      break;
-    }
-  }
-
-  myEditCurrentArgument = LineEditElements;
-  LineEditElements->setFocus();
-
-  if (CheckBoxMesh->isChecked())
-    onSelectMesh(true);
-
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  : Called when user presses <Apply> button
-//=================================================================================
-bool SMESHGUI_ExtrusionDlg::ClickOnApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return false;
-
-  if (myNbOkElements) {
-    QStringList aListElementsId = QStringList::split(" ", myElementsId, false);
-
-    SMESH::long_array_var anElementsId = new SMESH::long_array;
-
-    anElementsId->length(aListElementsId.count());
-    for (int i = 0; i < aListElementsId.count(); i++)
-      anElementsId[i] = aListElementsId[i].toInt();
-
-    SMESH::DirStruct aVector;
-    aVector.PS.x = SpinBox_Dx->GetValue();
-    aVector.PS.y = SpinBox_Dy->GetValue();
-    aVector.PS.z = SpinBox_Dz->GetValue();
-
-    long aNbSteps = (long)SpinBox_NbSteps->value();
-
-    try {
-      SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
-      QApplication::setOverrideCursor(Qt::waitCursor);
-      aMeshEditor->ExtrusionSweep(anElementsId.inout(), aVector, aNbSteps);
-      QApplication::restoreOverrideCursor();
-    } catch (...) {
-    }
-
-    mySelectionMgr->clearSelected();
-    SMESH::UpdateView();
-    Init(false);
-    ConstructorsClicked(GetConstructorId());
-  }
-  return true;
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  : Called when user presses <OK> button
-//=================================================================================
-void SMESHGUI_ExtrusionDlg::ClickOnOk()
-{
-  if (ClickOnApply())
-    ClickOnCancel();
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  : Called when dialog box is closed
-//=================================================================================
-void SMESHGUI_ExtrusionDlg::ClickOnCancel()
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySelectionMgr->clearFilters();
-  mySelectionMgr->clearSelected();
-  SMESH::SetPickable(); // ???
-  SMESH::SetPointRepresentation(false);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-  mySMESHGUI->ResetState();
-  reject();
-}
-
-//=================================================================================
-// function : onTextChange()
-// purpose  :
-//=================================================================================
-void SMESHGUI_ExtrusionDlg::onTextChange (const QString& theNewText)
-{
-  QLineEdit* send = (QLineEdit*)sender();
-
-  // return if busy
-  if (myBusy) return;
-
-  // set busy flag
-  myBusy = true;
-
-  if (send == LineEditElements)
-    myNbOkElements = 0;
-
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-
-  // hilight entered elements/nodes
-  SMDS_Mesh* aMesh = 0;
-  if (myActor)
-    aMesh = myActor->GetObject()->GetMesh();
-
-  if (aMesh) {
-    QStringList aListId = QStringList::split(" ", theNewText, false);
-
-    if (send == LineEditElements) {
-      const Handle(SALOME_InteractiveObject)& anIO = myActor->getIO();
-      TColStd_MapOfInteger newIndices;
-      for (int i = 0; i < aListId.count(); i++) {
-       const SMDS_MeshElement * e = aMesh->FindElement(aListId[ i ].toInt());
-       if (e)
-         newIndices.Add(e->GetID());
-       myNbOkElements++;
-      }
-      mySelector->AddOrRemoveIndex(anIO, newIndices, false);
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->highlight( anIO, true, true );
-      myElementsId = theNewText;
-    }
-  }
-
-  if (myNbOkElements) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
-
-  myBusy = false;
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_ExtrusionDlg::SelectionIntoArgument()
-{
-  if (myBusy) return;
-
-  // return if dialog box is inactive
-  if (!GroupButtons->isEnabled())
-    return;
-
-  // clear
-  myActor = 0;
-  QString aString = "";
-
-  // set busy flag
-  myBusy = true;
-
-  myEditCurrentArgument->setText(aString);
-  myNbOkElements = 0;
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-  myBusy = false;
-
-  // get selected mesh
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList, SVTK_Viewer::Type());
-  int nbSel = SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
-  if (nbSel != 1)
-    return;
-
-  Handle(SALOME_InteractiveObject) IO = aList.First();
-  myMesh = SMESH::GetMeshByIO(IO);
-  if (myMesh->_is_nil())
-    return;
-
-  myActor = SMESH::FindActorByObject(myMesh);
-  if (!myActor)
-    return;
-
-  if (myEditCurrentArgument == LineEditElements) {
-    int aNbElements = 0;
-    myElementsId = "";
-
-    if (CheckBoxMesh->isChecked()) {
-      int aConstructorId = GetConstructorId();
-
-      SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
-
-      if (!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) { //MESH
-        // get IDs from mesh
-        SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
-        if (!aSMDSMesh)
-          return;
-
-        if (aConstructorId == 0) {
-          SMDS_EdgeIteratorPtr anIter = aSMDSMesh->edgesIterator();
-
-          while (anIter->more()) {
-            const SMDS_MeshEdge * edge = anIter->next();
-            if (edge) {
-              myElementsId += QString(" %1").arg(edge->GetID());
-              aNbElements++;
-            }
-          }
-        } else if (aConstructorId == 1) {
-          SMDS_FaceIteratorPtr anIter = aSMDSMesh->facesIterator();
-          while (anIter->more()) {
-            const SMDS_MeshFace * face = anIter->next();
-            if (face) {
-              myElementsId += QString(" %1").arg(face->GetID());
-              aNbElements++;
-            }
-          }
-        }
-      } else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) { //SUBMESH
-        // get submesh
-        SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO);
-
-        // get IDs from submesh
-        SMESH::long_array_var anElementsIds = new SMESH::long_array;
-        if (aConstructorId == 0)
-          anElementsIds = aSubMesh->GetElementsByType(SMESH::EDGE);
-        else if (aConstructorId == 1)
-          anElementsIds = aSubMesh->GetElementsByType(SMESH::FACE);
-
-        for (int i = 0; i < anElementsIds->length(); i++)
-          myElementsId += QString(" %1").arg(anElementsIds[i]);
-        aNbElements = anElementsIds->length();
-      } else { // GROUP
-        // get smesh group
-        SMESH::SMESH_GroupBase_var aGroup =
-          SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
-        if (aGroup->_is_nil())
-          return;
-
-        if ((aConstructorId == 0 && aGroup->GetType() != SMESH::EDGE) ||
-            (aConstructorId == 1 && aGroup->GetType()!= SMESH::FACE))
-          return;
-
-        // get IDs from smesh group
-        SMESH::long_array_var anElementsIds = new SMESH::long_array;
-        anElementsIds = aGroup->GetListOfID();
-        for (int i = 0; i < anElementsIds->length(); i++)
-          myElementsId += QString(" %1").arg(anElementsIds[i]);
-        aNbElements = anElementsIds->length();
-      }
-    } else {
-      aNbElements = SMESH::GetNameOfSelectedElements(mySelector, myActor->getIO(), aString);
-      myElementsId = aString;
-    }
-
-    if (aNbElements < 1)
-      return;
-
-    myNbOkElements = true;
-  }
-
-  myBusy = true;
-  myEditCurrentArgument->setText(aString);
-  myBusy = false;
-
-  // OK
-  if (myNbOkElements) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose  :
-//=================================================================================
-void SMESHGUI_ExtrusionDlg::SetEditCurrentArgument()
-{
-  QPushButton* send = (QPushButton*)sender();
-
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySelectionMgr->clearSelected();
-  mySelectionMgr->clearFilters();
-
-  if (send == SelectElementsButton) {
-    myEditCurrentArgument = LineEditElements;
-    if (CheckBoxMesh->isChecked()) {
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->SetSelectionMode(ActorSelection);
-      mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter);
-    } else {
-      int aConstructorId = GetConstructorId();
-      if (aConstructorId == 0)
-       {
-         if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-           aViewWindow->SetSelectionMode(EdgeSelection);
-       }
-      else if (aConstructorId == 1)
-       {
-         if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-           aViewWindow->SetSelectionMode(FaceSelection);
-       }
-    }
-  }
-
-  myEditCurrentArgument->setFocus();
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  : Deactivates this dialog
-//=================================================================================
-void SMESHGUI_ExtrusionDlg::DeactivateActiveDialog()
-{
-  if (GroupConstructors->isEnabled()) {
-    GroupConstructors->setEnabled(false);
-    GroupArguments->setEnabled(false);
-    GroupButtons->setEnabled(false);
-    mySMESHGUI->ResetState();
-    mySMESHGUI->SetActiveDialogBox(0);
-  }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  : Activates this dialog
-//=================================================================================
-void SMESHGUI_ExtrusionDlg::ActivateThisDialog()
-{
-  // Emit a signal to deactivate the active dialog
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupConstructors->setEnabled(true);
-  GroupArguments->setEnabled(true);
-  GroupButtons->setEnabled(true);
-
-  mySMESHGUI->SetActiveDialogBox(this);
-
-  ConstructorsClicked(GetConstructorId());
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  : Mouse enter event
-//=================================================================================
-void SMESHGUI_ExtrusionDlg::enterEvent (QEvent*)
-{
-  if (!GroupConstructors->isEnabled())
-    ActivateThisDialog();
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-//void SMESHGUI_ExtrusionDlg::closeEvent (QCloseEvent*)
-//{
-//  /* same than click on cancel button */
-//  this->ClickOnCancel();
-//}
-//
-//=================================================================================
-// function : hideEvent()
-// purpose  : caused by ESC key
-//=================================================================================
-//void SMESHGUI_ExtrusionDlg::hideEvent (QHideEvent*)
-//{
-//  if (!isMinimized())
-//    ClickOnCancel();
-//}
-
-//=================================================================================
-// function : onSelectMesh()
-// purpose  :
-//=================================================================================
-void SMESHGUI_ExtrusionDlg::onSelectMesh (bool toSelectMesh)
-{
-  if (toSelectMesh)
-    TextLabelElements->setText(tr("SMESH_NAME"));
-  else
-    TextLabelElements->setText(tr("SMESH_ID_ELEMENTS"));
-
-  if (myEditCurrentArgument != LineEditElements) {
-    LineEditElements->clear();
-    return;
-  }
-
-  mySelectionMgr->clearFilters();
-
-  if (toSelectMesh) {
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(ActorSelection);
-    mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter);
-    LineEditElements->setReadOnly(true);
-  } else {
-    int aConstructorId = GetConstructorId();
-    if (aConstructorId == 0)
-      {
-       if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-         aViewWindow->SetSelectionMode(EdgeSelection);
-      }
-    else if (aConstructorId == 0)
-      {
-       if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-         aViewWindow->SetSelectionMode(FaceSelection);
-      }
-
-    LineEditElements->setReadOnly(false);
-    onTextChange(LineEditElements->text());
-  }
-
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : GetConstructorId()
-// purpose  :
-//=================================================================================
-int SMESHGUI_ExtrusionDlg::GetConstructorId()
-{
-  if (GroupConstructors != NULL && GroupConstructors->selected() != NULL)
-    return GroupConstructors->id(GroupConstructors->selected());
-  return -1;
-}
diff --git a/src/SMESHGUI/SMESHGUI_ExtrusionDlg.h b/src/SMESHGUI/SMESHGUI_ExtrusionDlg.h
deleted file mode 100644 (file)
index cebdaef..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_ExtrusionDlg.h
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header: 
-
-#ifndef DIALOGBOX_EXTRUSION_H
-#define DIALOGBOX_EXTRUSION_H
-
-#include "SalomeApp_SelectionMgr.h"
-#include "SUIT_SelectionFilter.h"
-
-// QT Includes
-#include <qdialog.h>
-
-class QGridLayout; 
-class QButtonGroup;
-class QRadioButton;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QCheckBox;
-class QSpinBox;
-class QPushButton;
-
-class SMESHGUI;
-class SMESH_Actor;
-class SMESHGUI_SpinBox;
-class SVTK_ViewWindow;
-class SVTK_Selector;
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-//=================================================================================
-// class    : SMESHGUI_ExtrusionDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_ExtrusionDlg : public QDialog
-{
-  Q_OBJECT
-
-public:
-  SMESHGUI_ExtrusionDlg (SMESHGUI*,
-                        bool modal = FALSE);
-  ~SMESHGUI_ExtrusionDlg();
-
-private:
-  void Init (bool ResetControls = true);
-  void enterEvent (QEvent*);                           /* mouse enter the QWidget */
-  int  GetConstructorId();
-  //void closeEvent (QCloseEvent*);
-  //void hideEvent (QHideEvent*);                        /* ESC key */
-
-  SMESHGUI*                     mySMESHGUI;            /* Current SMESHGUI object */
-  SalomeApp_SelectionMgr*       mySelectionMgr;        /* User shape selection */
-  QLineEdit*                    myEditCurrentArgument; /* Current  LineEdit */
-  QString                       myElementsId;
-  int                           myNbOkElements;        /* to check when elements are defined */
-  SVTK_Selector*                mySelector;
-
-  bool                          myBusy;
-  SMESH::SMESH_Mesh_var         myMesh;
-  SMESH_Actor*                  myActor;
-  SUIT_SelectionFilter*         myMeshOrSubMeshOrGroupFilter;
-
-  // widgets
-  QButtonGroup*     GroupConstructors;
-  QRadioButton*     RadioButton1;
-  QRadioButton*     RadioButton2;
-
-  QGroupBox*        GroupArguments;
-  QLabel*           TextLabelElements;
-  QPushButton*      SelectElementsButton;
-  QLineEdit*        LineEditElements;
-  QCheckBox*        CheckBoxMesh;
-  QLabel*           TextLabelVector;
-  QLabel*           TextLabelDx;
-  SMESHGUI_SpinBox* SpinBox_Dx;
-  QLabel*           TextLabelDy;
-  SMESHGUI_SpinBox* SpinBox_Dy;
-  QLabel*           TextLabelDz;
-  SMESHGUI_SpinBox* SpinBox_Dz;
-  QLabel*           TextLabelNbSteps;
-  QSpinBox*         SpinBox_NbSteps;
-
-  QGroupBox*        GroupButtons;
-  QPushButton*      buttonOk;
-  QPushButton*      buttonCancel;
-  QPushButton*      buttonApply;
-
-private slots:
-  void ConstructorsClicked (int);
-  void ClickOnOk();
-  bool ClickOnApply();
-  void ClickOnCancel();
-  void SetEditCurrentArgument();
-  void SelectionIntoArgument();
-  void DeactivateActiveDialog();
-  void ActivateThisDialog();
-  void onTextChange (const QString&);
-  void onSelectMesh (bool toSelectMesh);
-};
-
-#endif // DIALOGBOX_EXTRUSION_H
diff --git a/src/SMESHGUI/SMESHGUI_Filter.cxx b/src/SMESHGUI/SMESHGUI_Filter.cxx
deleted file mode 100755 (executable)
index 19b3fcb..0000000
+++ /dev/null
@@ -1,497 +0,0 @@
-//  SMESHGUI_PredicateFilter : Filters for VTK viewer
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_Filter.cxx
-//  Author : Sergey LITONIN
-//  Module : SMESH
-
-#include "SMESHGUI_Filter.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-
-#include "SMESH_Actor.h"
-#include "SMDS_Mesh.hxx"
-#include "SMDS_MeshElement.hxx"
-#include "SMDSAbs_ElementType.hxx"
-
-// OCCT Includes
-#include <gp_Vec.hxx>
-#include <Precision.hxx>
-
-// VTK Includes
-#include <vtkCell.h>
-
-IMPLEMENT_STANDARD_HANDLE(SMESHGUI_Filter, VTKViewer_Filter)
-IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_Filter, VTKViewer_Filter)
-
-IMPLEMENT_STANDARD_HANDLE(SMESHGUI_PredicateFilter, SMESHGUI_Filter)
-IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_PredicateFilter, SMESHGUI_Filter)
-
-IMPLEMENT_STANDARD_HANDLE(SMESHGUI_QuadrangleFilter, SMESHGUI_Filter)
-IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_QuadrangleFilter, SMESHGUI_Filter)
-
-IMPLEMENT_STANDARD_HANDLE(SMESHGUI_TriangleFilter, SMESHGUI_Filter)
-IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_TriangleFilter, SMESHGUI_Filter)
-
-IMPLEMENT_STANDARD_HANDLE(SMESHGUI_FacesFilter, SMESHGUI_Filter)
-IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_FacesFilter, SMESHGUI_Filter)
-
-IMPLEMENT_STANDARD_HANDLE(SMESHGUI_VolumesFilter, SMESHGUI_Filter)
-IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_VolumesFilter, SMESHGUI_Filter)
-
-/*
-  Class       : SMESHGUI_PredicateFilter
-  Description : Selection filter for VTK viewer. This class aggregate object
-                of SMESH_Predicate class and uses it for verification of criterion
-*/
-
-//=======================================================================
-// name    : SMESHGUI_PredicateFilter::SMESHGUI_PredicateFilter
-// Purpose : Constructor
-//=======================================================================
-SMESHGUI_PredicateFilter::SMESHGUI_PredicateFilter()
-{
-}
-
-SMESHGUI_PredicateFilter::~SMESHGUI_PredicateFilter()
-{
-}
-
-//=======================================================================
-// name    : SMESHGUI_PredicateFilter::IsValid
-// Purpose : Verify whether entry id satisfies to criterion of the filter
-//=======================================================================
-bool SMESHGUI_PredicateFilter::IsValid( const int theCellId ) const
-{
-  if ( myActor == 0 || myPred->_is_nil() )
-    return false;
-
-  SMESH_Actor* anActor = dynamic_cast<SMESH_Actor*>( myActor );
-  if ( !anActor || anActor->GetObject() == 0 )
-    return false;
-
-  SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
-  SMESH::ElementType anElemType = myPred->GetElementType();
-  int aMeshId = anElemType == SMESH::NODE ? anActor->GetNodeObjId( theCellId )
-                                          : anActor->GetElemObjId( theCellId );
-
-  // if type of element != type of predicate return true because
-  // this predicate is not intended for filtering sush elements
-  const SMDS_MeshElement* anElem = anElemType == SMESH::NODE ? aMesh->FindNode( aMeshId )
-                                                             : aMesh->FindElement( aMeshId );
-  if ( anElem != 0 && anElem->GetType() != (SMDSAbs_ElementType)myPred->GetElementType() )
-    return true;
-
-  return myPred->IsSatisfy( aMeshId );
-}
-
-//=======================================================================
-// name    : SMESHGUI_PredicateFilter::IsValid
-// Purpose : Verify whether entry id satisfies to criterion of the filter
-//=======================================================================
-bool SMESHGUI_PredicateFilter::IsObjValid( const int theObjId ) const
-{
-  if ( myActor == 0 || myPred->_is_nil() )
-    return false;
-
-  SMESH_Actor* anActor = ( SMESH_Actor* )myActor;
-  if ( anActor->GetObject() == 0 )
-    return false;
-
-  SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
-  SMESH::ElementType anElemType = myPred->GetElementType();
-
-  // if type of element != type of predicate return true because
-  // this predicate is not intended for filtering sush elements
-  const SMDS_MeshElement* anElem = anElemType == SMESH::NODE ? aMesh->FindNode( theObjId )
-                                                             : aMesh->FindElement( theObjId );
-  if ( anElem != 0 && anElem->GetType() != (SMDSAbs_ElementType)myPred->GetElementType() )
-    return true;
-
-  return myPred->IsSatisfy( theObjId );
-}
-
-//=======================================================================
-// name    : SMESHGUI_PredicateFilter::IsNodeFilter
-// Purpose : Returns true if filter is intended for nodes
-//=======================================================================
-bool SMESHGUI_PredicateFilter::IsNodeFilter() const
-{
-  return GetId() == SMESHGUI_NodeFilter;
-}
-
-//=======================================================================
-// name    : SMESHGUI_PredicateFilter::SetPredicate
-// Purpose : Set new pridicate to the filter
-//=======================================================================
-void SMESHGUI_PredicateFilter::SetPredicate( SMESH::Predicate_ptr thePred )
-{
-  myPred = SMESH::Predicate::_duplicate( thePred );
-}
-
-//=======================================================================
-// name    : SMESHGUI_PredicateFilter::SetActor
-// Purpose : Set new actor
-//=======================================================================
-void SMESHGUI_PredicateFilter::SetActor( SALOME_Actor* theActor )
-{
-  if ( myActor == theActor )
-    return;
-  SMESHGUI_Filter::SetActor( theActor );
-
-  if ( myActor != 0 && !myPred->_is_nil() )
-  {
-    SALOME_Actor* sActor = dynamic_cast<SALOME_Actor*>( myActor );
-    Handle(SALOME_InteractiveObject) anIO;
-    if( sActor )
-      anIO = sActor->getIO();
-    if ( !anIO.IsNull() )
-    {
-      SMESH::SMESH_Mesh_var aMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(anIO);
-      if(!aMesh->_is_nil())
-        myPred->SetMesh(aMesh);
-    }
-  }
-}
-
-//=======================================================================
-// name    : SMESHGUI_PredicateFilter::SetActor
-// Purpose : Get ID of the filter. Must return value from SMESHGUI_FilterType
-//           enumeration. All filters must have different ids
-//=======================================================================
-int SMESHGUI_PredicateFilter::GetId() const
-{
-  if      ( myPred->GetElementType() == SMESH::NODE   ) return SMESHGUI_NodeFilter;
-  else if ( myPred->GetElementType() == SMESH::EDGE   ) return SMESHGUI_EdgeFilter;
-  else if ( myPred->GetElementType() == SMESH::FACE   ) return SMESHGUI_FaceFilter;
-  else if ( myPred->GetElementType() == SMESH::VOLUME ) return SMESHGUI_VolumeFilter;
-  else if ( myPred->GetElementType() == SMESH::ALL    ) return SMESHGUI_AllElementsFilter;
-  else                                                  return SMESHGUI_UnknownFilter;
-}
-
-
-/*
-  Class       : SMESHGUI_QuadrangleFilter
-  Description : Verify whether selected cell is quadranle
-*/
-
-//=======================================================================
-// name    : SMESHGUI_QuadrangleFilter::SMESHGUI_QuadrangleFilter
-// Purpose : Constructor
-//=======================================================================
-SMESHGUI_QuadrangleFilter::SMESHGUI_QuadrangleFilter()
-: SMESHGUI_Filter()
-{
-}
-
-SMESHGUI_QuadrangleFilter::~SMESHGUI_QuadrangleFilter()
-{
-}
-
-//=======================================================================
-// name    : SMESHGUI_QuadrangleFilter::IsValid
-// Purpose : Verify whether selected cell is quadranle
-//=======================================================================
-bool SMESHGUI_QuadrangleFilter::IsValid( const int theCellId ) const
-{
-  if ( myActor == 0 )
-    return false;
-
-  SMESH_Actor* anActor = ( SMESH_Actor* )myActor;
-  if ( anActor->GetObject() == 0 )
-    return false;
-
-  SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
-  const SMDS_MeshElement* anElem = aMesh->FindElement( anActor->GetElemObjId( theCellId ) );
-
-  return anElem && anElem->GetType() == SMDSAbs_Face && anElem->NbNodes() == 4;
-}
-
-//=======================================================================
-// name    : SMESHGUI_QuadrangleFilter::IsValid
-// Purpose : Verify whether selected cell is quadranle
-//=======================================================================
-bool SMESHGUI_QuadrangleFilter::IsObjValid( const int theObjId ) const
-{
-  if ( myActor == 0 )
-    return false;
-
-  SMESH_Actor* anActor = ( SMESH_Actor* )myActor;
-  if ( anActor->GetObject() == 0 )
-    return false;
-
-  SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
-  const SMDS_MeshElement* anElem = aMesh->FindElement( theObjId );
-
-  return anElem && anElem->GetType() == SMDSAbs_Face && anElem->NbNodes() == 4;
-}
-
-//=======================================================================
-// name    : SMESHGUI_QuadrangleFilter::SetActor
-// Purpose : Get ID of the filter. Must return value from SMESHGUI_FilterType
-//           enumeration. All filters must have different ids
-//=======================================================================
-int SMESHGUI_QuadrangleFilter::GetId() const
-{
-  return SMESHGUI_QuadFilter;
-}
-
-//=======================================================================
-// name    : SMESHGUI_QuadrangleFilter::IsNodeFilter
-// Purpose : Returns true if filter is intended for nodes
-//=======================================================================
-bool SMESHGUI_QuadrangleFilter::IsNodeFilter() const
-{
-  return false;
-}
-
-
-/*
-  Class       : SMESHGUI_TriangleFilter
-  Description : Verify whether selected cell is triangle
-*/
-
-
-//=======================================================================
-// name    : SMESHGUI_TriangleFilter::SMESHGUI_TriangleFilter
-// Purpose : Constructor
-//=======================================================================
-SMESHGUI_TriangleFilter::SMESHGUI_TriangleFilter()
-: SMESHGUI_Filter()
-{
-}
-
-SMESHGUI_TriangleFilter::~SMESHGUI_TriangleFilter()
-{
-}
-
-//=======================================================================
-// name    : SMESHGUI_TriangleFilter::IsValid
-// Purpose : Verify whether selected cell is triangle
-//=======================================================================
-bool SMESHGUI_TriangleFilter::IsValid( const int theCellId ) const
-{
-  if ( myActor == 0 )
-    return false;
-
-  SMESH_Actor* anActor = ( SMESH_Actor* )myActor;
-  if ( anActor->GetObject() == 0 )
-    return false;
-
-  SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
-  const SMDS_MeshElement* anElem = aMesh->FindElement( anActor->GetElemObjId( theCellId ) );
-
-  return anElem && anElem->GetType() == SMDSAbs_Face && anElem->NbNodes() == 3;
-}
-
-//=======================================================================
-// name    : SMESHGUI_TriangleFilter::IsValid
-// Purpose : Verify whether selected cell is triangle
-//=======================================================================
-bool SMESHGUI_TriangleFilter::IsObjValid( const int theObjId ) const
-{
-  if ( myActor == 0 )
-    return false;
-
-  SMESH_Actor* anActor = ( SMESH_Actor* )myActor;
-  if ( anActor->GetObject() == 0 )
-    return false;
-
-  SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
-  const SMDS_MeshElement* anElem = aMesh->FindElement( theObjId );
-
-  return anElem && anElem->GetType() == SMDSAbs_Face && anElem->NbNodes() == 3;
-}
-
-//=======================================================================
-// name    : SMESHGUI_TriangleFilter::SetActor
-// Purpose : Get ID of the filter. Must return value from SMESHGUI_FilterType
-//           enumeration. All filters must have different ids
-//=======================================================================
-int SMESHGUI_TriangleFilter::GetId() const
-{
-  return SMESHGUI_TriaFilter;
-}
-
-//=======================================================================
-// name    : SMESHGUI_TriangleFilter::IsNodeFilter
-// Purpose : Returns true if filter is intended for nodes
-//=======================================================================
-bool SMESHGUI_TriangleFilter::IsNodeFilter() const
-{
-  return false;
-}
-
-/*
-  Class       : SMESHGUI_FacesFilter
-  Description : Verify whether selected cell is any face
-*/
-
-
-//=======================================================================
-// name    : SMESHGUI_FacesFilter::SMESHGUI_FacesFilter
-// Purpose : Constructor
-//=======================================================================
-SMESHGUI_FacesFilter::SMESHGUI_FacesFilter()
-: SMESHGUI_Filter()
-{
-}
-
-SMESHGUI_FacesFilter::~SMESHGUI_FacesFilter()
-{
-}
-
-//=======================================================================
-// name    : SMESHGUI_FacesFilter::IsValid
-// Purpose : Verify whether selected cell is face
-//=======================================================================
-bool SMESHGUI_FacesFilter::IsValid( const int theCellId ) const
-{
-  if ( myActor == 0 )
-    return false;
-
-  SMESH_Actor* anActor = ( SMESH_Actor* )myActor;
-  if ( anActor->GetObject() == 0 )
-    return false;
-
-  SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
-  const SMDS_MeshElement* anElem = aMesh->FindElement( anActor->GetElemObjId( theCellId ) );
-
-  return anElem && anElem->GetType() == SMDSAbs_Face;
-}
-
-//=======================================================================
-// name    : SMESHGUI_FacesFilter::IsValid
-// Purpose : Verify whether selected cell is face
-//=======================================================================
-bool SMESHGUI_FacesFilter::IsObjValid( const int theObjId ) const
-{
-  if ( myActor == 0 )
-    return false;
-
-  SMESH_Actor* anActor = ( SMESH_Actor* )myActor;
-  if ( anActor->GetObject() == 0 )
-    return false;
-
-  SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
-  const SMDS_MeshElement* anElem = aMesh->FindElement( theObjId );
-
-  return anElem && anElem->GetType() == SMDSAbs_Face;
-}
-
-//=======================================================================
-// name    : SMESHGUI_FacesFilter::GetId
-// Purpose : Get ID of the filter. Must return value from SMESHGUI_FilterType
-//           enumeration. All filters must have different ids
-//=======================================================================
-int SMESHGUI_FacesFilter::GetId() const
-{
-  return SMESHGUI_FaceFilter;
-}
-
-//=======================================================================
-// name    : SMESHGUI_FacesFilter::IsNodeFilter
-// Purpose : Returns true if filter is intended for nodes
-//=======================================================================
-bool SMESHGUI_FacesFilter::IsNodeFilter() const
-{
-  return false;
-}
-
-
-/*
-  Class       : SMESHGUI_VolumesFilter
-  Description : Verify whether selected cell is any volume
-*/
-
-
-//=======================================================================
-// name    : SMESHGUI_VolumesFilter::SMESHGUI_VolumesFilter
-// Purpose : Constructor
-//=======================================================================
-SMESHGUI_VolumesFilter::SMESHGUI_VolumesFilter()
-: SMESHGUI_Filter()
-{
-}
-
-SMESHGUI_VolumesFilter::~SMESHGUI_VolumesFilter()
-{
-}
-
-//=======================================================================
-// name    : SMESHGUI_VolumesFilter::IsValid
-// Purpose : Verify whether selected cell is volume
-//=======================================================================
-bool SMESHGUI_VolumesFilter::IsValid( const int theCellId ) const
-{
-  if ( myActor == 0 )
-    return false;
-
-  SMESH_Actor* anActor = ( SMESH_Actor* )myActor;
-  if ( anActor->GetObject() == 0 )
-    return false;
-
-  SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
-  const SMDS_MeshElement* anElem = aMesh->FindElement( anActor->GetElemObjId( theCellId ) );
-
-  return anElem && anElem->GetType() == SMDSAbs_Volume;
-}
-
-//=======================================================================
-// name    : SMESHGUI_VolumesFilter::IsValid
-// Purpose : Verify whether selected cell is volume
-//=======================================================================
-bool SMESHGUI_VolumesFilter::IsObjValid( const int theObjId ) const
-{
-  if ( myActor == 0 )
-    return false;
-
-  SMESH_Actor* anActor = ( SMESH_Actor* )myActor;
-  if ( anActor->GetObject() == 0 )
-    return false;
-
-  SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
-  const SMDS_MeshElement* anElem = aMesh->FindElement( theObjId );
-
-  return anElem && anElem->GetType() == SMDSAbs_Volume;
-}
-
-//=======================================================================
-// name    : SMESHGUI_VolumesFilter::GetId
-// Purpose : Get ID of the filter. Must return value from SMESHGUI_FilterType
-//           enumeration. All filters must have different ids
-//=======================================================================
-int SMESHGUI_VolumesFilter::GetId() const
-{
-  return SMESHGUI_VolumeFilter;
-}
-
-//=======================================================================
-// name    : SMESHGUI_VolumesFilter::IsNodeFilter
-// Purpose : Returns true if filter is intended for nodes
-//=======================================================================
-bool SMESHGUI_VolumesFilter::IsNodeFilter() const
-{
-  return false;
-}
diff --git a/src/SMESHGUI/SMESHGUI_Filter.h b/src/SMESHGUI/SMESHGUI_Filter.h
deleted file mode 100755 (executable)
index 0114f38..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-//  SMESHGUI_Filter : Filters for VTK viewer
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_Filter.h
-//  Author : Sergey LITONIN
-//  Module : SMESH
-
-#ifndef SMESHGUI_Filter_HeaderFile
-#define SMESHGUI_Filter_HeaderFile
-
-#include "VTKViewer_Filter.h"
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Filter)
-
-class SALOME_Actor;
-
-enum SMESHGUI_FilterType
-{
-  SMESHGUI_UnknownFilter      = -1,
-  SMESHGUI_NodeFilter         =  0,
-  SMESHGUI_EdgeFilter         =  1,
-  SMESHGUI_FaceFilter         =  2,
-  SMESHGUI_VolumeFilter       =  3,
-  SMESHGUI_AllElementsFilter  =  4,
-  SMESHGUI_QuadFilter         =  5,
-  SMESHGUI_TriaFilter         =  6,
-  SMESHGUI_LastFilter
-};
-
-/*
-  Class       : SMESHGUI_Filter
-  Description : Base class for SMESH selection filters for VTK viewer.
-*/
-
-DEFINE_STANDARD_HANDLE(SMESHGUI_Filter, VTKViewer_Filter)
-
-class SMESHGUI_Filter : public VTKViewer_Filter
-{
-
-public:
-
-  virtual bool                IsObjValid( const int theObjId ) const = 0;
-public:
-  DEFINE_STANDARD_RTTI(SMESHGUI_Filter)
-};
-
-/*
-  Class       : SMESHGUI_PredicateFilter
-  Description : Selection filter for VTK viewer. This class aggregate object
-                of SMESH_Predicate class and uses it for verification of criterion
-*/
-
-DEFINE_STANDARD_HANDLE(SMESHGUI_PredicateFilter, SMESHGUI_Filter)
-
-class SMESHGUI_PredicateFilter : public SMESHGUI_Filter
-{
-
-public:
-                              SMESHGUI_PredicateFilter();
-  virtual                     ~SMESHGUI_PredicateFilter();
-
-  virtual bool                IsValid( const int theCellId ) const;
-  virtual bool                IsObjValid( const int theObjId ) const;
-  virtual int                 GetId() const;
-  virtual bool                IsNodeFilter() const;
-  void                        SetPredicate( SMESH::Predicate_ptr );
-
-  void                        SetActor( SALOME_Actor* );
-
-private:
-
-  SMESH::Predicate_var        myPred;
-
-public:
-  DEFINE_STANDARD_RTTI(SMESHGUI_PredicateFilter)
-};
-
-/*
-  Class       : SMESHGUI_QuadrangleFilter
-  Description : Verify whether selected cell is quadranle
-*/
-
-DEFINE_STANDARD_HANDLE(SMESHGUI_QuadrangleFilter, SMESHGUI_Filter)
-
-class SMESHGUI_QuadrangleFilter : public SMESHGUI_Filter
-{
-
-public:
-                              SMESHGUI_QuadrangleFilter();
-  virtual                     ~SMESHGUI_QuadrangleFilter();
-
-  virtual bool                IsValid( const int theCellId ) const;
-  virtual bool                IsObjValid( const int theObjId ) const;
-  virtual int                 GetId() const;
-  virtual bool                IsNodeFilter() const;
-
-public:
-  DEFINE_STANDARD_RTTI(SMESHGUI_QuadrangleFilter)
-};
-
-/*
-  Class       : SMESHGUI_TriangleFilter
-  Description : Verify whether selected cell is triangle
-*/
-
-DEFINE_STANDARD_HANDLE(SMESHGUI_TriangleFilter, SMESHGUI_Filter)
-
-class SMESHGUI_TriangleFilter : public SMESHGUI_Filter
-{
-
-public:
-                              SMESHGUI_TriangleFilter();
-  virtual                     ~SMESHGUI_TriangleFilter();
-
-  virtual bool                IsValid( const int theCellId ) const;
-  virtual bool                IsObjValid( const int theObjId ) const;
-  virtual int                 GetId() const;
-  virtual bool                IsNodeFilter() const;  
-
-public:
-  DEFINE_STANDARD_RTTI(SMESHGUI_TriangleFilter)
-};
-
-/*
-  Class       : SMESHGUI_FacesFilter
-  Description : Verify whether selected cell is any face
-*/
-
-DEFINE_STANDARD_HANDLE(SMESHGUI_FacesFilter, SMESHGUI_Filter)
-
-class SMESHGUI_FacesFilter : public SMESHGUI_Filter
-{
-
-public:
-                              SMESHGUI_FacesFilter();
-  virtual                     ~SMESHGUI_FacesFilter();
-
-  virtual bool                IsValid( const int theCellId ) const;
-  virtual bool                IsObjValid( const int theObjId ) const;
-  virtual int                 GetId() const;
-  virtual bool                IsNodeFilter() const;  
-
-public:
-  DEFINE_STANDARD_RTTI(SMESHGUI_FacesFilter)
-};
-
-/*
-  Class       : SMESHGUI_VolumesFilter
-  Description : Verify whether selected cell is any volume
-*/
-
-DEFINE_STANDARD_HANDLE(SMESHGUI_VolumesFilter, SMESHGUI_Filter)
-
-class SMESHGUI_VolumesFilter : public SMESHGUI_Filter
-{
-
-public:
-                              SMESHGUI_VolumesFilter();
-  virtual                     ~SMESHGUI_VolumesFilter();
-
-  virtual bool                IsValid( const int theCellId ) const;
-  virtual bool                IsObjValid( const int theObjId ) const;
-  virtual int                 GetId() const;
-  virtual bool                IsNodeFilter() const;  
-
-public:
-  DEFINE_STANDARD_RTTI(SMESHGUI_VolumesFilter)
-};
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_FilterDlg.h b/src/SMESHGUI/SMESHGUI_FilterDlg.h
deleted file mode 100755 (executable)
index 7427fe7..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_FilterDlg.h
-//  Author : Sergey LITONIN      
-//  Module : SMESH
-
-
-#ifndef SMESHGUI_FilterDlg_H
-#define SMESHGUI_FilterDlg_H
-
-#include <qdialog.h>
-#include <qframe.h>
-#include <qmap.h>
-#include <qvaluelist.h>
-
-#include "SalomeApp_SelectionMgr.h"
-#include "SALOME_InteractiveObject.hxx"
-#include "SALOME_DataMapOfIOMapOfInteger.hxx"
-#include "SVTK_Selection.h"
-
-#include <TColStd_IndexedMapOfInteger.hxx>
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Filter)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-class QButtonGroup;
-class QCheckBox;
-class QCloseEvent;
-class QComboBox;
-class QEvent;
-class QGroupBox;
-class QPushButton;
-class QStringList;
-class QTable;
-class QTableItem;
-class QWidgetStack;
-class SalomeApp_SelectionMgr;
-class SMESHGUI;
-class SMESHGUI_FilterLibraryDlg;
-class SVTK_Selector;
-class SVTK_ViewWindow;
-
-/*!
- *  Class       : SMESHGUI_FilterTable
- *  Description : Frame containig 
- *                  - Button group for switching entity type
- *                  - Table for displaying filter criterions
- *                  - Buttons for editing table
- */
-
-class SMESHGUI_FilterTable : public QFrame
-{
-  Q_OBJECT
-
-  class Table;
-  class ComboItem;
-  class AdditionalWidget;
-
-  typedef QMap<int, Table*> TableMap;
-
-public:  
-                            SMESHGUI_FilterTable( SMESHGUI*,
-                                                 QWidget* parent, 
-                                                  const int type);
-                            SMESHGUI_FilterTable( SMESHGUI*,
-                                                 QWidget* parent, 
-                                                  const QValueList<int>& type);
-  virtual                   ~SMESHGUI_FilterTable();
-
-  void                      Init (const int type);
-  void                      Init (const QValueList<int>& types);
-
-  QGroupBox*                GetTableGrp();
-
-  bool                      IsValid (const bool = true, const int theEntityType = -1) const;
-  int                       GetType() const;
-  void                      SetType (const int);
-  void                      RestorePreviousEntityType();
-  int                       NumRows (const int theEntityType = -1) const;
-  void                      Clear (const int theEntityType = -1);
-  void                      SetEditable (const bool);
-  void                      SetEnabled (const bool);
-  void                      SetLibsEnabled (const bool);
-  bool                      IsEditable() const;
-
-  int                       GetCriterionType (const int theRow, const int theType = -1) const;
-
-  void                      GetCriterion (const int                 theRow,
-                                          SMESH::Filter::Criterion& theCriterion,
-                                          const int                 theEntityType = -1) const;
-
-  void                      SetCriterion (const int                       theRow,
-                                          const SMESH::Filter::Criterion& theCriterion,
-                                          const int                       theEntityType = -1);
-
-  void                      AddCriterion (const SMESH::Filter::Criterion& theCriterion,
-                                          const int    theEntityType = -1);
-
-  void                      Copy (const SMESHGUI_FilterTable*);
-  void                      SetValidity (const bool);
-
-  bool                      CurrentCell (int& theRow, int& theCol) const;
-  void                      SetThreshold (const int      theRow,
-                                          const QString& theText,
-                                          const int      theEntityType = -1);
-
-  bool                      GetThreshold (const int      theRow,
-                                          QString&       theText,
-                                          const int      theEntityType = -1);
-
-  void                      Update();
-
-signals:
-
-  void                      CopyFromClicked();
-  void                      AddToClicked();
-  void                      EntityTypeChanged (const int);
-  void                      NeedValidation();
-  void                      CriterionChanged (const int theRow, const int theEntityType);
-  void                      CurrentChanged (int, int);
-
-private slots:
-
-  void                      onAddBtn();
-  void                      onInsertBtn();
-  void                      onRemoveBtn();
-  void                      onClearBtn();
-  void                      onCopyFromBtn();
-  void                      onAddToBtn();
-  void                      onCriterionChanged (int, int);
-  void                      onEntityType (int);
-  void                      onCurrentChanged (int, int);
-
-private:
-
-  void                      addRow (Table*, const int, const bool toTheEnd = true);
-  QTableItem*               getCriterionItem (QTable*, const int);
-  QTableItem*               getCompareItem (QTable*);
-  QTableItem*               getUnaryItem (QTable*);
-  QTableItem*               getBinaryItem (QTable*);
-  const QMap<int, QString>& getCriteria (const int theType) const;
-  const QMap<int, QString>& getCompare() const;
-  Table*                    createTable (QWidget*, const int);
-  QWidget*                  createAdditionalFrame (QWidget* theParent);
-  int                       getFirstSelectedRow() const;
-  void                      onCriterionChanged (const int, const int, const int);
-
-  void                      updateBtnState();
-  void                      removeAdditionalWidget (QTable* theTable, const int theRow);
-  void                      updateAdditionalWidget();
-
-  const QMap<int, QString>& getSupportedTypes() const;
-
-private:
-  SMESHGUI*                 mySMESHGUI;
-
-  QGroupBox*                myTableGrp;
-  QGroupBox*                mySwitchTableGrp;
-
-  TableMap                  myTables;
-  QPushButton*              myAddBtn;
-  QPushButton*              myInsertBtn;
-  QPushButton*              myRemoveBtn;
-  QPushButton*              myClearBtn;  
-  QPushButton*              myCopyFromBtn;  
-  QPushButton*              myAddToBtn;
-
-  QButtonGroup*             myEntityTypeGrp;
-  int                       myEntityType;
-  int                       myIsValid;
-  bool                      myIsLocked;
-
-  SMESHGUI_FilterLibraryDlg* myLibDlg;
-
-  QWidgetStack*              myWgStack;
-
-  QMap<QTableItem*, AdditionalWidget*> myAddWidgets;
-};
-
-
-/*!
- *  Class       : SMESHGUI_FilterDlg
- *  Description : Dialog to specify filters for VTK viewer
- */
-
-class SMESHGUI_FilterDlg : public QDialog
-{
-  Q_OBJECT
-
-  // Source elements to be selected
-  enum { Mesh, Selection, Dialog, None };
-
-  // Buttons
-  enum { BTN_OK, BTN_Cancel, BTN_Apply, BTN_Close };
-
-public:
-                            SMESHGUI_FilterDlg( SMESHGUI*,
-                                                const QValueList<int>& types,
-                                                const char*            name = 0);
-
-                            SMESHGUI_FilterDlg( SMESHGUI*,
-                                                const int              type,
-                                                const char*            name = 0);
-  virtual                   ~SMESHGUI_FilterDlg();
-
-  void                      Init (const QValueList<int>& types);
-  void                      Init (const int type);
-
-  void                      SetSelection();
-  void                      SetMesh (SMESH::SMESH_Mesh_ptr);
-  void                      SetSourceWg (QWidget*);
-
-  static SMESH::Filter::Criterion createCriterion();
-
-signals:
-
-  void                      Accepted();
-
-private slots:
-
-  void                      onOk();
-  bool                      onApply();
-  void                      onClose();
-  void                      onDeactivate();
-  void                      onSelectionDone();
-  void                      onCriterionChanged (const int, const int);
-  void                      onCurrentChanged (int, int);
-
-private:
-
-  void                      construct (const QValueList<int>& types); 
-
-  void                      closeEvent (QCloseEvent*);
-  void                      enterEvent (QEvent*);
-
-  // dialog creation
-  QFrame*                   createButtonFrame (QWidget*);
-  QFrame*                   createMainFrame (QWidget*);
-  QButtonGroup*             createSourceGroup (QWidget*);
-  void                      updateMainButtons();
-
-  // execution
-  bool                      isValid() const;
-  bool                      createFilter (const int theType);
-  void                      insertFilterInViewer();
-  void                      selectInViewer (const int              theType,
-                                            const QValueList<int>& theIds);
-  void                      filterSource (const int        theType,
-                                          QValueList<int>& theResIds);
-  void                      filterSelectionSource (const int        theType,
-                                                   QValueList<int>& theResIds);
-  void                      getIdsFromWg (const QWidget*, QValueList<int>&) const;
-  void                      setIdsToWg (QWidget*, const QValueList<int>&);
-  Selection_Mode            getSelMode (const int) const;
-  void                      updateSelection();
-
-private:
-
-  // widgets
-  QFrame*                   myMainFrame;
-  QButtonGroup*             mySourceGrp;
-
-  QCheckBox*                mySetInViewer;
-
-  QMap<int, QPushButton*>   myButtons;
-  
-  SMESHGUI_FilterTable*     myTable;
-
-  // initial fields
-  QValueList<int>           myTypes;
-  SMESHGUI*                 mySMESHGUI;
-  SalomeApp_SelectionMgr*   mySelectionMgr;
-  SVTK_Selector*            mySelector;
-  SMESH::SMESH_Mesh_ptr     myMesh;
-  QWidget*                  mySourceWg;
-
-  SALOME_DataMapOfIOMapOfInteger myIObjects;
-  bool                           myIsSelectionChanged;
-  QMap< int, SMESH::Filter_var > myFilter;
-  QMap< int, bool >              myInsertState;
-  QMap< int, int  >              myApplyToState;
-};
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_FilterLibraryDlg.cxx b/src/SMESHGUI/SMESHGUI_FilterLibraryDlg.cxx
deleted file mode 100644 (file)
index 18eb314..0000000
+++ /dev/null
@@ -1,1133 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_FilterLibraryDlg.cxx
-//  Author : Sergey LITONIN
-//  Module : SMESH
-
-#include "SMESHGUI_FilterLibraryDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_FilterUtils.h"
-
-#include "SUIT_Session.h"
-#include "SUIT_Desktop.h"
-#include "SUIT_FileDlg.h"
-
-// QT Includes
-#include <qapplication.h>
-#include <qmessagebox.h>
-#include <qframe.h>
-#include <qlayout.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlistbox.h>
-#include <qfile.h>
-#include <qfileinfo.h>
-#include <qdir.h>
-
-#define SPACING 5
-#define MARGIN  10
-
-/*!
- *  Class       : SMESHGUI_FilterLibraryDlg::Dialog
- *  Description : Dialog for opening filter library
- */
-
-class SMESHGUI_FilterLibraryDlg::Dialog : public SUIT_FileDlg
-{
- public:
-  Dialog(QWidget* theParent, const bool theToOpen);
-  virtual ~Dialog();
-
- protected:
-  virtual bool acceptData();
-};
-
-SMESHGUI_FilterLibraryDlg::Dialog::Dialog (QWidget*   theParent,
-                                           const bool theToOpen)
-     : SUIT_FileDlg(theParent, theToOpen)
-{
-}
-
-SMESHGUI_FilterLibraryDlg::Dialog::~Dialog()
-{
-}
-
-bool SMESHGUI_FilterLibraryDlg::Dialog::acceptData()
-{
-//  if (mode() != QFileDialogP::AnyFile)
-//    return SUIT_FileDlg::acceptData();
-
-  return true;
-}
-
-/*!
- *  Class       : SMESHGUI_FilterLibraryDlg
- *  Description : Dialog to specify filters for VTK viewer
- */
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg
-// Purpose : Constructor
-//=======================================================================
-SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg (SMESHGUI* theModule,
-                                                     QWidget* parent,
-                                                      const QValueList<int>& theTypes,
-                                                      const int              theMode,
-                                                      const char*            theName)
-     : QDialog( parent, theName, true, WStyle_Customize |
-                WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ),
-     mySMESHGUI( theModule )
-{
-  construct(theTypes, theMode);
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg
-// Purpose : Constructor
-//=======================================================================
-SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg (SMESHGUI* theModule,
-                                                     QWidget* parent,
-                                                      const int   theType,
-                                                      const int   theMode,
-                                                      const char* theName)
-     : QDialog( parent, theName, true, WStyle_Customize |
-                WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ),
-     mySMESHGUI( theModule )
-{
-  QValueList<int> aTypes;
-  aTypes.append(theType);
-  construct(aTypes, theMode);
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::construct
-// Purpose : Construct dialog (called by constructor)
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::construct (const QValueList<int>& theTypes,
-                                           const int theMode)
-{
-  myTypes = theTypes;
-  myMode  = theMode;
-
-  QVBoxLayout* aDlgLay = new QVBoxLayout(this, MARGIN, SPACING);
-
-  myMainFrame        = createMainFrame  (this);
-  QFrame* aBtnFrame  = createButtonFrame(this);
-
-  aDlgLay->addWidget(myMainFrame);
-  aDlgLay->addWidget(aBtnFrame);
-
-  aDlgLay->setStretchFactor(myMainFrame, 1);
-
-  Init(myTypes, myMode);
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::createMainFrame
-// Purpose : Create frame containing dialog's input fields
-//=======================================================================
-QFrame* SMESHGUI_FilterLibraryDlg::createMainFrame (QWidget* theParent)
-{
-  QGroupBox* aMainFrame = new QGroupBox(1, Qt::Horizontal, theParent);
-  aMainFrame->setFrameStyle(QFrame::NoFrame);
-  aMainFrame->setInsideMargin(0);
-
-  // library name
-
-  QGroupBox* aGrp = new QGroupBox(1, Qt::Vertical, aMainFrame);
-  aGrp->setFrameStyle(QFrame::NoFrame);
-  aGrp->setInsideMargin(0);
-
-  new QLabel(tr("LIBRARY_FILE"), aGrp);
-  myFileName = new QLineEdit(aGrp);
-  myOpenBtn = new QPushButton(aGrp);
-  myOpenBtn->setPixmap(SUIT_Session::session()->resourceMgr()->loadPixmap(
-    "SUIT", tr("ICON_FILE_OPEN")));
-
-  // filters list box
-
-  aGrp = new QGroupBox(1, Qt::Vertical, tr("FILTER_NAMES"), aMainFrame);
-  QFrame* aFrame = new QFrame(aGrp);
-  myListBox = new QListBox(aFrame);
-  myAddBtn = new QPushButton(tr("ADD"), aFrame);
-  myDeleteBtn = new QPushButton(tr("DELETE"), aFrame);
-
-  QGridLayout* aLay = new QGridLayout(aFrame, 3, 2, 0, 5);
-  aLay->addMultiCellWidget(myListBox, 0, 2, 0, 0);
-  aLay->addWidget(myAddBtn, 0, 1);
-  aLay->addWidget(myDeleteBtn, 1, 1);
-  QSpacerItem* aVSpacer = new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
-  aLay->addItem(aVSpacer, 2, 1);
-
-  // filter name
-
-  myNameGrp = new QGroupBox(1, Qt::Vertical, aMainFrame);
-  myNameGrp->setFrameStyle(QFrame::NoFrame);
-  myNameGrp->setInsideMargin(0);
-  new QLabel(tr("FILTER_NAME"), myNameGrp);
-  myName = new QLineEdit(myNameGrp);
-
-  // table
-
-  myTable = new SMESHGUI_FilterTable( mySMESHGUI, aMainFrame, myTypes);
-  myTable->SetEditable(myMode == EDIT);
-  myTable->SetLibsEnabled(false);
-
-  myListBox->setMinimumHeight((int)(myTable->sizeHint().height() * 0.5));
-  myListBox->setRowMode(QListBox::FitToWidth);
-  myListBox->setSelectionMode(QListBox::Single);
-
-  myOpenBtn->setAutoDefault(false);
-  myAddBtn->setAutoDefault(false);
-  myDeleteBtn->setAutoDefault(false);
-
-  // connect signals and slots
-
-  connect(myFileName, SIGNAL(returnPressed()), this, SLOT(onReturnPressed()));
-  connect(myOpenBtn , SIGNAL(clicked()), this, SLOT(onBrowse()));
-
-  connect(myListBox, SIGNAL(highlighted(const QString&)),
-           this, SLOT(onFilterChanged(const QString&)));
-
-  connect(myAddBtn, SIGNAL(clicked()), this, SLOT(onAddBtnPressed()));
-  connect(myDeleteBtn, SIGNAL(clicked()), this, SLOT(onDeleteBtnPressed()));
-
-  connect(myName, SIGNAL(textChanged(const QString&)),
-           this, SLOT(onFilterNameChanged(const QString&)));
-
-  connect(myTable, SIGNAL(EntityTypeChanged(const int)),
-           this, SLOT(onEntityTypeChanged(const int)));
-
-  connect(myTable, SIGNAL(NeedValidation()), this, SLOT(onNeedValidation()));
-
-  return aMainFrame;
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::createButtonFrame
-// Purpose : Create frame containing buttons
-//=======================================================================
-QFrame* SMESHGUI_FilterLibraryDlg::createButtonFrame (QWidget* theParent)
-{
-  QGroupBox* aGrp = new QGroupBox(1, Qt::Vertical, theParent);
-
-  myButtons[ BTN_OK    ] = new QPushButton(tr("SMESH_BUT_OK"   ), aGrp);
-  myButtons[ BTN_Apply ] = new QPushButton(tr("SMESH_BUT_APPLY"), aGrp);
-
-  QLabel* aLbl = new QLabel(aGrp);
-  aLbl->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
-
-  myButtons[ BTN_Cancel ] = new QPushButton(tr("SMESH_BUT_CANCEL"), aGrp);
-  myButtons[ BTN_Close  ] = new QPushButton(tr("SMESH_BUT_CLOSE"), aGrp);
-
-  connect(myButtons[ BTN_OK     ], SIGNAL(clicked()), SLOT(onOk()));
-  connect(myButtons[ BTN_Cancel ], SIGNAL(clicked()), SLOT(onClose()));
-  connect(myButtons[ BTN_Close  ], SIGNAL(clicked()), SLOT(onClose()));
-  connect(myButtons[ BTN_Apply  ], SIGNAL(clicked()), SLOT(onApply()));
-
-  QMap<int, QPushButton*>::iterator anIter;
-  for (anIter = myButtons.begin(); anIter != myButtons.end(); ++anIter)
-    anIter.data()->setAutoDefault(false);
-
-  updateMainButtons();
-
-  return aGrp;
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::updateMainButtons
-// Purpose : Update visibility of main buttons (OK, Cancel, Close ...)
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::updateMainButtons()
-{
-  if (myTypes.count() == 1) {
-    myButtons[ BTN_Cancel ]->show();
-    myButtons[ BTN_Apply  ]->hide();
-    myButtons[ BTN_Close  ]->hide();
-  } else {
-    myButtons[ BTN_Cancel ]->hide();
-    myButtons[ BTN_Apply  ]->show();
-    myButtons[ BTN_Close  ]->show();
-  }
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::~SMESHGUI_FilterLibraryDlg
-// Purpose : Destructor
-//=======================================================================
-SMESHGUI_FilterLibraryDlg::~SMESHGUI_FilterLibraryDlg()
-{
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::Init
-// Purpose : Init dialog fields, connect signals and slots, show dialog
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::Init (const int type, const int theMode)
-{
-  QValueList<int> aTypes;
-  aTypes.append(type);
-  Init(aTypes, theMode);
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::Init
-// Purpose : Init dialog fields, connect signals and slots, show dialog
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::Init (const QValueList<int>& theTypes,
-                                      const int theMode)
-{
-  myMode = theMode;
-  myTypes = theTypes;
-  myTable->Init(theTypes);
-  myCurrFilterName = "";
-  myCurrFilter = -1;
-  myListBox->clear();
-  myName->clear();
-  myTable->Clear();
-
-  updateControlsVisibility();
-  setEnabled(true);
-
-  connect( mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
-  connect( mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
-
-  if (myMode == ADD_TO)
-  {
-    setCaption(tr("ADD_TO_TLT"));
-    if (myFileName->text().isEmpty())
-      myFileName->setText(getDefaultLibraryName());
-    processNewLibrary();
-  }
-  else if (myMode == COPY_FROM)
-  {
-    setCaption(tr("COPY_FROM_TLT"));
-    if (myFileName->text().isEmpty())
-      myFileName->setText(getDefaultLibraryName());
-    processNewLibrary();
-    if (myListBox->count() > 0)
-      myListBox->setCurrentItem(0);
-  }
-  else
-  {
-    setCaption(tr("EDIT_LIB_TLT"));
-    if (myFileName->text().isEmpty())
-      myFileName->setText(getDefaultLibraryName());
-    processNewLibrary();
-    if (myListBox->count() > 0)
-      myListBox->setCurrentItem(0);
-  }
-
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-
-  this->show();
-
-  updateMainButtons();
-  isPermissionValid(false);
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::updateControlsVisibility
-// Purpose : Update visibility of controls in accordance with myMode
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::updateControlsVisibility()
-{
-  if (myMode == ADD_TO)
-  {
-    myNameGrp->show();
-    myNameGrp->setEnabled(true);
-    myAddBtn->hide();
-    myDeleteBtn->hide();
-    myTable->SetEditable(false);
-  }
-  else if (myMode == COPY_FROM)
-  {
-    myNameGrp->hide();
-    myNameGrp->setEnabled(false);
-    myAddBtn->hide();
-    myDeleteBtn->hide();
-    myTable->SetEditable(false);
-  }
-  else if (myMode == EDIT)
-  {
-    myNameGrp->show();
-    myNameGrp->setEnabled(true);
-    myAddBtn->show();
-    myDeleteBtn->show();
-    myTable->SetEditable(true);
-  }
-
-  qApp->processEvents();
-  updateGeometry();
-  adjustSize();
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::onApply
-// Purpose : SLOT called when "Apply" button pressed.
-//=======================================================================
-bool SMESHGUI_FilterLibraryDlg::onApply()
-{
-  if (!isValid(true) || !isPermissionValid(false))
-    return false;
-
-  if (myLibrary->_is_nil()) {
-    QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_WRN_WARNING"),
-                             tr("LIBRARY_IS_NOT_LOADED"), QMessageBox::Ok);
-    return false;
-  }
-
-  const char* aName = myFileName->text().latin1();
-  if (strcmp(myLibrary->GetFileName(), aName) != 0)
-    myLibrary->SetFileName(aName);
-
-  bool aResult = false;
-
-  if (myMode == COPY_FROM || myListBox->count() == 0) {
-    aResult = true;
-  } else if (myMode == EDIT || myMode == ADD_TO) {
-    SMESH::Filter_var aFilter = createFilter();
-    if (!myLibrary->Replace(myCurrFilterName, myName->text(), aFilter.in())) {
-      QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_ERROR"),
-                               tr("ERROR_OF_EDITING"), QMessageBox::Ok);
-      aResult = false;
-    }
-    else
-      aResult = true;
-  }
-
-  if (aResult && myMode != COPY_FROM)
-    aResult = myLibrary->Save();
-
-  if (aResult) {
-    char* aFileName = myLibrary->GetFileName();
-    getDefaultLibraryName() = QString(aFileName);
-    delete aFileName;
-  } else if (myMode != COPY_FROM) {
-    QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_ERROR"),
-                             tr("ERROR_OF_SAVING"), QMessageBox::Ok);
-  } else {
-  }
-
-  return aResult;
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::onOk
-// Purpose : SLOT called when "Ok" button pressed.
-//           Assign filters VTK viewer and close dialog
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::onOk()
-{
-  if (onApply())
-  {
-    disconnect( mySMESHGUI, 0, this, 0);
-    mySMESHGUI->ResetState();
-    accept();
-  }
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::onClose
-// Purpose : SLOT called when "Close" button pressed. Close dialog
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::onClose()
-{
-  disconnect( mySMESHGUI, 0, this, 0);
-  mySMESHGUI->ResetState();
-  reject();
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::onDeactivate
-// Purpose : SLOT called when dialog must be deativated
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::onDeactivate()
-{
-  setEnabled(false);
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::enterEvent
-// Purpose : Event filter
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::enterEvent(QEvent*)
-{
-  setEnabled(true);
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  : Close dialog
-//=================================================================================
-void SMESHGUI_FilterLibraryDlg::closeEvent(QCloseEvent* e)
-{
-  onClose();
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::getFileName
-// Purpose : Get file name
-//=======================================================================
-QString SMESHGUI_FilterLibraryDlg::getFileName() const
-{
-  return myFileName != 0 ? myFileName->text() : QString("");
-}
-
-//================================================================
-// Function : setFileName
-// Purpose  : Set file name to line edit
-//================================================================
-void SMESHGUI_FilterLibraryDlg::setFileName(const QString& txt, const bool autoExt)
-{
-  if (myFileName == 0)
-    return;
-  myFileName->setText(autoExt ? autoExtension(txt) : txt);
-}
-
-//================================================================
-// Function : autoExtension
-// Purpose  : Append extension to the file name
-//================================================================
-QString SMESHGUI_FilterLibraryDlg::autoExtension(const QString& theFileName) const
-{
-  QString anExt = theFileName.section('.', -1);
-  return anExt != "xml" && anExt != "XML" ? theFileName + ".xml" : theFileName;
-}
-
-//================================================================
-// Function : filterWildCards
-// Purpose  :
-//================================================================
-QStringList SMESHGUI_FilterLibraryDlg::filterWildCards(const QString& theFilter) const
-{
-  QStringList res;
-
-  int b = theFilter.findRev("(");
-  int e = theFilter.findRev(")");
-  if (b != -1 && e != -1)
-  {
-    QString content = theFilter.mid(b + 1, e - b - 1).stripWhiteSpace();
-    QStringList lst = QStringList::split(" ", content);
-    for (QStringList::const_iterator it = lst.begin(); it != lst.end(); ++it)
-      if ((*it).find(".") != -1)
-        res.append((*it).stripWhiteSpace());
-  }
-  return res;
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::prepareFilters
-// Purpose : Prepare filters for dialog
-//=======================================================================
-QStringList SMESHGUI_FilterLibraryDlg::prepareFilters() const
-{
-  static QStringList aList;
-  if (aList.isEmpty())
-  {
-    aList.append(tr("XML_FILT"));
-    //aList.append(tr("ALL_FILES_FILTER"));
-  }
-
-  return aList;
-}
-
-//================================================================
-// Function : onBrowse
-// Purpose  : SLOT. Display "Open file" dialog for chosing library name
-//================================================================
-void SMESHGUI_FilterLibraryDlg::onBrowse()
-{
-  Dialog* aDlg = new Dialog(this, true);
-  aDlg->setCaption(tr("OPEN_LIBRARY"));
-
-  //aDlg->setMode(myMode == COPY_FROM ? QFileDialogP::ExistingFile : QFileDialogP::AnyFile);
-  aDlg->setMode(myMode == COPY_FROM ? QFileDialog::ExistingFile : QFileDialog::AnyFile);
-  aDlg->setFilters(prepareFilters());
-  aDlg->setSelection(getFileName());
-
-  QPushButton* anOkBtn = (QPushButton*)aDlg->child("OK", "QPushButton");
-  if (anOkBtn != 0)
-    anOkBtn->setText(tr("SMESH_BUT_OK"));
-
-  if (aDlg->exec() != Accepted)
-    return;
-
-  QString fName = aDlg->selectedFile();
-
-  if (fName.isEmpty())
-    return;
-
-  if (QFileInfo(fName).extension().isEmpty())
-    fName = autoExtension(fName);
-
-  fName = QDir::convertSeparators(fName);
-  QString prev = QDir::convertSeparators(getFileName());
-
-  if (prev == fName)
-    return;
-
-  setFileName(fName);
-
-  QString aName = myListBox->text(myListBox->count() - 1);
-  processNewLibrary();
-
-  if (myMode == ADD_TO)
-  {
-    myTable->Copy((SMESHGUI_FilterTable*)parentWidget());
-    myCurrFilterName = "";
-    myCurrFilter = -1;
-    addFilterToLib(aName);
-  }
-
-  isPermissionValid(false);
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::processNewLibrary
-// Purpose : SLOT. Calleds when file name changed
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::processNewLibrary()
-{
-  SMESH::FilterManager_var aFilterMgr = SMESH::GetFilterManager();
-  if (aFilterMgr->_is_nil())
-    return;
-
-  myLibrary = aFilterMgr->LoadLibrary(autoExtension(getFileName()));
-  if (myLibrary->_is_nil()) {
-    if (myMode == COPY_FROM) {
-      QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_ERROR"),
-                               tr("ERROR_LOAD"), QMessageBox::Ok);
-      return;
-    } else {
-      myLibrary = aFilterMgr->CreateLibrary();
-      myLibrary->SetFileName(getFileName().latin1());
-    }
-  }
-
-  updateList();
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::updateList
-// Purpose : Fill list box with filter names
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::updateList()
-{
-  QStringList aList;
-  SMESH::string_array_var aNames = myLibrary->GetNames((SMESH::ElementType)myTable->GetType());
-  for (int i = 0, n = aNames->length(); i < n; i++)
-    aList.append(QString(aNames[ i ]));
-  myListBox->clear();
-  myListBox->insertStringList(aList);
-  if (myListBox->count() == 0)
-  {
-    myTable->Clear(myTable->GetType());
-    myName->clear();
-    myName->setEnabled(false);
-    myTable->SetEnabled(false);
-  }
-  else
-  {
-    myName->setEnabled(true);
-    myTable->SetEnabled(true);
-    if (myListBox->count())
-    {
-      myCurrFilterName = "";
-      myListBox->setCurrentItem(0);
-    }
-  }
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::isNameValid
-// Purpose : Verify validity if entered data
-//=======================================================================
-bool SMESHGUI_FilterLibraryDlg::isNameValid(const bool theMess) const
-{
-  // verify validity of filter name
-  if (myName->isEnabled() && !myCurrFilterName.isEmpty()) {
-    QString aCurrName = myName->text();
-    if (aCurrName.isEmpty()) {
-      if (theMess)
-        QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_INSUFFICIENT_DATA"),
-                                 tr("EMPTY_FILTER_NAME"), QMessageBox::Ok);
-      return false;
-    }
-
-    SMESH::string_array_var aNames = myLibrary->GetAllNames();
-    for (int f = 0, n = aNames->length(); f < n; f++) {
-      if (aNames[ f ] == aCurrName && aNames[ f ] != myCurrFilterName) {
-        if (theMess)
-          QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_INSUFFICIENT_DATA"),
-                                   tr("ERROR_FILTER_NAME"), QMessageBox::Ok);
-        return false;
-      }
-    }
-  }
-
-  return true;
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::isPermissionValid
-// Purpose : Verify write permission on file
-//=======================================================================
-bool SMESHGUI_FilterLibraryDlg::isPermissionValid(const bool theIsExistingOnly)
-{
-  if (myMode == COPY_FROM)
-    return true;
-
-  // Verify write permission
-  bool isWritable = false;
-
-  QString fName(myFileName->text());
-  if (QFileInfo(fName).extension().isEmpty())
-    fName = autoExtension(fName);
-
-  fName = QDir::convertSeparators(fName);
-
-  if (QFileInfo(fName).exists()) {
-    isWritable = QFileInfo(fName).isWritable();
-  } else if (!theIsExistingOnly) {
-    QFileInfo aDirInfo(QFileInfo(fName).dirPath(true));
-    isWritable = aDirInfo.isWritable();
-    /*if (QDir(QFileInfo(fName).dirPath(true)).exists() ||
-         QDir().mkdir(QFileInfo(fName).dirPath(true)))
-    {
-      QFile aFile(fName);
-      if (aFile.open(IO_WriteOnly))
-        isWritable = true;
-      else
-        aFile.close();
-    }
-    */
-  } else {
-    isWritable = true;
-  }
-
-  if (!isWritable) {
-    QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_WRN_WARNING"),
-                             tr("NO_PERMISSION"), QMessageBox::Ok);
-    return false;
-  }
-
-  return true;
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::isValid
-// Purpose : Verify validity if entered data
-//=======================================================================
-bool SMESHGUI_FilterLibraryDlg::isValid(const bool theMess) const
-{
-  // verify validity of table
-  if (!myTable->IsValid(theMess) || !isNameValid(theMess))
-    return false;
-  else
-    return true;
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::onFilterChanged
-// Purpose : SLOT. Called when selected filter of library  changed
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::onFilterChanged(const QString& theName)
-{
-  if (myLibrary->_is_nil())
-    return;
-
-  // Save parameters of filter if it was changed
-
-  if (!myCurrFilterName.isEmpty() && myTable->IsEditable())
-  {
-    if (!isValid(true))
-    {
-      myListBox->blockSignals(true);
-      myListBox->setCurrentItem(myCurrFilter);
-      myListBox->blockSignals(false);
-      return;
-    }
-
-    SMESH::Filter_var aFilter = createFilter();
-    myLibrary->Replace(myCurrFilterName.latin1(), myName->text().latin1(), aFilter);
-  }
-
-  // Fill table with filter parameters
-
-  SMESH::Filter_var aFilter = myLibrary->Copy(theName);
-  myCurrFilterName = theName;
-  myCurrFilter = myListBox->currentItem();
-  myName->setText(theName);
-
-
-  SMESH::Filter::Criteria_var aCriteria;
-
-  myTable->Clear(myTable->GetType());
-
-  if (!aFilter->GetCriteria(aCriteria))
-    return;
-
-  for (int i = 0, n = aCriteria->length(); i < n; i++)
-    myTable->AddCriterion(aCriteria[ i ], myTable->GetType());
-
-  myTable->Update();
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::onReturnPressed
-// Purpose : SLOT. Called when enter button is pressed in library name field
-//           Reload library
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::onReturnPressed()
-{
-  QString aName = myListBox->text(myListBox->count() - 1);
-
-  processNewLibrary();
-
-  if (myMode == ADD_TO)
-  {
-    myTable->Copy((SMESHGUI_FilterTable*)parentWidget());
-    myCurrFilterName = "";
-    myCurrFilter = -1;
-    addFilterToLib(aName);
-  }
-
-  isPermissionValid(false);
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::enableMainButtons
-// Purpose : Update state of "OK", "Cancel" buttons
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::enableMainButtons()
-{
-  /*bool isEnabled = isValid(false);
-  if (myButtons.contains(BTN_OK))
-    myButtons[ BTN_OK ]->setEnabled(isEnabled);
-  else if (myButtons.contains(BTN_Apply))
-    myButtons[ BTN_OK ]->setEnabled(isEnabled);
-  if (myButtons.contains(BTN_Cancel))
-    myButtons[ BTN_Cancel ]->setEnabled(isEnabled);
-  else if (myButtons.contains(BTN_Close))
-    myButtons[ BTN_Cancel ]->setEnabled(isEnabled);
-    */
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::createFilter
-// Purpose : Cerate filter in accordance with library
-//=======================================================================
-SMESH::Filter_ptr SMESHGUI_FilterLibraryDlg::createFilter(const int theType)
-{
-  int n = myTable->NumRows(theType);
-
-  SMESH::Filter::Criteria_var aCriteria = new SMESH::Filter::Criteria;
-  aCriteria->length(n);
-
-  for (int i = 0; i < n; i++)
-  {
-    SMESH::Filter::Criterion aCriterion = SMESHGUI_FilterDlg::createCriterion();
-    myTable->GetCriterion(i, aCriterion);
-    aCriteria[ i ] = aCriterion;
-  }
-
-  SMESH::FilterManager_var aFilterMgr = SMESH::GetFilterManager();
-  SMESH::Filter_var aFilter = aFilterMgr->CreateFilter();
-  aFilter->SetCriteria(aCriteria.inout());
-
-  return aFilter._retn();
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::onAddBtnPressed
-// Purpose : SLOT. Called when "Add" button pressed
-//           Add new filter to the end of library
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::onAddBtnPressed()
-{
-  // Save parameters of filter if it was changed
-  if (!myCurrFilterName.isEmpty() && myTable->IsEditable())
-  {
-    if (!isValid(true))
-      return;
-
-    SMESH::Filter_var aFilter = createFilter();
-    myLibrary->Replace(myCurrFilterName.latin1(), myName->text().latin1(), aFilter);
-  }
-
-  addFilterToLib(getDefaultFilterName());
-}
-
-//=======================================================================
-// name    : onAddBtnPressed()
-// Purpose : SLOT. Called when "Add" button pressed
-//           Add new filter to the end of library
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::addFilterToLib (const QString& theName)
-{
-  if (myLibrary->_is_nil()) {
-    QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_WRN_WARNING"),
-                             tr("LIBRARY_IS_NOT_LOADED"), QMessageBox::Ok);
-    return;
-  }
-
-  // create filter
-  SMESH::Filter_var aFilter = createFilter();
-
-  // if name of filter already exist in the library assign default name for the filter
-  QString aName(theName);
-  SMESH::string_array_var aNames = myLibrary->GetAllNames();
-  for (int i = 0, n = aNames->length(); i < n; i++)
-    if (aName == QString(aNames[ i ]))
-    {
-      aName = getDefaultFilterName();
-      break;
-    }
-
-  // add new filter in library
-  bool aResult = !aFilter->GetPredicate()->_is_nil()
-    ? myLibrary->Add(aName.latin1(), aFilter)
-    : myLibrary->AddEmpty(aName.latin1(), (SMESH::ElementType)myTable->GetType());
-
-  if (!aResult) {
-    QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_ERROR"),
-                             tr("ERROR_OF_ADDING"), QMessageBox::Ok);
-  }
-
-  updateList();
-  myCurrFilterName = "";
-  myCurrFilter = -1;
-  setSelected(aName);
-
-  if (theName != aName)
-    QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_WARNING"),
-                             tr("ASSIGN_NEW_NAME").arg(theName).arg(aName), QMessageBox::Ok);
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::getDefaultLibraryName
-// Purpose : Get default library name
-//=======================================================================
-QString& SMESHGUI_FilterLibraryDlg::getDefaultLibraryName() const
-{
-  static QString aName;
-  if (aName.isEmpty())
-  {
-    QString aHomeDir = QDir(QDir::home()).absPath();
-    aName = aHomeDir + "/" + tr ("LIB_NAME");
-  }
-  return aName;
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::getDefaultFilterName
-// Purpose : Create default filter name
-//=======================================================================
-QString SMESHGUI_FilterLibraryDlg::getDefaultFilterName() const
-{
-  QString aName;
-
-  if (myTable->GetType() == SMESH::NODE)
-    aName = tr("NODE");
-  else if (myTable->GetType() == SMESH::EDGE)
-    aName = tr("EDGE");
-  else if (myTable->GetType() == SMESH::FACE)
-    aName = tr("FACE");
-  else if (myTable->GetType() == SMESH::VOLUME)
-    aName = tr("VOLUME");
-  else if (myTable->GetType() == SMESH::ALL)
-    aName = tr("ELEMENT");
-  else
-    aName = tr("SELECTION");
-
-  aName += tr("FILTER");
-
-
-  QMap< QString, int > anAllNames;
-  SMESH::string_array_var aNames = myLibrary->GetAllNames();
-  for(int i = 0, n = aNames->length(); i < n; i++)
-    anAllNames[ QString(aNames[ i ]) ] = -1;
-
-  bool isNotValid = true;
-  int k = 1;
-  QString aNewName;
-  while (isNotValid)
-  {
-    isNotValid = false;
-    aNewName = aName + "_" + QString("%1").arg(k);
-    if (anAllNames.contains(aNewName))
-    {
-      isNotValid = true;
-      k++;
-    }
-  }
-
-  return aNewName;
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::setSelected
-// Purpose : set selected item in list box containing filters
-//=======================================================================
-bool SMESHGUI_FilterLibraryDlg::setSelected(const QString& theName)
-{
-  int anIndex = getIndex(theName);
-  if (anIndex != -1)
-  {
-    myListBox->setCurrentItem(anIndex);
-    myCurrFilterName = theName;
-    myCurrFilter = anIndex;
-  }
-  return anIndex != -1;
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::getIndex
-// Purpose : Get index of the filter in list box
-//=======================================================================
-int SMESHGUI_FilterLibraryDlg::getIndex(const QString& theName) const
-{
-  for (int i = 0, n = myListBox->count(); i < n; i++)
-    if (myListBox->text(i) == theName)
-      return i;
-  return -1;
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::onDeleteBtnPressed
-// Purpose : SLOT. Called when "Delete" button pressed
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::onDeleteBtnPressed()
-{
-  if (myLibrary->_is_nil()) {
-    QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_WRN_WARNING"),
-                             tr("LIBRARY_IS_NOT_LOADED"), QMessageBox::Ok);
-    return;
-  }
-
-  int anIndex = getIndex(myCurrFilterName);
-
-  if (anIndex == -1 || !myLibrary->Delete(myCurrFilterName.latin1())) {
-    QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_ERROR"),
-                             tr("ERROR_OF_DELETING"), QMessageBox::Ok);
-  } else {
-    myCurrFilterName = "";
-    myCurrFilterName = -1;
-    myListBox->removeItem(anIndex);
-
-    if (anIndex >= 1)
-      myListBox->setSelected(anIndex - 1, true);
-    else if (anIndex == 0 && myListBox->count() > 0)
-      myListBox->setSelected(0, true);
-    else
-      myTable->Clear();
-  }
-
-  myTable->SetEnabled(myListBox->count() > 0);
-  if (myListBox->count() == 0) {
-    myName->setText("");
-    myName->setEnabled(false);
-  }
-}
-
-//=======================================================================
-// name    : onFilterNameChanged()
-// Purpose : SLOT. Called when name of filter changed
-//           Change filter name in list box
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::onFilterNameChanged (const QString& theName)
-{
-  int aCurrItem = myListBox->currentItem();
-  if (aCurrItem == -1)
-    return;
-
-  myListBox->blockSignals(true);
-  myListBox->changeItem(theName, aCurrItem);
-  myListBox->blockSignals(false);
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::SetTable
-// Purpose : Set table
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::SetTable(const SMESHGUI_FilterTable* theTable)
-{
-  myTable->Copy(theTable);
-  myName->setText(getDefaultFilterName());
-  addFilterToLib(myName->text());
-  myTable->Update();
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::GetTable
-// Purpose : Get table
-//=======================================================================
-const SMESHGUI_FilterTable* SMESHGUI_FilterLibraryDlg::GetTable() const
-{
-  return myTable;
-}
-
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::onEntityTypeChanged
-// Purpose : SLOT. Called when entiyt type changed
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::onEntityTypeChanged(const int theType)
-{
-  if (myLibrary->_is_nil())
-    return;
-
-  myName->clear();
-  myCurrFilterName = "";
-  myCurrFilter = -1;
-  updateList();
-  if (myListBox->count())
-    myListBox->setCurrentItem(0);
-}
-
-//=======================================================================
-// name    : SMESHGUI_FilterLibraryDlg::onNeedValidation
-// Purpose :
-//=======================================================================
-void SMESHGUI_FilterLibraryDlg::onNeedValidation()
-{
-  if (!myCurrFilterName.isEmpty())
-  {
-    bool valid = isValid(true);
-    myTable->SetValidity(valid);
-
-    if (valid)
-    {
-      SMESH::Filter_var aFilter = createFilter(myTable->GetType());
-      myLibrary->Replace(myCurrFilterName.latin1(), myName->text().latin1(), aFilter);
-    }
-  }
-}
diff --git a/src/SMESHGUI/SMESHGUI_FilterLibraryDlg.h b/src/SMESHGUI/SMESHGUI_FilterLibraryDlg.h
deleted file mode 100644 (file)
index 8fbc6f9..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_FilterLibraryDlg.h
-//  Author : Sergey LITONIN
-//  Module : SMESH
-
-
-#ifndef SMESHGUI_FilterLibraryDlg_H
-#define SMESHGUI_FilterLibraryDlg_H
-
-#include <qdialog.h>
-#include <SMESHGUI_FilterDlg.h>
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Filter)
-
-class QCloseEvent;
-class QListBox;
-class QFrame;
-class QEvent;
-class QLineEdit;
-class QPushButton;
-class QGroupBox;
-
-/*
-  Class       : SMESHGUI_FilterLibraryDlg
-  Description : Dialog to specify filters for VTK viewer
-*/
-
-class SMESHGUI_FilterLibraryDlg : public QDialog
-{ 
-  Q_OBJECT
-  
-  // Buttons
-  enum { BTN_OK, BTN_Cancel, BTN_Apply, BTN_Close };
-
-  class Dialog;
-  
-public:
-  
-  // Mode
-  enum { ADD_TO, COPY_FROM, EDIT };
-    
-public:
-  
-                              SMESHGUI_FilterLibraryDlg( SMESHGUI*,
-                                                        QWidget*,
-                                                         const QValueList<int>& types,
-                                                         const int              mode,
-                                                         const char*            name = 0 );
-                                                
-                              SMESHGUI_FilterLibraryDlg( SMESHGUI*,
-                                                        QWidget*,
-                                                         const int              type,
-                                                         const int              mode,
-                                                         const char*            name = 0 );
-                                                         
-  virtual                     ~SMESHGUI_FilterLibraryDlg();
-                            
-  void                        Init( const QValueList<int>& types, const int theMode );
-  void                        Init( const int type, const int theMode );
-  
-  const SMESHGUI_FilterTable* GetTable() const;
-  void                        SetTable( const SMESHGUI_FilterTable* );
-
-private:
-
-  void                        closeEvent( QCloseEvent* e ) ;
-  void                        enterEvent ( QEvent * ) ;            
-  
-private slots:
-
-  void                        onOk();
-  bool                        onApply();
-  void                        onClose();
-
-  void                        onDeactivate();
-  
-  void                        onBrowse();
-  void                        onReturnPressed();
-  void                        onFilterChanged( const QString& );
-  void                        onAddBtnPressed();
-  void                        onDeleteBtnPressed();
-  void                        onFilterNameChanged( const QString& );
-  void                        onEntityTypeChanged( const int );
-  void                        onNeedValidation();
-
-private:
-
-  void                        construct( const QValueList<int>& types, const int mode ); 
-  QFrame*                     createButtonFrame( QWidget* );
-  QFrame*                     createMainFrame  ( QWidget* );
-  bool                        isValid( const bool theMess = true ) const;
-  bool                        isNameValid( const bool theMess = true ) const;
-  SMESH::Filter_ptr           createFilter( const int theType = -1 );
-  QStringList                 prepareFilters() const;
-  QString                     autoExtension( const QString& ) const;
-  bool                        setSelected( const QString& );
-  int                         getIndex( const QString& ) const;
-  void                        updateControlsVisibility();
-  void                        updateMainButtons();
-  void                        enableMainButtons();
-  void                        processNewLibrary();
-  QString                     getFileName() const;
-  void                        setFileName( const QString& txt, const bool autoExtension = true );
-  QStringList                 filterWildCards( const QString& theFilter ) const;
-  QString&                    getDefaultLibraryName() const;
-  QString                     getDefaultFilterName() const;
-  void                        addFilterToLib( const QString& name );
-  void                        updateList();
-  bool                        isPermissionValid( const bool theIsExistingOnly );
-
-private:
-
-  QFrame*                     myMainFrame;
-  QMap<int, QPushButton*>     myButtons;
-  SMESHGUI_FilterTable*       myTable;
-  QLineEdit*                  myFileName;
-  QPushButton*                myOpenBtn;
-  QListBox*                   myListBox;
-  QPushButton*                myAddBtn;
-  QPushButton*                myDeleteBtn;
-  QGroupBox*                  myNameGrp;
-  QLineEdit*                  myName;
-  SMESHGUI*                   mySMESHGUI;
-
-  QValueList<int>             myTypes;
-  int                         myMode;
-      
-  SMESH::FilterLibrary_var    myLibrary;
-  QString                     myCurrFilterName;
-  int                         myCurrFilter;
-
-};
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_FilterUtils.cxx b/src/SMESHGUI/SMESHGUI_FilterUtils.cxx
deleted file mode 100644 (file)
index 360d004..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-
-
-#include "SMESHGUI_FilterUtils.h"
-
-#include "SMESHGUI.h"
-
-namespace SMESH
-{
-  SMESH::FilterManager_var GetFilterManager()
-  {
-    static SMESH::FilterManager_var aFilterManager;
-    if (CORBA::is_nil(aFilterManager)){
-      aFilterManager = SMESHGUI::GetSMESHGen()->CreateFilterManager();
-    }
-    return aFilterManager;
-  }
-}
diff --git a/src/SMESHGUI/SMESHGUI_FilterUtils.h b/src/SMESHGUI/SMESHGUI_FilterUtils.h
deleted file mode 100644 (file)
index 85bd3d0..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef SMESHGUI_FilterUtils_HeaderFile
-#define SMESHGUI_FilterUtils_HeaderFile
-
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Filter)
-
-
-namespace SMESH{
-
-  SMESH::FilterManager_var GetFilterManager();
-
-}
-
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_GEOMGenUtils.cxx b/src/SMESHGUI/SMESHGUI_GEOMGenUtils.cxx
deleted file mode 100644 (file)
index c9ffc82..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-
-#include <boost/shared_ptr.hpp>
-
-#include "SMESHGUI_GEOMGenUtils.h"
-#include "SMESHGUI_Utils.h"
-
-#include <GeometryGUI.h>
-
-#include <SALOMEDSClient_SObject.hxx>
-#include <SALOMEDSClient_ChildIterator.hxx>
-#include <SALOMEDS_SObject.hxx>
-
-#include CORBA_CLIENT_HEADER(SMESH_Mesh)
-
-
-namespace SMESH {
-
-  GEOM::GEOM_Gen_var GetGEOMGen()
-  {
-    static GEOM::GEOM_Gen_var aGEOMGen;
-
-    if(CORBA::is_nil(aGEOMGen))
-        aGEOMGen = GeometryGUI::GetGeomGen();
-    return aGEOMGen;
-  }
-
-  GEOM::GEOM_Object_var GetShapeOnMeshOrSubMesh(_PTR(SObject) theMeshOrSubmesh)
-  {
-    SALOMEDS_SObject* aMeshOrSubmesh = _CAST(SObject,theMeshOrSubmesh);
-    if(aMeshOrSubmesh) {
-      CORBA::Object_var Obj = aMeshOrSubmesh->GetObject();
-      if ( !CORBA::is_nil( Obj ) ) {
-        SMESH::SMESH_Mesh_var aMesh =
-          SObjectToInterface<SMESH::SMESH_Mesh>( theMeshOrSubmesh );
-        if ( !aMesh->_is_nil() )
-          return aMesh->GetShapeToMesh();
-        SMESH::SMESH_subMesh_var aSubmesh =
-          SObjectToInterface<SMESH::SMESH_subMesh>( theMeshOrSubmesh );
-        if ( !aSubmesh->_is_nil() )
-         return aSubmesh->GetSubShape();
-      }
-    }
-    return GEOM::GEOM_Object::_nil();
-  }
-
-  GEOM::GEOM_Object_ptr GetGeom (_PTR(SObject) theSO)
-  {
-    if (!theSO)
-      return GEOM::GEOM_Object::_nil();
-
-    _PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
-    if (!aStudy)
-      return GEOM::GEOM_Object::_nil();
-
-    _PTR(ChildIterator) anIter (aStudy->NewChildIterator(theSO));
-    for (; anIter->More(); anIter->Next()) {
-      _PTR(SObject) aSObject = anIter->Value();
-      _PTR(SObject) aRefSOClient;
-      GEOM::GEOM_Object_var aMeshShape;
-
-      if (aSObject->ReferencedObject(aRefSOClient)) {
-        SALOMEDS_SObject* aRefSO = _CAST(SObject,aRefSOClient);
-        aMeshShape = GEOM::GEOM_Object::_narrow(aRefSO->GetObject());
-      } else {
-       SALOMEDS_SObject* aSO = _CAST(SObject,aSObject);
-        aMeshShape = GEOM::GEOM_Object::_narrow(aSO->GetObject());
-      }
-
-      if (!aMeshShape->_is_nil())
-        return aMeshShape._retn();
-    }
-    return GEOM::GEOM_Object::_nil();
-  }
-}
diff --git a/src/SMESHGUI/SMESHGUI_GEOMGenUtils.h b/src/SMESHGUI/SMESHGUI_GEOMGenUtils.h
deleted file mode 100644 (file)
index 6f2ccb9..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-//
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef SMESHGUI_GEOMGenUtils_HeaderFile
-#define SMESHGUI_GEOMGenUtils_HeaderFile
-
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-
-#include "SALOMEDSClient_definitions.hxx"
-
-class SALOMEDSClient_SObject;
-
-namespace SMESH
-{
-  GEOM::GEOM_Gen_var GetGEOMGen();
-
-  GEOM::GEOM_Object_var GetShapeOnMeshOrSubMesh (_PTR(SObject) theSObject);
-
-  GEOM::GEOM_Object_ptr GetGeom (_PTR(SObject) theSO);
-}
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_GroupDlg.h b/src/SMESHGUI/SMESHGUI_GroupDlg.h
deleted file mode 100644 (file)
index 1127380..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_GroupDlg.h
-//  Author : Natalia KOPNOVA
-//  Module : SMESH
-//  $Header$
-
-#ifndef DIALOGBOX_GROUP_H
-#define DIALOGBOX_GROUP_H
-
-#include "SalomeApp_SelectionMgr.h"
-//#include "SMESH_TypeFilter.hxx"
-#include "SUIT_SelectionFilter.h"
-
-// QT Includes
-#include <qdialog.h>
-#include <qvaluelist.h>
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-#include CORBA_SERVER_HEADER(SMESH_Group)
-
-class QLineEdit;
-class QButtonGroup;
-class QGroupBox;
-class QListBox;
-class QPushButton;
-class QCheckBox;
-class QWidgetStack;
-class SMESHGUI;
-class SMESH_Actor;
-class SMESHGUI_FilterDlg;
-class SVTK_Selector;
-class SVTK_ViewWindow;
-
-//=================================================================================
-// class    : SMESHGUI_GroupDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_GroupDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_GroupDlg( SMESHGUI*,
-                      const char* name = 0, 
-                      SMESH::SMESH_Mesh_ptr theMesh = SMESH::SMESH_Mesh::_nil(), 
-                      bool modal = FALSE, WFlags fl = 0 );
-    SMESHGUI_GroupDlg( SMESHGUI*,
-                      const char* name, 
-                      SMESH::SMESH_Group_ptr theGroup,
-                      bool modal = FALSE, WFlags fl = 0 );
-    ~SMESHGUI_GroupDlg();
-
-public slots:
-
-    void onAdd();
-    void onRemove();
-
-
-private slots:
-
-    void onTypeChanged(int id);
-    void onGrpTypeChanged(int id);
-
-    void onOK();
-    void onClose();
-    bool onApply();
-    void onDeactivate();
-
-    void onListSelectionChanged();
-    void onObjectSelectionChanged();
-
-    void onSelectSubMesh(bool on);
-    void onSelectGroup(bool on);
-    void onSelectGeomGroup(bool on);
-    void setCurrentSelection();
-
-    void setFilters();
-    void onSort();
-
-    void onNameChanged(const QString& text);
-    void onFilterAccepted();
-
-private:
-    void initDialog(bool create);
-    void init(SMESH::SMESH_Mesh_ptr theMesh);
-    void init(SMESH::SMESH_Group_ptr theGroup);
-    void closeEvent(QCloseEvent* e);
-    void enterEvent (QEvent*);
-    void hideEvent (QHideEvent*);                          /* ESC key */
-    void setSelectionMode(int theMode);
-    void updateButtons();
-
-    SMESHGUI*                     mySMESHGUI;              /* Current SMESHGUI object */
-    SalomeApp_SelectionMgr*       mySelectionMgr;          /* User shape selection */
-    SMESH_Actor*                  myActor;                 /* Current mesh actor */
-    int                           myGrpTypeId; /* Current group type id : standalone or group on geometry */
-    int                           myTypeId;                /* Current type id = radio button id */
-    QLineEdit*                    myCurrentLineEdit;       /* Current  LineEdit */
-    SVTK_Selector*                mySelector;
-
-    QPushButton*                  myMeshGroupBtn;
-    QLineEdit*                    myMeshGroupLine;
-    
-    QButtonGroup*                 myTypeGroup;
-    QLineEdit*                    myName;
-
-    QButtonGroup*                 myGrpTypeGroup;
-
-    QWidgetStack*                 myWGStack;
-    QListBox*                     myElements;
-    QPushButton*                  myFilter;
-
-    QCheckBox*                    mySelectSubMesh;
-    QPushButton*                  mySubMeshBtn;
-    QLineEdit*                    mySubMeshLine;
-
-    QCheckBox*                    mySelectGroup;
-    QPushButton*                  myGroupBtn;
-    QLineEdit*                    myGroupLine;
-
-    QCheckBox*                    mySelectGeomGroup;
-    QPushButton*                  myGeomGroupBtn;
-    QLineEdit*                    myGeomGroupLine;
-
-    SMESH::SMESH_Mesh_var         myMesh;
-    SMESH::SMESH_Group_var        myGroup;
-    QValueList<int>               myIdList;
-    GEOM::GEOM_Object_var         myGeomGroup;
-
-    int                           mySelectionMode;
-    //Handle(SMESH_TypeFilter)      myMeshFilter;
-    //Handle(SMESH_TypeFilter)      mySubMeshFilter;
-    //Handle(SMESH_TypeFilter)      myGroupFilter;
-    SUIT_SelectionFilter*         myMeshFilter;
-    SUIT_SelectionFilter*         mySubMeshFilter;
-    SUIT_SelectionFilter*         myGroupFilter;
-
-    SMESHGUI_FilterDlg*           myFilterDlg;
-
-    bool                          myCreate, myIsBusy;
-};
-
-#endif // DIALOGBOX_GROUP_H
diff --git a/src/SMESHGUI/SMESHGUI_GroupOpDlg.cxx b/src/SMESHGUI/SMESHGUI_GroupOpDlg.cxx
deleted file mode 100644 (file)
index 5cff777..0000000
+++ /dev/null
@@ -1,384 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_GroupOpDlg.cxx
-//  Author : Sergey LITONIN
-//  Module : SMESH
-
-#include "SMESHGUI_GroupOpDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-
-#include "SMESH_TypeFilter.hxx"
-
-#include "SUIT_ResourceMgr.h"
-#include "SUIT_Desktop.h"
-
-#include "SalomeApp_SelectionMgr.h"
-#include "SVTK_Selection.h"
-#include "SVTK_ViewWindow.h"
-#include "SVTK_Selector.h"
-#include "SALOME_ListIO.hxx"
-
-// QT Includes
-#include <qframe.h>
-#include <qlayout.h>
-#include <qpushbutton.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlistbox.h>
-#include <qlineedit.h>
-#include <qmessagebox.h>
-
-#define SPACING 5
-#define MARGIN  10
-
-/*!
- *  Class       : SMESHGUI_GroupOpDlg
- *  Description : Perform boolean operations on groups
- */
-
-//=======================================================================
-// name    : SMESHGUI_GroupOpDlg::SMESHGUI_GroupOpDlg
-// Purpose : Constructor
-//=======================================================================
-SMESHGUI_GroupOpDlg::SMESHGUI_GroupOpDlg( SMESHGUI* theModule, const int theMode )
-     : QDialog( SMESH::GetDesktop( theModule ), "SMESHGUI_GroupOpDlg", false,
-                WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ),
-     mySMESHGUI( theModule ),
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-  myMode = theMode;
-
-  if (myMode == UNION) setCaption(tr("UNION_OF_TWO_GROUPS"));
-  else if (myMode == INTERSECT) setCaption(tr("INTERSECTION_OF_TWO_GROUPS"));
-  else setCaption(tr("CUT_OF_TWO_GROUPS"));
-
-  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
-
-  QVBoxLayout* aDlgLay = new QVBoxLayout (this, MARGIN, SPACING);
-
-  QFrame* aMainFrame = createMainFrame  (this);
-  QFrame* aBtnFrame  = createButtonFrame(this);
-
-  aDlgLay->addWidget(aMainFrame);
-  aDlgLay->addWidget(aBtnFrame);
-
-  aDlgLay->setStretchFactor(aMainFrame, 1);
-
-  Init();
-}
-
-//=======================================================================
-// name    : SMESHGUI_GroupOpDlg::createMainFrame
-// Purpose : Create frame containing dialog's input fields
-//=======================================================================
-QFrame* SMESHGUI_GroupOpDlg::createMainFrame (QWidget* theParent)
-{
-  QGroupBox* aMainGrp = new QGroupBox(1, Qt::Horizontal, theParent);
-  aMainGrp->setFrameStyle(QFrame::NoFrame);
-  aMainGrp->setInsideMargin(0);
-
-  QGroupBox* aNameGrp = new QGroupBox(1, Qt::Vertical, tr("NAME"), aMainGrp);
-  new QLabel(tr("RESULT_NAME"), aNameGrp);
-  myNameEdit = new QLineEdit(aNameGrp);
-
-  QGroupBox* anArgGrp = new QGroupBox(3, Qt::Horizontal, tr("ARGUMENTS"), aMainGrp);
-
-  new QLabel(myMode == CUT ? tr("MAIN_OBJECT") :tr("OBJECT_1"), anArgGrp);
-  myBtn1 = new QPushButton(anArgGrp);
-  myEdit1 = new QLineEdit(anArgGrp);
-  myEdit1->setAlignment( Qt::AlignLeft );
-
-  new QLabel(myMode == CUT ? tr("TOOL_OBJECT") :tr("OBJECT_2"), anArgGrp);
-  myBtn2 = new QPushButton(anArgGrp);
-  myEdit2 = new QLineEdit(anArgGrp);
-  myEdit2->setAlignment( Qt::AlignLeft );
-
-  myEdit1->setReadOnly(true);
-  myEdit2->setReadOnly(true);
-
-  QPixmap aPix (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
-  myBtn1->setPixmap(aPix);
-  myBtn2->setPixmap(aPix);
-
-  return aMainGrp;
-}
-
-//=======================================================================
-// name    : SMESHGUI_GroupOpDlg::createButtonFrame
-// Purpose : Create frame containing buttons
-//=======================================================================
-QFrame* SMESHGUI_GroupOpDlg::createButtonFrame (QWidget* theParent)
-{
-  QFrame* aFrame = new QFrame(theParent);
-  aFrame->setFrameStyle(QFrame::Box | QFrame::Sunken);
-
-  myOkBtn     = new QPushButton(tr("SMESH_BUT_OK"   ), aFrame);
-  myApplyBtn  = new QPushButton(tr("SMESH_BUT_APPLY"), aFrame);
-  myCloseBtn  = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame);
-
-  QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
-
-  QHBoxLayout* aLay = new QHBoxLayout(aFrame, MARGIN, SPACING);
-
-  aLay->addWidget(myOkBtn);
-  aLay->addWidget(myApplyBtn);
-  aLay->addItem(aSpacer);
-  aLay->addWidget(myCloseBtn);
-
-  // connect signals and slots
-  connect(myOkBtn,    SIGNAL(clicked()), SLOT(onOk()));
-  connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
-  connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
-
-  return aFrame;
-}
-
-//=======================================================================
-// name    : SMESHGUI_GroupOpDlg::~SMESHGUI_GroupOpDlg
-// Purpose : Destructor
-//=======================================================================
-SMESHGUI_GroupOpDlg::~SMESHGUI_GroupOpDlg()
-{
-}
-
-//=======================================================================
-// name    : SMESHGUI_GroupOpDlg::Init
-// Purpose : Init dialog fields, connect signals and slots, show dialog
-//=======================================================================
-void SMESHGUI_GroupOpDlg::Init()
-{
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-  myFocusWg = myEdit1;
-
-  myGroup1 = SMESH::SMESH_GroupBase::_nil();
-  myGroup2 = SMESH::SMESH_GroupBase::_nil();
-
-  // selection and SMESHGUI
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
-  connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
-  connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(ClickOnClose()));
-
-  connect(myBtn1, SIGNAL(clicked()), this, SLOT(onFocusChanged()));
-  connect(myBtn2, SIGNAL(clicked()), this, SLOT(onFocusChanged()));
-
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show();
-
-  // set selection mode
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-  mySelectionMgr->installFilter(new SMESH_TypeFilter (GROUP));
-
-  return;
-}
-
-//=======================================================================
-// name    : SMESHGUI_GroupOpDlg::isValid
-// Purpose : Verify validity of input data
-//=======================================================================
-bool SMESHGUI_GroupOpDlg::isValid()
-{
-  // Verify validity of group name
-  if (myNameEdit->text() == "") {
-    QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_INSUFFICIENT_DATA"),
-                             tr("EMPTY_NAME"), QMessageBox::Ok);
-    return false;
-  }
-
-  // Verufy wheter arguments speciffiyed
-  if (myGroup1->_is_nil() || myGroup2->_is_nil()) {
-    QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_INSUFFICIENT_DATA"),
-                             tr("INCORRECT_ARGUMENTS"), QMessageBox::Ok);
-    return false;
-  }
-
-  // Verify whether arguments belongs to same mesh
-  SMESH::SMESH_Mesh_ptr aMesh1 = myGroup1->GetMesh();
-  SMESH::SMESH_Mesh_ptr aMesh2 = myGroup2->GetMesh();
-
-  int aMeshId1 = !aMesh1->_is_nil() ? aMesh1->GetId() : -1;
-  int aMeshId2 = !aMesh2->_is_nil() ? aMesh2->GetId() : -1;
-
-  if (aMeshId1 != aMeshId2 || aMeshId1 == -1) {
-    QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_INSUFFICIENT_DATA"),
-                             tr("DIFF_MESHES"), QMessageBox::Ok);
-    return false;
-  }
-
-  // Verify whether groups have same types of entities
-  if (myGroup1->GetType() != myGroup2->GetType()) {
-    QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_INSUFFICIENT_DATA"),
-                             tr("DIFF_TYPES"), QMessageBox::Ok);
-    return false;
-  }
-
-  return true;
-}
-
-//=======================================================================
-// name    : SMESHGUI_GroupOpDlg::onApply
-// Purpose : SLOT called when "Apply" button pressed.
-//=======================================================================
-bool SMESHGUI_GroupOpDlg::onApply()
-{
-  if (!isValid() || mySMESHGUI->isActiveStudyLocked())
-    return false;
-
-  SMESH::SMESH_Mesh_ptr aMesh = myGroup1->GetMesh();
-  QString aName = myNameEdit->text();
-  SMESH::SMESH_Group_ptr aNewGrp = SMESH::SMESH_Group::_nil();
-
-  if (myMode == UNION) aNewGrp = aMesh->UnionGroups(myGroup1, myGroup2, aName.latin1());
-  else if (myMode == INTERSECT) aNewGrp = aMesh->IntersectGroups(myGroup1, myGroup2, aName.latin1());
-  else aNewGrp = aMesh->CutGroups(myGroup1, myGroup2, aName.latin1());
-
-  if (!aNewGrp->_is_nil()) {
-    mySMESHGUI->updateObjBrowser(true);
-    reset();
-    return true;
-  } else {
-    QMessageBox::critical(SMESHGUI::desktop(), tr("SMESH_ERROR"),
-                          tr("SMESH_OPERATION_FAILED"), "OK");
-    return false;
-  }
-}
-
-//=======================================================================
-// name    : SMESHGUI_GroupOpDlg::onOk
-// Purpose : SLOT called when "Ok" button pressed.
-//=======================================================================
-void SMESHGUI_GroupOpDlg::onOk()
-{
-  if (onApply())
-    onClose();
-}
-
-//=======================================================================
-// name    : SMESHGUI_GroupOpDlg::onClose
-// Purpose : SLOT called when "Close" button pressed. Close dialog
-//=======================================================================
-void SMESHGUI_GroupOpDlg::onClose()
-{
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-  disconnect(mySelectionMgr, 0, this, 0);
-  disconnect(mySMESHGUI, 0, this, 0);
-  mySMESHGUI->ResetState();
-  mySelectionMgr->clearFilters();
-  reject();
-}
-
-//=======================================================================
-// name    : SMESHGUI_GroupOpDlg::onSelectionDone
-// Purpose : SLOT called when selection changed
-//=======================================================================
-void SMESHGUI_GroupOpDlg::onSelectionDone()
-{
-  if (myFocusWg == myEdit1)
-    myGroup1 = SMESH::SMESH_GroupBase::_nil();
-  else
-    myGroup2 = SMESH::SMESH_GroupBase::_nil();
-
-  myFocusWg->setText("");
-
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList);
-
-  if (aList.Extent() == 1) {
-    SMESH::SMESH_GroupBase_var aGroup =
-      SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(aList.First());
-
-    if (!aGroup->_is_nil())
-    {
-      myFocusWg->setText(aGroup->GetName());
-      myFocusWg->setCursorPosition( 0 );
-
-      if (myFocusWg == myEdit1)
-        myGroup1 = aGroup;
-      else
-        myGroup2 = aGroup;
-    }
-  }
-}
-
-//=======================================================================
-// name    : SMESHGUI_GroupOpDlg::onDeactivate
-// Purpose : SLOT called when dialog must be deativated
-//=======================================================================
-void SMESHGUI_GroupOpDlg::onDeactivate()
-{
-  setEnabled(false);
-  mySelectionMgr->clearFilters();
-}
-
-//=======================================================================
-// name    : SMESHGUI_GroupOpDlg::enterEvent
-// Purpose : Event filter
-//=======================================================================
-void SMESHGUI_GroupOpDlg::enterEvent (QEvent*)
-{
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  setEnabled(true);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-  mySelectionMgr->installFilter(new SMESH_TypeFilter (GROUP));
-}
-
-//=======================================================================
-// name    : SMESHGUI_GroupOpDlg::closeEvent
-// purpose :
-//=======================================================================
-void SMESHGUI_GroupOpDlg::closeEvent (QCloseEvent*)
-{
-  onClose();
-}
-
-//=======================================================================
-// name    : SMESHGUI_GroupOpDlg::onFocusChanged
-// Purpose : SLOT. Called when "Select" button pressed.
-//=======================================================================
-void SMESHGUI_GroupOpDlg::onFocusChanged()
-{
-  const QObject* aSender = sender();
-  myFocusWg = aSender == myBtn1 ? myEdit1 : myEdit2;
-  onSelectionDone();
-}
-
-//=======================================================================
-// name    : SMESHGUI_GroupOpDlg::reset
-// Purpose : Rest state of dialog
-//=======================================================================
-void SMESHGUI_GroupOpDlg::reset()
-{
-  myNameEdit->setText("");
-  myEdit1->setText("");
-  myEdit2->setText("");
-  myFocusWg = myEdit1;
-  myNameEdit->setFocus();
-}
diff --git a/src/SMESHGUI/SMESHGUI_GroupOpDlg.h b/src/SMESHGUI/SMESHGUI_GroupOpDlg.h
deleted file mode 100644 (file)
index 774455d..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_GroupOpDlg.h
-//  Author : Sergey LITONIN
-//  Module : SMESH
-
-
-#ifndef SMESHGUI_GroupOpDlg_H
-#define SMESHGUI_GroupOpDlg_H
-
-#include <qdialog.h>
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Group)
-
-class QCloseEvent;
-class QLabel;
-class QFrame;
-class QPushButton;
-class SalomeApp_SelectionMgr;
-class QLineEdit;
-class SMESHGUI;
-class SVTK_ViewWindow;
-class SVTK_Selector;
-
-/*
-  Class       : SMESHGUI_GroupOpDlg
-  Description : Perform boolean operations on groups
-*/
-
-class SMESHGUI_GroupOpDlg : public QDialog
-{ 
-  Q_OBJECT
-    
-public:
-  enum { UNION, INTERSECT, CUT };
-    
-public:
-                            SMESHGUI_GroupOpDlg( SMESHGUI*, const int );
-  virtual                   ~SMESHGUI_GroupOpDlg();
-
-  void                      Init();
-  
-private:
-
-  void                      closeEvent( QCloseEvent* e ) ;
-  void                      enterEvent ( QEvent * ) ;            
-  
-private slots:
-
-  void                      onOk();
-  bool                      onApply();
-  void                      onClose();
-
-  void                      onDeactivate();
-  void                      onSelectionDone();
-  void                      onFocusChanged();
-
-private:
-
-  QFrame*                   createButtonFrame( QWidget* );
-  QFrame*                   createMainFrame  ( QWidget* );
-  bool                      isValid();
-  void                      reset();
-  
-private:
-
-  QPushButton*              myOkBtn;
-  QPushButton*              myApplyBtn;
-  QPushButton*              myCloseBtn;
-  
-  QLineEdit*                myNameEdit;
-  QLineEdit*                myEdit1;
-  QLineEdit*                myEdit2;
-  QPushButton*              myBtn1;
-  QPushButton*              myBtn2;
-  
-  SMESHGUI*                 mySMESHGUI;
-  SalomeApp_SelectionMgr*   mySelectionMgr;
-  int                       myMode;
-  SVTK_Selector*            mySelector;
-  
-  QLineEdit*                myFocusWg;
-  
-  SMESH::SMESH_GroupBase_var    myGroup1;
-  SMESH::SMESH_GroupBase_var    myGroup2;
-  
-};
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_GroupUtils.cxx b/src/SMESHGUI/SMESHGUI_GroupUtils.cxx
deleted file mode 100644 (file)
index d2aa17f..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-
-
-#include "SMESHGUI_GroupUtils.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-
-#include "SUIT_Session.h"
-#include "SalomeApp_Application.h"
-#include "SalomeApp_Tools.h"
-
-#include "OB_Browser.h"
-
-namespace SMESH
-{
-
-  SMESH::SMESH_Group_var AddGroup( SMESH::SMESH_Mesh_ptr theMesh,
-                                  SMESH::ElementType theType,
-                                  const char* theGroupName )
-  {
-    SMESH::SMESH_Group_var aGroup;
-    try {
-      if ( !theMesh->_is_nil() )
-       aGroup = theMesh->CreateGroup( theType, theGroupName );
-    }
-    catch( const SALOME::SALOME_Exception& S_ex ) {
-      SalomeApp_Tools::QtCatchCorbaException( S_ex );
-    }
-    //SalomeApp_Application* app =
-    //  dynamic_cast<SalomeApp_Application*>(SUIT_Session::session()->activeApplication());
-    //if (app) app->objectBrowser()->updateTree();
-    SMESHGUI::GetSMESHGUI()->updateObjBrowser();
-    return aGroup._retn();
-  }
-}
diff --git a/src/SMESHGUI/SMESHGUI_GroupUtils.h b/src/SMESHGUI/SMESHGUI_GroupUtils.h
deleted file mode 100644 (file)
index 9cd9783..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef SMESHGUI_GroupUtils_HeaderFile
-#define SMESHGUI_GroupUtils_HeaderFile
-
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-#include CORBA_SERVER_HEADER(SMESH_Group)
-
-
-namespace SMESH{
-
-  SMESH::SMESH_Group_var AddGroup(SMESH::SMESH_Mesh_ptr theMesh,
-                                 SMESH::ElementType theType,
-                                 const char* theGroupName);
-}
-
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_Hypotheses.h b/src/SMESHGUI/SMESHGUI_Hypotheses.h
deleted file mode 100644 (file)
index c9ceee8..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_Hypotheses.h
-//  Author : Julia DOROVSKIKH
-//  Module : SMESH
-//  $Header$
-
-#ifndef SMESHGUI_Hypotheses_HeaderFile
-#define SMESHGUI_Hypotheses_HeaderFile
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Hypothesis)
-
-// QT Includes
-#include <qstring.h>
-#include <qwidget.h>
-#include <qvaluevector.h>
-
-/*!
- * \brief Auxiliary class for creation of hypotheses
-*/
-class SMESHGUI_GenericHypothesisCreator
-{
-  public:
-  virtual void CreateHypothesis (const bool isAlgo, QWidget* parent) = 0;
-  virtual void EditHypothesis (SMESH::SMESH_Hypothesis_ptr theHyp) = 0;
-};
-
-/*!
- * \brief Class containing information about hypothesis
-*/
-class HypothesisData
-{
- public:
-  HypothesisData( const QString& thePluginName,
-                  const QString& theServerLibName,
-                  const QString& theClientLibName,
-                  const QString& theLabel,
-                  const QString& theIconId,
-                  const QValueList<int>& theDim,
-                  const bool theIsAux ) 
-: PluginName( thePluginName ),
-  ServerLibName( theServerLibName ),
-  ClientLibName( theClientLibName ),
-  Label( theLabel ),
-  IconId( theIconId ),
-  Dim( theDim ),
-  IsAux( theIsAux )
- {};
-
- QString PluginName;      //!< plugin name
- QString ServerLibName;   //!< server library name
- QString ClientLibName;   //!< client library name
- QString Label;           //!< label
- QString IconId;          //!< icon identifier
- QValueList<int> Dim;     //!< list of supported dimensions (see SMESH::Dimension enumeration)
- bool IsAux;              //!< TRUE if given hypothesis is auxiliary one, FALSE otherwise
-};
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx b/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx
deleted file mode 100644 (file)
index 96f59ae..0000000
+++ /dev/null
@@ -1,524 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-
-#include "SMESHGUI_HypothesesUtils.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Hypotheses.h"
-#include "SMESHGUI_XmlHandler.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_GEOMGenUtils.h"
-
-#include "SUIT_Tools.h"
-#include "SUIT_Desktop.h"
-#include "SUIT_MessageBox.h"
-#include "SUIT_OverrideCursor.h"
-#include "SUIT_ResourceMgr.h"
-#include "SUIT_Session.h"
-
-#include "OB_Browser.h"
-
-#include "SalomeApp_Study.h"
-#include "SalomeApp_Tools.h"
-#include "SalomeApp_Application.h"
-
-#include <SALOMEDSClient_Study.hxx>
-#include <SALOMEDSClient_SObject.hxx>
-
-#include "SALOMEconfig.h"
-#include CORBA_CLIENT_HEADER(SALOMEDS_Attributes)
-
-#include <map>
-#include <string>
-
-#include <dlfcn.h>
-
-#ifdef _DEBUG_
-static int MYDEBUG = 0;
-#else
-static int MYDEBUG = 0;
-#endif
-
-namespace SMESH{
-
-  using namespace std;
-
-  typedef map<string,HypothesisData*> THypothesisDataMap;
-  THypothesisDataMap myHypothesesMap;
-  THypothesisDataMap myAlgorithmsMap;
-
-  typedef map<string,SMESHGUI_GenericHypothesisCreator*> THypCreatorMap;
-  THypCreatorMap myHypCreatorMap;
-
-  void addMap(const THypothesisDataMap& theMap,
-              THypothesisDataMap& toMap)
-  {
-    THypothesisDataMap::const_iterator it;
-    for (it = theMap.begin(); it != theMap.end(); it++)
-      toMap.insert(*it);
-  }
-
-
-  void processHypothesisStatus(const int theHypStatus,
-                              SMESH::SMESH_Hypothesis_ptr theHyp,
-                              const bool theIsAddition)
-  {
-    if (theHypStatus > SMESH::HYP_OK) {
-
-      // get Hyp name
-      QString aHypName ("NULL Hypothesis");
-      if (!CORBA::is_nil(theHyp)) {
-       _PTR(SObject) Shyp = SMESH::FindSObject(theHyp);
-       if (Shyp)
-         // name in study
-         aHypName = Shyp->GetName().c_str();
-       else
-         // label in xml file
-         aHypName = GetHypothesisData(theHyp->GetName())->Label;
-      }
-
-      // message
-      bool isFatal = (theHypStatus >= SMESH::HYP_UNKNOWN_FATAL);
-      QString aMsg;
-      if (theIsAddition)
-       aMsg = (isFatal ? "SMESH_CANT_ADD_HYP" : "SMESH_ADD_HYP_WRN");
-      else
-       aMsg = (isFatal ? "SMESH_CANT_RM_HYP"  : "SMESH_RM_HYP_WRN");
-
-      aMsg = QObject::tr(aMsg).arg(aHypName) +
-       QObject::tr(QString("SMESH_HYP_%1").arg(theHypStatus));
-
-      SUIT_MessageBox::warn1(SMESHGUI::desktop(),
-                           QObject::tr("SMESH_WRN_WARNING"),
-                           aMsg,
-                           QObject::tr("SMESH_BUT_OK"));
-    }
-  }
-
-
-  void InitAvailableHypotheses()
-  {
-    SUIT_OverrideCursor wc;
-    if (myHypothesesMap.empty() && myAlgorithmsMap.empty()) {
-      // Resource manager
-      SUIT_ResourceMgr* resMgr = SMESHGUI::resourceMgr();
-      if (!resMgr) return;
-
-      // Find name of a resource XML file ("SMESH_Meshers.xml");
-      QString HypsXml;
-      char* cenv = getenv("SMESH_MeshersList");
-      if (cenv)
-       HypsXml.sprintf("%s", cenv);
-
-      QStringList HypsXmlList = QStringList::split(":", HypsXml, false);
-      if (HypsXmlList.count() == 0)
-       {
-         SUIT_MessageBox::error1(SMESHGUI::desktop(),
-                                QObject::tr("SMESH_WRN_WARNING"),
-                                QObject::tr("MESHERS_FILE_NO_VARIABLE"),
-                                QObject::tr("SMESH_BUT_OK"));
-         return;
-       }
-
-      // loop on files in HypsXml
-      QString aNoAccessFiles;
-      for (int i = 0; i < HypsXmlList.count(); i++) {
-       QString HypsXml = HypsXmlList[ i ];
-
-       // Find full path to the resource XML file
-       QString xmlFile = resMgr->path("resources", "SMESH", HypsXml + ".xml");
-        if ( xmlFile.isEmpty() ) // try PLUGIN resources
-          xmlFile = resMgr->path("resources", HypsXml, HypsXml + ".xml");
-        
-       QFile file (xmlFile);
-       if (file.exists() && file.open(IO_ReadOnly)) {
-         file.close();
-
-         SMESHGUI_XmlHandler* aXmlHandler = new SMESHGUI_XmlHandler();
-         ASSERT(aXmlHandler);
-
-         QXmlInputSource source (file);
-         QXmlSimpleReader reader;
-         reader.setContentHandler(aXmlHandler);
-         reader.setErrorHandler(aXmlHandler);
-         bool ok = reader.parse(source);
-         file.close();
-         if (ok) {
-           addMap(aXmlHandler->myHypothesesMap, myHypothesesMap);
-           addMap(aXmlHandler->myAlgorithmsMap, myAlgorithmsMap);
-         }
-         else {
-           SUIT_MessageBox::error1(SMESHGUI::desktop(),
-                                  QObject::tr("INF_PARSE_ERROR"),
-                                  QObject::tr(aXmlHandler->errorProtocol()),
-                                  QObject::tr("SMESH_BUT_OK"));
-         }
-       }
-       else {
-         if (aNoAccessFiles.isEmpty())
-           aNoAccessFiles = xmlFile;
-         else
-           aNoAccessFiles += ", " + xmlFile;
-       }
-      } // end loop
-
-
-      if (!aNoAccessFiles.isEmpty()) {
-       QString aMess = QObject::tr("MESHERS_FILE_CANT_OPEN") + " " + aNoAccessFiles + "\n";
-       aMess += QObject::tr("MESHERS_FILE_CHECK_VARIABLE");
-       wc.suspend();
-       SUIT_MessageBox::warn1(SMESHGUI::desktop(),
-                             QObject::tr("SMESH_WRN_WARNING"),
-                             aMess,
-                             QObject::tr("SMESH_BUT_OK"));
-       wc.resume();
-      }
-    }
-  }
-
-
-  QStringList GetAvailableHypotheses( const bool isAlgo, 
-                                      const int theDim,                          
-                                      const bool isAux )
-  {
-    QStringList aHypList;
-
-    // Init list of available hypotheses, if needed
-    InitAvailableHypotheses();
-
-    // fill list of hypotheses/algorithms
-    THypothesisDataMap* pMap = isAlgo ? &myAlgorithmsMap : &myHypothesesMap;
-    THypothesisDataMap::iterator anIter;
-    for ( anIter = pMap->begin(); anIter != pMap->end(); anIter++ )
-    {
-      HypothesisData* aData = (*anIter).second;
-      if ( ( theDim < 0 || aData->Dim.contains( theDim ) ) && aData->IsAux == isAux )
-        aHypList.append(((*anIter).first).c_str());
-    }
-    return aHypList;
-  }
-
-
-  HypothesisData* GetHypothesisData (const char* aHypType)
-  {
-    HypothesisData* aHypData = 0;
-
-    // Init list of available hypotheses, if needed
-    InitAvailableHypotheses();
-
-    if (myHypothesesMap.find(aHypType) == myHypothesesMap.end()) {
-      if (myAlgorithmsMap.find(aHypType) != myAlgorithmsMap.end()) {
-       aHypData = myAlgorithmsMap[aHypType];
-      }
-    }
-    else {
-      aHypData = myHypothesesMap[aHypType];
-    }
-    return aHypData;
-  }
-
-
-  SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator(const char* aHypType)
-  {
-    if(MYDEBUG) MESSAGE("Get HypothesisCreator for " << aHypType);
-
-    SMESHGUI_GenericHypothesisCreator* aCreator = 0;
-
-    // check, if creator for this hypothesis type already exists
-    if (myHypCreatorMap.find(aHypType) != myHypCreatorMap.end()) {
-      aCreator = myHypCreatorMap[aHypType];
-    }
-    else {
-      // 1. Init list of available hypotheses, if needed
-      InitAvailableHypotheses();
-
-      // 2. Get names of plugin libraries
-      HypothesisData* aHypData = GetHypothesisData(aHypType);
-      if (!aHypData) 
-        return aCreator;
-      QString aClientLibName = aHypData->ClientLibName;
-      QString aServerLibName = aHypData->ServerLibName;
-
-      // 3. Load Client Plugin Library
-      try {
-       // load plugin library
-       if(MYDEBUG) MESSAGE("Loading client meshers plugin library ...");
-       void* libHandle = dlopen (aClientLibName, RTLD_LAZY);
-       if (!libHandle) {
-         // report any error, if occured
-         const char* anError = dlerror();
-         if(MYDEBUG) MESSAGE(anError);
-       }
-       else {
-         // get method, returning hypothesis creator
-         if(MYDEBUG) MESSAGE("Find GetHypothesisCreator() method ...");
-         typedef SMESHGUI_GenericHypothesisCreator* (*GetHypothesisCreator) \
-           (QString aHypType, QString aServerLibName, SMESHGUI* aSMESHGUI);
-         GetHypothesisCreator procHandle =
-           (GetHypothesisCreator)dlsym(libHandle, "GetHypothesisCreator");
-         if (!procHandle) {
-           if(MYDEBUG) MESSAGE("bad hypothesis client plugin library");
-           dlclose(libHandle);
-         }
-         else {
-           // get hypothesis creator
-           if(MYDEBUG) MESSAGE("Get Hypothesis Creator for " << aHypType);
-           aCreator = procHandle(aHypType, aServerLibName, SMESHGUI::GetSMESHGUI());
-           if (!aCreator) {
-             if(MYDEBUG) MESSAGE("no such a hypothesis in this plugin");
-           }
-           else {
-             // map hypothesis creator to a hypothesis name
-             myHypCreatorMap[aHypType] = aCreator;
-           }
-         }
-       }
-      }
-      catch (const SALOME::SALOME_Exception& S_ex) {
-       SalomeApp_Tools::QtCatchCorbaException(S_ex);
-      }
-    }
-
-    return aCreator;
-  }
-
-
-  SMESH::SMESH_Hypothesis_ptr CreateHypothesis(const char* aHypType,
-                                              const char* aHypName,
-                                              const bool isAlgo)
-  {
-    if(MYDEBUG) MESSAGE("Create " << aHypType << " with name " << aHypName);
-
-    SMESH::SMESH_Hypothesis_var Hyp;
-
-    HypothesisData* aHypData = GetHypothesisData(aHypType);
-    QString aServLib = aHypData->ServerLibName;
-
-    try {
-      Hyp = SMESHGUI::GetSMESHGen()->CreateHypothesis(aHypType, aServLib);
-      if (!Hyp->_is_nil()) {
-       _PTR(SObject) SHyp = SMESH::FindSObject(Hyp.in());
-       if (SHyp) {
-         //if (strcmp(aHypName,"") != 0)
-         if (strlen(aHypName) > 0)
-           SMESH::SetName(SHyp, aHypName);
-         //SalomeApp_Application* app =
-         //  dynamic_cast<SalomeApp_Application*>(SUIT_Session::session()->activeApplication());
-         //if (app)
-         //  app->objectBrowser()->updateTree();
-          SMESHGUI::GetSMESHGUI()->updateObjBrowser();
-         return Hyp._retn();
-       }
-      }
-    }
-    catch (const SALOME::SALOME_Exception & S_ex) {
-      SalomeApp_Tools::QtCatchCorbaException(S_ex);
-    }
-
-    return SMESH::SMESH_Hypothesis::_nil();
-  }
-
-
-  bool AddHypothesisOnMesh (SMESH::SMESH_Mesh_ptr aMesh, SMESH::SMESH_Hypothesis_ptr aHyp)
-  {
-    if(MYDEBUG) MESSAGE ("SMESHGUI::AddHypothesisOnMesh");
-    int res = SMESH::HYP_UNKNOWN_FATAL;
-    SUIT_OverrideCursor wc;
-
-    if (!aMesh->_is_nil()) {
-      _PTR(SObject) SM = SMESH::FindSObject(aMesh);
-      GEOM::GEOM_Object_var aShapeObject = SMESH::GetShapeOnMeshOrSubMesh(SM);
-      try {
-       res = aMesh->AddHypothesis(aShapeObject, aHyp);
-       if (res < SMESH::HYP_UNKNOWN_FATAL) {
-         _PTR(SObject) SH = SMESH::FindSObject(aHyp);
-         if (SM && SH) {
-           SMESH::ModifiedMesh(SM, false);
-         }
-       }
-       if (res > SMESH::HYP_OK) {
-         wc.suspend();
-         processHypothesisStatus(res, aHyp, true);
-         wc.resume();
-       }
-      }
-      catch(const SALOME::SALOME_Exception& S_ex) {
-       wc.suspend();
-       SalomeApp_Tools::QtCatchCorbaException(S_ex);
-       res = SMESH::HYP_UNKNOWN_FATAL;
-      }
-    }
-    return res < SMESH::HYP_UNKNOWN_FATAL;
-  }
-
-
-  bool AddHypothesisOnSubMesh (SMESH::SMESH_subMesh_ptr aSubMesh, SMESH::SMESH_Hypothesis_ptr aHyp)
-  {
-    if(MYDEBUG) MESSAGE("SMESHGUI::AddHypothesisOnSubMesh() ");
-    int res = SMESH::HYP_UNKNOWN_FATAL;
-    SUIT_OverrideCursor wc;
-
-    if (!aSubMesh->_is_nil() && ! aHyp->_is_nil()) {
-      try {
-       SMESH::SMESH_Mesh_var aMesh = aSubMesh->GetFather();
-       _PTR(SObject) SsubM = SMESH::FindSObject(aSubMesh);
-       GEOM::GEOM_Object_var aShapeObject = SMESH::GetShapeOnMeshOrSubMesh(SsubM);
-       if (!aMesh->_is_nil() && SsubM && !aShapeObject->_is_nil()) {
-         res = aMesh->AddHypothesis(aShapeObject, aHyp);
-         if (res < SMESH::HYP_UNKNOWN_FATAL)  {
-            _PTR(SObject) meshSO = SMESH::FindSObject(aMesh);
-            if (meshSO)
-              SMESH::ModifiedMesh(meshSO, false);
-         }
-         if (res > SMESH::HYP_OK) {
-           wc.suspend();
-           processHypothesisStatus(res, aHyp, true);
-           wc.resume();
-         }
-       }
-       else {
-         SCRUTE(aHyp->_is_nil());
-         SCRUTE(aMesh->_is_nil());
-         SCRUTE(!SsubM);
-         SCRUTE(aShapeObject->_is_nil());
-       }
-      }
-      catch(const SALOME::SALOME_Exception& S_ex) {
-       wc.suspend();
-       SalomeApp_Tools::QtCatchCorbaException(S_ex);
-       res = SMESH::HYP_UNKNOWN_FATAL;
-      }
-    }
-    else {
-      SCRUTE(aSubMesh->_is_nil());
-      SCRUTE(aHyp->_is_nil());
-    }
-    return res < SMESH::HYP_UNKNOWN_FATAL;
-  }
-
-  bool RemoveHypothesisOrAlgorithmOnMesh (const Handle(SALOME_InteractiveObject)& IObject)
-  {
-    int res = SMESH::HYP_UNKNOWN_FATAL;
-    SUIT_OverrideCursor wc;
-
-    try {
-      _PTR(Study) aStudy = GetActiveStudyDocument();
-      _PTR(SObject) aHypObj = aStudy->FindObjectID( IObject->getEntry() );
-      if( aHypObj )
-      {
-       _PTR(SObject) MorSM = SMESH::GetMeshOrSubmesh( aHypObj );
-       _PTR(SObject) aRealHypo;
-       if( aHypObj->ReferencedObject( aRealHypo ) )
-       {
-         SMESH_Hypothesis_var hypo = SMESH_Hypothesis::_narrow( SObjectToObject( aRealHypo ) );
-         RemoveHypothesisOrAlgorithmOnMesh( MorSM, hypo );
-       }
-       else
-       {
-         SMESH_Hypothesis_var hypo = SMESH_Hypothesis::_narrow( SObjectToObject( aHypObj ) );
-         SObjectList meshList = GetMeshesUsingAlgoOrHypothesis( hypo );
-         for( int i = 0; i < meshList.size(); i++ )
-           RemoveHypothesisOrAlgorithmOnMesh( meshList[ i ], hypo );
-       }
-      }
-    }
-    catch(const SALOME::SALOME_Exception& S_ex)
-    {
-      wc.suspend();
-      SalomeApp_Tools::QtCatchCorbaException(S_ex);
-      res = SMESH::HYP_UNKNOWN_FATAL;
-    }
-    return res < SMESH::HYP_UNKNOWN_FATAL;
-  }
-
-  bool RemoveHypothesisOrAlgorithmOnMesh (_PTR(SObject) MorSM,
-                                          SMESH::SMESH_Hypothesis_ptr anHyp)
-  {
-    SALOMEDS::GenericAttribute_var anAttr;
-    SALOMEDS::AttributeIOR_var anIOR;
-    int res = SMESH::HYP_UNKNOWN_FATAL;
-    SUIT_OverrideCursor wc;
-
-    if (MorSM) {
-      try {
-        GEOM::GEOM_Object_var aShapeObject = SMESH::GetShapeOnMeshOrSubMesh(MorSM);
-        if (!aShapeObject->_is_nil()) {
-          SMESH::SMESH_Mesh_var aMesh = SMESH::SObjectToInterface<SMESH::SMESH_Mesh>(MorSM);
-         SMESH::SMESH_subMesh_var aSubMesh = SMESH::SObjectToInterface<SMESH::SMESH_subMesh>(MorSM);
-
-         if (!aSubMesh->_is_nil())
-           aMesh = aSubMesh->GetFather();
-
-         if (!aMesh->_is_nil()) {
-           res = aMesh->RemoveHypothesis(aShapeObject, anHyp);
-           if (res < SMESH::HYP_UNKNOWN_FATAL) {
-              _PTR(SObject) meshSO = SMESH::FindSObject(aMesh);
-              if (meshSO)
-                SMESH::ModifiedMesh(meshSO, false);
-            }
-           if (res > SMESH::HYP_OK) {
-             wc.suspend();
-             processHypothesisStatus(res, anHyp, false);
-             wc.resume();
-           }
-         }
-       }
-      } catch(const SALOME::SALOME_Exception& S_ex) {
-       wc.suspend();
-       SalomeApp_Tools::QtCatchCorbaException(S_ex);
-       res = SMESH::HYP_UNKNOWN_FATAL;
-      }
-    }
-    return res < SMESH::HYP_UNKNOWN_FATAL;
-  }
-
-  SObjectList GetMeshesUsingAlgoOrHypothesis(SMESH::SMESH_Hypothesis_ptr AlgoOrHyp)
-  {
-    SObjectList listSOmesh;
-    listSOmesh.resize(0);
-
-    unsigned int index = 0;
-    if (!AlgoOrHyp->_is_nil()) {
-      _PTR(SObject) SO_Hypothesis = SMESH::FindSObject(AlgoOrHyp);
-      if (SO_Hypothesis) {
-       SObjectList listSO =
-         SMESHGUI::activeStudy()->studyDS()->FindDependances(SO_Hypothesis);
-
-       if(MYDEBUG) MESSAGE("SMESHGUI::GetMeshesUsingAlgoOrHypothesis(): dependency number ="<<listSO.size());
-       for (unsigned int i = 0; i < listSO.size(); i++) {
-         _PTR(SObject) SO = listSO[i];
-         if (SO) {
-           _PTR(SObject) aFather = SO->GetFather();
-           if (aFather) {
-             _PTR(SObject) SOfatherFather = aFather->GetFather();
-             if (SOfatherFather) {
-               if(MYDEBUG) MESSAGE("SMESHGUI::GetMeshesUsingAlgoOrHypothesis(): dependency added to list");
-               index++;
-               listSOmesh.resize(index);
-               listSOmesh[index - 1] = SOfatherFather;
-             }
-           }
-         }
-       }
-      }
-    }
-    if (MYDEBUG) MESSAGE("SMESHGUI::GetMeshesUsingAlgoOrHypothesis(): completed");
-    return listSOmesh;
-  }
-}
diff --git a/src/SMESHGUI/SMESHGUI_HypothesesUtils.h b/src/SMESHGUI/SMESHGUI_HypothesesUtils.h
deleted file mode 100644 (file)
index 0edd779..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_HypothesesUtils.h
-//  Author : Julia DOROVSKIKH
-//  Module : SMESH
-//  $Header$
-
-#ifndef SMESHGUI_HypothesesUtils_HeaderFile
-#define SMESHGUI_HypothesesUtils_HeaderFile
-
-#include <qstring.h>
-#include <qstringlist.h>
-
-#include "SALOME_InteractiveObject.hxx"
-#include "SALOMEDSClient_definitions.hxx"
-
-#include "SALOMEconfig.h"
-#include CORBA_CLIENT_HEADER(SALOMEDS)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-#include CORBA_SERVER_HEADER(SMESH_Hypothesis)
-
-#include <vector>
-
-class HypothesisData;
-class SMESHGUI_GenericHypothesisCreator;
-class SALOMEDSClient_SObject;
-
-namespace SMESH{
-
-  void InitAvailableHypotheses();
-
-  QStringList GetAvailableHypotheses( const bool isAlgo, 
-                                      const int theDim = -1, 
-                                      const bool isAux = false);
-
-  HypothesisData* GetHypothesisData(const char* aHypType);
-
-  SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator(const char* aHypType);
-
-  SMESH::SMESH_Hypothesis_ptr CreateHypothesis(const char* aHypType,
-                                              const char* aHypName,
-                                              const bool isAlgo = false);
-
-  bool AddHypothesisOnMesh(SMESH::SMESH_Mesh_ptr aMesh, SMESH::SMESH_Hypothesis_ptr aHyp);
-
-  bool AddHypothesisOnSubMesh(SMESH::SMESH_subMesh_ptr aSubMesh, SMESH::SMESH_Hypothesis_ptr aHyp);
-
-  bool RemoveHypothesisOrAlgorithmOnMesh(const Handle(SALOME_InteractiveObject)& IObject);
-
-  bool RemoveHypothesisOrAlgorithmOnMesh(_PTR(SObject) MorSM,
-                                        SMESH::SMESH_Hypothesis_ptr anHyp);
-
-  typedef std::vector<_PTR(SObject)> SObjectList;
-  SObjectList GetMeshesUsingAlgoOrHypothesis(SMESH::SMESH_Hypothesis_ptr AlgoOrHyp ) ;
-
-}
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_IdValidator.h b/src/SMESHGUI/SMESHGUI_IdValidator.h
deleted file mode 100644 (file)
index 680dacb..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_IdValidator.h
-//  Author : Edward AGAPOV
-//  Module : SMESH
-//  $Header: /dn05/salome/PAL/SMESH/SMESH_SRC/src/SMESHGUI/SMESHGUI_IdValidator.h
-
-#ifndef SMESHGUI_IdValidator_HeaderFile
-#define SMESHGUI_IdValidator_HeaderFile
-
-#include <qvalidator.h>
-
-// validator for manual input of Ids
-
-class SMESHGUI_IdValidator: public QValidator
-{
- public:
-
-  SMESHGUI_IdValidator(QWidget * parent, const char * name = 0, const int maxNbId = 0):
-    QValidator(parent,name), myMaxNbId(maxNbId) {}
-
-  State validate ( QString & text, int & pos) const
-  { 
-    text.replace( QRegExp(" *[^0-9]+ *"), " " ); 
-    if ( myMaxNbId && text.length() > myMaxNbId) { // truncate extra ids
-      int ind = 0, nbId = 0;
-      while ( ind < text.length() ) {
-       if ( text.at( ind ) != ' ' ) {
-         if ( ++nbId > myMaxNbId ) {
-           text.truncate( ind );
-           break;
-         }
-         ind = text.find( ' ', ind );
-         if ( ind < 0 ) break;
-       }
-       ind++;
-      }
-    }
-    if ( pos > text.length() )
-      pos = text.length();
-    return Acceptable;
-  }
-
- private:
-  int myMaxNbId;
-};
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_InitMeshDlg.cxx b/src/SMESHGUI/SMESHGUI_InitMeshDlg.cxx
deleted file mode 100644 (file)
index f3fbf92..0000000
+++ /dev/null
@@ -1,498 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_InitMeshDlg.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_InitMeshDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_HypothesesUtils.h"
-
-#include "SMESH_TypeFilter.hxx"
-#include "SMESH_NumberFilter.hxx"
-
-#include "GEOMBase.h"
-
-#include "SUIT_Session.h"
-#include "SUIT_MessageBox.h"
-#include "SUIT_OverrideCursor.h"
-#include "SUIT_Operation.h"
-#include "SUIT_Desktop.h"
-
-#include "SALOMEDSClient_Study.hxx"
-#include "SALOMEDS_SObject.hxx"
-#include "SALOME_ListIO.hxx"
-#include "SALOME_ListIteratorOfListIO.hxx"
-#include "SalomeApp_Tools.h"
-
-#include "SVTK_ViewModel.h"
-
-#include "utilities.h"
-
-// QT Includes
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qlayout.h>
-#include <qpixmap.h>
-
-using namespace std;
-
-namespace SMESH {
-  SMESH::SMESH_Mesh_var InitMesh (GEOM::GEOM_Object_ptr theShapeObject,
-                                  const char* theMeshName)
-  {
-    SMESH::SMESH_Mesh_var aMesh;
-    try {
-      SMESH::SMESH_Gen_var aSMESHGen = SMESHGUI::GetSMESHGen();
-      if (!aSMESHGen->_is_nil() && !theShapeObject->_is_nil()) {
-       aMesh = aSMESHGen->CreateMesh(theShapeObject);
-       if (!aMesh->_is_nil()) {
-         _PTR(SObject) aMeshSObject = SMESH::FindSObject(aMesh.in());
-         SMESH::SetName(aMeshSObject, theMeshName);
-       }
-      }
-    }
-    catch (const SALOME::SALOME_Exception& S_ex) {
-      SalomeApp_Tools::QtCatchCorbaException(S_ex);
-    }
-    return aMesh._retn();
-  }
-}
-
-//=================================================================================
-// class    : SMESHGUI_InitMeshDlg()
-// purpose  : Constructs a SMESHGUI_InitMeshDlg which is a child of 'parent', with the
-//            name 'name' and widget flags set to 'f'.
-//            The dialog will by default be modeless, unless you set 'modal' to
-//            TRUE to construct a modal dialog.
-//=================================================================================
-SMESHGUI_InitMeshDlg::SMESHGUI_InitMeshDlg (SMESHGUI* theModule, const char* name,
-                                            bool modal, WFlags fl)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-               WStyle_Title | WStyle_SysMenu | WDestructiveClose),
-    mySMESHGUI( theModule ),
-    mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-    QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
-    if (!name)
-      setName("SMESHGUI_InitMeshDlg");
-
-    setCaption(tr("SMESH_INIT_MESH"));
-    setSizeGripEnabled(TRUE);
-    QGridLayout* SMESHGUI_InitMeshDlgLayout = new QGridLayout (this);
-    SMESHGUI_InitMeshDlgLayout->setSpacing(6);
-    SMESHGUI_InitMeshDlgLayout->setMargin(11);
-
-    /***************************************************************/
-    GroupC1 = new QGroupBox(tr("SMESH_ARGUMENTS"), this, "GroupC1");
-    GroupC1->setColumnLayout(0, Qt::Vertical);
-    GroupC1->layout()->setSpacing(0);
-    GroupC1->layout()->setMargin(0);
-    QGridLayout* GroupC1Layout = new QGridLayout(GroupC1->layout());
-    GroupC1Layout->setAlignment(Qt::AlignTop);
-    GroupC1Layout->setSpacing(6);
-    GroupC1Layout->setMargin(11);
-
-    TextLabel_NameMesh = new QLabel(tr("SMESH_NAME"), GroupC1, "TextLabel_NameMesh");
-    GroupC1Layout->addWidget(TextLabel_NameMesh, 0, 0);
-    LineEdit_NameMesh = new QLineEdit(GroupC1, "LineEdit_NameMesh");
-    GroupC1Layout->addWidget(LineEdit_NameMesh, 0, 2);
-
-    TextLabelC1A1 = new QLabel(tr("SMESH_OBJECT_GEOM"), GroupC1, "TextLabelC1A1");
-    GroupC1Layout->addWidget(TextLabelC1A1, 1, 0);
-    SelectButtonC1A1 = new QPushButton(GroupC1, "SelectButtonC1A1");
-    SelectButtonC1A1->setPixmap(image0);
-    SelectButtonC1A1->setToggleButton(FALSE);
-    GroupC1Layout->addWidget(SelectButtonC1A1, 1, 1);
-    LineEditC1A1 = new QLineEdit(GroupC1, "LineEditC1A1");
-    LineEditC1A1->setReadOnly(true);
-    GroupC1Layout->addWidget(LineEditC1A1, 1, 2);
-
-    TextLabelC1A1Hyp = new QLabel(tr("SMESH_OBJECT_HYPOTHESIS"), GroupC1, "TextLabelC1A1Hyp");
-    GroupC1Layout->addWidget(TextLabelC1A1Hyp, 2, 0);
-    SelectButtonC1A1Hyp = new QPushButton(GroupC1, "SelectButtonC1A1Hyp");
-    SelectButtonC1A1Hyp->setPixmap(image0);
-    GroupC1Layout->addWidget(SelectButtonC1A1Hyp, 2, 1);
-    LineEditC1A1Hyp = new QLineEdit(GroupC1, "LineEditC1A1Hyp");
-    LineEditC1A1Hyp->setReadOnly(true);
-    GroupC1Layout->addWidget(LineEditC1A1Hyp, 2, 2);
-
-    TextLabelC1A1Algo = new QLabel(tr("SMESH_OBJECT_ALGORITHM"), GroupC1, "TextLabelC1A1Algo");
-    GroupC1Layout->addWidget(TextLabelC1A1Algo, 3, 0);
-    SelectButtonC1A1Algo = new QPushButton(GroupC1, "SelectButtonC1A1Algo");
-    SelectButtonC1A1Algo->setPixmap(image0);
-    GroupC1Layout->addWidget(SelectButtonC1A1Algo, 3, 1);
-    LineEditC1A1Algo = new QLineEdit(GroupC1, "LineEditC1A1Algo");
-    LineEditC1A1Algo->setReadOnly(true);
-    GroupC1Layout->addWidget(LineEditC1A1Algo, 3, 2);
-
-    SMESHGUI_InitMeshDlgLayout->addWidget(GroupC1, 1, 0);
-
-    /***************************************************************/
-    GroupButtons = new QGroupBox(this, "GroupButtons");
-    GroupButtons->setColumnLayout(0, Qt::Vertical);
-    GroupButtons->layout()->setSpacing(0);
-    GroupButtons->layout()->setMargin(0);
-    QGridLayout* GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-    GroupButtonsLayout->setAlignment(Qt::AlignTop);
-    GroupButtonsLayout->setSpacing(6);
-    GroupButtonsLayout->setMargin(11);
-
-    buttonOk = new QPushButton(tr("SMESH_BUT_OK"), GroupButtons, "buttonOk");
-    buttonOk->setAutoDefault(TRUE);
-    buttonOk->setDefault(TRUE);
-    GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-
-    buttonApply = new QPushButton(tr("SMESH_BUT_APPLY"), GroupButtons, "buttonApply");
-    buttonApply->setAutoDefault(TRUE);
-    GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-
-    GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 2);
-
-    buttonCancel = new QPushButton(tr("SMESH_BUT_CLOSE"), GroupButtons, "buttonCancel");
-    buttonCancel->setAutoDefault(TRUE);
-    GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-
-    SMESHGUI_InitMeshDlgLayout->addWidget(GroupButtons, 2, 0);
-
-    /***************************************************************/
-    Init();
-}
-
-//=================================================================================
-// function : ~SMESHGUI_InitMeshDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_InitMeshDlg::~SMESHGUI_InitMeshDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void SMESHGUI_InitMeshDlg::Init ()
-{
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  //myGeomFilter       = new SALOME_TypeFilter("GEOM");
-  TColStd_MapOfInteger allTypesMap;
-  for (int i = 0; i < 10; i++)
-    allTypesMap.Add(i);
-  myGeomFilter       = new SMESH_NumberFilter ("GEOM", TopAbs_SHAPE, 0, allTypesMap);
-  myAlgorithmFilter  = new SMESH_TypeFilter (ALGORITHM);
-  myHypothesisFilter = new SMESH_TypeFilter (HYPOTHESIS);
-
-  /* signals and slots connections */
-  connect(buttonOk,     SIGNAL(clicked()), this, SLOT(ClickOnOk()));
-  connect(buttonApply,  SIGNAL(clicked()), this, SLOT(ClickOnApply()));
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-
-  connect(SelectButtonC1A1,     SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(SelectButtonC1A1Hyp,  SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(SelectButtonC1A1Algo, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
-
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()),      this, SLOT(SelectionIntoArgument()));
-  connect(mySMESHGUI,     SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySMESHGUI,     SIGNAL(SignalCloseAllDialogs()),        this, SLOT(ClickOnCancel()));
-
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show();
-
-  LineEdit_NameMesh->setText(GetDefaultMeshName());
-  LineEdit_NameMesh->setFocus();
-  myEditCurrentArgument = LineEditC1A1;
-  mySelectionMgr->clearFilters();
-  mySelectionMgr->installFilter(myGeomFilter);
-
-  SelectionIntoArgument();
-
-  UpdateControlState();
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  :
-//=================================================================================
-void SMESHGUI_InitMeshDlg::ClickOnOk()
-{
-  if (this->ClickOnApply())
-    this->ClickOnCancel();
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-bool SMESHGUI_InitMeshDlg::ClickOnApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return false;
-
-  QString myNameMesh = LineEdit_NameMesh->text().stripWhiteSpace();
-  if (myNameMesh.isEmpty()) {
-    SUIT_MessageBox::warn1(this, tr("SMESH_WRN_WARNING"),
-                           tr("SMESH_WRN_EMPTY_NAME"), tr("SMESH_BUT_OK"));
-    return false;
-  }
-
-  if (myGeomShape->_is_nil() || !HypoList.count() || !AlgoList.count())
-    return false;
-
-  SUIT_OverrideCursor wc;
-
-  SUIT_Operation* op =
-    new SUIT_Operation (SUIT_Session::session()->activeApplication());
-
-  // start transaction
-  op->start();
-
-  // create mesh
-  SMESH::SMESH_Mesh_var aMesh = SMESH::InitMesh(myGeomShape, myNameMesh);
-
-  if (!aMesh->_is_nil()) {
-    // assign hypotheses
-    for (int i = 0; i < HypoList.count(); i++) {
-      _PTR(SObject) aHypSOClient =
-        SMESH::GetActiveStudyDocument()->FindObjectID(HypoList[i].latin1());
-      if (aHypSOClient) {
-       CORBA::Object_var anObject = _CAST(SObject,aHypSOClient)->GetObject();
-       if (!CORBA::is_nil(anObject)) {
-         SMESH::SMESH_Hypothesis_var aHyp = SMESH::SMESH_Hypothesis::_narrow(anObject);
-         if (!aHyp->_is_nil()) {
-           if (!SMESH::AddHypothesisOnMesh(aMesh, aHyp)) {
-             // abort transaction
-//           op->abort();
-//           return false;
-           }
-         }
-       }
-      }
-    }
-    // assign algorithms
-    for (int i = 0; i < AlgoList.count(); i++) {
-      _PTR(SObject) aHypSOClient =
-        SMESH::GetActiveStudyDocument()->FindObjectID(AlgoList[i].latin1());
-      if (aHypSOClient) {
-       CORBA::Object_var anObject = _CAST(SObject,aHypSOClient)->GetObject();
-       if (!CORBA::is_nil(anObject)) {
-         SMESH::SMESH_Hypothesis_var aHyp = SMESH::SMESH_Hypothesis::_narrow(anObject);
-         if (!aHyp->_is_nil()) {
-           if (!SMESH::AddHypothesisOnMesh(aMesh, aHyp)) {
-             // abort transaction
-//           op->abort();
-//           return false;
-           }
-         }
-       }
-      }
-    }
-  }
-  // commit transaction
-  op->commit();
-  mySMESHGUI->updateObjBrowser();
-  LineEdit_NameMesh->setText(GetDefaultMeshName());
-  return true;
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_InitMeshDlg::ClickOnCancel()
-{
-  close();
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_InitMeshDlg::SelectionIntoArgument()
-{
-  QString aString = "";
-
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
-
-  int nbSel = SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
-
-  if (myEditCurrentArgument == LineEditC1A1) {
-    // geom shape
-    if (nbSel != 1) {
-      myGeomShape = GEOM::GEOM_Object::_nil();
-      aString = "";
-    } else {
-      Handle(SALOME_InteractiveObject) IO = aList.First();
-      myGeomShape = SMESH::IObjectToInterface<GEOM::GEOM_Object>(IO);
-      if (myGeomShape->_is_nil() || !GEOMBase::IsShape(myGeomShape)) {
-        myGeomShape = GEOM::GEOM_Object::_nil();
-        aString = "";
-      }
-    }
-  } else if (myEditCurrentArgument == LineEditC1A1Hyp) {
-    // hypotheses
-    HypoList.clear();
-    if (nbSel >= 1) {
-      SALOME_ListIteratorOfListIO Itinit (aList);
-      for (; Itinit.More(); Itinit.Next()) {
-       HypoList.append(Itinit.Value()->getEntry());
-      }
-      if (nbSel > 1)
-       aString = tr("%1 Hypothesis").arg(nbSel);
-    } else {
-      aString = "";
-    }
-  } else if (myEditCurrentArgument == LineEditC1A1Algo) {
-    // algorithms
-    AlgoList.clear();
-    if (nbSel >= 1) {
-      SALOME_ListIteratorOfListIO Itinit (aList);
-      for (; Itinit.More(); Itinit.Next()) {
-       AlgoList.append(Itinit.Value()->getEntry());
-      }
-      if (nbSel > 1)
-       aString = tr("%1 Algorithms").arg(nbSel);
-    } else {
-      aString = "";
-    }
-  } else {
-  }
-
-  myEditCurrentArgument->setText(aString);
-
-  UpdateControlState();
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose  :
-//=================================================================================
-void SMESHGUI_InitMeshDlg::SetEditCurrentArgument()
-{
-  QPushButton* send = (QPushButton*)sender();
-  if (send == SelectButtonC1A1) {
-    LineEditC1A1->setFocus();
-    myEditCurrentArgument = LineEditC1A1;
-    mySelectionMgr->clearFilters();
-    mySelectionMgr->installFilter(myGeomFilter);
-  } else if (send == SelectButtonC1A1Hyp) {
-    LineEditC1A1Hyp->setFocus();
-    myEditCurrentArgument = LineEditC1A1Hyp;
-    mySelectionMgr->clearFilters();
-    mySelectionMgr->installFilter(myHypothesisFilter);
-  } else if (send == SelectButtonC1A1Algo) {
-    LineEditC1A1Algo->setFocus();
-    myEditCurrentArgument = LineEditC1A1Algo;
-    mySelectionMgr->clearFilters();
-    mySelectionMgr->installFilter(myAlgorithmFilter);
-  }
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_InitMeshDlg::DeactivateActiveDialog()
-{
-  if (GroupC1->isEnabled()) {
-    disconnect(mySelectionMgr, 0, this, 0);
-    GroupC1->setEnabled(false);
-    GroupButtons->setEnabled(false);
-  }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_InitMeshDlg::ActivateThisDialog()
-{
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupC1->setEnabled(true);
-  GroupButtons->setEnabled(true);
-  connect (mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_InitMeshDlg::enterEvent (QEvent* e)
-{
-  if (!GroupC1->isEnabled())
-    ActivateThisDialog();
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_InitMeshDlg::closeEvent (QCloseEvent* e)
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySMESHGUI->ResetState();
-  mySelectionMgr->clearFilters();
-  QDialog::closeEvent(e);
-}
-
-//=================================================================================
-// function : UpdateControlState()
-// purpose  :
-//=================================================================================
-void SMESHGUI_InitMeshDlg::UpdateControlState()
-{
-  bool isEnabled = (!myGeomShape->_is_nil() && HypoList.count() && AlgoList.count());
-
-  buttonOk   ->setEnabled(isEnabled);
-  buttonApply->setEnabled(isEnabled);
-}
-
-//=================================================================================
-// function : GetDefaultMeshName()
-// purpose  : Generates default mesh name(Mesh_1, Mesh_2, etc.)
-//=================================================================================
-QString SMESHGUI_InitMeshDlg::GetDefaultMeshName()
-{
-  _PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
-  int aNumber = 0;
-  QString aMeshName;
-  _PTR(SObject) obj;
-
-  do {
-    aMeshName = QString(tr("SMESH_OBJECT_MESH")) + "_" + QString::number(++aNumber);
-    obj = aStudy->FindObject(aMeshName.latin1());
-  } while (obj);
-
-  return aMeshName;
-}
diff --git a/src/SMESHGUI/SMESHGUI_InitMeshDlg.h b/src/SMESHGUI/SMESHGUI_InitMeshDlg.h
deleted file mode 100644 (file)
index 1a6f4ed..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_InitMeshDlg.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef DIALOGBOX_INIT_MESH_H
-#define DIALOGBOX_INIT_MESH_H
-
-//#include "SMESH_TypeFilter.hxx"
-
-#include "SUIT_SelectionFilter.h"
-#include "SalomeApp_SelectionMgr.h"
-
-// QT Includes
-#include <qdialog.h>
-#include <qstringlist.h>
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-#include CORBA_SERVER_HEADER(SMESH_Gen)
-
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class SMESHGUI;
-
-//=================================================================================
-// class    : SMESHGUI_InitMeshDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_InitMeshDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_InitMeshDlg ( SMESHGUI*,
-                         const char* = 0,
-                         bool modal = FALSE,
-                         WFlags fl = 0 );
-    ~SMESHGUI_InitMeshDlg();
-
-protected:
-    void closeEvent( QCloseEvent* e ) ;
-    void enterEvent( QEvent * ) ;
-
-private:
-    void Init();
-
-    void UpdateControlState();
-    QString SMESHGUI_InitMeshDlg::GetDefaultMeshName();
-
-private:
-    SMESHGUI*                  mySMESHGUI;
-    SalomeApp_SelectionMgr*    mySelectionMgr;
-
-    GEOM::GEOM_Object_var      myGeomShape;
-    QLineEdit*                 myEditCurrentArgument; 
-
-    //Handle(SALOME_TypeFilter)  myGeomFilter;
-    SUIT_SelectionFilter*      myGeomFilter;
-    //SMESH_TypeFilter*          myHypothesisFilter;
-    //SMESH_TypeFilter*          myAlgorithmFilter;
-    SUIT_SelectionFilter*      myHypothesisFilter;
-    SUIT_SelectionFilter*      myAlgorithmFilter;
-
-    QStringList                HypoList;
-    QStringList                AlgoList;
-
-    QGroupBox*    GroupButtons;
-    QPushButton*  buttonOk;
-    QPushButton*  buttonCancel;
-    QPushButton*  buttonApply;
-
-    QGroupBox*    GroupC1;
-    QLabel*       TextLabel_NameMesh;
-    QLineEdit*    LineEdit_NameMesh;
-    QLabel*       TextLabelC1A1;
-    QPushButton*  SelectButtonC1A1;
-    QLineEdit*    LineEditC1A1;
-
-    QLabel*       TextLabelC1A1Hyp;
-    QPushButton*  SelectButtonC1A1Hyp;
-    QLineEdit*    LineEditC1A1Hyp;
-
-    QLabel*       TextLabelC1A1Algo;
-    QPushButton*  SelectButtonC1A1Algo;
-    QLineEdit*    LineEditC1A1Algo;
-
-private slots:
-    void ClickOnOk();
-    bool ClickOnApply();
-    void ClickOnCancel();
-    void SetEditCurrentArgument();
-    void SelectionIntoArgument();
-    void DeactivateActiveDialog();
-    void ActivateThisDialog();
-};
-
-#endif // DIALOGBOX_INIT_MESH_H
diff --git a/src/SMESHGUI/SMESHGUI_MergeNodesDlg.cxx b/src/SMESHGUI/SMESHGUI_MergeNodesDlg.cxx
deleted file mode 100644 (file)
index e297b63..0000000
+++ /dev/null
@@ -1,700 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_MergeNodesDlg.cxx
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header:
-
-#include "SMESHGUI_MergeNodesDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_IdValidator.h"
-#include "SMESHGUI_SpinBox.h"
-
-#include "SMESH_Actor.h"
-#include "SMESH_TypeFilter.hxx"
-#include "SMDS_Mesh.hxx"
-
-#include "GEOMBase.h"
-
-#include "SUIT_ResourceMgr.h"
-
-#include "SVTK_ViewModel.h"
-#include "SVTK_ViewWindow.h"
-#include "SVTK_Selector.h"
-#include "SVTK_Selection.h"
-#include "SALOME_ListIO.hxx"
-
-#include "utilities.h"
-
-// OCCT Includes
-#include <TColStd_MapOfInteger.hxx>
-
-// QT Includes
-#include <qapplication.h>
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qlistbox.h>
-#include <qlistview.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qcheckbox.h>
-#include <qlayout.h>
-#include <qpixmap.h>
-#include <qheader.h>
-
-using namespace std;
-
-//=================================================================================
-// class    : SMESHGUI_MergeNodesDlg()
-// purpose  :
-//=================================================================================
-SMESHGUI_MergeNodesDlg::SMESHGUI_MergeNodesDlg( SMESHGUI* theModule, const char* name,
-                                                bool modal, WFlags fl)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-                WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
-     mySMESHGUI( theModule ),
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-  QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SMESH_MERGE_NODES")));
-  QPixmap image1 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
-
-  if (!name)
-    setName("SMESHGUI_MergeNodesDlg");
-  resize(303, 185);
-  setCaption(tr("SMESH_MERGE_NODES"));
-  setSizeGripEnabled(TRUE);
-  SMESHGUI_MergeNodesDlgLayout = new QGridLayout(this);
-  SMESHGUI_MergeNodesDlgLayout->setSpacing(6);
-  SMESHGUI_MergeNodesDlgLayout->setMargin(11);
-
-  /***************************************************************/
-  GroupConstructors = new QButtonGroup(this, "GroupConstructors");
-  GroupConstructors->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)5,
-                                               (QSizePolicy::SizeType)0, 0, 0,
-                                               GroupConstructors->sizePolicy().hasHeightForWidth()));
-  GroupConstructors->setTitle(tr("SMESH_MERGE_NODES" ));
-  GroupConstructors->setExclusive(TRUE);
-  GroupConstructors->setColumnLayout(0, Qt::Vertical);
-  GroupConstructors->layout()->setSpacing(0);
-  GroupConstructors->layout()->setMargin(0);
-  GroupConstructorsLayout = new QGridLayout(GroupConstructors->layout());
-  GroupConstructorsLayout->setAlignment(Qt::AlignTop);
-  GroupConstructorsLayout->setSpacing(6);
-  GroupConstructorsLayout->setMargin(11);
-  QHBoxLayout* RBLayout = new QHBoxLayout(0, 0, 6, "Layout2");
-  RadioButton1= new QRadioButton(GroupConstructors, "RadioButton1");
-  RadioButton1->setText(tr("" ));
-  RadioButton1->setPixmap(image0);
-  RBLayout->addWidget(RadioButton1);
-  GroupConstructorsLayout->addLayout(RBLayout, 0, 0);
-  SMESHGUI_MergeNodesDlgLayout->addWidget(GroupConstructors, 0, 0);
-
-  /***************************************************************/
-  GroupButtons = new QGroupBox(this, "GroupButtons");
-  GroupButtons->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)7,
-                                          (QSizePolicy::SizeType)0, 0, 0,
-                                          GroupButtons->sizePolicy().hasHeightForWidth()));
-  GroupButtons->setGeometry(QRect(10, 10, 281, 48));
-  GroupButtons->setTitle(tr("" ));
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-  buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
-  buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
-  buttonCancel->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-  buttonApply = new QPushButton(GroupButtons, "buttonApply");
-  buttonApply->setText(tr("SMESH_BUT_APPLY" ));
-  buttonApply->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-  QSpacerItem* spacer_9 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupButtonsLayout->addItem(spacer_9, 0, 2);
-  buttonOk = new QPushButton(GroupButtons, "buttonOk");
-  buttonOk->setText(tr("SMESH_BUT_OK" ));
-  buttonOk->setAutoDefault(TRUE);
-  buttonOk->setDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-  SMESHGUI_MergeNodesDlgLayout->addWidget(GroupButtons, 4, 0);
-
-  /***************************************************************/
-
-  // Controls for mesh defining
-  GroupMesh = new QGroupBox(this, "GroupMesh");
-  GroupMesh->setTitle(tr("SMESH_MESH"));
-  GroupMesh->setColumnLayout(0, Qt::Vertical);
-  GroupMesh->layout()->setSpacing(0);
-  GroupMesh->layout()->setMargin(0);
-  GroupMeshLayout = new QGridLayout(GroupMesh->layout());
-  GroupMeshLayout->setAlignment(Qt::AlignTop);
-  GroupMeshLayout->setSpacing(6);
-  GroupMeshLayout->setMargin(11);
-
-  TextLabelName = new QLabel(GroupMesh, "TextLabelName");
-  TextLabelName->setText(tr("SMESH_NAME"));
-  GroupMeshLayout->addWidget(TextLabelName, 0, 0);
-
-  SelectMeshButton = new QPushButton(GroupMesh, "SelectMeshButton");
-  SelectMeshButton->setPixmap(image1);
-  GroupMeshLayout->addWidget(SelectMeshButton, 0, 1);
-
-  LineEditMesh = new QLineEdit(GroupMesh, "LineEditMesh");
-  LineEditMesh->setReadOnly(true);
-  GroupMeshLayout->addWidget(LineEditMesh, 0, 2);
-
-  SMESHGUI_MergeNodesDlgLayout->addWidget(GroupMesh, 1, 0);
-
-  // Controls for coincident nodes detecting
-  GroupCoincident = new QGroupBox(this, "GroupCoincident");
-  GroupCoincident->setTitle(tr("COINCIDENT_NODES"));
-  GroupCoincident->setColumnLayout(0, Qt::Vertical);
-  GroupCoincident->layout()->setSpacing(0);
-  GroupCoincident->layout()->setMargin(0);
-  QGridLayout* GroupCoincidentLayout = new QGridLayout(GroupCoincident->layout());
-  GroupCoincidentLayout->setAlignment(Qt::AlignTop);
-  GroupCoincidentLayout->setSpacing(6);
-  GroupCoincidentLayout->setMargin(11);
-
-  TextLabelTolerance = new QLabel(GroupCoincident, "TextLabelTolerance");
-  TextLabelTolerance->setText(tr("SMESH_TOLERANCE"));
-  GroupCoincidentLayout->addWidget(TextLabelTolerance, 0, 0);
-
-  SpinBoxTolerance = new SMESHGUI_SpinBox(GroupCoincident, "SpinBoxTolerance");
-  GroupCoincidentLayout->addWidget(SpinBoxTolerance, 0, 1);
-
-  QPushButton* DetectButton = new QPushButton(GroupCoincident, "DetectButton");
-  DetectButton->setText(tr("DETECT"));
-  GroupCoincidentLayout->addWidget(DetectButton, 0, 2);
-
-  ListCoincident = new QListView(GroupCoincident);
-  ListCoincident->setSorting(-1);
-  ListCoincident->addColumn("Nodes");
-  ListCoincident->header()->hide();
-
-  GroupCoincidentLayout->addMultiCellWidget(ListCoincident, 1, 1, 0, 1);
-
-  SelectAllCB = new QCheckBox(GroupCoincident, "SelectAllCB");
-  SelectAllCB->setText(tr("SELECT_ALL"));
-  GroupCoincidentLayout->addWidget(SelectAllCB, 2, 0);
-
-  SMESHGUI_MergeNodesDlgLayout->addWidget(GroupCoincident, 2, 0);
-
-  // Controls for editing group of nodes
-  GroupEdit = new QGroupBox(this, "GroupEdit");
-  GroupEdit->setTitle(tr("EDIT_GROUP_OF_NODES"));
-  GroupEdit->setColumnLayout(0, Qt::Vertical);
-  GroupEdit->layout()->setSpacing(0);
-  GroupEdit->layout()->setMargin(0);
-  QGridLayout* GroupEditLayout = new QGridLayout(GroupEdit->layout());
-  GroupEditLayout->setAlignment(Qt::AlignTop);
-  GroupEditLayout->setSpacing(6);
-  GroupEditLayout->setMargin(11);
-
-  ListEdit = new QListBox(GroupEdit, "ListEdit");
-  ListEdit->setColumnMode(QListBox::FitToHeight);
-  ListEdit->setSelectionMode(QListBox::Extended);
-  GroupEditLayout->addMultiCellWidget(ListEdit, 0, 2, 0, 0);
-
-  QPushButton* AddButton = new QPushButton(GroupEdit, "AddButton");
-  AddButton->setText(tr("SMESH_BUT_ADD"));
-  GroupEditLayout->addWidget(AddButton, 0, 1);
-
-  QPushButton* RemoveButton = new QPushButton(GroupEdit, "RemoveButton");
-  RemoveButton->setText(tr("SMESH_BUT_REMOVE"));
-  GroupEditLayout->addWidget(RemoveButton, 1, 1);
-
-  QSpacerItem* spacer = new QSpacerItem(20, 200, QSizePolicy::Minimum, QSizePolicy::Expanding);
-  GroupEditLayout->addItem(spacer, 2, 1);
-
-  SMESHGUI_MergeNodesDlgLayout->addWidget(GroupEdit, 3, 0);
-
-  /* Initialisations */
-  SpinBoxTolerance->RangeStepAndValidator(0.0, 999999.999, 0.1, 3);
-  SpinBoxTolerance->SetValue(1e-05);
-
-  RadioButton1->setChecked(TRUE);
-
-  myActor = 0;
-
-  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  myMeshOrSubMeshFilter = new SMESH_TypeFilter (MESHorSUBMESH);
-
-  /* signals and slots connections */
-  connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-  connect(buttonApply, SIGNAL(clicked()),  this, SLOT(ClickOnApply()));
-
-  connect(SelectMeshButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(DetectButton, SIGNAL (clicked()), this, SLOT(onDetect()));
-  connect(ListCoincident, SIGNAL (selectionChanged()), this, SLOT(onSelectNodesGroup()));
-  connect(ListCoincident, SIGNAL (pressed(QListViewItem*)), this, SLOT(updateControls()));
-  connect(ListCoincident, SIGNAL (currentChanged(QListViewItem*)), this, SLOT(updateControls()));
-  connect(SelectAllCB, SIGNAL(toggled(bool)), this, SLOT(onSelectAll(bool)));
-  connect(ListEdit, SIGNAL (selectionChanged()), this, SLOT(onSelectNodesFromGroup()));
-  connect(AddButton, SIGNAL (clicked()), this, SLOT(onAdd()));
-  connect(RemoveButton, SIGNAL (clicked()), this, SLOT(onRemove()));
-
-  connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-  /* to close dialog if study change */
-  connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
-
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show(); /* displays Dialog */
-
-  resize(0,0);
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-}
-
-//=================================================================================
-// function : ~SMESHGUI_MergeNodesDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_MergeNodesDlg::~SMESHGUI_MergeNodesDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-bool SMESHGUI_MergeNodesDlg::ClickOnApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked() || myMesh->_is_nil())
-    return false;
-
-  try {
-    SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
-
-    QApplication::setOverrideCursor(Qt::waitCursor);
-    SMESH::array_of_long_array_var aGroupsOfNodes = new SMESH::array_of_long_array;
-    aGroupsOfNodes->length(ListCoincident->childCount());
-    QListViewItem* item = ListCoincident->firstChild();
-
-    int anArrayNum = 0;
-    while (item) {
-      QStringList aListIds = QStringList("");
-      if (((QCheckListItem*) item)->isOn())
-        aListIds = QStringList::split(" ", item->text(0), false);
-
-      SMESH::long_array_var anIds = new SMESH::long_array;
-      anIds->length(aListIds.count());
-
-      for (int i = 0; i < aListIds.count(); i++)
-        anIds[i] = aListIds[i].toInt();
-
-      aGroupsOfNodes[anArrayNum++] = anIds.inout();
-
-      item = item->itemBelow();
-    }
-
-    aMeshEditor->MergeNodes (aGroupsOfNodes.inout());
-    QApplication::restoreOverrideCursor();
-  } catch(...) {
-  }
-
-  mySelectionMgr->clearSelected();
-  SMESH::UpdateView();
-
-  onDetect();
-  return true;
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MergeNodesDlg::ClickOnOk()
-{
-  if (ClickOnApply())
-    ClickOnCancel();
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MergeNodesDlg::ClickOnCancel()
-{
-  mySelectionMgr->clearFilters();
-  mySelectionMgr->clearSelected();
-  SMESH::SetPointRepresentation(false);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySMESHGUI->ResetState();
-  reject();
-}
-
-//=================================================================================
-// function : onEditNodesGroup()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MergeNodesDlg::onEditNodesGroup()
-{
-  if (ListCoincident->childCount() < 1)
-    return;
-
-  QString aNewIds = "";
-
-  QListBoxItem* anItem;
-  for (anItem = ListEdit->firstItem(); anItem != 0; anItem = anItem->next())
-    aNewIds+=QString(" %1").arg(anItem->text());
-
-  ListCoincident->currentItem()->setText(0, aNewIds);
-}
-
-//=================================================================================
-// function : updateControls()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MergeNodesDlg::updateControls()
-{
-  if (ListCoincident->childCount() < 1) {
-    SMESH::SetPointRepresentation(false);
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(ActorSelection);
-    return;
-  }
-
-  bool hasChecked = false, hasUnchecked = false;
-
-  QListViewItem* item = ListCoincident->firstChild();
-
-  while (item && (!hasChecked || !hasUnchecked)) {
-    if (((QCheckListItem*) item)->isOn())
-      hasChecked = true;
-    else
-      hasUnchecked = true;
-
-    item = item->itemBelow();
-  }
-
-  if (hasUnchecked)
-    SelectAllCB->setChecked(false);
-
-  bool enable = !(myMesh->_is_nil()) && hasChecked;
-
-  buttonOk->setEnabled(enable);
-  buttonApply->setEnabled(enable);
-}
-
-//=================================================================================
-// function : onDetect()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MergeNodesDlg::onDetect()
-{
-  if (myMesh->_is_nil())
-    return;
-
-  try {
-    SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
-
-    QApplication::setOverrideCursor(Qt::waitCursor);
-    ListCoincident->clear();
-    ListEdit->clear();
-
-    SMESH::array_of_long_array_var aNodeGroups;
-    aMeshEditor->FindCoincidentNodes(SpinBoxTolerance->GetValue(), aNodeGroups);
-
-    for (int i = 0; i < aNodeGroups->length(); i++) {
-      SMESH::long_array& aGroup = aNodeGroups[i];
-
-      QString aNodeIds;
-      for (int j = 0; j < aGroup.length(); j++)
-        aNodeIds+=QString(" %1").arg(aGroup[j]);
-
-      new QCheckListItem (ListCoincident, aNodeIds, QCheckListItem::CheckBox);
-    }
-    QApplication::restoreOverrideCursor();
-  } catch(...) {
-  }
-
-  updateControls();
-}
-
-//=================================================================================
-// function : onSelectNodesGroup()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MergeNodesDlg::onSelectNodesGroup()
-{
-  if (!myActor)
-    return;
-
-  myEditCurrentArgument = (QWidget*)ListCoincident;
-
-  QListViewItem* aSelectedItem = ListCoincident->selectedItem();
-  if (!aSelectedItem)
-    return;
-
-  QStringList aListId = QStringList::split(" ", aSelectedItem->text(0), false);
-
-  ListEdit->clear();
-  ListEdit->insertStringList(aListId);
-
-  //mySelectionMgr->clearSelected();
-  //mySelectionMgr->AddIObject(myActor->getIO());
-  SALOME_ListIO aList;
-  aList.Append(myActor->getIO());
-  mySelectionMgr->setSelectedObjects(aList, false);
-
-  SMESH::SetPointRepresentation(true);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(NodeSelection);
-
-  ListEdit->selectAll(true);
-}
-
-//=================================================================================
-// function : onSelectAll()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MergeNodesDlg::onSelectAll (bool isToggled)
-{
-  if (isToggled) {
-    int aNbItems = 0;
-    QListViewItem* item = ListCoincident->firstChild();
-    while (item) {
-      aNbItems++;
-      if (!((QCheckListItem*) item)->isOn())
-        ((QCheckListItem*) item)->setOn(true);
-      item = item->itemBelow();
-    }
-
-    if (aNbItems) {
-      buttonOk->setEnabled(true);
-      buttonApply->setEnabled(true);
-    }
-  }
-}
-
-//=================================================================================
-// function : onSelectNodesFromGroup()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MergeNodesDlg::onSelectNodesFromGroup()
-{
-  if (!myActor)
-    return;
-
-  TColStd_MapOfInteger aIndexes;
-  QListBoxItem* anItem;
-  for (anItem = ListEdit->firstItem(); anItem != 0; anItem = anItem->next()) {
-    if (anItem->isSelected()) {
-      int anId = anItem->text().toInt();
-      aIndexes.Add(anId);
-    }
-  }
-
-  mySelector->AddOrRemoveIndex(myActor->getIO(), aIndexes, false);
-  SALOME_ListIO aList;
-  aList.Append(myActor->getIO());
-  mySelectionMgr->setSelectedObjects(aList);
-}
-
-//=================================================================================
-// function : onAdd()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MergeNodesDlg::onAdd()
-{
-  if (!myActor)
-    return;
-
-  QString aListStr = "";
-  int aNbNnodes = 0;
-
-  aNbNnodes = SMESH::GetNameOfSelectedNodes(mySelector, myActor->getIO(), aListStr);
-  if (aNbNnodes < 1)
-    return;
-
-  QStringList aNodes = QStringList::split(" ", aListStr);
-  QListBoxItem* anItem = 0;
-
-  for (QStringList::iterator it = aNodes.begin(); it != aNodes.end(); ++it) {
-    anItem = ListEdit->findItem(*it, Qt::ExactMatch);
-    if (!anItem) {
-      anItem = new QListBoxText(*it);
-      ListEdit->insertItem(anItem);
-    }
-    ListEdit->setSelected(anItem, true);
-  }
-
-  onEditNodesGroup();
-}
-
-//=================================================================================
-// function : onRemove()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MergeNodesDlg::onRemove()
-{
-  if (myEditCurrentArgument != (QWidget*)ListCoincident)
-    return;
-
-  for (int i = ListEdit->count(); i > 0; i--) {
-    if (ListEdit->isSelected(i-1))
-      ListEdit->removeItem(i-1);
-  }
-  onEditNodesGroup();
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MergeNodesDlg::SetEditCurrentArgument()
-{
-  QPushButton* send = (QPushButton*)sender();
-
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySelectionMgr->clearSelected();
-  mySelectionMgr->clearFilters();
-
-  if (send == SelectMeshButton) {
-    myEditCurrentArgument = (QWidget*)LineEditMesh;
-    SMESH::SetPointRepresentation(false);
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(ActorSelection);
-    mySelectionMgr->installFilter(myMeshOrSubMeshFilter);
-  }
-
-  myEditCurrentArgument->setFocus();
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_MergeNodesDlg::SelectionIntoArgument()
-{
-  if (myEditCurrentArgument == (QWidget*)LineEditMesh) {
-    QString aString = "";
-    LineEditMesh->setText(aString);
-
-    ListCoincident->clear();
-    ListEdit->clear();
-
-    int nbSel = SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
-    if (nbSel != 1)
-      return;
-
-    SALOME_ListIO aList;
-    mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
-
-    Handle(SALOME_InteractiveObject) IO = aList.First();
-    myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO);
-    myActor = SMESH::FindActorByEntry(aList.First()->getEntry());
-    if (myMesh->_is_nil() || !myActor)
-      return;
-
-    LineEditMesh->setText(aString);
-  }
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MergeNodesDlg::DeactivateActiveDialog()
-{
-  if (GroupConstructors->isEnabled()) {
-    GroupConstructors->setEnabled(false);
-    GroupMesh->setEnabled(false);
-    GroupCoincident->setEnabled(false);
-    GroupEdit->setEnabled(false);
-    GroupButtons->setEnabled(false);
-    mySMESHGUI->ResetState();
-    mySMESHGUI->SetActiveDialogBox(0);
-  }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MergeNodesDlg::ActivateThisDialog()
-{
-  /* Emit a signal to deactivate the active dialog */
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupConstructors->setEnabled(true);
-  GroupMesh->setEnabled(true);
-  GroupCoincident->setEnabled(true);
-  GroupEdit->setEnabled(true);
-  GroupButtons->setEnabled(true);
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MergeNodesDlg::enterEvent (QEvent*)
-{
-  if (!GroupConstructors->isEnabled())
-    ActivateThisDialog();
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MergeNodesDlg::closeEvent (QCloseEvent*)
-{
-  /* same than click on cancel button */
-  ClickOnCancel();
-}
-
-//=======================================================================
-//function : hideEvent()
-//purpose  : caused by ESC key
-//=======================================================================
-void SMESHGUI_MergeNodesDlg::hideEvent (QHideEvent*)
-{
-  if (!isMinimized())
-    ClickOnCancel();
-}
diff --git a/src/SMESHGUI/SMESHGUI_MergeNodesDlg.h b/src/SMESHGUI/SMESHGUI_MergeNodesDlg.h
deleted file mode 100644 (file)
index 3eaf68a..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_MergeNodesDlg.h
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header: 
-
-#ifndef DIALOGBOX_MERGENODES_H
-#define DIALOGBOX_MERGENODES_H
-
-#include "SalomeApp_SelectionMgr.h"
-//#include "SMESH_TypeFilter.hxx"
-#include "SUIT_SelectionFilter.h"
-
-// QT Includes
-#include <qdialog.h>
-
-class QGridLayout; 
-class QButtonGroup;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-class QCheckBox;
-class QListView;
-class QListViewItem;
-class QListBox;
-class SMESHGUI;
-class SMESHGUI_SpinBox;
-class SMESH_Actor;
-class SVTK_ViewWindow;
-class SVTK_Selector;
-
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-
-//=================================================================================
-// class    : SMESHGUI_MergeNodesDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_MergeNodesDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_MergeNodesDlg( SMESHGUI*,
-                           const char* name = 0,
-                           bool modal = FALSE,
-                           WFlags fl = 0);
-    ~SMESHGUI_MergeNodesDlg();
-
-private:
-    void Init();
-    void closeEvent( QCloseEvent* e );
-    void enterEvent ( QEvent * );                           /* mouse enter the QWidget */
-    void hideEvent ( QHideEvent * );                        /* ESC key */
-    void onEditNodesGroup();
-
-    SMESHGUI*                     mySMESHGUI;               /* Current SMESHGUI object */
-    SalomeApp_SelectionMgr*       mySelectionMgr;           /* User shape selection */
-    SVTK_Selector*                mySelector;
-
-    QWidget*                      myEditCurrentArgument;
-
-    SMESH::SMESH_Mesh_var         myMesh;
-    SMESH_Actor*                  myActor;
-    //Handle(SMESH_TypeFilter)      myMeshOrSubMeshFilter;
-    SUIT_SelectionFilter*         myMeshOrSubMeshFilter;
-
-    QButtonGroup*     GroupConstructors;
-    QRadioButton*     RadioButton1;
-    QGroupBox*        GroupButtons;
-    QPushButton*      buttonOk;
-    QPushButton*      buttonCancel;
-    QPushButton*      buttonApply;
-    QGroupBox*        GroupMesh;
-    QGroupBox*        GroupCoincident;
-    QGroupBox*        GroupEdit;
-    QLabel*           TextLabelName;
-    QLabel*           TextLabelTolerance;
-    QLineEdit*        LineEditMesh;
-    QPushButton*      SelectMeshButton;
-    QPushButton*      DetectButton;
-    QPushButton*      AddButton;
-    QPushButton*      RemoveButton;
-    QCheckBox*        SelectAllCB;
-    QListView*        ListCoincident;
-    QListBox*         ListEdit;
-    SMESHGUI_SpinBox* SpinBoxTolerance;
-   
-private slots:
-
-    void ClickOnOk();
-    void ClickOnCancel();
-    bool ClickOnApply();
-    void updateControls();
-    void onDetect();
-    void onSelectNodesGroup();
-    void onSelectAll(bool isToggled);
-    void onSelectNodesFromGroup();
-    void onAdd();
-    void onRemove();
-    void SetEditCurrentArgument();
-    void SelectionIntoArgument() ;
-    void DeactivateActiveDialog() ;
-    void ActivateThisDialog() ;
-    
-protected:
-    QGridLayout* SMESHGUI_MergeNodesDlgLayout;
-    QGridLayout* GroupConstructorsLayout;
-    QGridLayout* GroupButtonsLayout;
-    QGridLayout* GroupMeshLayout;
-    QGridLayout* GroupCoincidentLayout;
-    QGridLayout* GroupEditLayout;
-};
-
-#endif // DIALOGBOX_MERGENODES_H
diff --git a/src/SMESHGUI/SMESHGUI_MeshDlg.cxx b/src/SMESHGUI/SMESHGUI_MeshDlg.cxx
deleted file mode 100644 (file)
index 8f427ff..0000000
+++ /dev/null
@@ -1,447 +0,0 @@
-/**
-*  SMESH SMESHGUI
-*
-*  Copyright (C) 2005  CEA/DEN, EDF R&D
-*
-*
-*
-*  File   : SMESHGUI_MeshDlg.cxx
-*  Author : Sergey LITONIN
-*  Module : SMESH
-*/
-
-#include "SMESHGUI_MeshDlg.h"
-
-#include <SUIT_Session.h>
-
-#include <qlayout.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qtabwidget.h>
-#include <qgroupbox.h>
-#include <qtoolbutton.h>
-#include <qiconset.h>
-#include <qstring.h>
-#include <qcombobox.h>
-#include <qpopupmenu.h>
-#include <qcursor.h>
-
-/*!
- * \brief Tab for tab widget containing controls for definition of 
- * algorithms and hypotheses
-*/ 
-
-//================================================================================
-/*!
- * \brief Constructor
-  * \param theParent - Parent widget for this tab
- * 
- * Makes tab's look and feel
- */
-//================================================================================ 
-SMESHGUI_MeshTab::SMESHGUI_MeshTab( QWidget* theParent )
-: QFrame( theParent ),
-  myPopup( 0 )
-{
-  SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr();
-  QIconSet aCreateIcon( aResMgr->loadPixmap( "SMESH", tr( "ICON_HYPO" ) ) );
-  QIconSet aEditIcon( aResMgr->loadPixmap( "SMESH", tr( "ICON_HYPO_EDIT" ) ) );
-  
-  // Algorifm
-  QLabel* anAlgoLbl = new QLabel( tr( "ALGORITHM" ), this );
-  myHyp[ Algo ] = new QComboBox( this );
-  
-  // Hypothesis
-  QLabel* aHypLbl = new QLabel( tr( "HYPOTHESIS" ), this );
-  myHyp[ MainHyp ] = new QComboBox( this );
-  myHyp[ MainHyp ]->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed );
-  myCreateHyp[ MainHyp ] = new QToolButton( this );
-  myCreateHyp[ MainHyp ]->setIconSet( aCreateIcon );
-  myEditHyp[ MainHyp ] = new QToolButton( this );
-  myEditHyp[ MainHyp ]->setIconSet( aEditIcon );
-  
-  // Line
-  QFrame* aLine = new QFrame( this );
-  aLine->setFrameStyle( QFrame::HLine | QFrame::Sunken );
-  
-  // Add. hypothesis
-  QLabel* anAddHypLbl = new QLabel( tr( "ADD_HYPOTHESIS" ), this );
-  myHyp[ AddHyp ] = new QComboBox( this );
-  myHyp[ AddHyp ]->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed );
-  myCreateHyp[ AddHyp ] = new QToolButton( this );
-  myCreateHyp[ AddHyp ]->setIconSet( aCreateIcon );
-  myEditHyp[ AddHyp ] = new QToolButton( this );
-  myEditHyp[ AddHyp ]->setIconSet( aEditIcon );
-  
-  // Fill layout
-  QGridLayout* aLay = new QGridLayout( this, 5, 4, 5, 5 );
-  aLay->addWidget( anAlgoLbl, 0, 0 );
-  aLay->addWidget( myHyp[ Algo ], 0, 1 );
-  aLay->addWidget( aHypLbl, 1, 0 );
-  aLay->addWidget( myHyp[ MainHyp ], 1, 1 );
-  aLay->addWidget( myCreateHyp[ MainHyp ], 1, 2 );
-  aLay->addWidget( myEditHyp[ MainHyp ], 1, 3 );
-  aLay->addMultiCellWidget( aLine, 2, 2, 0, 3 );
-  aLay->addWidget( anAddHypLbl, 3, 0 );
-  aLay->addWidget( myHyp[ AddHyp ], 3, 1 );
-  aLay->addWidget( myCreateHyp[ AddHyp ], 3, 2 );
-  aLay->addWidget( myEditHyp[ AddHyp ], 3, 3 );
-  aLay->addItem( new QSpacerItem( 0, 0, QSizePolicy::Fixed, QSizePolicy::Expanding ), 4, 0 );
-    
-  // Connect signals and slots
-  for ( int i = MainHyp; i <= AddHyp; i++ )
-  {
-    connect( myCreateHyp[ i ], SIGNAL( clicked() ), SLOT( onCreateHyp() ) );
-    connect( myEditHyp[ i ], SIGNAL( clicked() ), SLOT( onEditHyp() ) );
-    connect( myHyp[ i ], SIGNAL( activated( int ) ), SLOT( onHyp( int ) ) );
-  }
-  
-  // Initialize controls
-  
-  setAvailableHyps( Algo, QStringList() );
-  setAvailableHyps( MainHyp, QStringList() );
-  setAvailableHyps( AddHyp, QStringList() );
-}
-
-SMESHGUI_MeshTab::~SMESHGUI_MeshTab()
-{
-  if ( myPopup )
-    delete myPopup;
-}
-
-//================================================================================
-/*!
- * \brief Sets available hypothesis or algorithms
-  * \param theId - identifier of hypothesis (main or additional, see HypType enumeration)
-  * \param theHyps - list of available hypothesis names
- * 
- * Sets available main or additional hypothesis for this tab
- */
-//================================================================================
-void SMESHGUI_MeshTab::setAvailableHyps( const int theId, const QStringList& theHyps )
-{
-  myAvailableHyps[ theId ] = theHyps;
-  if ( theId == Algo )
-  {
-    myHyp[ Algo ]->clear();
-    myHyp[ Algo ]->insertItem( tr( "NONE" ) );
-    myHyp[ Algo ]->insertStringList( theHyps );
-    myHyp[ Algo ]->setCurrentItem( 0 );
-  }
-}
-
-//================================================================================
-/*!
- * \brief Sets existing hypothesis
-  * \param theId - identifier of hypothesis (main or additional, see HypType enumeration)
-  * \param theHyps - list of available hypothesis names
- * 
- * Sets existing main or additional hypothesis for this tab
- */
-//================================================================================
-void SMESHGUI_MeshTab::setExistingHyps( const int theId, const QStringList& theHyps )
-{
-  if ( theId != Algo )
-  {
-    myHyp[ theId ]->clear();
-    myHyp[ theId ]->insertItem( tr( "NONE" ) );
-    myHyp[ theId ]->insertStringList( theHyps );
-    myHyp[ theId ]->setCurrentItem( 0 );
-    myEditHyp[ theId ]->setEnabled( false );
-  }
-}
-
-//================================================================================
-/*!
- * \brief Adds hypothesis in combo box of available ones
-  * \param theId - identifier of hypothesis (main or additional, see HypType enumeration)
-  * \param theHyp - name of hypothesis to be added
- * 
- * Adds hypothesis in combo box of available ones. This method is called by operation
- * after creation of new hypothesis.
- */
-//================================================================================
-void SMESHGUI_MeshTab::addHyp( const int theId, const QString& theHyp )
-{
-  myHyp[ theId ]->insertItem( theHyp );
-  myHyp[ theId ]->setCurrentItem( myHyp[ theId ]->count() - 1 );
-  myEditHyp[ theId ]->setEnabled( true );
-}
-
-//================================================================================
-/*!
- * \brief Renames hypothesis
-  * \param theId - identifier of hypothesis (main or additional, see HypType enumeration)
-  * \param theIndex - index of hypothesis to be renamed
-  * \param theNewName - new name of hypothesis to be renamed
- * 
- * Renames hypothesis
- */
-//================================================================================
-void SMESHGUI_MeshTab::renameHyp( const int theId, 
-                                  const int theIndex, 
-                                  const QString& theNewName )
-{
-  if ( theIndex > 0 && theIndex < myHyp[ theId ]->count() )
-    myHyp[ theId ]->changeItem( theNewName, theIndex );
-}                                  
-
-//================================================================================
-/*!
- * \brief Sets current hypothesis 
-  * \param theId - identifier of hypothesis (main or additional, see HypType enumeration)
-  * \param theIndex - index of hypothesis to be set as current
- * 
- * Sets current hypothesis 
- */
-//================================================================================
-void SMESHGUI_MeshTab::setCurrentHyp( const int theId, const int theIndex )
-{
-  if ( theIndex >= 0 && theIndex < myHyp[ theId ]->count() )
-  {
-    myHyp[ theId ]->setCurrentItem( theIndex );
-    if ( myEditHyp[ theId ] )
-      myEditHyp[ theId ]->setEnabled( theIndex > 0 );
-  }
-}
-
-//================================================================================
-/*!
- * \brief Gets current hypothesis
-  * \param theId - identifier of hypothesis (main or additional, see HypType enumeration)
-  * \retval int - index of current hypothesis
- * 
- * Gets current hypothesis
- */
-//================================================================================
-int SMESHGUI_MeshTab::currentHyp( const int theId ) const
-{
-  return myHyp[ theId ]->currentItem();
-}
-
-//================================================================================
-/*!
- * \brief Emits createHyp( const int ) signal
- * 
- * SLOT called when "Create hypothesis" button clicked specifies sender and emits
- * createHyp( const int ) signal
- */
-//================================================================================
-void SMESHGUI_MeshTab::onCreateHyp()
-{
-  const QObject* aSender = sender();
-    
-  if ( !myPopup )
-  {
-    myPopup = new QPopupMenu( 0 );
-    connect( myPopup, SIGNAL( activated( int ) ), SLOT( onPopupItem( int ) ) );
-  }
-  
-  QStringList aHypNames;
-  if ( aSender == myCreateHyp[ MainHyp ] )
-  {
-    aHypNames = myAvailableHyps[ MainHyp ];
-    myPopup->setName( "MainHypPopup" );
-  }
-  else
-  {
-    aHypNames = myAvailableHyps[ AddHyp ];
-    myPopup->setName( "AddHypPopup" );
-  }
-  myPopup->clear();
-  for ( int i = 0, n = aHypNames.count(); i < n; i++ )
-    myPopup->insertItem( aHypNames[ i ], i );
-
-  myPopup->exec( QCursor::pos() );
-}
-
-//================================================================================
-/*!
- * \brief Emits editHyp( const int ) signal
- * 
- * SLOT called when "Edit hypothesis" button clicked specifies sender and emits
- * editHyp( const int ) signal
- */
-//================================================================================
-void SMESHGUI_MeshTab::onEditHyp()
-{
-  const QObject* aSender = sender();
-  int aHypType = aSender == myEditHyp[ MainHyp ] ? MainHyp : AddHyp;
-  emit editHyp( aHypType, myHyp[ aHypType ]->currentItem() );
-}
-
-//================================================================================
-/*!
- * \brief Updates "Edit hypothesis" button state
- * 
- * SLOT called when current hypothesis changed disables "Edit hypothesis" button
- * if current hypothesis is <None>, enables otherwise
- */
-//================================================================================
-void SMESHGUI_MeshTab::onHyp( int theIndex )
-{
-  const QObject* aSender = sender();
-  int anIndex = aSender == myHyp[ MainHyp ] ? MainHyp : AddHyp;
-  myEditHyp[ anIndex ]->setEnabled( theIndex > 0 );
-}
-
-//================================================================================
-/*!
- * \brief Emits createHyp signal
- * 
- * SLOT called when item of popup for hypothesis creation is activated. Emits 
- * createHyp signal to notify operation obout this event
- */
-//================================================================================
-void SMESHGUI_MeshTab::onPopupItem( int theId )
-{
-  const QObject* aSender = sender();
-  if ( aSender )
-    emit createHyp( strcmp( aSender->name(),  "MainHypPopup" ) == 0 ? MainHyp : AddHyp, theId );
-}
-
-//================================================================================
-/*!
- * \brief Resets all tab fields
- *
- * Resets all tab fields
- */
-//================================================================================  
-void SMESHGUI_MeshTab::reset()
-{
-  for ( int i = Algo; i <= AddHyp; i++ )
-  {
-    myHyp[ i ]->setCurrentItem( 0 );
-    if ( myEditHyp[ i ] )
-      myEditHyp[ i ]->setEnabled( false );
-  }
-}
-
-/*!
- * \brief Dialog for mech creation or editing
- *
- *  This dialog is used for mech creation or editing. 
-*/
-
-//================================================================================
-/*!
- * \brief Constructor
-  * \param theToCreate - if this parameter is true then dialog is used for creation,
-  * for editing otherwise
-  * \param theIsMesh - if this parameter is true then dialog is used for mesh,
-  * for sub-mesh otherwise
- * 
- * Makes dialog's look and feel
- */
-//================================================================================
-SMESHGUI_MeshDlg::SMESHGUI_MeshDlg( const bool theToCreate, const bool theIsMesh )
-: SMESHGUI_Dialog( 0, false, true )
-{
-  // Create top controls
-  
-  QGroupBox* aGrp = new QGroupBox( 3, Qt::Horizontal, mainFrame() );
-  aGrp->setFrameStyle( QFrame::NoFrame );
-  aGrp->setInsideMargin( 0 );
-  // name 
-  createObject( tr( "NAME" ), aGrp, Obj );
-  setNameIndication( Obj, OneName );
-  setReadOnly( Obj, false );
-  // mesh
-  createObject( tr( "MESH" ), aGrp, Mesh );
-  // geometry
-  createObject( tr( "GEOMETRY" ), aGrp, Geom );
-  
-  // Create tab widget
-  
-  myTabWg = new QTabWidget( mainFrame() );
-  myTabs[ Dim1D ] = new SMESHGUI_MeshTab( myTabWg );
-  myTabs[ Dim2D ] = new SMESHGUI_MeshTab( myTabWg );
-  myTabs[ Dim3D ] = new SMESHGUI_MeshTab( myTabWg );
-  myTabWg->addTab( myTabs[ Dim1D ], tr( "DIM_1D" ) );
-  myTabWg->addTab( myTabs[ Dim2D ], tr( "DIM_2D" ) );
-  myTabWg->addTab( myTabs[ Dim3D ], tr( "DIM_3D" ) );
-  
-  // Fill layout
-  
-  QVBoxLayout* aLay = new QVBoxLayout( mainFrame(), 0, 5 );
-  aLay->addWidget( aGrp );
-  aLay->addItem( new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum) );
-  aLay->addWidget( myTabWg );
-  
-  // Disable controls if necessary
-  setObjectShown( Mesh, false );
-  if ( theToCreate )
-  {
-    setCaption( tr( "CREATE_MESH" ) );
-    objectWg( Obj, Btn )->hide();
-    if ( theIsMesh )
-      setCaption( tr( "CREATE_MESH" ) );
-    else
-    {
-      setCaption( tr( "CREATE_SUBMESH" ) );
-      setObjectShown( Mesh, true );
-    }
-  }
-  else
-  {
-    setCaption( tr( "EDIT_MESH_SUBMESH" ) );
-    objectWg( Mesh, Btn )->hide();
-    objectWg( Geom, Btn )->hide();
-  }
-}
-
-SMESHGUI_MeshDlg::~SMESHGUI_MeshDlg()
-{
-}
-
-//================================================================================
-/*!
- * \brief Gets tab with given id
-  * \param theId - Tab identifier. Possible values are in "Dimensions" enumeration
-  * \retval SMESHGUI_MeshTab* - pointer to the tab or null if given parameter is 
-  * invalid
- * 
- * Gets tab containing controls for definition of algorithms and AddHypotheses
- */
-//================================================================================
-SMESHGUI_MeshTab* SMESHGUI_MeshDlg::tab( const int theId ) const
-{
-  return ( theId >= Dim1D && theId <= Dim3D ? myTabs[ theId ] : 0 );
-}
-
-//================================================================================
-/*!
- * \brief Resets all dialog fields
- */
-//================================================================================  
-void SMESHGUI_MeshDlg::reset()
-{
-  clearSelection();
-  myTabs[ Dim1D ]->reset();
-  myTabs[ Dim2D ]->reset();
-  myTabs[ Dim3D ]->reset();
-}
-
-//================================================================================
-/*!
- * \brief Sets curent tab
- */
-//================================================================================    
-void SMESHGUI_MeshDlg::setCurrentTab( const int theId  )
-{
-  myTabWg->setCurrentPage( theId );
-}
-  
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/SMESHGUI/SMESHGUI_MeshDlg.h b/src/SMESHGUI/SMESHGUI_MeshDlg.h
deleted file mode 100644 (file)
index 47fb33a..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
-*  SMESH SMESHGUI
-*
-*  Copyright (C) 2005  CEA/DEN, EDF R&D
-*
-*
-*
-*  File   : SMESHGUI_MeshDlg.h
-*  Author : Sergey LITONIN
-*  Module : SMESH
-*/
-
-
-#ifndef SMESHGUI_MeshDlg_H
-#define SMESHGUI_MeshDlg_H
-
-#include "SMESHGUI_Dialog.h"
-#include <qframe.h>
-#include <qstringlist.h>
-#include <qmap.h>
-
-class SMESHGUI_MeshTab;
-class QTabWidget;
-class QLineEdit;
-class QComboBox;
-class QToolButton;
-class QString;
-class QPopupMenu;
-
-/*!
- * \brief Dialog for mech creation or editing
- *
- *  This dialog is used for mech creation or editing. 
-*/
-class SMESHGUI_MeshDlg : public SMESHGUI_Dialog
-{ 
-  Q_OBJECT       
-      
-public:
-  
-  enum Controls { Obj, Mesh, Geom };
-  
-  /*! Describes dimensions */
-  enum Dimensions { Dim1D = 0, Dim2D, Dim3D };      
-  
-public:
-  SMESHGUI_MeshDlg( const bool theToCreate, const bool theIsMesh );
-  virtual ~SMESHGUI_MeshDlg();
-  
-  SMESHGUI_MeshTab*            tab( const int ) const;
-  void                         reset();
-  void                         setCurrentTab( const int );
-
-private:
-  
-  QMap< int, SMESHGUI_MeshTab* > myTabs;
-  QTabWidget*                    myTabWg;
-};
-
-/*!
- * \brief Tab for tab widget containing controls for definition of 
- * algorithms and hypotheses
-*/ 
-
-class SMESHGUI_MeshTab : public QFrame
-{
-  Q_OBJECT
-      
-public:      
-  /*! To differ main algorithms, hypotheses and additional ones*/
-  enum HypType
-  { 
-    Algo = 0, //!< algorithms
-    MainHyp,  //!< main hypothesis
-    AddHyp    //!< additional hypothesis
-  };            
-      
-public:      
-  SMESHGUI_MeshTab( QWidget* );
-  virtual ~SMESHGUI_MeshTab();
-  
-  void                         setAvailableHyps( const int, const QStringList& );
-  void                         setExistingHyps( const int, const QStringList& );
-  void                         addHyp( const int, const QString& );
-  void                         renameHyp( const int, const int, const QString& );
-  void                         setCurrentHyp( const int, const int );
-  int                          currentHyp( const int ) const;
-  void                         reset();
-
-signals:  
-
-  void                         createHyp( const int theHypType, const int theIndex );
-  //!< Emited when "Create hypothesis" button clicked
-  void                         editHyp( const int theHypType, const int theIndex );
-  //!< Emited when "Edit hypothesis" button clicked
-  
-private slots:  
-
-  void                         onCreateHyp();  
-  void                         onEditHyp();
-  void                         onHyp( int );
-  void                         onPopupItem( int );
-  
-private:  
-  
-  QMap< int, QComboBox* >      myHyp;
-  QMap< int, QToolButton* >    myCreateHyp;
-  QMap< int, QToolButton* >    myEditHyp;
-  
-  QMap< int, QStringList >     myAvailableHyps;
-  QMap< int, QStringList >     myExistingHyps;
-  
-  QPopupMenu*                  myPopup;
-};
-
-#endif
-
-
-
-
diff --git a/src/SMESHGUI/SMESHGUI_MeshInfosDlg.cxx b/src/SMESHGUI/SMESHGUI_MeshInfosDlg.cxx
deleted file mode 100644 (file)
index 3584bae..0000000
+++ /dev/null
@@ -1,530 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_MeshInfosDlg.cxx
-//  Author : Nicolas BARBEROU
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_MeshInfosDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_ResourceMgr.h"
-#include "SUIT_OverrideCursor.h"
-
-#include "SalomeApp_SelectionMgr.h"
-#include "SALOMEDSClient_Study.hxx"
-#include "SALOME_ListIO.hxx"
-
-#include "utilities.h"
-
-// QT Includes
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qframe.h>
-#include <qwidgetstack.h>
-#include <qlayout.h>
-#include <qmap.h>
-#include <qpushbutton.h>
-
-// IDL Headers
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-#include CORBA_SERVER_HEADER(SMESH_Group)
-
-using namespace std;
-
-#define COLONIZE(str)   (QString(str).contains(":") > 0 ? QString(str) : QString(str) + " :" )
-
-//=================================================================================
-// function : SMESHGUI_MeshInfosDlg()
-// purpose  : Constructor
-//=================================================================================
-SMESHGUI_MeshInfosDlg::SMESHGUI_MeshInfosDlg (SMESHGUI* theModule, 
-                                             const char* name, 
-                                             bool modal, 
-                                             WFlags fl): 
-  QDialog(SMESH::GetDesktop(theModule), 
-         name, 
-         modal, 
-         WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose),
-  mySelectionMgr(SMESH::GetSelectionMgr(theModule)),
-  mySMESHGUI(theModule)
-{
-  if (!name)
-      setName("SMESHGUI_MeshInfosDlg");
-  setCaption(tr("SMESH_MESHINFO_TITLE"));
-  setSizeGripEnabled(TRUE);
-
-  myStartSelection = true;
-  myIsActiveWindow = true;
-
-  QVBoxLayout* aTopLayout = new QVBoxLayout(this);
-  aTopLayout->setSpacing(6);  aTopLayout->setMargin(11);
-
-  // select button & label
-  QPixmap image0(SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH",tr("ICON_SELECT")));
-  mySelectBtn = new QPushButton(this, "mySelectBtn");
-  mySelectBtn->setPixmap(image0);
-  mySelectBtn->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
-
-  mySelectLab = new QLabel(this, "mySelectLab");
-  mySelectLab->setAlignment(AlignCenter);
-  QFont fnt = mySelectLab->font(); fnt.setBold(true);
-  mySelectLab->setFont(fnt);
-
-  QHBoxLayout* aSelectLayout = new QHBoxLayout;
-  aSelectLayout->setMargin(0); aSelectLayout->setSpacing(0);
-  aSelectLayout->addWidget(mySelectBtn);
-  aSelectLayout->addWidget(mySelectLab);
-
-  // top widget stack
-  myWGStack = new QWidgetStack(this);
-
-  // no valid selection
-  QWidget* myBadWidget = new QWidget(myWGStack);
-  QVBoxLayout* aBadLayout = new QVBoxLayout(myBadWidget);
-  QLabel* myBadLab = new QLabel(tr("SMESH_BAD_SELECTION"), myBadWidget, "myBadLab");
-  myBadLab->setAlignment(Qt::AlignCenter);
-  myBadLab->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
-  aBadLayout->addWidget(myBadLab);
-  myWGStack->addWidget(myBadWidget, 0);
-
-  // mesh
-  myMeshWidget = new QWidget(myWGStack);
-  QGridLayout* aMeshLayout = new QGridLayout(myMeshWidget);
-  aMeshLayout->setSpacing(6);  aMeshLayout->setMargin(0);
-  myWGStack->addWidget(myMeshWidget);
-
-  // --> name
-  QLabel* myMeshNameLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_NAME")), myMeshWidget, "myMeshNameLab");
-  myMeshName    = new QLabel(myMeshWidget, "myMeshName");
-  myMeshName->setMinimumWidth(100);
-  QFrame* line1 = new QFrame(myMeshWidget);
-  line1->setFrameStyle(QFrame::HLine | QFrame::Sunken);
-
-  // --> nodes
-  QLabel* myMeshNbNodesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_NODES")), myMeshWidget, "myMeshNbNodesLab");
-  myMeshNbNodes    = new QLabel(myMeshWidget, "myMeshNbNodes");
-  myMeshNbNodes->setMinimumWidth(100);
-
-  // --> edges
-  QLabel* myMeshNbEdgesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_EDGES")), myMeshWidget, "myMeshNbEdgesLab");
-  myMeshNbEdges    = new QLabel(myMeshWidget, "myMeshNbEdges");
-  myMeshNbEdges->setMinimumWidth(100);
-
-  // --> faces
-  myMeshFacesGroup = new QGroupBox(tr("SMESH_MESHINFO_FACES"), myMeshWidget, "myMeshFacesGroup");
-  myMeshFacesGroup->setColumnLayout(0, Qt::Vertical);
-  myMeshFacesGroup->layout()->setSpacing(0);  myMeshFacesGroup->layout()->setMargin(0);
-  QGridLayout* myMeshFacesGroupLayout = new QGridLayout(myMeshFacesGroup->layout());
-  myMeshFacesGroupLayout->setAlignment(Qt::AlignTop);
-  myMeshFacesGroupLayout->setSpacing(6);  myMeshFacesGroupLayout->setMargin(11);
-
-  // --> faces --> total
-  QLabel* myMeshNbFacesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_TOTAL")), myMeshFacesGroup, "myMeshNbFacesLab");
-  myMeshNbFacesLab->setFont(fnt);
-  myMeshNbFaces    = new QLabel(myMeshFacesGroup, "myMeshNbFaces");
-  myMeshNbFaces->setMinimumWidth(100);
-  myMeshNbFaces->setFont(fnt);
-
-  // --> faces --> triangles
-  QLabel* myMeshNbTrianglesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_TRIANGLES")), myMeshFacesGroup, "myMeshNbTrianglesLab");
-  myMeshNbTriangles    = new QLabel(myMeshFacesGroup, "myMeshNbTriangles");
-  myMeshNbTriangles->setMinimumWidth(100);
-
-  // --> faces --> quadrangles
-  QLabel* myMeshNbQuadranglesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_QUADRANGLES")), myMeshFacesGroup, "myMeshNbQuadranglesLab");
-  myMeshNbQuadrangles    = new QLabel(myMeshFacesGroup, "myMeshNbQuadrangles");
-  myMeshNbQuadrangles->setMinimumWidth(100);
-
-  // --> faces --> polygons
-  QLabel* myMeshNbPolygonesLab = new QLabel( COLONIZE( tr( "SMESH_MESHINFO_POLYGONES" ) ), myMeshFacesGroup, "myMeshNbPolygonesLab" );
-  myMeshNbPolygones      = new QLabel( myMeshFacesGroup, "myMeshNbPolygones" );
-  myMeshNbPolygones->setMinimumWidth( 100 );
-
-  myMeshFacesGroupLayout->addWidget(myMeshNbFacesLab,       0, 0);
-  myMeshFacesGroupLayout->addWidget(myMeshNbFaces,          0, 1);
-  myMeshFacesGroupLayout->addWidget(myMeshNbTrianglesLab,   1, 0);
-  myMeshFacesGroupLayout->addWidget(myMeshNbTriangles,      1, 1);
-  myMeshFacesGroupLayout->addWidget(myMeshNbQuadranglesLab, 2, 0);
-  myMeshFacesGroupLayout->addWidget(myMeshNbQuadrangles,    2, 1);
-  myMeshFacesGroupLayout->addWidget( myMeshNbPolygonesLab,   3, 0 );
-  myMeshFacesGroupLayout->addWidget( myMeshNbPolygones,      3, 1 );
-  
-  // --> volumes
-  myMeshVolumesGroup = new QGroupBox(tr("SMESH_MESHINFO_VOLUMES"), myMeshWidget, "myMeshVolumesGroup");
-  myMeshVolumesGroup->setColumnLayout(0, Qt::Vertical);
-  myMeshVolumesGroup->layout()->setSpacing(0);  myMeshVolumesGroup->layout()->setMargin(0);
-  QGridLayout* myMeshVolumesGroupLayout = new QGridLayout(myMeshVolumesGroup->layout());
-  myMeshVolumesGroupLayout->setAlignment(Qt::AlignTop);
-  myMeshVolumesGroupLayout->setSpacing(6);  myMeshVolumesGroupLayout->setMargin(11);
-
-  // --> volumes --> total
-  QLabel* myMeshNbVolumesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_TOTAL")), myMeshVolumesGroup, "myMeshNbVolumesLab");
-  myMeshNbVolumesLab->setFont(fnt);
-  myMeshNbVolumes    = new QLabel(myMeshVolumesGroup, "myMeshNbVolumes");
-  myMeshNbVolumes->setMinimumWidth(100);
-  myMeshNbVolumes->setFont(fnt);
-
-  // --> volumes --> tetrahedrons
-  QLabel* myMeshNbTetraLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_TETRAS")), myMeshVolumesGroup, "myMeshNbTetraLab");
-  myMeshNbTetra    = new QLabel(myMeshVolumesGroup, "myMeshNbTetra");
-  myMeshNbTetra->setMinimumWidth(100);
-
-  // --> volumes --> hexahedrons
-  QLabel* myMeshNbHexaLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_HEXAS")), myMeshVolumesGroup, "myMeshNbHexaLab");
-  myMeshNbHexa    = new QLabel(myMeshVolumesGroup, "myMeshNbHexa");
-  myMeshNbHexaLab->setMinimumWidth(100);
-
-  // --> volumes --> prisms
-  QLabel* myMeshNbPrismLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_PRISMS")), myMeshVolumesGroup, "myMeshNbPrismLab");
-  myMeshNbPrism    = new QLabel(myMeshVolumesGroup, "myMeshNbPrism");
-  myMeshNbPrism->setMinimumWidth(100);
-
-  // --> volumes --> pyramids
-  QLabel* myMeshNbPyraLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_PYRAS")), myMeshVolumesGroup, "myMeshNbPyraLab");
-  myMeshNbPyra    = new QLabel(myMeshVolumesGroup, "myMeshNbPyra");
-  myMeshNbPyra->setMinimumWidth(100);
-
-  // --> volumes --> polyherones
-  QLabel* myMeshNbPolyhedronesLab = new QLabel( COLONIZE( tr( "SMESH_MESHINFO_POLYEDRES" ) ), myMeshVolumesGroup, "myMeshNbPolyhedronLab" );
-  myMeshNbPolyhedrones = new QLabel( myMeshVolumesGroup, "myMeshNbPolyhedrones" );
-  myMeshNbPolyhedrones->setMinimumWidth( 100 );
-
-  myMeshVolumesGroupLayout->addWidget(myMeshNbVolumesLab, 0, 0);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbVolumes,    0, 1);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbTetraLab,   1, 0);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbTetra,      1, 1);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbHexaLab,    2, 0);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbHexa,       2, 1);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbPrismLab,   3, 0);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbPrism,      3, 1);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbPyraLab,    4, 0);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbPyra,       4, 1);
-  myMeshVolumesGroupLayout->addWidget( myMeshNbPolyhedronesLab,    5, 0 );
-  myMeshVolumesGroupLayout->addWidget( myMeshNbPolyhedrones,       5, 1 );
-
-  aMeshLayout->addWidget(myMeshNameLab,          0, 0);
-  aMeshLayout->addWidget(myMeshName,             0, 1);
-  aMeshLayout->addMultiCellWidget(line1,   1, 1, 0, 1);
-  aMeshLayout->addWidget(myMeshNbNodesLab,       2, 0);
-  aMeshLayout->addWidget(myMeshNbNodes,          2, 1);
-  aMeshLayout->addWidget(myMeshNbEdgesLab,       3, 0);
-  aMeshLayout->addWidget(myMeshNbEdges,          3, 1);
-  aMeshLayout->addMultiCellWidget(myMeshFacesGroup,   4, 4, 0, 1);
-  aMeshLayout->addMultiCellWidget(myMeshVolumesGroup, 5, 5, 0, 1);
-  aMeshLayout->addItem(new QSpacerItem(5, 5, QSizePolicy::Minimum, QSizePolicy::Expanding), 6, 0);
-
-  // submesh
-  mySubMeshWidget = new QWidget(myWGStack);
-  QGridLayout* aSubMeshLayout = new QGridLayout(mySubMeshWidget);
-  aSubMeshLayout->setSpacing(6);  aSubMeshLayout->setMargin(0);
-  myWGStack->addWidget(mySubMeshWidget);
-
-  // --> name
-  QLabel* mySubMeshNameLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_NAME")), mySubMeshWidget, "mySubMeshNameLab");
-  mySubMeshName    = new QLabel(mySubMeshWidget, "mySubMeshName");
-  mySubMeshName->setMinimumWidth(100);
-  QFrame* line2 = new QFrame(mySubMeshWidget);
-  line2->setFrameStyle(QFrame::HLine | QFrame::Sunken);
-
-  // --> nodes
-  QLabel* mySubMeshNbNodesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_NODES")), mySubMeshWidget, "mySubMeshNbNodesLab");
-  mySubMeshNbNodes    = new QLabel(mySubMeshWidget, "mySubMeshNbNodes");
-  mySubMeshNbNodes->setMinimumWidth(100);
-
-  // --> elements
-  mySubMeshElementsGroup = new QGroupBox(tr("SMESH_MESHINFO_ELEMENTS"), mySubMeshWidget, "mySubMeshElementsGroup");
-  mySubMeshElementsGroup->setColumnLayout(0, Qt::Vertical);
-  mySubMeshElementsGroup->layout()->setSpacing(0);  mySubMeshElementsGroup->layout()->setMargin(0);
-  QGridLayout* mySubMeshElementsGroupLayout = new QGridLayout(mySubMeshElementsGroup->layout());
-  mySubMeshElementsGroupLayout->setAlignment(Qt::AlignTop);
-  mySubMeshElementsGroupLayout->setSpacing(6);  mySubMeshElementsGroupLayout->setMargin(11);
-
-  // --> elements --> total
-  QLabel* mySubMeshNbElementsLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_TOTAL")), mySubMeshElementsGroup, "mySubMeshNbElementsLab");
-  mySubMeshNbElementsLab->setFont(fnt);
-  mySubMeshNbElements    = new QLabel(mySubMeshElementsGroup, "mySubMeshNbElements");
-  mySubMeshNbElements->setMinimumWidth(100);
-  mySubMeshNbElements->setFont(fnt);
-
-  // --> elements --> edges
-  QLabel* mySubMeshNbEdgesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_EDGES")), mySubMeshElementsGroup, "mySubMeshNbEdgesLab");
-  mySubMeshNbEdges    = new QLabel(mySubMeshElementsGroup, "mySubMeshNbEdges");
-  mySubMeshNbEdges->setMinimumWidth(100);
-
-  // --> elements --> faces
-  QLabel* mySubMeshNbFacesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_FACES")), mySubMeshElementsGroup, "mySubMeshNbFacesLab");
-  mySubMeshNbFaces    = new QLabel(mySubMeshElementsGroup, "mySubMeshNbFaces");
-  mySubMeshNbFaces->setMinimumWidth(100);
-
-  // --> elements --> volumes
-  QLabel* mySubMeshNbVolumesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_VOLUMES")), mySubMeshElementsGroup, "mySubMeshNbVolumesLab");
-  mySubMeshNbVolumes    = new QLabel(mySubMeshElementsGroup, "mySubMeshNbVolumes");
-  mySubMeshNbVolumes->setMinimumWidth(100);
-
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNbElementsLab, 0, 0);
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNbElements,    0, 1);
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNbEdgesLab,    1, 0);
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNbEdges,       1, 1);
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNbFacesLab,    2, 0);
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNbFaces,       2, 1);
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNbVolumesLab,  3, 0);
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNbVolumes,     3, 1);
-
-  aSubMeshLayout->addWidget(mySubMeshNameLab,          0, 0);
-  aSubMeshLayout->addWidget(mySubMeshName,             0, 1);
-  aSubMeshLayout->addMultiCellWidget(line2,      1, 1, 0, 1);
-  aSubMeshLayout->addWidget(mySubMeshNbNodesLab,       2, 0);
-  aSubMeshLayout->addWidget(mySubMeshNbNodes,          2, 1);
-  aSubMeshLayout->addMultiCellWidget(mySubMeshElementsGroup, 3, 3, 0, 1);
-  aSubMeshLayout->addItem(new QSpacerItem(5, 5, QSizePolicy::Minimum, QSizePolicy::Expanding), 4, 0);
-
-  // group
-  myGroupWidget = new QWidget(myWGStack);
-  QGridLayout* myGroupWidgetLayout = new QGridLayout(myGroupWidget);
-  myGroupWidgetLayout->setSpacing(6);  myGroupWidgetLayout->setMargin(0);
-  myWGStack->addWidget(myGroupWidget);
-
-  // --> name
-  QLabel* myGroupNameLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_NAME")), myGroupWidget, "myGroupNameLab");
-  myGroupName = new QLabel(myGroupWidget, "myGroupName");
-  myGroupName->setMinimumWidth(100);
-  QFrame* line3 = new QFrame(myGroupWidget);
-  line3->setFrameStyle(QFrame::HLine | QFrame::Sunken);
-
-  // --> type
-  QLabel* myGroupTypeLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_TYPE")), myGroupWidget, "myGroupTypeLab");
-  myGroupType = new QLabel(myGroupWidget, "myGroupType");
-  myGroupType->setMinimumWidth(100);
-
-  // --> number of entities
-  QLabel* myGroupNbLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_ENTITIES")), myGroupWidget, "myGroupNbLab");
-  myGroupNb = new QLabel(myGroupWidget, "myGroupNb");
-  myGroupNb->setMinimumWidth(100);
-
-  myGroupWidgetLayout->addWidget(myGroupNameLab,       0, 0);
-  myGroupWidgetLayout->addWidget(myGroupName,          0, 1);
-  myGroupWidgetLayout->addMultiCellWidget(line3, 1, 1, 0, 1);
-  myGroupWidgetLayout->addWidget(myGroupTypeLab,       2, 0);
-  myGroupWidgetLayout->addWidget(myGroupType,          2, 1);
-  myGroupWidgetLayout->addWidget(myGroupNbLab,         3, 0);
-  myGroupWidgetLayout->addWidget(myGroupNb,            3, 1);
-  myGroupWidgetLayout->addItem(new QSpacerItem(5, 5, QSizePolicy::Minimum, QSizePolicy::Expanding), 4, 0);
-
-  // buttons
-  myButtonsGroup = new QGroupBox(this, "myButtonsGroup");
-  myButtonsGroup->setColumnLayout(0, Qt::Vertical);
-  myButtonsGroup->layout()->setSpacing(0);  myButtonsGroup->layout()->setMargin(0);
-  QHBoxLayout* myButtonsGroupLayout = new QHBoxLayout(myButtonsGroup->layout());
-  myButtonsGroupLayout->setAlignment(Qt::AlignTop);
-  myButtonsGroupLayout->setSpacing(6); myButtonsGroupLayout->setMargin(11);
-
-  // buttons --> OK button
-  myOkBtn = new QPushButton(tr("SMESH_BUT_OK" ), myButtonsGroup, "myOkBtn");
-  myOkBtn->setAutoDefault(TRUE); myOkBtn->setDefault(TRUE);
-  myButtonsGroupLayout->addStretch();
-  myButtonsGroupLayout->addWidget(myOkBtn);
-  myButtonsGroupLayout->addStretch();
-
-  aTopLayout->addLayout(aSelectLayout);
-  aTopLayout->addWidget(myWGStack);
-  aTopLayout->addWidget(myButtonsGroup);
-
-  mySMESHGUI->SetActiveDialogBox(this);
-
-  // connect signals
-  connect(myOkBtn,                 SIGNAL(clicked()),                      this, SLOT(close()));
-  connect(mySelectBtn,             SIGNAL(clicked()),                      this, SLOT(onStartSelection()));
-  connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()),        this, SLOT(close()));
-  connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySelectionMgr,          SIGNAL(currentSelectionChanged()),      this, SLOT(onSelectionChanged()));
-
-  // resize and move dialog, then show
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show();
-
-  // init dialog with current selection
-  onSelectionChanged();
-}
-
-//=================================================================================
-// function : ~SMESHGUI_MeshInfosDlg()
-// purpose  : Destructor
-//=================================================================================
-SMESHGUI_MeshInfosDlg::~SMESHGUI_MeshInfosDlg()
-{
-}
-
-//=================================================================================
-// function : DumpMeshInfos()
-// purpose  : 
-//=================================================================================
-void SMESHGUI_MeshInfosDlg::DumpMeshInfos()
-{
-  SUIT_OverrideCursor wc;
-
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList);
-
-  int nbSel = aList.Extent();
-  if (nbSel == 1) {
-    myStartSelection = false;
-    mySelectLab->setText("");
-    Handle(SALOME_InteractiveObject) IObject = aList.First();
-    _PTR(SObject) aSO = SMESH::GetActiveStudyDocument()->FindObjectID(IObject->getEntry());
-    if (aSO) {
-      //CORBA::Object_var anObject = aSO->GetObject();
-      CORBA::Object_var anObject = SMESH::SObjectToObject(aSO);
-      if (!CORBA::is_nil(anObject)) {
-       SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow(anObject);
-       if (!aMesh->_is_nil()) {
-         myWGStack->raiseWidget(myMeshWidget);
-         setCaption(tr("SMESH_MESHINFO_TITLE") + " [" + tr("SMESH_OBJECT_MESH") + "]");
-         myMeshName->setText(aSO->GetName().c_str());
-         myMeshNbNodes->setNum((int)aMesh->NbNodes());
-         myMeshNbEdges->setNum((int)aMesh->NbEdges());
-         myMeshNbFaces->setNum((int)aMesh->NbFaces());
-         myMeshNbTriangles->setNum((int)aMesh->NbTriangles());
-         myMeshNbQuadrangles->setNum((int)aMesh->NbQuadrangles());
-         myMeshNbPolygones->setNum( (int)aMesh->NbPolygons() );
-         myMeshNbVolumes->setNum((int)aMesh->NbVolumes());
-         myMeshNbTetra->setNum((int)aMesh->NbTetras());
-         myMeshNbHexa->setNum((int)aMesh->NbHexas());
-         myMeshNbPrism->setNum((int)aMesh->NbPrisms());
-         myMeshNbPyra->setNum((int)aMesh->NbPyramids());
-         myMeshNbPolyhedrones->setNum( (int)aMesh->NbPolyhedrons() );
-         return;
-       }
-       SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow(anObject);
-       if (!aSubMesh->_is_nil()) {
-         myWGStack->raiseWidget(mySubMeshWidget);
-         setCaption(tr("SMESH_MESHINFO_TITLE") + " [" + tr("SMESH_SUBMESH") + "]");
-         mySubMeshName->setText(aSO->GetName().c_str());
-         mySubMeshNbNodes->setNum((int)aSubMesh->GetNumberOfNodes(true));
-         mySubMeshNbElements->setNum((int)aSubMesh->GetNumberOfElements());
-         mySubMeshNbEdges->setNum((int)(aSubMesh->GetElementsByType(SMESH::EDGE)->length()));
-         mySubMeshNbFaces->setNum((int)(aSubMesh->GetElementsByType(SMESH::FACE)->length()));
-         mySubMeshNbVolumes->setNum((int)(aSubMesh->GetElementsByType(SMESH::VOLUME)->length()));
-         return;
-       }
-       SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(anObject);
-       if (!aGroup->_is_nil()) {
-         myWGStack->raiseWidget(myGroupWidget);
-         setCaption(tr("SMESH_MESHINFO_TITLE") + " [" + tr("SMESH_GROUP") + "]");
-         myGroupName->setText(aSO->GetName().c_str());
-         int aType = aGroup->GetType();
-         QString strType;
-         switch (aType) {
-         case SMESH::NODE:
-           strType = "SMESH_MESHINFO_NODES"; break;
-         case SMESH::EDGE:
-           strType = "SMESH_MESHINFO_EDGES"; break;
-         case SMESH::FACE:
-           strType = "SMESH_MESHINFO_FACES"; break;
-         case SMESH::VOLUME:
-           strType = "SMESH_MESHINFO_VOLUMES"; break;
-         default:
-           strType = "SMESH_MESHINFO_ALL_TYPES"; break;
-         }
-
-         myGroupType->setText(tr(strType));
-         myGroupNb->setNum((int)aGroup->Size());
-         return;
-       }
-      }
-    }
-  }
-  myWGStack->raiseWidget(0);
-  setCaption(tr("SMESH_MESHINFO_TITLE"));
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection has changed
-//=================================================================================
-void SMESHGUI_MeshInfosDlg::onSelectionChanged()
-{
-  if (myStartSelection)
-    DumpMeshInfos();
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MeshInfosDlg::closeEvent (QCloseEvent* e)
-{
-  mySMESHGUI->ResetState();
-  QDialog::closeEvent(e);
-}
-
-//=================================================================================
-// function : windowActivationChange()
-// purpose  : called when window is activated/deactivated
-//=================================================================================
-void SMESHGUI_MeshInfosDlg::windowActivationChange (bool oldActive)
-{
-  QDialog::windowActivationChange(oldActive);
-  if (isActiveWindow() && myIsActiveWindow != isActiveWindow())
-    ActivateThisDialog();
-  myIsActiveWindow = isActiveWindow();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MeshInfosDlg::DeactivateActiveDialog()
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_MeshInfosDlg::ActivateThisDialog()
-{
-  /* Emit a signal to deactivate any active dialog */
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(onSelectionChanged()));
-}
-
-//=================================================================================
-// function : onStartSelection()
-// purpose  : starts selection
-//=================================================================================
-void SMESHGUI_MeshInfosDlg::onStartSelection()
-{
-  myStartSelection = true;
-  onSelectionChanged();
-  myStartSelection = true;
-  mySelectLab->setText(tr("INF_SELECT_OBJECT"));
-}
diff --git a/src/SMESHGUI/SMESHGUI_MeshInfosDlg.h b/src/SMESHGUI/SMESHGUI_MeshInfosDlg.h
deleted file mode 100644 (file)
index 49db8c1..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_MeshInfosDlg.h
-//  Author : Nicolas BARBEROU
-//  Module : SMESH
-//  $Header$
-
-#ifndef SMESHGUI_MESHINFOSDLG_H
-#define SMESHGUI_MESHINFOSDLG_H
-
-// QT Includes
-#include <qdialog.h>
-
-class QGroupBox;
-class QLabel;
-class QPushButton;
-class QWidgetStack;
-
-class SalomeApp_SelectionMgr;
-class SMESHGUI;
-
-class SMESHGUI_MeshInfosDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_MeshInfosDlg( SMESHGUI* theModule, 
-                          const char* name = 0, 
-                          bool modal = FALSE, 
-                          WFlags fl = 0 );
-    ~SMESHGUI_MeshInfosDlg();
-
-protected:
-    void closeEvent( QCloseEvent* e );
-    void windowActivationChange( bool oldActive );
-    void DumpMeshInfos();
-
-private slots:
-    void onSelectionChanged();
-    void DeactivateActiveDialog() ;
-    void ActivateThisDialog();
-    void onStartSelection();
-
-private:
-    SMESHGUI*               mySMESHGUI;
-    SalomeApp_SelectionMgr* mySelectionMgr; 
-    bool                    myStartSelection;
-    bool                    myIsActiveWindow;
-
-    QPushButton*  mySelectBtn;
-    QLabel*       mySelectLab;
-
-    QWidgetStack* myWGStack;
-
-    QWidget*      myMeshWidget;
-    QLabel*       myMeshName;
-    QLabel*       myMeshNbNodes;
-    QLabel*       myMeshNbEdges;
-    QGroupBox*    myMeshFacesGroup;
-    QLabel*       myMeshNbFaces;
-    QLabel*       myMeshNbTriangles;
-    QLabel*       myMeshNbQuadrangles;
-    QLabel*       myMeshNbPolygones;
-    QGroupBox*    myMeshVolumesGroup;
-    QLabel*       myMeshNbVolumes;
-    QLabel*       myMeshNbTetra;
-    QLabel*       myMeshNbHexa;
-    QLabel*       myMeshNbPyra;
-    QLabel*       myMeshNbPrism;
-    QLabel*       myMeshNbPolyhedrones;
-
-    QWidget*      mySubMeshWidget;
-    QLabel*       mySubMeshName;
-    QLabel*       mySubMeshNbNodes;
-    QGroupBox*    mySubMeshElementsGroup;
-    QLabel*       mySubMeshNbElements;
-    QLabel*       mySubMeshNbEdges;
-    QLabel*       mySubMeshNbFaces;
-    QLabel*       mySubMeshNbVolumes;
-
-    QWidget*      myGroupWidget;
-    QLabel*       myGroupName;
-    QLabel*       myGroupType;
-    QLabel*       myGroupNb;
-
-    QGroupBox*   myButtonsGroup;
-    QPushButton* myOkBtn;
-};
-
-#endif // SMESHGUI_MESHINFOSDLG_H
diff --git a/src/SMESHGUI/SMESHGUI_MeshOp.cxx b/src/SMESHGUI/SMESHGUI_MeshOp.cxx
deleted file mode 100644 (file)
index 4882a72..0000000
+++ /dev/null
@@ -1,999 +0,0 @@
-/**
-*  SMESH SMESHGUI
-*
-*  Copyright (C) 2005  CEA/DEN, EDF R&D
-*
-*
-*
-*  File   : SMESHGUI_MeshOp.h
-*  Author : Sergey LITONIN
-*  Module : SMESHGUI
-*/
-
-#include "SMESHGUI_MeshOp.h"
-#include "SMESHGUI_MeshDlg.h"
-#include "SMESH_TypeFilter.hxx"
-#include "SMESHGUI.h"
-
-#include "SMESHGUI_HypothesesUtils.h"
-#include "SMESHGUI_Hypotheses.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_GEOMGenUtils.h"
-
-#include <SMESH_TypeFilter.hxx>
-#include <SMESH_NumberFilter.hxx>
-
-#include <GEOM_SelectionFilter.h>
-
-#include <SalomeApp_Tools.h>
-#include <SALOMEDSClient_Study.hxx>
-#include <SALOMEDSClient_AttributeIOR.hxx>
-#include <SALOMEDSClient_AttributeName.hxx>
-#include <SALOMEDS_SComponent.hxx>
-
-#include <SalomeApp_SelectionMgr.h>
-#include <SalomeApp_UpdateFlags.h>
-#include <SUIT_MessageBox.h>
-#include <SUIT_Desktop.h>
-#include <SUIT_OverrideCursor.h>
-
-#include <utilities.h>
-
-#include <qstringlist.h>
-#include <qlineedit.h>
-
-#include <SALOMEDS_SObject.hxx>
-
-#define DEB_SLN
-
-//================================================================================
-/*!
- * \brief Constructor
-  * \param theToCreate - if this parameter is true then operation is used for creation,
-  * for editing otherwise
- * 
- * Initialize operation
-*/
-//================================================================================ 
-SMESHGUI_MeshOp::SMESHGUI_MeshOp( const bool theToCreate, const bool theIsMesh )
-: SMESHGUI_SelectionOp(),
-  myToCreate( theToCreate ),
-  myIsMesh( theIsMesh ),
-  myDlg( 0 )
-{
-}
-
-//================================================================================
-/*!
- * \brief Destructor
-*/
-//================================================================================ 
-SMESHGUI_MeshOp::~SMESHGUI_MeshOp()
-{
-  if( myDlg )
-    delete myDlg;
-}
-
-//================================================================================
-/*!
- * \brief Gets dialog of this operation
-  * \retval SalomeApp_Dialog* - pointer to dialog of this operation
-*/
-//================================================================================ 
-SalomeApp_Dialog* SMESHGUI_MeshOp::dlg() const
-{
-  return myDlg;
-}
-
-//================================================================================
-/*!
- * \brief Creates or edits mesh
-  * \retval bool - TRUE if operation is performed successfully, FALSE otherwise
- * 
- * Virtual slot redefined from the base class called when "Apply" button is clicked
- * creates or edits mesh
- */
-//================================================================================
-bool SMESHGUI_MeshOp::onApply()
-{
-  if( isStudyLocked() )
-    return false;
-  
-  QString aMess;
-  if ( !isValid( aMess ) )
-  {
-    if ( aMess != "" )
-      SUIT_MessageBox::warn1( myDlg, 
-        tr( "SMESH_WRN_WARNING" ), aMess, tr( "SMESH_BUT_OK" ) );
-    return false;
-  }
-  
-  bool aResult = false;
-  aMess = "";
-  try
-  {
-    if ( myToCreate && myIsMesh )
-      aResult = createMesh( aMess );
-    if ( myToCreate && !myIsMesh )
-      aResult = createSubMesh( aMess );
-    else if ( !myToCreate )
-      aResult = editMeshOrSubMesh( aMess );
-    if ( aResult )  
-      update( UF_ObjBrowser | UF_Model );
-  }
-  catch ( const SALOME::SALOME_Exception& S_ex ) 
-  {
-    SalomeApp_Tools::QtCatchCorbaException( S_ex );
-    aResult = false;
-  }
-  catch ( ... )
-  {
-    aResult = false;
-  }
-
-  if ( aResult )  
-  {
-    if ( myToCreate )
-      setDefaultName();
-  }
-  else
-  {
-    if ( aMess == "" )
-      aMess = tr( "SMESH_OPERATION_FAILED" );
-    SUIT_MessageBox::warn1( myDlg, 
-      tr( "SMESH_ERROR" ), aMess, tr( "SMESH_BUT_OK" ) );
-  }
-  
-  return aResult;
-} 
-
-//================================================================================
-/*!
- * \brief Creates dialog if necessary and shows it
- * 
- * Virtual method redefined from base class called when operation is started creates 
- * dialog if necessary and shows it, activates selection
- */
-//================================================================================
-void SMESHGUI_MeshOp::startOperation()
-{
-  if( !myDlg )
-  {
-    myDlg = new SMESHGUI_MeshDlg( myToCreate, myIsMesh );
-    for ( int i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++ )
-    {
-      connect( myDlg->tab( i ), SIGNAL( createHyp( const int, const int ) ), 
-              this, SLOT( onCreateHyp( const int, const int) ) );
-      connect( myDlg->tab( i ), SIGNAL( editHyp( const int, const int ) ), 
-              this, SLOT( onEditHyp( const int, const int) ) );
-    }
-  }
-  SMESHGUI_SelectionOp::startOperation();
-
-  // iterate through dimensions and get available and existing algoritms and hypotheses, 
-  // set them to the dialog
-  int i, j;
-  _PTR(SComponent) aFather = SMESH::GetActiveStudyDocument()->FindComponent( "SMESH" );
-  for ( i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++ )
-  {
-    SMESHGUI_MeshTab* aTab = myDlg->tab( i );
-    QStringList anAvailable, anExisting;
-    for ( j = Algo; j <= AddHyp; j++ )
-    {
-      availableHyps( i, j, anAvailable );
-      existingHyps( i, j, aFather, anExisting, myExistingHyps[ i ][ j ] );
-     
-      aTab->setAvailableHyps( j, anAvailable );
-      aTab->setExistingHyps( j, anExisting );
-    }
-  }
-  if ( myToCreate )
-  {
-    setDefaultName();
-    myDlg->activateObject( myIsMesh ? SMESHGUI_MeshDlg::Geom : SMESHGUI_MeshDlg::Mesh );
-  }
-  else
-    myDlg->activateObject( SMESHGUI_MeshDlg::Obj );
-  
-  selectionDone();
-  
-  myDlg->setCurrentTab( SMESH::DIM_1D );
-  myDlg->show();
-}
-
-//================================================================================
-/*!
- * \brief Creates selection filter
-  * \param theId - identifier of current selection widget
-  * \retval SUIT_SelectionFilter* - pointer to the created filter or null
- * 
- * Creates selection filter in accordance with identifier of current selection widget
- */
-//================================================================================
-SUIT_SelectionFilter* SMESHGUI_MeshOp::createFilter( const int theId ) const
-{
-  if ( theId == SMESHGUI_MeshDlg::Geom )
-  {
-//     TColStd_MapOfInteger allTypesMap;
-//     for ( int i = 0; i < 10; i++ )
-//       allTypesMap.Add( i );
-//     return new SMESH_NumberFilter( "GEOM", TopAbs_SHAPE, 0, allTypesMap );
-    return new GEOM_SelectionFilter( (SalomeApp_Study*)study(), true );
-  }
-  else if ( theId == SMESHGUI_MeshDlg::Obj && !myToCreate )
-    return new SMESH_TypeFilter( MESHorSUBMESH );
-  else if ( theId == SMESHGUI_MeshDlg::Mesh )
-    return new SMESH_TypeFilter( MESH );
-  else
-    return 0;
-}
-
-//================================================================================
-/*!
- * \brief Updates dialog's look and feel
- * 
- * Virtual method redefined from the base class updates dialog's look and feel
- */
-//================================================================================
-void SMESHGUI_MeshOp::selectionDone()
-{
-  SMESHGUI_SelectionOp::selectionDone();
-  
-  if ( !myToCreate )
-  {
-    try
-    {
-      QString anObjEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Obj );
-      _PTR(SObject) pObj = studyDS()->FindObjectID( anObjEntry );
-      if ( pObj != 0 )
-      {
-        SMESH::SMESH_subMesh_var aVar = 
-          SMESH::SMESH_subMesh::_narrow( _CAST( SObject,pObj )->GetObject() );
-        myDlg->setObjectShown( SMESHGUI_MeshDlg::Mesh, !aVar->_is_nil() );
-        myDlg->objectWg( SMESHGUI_MeshDlg::Mesh, SMESHGUI_MeshDlg::Btn )->hide();
-        myDlg->updateGeometry();
-        myDlg->adjustSize();
-        readMesh();
-      }
-      else
-        myDlg->reset();
-    }
-    catch ( const SALOME::SALOME_Exception& S_ex ) 
-    {
-      SalomeApp_Tools::QtCatchCorbaException( S_ex );
-    }
-    catch ( ... )
-    {
-    }
-  }
-}
-
-//================================================================================
-/*!
- * \brief Verifies validity of input data
-  * \param theMess - Output parameter intended for returning error message
-  * \retval bool  - TRUE if input data is valid, false otherwise
- * 
- * Verifies validity of input data. This method is called when "Apply" or "OK" button
- * is pressed before mesh creation or editing.
- */
-//================================================================================
-bool SMESHGUI_MeshOp::isValid( QString& theMess ) const
-{
-  // Selected object to be  edited
-  if ( !myToCreate && myDlg->selectedObject( SMESHGUI_MeshDlg::Obj ) == "" )
-  {
-    theMess = tr( "THERE_IS_NO_OBJECT_FOR_EDITING" );
-    return false;
-  }
-  
-  // Name 
-  QString aMeshName = myDlg->objectText( SMESHGUI_MeshDlg::Obj );
-  aMeshName = aMeshName.stripWhiteSpace();
-  if ( aMeshName == "" )
-  {
-    theMess = myIsMesh ? tr( "NAME_OF_MESH_IS_EMPTY" ) : tr( "NAME_OF_SUBMESH_IS_EMPTY" );
-    return false;
-  }
-  
-  // Geom
-  if ( myToCreate )
-  {
-    QString aGeomEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Geom );
-    if ( aGeomEntry == "" )
-    {
-      theMess = tr( "GEOMETRY_OBJECT_IS_NOT_DEFINED" );
-      return false;
-    }
-    _PTR(SObject) pGeom = studyDS()->FindObjectID( aGeomEntry );
-    if ( !pGeom || GEOM::GEOM_Object::_narrow( _CAST( SObject,pGeom )->GetObject() )->_is_nil() )
-    {
-      theMess = tr( "GEOMETRY_OBJECT_IS_NULL" );
-      return false;
-    }
-    
-    // Mesh
-    if ( !myIsMesh ) // i.e sub-mesh creation, 
-    {
-      QString aMeshEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Mesh );
-      if ( aMeshEntry == "" )
-      {
-        theMess = tr( "MESH_IS_NOT_DEFINED" );
-        return false;
-      }
-      _PTR(SObject) pMesh = studyDS()->FindObjectID( aMeshEntry );
-      if ( !pMesh || SMESH::SMESH_Mesh::_narrow( _CAST( SObject,pMesh )->GetObject() )->_is_nil() )
-      {
-        theMess = tr( "MESH_IS_NULL" );
-        return false;
-      }
-    }
-  }
-  return true;
-}
-
-//================================================================================
-/*!
- * \brief Gets available hypotheses or algorithms
-  * \param theDim - specifies dimension of returned hypotheses/algorifms 
-  * \param theHypType - specifies whether algorims or hypotheses or additional ones 
-  * are retrieved (possible values are in HypType enumeration)
-  * \param theHyps - Output list of hypotheses' names
- * 
- * Gets available hypotheses or algorithm in accordance with input parameters
- */
-//================================================================================
-void SMESHGUI_MeshOp::availableHyps( const int theDim,
-                                     const int theHypType,
-                                     QStringList& theHyps ) const
-{
-  theHyps.clear();
-  QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses( 
-    theHypType == Algo , theDim, theHypType == AddHyp );
-  QStringList::const_iterator anIter;
-  for ( anIter = aHypTypeNameList.begin(); anIter != aHypTypeNameList.end(); ++anIter )
-  {
-    HypothesisData* aData = SMESH::GetHypothesisData( *anIter );
-    theHyps.append( aData->Label );
-  }
-}
-
-//================================================================================
-/*!
- * \brief Gets existing hypotheses or algorithms
-  * \param theDim - specifies dimension of returned hypotheses/algorifms 
-  * \param theHypType - specifies whether algorims or hypotheses or additional ones 
-  * are retrieved (possible values are in HypType enumeration)
-  * \param theFather - start object for finding ( may be component, mesh, or sub-mesh )
-  * \param theHyps - output list of names. 
-  * \param theHypVars - output list of variables. 
- * 
- * Gets existing (i.e. already created) hypotheses or algorithm in accordance with 
- * input parameters
- */
-//================================================================================
-void SMESHGUI_MeshOp::existingHyps( const int theDim,
-                                    const int theHypType,
-                                    _PTR(SObject) theFather,
-                                    QStringList& theHyps,
-                                    QValueList<SMESH::SMESH_Hypothesis_var>& theHypVars )
-{
-  // Clear hypoheses list
-  theHyps.clear();
-  theHypVars.clear();
-  
-  if ( !theFather )
-    return;
-  
-  _PTR(SObject)          aHypRoot;
-  _PTR(GenericAttribute) anAttr;
-  _PTR(AttributeName)    aName;
-  _PTR(AttributeIOR)     anIOR;
-  
-  bool isMesh = !_CAST( SComponent, theFather );
-  int aPart = -1;
-  if ( isMesh )
-    aPart = theHypType == Algo ? 3 : 2;
-  else
-    aPart = theHypType == Algo ? 2 : 1;
-
-  if ( theFather->FindSubObject( aPart, aHypRoot ) ) 
-  {
-    _PTR(ChildIterator) anIter =
-      SMESH::GetActiveStudyDocument()->NewChildIterator( aHypRoot );
-    for (; anIter->More(); anIter->Next() ) 
-    {
-      _PTR(SObject) anObj = anIter->Value();
-      if ( isMesh ) // i.e. mesh or submesh
-      {
-        _PTR(SObject) aRefObj;
-        if ( anObj->ReferencedObject( aRefObj ) )
-          anObj = aRefObj;
-        else
-          continue;
-      }
-      if ( anObj->FindAttribute( anAttr, "AttributeName" ) ) 
-      {
-        aName = anAttr;
-        CORBA::Object_var aVar = _CAST(SObject,anObj)->GetObject();
-        if ( !CORBA::is_nil( aVar ) )
-        {
-          SMESH::SMESH_Hypothesis_var aHypVar = SMESH::SMESH_Hypothesis::_narrow( aVar );
-          if ( !aHypVar->_is_nil() ) 
-          {
-            QString aHypType( aHypVar->GetName() );
-            HypothesisData* aData = SMESH::GetHypothesisData( aHypType );
-            if ( ( theDim == -1 || aData->Dim.contains( theDim ) ) && 
-                 ( theHypType == AddHyp ) == aData->IsAux )
-            {
-              theHyps.append( aName->Value().c_str() );
-              theHypVars.append( aHypVar );
-            }
-          }
-        }
-      }
-    }
-  }
-}
-
-//================================================================================
-/*!
- * \brief Calls plugin methods for hypothesis creation 
-  * \param theHypType - specifies whether main hypotheses or additional ones 
-  * are created
-  * \param theIndex - index of type of hypothesis to be cerated
- * 
- * Speicfies dimension of hypothesis to be created (using sender() method), specifies
- * its type and calls plugin methods for hypothesis creation 
- */
-//================================================================================
-void SMESHGUI_MeshOp::onCreateHyp( const int theHypType, const int theIndex )
-{
-  // Speicfies dimension of hypothesis to be created
-  const QObject* aSender = sender();
-  int aDim = -1;
-  for ( int i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++ )
-    if ( aSender == myDlg->tab( i ) )
-      aDim = i;
-  if ( aDim == -1 )
-    return;
-  
-  // Speicfies type of hypothesis to be created
-  QStringList aHypTypeNames = SMESH::GetAvailableHypotheses( false , aDim, theHypType == AddHyp );
-  if ( theIndex < 0 || theIndex >= aHypTypeNames.count() )
-    return;
-
-  QString aHypTypeName = aHypTypeNames[ theIndex ];
-  HypothesisData* aData = SMESH::GetHypothesisData( aHypTypeName.latin1() );
-  if ( aData == 0 )
-    return;
-  
-  QString aClientLibName = aData->ClientLibName;
-  QStringList anOldHyps;
-  _PTR(SComponent) aFather = SMESH::GetActiveStudyDocument()->FindComponent( "SMESH" );
-  existingHyps( aDim, theHypType, aFather, anOldHyps, myExistingHyps[ aDim ][ theHypType ] );
-  
-  if ( aClientLibName == "" ) 
-  {
-    // Call hypothesis creation server method (without GUI)
-    QString aHypName = aData->Label;
-    SMESH::CreateHypothesis( aHypTypeName, aHypName, false );
-  } 
-  else 
-  {
-    // Get hypotheses creator client (GUI)
-    SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator( aHypTypeName );
-    
-    // Create hypothesis
-    aCreator->CreateHypothesis( false, myDlg );
-  }
-  
-  QStringList aNewHyps;
-  aFather = SMESH::GetActiveStudyDocument()->FindComponent( "SMESH" );
-  existingHyps( aDim, theHypType, aFather, aNewHyps, myExistingHyps[ aDim ][ theHypType ] );
-  if ( aNewHyps.count() > anOldHyps.count() )
-  {
-    for ( int i = anOldHyps.count(); i < aNewHyps.count(); i++ )
-      myDlg->tab( aDim )->addHyp( theHypType, aNewHyps[ i ] );
-  }
-}
-
-//================================================================================
-/*!
- * \brief Calls plugin methods for hypothesis editing
-  * \param theHypType - specifies whether main hypothesis or additional one
-  * is edited
-  * \param theIndex - index of existing hypothesis
- * 
- * Calls plugin methods for hypothesis editing
- */
-//================================================================================
-void SMESHGUI_MeshOp::onEditHyp( const int theHypType, const int theIndex )
-{
-  // Speicfies dimension of hypothesis to be created
-  const QObject* aSender = sender();
-  int aDim = -1;
-  for ( int i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++ )
-    if ( aSender == myDlg->tab( i ) )
-      aDim = i;
-  if ( aDim == -1 )
-    return;
-  
-  QValueList<SMESH::SMESH_Hypothesis_var> aList = myExistingHyps[ aDim ][ theHypType ];
-  SMESH::SMESH_Hypothesis_var aHyp = aList[ theIndex - 1 ];
-  if ( aHyp->_is_nil() )
-    return;
-  
-  char* aTypeName = aHyp->GetName();
-  SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator( aTypeName );
-  if ( aCreator )
-    aCreator->EditHypothesis( aHyp );
-}
-
-//================================================================================
-/*!
- * \brief Creates mesh
-  * \param theMess - Output parameter intended for returning error message
-  * \retval bool  - TRUE if mesh is created, FALSE otherwise
- * 
- * Creates mesh
- */
-//================================================================================
-bool SMESHGUI_MeshOp::createMesh( QString& theMess )
-{
-  theMess = "";
-  
-  QString aGeomEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Geom );
-  _PTR(SObject) pGeom = studyDS()->FindObjectID( aGeomEntry );
-  GEOM::GEOM_Object_var aGeomVar = 
-    GEOM::GEOM_Object::_narrow( _CAST( SObject,pGeom )->GetObject() );
-  
-  SMESH::SMESH_Gen_var aSMESHGen = SMESHGUI::GetSMESHGen();
-  if ( aSMESHGen->_is_nil() )
-    return false;
-  
-  SUIT_OverrideCursor aWaitCursor;
-      
-  // create mesh
-  SMESH::SMESH_Mesh_var aMeshVar = aSMESHGen->CreateMesh( aGeomVar );
-  if ( aMeshVar->_is_nil() )
-    return false;
-  _PTR(SObject) aMeshSO = SMESH::FindSObject( aMeshVar.in() );
-  if ( aMeshSO )
-    SMESH::SetName( aMeshSO, myDlg->objectText( SMESHGUI_MeshDlg::Obj ).latin1() );
-  
-  for ( int aDim = SMESH::DIM_1D; aDim <= SMESH::DIM_3D; aDim++ )
-  {
-    // assign hypotheses
-    for ( int aHypType = MainHyp; aHypType <= AddHyp; aHypType++ )
-    {
-      int aHypIndex = currentHyp( aDim, aHypType );
-      if ( aHypIndex >= 0 && aHypIndex < myExistingHyps[ aDim ][ aHypType ].count() )
-      {
-        SMESH::SMESH_Hypothesis_var aHypVar = myExistingHyps[ aDim ][ aHypType ][ aHypIndex ];
-        if ( !aHypVar->_is_nil() )
-          SMESH::AddHypothesisOnMesh( aMeshVar, aHypVar );
-      }
-    }
-    // find or create algorithm
-    SMESH::SMESH_Hypothesis_var anAlgoVar = getAlgo( aDim );
-    if ( !anAlgoVar->_is_nil() )
-      SMESH::AddHypothesisOnMesh( aMeshVar, anAlgoVar );
-  }    
-  return true;
-}
-
-//================================================================================
-/*!
- * \brief Creates sub-mesh
-  * \param theMess - Output parameter intended for returning error message
-  * \retval bool  - TRUE if sub-mesh is created, FALSE otherwise
- * 
- * Creates sub-mesh
- */
-//================================================================================
-bool SMESHGUI_MeshOp::createSubMesh( QString& theMess )
-{
-  theMess = "";
-  
-  SMESH::SMESH_Gen_var aSMESHGen = SMESHGUI::GetSMESHGen();
-  if ( aSMESHGen->_is_nil() )
-    return false;
-  
-  // get mesh object
-  QString aMeshEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Mesh );
-  _PTR(SObject) pMesh = studyDS()->FindObjectID( aMeshEntry );
-  SMESH::SMESH_Mesh_var aMeshVar = 
-    SMESH::SMESH_Mesh::_narrow( _CAST( SObject,pMesh )->GetObject() );
-  
-  // get geom object
-  QString aGeomEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Geom );
-  _PTR(SObject) pGeom = studyDS()->FindObjectID( aGeomEntry );
-  GEOM::GEOM_Object_var aGeomVar = 
-    GEOM::GEOM_Object::_narrow( _CAST( SObject,pGeom )->GetObject() );
-  
-  SUIT_OverrideCursor aWaitCursor;
-      
-  // create sub-mesh
-  QString aName = myDlg->objectText( SMESHGUI_MeshDlg::Obj );
-  SMESH::SMESH_subMesh_var aSubMeshVar = aMeshVar->GetSubMesh( aGeomVar, aName.latin1() );
-  
-  for ( int aDim = SMESH::DIM_1D; aDim <= SMESH::DIM_3D; aDim++ )
-  {
-    // assign hypotheses
-    for ( int aHypType = MainHyp; aHypType <= AddHyp; aHypType++ )
-    {
-      int aHypIndex = currentHyp( aDim, aHypType );
-      if ( aHypIndex >= 0 && aHypIndex < myExistingHyps[ aDim ][ aHypType ].count() )
-      {
-        SMESH::SMESH_Hypothesis_var aHypVar = 
-          myExistingHyps[ aDim ][ aHypType ][ aHypIndex ];
-        if ( !aHypVar->_is_nil() )
-          SMESH::AddHypothesisOnSubMesh( aSubMeshVar, aHypVar );
-      }
-    }
-    // find or create algorithm
-    SMESH::SMESH_Hypothesis_var anAlgoVar = getAlgo( aDim );
-    if ( !anAlgoVar->_is_nil() )
-      SMESH::AddHypothesisOnSubMesh( aSubMeshVar, anAlgoVar );
-  }    
-  return true;
-}
-
-//================================================================================
-/*!
- * \brief Gets current hypothesis or algorithms
-  * \param theDim - dimension of hypothesis or algorithm
-  * \param theHypType - Type of hypothesis (Algo, MainHyp, AddHyp)  
-  * \retval int - current hypothesis or algorithms
- * 
- * Gets current hypothesis or algorithms
- */
-//================================================================================
-int SMESHGUI_MeshOp::currentHyp( const int theDim, const int theHypType ) const
-{
-  return myDlg->tab( theDim )->currentHyp( theHypType ) - 1;
-}
-
-//================================================================================
-/*!
- * \brief Sets current hypothesis or algorithms
-  * \param theDim - dimension of hypothesis or algorithm
-  * \param theHypType - Type of hypothesis (Algo, MainHyp, AddHyp)  
-  * \param theIndex - Index of hypothesis
- * 
- * Gets current hypothesis or algorithms
- */
-//================================================================================
-void SMESHGUI_MeshOp::setCurrentHyp( const int theDim, 
-                                     const int theHypType, 
-                                     const int theIndex )
-{
-  myDlg->tab( theDim )->setCurrentHyp( theHypType, theIndex + 1 );
-}
-
-//================================================================================
-/*!
- * \brief Generates default and sets mesh/submesh name
- * 
- * Generates and sets default mesh/submesh name(Mesh_1, Mesh_2, etc.)
- */
-//================================================================================
-void SMESHGUI_MeshOp::setDefaultName() const
-{
-  QString aResName;
-  
-  _PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
-  int i = 1;
-  QString aPrefix = tr( myIsMesh ? "SMESH_OBJECT_MESH" : "SMESH_SUBMESH" ) + "_";
-  _PTR(SObject) anObj;
-  do 
-  {
-    aResName = aPrefix + QString::number( i++ );
-    anObj = aStudy->FindObject( aResName.latin1() );
-  } 
-  while ( anObj );
-  
-  QLineEdit* aControl = ( QLineEdit* )myDlg->objectWg( 
-    SMESHGUI_MeshDlg::Obj, SMESHGUI_MeshDlg::Control );
-  aControl->setText( aResName );
-}
-
-//================================================================================
-/*!
- * \brief Gets algorithm or creates it if necessary
-  * \param theDim - specifies dimension of returned hypotheses/algorifms 
-  * \retval SMESH::SMESH_Hypothesis_var - algorithm  
- * 
- * Gets algorithm or creates it if necessary
- */
-//================================================================================
-SMESH::SMESH_Hypothesis_var SMESHGUI_MeshOp::getAlgo( const int theDim )
-{
-  SMESH::SMESH_Hypothesis_var anAlgoVar;
-  int aHypIndex = currentHyp( theDim, Algo );
-  QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses( true, theDim, false );
-  if ( aHypIndex < 0 || aHypIndex >= aHypTypeNameList.count() )
-    return anAlgoVar;
-  QString aHypName = aHypTypeNameList[ aHypIndex ];
-  QValueList<SMESH::SMESH_Hypothesis_var>& aHypVarList = myExistingHyps[ theDim ][ Algo ];
-  QValueList<SMESH::SMESH_Hypothesis_var>::iterator anIter;
-  for ( anIter = aHypVarList.begin(); anIter != aHypVarList.end(); anIter++ )
-  {
-    SMESH::SMESH_Hypothesis_var aHypVar = *anIter;
-    if ( !aHypVar->_is_nil() && aHypName == aHypVar->GetName() )
-    {
-      anAlgoVar = aHypVar;
-      break;
-    }
-  }
-  if ( anAlgoVar->_is_nil() )
-  {
-    HypothesisData* aHypData = SMESH::GetHypothesisData( aHypName );  
-    if ( aHypData )
-    {
-      QString aClientLibName = aHypData->ClientLibName;
-      if ( aClientLibName == "" ) 
-        SMESH::CreateHypothesis( aHypName, aHypData->Label, true );
-      else
-      {
-        SMESHGUI_GenericHypothesisCreator* aCreator =           
-          SMESH::GetHypothesisCreator( aHypName );
-        if ( aCreator )
-          aCreator->CreateHypothesis( true, myDlg );
-      }
-      QStringList tmpList;
-      _PTR(SComponent) aFather = SMESH::GetActiveStudyDocument()->FindComponent( "SMESH" );
-      existingHyps( theDim, Algo, aFather, tmpList, myExistingHyps[ theDim ][ Algo ] );
-    }
-    
-    QValueList<SMESH::SMESH_Hypothesis_var>& aNewHypVarList = myExistingHyps[ theDim ][ Algo ];
-    for ( anIter = aNewHypVarList.begin(); anIter != aNewHypVarList.end(); ++anIter )
-    {
-      SMESH::SMESH_Hypothesis_var aHypVar = *anIter;
-      if ( !aHypVar->_is_nil() && aHypName == aHypVar->GetName() )
-      {
-        anAlgoVar = aHypVar;
-        break;
-      }
-    }
-  }
-  
-  return anAlgoVar._retn();
-}
-
-//================================================================================
-/*!
- * \brief Reads parameters of edited mesh and assigns them to the dialog
- * 
- * Reads parameters of edited mesh and assigns them to the dialog (called when
- * mesh is edited only)
- */
-//================================================================================
-void SMESHGUI_MeshOp::readMesh()
-{
-  QString anObjEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Obj );
-  _PTR(SObject) pObj = studyDS()->FindObjectID( anObjEntry );
-  if ( !pObj )
-    return;
-  
-  // Get name of mesh if current object is sub-mesh
-  SMESH::SMESH_subMesh_var aSubMeshVar = 
-      SMESH::SMESH_subMesh::_narrow( _CAST( SObject,pObj )->GetObject() );
-  if ( !aSubMeshVar->_is_nil() )
-  {
-    SMESH::SMESH_Mesh_var aMeshVar =  aSubMeshVar->GetFather();
-    if ( !aMeshVar->_is_nil() )
-    {
-      _PTR(SObject) aMeshSO = SMESH::FindSObject( aMeshVar );
-      QString aMeshName = name( aMeshSO );
-      myDlg->setObjectText( SMESHGUI_MeshDlg::Mesh, aMeshName );
-    }
-  }
-  
-  // Get name of geometry object
-  GEOM::GEOM_Object_var aGeomVar = SMESH::GetShapeOnMeshOrSubMesh( pObj );
-  if ( !aGeomVar->_is_nil() )
-  {
-    _PTR(SObject) aGeomSO = studyDS()->FindObjectID( aGeomVar->GetStudyEntry() );
-    QString aShapeName = name( aGeomSO );
-    myDlg->setObjectText( SMESHGUI_MeshDlg::Geom, aShapeName );
-  }
-  
-  // Get hypotheses and algorithms assigned to the mesh/sub-mesh
-  for ( int dim = SMESH::DIM_1D; dim <= SMESH::DIM_3D; dim++ )
-  {
-    // get algorithm
-    QStringList anExisting;
-    int aHypIndex = -1;
-    existingHyps( dim, Algo, pObj, anExisting, myObjHyps[ dim ][ Algo ] );
-    if ( myObjHyps[ dim ][ Algo ].count() > 0 )
-    {
-      SMESH::SMESH_Hypothesis_var aVar = myObjHyps[ dim ][ Algo ].first();
-      QString aHypTypeName = aVar->GetName();
-      
-      QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses( true , dim, false );
-      for ( int i = 0, n = aHypTypeNameList.count(); i < n; i++ )
-        if ( aHypTypeName == aHypTypeNameList[ i ] )
-        {
-          aHypIndex = i;
-          break;
-        }
-    }
-    setCurrentHyp( dim, Algo, aHypIndex );
-          
-    // get hypotheses
-    for ( int hypType = MainHyp; hypType <= AddHyp; hypType++ )
-    {
-      // get hypotheses
-      existingHyps( dim, hypType, pObj, anExisting, myObjHyps[ dim ][ hypType ] );
-      // find index of requered hypothesis among existing ones for this dimension
-      // and hyp types
-      int aHypIndex = -1;
-      if ( myObjHyps[ dim ][ hypType ].count() > 0 )
-        aHypIndex = find( myObjHyps[ dim ][ hypType ].first(), 
-                          myExistingHyps[ dim ][ hypType ] );
-      setCurrentHyp( dim, hypType, aHypIndex );
-    }
-  }
-}
-
-//================================================================================
-/*!
- * \brief Gets name of object
-  * \param theSO - SObject
-  * \retval QString - name of object  
- * 
- * Gets name of object
- */
-//================================================================================
-QString SMESHGUI_MeshOp::name( _PTR(SObject) theSO ) const
-{
-  QString aResName;
-  if ( theSO )
-  {
-    _PTR(GenericAttribute) anAttr;
-    _PTR(AttributeName)    aNameAttr;
-    if ( theSO->FindAttribute( anAttr, "AttributeName" ) ) 
-    {
-      aNameAttr = anAttr;              
-      aResName = aNameAttr->Value().c_str();
-    }
-  }
-  return aResName;
-}
-
-//================================================================================
-/*!
- * \brief Finds hypothesis in input list
-  * \param theHyp - hypothesis to be found
-  * \param theHypList - input list of hypotheses
-  * \retval int - index of hypothesis or -1 if it is not found  
- * 
- * Finds position of hypothesis in input list
- */
-//================================================================================
-int SMESHGUI_MeshOp::find( const SMESH::SMESH_Hypothesis_var& theHyp,
-                           const QValueList<SMESH::SMESH_Hypothesis_var>& theHypList ) const
-{
-  int aRes = -1;
-  if ( !theHyp->_is_nil() )
-  {
-    int i = 0;
-    QValueList<SMESH::SMESH_Hypothesis_var>::const_iterator anIter;
-    for ( anIter = theHypList.begin(); anIter != theHypList.end(); ++ anIter )
-    {
-      if ( theHyp->_is_equivalent( *anIter ) )
-      {
-        aRes = i;
-        break;
-      }
-      i++;
-    }
-  }
-  return aRes;
-}                           
-
-//================================================================================
-/*!
- * \brief Edits mesh or sub-mesh
-  * \param theMess - Output parameter intended for returning error message
-  * \retval bool  - TRUE if mesh is edited succesfully, FALSE otherwise
- * 
- * Assigns new name hypotheses and algoriths to the mesh or sub-mesh
- */
-//================================================================================
-bool SMESHGUI_MeshOp::editMeshOrSubMesh( QString& theMess )
-{
-  theMess = "";
-  
-  SMESH::SMESH_Gen_var aSMESHGen = SMESHGUI::GetSMESHGen();
-  if ( aSMESHGen->_is_nil() )
-    return false;
-  
-  QString anObjEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Obj );
-  _PTR(SObject) pObj = studyDS()->FindObjectID( anObjEntry );
-  if ( !pObj )
-    return false;
-
-  SUIT_OverrideCursor aWaitCursor;
-    
-  // Set new name
-  SMESH::SetName( pObj, myDlg->objectText( SMESHGUI_MeshDlg::Obj ).latin1() );
-  
-  // Assign new hypotheses and algorithms
-  for ( int dim = SMESH::DIM_1D; dim <= SMESH::DIM_3D; dim++ )
-  {
-    // create algorithm if necessary
-    getAlgo( dim );
-    
-    // assign hypotheses
-    for ( int hypType = Algo; hypType <= AddHyp; hypType++ )
-    {
-      int aNewHypIndex = currentHyp( dim, hypType );
-      int anOldHypIndex = -1;
-      if ( myObjHyps[ dim ][ hypType ].count() > 0 )
-        anOldHypIndex = find( myObjHyps[ dim ][ hypType ].first(), 
-                              myExistingHyps[ dim ][ hypType ] );
-      if ( aNewHypIndex !=  anOldHypIndex )
-      {
-        // remove old hypotheses
-        if ( anOldHypIndex >= 0 )
-          SMESH::RemoveHypothesisOrAlgorithmOnMesh( 
-            pObj, myExistingHyps[ dim ][ hypType ][ anOldHypIndex ] );
-        
-        // assign new hypotheses
-        if ( aNewHypIndex != -1 )
-        {
-          SMESH::SMESH_Mesh_var aMeshVar = 
-              SMESH::SMESH_Mesh::_narrow( _CAST(SObject,pObj)->GetObject() );
-          bool isMesh = !aMeshVar->_is_nil();
-          if ( isMesh )
-          {
-            SMESH::AddHypothesisOnMesh( 
-              aMeshVar, myExistingHyps[ dim ][ hypType ][ aNewHypIndex ] );
-          }
-          else
-          {
-            SMESH::SMESH_subMesh_var aVar = 
-              SMESH::SMESH_subMesh::_narrow( _CAST(SObject,pObj)->GetObject() );
-            if ( !aVar->_is_nil() )
-              SMESH::AddHypothesisOnSubMesh( 
-                aVar, myExistingHyps[ dim ][ hypType ][ aNewHypIndex ] );
-          }
-        }
-        // reread all hypotheses of mesh if necessary
-        QStringList anExisting;
-        existingHyps( dim, hypType, pObj, anExisting, myObjHyps[ dim ][ hypType ] );
-      }
-    }
-  }
-  
-  return true;
-}
-
-//================================================================================
-/*!
- * \brief Verifies whether given operator is valid for this one
-  * \param theOtherOp - other operation
-  * \return Returns TRUE if the given operator is valid for this one, FALSE otherwise
-*
-* Virtual method redefined from base class verifies whether given operator is valid for
-* this one (i.e. can be started "above" this operator). In current implementation method
-* retuns false if theOtherOp operation is not intended for deleting objects or mesh
-* elements.
-*/
-//================================================================================
-bool SMESHGUI_MeshOp::isValid( SUIT_Operation* theOp ) const
-{
-  return SMESHGUI_Operation::isValid( theOp ) && !theOp->inherits( "SMESHGUI_MeshOp" );
-}
-
-
-
-
-
-
-
-
-
diff --git a/src/SMESHGUI/SMESHGUI_MeshOp.h b/src/SMESHGUI/SMESHGUI_MeshOp.h
deleted file mode 100644 (file)
index 063ebca..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
-*  SMESH SMESHGUI
-*
-*  Copyright (C) 2005  CEA/DEN, EDF R&D
-*
-*
-*
-*  File   : SMESHGUI_MeshOp.h
-*  Author : Sergey LITONIN
-*  Module : SMESHGUI
-*/
-
-#ifndef SMESHGUI_MeshOp_H
-#define SMESHGUI_MeshOp_H
-
-#include "SMESHGUI_SelectionOp.h"
-#include <qstringlist.h>
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-class SMESHGUI_MeshDlg;
-class SMESH_TypeFilter;
-class SMESH_NumberFilter;
-
-
-/*!
- * \brief Operation for mech creation or editing
- *
- *  This operation is used for mech creation or editing. 
-*/
-class SMESHGUI_MeshOp : public SMESHGUI_SelectionOp
-{ 
-  Q_OBJECT
-      
-  enum HypType{ Algo = 0, MainHyp, AddHyp };
-
-public:
-  SMESHGUI_MeshOp( const bool theToCreate, const bool theIsMesh = true );
-  virtual ~SMESHGUI_MeshOp();
-  
-  virtual SalomeApp_Dialog*      dlg() const;  
-
-protected:
-  virtual void                   startOperation();
-  virtual void                   selectionDone();
-  virtual SUIT_SelectionFilter*  createFilter( const int ) const;
-  virtual bool                   isValid( SUIT_Operation* ) const;
-
-protected slots:
-  virtual bool                   onApply();
-  void                           onCreateHyp( const int theHypType, const int theIndex );
-  void                           onEditHyp( const int theHypType, const int theIndex );
-
-private:
-  bool                           isValid( QString& ) const;
-  void                           availableHyps( const int theDim, 
-                                                const int theHypType, 
-                                                QStringList& theHyps ) const;
-  void                           existingHyps( const int theDim, 
-                                               const int theHypType, 
-                                               _PTR(SObject) theFather,
-                                               QStringList& theHyps, 
-                                               QValueList<SMESH::SMESH_Hypothesis_var>& theHypVars );
-  
-  bool                           createMesh( QString& );
-  bool                           createSubMesh( QString& );
-  bool                           editMeshOrSubMesh( QString& );
-  
-  int                            currentHyp( const int, const int ) const;
-  void                           setCurrentHyp( const int, const int, const int );
-  void                           setDefaultName() const;
-  SMESH::SMESH_Hypothesis_var    getAlgo( const int );
-  void                           readMesh();
-  QString                        name( _PTR(SObject) ) const;
-  int                            find( const SMESH::SMESH_Hypothesis_var&,
-                                       const QValueList<SMESH::SMESH_Hypothesis_var>& ) const;
-
-private:
-  typedef QMap< int, QValueList<SMESH::SMESH_Hypothesis_var> > IdToHypListMap;
-  typedef QMap< int, IdToHypListMap > DimToHypMap;
-  
-  SMESHGUI_MeshDlg*              myDlg;
-  bool                           myToCreate;
-  bool                           myIsMesh;
-  
-  DimToHypMap                    myExistingHyps; //!< all hypothesis of SMESH module
-  DimToHypMap                    myObjHyps;      //!< hypothesis assigned to the current 
-                                                 //   edited mesh/sub-mesh
-};
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_MeshPatternDlg.cxx b/src/SMESHGUI/SMESHGUI_MeshPatternDlg.cxx
deleted file mode 100755 (executable)
index 8279690..0000000
+++ /dev/null
@@ -1,1331 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_MeshPatternDlg.cxx
-//  Author : Sergey LITONIN
-//  Module : SMESH
-
-#include "SMESHGUI_MeshPatternDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_SpinBox.h"
-#include "SMESHGUI_CreatePatternDlg.h"
-#include "SMESHGUI_PatternWidget.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_PatternUtils.h"
-#include "SMESHGUI_GEOMGenUtils.h"
-
-#include "SMESH_Actor.h"
-#include "SMESH_ActorUtils.h"
-#include "SMESH_NumberFilter.hxx"
-
-#include "SMDS_Mesh.hxx"
-#include "SMDS_MeshElement.hxx"
-
-#include "SUIT_ResourceMgr.h"
-#include "SUIT_Desktop.h"
-#include "SUIT_FileDlg.h"
-
-#include "SalomeApp_SelectionMgr.h"
-#include "SalomeApp_Tools.h"
-#include "SalomeApp_Study.h"
-
-#include "SALOMEDS_SObject.hxx"
-
-#include "SALOME_ListIO.hxx"
-#include "SVTK_Selection.h"
-
-#include "SVTK_ViewModel.h"
-#include "SVTK_Selector.h"
-#include "SVTK_ViewWindow.h"
-
-// OCCT Includes
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_IndexedMapOfInteger.hxx>
-
-// QT Includes
-#include <qframe.h>
-#include <qlayout.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qradiobutton.h>
-#include <qcheckbox.h>
-#include <qbuttongroup.h>
-#include <qmessagebox.h>
-#include <qcstring.h>
-#include <qspinbox.h>
-#include <qvaluelist.h>
-#include <qdir.h>
-#include <qfile.h>
-#include <qfileinfo.h>
-#include <qfiledialog.h>
-
-// VTK Includes
-#include <vtkCell.h>
-#include <vtkIdList.h>
-#include <vtkIntArray.h>
-#include <vtkCellArray.h>
-#include <vtkUnsignedCharArray.h>
-#include <vtkUnstructuredGrid.h>
-#include <vtkDataSetMapper.h>
-
-#define SPACING 5
-#define MARGIN  10
-
-/*!
- *  Class       : SMESHGUI_MeshPatternDlg
- *  Description : Dialog to specify filters for VTK viewer
- */
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::SMESHGUI_MeshPatternDlg
-// Purpose : Constructor
-//=======================================================================
-SMESHGUI_MeshPatternDlg::SMESHGUI_MeshPatternDlg( SMESHGUI*   theModule,
-                                                  const char* theName )
-     : QDialog( SMESH::GetDesktop( theModule ), theName, false, WStyle_Customize |
-                WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
-       myBusy(false),
-       mySMESHGUI( theModule ),
-       mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-  setCaption(tr("CAPTION"));
-
-  QVBoxLayout* aDlgLay = new QVBoxLayout(this, MARGIN, SPACING);
-
-  QFrame* aMainFrame = createMainFrame  (this);
-  QFrame* aBtnFrame  = createButtonFrame(this);
-
-  aDlgLay->addWidget(aMainFrame);
-  aDlgLay->addWidget(aBtnFrame);
-
-  aDlgLay->setStretchFactor(aMainFrame, 1);
-
-  myCreationDlg = 0;
-
-  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
-
-  Init();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::createMainFrame
-// Purpose : Create frame containing dialog's input fields
-//=======================================================================
-QFrame* SMESHGUI_MeshPatternDlg::createMainFrame (QWidget* theParent)
-{
-  SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );
-  QPixmap iconSlct ( mgr->loadPixmap("SMESH", tr("ICON_SELECT")));
-  QPixmap icon2d   ( mgr->loadPixmap("SMESH", tr("ICON_PATTERN_2d")));
-  QPixmap icon3d   ( mgr->loadPixmap("SMESH", tr("ICON_PATTERN_3d")));
-  QPixmap iconOpen ( mgr->loadPixmap("STD", tr("ICON_FILE_OPEN")));
-
-  QPixmap iconSample2d ( mgr->loadPixmap("SMESH", tr("ICON_PATTERN_SAMPLE_2D")));
-  QPixmap iconSample3d ( mgr->loadPixmap("SMESH", tr("ICON_PATTERN_SAMPLE_3D")));
-
-  QGroupBox* aMainGrp = new QGroupBox (1, Qt::Horizontal, theParent);
-  aMainGrp->setFrameStyle(QFrame::NoFrame);
-  aMainGrp->setInsideMargin(0);
-
-  // Pattern type group
-
-  myTypeGrp = new QButtonGroup (1, Qt::Vertical, tr("PATTERN_TYPE"), aMainGrp);
-  mySwitch2d = new QRadioButton (myTypeGrp);
-  mySwitch3d = new QRadioButton (myTypeGrp);
-  mySwitch2d->setPixmap(icon2d);
-  mySwitch3d->setPixmap(icon3d);
-  myTypeGrp->insert(mySwitch2d, Type_2d);
-  myTypeGrp->insert(mySwitch3d, Type_3d);
-
-  // Mesh group
-
-  QGroupBox* aMeshGrp = new QGroupBox(1, Qt::Vertical, tr("SMESH_MESH"), aMainGrp);
-  new QLabel(tr("SMESH_MESH"), aMeshGrp);
-  mySelBtn[ Mesh ] = new QPushButton(aMeshGrp);
-  mySelBtn[ Mesh ]->setPixmap(iconSlct);
-  mySelEdit[ Mesh ] = new QLineEdit(aMeshGrp);
-  mySelEdit[ Mesh ]->setReadOnly(true);
-
-  // Pattern group
-
-  QGroupBox* aPatGrp = new QGroupBox(1, Qt::Horizontal, tr("PATTERN"), aMainGrp);
-
-  // pattern name
-  QGroupBox* aNameGrp = new QGroupBox(1, Qt::Vertical, aPatGrp);
-  aNameGrp->setFrameStyle(QFrame::NoFrame);
-  aNameGrp->setInsideMargin(0);
-  new QLabel(tr("PATTERN"), aNameGrp);
-  myName = new QLineEdit(aNameGrp);
-  myName->setReadOnly(true);
-  myOpenBtn = new QPushButton(aNameGrp);
-  myOpenBtn->setPixmap(iconOpen);
-  myNewBtn = new QPushButton(tr("NEW"), aNameGrp);
-
-  // Mode selection check box
-  myRefine = new QCheckBox(tr("REFINE"), aPatGrp);
-
-  // selection widgets for Apply to geom mode
-  myGeomGrp = new QGroupBox(3, Qt::Horizontal, aPatGrp);
-  myGeomGrp->setFrameStyle(QFrame::NoFrame);
-  myGeomGrp->setInsideMargin(0);
-
-  for (int i = Object; i <= Vertex2; i++)
-  {
-    mySelLbl[ i ] = new QLabel(myGeomGrp);
-    mySelBtn[ i ] = new QPushButton(myGeomGrp);
-    mySelBtn[ i ]->setPixmap(iconSlct);
-    mySelEdit[ i ] = new QLineEdit(myGeomGrp);
-    mySelEdit[ i ]->setReadOnly(true);
-  }
-
-  // Widgets for refinement of existing mesh elements
-  myRefineGrp = new QFrame(aPatGrp);
-  myRefineGrp->setFrameStyle(QFrame::NoFrame);
-  QGridLayout* aRefGrid = new QGridLayout(myRefineGrp, 3, 3, 0, 5);
-
-  mySelLbl[ Ids ] = new QLabel(myRefineGrp);
-  mySelBtn[ Ids ] = new QPushButton(myRefineGrp);
-  mySelBtn[ Ids ]->setPixmap(iconSlct);
-  mySelEdit[ Ids ] = new QLineEdit(myRefineGrp);
-
-  QLabel* aNodeLbl = new QLabel(tr("NODE_1"), myRefineGrp);
-  myNode1          = new QSpinBox(myRefineGrp);
-  myNode2Lbl       = new QLabel(tr("NODE_2"), myRefineGrp);
-  myNode2          = new QSpinBox(myRefineGrp);
-
-  aRefGrid->addWidget(mySelLbl [ Ids ], 0, 0);
-  aRefGrid->addWidget(mySelBtn [ Ids ], 0, 1);
-  aRefGrid->addWidget(mySelEdit[ Ids ], 0, 2);
-  aRefGrid->addWidget(aNodeLbl, 1, 0);
-  aRefGrid->addMultiCellWidget(myNode1, 1, 1, 1, 2);
-  aRefGrid->addWidget(myNode2Lbl, 2, 0);
-  aRefGrid->addMultiCellWidget(myNode2, 2, 2, 1, 2);
-
-  // reverse check box
-  myReverseChk = new QCheckBox(tr("REVERSE"), aPatGrp);
-
-  // CreatePoly check box
-  myCreatePolygonsChk = new QCheckBox( tr( "CREATE_POLYGONS_NEAR_BOUNDARY" ), aPatGrp );
-  myCreatePolyedrsChk = new QCheckBox( tr( "CREATE_POLYEDRS_NEAR_BOUNDARY" ), aPatGrp );
-
-  // Pictures 2d and 3d
-  for (int i = 0; i < 2; i++) {
-    if (i == 0) {
-      myPicture2d = new SMESHGUI_PatternWidget(aPatGrp),
-      myPicture2d->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
-    } else {
-      myPicture3d = new QFrame(aPatGrp),
-      myPreview3d = new QLabel(myPicture3d);
-      myPreview3d->setPixmap(iconSample3d);
-      QGridLayout* aLay = new QGridLayout(myPicture3d, 3, 3, 0, 0);
-      QSpacerItem* aSpacerH1 = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
-      QSpacerItem* aSpacerH2 = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
-      QSpacerItem* aSpacerV1 = new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
-      QSpacerItem* aSpacerV2 = new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
-      aLay->addItem(aSpacerH1, 1, 0);
-      aLay->addItem(aSpacerH2, 1, 2);
-      aLay->addItem(aSpacerV1, 0, 1);
-      aLay->addItem(aSpacerV2, 2, 1);
-      aLay->addWidget(myPreview3d, 1, 1);
-    }
-  }
-
-  myPreviewChk = new QCheckBox(tr("PREVIEW"), aPatGrp);
-
-  // Connect signals and slots
-
-  connect(myTypeGrp, SIGNAL(clicked(int)), SLOT(onTypeChanged(int)));
-  connect(myOpenBtn, SIGNAL(clicked()),    SLOT(onOpen()));
-  connect(myNewBtn,  SIGNAL(clicked()),    SLOT(onNew()));
-
-  connect(myReverseChk, SIGNAL(toggled(bool)), SLOT(onReverse(bool)));
-  connect(myPreviewChk, SIGNAL(toggled(bool)), SLOT(onPreview(bool)));
-  connect(myRefine,     SIGNAL(toggled(bool)), SLOT(onModeToggled(bool)));
-
-  connect(myNode1, SIGNAL(valueChanged(int)), SLOT(onNodeChanged(int)));
-  connect(myNode2, SIGNAL(valueChanged(int)), SLOT(onNodeChanged(int)));
-
-  connect(mySelEdit[Ids], SIGNAL(textChanged(const QString&)), SLOT(onTextChanged(const QString&)));
-
-  QMap< int, QPushButton* >::iterator anIter;
-  for (anIter = mySelBtn.begin(); anIter != mySelBtn.end(); ++anIter)
-    connect(*anIter, SIGNAL(clicked()), SLOT(onSelInputChanged()));
-
-  return aMainGrp;
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::createButtonFrame
-// Purpose : Create frame containing buttons
-//=======================================================================
-QFrame* SMESHGUI_MeshPatternDlg::createButtonFrame (QWidget* theParent)
-{
-  QFrame* aFrame = new QFrame(theParent);
-  aFrame->setFrameStyle(QFrame::Box | QFrame::Sunken);
-
-  myOkBtn     = new QPushButton(tr("SMESH_BUT_OK"   ), aFrame);
-  myApplyBtn  = new QPushButton(tr("SMESH_BUT_APPLY"), aFrame);
-  myCloseBtn  = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame);
-
-  QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
-
-  QHBoxLayout* aLay = new QHBoxLayout(aFrame, MARGIN, SPACING);
-
-  aLay->addWidget(myOkBtn);
-  aLay->addWidget(myApplyBtn);
-  aLay->addItem(aSpacer);
-  aLay->addWidget(myCloseBtn);
-
-  connect(myOkBtn,    SIGNAL(clicked()), SLOT(onOk()));
-  connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
-  connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
-
-  return aFrame;
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::~SMESHGUI_MeshPatternDlg
-// Purpose : Destructor
-//=======================================================================
-SMESHGUI_MeshPatternDlg::~SMESHGUI_MeshPatternDlg()
-{
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::Init
-// Purpose : Init dialog fields, connect signals and slots, show dialog
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::Init()
-{
-  myPattern = SMESH::GetPattern();
-  myPreviewActor = 0;
-  myIsCreateDlgOpen = false;
-  mySelInput = Mesh;
-  myType = -1;
-  myNbPoints = -1;
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-  myMesh = SMESH::SMESH_Mesh::_nil();
-
-  myMeshShape = GEOM::GEOM_Object::_nil();
-  myGeomObj[ Object  ] = GEOM::GEOM_Object::_nil();
-  myGeomObj[ Vertex1 ] = GEOM::GEOM_Object::_nil();
-  myGeomObj[ Vertex2 ] = GEOM::GEOM_Object::_nil();
-
-  // selection and SMESHGUI
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
-  connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
-  connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
-
-  myTypeGrp->setButton(Type_2d);
-  onTypeChanged(Type_2d);
-  onModeToggled(isRefine());
-
-  updateGeometry();
-
-  resize(minimumSize());
-
-  activateSelection();
-  onSelectionDone();
-
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::isValid
-// Purpose : Verify validity of entry data
-//=======================================================================
-bool SMESHGUI_MeshPatternDlg::isValid (const bool theMess)
-{
-  QValueList<int> ids;
-  if ((isRefine() &&
-       (myMesh->_is_nil() || !getIds(ids) || getNode(false) < 0 ||
-        myType == Type_3d && (getNode(true) < 0 || getNode(false) == getNode(true))))
-      ||
-      (!isRefine() &&
-       (myMesh->_is_nil() || myMeshShape->_is_nil() || myGeomObj[ Object ]->_is_nil() ||
-        myGeomObj[ Vertex1 ]->_is_nil() || myType == Type_3d && myGeomObj[ Vertex2 ]->_is_nil())))
-  {
-    if (theMess)
-      QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_INSUFFICIENT_DATA"),
-                               tr("SMESHGUI_INVALID_PARAMETERS"), QMessageBox::Ok);
-    return false;
-  }
-
-  return true;
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::onApply
-// Purpose : SLOT called when "Apply" button pressed.
-//=======================================================================
-bool SMESHGUI_MeshPatternDlg::onApply()
-{
-  try {
-    if (!isValid())
-      return false;
-
-    erasePreview();
-
-    if (isRefine()) { // Refining existing mesh elements
-      QValueList<int> ids;
-      getIds(ids);
-      SMESH::long_array_var varIds = new SMESH::long_array();
-      varIds->length(ids.count());
-      int i = 0;
-      for (QValueList<int>::iterator it = ids.begin(); it != ids.end(); ++it)
-       varIds[i++] = *it;
-      myType == Type_2d
-       ? myPattern->ApplyToMeshFaces  (myMesh, varIds, getNode(false), myReverseChk->isChecked())
-       : myPattern->ApplyToHexahedrons(myMesh, varIds, getNode(false), getNode(true));
-
-    } else { // Applying a pattern to geometrical object
-      if (myType == Type_2d)
-        myPattern->ApplyToFace(myGeomObj[Object], myGeomObj[Vertex1], myReverseChk->isChecked());
-      else
-        myPattern->ApplyTo3DBlock(myGeomObj[Object], myGeomObj[Vertex1], myGeomObj[Vertex2]);
-    }
-
-    bool toCreatePolygons = myCreatePolygonsChk->isChecked();
-    bool toCreatePolyedrs = myCreatePolyedrsChk->isChecked();
-    if ( myPattern->MakeMesh( myMesh, toCreatePolygons, toCreatePolyedrs ) ) {
-      mySelectionMgr->clearSelected();
-      bool autoUpdate = SMESHGUI::automaticUpdate();
-      if (!isRefine() && autoUpdate) {
-       _PTR(SObject) aSO = SMESH::FindSObject(myMesh.in());
-       SMESH_Actor* anActor = SMESH::FindActorByEntry(aSO->GetID().c_str());
-       if (!anActor) {
-         anActor = SMESH::CreateActor(aSO->GetStudy(), aSO->GetID().c_str());
-         if (anActor) {
-           SMESH::DisplayActor(SMESH::GetActiveWindow(), anActor);
-           SMESH::FitAll();
-         }
-       }
-      }
-      SMESH::UpdateView();
-
-      mySMESHGUI->updateObjBrowser(true);
-      return true;
-    } else {
-      QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_ERROR"),
-                               tr("SMESH_OPERATION_FAILED"), QMessageBox::Ok);
-      return false;
-    }
-  } catch (const SALOME::SALOME_Exception& S_ex) {
-    SalomeApp_Tools::QtCatchCorbaException(S_ex);
-  } catch (...) {
-  }
-
-  return false;
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::onOk
-// Purpose : SLOT called when "Ok" button pressed.
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::onOk()
-{
-  if (onApply())
-    onClose();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::onClose
-// Purpose : SLOT called when "Close" button pressed. Close dialog
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::onClose()
-{
-  mySelectionMgr->clearFilters();
-  SMESH::SetPickable();
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-  disconnect(mySelectionMgr, 0, this, 0);
-  disconnect(mySMESHGUI, 0, this, 0);
-  mySMESHGUI->ResetState();
-  erasePreview();
-  reject();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::onSelectionDone
-// Purpose : SLOT called when selection changed
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::onSelectionDone()
-{
-  if (myBusy)
-    return;
-
-  try {
-    if (mySelInput == Mesh) {
-      SALOME_ListIO aList;
-      mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
-      if (aList.Extent() != 1)
-       return;
-
-      // Retrieve mesh from selection
-      Handle(SALOME_InteractiveObject) anIO = aList.First();
-      SMESH::SMESH_Mesh_var aMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(anIO);
-      if (aMesh->_is_nil())
-        return;
-
-      // Get geom object corresponding to the mesh
-      _PTR(SObject) aSO = SMESH::FindSObject(aMesh.in());
-      myMeshShape = SMESH::GetGeom(aSO);
-
-      // Clear fields of geom objects if mesh was changed
-      if (myMesh != aMesh) {
-        for (int i = Object; i <= Ids; i++) {
-          myGeomObj[ i ] = GEOM::GEOM_Object::_nil();
-          mySelEdit[ i ]->setText("");
-        }
-      }
-
-      myMesh = aMesh;
-
-      // Set name of mesh in line edit
-      QString aName;
-      SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aName);
-      mySelEdit[ Mesh ]->setText(aName);
-
-    } else if (mySelInput == Ids) {
-      SALOME_ListIO aList;
-      mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
-      if (aList.Extent() != 1)
-       return;
-
-      QString anIds;
-      if (!SMESH::GetNameOfSelectedElements(mySelector, aList.First(), anIds))
-       anIds = "";
-
-      myBusy = true;
-      mySelEdit[ Ids ]->setText(anIds);
-      myBusy = false;
-
-    } else {
-      SALOME_ListIO aList;
-      mySelectionMgr->selectedObjects(aList, SVTK_Viewer::Type());
-      if (aList.Extent() != 1)
-       return;
-
-      // Get geom object from selection
-      Handle(SALOME_InteractiveObject) anIO = aList.First();
-      GEOM::GEOM_Object_var anObj = SMESH::IObjectToInterface<GEOM::GEOM_Object>(anIO);
-      if (anObj->_is_nil())
-        return;
-
-      // Clear fields of vertexes if face or 3d block was changed
-      if (anObj != myGeomObj[ mySelInput ] && mySelInput == Object) {
-        for (int i = Vertex1; i <= Vertex2; i++) {
-          myGeomObj[ i ] = GEOM::GEOM_Object::_nil();
-          mySelEdit[ i ]->setText("");
-        }
-      }
-
-      myGeomObj[ mySelInput ] = anObj;
-
-      // Set name of geom object in line edit
-      QString aName;
-      SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aName);
-      mySelEdit[ mySelInput ]->setText(aName);
-    }
-  } catch (const SALOME::SALOME_Exception& S_ex) {
-    SalomeApp_Tools::QtCatchCorbaException(S_ex);
-    resetSelInput();
-  } catch (...) {
-    resetSelInput();
-  }
-
-  updateWgState();
-  displayPreview();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::resetSelInput
-// Purpose : Reset fields corresponding to the current selection input
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::resetSelInput()
-{
-  if (mySelInput == Mesh)
-  {
-    myMesh = SMESH::SMESH_Mesh::_nil();
-    myMeshShape = GEOM::GEOM_Object::_nil();
-  }
-
-  else
-    myGeomObj[ mySelInput ] = GEOM::GEOM_Object::_nil();
-
-  mySelEdit[ mySelInput ]->setText("");
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::onDeactivate
-// Purpose : SLOT called when dialog must be deativated
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::onDeactivate()
-{
-  mySelectionMgr->clearFilters();
-  //if (myReverseChk->isChecked())
-  //  erasePreview();
-  disconnect(mySelectionMgr, 0, this, 0);
-  setEnabled(false);
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::enterEvent
-// Purpose : Event filter
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::enterEvent (QEvent*)
-{
-  if (myIsCreateDlgOpen)
-    return;
-
-  if (myReverseChk->isChecked())
-    displayPreview();
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  setEnabled(true);
-  activateSelection();
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
-  onTextChanged(mySelEdit[Ids]->text());
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::closeEvent
-// Purpose :
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::closeEvent (QCloseEvent*)
-{
-  onClose();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::onSelInputChanged
-// Purpose : SLOT. Called when -> button clicked.
-//           Change current selection input field
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::onSelInputChanged()
-{
-  const QObject* aSender = sender();
-  for (int i = Mesh; i <= Ids; i++)
-    if (aSender == mySelBtn[ i ])
-      mySelInput = i;
-
-  activateSelection();
-  onSelectionDone();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::prepareFilters
-// Purpose : Prepare filters for dialog
-//=======================================================================
-QStringList SMESHGUI_MeshPatternDlg::prepareFilters() const
-{
-  static QStringList aList;
-  if (aList.isEmpty())
-  {
-    aList.append(tr("PATTERN_FILT"));
-    //aList.append(tr("ALL_FILES_FILTER"));
-  }
-
-  return aList;
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::autoExtension
-// Purpose : Append extension to the file name
-//=======================================================================
-QString SMESHGUI_MeshPatternDlg::autoExtension (const QString& theFileName) const
-{
-  QString anExt = theFileName.section('.', -1);
-  return anExt != "smp" && anExt != "SMP" ? theFileName + ".smp" : theFileName;
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::onOpen
-// Purpose : SLOT. Called when "Open" button clicked.
-//           Displays file open dialog
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::onOpen()
-{
-  SUIT_FileDlg* aDlg = new SUIT_FileDlg (this, true);
-  aDlg->setCaption(tr("LOAD_PATTERN"));
-  aDlg->setMode(QFileDialog::ExistingFile);
-  aDlg->setFilters(prepareFilters());
-  if (myName->text() != "")
-    aDlg->setSelection(myName->text() + ".smp");
-  QPushButton* anOkBtn = (QPushButton*)aDlg->child("OK", "QPushButton");
-  if (anOkBtn != 0)
-    anOkBtn->setText(tr("SMESH_BUT_OK"));
-
-  if (aDlg->exec() != Accepted)
-    return;
-
-  QString fName = aDlg->selectedFile();
-  if (fName.isEmpty())
-    return;
-
-  if (QFileInfo(fName).extension().isEmpty())
-    fName = autoExtension(fName);
-
-  fName = QDir::convertSeparators(fName);
-
-  QString prev = QDir::convertSeparators(myName->text());
-  if (prev == fName)
-    return;
-
-  // Read string from file
-  QFile aFile(fName);
-  if (!aFile.open(IO_ReadOnly)) {
-    QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_ERROR"),
-                             tr("ERROR_OF_OPENING"), QMessageBox::Ok);
-    return;
-  }
-
-  QByteArray aDataArray = aFile.readAll();
-  const char* aData = aDataArray.data();
-  if (aData == 0) {
-    QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_ERROR"),
-                             tr("ERROR_OF_READING"), QMessageBox::Ok);
-    return;
-  }
-
-  if (loadFromFile(aData))
-    myName->setText(QFileInfo(fName).baseName());
-
-  updateWgState();
-  displayPreview();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::onCloseCreationDlg
-// Purpose : SLOT. Called when "Pattern creation" dialog closed with "Close"
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::onCloseCreationDlg()
-{
-  setEnabled(true);
-  myIsCreateDlgOpen = false;
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::onOkCreationDlg
-// Purpose : SLOT. Called when "Pattern creation" dialog closed with OK
-//           or SAVE buttons. Initialize myPattern field. Redisplay preview
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::onOkCreationDlg()
-{
-  myPattern = SMESH::SMESH_Pattern::_duplicate(myCreationDlg->GetPattern());
-  myName->setText(myCreationDlg->GetPatternName());
-  displayPreview();
-  setEnabled(true);
-  myIsCreateDlgOpen = false;
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::onNew
-// Purpose : SLOT. Called when "New..." button clicked. Create new pattern
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::onNew()
-{
-  setEnabled(false);
-  myIsCreateDlgOpen = true;
-  if (myCreationDlg == 0)
-  {
-    myCreationDlg = new SMESHGUI_CreatePatternDlg( mySMESHGUI, myType);
-    connect(myCreationDlg, SIGNAL(NewPattern()), SLOT(onOkCreationDlg()));
-    connect(myCreationDlg, SIGNAL(Close()), SLOT(onCloseCreationDlg()));
-  }
-  else
-    myCreationDlg->Init(myType);
-
-  myCreationDlg->SetMesh(myMesh);
-  myCreationDlg->show();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::onReverse
-// Purpose : SLOT. Called when state of "Reverse order..." checkbox chaged
-//           Calculate new points of the mesh to be created. Redisplay preview
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::onReverse (bool)
-{
-  displayPreview();
-}
-
-//=======================================================================
-
-// name    : SMESHGUI_MeshPatternDlg::onPreview
-// Purpose : SLOT. Called when state of "Preview" checkbox changed
-//           Display/Erase preview
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::onPreview (bool)
-{
-  displayPreview();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::displayPreview
-// Purpose : Display preview
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::displayPreview()
-{
-  try {
-    // Redisplay preview in dialog
-    SMESH::point_array_var pnts = myPattern->GetPoints();
-    SMESH::long_array_var keyPoints = myPattern->GetKeyPoints();
-    SMESH::array_of_long_array_var elemPoints = myPattern->GetElementPoints(false);
-
-    if (pnts->length()       == 0 ||
-        keyPoints->length()  == 0 ||
-        elemPoints->length() == 0) {
-      erasePreview();
-      return;
-    } else {
-      PointVector aPoints(pnts->length());
-      QValueVector<int> aKeyPoints(keyPoints->length());
-      ConnectivityVector anElemPoints(elemPoints->length());
-
-      for (int i = 0, n = pnts->length(); i < n; i++)
-        aPoints[ i ] = pnts[ i ];
-
-      for (int i2 = 0, n2 = keyPoints->length(); i2 < n2; i2++)
-        aKeyPoints[ i2 ] = keyPoints[ i2 ];
-
-      for (int i3 = 0, n3 = elemPoints->length(); i3 < n3; i3++) {
-        QValueVector<int> aVec(elemPoints[ i3 ].length());
-        for (int i4 = 0, n4 = elemPoints[ i3 ].length(); i4 < n4; i4++)
-          aVec[ i4 ] = elemPoints[ i3 ][ i4 ];
-
-        anElemPoints[ i3 ] = aVec;
-      }
-
-      myPicture2d->SetPoints(aPoints, aKeyPoints, anElemPoints);
-    }
-
-    // Redisplay preview in 3D viewer
-    if (myPreviewActor != 0) {
-      if (SVTK_ViewWindow* vf = SMESH::GetCurrentVtkView()) {
-        vf->RemoveActor(myPreviewActor);
-        vf->Repaint();
-      }
-      myPreviewActor->Delete();
-      myPreviewActor = 0;
-    }
-
-    if (!myPreviewChk->isChecked() || !isValid(false))
-      return;
-
-    vtkUnstructuredGrid* aGrid = getGrid();
-    if (aGrid == 0)
-      return;
-
-    // Create and display actor
-    vtkDataSetMapper* aMapper = vtkDataSetMapper::New();
-    aMapper->SetInput(aGrid);
-
-    myPreviewActor = SALOME_Actor::New();
-    myPreviewActor->PickableOff();
-    myPreviewActor->SetMapper(aMapper);
-
-    vtkProperty* aProp = vtkProperty::New();
-    aProp->SetRepresentationToWireframe();
-    aProp->SetColor(250, 0, 250);
-    if (SMESH::FindActorByObject(myMesh))
-      aProp->SetLineWidth( SMESH::GetFloat( "SMESH:element_width", 1 ) + 1 );
-    else
-      aProp->SetLineWidth(1);
-    myPreviewActor->SetProperty(aProp);
-
-    myPreviewActor->SetRepresentation(3);
-
-    SMESH::GetCurrentVtkView()->AddActor(myPreviewActor);
-    SMESH::GetCurrentVtkView()->Repaint();
-
-    aProp->Delete();
-    aGrid->Delete();
-  } catch (const SALOME::SALOME_Exception& S_ex) {
-    SalomeApp_Tools::QtCatchCorbaException(S_ex);
-    erasePreview();
-  } catch (...) {
-    erasePreview();
-  }
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::erasePreview
-// Purpose : Erase preview
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::erasePreview()
-{
-  // Erase preview in 2D viewer
-  myPicture2d->SetPoints(PointVector(), QValueVector<int>(), ConnectivityVector());
-
-  // Erase preview in 3D viewer
-  if (myPreviewActor == 0)
-    return;
-
-
-  if (SVTK_ViewWindow* vf = SMESH::GetCurrentVtkView())
-  {
-    vf->RemoveActor(myPreviewActor);
-    vf->Repaint();
-  }
-  myPreviewActor->Delete();
-  myPreviewActor = 0;
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::updateWgState
-// Purpose : Enable/disable selection widgets
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::updateWgState()
-{
-  if (myMesh->_is_nil()) {
-    for (int i = Object; i <= Ids; i++) {
-      mySelBtn [ i ]->setEnabled(false);
-      mySelEdit[ i ]->setEnabled(false);
-      mySelEdit[ i ]->setText("");
-    }
-    myNode1->setEnabled(false);
-    myNode2->setEnabled(false);
-    myNode1->setRange(0, 0);
-    myNode2->setRange(0, 0);
-  } else {
-    mySelBtn [ Object ]->setEnabled(true);
-    mySelEdit[ Object ]->setEnabled(true);
-    mySelBtn [ Ids ]   ->setEnabled(true);
-    mySelEdit[ Ids ]   ->setEnabled(true);
-
-    if (myGeomObj[ Object ]->_is_nil()) {
-      for (int i = Vertex1; i <= Vertex2; i++) {
-        mySelBtn [ i ]->setEnabled(false);
-        mySelEdit[ i ]->setEnabled(false);
-        mySelEdit[ i ]->setText("");
-      }
-    } else {
-      for (int i = Object; i <= Vertex2; i++) {
-        mySelBtn [ i ]->setEnabled(true);
-        mySelEdit[ i ]->setEnabled(true);
-      }
-    }
-
-    QValueList<int> ids;
-    if (!CORBA::is_nil(myPattern) && getIds(ids)) {
-      SMESH::long_array_var keyPoints = myPattern->GetKeyPoints();
-      if (keyPoints->length()) {
-       myNode1->setEnabled(true);
-       myNode2->setEnabled(true);
-       myNode1->setRange(1, keyPoints->length());
-       myNode2->setRange(1, keyPoints->length());
-       return;
-      }
-    }
-
-    myNode1->setEnabled(false);
-    myNode2->setEnabled(false);
-    myNode1->setRange(0, 0);
-    myNode2->setRange(0, 0);
-  }
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::activateSelection
-// Purpose : Activate selection in accordance with current selection input
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::activateSelection()
-{
-  mySelectionMgr->clearFilters();
-  if (mySelInput == Ids) {
-    SMESH_Actor* anActor = SMESH::FindActorByObject(myMesh);
-    if (anActor)
-      SMESH::SetPickable(anActor);
-
-    if (myType == Type_2d)
-      {
-       if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-         aViewWindow->SetSelectionMode(FaceSelection);
-      }
-    else
-      {
-       if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-         aViewWindow->SetSelectionMode(CellSelection);
-      }
-  }
-  else {
-    SMESH::SetPickable();
-    //mySelectionMgr->setSelectionModes(ActorSelection);
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(ActorSelection);
-  }
-
-  if (mySelInput == Object && !myMeshShape->_is_nil()) {
-    if (myType == Type_2d) {
-      if (myNbPoints > 0)
-        mySelectionMgr->installFilter
-          (new SMESH_NumberFilter ("GEOM", TopAbs_VERTEX, myNbPoints, TopAbs_FACE, myMeshShape));
-      else
-        mySelectionMgr->installFilter
-          (new SMESH_NumberFilter ("GEOM", TopAbs_SHAPE, myNbPoints, TopAbs_FACE, myMeshShape));
-    } else {
-      TColStd_MapOfInteger aTypes;
-      aTypes.Add(TopAbs_SHELL);
-      aTypes.Add(TopAbs_SOLID);
-      mySelectionMgr->installFilter
-        (new SMESH_NumberFilter ("GEOM", TopAbs_FACE, 6, aTypes, myMeshShape, true));
-    }
-  } else if ((mySelInput == Vertex1 || mySelInput == Vertex2) && !myGeomObj[ Object ]->_is_nil()) {
-    mySelectionMgr->installFilter
-      (new SMESH_NumberFilter ("GEOM", TopAbs_SHAPE, 1, TopAbs_VERTEX, myGeomObj[ Object ]));
-  } else {
-  }
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::loadFromFile
-// Purpose : Load pattern from file
-//=======================================================================
-bool SMESHGUI_MeshPatternDlg::loadFromFile (const QString& theName)
-{
-  try {
-    SMESH::SMESH_Pattern_var aPattern = SMESH::GetPattern();
-
-    if (!aPattern->LoadFromFile(theName.latin1()) ||
-        myType == Type_2d && !aPattern->Is2D()) {
-      SMESH::SMESH_Pattern::ErrorCode aCode = aPattern->GetErrorCode();
-      QString aMess;
-      if      (aCode == SMESH::SMESH_Pattern::ERR_READ_NB_POINTS     ) aMess = tr("ERR_READ_NB_POINTS");
-      else if (aCode == SMESH::SMESH_Pattern::ERR_READ_POINT_COORDS  ) aMess = tr("ERR_READ_POINT_COORDS");
-      else if (aCode == SMESH::SMESH_Pattern::ERR_READ_TOO_FEW_POINTS) aMess = tr("ERR_READ_TOO_FEW_POINTS");
-      else if (aCode == SMESH::SMESH_Pattern::ERR_READ_3D_COORD      ) aMess = tr("ERR_READ_3D_COORD");
-      else if (aCode == SMESH::SMESH_Pattern::ERR_READ_NO_KEYPOINT   ) aMess = tr("ERR_READ_NO_KEYPOINT");
-      else if (aCode == SMESH::SMESH_Pattern::ERR_READ_BAD_INDEX     ) aMess = tr("ERR_READ_BAD_INDEX");
-      else if (aCode == SMESH::SMESH_Pattern::ERR_READ_ELEM_POINTS   ) aMess = tr("ERR_READ_ELEM_POINTS");
-      else if (aCode == SMESH::SMESH_Pattern::ERR_READ_NO_ELEMS      ) aMess = tr("ERR_READ_NO_ELEMS");
-      else if (aCode == SMESH::SMESH_Pattern::ERR_READ_BAD_KEY_POINT ) aMess = tr("ERR_READ_BAD_KEY_POINT");
-      else                                                             aMess = tr("ERROR_OF_LOADING");
-
-      QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_ERROR"), aMess, QMessageBox::Ok);
-      return false;
-    } else {
-      myPattern = aPattern;
-      return true;
-    }
-  } catch (const SALOME::SALOME_Exception& S_ex) {
-    SalomeApp_Tools::QtCatchCorbaException(S_ex);
-    QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_ERROR"),
-                             tr("ERROR_OF_LOADING"), QMessageBox::Ok);
-      return false;
-  }
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::onTypeChanged
-// Purpose : SLOT. Called when pattern type changed.
-//           Change dialog's look and feel
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::onTypeChanged (int theType)
-{
-  if (myType == theType)
-    return;
-
-  myType = theType;
-
-  myNbPoints = -1;
-  myGeomObj[ Object  ] = GEOM::GEOM_Object::_nil();
-  myGeomObj[ Vertex1 ] = GEOM::GEOM_Object::_nil();
-  myGeomObj[ Vertex2 ] = GEOM::GEOM_Object::_nil();
-  myPattern = SMESH::GetPattern();
-
-  myName->setText("");
-  mySelEdit[ Object  ]->setText("");
-  mySelEdit[ Vertex1 ]->setText("");
-  mySelEdit[ Vertex2 ]->setText("");
-  mySelEdit[ Ids ]    ->setText("");
-  myCreatePolygonsChk->show();
-  myCreatePolyedrsChk->show();
-
-  if (theType == Type_2d) {
-    // Geom widgets
-    mySelLbl [ Vertex2 ]->hide();
-    mySelBtn [ Vertex2 ]->hide();
-    mySelEdit[ Vertex2 ]->hide();
-    myReverseChk->show();
-    myPicture2d->show();
-    myPicture3d->hide();
-    mySelLbl[ Object  ]->setText(tr("FACE"));
-    mySelLbl[ Vertex1 ]->setText(tr("VERTEX"));
-    // Refine widgets
-    mySelLbl[ Ids ]->setText(tr("MESH_FACES"));
-    myNode2Lbl->hide();
-    myNode2   ->hide();
-  } else {
-    // Geom widgets
-    mySelLbl [ Vertex2 ]->show();
-    mySelBtn [ Vertex2 ]->show();
-    mySelEdit[ Vertex2 ]->show();
-    myReverseChk->hide();
-    myPicture2d->hide();
-    myPicture3d->show();
-    mySelLbl[ Object  ]->setText(tr("3D_BLOCK"));
-    mySelLbl[ Vertex1 ]->setText(tr("VERTEX1"));
-    mySelLbl[ Vertex2 ]->setText(tr("VERTEX2"));
-    // Refine widgets
-    mySelLbl[ Ids ]->setText(tr("MESH_VOLUMES"));
-    myNode2Lbl->show();
-    myNode2   ->show();
-  }
-
-  mySelInput = Mesh;
-  activateSelection();
-  updateWgState();
-  displayPreview();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MeshPatternDlg::getGrid
-// Purpose : Get unstructured grid for pattern
-//=======================================================================
-vtkUnstructuredGrid* SMESHGUI_MeshPatternDlg::getGrid()
-{
-  try {
-    // Get points from pattern
-    SMESH::point_array_var pnts;
-    QValueList<int> ids;
-    if (isRefine() && getIds(ids)) {
-      SMESH::long_array_var varIds = new SMESH::long_array();
-      varIds->length(ids.count());
-      int i = 0;
-      for (QValueList<int>::iterator it = ids.begin(); it != ids.end(); ++it)
-       varIds[i++] = *it;
-      pnts = myType == Type_2d
-       ? myPattern->ApplyToMeshFaces  (myMesh, varIds, getNode(false), myReverseChk->isChecked())
-       : myPattern->ApplyToHexahedrons(myMesh, varIds, getNode(false), getNode(true));
-    } else {
-      pnts = myType == Type_2d
-       ? myPattern->ApplyToFace   (myGeomObj[ Object ], myGeomObj[ Vertex1 ], myReverseChk->isChecked())
-      : myPattern->ApplyTo3DBlock(myGeomObj[ Object ], myGeomObj[ Vertex1 ], myGeomObj[ Vertex2 ]);
-    }
-
-    SMESH::array_of_long_array_var elemPoints = myPattern->GetElementPoints(true);
-
-    if (pnts->length() == 0 || elemPoints->length() == 0)
-      return 0;
-
-    // to do : to be removed /////////////////////////////////////////////
-
-#ifdef DEB_SLN
-    for (int i1 = 0, n1 = pnts->length(); i1 < n1; i1++)
-      printf("%d: %g %g %g\n", i1, pnts[ i1 ].x, pnts[ i1 ].y, pnts[ i1 ].z);
-
-    printf("\nELEMENTS : \n");
-    for (int i2 = 0, n2 = elemPoints->length(); i2 < n2; i2++)
-    {
-
-      printf("%d: ", i2);
-      for (int i3 = 0, n3 = elemPoints[ i2 ].length(); i3 < n3; i3++)
-        printf("%d ", elemPoints[ i2 ][ i3 ]);
-
-      printf("\n");
-
-    }
-#endif
-    //////////////////////////////////////////////////////////////////////
-
-    // Calculate number of points used for cell
-    vtkIdType aNbCells = elemPoints->length();
-    vtkIdType aCellsSize = 0;
-    for (int i = 0, n = elemPoints->length(); i < n; i++)
-      aCellsSize += elemPoints[ i ].length();
-
-    // Create unstructured grid and other  usefull arrays
-    vtkUnstructuredGrid* aGrid = vtkUnstructuredGrid::New();
-
-    vtkCellArray* aConnectivity = vtkCellArray::New();
-    aConnectivity->Allocate(aCellsSize, 0);
-
-    vtkPoints* aPoints = vtkPoints::New();
-    aPoints->SetNumberOfPoints(pnts->length());
-
-    vtkUnsignedCharArray* aCellTypesArray = vtkUnsignedCharArray::New();
-    aCellTypesArray->SetNumberOfComponents(1);
-    aCellTypesArray->Allocate(aNbCells * aCellTypesArray->GetNumberOfComponents());
-
-    vtkIdList *anIdList = vtkIdList::New();
-
-    // Fill array of points
-    for (int p = 0, nbPnt = pnts->length(); p < nbPnt; p++)
-      aPoints->SetPoint(p, pnts[ p ].x, pnts[ p ].y, pnts[ p ].z);
-
-    for (int e = 0, nbElem = elemPoints->length(); e < nbElem; e++) {
-      int nbPoints = elemPoints[ e ].length();
-      anIdList->SetNumberOfIds(nbPoints);
-      for (int i = 0; i < nbPoints; i++)
-        anIdList->SetId(i, elemPoints[ e ][ i ]);
-
-      aConnectivity->InsertNextCell(anIdList);
-
-      if      (nbPoints == 3) aCellTypesArray->InsertNextValue(VTK_TRIANGLE);
-      else if (nbPoints == 5) aCellTypesArray->InsertNextValue(VTK_PYRAMID);
-      else if (nbPoints == 6) aCellTypesArray->InsertNextValue(VTK_WEDGE);
-      else if (nbPoints == 8) aCellTypesArray->InsertNextValue(VTK_HEXAHEDRON);
-      else if (nbPoints == 4 && myType == Type_2d) aCellTypesArray->InsertNextValue(VTK_QUAD);
-      else if (nbPoints == 4 && myType == Type_3d) aCellTypesArray->InsertNextValue(VTK_TETRA);
-      else aCellTypesArray->InsertNextValue(VTK_EMPTY_CELL);
-    }
-
-    vtkIntArray* aCellLocationsArray = vtkIntArray::New();
-    aCellLocationsArray->SetNumberOfComponents(1);
-    aCellLocationsArray->SetNumberOfTuples(aNbCells);
-
-    aConnectivity->InitTraversal();
-    for (vtkIdType idType = 0, *pts, npts; aConnectivity->GetNextCell(npts, pts); idType++)
-      aCellLocationsArray->SetValue(idType, aConnectivity->GetTraversalLocation(npts));
-
-    aGrid->SetPoints(aPoints);
-    aGrid->SetCells(aCellTypesArray, aCellLocationsArray,aConnectivity);
-
-    aConnectivity->Delete();
-    aPoints->Delete();
-    aCellTypesArray->Delete();
-    anIdList->Delete();
-    aCellLocationsArray->Delete();
-
-    return aGrid;
-  } catch (...) {
-    return 0;
-  }
-}
-
-//=======================================================================
-// name    : onModeToggled
-// Purpose :
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::onModeToggled (bool on)
-{
-  on ? myRefineGrp->show() : myRefineGrp->hide();
-  on ? myGeomGrp->hide()   : myGeomGrp->show();
-
-  displayPreview();
-}
-
-//=======================================================================
-// name    : isRefine
-// Purpose :
-//=======================================================================
-bool SMESHGUI_MeshPatternDlg::isRefine() const
-{
-  return myRefine->isChecked();
-}
-
-//=======================================================================
-// name    : onTextChanged
-// Purpose :
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::onTextChanged (const QString& theNewText)
-{
-  if (myBusy || !isRefine())
-    return;
-
-  myBusy = true;
-
-  if (mySelInput != Ids) {
-    mySelInput = Ids;
-    activateSelection();
-  }
-
-  // hilight entered elements/nodes
-  SMDS_Mesh* aMesh = 0;
-  SMESH_Actor* anActor = SMESH::FindActorByObject(myMesh);
-  if (anActor)
-    aMesh = anActor->GetObject()->GetMesh();
-
-  if (aMesh) {
-    QStringList aListId = QStringList::split(" ", theNewText, false);
-
-    TColStd_MapOfInteger newIndices;
-
-    for (int i = 0; i < aListId.count(); i++) {
-      const SMDS_MeshElement * e = aMesh->FindElement(aListId[ i ].toInt());
-      if (e && e->GetType() == (myType == Type_2d ? SMDSAbs_Face : SMDSAbs_Volume))
-       newIndices.Add(e->GetID());
-    }
-    mySelector->AddOrRemoveIndex( anActor->getIO(), newIndices, false);
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->highlight( anActor->getIO(), true, true );
-  }
-
-  myBusy = false;
-}
-
-//=======================================================================
-// name    : onNodeChanged
-// Purpose :
-//=======================================================================
-void SMESHGUI_MeshPatternDlg::onNodeChanged (int value)
-{
-  if (myType == Type_3d) {
-    QSpinBox* first = (QSpinBox*)sender();
-    QSpinBox* second = first == myNode1 ? myNode2 : myNode1;
-    int secondVal = second->value();
-    if (secondVal == value) {
-      secondVal = value == second->maxValue() ? second->minValue() : value + 1;
-      bool blocked = second->signalsBlocked();
-      second->blockSignals(true);
-      second->setValue(secondVal);
-      second->blockSignals(blocked);
-    }
-  }
-
-  displayPreview();
-}
-
-//=======================================================================
-// name    : getIds
-// Purpose :
-//=======================================================================
-bool SMESHGUI_MeshPatternDlg::getIds (QValueList<int>& ids) const
-{
-  ids.clear();
-  QStringList strIds = QStringList::split(" ", mySelEdit[Ids]->text());
-  bool isOk;
-  int val;
-  for (QStringList::iterator it = strIds.begin(); it != strIds.end(); ++it) {
-    val = (*it).toInt(&isOk);
-    if (isOk)
-      ids.append(val);
-  }
-
-  return ids.count();
-}
-
-//=======================================================================
-// name    : getNode1
-// Purpose :
-//=======================================================================
-int SMESHGUI_MeshPatternDlg::getNode (bool second) const
-{
-  return second ? myNode2->value() - 1 : myNode1->value() - 1;
-}
diff --git a/src/SMESHGUI/SMESHGUI_MeshPatternDlg.h b/src/SMESHGUI/SMESHGUI_MeshPatternDlg.h
deleted file mode 100755 (executable)
index c09ab44..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_MeshPatternDlg.h
-//  Author : Sergey LITONIN
-//  Module : SMESH
-
-
-#ifndef SMESHGUI_MeshPatternDlg_H
-#define SMESHGUI_MeshPatternDlg_H
-
-#include <qdialog.h>
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-#include CORBA_SERVER_HEADER(SMESH_Pattern)
-
-class QCloseEvent;
-class QFrame;
-class QLineEdit;
-class SMESHGUI_SpinBox;
-class QPushButton;
-class SalomeApp_SelectionMgr;
-class QRadioButton;
-class QCheckBox;
-class QButtonGroup;
-class QLabel;
-class QSpinBox;
-class QGroupBox;
-class SMESHGUI_CreatePatternDlg;
-class SMESHGUI_PatternWidget;
-class vtkUnstructuredGrid;
-class SALOME_Actor;
-class SVTK_ViewWindow;
-class SVTK_Selector;
-class SMESHGUI;
-
-/*
-  Class       : SMESHGUI_MeshPatternDlg
-  Description : Dialog to specify filters for VTK viewer
-*/
-
-class SMESHGUI_MeshPatternDlg : public QDialog
-{
-  Q_OBJECT
-
-  // Pattern type
-  enum { Type_2d, Type_3d };
-
-  // selection input
-  enum { Mesh, Object, Vertex1, Vertex2, Ids };
-
-public:
-                                      SMESHGUI_MeshPatternDlg( SMESHGUI*,
-                                                               const char* = 0 );
-  virtual                             ~SMESHGUI_MeshPatternDlg();
-
-  void                                Init();
-  
-private slots:
-
-  void                                onOk();
-  bool                                onApply();
-  void                                onClose();
-
-  void                                onDeactivate();
-
-  void                                onSelectionDone();
-  void                                onSelInputChanged();
-
-  void                                onTypeChanged( int );
-  void                                onModeToggled( bool );
-  void                                onOpen();
-  void                                onNew();
-  void                                onReverse( bool );
-  void                                onPreview( bool );
-  void                                onOkCreationDlg();
-  void                                onCloseCreationDlg();
-  void                                onTextChanged( const QString& );
-  void                                onNodeChanged( int value );
-
-private:
-
-  QFrame*                             createButtonFrame( QWidget* );
-  QFrame*                             createMainFrame  ( QWidget* );
-  void                                displayPreview();
-  vtkUnstructuredGrid*                getGrid();
-  void                                erasePreview();
-  void                                updateWgState();
-  bool                                loadFromFile( const QString& );
-  void                                activateSelection();
-  QStringList                         prepareFilters() const;
-  QString                             autoExtension( const QString& theFileName ) const;
-  void                                closeEvent( QCloseEvent* e ) ;
-  void                                enterEvent ( QEvent * ) ;
-  bool                                isValid( const bool theMess = true );
-  void                                resetSelInput();
-  bool                                isRefine() const;
-
-  bool                                getIds( QValueList<int>& ) const;
-  int                                 getNode( bool = false ) const;
-
-private:
-
-  QPushButton*                        myOkBtn;
-  QPushButton*                        myApplyBtn;
-  QPushButton*                        myCloseBtn;
-
-  QButtonGroup*                       myTypeGrp;
-  QRadioButton*                       mySwitch2d;
-  QRadioButton*                       mySwitch3d;
-
-  QCheckBox*                          myRefine;
-
-  QFrame*                             myRefineGrp;
-  QSpinBox*                           myNode1;
-  QSpinBox*                           myNode2;
-  QLabel*                             myNode2Lbl;
-
-  QGroupBox*                          myGeomGrp;
-  QMap< int, QPushButton* >           mySelBtn;
-  QMap< int, QLineEdit* >             mySelEdit;
-  QMap< int, QLabel* >                mySelLbl;
-
-  QLineEdit*                          myName;
-  QPushButton*                        myOpenBtn;
-  QPushButton*                        myNewBtn;
-
-  QCheckBox*                          myReverseChk;
-  QCheckBox*                          myCreatePolygonsChk;
-  QCheckBox*                          myCreatePolyedrsChk;
-  SMESHGUI_PatternWidget*             myPicture2d;
-  QFrame*                             myPicture3d;
-  QLabel*                             myPreview3d;
-
-  QCheckBox*                          myPreviewChk;
-
-  SMESHGUI*                           mySMESHGUI;
-  SVTK_Selector*                      mySelector;
-  SalomeApp_SelectionMgr*             mySelectionMgr;
-  int                                 mySelInput;
-  int                                 myNbPoints;
-  int                                 myType;
-  bool                                myIsCreateDlgOpen;
-  bool                                myBusy;
-
-  SMESH::SMESH_Mesh_var               myMesh;
-  GEOM::GEOM_Object_var               myMeshShape;
-  QMap< int, GEOM::GEOM_Object_var >  myGeomObj;
-  
-  SMESHGUI_CreatePatternDlg*          myCreationDlg;
-  SMESH::SMESH_Pattern_var            myPattern;
-  SALOME_Actor*                       myPreviewActor;
-};
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_MeshUtils.cxx b/src/SMESHGUI/SMESHGUI_MeshUtils.cxx
deleted file mode 100644 (file)
index 9c8d313..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-
-
-#include "SMESHGUI_MeshUtils.h"
-#include "SMESHGUI_Utils.h"
-
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Group)
-
-namespace SMESH
-{
-  
-  SMESH_Mesh_var GetMeshByIO(const Handle(SALOME_InteractiveObject)& theIO)
-  {
-    CORBA::Object_var anObj = IObjectToObject(theIO);
-    if(!CORBA::is_nil(anObj)){
-      SMESH_Mesh_var aMesh = SMESH_Mesh::_narrow(anObj);
-      if(!CORBA::is_nil(aMesh))
-       return aMesh;
-      SMESH_GroupBase_var aGroup = SMESH_GroupBase::_narrow(anObj);
-      if(!CORBA::is_nil(aGroup))
-       return aGroup->GetMesh();
-      SMESH_subMesh_var aSubMesh = SMESH_subMesh::_narrow(anObj);
-      if(!CORBA::is_nil(aSubMesh))
-       return aSubMesh->GetFather();
-    }
-    return SMESH_Mesh::_nil();
-  }
-
-}
diff --git a/src/SMESHGUI/SMESHGUI_MeshUtils.h b/src/SMESHGUI/SMESHGUI_MeshUtils.h
deleted file mode 100644 (file)
index 011de34..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef SMESHGUI_MeshUtils_HeaderFile
-#define SMESHGUI_MeshUtils_HeaderFile
-
-#include "SALOME_InteractiveObject.hxx"
-
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-
-namespace SMESH{
-
-  SMESH_Mesh_var GetMeshByIO(const Handle(SALOME_InteractiveObject)& theIO);
-
-}
-
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_MoveNodesDlg.cxx b/src/SMESHGUI/SMESHGUI_MoveNodesDlg.cxx
deleted file mode 100644 (file)
index 944a6d2..0000000
+++ /dev/null
@@ -1,564 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_MoveNodesDlg.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_MoveNodesDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_SpinBox.h"
-#include "SMESHGUI_IdValidator.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_MeshUtils.h"
-
-#include "SMESH_Actor.h"
-#include "SMDS_Mesh.hxx"
-#include "SMDS_MeshNode.hxx"
-
-#include "SalomeApp_SelectionMgr.h"
-#include "SUIT_ResourceMgr.h"
-#include "SUIT_Desktop.h"
-
-#include "SVTK_Selector.h"
-#include "SVTK_ViewModel.h"
-#include "SVTK_ViewWindow.h"
-#include "SALOME_ListIO.hxx"
-
-#include "SVTK_ViewWindow.h"
-
-#include "utilities.h"
-
-// OCCT includes
-#include <TColStd_MapOfInteger.hxx>
-
-// VTK includes
-#include <vtkCell.h>
-#include <vtkIdList.h>
-#include <vtkIntArray.h>
-#include <vtkCellArray.h>
-#include <vtkUnsignedCharArray.h>
-#include <vtkUnstructuredGrid.h>
-#include <vtkDataSetMapper.h>
-
-// QT includes
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qlayout.h>
-#include <qpixmap.h>
-#include <qmessagebox.h>
-#include <qbuttongroup.h>
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-#define MARGIN  10
-#define SPACING 5
-
-
-//=================================================================================
-// name    : SMESHGUI_MoveNodesDlg::SMESHGUI_MoveNodesDlg
-// Purpose :
-//=================================================================================
-SMESHGUI_MoveNodesDlg::SMESHGUI_MoveNodesDlg (SMESHGUI* theModule, 
-                                             const char* theName):
-  QDialog(SMESH::GetDesktop(theModule), 
-         theName, 
-         false,
-         WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
-  mySelectionMgr(SMESH::GetSelectionMgr(theModule)),
-  mySMESHGUI(theModule)
-{
-  myPreviewActor = 0;
-  myBusy = false;
-
-  setCaption(tr("CAPTION"));
-
-  QVBoxLayout* aDlgLay = new QVBoxLayout (this, MARGIN, SPACING);
-
-  QFrame* aMainFrame = createMainFrame  (this);
-  QFrame* aBtnFrame  = createButtonFrame(this);
-
-  aDlgLay->addWidget(aMainFrame);
-  aDlgLay->addWidget(aBtnFrame);
-
-  aDlgLay->setStretchFactor(aMainFrame, 1);
-
-  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
-
-  Init();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::createButtonFrame
-// Purpose : Create frame containing buttons
-//=======================================================================
-QFrame* SMESHGUI_MoveNodesDlg::createButtonFrame (QWidget* theParent)
-{
-  QFrame* aFrame = new QFrame(theParent);
-  aFrame->setFrameStyle(QFrame::Box | QFrame::Sunken);
-
-  myOkBtn     = new QPushButton(tr("SMESH_BUT_OK"   ), aFrame);
-  myApplyBtn  = new QPushButton(tr("SMESH_BUT_APPLY"), aFrame);
-  myCloseBtn  = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame);
-
-  QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
-
-  QHBoxLayout* aLay = new QHBoxLayout(aFrame, MARGIN, SPACING);
-
-  aLay->addWidget(myOkBtn);
-  aLay->addWidget(myApplyBtn);
-  aLay->addItem(aSpacer);
-  aLay->addWidget(myCloseBtn);
-
-  connect(myOkBtn,    SIGNAL(clicked()), SLOT(onOk()));
-  connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
-  connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
-
-  return aFrame;
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::createMainFrame
-// Purpose : Create frame containing dialog's input fields
-//=======================================================================
-QFrame* SMESHGUI_MoveNodesDlg::createMainFrame (QWidget* theParent)
-{
-  QFrame* aFrame = new QFrame(theParent);
-
-  QPixmap iconMoveNode (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_DLG_MOVE_NODE")));
-  QPixmap iconSelect   (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
-
-  QButtonGroup* aPixGrp = new QButtonGroup(1, Qt::Vertical, tr("MESH_NODE"), aFrame);
-  aPixGrp->setExclusive(TRUE);
-  QRadioButton* aRBut = new QRadioButton(aPixGrp);
-  aRBut->setPixmap(iconMoveNode);
-  aRBut->setChecked(TRUE);
-
-  QGroupBox* anIdGrp = new QGroupBox(1, Qt::Vertical, tr("SMESH_MOVE"), aFrame);
-  new QLabel(tr("NODE_ID"), anIdGrp);
-  (new QPushButton(anIdGrp))->setPixmap(iconSelect);
-  myId = new QLineEdit(anIdGrp);
-  myId->setValidator(new SMESHGUI_IdValidator(this, "validator", 1));
-
-  QGroupBox* aCoordGrp = new QGroupBox(1, Qt::Vertical, tr("SMESH_COORDINATES"), aFrame);
-  new QLabel(tr("SMESH_X"), aCoordGrp);
-  myX = new SMESHGUI_SpinBox(aCoordGrp);
-  new QLabel(tr("SMESH_Y"), aCoordGrp);
-  myY = new SMESHGUI_SpinBox(aCoordGrp);
-  new QLabel(tr("SMESH_Z"), aCoordGrp);
-  myZ = new SMESHGUI_SpinBox(aCoordGrp);
-
-  myX->RangeStepAndValidator(-999999.999, +999999.999, 25.0, 3);
-  myY->RangeStepAndValidator(-999999.999, +999999.999, 25.0, 3);
-  myZ->RangeStepAndValidator(-999999.999, +999999.999, 25.0, 3);
-
-  QVBoxLayout* aLay = new QVBoxLayout(aFrame);
-  aLay->addWidget(aPixGrp);
-  aLay->addWidget(anIdGrp);
-  aLay->addWidget(aCoordGrp);
-
-  // connect signale and slots
-  connect(myX, SIGNAL (valueChanged(double)), this, SLOT(redisplayPreview()));
-  connect(myY, SIGNAL (valueChanged(double)), this, SLOT(redisplayPreview()));
-  connect(myZ, SIGNAL (valueChanged(double)), this, SLOT(redisplayPreview()));
-  connect(myId, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
-
-  return aFrame;
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::~SMESHGUI_MoveNodesDlg
-// Purpose :
-//=======================================================================
-SMESHGUI_MoveNodesDlg::~SMESHGUI_MoveNodesDlg()
-{
-  erasePreview();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::Init
-// Purpose : Init dialog fields
-//=======================================================================
-void SMESHGUI_MoveNodesDlg::Init()
-{
-  myPreviewActor = 0;
-  myMeshActor = 0;
-  myBusy = false;
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  // selection and SMESHGUI
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
-  connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
-  connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
-
-  reset();
-  setEnabled(true);
-
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show();
-
-  // set selection mode
-  SMESH::SetPointRepresentation(true);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(NodeSelection);
-
-  onSelectionDone();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::isValid
-// Purpose : Verify validity of entry information
-//=======================================================================
-bool SMESHGUI_MoveNodesDlg::isValid (const bool theMess) const
-{
-  if (myId->text().isEmpty()) {
-    if (theMess)
-      QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_WARNING"),
-                               tr("NODE_ID_IS_NOT_DEFINED"), QMessageBox::Ok);
-    return false;
-  }
-  return true;
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::reset
-// Purpose : Reset the dialog state
-//=======================================================================
-void SMESHGUI_MoveNodesDlg::reset()
-{
-  myId->clear();
-  myX->SetValue(0);
-  myY->SetValue(0);
-  myZ->SetValue(0);
-  redisplayPreview();
-  updateButtons();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::onApply
-// Purpose : SLOT called when "Apply" button pressed.
-//=======================================================================
-bool SMESHGUI_MoveNodesDlg::onApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return false;
-
-  if (!isValid(true))
-    return false;
-
-  SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO(myMeshActor->getIO());
-  if (aMesh->_is_nil()) {
-    QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_ERROR"),
-                             tr("SMESHG_NO_MESH"), QMessageBox::Ok);
-    return false;
-  }
-
-  SMESH::SMESH_MeshEditor_var aMeshEditor = aMesh->GetMeshEditor();
-  if (aMeshEditor->_is_nil())
-    return false;
-
-  int anId = myId->text().toInt();
-  bool aResult = false;
-  try {
-    aResult = aMeshEditor->MoveNode(anId, myX->GetValue(), myY->GetValue(), myZ->GetValue());
-  } catch (...) {
-  }
-
-  if (aResult) {
-    SALOME_ListIO aList;
-    aList.Append(myMeshActor->getIO());
-    mySelectionMgr->setSelectedObjects(aList,false);
-    SMESH::UpdateView();
-    reset();
-  }
-
-  return aResult;
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::onOk
-// Purpose : SLOT called when "Ok" button pressed.
-//=======================================================================
-void SMESHGUI_MoveNodesDlg::onOk()
-{
-  if (onApply())
-    onClose();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::onClose
-// Purpose : SLOT called when "Close" button pressed. Close dialog
-//=======================================================================
-void SMESHGUI_MoveNodesDlg::onClose()
-{
-  mySelectionMgr->clearSelected();
-  SMESH::SetPointRepresentation(false);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-  disconnect(mySelectionMgr, 0, this, 0);
-  disconnect(mySMESHGUI, 0, this, 0);
-  mySMESHGUI->ResetState();
-  reject();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::onTextChange
-// Purpose :
-//=======================================================================
-void SMESHGUI_MoveNodesDlg::onTextChange (const QString& theNewText)
-{
-  if (myBusy) return;
-
-  myOkBtn->setEnabled(false);
-  myApplyBtn->setEnabled(false);
-  erasePreview();
-
-  // select entered node
-  if(myMeshActor){
-    if(SMDS_Mesh* aMesh = myMeshActor->GetObject()->GetMesh()){
-      myBusy = true;
-      Handle(SALOME_InteractiveObject) anIO = myMeshActor->getIO();
-      SALOME_ListIO aList;
-      aList.Append(anIO);
-      mySelectionMgr->setSelectedObjects(aList,false);
-      myBusy = false;
-
-      if(const SMDS_MeshElement *anElem = aMesh->FindElement(theNewText.toInt())) {
-       TColStd_MapOfInteger aListInd;
-       aListInd.Add(anElem->GetID());
-       mySelector->AddOrRemoveIndex(anIO,aListInd, false);
-       if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-         aViewWindow->highlight(anIO,true,true);
-       
-       onSelectionDone();
-      }
-    }
-  }
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::onSelectionDone
-// Purpose : SLOT called when selection changed
-//=======================================================================
-void SMESHGUI_MoveNodesDlg::onSelectionDone()
-{
-  if (myBusy) return;
-  myMeshActor = 0;
-
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
-
-  if (aList.Extent() == 1) {
-    Handle(SALOME_InteractiveObject) anIO = aList.First();
-    myMeshActor = SMESH::FindActorByEntry(anIO->getEntry());
-    if(myMeshActor){
-      QString aText;
-      if (SMESH::GetNameOfSelectedNodes(mySelector,anIO,aText) == 1) {
-        if(SMDS_Mesh* aMesh = myMeshActor->GetObject()->GetMesh()) {
-          if(const SMDS_MeshNode* aNode = aMesh->FindNode(aText.toInt())) {
-            myBusy = true;
-            myId->setText(aText);
-            myX->SetValue(aNode->X());
-            myY->SetValue(aNode->Y());
-            myZ->SetValue(aNode->Z());
-            myBusy = false;
-            erasePreview(); // avoid overlapping of a selection and a preview
-            updateButtons();
-            return;
-          }
-        }
-      }
-    }
-  }
-
-  reset();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::onDeactivate
-// Purpose : SLOT called when dialog must be deativated
-//=======================================================================
-void SMESHGUI_MoveNodesDlg::onDeactivate()
-{
-  setEnabled(false);
-  erasePreview();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::enterEvent
-// Purpose : Event filter
-//=======================================================================
-void SMESHGUI_MoveNodesDlg::enterEvent (QEvent*)
-{
-  if (!isEnabled()) {
-    mySMESHGUI->EmitSignalDeactivateDialog();
-
-    // set selection mode
-    SMESH::SetPointRepresentation(true);
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(NodeSelection);
-
-    redisplayPreview();
-
-    setEnabled(true);
-  }
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::closeEvent
-// Purpose :
-//=======================================================================
-void SMESHGUI_MoveNodesDlg::closeEvent (QCloseEvent*)
-{
-  onClose();
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->Repaint();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::hideEvent
-// Purpose : may be caused by ESC key
-//=======================================================================
-void SMESHGUI_MoveNodesDlg::hideEvent (QHideEvent*)
-{
-  if (!isMinimized())
-    onClose();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::updateButtons
-// Purpose : Update buttons state
-//=======================================================================
-void SMESHGUI_MoveNodesDlg::updateButtons()
-{
-  bool isEnabled = isValid(false);
-  myOkBtn->setEnabled(isEnabled);
-  myApplyBtn->setEnabled(isEnabled);
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::erasePreview
-// Purpose : Erase preview
-//=======================================================================
-void  SMESHGUI_MoveNodesDlg::erasePreview()
-{
-  if (myPreviewActor == 0)
-    return;
-
-  SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI );
-  if (aViewWindow)
-    aViewWindow->RemoveActor(myPreviewActor);
-  myPreviewActor->Delete();
-  myPreviewActor = 0;
-  if (aViewWindow)
-    aViewWindow->Repaint();
-}
-
-//=======================================================================
-// name    : SMESHGUI_MoveNodesDlg::redisplayPreview
-// Purpose : Redisplay preview
-//=======================================================================
-void SMESHGUI_MoveNodesDlg::redisplayPreview()
-{
-  if (myBusy)
-    return;
-
-  if (myPreviewActor != 0)
-    erasePreview();
-
-  if (!isValid(false))
-    return;
-
-  vtkUnstructuredGrid* aGrid = vtkUnstructuredGrid::New();
-
-  vtkPoints* aPoints = vtkPoints::New();
-  aPoints->SetNumberOfPoints(1);
-  aPoints->SetPoint(0, myX->GetValue(), myY->GetValue(), myZ->GetValue());
-
-  // Create cells
-
-  vtkIdList *anIdList = vtkIdList::New();
-  anIdList->SetNumberOfIds(1);
-
-  vtkCellArray *aCells = vtkCellArray::New();
-  aCells->Allocate(2, 0);
-
-  vtkUnsignedCharArray* aCellTypesArray = vtkUnsignedCharArray::New();
-  aCellTypesArray->SetNumberOfComponents(1);
-  aCellTypesArray->Allocate(1);
-
-  anIdList->SetId(0, 0);
-  aCells->InsertNextCell(anIdList);
-  aCellTypesArray->InsertNextValue(VTK_VERTEX);
-  anIdList->Delete();
-
-  vtkIntArray* aCellLocationsArray = vtkIntArray::New();
-  aCellLocationsArray->SetNumberOfComponents(1);
-  aCellLocationsArray->SetNumberOfTuples(1);
-
-  aCells->InitTraversal();
-  vtkIdType npts;
-  aCellLocationsArray->SetValue(0, aCells->GetTraversalLocation(npts));
-
-  aGrid->SetPoints(aPoints);
-  aPoints->Delete();
-
-  aGrid->SetCells(aCellTypesArray,aCellLocationsArray,aCells);
-  aCellLocationsArray->Delete();
-  aCellTypesArray->Delete();
-  aCells->Delete();
-
-  // Create and display actor
-  vtkDataSetMapper* aMapper = vtkDataSetMapper::New();
-  aMapper->SetInput(aGrid);
-  aGrid->Delete();
-
-  myPreviewActor = SALOME_Actor::New();
-  myPreviewActor->PickableOff();
-  myPreviewActor->SetMapper(aMapper);
-  aMapper->Delete();
-
-  vtkProperty* aProp = vtkProperty::New();
-  aProp->SetRepresentationToWireframe();
-  aProp->SetColor(250, 0, 250);
-  aProp->SetPointSize(5);
-  myPreviewActor->SetProperty(aProp);
-  aProp->Delete();
-
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    {
-      aViewWindow->AddActor(myPreviewActor);
-      aViewWindow->Repaint();
-    }
-}
diff --git a/src/SMESHGUI/SMESHGUI_MoveNodesDlg.h b/src/SMESHGUI/SMESHGUI_MoveNodesDlg.h
deleted file mode 100644 (file)
index aa4d51d..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_MoveNodesDlg.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef DIALOGBOX_MOVE_NODES_H
-#define DIALOGBOX_MOVE_NODES_H
-
-#include "SalomeApp_SelectionMgr.h"
-
-#include <qdialog.h>
-
-class QLineEdit;
-class QPushButton;
-class SMESHGUI_SpinBox;
-class SALOME_Actor;
-class QFrame;
-
-class SMESHGUI;
-class SMESH_Actor;
-class SUIT_Desktop;
-class SVTK_Selector;
-class SVTK_ViewWindow;
-
-//=================================================================================
-// class    : SMESHGUI_MoveNodesDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_MoveNodesDlg : public QDialog
-{ 
-  Q_OBJECT
-
-public:
-
-                                SMESHGUI_MoveNodesDlg(SMESHGUI* theModule,
-                                                     const char* name = 0);
- virtual                        ~SMESHGUI_MoveNodesDlg();
-    
- void                           Init();
-
-private slots:
-
-  void                          onOk();
-  bool                          onApply();
-  void                          onClose();
-
-  void                          onDeactivate();
-
-  void                          onSelectionDone();
-  void                          redisplayPreview();
-  void                          onTextChange(const QString&);
-
-private:
-
-  void                          closeEvent( QCloseEvent* e ) ;
-  void                          enterEvent ( QEvent * ) ;
-  void                          hideEvent ( QHideEvent * );
-  void                          erasePreview();
-  QFrame*                       createButtonFrame( QWidget* );
-  QFrame*                       createMainFrame  ( QWidget* );
-  bool                          isValid( const bool ) const;
-  void                          reset();
-  void                          updateButtons();
-
-private:
-
-  QPushButton*                  myOkBtn;
-  QPushButton*                  myApplyBtn;
-  QPushButton*                  myCloseBtn;
-  
-  QLineEdit*                    myId;
-  SMESHGUI_SpinBox*             myX;
-  SMESHGUI_SpinBox*             myY;
-  SMESHGUI_SpinBox*             myZ;
-
-  SalomeApp_SelectionMgr*       mySelectionMgr;
-  SVTK_Selector*                mySelector;
-  SMESHGUI*                     mySMESHGUI;
-  
-  SALOME_Actor*                 myPreviewActor;
-  SMESH_Actor*                  myMeshActor;
-  bool                          myBusy;
-};
-
-#endif // DIALOGBOX_MOVE_NODES_H
diff --git a/src/SMESHGUI/SMESHGUI_MultiEditDlg.h b/src/SMESHGUI/SMESHGUI_MultiEditDlg.h
deleted file mode 100755 (executable)
index e66ebc0..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_MultiEditDlg.h
-//  Author : Sergey LITONIN
-//  Module : SMESH
-
-
-#ifndef SMESHGUI_MultiEditDlg_H
-#define SMESHGUI_MultiEditDlg_H
-
-#include <qdialog.h>
-
-#include "SUIT_SelectionFilter.h"
-
-#include <TColStd_MapOfInteger.hxx>
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-#include CORBA_SERVER_HEADER(SMESH_Filter)
-
-class SMESHGUI;
-class SMESHGUI_FilterDlg;
-class SMESHGUI_SpinBox;
-
-class SMESH_Actor;
-
-class SalomeApp_SelectionMgr;
-class SALOME_Actor;
-class SVTK_Selector;
-class SVTK_ViewWindow;
-
-class QFrame;
-class QObject;
-class QListBox;
-class QComboBox;
-class QCheckBox;
-class QGroupBox;
-class QLineEdit;
-class QPushButton;
-class QButtonGroup;
-
-/*!
- * Class       : SMESHGUI_MultiEditDlg
- * Description : Base class for dialogs of diagonal inversion and
- *               union of two neighboring triangles
- */
-
-class SMESHGUI_MultiEditDlg : public QDialog
-{
-  Q_OBJECT
-
-public:
-                            SMESHGUI_MultiEditDlg(SMESHGUI* theModule,
-                                                 const int,
-                                                 const bool = false,
-                                                 const char* = 0 );
-  virtual                   ~SMESHGUI_MultiEditDlg();
-
-  void                      Init();
-
-  bool                      eventFilter( QObject* object, QEvent* event );
-
-signals:
-  void                      ListContensChanged();
-
-protected slots:
-  void                      onOk();
-  virtual bool              onApply();
-  virtual void              onClose();
-
-  void                      onDeactivate();
-  void                      onSelectionDone();
-
-  void                      onFilterBtn();
-  void                      onAddBtn();
-  void                      onRemoveBtn();
-  void                      onSortListBtn();
-  void                      onListSelectionChanged();
-  void                      onSubmeshChk();
-  void                      onGroupChk();
-  virtual void              onToAllChk();
-  void                      onFilterAccepted();
-  void                      on3d2dChanged(int);
-
-  SMESH::NumericalFunctor_ptr getNumericalFunctor();
-
-protected:
-  void                      closeEvent( QCloseEvent* e ) ;
-  void                      enterEvent ( QEvent * ) ;
-  void                      hideEvent ( QHideEvent * );                        /* ESC key */
-  QFrame*                   createButtonFrame( QWidget* );
-  QFrame*                   createMainFrame  ( QWidget*, const bool );
-  bool                      isValid( const bool ) const;
-  SMESH::long_array_var     getIds();
-  void                      updateButtons();
-  void                      setSelectionMode();
-  virtual bool              isIdValid( const int theID ) const;
-  virtual bool              process( SMESH::SMESH_MeshEditor_ptr, const SMESH::long_array& ) = 0;
-  int                       entityType();
-
-protected:
-  QPushButton*              myOkBtn;
-  QPushButton*              myApplyBtn;
-  QPushButton*              myCloseBtn;
-  SMESH_Actor*              myActor;
-  SMESH::SMESH_Mesh_var     myMesh;
-
-  SalomeApp_SelectionMgr*   mySelectionMgr;
-  SVTK_Selector*            mySelector;
-  SMESHGUI*                 mySMESHGUI;
-
-  QGroupBox*                mySelGrp;
-  QGroupBox*                myCriterionGrp;
-
-  QButtonGroup*             myGroupChoice;
-  QComboBox*                myComboBoxFunctor;
-
-  QListBox*                 myListBox;
-  QPushButton*              myFilterBtn;
-  QPushButton*              myAddBtn;
-  QPushButton*              myRemoveBtn;
-  QPushButton*              mySortBtn;
-
-  QCheckBox*                myToAllChk;
-  QButtonGroup*             myEntityTypeGrp;
-
-  QCheckBox*                mySubmeshChk;
-  QPushButton*              mySubmeshBtn;
-  QLineEdit*                mySubmesh;
-
-  QCheckBox*                myGroupChk;
-  QPushButton*              myGroupBtn;
-  QLineEdit*                myGroup;
-
-  SMESHGUI_FilterDlg*       myFilterDlg;
-  TColStd_MapOfInteger      myIds;
-  int                       myFilterType;
-  bool                      myBusy;
-  int                       myEntityType;
-};
-
-/*!
- * Class       : SMESHGUI_ChangeOrientationDlg
- * Description : Modification of orientation of faces
- */
-class  SMESHGUI_ChangeOrientationDlg : public SMESHGUI_MultiEditDlg
-{
-  Q_OBJECT
-
-public:
-               SMESHGUI_ChangeOrientationDlg(SMESHGUI* theModule,
-                                            const char* = 0);
-  virtual      ~SMESHGUI_ChangeOrientationDlg();
-
-protected:
-  virtual bool process( SMESH::SMESH_MeshEditor_ptr, const SMESH::long_array& );
-};
-
-/*!
- * Class       : SMESHGUI_UnionOfTrianglesDlg
- * Description : Construction of quadrangles by automatic association of triangles
- */
-class  SMESHGUI_UnionOfTrianglesDlg : public SMESHGUI_MultiEditDlg
-{
-  Q_OBJECT
-
-public:
-               SMESHGUI_UnionOfTrianglesDlg(SMESHGUI* theModule,
-                                           const char* = 0);
-  virtual      ~SMESHGUI_UnionOfTrianglesDlg();
-
-protected:
-  virtual bool process( SMESH::SMESH_MeshEditor_ptr, const SMESH::long_array& );
-
-private:
-  SMESHGUI_SpinBox* myMaxAngleSpin;
-};
-
-/*
-  Class       : SMESHGUI_CuttingOfQuadsDlg
-  Description : Construction of quadrangles by automatic association of triangles
-*/
-class  SMESHGUI_CuttingOfQuadsDlg : public SMESHGUI_MultiEditDlg
-{
-  Q_OBJECT
-
-public:
-                SMESHGUI_CuttingOfQuadsDlg(SMESHGUI* theModule,
-                                          const char* = 0);
-  virtual       ~SMESHGUI_CuttingOfQuadsDlg();
-
-protected:
-  virtual bool  process( SMESH::SMESH_MeshEditor_ptr, const SMESH::long_array& );
-
-protected slots:
-  virtual void  onClose();
-  void          onCriterionRB();
-  void          onPreviewChk();
-
-private:
-  void          displayPreview();
-  void          erasePreview();
-
-private:
-  SALOME_Actor* myPreviewActor;
-  QCheckBox*    myPreviewChk;
-};
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_NodesDlg.cxx b/src/SMESHGUI/SMESHGUI_NodesDlg.cxx
deleted file mode 100644 (file)
index 3f20596..0000000
+++ /dev/null
@@ -1,579 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_NodesDlg.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_NodesDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_SpinBox.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_MeshUtils.h"
-
-#include "SMESH_Actor.h"
-#include "SMESH_ActorUtils.h"
-#include "SMESH_ObjectDef.h"
-
-#include "SMDS_Mesh.hxx"
-#include "SMDS_MeshNode.hxx"
-
-#include "SUIT_Session.h"
-#include "SUIT_OverrideCursor.h"
-#include "SUIT_ViewWindow.h"
-#include "SUIT_ViewManager.h"
-#include "SUIT_MessageBox.h"
-#include "SUIT_Desktop.h"
-
-#include "SalomeApp_Study.h"
-#include "SalomeApp_SelectionMgr.h"
-
-#include "SVTK_Selector.h"
-#include "SVTK_ViewWindow.h"
-
-#include "SALOME_Actor.h"
-#include "SALOME_ListIO.hxx"
-
-#include "utilities.h"
-
-// VTK Includes
-#include <vtkCell.h>
-#include <vtkIdList.h>
-#include <vtkIntArray.h>
-#include <vtkCellArray.h>
-#include <vtkUnsignedCharArray.h>
-#include <vtkUnstructuredGrid.h>
-#include <vtkDataSetMapper.h>
-#include <vtkActorCollection.h>
-#include <vtkRenderer.h>
-
-// QT Includes
-#include <qbuttongroup.h>
-#include <qframe.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qlayout.h>
-#include <qvariant.h>
-#include <qtooltip.h>
-#include <qwhatsthis.h>
-#include <qimage.h>
-#include <qpixmap.h>
-#include <qvalidator.h>
-#include <qevent.h>
-
-using namespace std;
-
-
-namespace SMESH {
-
-  void AddNode (SMESH::SMESH_Mesh_ptr theMesh, float x, float y, float z)
-  {
-    SUIT_OverrideCursor wc;
-    try {
-      _PTR(SObject) aSobj = SMESH::FindSObject(theMesh);
-      SMESH::SMESH_MeshEditor_var aMeshEditor = theMesh->GetMeshEditor();
-      aMeshEditor->AddNode(x,y,z);
-      _PTR(Study) aStudy = GetActiveStudyDocument();
-      CORBA::Long anId = aStudy->StudyId();
-      if (TVisualObjPtr aVisualObj = SMESH::GetVisualObj(anId, aSobj->GetID().c_str())) {
-       aVisualObj->Update(true);
-      }
-    } catch (SALOME::SALOME_Exception& exc) {
-      INFOS("Follow exception was cought:\n\t" << exc.details.text);
-    } catch (const std::exception& exc) {
-      INFOS("Follow exception was cought:\n\t" << exc.what());
-    } catch (...) {
-      INFOS("Unknown exception was cought !!!");
-    }
-  }
-
-  class TNodeSimulation {
-    SVTK_ViewWindow* myViewWindow;
-
-    SALOME_Actor *myPreviewActor;
-    vtkDataSetMapper* myMapper;
-    vtkPoints* myPoints;
-
-  public:
-    TNodeSimulation(SVTK_ViewWindow* theViewWindow):
-      myViewWindow(theViewWindow)
-    {
-      vtkUnstructuredGrid* aGrid = vtkUnstructuredGrid::New();
-
-      // Create points
-      myPoints = vtkPoints::New();
-      myPoints->SetNumberOfPoints(1);
-      myPoints->SetPoint(0,0.0,0.0,0.0);
-
-      // Create cells
-      vtkIdList *anIdList = vtkIdList::New();
-      anIdList->SetNumberOfIds(1);
-
-      vtkCellArray *aCells = vtkCellArray::New();
-      aCells->Allocate(2, 0);
-
-      vtkUnsignedCharArray* aCellTypesArray = vtkUnsignedCharArray::New();
-      aCellTypesArray->SetNumberOfComponents(1);
-      aCellTypesArray->Allocate(1);
-
-      anIdList->SetId(0, 0);
-      aCells->InsertNextCell(anIdList);
-      aCellTypesArray->InsertNextValue(VTK_VERTEX);
-
-      vtkIntArray* aCellLocationsArray = vtkIntArray::New();
-      aCellLocationsArray->SetNumberOfComponents(1);
-      aCellLocationsArray->SetNumberOfTuples(1);
-
-      aCells->InitTraversal();
-      vtkIdType npts;
-      aCellLocationsArray->SetValue(0, aCells->GetTraversalLocation(npts));
-
-      aGrid->SetCells(aCellTypesArray, aCellLocationsArray, aCells);
-
-      aGrid->SetPoints(myPoints);
-      aGrid->SetCells(aCellTypesArray, aCellLocationsArray,aCells);
-      aCellLocationsArray->Delete();
-      aCellTypesArray->Delete();
-      aCells->Delete();
-      anIdList->Delete();
-
-      // Create and display actor
-      myMapper = vtkDataSetMapper::New();
-      myMapper->SetInput(aGrid);
-      aGrid->Delete();
-
-      myPreviewActor = SALOME_Actor::New();
-      myPreviewActor->SetInfinitive(true);
-      myPreviewActor->VisibilityOff();
-      myPreviewActor->PickableOff();
-      myPreviewActor->SetMapper(myMapper);
-
-      vtkProperty* aProp = vtkProperty::New();
-      aProp->SetRepresentationToPoints();
-
-      float anRGB[3];
-      GetColor( "SMESH", "node_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 255, 0 ) );
-      aProp->SetColor( anRGB[0], anRGB[1], anRGB[2] );
-
-      float aPointSize = GetFloat( "SMESH:node_size", 3 );
-      aProp->SetPointSize( aPointSize );
-
-      myPreviewActor->SetProperty( aProp );
-      aProp->Delete();
-
-      myViewWindow->AddActor(myPreviewActor);
-    }
-
-    void SetPosition (float x, float y, float z)
-    {
-      myPoints->SetPoint(0,x,y,z);
-      myPoints->Modified();
-      SetVisibility(true);
-    }
-
-    void SetVisibility (bool theVisibility)
-    {
-      myPreviewActor->SetVisibility(theVisibility);
-      RepaintCurrentView();
-    }
-
-    ~TNodeSimulation()
-    {
-      myViewWindow->RemoveActor(myPreviewActor);
-      myPreviewActor->Delete();
-
-      myMapper->RemoveAllInputs();
-      myMapper->Delete();
-
-      myPoints->Delete();
-    }
-  };
-}
-
-//=================================================================================
-// class    : SMESHGUI_NodesDlg()
-// purpose  :
-//=================================================================================
-SMESHGUI_NodesDlg::SMESHGUI_NodesDlg (SMESHGUI* theModule,
-                                     const char* name,
-                                     bool modal,
-                                     WFlags fl): 
-  QDialog(SMESH::GetDesktop(theModule), 
-         name, 
-         modal, 
-         WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
-  mySelector(SMESH::GetViewWindow(theModule)->GetSelector()),
-  mySelectionMgr(SMESH::GetSelectionMgr(theModule)),
-  mySMESHGUI(theModule)
-{
-  mySimulation = new SMESH::TNodeSimulation(SMESH::GetViewWindow( mySMESHGUI ));
-
-  QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_DLG_NODE")));
-  if (!name)
-    setName("SMESHGUI_NodesDlg");
-  resize(303, 185);
-  setCaption(tr("MESH_NODE_TITLE"));
-  setSizeGripEnabled(TRUE);
-  SMESHGUI_NodesDlgLayout = new QGridLayout(this);
-  SMESHGUI_NodesDlgLayout->setSpacing(6);
-  SMESHGUI_NodesDlgLayout->setMargin(11);
-
-  /***************************************************************/
-  GroupButtons = new QGroupBox(this, "GroupButtons");
-  GroupButtons->setGeometry(QRect(10, 10, 281, 48));
-  GroupButtons->setTitle(tr("" ));
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-  buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
-  buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
-  buttonCancel->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-  buttonApply = new QPushButton(GroupButtons, "buttonApply");
-  buttonApply->setText(tr("SMESH_BUT_APPLY" ));
-  buttonApply->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-  QSpacerItem* spacer_9 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupButtonsLayout->addItem(spacer_9, 0, 2);
-  buttonOk = new QPushButton(GroupButtons, "buttonOk");
-  buttonOk->setText(tr("SMESH_BUT_OK" ));
-  buttonOk->setAutoDefault(TRUE);
-  buttonOk->setDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-  SMESHGUI_NodesDlgLayout->addWidget(GroupButtons, 2, 0);
-
-  /***************************************************************/
-  GroupConstructors = new QButtonGroup(this, "GroupConstructors");
-  GroupConstructors->setTitle(tr("MESH_NODE" ));
-  GroupConstructors->setExclusive(TRUE);
-  GroupConstructors->setColumnLayout(0, Qt::Vertical);
-  GroupConstructors->layout()->setSpacing(0);
-  GroupConstructors->layout()->setMargin(0);
-  GroupConstructorsLayout = new QGridLayout(GroupConstructors->layout());
-  GroupConstructorsLayout->setAlignment(Qt::AlignTop);
-  GroupConstructorsLayout->setSpacing(6);
-  GroupConstructorsLayout->setMargin(11);
-  Constructor1 = new QRadioButton(GroupConstructors, "Constructor1");
-  Constructor1->setText(tr("" ));
-  Constructor1->setPixmap(image0);
-  Constructor1->setChecked(TRUE);
-  GroupConstructorsLayout->addWidget(Constructor1, 0, 0);
-  QSpacerItem* spacer_2 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupConstructorsLayout->addItem(spacer_2, 0, 1);
-  SMESHGUI_NodesDlgLayout->addWidget(GroupConstructors, 0, 0);
-
-  /***************************************************************/
-  GroupCoordinates = new QGroupBox(this, "GroupCoordinates");
-  GroupCoordinates->setTitle(tr("SMESH_COORDINATES" ));
-  GroupCoordinates->setColumnLayout(0, Qt::Vertical);
-  GroupCoordinates->layout()->setSpacing(0);
-  GroupCoordinates->layout()->setMargin(0);
-  GroupCoordinatesLayout = new QGridLayout(GroupCoordinates->layout());
-  GroupCoordinatesLayout->setAlignment(Qt::AlignTop);
-  GroupCoordinatesLayout->setSpacing(6);
-  GroupCoordinatesLayout->setMargin(11);
-  TextLabel_X = new QLabel(GroupCoordinates, "TextLabel_X");
-  TextLabel_X->setText(tr("SMESH_X" ));
-  GroupCoordinatesLayout->addWidget(TextLabel_X, 0, 0);
-  TextLabel_Y = new QLabel(GroupCoordinates, "TextLabel_Y");
-  TextLabel_Y->setText(tr("SMESH_Y" ));
-  GroupCoordinatesLayout->addWidget(TextLabel_Y, 0, 2);
-
-  TextLabel_Z = new QLabel(GroupCoordinates, "TextLabel_Z");
-  TextLabel_Z->setText(tr("SMESH_Z" ));
-  GroupCoordinatesLayout->addWidget(TextLabel_Z, 0, 4);
-
-  SpinBox_X = new SMESHGUI_SpinBox(GroupCoordinates, "SpinBox_X");
-  GroupCoordinatesLayout->addWidget(SpinBox_X, 0, 1);
-
-  SpinBox_Y = new SMESHGUI_SpinBox(GroupCoordinates, "SpinBox_Y");
-  GroupCoordinatesLayout->addWidget(SpinBox_Y, 0, 3);
-
-  SpinBox_Z = new SMESHGUI_SpinBox(GroupCoordinates, "SpinBox_Z");
-  GroupCoordinatesLayout->addWidget(SpinBox_Z, 0, 5);
-
-  SMESHGUI_NodesDlgLayout->addWidget(GroupCoordinates, 1, 0);
-
-  /* Initialisation and display */
-  Init();
-}
-
-//=======================================================================
-// function : ~SMESHGUI_NodesDlg()
-// purpose  : Destructor
-//=======================================================================
-SMESHGUI_NodesDlg::~SMESHGUI_NodesDlg()
-{
-  delete mySimulation;
-}
-
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void SMESHGUI_NodesDlg::Init ()
-{
-  /* Get setting of step value from file configuration */
-  double step;
-  // QString St = SUIT_CONFIG->getSetting("xxxxxxxxxxxxx");  TODO
-  // step = St.toDouble();                                    TODO
-  step = 25.0;
-
-  /* min, max, step and decimals for spin boxes */
-  SpinBox_X->RangeStepAndValidator(-999.999, +999.999, step, 3);
-  SpinBox_Y->RangeStepAndValidator(-999.999, +999.999, step, 3);
-  SpinBox_Z->RangeStepAndValidator(-999.999, +999.999, step, 3);
-  SpinBox_X->SetValue(0.0);
-  SpinBox_Y->SetValue(0.0);
-  SpinBox_Z->SetValue(0.0);
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  /* signals and slots connections */
-  connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-  connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
-
-  connect(SpinBox_X, SIGNAL (valueChanged(double)), SLOT(ValueChangedInSpinBox(double)));
-  connect(SpinBox_Y, SIGNAL (valueChanged(double)), SLOT(ValueChangedInSpinBox(double)));
-  connect(SpinBox_Z, SIGNAL (valueChanged(double)), SLOT(ValueChangedInSpinBox(double)));
-
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(SelectionIntoArgument()));
-  connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), SLOT(DeactivateActiveDialog()));
-  /* to close dialog if study frame change */
-  connect(mySMESHGUI, SIGNAL (SignalStudyFrameChanged()), SLOT(ClickOnCancel()));
-
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show();
-
-  // set selection mode
-  SMESH::SetPointRepresentation(true);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(NodeSelection);
-
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : ValueChangedInSpinBox()
-// purpose  :
-//=================================================================================
-void SMESHGUI_NodesDlg::ValueChangedInSpinBox (double newValue)
-{
-  if (!myMesh->_is_nil()) {
-    double vx = SpinBox_X->GetValue();
-    double vy = SpinBox_Y->GetValue();
-    double vz = SpinBox_Z->GetValue();
-
-    mySimulation->SetPosition(vx,vy,vz);
-  }
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  :
-//=================================================================================
-void SMESHGUI_NodesDlg::ClickOnOk()
-{
-  if (ClickOnApply())
-    ClickOnCancel();
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-bool SMESHGUI_NodesDlg::ClickOnApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return false;
-
-  if (myMesh->_is_nil()) {
-    SUIT_MessageBox::warn1(SMESHGUI::desktop(), tr("SMESH_WRN_WARNING"),
-                           tr("MESH_IS_NOT_SELECTED"), tr("SMESH_BUT_OK"));
-    return false;
-  }
-
-  /* Recup args and call method */
-  double x = SpinBox_X->GetValue();
-  double y = SpinBox_Y->GetValue();
-  double z = SpinBox_Z->GetValue();
-  mySimulation->SetVisibility(false);
-  SMESH::AddNode(myMesh,x,y,z);
-  SMESH::SetPointRepresentation(true);
-
-  // select myMesh
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList);
-  if (aList.Extent() != 1) {
-    if (SVTK_ViewWindow* aViewWindow = SMESH::GetCurrentVtkView()) {
-      vtkActorCollection *aCollection = aViewWindow->getRenderer()->GetActors();
-      aCollection->InitTraversal();
-      while (vtkActor *anAct = aCollection->GetNextActor()) {
-        if (SMESH_Actor *anActor = dynamic_cast<SMESH_Actor*>(anAct)) {
-          if (anActor->hasIO()) {
-            if (SMESH_MeshObj *aMeshObj = dynamic_cast<SMESH_MeshObj*>(anActor->GetObject().get())) {
-              if (myMesh->_is_equivalent(aMeshObj->GetMeshServer())) {
-                aList.Clear();
-                aList.Append(anActor->getIO());
-                mySelectionMgr->setSelectedObjects(aList, false);
-                break;
-              }
-            }
-          }
-        }
-      }
-    }
-  }
-  return true;
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_NodesDlg::ClickOnCancel()
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-
-  mySimulation->SetVisibility(false);
-  SMESH::SetPointRepresentation(false);
-  mySMESHGUI->ResetState();
-
-  reject();
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_NodesDlg::SelectionIntoArgument()
-{
-  if (!GroupConstructors->isEnabled())
-    return;
-
-  mySimulation->SetVisibility(false);
-  SMESH::SetPointRepresentation(true);
-
-  const SALOME_ListIO& aList = mySelector->StoredIObjects();
-  if (aList.Extent() == 1) {
-    Handle(SALOME_InteractiveObject) anIO = aList.First();
-    if (anIO->hasEntry()) {
-      myMesh = SMESH::GetMeshByIO(anIO);
-      if (myMesh->_is_nil()) return;
-      QString aText;
-      if (SMESH::GetNameOfSelectedNodes(mySelector,anIO,aText) == 1) {
-       if (SMESH_Actor* anActor = SMESH::FindActorByObject(myMesh.in())) {
-         if (SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh()) {
-           if (const SMDS_MeshNode* aNode = aMesh->FindNode(aText.toInt())) {
-             SpinBox_X->SetValue(aNode->X());
-             SpinBox_Y->SetValue(aNode->Y());
-             SpinBox_Z->SetValue(aNode->Z());
-            }
-         }
-       }
-      }
-      mySimulation->SetPosition(SpinBox_X->GetValue(),
-                               SpinBox_Y->GetValue(),
-                               SpinBox_Z->GetValue());
-    }
-  }
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_NodesDlg::closeEvent (QCloseEvent*)
-{
-  this->ClickOnCancel(); /* same than click on cancel button */
-}
-
-//=================================================================================
-// function : hideEvent()
-// purpose  : caused by ESC key
-//=================================================================================
-void SMESHGUI_NodesDlg::hideEvent (QHideEvent*)
-{
-  if (!isMinimized())
-    ClickOnCancel();
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  : to reactivate this dialog box when mouse enter onto the window
-//=================================================================================
-void SMESHGUI_NodesDlg::enterEvent(QEvent*)
-{
-  if (!GroupConstructors->isEnabled())
-    ActivateThisDialog();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  : public slot to deactivate if active
-//=================================================================================
-void SMESHGUI_NodesDlg::DeactivateActiveDialog()
-{
-  if (GroupConstructors->isEnabled()) {
-    GroupConstructors->setEnabled(false);
-    GroupCoordinates->setEnabled(false);
-    GroupButtons->setEnabled(false);
-    mySimulation->SetVisibility(false);
-    mySMESHGUI->ResetState();
-    mySMESHGUI->SetActiveDialogBox(0);
-  }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_NodesDlg::ActivateThisDialog()
-{
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupConstructors->setEnabled(true);
-  GroupCoordinates->setEnabled(true);
-  GroupButtons->setEnabled(true);
-
-  SMESH::SetPointRepresentation(true);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(NodeSelection);
-
-  SelectionIntoArgument();
-}
diff --git a/src/SMESHGUI/SMESHGUI_NodesDlg.h b/src/SMESHGUI/SMESHGUI_NodesDlg.h
deleted file mode 100644 (file)
index e7da8a6..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_NodesDlg.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef DIALOGBOX_NODES_H
-#define DIALOGBOX_NODES_H
-
-#include <qvariant.h>
-#include <qdialog.h>
-
-class QVBoxLayout; 
-class QHBoxLayout; 
-class QGridLayout; 
-class QButtonGroup;
-class QFrame;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-
-class SMESHGUI;
-class SVTK_Selector;
-class SVTK_ViewWindow;
-class SMESHGUI_SpinBox;
-class SalomeApp_SelectionMgr;
-
-namespace SMESH{
-  struct TNodeSimulation;
-}
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-//=================================================================================
-// class    : SMESHGUI_NodesDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_NodesDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_NodesDlg (SMESHGUI* theModule, 
-                      const char* name = 0,
-                      bool modal = FALSE,
-                      WFlags fl = 0);
-
-    ~SMESHGUI_NodesDlg();
-
-private:
-    SalomeApp_SelectionMgr* mySelectionMgr;
-    SVTK_Selector*                mySelector;
-    SMESHGUI*               mySMESHGUI;
-
-    SMESH::SMESH_Mesh_var   myMesh;
-    SMESH::TNodeSimulation* mySimulation;
-
-    void Init ();
-    void enterEvent(QEvent* e);
-    void closeEvent(QCloseEvent*);
-    void hideEvent (QHideEvent *);                 /* ESC key */
-
-    QButtonGroup* GroupConstructors;
-    QRadioButton* Constructor1;
-    QGroupBox* GroupCoordinates;
-    SMESHGUI_SpinBox* SpinBox_X;
-    SMESHGUI_SpinBox* SpinBox_Y;
-    SMESHGUI_SpinBox* SpinBox_Z;
-
-    QLabel* TextLabel_X;
-    QLabel* TextLabel_Y;
-    QLabel* TextLabel_Z;
-
-    QGroupBox* GroupButtons;
-    QPushButton* buttonApply;
-    QPushButton* buttonOk;
-    QPushButton* buttonCancel;
-
-private slots:
-
-    void ClickOnOk();
-    void ClickOnCancel();
-    bool ClickOnApply();
-    void DeactivateActiveDialog() ;
-    void ActivateThisDialog() ;
-    void SelectionIntoArgument() ;
-    void ValueChangedInSpinBox( double newValue ) ;
-
-protected:
-    QGridLayout* SMESHGUI_NodesDlgLayout;    
-    QGridLayout* GroupConstructorsLayout;
-    QGridLayout* GroupCoordinatesLayout;
-    QGridLayout* GroupButtonsLayout;
-};
-
-#endif // DIALOGBOX_NODES_H
diff --git a/src/SMESHGUI/SMESHGUI_Operation.cxx b/src/SMESHGUI/SMESHGUI_Operation.cxx
deleted file mode 100755 (executable)
index c26f5f6..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-//  SALOME SMESHGUI
-//
-//  Copyright (C) 2005  CEA/DEN, EDF R&D
-//
-//
-//
-//  File   : SMESHGUI_Operation.h
-//  Author : Sergey LITONIN
-//  Module : SALOME
-
-#include "SMESHGUI_Operation.h"
-#include <SMESHGUI.h>
-#include <SMESHGUI_Dialog.h>
-
-#include <SalomeApp_Study.h>
-
-#include <SUIT_MessageBox.h>
-#include <SUIT_Desktop.h>
-
-#include <qstringlist.h>
-
-/*
-  Class       : SMESHGUI_Operation
-  Description : Base class for all SMESH operations
-*/
-
-//=======================================================================
-// name    : SMESHGUI_Operation
-// Purpose : Constructor
-//=======================================================================
-SMESHGUI_Operation::SMESHGUI_Operation()
-: SalomeApp_Operation()
-{
-}
-
-//=======================================================================
-// name    : ~SMESHGUI_Operation
-// Purpose : Destructor
-//=======================================================================
-SMESHGUI_Operation::~SMESHGUI_Operation()
-{
-}
-
-//=======================================================================
-// name    : getSMESHGUI
-// Purpose : Get SMESH module
-//=======================================================================
-SMESHGUI* SMESHGUI_Operation::getSMESHGUI() const
-{
-  return dynamic_cast<SMESHGUI*>( module() );
-}
-
-//=======================================================================
-// name    : startOperation
-// Purpose : Start opeartion
-//=======================================================================
-void SMESHGUI_Operation::startOperation()
-{
-  if( dlg() )
-  {
-    disconnect( dlg(), SIGNAL( dlgOk() ), this, SLOT( onOk() ) );
-    disconnect( dlg(), SIGNAL( dlgApply() ), this, SLOT( onApply() ) );
-    disconnect( dlg(), SIGNAL( dlgCancel() ), this, SLOT( onCancel() ) );
-    disconnect( dlg(), SIGNAL( dlgClose() ), this, SLOT( onCancel() ) );
-    
-    if( dlg()->testButtonFlags( QtxDialog::OK ) )
-      connect( dlg(), SIGNAL( dlgOk() ), this, SLOT( onOk() ) );
-      
-    if( dlg()->testButtonFlags( QtxDialog::Apply ) )
-      connect( dlg(), SIGNAL( dlgApply() ), this, SLOT( onApply() ) );
-      
-    if( dlg()->testButtonFlags( QtxDialog::Cancel ) )
-      connect( dlg(), SIGNAL( dlgCancel() ), this, SLOT( onCancel() ) );
-      
-    //if( dlg()->testButtonFlags( QtxDialog::Close ) )
-    //if dialog hasn't close, cancel, no and etc buttons, dlgClose will be emitted when dialog is closed not by OK
-    connect( dlg(), SIGNAL( dlgClose() ), this, SLOT( onCancel() ) );
-
-    initDialog();
-  }
-
-  SalomeApp_Operation::startOperation();
-}
-
-//=======================================================================
-// name    : isReadyToStart
-// Purpose : Verify whether operation is ready to start
-//=======================================================================
-bool SMESHGUI_Operation::isReadyToStart() const
-{
-  if ( !SalomeApp_Operation::isReadyToStart() )
-    return false;
-  else if ( getSMESHGUI() == 0 )
-  {
-    SUIT_MessageBox::warn1( desktop(), tr( "SMESH_WRN_WARNING" ),
-      tr( "NO_MODULE" ), tr( "SMESH_BUT_OK" ) );
-    return false;
-  }
-  else if ( isStudyLocked() )
-    return false;
-  
-  return true;
-}
-
-//=======================================================================
-// name    : setDialogActive
-// Purpose : 
-//=======================================================================
-void SMESHGUI_Operation::setDialogActive( const bool active )
-{
-  SalomeApp_Operation::setDialogActive( active );
-
-  SMESHGUI_Dialog* d = dynamic_cast<SMESHGUI_Dialog*>( dlg() );
-  if( d )
-    d->setContentActive( active );
-
-}
-
-//=======================================================================
-// name    : studyDS
-// Purpose :
-//=======================================================================
-_PTR(Study) SMESHGUI_Operation::studyDS() const
-{
-  SalomeApp_Study* s = dynamic_cast<SalomeApp_Study*>( study() );
-  return s->studyDS();
-}
-
-//=======================================================================
-// name    : onOk
-// Purpose :
-//=======================================================================
-void SMESHGUI_Operation::onOk()
-{
-  if( onApply() )
-    commit();
-  else
-    abort();
-}
-
-//=======================================================================
-// name    : onApply
-// Purpose :
-//=======================================================================
-bool SMESHGUI_Operation::onApply()
-{
-  return false;
-}
-
-//=======================================================================
-// name    : onClose
-// Purpose :
-//=======================================================================
-void SMESHGUI_Operation::onCancel()
-{
-  abort();
-}
-
-//=======================================================================
-// name    : initDialog
-// Purpose :
-//=======================================================================
-void SMESHGUI_Operation::initDialog()
-{
-}
-
-/*!
- * \brief Verifies whether study of operation is locked
-  * \param theMess - specifies whether message box must be shown if study is locked
-  * \return State of study.
-*
-* Verifies whether study of operation is locked. If second parameter is TRUE and study
-* is locked when corresponding message box appears
-*/
-bool SMESHGUI_Operation::isStudyLocked( const bool theMess ) const
-{
-  if ( studyDS() )
-  {
-    if ( studyDS()->GetProperties()->IsLocked() )
-    {
-      if ( theMess )
-        SUIT_MessageBox::warn1 ( SMESHGUI::desktop(), QObject::tr( "WRN_WARNING" ),
-          QObject::tr( "WRN_STUDY_LOCKED" ), QObject::tr( "BUT_OK" ) );
-      return true;
-    }
-  }
-  
-  return false;
-}
-
-/*!
- * \brief Verifies whether given operator is valid for this one
-  * \param theOtherOp - other operation
-  * \return Returns TRUE if the given operator is valid for this one, FALSE otherwise
-*
-* Virtual method redefined from base class verifies whether given operator is valid for
-* this one (i.e. can be started "above" this operator). In current implementation method
-* retuns false if theOtherOp operation is not intended for deleting objects or mesh
-* elements.
-*/
-bool SMESHGUI_Operation::isValid( SUIT_Operation* theOtherOp ) const
-{
-  static QStringList anOps;
-  if ( anOps.count() == 0 )
-  {
-    anOps.append( "SMESHGUI_DeleteOp" );
-    // to do add other operations here
-  }
-
-  return theOtherOp && theOtherOp->inherits( "SMESHGUI_Operation" ) &&
-         ( !anOps.contains( theOtherOp->className() ) || anOps.contains( className() ) );
-
-  return true;
-}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/SMESHGUI/SMESHGUI_Operation.h b/src/SMESHGUI/SMESHGUI_Operation.h
deleted file mode 100755 (executable)
index 3bc76d4..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-//  SALOME SMESHGUI
-//
-//  Copyright (C) 2005  CEA/DEN, EDF R&D
-//
-//
-//
-//  File   : SMESHGUI_Operation.h
-//  Author : Sergey LITONIN
-//  Module : SALOME
-
-
-#ifndef SMESHGUI_Operation_H
-#define SMESHGUI_Operation_H
-
-#include <SalomeApp_Operation.h>
-#include <SALOMEDSClient.hxx>
-
-class SMESHGUI;
-
-/*
-  Class       : SMESHGUI_Operation
-  Description : Base class for all SMESH operations
-*/
-
-class SMESHGUI_Operation : public SalomeApp_Operation
-{
-  Q_OBJECT
-
-public:
-  SMESHGUI_Operation();
-  virtual ~SMESHGUI_Operation();
-
-protected:
-  //! sets the dialog widgets to state just after operation start
-  virtual void      initDialog();
-
-  virtual void      startOperation();
-  virtual bool      isReadyToStart() const;
-  
-  //! Set according dialog active or inactive
-  virtual void      setDialogActive( const bool );
-
-  SMESHGUI*         getSMESHGUI() const;
-  bool              isStudyLocked( const bool = true ) const;
-
-  _PTR(Study)       studyDS() const;
-  
-  virtual bool      isValid( SUIT_Operation* ) const;
-
-protected slots:
-  virtual void onOk();
-  virtual bool onApply();
-  virtual void onCancel();
-};
-
-#endif
-
-
-
-
-
-
diff --git a/src/SMESHGUI/SMESHGUI_PatternUtils.cxx b/src/SMESHGUI/SMESHGUI_PatternUtils.cxx
deleted file mode 100644 (file)
index 718162f..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-
-
-#include "SMESHGUI_PatternUtils.h"
-
-#include "SMESHGUI.h"
-
-namespace SMESH {
-
-  SMESH::SMESH_Pattern_var GetPattern()
-  {
-    return SMESHGUI::GetSMESHGen()->GetPattern();
-  }
-}
diff --git a/src/SMESHGUI/SMESHGUI_PatternUtils.h b/src/SMESHGUI/SMESHGUI_PatternUtils.h
deleted file mode 100644 (file)
index fb09d01..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef SMESHGUI_PatternUtils_HeaderFile
-#define SMESHGUI_PatternUtils_HeaderFile
-
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Pattern)
-
-
-namespace SMESH{
-
-  SMESH::SMESH_Pattern_var GetPattern();
-
-}
-
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_PatternWidget.cxx b/src/SMESHGUI/SMESHGUI_PatternWidget.cxx
deleted file mode 100644 (file)
index 178800a..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_PatternWidget.cxx
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header:
-
-#include "SMESHGUI_PatternWidget.h"
-
-//Qt includes
-#include <qpainter.h>
-#include <qpoint.h>
-
-
-//=================================================================================
-// class    : SMESHGUI_PatternWidget()
-// purpose  :
-//=================================================================================
-SMESHGUI_PatternWidget::SMESHGUI_PatternWidget (QWidget* parent, const char* name, WFlags fl)
-     : QFrame(parent, name, WStyle_Customize)
-{
-  myMinU =  myMinV =  myMaxU =  myMaxV = 0;
-  setMinimumHeight(150);
-  repaint();
-}
-
-//=================================================================================
-// function : ~SMESHGUI_PatternWidget()
-// purpose  :
-//=================================================================================
-SMESHGUI_PatternWidget::~SMESHGUI_PatternWidget()
-{
-}
-
-//=================================================================================
-// function : SetPoints()
-// purpose  :
-//=================================================================================
-void SMESHGUI_PatternWidget::SetPoints (PointVector thePoints,
-                                        QValueVector<int> theKeys,
-                                        ConnectivityVector theConnections)
-{
-  myPoints = thePoints;
-  myKeys = theKeys;
-  myConnections  = theConnections;
-
-  if (!thePoints.size())
-    return;
-
-  myMinU = myMaxU = (thePoints[0]).x;
-  myMinV = myMaxV = (thePoints[0]).y;
-  double x, y;
-
-  for (int i = 1; i < thePoints.size(); i++) {
-    x = (thePoints[i]).x;
-    y = (thePoints[i]).y;
-
-    if (myMinU > x)
-      myMinU = x;
-    if (myMaxU < x)
-      myMaxU = x;
-    if (myMinV > y)
-      myMinV = y;
-    if (myMaxV < y)
-      myMaxV = y;
-  }
-
-  repaint();
-}
-
-static const int Shift  = 4; // shift of the point number from point
-static const int Border = 20;
-
-//=================================================================================
-// function : paintEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_PatternWidget::paintEvent (QPaintEvent*)
-{
-  QPainter paint (this);
-  paint.setBrush(Qt::SolidPattern);
-
-  //Draw points
-  const int aRadius = 3; // radius of a point
-
-  for (int i = 0; i < myKeys.size() && i < myPoints.size(); i++) {
-    SMESH::PointStruct aPoint = myPoints[ myKeys[i] ];
-    QPoint aQPnt = MapCoords(aPoint.x, aPoint.y);
-
-    paint.drawPie(aQPnt.x() - aRadius, aQPnt.y() - aRadius, aRadius*2, aRadius*2, 5760, 5760);
-    paint.drawText(aQPnt.x() +  Shift, aQPnt.y() -   Shift, QString::number(i+1));
-  }
-
-  //Draw lines
-  for (int i = 0; i < myConnections.size(); i++) {
-    QValueVector<int> aCVector = myConnections[i];
-
-    if (aCVector.size() == 0)
-      continue;
-
-    SMESH::PointStruct aPoint = myPoints[ aCVector[0] ];
-    const QPoint aBeginPnt = MapCoords(aPoint.x, aPoint.y);
-    QPoint aFirstPnt = aBeginPnt, aSecondPnt;
-
-    for (int j = 1; j < aCVector.size(); j++) {
-      aPoint = myPoints[ aCVector[j] ];
-      aSecondPnt = MapCoords(aPoint.x, aPoint.y);
-      paint.drawLine(aFirstPnt, aSecondPnt);
-      aFirstPnt = aSecondPnt;
-    }
-
-    paint.drawLine(aBeginPnt, aSecondPnt);
-  }
-}
-
-//=================================================================================
-// function : MapCoords()
-// purpose  :
-//=================================================================================
-QPoint SMESHGUI_PatternWidget::MapCoords (const double u, const double v)
-{
-  int aWidth  = width()  - 2*Border;
-  int aHeight = height() - 2*Border;
-
-  double aUBound = myMaxU - myMinU;
-  double aVBound = myMaxV - myMinV;
-
-  double aUScale = aWidth/aUBound;
-  double aVScale = aHeight/aVBound;
-
-  double aScale;
-  aUScale <= aVScale ? aScale = aUScale : aScale = aVScale;
-
-  double aUMiddle = (myMaxU + myMinU)/2;
-  double aVMiddle = (myMaxV + myMinV)/2;
-
-  int x = int(aWidth/2  + (u - aUMiddle)*aScale + Border - Shift);
-
-  int y = int(aHeight/2 + (aVMiddle - v)*aScale + Border + Shift);
-
-  QPoint aPoint = QPoint(x, y);
-
-  return aPoint;
-}
diff --git a/src/SMESHGUI/SMESHGUI_PatternWidget.h b/src/SMESHGUI/SMESHGUI_PatternWidget.h
deleted file mode 100644 (file)
index ddab743..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_PatternWidget.h
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header: 
-
-#ifndef WIDGET_PATTERN_H
-#define WIDGET_PATTERN_H
-
-#include <qframe.h>
-#include <qvaluevector.h>
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-typedef QValueVector<SMESH::PointStruct> PointVector;
-typedef QValueVector< QValueVector<int> >  ConnectivityVector;
-
-class QPoint;
-
-//=================================================================================
-// class    : SMESHGUI_PatternWidget
-// purpose  :
-//=================================================================================
-class SMESHGUI_PatternWidget : public QFrame
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_PatternWidget( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
-
-    ~SMESHGUI_PatternWidget();
-
-    void SetPoints( PointVector thePoints,  QValueVector<int> theKeys, ConnectivityVector theConnections );
-
-private :
-    PointVector myPoints;
-    QValueVector<int> myKeys;
-    ConnectivityVector myConnections;
-
-    double myMinU, myMaxU, myMinV, myMaxV;
-      
-private slots:
-
-protected:
-    void paintEvent( QPaintEvent * );
-    QPoint MapCoords( const double u, const double v );
-};
-
-#endif // WIDGET_PATTERN_H
-
diff --git a/src/SMESHGUI/SMESHGUI_PrecisionDlg.cxx b/src/SMESHGUI/SMESHGUI_PrecisionDlg.cxx
deleted file mode 100755 (executable)
index b589e15..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_PrecisionDlg.cxx
-//  Author : Sergey LITONIN
-//  Module : SMESH
-
-#include "SMESHGUI_PrecisionDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_Utils.h"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_ResourceMgr.h"
-
-#include <qgroupbox.h>
-#include <qpushbutton.h>
-#include <qcheckbox.h>
-#include <qspinbox.h>
-#include <qlayout.h>
-#include <qlabel.h>
-
-#define SPACING 5
-#define MARGIN  10
-#define DEFAULT_VAL 10
-#define RANGE 128
-
-/*!
- *  Class       : SMESHGUI_PrecisionDlg
- *  Description : Dialog to specify precision of mesh quality controls
- */
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg::SMESHGUI_PrecisionDlg
-// Purpose : Constructor
-//=======================================================================
-SMESHGUI_PrecisionDlg::SMESHGUI_PrecisionDlg ( SMESHGUI* theModule )
-     : QDialog( SMESH::GetDesktop( theModule ), "SMESHGUI_PrecisionDlg", true,
-                WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ),
-     mySMESHGUI( theModule )
-{
-  setCaption(tr("CAPTION"));
-
-  QVBoxLayout* aDlgLay = new QVBoxLayout (this, MARGIN, SPACING);
-
-  QFrame* aMainFrame = createMainFrame  (this);
-  QFrame* aBtnFrame  = createButtonFrame(this);
-
-  aDlgLay->addWidget(aMainFrame);
-  aDlgLay->addWidget(aBtnFrame);
-
-  aDlgLay->setStretchFactor(aMainFrame, 1);
-
-  setMinimumWidth((int)(QFontMetrics(font()).width(tr("CAPTION")) * 1.5));
-
-  Init();
-}
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg::~SMESHGUI_PrecisionDlg
-// Purpose : Destructor
-//=======================================================================
-SMESHGUI_PrecisionDlg::~SMESHGUI_PrecisionDlg()
-{
-}
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg::createButtonFrame
-// Purpose : Create frame containing buttons
-//=======================================================================
-QFrame* SMESHGUI_PrecisionDlg::createButtonFrame (QWidget* theParent)
-{
-  QGroupBox* aGrp = new QGroupBox (1, Qt::Vertical, theParent);
-  aGrp->setFrameStyle(QFrame::NoFrame);
-  aGrp->setInsideMargin(0);
-
-  myOKBtn = new QPushButton (tr("SMESH_BUT_OK"), aGrp);
-
-  QLabel* aLbl = new QLabel (aGrp);
-  aLbl->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
-
-  myCancelBtn = new QPushButton (tr("SMESH_BUT_CANCEL"), aGrp);
-
-  connect(myOKBtn, SIGNAL(clicked()), SLOT(onOk()));
-  connect(myCancelBtn, SIGNAL(clicked()), SLOT(onClose()));
-
-  return aGrp;
-}
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg:: createMainFrame
-// Purpose : Create frame containing dialog's input fields
-//=======================================================================
-QFrame* SMESHGUI_PrecisionDlg::createMainFrame (QWidget* theParent)
-{
-  QGroupBox* aGrp = new QGroupBox(2, Qt::Horizontal, theParent);
-  new QLabel (tr("PRECISION"), aGrp);
-  mySpinBox = new QSpinBox (0, RANGE, 1, aGrp);
-  myNotUseChk = new QCheckBox (tr("NOT_USE"), aGrp);
-
-  connect(myNotUseChk, SIGNAL(toggled(bool)), SLOT(onNotUse()));
-
-  return aGrp;
-}
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg::Init
-// Purpose : Initialize dialog fields
-//=======================================================================
-void SMESHGUI_PrecisionDlg::Init()
-{
-  bool isOk = false;
-  int aVal = DEFAULT_VAL;
-  SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );
-  if (mgr && mgr->hasValue("SMESH", "controls_precision")) {
-    QString aStr = mgr->stringValue("SMESH", "controls_precision");
-    aVal = aStr.toInt(&isOk);
-  }
-
-  mySpinBox->setValue(isOk ? aVal : DEFAULT_VAL);
-  myNotUseChk->setChecked(!isOk);
-
-  onNotUse();
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-  connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
-}
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg::onOk
-// Purpose : SLOT. Called when OK button pressed
-//=======================================================================
-void SMESHGUI_PrecisionDlg::onOk()
-{
-  SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );
-  if (myNotUseChk->isChecked()) {
-    if (mgr) {
-      mgr->remove("SMESH", "controls_precision");
-    }
-    SMESH::SetControlsPrecision(-1);
-  } else {
-    mySpinBox->clearFocus();
-    int aVal = mySpinBox->value();
-    if (mgr) {
-      mgr->setValue("SMESH", "controls_precision", QString("%1").arg(aVal));
-    }
-    SMESH::SetControlsPrecision(aVal);
-  }
-
-  disconnect(mySMESHGUI, 0, this, 0);
-  mySMESHGUI->ResetState() ;
-  accept();
-}
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg::onClose
-// Purpose : SLOT. Called when "Cancel" button pressed
-//=======================================================================
-void SMESHGUI_PrecisionDlg::onClose()
-{
-  disconnect( mySMESHGUI, 0, this, 0);
-  reject();
-}
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg::closeEvent
-// Purpose :
-//=======================================================================
-void SMESHGUI_PrecisionDlg::closeEvent (QCloseEvent*)
-{
-  onClose();
-}
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg::onNotUse
-// Purpose : SLOT. Called when state of "Do not use" check box changed
-//=======================================================================
-void SMESHGUI_PrecisionDlg::onNotUse()
-{
-  mySpinBox->setEnabled(!myNotUseChk->isChecked());
-}
diff --git a/src/SMESHGUI/SMESHGUI_PrecisionDlg.h b/src/SMESHGUI/SMESHGUI_PrecisionDlg.h
deleted file mode 100755 (executable)
index 976db30..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_PrecisionDlg.h
-//  Author : Sergey LITONIN      
-//  Module : SMESH
-
-
-#ifndef SMESHGUI_PrecisionDlg_H
-#define SMESHGUI_PrecisionDlg_H
-
-#include <qdialog.h>
-
-class QSpinBox;
-class QPushButton;
-class QCheckBox;
-class QFrame;
-class SMESHGUI;
-
-/*
-  Class       : SMESHGUI_PrecisionDlg
-  Description : Dialog to specify precision of mesh quality controls
-*/
-
-class SMESHGUI_PrecisionDlg : public QDialog
-{
-  Q_OBJECT
-
-public:
-                            SMESHGUI_PrecisionDlg( SMESHGUI* );
-
-  virtual                   ~SMESHGUI_PrecisionDlg();
-
-  void                      Init();
-
-private slots:
-
-  void                      onOk();
-  void                      onClose();
-  void                      onNotUse();
-
-private:
-
-  QFrame*                   createButtonFrame( QWidget* );
-  QFrame*                   createMainFrame( QWidget* );
-  void                      closeEvent( QCloseEvent* );
-private:
-  SMESHGUI*                 mySMESHGUI;
-  QSpinBox*                 mySpinBox;
-  QPushButton*              myOKBtn;
-  QPushButton*              myCancelBtn;
-  QCheckBox*                myNotUseChk;
-
-};
-
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.cxx b/src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.cxx
deleted file mode 100644 (file)
index d511378..0000000
+++ /dev/null
@@ -1,396 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_Preferences_ColorDlg.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_Preferences_ColorDlg.h"
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-
-#include "utilities.h"
-
-// QT Includes
-#include <qbuttongroup.h>
-#include <qcheckbox.h>
-#include <qcombobox.h>
-#include <qframe.h>
-#include <qlabel.h>
-#include <qpixmap.h>
-#include <qpushbutton.h>
-#include <qlayout.h>
-#include <qcolordialog.h>
-#include <qspinbox.h>
-#include <qcolor.h>
-
-#include "SUIT_Desktop.h"
-
-using namespace std;
-
-//=================================================================================
-// function : SMESHGUI_Preferences_ColorDlg()
-// purpose  : Constructs a SMESHGUI_Preferences_ColorDlg which is a child
-//            of 'parent', with the name 'name' and widget flags set to 'f'
-//            The dialog will by default be modeless, unless you
-//            set'modal' to TRUE to construct a modal dialog.
-//=================================================================================
-SMESHGUI_Preferences_ColorDlg::SMESHGUI_Preferences_ColorDlg( SMESHGUI* theModule, const char* name)
-     : QDialog( SMESH::GetDesktop( theModule ), name, true, WStyle_Customize |
-                WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ),
-    mySMESHGUI( theModule )
-{
-    if (!name)
-       setName("SMESHGUI_Preferences_ColorDlg");
-    setCaption(tr("Preferences - Set Color"));
-    setSizeGripEnabled(TRUE);
-    QGridLayout* SMESHGUI_Preferences_ColorDlgLayout = new QGridLayout(this);
-    SMESHGUI_Preferences_ColorDlgLayout->setSpacing(6);
-    SMESHGUI_Preferences_ColorDlgLayout->setMargin(11);
-
-    ButtonGroup1 = new QButtonGroup(tr("Elements"), this, "ButtonGroup1");
-    ButtonGroup1->setColumnLayout(0, Qt::Vertical);
-    ButtonGroup1->layout()->setSpacing(0);
-    ButtonGroup1->layout()->setMargin(0);
-    QGridLayout* ButtonGroup1Layout = new QGridLayout(ButtonGroup1->layout());
-    ButtonGroup1Layout->setAlignment(Qt::AlignTop);
-    ButtonGroup1Layout->setSpacing(6);
-    ButtonGroup1Layout->setMargin(11);
-
-    TextLabel_Fill = new QLabel(tr("Fill"), ButtonGroup1, "TextLabel_2D_Fill");
-    ButtonGroup1Layout->addWidget(TextLabel_Fill, 0, 0);
-
-    btnFillColor = new QPushButton(ButtonGroup1, "btnFillColor");
-    btnFillColor->setFixedSize(QSize(25, 25));
-    ButtonGroup1Layout->addWidget(btnFillColor, 0, 1);
-
-    TextLabel_Outine = new QLabel(tr("Outline"), ButtonGroup1, "TextLabel_2D_Outine");
-    ButtonGroup1Layout->addWidget(TextLabel_Outine, 0, 2);
-
-    btnOutlineColor = new QPushButton(ButtonGroup1, "btnOutlineColor");
-    btnOutlineColor->setFixedSize(QSize(25, 25));
-    ButtonGroup1Layout->addWidget(btnOutlineColor, 0, 3);
-
-    TextLabel_Width = new QLabel(tr("Width"), ButtonGroup1, "TextLabel_2D_Width");
-    ButtonGroup1Layout->addWidget(TextLabel_Width, 0, 4);
-
-    SpinBox_Width = new QSpinBox(0, 5, 1, ButtonGroup1, "SpinBox_Width");
-    SpinBox_Width->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
-    SpinBox_Width->setWrapping(FALSE);
-    SpinBox_Width->setButtonSymbols(QSpinBox::PlusMinus);
-    ButtonGroup1Layout->addWidget(SpinBox_Width, 0, 5);
-
-    TextLabel_BackFace = new QLabel(tr("Back Face"), ButtonGroup1, "TextLabel_BackFace");
-    ButtonGroup1Layout->addWidget(TextLabel_BackFace, 1, 0);
-
-    btnBackFaceColor = new QPushButton(ButtonGroup1, "btnBackFaceColor");
-    btnBackFaceColor->setFixedSize(QSize(25, 25));
-    ButtonGroup1Layout->addWidget(btnBackFaceColor, 1, 1);
-
-    TextLabel_ShrinkCoeff = new QLabel(tr("Shrink coef."), ButtonGroup1, "TextLabel_ShrinkCoeff");
-    ButtonGroup1Layout->addWidget(TextLabel_ShrinkCoeff, 2, 0);
-
-    SpinBox_Shrink = new QSpinBox(20, 100, 1, ButtonGroup1, "SpinBox_Shrink");
-    SpinBox_Shrink->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
-    SpinBox_Shrink->setButtonSymbols(QSpinBox::PlusMinus);
-    ButtonGroup1Layout->addMultiCellWidget(SpinBox_Shrink, 2, 2, 1, 5);
-
-    SMESHGUI_Preferences_ColorDlgLayout->addWidget(ButtonGroup1, 0, 0);
-
-    ButtonGroup2 = new QButtonGroup(tr("Nodes"), this, "ButtonGroup2");
-    ButtonGroup2->setColumnLayout(0, Qt::Vertical);
-    ButtonGroup2->layout()->setSpacing(0);
-    ButtonGroup2->layout()->setMargin(0);
-    QGridLayout* ButtonGroup2Layout = new QGridLayout(ButtonGroup2->layout());
-    ButtonGroup2Layout->setAlignment(Qt::AlignTop);
-    ButtonGroup2Layout->setSpacing(6);
-    ButtonGroup2Layout->setMargin(11);
-
-    TextLabel_Nodes_Color = new QLabel(tr("Color"), ButtonGroup2, "TextLabel_Nodes_Color");
-    ButtonGroup2Layout->addWidget(TextLabel_Nodes_Color, 0, 0);
-
-    btnNodeColor = new QPushButton(ButtonGroup2, "btnNodeColor");
-    btnNodeColor->setFixedSize(QSize(25, 25));
-    ButtonGroup2Layout->addWidget(btnNodeColor, 0, 1);
-
-    TextLabel_Nodes_Size = new QLabel(tr("Size"), ButtonGroup2, "TextLabel_Nodes_Size");
-    ButtonGroup2Layout->addWidget(TextLabel_Nodes_Size, 0, 2);
-
-    SpinBox_Nodes_Size = new QSpinBox(0, 5, 1, ButtonGroup2, "SpinBox_Nodes_Size");
-    SpinBox_Nodes_Size->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
-    SpinBox_Nodes_Size->setWrapping(FALSE);
-    SpinBox_Nodes_Size->setButtonSymbols(QSpinBox::PlusMinus);
-    ButtonGroup2Layout->addWidget(SpinBox_Nodes_Size, 0, 3);
-
-    SMESHGUI_Preferences_ColorDlgLayout->addWidget(ButtonGroup2, 1, 0);
-
-    GroupButtons = new QButtonGroup(this, "GroupButtons");
-    GroupButtons->setColumnLayout(0, Qt::Vertical);
-    GroupButtons->layout()->setSpacing(0);
-    GroupButtons->layout()->setMargin(0);
-    QGridLayout* GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-    GroupButtonsLayout->setAlignment(Qt::AlignTop);
-    GroupButtonsLayout->setSpacing(6);
-    GroupButtonsLayout->setMargin(11);
-
-    buttonOk = new QPushButton(tr("&OK"), GroupButtons, "buttonOk");
-    buttonOk->setAutoDefault(TRUE);
-    buttonOk->setDefault(TRUE);
-    GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-
-    GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 1);
-
-    buttonCancel = new QPushButton(tr("&Cancel"), GroupButtons, "buttonCancel");
-    buttonCancel->setAutoDefault(TRUE);
-    GroupButtonsLayout->addWidget(buttonCancel, 0, 2);
-
-    SMESHGUI_Preferences_ColorDlgLayout->addWidget(GroupButtons, 2, 0);
-
-    Init();
-}
-
-//=================================================================================
-// function : ~SMESHGUI_Preferences_ColorDlg()
-// purpose  : Destructor
-//=================================================================================
-SMESHGUI_Preferences_ColorDlg::~SMESHGUI_Preferences_ColorDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::Init()
-{
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  /* signals and slots connections */
-  connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-
-  connect(btnFillColor, SIGNAL(clicked()), this, SLOT(SelectFillColor()));
-  connect(btnOutlineColor, SIGNAL(clicked()), this, SLOT(SelectOutlineColor()));
-  connect(btnNodeColor, SIGNAL(clicked()), this, SLOT(SelectNodeColor()));
-  connect(btnBackFaceColor, SIGNAL(clicked()), this, SLOT(SelectBackFaceColor()));
-
-  connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  /* to close dialog if study change */
-  connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
-
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-}
-
-//=================================================================================
-// function : SelectFillColor()
-// purpose  :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::SelectFillColor()
-{
-  QColor color = btnFillColor->palette().active().button();
-  color = QColorDialog::getColor(color);
-  if (color.isValid()) {
-    QPalette pal = btnFillColor->palette();
-    pal.setColor(QColorGroup::Button, color);
-    btnFillColor->setPalette(pal);
-  }
-}
-
-//=================================================================================
-// function : SelectBackFaceColor()
-// purpose  :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::SelectBackFaceColor()
-{
-  QColor color = btnBackFaceColor->palette().active().button();
-  color = QColorDialog::getColor(color);
-  if (color.isValid()) {
-    QPalette pal = btnBackFaceColor->palette();
-    pal.setColor(QColorGroup::Button, color);
-    btnBackFaceColor->setPalette(pal);
-  }
-}
-
-//=================================================================================
-// function : SelectOutlineColor()
-// purpose  :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::SelectOutlineColor()
-{
-  QColor color = btnOutlineColor->palette().active().button();
-  color = QColorDialog::getColor(color);
-  if (color.isValid()) {
-    QPalette pal = btnOutlineColor->palette();
-    pal.setColor(QColorGroup::Button, color);
-    btnOutlineColor->setPalette(pal);
-  }
-}
-
-//=================================================================================
-// function : SelectNodeColor()
-// purpose  :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::SelectNodeColor()
-{
-  QColor color = btnNodeColor->palette().active().button();
-  color = QColorDialog::getColor(color);
-  if (color.isValid()) {
-    QPalette pal = btnNodeColor->palette();
-    pal.setColor(QColorGroup::Button, color);
-    btnNodeColor->setPalette(pal);
-  }
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::ClickOnOk()
-{
-  mySMESHGUI->ResetState();
-  accept();
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::ClickOnCancel()
-{
-  mySMESHGUI->ResetState();
-  reject();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::DeactivateActiveDialog()
-{
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::closeEvent (QCloseEvent*)
-{
-  this->ClickOnCancel(); /* same than click on cancel button */
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::ActivateThisDialog()
-{
-  /* Emit a signal to deactivate any active dialog */
-  mySMESHGUI->EmitSignalDeactivateDialog();
-}
-
-//=================================================================================
-// function : SetColor()
-// purpose  :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::SetColor (int type, QColor color)
-{
-  switch (type) {
-  case 1 : // fill
-    {
-      QPalette pal = btnFillColor->palette();
-      pal.setColor(QColorGroup::Button, color);
-      btnFillColor->setPalette(pal);
-      break;
-    }
-  case 2 : // outline
-    {
-      QPalette pal = btnOutlineColor->palette();
-      pal.setColor(QColorGroup::Button, color);
-      btnOutlineColor->setPalette(pal);
-      break;
-    }
-  case 3 :  // node
-    {
-      QPalette pal = btnNodeColor->palette();
-      pal.setColor(QColorGroup::Button, color);
-      btnNodeColor->setPalette(pal);
-      break;
-    }
-  case 4 : // back face
-    {
-      QPalette pal = btnBackFaceColor->palette();
-      pal.setColor(QColorGroup::Button, color);
-      btnBackFaceColor->setPalette(pal);
-      break;
-    }
-  }
-}
-
-//=================================================================================
-// function : GetColor()
-// purpose  :
-//=================================================================================
-QColor SMESHGUI_Preferences_ColorDlg::GetColor (int type)
-{
-  QColor color;
-  switch (type) {
-  case 1 : color = btnFillColor->palette().active().button();     break; // fill
-  case 2 : color = btnOutlineColor->palette().active().button();  break; // outline
-  case 3 : color = btnNodeColor->palette().active().button();     break; // node
-  case 4 : color = btnBackFaceColor->palette().active().button(); break; // back face
-  }
-  return color;
-}
-
-//=================================================================================
-// function : SetIntValue()
-// purpose  :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::SetIntValue (int type, int value)
-{
-  switch (type) {
-  case 1 : SpinBox_Width->setValue(value);      break; // width
-  case 2 : SpinBox_Nodes_Size->setValue(value); break; // nodes size = value; break;
-  case 3 : SpinBox_Shrink->setValue(value);     break; // shrink coeff
-  }
-}
-
-//=================================================================================
-// function : GetIntValue()
-// purpose  :
-//=================================================================================
-int SMESHGUI_Preferences_ColorDlg::GetIntValue (int type)
-{
-  int res = 0;
-  switch (type) {
-  case 1 : res = SpinBox_Width->value();      break; // width
-  case 2 : res = SpinBox_Nodes_Size->value(); break; // nodes size
-  case 3 : res = SpinBox_Shrink->value();     break; // shrink coeff
-  }
-  return res;
-}
diff --git a/src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.h b/src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.h
deleted file mode 100644 (file)
index 43702b2..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_Preferences_ColorDlg.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef SMESHGUI_PREFERENCES_COLORDLG_H
-#define SMESHGUI_PREFERENCES_COLORDLG_H
-
-// SALOME Includes
-//#include "SUIT_Config.h"
-//#include "SUIT_Settings.h"
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Gen)
-
-// QT Includes
-#include <qdialog.h>
-
-class QButtonGroup;
-class QFrame;
-class QLabel;
-class QPushButton;
-class QSpinBox;
-class QColor;
-class SMESHGUI;
-
-class SMESHGUI_Preferences_ColorDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_Preferences_ColorDlg( SMESHGUI*, const char* name = 0 );
-    ~SMESHGUI_Preferences_ColorDlg();
-
-    void   SetColor(int type, QColor color);
-    QColor GetColor(int type);
-    void   SetIntValue(int type, int value);
-    int    GetIntValue(int type);
-
-private:
-    void closeEvent( QCloseEvent* e ) ;
-    void Init();
-
-private slots:
-//  void RadioButtonClicked(int radioButtonId);
-    void ClickOnOk();
-    void ClickOnCancel();
-    void DeactivateActiveDialog() ;
-    void ActivateThisDialog() ;
-
-    void SelectFillColor();
-    void SelectBackFaceColor();
-    void SelectOutlineColor();
-    void SelectNodeColor();
-
-private:
-    SMESH::SMESH_Gen_var  myCompMesh ;                
-    SMESHGUI*             mySMESHGUI ;            
-
-    QButtonGroup*         ButtonGroup1;
-    QLabel*               TextLabel_Fill;
-    QPushButton*          btnFillColor;
-    QLabel*               TextLabel_Outine;
-    QPushButton*          btnOutlineColor;
-    QLabel*               TextLabel_Width;
-    QSpinBox*             SpinBox_Width;
-    QLabel*               TextLabel_BackFace;
-    QPushButton*          btnBackFaceColor;
-    QLabel*               TextLabel_ShrinkCoeff;
-    QSpinBox*             SpinBox_Shrink;
-    QButtonGroup*         ButtonGroup2;
-    QLabel*               TextLabel_Nodes_Color;
-    QPushButton*          btnNodeColor;
-    QLabel*               TextLabel_Nodes_Size;
-    QSpinBox*             SpinBox_Nodes_Size;
-    QButtonGroup*         GroupButtons;
-    QPushButton*          buttonOk;
-    QPushButton*          buttonCancel;
-};
-
-#endif // SMESHGUI_PREFERENCES_COLORDLG_H
diff --git a/src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.cxx b/src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.cxx
deleted file mode 100644 (file)
index c8da7c2..0000000
+++ /dev/null
@@ -1,765 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_Preferences_ScalarBarDlg.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_Preferences_ScalarBarDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_Utils.h"
-
-#include "SMESH_Actor.h"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_ResourceMgr.h"
-
-#include "SalomeApp_SelectionMgr.h"
-#include "SALOME_ListIO.hxx"
-
-#include <QtxDblSpinBox.h>
-
-#include <qbuttongroup.h>
-#include <qcheckbox.h>
-#include <qcombobox.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qtoolbutton.h>
-#include <qradiobutton.h>
-#include <qspinbox.h>
-#include <qlayout.h>
-#include <qvalidator.h>
-#include <qcolordialog.h>
-
-#include <vtkTextProperty.h>
-#include <vtkScalarBarActor.h>
-#include <vtkScalarsToColors.h>
-
-#define MINIMUM_WIDTH 70
-#define MARGIN_SIZE   11
-#define SPACING_SIZE   6
-
-#define DEF_VER_X  0.01
-#define DEF_VER_Y  0.10
-#define DEF_VER_H  0.80
-#define DEF_VER_W  0.10
-#define DEF_HOR_X  0.20
-#define DEF_HOR_Y  0.01
-#define DEF_HOR_H  0.12
-#define DEF_HOR_W  0.60
-
-using namespace std;
-
-// Only one instance is allowed
-SMESHGUI_Preferences_ScalarBarDlg* SMESHGUI_Preferences_ScalarBarDlg::myDlg = 0;
-
-//=================================================================================================
-/*!
- *  SMESHGUI_Preferences_ScalarBarDlg::ScalarBarProperties
- *
- *  Gets the only instance of "Scalar Bar Properties" dialog box
- */
-//=================================================================================================
-void SMESHGUI_Preferences_ScalarBarDlg::ScalarBarProperties( SMESHGUI* theModule )
-{
-  if (!myDlg) {
-    myDlg = new SMESHGUI_Preferences_ScalarBarDlg( theModule, true);
-    myDlg->show();
-  } else {
-    myDlg->show();
-    myDlg->setActiveWindow();
-    myDlg->raise();
-    myDlg->setFocus();
-  }
-}
-
-//=================================================================================================
-/*!
- *  SMESHGUI_Preferences_ScalarBarDlg::ScalarBarPreferences
- *
- *  Opens "Scalar Bar Preferences" dialog box
- */
-//=================================================================================================
-void SMESHGUI_Preferences_ScalarBarDlg::ScalarBarPreferences( SMESHGUI* theModule )
-{
-  SMESHGUI_Preferences_ScalarBarDlg* aDlg =
-    new SMESHGUI_Preferences_ScalarBarDlg( theModule, false);
-  aDlg->exec();
-}
-
-//=================================================================================================
-/*!
- *  SMESHGUI_Preferences_ScalarBarDlg::SMESHGUI_Preferences_ScalarBarDlg
- *
- *  Constructor
- */
-//=================================================================================================
-SMESHGUI_Preferences_ScalarBarDlg::SMESHGUI_Preferences_ScalarBarDlg( SMESHGUI* theModule, bool property, bool modal )
-     : QDialog( SMESH::GetDesktop( theModule ), 0, modal, WStyle_Customize | WStyle_NormalBorder |
-                WStyle_Title | WStyle_SysMenu | WDestructiveClose ),
-       mySMESHGUI( theModule ),
-       mySelectionMgr( property ? SMESH::GetSelectionMgr( theModule ) : 0 )
-{
-  setName("SMESHGUI_Preferences_ScalarBarDlg");
-  setCaption( property ? tr("SMESH_PROPERTIES_SCALARBAR") : tr("SMESH_PREFERENCES_SCALARBAR"));
-  setSizeGripEnabled(TRUE);
-
-  myActor = 0;
-
-  /******************************************************************************/
-  // Top layout
-  QGridLayout* aTopLayout = new QGridLayout( this );
-  aTopLayout->setSpacing( SPACING_SIZE ); aTopLayout->setMargin( MARGIN_SIZE );
-  int aRow = 0;
-
-  /******************************************************************************/
-  // Scalar range
-  if ( mySelectionMgr ) {
-    myRangeGrp = new QGroupBox ( tr( "SMESH_RANGE_SCALARBAR" ), this, "myRangeGrp" );
-    myRangeGrp->setColumnLayout( 0, Qt::Vertical );
-    myRangeGrp->layout()->setSpacing( 0 ); myRangeGrp->layout()->setMargin( 0 );
-    QGridLayout* myRangeGrpLayout = new QGridLayout( myRangeGrp->layout() );
-    myRangeGrpLayout->setAlignment( Qt::AlignTop );
-    myRangeGrpLayout->setSpacing( SPACING_SIZE ); myRangeGrpLayout->setMargin( MARGIN_SIZE );
-
-    myMinEdit = new QLineEdit( myRangeGrp, "myMinEdit" );
-    myMinEdit->setMinimumWidth( MINIMUM_WIDTH );
-    myMinEdit->setValidator( new QDoubleValidator( this ) );
-
-    myMaxEdit = new QLineEdit( myRangeGrp, "myMaxEdit" );
-    myMaxEdit->setMinimumWidth( MINIMUM_WIDTH );
-    myMaxEdit->setValidator( new QDoubleValidator( this ) );
-
-    myRangeGrpLayout->addWidget( new QLabel( tr( "SMESH_RANGE_MIN" ), myRangeGrp, "myMinLab" ), 0, 0 );
-    myRangeGrpLayout->addWidget( myMinEdit, 0, 1 );
-    myRangeGrpLayout->addWidget( new QLabel( tr( "SMESH_RANGE_MAX" ), myRangeGrp, "myMaxLab" ), 0, 2 );
-    myRangeGrpLayout->addWidget( myMaxEdit, 0, 3 );
-
-    aTopLayout->addWidget( myRangeGrp, aRow, 0 );
-    aRow++;
-  }
-
-  /******************************************************************************/
-  // Text properties
-  myFontGrp = new QGroupBox ( tr( "SMESH_FONT_SCALARBAR" ), this, "myFontGrp" );
-  myFontGrp->setColumnLayout( 0, Qt::Vertical );
-  myFontGrp->layout()->setSpacing( 0 ); myFontGrp->layout()->setMargin( 0 );
-  QGridLayout* myFontGrpLayout = new QGridLayout( myFontGrp->layout() );
-  myFontGrpLayout->setAlignment( Qt::AlignTop );
-  myFontGrpLayout->setSpacing( SPACING_SIZE ); myFontGrpLayout->setMargin( MARGIN_SIZE );
-
-  myTitleColorBtn = new QToolButton( myFontGrp, "myTitleColorBtn" );
-
-  myTitleFontCombo = new QComboBox( false, myFontGrp, "myTitleFontCombo" );
-  myTitleFontCombo->setMinimumWidth( MINIMUM_WIDTH );
-  myTitleFontCombo->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-  myTitleFontCombo->insertItem( tr( "SMESH_FONT_ARIAL" ) );
-  myTitleFontCombo->insertItem( tr( "SMESH_FONT_COURIER" ) );
-  myTitleFontCombo->insertItem( tr( "SMESH_FONT_TIMES" ) );
-
-  myTitleBoldCheck   = new QCheckBox( tr( "SMESH_FONT_BOLD" ),   myFontGrp, "myTitleBoldCheck" );
-  myTitleItalicCheck = new QCheckBox( tr( "SMESH_FONT_ITALIC" ), myFontGrp, "myTitleItalicCheck" );
-  myTitleShadowCheck = new QCheckBox( tr( "SMESH_FONT_SHADOW" ), myFontGrp, "myTitleShadowCheck" );
-
-  myLabelsColorBtn = new QToolButton( myFontGrp, "myLabelsColorBtn" );
-
-  myLabelsFontCombo = new QComboBox( false, myFontGrp, "myLabelsFontCombo" );
-  myLabelsFontCombo->setMinimumWidth( MINIMUM_WIDTH );
-  myLabelsFontCombo->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-  myLabelsFontCombo->insertItem( tr( "SMESH_FONT_ARIAL" ) );
-  myLabelsFontCombo->insertItem( tr( "SMESH_FONT_COURIER" ) );
-  myLabelsFontCombo->insertItem( tr( "SMESH_FONT_TIMES" ) );
-
-  myLabelsBoldCheck   = new QCheckBox( tr( "SMESH_FONT_BOLD" ),   myFontGrp, "myLabelsBoldCheck" );
-  myLabelsItalicCheck = new QCheckBox( tr( "SMESH_FONT_ITALIC" ), myFontGrp, "myLabelsItalicCheck" );
-  myLabelsShadowCheck = new QCheckBox( tr( "SMESH_FONT_SHADOW" ), myFontGrp, "myLabelsShadowCheck" );
-
-  myFontGrpLayout->addWidget( new QLabel( tr( "SMESH_TITLE" ), myFontGrp, "myFontTitleLab" ), 0, 0 );
-  myFontGrpLayout->addWidget( myTitleColorBtn,    0, 1 );
-  myFontGrpLayout->addWidget( myTitleFontCombo,   0, 2 );
-  myFontGrpLayout->addWidget( myTitleBoldCheck,   0, 3 );
-  myFontGrpLayout->addWidget( myTitleItalicCheck, 0, 4 );
-  myFontGrpLayout->addWidget( myTitleShadowCheck, 0, 5 );
-
-  myFontGrpLayout->addWidget( new QLabel( tr( "SMESH_LABELS" ), myFontGrp, "myFontLabelsLab" ), 1, 0 );
-  myFontGrpLayout->addWidget( myLabelsColorBtn,    1, 1 );
-  myFontGrpLayout->addWidget( myLabelsFontCombo,   1, 2 );
-  myFontGrpLayout->addWidget( myLabelsBoldCheck,   1, 3 );
-  myFontGrpLayout->addWidget( myLabelsItalicCheck, 1, 4 );
-  myFontGrpLayout->addWidget( myLabelsShadowCheck, 1, 5 );
-
-  aTopLayout->addWidget( myFontGrp, aRow, 0 );
-  aRow++;
-
-  /******************************************************************************/
-  // Labels & Colors
-  myLabColorGrp = new QGroupBox ( tr( "SMESH_LABELS_COLORS_SCALARBAR" ), this, "myLabColorGrp" );
-  myLabColorGrp->setColumnLayout( 0, Qt::Vertical );
-  myLabColorGrp->layout()->setSpacing( 0 ); myLabColorGrp->layout()->setMargin( 0 );
-  QGridLayout* myLabColorGrpLayout = new QGridLayout( myLabColorGrp->layout() );
-  myLabColorGrpLayout->setAlignment( Qt::AlignTop );
-  myLabColorGrpLayout->setSpacing( SPACING_SIZE ); myLabColorGrpLayout->setMargin( MARGIN_SIZE );
-
-  myColorsSpin = new QSpinBox( 2, 256, 1, myLabColorGrp, "myColorsSpin" );
-  myColorsSpin->setMinimumWidth( MINIMUM_WIDTH );
-  myColorsSpin->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-
-  myLabelsSpin = new QSpinBox( 2, 65, 1, myLabColorGrp, "myLabelsSpin" );
-  myLabelsSpin->setMinimumWidth( MINIMUM_WIDTH );
-  myLabelsSpin->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-
-  myLabColorGrpLayout->addWidget( new QLabel( tr( "SMESH_NUMBEROFCOLORS" ), myLabColorGrp, "myNbColorLab" ), 0, 0 );
-  myLabColorGrpLayout->addWidget( myColorsSpin, 0, 1 );
-  myLabColorGrpLayout->addWidget( new QLabel( tr( "SMESH_NUMBEROFLABELS" ), myLabColorGrp, "myNbLabsLab" ), 0, 2 );
-  myLabColorGrpLayout->addWidget( myLabelsSpin, 0, 3 );
-
-  aTopLayout->addWidget( myLabColorGrp, aRow, 0 );
-  aRow++;
-
-  /******************************************************************************/
-  // Orientation
-  myOrientationGrp = new QButtonGroup ( tr( "SMESH_ORIENTATION" ), this, "myOrientationGrp" );
-  myOrientationGrp->setColumnLayout( 0, Qt::Vertical );
-  myOrientationGrp->layout()->setSpacing( 0 ); myOrientationGrp->layout()->setMargin( 0 );
-  QGridLayout* myOrientationGrpLayout = new QGridLayout( myOrientationGrp->layout() );
-  myOrientationGrpLayout->setAlignment( Qt::AlignTop );
-  myOrientationGrpLayout->setSpacing( SPACING_SIZE ); myOrientationGrpLayout->setMargin( MARGIN_SIZE );
-
-  myVertRadioBtn  = new QRadioButton( tr( "SMESH_VERTICAL" ),   myOrientationGrp, "myVertRadioBtn" );
-  myHorizRadioBtn = new QRadioButton( tr( "SMESH_HORIZONTAL" ), myOrientationGrp, "myHorizRadioBtn" );
-  myVertRadioBtn->setChecked( true );
-
-  myOrientationGrpLayout->addWidget( myVertRadioBtn,  0, 0 );
-  myOrientationGrpLayout->addWidget( myHorizRadioBtn, 0, 1 );
-
-  aTopLayout->addWidget( myOrientationGrp, aRow, 0 );
-  aRow++;
-
-  /******************************************************************************/
-  // Position & Size
-  myOriginDimGrp = new QGroupBox (tr("SMESH_POSITION_SIZE_SCALARBAR"), this, "myOriginDimGrp");
-  myOriginDimGrp->setColumnLayout(0, Qt::Vertical);
-  myOriginDimGrp->layout()->setSpacing( 0 ); myOriginDimGrp->layout()->setMargin( 0 );
-  QGridLayout* myOriginDimGrpLayout = new QGridLayout( myOriginDimGrp->layout() );
-  myOriginDimGrpLayout->setAlignment( Qt::AlignTop );
-  myOriginDimGrpLayout->setSpacing( SPACING_SIZE ); myOriginDimGrpLayout->setMargin( MARGIN_SIZE );
-
-  myXSpin = new QtxDblSpinBox (0.0, 1.0, 0.1, myOriginDimGrp);
-  myXSpin->setMinimumWidth( MINIMUM_WIDTH );
-  myXSpin->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-
-  myYSpin = new QtxDblSpinBox(0.0, 1.0, 0.1, myOriginDimGrp);
-  myYSpin->setMinimumWidth( MINIMUM_WIDTH );
-  myYSpin->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-
-  myWidthSpin = new QtxDblSpinBox(0.0, 1.0, 0.1, myOriginDimGrp);
-  myWidthSpin->setMinimumWidth( MINIMUM_WIDTH );
-  myWidthSpin->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-
-  myHeightSpin = new QtxDblSpinBox(0.0, 1.0, 0.1, myOriginDimGrp);
-  myHeightSpin->setMinimumWidth( MINIMUM_WIDTH );
-  myHeightSpin->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-
-  myOriginDimGrpLayout->addWidget( new QLabel( tr( "SMESH_X_SCALARBAR" ), myOriginDimGrp, "myXLab" ), 0, 0 );
-  myOriginDimGrpLayout->addWidget( myXSpin, 0, 1 );
-  myOriginDimGrpLayout->addWidget( new QLabel( tr( "SMESH_Y_SCALARBAR" ), myOriginDimGrp, "myYLab" ), 0, 2 );
-  myOriginDimGrpLayout->addWidget( myYSpin, 0, 3 );
-  myOriginDimGrpLayout->addWidget( new QLabel( tr( "SMESH_WIDTH" ),  myOriginDimGrp, "myWidthLab" ),  1, 0 );
-  myOriginDimGrpLayout->addWidget( myWidthSpin, 1, 1 );
-  myOriginDimGrpLayout->addWidget( new QLabel( tr( "SMESH_HEIGHT" ), myOriginDimGrp, "myHeightLab" ), 1, 2 );
-  myOriginDimGrpLayout->addWidget( myHeightSpin, 1, 3 );
-
-  aTopLayout->addWidget( myOriginDimGrp, aRow, 0 );
-  aRow++;
-
-  /***************************************************************/
-  // Common buttons
-  myButtonGrp = new QGroupBox( this, "myButtonGrp" );
-  myButtonGrp->setColumnLayout(0, Qt::Vertical );
-  myButtonGrp->layout()->setSpacing( 0 ); myButtonGrp->layout()->setMargin( 0 );
-  QHBoxLayout* myButtonGrpLayout = new QHBoxLayout( myButtonGrp->layout() );
-  myButtonGrpLayout->setAlignment( Qt::AlignTop );
-  myButtonGrpLayout->setSpacing( SPACING_SIZE ); myButtonGrpLayout->setMargin( MARGIN_SIZE );
-
-  myOkBtn = new QPushButton( tr( "SMESH_BUT_OK" ), myButtonGrp, "myOkBtn" );
-  myOkBtn->setAutoDefault( TRUE ); myOkBtn->setDefault( TRUE );
-  myButtonGrpLayout->addWidget( myOkBtn );
-  if ( mySelectionMgr ) {
-    myApplyBtn = new QPushButton( tr( "SMESH_BUT_APPLY" ), myButtonGrp, "myApplyBtn" );
-    myApplyBtn->setAutoDefault( TRUE );
-    myButtonGrpLayout->addWidget( myApplyBtn );
-  }
-  myButtonGrpLayout->addStretch();
-  myCancelBtn = new QPushButton( tr( "SMESH_BUT_CANCEL" ), myButtonGrp, "myCancelBtn" );
-  if ( mySelectionMgr )
-    myCancelBtn->setText( tr( "SMESH_BUT_CLOSE" ) );
-  myCancelBtn->setAutoDefault( TRUE );
-  myButtonGrpLayout->addWidget( myCancelBtn );
-
-  aTopLayout->addWidget( myButtonGrp, aRow, 0 );
-
-  /***************************************************************/
-  // Init
-  // --> first init from preferences
-  SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );
-
-  QColor titleColor (255, 255, 255);
-  if (mgr && mgr->hasValue("SMESH", "scalar_bar_title_color")) {
-    QStringList aTColor =
-      QStringList::split(":", mgr->stringValue("SMESH", "scalar_bar_title_color"), false);
-    titleColor = QColor((aTColor.count() > 0 ? aTColor[0].toInt() : 255),
-                        (aTColor.count() > 1 ? aTColor[1].toInt() : 255),
-                        (aTColor.count() > 2 ? aTColor[2].toInt() : 255));
-  }
-  myTitleColorBtn->setPaletteBackgroundColor(titleColor);
-  myTitleFontCombo->setCurrentItem(0);
-  if (mgr && mgr->hasValue("SMESH", "scalar_bar_title_font")) {
-    QFont f = mgr->fontValue( "SMESH", "scalar_bar_title_font" );
-    if( f.family()=="Arial" )
-      myTitleFontCombo->setCurrentItem(0);
-    if( f.family()=="Courier" )
-      myTitleFontCombo->setCurrentItem(1);
-    if( f.family()=="Times")
-      myTitleFontCombo->setCurrentItem(2);
-  
-    myTitleBoldCheck->setChecked  ( f.bold() );
-    myTitleItalicCheck->setChecked( f.italic() );
-    myTitleShadowCheck->setChecked( f.underline() );
-  }
-
-  QColor labelColor (255, 255, 255);
-  if (mgr && mgr->hasValue("SMESH", "scalar_bar_label_color")) {
-    QStringList aLColor =
-      QStringList::split(":", mgr->stringValue("SMESH", "scalar_bar_label_color"), false);
-    labelColor = QColor((aLColor.count() > 0 ? aLColor[0].toInt() : 255),
-                        (aLColor.count() > 1 ? aLColor[1].toInt() : 255),
-                        (aLColor.count() > 2 ? aLColor[2].toInt() : 255));
-  }
-  myLabelsColorBtn->setPaletteBackgroundColor(labelColor);
-  myLabelsFontCombo->setCurrentItem(0);
-  if (mgr && mgr->hasValue("SMESH", "scalar_bar_label_font")) {
-    QFont f = mgr->fontValue( "SMESH", "scalar_bar_label_font" );
-    if (f.family() == "Arial")
-      myLabelsFontCombo->setCurrentItem(0);
-    if (f.family() == "Courier")
-      myLabelsFontCombo->setCurrentItem(1);
-    if (f.family() == "Times")
-      myLabelsFontCombo->setCurrentItem(2);
-      
-    myLabelsBoldCheck  ->setChecked( f.bold() );
-    myLabelsItalicCheck->setChecked( f.italic() );
-    myLabelsShadowCheck->setChecked( f.underline() );
-  }
-
-  int aNbColors = 64;
-  if (mgr && mgr->hasValue("SMESH", "scalar_bar_num_colors"))
-    aNbColors = mgr->integerValue("SMESH", "scalar_bar_num_colors");
-  myColorsSpin->setValue(aNbColors);
-
-  int aNbLabels = 5;
-  if (mgr && mgr->hasValue("SMESH", "scalar_bar_num_labels"))
-    aNbLabels = mgr->integerValue("SMESH", "scalar_bar_num_labels");
-  myLabelsSpin->setValue(aNbLabels);
-
-  int aOrientation = ( mgr ? mgr->integerValue( "SMESH", "scalar_bar_orientation", 1 ) : 1 );
-  bool isHoriz = ( aOrientation==1 );
-  if (aOrientation == 1)
-    myHorizRadioBtn->setChecked(true);
-  else
-    myVertRadioBtn->setChecked(true);
-  myIniOrientation = myVertRadioBtn->isChecked();
-
-  QString name = isHoriz ? "scalar_bar_horizontal_%1" : "scalar_bar_vertical_%1";
-  if (mgr && mgr->hasValue("SMESH", name.arg( "x" )))
-    myIniX = mgr->doubleValue("SMESH", name.arg( "x" ));
-  else
-    myIniX = myHorizRadioBtn->isChecked() ? DEF_HOR_X : DEF_VER_X;
-
-  if (mgr && mgr->hasValue("SMESH", name.arg( "y" )))
-    myIniY = mgr->doubleValue("SMESH", name.arg( "y" ));
-  else
-    myIniY = myHorizRadioBtn->isChecked() ? DEF_HOR_Y : DEF_VER_Y;
-
-  if (mgr && mgr->hasValue("SMESH", name.arg( "width" )))
-    myIniW = mgr->doubleValue("SMESH", name.arg( "width" ));
-  else
-    myIniW = myHorizRadioBtn->isChecked() ? DEF_HOR_W : DEF_VER_W;
-
-  if (mgr && mgr->hasValue("SMESH", name.arg( "height" )))
-    myIniH = mgr->doubleValue("SMESH", name.arg( "height" ));
-  else
-    myIniH = myHorizRadioBtn->isChecked() ? DEF_HOR_H : DEF_VER_H;
-
-  setOriginAndSize(myIniX, myIniY, myIniW, myIniH);
-
-  if (mySelectionMgr) {
-    // --> then init from selection if necessary
-    onSelectionChanged();
-  }
-
-  /***************************************************************/
-  // Connect section
-  connect( myTitleColorBtn,     SIGNAL( clicked() ), this, SLOT( onTitleColor() ) );
-  connect( myLabelsColorBtn,    SIGNAL( clicked() ), this, SLOT( onLabelsColor() ) );
-  connect( myOkBtn,             SIGNAL( clicked() ), this, SLOT( onOk() ) );
-  connect( myCancelBtn,         SIGNAL( clicked() ), this, SLOT( onCancel() ) );
-  connect( myXSpin,             SIGNAL( valueChanged( double ) ), this, SLOT( onXYChanged() ) );
-  connect( myYSpin,             SIGNAL( valueChanged( double ) ), this, SLOT( onXYChanged() ) );
-  connect( myOrientationGrp,    SIGNAL( clicked( int ) ), this, SLOT( onOrientationChanged() ) );
-  if ( mySelectionMgr ) {
-    connect( myApplyBtn,        SIGNAL( clicked() ), this, SLOT( onApply() ) );
-    connect( mySelectionMgr,    SIGNAL( currentSelectionChanged() ), this, SLOT( onSelectionChanged() ) );
-  }
-  connect( mySMESHGUI,  SIGNAL( SignalCloseAllDialogs() ), this, SLOT( onCancel() ) ) ;
-}
-
-//=================================================================================================
-/*!
- *  SMESHGUI_Preferences_ScalarBarDlg::~SMESHGUI_Preferences_ScalarBarDlg
- *
- *  Destructor
- */
-//=================================================================================================
-SMESHGUI_Preferences_ScalarBarDlg::~SMESHGUI_Preferences_ScalarBarDlg()
-{
-}
-
-//=================================================================================================
-/*!
- *  SMESHGUI_Preferences_ScalarBarDlg::onOk
- *
- *  OK button slot
- */
-//=================================================================================================
-void SMESHGUI_Preferences_ScalarBarDlg::onOk()
-{
-  if ( onApply() )
-    onCancel();
-}
-
-//=================================================================================================
-/*!
- *  SMESHGUI_Preferences_ScalarBarDlg::onApply
- *
- *  Apply button slot
- */
-//=================================================================================================
-bool SMESHGUI_Preferences_ScalarBarDlg::onApply()
-{
-  if (mySelectionMgr) {
-    // Scalar Bar properties
-    if (!myActor)
-      return false;
-    vtkScalarBarActor* myScalarBarActor = myActor->GetScalarBarActor();
-
-    vtkTextProperty* aTitleTextPrp = myScalarBarActor->GetTitleTextProperty();
-    QColor aTColor = myTitleColorBtn->paletteBackgroundColor();
-    aTitleTextPrp->SetColor( aTColor.red()/255., aTColor.green()/255., aTColor.blue()/255. );
-    if ( myTitleFontCombo->currentItem() == 0 )
-      aTitleTextPrp->SetFontFamilyToArial();
-    else if ( myTitleFontCombo->currentItem() == 1 )
-      aTitleTextPrp->SetFontFamilyToCourier();
-    else
-      aTitleTextPrp->SetFontFamilyToTimes();
-    aTitleTextPrp->SetBold( myTitleBoldCheck->isChecked() );
-    aTitleTextPrp->SetItalic( myTitleItalicCheck->isChecked() );
-    aTitleTextPrp->SetShadow( myTitleShadowCheck->isChecked() );
-    myScalarBarActor->SetTitleTextProperty( aTitleTextPrp );
-
-    vtkTextProperty* aLabelsTextPrp = myScalarBarActor->GetLabelTextProperty();
-    QColor aLColor = myLabelsColorBtn->paletteBackgroundColor();
-    aLabelsTextPrp->SetColor( aLColor.red()/255., aLColor.green()/255., aLColor.blue()/255. );
-    if ( myLabelsFontCombo->currentItem() == 0 )
-      aLabelsTextPrp->SetFontFamilyToArial();
-    else if ( myLabelsFontCombo->currentItem() == 1 )
-      aLabelsTextPrp->SetFontFamilyToCourier();
-    else
-      aLabelsTextPrp->SetFontFamilyToTimes();
-    aLabelsTextPrp->SetBold( myLabelsBoldCheck->isChecked() );
-    aLabelsTextPrp->SetItalic( myLabelsItalicCheck->isChecked() );
-    aLabelsTextPrp->SetShadow( myLabelsShadowCheck->isChecked() );
-    myScalarBarActor->SetLabelTextProperty( aLabelsTextPrp );
-
-    myScalarBarActor->SetNumberOfLabels( myLabelsSpin->value() );
-    myScalarBarActor->SetMaximumNumberOfColors( myColorsSpin->value() );
-
-    if ( myHorizRadioBtn->isChecked() )
-      myScalarBarActor->SetOrientationToHorizontal();
-    else
-      myScalarBarActor->SetOrientationToVertical();
-
-    myScalarBarActor->SetPosition( myXSpin->value(), myYSpin->value() );
-    myScalarBarActor->SetWidth( myWidthSpin->value() );
-    myScalarBarActor->SetHeight( myHeightSpin->value() );
-
-    double aMin = myMinEdit->text().toDouble();
-    double aMax = myMaxEdit->text().toDouble();
-    myScalarBarActor->GetLookupTable()->SetRange( aMin, aMax );
-    SMESH::RepaintCurrentView();
-  } else {
-    // Scalar Bar preferences
-    SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );
-    if (!mgr) return false;
-
-    QColor titleColor = myTitleColorBtn->paletteBackgroundColor();
-    mgr->setValue("SMESH", "scalar_bar_title_color", titleColor );
-
-    QFont f;
-    if (myTitleFontCombo->currentItem() == 0)
-      f.setFamily( "Arial" );
-    else if (myTitleFontCombo->currentItem() == 1)
-      f.setFamily( "Courier" );
-    else
-      f.setFamily( "Times");
-
-    f.setBold( myTitleBoldCheck  ->isChecked() );
-    f.setItalic( myTitleItalicCheck->isChecked() );
-    f.setUnderline( myTitleShadowCheck->isChecked() );
-    mgr->setValue( "SMESH", "scalar_bar_title_font", f );
-
-    QColor labelColor = myLabelsColorBtn->paletteBackgroundColor();
-    mgr->setValue("SMESH", "scalar_bar_label_color", labelColor );
-
-    if (myLabelsFontCombo->currentItem() == 0)
-      f.setFamily( "Arial" );
-    else if ( myLabelsFontCombo->currentItem() == 1 )
-      f.setFamily( "Courier");
-    else
-      f.setFamily( "Times");
-
-    f.setBold( myLabelsBoldCheck  ->isChecked() );
-    f.setItalic( myLabelsItalicCheck->isChecked() );
-    f.setUnderline( myLabelsShadowCheck->isChecked() );
-    mgr->setValue( "SMESH", "scalar_bar_label_font", f );
-
-    mgr->setValue("SMESH", "scalar_bar_num_colors", myColorsSpin->value());
-    mgr->setValue("SMESH", "scalar_bar_num_labels", myLabelsSpin->value());
-
-    mgr->setValue("SMESH", "scalar_bar_orientation", myHorizRadioBtn->isChecked() ? 1 : 0 );
-
-    QString name = myHorizRadioBtn->isChecked() ? "scalar_bar_horizontal_%1" : "scalar_bar_vertical_%1";
-    mgr->setValue("SMESH", name.arg( "x" ), myXSpin->value());
-    mgr->setValue("SMESH", name.arg( "y" ), myYSpin->value());
-    mgr->setValue("SMESH", name.arg( "width" ),     myWidthSpin->value());
-    mgr->setValue("SMESH", name.arg( "height" ),    myHeightSpin->value());
-  }
-  return true;
-}
-
-//=================================================================================================
-/*!
- *  SMESHGUI_Preferences_ScalarBarDlg::onCancel
- *
- *  Cancel button slot
- */
-//=================================================================================================
-void SMESHGUI_Preferences_ScalarBarDlg::onCancel()
-{
-  close();
-}
-
-//=================================================================================================
-/*!
- *  SMESHGUI_Preferences_ScalarBarDlg::onTitleColor
- *
- *  Change Title color button slot
- */
-//=================================================================================================
-void SMESHGUI_Preferences_ScalarBarDlg::onTitleColor()
-{
-  QColor aColor = myTitleColorBtn->paletteBackgroundColor();
-  aColor = QColorDialog::getColor( aColor, this );
-  if ( aColor.isValid() )
-    myTitleColorBtn->setPaletteBackgroundColor( aColor );
-}
-
-//=================================================================================================
-/*!
- *  SMESHGUI_Preferences_ScalarBarDlg::onLabelsColor
- *
- *  Change Labels color button slot
- */
-//=================================================================================================
-void SMESHGUI_Preferences_ScalarBarDlg::onLabelsColor()
-{
-  QColor aColor = myLabelsColorBtn->paletteBackgroundColor();
-  aColor = QColorDialog::getColor( aColor, this );
-  if ( aColor.isValid() )
-    myLabelsColorBtn->setPaletteBackgroundColor( aColor );
-}
-
-//=================================================================================================
-/*!
- *  SMESHGUI_Preferences_ScalarBarDlg::onSelectionChanged
- *
- *  Called when selection changed
- */
-//=================================================================================================
-void SMESHGUI_Preferences_ScalarBarDlg::onSelectionChanged()
-{
-  if (mySelectionMgr) {
-    SALOME_ListIO aList;
-    mySelectionMgr->selectedObjects(aList);
-
-    if (aList.Extent() == 1) {
-      Handle(SALOME_InteractiveObject) anIO = aList.First();
-      if( anIO->hasEntry() ) {
-       SMESH_Actor* anActor = SMESH::FindActorByEntry(anIO->getEntry());
-       if ( anActor && anActor->GetScalarBarActor() && anActor->GetControlMode() != SMESH_Actor::eNone ) {
-         myActor = anActor;
-         vtkScalarBarActor* myScalarBarActor = myActor->GetScalarBarActor();
-
-         if ( myScalarBarActor->GetLookupTable() ) {
-           float *range = myScalarBarActor->GetLookupTable()->GetRange();
-           myMinEdit->setText( QString::number( range[0] ) );
-           myMaxEdit->setText( QString::number( range[1] ) );
-         }
-
-         vtkTextProperty* aTitleTextPrp = myScalarBarActor->GetTitleTextProperty();
-         float aTColor[3];
-         aTitleTextPrp->GetColor( aTColor );
-         myTitleColorBtn->setPaletteBackgroundColor( QColor( (int)( aTColor[0]*255 ), (int)( aTColor[1]*255 ), (int)( aTColor[2]*255 ) ) );
-         myTitleFontCombo->setCurrentItem( aTitleTextPrp->GetFontFamily() );
-         myTitleBoldCheck->setChecked( aTitleTextPrp->GetBold() );
-         myTitleItalicCheck->setChecked( aTitleTextPrp->GetItalic() );
-         myTitleShadowCheck->setChecked( aTitleTextPrp->GetShadow() );
-
-         vtkTextProperty* aLabelsTextPrp = myScalarBarActor->GetLabelTextProperty();
-         float aLColor[3];
-         aLabelsTextPrp->GetColor( aLColor );
-         myLabelsColorBtn->setPaletteBackgroundColor( QColor( (int)( aLColor[0]*255 ), (int)( aLColor[1]*255 ), (int)( aLColor[2]*255 ) ) );
-         myLabelsFontCombo->setCurrentItem( aLabelsTextPrp->GetFontFamily() );
-         myLabelsBoldCheck->setChecked( aLabelsTextPrp->GetBold() );
-         myLabelsItalicCheck->setChecked( aLabelsTextPrp->GetItalic() );
-         myLabelsShadowCheck->setChecked( aLabelsTextPrp->GetShadow() );
-
-         myLabelsSpin->setValue( myScalarBarActor->GetNumberOfLabels() );
-         myColorsSpin->setValue( myScalarBarActor->GetMaximumNumberOfColors() );
-
-         if ( myScalarBarActor->GetOrientation() == VTK_ORIENT_VERTICAL )
-           myVertRadioBtn->setChecked( true );
-         else
-           myHorizRadioBtn->setChecked( true );
-         myIniOrientation = myVertRadioBtn->isChecked();
-
-         myIniX = myScalarBarActor->GetPosition()[0];
-         myIniY = myScalarBarActor->GetPosition()[1];
-         myIniW = myScalarBarActor->GetWidth();
-         myIniH = myScalarBarActor->GetHeight();
-         setOriginAndSize( myIniX, myIniY, myIniW, myIniH );
-
-         myRangeGrp->setEnabled( true );
-         myFontGrp->setEnabled( true );
-         myLabColorGrp->setEnabled( true );
-         myOrientationGrp->setEnabled( true );
-         myOriginDimGrp->setEnabled( true );
-         myOkBtn->setEnabled( true );
-         myApplyBtn->setEnabled( true );
-         return;
-       }
-      }
-    }
-    myActor = 0;
-    myRangeGrp->setEnabled( false );
-    myFontGrp->setEnabled( false );
-    myLabColorGrp->setEnabled( false );
-    myOrientationGrp->setEnabled( false );
-    myOriginDimGrp->setEnabled( false );
-    myOkBtn->setEnabled( false );
-    myApplyBtn->setEnabled( false );
-  }
-}
-
-//=================================================================================================
-/*!
- *  SMESHGUI_Preferences_ScalarBarDlg::closeEvent
- *
- *  Close event handler
- */
-//=================================================================================================
-void SMESHGUI_Preferences_ScalarBarDlg::closeEvent( QCloseEvent* e )
-{
-  if ( mySelectionMgr ) // "Properties" dialog box
-    myDlg = 0;
-  QDialog::closeEvent( e );
-}
-
-//=================================================================================================
-/*!
- *  SMESHGUI_Preferences_ScalarBarDlg::onXYChanged
- *
- *  Called when X, Y values are changed
- */
-//=================================================================================================
-void SMESHGUI_Preferences_ScalarBarDlg::onXYChanged()
-{
-  myWidthSpin->setMaxValue( 1.0 - myXSpin->value() );
-  myHeightSpin->setMaxValue( 1.0 - myYSpin->value() );
-}
-
-//=================================================================================================
-/*!
- *  SMESHGUI_Preferences_ScalarBarDlg::setOriginAndSize
- *
- *  Called when X, Y values are changed
- */
-//=================================================================================================
-void SMESHGUI_Preferences_ScalarBarDlg::setOriginAndSize( const double x,
-                                                         const double y,
-                                                         const double w,
-                                                         const double h )
-{
-  blockSignals( true );
-  myXSpin->setValue( x );
-  myYSpin->setValue( y );
-  myWidthSpin->setMaxValue( 1.0 );
-  myWidthSpin->setValue( w );
-  myHeightSpin->setMaxValue( 1.0 );
-  myHeightSpin->setValue( h );
-  blockSignals( false );
-  onXYChanged();
-}
-
-//=================================================================================================
-/*!
- *  SMESHGUI_Preferences_ScalarBarDlg::onOrientationChanged
- *
- *  Called when orientation is changed
- */
-//=================================================================================================
-void SMESHGUI_Preferences_ScalarBarDlg::onOrientationChanged()
-{
-  int aOrientation = myVertRadioBtn->isChecked();
-  if ( aOrientation == myIniOrientation )
-    setOriginAndSize( myIniX, myIniY, myIniW, myIniH );
-  else
-    setOriginAndSize( aOrientation ? DEF_VER_X : DEF_HOR_X,
-                     aOrientation ? DEF_VER_Y : DEF_HOR_Y,
-                     aOrientation ? DEF_VER_W : DEF_HOR_W,
-                     aOrientation ? DEF_VER_H : DEF_HOR_H );
-}
diff --git a/src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.h b/src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.h
deleted file mode 100644 (file)
index 75fb1e4..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_Preferences_ScalarBarDlg.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef SMESHGUI_PREFERENCES_SCALARBARDLG_H
-#define SMESHGUI_PREFERENCES_SCALARBARDLG_H
-
-#include <qdialog.h>
-
-class QButtonGroup;
-class QCheckBox;
-class QComboBox;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QToolButton;
-class QRadioButton;
-class QSpinBox;
-class SMESHGUI;
-
-class QtxDblSpinBox;
-
-class SalomeApp_SelectionMgr;
-
-class SMESH_Actor;
-
-class SMESHGUI_Preferences_ScalarBarDlg : public QDialog
-{ 
-  Q_OBJECT
-
-public:
-  ~SMESHGUI_Preferences_ScalarBarDlg();
-  static void ScalarBarPreferences( SMESHGUI* );
-  static void ScalarBarProperties ( SMESHGUI* );
-
-protected:
-  SMESHGUI_Preferences_ScalarBarDlg( SMESHGUI*, bool, bool modal = FALSE );
-  static SMESHGUI_Preferences_ScalarBarDlg* myDlg;
-  void closeEvent( QCloseEvent* e );
-  void setOriginAndSize( const double x, const double y, const double w, const double h );
-
-protected slots:
-  void onOk();
-  bool onApply();
-  void onCancel();
-  void onTitleColor();
-  void onLabelsColor();
-  void onSelectionChanged();
-  void onXYChanged();
-  void onOrientationChanged();
-
-private:
-  SMESHGUI*                mySMESHGUI;
-  SalomeApp_SelectionMgr*  mySelectionMgr;
-  SMESH_Actor*             myActor;
-  double                   myIniX, myIniY, myIniW, myIniH;
-  int                      myIniOrientation;
-
-  QGroupBox*         myRangeGrp;
-  QLineEdit*         myMinEdit;
-  QLineEdit*         myMaxEdit;
-
-  QGroupBox*         myFontGrp;
-  QToolButton*       myTitleColorBtn;
-  QComboBox*         myTitleFontCombo;
-  QCheckBox*         myTitleBoldCheck;
-  QCheckBox*         myTitleItalicCheck;
-  QCheckBox*         myTitleShadowCheck;
-  QToolButton*       myLabelsColorBtn;
-  QComboBox*         myLabelsFontCombo;
-  QCheckBox*         myLabelsBoldCheck;
-  QCheckBox*         myLabelsItalicCheck;
-  QCheckBox*         myLabelsShadowCheck;
-  
-  QGroupBox*         myLabColorGrp;
-  QSpinBox*          myColorsSpin;
-  QSpinBox*          myLabelsSpin;
-
-  QButtonGroup*      myOrientationGrp;
-  QRadioButton*      myVertRadioBtn;
-  QRadioButton*      myHorizRadioBtn;
-
-  QGroupBox*         myOriginDimGrp;
-  QtxDblSpinBox*     myXSpin;
-  QtxDblSpinBox*     myYSpin;
-  QtxDblSpinBox*     myWidthSpin;
-  QtxDblSpinBox*     myHeightSpin;
-
-  QGroupBox*         myButtonGrp;
-  QPushButton*       myOkBtn;
-  QPushButton*       myApplyBtn;
-  QPushButton*       myCancelBtn;
-};
-
-#endif // SMESHGUI_PREFERENCES_SCALARBARDLG_H
diff --git a/src/SMESHGUI/SMESHGUI_Preferences_SelectionDlg.cxx b/src/SMESHGUI/SMESHGUI_Preferences_SelectionDlg.cxx
deleted file mode 100644 (file)
index 7606ccf..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_Preferences_SelectionDlg.cxx
-//  Author : Natalia KOPNOVA
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_Preferences_SelectionDlg.h"
-#include "SMESHGUI.h"
-
-#include "SMESHGUI_Utils.h"
-
-#include "SUIT_Desktop.h"
-
-#include <qgroupbox.h>
-#include <qlayout.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qvalidator.h>
-#include <qspinbox.h>
-#include <qpushbutton.h>
-#include <qpalette.h>
-#include <qcolordialog.h>
-
-using namespace std;
-
-//=================================================================================
-// class    : SMESHGUI_LineEdit
-// purpose  : 
-//=================================================================================
-SMESHGUI_LineEdit::SMESHGUI_LineEdit(QWidget* parent, const char *name)
-  : QLineEdit(parent, name)
-{
-}
-
-SMESHGUI_LineEdit::SMESHGUI_LineEdit(const QString& text, QWidget* parent, const char *name)
-  : QLineEdit(text, parent, name)
-{
-}
-
-void SMESHGUI_LineEdit::focusOutEvent(QFocusEvent* e)
-{
-  const QValidator* aVal = validator();
-  QString aText = text();
-  int aCurPos = cursorPosition();
-  if (aVal && aVal->validate(aText, aCurPos) != QValidator::Acceptable) {
-    QString aValid = aText;
-    aVal->fixup(aValid);
-    if (aText != aValid) {
-      setText(aValid);
-      update();
-      return;
-    }
-  }
-  QLineEdit::focusOutEvent(e);
-}
-
-
-//=================================================================================
-// class    : SMESHGUI_DoubleValidator
-// purpose  : 
-//=================================================================================
-SMESHGUI_DoubleValidator::SMESHGUI_DoubleValidator(QObject * parent, const char *name)
-  : QDoubleValidator(parent, name)
-{
-}
-
-SMESHGUI_DoubleValidator::SMESHGUI_DoubleValidator(double bottom, double top, int decimals,
-                                                QObject * parent, const char *name)
-  : QDoubleValidator(bottom, top, decimals, parent, name)
-{
-}
-
-void SMESHGUI_DoubleValidator::fixup(QString& theText) const
-{
-  bool ok;
-  double aValue = theText.toDouble(&ok);
-  if (ok) {
-    if (aValue < bottom())
-      theText = QString::number(bottom(), 'g', decimals());
-    if (aValue > top())
-      theText = QString::number(top(), 'g', decimals());
-  }
-}
-
-
-//=================================================================================
-// class    : SMESHGUI_Preferences_SelectionDlg()
-// purpose  : 
-//=================================================================================
-SMESHGUI_Preferences_SelectionDlg::SMESHGUI_Preferences_SelectionDlg( SMESHGUI* theModule, const char* name )
-  : QDialog( SMESH::GetDesktop( theModule ), name, true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ),
-    mySMESHGUI( theModule )
-{
-  if ( !name ) setName( "SMESHGUI_Preferences_SelectionDlg" );
-  setCaption( tr( "SMESH_PREF_SELECTION"  ) );
-
-  QVBoxLayout* aMainLayout = new QVBoxLayout(this, 11, 6);
-  QLabel* aLabel;
-  
-  /***************************************************************/
-  QGroupBox* aSelectBox = new QGroupBox(4, Qt::Horizontal, this, "selection");
-  aSelectBox->setTitle(tr("SMESH_SELECTION"));
-
-  aLabel = new QLabel(aSelectBox, "selection color label");
-  aLabel->setText(tr("SMESH_OUTLINE_COLOR"));
-  myColor[2] = new QPushButton(aSelectBox, "outline color");
-  myColor[2]->setFixedSize(QSize(25, 25));
-
-  aSelectBox->addSpace(0);
-  aSelectBox->addSpace(0);
-
-  aLabel = new QLabel(aSelectBox, "selection color label");
-  aLabel->setText(tr("SMESH_ELEMENTS_COLOR"));
-  myColor[1] = new QPushButton(aSelectBox, "elements color");
-  myColor[1]->setFixedSize(QSize(25, 25));
-
-  aLabel = new QLabel(aSelectBox, "selection width label");
-  aLabel->setText(tr("SMESH_WIDTH"));
-  myWidth[1] = new QSpinBox(0, 5, 1, aSelectBox, "selection width");
-  myWidth[1]->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
-  myWidth[1]->setButtonSymbols(QSpinBox::PlusMinus);
-  myWidth[1]->setMinimumWidth(50);
-  
-  /***************************************************************/
-  QGroupBox* aPreSelectBox = new QGroupBox(1, Qt::Vertical, this, "preselection");
-  aPreSelectBox->setTitle(tr("SMESH_PRESELECTION"));
-
-  aLabel = new QLabel(aPreSelectBox, "preselection color label");
-  aLabel->setText(tr("SMESH_HILIGHT_COLOR"));
-  myColor[0] = new QPushButton(aPreSelectBox, "preselection color");
-  myColor[0]->setFixedSize(QSize(25, 25));
-
-  aLabel = new QLabel(aPreSelectBox, "preselection width label");
-  aLabel->setText(tr("SMESH_WIDTH"));
-  myWidth[0] = new QSpinBox(0, 5, 1, aPreSelectBox, "preselection width");
-  myWidth[0]->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
-  myWidth[0]->setButtonSymbols(QSpinBox::PlusMinus);
-  myWidth[0]->setMinimumWidth(50);
-  
-  /***************************************************************/
-  QGroupBox* aPrecisionBox = new QGroupBox(1, Qt::Vertical, this, "preselection");
-  aPrecisionBox->setTitle(tr("SMESH_PRECISION"));
-  QDoubleValidator* aValidator = new SMESHGUI_DoubleValidator(aPrecisionBox);
-  aValidator->setBottom(0.001);
-  aValidator->setDecimals(6);
-
-  aLabel = new QLabel(aPrecisionBox, "node tol label");
-  aLabel->setText(tr("SMESH_NODES"));
-  myPrecision[0] = new SMESHGUI_LineEdit(aPrecisionBox, "node precision");
-  myPrecision[0]->setValidator(aValidator);
-
-  aLabel = new QLabel(aPrecisionBox, "item tol label");
-  aLabel->setText(tr("SMESH_ELEMENTS"));
-  myPrecision[1] = new SMESHGUI_LineEdit(aPrecisionBox, "item precision");
-  myPrecision[1]->setValidator(aValidator);
-
-  /***************************************************************/
-  QFrame* aButtons = new QFrame(this, "button box");
-  aButtons->setFrameStyle(QFrame::Box | QFrame::Sunken);
-  QHBoxLayout* aBtnLayout = new QHBoxLayout(aButtons, 11, 6);
-  aBtnLayout->setAutoAdd(false);
-
-  QPushButton* aOKBtn = new QPushButton(aButtons, "ok");
-  aOKBtn->setText(tr("SMESH_BUT_OK"));
-  aOKBtn->setAutoDefault(true);
-  aOKBtn->setDefault(true);
-  QPushButton* aCloseBtn = new QPushButton(aButtons, "close");
-  aCloseBtn->setText(tr("SMESH_BUT_CLOSE"));
-  aCloseBtn->setAutoDefault(true);
-
-  aBtnLayout->addWidget(aOKBtn);
-  aBtnLayout->addStretch();
-  aBtnLayout->addWidget(aCloseBtn);
-
-  /***************************************************************/
-  aMainLayout->addWidget(aSelectBox);
-  aMainLayout->addWidget(aPreSelectBox);
-  aMainLayout->addWidget(aPrecisionBox);
-  aMainLayout->addWidget(aButtons);
-
-  for (int i = 0; i < 3; i++)
-    connect(myColor[i], SIGNAL(clicked()), this, SLOT(onSelectColor()));
-
-  connect(aOKBtn, SIGNAL(clicked()), this, SLOT(accept()));
-  connect(aCloseBtn, SIGNAL(clicked()), this, SLOT(reject()));
-
-  /* Move widget on the botton right corner of main widget */
-  int x, y ;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-}
-
-//=================================================================================
-// function : ~SMESHGUI_Preferences_SelectionDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_Preferences_SelectionDlg::~SMESHGUI_Preferences_SelectionDlg()
-{
-    // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_Preferences_SelectionDlg::closeEvent( QCloseEvent* e )
-{
-  reject();
-}
-
-//=================================================================================
-// function : onSelectColor()
-// purpose  :
-//=================================================================================
-void SMESHGUI_Preferences_SelectionDlg::onSelectColor()
-{
-  QPushButton* aSender = (QPushButton*)sender();
-  QColor aColor = aSender->palette().active().button();
-  aColor = QColorDialog::getColor(aColor, this);
-  if (aColor.isValid()) {
-    QPalette aPal = aSender->palette();
-    aPal.setColor(QColorGroup::Button, aColor);
-    aSender->setPalette(aPal);
-  }
-}
-
-//=================================================================================
-// function : SetColor()
-// purpose  :
-//=================================================================================
-void SMESHGUI_Preferences_SelectionDlg::SetColor(int type, QColor color)
-{
-  if (type > 0 && type <= 3) {
-    QPalette aPal = myColor[type-1]->palette();
-    aPal.setColor(QColorGroup::Button, color);
-    myColor[type-1]->setPalette(aPal);
- }
-}
-
-//=================================================================================
-// function : GetColor()
-// purpose  :
-//=================================================================================
-QColor SMESHGUI_Preferences_SelectionDlg::GetColor(int type)
-{
-  QColor aColor;
-  if (type > 0 && type <= 3)
-    aColor = myColor[type-1]->palette().active().button();
-  return aColor;
-}
-
-//=================================================================================
-// function : SetWidth()
-// purpose  :
-//=================================================================================
-void SMESHGUI_Preferences_SelectionDlg::SetWidth(int type, int value)
-{
-  if (type > 0 && type <= 2)
-    myWidth[type-1]->setValue(value);
-}
-
-//=================================================================================
-// function : GetWidth()
-// purpose  :
-//=================================================================================
-int SMESHGUI_Preferences_SelectionDlg::GetWidth(int type)
-{
-  if (type > 0 && type <= 2)
-    return myWidth[type-1]->value();
-  return 0;
-}
-
-//=================================================================================
-// function : SetPrecision()
-// purpose  :
-//=================================================================================
-void SMESHGUI_Preferences_SelectionDlg::SetPrecision(int type, double value)
-{
-  if (type > 0 && type <= 2)
-    myPrecision[type-1]->setText(QString::number(value));
-}
-
-//=================================================================================
-// function : GetPrecision()
-// purpose  :
-//=================================================================================
-double SMESHGUI_Preferences_SelectionDlg::GetPrecision(int type)
-{
-  if (type > 0 && type <= 2)
-    return myPrecision[type-1]->text().toDouble();
-  return 0;
-}
diff --git a/src/SMESHGUI/SMESHGUI_Preferences_SelectionDlg.h b/src/SMESHGUI/SMESHGUI_Preferences_SelectionDlg.h
deleted file mode 100644 (file)
index 07b7a64..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platorm.org or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_Preferences_SelectionDlg.h
-//  Author : Natalia KOPNOVA
-//  Module : SMESH
-//  $Header$
-
-#ifndef SMESHGUI_PREFERENCES_SELECTIONDLG_H
-#define SMESHGUI_PREFERENCES_SELECTIONDLG_H
-
-
-// QT Includes
-#include <qdialog.h>
-#include <qlineedit.h>
-#include <qvalidator.h>
-
-class QPushButton;
-class QSpinBox;
-class QColor;
-class SMESHGUI;
-
-class SMESHGUI_LineEdit : public QLineEdit
-{
-  Q_OBJECT
-
-  public:
-    SMESHGUI_LineEdit(QWidget* parent, const char* name = 0);
-    SMESHGUI_LineEdit(const QString& text, QWidget* parent, const char* name = 0);
-
-    ~SMESHGUI_LineEdit() {};
-
-  protected:
-    void focusOutEvent(QFocusEvent* e);
-};
-
-class SMESHGUI_DoubleValidator : public QDoubleValidator
-{
-  Q_OBJECT
-
-  public:
-    SMESHGUI_DoubleValidator(QObject* parent, const char* name = 0);
-    SMESHGUI_DoubleValidator(double bottom, double top, int decimals,
-                           QObject* parent, const char* name = 0);
-
-    ~SMESHGUI_DoubleValidator() {};
-
-    void fixup(QString& text) const;
-};
-
-class SMESHGUI_Preferences_SelectionDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_Preferences_SelectionDlg( SMESHGUI*, const char* name = 0 );
-    ~SMESHGUI_Preferences_SelectionDlg();
-
-    void   SetColor(int type, QColor color);
-    QColor GetColor(int type);
-    void   SetWidth(int type, int value);
-    int    GetWidth(int type);
-    void   SetPrecision(int type, double value);
-    double GetPrecision(int type);
-
-private:
-    void closeEvent( QCloseEvent* e ) ;
-
-private slots:
-    void onSelectColor();
-
-private:
-    SMESHGUI*             mySMESHGUI;
-    QPushButton*          myColor[3];
-    QSpinBox*             myWidth[2];
-    QLineEdit*            myPrecision[2];
-};
-
-#endif // SMESHGUI_PREFERENCES_SELECTIONDLG_H
diff --git a/src/SMESHGUI/SMESHGUI_RemoveElementsDlg.h b/src/SMESHGUI/SMESHGUI_RemoveElementsDlg.h
deleted file mode 100644 (file)
index 4c9b62b..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_RemoveElementsDlg.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef DIALOGBOX_REMOVE_ELEMENTS_H
-#define DIALOGBOX_REMOVE_ELEMENTS_H
-
-#include "SalomeApp_SelectionMgr.h"
-
-// QT Includes
-#include <qvariant.h>
-#include <qdialog.h>
-
-class QVBoxLayout; 
-class QHBoxLayout; 
-class QGridLayout; 
-class QButtonGroup;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-
-class SMESHGUI;
-class SMESH_Actor;
-class SVTK_Selector;
-class SVTK_ViewWindow;
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-//=================================================================================
-// class    : SMESHGUI_RemoveElementsDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_RemoveElementsDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_RemoveElementsDlg(SMESHGUI* theModule,
-                              const char* name = 0,
-                              bool modal = FALSE,
-                              WFlags fl = 0);
-    ~SMESHGUI_RemoveElementsDlg();
-
-private:
-
-    void Init() ;
-    void closeEvent( QCloseEvent* e ) ;
-    void enterEvent ( QEvent * ) ;                          /* mouse enter the QWidget */
-    void hideEvent ( QHideEvent * );                        /* ESC key */
-
-    SalomeApp_SelectionMgr*       mySelectionMgr;
-    SVTK_Selector*                mySelector;
-    SMESHGUI*                     mySMESHGUI;
-
-    int                           myNbOkElements;           /* to check when arguments is defined */
-    int                           myConstructorId;          /* Current constructor id = radio button id */
-    QLineEdit*                    myEditCurrentArgument;    /* Current  LineEdit */
-
-    bool                          myBusy;
-    SMESH::SMESH_Mesh_var         myMesh;
-    SMESH_Actor*                  myActor;
-    
-    QButtonGroup* GroupConstructors;
-    QRadioButton* Constructor1;
-    QGroupBox* GroupButtons;
-    QPushButton* buttonOk;
-    QPushButton* buttonCancel;
-    QPushButton* buttonApply;
-    QGroupBox* GroupC1;
-    QLabel* TextLabelC1A1;
-    QPushButton* SelectButtonC1A1;
-    QLineEdit* LineEditC1A1;
-
-private slots:
-
-    void ConstructorsClicked(int constructorId);
-    void ClickOnOk();
-    void ClickOnCancel();
-    void ClickOnApply();
-    void SetEditCurrentArgument() ;
-    void SelectionIntoArgument() ;
-    void DeactivateActiveDialog() ;
-    void ActivateThisDialog() ;
-    void onTextChange(const QString&);
-
-protected:
-    QGridLayout* SMESHGUI_RemoveElementsDlgLayout;
-    QGridLayout* GroupConstructorsLayout;
-    QGridLayout* GroupButtonsLayout;
-    QGridLayout* GroupC1Layout;
-};
-
-#endif // DIALOGBOX_REMOVE_ELEMENTS_H
diff --git a/src/SMESHGUI/SMESHGUI_RemoveNodesDlg.h b/src/SMESHGUI/SMESHGUI_RemoveNodesDlg.h
deleted file mode 100644 (file)
index e0a89b0..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_RemoveNodesDlg.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef DIALOGBOX_REMOVE_NODES_H
-#define DIALOGBOX_REMOVE_NODES_H
-
-#include "SalomeApp_SelectionMgr.h"
-
-// QT Includes
-#include <qvariant.h>
-#include <qdialog.h>
-
-// Open CASCADE Includes
-#include <TColStd_IndexedMapOfInteger.hxx>
-
-class QVBoxLayout; 
-class QHBoxLayout; 
-class QGridLayout; 
-class QButtonGroup;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-
-class SMESHGUI;
-class SMESH_Actor;
-class SVTK_Selector;
-class SVTK_ViewWindow;
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-//=================================================================================
-// class    : SMESHGUI_RemoveNodesDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_RemoveNodesDlg : public QDialog
-{
-    Q_OBJECT
-
-public:
-    SMESHGUI_RemoveNodesDlg(SMESHGUI* theModule,
-                           const char* name = 0,
-                           bool modal = FALSE,
-                           WFlags fl = 0);
-    ~SMESHGUI_RemoveNodesDlg();
-
-private:
-
-    void Init() ;
-    void closeEvent( QCloseEvent* e ) ;
-    void enterEvent ( QEvent * ) ;                         /* mouse enter the QWidget */
-    void hideEvent ( QHideEvent * );                       /* ESC key */
-
-    SalomeApp_SelectionMgr*       mySelectionMgr;
-    SVTK_Selector*                mySelector;
-    SMESHGUI*                     mySMESHGUI;
-
-    int                           myNbOkNodes;             /* to check when arguments is defined */
-    int                           myConstructorId;         /* Current constructor id = radio button id */
-    QLineEdit*                    myEditCurrentArgument;   /* Current  LineEdit */
-
-    bool                          myBusy;
-    SMESH::SMESH_Mesh_var         myMesh;
-    SMESH_Actor*                  myActor;
-    
-    QButtonGroup* GroupConstructors;
-    QRadioButton* Constructor1;
-    QGroupBox* GroupButtons;
-    QPushButton* buttonOk;
-    QPushButton* buttonCancel;
-    QPushButton* buttonApply;
-    QGroupBox* GroupC1;
-    QLabel* TextLabelC1A1;
-    QPushButton* SelectButtonC1A1;
-    QLineEdit* LineEditC1A1;
-
-private slots:
-
-    void ConstructorsClicked(int constructorId);
-    void ClickOnOk();
-    void ClickOnCancel();
-    void ClickOnApply();
-    void SetEditCurrentArgument() ;
-    void SelectionIntoArgument() ;
-    void DeactivateActiveDialog() ;
-    void ActivateThisDialog() ;
-    void onTextChange(const QString&);
-
-protected:
-    QGridLayout* SMESHGUI_RemoveNodesDlgLayout;
-    QGridLayout* GroupConstructorsLayout;
-    QGridLayout* GroupButtonsLayout;
-    QGridLayout* GroupC1Layout;
-};
-
-#endif // DIALOGBOX_REMOVE_NODES_H
diff --git a/src/SMESHGUI/SMESHGUI_RenumberingDlg.cxx b/src/SMESHGUI/SMESHGUI_RenumberingDlg.cxx
deleted file mode 100644 (file)
index be16e7e..0000000
+++ /dev/null
@@ -1,421 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_RenumberingDlg.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_RenumberingDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-
-#include "SMESH_Actor.h"
-#include "SMESH_TypeFilter.hxx"
-#include "SMDS_Mesh.hxx"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_Session.h"
-
-#include "SALOME_ListIO.hxx"
-
-#include "utilities.h"
-
-// QT Includes
-#include <qapplication.h>
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qlayout.h>
-#include <qpixmap.h>
-
-using namespace std;
-
-//=================================================================================
-// class    : SMESHGUI_RenumberingDlg()
-// purpose  :
-//=================================================================================
-SMESHGUI_RenumberingDlg::SMESHGUI_RenumberingDlg( SMESHGUI* theModule, const char* name,
-                                                 const int unit, bool modal, WFlags fl)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-               WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
-     mySMESHGUI( theModule ),
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-  myUnit = unit;
-
-  if (!name)
-    setName("SMESHGUI_RenumberingDlg");
-  resize(303, 185);
-
-  QPixmap image0;
-  QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("SMESH",tr("ICON_SELECT")));
-
-  if (unit == 0) {
-    image0 = QPixmap(SUIT_Session::session()->resourceMgr()->loadPixmap("SMESH",tr("ICON_DLG_RENUMBERING_NODES")));
-    setCaption(tr("SMESH_RENUMBERING_NODES_TITLE" ));
-  }
-  else if (unit == 1) {
-    image0 = QPixmap(SUIT_Session::session()->resourceMgr()->loadPixmap("SMESH",tr("ICON_DLG_RENUMBERING_ELEMENTS")));
-    setCaption(tr("SMESH_RENUMBERING_ELEMENTS_TITLE" ));
-  }
-
-  setSizeGripEnabled(TRUE);
-  SMESHGUI_RenumberingDlgLayout = new QGridLayout(this);
-  SMESHGUI_RenumberingDlgLayout->setSpacing(6);
-  SMESHGUI_RenumberingDlgLayout->setMargin(11);
-
-  /***************************************************************/
-  GroupConstructors = new QButtonGroup(this, "GroupConstructors");
-  if (unit == 0)
-    GroupConstructors->setTitle(tr("SMESH_NODES" ));
-  else if (unit == 1)
-    GroupConstructors->setTitle(tr("SMESH_ELEMENTS" ));
-  GroupConstructors->setExclusive(TRUE);
-  GroupConstructors->setColumnLayout(0, Qt::Vertical);
-  GroupConstructors->layout()->setSpacing(0);
-  GroupConstructors->layout()->setMargin(0);
-  GroupConstructorsLayout = new QGridLayout(GroupConstructors->layout());
-  GroupConstructorsLayout->setAlignment(Qt::AlignTop);
-  GroupConstructorsLayout->setSpacing(6);
-  GroupConstructorsLayout->setMargin(11);
-  Constructor1 = new QRadioButton(GroupConstructors, "Constructor1");
-  Constructor1->setText(tr("" ));
-  Constructor1->setPixmap(image0);
-  Constructor1->setChecked(TRUE);
-  Constructor1->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)1, (QSizePolicy::SizeType)0, Constructor1->sizePolicy().hasHeightForWidth()));
-  Constructor1->setMinimumSize(QSize(50, 0));
-  GroupConstructorsLayout->addWidget(Constructor1, 0, 0);
-  QSpacerItem* spacer = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupConstructorsLayout->addItem(spacer, 0, 1);
-  SMESHGUI_RenumberingDlgLayout->addWidget(GroupConstructors, 0, 0);
-
-  /***************************************************************/
-  GroupButtons = new QGroupBox(this, "GroupButtons");
-  GroupButtons->setGeometry(QRect(10, 10, 281, 48));
-  GroupButtons->setTitle(tr("" ));
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-  buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
-  buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
-  buttonCancel->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-  buttonApply = new QPushButton(GroupButtons, "buttonApply");
-  buttonApply->setText(tr("SMESH_BUT_APPLY" ));
-  buttonApply->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-  QSpacerItem* spacer_9 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupButtonsLayout->addItem(spacer_9, 0, 2);
-  buttonOk = new QPushButton(GroupButtons, "buttonOk");
-  buttonOk->setText(tr("SMESH_BUT_OK" ));
-  buttonOk->setAutoDefault(TRUE);
-  buttonOk->setDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-  SMESHGUI_RenumberingDlgLayout->addWidget(GroupButtons, 2, 0);
-
-  /***************************************************************/
-  GroupMesh = new QGroupBox(this, "GroupMesh");
-  GroupMesh->setTitle(tr("SMESH_RENUMBERING" ));
-  GroupMesh->setMinimumSize(QSize(0, 0));
-  GroupMesh->setFrameShape(QGroupBox::Box);
-  GroupMesh->setFrameShadow(QGroupBox::Sunken);
-  GroupMesh->setColumnLayout(0, Qt::Vertical);
-  GroupMesh->layout()->setSpacing(0);
-  GroupMesh->layout()->setMargin(0);
-  GroupMeshLayout = new QGridLayout(GroupMesh->layout());
-  GroupMeshLayout->setAlignment(Qt::AlignTop);
-  GroupMeshLayout->setSpacing(6);
-  GroupMeshLayout->setMargin(11);
-  TextLabelMesh = new QLabel(GroupMesh, "TextLabelMesh");
-  TextLabelMesh->setText(tr("SMESH_MESH"));
-  TextLabelMesh->setMinimumSize(QSize(50, 0));
-  TextLabelMesh->setFrameShape(QLabel::NoFrame);
-  TextLabelMesh->setFrameShadow(QLabel::Plain);
-  GroupMeshLayout->addWidget(TextLabelMesh, 0, 0);
-  SelectButton = new QPushButton(GroupMesh, "SelectButton");
-  SelectButton->setText(tr("" ));
-  SelectButton->setPixmap(image1);
-  SelectButton->setToggleButton(FALSE);
-  GroupMeshLayout->addWidget(SelectButton, 0, 1);
-  LineEditMesh = new QLineEdit(GroupMesh, "LineEditMesh");
-  LineEditMesh->setReadOnly(true);
-  GroupMeshLayout->addWidget(LineEditMesh, 0, 2);
-  SMESHGUI_RenumberingDlgLayout->addWidget(GroupMesh, 1, 0);
-
-  Init(); /* Initialisations */
-}
-
-//=================================================================================
-// function : ~SMESHGUI_RenumberingDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_RenumberingDlg::~SMESHGUI_RenumberingDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RenumberingDlg::Init()
-{
-  GroupMesh->show();
-  myConstructorId = 0;
-  Constructor1->setChecked(TRUE);
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  myMesh = SMESH::SMESH_Mesh::_nil();
-
-  myMeshFilter = new SMESH_TypeFilter (MESH);
-
-  /* signals and slots connections */
-  connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-  connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
-  connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
-
-  connect(SelectButton, SIGNAL (clicked()),   this, SLOT(SetEditCurrentArgument()));
-  connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-  /* to close dialog if study change */
-  connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
-
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show(); /* displays Dialog */
-
-  myEditCurrentArgument = LineEditMesh;
-  LineEditMesh->setFocus();
-  mySelectionMgr->clearFilters();
-  mySelectionMgr->installFilter(myMeshFilter);
-
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : ConstructorsClicked()
-// purpose  : Radio button management
-//=================================================================================
-void SMESHGUI_RenumberingDlg::ConstructorsClicked (int)
-{
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RenumberingDlg::ClickOnApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return;
-
-  if (!myMesh->_is_nil())
-    {
-      try
-       {
-         SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
-         SMESH_Actor* anActor = SMESH::FindActorByObject(myMesh);
-         bool isUnitsLabeled = false;
-
-         if (myUnit == 0 && anActor) {
-           isUnitsLabeled = anActor->GetPointsLabeled();
-           if (isUnitsLabeled)  anActor->SetPointsLabeled(false);
-         }
-         else if (myUnit == 1 && anActor) {
-           isUnitsLabeled = anActor->GetCellsLabeled();
-           if (isUnitsLabeled)  anActor->SetCellsLabeled(false);
-         }
-
-         QApplication::setOverrideCursor(Qt::waitCursor);
-         if (myUnit == 0) {
-           aMeshEditor->RenumberNodes();
-           if (isUnitsLabeled && anActor) anActor->SetPointsLabeled(true);
-         }
-         else if (myUnit == 1) {
-           aMeshEditor->RenumberElements();
-           if (isUnitsLabeled && anActor) anActor->SetCellsLabeled(true);
-         }
-         QApplication::restoreOverrideCursor();
-       }
-      catch(...)
-       {
-       }
-
-      mySelectionMgr->clearSelected();
-      SMESH::UpdateView();
-    }
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RenumberingDlg::ClickOnOk()
-{
-  ClickOnApply();
-  ClickOnCancel();
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RenumberingDlg::ClickOnCancel()
-{
-  mySelectionMgr->clearSelected();
-  mySelectionMgr->clearFilters();
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySMESHGUI->ResetState();
-  reject();
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_RenumberingDlg::SelectionIntoArgument()
-{
-  if (!GroupButtons->isEnabled()) // inactive
-    return;
-
-  QString aString = "";
-
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList);
-  int nbSel = SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
-
-  if (myEditCurrentArgument == LineEditMesh) {
-    // mesh
-    if (nbSel != 1) {
-      myMesh = SMESH::SMESH_Mesh::_nil();
-      aString = "";
-    } else {
-      Handle(SALOME_InteractiveObject) IO = aList.First();
-      myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO);
-      if (myMesh->_is_nil())
-       aString = "";
-    }
-  }
-
-  myEditCurrentArgument->setText(aString);
-
-  bool isEnabled = (!myMesh->_is_nil());
-  buttonOk->setEnabled(isEnabled);
-  buttonApply->setEnabled(isEnabled);
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RenumberingDlg::SetEditCurrentArgument()
-{
-  QPushButton* send = (QPushButton*)sender();
-  switch (myConstructorId)
-    {
-    case 0: /* default constructor */
-      {
-       if(send == SelectButton) {
-         LineEditMesh->setFocus();
-         myEditCurrentArgument = LineEditMesh;
-       }
-       SelectionIntoArgument();
-       break;
-      }
-    }
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RenumberingDlg::DeactivateActiveDialog()
-{
-  if (GroupConstructors->isEnabled()) {
-    GroupConstructors->setEnabled(false);
-    GroupMesh->setEnabled(false);
-    GroupButtons->setEnabled(false);
-    mySMESHGUI->ResetState();
-    mySMESHGUI->SetActiveDialogBox(0);
-  }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RenumberingDlg::ActivateThisDialog()
-{
-  /* Emit a signal to deactivate the active dialog */
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupConstructors->setEnabled(true);
-  GroupMesh->setEnabled(true);
-  GroupButtons->setEnabled(true);
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RenumberingDlg::enterEvent(QEvent* e)
-{
-  if (GroupConstructors->isEnabled())
-    return;
-  ActivateThisDialog();
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RenumberingDlg::closeEvent(QCloseEvent* e)
-{
-  /* same than click on cancel button */
-  this->ClickOnCancel();
-}
-
-//=======================================================================
-//function : hideEvent
-//purpose  : caused by ESC key
-//=======================================================================
-void SMESHGUI_RenumberingDlg::hideEvent (QHideEvent * e)
-{
-  if (!isMinimized())
-    ClickOnCancel();
-}
diff --git a/src/SMESHGUI/SMESHGUI_RenumberingDlg.h b/src/SMESHGUI/SMESHGUI_RenumberingDlg.h
deleted file mode 100644 (file)
index 22e5fc6..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_RenumberingDlg.h
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header:
-
-#ifndef DIALOGBOX_RENUMBERING_H
-#define DIALOGBOX_RENUMBERING_H
-
-#include "SalomeApp_SelectionMgr.h"
-//#include "SMESH_TypeFilter.hxx"
-#include "SUIT_SelectionFilter.h"
-
-// QT Includes
-#include <qdialog.h>
-
-// Open CASCADE Includes
-
-class QGridLayout; 
-class QButtonGroup;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-class SMESHGUI;
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-//=================================================================================
-// class    : SMESHGUI_RenumberingDlg
-// purpose  : If the unit == 0 nodes will be renumbered, if the unit == 1 the elements will.
-//=================================================================================
-class SMESHGUI_RenumberingDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_RenumberingDlg( SMESHGUI*,
-                            const char* name = 0,
-                            const int unit = 0,
-                            bool modal = FALSE,
-                            WFlags fl = 0);
-    ~SMESHGUI_RenumberingDlg();
-
-private:
-    void Init();
-    void closeEvent( QCloseEvent* e ) ;
-    void enterEvent ( QEvent * ) ;                         /* mouse enter the QWidget */
-    void hideEvent ( QHideEvent * );                       /* ESC key */
-    
-    SMESHGUI*                     mySMESHGUI;              /* Current SMESHGUI object */
-    SalomeApp_SelectionMgr*       mySelectionMgr;          /* User shape selection */
-    int                           myConstructorId;         /* Current constructor id = radio button id */
-    QLineEdit*                    myEditCurrentArgument;   /* Current  LineEdit */
-
-    int myUnit;    
-    SMESH::SMESH_Mesh_var         myMesh;
-    //Handle(SMESH_TypeFilter)      myMeshFilter;
-    SUIT_SelectionFilter*         myMeshFilter;
-        
-    QButtonGroup* GroupConstructors;
-    QRadioButton* Constructor1;
-    QGroupBox* GroupButtons;
-    QPushButton* buttonOk;
-    QPushButton* buttonCancel;
-    QPushButton* buttonApply;
-    QGroupBox* GroupMesh;
-    QLabel* TextLabelMesh;
-    QPushButton* SelectButton;
-    QLineEdit* LineEditMesh;
-
-private slots:
-
-    void ConstructorsClicked(int constructorId);
-    void ClickOnOk();
-    void ClickOnCancel();
-    void ClickOnApply();
-    void SetEditCurrentArgument() ;
-    void SelectionIntoArgument() ;
-    void DeactivateActiveDialog() ;
-    void ActivateThisDialog() ;
-    
-protected:
-    QGridLayout* SMESHGUI_RenumberingDlgLayout;
-    QGridLayout* GroupConstructorsLayout;
-    QGridLayout* GroupButtonsLayout;
-    QGridLayout* GroupMeshLayout;
-};
-
-#endif // DIALOGBOX_RENUMBERING_H
diff --git a/src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx b/src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx
deleted file mode 100644 (file)
index 2f15f18..0000000
+++ /dev/null
@@ -1,910 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_RevolutionDlg.cxx
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header:
-
-#include "SMESHGUI_RevolutionDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_SpinBox.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_MeshUtils.h"
-#include "SMESHGUI_IdValidator.h"
-
-#include "SMESH_Actor.h"
-#include "SMESH_TypeFilter.hxx"
-#include "SMESH_LogicalFilter.hxx"
-#include "SMDS_Mesh.hxx"
-
-#include "SUIT_ResourceMgr.h"
-
-#include "SVTK_ViewModel.h"
-#include "SVTK_ViewWindow.h"
-#include "SVTK_Selector.h"
-#include "SVTK_Selection.h"
-#include "SALOME_ListIO.hxx"
-
-#include "utilities.h"
-
-// OCCT Includes
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_IndexedMapOfInteger.hxx>
-
-// QT Includes
-#include <qapplication.h>
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qcheckbox.h>
-#include <qlayout.h>
-#include <qspinbox.h>
-#include <qvalidator.h>
-#include <qpixmap.h>
-
-// IDL Headers
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Group)
-
-using namespace std;
-
-//=================================================================================
-// class    : SMESHGUI_RevolutionDlg()
-// purpose  :
-//=================================================================================
-SMESHGUI_RevolutionDlg::SMESHGUI_RevolutionDlg( SMESHGUI* theModule, const char* name,
-                                                bool modal, WFlags fl)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-                WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
-     mySMESHGUI( theModule ),
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-  SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );
-  QPixmap image0 ( mgr->loadPixmap("SMESH", tr("ICON_DLG_EDGE")));
-  QPixmap image1 ( mgr->loadPixmap("SMESH", tr("ICON_DLG_TRIANGLE")));
-  QPixmap image2 ( mgr->loadPixmap("SMESH", tr("ICON_SELECT")));
-
-  if (!name)
-    setName("SMESHGUI_RevolutionDlg");
-  resize(303, 185);
-  setCaption(tr("REVOLUTION_AROUND_AXIS"));
-  setSizeGripEnabled(TRUE);
-  SMESHGUI_RevolutionDlgLayout = new QGridLayout(this);
-  SMESHGUI_RevolutionDlgLayout->setSpacing(6);
-  SMESHGUI_RevolutionDlgLayout->setMargin(11);
-
-  /***************************************************************/
-  GroupConstructors = new QButtonGroup(this, "GroupConstructors");
-  GroupConstructors->setTitle(tr("SMESH_REVOLUTION" ));
-  GroupConstructors->setExclusive(TRUE);
-  GroupConstructors->setColumnLayout(0, Qt::Vertical);
-  GroupConstructors->layout()->setSpacing(0);
-  GroupConstructors->layout()->setMargin(0);
-  GroupConstructorsLayout = new QGridLayout(GroupConstructors->layout());
-  GroupConstructorsLayout->setAlignment(Qt::AlignTop);
-  GroupConstructorsLayout->setSpacing(6);
-  GroupConstructorsLayout->setMargin(11);
-  RadioButton1= new QRadioButton(GroupConstructors, "RadioButton1");
-  RadioButton1->setText(tr("" ));
-  RadioButton1->setPixmap(image0);
-  GroupConstructorsLayout->addWidget(RadioButton1, 0, 0);
-  RadioButton2= new QRadioButton(GroupConstructors, "RadioButton2");
-  RadioButton2->setText(tr("" ));
-  RadioButton2->setPixmap(image1);
-  GroupConstructorsLayout->addWidget(RadioButton2, 0, 2);
-  SMESHGUI_RevolutionDlgLayout->addWidget(GroupConstructors, 0, 0);
-
-  /***************************************************************/
-  GroupButtons = new QGroupBox(this, "GroupButtons");
-  GroupButtons->setGeometry(QRect(10, 10, 281, 48));
-  GroupButtons->setTitle(tr("" ));
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-  buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
-  buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
-  buttonCancel->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-  buttonApply = new QPushButton(GroupButtons, "buttonApply");
-  buttonApply->setText(tr("SMESH_BUT_APPLY" ));
-  buttonApply->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-  QSpacerItem* spacer_9 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupButtonsLayout->addItem(spacer_9, 0, 2);
-  buttonOk = new QPushButton(GroupButtons, "buttonOk");
-  buttonOk->setText(tr("SMESH_BUT_OK" ));
-  buttonOk->setAutoDefault(TRUE);
-  buttonOk->setDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-  SMESHGUI_RevolutionDlgLayout->addWidget(GroupButtons, 2, 0);
-
-  /***************************************************************/
-  GroupArguments = new QGroupBox(this, "GroupArguments");
-  GroupArguments->setTitle(tr("REVOLUTION_1D"));
-  GroupArguments->setColumnLayout(0, Qt::Vertical);
-  GroupArguments->layout()->setSpacing(0);
-  GroupArguments->layout()->setMargin(0);
-  GroupArgumentsLayout = new QGridLayout(GroupArguments->layout());
-  GroupArgumentsLayout->setAlignment(Qt::AlignTop);
-  GroupArgumentsLayout->setSpacing(6);
-  GroupArgumentsLayout->setMargin(11);
-
-  // Controls for elements selection
-  TextLabelElements  = new QLabel(GroupArguments, "TextLabelElements");
-  TextLabelElements->setText(tr("SMESH_ID_ELEMENTS" ));
-  TextLabelElements->setFixedWidth(74);
-  GroupArgumentsLayout->addWidget(TextLabelElements, 0, 0);
-
-  SelectElementsButton  = new QPushButton(GroupArguments, "SelectElementsButton");
-  SelectElementsButton->setText(tr("" ));
-  SelectElementsButton->setPixmap(image2);
-  SelectElementsButton->setToggleButton(FALSE);
-  GroupArgumentsLayout->addWidget(SelectElementsButton, 0, 1);
-
-  LineEditElements  = new QLineEdit(GroupArguments, "LineEditElements");
-  LineEditElements->setValidator(new SMESHGUI_IdValidator(this, "validator"));
-  GroupArgumentsLayout->addWidget(LineEditElements, 0, 2);
-
-  // Control for the whole mesh selection
-  CheckBoxMesh = new QCheckBox(GroupArguments, "CheckBoxMesh");
-  CheckBoxMesh->setText(tr("SMESH_SELECT_WHOLE_MESH" ));
-  GroupArgumentsLayout->addMultiCellWidget(CheckBoxMesh, 1, 1, 0, 3);
-
-  // Controls for axis defining
-  GroupAxis = new QGroupBox(GroupArguments, "GroupAxis");
-  GroupAxis->setTitle(tr("SMESH_AXIS"));
-  GroupAxis->setColumnLayout(0, Qt::Vertical);
-  GroupAxis->layout()->setSpacing(0);
-  GroupAxis->layout()->setMargin(0);
-  QGridLayout* GroupAxisLayout = new QGridLayout(GroupAxis->layout());
-  GroupAxisLayout->setAlignment(Qt::AlignTop);
-  GroupAxisLayout->setSpacing(6);
-  GroupAxisLayout->setMargin(11);
-
-  TextLabelPoint = new QLabel(GroupAxis, "TextLabelPoint");
-  TextLabelPoint->setText(tr("SMESH_POINT"));
-  GroupAxisLayout->addWidget(TextLabelPoint, 0, 0);
-
-  SelectPointButton  = new QPushButton(GroupAxis, "SelectPointButton");
-  SelectPointButton->setPixmap(image2);
-  GroupAxisLayout->addWidget(SelectPointButton, 0, 1);
-
-  TextLabelX = new QLabel(GroupAxis, "TextLabelX");
-  TextLabelX->setText(tr("SMESH_X"));
-  GroupAxisLayout->addWidget(TextLabelX, 0, 2);
-
-  SpinBox_X = new SMESHGUI_SpinBox(GroupAxis, "SpinBox_X");
-  GroupAxisLayout->addWidget(SpinBox_X, 0, 3);
-
-  TextLabelY = new QLabel(GroupAxis, "TextLabelY");
-  TextLabelY->setText(tr("SMESH_Y"));
-  GroupAxisLayout->addWidget(TextLabelY, 0, 4);
-
-  SpinBox_Y = new SMESHGUI_SpinBox(GroupAxis, "SpinBox_Y");
-  GroupAxisLayout->addWidget(SpinBox_Y, 0, 5);
-
-  TextLabelZ = new QLabel(GroupAxis, "TextLabelZ");
-  TextLabelZ->setText(tr("SMESH_Z"));
-  GroupAxisLayout->addWidget(TextLabelZ, 0, 6);
-
-  SpinBox_Z = new SMESHGUI_SpinBox(GroupAxis, "SpinBox_Z");
-  GroupAxisLayout->addWidget(SpinBox_Z, 0, 7);
-
-  TextLabelVector = new QLabel(GroupAxis, "TextLabelVector");
-  TextLabelVector->setText(tr("SMESH_VECTOR"));
-  GroupAxisLayout->addWidget(TextLabelVector, 1, 0);
-
-  SelectVectorButton = new QPushButton(GroupAxis, "SelectVectorButton");
-  SelectVectorButton->setPixmap(image2);
-  GroupAxisLayout->addWidget(SelectVectorButton, 1, 1);
-
-  TextLabelDX = new QLabel(GroupAxis, "TextLabelDX");
-  TextLabelDX->setText(tr("SMESH_DX"));
-  GroupAxisLayout->addWidget(TextLabelDX, 1, 2);
-
-  SpinBox_DX = new SMESHGUI_SpinBox(GroupAxis, "SpinBox_DX");
-  GroupAxisLayout->addWidget(SpinBox_DX, 1, 3);
-
-  TextLabelDY = new QLabel(GroupAxis, "TextLabelDY");
-  TextLabelDY->setText(tr("SMESH_DY"));
-  GroupAxisLayout->addWidget(TextLabelDY, 1, 4);
-
-  SpinBox_DY = new SMESHGUI_SpinBox(GroupAxis, "SpinBox_DY");
-  GroupAxisLayout->addWidget(SpinBox_DY, 1, 5);
-
-  TextLabelDZ = new QLabel(GroupAxis, "TextLabelDZ");
-  TextLabelDZ->setText(tr("SMESH_DZ"));
-  GroupAxisLayout->addWidget(TextLabelDZ, 1, 6);
-
-  SpinBox_DZ = new SMESHGUI_SpinBox(GroupAxis, "SpinBox_DZ");
-  GroupAxisLayout->addWidget(SpinBox_DZ, 1, 7);
-
-  GroupArgumentsLayout->addMultiCellWidget(GroupAxis, 2, 2, 0, 3);
-
-  // Controls for angle defining
-  TextLabelAngle = new QLabel(GroupArguments, "TextLabelAngle");
-  TextLabelAngle->setText(tr("SMESH_ANGLE" ));
-  GroupArgumentsLayout->addMultiCellWidget(TextLabelAngle, 3, 3, 0, 1);
-
-  SpinBox_Angle = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Angle");
-  GroupArgumentsLayout->addWidget(SpinBox_Angle, 3, 2);
-
-  // Controls for nb. steps defining
-  TextLabelNbSteps = new QLabel(GroupArguments, "TextLabelNbSteps");
-  TextLabelNbSteps->setText(tr("SMESH_NUMBEROFSTEPS" ));
-  GroupArgumentsLayout->addMultiCellWidget(TextLabelNbSteps, 4, 4, 0, 1);
-
-  SpinBox_NbSteps = new QSpinBox(GroupArguments, "SpinBox_NbSteps");
-  GroupArgumentsLayout->addWidget(SpinBox_NbSteps, 4, 2);
-
-  // Controls for tolerance defining
-  TextLabelTolerance = new QLabel(GroupArguments, "TextLabelTolerance");
-  TextLabelTolerance->setText(tr("SMESH_TOLERANCE"));
-  GroupArgumentsLayout->addMultiCellWidget(TextLabelTolerance, 5, 5, 0, 1);
-
-  SpinBox_Tolerance = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Tolerance");
-  GroupArgumentsLayout->addWidget(SpinBox_Tolerance, 5, 2);
-
-  SMESHGUI_RevolutionDlgLayout->addWidget(GroupArguments, 1, 0);
-
-  /* Initialisations */
-  SpinBox_X->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox_Y->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox_Z->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox_DX->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox_DY->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox_DZ->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-
-  SpinBox_Angle->RangeStepAndValidator(-999999.999, +999999.999, 5.0, 3);
-
-  QIntValidator* anIntValidator = new QIntValidator(SpinBox_NbSteps);
-  SpinBox_NbSteps->setValidator(anIntValidator);
-  SpinBox_NbSteps->setRange(1, 999999);
-
-  SpinBox_Tolerance->RangeStepAndValidator(0.0, +999999.999, 0.1, 6);
-
-  GroupArguments->show();
-  RadioButton1->setChecked(TRUE);
-
-  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  // Costruction of the logical filter
-  SMESH_TypeFilter* aMeshOrSubMeshFilter = new SMESH_TypeFilter (MESHorSUBMESH);
-  SMESH_TypeFilter* aSmeshGroupFilter    = new SMESH_TypeFilter (GROUP);
-
-  QPtrList<SUIT_SelectionFilter> aListOfFilters;
-  if (aMeshOrSubMeshFilter) aListOfFilters.append(aMeshOrSubMeshFilter);
-  if (aSmeshGroupFilter)    aListOfFilters.append(aSmeshGroupFilter);
-
-  myMeshOrSubMeshOrGroupFilter =
-    new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
-
-  Init();
-
-  /* signals and slots connections */
-  connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-  connect(buttonApply, SIGNAL(clicked()),  this, SLOT(ClickOnApply()));
-  connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
-
-  connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(SelectPointButton, SIGNAL (clicked()),    this, SLOT(SetEditCurrentArgument()));
-  connect(SelectVectorButton, SIGNAL (clicked()),   this, SLOT(SetEditCurrentArgument()));
-
-  connect(SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(onVectorChanged()));
-  connect(SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(onVectorChanged()));
-  connect(SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(onVectorChanged()));
-
-  connect(mySMESHGUI,     SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()),      this, SLOT(SelectionIntoArgument()));
-  /* to close dialog if study change */
-  connect(mySMESHGUI,       SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
-  connect(LineEditElements, SIGNAL(textChanged(const QString&)),   SLOT(onTextChange(const QString&)));
-  connect(CheckBoxMesh,     SIGNAL(toggled(bool)),                 SLOT(onSelectMesh(bool)));
-
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show(); /* displays Dialog */
-
-  ConstructorsClicked(0);
-  resize(0,0); // ??
-}
-
-//=================================================================================
-// function : ~SMESHGUI_RevolutionDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_RevolutionDlg::~SMESHGUI_RevolutionDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RevolutionDlg::Init (bool ResetControls)
-{
-  myBusy = false;
-
-  myEditCurrentArgument = 0;
-  LineEditElements->clear();
-  myElementsId = "";
-  myNbOkElements = 0;
-
-  myActor = 0;
-  myMesh = SMESH::SMESH_Mesh::_nil();
-
-  if (ResetControls) {
-    SpinBox_X->SetValue(0.0);
-    SpinBox_Y->SetValue(0.0);
-    SpinBox_Z->SetValue(0.0);
-    SpinBox_DX->SetValue(0.0);
-    SpinBox_DY->SetValue(0.0);
-    SpinBox_DZ->SetValue(0.0);
-
-    SpinBox_Angle->SetValue(45);
-    SpinBox_NbSteps->setValue(1);
-    SpinBox_Tolerance->SetValue(1e-05);
-
-    CheckBoxMesh->setChecked(false);
-    onSelectMesh(false);
-  }
-}
-
-//=================================================================================
-// function : ConstructorsClicked()
-// purpose  : Radio button management
-//=================================================================================
-void SMESHGUI_RevolutionDlg::ConstructorsClicked (int constructorId)
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-
-  Selection_Mode aSelMode = ActorSelection;
-
-  switch (constructorId) {
-  case 0:
-    {
-      GroupArguments->setTitle(tr("REVOLUTION_1D"));
-      aSelMode = EdgeSelection;
-      break;
-    }
-  case 1:
-    {
-      GroupArguments->setTitle(tr("REVOLUTION_2D"));
-      aSelMode = FaceSelection;
-      break;
-    }
-  }
-
-  if (myEditCurrentArgument != (QWidget*)LineEditElements) {
-    SMESH::SetPointRepresentation(false);
-  }
-
-  if (!CheckBoxMesh->isChecked())
-    {
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->SetSelectionMode(aSelMode);
-    }
-
-  myEditCurrentArgument = (QWidget*)LineEditElements;
-  LineEditElements->setFocus();
-
-  if (CheckBoxMesh->isChecked())
-    onSelectMesh(true);
-
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RevolutionDlg::ClickOnApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return;
-
-  if (myNbOkElements && IsAxisOk()) {
-    QStringList aListElementsId = QStringList::split(" ", myElementsId, false);
-
-    SMESH::long_array_var anElementsId = new SMESH::long_array;
-
-    anElementsId->length(aListElementsId.count());
-    for (int i = 0; i < aListElementsId.count(); i++)
-      anElementsId[i] = aListElementsId[i].toInt();
-
-    SMESH::AxisStruct anAxis;
-
-    anAxis.x =  SpinBox_X->GetValue();
-    anAxis.y =  SpinBox_Y->GetValue();
-    anAxis.z =  SpinBox_Z->GetValue();;
-    anAxis.vx = SpinBox_DX->GetValue();
-    anAxis.vy = SpinBox_DY->GetValue();
-    anAxis.vz = SpinBox_DZ->GetValue();
-
-    double anAngle = (SpinBox_Angle->GetValue())*PI/180;
-    long aNbSteps = (long)SpinBox_NbSteps->value();
-    double aTolerance = SpinBox_Tolerance->GetValue();
-
-    try {
-      SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
-      QApplication::setOverrideCursor(Qt::waitCursor);
-      aMeshEditor->RotationSweep(anElementsId.inout(), anAxis, anAngle, aNbSteps, aTolerance);
-      QApplication::restoreOverrideCursor();
-    } catch (...) {
-    }
-
-    mySelectionMgr->clearSelected();
-    SMESH::UpdateView();
-    Init(false);
-    ConstructorsClicked(GetConstructorId());
-  }
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RevolutionDlg::ClickOnOk()
-{
-  ClickOnApply();
-  ClickOnCancel();
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RevolutionDlg::ClickOnCancel()
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySelectionMgr->clearFilters();
-  mySelectionMgr->clearSelected();
-  SMESH::SetPointRepresentation(false);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-  mySMESHGUI->ResetState();
-  reject();
-}
-
-//=======================================================================
-// function : onTextChange()
-// purpose  :
-//=======================================================================
-void SMESHGUI_RevolutionDlg::onTextChange (const QString& theNewText)
-{
-  QLineEdit* send = (QLineEdit*)sender();
-
-  if (myBusy) return;
-  myBusy = true;
-
-  if (send == LineEditElements)
-    myNbOkElements = 0;
-
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-
-  // hilight entered elements
-  SMDS_Mesh* aMesh = 0;
-  if (myActor)
-    aMesh = myActor->GetObject()->GetMesh();
-
-  if (aMesh) {
-    if (send == LineEditElements) {
-      Handle(SALOME_InteractiveObject) anIO = myActor->getIO();
-
-      TColStd_MapOfInteger newIndices;
-
-      QStringList aListId = QStringList::split(" ", theNewText, false);
-      
-      for (int i = 0; i < aListId.count(); i++) {
-       const SMDS_MeshElement * e = aMesh->FindElement(aListId[ i ].toInt());
-       if (e)
-         newIndices.Add(e->GetID());
-       myNbOkElements++;
-      }
-
-      mySelector->AddOrRemoveIndex(myActor->getIO(), newIndices, false);
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->highlight( myActor->getIO(), true, true );
-      
-      myElementsId = theNewText;
-    }
-  }
-
-  if (myNbOkElements && IsAxisOk()) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
-
-  myBusy = false;
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_RevolutionDlg::SelectionIntoArgument()
-{
-  if (myBusy) return;
-
-  // clear
-  myActor = 0;
-  QString aString = "";
-
-  myBusy = true;
-  if (myEditCurrentArgument == (QWidget*)LineEditElements) {
-    LineEditElements->setText(aString);
-    myNbOkElements = 0;
-    buttonOk->setEnabled(false);
-    buttonApply->setEnabled(false);
-  }
-  myBusy = false;
-
-  if (!GroupButtons->isEnabled()) // inactive
-    return;
-
-  // get selected mesh
-  const SALOME_ListIO& aList = mySelector->StoredIObjects();
-
-  int nbSel = aList.Extent();
-  if (nbSel != 1)
-    return;
-
-  Handle(SALOME_InteractiveObject) IO = aList.First();
-  myMesh = SMESH::GetMeshByIO(IO);
-  if (myMesh->_is_nil())
-    return;
-
-  myActor = SMESH::FindActorByObject(myMesh);
-  if (!myActor)
-    myActor = SMESH::FindActorByEntry(IO->getEntry());
-  if (!myActor)
-    return;
-
-  int aNbUnits = 0;
-
-  if (myEditCurrentArgument == (QWidget*)LineEditElements) {
-    myElementsId = "";
-
-    if (CheckBoxMesh->isChecked()) {
-      int aConstructorId = GetConstructorId();
-
-      SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
-
-      if (!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) { //MESH
-        // get IDs from mesh
-        SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
-        if (!aSMDSMesh)
-          return;
-
-        if (aConstructorId == 0) {
-          SMDS_EdgeIteratorPtr anIter = aSMDSMesh->edgesIterator();
-
-          while (anIter->more()) {
-            const SMDS_MeshEdge * edge = anIter->next();
-            if (edge) {
-              myElementsId += QString(" %1").arg(edge->GetID());
-              aNbUnits++;
-            }
-          }
-        } else if (aConstructorId == 1) {
-          SMDS_FaceIteratorPtr anIter = aSMDSMesh->facesIterator();
-          while (anIter->more()) {
-            const SMDS_MeshFace * face = anIter->next();
-            if (face) {
-              myElementsId += QString(" %1").arg(face->GetID());
-              aNbUnits++;
-            }
-          }
-        }
-      } else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) { //SUBMESH
-        // get submesh
-        SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO);
-
-        // get IDs from submesh
-        SMESH::long_array_var anElementsIds = new SMESH::long_array;
-        if (aConstructorId == 0)
-          anElementsIds = aSubMesh->GetElementsByType(SMESH::EDGE);
-        else if (aConstructorId == 1)
-          anElementsIds = aSubMesh->GetElementsByType(SMESH::FACE);
-
-        for (int i = 0; i < anElementsIds->length(); i++)
-          myElementsId += QString(" %1").arg(anElementsIds[i]);
-        aNbUnits = anElementsIds->length();
-      } else { // GROUP
-        // get smesh group
-        SMESH::SMESH_GroupBase_var aGroup =
-          SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
-        if (aGroup->_is_nil())
-          return;
-
-        if ((aConstructorId == 0 && aGroup->GetType()!= SMESH::EDGE) ||
-            (aConstructorId == 1 && aGroup->GetType()!= SMESH::FACE))
-          return;
-
-        // get IDs from smesh group
-        SMESH::long_array_var anElementsIds = new SMESH::long_array;
-        anElementsIds = aGroup->GetListOfID();
-        for (int i = 0; i < anElementsIds->length(); i++) {
-          myElementsId += QString(" %1").arg(anElementsIds[i]);
-        }
-        aNbUnits = anElementsIds->length();
-      }
-    } else {
-      aNbUnits = SMESH::GetNameOfSelectedElements(mySelector, myActor->getIO(), aString);
-      myElementsId = aString;
-    }
-
-    if (aNbUnits < 1)
-      return;
-
-    myNbOkElements = true;
-  } else {
-    aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, myActor->getIO(), aString);
-    if (aNbUnits != 1)
-      return;
-
-    SMDS_Mesh* aMesh =  myActor->GetObject()->GetMesh();
-    if (!aMesh)
-      return;
-
-    const SMDS_MeshNode * n = aMesh->FindNode(aString.toInt());
-    if (!n)
-      return;
-
-    double x = n->X();
-    double y = n->Y();
-    double z = n->Z();
-
-    if (myEditCurrentArgument == (QWidget*)SpinBox_X) {
-      SpinBox_X->SetValue(x);
-      SpinBox_Y->SetValue(y);
-      SpinBox_Z->SetValue(z);
-    } else if (myEditCurrentArgument == (QWidget*)SpinBox_DX) {
-      SpinBox_DX->SetValue(x - SpinBox_X->GetValue());
-      SpinBox_DY->SetValue(y - SpinBox_Y->GetValue());
-      SpinBox_DZ->SetValue(z - SpinBox_Z->GetValue());
-    }
-  }
-
-  myBusy = true;
-  if (myEditCurrentArgument == (QWidget*)LineEditElements)
-    LineEditElements->setText(aString);
-  myBusy = false;
-
-  // OK
-  if (myNbOkElements && IsAxisOk()) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RevolutionDlg::SetEditCurrentArgument()
-{
-  QPushButton* send = (QPushButton*)sender();
-
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySelectionMgr->clearSelected();
-  mySelectionMgr->clearFilters();
-
-  if (send == SelectElementsButton) {
-    myEditCurrentArgument = (QWidget*)LineEditElements;
-    SMESH::SetPointRepresentation(false);
-    if (CheckBoxMesh->isChecked()) {
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->SetSelectionMode(ActorSelection);
-      mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter);
-    } else {
-      int aConstructorId = GetConstructorId();
-      if (aConstructorId == 0)
-       {
-         if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-           aViewWindow->SetSelectionMode(EdgeSelection);
-       }
-      else if (aConstructorId == 1)
-       {
-         if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-           aViewWindow->SetSelectionMode(FaceSelection);
-       }
-    }
-  } else if (send == SelectPointButton) {
-    myEditCurrentArgument = (QWidget*)SpinBox_X;
-    SMESH::SetPointRepresentation(true);
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(NodeSelection);
-  } else if (send == SelectVectorButton) {
-    myEditCurrentArgument = (QWidget*)SpinBox_DX;
-    SMESH::SetPointRepresentation(true);
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(NodeSelection);
-  } else {
-  }
-
-  myEditCurrentArgument->setFocus();
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RevolutionDlg::DeactivateActiveDialog()
-{
-  if (GroupConstructors->isEnabled()) {
-    GroupConstructors->setEnabled(false);
-    GroupArguments->setEnabled(false);
-    GroupButtons->setEnabled(false);
-    mySMESHGUI->ResetState();
-    mySMESHGUI->SetActiveDialogBox(0);
-  }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RevolutionDlg::ActivateThisDialog()
-{
-  /* Emit a signal to deactivate the active dialog */
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupConstructors->setEnabled(true);
-  GroupArguments->setEnabled(true);
-  GroupButtons->setEnabled(true);
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  ConstructorsClicked(GetConstructorId());
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RevolutionDlg::enterEvent (QEvent*)
-{
-  if (!GroupConstructors->isEnabled())
-    ActivateThisDialog();
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RevolutionDlg::closeEvent (QCloseEvent*)
-{
-  /* same than click on cancel button */
-  this->ClickOnCancel();
-}
-
-//=======================================================================
-// function : hideEvent()
-// purpose  : caused by ESC key
-//=======================================================================
-void SMESHGUI_RevolutionDlg::hideEvent (QHideEvent*)
-{
-  if (!isMinimized())
-    ClickOnCancel();
-}
-
-//=======================================================================
-//function : onSelectMesh
-//purpose  :
-//=======================================================================
-void SMESHGUI_RevolutionDlg::onSelectMesh (bool toSelectMesh)
-{
-  if (toSelectMesh)
-    TextLabelElements->setText(tr("SMESH_NAME"));
-  else
-    TextLabelElements->setText(tr("SMESH_ID_ELEMENTS"));
-
-  if (myEditCurrentArgument != LineEditElements) {
-    LineEditElements->clear();
-    return;
-  }
-
-  mySelectionMgr->clearFilters();
-  SMESH::SetPointRepresentation(false);
-
-  if (toSelectMesh) {
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(ActorSelection);
-    mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter);
-    LineEditElements->setReadOnly(true);
-  } else {
-    int aConstructorId = GetConstructorId();
-    if (aConstructorId == 0)
-      {
-       if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-         aViewWindow->SetSelectionMode(EdgeSelection);
-      }
-    else if (aConstructorId == 0)
-      {
-       if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-         aViewWindow->SetSelectionMode(FaceSelection);
-      }
-
-    LineEditElements->setReadOnly(false);
-    onTextChange(LineEditElements->text());
-  }
-
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : GetConstructorId()
-// purpose  :
-//=================================================================================
-int SMESHGUI_RevolutionDlg::GetConstructorId()
-{
-  if (GroupConstructors != NULL && GroupConstructors->selected() != NULL)
-    return GroupConstructors->id(GroupConstructors->selected());
-  return -1;
-}
-
-//=================================================================================
-// function : IsAxisOk()
-// purpose  :
-//=================================================================================
-bool SMESHGUI_RevolutionDlg::IsAxisOk()
-{
-  return (SpinBox_DX->GetValue() != 0 ||
-         SpinBox_DY->GetValue() != 0 ||
-         SpinBox_DZ->GetValue() != 0);
-}
-
-//=================================================================================
-// function : onVectorChanged()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RevolutionDlg::onVectorChanged()
-{
-  if (IsAxisOk()) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  } else {
-    buttonOk->setEnabled(false);
-    buttonApply->setEnabled(false);
-  }
-}
diff --git a/src/SMESHGUI/SMESHGUI_RevolutionDlg.h b/src/SMESHGUI/SMESHGUI_RevolutionDlg.h
deleted file mode 100644 (file)
index 31912fa..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_RevolutionDlg.h
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header: 
-
-#ifndef DIALOGBOX_REVOLUTION_H
-#define DIALOGBOX_REVOLUTION_H
-
-#include "SalomeApp_SelectionMgr.h"
-
-#include "SMESH_LogicalFilter.hxx"
-
-// QT Includes
-#include <qdialog.h>
-
-class QGridLayout; 
-class QButtonGroup;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-class QCheckBox;
-class QSpinBox;
-class SMESHGUI_SpinBox;
-class SMESHGUI;
-class SMESH_Actor;
-class SMESHGUI_SpinBox;
-class SVTK_ViewWindow;
-class SVTK_Selector;
-
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-
-//=================================================================================
-// class    : SMESHGUI_RevolutionDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_RevolutionDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_RevolutionDlg (SMESHGUI*,
-                           const char* name = 0,
-                           bool modal = FALSE,
-                           WFlags fl = 0);
-    ~SMESHGUI_RevolutionDlg();
-
-private:
-    void Init (bool ResetControls = true);
-    void closeEvent (QCloseEvent*);
-    void enterEvent (QEvent*);                          /* mouse enter the QWidget */
-    void hideEvent (QHideEvent*);                       /* ESC key */
-    int  GetConstructorId();
-    bool IsAxisOk();
-
-    SMESHGUI*                     mySMESHGUI;              /* Current SMESHGUI object */
-    SalomeApp_SelectionMgr*       mySelectionMgr;          /* User shape selection */
-    int                           myNbOkElements;          /* to check when elements are defined */
-    QString                       myElementsId;
-    QWidget*                      myEditCurrentArgument;   /* Current  argument */
-    SVTK_Selector*                mySelector;
-
-    bool                          myBusy;
-    SMESH::SMESH_Mesh_var         myMesh;
-    SMESH_Actor*                  myActor;
-    SMESH_LogicalFilter*          myMeshOrSubMeshOrGroupFilter;
-
-    QButtonGroup* GroupConstructors;
-    QRadioButton* RadioButton1;
-    QRadioButton* RadioButton2;
-    QGroupBox* GroupButtons;
-    QPushButton* buttonOk;
-    QPushButton* buttonCancel;
-    QPushButton* buttonApply;
-    QGroupBox* GroupArguments;
-    QGroupBox* GroupAxis;
-    QLabel* TextLabelElements;
-    QPushButton* SelectElementsButton;
-    QLineEdit* LineEditElements;
-    QCheckBox* CheckBoxMesh;
-
-    QLabel* TextLabelPoint;
-    QPushButton* SelectPointButton;
-    QLabel* TextLabelX;
-    SMESHGUI_SpinBox* SpinBox_X;
-    QLabel* TextLabelY;
-    SMESHGUI_SpinBox* SpinBox_Y;
-    QLabel* TextLabelZ;
-    SMESHGUI_SpinBox* SpinBox_Z;
-    QLabel* TextLabelVector;
-    QPushButton* SelectVectorButton;
-    QLabel* TextLabelDX;
-    SMESHGUI_SpinBox* SpinBox_DX;
-    QLabel* TextLabelDY;
-    SMESHGUI_SpinBox* SpinBox_DY;
-    QLabel* TextLabelDZ;
-    SMESHGUI_SpinBox* SpinBox_DZ;
-
-    QLabel* TextLabelAngle;
-    SMESHGUI_SpinBox* SpinBox_Angle;
-    QLabel* TextLabelNbSteps;
-    QSpinBox* SpinBox_NbSteps;
-    QLabel* TextLabelTolerance;
-    SMESHGUI_SpinBox* SpinBox_Tolerance;
-
-private slots:
-
-    void ConstructorsClicked (int constructorId);
-    void ClickOnOk();
-    void ClickOnCancel();
-    void ClickOnApply();
-    void SetEditCurrentArgument();
-    void SelectionIntoArgument();
-    void DeactivateActiveDialog();
-    void ActivateThisDialog();
-    void onTextChange (const QString&);
-    void onSelectMesh (bool toSelectMesh);
-    void onVectorChanged();
-
-protected:
-    QGridLayout* SMESHGUI_RevolutionDlgLayout;
-    QGridLayout* GroupConstructorsLayout;
-    QGridLayout* GroupButtonsLayout;
-    QGridLayout* GroupArgumentsLayout;
-};
-
-#endif // DIALOGBOX_REVOLUTION_H
diff --git a/src/SMESHGUI/SMESHGUI_RotationDlg.cxx b/src/SMESHGUI/SMESHGUI_RotationDlg.cxx
deleted file mode 100644 (file)
index 8b074ab..0000000
+++ /dev/null
@@ -1,819 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_RotationDlg.cxx
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header:
-
-#include "SMESHGUI_RotationDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_SpinBox.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_MeshUtils.h"
-#include "SMESHGUI_IdValidator.h"
-
-#include "SMESH_Actor.h"
-#include "SMESH_TypeFilter.hxx"
-#include "SMESH_LogicalFilter.hxx"
-#include "SMDS_Mesh.hxx"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_Session.h"
-
-#include "SVTK_ViewModel.h"
-#include "SVTK_ViewWindow.h"
-#include "SVTK_Selector.h"
-#include "SVTK_Selection.h"
-#include "SALOME_ListIO.hxx"
-
-#include "utilities.h"
-
-// OCCT Includes
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_IndexedMapOfInteger.hxx>
-
-// QT Includes
-#include <qapplication.h>
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qcheckbox.h>
-#include <qlayout.h>
-#include <qpixmap.h>
-
-// IDL Headers
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Group)
-
-using namespace std;
-
-//=================================================================================
-// class    : SMESHGUI_RotationDlg()
-// purpose  :
-//=================================================================================
-SMESHGUI_RotationDlg::SMESHGUI_RotationDlg( SMESHGUI* theModule, const char* name,
-                                            bool modal, WFlags fl)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-               WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
-     mySMESHGUI( theModule ),
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-  QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_DLG_ROTATION")));
-  QPixmap image1 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
-
-  if (!name)
-    setName("SMESHGUI_RotationDlg");
-  resize(303, 185);
-  setCaption(tr("SMESH_ROTATION_TITLE"));
-  setSizeGripEnabled(TRUE);
-  SMESHGUI_RotationDlgLayout = new QGridLayout(this);
-  SMESHGUI_RotationDlgLayout->setSpacing(6);
-  SMESHGUI_RotationDlgLayout->setMargin(11);
-
-  /***************************************************************/
-  GroupConstructors = new QButtonGroup(this, "GroupConstructors");
-  GroupConstructors->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)5,
-                                               (QSizePolicy::SizeType)0, 0, 0,
-                                               GroupConstructors->sizePolicy().hasHeightForWidth()));
-  GroupConstructors->setTitle(tr("SMESH_ROTATION"));
-  GroupConstructors->setExclusive(TRUE);
-  GroupConstructors->setColumnLayout(0, Qt::Vertical);
-  GroupConstructors->layout()->setSpacing(0);
-  GroupConstructors->layout()->setMargin(0);
-  GroupConstructorsLayout = new QGridLayout(GroupConstructors->layout());
-  GroupConstructorsLayout->setAlignment(Qt::AlignTop);
-  GroupConstructorsLayout->setSpacing(6);
-  GroupConstructorsLayout->setMargin(11);
-  RadioButton1= new QRadioButton(GroupConstructors, "RadioButton1");
-  RadioButton1->setText(tr("" ));
-  RadioButton1->setPixmap(image0);
-  RadioButton1->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)1,
-                                          (QSizePolicy::SizeType)0,
-                                          RadioButton1->sizePolicy().hasHeightForWidth()));
-  RadioButton1->setMinimumSize(QSize(50, 0));
-  GroupConstructorsLayout->addWidget(RadioButton1, 0, 0);
-  QSpacerItem* spacer = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupConstructorsLayout->addItem(spacer, 0, 1);
-  SMESHGUI_RotationDlgLayout->addWidget(GroupConstructors, 0, 0);
-
-  /***************************************************************/
-  GroupButtons = new QGroupBox(this, "GroupButtons");
-  GroupButtons->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)7,
-                                          (QSizePolicy::SizeType)0, 0, 0,
-                                          GroupButtons->sizePolicy().hasHeightForWidth()));
-  GroupButtons->setGeometry(QRect(10, 10, 281, 48));
-  GroupButtons->setTitle(tr("" ));
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-  buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
-  buttonCancel->setText(tr("SMESH_BUT_CLOSE"));
-  buttonCancel->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-  buttonApply = new QPushButton(GroupButtons, "buttonApply");
-  buttonApply->setText(tr("SMESH_BUT_APPLY"));
-  buttonApply->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-  QSpacerItem* spacer_9 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupButtonsLayout->addItem(spacer_9, 0, 2);
-  buttonOk = new QPushButton(GroupButtons, "buttonOk");
-  buttonOk->setText(tr("SMESH_BUT_OK"));
-  buttonOk->setAutoDefault(TRUE);
-  buttonOk->setDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-  SMESHGUI_RotationDlgLayout->addWidget(GroupButtons, 2, 0);
-
-  /***************************************************************/
-  GroupArguments = new QGroupBox(this, "GroupArguments");
-  GroupArguments->setTitle(tr("SMESH_ARGUMENTS"));
-  GroupArguments->setColumnLayout(0, Qt::Vertical);
-  GroupArguments->layout()->setSpacing(0);
-  GroupArguments->layout()->setMargin(0);
-  GroupArgumentsLayout = new QGridLayout(GroupArguments->layout());
-  GroupArgumentsLayout->setAlignment(Qt::AlignTop);
-  GroupArgumentsLayout->setSpacing(6);
-  GroupArgumentsLayout->setMargin(11);
-
-  // Controls for elements selection
-  TextLabelElements  = new QLabel(GroupArguments, "TextLabelElements");
-  TextLabelElements->setText(tr("SMESH_ID_ELEMENTS" ));
-  TextLabelElements->setFixedWidth(74);
-  GroupArgumentsLayout->addWidget(TextLabelElements, 0, 0);
-
-  SelectElementsButton  = new QPushButton(GroupArguments, "SelectElementsButton");
-  SelectElementsButton->setText(tr("" ));
-  SelectElementsButton->setPixmap(image1);
-  SelectElementsButton->setToggleButton(FALSE);
-  GroupArgumentsLayout->addWidget(SelectElementsButton, 0, 1);
-
-  LineEditElements  = new QLineEdit(GroupArguments, "LineEditElements");
-  LineEditElements->setValidator(new SMESHGUI_IdValidator(this, "validator"));
-  GroupArgumentsLayout->addWidget(LineEditElements, 0, 2);
-
-  // Control for the whole mesh selection
-  CheckBoxMesh = new QCheckBox(GroupArguments, "CheckBoxMesh");
-  CheckBoxMesh->setText(tr("SMESH_SELECT_WHOLE_MESH" ));
-  GroupArgumentsLayout->addMultiCellWidget(CheckBoxMesh, 1, 1, 0, 2);
-
-  // Controls for axis defining
-  GroupAxis = new QGroupBox(GroupArguments, "GroupAxis");
-  GroupAxis->setTitle(tr("SMESH_AXIS"));
-  GroupAxis->setColumnLayout(0, Qt::Vertical);
-  GroupAxis->layout()->setSpacing(0);
-  GroupAxis->layout()->setMargin(0);
-  QGridLayout* GroupAxisLayout = new QGridLayout(GroupAxis->layout());
-  GroupAxisLayout->setAlignment(Qt::AlignTop);
-  GroupAxisLayout->setSpacing(6);
-  GroupAxisLayout->setMargin(11);
-
-  TextLabelPoint = new QLabel(GroupAxis, "TextLabelPoint");
-  TextLabelPoint->setText(tr("SMESH_POINT"));
-  GroupAxisLayout->addWidget(TextLabelPoint, 0, 0);
-
-  SelectPointButton  = new QPushButton(GroupAxis, "SelectPointButton");
-  SelectPointButton->setPixmap(image1);
-  GroupAxisLayout->addWidget(SelectPointButton, 0, 1);
-
-  TextLabelX = new QLabel(GroupAxis, "TextLabelX");
-  TextLabelX->setText(tr("SMESH_X"));
-  GroupAxisLayout->addWidget(TextLabelX, 0, 2);
-
-  SpinBox_X = new SMESHGUI_SpinBox(GroupAxis, "SpinBox_X");
-  GroupAxisLayout->addWidget(SpinBox_X, 0, 3);
-
-  TextLabelY = new QLabel(GroupAxis, "TextLabelY");
-  TextLabelY->setText(tr("SMESH_Y"));
-  GroupAxisLayout->addWidget(TextLabelY, 0, 4);
-
-  SpinBox_Y = new SMESHGUI_SpinBox(GroupAxis, "SpinBox_Y");
-  GroupAxisLayout->addWidget(SpinBox_Y, 0, 5);
-
-  TextLabelZ = new QLabel(GroupAxis, "TextLabelZ");
-  TextLabelZ->setText(tr("SMESH_Z"));
-  GroupAxisLayout->addWidget(TextLabelZ, 0, 6);
-
-  SpinBox_Z = new SMESHGUI_SpinBox(GroupAxis, "SpinBox_Z");
-  GroupAxisLayout->addWidget(SpinBox_Z, 0, 7);
-
-  TextLabelVector = new QLabel(GroupAxis, "TextLabelVector");
-  TextLabelVector->setText(tr("SMESH_VECTOR"));
-  GroupAxisLayout->addWidget(TextLabelVector, 1, 0);
-
-  SelectVectorButton = new QPushButton(GroupAxis, "SelectVectorButton");
-  SelectVectorButton->setPixmap(image1);
-  GroupAxisLayout->addWidget(SelectVectorButton, 1, 1);
-
-  TextLabelDX = new QLabel(GroupAxis, "TextLabelDX");
-  TextLabelDX->setText(tr("SMESH_DX"));
-  GroupAxisLayout->addWidget(TextLabelDX, 1, 2);
-
-  SpinBox_DX = new SMESHGUI_SpinBox(GroupAxis, "SpinBox_DX");
-  GroupAxisLayout->addWidget(SpinBox_DX, 1, 3);
-
-  TextLabelDY = new QLabel(GroupAxis, "TextLabelDY");
-  TextLabelDY->setText(tr("SMESH_DY"));
-  GroupAxisLayout->addWidget(TextLabelDY, 1, 4);
-
-  SpinBox_DY = new SMESHGUI_SpinBox(GroupAxis, "SpinBox_DY");
-  GroupAxisLayout->addWidget(SpinBox_DY, 1, 5);
-
-  TextLabelDZ = new QLabel(GroupAxis, "TextLabelDZ");
-  TextLabelDZ->setText(tr("SMESH_DZ"));
-  GroupAxisLayout->addWidget(TextLabelDZ, 1, 6);
-
-  SpinBox_DZ = new SMESHGUI_SpinBox(GroupAxis, "SpinBox_DZ");
-  GroupAxisLayout->addWidget(SpinBox_DZ, 1, 7);
-
-  GroupArgumentsLayout->addMultiCellWidget(GroupAxis, 2, 2, 0, 2);
-
-  // Controls for angle defining
-  TextLabelAngle = new QLabel(GroupArguments, "TextLabelAngle");
-  TextLabelAngle->setText(tr("SMESH_ANGLE"));
-  GroupArgumentsLayout->addMultiCellWidget(TextLabelAngle, 3, 3, 0, 1);
-
-  SpinBox_Angle = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Angle");
-  GroupArgumentsLayout->addWidget(SpinBox_Angle, 3, 2);
-
-  // Controls for "Create a copy" option
-  CheckBoxCopy = new QCheckBox(GroupArguments, "CheckBoxCopy");
-  CheckBoxCopy->setText(tr("SMESH_CREATE_COPY"));
-  GroupArgumentsLayout->addMultiCellWidget(CheckBoxCopy, 4, 4, 0, 2);
-
-  SMESHGUI_RotationDlgLayout->addWidget(GroupArguments, 1, 0);
-
-  /* Initialisations */
-  SpinBox_X->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox_Y->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox_Z->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox_DX->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox_DY->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox_DZ->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-
-  SpinBox_Angle->RangeStepAndValidator(-999999.999, +999999.999, 5.0, 3);
-
-  GroupArguments->show();
-  myConstructorId = 0;
-  RadioButton1->setChecked(TRUE);
-
-  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  // Costruction of the logical filter
-  SMESH_TypeFilter* aMeshOrSubMeshFilter = new SMESH_TypeFilter (MESHorSUBMESH);
-  SMESH_TypeFilter* aSmeshGroupFilter    = new SMESH_TypeFilter (GROUP);
-
-  QPtrList<SUIT_SelectionFilter> aListOfFilters;
-  if (aMeshOrSubMeshFilter) aListOfFilters.append(aMeshOrSubMeshFilter);
-  if (aSmeshGroupFilter)    aListOfFilters.append(aSmeshGroupFilter);
-
-  myMeshOrSubMeshOrGroupFilter =
-    new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
-
-  Init();
-
-  /* signals and slots connections */
-  connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-  connect(buttonApply, SIGNAL(clicked()),  this, SLOT(ClickOnApply()));
-  connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
-
-  connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(SelectPointButton, SIGNAL (clicked()),    this, SLOT(SetEditCurrentArgument()));
-  connect(SelectVectorButton, SIGNAL (clicked()),   this, SLOT(SetEditCurrentArgument()));
-
-  connect(SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(onVectorChanged()));
-  connect(SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(onVectorChanged()));
-  connect(SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(onVectorChanged()));
-
-  connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()),   this, SLOT(SelectionIntoArgument()));
-  /* to close dialog if study change */
-  connect(mySMESHGUI,       SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
-  connect(LineEditElements, SIGNAL(textChanged(const QString&)),    SLOT(onTextChange(const QString&)));
-  connect(CheckBoxMesh,     SIGNAL(toggled(bool)),                  SLOT(onSelectMesh(bool)));
-
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show(); /* displays Dialog */
-
-  ConstructorsClicked(0);
-  resize(0,0); // ??
-}
-
-//=================================================================================
-// function : ~SMESHGUI_RotationDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_RotationDlg::~SMESHGUI_RotationDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RotationDlg::Init (bool ResetControls)
-{
-  myBusy = false;
-
-  myEditCurrentArgument = (QWidget*)LineEditElements;
-  LineEditElements->setFocus();
-  myElementsId = "";
-  myNbOkElements = 0;
-
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-
-  myActor = 0;
-  myMesh = SMESH::SMESH_Mesh::_nil();
-
-  if (ResetControls) {
-    SpinBox_X->SetValue(0.0);
-    SpinBox_Y->SetValue(0.0);
-    SpinBox_Z->SetValue(0.0);
-    SpinBox_DX->SetValue(0.0);
-    SpinBox_DY->SetValue(0.0);
-    SpinBox_DZ->SetValue(0.0);
-
-    SpinBox_Angle->SetValue(45);
-
-    CheckBoxCopy->setChecked(false);
-    CheckBoxMesh->setChecked(false);
-  }
-
-  onSelectMesh(CheckBoxMesh->isChecked());
-}
-
-//=================================================================================
-// function : ConstructorsClicked()
-// purpose  : Radio button management
-//=================================================================================
-void SMESHGUI_RotationDlg::ConstructorsClicked (int constructorId)
-{
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RotationDlg::ClickOnApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return;
-
-  if (myNbOkElements && IsAxisOk()) {
-    QStringList aListElementsId = QStringList::split(" ", myElementsId, false);
-
-    SMESH::long_array_var anElementsId = new SMESH::long_array;
-
-    anElementsId->length(aListElementsId.count());
-    for (int i = 0; i < aListElementsId.count(); i++)
-      anElementsId[i] = aListElementsId[i].toInt();
-
-    SMESH::AxisStruct anAxis;
-
-    anAxis.x =  SpinBox_X->GetValue();
-    anAxis.y =  SpinBox_Y->GetValue();
-    anAxis.z =  SpinBox_Z->GetValue();;
-    anAxis.vx = SpinBox_DX->GetValue();
-    anAxis.vy = SpinBox_DY->GetValue();
-    anAxis.vz = SpinBox_DZ->GetValue();
-
-    double anAngle = (SpinBox_Angle->GetValue())*PI/180;
-    bool toCreateCopy = CheckBoxCopy->isChecked();
-
-    try {
-      SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
-      QApplication::setOverrideCursor(Qt::waitCursor);
-      aMeshEditor->Rotate(anElementsId.inout(), anAxis, anAngle, toCreateCopy);
-      QApplication::restoreOverrideCursor();
-    } catch (...) {
-    }
-
-    mySelectionMgr->clearSelected();
-    SMESH::UpdateView();
-    Init(false);
-  }
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RotationDlg::ClickOnOk()
-{
-  ClickOnApply();
-  ClickOnCancel();
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RotationDlg::ClickOnCancel()
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySelectionMgr->clearFilters();
-  mySelectionMgr->clearSelected();
-  SMESH::SetPointRepresentation(false);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-  mySMESHGUI->ResetState();
-  reject();
-}
-
-//=======================================================================
-// function : onTextChange()
-// purpose  :
-//=======================================================================
-void SMESHGUI_RotationDlg::onTextChange (const QString& theNewText)
-{
-  QLineEdit* send = (QLineEdit*)sender();
-
-  if (myBusy) return;
-  myBusy = true;
-
-  if (send == LineEditElements)
-    myNbOkElements = 0;
-
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-
-  // hilight entered elements
-  SMDS_Mesh* aMesh = 0;
-  if (myActor)
-    aMesh = myActor->GetObject()->GetMesh();
-
-  if (aMesh) {
-    if (send == LineEditElements) {
-      Handle(SALOME_InteractiveObject) anIO = myActor->getIO();
-      
-      TColStd_MapOfInteger newIndices;
-      
-      QStringList aListId = QStringList::split(" ", theNewText, false);
-      for (int i = 0; i < aListId.count(); i++) {
-       const SMDS_MeshElement * e = aMesh->FindElement(aListId[ i ].toInt());
-       if (e)
-         newIndices.Add(e->GetID());
-       myNbOkElements++;
-      }
-
-      mySelector->AddOrRemoveIndex( anIO, newIndices, false );
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->highlight( anIO, true, true );
-      
-      myElementsId = theNewText;
-    }
-  }
-
-  if (myNbOkElements && IsAxisOk()) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
-
-  myBusy = false;
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_RotationDlg::SelectionIntoArgument()
-{
-  if (myBusy) return;
-
-  // clear
-  myActor = 0;
-  QString aString = "";
-
-  myBusy = true;
-  if (myEditCurrentArgument == (QWidget*)LineEditElements) {
-    LineEditElements->setText(aString);
-    myNbOkElements = 0;
-    buttonOk->setEnabled(false);
-    buttonApply->setEnabled(false);
-  }
-  myBusy = false;
-
-  if (!GroupButtons->isEnabled()) // inactive
-    return;
-
-  // get selected mesh
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
-
-  int nbSel = aList.Extent();
-  if (nbSel != 1)
-    return;
-
-  Handle(SALOME_InteractiveObject) IO = aList.First();
-  myMesh = SMESH::GetMeshByIO(IO);
-  if (myMesh->_is_nil())
-    return;
-
-  myActor = SMESH::FindActorByObject(myMesh);
-  if (!myActor)
-    myActor = SMESH::FindActorByEntry(IO->getEntry());
-  if (!myActor)
-    return;
-
-  int aNbUnits = 0;
-
-  if (myEditCurrentArgument == (QWidget*)LineEditElements) {
-    myElementsId = "";
-
-    if (CheckBoxMesh->isChecked()) {
-      SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
-
-      if (!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) { //MESH
-        // get IDs from mesh
-        SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
-        if (!aSMDSMesh)
-          return;
-
-        for (int i = aSMDSMesh->MinElementID(); i <= aSMDSMesh->MaxElementID(); i++) {
-          const SMDS_MeshElement * e = aSMDSMesh->FindElement(i);
-          if (e) {
-            myElementsId += QString(" %1").arg(i);
-            aNbUnits++;
-          }
-        }
-      } else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) { //SUBMESH
-        // get submesh
-        SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO);
-
-        // get IDs from submesh
-        SMESH::long_array_var anElementsIds = new SMESH::long_array;
-        anElementsIds = aSubMesh->GetElementsId();
-        for (int i = 0; i < anElementsIds->length(); i++) {
-          myElementsId += QString(" %1").arg(anElementsIds[i]);
-        }
-        aNbUnits = anElementsIds->length();
-      } else { // GROUP
-        // get smesh group
-        SMESH::SMESH_GroupBase_var aGroup =
-          SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
-        if (aGroup->_is_nil())
-          return;
-
-        // get IDs from smesh group
-        SMESH::long_array_var anElementsIds = new SMESH::long_array;
-        anElementsIds = aGroup->GetListOfID();
-        for (int i = 0; i < anElementsIds->length(); i++) {
-          myElementsId += QString(" %1").arg(anElementsIds[i]);
-        }
-        aNbUnits = anElementsIds->length();
-      }
-    } else {
-      aNbUnits = SMESH::GetNameOfSelectedElements(mySelector, myActor->getIO(), aString);
-      myElementsId = aString;
-    }
-
-    if (aNbUnits < 1)
-      return;
-
-    myNbOkElements = true;
-  } else {
-    aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, myActor->getIO(), aString);
-    if (aNbUnits != 1)
-      return;
-
-    SMDS_Mesh* aMesh =  myActor->GetObject()->GetMesh();
-    if (!aMesh)
-      return;
-
-    const SMDS_MeshNode * n = aMesh->FindNode(aString.toInt());
-    if (!n)
-      return;
-
-    double x = n->X();
-    double y = n->Y();
-    double z = n->Z();
-
-    if (myEditCurrentArgument == (QWidget*)SpinBox_X) {
-      SpinBox_X->SetValue(x);
-      SpinBox_Y->SetValue(y);
-      SpinBox_Z->SetValue(z);
-    } else if (myEditCurrentArgument == (QWidget*)SpinBox_DX) {
-      SpinBox_DX->SetValue(x - SpinBox_X->GetValue());
-      SpinBox_DY->SetValue(y - SpinBox_Y->GetValue());
-      SpinBox_DZ->SetValue(z - SpinBox_Z->GetValue());
-    }
-  }
-
-  myBusy = true;
-  if (myEditCurrentArgument == (QWidget*)LineEditElements)
-    LineEditElements->setText(aString);
-  myBusy = false;
-
-  // OK
-  if (myNbOkElements && IsAxisOk()) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RotationDlg::SetEditCurrentArgument()
-{
-  QPushButton* send = (QPushButton*)sender();
-
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySelectionMgr->clearSelected();
-  mySelectionMgr->clearFilters();
-
-  switch (myConstructorId) {
-  case 0: /* default constructor */
-    {
-      SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI );
-      if (send == SelectElementsButton) {
-        myEditCurrentArgument = (QWidget*)LineEditElements;
-        SMESH::SetPointRepresentation(false);
-        if (CheckBoxMesh->isChecked()) {
-         if ( aViewWindow )
-           aViewWindow->SetSelectionMode(ActorSelection);
-          mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter);
-        } else {
-         if ( aViewWindow )
-           aViewWindow->SetSelectionMode( CellSelection );
-       }
-      } else if (send == SelectPointButton) {
-        myEditCurrentArgument = (QWidget*)SpinBox_X;
-        SMESH::SetPointRepresentation(true);
-       if ( aViewWindow )
-         aViewWindow->SetSelectionMode( NodeSelection );
-      } else if (send == SelectVectorButton) {
-        myEditCurrentArgument = (QWidget*)SpinBox_DX;
-        SMESH::SetPointRepresentation(true);
-       if ( aViewWindow )
-         aViewWindow->SetSelectionMode( NodeSelection );
-      }
-      break;
-    }
-  }
-
-  myEditCurrentArgument->setFocus();
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RotationDlg::DeactivateActiveDialog()
-{
-  if (GroupConstructors->isEnabled()) {
-    GroupConstructors->setEnabled(false);
-    GroupArguments->setEnabled(false);
-    GroupButtons->setEnabled(false);
-    mySMESHGUI->ResetState();
-    mySMESHGUI->SetActiveDialogBox(0);
-  }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RotationDlg::ActivateThisDialog()
-{
-  /* Emit a signal to deactivate the active dialog */
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupConstructors->setEnabled(true);
-  GroupArguments->setEnabled(true);
-  GroupButtons->setEnabled(true);
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode( CellSelection );
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RotationDlg::enterEvent (QEvent*)
-{
-  if (!GroupConstructors->isEnabled())
-    ActivateThisDialog();
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RotationDlg::closeEvent (QCloseEvent*)
-{
-  /* same than click on cancel button */
-  this->ClickOnCancel();
-}
-
-//=================================================================================
-// function : hideEvent()
-// purpose  : caused by ESC key
-//=================================================================================
-void SMESHGUI_RotationDlg::hideEvent (QHideEvent*)
-{
-  if (!isMinimized())
-    ClickOnCancel();
-}
-
-//=================================================================================
-// function : onSelectMesh()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RotationDlg::onSelectMesh (bool toSelectMesh)
-{
-  if (toSelectMesh)
-    TextLabelElements->setText(tr("SMESH_NAME"));
-  else
-    TextLabelElements->setText(tr("SMESH_ID_ELEMENTS"));
-
-  if (myEditCurrentArgument != LineEditElements) {
-    LineEditElements->clear();
-    return;
-  }
-
-  mySelectionMgr->clearFilters();
-  SMESH::SetPointRepresentation(false);
-
-  if (toSelectMesh) {
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(ActorSelection);
-    mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter);
-    LineEditElements->setReadOnly(true);
-  } else {
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode( CellSelection );
-    LineEditElements->setReadOnly(false);
-    onTextChange(LineEditElements->text());
-  }
-
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : IsAxisOk()
-// purpose  :
-//=================================================================================
-bool SMESHGUI_RotationDlg::IsAxisOk()
-{
-  return (SpinBox_DX->GetValue() != 0 ||
-         SpinBox_DY->GetValue() != 0 ||
-         SpinBox_DZ->GetValue() != 0);
-}
-
-//=================================================================================
-// function : onVectorChanged()
-// purpose  :
-//=================================================================================
-void SMESHGUI_RotationDlg::onVectorChanged()
-{
-  if (IsAxisOk()) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  } else {
-    buttonOk->setEnabled(false);
-    buttonApply->setEnabled(false);
-  }
-}
diff --git a/src/SMESHGUI/SMESHGUI_RotationDlg.h b/src/SMESHGUI/SMESHGUI_RotationDlg.h
deleted file mode 100644 (file)
index 7e71856..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_RotationDlg.h
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header: 
-
-#ifndef DIALOGBOX_ROTATION_H
-#define DIALOGBOX_ROTATION_H
-
-#include "SalomeApp_SelectionMgr.h"
-
-#include "SMESH_LogicalFilter.hxx"
-
-// QT Includes
-#include <qdialog.h>
-
-class QGridLayout; 
-class QButtonGroup;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-class QCheckBox;
-class SMESHGUI_SpinBox;
-class SMESHGUI;
-class SMESH_Actor;
-class SMESHGUI_SpinBox;
-class SVTK_ViewWindow;
-class SVTK_Selector;
-
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-
-//=================================================================================
-// class    : SMESHGUI_RotationDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_RotationDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_RotationDlg( SMESHGUI*,
-                         const char* name = 0,
-                         bool modal = FALSE,
-                         WFlags fl = 0);
-    ~SMESHGUI_RotationDlg();
-
-private:
-    void Init (bool ResetControls = true);
-    void closeEvent (QCloseEvent*);
-    void enterEvent (QEvent*);                          /* mouse enter the QWidget */
-    void hideEvent (QHideEvent*);                       /* ESC key */
-    bool IsAxisOk();
-
-    SMESHGUI*                     mySMESHGUI;              /* Current SMESHGUI object */
-    SalomeApp_SelectionMgr*       mySelectionMgr;          /* User shape selection */
-    int                           myNbOkElements;          /* to check when elements are defined */
-    QString                       myElementsId;
-    SVTK_Selector*                mySelector;
-
-    QWidget*                      myEditCurrentArgument;   /* Current  LineEdit */
-    int myConstructorId;
-    bool                          myBusy;
-    SMESH::SMESH_Mesh_var         myMesh;
-    SMESH_Actor*                  myActor;
-    SMESH_LogicalFilter*          myMeshOrSubMeshOrGroupFilter;
-
-    QButtonGroup* GroupConstructors;
-    QRadioButton* RadioButton1;
-    QGroupBox* GroupButtons;
-    QPushButton* buttonOk;
-    QPushButton* buttonCancel;
-    QPushButton* buttonApply;
-    QGroupBox* GroupArguments;
-    QGroupBox* GroupAxis;
-    QLabel* TextLabelElements;
-    QPushButton* SelectElementsButton;
-    QLineEdit* LineEditElements;
-    QCheckBox* CheckBoxMesh;
-
-    QLabel* TextLabelPoint;
-    QPushButton* SelectPointButton;
-    QLabel* TextLabelX;
-    SMESHGUI_SpinBox* SpinBox_X;
-    QLabel* TextLabelY;
-    SMESHGUI_SpinBox* SpinBox_Y;
-    QLabel* TextLabelZ;
-    SMESHGUI_SpinBox* SpinBox_Z;
-    QLabel* TextLabelVector;
-    QPushButton* SelectVectorButton;
-    QLabel* TextLabelDX;
-    SMESHGUI_SpinBox* SpinBox_DX;
-    QLabel* TextLabelDY;
-    SMESHGUI_SpinBox* SpinBox_DY;
-    QLabel* TextLabelDZ;
-    SMESHGUI_SpinBox* SpinBox_DZ;
-
-    QLabel* TextLabelAngle;
-    SMESHGUI_SpinBox* SpinBox_Angle;
-    QCheckBox* CheckBoxCopy;
-
-private slots:
-
-    void ConstructorsClicked (int constructorId);
-    void ClickOnOk();
-    void ClickOnCancel();
-    void ClickOnApply();
-    void SetEditCurrentArgument();
-    void SelectionIntoArgument();
-    void DeactivateActiveDialog();
-    void ActivateThisDialog();
-    void onTextChange (const QString&);
-    void onSelectMesh (bool toSelectMesh);
-    void onVectorChanged();
-
-protected:
-    QGridLayout* SMESHGUI_RotationDlgLayout;
-    QGridLayout* GroupConstructorsLayout;
-    QGridLayout* GroupButtonsLayout;
-    QGridLayout* GroupArgumentsLayout;
-};
-
-#endif // DIALOGBOX_ROTATION_H
diff --git a/src/SMESHGUI/SMESHGUI_SMESHGenUtils.cxx b/src/SMESHGUI/SMESHGUI_SMESHGenUtils.cxx
deleted file mode 100644 (file)
index ddfe9fb..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-
-
-#include "QAD_Desktop.h"
-
-#include "SMESHGUI_SMESHGenUtils.h"
-
-#include "SALOMEconfig.h"
-#include CORBA_CLIENT_HEADER(SALOMEDS)
-
-namespace SMESH
-{
-
-  SMESH::SMESH_Gen_var GetSMESHGen()
-  {
-    static SMESH::SMESH_Gen_var aSMESHGen;
-    if(CORBA::is_nil(aSMESHGen)){
-      if(QAD_Desktop* aDesktop = QAD_Application::getDesktop()){
-       Engines::Component_var aComponent = aDesktop->getEngine("FactoryServer","SMESH");
-       aSMESHGen = SMESH::SMESH_Gen::_narrow(aComponent);
-      }
-    }
-    return aSMESHGen;
-  }
-
-}
diff --git a/src/SMESHGUI/SMESHGUI_SMESHGenUtils.h b/src/SMESHGUI/SMESHGUI_SMESHGenUtils.h
deleted file mode 100644 (file)
index 54a8d43..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef SMESHGUI_SMESHGenUtils_HeaderFile
-#define SMESHGUI_SMESHGenUtils_HeaderFile
-
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Gen)
-
-
-namespace SMESH
-{
-
-  SMESH::SMESH_Gen_var GetSMESHGen();
-
-}
-
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_Selection.h b/src/SMESHGUI/SMESHGUI_Selection.h
deleted file mode 100644 (file)
index 524aa26..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-//  SMESH SMESHGUI_Selection
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_Selection.h
-//  Author : Alexander SOLOVYOV
-//  Module : SMESH
-//  $Header$
-
-#ifndef SMESHGUI_SELECTION_HeaderFile
-#define SMESHGUI_SELECTION_HeaderFile
-
-#include "SalomeApp_Selection.h"
-#include "SALOMEDSClient_definitions.hxx"
-#include "SUIT_DataOwner.h"
-
-class SalomeApp_SelectionMgr;
-class SALOMEDSClient_Study;
-class SalomeApp_DataOwner;
-class SMESH_Actor;
-
-class SMESHGUI_Selection : public SalomeApp_Selection
-{
-public:
-  SMESHGUI_Selection();
-  virtual ~SMESHGUI_Selection();
-
-  virtual void     init( const QString&, SalomeApp_SelectionMgr* );
-  virtual QtxValue param( const int , const QString& paramName ) const;
-
-  // got from object, not from actor
-  virtual int numberOfNodes( int ind ) const;
-  virtual QVariant isComputable( int ind ) const;
-  virtual QVariant hasReference( int ind ) const;
-  virtual QVariant isVisible( int ind ) const;
-
-  // parameters got from actor return nothing if an actor is not visible
-  virtual QValueList<QVariant> elemTypes( int ind ) const;
-  virtual QValueList<QVariant> labeledTypes( int ind ) const;
-  virtual QString displayMode( int ind ) const;
-  virtual QString shrinkMode( int ind ) const;
-  virtual QValueList<QVariant> entityMode( int ind ) const;
-  virtual QString controlMode( int ind ) const;
-  
-  SMESH_Actor* getActor( int ind ) const;
-
-  static int       type( const QString&, _PTR(Study) );
-  static int       type( SalomeApp_DataOwner* owner, _PTR(Study) study);
-  static QString   typeName( const int type);
-
-private:
-  QStringList           myTypes;
-  SUIT_DataOwnerPtrList myDataOwners;
-};
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_SelectionOp.cxx b/src/SMESHGUI/SMESHGUI_SelectionOp.cxx
deleted file mode 100644 (file)
index 1bc466c..0000000
+++ /dev/null
@@ -1,508 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_SelectionOp.cxx
-//  Author : Alexander SOLOVYOV
-//  Module : SMESH
-
-#include <SMESHGUI_SelectionOp.h>
-#include <SMESHGUI_VTKUtils.h>
-#include <SMESHGUI_MeshUtils.h>
-#include <SMESHGUI_Selection.h>
-#include <SMESHGUI.h>
-#include <SUIT_SelectionFilter.h>
-#include <SalomeApp_SelectionMgr.h>
-#include <SalomeApp_Study.h>
-#include <SalomeApp_VTKSelector.h>
-#include <SVTK_ViewWindow.h>
-#include <SVTK_ViewModel.h>
-#include <SVTK_Selector.h>
-#include <SMESH_Actor.h>
-
-#include <SMDS_Mesh.hxx>
-#include <SMDS_MeshNode.hxx>
-
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-#include <SALOMEDS_SObject.hxx>
-
-/*
-  Class       : SMESHGUI_SelectionOp
-  Description : Base operation for all operations using object selection in viewer or objectbrowser
-                through common widgets created by SalomeApp_Dialog::createObject
-*/
-
-//=================================================================================
-// name     : SMESHGUI_SelectionOp
-// purpose  : 
-//=================================================================================
-SMESHGUI_SelectionOp::SMESHGUI_SelectionOp( const Selection_Mode mode )
-: SMESHGUI_Operation(),
-  myDefSelectionMode( mode )
-{
-}
-
-//=================================================================================
-// name     : ~SMESHGUI_SelectionOp
-// purpose  :
-//=================================================================================
-SMESHGUI_SelectionOp::~SMESHGUI_SelectionOp()
-{
-  Filters::const_iterator anIt = myFilters.begin(),
-                          aLast = myFilters.end();
-  for( ; anIt!=aLast; anIt++ )
-    if( anIt.data() )
-      delete anIt.data();
-}
-
-//=================================================================================
-// name     : startOperation
-// purpose  :
-//=================================================================================
-void SMESHGUI_SelectionOp::startOperation()
-{
-  SMESHGUI_Operation::startOperation();
-  if( dlg() )
-  {
-    disconnect( dlg(), SIGNAL( objectActivated( int ) ), this, SLOT( onActivateObject( int ) ) );
-    disconnect( dlg(), SIGNAL( objectDeactivated( int ) ), this, SLOT( onDeactivateObject( int ) ) );
-    disconnect( dlg(), SIGNAL( selectionChanged( int ) ), this, SLOT( onSelectionChanged( int ) ) );
-    connect( dlg(), SIGNAL( objectActivated( int ) ), this, SLOT( onActivateObject( int ) ) );
-    connect( dlg(), SIGNAL( objectDeactivated( int ) ), this, SLOT( onDeactivateObject( int ) ) );
-    connect( dlg(), SIGNAL( selectionChanged( int ) ), this, SLOT( onSelectionChanged( int ) ) );
-  }
-
-  myOldSelectionMode = selectionMode();
-  setSelectionMode( myDefSelectionMode );
-}
-
-//=================================================================================
-// name     : removeCustomFilters
-// purpose  :
-//=================================================================================
-void SMESHGUI_SelectionOp::removeCustomFilters() const
-{
-  SalomeApp_SelectionMgr* mgr = selectionMgr();
-  if( !mgr )
-    return;
-    
-  Filters::const_iterator anIt = myFilters.begin(),
-                          aLast = myFilters.end();
-  for( ; anIt!=aLast; anIt++ )
-    if( anIt.data() )
-      mgr->removeFilter( anIt.data() );
-}
-
-//=================================================================================
-// name     : commitOperation
-// purpose  :
-//=================================================================================
-void SMESHGUI_SelectionOp::commitOperation()
-{
-  removeCustomFilters();
-  setSelectionMode( myOldSelectionMode );
-  SMESHGUI_Operation::commitOperation();  
-}
-
-//=================================================================================
-// name     : abortOperation
-// purpose  :
-//=================================================================================
-void SMESHGUI_SelectionOp::abortOperation()
-{
-  removeCustomFilters();
-  setSelectionMode( myOldSelectionMode );  
-  SMESHGUI_Operation::abortOperation();
-}
-
-//=================================================================================
-// name     : selectionDone
-// purpose  :
-//=================================================================================
-void SMESHGUI_SelectionOp::selectionDone()
-{
-  if( !dlg() )
-    return;
-
-  if( selectionMode()!=ActorSelection )
-  {
-    SALOME_ListIO aList;
-    selectionMgr()->selectedObjects( aList, SVTK_Viewer::Type() );
-
-    if( aList.Extent() != 1 ) //we can select nodes or elements only within one mesh
-    {
-      dlg()->clearSelection();
-      return;
-    }    
-  }
-    
-  QStringList names, ids;
-  SalomeApp_Dialog::TypesList types;
-  selected( names, types, ids );
-  dlg()->selectObject( names, types, ids );
-}
-
-//=================================================================================
-// name     : createFilter
-// purpose  :
-//=================================================================================
-SUIT_SelectionFilter* SMESHGUI_SelectionOp::createFilter( const int ) const
-{
-  return 0;
-}
-
-//=================================================================================
-// name     : onActivateObject
-// purpose  :
-//=================================================================================
-void SMESHGUI_SelectionOp::onActivateObject( int id )
-{
-  SalomeApp_SelectionMgr* mgr = selectionMgr();
-  if( !mgr )
-    return;
-    
-  if( !myFilters.contains( id ) )
-    myFilters[ id ] = createFilter( id );
-
-  if( myFilters[ id ] )
-    mgr->installFilter( myFilters[ id ] );
-
-  selectionDone();
-}
-
-//=================================================================================
-// name     : onDeactivateObject
-// purpose  :
-//=================================================================================
-void SMESHGUI_SelectionOp::onDeactivateObject( int id )
-{
-  SalomeApp_SelectionMgr* mgr = selectionMgr();
-  if( mgr && myFilters.contains( id ) && myFilters[ id ] )
-    mgr->removeFilter( myFilters[ id ] );
-}
-
-//=================================================================================
-// name     : initDialog
-// purpose  :
-//=================================================================================
-void SMESHGUI_SelectionOp::initDialog()
-{
-  if( dlg() )
-  {
-    dlg()->clearSelection();
-    dlg()->deactivateAll();
-  }
-}
-
-//=================================================================================
-// name     : initDialog
-// purpose  :
-//=================================================================================
-void SMESHGUI_SelectionOp::onSelectionChanged( int )
-{
-}
-
-//=======================================================================
-// name    : selectionMode
-// Purpose : Returns selection mode
-//=======================================================================
-Selection_Mode SMESHGUI_SelectionOp::selectionMode() const
-{
-  SVTK_ViewWindow* wnd = viewWindow();
-  if( wnd )
-    return wnd->SelectionMode();
-  else
-    return ActorSelection;
-}
-
-//=======================================================================
-// name    : setSelectionMode
-// Purpose : Set selection mode
-//=======================================================================
-void SMESHGUI_SelectionOp::setSelectionMode( const Selection_Mode mode )
-{
-  SVTK_ViewWindow* wnd = viewWindow();
-  if( wnd )
-    wnd->SetSelectionMode( mode );
-}
-
-//=======================================================================
-// name    : highlight
-// Purpose : Highlight object in 3d viewer
-//=======================================================================
-void SMESHGUI_SelectionOp::highlight( const Handle( SALOME_InteractiveObject )& obj,
-                                      const bool hilight, const bool immediately )
-{
-  SVTK_ViewWindow* wnd = viewWindow();
-  if( wnd )
-    wnd->highlight( obj, hilight, immediately );
-}
-
-//=======================================================================
-// name    : addOrRemoveIndex
-// Purpose : Select/deselect cells of mesh
-//=======================================================================
-void SMESHGUI_SelectionOp::addOrRemoveIndex( const Handle( SALOME_InteractiveObject )& obj,
-                                             const TColStd_MapOfInteger& indices,
-                                             const bool isModeShift )
-{
-  SVTK_Selector* sel = selector();
-  if( sel )
-    sel->AddOrRemoveIndex( obj, indices, isModeShift );
-}
-
-//=======================================================================
-// name    : viewWindow
-// Purpose : Get active view window
-//=======================================================================
-SVTK_ViewWindow* SMESHGUI_SelectionOp::viewWindow() const
-{
-  return SMESH::GetViewWindow( getSMESHGUI() );
-}
-
-//=======================================================================
-// name    : selector
-// Purpose : Get selector
-//=======================================================================
-SVTK_Selector* SMESHGUI_SelectionOp::selector() const
-{
-  SVTK_ViewWindow* wnd = viewWindow();
-  return wnd ? wnd->GetSelector() : 0;
-}
-
-//=======================================================================
-// name    : typeById
-// Purpose : Find type by id
-//=======================================================================
-int SMESHGUI_SelectionOp::typeById( const QString& str, const EntityType objtype ) const
-{
-  SalomeApp_Study* _study = dynamic_cast<SalomeApp_Study*>( study() );
-  if( !_study )
-    return -1;
-
-  _PTR( Study ) st = _study->studyDS();
-
-  int res = -1;
-  if( objtype == Object )
-  {
-    SalomeApp_Study* _study = dynamic_cast<SalomeApp_Study*>( study() );
-    if( _study )
-    {
-      int t = SMESHGUI_Selection::type( str, _study->studyDS() );
-      if( t<0 )
-      {
-        //try to get GEOM type
-        _PTR( SObject ) sobj = st->FindObjectID( str.latin1() );
-        if( sobj )
-        {
-          GEOM::GEOM_Object_var obj = GEOM::GEOM_Object::_narrow(
-            dynamic_cast<SALOMEDS_SObject*>( sobj.get() )->GetObject() );
-          if( !CORBA::is_nil( obj ) )
-            res = SMESHGUI_Dialog::prefix( "GEOM" ) + obj->GetType();
-        }
-      }
-      else
-        res = SMESHGUI_Dialog::prefix( "SMESH" ) + t;
-    }
-  }
-  else
-  {
-    int pos = str.find( idChar() );
-    QString entry = str.left( pos ),
-            _id = str.mid( pos+1 );
-    bool ok;
-    int id = _id.toInt( &ok );
-    if( ok )
-    {
-      _PTR( SObject ) sobj = st->FindObjectID( entry.latin1() );
-      SMESH::SMESH_Mesh_var mesh = SMESH::SMESH_Mesh::_narrow( 
-        dynamic_cast<SALOMEDS_SObject*>( sobj.get() )->GetObject() );
-      SMESH::SMESH_subMesh_var submesh = SMESH::SMESH_subMesh::_narrow( 
-        dynamic_cast<SALOMEDS_SObject*>( sobj.get() )->GetObject() );
-      if( !CORBA::is_nil( mesh ) )
-        res = SMESHGUI_Dialog::prefix( "SMESH element" ) + 
-          mesh->GetElementType( id, objtype==MeshElement );
-
-      else if( !CORBA::is_nil( submesh ) )
-        res = SMESHGUI_Dialog::prefix( "SMESH element" ) + 
-          submesh->GetElementType( id, objtype==MeshElement );
-    }
-  }
-
-  return res;
-}
-
-//=======================================================================
-// name    : selected
-// Purpose : Get names, types and ids of selected objects
-//=======================================================================
-void SMESHGUI_SelectionOp::selected( QStringList& names,
-                                     SalomeApp_Dialog::TypesList& types,
-                                     QStringList& ids ) const
-{
-  SUIT_DataOwnerPtrList list; selectionMgr()->selected( list );
-  SUIT_DataOwnerPtrList::const_iterator anIt = list.begin(),
-                                        aLast = list.end();
-  for( ; anIt!=aLast; anIt++ )
-  {
-    SalomeApp_DataOwner* owner = dynamic_cast<SalomeApp_DataOwner*>( (*anIt).operator->() );
-    SalomeApp_SVTKDataOwner* vtkowner = dynamic_cast<SalomeApp_SVTKDataOwner*>( (*anIt).operator->() );
-
-    if( vtkowner )
-    {
-      QString id_str = QString( "%1%2%3" ).arg( vtkowner->entry() ).arg( idChar() ), current_id_str;
-      Selection_Mode mode = vtkowner->GetMode();
-      EntityType objtype = mode == NodeSelection ? MeshNode : MeshElement;
-      const TColStd_IndexedMapOfInteger& ownerids = vtkowner->GetIds();
-
-      for( int i=1, n=ownerids.Extent(); i<=n; i++ )
-      {
-        int curid = ownerids( i );
-        current_id_str = id_str.arg( curid );
-        ids.append( current_id_str );
-        types.append( typeById( current_id_str, objtype ) );
-        names.append( QString( "%1" ).arg( curid ) );
-      }
-    }
-
-    else if( owner )
-    {
-      QString id = owner->entry();
-      ids.append( id );
-      types.append( typeById( id, Object ) );
-      names.append( owner->IO()->getName() );
-    }
-  }
-}
-
-//=======================================================================
-// name    : idChar
-// Purpose : Char using to divide <entry> and <id> in string id representation. By default, '#'
-//=======================================================================
-QChar SMESHGUI_SelectionOp::idChar() const
-{
-  return '#';
-}
-
-//=================================================================================
-// name     : mesh
-// purpose  :
-//=================================================================================
-SMESH::SMESH_Mesh_var SMESHGUI_SelectionOp::mesh() const
-{
-  if( selectionMode()==ActorSelection )
-    return SMESH::SMESH_Mesh::_nil();
-    
-  SALOME_ListIO sel; selectionMgr()->selectedObjects( sel, SVTK_Viewer::Type() );
-  if( sel.Extent()==1 )
-    return SMESH::GetMeshByIO( sel.First() );
-  else
-    return SMESH::SMESH_Mesh::_nil();
-}
-
-//=================================================================================
-// name     : actor
-// purpose  :
-//=================================================================================
-SMESH_Actor* SMESHGUI_SelectionOp::actor() const
-{
-  SMESH::SMESH_Mesh_var m = mesh();
-  if( !m->_is_nil() )
-    return SMESH::FindActorByObject( m.in() );
-  else
-    return 0;
-}
-
-//=================================================================================
-// name     : onTextChanged
-// purpose  :
-//=================================================================================
-void SMESHGUI_SelectionOp::onTextChanged( int, const QStringList& list )
-{
-    if( !dlg() )
-      return;
-
-    TColStd_MapOfInteger newIndices;
-
-    SALOME_ListIO sel; selectionMgr()->selectedObjects( sel );
-    SMESH_Actor* anActor = actor();
-    if( sel.Extent()==0 || !anActor )
-      return;
-
-    SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
-
-    IdList ids; extractIds( list, ids, '\0' );
-    IdList::const_iterator anIt = ids.begin(),
-                           aLast = ids.end();
-    for( ; anIt!=aLast; anIt++ )
-      if( const SMDS_MeshNode * n = aMesh->FindNode( *anIt ) )
-        newIndices.Add( n->GetID() );
-
-    selector()->AddOrRemoveIndex( sel.First(), newIndices, false );
-    highlight( sel.First(), true, true );
-
-    QStringList names, _ids; SalomeApp_Dialog::TypesList types;
-    selected( names, types, _ids );
-    dlg()->selectObject( names, types, _ids, false );
-}
-
-//=================================================================================
-// name     : selectedIds
-// purpose  :
-//=================================================================================
-void SMESHGUI_SelectionOp::selectedIds( const int id, IdList& list ) const
-{
-  if( !dlg() )
-    return;
-
-  QStringList ids; dlg()->selectedObject( id, ids );
-  extractIds( ids, list );
-}
-
-//=================================================================================
-// name     : extractIds
-// purpose  :
-//=================================================================================
-void SMESHGUI_SelectionOp::extractIds( const QStringList& ids, IdList& list, const QChar idchar )
-{
-  QStringList::const_iterator anIt = ids.begin(),
-                              aLast = ids.end();
-  QString id_str;
-  for( ; anIt!=aLast; anIt++ )
-  {
-    id_str = *anIt;
-    int pos = idchar=='\0' ? -1 : id_str.find( idchar );
-    int id = -1;
-    if( idchar=='\0' || pos>=0 )
-    {
-      id = id_str.mid( pos+1 ).toInt();
-      list.append( id );
-    }
-  }
-}
-
-//=================================================================================
-// name     : extractIds
-// purpose  :
-//=================================================================================
-void SMESHGUI_SelectionOp::extractIds( const QStringList& ids, IdList& list ) const
-{
-  extractIds( ids, list, idChar() );
-}
diff --git a/src/SMESHGUI/SMESHGUI_SelectionOp.h b/src/SMESHGUI/SMESHGUI_SelectionOp.h
deleted file mode 100644 (file)
index 5dde0a0..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_SelectionOp.h
-//  Author : Alexander SOLOVYOV
-//  Module : SMESH
-
-
-#ifndef SMESHGUI_SelectionOp_H
-#define SMESHGUI_SelectionOp_H
-
-#include <SMESHGUI_Operation.h>
-#include <SMESHGUI_Dialog.h>
-#include <SVTK_Selection.h>
-#include <SALOME_InteractiveObject.hxx>
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Gen)
-
-
-class SUIT_SelectionFilter;
-class TColStd_MapOfInteger;
-class SVTK_ViewWindow;
-class SVTK_Selector;
-class SMESH_Actor;
-
-/*
-  Class       : SMESHGUI_SelectionOp
-  Description : Base operation for all operations using object selection in viewer or objectbrowser
-                through common widgets created by SalomeApp_Dialog::createObject
-*/
-class SMESHGUI_SelectionOp : public SMESHGUI_Operation
-{ 
-  Q_OBJECT
-
-public:
-  typedef QValueList<int> IdList; //! List of node or element ids
-  
-public:
-  SMESHGUI_SelectionOp( const Selection_Mode = ActorSelection );
-  virtual ~SMESHGUI_SelectionOp();
-
-  static void  extractIds( const QStringList&, IdList&, const QChar );  
-
-protected:
-  typedef enum
-  {
-    Object,
-    MeshNode,
-    MeshElement
-
-  } EntityType;
-  /*!
-      This enumeration is used in typeById method to distinguish objects, mesh nodes and mesh elements,
-      because node end element ids may overlap
-  */
-  
-protected:
-  virtual void                  startOperation();
-  virtual void                  commitOperation();
-  virtual void                  abortOperation();
-  virtual void                  selectionDone();
-
-  //! sets the dialog widgets to state just after operation start
-  virtual void                  initDialog();
-
-  /*!
-   *  Creates filter being used when certain object selection widget is active
-   *  If no filter must be used, then function must return 0
-   *  if id is negative, then function must return filter for common using independently of active widget
-   */
-  virtual SUIT_SelectionFilter* createFilter( const int ) const;
-
-  //! Remove only filters set by this operation (they are in map myFilters )
-  void removeCustomFilters() const;
-
-  //! Return what selection mode is set in VTK viewer
-  Selection_Mode    selectionMode() const;
-
-  //! Set selection mode in VTK viewer
-  void              setSelectionMode( const Selection_Mode );
-
-  //! Hilight object in VTK viewer
-  void              highlight( const Handle( SALOME_InteractiveObject )&,
-                               const bool, const bool = true );
-                               
-  //! Select some nodes or elements in VTK
-  void              addOrRemoveIndex( const Handle( SALOME_InteractiveObject )&,
-                                      const TColStd_MapOfInteger&, const bool );
-
-  SVTK_ViewWindow*  viewWindow() const;
-  SVTK_Selector*    selector() const;
-
-  //! Get names, types and ids of selected objects
-  virtual void      selected( QStringList&, SMESHGUI_Dialog::TypesList&, QStringList& ) const;
-
-  //! Find type by id
-  virtual int       typeById( const QString&, const EntityType ) const;
-
-  //! Char using to divide <entry> and <id> in string id representation. By default, '#'
-  virtual QChar     idChar() const;
-
-  //! Try to find in certain object selection widget selected node or element ids and return it
-  void                   selectedIds( const int, IdList& ) const;
-
-  //! Find in QStringList correct node or element ids representation and append integer(id) to IdList
-  void                   extractIds( const QStringList&, IdList& ) const;
-
-  //! Return selected mesh if selection mode isn't ActorSelection and only one object is selected
-  SMESH::SMESH_Mesh_var  mesh() const;
-
-  //! Return actor according to selected mesh if selection mode isn't ActorSelection
-  SMESH_Actor*           actor() const;
-  
-protected slots:
-  //! Installs filter corresponding to certain object selection widget
-  virtual void onActivateObject( int );
-
-  //! Removes filter corresponding to certain object selection widget
-  virtual void onDeactivateObject( int );
-
-  /*!
-    *  Empty default implementation. In successors it may be used for more advanced selection checking.
-    *  This slot is connected to signal when the selection changed in some object selection widget
-  */
-  virtual void onSelectionChanged( int );
-
-  /*! Default implementation allowing user to edit selected ids "by hands".
-      In order to run default mechanism, you must set for some
-      object selection widget the "name indication" to "ListOfNames",
-      "read only" state to false and connect the dialog's signal "objectChanged"
-      to this slot
-      Warning: this mechanism can process only integer ids, NOT MESH OR GROUP NAMES!!!
-  */
-  virtual void  onTextChanged( int, const QStringList& );
-  
-private:
-  typedef QMap<int, SUIT_SelectionFilter*> Filters;
-  
-private:
-  Filters         myFilters;
-  Selection_Mode  myDefSelectionMode, myOldSelectionMode;
-};
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_SewingDlg.cxx b/src/SMESHGUI/SMESHGUI_SewingDlg.cxx
deleted file mode 100644 (file)
index 6ee0391..0000000
+++ /dev/null
@@ -1,926 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_SewingDlg.cxx
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header:
-
-#include "SMESHGUI_SewingDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_IdValidator.h"
-
-#include "SMESH_Actor.h"
-#include "SMDS_Mesh.hxx"
-
-#include "SUIT_ResourceMgr.h"
-#include "SUIT_Desktop.h"
-#include "SUIT_MessageBox.h"
-
-#include "SVTK_ViewModel.h"
-#include "SVTK_ViewWindow.h"
-#include "SVTK_Selector.h"
-#include "SVTK_Selection.h"
-#include "SALOME_ListIO.hxx"
-
-#include "utilities.h"
-
-// OCCT Includes
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_IndexedMapOfInteger.hxx>
-
-// QT Includes
-#include <qapplication.h>
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qcheckbox.h>
-#include <qlayout.h>
-#include <qpixmap.h>
-
-using namespace std;
-
-//=================================================================================
-// class    : SMESHGUI_SewingDlg()
-// purpose  :
-//=================================================================================
-SMESHGUI_SewingDlg::SMESHGUI_SewingDlg( SMESHGUI* theModule, const char* name,
-                                        bool modal, WFlags fl)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-                WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
-      mySMESHGUI( theModule ),
-      mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-  SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );
-  QPixmap image0 (mgr->loadPixmap("SMESH", tr("ICON_SMESH_SEWING_FREEBORDERS")));
-  QPixmap image1 (mgr->loadPixmap("SMESH", tr("ICON_SMESH_SEWING_CONFORM_FREEBORDERS")));
-  QPixmap image2 (mgr->loadPixmap("SMESH", tr("ICON_SMESH_SEWING_BORDERTOSIDE")));
-  QPixmap image3 (mgr->loadPixmap("SMESH", tr("ICON_SMESH_SEWING_SIDEELEMENTS")));
-  QPixmap image4 (mgr->loadPixmap("SMESH", tr("ICON_SELECT")));
-
-  if (!name)
-    setName("SMESHGUI_SewingDlg");
-  resize(303, 185);
-  setCaption(tr("SMESH_SEWING"));
-  setSizeGripEnabled(TRUE);
-  SMESHGUI_SewingDlgLayout = new QGridLayout(this);
-  SMESHGUI_SewingDlgLayout->setSpacing(6);
-  SMESHGUI_SewingDlgLayout->setMargin(11);
-
-  /***************************************************************/
-  GroupConstructors = new QButtonGroup(this, "GroupConstructors");
-  GroupConstructors->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)5,
-                                               (QSizePolicy::SizeType)0, 0, 0,
-                                               GroupConstructors->sizePolicy().hasHeightForWidth()));
-  GroupConstructors->setTitle(tr("SMESH_SEWING"));
-  GroupConstructors->setExclusive(TRUE);
-  GroupConstructors->setColumnLayout(0, Qt::Vertical);
-  GroupConstructors->layout()->setSpacing(0);
-  GroupConstructors->layout()->setMargin(0);
-  GroupConstructorsLayout = new QGridLayout(GroupConstructors->layout());
-  GroupConstructorsLayout->setAlignment(Qt::AlignTop);
-  GroupConstructorsLayout->setSpacing(6);
-  GroupConstructorsLayout->setMargin(11);
-  QHBoxLayout* RBLayout = new QHBoxLayout(0, 0, 6, "Layout2");
-  RadioButton1= new QRadioButton(GroupConstructors, "RadioButton1");
-  RadioButton1->setText(tr("" ));
-  RadioButton1->setPixmap(image0);
-  RBLayout->addWidget(RadioButton1);
-  RadioButton2= new QRadioButton(GroupConstructors, "RadioButton2");
-  RadioButton2->setText(tr("" ));
-  RadioButton2->setPixmap(image1);
-  RBLayout->addWidget(RadioButton2);
-  RadioButton3= new QRadioButton(GroupConstructors, "RadioButton3");
-  RadioButton3->setText(tr("" ));
-  RadioButton3->setPixmap(image2);
-  RBLayout->addWidget(RadioButton3);
-  RadioButton4= new QRadioButton(GroupConstructors, "RadioButton4");
-  RadioButton4->setText(tr("" ));
-  RadioButton4->setPixmap(image3);
-  RBLayout->addWidget(RadioButton4);
-  GroupConstructorsLayout->addLayout(RBLayout, 0, 0);
-  SMESHGUI_SewingDlgLayout->addWidget(GroupConstructors, 0, 0);
-
-  /***************************************************************/
-  GroupButtons = new QGroupBox(this, "GroupButtons");
-  GroupButtons->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)7,
-                                          (QSizePolicy::SizeType)0, 0, 0,
-                                          GroupButtons->sizePolicy().hasHeightForWidth()));
-  GroupButtons->setGeometry(QRect(10, 10, 281, 48));
-  GroupButtons->setTitle(tr("" ));
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-  buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
-  buttonCancel->setText(tr("SMESH_BUT_CLOSE"));
-  buttonCancel->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-  buttonApply = new QPushButton(GroupButtons, "buttonApply");
-  buttonApply->setText(tr("SMESH_BUT_APPLY"));
-  buttonApply->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-  QSpacerItem* spacer_9 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupButtonsLayout->addItem(spacer_9, 0, 2);
-  buttonOk = new QPushButton(GroupButtons, "buttonOk");
-  buttonOk->setText(tr("SMESH_BUT_OK"));
-  buttonOk->setAutoDefault(TRUE);
-  buttonOk->setDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-  SMESHGUI_SewingDlgLayout->addWidget(GroupButtons, 2, 0);
-
-  /***************************************************************/
-  GroupArguments = new QGroupBox(this, "GroupArguments");
-  GroupArguments->setColumnLayout(0, Qt::Vertical);
-  GroupArguments->layout()->setSpacing(0);
-  GroupArguments->layout()->setMargin(0);
-  GroupArgumentsLayout = new QGridLayout(GroupArguments->layout());
-  GroupArgumentsLayout->setAlignment(Qt::AlignTop);
-  GroupArgumentsLayout->setSpacing(6);
-  GroupArgumentsLayout->setMargin(11);
-
-  // First subgroup
-  SubGroup1 = new QGroupBox(GroupArguments, "SubGroup1");
-  SubGroup1->setColumnLayout(0, Qt::Vertical);
-  SubGroup1->layout()->setSpacing(0);
-  SubGroup1->layout()->setMargin(0);
-  QGridLayout* SubGroup1Layout = new QGridLayout(SubGroup1->layout());
-  SubGroup1Layout->setAlignment(Qt::AlignTop);
-  SubGroup1Layout->setSpacing(6);
-  SubGroup1Layout->setMargin(11);
-
-  // Controls of the first subgroup
-  TextLabel1 = new QLabel(SubGroup1, "TextLabel1");
-  TextLabel1->setFixedWidth(104);
-  SubGroup1Layout->addWidget(TextLabel1, 0, 0);
-
-  SelectButton1  = new QPushButton(SubGroup1, "SelectButton1");
-  SelectButton1->setPixmap(image4);
-  SubGroup1Layout->addWidget(SelectButton1, 0, 1);
-
-  LineEdit1 = new QLineEdit(SubGroup1, "LineEdit1");
-  SubGroup1Layout->addWidget(LineEdit1, 0, 2);
-
-  TextLabel2 = new QLabel(SubGroup1, "TextLabel2");
-  SubGroup1Layout->addWidget(TextLabel2, 1, 0);
-
-  SelectButton2  = new QPushButton(SubGroup1, "SelectButton2");
-  SelectButton2->setPixmap(image4);
-  SubGroup1Layout->addWidget(SelectButton2, 1, 1);
-
-  LineEdit2 = new QLineEdit(SubGroup1, "LineEdit2");
-  SubGroup1Layout->addWidget(LineEdit2, 1, 2);
-
-  TextLabel3 = new QLabel(SubGroup1, "TextLabel3");
-  SubGroup1Layout->addWidget(TextLabel3, 2, 0);
-
-  SelectButton3  = new QPushButton(SubGroup1, "SelectButton3");
-  SelectButton3->setPixmap(image4);
-  SubGroup1Layout->addWidget(SelectButton3, 2, 1);
-
-  LineEdit3 = new QLineEdit(SubGroup1, "LineEdit3");
-  SubGroup1Layout->addWidget(LineEdit3, 2, 2);
-
-  // Second subgroup
-  SubGroup2 = new QGroupBox(GroupArguments, "SubGroup2");
-  SubGroup2->setColumnLayout(0, Qt::Vertical);
-  SubGroup2->layout()->setSpacing(0);
-  SubGroup2->layout()->setMargin(0);
-  QGridLayout* SubGroup2Layout = new QGridLayout(SubGroup2->layout());
-  SubGroup2Layout->setAlignment(Qt::AlignTop);
-  SubGroup2Layout->setSpacing(6);
-  SubGroup2Layout->setMargin(11);
-
-  // Controls of the first subgroup
-  TextLabel4 = new QLabel(SubGroup2, "TextLabel4");
-  SubGroup2Layout->addWidget(TextLabel4, 0, 0);
-
-  SelectButton4  = new QPushButton(SubGroup2, "SelectButton4");
-  SelectButton4->setPixmap(image4);
-  SubGroup2Layout->addWidget(SelectButton4, 0, 1);
-
-  LineEdit4 = new QLineEdit(SubGroup2, "LineEdit4");
-  SubGroup2Layout->addWidget(LineEdit4, 0, 2);
-
-  TextLabel5 = new QLabel(SubGroup2, "TextLabel5");
-  SubGroup2Layout->addWidget(TextLabel5, 1, 0);
-
-  SelectButton5  = new QPushButton(SubGroup2, "SelectButton5");
-  SelectButton5->setPixmap(image4);
-  SubGroup2Layout->addWidget(SelectButton5, 1, 1);
-
-  LineEdit5 = new QLineEdit(SubGroup2, "LineEdit5");
-  SubGroup2Layout->addWidget(LineEdit5, 1, 2);
-
-  TextLabel6 = new QLabel(SubGroup2, "TextLabel6");
-  SubGroup2Layout->addWidget(TextLabel6, 2, 0);
-
-  SelectButton6  = new QPushButton(SubGroup2, "SelectButton6");
-  SelectButton6->setPixmap(image4);
-  SubGroup2Layout->addWidget(SelectButton6, 2, 1);
-
-  LineEdit6 = new QLineEdit(SubGroup2, "LineEdit6");
-  SubGroup2Layout->addWidget(LineEdit6, 2, 2);
-
-  // Add subgroups to the group of arguments
-  GroupArgumentsLayout->addWidget(SubGroup1, 0, 0);
-  GroupArgumentsLayout->addWidget(SubGroup2, 1, 0);
-
-  // Control for the merging equal elements
-  CheckBoxMerge = new QCheckBox(GroupArguments, "CheckBoxMerge");
-  CheckBoxMerge->setText(tr("MERGE_EQUAL_ELEMENTS" ));
-  GroupArgumentsLayout->addWidget(CheckBoxMerge, 2, 0);
-
-// Control for the polygons creation instead of splitting
-  CheckBoxPolygons = new QCheckBox( GroupArguments, "CheckBoxPolygons" );
-  CheckBoxPolygons->setText( tr( "CREATE_POLYGONS_INSTEAD_SPLITTING"  ) );
-  GroupArgumentsLayout->addWidget( CheckBoxPolygons, 3, 0 );
-  
-  // Control for the polyedres creation to obtain conform mesh
-  CheckBoxPolyedrs = new QCheckBox( GroupArguments, "CheckBoxPolyedrs" );
-  CheckBoxPolyedrs->setText( tr( "CREATE_POLYEDRS_NEAR_BOUNDARY"  ) );
-  GroupArgumentsLayout->addWidget( CheckBoxPolyedrs, 4, 0 );
-
-
-  SMESHGUI_SewingDlgLayout->addWidget(GroupArguments, 1, 0);
-
-  /* Initialisations */
-  GroupArguments->show();
-  RadioButton1->setChecked(TRUE);
-
-  LineEdit2->setValidator(new SMESHGUI_IdValidator(this, "validator", 1));
-  LineEdit3->setValidator(new SMESHGUI_IdValidator(this, "validator", 1));
-  LineEdit5->setValidator(new SMESHGUI_IdValidator(this, "validator", 1));
-  LineEdit6->setValidator(new SMESHGUI_IdValidator(this, "validator", 1));
-
-  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  Init();
-
-  /* signals and slots connections */
-  connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-  connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
-  connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
-
-  connect(SelectButton1, SIGNAL (clicked()),   this, SLOT(SetEditCurrentArgument()));
-  connect(SelectButton2, SIGNAL (clicked()),   this, SLOT(SetEditCurrentArgument()));
-  connect(SelectButton3, SIGNAL (clicked()),   this, SLOT(SetEditCurrentArgument()));
-  connect(SelectButton4, SIGNAL (clicked()),   this, SLOT(SetEditCurrentArgument()));
-  connect(SelectButton5, SIGNAL (clicked()),   this, SLOT(SetEditCurrentArgument()));
-  connect(SelectButton6, SIGNAL (clicked()),   this, SLOT(SetEditCurrentArgument()));
-
-  connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-  /* to close dialog if study change */
-  connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
-
-  connect(LineEdit1, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
-  connect(LineEdit2, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
-  connect(LineEdit3, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
-  connect(LineEdit4, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
-  connect(LineEdit5, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
-  connect(LineEdit6, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
-
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show(); /* displays Dialog */
-
-  ConstructorsClicked(0);
-  resize(0,0);
-}
-
-//=================================================================================
-// function : ~SMESHGUI_SewingDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_SewingDlg::~SMESHGUI_SewingDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SewingDlg::Init()
-{
-  myBusy = false;
-
-  myEditCurrentArgument = LineEdit1;
-  LineEdit1->setFocus();
-  myActor = 0;
-  myMesh = SMESH::SMESH_Mesh::_nil();
-  CheckBoxMerge->setChecked(false);
-  CheckBoxPolygons->setChecked(false);
-  CheckBoxPolyedrs->setChecked(false);
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : ConstructorsClicked()
-// purpose  : Radio button management
-//=================================================================================
-void SMESHGUI_SewingDlg::ConstructorsClicked (int constructorId)
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySelectionMgr->clearSelected();
-  LineEdit1->setText("");
-  LineEdit2->setText("");
-  LineEdit3->setText("");
-  LineEdit4->setText("");
-  LineEdit5->setText("");
-  LineEdit6->setText("");
-  myOk1 = myOk2 = myOk3 = myOk4 = myOk5 = myOk6 = false;
-  myEditCurrentArgument = LineEdit1;
-  myEditCurrentArgument->setFocus();
-
-  if (!TextLabel5->isEnabled()) {
-    TextLabel5->setEnabled(true);
-    SelectButton5->setEnabled(true);
-    LineEdit5->setEnabled(true);
-  } else if (!TextLabel6->isEnabled()) {
-    TextLabel6->setEnabled(true);
-    SelectButton6->setEnabled(true);
-    LineEdit6->setEnabled(true);
-  }
-
-  if (constructorId == 1 || constructorId == 3) {
-    if (CheckBoxPolygons->isVisible())
-      CheckBoxPolygons->hide();
-    if (CheckBoxPolyedrs->isVisible())
-      CheckBoxPolyedrs->hide();
-  }
-
-  switch (constructorId) {
-  case 0:
-    {
-      GroupArguments->setTitle(tr("SEW_FREE_BORDERS"));
-      SubGroup1->setTitle(tr("BORDER_1"));
-      SubGroup2->setTitle(tr("BORDER_2"));
-
-        if (!CheckBoxPolygons->isVisible())
-          CheckBoxPolygons->show();
-        if (!CheckBoxPolyedrs->isVisible())
-          CheckBoxPolyedrs->show();
-
-
-      break;
-    }
-  case 1:
-    {
-      GroupArguments->setTitle(tr("SEW_CONFORM_FREE_BORDERS"));
-      SubGroup1->setTitle(tr("BORDER_1"));
-      SubGroup2->setTitle(tr("BORDER_2"));
-
-      TextLabel6->setEnabled(false);
-      SelectButton6->setEnabled(false);
-      LineEdit6->setEnabled(false);
-
-      myOk6 = true;
-
-      break;
-    }
-  case 2:
-    {
-      GroupArguments->setTitle(tr("SEW_BORDER_TO_SIDE"));
-      SubGroup1->setTitle(tr("BORDER"));
-      SubGroup2->setTitle(tr("SIDE"));
-
-      TextLabel5->setEnabled(false);
-      SelectButton5->setEnabled(false);
-      LineEdit5->setEnabled(false);
-
-      if (!CheckBoxPolygons->isVisible())
-       CheckBoxPolygons->show();
-      if (!CheckBoxPolyedrs->isVisible())
-       CheckBoxPolyedrs->show();
-      
-
-      myOk5 = true;
-
-      break;
-    }
-  case 3:
-    {
-      GroupArguments->setTitle(tr("SEW_SIDE_ELEMENTS"));
-      SubGroup1->setTitle(tr("SIDE_1"));
-      SubGroup2->setTitle(tr("SIDE_2"));
-
-      TextLabel1->setText(tr("SMESH_ID_ELEMENTS"));
-      TextLabel2->setText(tr("NODE1_TO_MERGE"));
-      TextLabel3->setText(tr("NODE2_TO_MERGE"));
-      TextLabel4->setText(tr("SMESH_ID_ELEMENTS"));
-      TextLabel5->setText(tr("NODE1_TO_MERGE"));
-      TextLabel6->setText(tr("NODE2_TO_MERGE"));
-
-      LineEdit1->setValidator(new SMESHGUI_IdValidator(this, "validator"));
-      LineEdit4->setValidator(new SMESHGUI_IdValidator(this, "validator"));
-
-      SMESH::SetPointRepresentation(false);
-
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->SetSelectionMode(CellSelection);
-      break;
-    }
-  }
-
-  if (constructorId != 3) {
-    TextLabel1->setText(tr("FIRST_NODE_ID"));
-    TextLabel2->setText(tr("SECOND_NODE_ID"));
-    TextLabel3->setText(tr("LAST_NODE_ID"));
-    TextLabel4->setText(tr("FIRST_NODE_ID"));
-    TextLabel5->setText(tr("SECOND_NODE_ID"));
-    TextLabel6->setText(tr("LAST_NODE_ID"));
-
-    LineEdit1->setValidator(new SMESHGUI_IdValidator(this, "validator", 1));
-    LineEdit4->setValidator(new SMESHGUI_IdValidator(this, "validator", 1));
-
-    SMESH::SetPointRepresentation(true);
-
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(NodeSelection);
-  }
-
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-bool SMESHGUI_SewingDlg::ClickOnApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return false;
-
-  bool aResult = false;
-
-  if (IsValid()) {
-    bool toMerge = CheckBoxMerge->isChecked();
-    bool toCreatePolygons = CheckBoxPolygons->isChecked();
-    bool toCreatePolyedrs = CheckBoxPolyedrs->isChecked();
-
-    try {
-      SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
-      QApplication::setOverrideCursor(Qt::waitCursor);
-
-      int aConstructorId = GetConstructorId();
-      SMESH::SMESH_MeshEditor::Sew_Error anError;
-
-      if (aConstructorId == 0)
-        anError = aMeshEditor->SewFreeBorders(LineEdit1->text().toLong(),
-                                              LineEdit2->text().toLong(),
-                                              LineEdit3->text().toLong(),
-                                              LineEdit4->text().toLong(),
-                                              LineEdit5->text().toLong(),
-                                              LineEdit6->text().toLong(),
-                                             toCreatePolygons,
-                                             toCreatePolyedrs);
-      else if (aConstructorId == 1)
-        anError = aMeshEditor->SewConformFreeBorders(LineEdit1->text().toLong(),
-                                                     LineEdit2->text().toLong(),
-                                                     LineEdit3->text().toLong(),
-                                                     LineEdit4->text().toLong(),
-                                                     LineEdit5->text().toLong());
-      else if (aConstructorId == 2)
-        anError = aMeshEditor->SewBorderToSide(LineEdit1->text().toLong(),
-                                               LineEdit2->text().toLong(),
-                                               LineEdit3->text().toLong(),
-                                               LineEdit4->text().toLong(),
-                                               LineEdit6->text().toLong(),
-                                              toCreatePolygons,
-                                              toCreatePolyedrs);
-      else if (aConstructorId == 3) {
-        QStringList aListElementsId1 = QStringList::split(" ", LineEdit1->text(), false);
-        QStringList aListElementsId2 = QStringList::split(" ", LineEdit4->text(), false);
-
-        SMESH::long_array_var anElementsId1 = new SMESH::long_array;
-        SMESH::long_array_var anElementsId2 = new SMESH::long_array;
-
-        anElementsId1->length(aListElementsId1.count());
-        anElementsId2->length(aListElementsId2.count());
-
-        for (int i = 0; i < aListElementsId1.count(); i++)
-          anElementsId1[i] = aListElementsId1[i].toInt();
-        for (int i = 0; i < aListElementsId2.count(); i++)
-          anElementsId2[i] = aListElementsId2[i].toInt();
-
-        anError = aMeshEditor->SewSideElements(anElementsId1.inout(),
-                                               anElementsId2.inout(),
-                                               LineEdit2->text().toLong(),
-                                               LineEdit5->text().toLong(),
-                                               LineEdit3->text().toLong(),
-                                               LineEdit6->text().toLong());
-      }
-      aResult = (anError == SMESH::SMESH_MeshEditor::SEW_OK);
-
-      if (toMerge && aResult)
-        aMeshEditor->MergeEqualElements();
-
-      QApplication::restoreOverrideCursor();
-
-      if (!aResult) {
-        QString msg = tr(QString("ERROR_%1").arg(anError));
-        SUIT_MessageBox::warn1(SMESHGUI::desktop(), tr("SMESH_WRN_WARNING"),
-                               msg, tr("SMESH_BUT_OK"));
-      }
-    } catch (...) {
-    }
-
-    if (aResult) {
-      Handle(SALOME_InteractiveObject) anIO = myActor->getIO();
-
-      SALOME_ListIO aList;
-      aList.Append(anIO);
-      mySelectionMgr->setSelectedObjects(aList, false);
-      SMESH::UpdateView();
-
-      Init();
-      ConstructorsClicked(GetConstructorId());
-    }
-  }
-
-  return aResult;
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SewingDlg::ClickOnOk()
-{
-  if (ClickOnApply())
-    ClickOnCancel();
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SewingDlg::ClickOnCancel()
-{
-  mySelectionMgr->clearSelected();
-  SMESH::SetPointRepresentation(false);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySMESHGUI->ResetState();
-  reject();
-}
-
-//=======================================================================
-//function : onTextChange
-//purpose  :
-//=======================================================================
-void SMESHGUI_SewingDlg::onTextChange (const QString& theNewText)
-{
-  QLineEdit* send = (QLineEdit*)sender();
-
-  if (myBusy) return;
-  myBusy = true;
-
-  if (send)
-    myEditCurrentArgument = send;
-
-  if      (send == LineEdit1)
-    myOk1 = false;
-  else if (send == LineEdit2)
-    myOk2 = false;
-  else if (send == LineEdit3)
-    myOk3 = false;
-  else if (send == LineEdit4)
-    myOk4 = false;
-  else if (send == LineEdit5)
-    myOk5 = false;
-  else if (send == LineEdit6)
-    myOk6 = false;
-
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-
-  // hilight entered elements/nodes
-  SMDS_Mesh* aMesh = 0;
-
-  if (myActor)
-    aMesh = myActor->GetObject()->GetMesh();
-  else
-    send->clear();
-
-  if (aMesh) {
-    TColStd_MapOfInteger newIndices;
-    
-    if (GetConstructorId() != 3 || (send != LineEdit1 && send != LineEdit4)) {
-      SMESH::SetPointRepresentation(true);
-
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->SetSelectionMode(NodeSelection);
-
-      const SMDS_MeshNode * n = aMesh->FindNode(theNewText.toInt());
-      if (n) {
-       newIndices.Add(n->GetID());
-       mySelector->AddOrRemoveIndex(myActor->getIO(), newIndices, false);
-       if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-         aViewWindow->highlight( myActor->getIO(), true, true );
-       
-        if      (send == LineEdit1)
-          myOk1 = true;
-        else if (send == LineEdit2)
-          myOk2 = true;
-        else if (send == LineEdit3)
-          myOk3 = true;
-        else if (send == LineEdit4)
-          myOk4 = true;
-        else if (send == LineEdit5)
-          myOk5 = true;
-        else if (send == LineEdit6)
-          myOk6 = true;
-      }
-    } else {
-      SMESH::SetPointRepresentation(false);
-
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->SetSelectionMode(CellSelection);
-
-      QStringList aListId = QStringList::split(" ", theNewText, false);
-
-      bool isEvenOneExists = false;
-
-      for (int i = 0; i < aListId.count(); i++) {
-        const SMDS_MeshElement * e = aMesh->FindElement(aListId[ i ].toInt());
-        if (e) 
-         newIndices.Add(e->GetID());
-       
-          if (!isEvenOneExists)
-            isEvenOneExists = true;
-      }
-      
-
-      mySelector->AddOrRemoveIndex(myActor->getIO(), newIndices, false);
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->highlight( myActor->getIO(), true, true );
-      
-      if (isEvenOneExists) {
-        if (send == LineEdit1)
-          myOk1 = true;
-        else if(send == LineEdit4)
-          myOk4 = true;
-      } else {
-        send->clear();
-      }
-    }
-  }
-
-  if (IsValid()) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
-
-  myBusy = false;
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_SewingDlg::SelectionIntoArgument (bool isSelectionChanged)
-{
-  if (myBusy) return;
-
-  // clear
-  if (isSelectionChanged)
-    myActor = 0;
-
-  QString aString = "";
-
-  myBusy = true;
-  myEditCurrentArgument->setText(aString);
-  myBusy = false;
-
-  if (!GroupButtons->isEnabled()) // inactive
-    return;
-
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-
-  // get selected mesh
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
-
-  int nbSel = aList.Extent();
-  if (nbSel != 1)
-    return;
-
-  Handle(SALOME_InteractiveObject) IO = aList.First();
-  myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO);
-  myActor = SMESH::FindActorByEntry(aList.First()->getEntry());
-
-  if (myMesh->_is_nil() || !myActor)
-    return;
-
-  // get selected elements/nodes
-  int aNbUnits = 0;
-
-  if (GetConstructorId() != 3 ||
-      (myEditCurrentArgument != LineEdit1 && myEditCurrentArgument != LineEdit4)) {
-    aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, myActor->getIO(), aString);
-    if (aNbUnits != 1)
-      return;
-  } else {
-    aNbUnits = SMESH::GetNameOfSelectedElements(mySelector, myActor->getIO(), aString);
-    if (aNbUnits < 1)
-      return;
-  }
-
-  myBusy = true;
-  myEditCurrentArgument->setText(aString);
-  myBusy = false;
-
-  // OK
-  if (myEditCurrentArgument == LineEdit1)
-    myOk1 = true;
-  else if (myEditCurrentArgument == LineEdit2)
-    myOk2 = true;
-  else if (myEditCurrentArgument == LineEdit3)
-    myOk3 = true;
-  else if (myEditCurrentArgument == LineEdit4)
-    myOk4 = true;
-  else if (myEditCurrentArgument == LineEdit5)
-    myOk5 = true;
-  else if (myEditCurrentArgument == LineEdit6)
-    myOk6 = true;
-
-  if (IsValid()) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SewingDlg::SetEditCurrentArgument()
-{
-  QPushButton* send = (QPushButton*)sender();
-
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySelectionMgr->clearSelected();
-
-  if (send == SelectButton1) {
-    myEditCurrentArgument = LineEdit1;
-    myOk1 = false;
-  }
-  else if (send == SelectButton2) {
-    myEditCurrentArgument = LineEdit2;
-    myOk2 = false;
-  }
-  else if (send == SelectButton3) {
-    myEditCurrentArgument = LineEdit3;
-    myOk3 = false;
-  }
-  else if (send == SelectButton4) {
-    myEditCurrentArgument = LineEdit4;
-    myOk4 = false;
-  }
-  else if (send == SelectButton5) {
-    myEditCurrentArgument = LineEdit5;
-    myOk5 = false;
-  }
-  else if (send == SelectButton6) {
-    myEditCurrentArgument = LineEdit6;
-    myOk6 = false;
-  }
-
-  if (GetConstructorId() != 3 || (send != SelectButton1 && send != SelectButton4)) {
-    SMESH::SetPointRepresentation(true);
-
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(NodeSelection);
-
-  } else {
-    SMESH::SetPointRepresentation(false);
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(CellSelection);
-  }
-
-  myEditCurrentArgument->setFocus();
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-  SelectionIntoArgument(false);
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SewingDlg::DeactivateActiveDialog()
-{
-  if (GroupConstructors->isEnabled()) {
-    GroupConstructors->setEnabled(false);
-    GroupArguments->setEnabled(false);
-    GroupButtons->setEnabled(false);
-    mySMESHGUI->ResetState();
-    mySMESHGUI->SetActiveDialogBox(0);
-  }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SewingDlg::ActivateThisDialog()
-{
-  /* Emit a signal to deactivate the active dialog */
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupConstructors->setEnabled(true);
-  GroupArguments->setEnabled(true);
-  GroupButtons->setEnabled(true);
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  ConstructorsClicked(GetConstructorId());
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SewingDlg::enterEvent (QEvent* e)
-{
-  if (!GroupConstructors->isEnabled())
-    ActivateThisDialog();
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SewingDlg::closeEvent (QCloseEvent*)
-{
-  /* same than click on cancel button */
-  this->ClickOnCancel();
-}
-
-//=======================================================================
-//function : hideEvent
-//purpose  : caused by ESC key
-//=======================================================================
-void SMESHGUI_SewingDlg::hideEvent (QHideEvent*)
-{
-  if (!isMinimized())
-    ClickOnCancel();
-}
-
-//=================================================================================
-// function : GetConstructorId()
-// purpose  :
-//=================================================================================
-int SMESHGUI_SewingDlg::GetConstructorId()
-{
-  if (GroupConstructors != NULL && GroupConstructors->selected() != NULL)
-    return GroupConstructors->id(GroupConstructors->selected());
-  return -1;
-}
-
-//=================================================================================
-// function : GetConstructorId()
-// purpose  :
-//=================================================================================
-bool SMESHGUI_SewingDlg::IsValid()
-{
-  return (myOk1 && myOk2 && myOk3 && myOk4 && myOk5 && myOk6);
-}
diff --git a/src/SMESHGUI/SMESHGUI_SewingDlg.h b/src/SMESHGUI/SMESHGUI_SewingDlg.h
deleted file mode 100644 (file)
index 6a800d6..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_SewingDlg.h
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header: 
-
-#ifndef DIALOGBOX_SEWING_H
-#define DIALOGBOX_SEWING_H
-
-#include "SalomeApp_SelectionMgr.h"
-
-// QT Includes
-#include <qdialog.h>
-
-class QGridLayout; 
-class QButtonGroup;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-class QCheckBox;
-class SMESHGUI;
-class SMESH_Actor;
-class SVTK_ViewWindow;
-class SVTK_Selector;
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-
-//=================================================================================
-// class    : SMESHGUI_SewingDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_SewingDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_SewingDlg( SMESHGUI*,
-                       const char* name = 0,
-                       bool modal = FALSE,
-                       WFlags fl = 0);
-    ~SMESHGUI_SewingDlg();
-
-private:
-    void Init() ;
-    void closeEvent( QCloseEvent* e ) ;
-    void enterEvent ( QEvent * );                          /* mouse enter the QWidget */
-    void hideEvent ( QHideEvent * );                       /* ESC key */
-    int  GetConstructorId();
-    bool IsValid();
-    
-    SMESHGUI*                     mySMESHGUI;              /* Current SMESHGUI object */
-    SalomeApp_SelectionMgr*       mySelectionMgr;          /* User shape selection */
-    int                           myOk1, myOk2, myOk3, myOk4, myOk5, myOk6;    
-    QLineEdit*                    myEditCurrentArgument;   /* Current  LineEdit */
-    SVTK_Selector*                mySelector;
-    
-    bool                          myBusy;
-    SMESH::SMESH_Mesh_var         myMesh;
-    SMESH_Actor*                  myActor;
-        
-    QButtonGroup* GroupConstructors;
-    QRadioButton* RadioButton1;
-    QRadioButton* RadioButton2;
-    QRadioButton* RadioButton3;
-    QRadioButton* RadioButton4;
-    QGroupBox* GroupButtons;
-    QPushButton* buttonOk;
-    QPushButton* buttonCancel;
-    QPushButton* buttonApply;
-    QGroupBox* GroupArguments;
-    QGroupBox* SubGroup1;
-    QGroupBox* SubGroup2;
-    QLabel* TextLabel1;
-    QLabel* TextLabel2;
-    QLabel* TextLabel3;
-    QLabel* TextLabel4;
-    QLabel* TextLabel5;
-    QLabel* TextLabel6;
-    QPushButton* SelectButton1;
-    QPushButton* SelectButton2;
-    QPushButton* SelectButton3;
-    QPushButton* SelectButton4;
-    QPushButton* SelectButton5;
-    QPushButton* SelectButton6;
-    QLineEdit* LineEdit1;
-    QLineEdit* LineEdit2;
-    QLineEdit* LineEdit3;
-    QLineEdit* LineEdit4;
-    QLineEdit* LineEdit5;
-    QLineEdit* LineEdit6;
-    QCheckBox* CheckBoxMerge;
-    QCheckBox* CheckBoxPolygons;
-    QCheckBox* CheckBoxPolyedrs;
-
-private slots:
-
-    void ConstructorsClicked(int constructorId);
-    void ClickOnOk();
-    void ClickOnCancel();
-    bool ClickOnApply();
-    void SetEditCurrentArgument() ;
-    void SelectionIntoArgument(bool isSelectionChanged = true) ;
-    void DeactivateActiveDialog() ;
-    void ActivateThisDialog() ;
-    void onTextChange(const QString&);
-    
-protected:
-    QGridLayout* SMESHGUI_SewingDlgLayout;
-    QGridLayout* GroupConstructorsLayout;
-    QGridLayout* GroupButtonsLayout;
-    QGridLayout* GroupArgumentsLayout;
-};
-
-#endif // DIALOGBOX_SEWING_H
diff --git a/src/SMESHGUI/SMESHGUI_SingleEditDlg.cxx b/src/SMESHGUI/SMESHGUI_SingleEditDlg.cxx
deleted file mode 100755 (executable)
index fcf0682..0000000
+++ /dev/null
@@ -1,560 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_SingleEditDlg.cxx
-//  Author : Sergey LITONIN
-//  Module : SMESH
-
-#include "SMESHGUI_SingleEditDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_MeshUtils.h"
-#include "SMESHGUI_SpinBox.h"
-
-#include "SMESH_Actor.h"
-#include "SMDS_Mesh.hxx"
-
-#include "SalomeApp_SelectionMgr.h"
-#include "SUIT_ResourceMgr.h"
-#include "SUIT_MessageBox.h"
-#include "SUIT_Desktop.h"
-
-#include "SVTK_Selector.h"
-#include "SVTK_ViewWindow.h"
-#include "SALOME_ListIO.hxx"
-
-#include "utilities.h"
-
-// OCCT Includes
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_IndexedMapOfInteger.hxx>
-
-// QT Includes
-#include <qframe.h>
-#include <qlayout.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qmessagebox.h>
-#include <qvalidator.h>
-
-
-#define SPACING 5
-#define MARGIN  10
-
-
-/*!
- *  Class       : SMESHGUI_DiagValidator
- *  Description : validate munual input of edge like "id1-id2"
- */
-class SMESHGUI_DiagValidator: public QValidator
-{
- public:
-  SMESHGUI_DiagValidator (QWidget * parent, const char * name = 0):
-    QValidator(parent,name) {}
-
-  State validate (QString & text, int & pos) const
-  {
-    text.stripWhiteSpace();
-    text.replace(QRegExp("[^0-9]+"), "-");
-    if (text == "-")
-      text = "";
-    int ind = text.find(QRegExp("-[0-9]+-"));
-    if (ind > 0) { // leave only two ids
-      ind = text.find('-', ind + 1);
-      if (ind > 0)
-        text.truncate(ind);
-    }
-    if (pos > text.length())
-      pos = text.length();
-    return Acceptable;
-  }
-};
-
-/*!
- *  Class       : SMESHGUI_SingleEditDlg
- *  Description : Inversion of the diagonal of a pseudo-quadrangle formed by
- *                2 neighboring triangles with 1 common edge
- */
-
-//=======================================================================
-// name    : SMESHGUI_SingleEditDlg()
-// Purpose : Constructor
-//=======================================================================
-SMESHGUI_SingleEditDlg
-::SMESHGUI_SingleEditDlg(SMESHGUI* theModule, 
-                        const char* theName):
-  QDialog(SMESH::GetDesktop(theModule), 
-         theName, 
-         false, 
-         WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
-    mySelector(SMESH::GetViewWindow(theModule)->GetSelector()),
-    mySelectionMgr(SMESH::GetSelectionMgr(theModule)),
-    mySMESHGUI(theModule)
-{
-  QVBoxLayout* aDlgLay = new QVBoxLayout(this, MARGIN, SPACING);
-
-  QFrame* aMainFrame = createMainFrame  (this);
-  QFrame* aBtnFrame  = createButtonFrame(this);
-
-  aDlgLay->addWidget(aMainFrame);
-  aDlgLay->addWidget(aBtnFrame);
-
-  aDlgLay->setStretchFactor(aMainFrame, 1);
-
-  Init();
-}
-
-//=======================================================================
-// name    : createMainFrame()
-// Purpose : Create frame containing dialog's input fields
-//=======================================================================
-QFrame* SMESHGUI_SingleEditDlg::createMainFrame (QWidget* theParent)
-{
-  QGroupBox* aMainGrp = new QGroupBox(1, Qt::Vertical, tr("EDGE_BETWEEN"), theParent);
-
-  QPixmap aPix (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
-
-  new QLabel(tr("SMESH_EDGE"), aMainGrp);
-  (new QPushButton(aMainGrp))->setPixmap(aPix);
-  myEdge = new QLineEdit(aMainGrp);
-  myEdge->setValidator(new SMESHGUI_DiagValidator(this, "validator"));
-
-  return aMainGrp;
-}
-
-//=======================================================================
-// name    : createButtonFrame()
-// Purpose : Create frame containing buttons
-//=======================================================================
-QFrame* SMESHGUI_SingleEditDlg::createButtonFrame (QWidget* theParent)
-{
-  QFrame* aFrame = new QFrame(theParent);
-  aFrame->setFrameStyle(QFrame::Box | QFrame::Sunken);
-
-  myOkBtn     = new QPushButton(tr("SMESH_BUT_OK"   ), aFrame);
-  myApplyBtn  = new QPushButton(tr("SMESH_BUT_APPLY"), aFrame);
-  myCloseBtn  = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame);
-
-  QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
-
-  QHBoxLayout* aLay = new QHBoxLayout(aFrame, MARGIN, SPACING);
-
-  aLay->addWidget(myOkBtn);
-  aLay->addWidget(myApplyBtn);
-  aLay->addItem(aSpacer);
-  aLay->addWidget(myCloseBtn);
-
-  return aFrame;
-}
-
-//=======================================================================
-// name    : isValid()
-// Purpose : Verify validity of input data
-//=======================================================================
-bool SMESHGUI_SingleEditDlg::isValid (const bool theMess) const
-{
-  int id1, id2;
-  return getNodeIds(myEdge->text(), id1, id2);
-}
-
-//=======================================================================
-// name    : getNodeIds()
-// Purpose : Retrieve node ids from string
-//=======================================================================
-bool SMESHGUI_SingleEditDlg::getNodeIds (const QString& theStr,
-                                         int& theId1, int&  theId2) const
-{
-  if (!theStr.contains('-'))
-    return false;
-
-  bool ok1, ok2;
-  QString str1 = theStr.section('-', 0, 0, QString::SectionSkipEmpty);
-  QString str2 = theStr.section('-', 1, 1, QString::SectionSkipEmpty);
-  theId1 = str1.toInt(&ok1);
-  theId2 = str2.toInt(&ok2);
-
-  return ok1 & ok2;
-}
-
-//=======================================================================
-// name    : ~SMESHGUI_SingleEditDlg()
-// Purpose : Destructor
-//=======================================================================
-SMESHGUI_SingleEditDlg::~SMESHGUI_SingleEditDlg()
-{
-}
-
-//=======================================================================
-// name    : Init()
-// Purpose : Init dialog fields, connect signals and slots, show dialog
-//=======================================================================
-void SMESHGUI_SingleEditDlg::Init()
-{
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-  myBusy = false;
-  myActor = 0;
-
-  // main buttons
-  connect(myOkBtn,    SIGNAL(clicked()), SLOT(onOk()));
-  connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
-  connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
-
-  // selection and SMESHGUI
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
-  connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
-  connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
-  connect(myEdge, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
-
-  myOkBtn->setEnabled(false);
-  myApplyBtn->setEnabled(false);
-  setEnabled(true);
-
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show();
-
-  // set selection mode
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(EdgeOfCellSelection);
-
-  onSelectionDone();
-}
-
-//=======================================================================
-// name    : onOk()
-// Purpose : SLOT called when "Ok" button pressed.
-//           Assign filters VTK viewer and close dialog
-//=======================================================================
-void SMESHGUI_SingleEditDlg::onOk()
-{
-  if (onApply())
-    onClose();
-}
-
-//=======================================================================
-// name    : onClose()
-// Purpose : SLOT called when "Close" button pressed. Close dialog
-//=======================================================================
-void SMESHGUI_SingleEditDlg::onClose()
-{
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-  mySelectionMgr->clearSelected();
-  disconnect(mySelectionMgr, 0, this, 0);
-  disconnect(mySMESHGUI, 0, this, 0);
-  mySMESHGUI->ResetState();
-  reject();
-}
-
-//=======================================================================
-//function : findTriangles()
-//purpose  : find triangles sharing theNode1-theNode2 link
-//           THIS IS A PIECE OF SMESH_MeshEditor.cxx
-//           TO DO: make it available in SMDS for ex.
-//=======================================================================
-static bool findTriangles (const SMDS_MeshNode *    theNode1,
-                           const SMDS_MeshNode *    theNode2,
-                           const SMDS_MeshElement*& theTria1,
-                           const SMDS_MeshElement*& theTria2)
-{
-  if (!theNode1 || !theNode2) return false;
-
-  theTria1 = theTria2 = 0;
-
-  set< const SMDS_MeshElement* > emap;
-  SMDS_ElemIteratorPtr it = theNode1->GetInverseElementIterator();
-  while (it->more()) {
-    const SMDS_MeshElement* elem = it->next();
-    if (elem->GetType() == SMDSAbs_Face && elem->NbNodes() == 3)
-      emap.insert(elem);
-  }
-  it = theNode2->GetInverseElementIterator();
-  while (it->more()) {
-    const SMDS_MeshElement* elem = it->next();
-    if (elem->GetType() == SMDSAbs_Face &&
-         emap.find(elem) != emap.end())
-      if (theTria1) {
-        theTria2 = elem;
-        break;
-      } else {
-        theTria1 = elem;
-      }
-  }
-  return (theTria1 && theTria2);
-}
-
-//=======================================================================
-//function : onTextChange()
-//purpose  :
-//=======================================================================
-void SMESHGUI_SingleEditDlg::onTextChange (const QString& theNewText)
-{
-  if (myBusy) return;
-
-  myOkBtn->setEnabled(false);
-  myApplyBtn->setEnabled(false);
-
-  // hilight entered edge
-  if(myActor){
-    if(SMDS_Mesh* aMesh = myActor->GetObject()->GetMesh()){
-      myBusy = true; // block onSelectionDone()
-      Handle(SALOME_InteractiveObject) anIO = myActor->getIO();
-      SALOME_ListIO aList;
-      aList.Append(anIO);
-      mySelectionMgr->setSelectedObjects(aList,false);
-      
-      TColStd_IndexedMapOfInteger selectedIndices;
-      TColStd_MapOfInteger newIndices;
-      mySelector->GetIndex(anIO,selectedIndices);
-      myBusy = false;
-
-      QStringList aListId = QStringList::split("-", theNewText, false);
-      if (aListId.count() != 2)
-       return;
-
-      int i;
-      bool allOk = true;
-      const SMDS_MeshNode* a2Nodes[2];
-      for (i = 0; i < aListId.count(); i++) {
-       if(const SMDS_MeshNode *aNode = aMesh->FindNode(aListId[ i ].toInt()))
-         a2Nodes[ i ] = aNode;
-       else
-         allOk = false;
-      }
-      
-      // find a triangle and an edge nb
-      const SMDS_MeshElement* tria[2];
-      allOk &= a2Nodes[0] != a2Nodes[1] && findTriangles(a2Nodes[0],a2Nodes[1],tria[0],tria[1]);
-      if(allOk){
-       myBusy = true; // block onSelectionDone()
-       newIndices.Add(tria[0]->GetID());
-       mySelector->AddOrRemoveIndex(anIO,newIndices, true);
-
-       const SMDS_MeshNode* a3Nodes [3];
-       SMDS_ElemIteratorPtr it;
-       int edgeInd = 2;
-       for (i = 0, it = tria[0]->nodesIterator(); it->more(); i++) {
-         a3Nodes[ i ] = static_cast<const SMDS_MeshNode*>(it->next());
-         if (i > 0) {
-           allOk = (a3Nodes[ i ] == a2Nodes[ 0 ] && a3Nodes[ i - 1] == a2Nodes[ 1 ]) ||
-             (a3Nodes[ i ] == a2Nodes[ 1 ] && a3Nodes[ i - 1] == a2Nodes[ 0 ]);
-           if (allOk) {
-             edgeInd = i - 1;
-             break;
-           }
-         }
-       }
-
-       newIndices.Clear();
-       newIndices.Add(-edgeInd-1);
-       mySelector->AddOrRemoveIndex(anIO,newIndices,true);
-       myBusy = false;
-       
-       myOkBtn->setEnabled(true);
-       myApplyBtn->setEnabled(true);
-      }
-    }
-  }
-}
-
-//=======================================================================
-// name    : onSelectionDone()
-// Purpose : SLOT called when selection changed
-//=======================================================================
-void SMESHGUI_SingleEditDlg::onSelectionDone()
-{
-  if (myBusy) return;
-
-  int anId1 = 0, anId2 = 0;
-
-  myOkBtn->setEnabled(false);
-  myApplyBtn->setEnabled(false);
-
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList);
-
-  if (aList.Extent() != 1) {
-    myEdge->clear();
-    return;
-  }
-
-  Handle(SALOME_InteractiveObject) anIO = aList.First();
-  myActor = SMESH::FindActorByEntry(anIO->getEntry());
-  if(myActor){
-    TVisualObjPtr aVisualObj = myActor->GetObject();
-    if(SMDS_Mesh* aMesh = aVisualObj->GetMesh()){
-      if(SMESH::GetEdgeNodes(mySelector, aVisualObj, anId1, anId2) >= 1){
-       QString aText = QString("%1-%2").arg(anId1).arg(anId2);
-       myBusy = true;
-       myEdge->setText(aText);
-       myBusy = false;
-       
-       const SMDS_MeshElement* tria[2];
-       if (findTriangles(aMesh->FindNode(anId1), aMesh->FindNode(anId2), tria[0],tria[1])) {
-         myOkBtn->setEnabled(true);
-         myApplyBtn->setEnabled(true);
-       }
-      } else {
-       myEdge->clear();
-      }
-    }
-  }
-}
-
-//=======================================================================
-// name    : onDeactivate()
-// Purpose : SLOT called when dialog must be deativated
-//=======================================================================
-void SMESHGUI_SingleEditDlg::onDeactivate()
-{
-  setEnabled(false);
-}
-
-//=======================================================================
-// name    : enterEvent()
-// Purpose : Event filter
-//=======================================================================
-void SMESHGUI_SingleEditDlg::enterEvent (QEvent*)
-{
-  if (!isEnabled()) {
-    mySMESHGUI->EmitSignalDeactivateDialog();
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(EdgeOfCellSelection);
-    setEnabled(true);
-  }
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SingleEditDlg::closeEvent (QCloseEvent*)
-{
-  onClose();
-}
-
-//=======================================================================
-//function : hideEvent()
-//purpose  : caused by ESC key
-//=======================================================================
-void SMESHGUI_SingleEditDlg::hideEvent (QHideEvent*)
-{
-  if (!isMinimized())
-    onClose();
-}
-
-//=================================================================================
-// function : onApply()
-// purpose  : SLOT. Called when apply button is pressed
-//=================================================================================
-bool SMESHGUI_SingleEditDlg::onApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return false;
-  // verify validity of input data
-  if (!isValid(true))
-    return false;
-
-  // get mesh, actor and nodes
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList);
-
-  SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO(aList.First());
-
-  if (aMesh->_is_nil()) {
-    SUIT_MessageBox::info1(SMESH::GetDesktop(mySMESHGUI), 
-                          tr("SMESH_ERROR"),
-                          tr("SMESHG_NO_MESH"), 
-                          tr("SMESH_BUT_OK"));
-    return false;
-  }
-
-  SMESH::SMESH_MeshEditor_var aMeshEditor = aMesh->GetMeshEditor();
-  int anId1= 0, anId2 = 0;
-  if (aMeshEditor->_is_nil() || !getNodeIds(myEdge->text(), anId1, anId2))
-    return false;
-
-  // perform operation
-  bool aResult = process(aMeshEditor.in(), anId1, anId2);
-
-  // update actor
-  if (aResult) {
-    mySelectionMgr->setSelectedObjects(aList, false);
-    SMESH::UpdateView();
-  }
-
-  return aResult;
-}
-
-/*!
- *  Class       : SMESHGUI_TrianglesInversionDlg
- *  Description : Inversion of the diagonal of a pseudo-quadrangle formed by
- *                2 neighboring triangles with 1 common edge
- */
-
-SMESHGUI_TrianglesInversionDlg
-::SMESHGUI_TrianglesInversionDlg(SMESHGUI* theModule, 
-                                const char* theName)
-: SMESHGUI_SingleEditDlg(theModule,theName)
-{
-  setCaption(tr("CAPTION"));
-}
-
-SMESHGUI_TrianglesInversionDlg::~SMESHGUI_TrianglesInversionDlg()
-{
-}
-
-bool SMESHGUI_TrianglesInversionDlg::process (SMESH::SMESH_MeshEditor_ptr theMeshEditor,
-                                              const int theId1, const int theId2)
-{
-  return theMeshEditor->InverseDiag(theId1, theId2);
-}
-
-/*!
- *  Class       : SMESHGUI_UnionOfTwoTrianglesDlg
- *  Description : Construction of a quadrangle by deletion of the
- *                common border of 2 neighboring triangles
- */
-
-SMESHGUI_UnionOfTwoTrianglesDlg
-::SMESHGUI_UnionOfTwoTrianglesDlg(SMESHGUI* theModule, 
-                                 const char* theName)
-: SMESHGUI_SingleEditDlg(theModule,theName)
-{
-  setCaption(tr("CAPTION"));
-}
-
-SMESHGUI_UnionOfTwoTrianglesDlg::~SMESHGUI_UnionOfTwoTrianglesDlg()
-{
-}
-
-bool SMESHGUI_UnionOfTwoTrianglesDlg::process (SMESH::SMESH_MeshEditor_ptr theMeshEditor,
-                                               const int theId1, const int theId2)
-{
-  return theMeshEditor->DeleteDiag(theId1, theId2);
-}
diff --git a/src/SMESHGUI/SMESHGUI_SingleEditDlg.h b/src/SMESHGUI/SMESHGUI_SingleEditDlg.h
deleted file mode 100755 (executable)
index 01f724a..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_SingleEditDlg.h
-//  Author : Sergey LITONIN
-//  Module : SMESH
-
-
-#ifndef SMESHGUI_SingleEditDlg_H
-#define SMESHGUI_SingleEditDlg_H
-
-#include <qdialog.h>
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-class QCloseEvent;
-class QFrame;
-class QLineEdit;
-class SMESHGUI_SpinBox;
-class QPushButton;
-
-class SMESHGUI;
-class SMESH_Actor;
-class SVTK_Selector;
-class SVTK_ViewWindow;
-class SalomeApp_SelectionMgr;
-
-/*!
- *  Class       : SMESHGUI_SingleEditDlg
- *  Description : Base class for dialogs of diagonal inversion and 
- *                union of two neighboring triangles
- */
-class SMESHGUI_SingleEditDlg : public QDialog
-{ 
-  Q_OBJECT
-
-public:
-  SMESHGUI_SingleEditDlg(SMESHGUI* theModule, 
-                        const char* theName = 0);
-  virtual ~SMESHGUI_SingleEditDlg();
-
-  void Init();
-
-protected slots:
-  void                    onOk();
-  virtual bool            onApply();
-  void                    onClose();
-
-  void                    onDeactivate();
-
-  void                    onSelectionDone();
-  void                    onTextChange (const QString&);
-
-protected:
-  void                    closeEvent (QCloseEvent*);
-  void                    enterEvent (QEvent*);
-  void                    hideEvent (QHideEvent*);                        /* ESC key */
-  QFrame*                 createButtonFrame (QWidget*);
-  QFrame*                 createMainFrame (QWidget*);
-  bool                    isValid (const bool) const;
-  bool                    getNodeIds (const QString&, int&, int&) const;
-  virtual bool            process (SMESH::SMESH_MeshEditor_ptr, const int, const int) = 0;
-
-protected:
-  bool                    myBusy;
-  QPushButton*            myOkBtn;
-  QPushButton*            myApplyBtn;
-  QPushButton*            myCloseBtn;
-  QLineEdit*              myEdge;
-  SMESH_Actor*            myActor;
-
-  SalomeApp_SelectionMgr* mySelectionMgr;
-  SVTK_Selector*          mySelector;
-  SMESHGUI*               mySMESHGUI;
-};
-
-/*!
- *  Class       : SMESHGUI_TrianglesInversionDlg
- *  Description : Inversion of the diagonal of a pseudo-quadrangle formed by 
- *                2 neighboring triangles with 1 common edge
- */
-class SMESHGUI_TrianglesInversionDlg : public SMESHGUI_SingleEditDlg
-{
-  Q_OBJECT
-
-public:
-  SMESHGUI_TrianglesInversionDlg(SMESHGUI* theModule, 
-                                const char* theName = 0);
-  virtual ~SMESHGUI_TrianglesInversionDlg();
-
-protected:
-  virtual bool process (SMESH::SMESH_MeshEditor_ptr, const int, const int);
-};
-
-/*!
- *  Class       : SMESHGUI_UnionOfTwoTrianglesDlg
- *  Description : Construction of a quadrangle by deletion of the 
- *                common border of 2 neighboring triangles
- */
-class SMESHGUI_UnionOfTwoTrianglesDlg : public SMESHGUI_SingleEditDlg
-{
-  Q_OBJECT
-
-public:
-  SMESHGUI_UnionOfTwoTrianglesDlg(SMESHGUI* theModule, 
-                                 const char* theName = 0);
-  virtual ~SMESHGUI_UnionOfTwoTrianglesDlg();
-
-protected:
-  virtual bool process (SMESH::SMESH_MeshEditor_ptr, const int, const int);
-};
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_SmoothingDlg.cxx b/src/SMESHGUI/SMESHGUI_SmoothingDlg.cxx
deleted file mode 100644 (file)
index 40400d4..0000000
+++ /dev/null
@@ -1,751 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_SmoothingDlg.cxx
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header:
-
-#include "SMESHGUI_SmoothingDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_MeshUtils.h"
-#include "SMESHGUI_SpinBox.h"
-#include "SMESHGUI_IdValidator.h"
-
-#include "SMESH_Actor.h"
-#include "SMESH_TypeFilter.hxx"
-#include "SMESH_NumberFilter.hxx"
-#include "SMESH_LogicalFilter.hxx"
-
-#include "SMDS_Mesh.hxx"
-
-#include "SUIT_ResourceMgr.h"
-#include "SUIT_OverrideCursor.h"
-#include "SUIT_Desktop.h"
-#include "SUIT_MessageBox.h"
-
-#include "SVTK_ViewModel.h"
-#include "SVTK_Selector.h"
-#include "SVTK_ViewWindow.h"
-#include "SVTK_Selection.h"
-#include "SALOME_ListIO.hxx"
-
-#include "utilities.h"
-
-// OCCT Includes
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_IndexedMapOfInteger.hxx>
-
-// QT Includes
-#include <qapplication.h>
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qcombobox.h>
-#include <qcheckbox.h>
-#include <qspinbox.h>
-#include <qlayout.h>
-#include <qvalidator.h>
-#include <qpixmap.h>
-
-// IDL Headers
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Group)
-
-using namespace std;
-
-//=================================================================================
-// function : SMESHGUI_SmoothingDlg()
-// purpose  : constructor
-//=================================================================================
-SMESHGUI_SmoothingDlg::SMESHGUI_SmoothingDlg( SMESHGUI* theModule, const char* name,
-                                             bool modal, WFlags fl)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-                WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
-     mySMESHGUI( theModule ),
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-  QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_DLG_SMOOTHING")));
-  QPixmap image1 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
-
-  if (!name)
-    setName("SMESHGUI_SmoothingDlg");
-  resize(303, 185);
-  setCaption(tr("SMESH_SMOOTHING"));
-  setSizeGripEnabled(TRUE);
-  SMESHGUI_SmoothingDlgLayout = new QGridLayout(this);
-  SMESHGUI_SmoothingDlgLayout->setSpacing(6);
-  SMESHGUI_SmoothingDlgLayout->setMargin(11);
-
-  /***************************************************************/
-  GroupConstructors = new QButtonGroup(this, "GroupConstructors");
-  GroupConstructors->setTitle(tr("SMESH_SMOOTHING" ));
-  GroupConstructors->setExclusive(TRUE);
-  GroupConstructors->setColumnLayout(0, Qt::Vertical);
-  GroupConstructors->layout()->setSpacing(0);
-  GroupConstructors->layout()->setMargin(0);
-  GroupConstructorsLayout = new QGridLayout(GroupConstructors->layout());
-  GroupConstructorsLayout->setAlignment(Qt::AlignTop);
-  GroupConstructorsLayout->setSpacing(6);
-  GroupConstructorsLayout->setMargin(11);
-  Constructor1 = new QRadioButton(GroupConstructors, "Constructor1");
-  Constructor1->setText(tr("" ));
-  Constructor1->setPixmap(image0);
-  Constructor1->setChecked(TRUE);
-  Constructor1->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)1,
-                                          (QSizePolicy::SizeType)0,
-                                          Constructor1->sizePolicy().hasHeightForWidth()));
-  Constructor1->setMinimumSize(QSize(50, 0));
-  GroupConstructorsLayout->addWidget(Constructor1, 0, 0);
-  QSpacerItem* spacer = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupConstructorsLayout->addItem(spacer, 0, 1);
-  SMESHGUI_SmoothingDlgLayout->addWidget(GroupConstructors, 0, 0);
-
-  /***************************************************************/
-  GroupButtons = new QGroupBox(this, "GroupButtons");
-  GroupButtons->setGeometry(QRect(10, 10, 281, 48));
-  GroupButtons->setTitle(tr(""));
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-  buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
-  buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
-  buttonCancel->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-  buttonApply = new QPushButton(GroupButtons, "buttonApply");
-  buttonApply->setText(tr("SMESH_BUT_APPLY" ));
-  buttonApply->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-  QSpacerItem* spacer_9 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupButtonsLayout->addItem(spacer_9, 0, 2);
-  buttonOk = new QPushButton(GroupButtons, "buttonOk");
-  buttonOk->setText(tr("SMESH_BUT_OK" ));
-  buttonOk->setAutoDefault(TRUE);
-  buttonOk->setDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-  SMESHGUI_SmoothingDlgLayout->addWidget(GroupButtons, 2, 0);
-
-  /***************************************************************/
-  GroupArguments = new QGroupBox(this, "GroupArguments");
-  GroupArguments->setTitle(tr("SMESH_ARGUMENTS"));
-  GroupArguments->setColumnLayout(0, Qt::Vertical);
-  GroupArguments->layout()->setSpacing(0);
-  GroupArguments->layout()->setMargin(0);
-  GroupArgumentsLayout = new QGridLayout(GroupArguments->layout());
-  GroupArgumentsLayout->setAlignment(Qt::AlignTop);
-  GroupArgumentsLayout->setSpacing(6);
-  GroupArgumentsLayout->setMargin(11);
-
-  // Controls for elements selection
-  TextLabelElements  = new QLabel(GroupArguments, "TextLabelElements");
-  TextLabelElements->setText(tr("SMESH_ID_ELEMENTS" ));
-  GroupArgumentsLayout->addWidget(TextLabelElements, 0, 0);
-
-  SelectElementsButton  = new QPushButton(GroupArguments, "SelectElementsButton");
-  SelectElementsButton->setText(tr("" ));
-  SelectElementsButton->setPixmap(image1);
-  SelectElementsButton->setToggleButton(FALSE);
-  GroupArgumentsLayout->addWidget(SelectElementsButton, 0, 1);
-
-  LineEditElements  = new QLineEdit(GroupArguments, "LineEditElements");
-  LineEditElements->setValidator(new SMESHGUI_IdValidator(this, "validator"));
-  GroupArgumentsLayout->addWidget(LineEditElements, 0, 2);
-
-  // Control for the whole mesh selection
-  CheckBoxMesh = new QCheckBox(GroupArguments, "CheckBoxMesh");
-  CheckBoxMesh->setText(tr("SMESH_SELECT_WHOLE_MESH"));
-  GroupArgumentsLayout->addMultiCellWidget(CheckBoxMesh, 1, 1, 0, 2);
-
-  // Controls for nodes selection
-  TextLabelNodes = new QLabel(GroupArguments, "TextLabelNodes");
-  TextLabelNodes->setText(tr("FIXED_NODES_IDS"));
-  GroupArgumentsLayout->addWidget(TextLabelNodes, 2, 0);
-
-  SelectNodesButton  = new QPushButton(GroupArguments, "SelectNodesButton");
-  SelectNodesButton->setText(tr("" ));
-  SelectNodesButton->setPixmap(image1);
-  SelectNodesButton->setToggleButton(FALSE);
-  GroupArgumentsLayout->addWidget(SelectNodesButton, 2, 1);
-
-  LineEditNodes  = new QLineEdit(GroupArguments, "LineEditNodes");
-  LineEditNodes->setValidator(new SMESHGUI_IdValidator(this, "validator"));
-  GroupArgumentsLayout->addWidget(LineEditNodes, 2, 2);
-
-  // Controls for method selection
-  TextLabelMethod = new QLabel(GroupArguments, "TextLabelMethod");
-  TextLabelMethod->setText(tr("METHOD" ));
-  GroupArgumentsLayout->addMultiCellWidget(TextLabelMethod, 3, 3, 0, 1);
-
-  ComboBoxMethod = new QComboBox(GroupArguments, "ComboBoxMethod");
-  GroupArgumentsLayout->addWidget(ComboBoxMethod, 3, 2);
-
-  // Controls for iteration limit defining
-  TextLabelLimit = new QLabel(GroupArguments, "TextLabelLimit");
-  TextLabelLimit->setText(tr("ITERATION_LIMIT" ));
-  GroupArgumentsLayout->addMultiCellWidget(TextLabelLimit, 4, 4, 0, 1);
-
-  SpinBox_IterationLimit = new QSpinBox(GroupArguments, "SpinBox_IterationLimit");
-  GroupArgumentsLayout->addWidget(SpinBox_IterationLimit, 4, 2);
-
-  // Controls for max. aspect ratio defining
-  TextLabelAspectRatio = new QLabel(GroupArguments, "TextLabelAspectRatio");
-  TextLabelAspectRatio->setText(tr("MAX_ASPECT_RATIO"));
-  GroupArgumentsLayout->addMultiCellWidget(TextLabelAspectRatio, 5, 5, 0, 1);
-
-  SpinBox_AspectRatio = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_AspectRatio");
-  GroupArgumentsLayout->addWidget(SpinBox_AspectRatio, 5, 2);
-
-  // Check box "Is Parametric"
-  CheckBoxParametric = new QCheckBox( GroupArguments, "CheckBoxParametric" );
-  CheckBoxParametric->setText( tr( "IS_PARAMETRIC" ) );
-  GroupArgumentsLayout->addMultiCellWidget( CheckBoxParametric, 6, 6, 0, 2 );
-
-
-  SMESHGUI_SmoothingDlgLayout->addWidget(GroupArguments, 1, 0);
-
-  /* Initialisations */
-  ComboBoxMethod->insertItem(tr("LAPLACIAN"));
-  ComboBoxMethod->insertItem(tr("CENTROIDAL"));
-
-  ComboBoxMethod->setCurrentItem(0);
-
-  CheckBoxParametric->setChecked( TRUE );
-  
-  QIntValidator* anIntValidator = new QIntValidator(SpinBox_IterationLimit);
-  SpinBox_IterationLimit->setValidator(anIntValidator);
-  SpinBox_IterationLimit->setRange(1, 999999);
-  SpinBox_IterationLimit->setValue(20);
-  SpinBox_AspectRatio->RangeStepAndValidator(0.0, +999999.999, 0.1, 3);
-  SpinBox_AspectRatio->SetValue(1.1);
-
-  GroupArguments->show();
-  myConstructorId = 0;
-  Constructor1->setChecked(TRUE);
-  
-  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
-
-  mySMESHGUI->SetActiveDialogBox(this);
-
-  // Costruction of the logical filter for the elements: mesh/sub-mesh/group
-  SMESH_TypeFilter* aMeshOrSubMeshFilter = new SMESH_TypeFilter (MESHorSUBMESH);
-  SMESH_TypeFilter* aSmeshGroupFilter    = new SMESH_TypeFilter (GROUP);
-
-  QPtrList<SUIT_SelectionFilter> aListOfFilters;
-  if (aMeshOrSubMeshFilter) aListOfFilters.append(aMeshOrSubMeshFilter);
-  if (aSmeshGroupFilter)    aListOfFilters.append(aSmeshGroupFilter);
-
-  myMeshOrSubMeshOrGroupFilter =
-    new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
-
-  Init();
-
-  /***************************************************************/
-  // signals and slots connections
-  connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-  connect(buttonApply, SIGNAL(clicked()),  this, SLOT(ClickOnApply()));
-  connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
-
-  connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(SelectNodesButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-  /* to close dialog if study change */
-  connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
-  connect(LineEditElements, SIGNAL(textChanged(const QString&)),
-           SLOT(onTextChange(const QString&)));
-  connect(LineEditNodes, SIGNAL(textChanged(const QString&)),
-           SLOT(onTextChange(const QString&)));
-  connect(CheckBoxMesh, SIGNAL(toggled(bool)),
-           SLOT(onSelectMesh(bool)));
-
-  /***************************************************************/
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show(); // displays Dialog
-}
-
-//=================================================================================
-// function : ~SMESHGUI_SmoothingDlg()
-// purpose  : destructor
-//=================================================================================
-SMESHGUI_SmoothingDlg::~SMESHGUI_SmoothingDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose  : initialization
-//=================================================================================
-void SMESHGUI_SmoothingDlg::Init()
-{
-  myBusy = false;
-
-//   ComboBoxMethod->setCurrentItem(0);
-
-//   SpinBox_IterationLimit->setValue(20);
-//   SpinBox_AspectRatio->SetValue(1.1);
-
-  myEditCurrentArgument = LineEditElements;
-  LineEditElements->setFocus();
-  LineEditElements->clear();
-  LineEditNodes->clear();
-  myElementsId = "";
-  myNbOkElements = 0;
-  myNbOkNodes = 0;
-  myActor     = 0;
-  myMesh = SMESH::SMESH_Mesh::_nil();
-
-  CheckBoxMesh->setChecked(false);
-  onSelectMesh(false);
-}
-
-//=================================================================================
-// function : ConstructorsClicked()
-// purpose  : Radio button management
-//=================================================================================
-void SMESHGUI_SmoothingDlg::ConstructorsClicked (int constructorId)
-{
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  : Called when user presses <Apply> button
-//=================================================================================
-void SMESHGUI_SmoothingDlg::ClickOnApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return;
-
-  if (myNbOkElements &&
-      (myNbOkNodes || LineEditNodes->text().stripWhiteSpace().isEmpty())) {
-    QStringList aListElementsId = QStringList::split(" ", myElementsId, false);
-    QStringList aListNodesId    = QStringList::split(" ", LineEditNodes->text(), false);
-
-    SMESH::long_array_var anElementsId = new SMESH::long_array;
-    SMESH::long_array_var aNodesId = new SMESH::long_array;
-
-    anElementsId->length(aListElementsId.count());
-    for (int i = 0; i < aListElementsId.count(); i++)
-      anElementsId[i] = aListElementsId[i].toInt();
-
-    if (myNbOkNodes) {
-      aNodesId->length(aListNodesId.count());
-      for (int i = 0; i < aListNodesId.count(); i++)
-        aNodesId[i] = aListNodesId[i].toInt();
-    } else {
-      aNodesId->length(0);
-    }
-
-    long anIterationLimit = (long)SpinBox_IterationLimit->value();
-    double aMaxAspectRatio = SpinBox_AspectRatio->GetValue();
-
-    SMESH::SMESH_MeshEditor::Smooth_Method aMethod = SMESH::SMESH_MeshEditor::LAPLACIAN_SMOOTH;
-    if (ComboBoxMethod->currentItem() > 0)
-      aMethod =  SMESH::SMESH_MeshEditor::CENTROIDAL_SMOOTH;
-
-    bool aResult = false;
-    try {
-      SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
-      QApplication::setOverrideCursor(Qt::waitCursor);
-      if ( CheckBoxParametric->isChecked() )
-       aResult = aMeshEditor->SmoothParametric(anElementsId.inout(), aNodesId.inout(),
-                                               anIterationLimit, aMaxAspectRatio, aMethod);
-      else
-       aResult = aMeshEditor->Smooth(anElementsId.inout(), aNodesId.inout(),
-                                     anIterationLimit, aMaxAspectRatio, aMethod);
-      QApplication::restoreOverrideCursor();
-    } catch (...) {
-    }
-
-    if (aResult) {
-      Handle(SALOME_InteractiveObject) anIO = myActor->getIO();
-
-      SALOME_ListIO aList;
-      aList.Append(anIO);
-      mySelectionMgr->setSelectedObjects(aList, false);
-      SMESH::UpdateView();
-      Init();
-    }
-  }
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  : Called when user presses <OK> button
-//=================================================================================
-void SMESHGUI_SmoothingDlg::ClickOnOk()
-{
-  ClickOnApply();
-  ClickOnCancel();
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  : Called when dialog box is closed
-//=================================================================================
-void SMESHGUI_SmoothingDlg::ClickOnCancel()
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySelectionMgr->clearFilters();
-  mySelectionMgr->clearSelected();
-  SMESH::SetPickable(); // ???
-  SMESH::SetPointRepresentation(false);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-  mySMESHGUI->ResetState();
-  reject();
-}
-
-//=======================================================================
-// function : onTextChange()
-// purpose  :
-//=======================================================================
-void SMESHGUI_SmoothingDlg::onTextChange (const QString& theNewText)
-{
-  QLineEdit* send = (QLineEdit*)sender();
-
-  // return if busy
-  if (myBusy) return;
-
-  // set busy flag
-  myBusy = true;
-
-  if (send == LineEditElements)
-    myNbOkElements = 0;
-  else if (send == LineEditNodes)
-    myNbOkNodes = 0;
-
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-
-  // hilight entered elements/nodes
-  SMDS_Mesh* aMesh = 0;
-  if (myActor)
-    aMesh = myActor->GetObject()->GetMesh();
-
-  if (aMesh) {
-    
-    QStringList aListId = QStringList::split(" ", theNewText, false);
-
-    if (send == LineEditElements) {
-      const Handle(SALOME_InteractiveObject)& anIO = myActor->getIO();
-      TColStd_MapOfInteger newIndices;
-      for (int i = 0; i < aListId.count(); i++) {
-       const SMDS_MeshElement * e = aMesh->FindElement(aListId[ i ].toInt());
-       if (e)
-         newIndices.Add(e->GetID());
-       myNbOkElements++;
-      }
-      mySelector->AddOrRemoveIndex(anIO, newIndices, false);
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->highlight( anIO, true, true );
-      myElementsId = theNewText;
-
-    } else if (send == LineEditNodes) {
-      TColStd_MapOfInteger newIndices;
-      
-      for (int i = 0; i < aListId.count(); i++) {
-       const SMDS_MeshNode * n = aMesh->FindNode(aListId[ i ].toInt());
-       if (n)
-         newIndices.Add(n->GetID());
-       myNbOkNodes++;
-      }
-      mySelector->AddOrRemoveIndex(myActor->getIO(), newIndices, false);
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->highlight( myActor->getIO(), true, true );
-    }
-  }
-
-  if (myNbOkElements && (myNbOkNodes || LineEditNodes->text().stripWhiteSpace().isEmpty())) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
-
-  myBusy = false;
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_SmoothingDlg::SelectionIntoArgument()
-{
-  if (myBusy) return;
-
-  // clear
-  myActor = 0;
-  QString aString = "";
-
-  myBusy = true;
-  if (myEditCurrentArgument == (QWidget*)LineEditElements) {
-    LineEditElements->setText(aString);
-    myNbOkElements = 0;
-    buttonOk->setEnabled(false);
-    buttonApply->setEnabled(false);
-  }
-  myBusy = false;
-
-  if (!GroupButtons->isEnabled()) // inactive
-    return;
-
-  // get selected mesh
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
-  int nbSel = aList.Extent();
-  if (nbSel != 1)
-    return;
-
-  Handle(SALOME_InteractiveObject) IO = aList.First();
-  myMesh = SMESH::GetMeshByIO(IO);
-  if (myMesh->_is_nil())
-    return;
-
-  myActor = SMESH::FindActorByObject(myMesh);
-  if (!myActor)
-    return;
-
-  int aNbUnits = 0;
-
-  if (myEditCurrentArgument == LineEditElements) {
-    myElementsId = "";
-
-    if (CheckBoxMesh->isChecked()) {
-      SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
-
-      if (!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) { //MESH
-        // get IDs from mesh
-        SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
-        if (!aSMDSMesh)
-          return;
-
-        for (int i = aSMDSMesh->MinElementID(); i <= aSMDSMesh->MaxElementID(); i++ ) {
-          const SMDS_MeshElement * e = aSMDSMesh->FindElement(i);
-          if (e) {
-            myElementsId += QString(" %1").arg(i);
-            aNbUnits++;
-          }
-        }
-      } else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) { //SUBMESH
-        // get submesh
-        SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO);
-
-        // get IDs from submesh
-        SMESH::long_array_var anElementsIds = new SMESH::long_array;
-        anElementsIds = aSubMesh->GetElementsId();
-        for (int i = 0; i < anElementsIds->length(); i++) {
-          myElementsId += QString(" %1").arg(anElementsIds[i]);
-        }
-        aNbUnits = anElementsIds->length();
-      } else { // GROUP
-        // get smesh group
-        SMESH::SMESH_GroupBase_var aGroup =
-          SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
-        if (aGroup->_is_nil())
-          return;
-
-        // get IDs from smesh group
-        SMESH::long_array_var anElementsIds = new SMESH::long_array;
-        anElementsIds = aGroup->GetListOfID();
-        for (int i = 0; i < anElementsIds->length(); i++) {
-          myElementsId += QString(" %1").arg(anElementsIds[i]);
-        }
-        aNbUnits = anElementsIds->length();
-      }
-    } else {
-      aNbUnits = SMESH::GetNameOfSelectedElements(mySelector, myActor->getIO(), aString);
-      myElementsId = aString;
-    }
-  } else if (myEditCurrentArgument == LineEditNodes && !myMesh->_is_nil() && myActor) {
-    myNbOkNodes = 0;
-    aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, myActor->getIO(), aString);
-  } else {
-  }
-
-  if (aNbUnits < 1)
-    return;
-
-  myBusy = true;
-  myEditCurrentArgument->setText(aString);
-  myBusy = false;
-
-  // OK
-  if (myEditCurrentArgument == LineEditElements)
-    myNbOkElements = true;
-  else if (myEditCurrentArgument == LineEditNodes)
-    myNbOkNodes = true;
-
-  if (myNbOkElements) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SmoothingDlg::SetEditCurrentArgument()
-{
-  QPushButton* send = (QPushButton*)sender();
-
-  switch (myConstructorId) {
-  case 0: /* default constructor */
-    {
-      disconnect(mySelectionMgr, 0, this, 0);
-      mySelectionMgr->clearSelected();
-      mySelectionMgr->clearFilters();
-
-      if (send == SelectElementsButton) {
-        myEditCurrentArgument = LineEditElements;
-        SMESH::SetPointRepresentation(false);
-        if (CheckBoxMesh->isChecked()) {
-          mySelectionMgr->setSelectionModes(ActorSelection);
-          mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter);
-        } else {
-         if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-           aViewWindow->SetSelectionMode(CellSelection);
-       }
-      }        else if (send == SelectNodesButton) {
-        myEditCurrentArgument = LineEditNodes;
-        SMESH::SetPointRepresentation(true);
-       if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-         aViewWindow->SetSelectionMode(NodeSelection);
-      }
-
-      myEditCurrentArgument->setFocus();
-      connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-      SelectionIntoArgument();
-      break;
-    }
-  }
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  : Deactivates this dialog
-//=================================================================================
-void SMESHGUI_SmoothingDlg::DeactivateActiveDialog()
-{
-  if (GroupConstructors->isEnabled()) {
-    GroupConstructors->setEnabled(false);
-    GroupArguments->setEnabled(false);
-    GroupButtons->setEnabled(false);
-    mySMESHGUI->ResetState();
-    mySMESHGUI->SetActiveDialogBox(0);
-  }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  : Activates this dialog
-//=================================================================================
-void SMESHGUI_SmoothingDlg::ActivateThisDialog()
-{
-  // Emit a signal to deactivate the active dialog
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupConstructors->setEnabled(true);
-  GroupArguments->setEnabled(true);
-  GroupButtons->setEnabled(true);
-
-  mySMESHGUI->SetActiveDialogBox(this);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(CellSelection);
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  : Mouse enter event
-//=================================================================================
-void SMESHGUI_SmoothingDlg::enterEvent (QEvent*)
-{
-  if (!GroupConstructors->isEnabled())
-    ActivateThisDialog();
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SmoothingDlg::closeEvent (QCloseEvent*)
-{
-  /* same than click on cancel button */
-  this->ClickOnCancel();
-}
-
-//=======================================================================
-// function : hideEvent()
-// purpose  : caused by ESC key
-//=======================================================================
-void SMESHGUI_SmoothingDlg::hideEvent (QHideEvent*)
-{
-  if (!isMinimized())
-    ClickOnCancel();
-}
-
-//=======================================================================
-// function : onSelectMesh()
-// purpose  :
-//=======================================================================
-void SMESHGUI_SmoothingDlg::onSelectMesh (bool toSelectMesh)
-{
-  if (toSelectMesh)
-    TextLabelElements->setText(tr("SMESH_NAME"));
-  else
-    TextLabelElements->setText(tr("SMESH_ID_ELEMENTS"));
-
-  if (myEditCurrentArgument != LineEditElements) {
-    LineEditElements->clear();
-    return;
-  }
-
-  mySelectionMgr->clearFilters();
-  SMESH::SetPointRepresentation(false);
-
-  if (toSelectMesh) {
-    mySelectionMgr->setSelectionModes(ActorSelection);
-    mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter);
-    LineEditElements->setReadOnly(true);
-  } else {
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(CellSelection);
-    LineEditElements->setReadOnly(false);
-    onTextChange(LineEditElements->text());
-  }
-
-  SelectionIntoArgument();
-}
diff --git a/src/SMESHGUI/SMESHGUI_SmoothingDlg.h b/src/SMESHGUI/SMESHGUI_SmoothingDlg.h
deleted file mode 100644 (file)
index 32dc805..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_SmoothingDlg.h
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header: 
-
-#ifndef DIALOGBOX_SMOOTHING_H
-#define DIALOGBOX_SMOOTHING_H
-
-#include "SalomeApp_SelectionMgr.h"
-
-#include "SMESH_LogicalFilter.hxx"
-
-// QT Includes
-#include <qdialog.h>
-
-class QGridLayout; 
-class QButtonGroup;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-class QComboBox;
-class QCheckBox;
-class QSpinBox;
-class SMESHGUI_SpinBox;
-class SMESHGUI;
-class SMESH_Actor;
-class SVTK_ViewWindow;
-class SVTK_Selector;
-
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-
-//=================================================================================
-// class    : SMESHGUI_SmoothingDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_SmoothingDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_SmoothingDlg( SMESHGUI*,
-                          const char* name = 0,
-                          bool modal = FALSE,
-                          WFlags fl = 0);
-    ~SMESHGUI_SmoothingDlg();
-
-private:
-
-    void Init();
-    void closeEvent(QCloseEvent*);
-    void enterEvent (QEvent*);                             /* mouse enter the QWidget */
-    void hideEvent (QHideEvent*);                          /* ESC key */
-
-    SMESHGUI*                     mySMESHGUI;              /* Current SMESHGUI object */
-    SalomeApp_SelectionMgr*       mySelectionMgr;          /* User shape selection */
-    QString                       myElementsId;
-    int                           myNbOkElements;          /* to check when elements are defined */
-    int                           myNbOkNodes;             /* to check when fixed nodes are defined */
-    int                           myConstructorId;         /* Current constructor id = radio button id */
-    QLineEdit*                    myEditCurrentArgument;   /* Current  LineEdit */
-    SVTK_Selector*                mySelector;
-
-    bool                          myBusy;
-    SMESH::SMESH_Mesh_var         myMesh;
-    SMESH_Actor*                  myActor;
-    SMESH_LogicalFilter*          myMeshOrSubMeshOrGroupFilter;
-
-    QButtonGroup* GroupConstructors;
-    QRadioButton* Constructor1;
-    QGroupBox* GroupButtons;
-    QPushButton* buttonOk;
-    QPushButton* buttonCancel;
-    QPushButton* buttonApply;
-    QGroupBox* GroupArguments;
-    QLabel* TextLabelElements;
-    QPushButton* SelectElementsButton;
-    QLineEdit* LineEditElements;
-    QCheckBox* CheckBoxMesh;
-    QLabel* TextLabelNodes;
-    QPushButton* SelectNodesButton;
-    QLineEdit* LineEditNodes;
-    QLabel* TextLabelMethod;
-    QComboBox* ComboBoxMethod;
-    QLabel* TextLabelLimit;
-    QSpinBox* SpinBox_IterationLimit;
-    QLabel* TextLabelAspectRatio;
-    SMESHGUI_SpinBox* SpinBox_AspectRatio;
-    QCheckBox       * CheckBoxParametric;
-    
-private slots:
-
-    void ConstructorsClicked(int constructorId);
-    void ClickOnOk();
-    void ClickOnCancel();
-    void ClickOnApply();
-    void SetEditCurrentArgument() ;
-    void SelectionIntoArgument() ;
-    void DeactivateActiveDialog() ;
-    void ActivateThisDialog() ;
-    void onTextChange(const QString&);
-    void onSelectMesh(bool toSelectMesh);
-
-protected:
-    QGridLayout* SMESHGUI_SmoothingDlgLayout;
-    QGridLayout* GroupConstructorsLayout;
-    QGridLayout* GroupButtonsLayout;
-    QGridLayout* GroupArgumentsLayout;
-};
-
-#endif // DIALOGBOX_SMOOTHING_H
diff --git a/src/SMESHGUI/SMESHGUI_SpinBox.cxx b/src/SMESHGUI/SMESHGUI_SpinBox.cxx
deleted file mode 100644 (file)
index 54c247a..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_SpinBox.cxx
-//  Author : Lucien PIGNOLONI
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_SpinBox.h"
-#include "SMESHGUI.h"
-
-#include <qvalidator.h>
-#include <qlineedit.h>
-
-using namespace std;
-
-//=================================================================================
-// class    : SMESHGUI_SpinBox()
-// purpose  : constructor of specific widget accepting floats in double precision.
-//=================================================================================
-SMESHGUI_SpinBox::SMESHGUI_SpinBox (QWidget* parent, const char* name)
-     : QtxDblSpinBox(parent, name)
-{
-}
-
-//=================================================================================
-// function : SetStep()  [SLOT]
-// purpose  :
-//=================================================================================
-void SMESHGUI_SpinBox::SetStep (double newStep)
-{
-  setLineStep(newStep);
-}
-
-//=================================================================================
-// function : ~SMESHGUI_SpinBox()
-// purpose  : destructor
-//=================================================================================
-SMESHGUI_SpinBox::~SMESHGUI_SpinBox()
-{
-}
-
-//=================================================================================
-// function : SetValue()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SpinBox::SetValue (double v)
-{
-  setValue(v);
-  editor()->setCursorPosition( 0 );
-}
-
-//=================================================================================
-// function : GetValue()
-// purpose  : returns a double
-//=================================================================================
-double SMESHGUI_SpinBox::GetValue()
-{
-  return value();
-}
-
-//=================================================================================
-// function : GetString()
-// purpose  : returns a QString
-//=================================================================================
-QString SMESHGUI_SpinBox::GetString()
-{
-  return cleanText();
-}
-
-//=================================================================================
-// function : RangeStepAndValidator()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SpinBox::RangeStepAndValidator
-  (double min, double max, double step, unsigned short decimals)
-{
-  setRange(min, max);
-  setLineStep(step);
-  ((QDoubleValidator*)validator())->setRange(min, max, decimals);
-}
diff --git a/src/SMESHGUI/SMESHGUI_SpinBox.h b/src/SMESHGUI/SMESHGUI_SpinBox.h
deleted file mode 100644 (file)
index 8655e4d..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_SpinBox.h
-//  Author : Lucien PIGNOLONI
-//  Module : SMESH
-//  $Header$
-
-#ifndef  SMESH_SPINBOX_H
-#define  SMESH_SPINBOX_H
-
-#include <QtxDblSpinBox.h>
-
-//=================================================================================
-// class    : SMESHGUI_SpinBox
-// purpose  : Derivated from QtxDblSpinBox class 
-//=================================================================================
-class SMESHGUI_SpinBox : public QtxDblSpinBox
-{
-  Q_OBJECT
-
-public:
-  SMESHGUI_SpinBox (QWidget* parent, const char* name = 0);
-  ~SMESHGUI_SpinBox();
-
-  void       RangeStepAndValidator (double         min = -1000000.0,
-                                   double         max = +1000000.0,
-                                   double         step = 100.0,
-                                   unsigned short decimals = 3);
-  void       SetValue (double v);
-  double     GetValue();
-  QString    GetString();
-  QLineEdit* editor() { return QtxDblSpinBox::editor(); } 
-
-public slots:
-  void       SetStep (double newStep);
-};
-#endif //  SMESH_SPINBOX_H
diff --git a/src/SMESHGUI/SMESHGUI_StandardMeshInfosDlg.cxx b/src/SMESHGUI/SMESHGUI_StandardMeshInfosDlg.cxx
deleted file mode 100644 (file)
index 8960524..0000000
+++ /dev/null
@@ -1,446 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_StandardMeshInfosDlg.cxx
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_StandardMeshInfosDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_MeshUtils.h"
-
-#include "SMESH.hxx"
-#include "SMESH_TypeFilter.hxx"
-
-#include "SALOMEDSClient_Study.hxx"
-#include "SALOMEDSClient_SObject.hxx"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_Session.h"
-#include "SUIT_OverrideCursor.h"
-
-#include "SalomeApp_SelectionMgr.h"
-#include "SALOME_ListIO.hxx"
-
-#include "utilities.h"
-
-// QT Includes
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlayout.h>
-#include <qlineedit.h>
-#include <qtextbrowser.h>
-#include <qmap.h>
-#include <qpushbutton.h>
-
-// IDL Headers
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-#include CORBA_SERVER_HEADER(SMESH_Group)
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-
-using namespace std;
-
-
-//=================================================================================
-/*!
- *  SMESHGUI_StandardMeshInfosDlg::SMESHGUI_StandardMeshInfosDlg
- *
- *  Constructor
- */
-//=================================================================================
-SMESHGUI_StandardMeshInfosDlg::SMESHGUI_StandardMeshInfosDlg( SMESHGUI* theModule, const char* name,
-                                                              bool modal, WFlags fl)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-                WStyle_Title | WStyle_SysMenu | WDestructiveClose),
-     mySMESHGUI( theModule ),
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-  if (!name)
-      setName("SMESHGUI_StandardMeshInfosDlg");
-  setCaption(tr("SMESH_STANDARD_MESHINFO_TITLE" ));
-  setSizeGripEnabled(TRUE);
-
-  myStartSelection = true;
-  myIsActiveWindow = true;
-
-  // dialog layout
-  QGridLayout* aDlgLayout = new QGridLayout(this);
-  aDlgLayout->setSpacing(6);
-  aDlgLayout->setMargin(11);
-
-  // mesh group box
-  myMeshGroup = new QGroupBox(this, "myMeshGroup");
-  myMeshGroup->setTitle(tr("SMESH_MESH"));
-  myMeshGroup->setColumnLayout(0, Qt::Vertical);
-  myMeshGroup->layout()->setSpacing(0);
-  myMeshGroup->layout()->setMargin(0);
-  QGridLayout* myMeshGroupLayout = new QGridLayout(myMeshGroup->layout());
-  myMeshGroupLayout->setAlignment(Qt::AlignTop);
-  myMeshGroupLayout->setSpacing(6);
-  myMeshGroupLayout->setMargin(11);
-
-  // select button, label and line edit with mesh name
-  myNameLab = new QLabel(myMeshGroup, "myNameLab");
-  myNameLab->setText(tr("SMESH_NAME" ));
-  myMeshGroupLayout->addWidget(myNameLab, 0, 0);
-
-  QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("SMESH",tr("ICON_SELECT")));
-  mySelectBtn = new QPushButton(myMeshGroup, "mySelectBtn");
-  mySelectBtn->setPixmap(image0);
-  mySelectBtn->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
-  myMeshGroupLayout->addWidget(mySelectBtn, 0, 1);
-
-  myMeshLine = new QLineEdit(myMeshGroup, "myMeshLine");
-  myMeshGroupLayout->addWidget(myMeshLine, 0, 2);
-
-  aDlgLayout->addWidget(myMeshGroup, 0, 0);
-
-  // information group box
-  myInfoGroup  = new QGroupBox(this, "myInfoGroup");
-  myInfoGroup->setTitle(tr("SMESH_INFORMATION"));
-  myInfoGroup->setColumnLayout(0, Qt::Vertical);
-  myInfoGroup->layout()->setSpacing(0);
-  myInfoGroup->layout()->setMargin(0);
-  QGridLayout* myInfoGroupLayout = new QGridLayout(myInfoGroup->layout());
-  myInfoGroupLayout->setAlignment(Qt::AlignTop);
-  myInfoGroupLayout->setSpacing(6);
-  myInfoGroupLayout->setMargin(11);
-
-  // information text browser
-  myInfo = new QTextBrowser(myInfoGroup, "myInfo");
-  myInfoGroupLayout->addWidget(myInfo, 0, 0);
-
-  aDlgLayout->addWidget(myInfoGroup, 1, 0);
-
-  // buttons group
-  myButtonsGroup = new QGroupBox(this, "myButtonsGroup");
-  myButtonsGroup->setColumnLayout(0, Qt::Vertical);
-  myButtonsGroup->layout()->setSpacing(0);  myButtonsGroup->layout()->setMargin(0);
-  QHBoxLayout* myButtonsGroupLayout = new QHBoxLayout(myButtonsGroup->layout());
-  myButtonsGroupLayout->setAlignment(Qt::AlignTop);
-  myButtonsGroupLayout->setSpacing(6); myButtonsGroupLayout->setMargin(11);
-
-  // buttons --> OK button
-  myOkBtn = new QPushButton(tr("SMESH_BUT_OK" ), myButtonsGroup, "myOkBtn");
-  myOkBtn->setAutoDefault(TRUE); myOkBtn->setDefault(TRUE);
-  myButtonsGroupLayout->addStretch();
-  myButtonsGroupLayout->addWidget(myOkBtn);
-  myButtonsGroupLayout->addStretch();
-
-  aDlgLayout->addWidget(myButtonsGroup, 2, 0);
-
-  mySMESHGUI->SetActiveDialogBox(this);
-
-  // connect signals
-  connect( myOkBtn,         SIGNAL(clicked()),                      this, SLOT(close()));
-  connect( mySelectBtn,     SIGNAL(clicked()),                      this, SLOT(onStartSelection()));
-  connect( mySMESHGUI,      SIGNAL(SignalCloseAllDialogs()),        this, SLOT(close()));
-  connect( mySMESHGUI,      SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect( mySelectionMgr,  SIGNAL(currentSelectionChanged()),      this, SLOT(onSelectionChanged()));
-
-  // resize and move dialog, then show
-  this->setMinimumSize(270, 428);
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show();
-
-  // init dialog with current selection
-  myMeshFilter = new SMESH_TypeFilter (MESH);
-  mySelectionMgr->installFilter(myMeshFilter);
-  onSelectionChanged();
-}
-
-//=================================================================================
-/*!
- *  SMESHGUI_StandardMeshInfosDlg::~SMESHGUI_StandardMeshInfosDlg
- *
- *  Destructor
- */
-//=================================================================================
-SMESHGUI_StandardMeshInfosDlg::~SMESHGUI_StandardMeshInfosDlg()
-{
-}
-
-//=================================================================================
-/*!
- *  SMESHGUI_StandardMeshInfosDlg::DumpMeshInfos
- */
-//=================================================================================
-void SMESHGUI_StandardMeshInfosDlg::DumpMeshInfos()
-{
-  SUIT_OverrideCursor wc;
-
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList);
-
-  int nbSel = aList.Extent();
-  myInfo->clear();
-  if (nbSel == 1) {
-    myStartSelection = false;
-    myMeshLine->setText("");
-    SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO(aList.First());
-
-    if (!aMesh->_is_nil()) {
-      QString aName, anInfo;
-      SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aName);
-      myMeshLine->setText(aName);
-      int aNbNodes =   (int)aMesh->NbNodes();
-      int aNbEdges =   (int)aMesh->NbEdges();
-      int aNbFaces =   (int)aMesh->NbFaces();
-      int aNbVolumes = (int)aMesh->NbVolumes();
-
-      int aDimension = 0;
-      double aNbDimElements = 0;
-      if (aNbVolumes > 0) {
-       aNbDimElements = aNbVolumes;
-       aDimension = 3;
-      }
-      else if(aNbFaces > 0) {
-       aNbDimElements = aNbFaces;
-       aDimension = 2;
-      }
-      else if(aNbEdges > 0) {
-       aNbDimElements = aNbEdges;
-       aDimension = 1;
-      }
-      else if(aNbNodes > 0) {
-       aNbDimElements = aNbNodes;
-       aDimension = 0;
-      }
-
-      // information about the mesh
-      anInfo.append(QString("Nb of element of dimension %1:<b> %2</b><br>").arg(aDimension).arg(aNbDimElements));
-      anInfo.append(QString("Nb of nodes: <b>%1</b><br><br>").arg(aNbNodes));
-
-      // information about the groups of the mesh
-      _PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
-      _PTR(SObject) aMeshSO = SMESH::FindSObject(aMesh);
-      _PTR(SObject) anObj;
-
-      bool hasGroup = false;
-
-      // info about groups on nodes
-      aMeshSO->FindSubObject(Tag_NodeGroups, anObj);
-      if (anObj) {
-        _PTR(ChildIterator) it = aStudy->NewChildIterator(anObj);
-       if (it->More()) {
-          anInfo.append(QString("Groups:<br><br>"));
-          hasGroup = true;
-        }
-       for (; it->More(); it->Next()) {
-          _PTR(SObject) subObj = it->Value();
-          CORBA::Object_var anObject = SMESH::SObjectToObject(subObj);
-         SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(anObject);
-         if (!aGroup->_is_nil()) {
-            anInfo.append(QString("-   <b>%1</b><br>").arg(aGroup->GetName()));
-            anInfo.append(QString("%1<br>").arg("on nodes"));
-            anInfo.append(QString("%1<br>").arg(aGroup->Size()));
-            // check if the group based on geometry
-            SMESH::SMESH_GroupOnGeom_var aGroupOnGeom = SMESH::SMESH_GroupOnGeom::_narrow(aGroup);
-            if (!aGroupOnGeom->_is_nil()) {
-              GEOM::GEOM_Object_var aGroupMainShape = aGroupOnGeom->GetShape();
-              QString aShapeName = "<unknown>";
-              _PTR(SObject) aGeomObj, aRef;
-              if (subObj->FindSubObject(1, aGeomObj) &&  aGeomObj->ReferencedObject(aRef))
-                aShapeName = aRef->GetName().c_str();
-              anInfo.append(QString("based on <i>%1</i> geometry object<br><br>").arg(aShapeName));
-            } else {
-              anInfo.append(QString("<br>"));
-            }
-          }
-       }
-      }
-
-      // info about groups on edges
-      anObj.reset();
-      aMeshSO->FindSubObject(Tag_EdgeGroups, anObj);
-      if (anObj) {
-        _PTR(ChildIterator) it = aStudy->NewChildIterator(anObj);
-        if (!hasGroup && it->More()) {
-          anInfo.append(QString("Groups:<br><br>"));
-          hasGroup = true;
-        }
-       for (; it->More(); it->Next()) {
-          _PTR(SObject) subObj = it->Value();
-          CORBA::Object_var anObject = SMESH::SObjectToObject(subObj);
-         SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(anObject);
-         if (!aGroup->_is_nil()) {
-            anInfo.append(QString("-   <b>%1</b><br>").arg(aGroup->GetName()));
-            anInfo.append(QString("%1<br>").arg("on edges"));
-            anInfo.append(QString("%1<br>").arg(aGroup->Size()));
-            // check if the group based on geometry
-            SMESH::SMESH_GroupOnGeom_var aGroupOnGeom = SMESH::SMESH_GroupOnGeom::_narrow(aGroup);
-            if (!aGroupOnGeom->_is_nil()) {
-              GEOM::GEOM_Object_var aGroupMainShape = aGroupOnGeom->GetShape();
-              QString aShapeName = "<unknown>";
-              _PTR(SObject) aGeomObj, aRef;
-              if (subObj->FindSubObject(1, aGeomObj) && aGeomObj->ReferencedObject(aRef))
-                aShapeName = aRef->GetName().c_str();
-              anInfo.append(QString("based on <i>%1</i> geometry object<br><br>").arg(aShapeName));
-            } else {
-              anInfo.append(QString("<br>"));
-            }
-          }
-       }
-      }
-
-      // info about groups on faces
-      anObj.reset();
-      aMeshSO->FindSubObject(Tag_FaceGroups , anObj);
-      if (anObj) {
-        _PTR(ChildIterator) it = aStudy->NewChildIterator(anObj);
-       if (!hasGroup && it->More()) {
-          anInfo.append(QString("Groups:<br><br>"));
-          hasGroup = true;
-        }
-       for (; it->More(); it->Next()) {
-          _PTR(SObject) subObj = it->Value();
-          CORBA::Object_var anObject = SMESH::SObjectToObject(subObj);
-         SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(anObject);
-         if (!aGroup->_is_nil()) {
-            anInfo.append(QString("-   <b>%1</b><br>").arg(aGroup->GetName()));
-            anInfo.append(QString("%1<br>").arg("on faces"));
-            anInfo.append(QString("%1<br>").arg(aGroup->Size()));
-            // check if the group based on geometry
-            SMESH::SMESH_GroupOnGeom_var aGroupOnGeom = SMESH::SMESH_GroupOnGeom::_narrow(aGroup);
-            if (!aGroupOnGeom->_is_nil()) {
-              GEOM::GEOM_Object_var aGroupMainShape = aGroupOnGeom->GetShape();
-              QString aShapeName = "<unknown>";
-              _PTR(SObject) aGeomObj, aRef;
-              if (subObj->FindSubObject(1, aGeomObj) && aGeomObj->ReferencedObject(aRef))
-                aShapeName = aRef->GetName().c_str();
-              anInfo.append(QString("based on <i>%1</i> geometry object<br><br>").arg(aShapeName));
-            } else {
-              anInfo.append(QString("<br>"));
-            }
-          }
-       }
-      }
-
-      // info about groups on volumes
-      anObj.reset();
-      aMeshSO->FindSubObject(Tag_VolumeGroups, anObj);
-      if (anObj) {
-        _PTR(ChildIterator) it = aStudy->NewChildIterator(anObj);
-       if (!hasGroup && it->More())
-          anInfo.append(QString("Groups:<br>"));
-       for (; it->More(); it->Next()) {
-          _PTR(SObject) subObj = it->Value();
-          CORBA::Object_var anObject = SMESH::SObjectToObject(subObj);
-         SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(anObject);
-         if (!aGroup->_is_nil()) {
-            anInfo.append(QString("-   <b>%1</b><br>").arg(aGroup->GetName()));
-            anInfo.append(QString("%1<br>").arg("on volumes"));
-            anInfo.append(QString("%1<br>").arg(aGroup->Size()));
-            // check if the group based on geometry
-            SMESH::SMESH_GroupOnGeom_var aGroupOnGeom = SMESH::SMESH_GroupOnGeom::_narrow(aGroup);
-            if (!aGroupOnGeom->_is_nil()) {
-              GEOM::GEOM_Object_var aGroupMainShape = aGroupOnGeom->GetShape();
-              QString aShapeName = "<unknown>";
-              _PTR(SObject) aGeomObj, aRef;
-              if (subObj->FindSubObject(1, aGeomObj) &&  aGeomObj->ReferencedObject(aRef))
-                aShapeName = aRef->GetName().c_str();
-              anInfo.append(QString("based on <i>%1</i> geometry object<br><br>").arg(aShapeName));
-            } else {
-              anInfo.append(QString("<br>"));
-            }
-          }
-       }
-      }
-
-      myInfo->setText(anInfo);
-      return;
-    }
-  }
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection has changed
-//=================================================================================
-void SMESHGUI_StandardMeshInfosDlg::onSelectionChanged()
-{
-  if (myStartSelection)
-    DumpMeshInfos();
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_StandardMeshInfosDlg::closeEvent (QCloseEvent* e)
-{
-  mySelectionMgr->clearFilters();
-  mySMESHGUI->ResetState();
-  QDialog::closeEvent(e);
-}
-
-//=================================================================================
-// function : windowActivationChange()
-// purpose  : called when window is activated/deactivated
-//=================================================================================
-void SMESHGUI_StandardMeshInfosDlg::windowActivationChange (bool oldActive)
-{
-  QDialog::windowActivationChange(oldActive);
-  if (isActiveWindow() && myIsActiveWindow != isActiveWindow())
-    ActivateThisDialog();
-  myIsActiveWindow = isActiveWindow();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_StandardMeshInfosDlg::DeactivateActiveDialog()
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_StandardMeshInfosDlg::ActivateThisDialog()
-{
-  /* Emit a signal to deactivate any active dialog */
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(onSelectionChanged()));
-}
-
-//=================================================================================
-// function : onStartSelection()
-// purpose  : starts selection
-//=================================================================================
-void SMESHGUI_StandardMeshInfosDlg::onStartSelection()
-{
-  myStartSelection = true;
-  mySelectionMgr->installFilter(myMeshFilter);
-  myMeshLine->setText(tr("Select a mesh"));
-  onSelectionChanged();
-  myStartSelection = true;
-}
diff --git a/src/SMESHGUI/SMESHGUI_StandardMeshInfosDlg.h b/src/SMESHGUI/SMESHGUI_StandardMeshInfosDlg.h
deleted file mode 100644 (file)
index 7fcbdc2..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_StandardMeshInfosDlg.h
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header: 
-
-#ifndef SMESHGUI_STANDARDMESHINFOSDLG_H
-#define SMESHGUI_STANDARDMESHINFOSDLG_H
-
-//#include "SMESH_TypeFilter.hxx"
-#include "SUIT_SelectionFilter.h"
-
-// QT Includes
-#include <qdialog.h>
-
-class QGroupBox;
-class QLabel;
-class QPushButton;
-class QLineEdit;
-class QTextBrowser;
-class SalomeApp_SelectionMgr;
-class SMESHGUI;
-
-
-class SMESHGUI_StandardMeshInfosDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_StandardMeshInfosDlg( SMESHGUI*, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
-    ~SMESHGUI_StandardMeshInfosDlg();
-
-protected:
-    void closeEvent( QCloseEvent* e );
-    void windowActivationChange( bool oldActive );
-    void DumpMeshInfos();
-
-private slots:
-    void onSelectionChanged();
-    void DeactivateActiveDialog() ;
-    void ActivateThisDialog();
-    void onStartSelection();
-
-private:
-    SMESHGUI*                mySMESHGUI;
-    SalomeApp_SelectionMgr*  mySelectionMgr; 
-    bool                     myStartSelection;
-    bool                     myIsActiveWindow;
-    
-    //Handle(SMESH_TypeFilter) myMeshFilter;
-    SUIT_SelectionFilter*    myMeshFilter;
-
-    QLabel*       myNameLab;
-    QPushButton*  mySelectBtn;
-    QLineEdit*    myMeshLine;
-    
-    QTextBrowser* myInfo;
-    
-    QGroupBox*    myMeshGroup;
-    QGroupBox*    myInfoGroup;
-    
-    QGroupBox*    myButtonsGroup;
-    QPushButton*  myOkBtn;
-};
-
-#endif // SMESHGUI_STANDARDMESHINFOSDLG_H
diff --git a/src/SMESHGUI/SMESHGUI_Swig.cxx b/src/SMESHGUI/SMESHGUI_Swig.cxx
deleted file mode 100644 (file)
index d8a0805..0000000
+++ /dev/null
@@ -1,485 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Swig.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "SMESHGUI_Swig.hxx"
-
-#include "Utils_ORB_INIT.hxx"
-#include "Utils_SINGLETON.hxx"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_GEOMGenUtils.h"
-
-// SALOME Includes
-#include "SUIT_ResourceMgr.h"
-#include "SUIT_Session.h"
-
-#include "SALOMEDS_SObject.hxx"
-
-#include "SalomeApp_Application.h"
-
-#include "utilities.h"
-
-// Open CASCADE Includes
-#include <TopoDS.hxx>
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Gen)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-#include CORBA_SERVER_HEADER(SMESH_Hypothesis)
-
-static CORBA::ORB_var _orb;
-
-static CORBA::Object_ptr StringToObject (const char* ior)
-{
-  return _orb->string_to_object(ior);
-}
-
-SMESH_Swig::SMESH_Swig()
-{
-  MESSAGE("Constructeur");
-  setOrb();
-}
-
-void SMESH_Swig::Init(int studyID)
-{
-  MESSAGE("Init");
-  SMESH::SMESH_Gen_var CompMesh = SMESHGUI::GetSMESHGen();
-  GEOM::GEOM_Gen_var CompGeom = SMESH::GetGEOMGen();
-
-  SUIT_ResourceMgr* resMgr = SMESHGUI::resourceMgr();
-  if ( resMgr ) {
-    resMgr->loadLanguage( QString::null, "en" );
-    /*QString msg;
-    if (!resMgr->loadResources( "SMESH", msg ))
-      MESSAGE ( msg )*/
-  }
-
-  SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( SUIT_Session::session()->activeApplication() );
-  if( !app )
-    return;
-
-  CORBA::Object_var obj = app->namingService()->Resolve("/myStudyManager");
-  SALOMEDS::StudyManager_var myStudyMgr = SALOMEDS::StudyManager::_narrow(obj);
-  myStudy = myStudyMgr->GetStudyByID(studyID);
-
-  CompMesh->SetCurrentStudy( myStudy.in() ); 
-
-  myStudyBuilder = myStudy->NewBuilder();
-  SALOMEDS::GenericAttribute_var anAttr;
-  SALOMEDS::AttributeName_var    aName;
-  SALOMEDS::AttributePixMap_var  aPixmap;
-
-  // See return value of SMESH::SMESH_Gen::ComponentDataType()
-  SALOMEDS::SComponent_var father = myStudy->FindComponent("SMESH");
-
-  if (father->_is_nil()) {
-    bool aLocked = myStudy->GetProperties()->IsLocked();
-    if (aLocked) myStudy->GetProperties()->SetLocked(false);
-    father = myStudyBuilder->NewComponent("SMESH");
-    anAttr = myStudyBuilder->FindOrCreateAttribute(father, "AttributeName");
-    aName = SALOMEDS::AttributeName::_narrow(anAttr);
-    //NRI    aName->SetValue(QObject::tr("SMESH_MEN_COMPONENT"));
-    SMESHGUI* gui = SMESHGUI::GetSMESHGUI(); //SRN: BugID IPAL9186, load a SMESH gui if it hasn't been loaded
-    if(!gui) {
-      SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>(SUIT_Session::session()->activeApplication()); 
-      if(app) {
-        CAM_Module* module = app->module( "Mesh" );
-       if(!module) module = app->loadModule("Mesh");
-       gui = dynamic_cast<SMESHGUI*>( module ); 
-      }
-      else {
-        MESSAGE("Can't find the application");
-      }
-    }  //SRN: BugID IPAL9186: end of a fix
-    aName->SetValue( gui->moduleName() );
-    anAttr = myStudyBuilder->FindOrCreateAttribute(father, "AttributePixMap");
-    aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-    aPixmap->SetPixMap( "ICON_OBJBROWSER_SMESH" );
-    myStudyBuilder->DefineComponentInstance(father, CompMesh );
-    if (aLocked) myStudy->GetProperties()->SetLocked(true);
-  }
-  mySComponentMesh = SALOMEDS::SComponent::_narrow( father );
-
-  // Tags definition 
-  Tag_HypothesisRoot  = 1;
-  Tag_AlgorithmsRoot  = 2;
-  
-  Tag_RefOnShape      = 1;
-  Tag_RefOnAppliedHypothesis = 2;
-  Tag_RefOnAppliedAlgorithms = 3;
-  
-  Tag_SubMeshOnVertex = 4;
-  Tag_SubMeshOnEdge = 5;
-  Tag_SubMeshOnFace = 6;
-  Tag_SubMeshOnSolid = 7;
-  Tag_SubMeshOnCompound = 8;
-}
-
-SMESH_Swig::~SMESH_Swig()
-{
-  MESSAGE("Destructeur");
-}
-
-const char* SMESH_Swig::AddNewMesh(const char* IOR)
-{
-  MESSAGE("AddNewMesh");
-
-  // VSR: added temporarily - to be removed - objects are published automatically by engine
-  SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR );
-  if ( !SO->_is_nil() )
-    return SO->GetID();
-
-  //Find or Create Hypothesis root
-  SALOMEDS::GenericAttribute_var    anAttr;
-  SALOMEDS::AttributeName_var       aName;
-  SALOMEDS::AttributeIOR_var        anIOR;
-  SALOMEDS::AttributeSelectable_var aSelAttr;
-  SALOMEDS::AttributePixMap_var     aPixmap;
-
-  SALOMEDS::SObject_var HypothesisRoot;
-  if (!mySComponentMesh->FindSubObject (Tag_HypothesisRoot, HypothesisRoot)) {
-    HypothesisRoot = myStudyBuilder->NewObjectToTag (mySComponentMesh, Tag_HypothesisRoot);
-    anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributeName");
-    aName = SALOMEDS::AttributeName::_narrow(anAttr);
-    aName->SetValue(QObject::tr("SMESH_MEN_HYPOTHESIS"));
-    anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributePixMap");
-    aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-    aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO" );
-    anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributeSelectable");
-    aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
-    aSelAttr->SetSelectable(false);
-  }
-
-  SALOMEDS::SObject_var AlgorithmsRoot;
-  if (!mySComponentMesh->FindSubObject (Tag_AlgorithmsRoot, AlgorithmsRoot)) {
-    AlgorithmsRoot = myStudyBuilder->NewObjectToTag (mySComponentMesh, Tag_AlgorithmsRoot);
-    anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributeName");
-    aName = SALOMEDS::AttributeName::_narrow(anAttr);
-    aName->SetValue(QObject::tr("SMESH_MEN_ALGORITHMS"));
-    anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributePixMap");
-    aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-    aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO" );
-    anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributeSelectable");
-    aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
-    aSelAttr->SetSelectable(false);
-  }
-
-  // Add New Mesh
-  SALOMEDS::SObject_var newMesh = myStudyBuilder->NewObject(mySComponentMesh);
-  anAttr = myStudyBuilder->FindOrCreateAttribute(newMesh, "AttributePixMap");
-  aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-  aPixmap->SetPixMap( "ICON_SMESH_TREE_MESH" );
-  anAttr = myStudyBuilder->FindOrCreateAttribute(newMesh, "AttributeIOR");
-  anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
-  anIOR->SetValue(IOR);
-  return SALOMEDS::SObject::_narrow( newMesh )->GetID();
-}
-
-const char* SMESH_Swig::AddNewHypothesis(const char* IOR)
-{
-  MESSAGE("AddNewHypothesis");
-
-  // VSR: added temporarily - to be removed - objects are published automatically by engine
-  SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR );
-  if ( !SO->_is_nil() )
-    return SO->GetID();
-
-  //Find or Create Hypothesis root
-  SALOMEDS::SObject_var             HypothesisRoot;
-  SALOMEDS::GenericAttribute_var    anAttr;
-  SALOMEDS::AttributeName_var       aName;
-  SALOMEDS::AttributeIOR_var        anIOR;
-  SALOMEDS::AttributeSelectable_var aSelAttr;
-  SALOMEDS::AttributePixMap_var     aPixmap;
-
-  if (!mySComponentMesh->FindSubObject (Tag_HypothesisRoot, HypothesisRoot)) {
-    HypothesisRoot = myStudyBuilder->NewObjectToTag (mySComponentMesh, Tag_HypothesisRoot);
-    anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributeName");
-    aName = SALOMEDS::AttributeName::_narrow(anAttr);
-    aName->SetValue(QObject::tr("SMESH_MEN_HYPOTHESIS"));
-    anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributeSelectable");
-    aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
-    aSelAttr->SetSelectable(false);
-    anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributePixMap");
-    aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-    aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO" );
-  }
-  // Add New Hypothesis
-  SALOMEDS::SObject_var newHypo = myStudyBuilder->NewObject(HypothesisRoot);
-  anAttr = myStudyBuilder->FindOrCreateAttribute(newHypo, "AttributePixMap");
-  aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-  SMESH::SMESH_Hypothesis_var H = SMESH::SMESH_Hypothesis::_narrow( StringToObject(IOR) );
-  QString aType = H->GetName();
-  aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_" + aType );
-//    if ( aType.compare("LocalLength") == 0 )
-//      aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_LENGTH" );
-//    else if ( aType.compare("NumberOfSegments") == 0 )
-//      aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_SEGMENT" );
-//    else if ( aType.compare("MaxElementArea") == 0 )
-//      aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_AREA" );
-//    else if ( aType.compare("MaxElementVolume") == 0 )
-//      aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_VOLUME" );
-  anAttr = myStudyBuilder->FindOrCreateAttribute(newHypo, "AttributeIOR");
-  anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
-  anIOR->SetValue(IOR);
-  return SALOMEDS::SObject::_narrow(newHypo)->GetID();
-}
-
-const char* SMESH_Swig::AddNewAlgorithms(const char* IOR)
-{
-  MESSAGE("AddNewAlgorithms");
-
-  // VSR: added temporarily - to be removed - objects are published automatically by engine
-  SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR );
-  if ( !SO->_is_nil() )
-    return SO->GetID();
-
-  //Find or Create Algorithms root
-  SALOMEDS::SObject_var             AlgorithmsRoot;
-  SALOMEDS::GenericAttribute_var    anAttr;
-  SALOMEDS::AttributeName_var       aName;
-  SALOMEDS::AttributeIOR_var        anIOR;
-  SALOMEDS::AttributeSelectable_var aSelAttr;
-  SALOMEDS::AttributePixMap_var     aPixmap;
-
-  if (!mySComponentMesh->FindSubObject (Tag_AlgorithmsRoot, AlgorithmsRoot)) {
-    AlgorithmsRoot = myStudyBuilder->NewObjectToTag (mySComponentMesh, Tag_AlgorithmsRoot);
-    anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributeName");
-    aName = SALOMEDS::AttributeName::_narrow(anAttr);
-    aName->SetValue(QObject::tr("SMESH_MEN_ALGORITHMS"));
-    anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributeSelectable");
-    aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
-    aSelAttr->SetSelectable(false);
-    anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributePixMap");
-    aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-    aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO" );
-  }
-  // Add New Algorithms
-  SALOMEDS::SObject_var newHypo = myStudyBuilder->NewObject(AlgorithmsRoot);
-  anAttr = myStudyBuilder->FindOrCreateAttribute(newHypo, "AttributePixMap");
-  aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-  SMESH::SMESH_Hypothesis_var H = SMESH::SMESH_Hypothesis::_narrow( StringToObject(IOR) );
-  QString aType = H->GetName();
-  aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_" + aType );
-//    if ( aType.compare("Regular_1D") == 0 )
-//      aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_REGULAR" );
-//    else if ( aType.compare("MEFISTO_2D") == 0 )
-//      aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_MEFISTO" );
-//    else if ( aType.compare("Quadrangle_2D") == 0 )
-//      aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_QUAD" );
-//    else if ( aType.compare("Hexa_3D") == 0 )
-//      aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_HEXA" );
-  anAttr = myStudyBuilder->FindOrCreateAttribute(newHypo, "AttributeIOR");
-  anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
-  anIOR->SetValue(IOR);
-  return SALOMEDS::SObject::_narrow(newHypo)->GetID();
-}
-
-void SMESH_Swig::SetShape(const char* ShapeEntry, const char* MeshEntry)
-{
-  SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( MeshEntry );
-  SALOMEDS::SObject_var SO_GeomShape = myStudy->FindObjectID( ShapeEntry );
-
-  if ( !SO_MorSM->_is_nil() && !SO_GeomShape->_is_nil() ) {
-    SALOMEDS::SObject_var SO = myStudyBuilder->NewObjectToTag (SO_MorSM, Tag_RefOnShape);
-    myStudyBuilder->Addreference (SO,SO_GeomShape);
-  }
-}
-
-void SMESH_Swig::SetHypothesis(const char* Mesh_Or_SubMesh_Entry, const char* Hypothesis_Entry)
-{
-  SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( Mesh_Or_SubMesh_Entry );
-  SALOMEDS::SObject_var SO_Hypothesis = myStudy->FindObjectID( Hypothesis_Entry );
-  SALOMEDS::GenericAttribute_var    anAttr;
-  SALOMEDS::AttributeName_var       aName;
-  SALOMEDS::AttributeSelectable_var aSelAttr;
-  SALOMEDS::AttributePixMap_var     aPixmap;
-
-  if ( !SO_MorSM->_is_nil() && !SO_Hypothesis->_is_nil() ) {
-    
-    //Find or Create Applied Hypothesis root
-    SALOMEDS::SObject_var AHR;
-    if (!SO_MorSM->FindSubObject (Tag_RefOnAppliedHypothesis, AHR)) {
-      AHR = myStudyBuilder->NewObjectToTag (SO_MorSM, Tag_RefOnAppliedHypothesis);
-      anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributeName");
-      aName = SALOMEDS::AttributeName::_narrow(anAttr);
-      aName->SetValue(QObject::tr("SMESH_MEN_APPLIED_HYPOTHESIS"));
-      anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributeSelectable");
-      aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
-      aSelAttr->SetSelectable(false);
-      anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributePixMap");
-      aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-      aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO" );
-    }
-    SALOMEDS::SObject_var SO = myStudyBuilder->NewObject(AHR);
-    myStudyBuilder->Addreference (SO,SO_Hypothesis);
-  }
-}
-
-void SMESH_Swig::SetAlgorithms(const char* Mesh_Or_SubMesh_Entry, const char* Algorithms_Entry)
-{
-  SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( Mesh_Or_SubMesh_Entry );
-  SALOMEDS::SObject_var SO_Algorithms = myStudy->FindObjectID( Algorithms_Entry );
-  SALOMEDS::GenericAttribute_var    anAttr;
-  SALOMEDS::AttributeName_var       aName;
-  SALOMEDS::AttributeSelectable_var aSelAttr;
-  SALOMEDS::AttributePixMap_var     aPixmap;
-
-  if ( !SO_MorSM->_is_nil() && !SO_Algorithms->_is_nil() ) {
-    //Find or Create Applied Algorithms root
-    SALOMEDS::SObject_var AHR;
-    if (!SO_MorSM->FindSubObject (Tag_RefOnAppliedAlgorithms, AHR)) {
-      AHR = myStudyBuilder->NewObjectToTag (SO_MorSM, Tag_RefOnAppliedAlgorithms);
-      anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributeName");
-      aName = SALOMEDS::AttributeName::_narrow(anAttr);
-      aName->SetValue(QObject::tr("SMESH_MEN_APPLIED_ALGORIHTMS"));
-      anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributeSelectable");
-      aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
-      aSelAttr->SetSelectable(false);
-      anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributePixMap");
-      aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-      aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO" );
-    }
-    SALOMEDS::SObject_var SO = myStudyBuilder->NewObject(AHR);
-    myStudyBuilder->Addreference (SO,SO_Algorithms);
-  }
-}
-
-void SMESH_Swig::UnSetHypothesis(const char* Applied_Hypothesis_Entry )
-{
-  SALOMEDS::SObject_var SO_Applied_Hypothesis = myStudy->FindObjectID( Applied_Hypothesis_Entry );
-  if ( !SO_Applied_Hypothesis->_is_nil() )
-    myStudyBuilder->RemoveObject(SO_Applied_Hypothesis);
-}
-
-const char* SMESH_Swig::AddSubMesh(const char* SO_Mesh_Entry, const char* SM_IOR, int ST)
-{
-  SALOMEDS::SObject_var SO_Mesh = myStudy->FindObjectID( SO_Mesh_Entry );
-  if ( !SO_Mesh->_is_nil() ) {
-
-    long Tag_Shape ;
-    Standard_CString Name;
-    
-    if      (ST == TopAbs_SOLID) {Tag_Shape = Tag_SubMeshOnSolid;    Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnSolid"));}
-    else if (ST == TopAbs_FACE)  {Tag_Shape = Tag_SubMeshOnFace;     Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnFace"));}
-    else if (ST == TopAbs_EDGE)  {Tag_Shape = Tag_SubMeshOnEdge;     Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnEdge"));}
-    else if (ST == TopAbs_VERTEX){Tag_Shape = Tag_SubMeshOnVertex;   Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnVertex"));}
-    else {
-      Tag_Shape = Tag_SubMeshOnCompound; Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnCompound"));
-    }
-    SALOMEDS::SObject_var SubmeshesRoot;
-    SALOMEDS::GenericAttribute_var        anAttr;
-    SALOMEDS::AttributeName_var           aName;
-    SALOMEDS::AttributeIOR_var            anIOR;
-    SALOMEDS::AttributeSelectable_var     aSelAttr;
-    if (!SO_Mesh->FindSubObject (Tag_Shape,SubmeshesRoot )) {
-      SubmeshesRoot = myStudyBuilder->NewObjectToTag (SO_Mesh, Tag_Shape);
-      anAttr = myStudyBuilder->FindOrCreateAttribute(SubmeshesRoot, "AttributeName");
-      aName = SALOMEDS::AttributeName::_narrow(anAttr);
-      aName->SetValue(Name);
-      anAttr = myStudyBuilder->FindOrCreateAttribute(SubmeshesRoot, "AttributeSelectable");
-      aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
-      aSelAttr->SetSelectable(false);
-    }
-
-    free(Name);
-
-    SALOMEDS::SObject_var SO = myStudyBuilder->NewObject (SubmeshesRoot);
-    anAttr = myStudyBuilder->FindOrCreateAttribute(SO, "AttributeIOR");
-    anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
-    anIOR->SetValue(SM_IOR);
-    return SALOMEDS::SObject::_narrow( SO )->GetID();
-  }
-  return "";
-}
-
-const char* SMESH_Swig::AddSubMeshOnShape(const char* Mesh_Entry, const char* GeomShape_Entry, 
-                                            const char* SM_IOR, int ST)
-{
-  SALOMEDS::SObject_var SO_GeomShape = myStudy->FindObjectID( GeomShape_Entry );
-  if ( !SO_GeomShape->_is_nil() ) {
-    const char * SM_Entry = AddSubMesh (Mesh_Entry,SM_IOR,ST);
-    SALOMEDS::SObject_var SO_SM = myStudy->FindObjectID( SM_Entry );
-    if ( !SO_SM->_is_nil() ) {
-      SetShape (GeomShape_Entry, SM_Entry);
-      return SALOMEDS::SObject::_narrow( SO_SM )->GetID();
-    }
-  }
-  return "";
-}
-
-void SMESH_Swig::CreateAndDisplayActor( const char* Mesh_Entry )
-{
-  //  SMESH_Actor* Mesh = smeshGUI->ReadScript(aM);
-}
-
-void SMESH_Swig::SetName(const char* Entry, const char* Name)
-{
-  SALOMEDS::SObject_var SO = myStudy->FindObjectID( Entry );
-  SALOMEDS::GenericAttribute_var anAttr;
-  SALOMEDS::AttributeName_var    aName;
-  if ( !SO->_is_nil() )  {
-    anAttr = myStudyBuilder->FindOrCreateAttribute(SO, "AttributeName");
-    aName = SALOMEDS::AttributeName::_narrow(anAttr);
-    aName->SetValue(Name);
-  }
-}
-
-void SMESH_Swig::setOrb()
-{
-  try {
-    ORB_INIT &init = *SINGLETON_<ORB_INIT>::Instance();
-    ASSERT(SINGLETON_<ORB_INIT>::IsAlreadyExisting());
-    _orb = init( 0 , 0 );
-  } catch (...) {
-    INFOS("internal error : orb not found");
-    _orb = 0;
-  }
-  ASSERT(! CORBA::is_nil(_orb));
-}
-
-//================================================================================
-/*!
- * \brief Set mesh icon according to compute status
-  * \param Mesh_Entry - entry of a mesh
-  * \param isComputed - is mesh computed or not
- */
-//================================================================================
-
-void SMESH_Swig::SetMeshIcon(const char* Mesh_Entry, const bool isComputed)
-{
-  SALOMEDS::SObject_var mesh_var = myStudy->FindObjectID( Mesh_Entry );
-  if ( !mesh_var->_is_nil() ) {
-    _PTR(SObject) mesh = _PTR(SObject)(new SALOMEDS_SObject( mesh_var ));
-    if ( mesh )
-      SMESH::ModifiedMesh( mesh, isComputed );
-  }
-}
diff --git a/src/SMESHGUI/SMESHGUI_Swig.hxx b/src/SMESHGUI/SMESHGUI_Swig.hxx
deleted file mode 100644 (file)
index e1b2ebc..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-//  SMESH SMESH : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_Swig.hxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESHGUI_SWIG_HXX_
-#define _SMESHGUI_SWIG_HXX_
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SALOMEDS)
-#include CORBA_SERVER_HEADER(SALOMEDS_Attributes)
-
-class SMESH_Swig
-{
-public:
-  SMESH_Swig();
-  ~SMESH_Swig();
-    
-  static void setOrb();
-
-  void Init(int studyID);
-
-  const char* AddNewMesh(const char* IOR);
-
-  const char* AddNewHypothesis(const char* IOR);
-  const char* AddNewAlgorithms(const char* IOR);
-
-  void SetShape(const char* ShapeEntry, const char* MeshEntry);
-
-  void SetHypothesis(const char* Mesh_Or_SubMesh_Entry, const char* Hypothesis_Entry);
-  void SetAlgorithms(const char* Mesh_Or_SubMesh_Entry, const char* Algorithms_Entry);
-
-  void UnSetHypothesis(const char* Applied_Hypothesis_Entry );
-
-  const char* AddSubMesh (const char* Mesh_Entry, const char* SM_IOR, int ST);
-  const char* AddSubMeshOnShape (const char* Mesh_Entry, const char* GeomShape_Entry, const char* SM_IOR, int ST);
-
-  void CreateAndDisplayActor( const char* Mesh_Entry );
-
-  void SetName(const char* Entry, const char* Name);
-
-  /*!
-   * \brief Set mesh icon according to compute status
-    * \param Mesh_Entry - entry of a mesh
-    * \param isComputed - is mesh computed or not
-   */
-  void SetMeshIcon(const char* Mesh_Entry, const bool isComputed);
-
-private:
-  SALOMEDS::Study_var        myStudy;
-  SALOMEDS::StudyBuilder_var myStudyBuilder;
-  SALOMEDS::SComponent_var   mySComponentMesh;
-
-  // Tags definition 
-  long Tag_HypothesisRoot;
-  long Tag_AlgorithmsRoot;
-  
-  long Tag_RefOnShape;
-  long Tag_RefOnAppliedHypothesis;
-  long Tag_RefOnAppliedAlgorithms;
-  
-  long Tag_SubMeshOnVertex;
-  long Tag_SubMeshOnEdge;
-  long Tag_SubMeshOnFace;
-  long Tag_SubMeshOnSolid;
-  long Tag_SubMeshOnCompound;
-};
-
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_Swig.i b/src/SMESHGUI/SMESHGUI_Swig.i
deleted file mode 100644 (file)
index 2a99fe1..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_Swig.i
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-%{
-#include "SMESHGUI_Swig.hxx"
-%}
-
-%include "typemaps.i"
-
-class SMESH_Swig
-{
- public:
-  SMESH_Swig();
-  ~SMESH_Swig();
-
-  void Init(int studyID);
-
-  const char* AddNewMesh(const char* IOR);
-  const char* AddNewHypothesis(const char* IOR);
-  const char* AddNewAlgorithms(const char* IOR);
-
-  void SetShape(const char* ShapeEntry, const char* MeshEntry);
-
-  void SetHypothesis(const char* Mesh_Or_SubMesh_Entry, const char* Hypothesis_Entry);
-  void SetAlgorithms(const char* Mesh_Or_SubMesh_Entry, const char* Algorithms_Entry);
-
-  void UnSetHypothesis(const char* Applied_Hypothesis_Entry );
-
-  const char* AddSubMesh (const char* Mesh_Entry, const char* SM_IOR, int ST);
-  const char* AddSubMeshOnShape (const char* Mesh_Entry, const char* GeomShape_Entry, const char* SM_IOR, int ST);
-
-  void SetName(const char* Entry, const char* Name);
-
-  void SetMeshIcon(const char* Mesh_Entry, const bool isComputed);
-};
diff --git a/src/SMESHGUI/SMESHGUI_SymmetryDlg.cxx b/src/SMESHGUI/SMESHGUI_SymmetryDlg.cxx
deleted file mode 100644 (file)
index fe52986..0000000
+++ /dev/null
@@ -1,893 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_SymmetryDlg.cxx
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header:
-
-#include "SMESHGUI_SymmetryDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_SpinBox.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_MeshUtils.h"
-#include "SMESHGUI_IdValidator.h"
-
-#include "SMESH_Actor.h"
-#include "SMESH_TypeFilter.hxx"
-#include "SMESH_LogicalFilter.hxx"
-#include "SMDS_Mesh.hxx"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_ResourceMgr.h"
-
-#include "SVTK_ViewModel.h"
-#include "SVTK_ViewWindow.h"
-#include "SVTK_Selector.h"
-#include "SVTK_Selection.h"
-#include "SALOME_ListIO.hxx"
-
-#include "utilities.h"
-
-// OCCT Includes
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_IndexedMapOfInteger.hxx>
-
-// QT Includes
-#include <qapplication.h>
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qcheckbox.h>
-#include <qlayout.h>
-#include <qpixmap.h>
-
-// IDL Headers
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Group)
-
-using namespace std;
-
-//=================================================================================
-// class    : SMESHGUI_SymmetryDlg()
-// purpose  :
-//=================================================================================
-SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( SMESHGUI* theModule, const char* name,
-                                            bool modal, WFlags fl)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-                WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
-      mySMESHGUI( theModule ),
-      mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-  QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SMESH_SYMMETRY_POINT")));
-  QPixmap image1 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SMESH_SYMMETRY_AXIS")));
-  QPixmap image2 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SMESH_SYMMETRY_PLANE")));
-  QPixmap image3 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
-
-  if (!name)
-    setName("SMESHGUI_SymmetryDlg");
-  resize(303, 185);
-  setCaption(tr("SMESH_SYMMETRY"));
-  setSizeGripEnabled(TRUE);
-  SMESHGUI_SymmetryDlgLayout = new QGridLayout(this);
-  SMESHGUI_SymmetryDlgLayout->setSpacing(6);
-  SMESHGUI_SymmetryDlgLayout->setMargin(11);
-
-  /***************************************************************/
-  GroupConstructors = new QButtonGroup(this, "GroupConstructors");
-  GroupConstructors->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)5,
-                                               (QSizePolicy::SizeType)0, 0, 0,
-                                               GroupConstructors->sizePolicy().hasHeightForWidth()));
-  GroupConstructors->setTitle(tr("SMESH_SYMMETRY" ));
-  GroupConstructors->setExclusive(TRUE);
-  GroupConstructors->setColumnLayout(0, Qt::Vertical);
-  GroupConstructors->layout()->setSpacing(0);
-  GroupConstructors->layout()->setMargin(0);
-  GroupConstructorsLayout = new QGridLayout(GroupConstructors->layout());
-  GroupConstructorsLayout->setAlignment(Qt::AlignTop);
-  GroupConstructorsLayout->setSpacing(6);
-  GroupConstructorsLayout->setMargin(11);
-  QHBoxLayout* RBLayout = new QHBoxLayout(0, 0, 6, "Layout2");
-  RadioButton1= new QRadioButton(GroupConstructors, "RadioButton1");
-  RadioButton1->setText(tr("" ));
-  RadioButton1->setPixmap(image0);
-  RBLayout->addWidget(RadioButton1);
-  RadioButton2= new QRadioButton(GroupConstructors, "RadioButton2");
-  RadioButton2->setText(tr("" ));
-  RadioButton2->setPixmap(image1);
-  RBLayout->addWidget(RadioButton2);
-  RadioButton3= new QRadioButton(GroupConstructors, "RadioButton3");
-  RadioButton3->setText(tr("" ));
-  RadioButton3->setPixmap(image2);
-  RBLayout->addWidget(RadioButton3);
-  GroupConstructorsLayout->addLayout(RBLayout, 0, 0);
-  SMESHGUI_SymmetryDlgLayout->addWidget(GroupConstructors, 0, 0);
-
-  /***************************************************************/
-  GroupButtons = new QGroupBox(this, "GroupButtons");
-  GroupButtons->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)7,
-                                          (QSizePolicy::SizeType)0, 0, 0,
-                                          GroupButtons->sizePolicy().hasHeightForWidth()));
-  GroupButtons->setGeometry(QRect(10, 10, 281, 48));
-  GroupButtons->setTitle(tr("" ));
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-  buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
-  buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
-  buttonCancel->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-  buttonApply = new QPushButton(GroupButtons, "buttonApply");
-  buttonApply->setText(tr("SMESH_BUT_APPLY" ));
-  buttonApply->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-  QSpacerItem* spacer_9 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupButtonsLayout->addItem(spacer_9, 0, 2);
-  buttonOk = new QPushButton(GroupButtons, "buttonOk");
-  buttonOk->setText(tr("SMESH_BUT_OK" ));
-  buttonOk->setAutoDefault(TRUE);
-  buttonOk->setDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-  SMESHGUI_SymmetryDlgLayout->addWidget(GroupButtons, 2, 0);
-
-  /***************************************************************/
-  GroupArguments = new QGroupBox(this, "GroupArguments");
-  GroupArguments->setTitle(tr("SMESH_ARGUMENTS"));
-  GroupArguments->setColumnLayout(0, Qt::Vertical);
-  GroupArguments->layout()->setSpacing(0);
-  GroupArguments->layout()->setMargin(0);
-  GroupArgumentsLayout = new QGridLayout(GroupArguments->layout());
-  GroupArgumentsLayout->setAlignment(Qt::AlignTop);
-  GroupArgumentsLayout->setSpacing(6);
-  GroupArgumentsLayout->setMargin(11);
-
-  // Controls for elements selection
-  TextLabelElements  = new QLabel(GroupArguments, "TextLabelElements");
-  TextLabelElements->setText(tr("SMESH_ID_ELEMENTS" ));
-  TextLabelElements->setFixedWidth(74);
-  GroupArgumentsLayout->addWidget(TextLabelElements, 0, 0);
-
-  SelectElementsButton  = new QPushButton(GroupArguments, "SelectElementsButton");
-  SelectElementsButton->setText(tr("" ));
-  SelectElementsButton->setPixmap(image3);
-  SelectElementsButton->setToggleButton(FALSE);
-  GroupArgumentsLayout->addWidget(SelectElementsButton, 0, 1);
-
-  LineEditElements  = new QLineEdit(GroupArguments, "LineEditElements");
-  LineEditElements->setValidator(new SMESHGUI_IdValidator(this, "validator"));
-  GroupArgumentsLayout->addWidget(LineEditElements, 0, 2);
-
-  // Control for the whole mesh selection
-  CheckBoxMesh = new QCheckBox(GroupArguments, "CheckBoxMesh");
-  CheckBoxMesh->setText(tr("SMESH_SELECT_WHOLE_MESH" ));
-  GroupArgumentsLayout->addMultiCellWidget(CheckBoxMesh, 1, 1, 0, 2);
-
-  // Controls for mirror selection
-  GroupMirror = new QGroupBox(GroupArguments, "GroupMirror");
-  GroupMirror->setColumnLayout(0, Qt::Vertical);
-  GroupMirror->layout()->setSpacing(0);
-  GroupMirror->layout()->setMargin(0);
-  QGridLayout* GroupMirrorLayout = new QGridLayout(GroupMirror->layout());
-  GroupMirrorLayout->setAlignment(Qt::AlignTop);
-  GroupMirrorLayout->setSpacing(6);
-  GroupMirrorLayout->setMargin(11);
-
-  TextLabelPoint = new QLabel(GroupMirror, "TextLabelPoint");
-  TextLabelPoint->setText(tr("SMESH_POINT"));
-  GroupMirrorLayout->addWidget(TextLabelPoint, 0, 0);
-
-  SelectPointButton  = new QPushButton(GroupMirror, "SelectPointButton");
-  SelectPointButton->setPixmap(image3);
-  GroupMirrorLayout->addWidget(SelectPointButton, 0, 1);
-
-  TextLabelX = new QLabel(GroupMirror, "TextLabelX");
-  TextLabelX->setText(tr("SMESH_X"));
-  GroupMirrorLayout->addWidget(TextLabelX, 0, 2);
-
-  SpinBox_X = new SMESHGUI_SpinBox(GroupMirror, "SpinBox_X");
-  GroupMirrorLayout->addWidget(SpinBox_X, 0, 3);
-
-  TextLabelY = new QLabel(GroupMirror, "TextLabelY");
-  TextLabelY->setText(tr("SMESH_Y"));
-  GroupMirrorLayout->addWidget(TextLabelY, 0, 4);
-
-  SpinBox_Y = new SMESHGUI_SpinBox(GroupMirror, "SpinBox_Y");
-  GroupMirrorLayout->addWidget(SpinBox_Y, 0, 5);
-
-  TextLabelZ = new QLabel(GroupMirror, "TextLabelZ");
-  TextLabelZ->setText(tr("SMESH_Z"));
-  GroupMirrorLayout->addWidget(TextLabelZ, 0, 6);
-
-  SpinBox_Z = new SMESHGUI_SpinBox(GroupMirror, "SpinBox_Z");
-  GroupMirrorLayout->addWidget(SpinBox_Z, 0, 7);
-
-  TextLabelVector = new QLabel(GroupMirror, "TextLabelVector");
-  GroupMirrorLayout->addWidget(TextLabelVector, 1, 0);
-
-  SelectVectorButton = new QPushButton(GroupMirror, "SelectVectorButton");
-  SelectVectorButton->setPixmap(image3);
-  GroupMirrorLayout->addWidget(SelectVectorButton, 1, 1);
-
-  TextLabelDX = new QLabel(GroupMirror, "TextLabelDX");
-  TextLabelDX->setText(tr("SMESH_DX"));
-  GroupMirrorLayout->addWidget(TextLabelDX, 1, 2);
-
-  SpinBox_DX = new SMESHGUI_SpinBox(GroupMirror, "SpinBox_DX");
-  GroupMirrorLayout->addWidget(SpinBox_DX, 1, 3);
-
-  TextLabelDY = new QLabel(GroupMirror, "TextLabelDY");
-  TextLabelDY->setText(tr("SMESH_DY"));
-  GroupMirrorLayout->addWidget(TextLabelDY, 1, 4);
-
-  SpinBox_DY = new SMESHGUI_SpinBox(GroupMirror, "SpinBox_DY");
-  GroupMirrorLayout->addWidget(SpinBox_DY, 1, 5);
-
-  TextLabelDZ = new QLabel(GroupMirror, "TextLabelDZ");
-  TextLabelDZ->setText(tr("SMESH_DZ"));
-  GroupMirrorLayout->addWidget(TextLabelDZ, 1, 6);
-
-  SpinBox_DZ = new SMESHGUI_SpinBox(GroupMirror, "SpinBox_DZ");
-  GroupMirrorLayout->addWidget(SpinBox_DZ, 1, 7);
-
-  GroupArgumentsLayout->addMultiCellWidget(GroupMirror, 2, 2, 0, 2);
-
-  // Controls for "Create a copy" option
-  CheckBoxCopy = new QCheckBox(GroupArguments, "CheckBoxCopy");
-  CheckBoxCopy->setText(tr("SMESH_CREATE_COPY"));
-  GroupArgumentsLayout->addMultiCellWidget(CheckBoxCopy, 3, 3, 0, 2);
-
-
-  SMESHGUI_SymmetryDlgLayout->addWidget(GroupArguments, 1, 0);
-
-  /* Initialisations */
-  SpinBox_X->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox_Y->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox_Z->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox_DX->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox_DY->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox_DZ->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-
-  GroupArguments->show();
-  RadioButton1->setChecked(TRUE);
-
-  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  // Costruction of the logical filter
-  SMESH_TypeFilter* aMeshOrSubMeshFilter = new SMESH_TypeFilter (MESHorSUBMESH);
-  SMESH_TypeFilter* aSmeshGroupFilter    = new SMESH_TypeFilter (GROUP);
-
-  QPtrList<SUIT_SelectionFilter> aListOfFilters;
-  if (aMeshOrSubMeshFilter) aListOfFilters.append(aMeshOrSubMeshFilter);
-  if (aSmeshGroupFilter)    aListOfFilters.append(aSmeshGroupFilter);
-
-  myMeshOrSubMeshOrGroupFilter =
-    new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
-
-  Init();
-
-  /* signals and slots connections */
-  connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-  connect(buttonApply, SIGNAL(clicked()),  this, SLOT(ClickOnApply()));
-  connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
-
-  connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(SelectPointButton, SIGNAL (clicked()),    this, SLOT(SetEditCurrentArgument()));
-  connect(SelectVectorButton, SIGNAL (clicked()),   this, SLOT(SetEditCurrentArgument()));
-
-  connect(SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(onVectorChanged()));
-  connect(SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(onVectorChanged()));
-  connect(SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(onVectorChanged()));
-
-  connect(mySMESHGUI,     SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()),      this, SLOT(SelectionIntoArgument()));
-  /* to close dialog if study change */
-  connect(mySMESHGUI,       SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
-  connect(LineEditElements, SIGNAL(textChanged(const QString&)),   SLOT(onTextChange(const QString&)));
-  connect(CheckBoxMesh,     SIGNAL(toggled(bool)),                 SLOT(onSelectMesh(bool)));
-
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show(); /* displays Dialog */
-
-  ConstructorsClicked(0);
-  resize(0,0); // ??
-}
-
-//=================================================================================
-// function : ~SMESHGUI_SymmetryDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_SymmetryDlg::~SMESHGUI_SymmetryDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SymmetryDlg::Init (bool ResetControls)
-{
-  myBusy = false;
-
-  myEditCurrentArgument = 0;
-  LineEditElements->clear();
-  myElementsId = "";
-  myNbOkElements = 0;
-
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-
-  myActor = 0;
-  myMesh = SMESH::SMESH_Mesh::_nil();
-
-  if (ResetControls) {
-    SpinBox_X->SetValue(0.0);
-    SpinBox_Y->SetValue(0.0);
-    SpinBox_Z->SetValue(0.0);
-    SpinBox_DX->SetValue(0.0);
-    SpinBox_DY->SetValue(0.0);
-    SpinBox_DZ->SetValue(0.0);
-
-    CheckBoxCopy->setChecked(false);
-    CheckBoxMesh->setChecked(false);
-    onSelectMesh(false);
-  }
-}
-
-//=================================================================================
-// function : ConstructorsClicked()
-// purpose  : Radio button management
-//=================================================================================
-void SMESHGUI_SymmetryDlg::ConstructorsClicked (int constructorId)
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-
-  if (constructorId != 0 && !TextLabelVector->isVisible()) {
-    TextLabelVector->show();
-    SelectVectorButton->show();
-    TextLabelDX->show();
-    SpinBox_DX->show();
-    TextLabelDY->show();
-    SpinBox_DY->show();
-    TextLabelDZ->show();
-    SpinBox_DZ->show();
-  }
-
-  switch (constructorId) {
-  case 0:
-    {
-      GroupMirror->setTitle(tr("SMESH_POINT"));
-
-      TextLabelVector->hide();
-      SelectVectorButton->hide();
-      TextLabelDX->hide();
-      SpinBox_DX->hide();
-      TextLabelDY->hide();
-      SpinBox_DY->hide();
-      TextLabelDZ->hide();
-      SpinBox_DZ->hide();
-      break;
-    }
-  case 1:
-    {
-      GroupMirror->setTitle(tr("SMESH_AXIS"));
-      TextLabelVector->setText(tr("SMESH_VECTOR"));
-      break;
-    }
-  case 2:
-    {
-      GroupMirror->setTitle(tr("SMESH_PLANE"));
-      TextLabelVector->setText(tr("SMESH_NORMAL"));
-      break;
-    }
-  }
-
-  if (myEditCurrentArgument != (QWidget*)LineEditElements) {
-    SMESH::SetPointRepresentation(false);
-    if (!CheckBoxMesh->isChecked())
-      {
-       if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-         aViewWindow->SetSelectionMode(CellSelection);
-      }
-  }
-
-  myEditCurrentArgument = (QWidget*)LineEditElements;
-  LineEditElements->setFocus();
-
-  if (CheckBoxMesh->isChecked())
-    onSelectMesh(true);
-
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SymmetryDlg::ClickOnApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return;
-
-  if (myNbOkElements && IsMirrorOk()) {
-    QStringList aListElementsId = QStringList::split(" ", myElementsId, false);
-
-    SMESH::long_array_var anElementsId = new SMESH::long_array;
-
-    anElementsId->length(aListElementsId.count());
-    for (int i = 0; i < aListElementsId.count(); i++)
-      anElementsId[i] = aListElementsId[i].toInt();
-
-    SMESH::AxisStruct aMirror;
-
-    aMirror.x =  SpinBox_X->GetValue();
-    aMirror.y =  SpinBox_Y->GetValue();
-    aMirror.z =  SpinBox_Z->GetValue();
-    if (GetConstructorId() == 0) {
-      aMirror.vx = aMirror.vy = aMirror.vz = 0;
-    } else {
-      aMirror.vx = SpinBox_DX->GetValue();
-      aMirror.vy = SpinBox_DY->GetValue();
-      aMirror.vz = SpinBox_DZ->GetValue();
-    }
-
-    bool toCreateCopy = CheckBoxCopy->isChecked();
-
-    SMESH::SMESH_MeshEditor::MirrorType aMirrorType;
-
-    if (GetConstructorId() == 0)
-      aMirrorType = SMESH::SMESH_MeshEditor::POINT;
-    if (GetConstructorId() == 1)
-      aMirrorType = SMESH::SMESH_MeshEditor::AXIS;
-    if (GetConstructorId() == 2)
-      aMirrorType = SMESH::SMESH_MeshEditor::PLANE;
-
-    try {
-      SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
-      QApplication::setOverrideCursor(Qt::waitCursor);
-      aMeshEditor->Mirror(anElementsId, aMirror, aMirrorType, toCreateCopy);
-      QApplication::restoreOverrideCursor();
-    } catch (...) {
-    }
-
-    mySelectionMgr->clearSelected();
-    SMESH::UpdateView();
-    Init(false);
-    ConstructorsClicked(GetConstructorId());
-  }
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SymmetryDlg::ClickOnOk()
-{
-  ClickOnApply();
-  ClickOnCancel();
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SymmetryDlg::ClickOnCancel()
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySelectionMgr->clearFilters();
-  mySelectionMgr->clearSelected();
-  SMESH::SetPointRepresentation(false);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(ActorSelection);
-  mySMESHGUI->ResetState();
-  reject();
-}
-
-//=======================================================================
-// function : onTextChange()
-// purpose  :
-//=======================================================================
-void SMESHGUI_SymmetryDlg::onTextChange (const QString& theNewText)
-{
-  QLineEdit* send = (QLineEdit*)sender();
-
-  if (myBusy) return;
-  myBusy = true;
-
-  if (send == LineEditElements)
-    myNbOkElements = 0;
-
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-
-  // hilight entered elements
-  SMDS_Mesh* aMesh = 0;
-  if (myActor)
-    aMesh = myActor->GetObject()->GetMesh();
-
-  if (aMesh) {
-    Handle(SALOME_InteractiveObject) anIO = myActor->getIO();
-
-    TColStd_MapOfInteger newIndices;
-    
-    QStringList aListId = QStringList::split(" ", theNewText, false);
-
-    if (send == LineEditElements) {
-      for (int i = 0; i < aListId.count(); i++) {
-       const SMDS_MeshElement * e = aMesh->FindElement(aListId[ i ].toInt());
-       if (e)
-         newIndices.Add(e->GetID());
-       myNbOkElements++;
-      }
-
-      mySelector->AddOrRemoveIndex( anIO, newIndices, false );
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->highlight( anIO, true, true );
-      
-      myElementsId = theNewText;
-    }
-  }
-
-  if (myNbOkElements &&  IsMirrorOk()) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
-
-  myBusy = false;
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_SymmetryDlg::SelectionIntoArgument()
-{
-  if (myBusy) return;
-
-  // clear
-  myActor = 0;
-  QString aString = "";
-
-  myBusy = true;
-  if (myEditCurrentArgument == (QWidget*)LineEditElements) {
-    LineEditElements->setText(aString);
-    myNbOkElements = 0;
-    buttonOk->setEnabled(false);
-    buttonApply->setEnabled(false);
-  }
-  myBusy = false;
-
-  if (!GroupButtons->isEnabled()) // inactive
-    return;
-
-  // get selected mesh
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
-
-  int nbSel = aList.Extent();
-  if (nbSel != 1)
-    return;
-
-  Handle(SALOME_InteractiveObject) IO = aList.First();
-  myMesh = SMESH::GetMeshByIO(IO);
-  if(myMesh->_is_nil())
-    return;
-
-  myActor = SMESH::FindActorByObject(myMesh);
-  if (!myActor)
-    myActor = SMESH::FindActorByEntry(IO->getEntry());
-  if (!myActor)
-    return;
-
-  int aNbUnits = 0;
-
-  if (myEditCurrentArgument == (QWidget*)LineEditElements) {
-    myElementsId = "";
-
-    if (CheckBoxMesh->isChecked()) {
-      SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
-
-      if (!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) { //MESH
-        // get IDs from mesh
-        SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
-        if (!aSMDSMesh)
-          return;
-
-        for (int i = aSMDSMesh->MinElementID(); i <= aSMDSMesh->MaxElementID(); i++) {
-          const SMDS_MeshElement * e = aSMDSMesh->FindElement(i);
-          if (e) {
-            myElementsId += QString(" %1").arg(i);
-            aNbUnits++;
-          }
-        }
-      } else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) { //SUBMESH
-        // get submesh
-        SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO);
-
-        // get IDs from submesh
-        SMESH::long_array_var anElementsIds = new SMESH::long_array;
-        anElementsIds = aSubMesh->GetElementsId();
-        for (int i = 0; i < anElementsIds->length(); i++) {
-          myElementsId += QString(" %1").arg(anElementsIds[i]);
-        }
-        aNbUnits = anElementsIds->length();
-      } else { // GROUP
-        // get smesh group
-        SMESH::SMESH_GroupBase_var aGroup =
-          SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
-        if (aGroup->_is_nil())
-          return;
-
-        // get IDs from smesh group
-        SMESH::long_array_var anElementsIds = new SMESH::long_array;
-        anElementsIds = aGroup->GetListOfID();
-        for (int i = 0; i < anElementsIds->length(); i++) {
-          myElementsId += QString(" %1").arg(anElementsIds[i]);
-        }
-        aNbUnits = anElementsIds->length();
-      }
-    } else {
-      aNbUnits = SMESH::GetNameOfSelectedElements( mySelector, myActor->getIO(), aString);
-      myElementsId = aString;
-    }
-
-    if (aNbUnits < 1)
-      return;
-
-    myNbOkElements = true;
-  } else {
-    aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, myActor->getIO(), aString);
-    if (aNbUnits != 1)
-      return;
-
-    SMDS_Mesh* aMesh =  myActor->GetObject()->GetMesh();
-    if (!aMesh)
-      return;
-
-    const SMDS_MeshNode * n = aMesh->FindNode(aString.toInt());
-    if (!n)
-      return;
-
-    double x = n->X();
-    double y = n->Y();
-    double z = n->Z();
-
-    if (myEditCurrentArgument == (QWidget*)SpinBox_X) {
-      SpinBox_X->SetValue(x);
-      SpinBox_Y->SetValue(y);
-      SpinBox_Z->SetValue(z);
-    } else if (myEditCurrentArgument == (QWidget*)SpinBox_DX) {
-      SpinBox_DX->SetValue(x - SpinBox_X->GetValue());
-      SpinBox_DY->SetValue(y - SpinBox_Y->GetValue());
-      SpinBox_DZ->SetValue(z - SpinBox_Z->GetValue());
-    }
-  }
-
-  myBusy = true;
-  if (myEditCurrentArgument == (QWidget*)LineEditElements)
-    LineEditElements->setText(aString);
-  myBusy = false;
-
-  // OK
-  if (myNbOkElements && IsMirrorOk()) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SymmetryDlg::SetEditCurrentArgument()
-{
-  QPushButton* send = (QPushButton*)sender();
-
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySelectionMgr->clearSelected();
-  mySelectionMgr->clearFilters();
-
-  if (send == SelectElementsButton) {
-    myEditCurrentArgument = (QWidget*)LineEditElements;
-    SMESH::SetPointRepresentation(false);
-    if (CheckBoxMesh->isChecked()) {
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->SetSelectionMode(ActorSelection);
-      mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter);
-    } else {
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->SetSelectionMode(CellSelection);
-    }
-  } else if (send == SelectPointButton) {
-    myEditCurrentArgument = (QWidget*)SpinBox_X;
-    SMESH::SetPointRepresentation(true);
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(NodeSelection);
-  } else if (send == SelectVectorButton) {
-    myEditCurrentArgument = (QWidget*)SpinBox_DX;
-    SMESH::SetPointRepresentation(true);
-
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(NodeSelection);
-  } else {
-  }
-
-  myEditCurrentArgument->setFocus();
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SymmetryDlg::DeactivateActiveDialog()
-{
-  if (GroupConstructors->isEnabled()) {
-    GroupConstructors->setEnabled(false);
-    GroupArguments->setEnabled(false);
-    GroupButtons->setEnabled(false);
-    mySMESHGUI->ResetState();
-    mySMESHGUI->SetActiveDialogBox(0);
-  }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SymmetryDlg::ActivateThisDialog()
-{
-  /* Emit a signal to deactivate the active dialog */
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupConstructors->setEnabled(true);
-  GroupArguments->setEnabled(true);
-  GroupButtons->setEnabled(true);
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode(CellSelection);
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SymmetryDlg::enterEvent (QEvent*)
-{
-  if (!GroupConstructors->isEnabled())
-    ActivateThisDialog();
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SymmetryDlg::closeEvent (QCloseEvent*)
-{
-  /* same than click on cancel button */
-  this->ClickOnCancel();
-}
-
-//=======================================================================
-// function : hideEvent()
-// purpose  : caused by ESC key
-//=======================================================================
-void SMESHGUI_SymmetryDlg::hideEvent (QHideEvent*)
-{
-  if (!isMinimized())
-    ClickOnCancel();
-}
-
-//=======================================================================
-//function : onSelectMesh
-//purpose  :
-//=======================================================================
-void SMESHGUI_SymmetryDlg::onSelectMesh (bool toSelectMesh)
-{
-  if (toSelectMesh)
-    TextLabelElements->setText(tr("SMESH_NAME"));
-  else
-    TextLabelElements->setText(tr("SMESH_ID_ELEMENTS"));
-
-  if (myEditCurrentArgument != LineEditElements) {
-    LineEditElements->clear();
-    return;
-  }
-
-  mySelectionMgr->clearFilters();
-  SMESH::SetPointRepresentation(false);
-
-  if (toSelectMesh) {
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(ActorSelection);
-    mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter);
-    LineEditElements->setReadOnly(true);
-  } else {
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode(CellSelection);
-    LineEditElements->setReadOnly(false);
-    onTextChange(LineEditElements->text());
-  }
-
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : GetConstructorId()
-// purpose  :
-//=================================================================================
-int SMESHGUI_SymmetryDlg::GetConstructorId()
-{
-  if (GroupConstructors != NULL && GroupConstructors->selected() != NULL)
-    return GroupConstructors->id(GroupConstructors->selected());
-  return -1;
-}
-
-//=================================================================================
-// function : IsMirrorOk()
-// purpose  :
-//=================================================================================
-bool SMESHGUI_SymmetryDlg::IsMirrorOk()
-{
-  bool isOk = true;
-
-  if (GetConstructorId() != 0)
-    isOk = (SpinBox_DX->GetValue() != 0 ||
-            SpinBox_DY->GetValue() != 0 ||
-            SpinBox_DZ->GetValue() != 0);
-
-  return isOk;
-}
-
-//=================================================================================
-// function : onVectorChanged()
-// purpose  :
-//=================================================================================
-void SMESHGUI_SymmetryDlg::onVectorChanged()
-{
-  if (IsMirrorOk()) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  } else {
-    buttonOk->setEnabled(false);
-    buttonApply->setEnabled(false);
-  }
-}
diff --git a/src/SMESHGUI/SMESHGUI_SymmetryDlg.h b/src/SMESHGUI/SMESHGUI_SymmetryDlg.h
deleted file mode 100644 (file)
index b09ad5e..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_SymmetryDlg.h
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header: 
-
-#ifndef DIALOGBOX_SYMMETRY_H
-#define DIALOGBOX_SYMMETRY_H
-
-#include "SalomeApp_SelectionMgr.h"
-
-#include "SMESH_LogicalFilter.hxx"
-
-// QT Includes
-#include <qdialog.h>
-
-class QGridLayout; 
-class QHBoxLayout;
-class QButtonGroup;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-class QCheckBox;
-class SMESHGUI_SpinBox;
-class SMESHGUI;
-class SMESH_Actor;
-class SVTK_ViewWindow;
-class SVTK_Selector;
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-
-//=================================================================================
-// class    : SMESHGUI_SymmetryDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_SymmetryDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_SymmetryDlg( SMESHGUI*,
-                         const char* name = 0,
-                         bool modal = FALSE,
-                         WFlags fl = 0);
-    ~SMESHGUI_SymmetryDlg();
-
-private:
-    void Init (bool ResetControls = true);
-    void closeEvent (QCloseEvent*);
-    void enterEvent (QEvent*);                             /* mouse enter the QWidget */
-    void hideEvent (QHideEvent*);                          /* ESC key */
-    int GetConstructorId();
-    bool IsMirrorOk();
-
-    SMESHGUI*                     mySMESHGUI;              /* Current SMESHGUI object */
-    SalomeApp_SelectionMgr*       mySelectionMgr;          /* User shape selection */
-    int                           myNbOkElements;          /* to check when elements are defined */
-    QString                       myElementsId;
-    SVTK_Selector*                mySelector;
-
-    QWidget*                      myEditCurrentArgument;   /* Current  LineEdit */
-
-    bool                          myBusy;
-    SMESH::SMESH_Mesh_var         myMesh;
-    SMESH_Actor*                  myActor;
-    SMESH_LogicalFilter*          myMeshOrSubMeshOrGroupFilter;
-    
-    QButtonGroup* GroupConstructors;
-    QRadioButton* RadioButton1;
-    QRadioButton* RadioButton2;
-    QRadioButton* RadioButton3;
-    QGroupBox* GroupButtons;
-    QPushButton* buttonOk;
-    QPushButton* buttonCancel;
-    QPushButton* buttonApply;
-    QGroupBox* GroupArguments;
-    QGroupBox* GroupMirror;
-    QLabel* TextLabelElements;
-    QPushButton* SelectElementsButton;
-    QLineEdit* LineEditElements;
-    QCheckBox* CheckBoxMesh;
-
-    QLabel* TextLabelPoint;
-    QPushButton* SelectPointButton;
-    QLabel* TextLabelX;
-    SMESHGUI_SpinBox* SpinBox_X;
-    QLabel* TextLabelY;
-    SMESHGUI_SpinBox* SpinBox_Y;
-    QLabel* TextLabelZ;
-    SMESHGUI_SpinBox* SpinBox_Z;
-    QLabel* TextLabelVector;
-    QPushButton* SelectVectorButton;
-    QLabel* TextLabelDX;
-    SMESHGUI_SpinBox* SpinBox_DX;
-    QLabel* TextLabelDY;
-    SMESHGUI_SpinBox* SpinBox_DY;
-    QLabel* TextLabelDZ;
-    SMESHGUI_SpinBox* SpinBox_DZ;
-    
-    QCheckBox* CheckBoxCopy;
-   
-    private slots:
-
-    void ConstructorsClicked(int constructorId);
-    void ClickOnOk();
-    void ClickOnCancel();
-    void ClickOnApply();
-    void SetEditCurrentArgument() ;
-    void SelectionIntoArgument() ;
-    void DeactivateActiveDialog() ;
-    void ActivateThisDialog() ;
-    void onTextChange(const QString&);
-    void onSelectMesh(bool toSelectMesh);
-    void onVectorChanged();
-    
-protected:
-    QGridLayout* SMESHGUI_SymmetryDlgLayout;
-    QGridLayout* GroupConstructorsLayout;
-    QGridLayout* GroupButtonsLayout;
-    QGridLayout* GroupArgumentsLayout;
-};
-
-#endif // DIALOGBOX_SYMMETRY_H
diff --git a/src/SMESHGUI/SMESHGUI_TranslationDlg.cxx b/src/SMESHGUI/SMESHGUI_TranslationDlg.cxx
deleted file mode 100644 (file)
index 6ea4bbf..0000000
+++ /dev/null
@@ -1,826 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_TranslationDlg.cxx
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header:
-
-#include "SMESHGUI_TranslationDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_SpinBox.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_MeshUtils.h"
-#include "SMESHGUI_IdValidator.h"
-
-#include "SMESH_Actor.h"
-#include "SMESH_TypeFilter.hxx"
-#include "SMESH_LogicalFilter.hxx"
-#include "SMDS_Mesh.hxx"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_ResourceMgr.h"
-
-#include "SVTK_ViewModel.h"
-#include "SVTK_Selection.h"
-#include "SVTK_ViewWindow.h"
-#include "SVTK_Selector.h"
-#include "SALOME_ListIO.hxx"
-
-#include "utilities.h"
-
-// OCCT Includes
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_IndexedMapOfInteger.hxx>
-
-// QT Includes
-#include <qapplication.h>
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qcheckbox.h>
-#include <qlayout.h>
-#include <qspinbox.h>
-#include <qpixmap.h>
-
-// IDL Headers
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Group)
-
-using namespace std;
-
-//=================================================================================
-// class    : SMESHGUI_TranslationDlg()
-// purpose  :
-//=================================================================================
-SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( SMESHGUI* theModule, const char* name,
-                                                  bool modal, WFlags fl)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-                WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
-     mySMESHGUI( theModule ),
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-  QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SMESH_TRANSLATION_POINTS")));
-  QPixmap image1 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SMESH_TRANSLATION_VECTOR")));
-  QPixmap image2 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
-
-  if (!name)
-    setName("SMESHGUI_TranslationDlg");
-  resize(303, 185);
-  setCaption(tr("SMESH_TRANSLATION"));
-  setSizeGripEnabled(TRUE);
-  SMESHGUI_TranslationDlgLayout = new QGridLayout(this);
-  SMESHGUI_TranslationDlgLayout->setSpacing(6);
-  SMESHGUI_TranslationDlgLayout->setMargin(11);
-
-  /***************************************************************/
-  GroupConstructors = new QButtonGroup(this, "GroupConstructors");
-  GroupConstructors->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)5, (QSizePolicy::SizeType)0, 0, 0, GroupConstructors->sizePolicy().hasHeightForWidth()));
-  GroupConstructors->setTitle(tr("SMESH_TRANSLATION" ));
-  GroupConstructors->setExclusive(TRUE);
-  GroupConstructors->setColumnLayout(0, Qt::Vertical);
-  GroupConstructors->layout()->setSpacing(0);
-  GroupConstructors->layout()->setMargin(0);
-  GroupConstructorsLayout = new QGridLayout(GroupConstructors->layout());
-  GroupConstructorsLayout->setAlignment(Qt::AlignTop);
-  GroupConstructorsLayout->setSpacing(6);
-  GroupConstructorsLayout->setMargin(11);
-  RadioButton1= new QRadioButton(GroupConstructors, "RadioButton1");
-  RadioButton1->setText(tr("" ));
-  RadioButton1->setPixmap(image0);
-  GroupConstructorsLayout->addWidget(RadioButton1, 0, 0);
-  RadioButton2= new QRadioButton(GroupConstructors, "RadioButton2");
-  RadioButton2->setText(tr("" ));
-  RadioButton2->setPixmap(image1);
-  GroupConstructorsLayout->addWidget(RadioButton2, 0, 2 );
-  SMESHGUI_TranslationDlgLayout->addWidget(GroupConstructors, 0, 0);
-
-  /***************************************************************/
-  GroupButtons = new QGroupBox(this, "GroupButtons");
-  GroupButtons->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, GroupButtons->sizePolicy().hasHeightForWidth()));
-  GroupButtons->setGeometry(QRect(10, 10, 281, 48));
-  GroupButtons->setTitle(tr("" ));
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-  buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
-  buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
-  buttonCancel->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-  buttonApply = new QPushButton(GroupButtons, "buttonApply");
-  buttonApply->setText(tr("SMESH_BUT_APPLY" ));
-  buttonApply->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-  QSpacerItem* spacer_9 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupButtonsLayout->addItem(spacer_9, 0, 2);
-  buttonOk = new QPushButton(GroupButtons, "buttonOk");
-  buttonOk->setText(tr("SMESH_BUT_OK" ));
-  buttonOk->setAutoDefault(TRUE);
-  buttonOk->setDefault(TRUE);
-  GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-  SMESHGUI_TranslationDlgLayout->addWidget(GroupButtons, 2, 0);
-
-  /***************************************************************/
-  GroupArguments = new QGroupBox(this, "GroupArguments");
-  GroupArguments->setTitle(tr("SMESH_ARGUMENTS"));
-  GroupArguments->setColumnLayout(0, Qt::Vertical);
-  GroupArguments->layout()->setSpacing(0);
-  GroupArguments->layout()->setMargin(0);
-  GroupArgumentsLayout = new QGridLayout(GroupArguments->layout());
-  GroupArgumentsLayout->setAlignment(Qt::AlignTop);
-  GroupArgumentsLayout->setSpacing(6);
-  GroupArgumentsLayout->setMargin(11);
-
-  // Controls for elements selection
-  TextLabelElements  = new QLabel(GroupArguments, "TextLabelElements");
-  TextLabelElements->setText(tr("SMESH_ID_ELEMENTS" ));
-  TextLabelElements->setFixedWidth(74);
-  GroupArgumentsLayout->addWidget(TextLabelElements, 0, 0);
-
-  SelectElementsButton  = new QPushButton(GroupArguments, "SelectElementsButton");
-  SelectElementsButton->setText(tr("" ));
-  SelectElementsButton->setPixmap(image2);
-  SelectElementsButton->setToggleButton(FALSE);
-  GroupArgumentsLayout->addWidget(SelectElementsButton, 0, 1);
-
-  LineEditElements  = new QLineEdit(GroupArguments, "LineEditElements");
-  LineEditElements->setValidator(new SMESHGUI_IdValidator(this, "validator"));
-  GroupArgumentsLayout->addMultiCellWidget(LineEditElements, 0, 0, 2, 7);
-
-  // Control for the whole mesh selection
-  CheckBoxMesh = new QCheckBox(GroupArguments, "CheckBoxMesh");
-  CheckBoxMesh->setText(tr("SMESH_SELECT_WHOLE_MESH" ));
-  GroupArgumentsLayout->addMultiCellWidget(CheckBoxMesh, 1, 1, 0, 7);
-
-  // Controls for vector and points selection
-  TextLabel1 = new QLabel(GroupArguments, "TextLabel1");
-  GroupArgumentsLayout->addWidget(TextLabel1, 2, 0);
-
-  SelectButton1  = new QPushButton(GroupArguments, "SelectButton1");
-  SelectButton1->setText(tr("" ));
-  SelectButton1->setPixmap(image2);
-  SelectButton1->setToggleButton(FALSE);
-  GroupArgumentsLayout->addWidget(SelectButton1, 2, 1);
-
-  TextLabel1_1 = new QLabel(GroupArguments, "TextLabel1_1");
-  GroupArgumentsLayout->addWidget(TextLabel1_1, 2, 2);
-
-  SpinBox1_1 = new SMESHGUI_SpinBox(GroupArguments, "SpinBox1_1");
-  GroupArgumentsLayout->addWidget(SpinBox1_1, 2, 3);
-
-  TextLabel1_2 = new QLabel(GroupArguments, "TextLabel1_2");
-  GroupArgumentsLayout->addWidget(TextLabel1_2, 2, 4);
-
-  SpinBox1_2 = new SMESHGUI_SpinBox(GroupArguments, "SpinBox1_2");
-  GroupArgumentsLayout->addWidget(SpinBox1_2, 2, 5);
-
-  TextLabel1_3 = new QLabel(GroupArguments, "TextLabel1_3");
-  GroupArgumentsLayout->addWidget(TextLabel1_3, 2, 6);
-
-  SpinBox1_3 = new SMESHGUI_SpinBox(GroupArguments, "SpinBox1_3");
-  GroupArgumentsLayout->addWidget(SpinBox1_3, 2, 7);
-
-  TextLabel2 = new QLabel(GroupArguments, "TextLabel2");
-  TextLabel2->setText(tr("SMESH_POINT_2" ));
-  GroupArgumentsLayout->addWidget(TextLabel2, 3, 0);
-
-  SelectButton2  = new QPushButton(GroupArguments, "SelectButton2");
-  SelectButton2->setText(tr("" ));
-  SelectButton2->setPixmap(image2);
-  SelectButton2->setToggleButton(FALSE);
-  GroupArgumentsLayout->addWidget(SelectButton2, 3, 1);
-
-  TextLabel2_1 = new QLabel(GroupArguments, "TextLabel2_1");
-  TextLabel2_1->setText(tr("SMESH_X" ));
-  GroupArgumentsLayout->addWidget(TextLabel2_1, 3, 2);
-
-  SpinBox2_1 = new SMESHGUI_SpinBox(GroupArguments, "SpinBox2_1");
-  GroupArgumentsLayout->addWidget(SpinBox2_1, 3, 3);
-
-  TextLabel2_2 = new QLabel(GroupArguments, "TextLabel2_2");
-  TextLabel2_2->setText(tr("SMESH_Y" ));
-  GroupArgumentsLayout->addWidget(TextLabel2_2, 3, 4);
-
-  SpinBox2_2 = new SMESHGUI_SpinBox(GroupArguments, "SpinBox2_2");
-  GroupArgumentsLayout->addWidget(SpinBox2_2, 3, 5);
-
-  TextLabel2_3 = new QLabel(GroupArguments, "TextLabel2_3");
-  TextLabel2_3->setText(tr("SMESH_Z"));
-  GroupArgumentsLayout->addWidget(TextLabel2_3, 3, 6);
-
-  SpinBox2_3 = new SMESHGUI_SpinBox(GroupArguments, "SpinBox2_3");
-  GroupArgumentsLayout->addWidget(SpinBox2_3, 3, 7);
-
-  // Controls for "Create a copy" option
-  CheckBoxCopy = new QCheckBox(GroupArguments, "CheckBoxCopy");
-  CheckBoxCopy->setText(tr("SMESH_CREATE_COPY"));
-  GroupArgumentsLayout->addMultiCellWidget(CheckBoxCopy, 4, 4, 0, 2);
-
-
-  SMESHGUI_TranslationDlgLayout->addWidget(GroupArguments, 1, 0);
-
-  /* Initialisations */
-  SpinBox1_1->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox1_2->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox1_3->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox2_1->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox2_2->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-  SpinBox2_3->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
-
-  GroupArguments->show();
-  RadioButton1->setChecked(TRUE);
-
-  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  // Costruction of the logical filter
-  SMESH_TypeFilter* aMeshOrSubMeshFilter = new SMESH_TypeFilter (MESHorSUBMESH);
-  SMESH_TypeFilter* aSmeshGroupFilter    = new SMESH_TypeFilter (GROUP);
-
-  QPtrList<SUIT_SelectionFilter> aListOfFilters;
-  if (aMeshOrSubMeshFilter) aListOfFilters.append(aMeshOrSubMeshFilter);
-  if (aSmeshGroupFilter)    aListOfFilters.append(aSmeshGroupFilter);
-
-  myMeshOrSubMeshOrGroupFilter =
-    new SMESH_LogicalFilter(aListOfFilters, SMESH_LogicalFilter::LO_OR);
-
-  Init();
-
-  /* signals and slots connections */
-  connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-  connect(buttonApply, SIGNAL(clicked()),  this, SLOT(ClickOnApply()));
-  connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
-
-  connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(SelectButton1,        SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(SelectButton2,        SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
-
-  connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()),   this, SLOT(SelectionIntoArgument()));
-  /* to close dialog if study change */
-  connect(mySMESHGUI,       SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
-  connect(LineEditElements, SIGNAL(textChanged(const QString&)),    SLOT(onTextChange(const QString&)));
-  connect(CheckBoxMesh,     SIGNAL(toggled(bool)),                  SLOT(onSelectMesh(bool)));
-
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show(); /* displays Dialog */
-
-  ConstructorsClicked(0);
-  resize(0,0); // ??
-}
-
-//=================================================================================
-// function : ~SMESHGUI_TranslationDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_TranslationDlg::~SMESHGUI_TranslationDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void SMESHGUI_TranslationDlg::Init (bool ResetControls)
-{
-  myBusy = false;
-
-  myEditCurrentArgument = 0;
-  LineEditElements->clear();
-  myElementsId = "";
-  myNbOkElements = 0;
-
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-
-  myActor = 0;
-  myMesh = SMESH::SMESH_Mesh::_nil();
-
-  if (ResetControls) {
-    SpinBox1_1->SetValue(0.0);
-    SpinBox1_2->SetValue(0.0);
-    SpinBox1_3->SetValue(0.0);
-    SpinBox2_1->SetValue(0.0);
-    SpinBox2_2->SetValue(0.0);
-    SpinBox2_3->SetValue(0.0);
-
-    CheckBoxCopy->setChecked(false);
-    CheckBoxMesh->setChecked(false);
-    onSelectMesh(false);
-  }
-}
-
-//=================================================================================
-// function : ConstructorsClicked()
-// purpose  : Radio button management
-//=================================================================================
-void SMESHGUI_TranslationDlg::ConstructorsClicked (int constructorId)
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-
-  switch (constructorId) {
-  case 0:
-    {
-      TextLabel1->setText(tr("SMESH_POINT_1"));
-      TextLabel1_1->setText(tr("SMESH_X"));
-      TextLabel1_2->setText(tr("SMESH_Y"));
-      TextLabel1_3->setText(tr("SMESH_Z"));
-
-      SelectButton1->show();
-      TextLabel2->show();
-      SelectButton2->show();
-      TextLabel2_1->show();
-      SpinBox2_1->show();
-      TextLabel2_2->show();
-      SpinBox2_2->show();
-      TextLabel2_3->show();
-      SpinBox2_3->show();
-      break;
-    }
-  case 1:
-    {
-      TextLabel1->setText(tr("SMESH_VECTOR"));
-      TextLabel1_1->setText(tr("SMESH_DX"));
-      TextLabel1_2->setText(tr("SMESH_DY"));
-      TextLabel1_3->setText(tr("SMESH_DZ"));
-
-      SelectButton1->hide();
-      TextLabel2->hide();
-      SelectButton2->hide();
-      TextLabel2_1->hide();
-      SpinBox2_1->hide();
-      TextLabel2_2->hide();
-      SpinBox2_2->hide();
-      TextLabel2_3->hide();
-      SpinBox2_3->hide();
-      break;
-    }
-  }
-
-  if (myEditCurrentArgument != (QWidget*)LineEditElements) {
-    SMESH::SetPointRepresentation(false);
-    if (!CheckBoxMesh->isChecked())
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->SetSelectionMode( CellSelection );
-  }
-
-  myEditCurrentArgument = (QWidget*)LineEditElements;
-  LineEditElements->setFocus();
-
-  if (CheckBoxMesh->isChecked())
-    onSelectMesh(true);
-
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-void SMESHGUI_TranslationDlg::ClickOnApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return;
-
-  if (myNbOkElements) {
-    QStringList aListElementsId = QStringList::split(" ", myElementsId, false);
-
-    SMESH::long_array_var anElementsId = new SMESH::long_array;
-
-    anElementsId->length(aListElementsId.count());
-    for (int i = 0; i < aListElementsId.count(); i++)
-      anElementsId[i] = aListElementsId[i].toInt();
-
-    SMESH::DirStruct aVector;
-    if (GetConstructorId() == 0) {
-      aVector.PS.x = SpinBox2_1->GetValue() - SpinBox1_1->GetValue();
-      aVector.PS.y = SpinBox2_2->GetValue() - SpinBox1_2->GetValue();
-      aVector.PS.z = SpinBox2_3->GetValue() - SpinBox1_3->GetValue();
-    } else if (GetConstructorId() == 1) {
-      aVector.PS.x = SpinBox1_1->GetValue();
-      aVector.PS.y = SpinBox1_2->GetValue();
-      aVector.PS.z = SpinBox1_3->GetValue();
-    }
-
-    bool toCreateCopy = CheckBoxCopy->isChecked();
-
-    try {
-      SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
-      QApplication::setOverrideCursor(Qt::waitCursor);
-      aMeshEditor->Translate(anElementsId.inout(), aVector, toCreateCopy);
-      QApplication::restoreOverrideCursor();
-    } catch (...) {
-    }
-
-    mySelectionMgr->clearSelected();
-    SMESH::UpdateView();
-    Init(false);
-    ConstructorsClicked(GetConstructorId());
-  }
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  :
-//=================================================================================
-void SMESHGUI_TranslationDlg::ClickOnOk()
-{
-  ClickOnApply();
-  ClickOnCancel();
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_TranslationDlg::ClickOnCancel()
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySelectionMgr->clearFilters();
-  mySelectionMgr->clearSelected();
-  SMESH::SetPointRepresentation(false);
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode( ActorSelection );
-  mySMESHGUI->ResetState();
-  reject();
-}
-
-//=======================================================================
-// function : onTextChange()
-// purpose  :
-//=======================================================================
-void SMESHGUI_TranslationDlg::onTextChange (const QString& theNewText)
-{
-  QLineEdit* send = (QLineEdit*)sender();
-
-  if (myBusy) return;
-  myBusy = true;
-
-  if (send == LineEditElements)
-    myNbOkElements = 0;
-
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-
-  // hilight entered elements
-  SMDS_Mesh* aMesh = 0;
-  if (myActor)
-    aMesh = myActor->GetObject()->GetMesh();
-
-  if (aMesh) {
-    Handle(SALOME_InteractiveObject) anIO = myActor->getIO();
-    
-    TColStd_MapOfInteger newIndices;
-
-    QStringList aListId = QStringList::split(" ", theNewText, false);
-
-    if (send == LineEditElements) {
-      for (int i = 0; i < aListId.count(); i++) {
-       const SMDS_MeshElement * e = aMesh->FindElement(aListId[ i ].toInt());
-       if (e)
-         newIndices.Add(e->GetID());
-       myNbOkElements++;
-      }
-    }
-
-    mySelector->AddOrRemoveIndex( anIO, newIndices, false );
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->highlight( anIO, true, true );
-    
-    myElementsId = theNewText;
-  }
-
-  if (myNbOkElements) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
-
-  myBusy = false;
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_TranslationDlg::SelectionIntoArgument()
-{
-  if (myBusy) return;
-
-  // clear
-  myActor = 0;
-  QString aString = "";
-
-  myBusy = true;
-  if (myEditCurrentArgument == (QWidget*)LineEditElements) {
-    LineEditElements->setText(aString);
-    myNbOkElements = 0;
-    buttonOk->setEnabled(false);
-    buttonApply->setEnabled(false);
-  }
-  myBusy = false;
-
-  if (!GroupButtons->isEnabled()) // inactive
-    return;
-
-  // get selected mesh
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
-
-  int nbSel = aList.Extent();
-  if (nbSel != 1)
-    return;
-
-  Handle(SALOME_InteractiveObject) IO = aList.First();
-  myMesh = SMESH::GetMeshByIO(IO);
-  if (myMesh->_is_nil())
-    return;
-
-  myActor = SMESH::FindActorByObject(myMesh);
-  if (!myActor)
-    myActor = SMESH::FindActorByEntry(IO->getEntry());
-  if (!myActor)
-    return;
-
-  int aNbUnits = 0;
-
-  if (myEditCurrentArgument == (QWidget*)LineEditElements) {
-    myElementsId = "";
-
-    if (CheckBoxMesh->isChecked()) {
-      SMESH::GetNameOfSelectedIObjects( mySelectionMgr, aString );
-
-      if (!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) { //MESH
-        // get IDs from mesh
-        SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
-        if (!aSMDSMesh)
-          return;
-
-        for (int i = aSMDSMesh->MinElementID(); i <= aSMDSMesh->MaxElementID(); i++) {
-          const SMDS_MeshElement * e = aSMDSMesh->FindElement(i);
-          if (e) {
-            myElementsId += QString(" %1").arg(i);
-            aNbUnits++;
-          }
-        }
-      } else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) { //SUBMESH
-        // get submesh
-        SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO);
-
-        // get IDs from submesh
-        SMESH::long_array_var anElementsIds = new SMESH::long_array;
-        anElementsIds = aSubMesh->GetElementsId();
-        for (int i = 0; i < anElementsIds->length(); i++) {
-          myElementsId += QString(" %1").arg(anElementsIds[i]);
-        }
-        aNbUnits = anElementsIds->length();
-      } else { // GROUP
-        // get smesh group
-        SMESH::SMESH_GroupBase_var aGroup =
-          SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
-        if (aGroup->_is_nil())
-          return;
-
-        // get IDs from smesh group
-        SMESH::long_array_var anElementsIds = new SMESH::long_array;
-        anElementsIds = aGroup->GetListOfID();
-        for (int i = 0; i < anElementsIds->length(); i++) {
-          myElementsId += QString(" %1").arg(anElementsIds[i]);
-        }
-        aNbUnits = anElementsIds->length();
-      }
-    } else {
-      aNbUnits = SMESH::GetNameOfSelectedElements(mySelector, myActor->getIO(), aString);
-      myElementsId = aString;
-    }
-
-    if (aNbUnits < 1)
-      return;
-
-    myNbOkElements = true;
-  } else {
-    aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, myActor->getIO(), aString);
-    if (aNbUnits != 1)
-      return;
-
-    SMDS_Mesh* aMesh =  myActor->GetObject()->GetMesh();
-    if (!aMesh)
-      return;
-
-    const SMDS_MeshNode * n = aMesh->FindNode(aString.toInt());
-    if (!n)
-      return;
-
-    double x = n->X();
-    double y = n->Y();
-    double z = n->Z();
-
-    if (myEditCurrentArgument == (QWidget*)SpinBox1_1) {
-      SpinBox1_1->SetValue(x);
-      SpinBox1_2->SetValue(y);
-      SpinBox2_3->SetValue(z);
-    } else if (myEditCurrentArgument == (QWidget*)SpinBox2_1) {
-      SpinBox2_1->SetValue(x);
-      SpinBox2_2->SetValue(y);
-      SpinBox2_3->SetValue(z);
-    }
-  }
-
-  myBusy = true;
-  if (myEditCurrentArgument == (QWidget*)LineEditElements)
-    LineEditElements->setText(aString);
-  myBusy = false;
-
-  // OK
-  if (myNbOkElements) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose  :
-//=================================================================================
-void SMESHGUI_TranslationDlg::SetEditCurrentArgument()
-{
-  QPushButton* send = (QPushButton*)sender();
-
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySelectionMgr->clearSelected();
-  mySelectionMgr->clearFilters();
-
-  if (send == SelectElementsButton) {
-    myEditCurrentArgument = (QWidget*)LineEditElements;
-    SMESH::SetPointRepresentation(false);
-    if (CheckBoxMesh->isChecked()) {
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->SetSelectionMode( ActorSelection );
-      mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter);
-    } else {
-
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->SetSelectionMode( CellSelection );
-    }
-  } else if (send == SelectButton1) {
-    myEditCurrentArgument = (QWidget*)SpinBox1_1;
-    SMESH::SetPointRepresentation(true);
-
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode( NodeSelection );
-  } else if (send == SelectButton2) {
-    myEditCurrentArgument = (QWidget*)SpinBox2_1;
-    SMESH::SetPointRepresentation(true);
-
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode( NodeSelection );
-  }
-
-  myEditCurrentArgument->setFocus();
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_TranslationDlg::DeactivateActiveDialog()
-{
-  if (GroupConstructors->isEnabled()) {
-    GroupConstructors->setEnabled(false);
-    GroupArguments->setEnabled(false);
-    GroupButtons->setEnabled(false);
-    mySMESHGUI->ResetState();
-    mySMESHGUI->SetActiveDialogBox(0);
-  }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_TranslationDlg::ActivateThisDialog()
-{
-  /* Emit a signal to deactivate the active dialog */
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupConstructors->setEnabled(true);
-  GroupArguments->setEnabled(true);
-  GroupButtons->setEnabled(true);
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-    aViewWindow->SetSelectionMode( CellSelection );
-
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_TranslationDlg::enterEvent (QEvent*)
-{
-  if (!GroupConstructors->isEnabled())
-    ActivateThisDialog();
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_TranslationDlg::closeEvent (QCloseEvent*)
-{
-  /* same than click on cancel button */
-  this->ClickOnCancel();
-}
-
-//=======================================================================
-//function : hideEvent
-//purpose  : caused by ESC key
-//=======================================================================
-void SMESHGUI_TranslationDlg::hideEvent (QHideEvent*)
-{
-  if (!isMinimized())
-    ClickOnCancel();
-}
-
-//=======================================================================
-//function : onSelectMesh
-//purpose  :
-//=======================================================================
-void SMESHGUI_TranslationDlg::onSelectMesh (bool toSelectMesh)
-{
-  if (toSelectMesh)
-    TextLabelElements->setText(tr("SMESH_NAME"));
-  else
-    TextLabelElements->setText(tr("SMESH_ID_ELEMENTS"));
-
-  if (myEditCurrentArgument != LineEditElements) {
-    LineEditElements->clear();
-    return;
-  }
-
-  mySelectionMgr->clearFilters();
-  SMESH::SetPointRepresentation(false);
-
-  if (toSelectMesh) {
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode( ActorSelection );
-    mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter);
-    LineEditElements->setReadOnly(true);
-  } else {
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-      aViewWindow->SetSelectionMode( CellSelection );
-    LineEditElements->setReadOnly(false);
-    onTextChange(LineEditElements->text());
-  }
-
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : GetConstructorId()
-// purpose  :
-//=================================================================================
-int SMESHGUI_TranslationDlg::GetConstructorId()
-{
-  if (GroupConstructors != NULL && GroupConstructors->selected() != NULL)
-    return GroupConstructors->id(GroupConstructors->selected());
-  return -1;
-}
diff --git a/src/SMESHGUI/SMESHGUI_TranslationDlg.h b/src/SMESHGUI/SMESHGUI_TranslationDlg.h
deleted file mode 100644 (file)
index 117a71b..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_TranslationDlg.h
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header: 
-
-#ifndef DIALOGBOX_TRANSLATION_H
-#define DIALOGBOX_TRANSLATION_H
-
-#include "SalomeApp_SelectionMgr.h"
-
-#include "SMESH_LogicalFilter.hxx"
-
-// QT Includes
-#include <qdialog.h>
-
-class QGridLayout; 
-class QButtonGroup;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-class QCheckBox;
-class SMESHGUI;
-class SMESHGUI_SpinBox;
-class SMESH_Actor;
-class SVTK_ViewWindow;
-class SVTK_Selector;
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-
-//=================================================================================
-// class    : SMESHGUI_TranslationDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_TranslationDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_TranslationDlg( SMESHGUI*,
-                            const char* name = 0,
-                            bool modal = FALSE,
-                            WFlags fl = 0);
-    ~SMESHGUI_TranslationDlg();
-
-private:
-    void Init (bool ResetControls = true);
-    void closeEvent (QCloseEvent*);
-    void enterEvent (QEvent*);                             /* mouse enter the QWidget */
-    void hideEvent (QHideEvent*);                          /* ESC key */
-    int GetConstructorId();
-
-    SMESHGUI*                     mySMESHGUI;              /* Current SMESHGUI object */
-    SalomeApp_SelectionMgr*       mySelectionMgr;          /* User shape selection */
-    QString                       myElementsId;
-    int                           myNbOkElements;          /* to check when elements are defined */
-
-    SVTK_Selector*                mySelector;
-
-    QWidget*                      myEditCurrentArgument;
-
-    bool                          myBusy;
-    SMESH::SMESH_Mesh_var         myMesh;
-    SMESH_Actor*                  myActor;
-    SMESH_LogicalFilter*          myMeshOrSubMeshOrGroupFilter;
-    
-    QButtonGroup* GroupConstructors;
-    QRadioButton* RadioButton1;
-    QRadioButton* RadioButton2;
-    QGroupBox* GroupButtons;
-    QPushButton* buttonOk;
-    QPushButton* buttonCancel;
-    QPushButton* buttonApply;
-    QGroupBox* GroupArguments;
-    QLabel* TextLabelElements;
-    QPushButton* SelectElementsButton;
-    QLineEdit* LineEditElements;
-    QCheckBox* CheckBoxMesh;
-    QLabel* TextLabel1;
-    QPushButton* SelectButton1;
-    QLabel* TextLabel1_1;
-    SMESHGUI_SpinBox* SpinBox1_1;
-    QLabel* TextLabel1_2;
-    SMESHGUI_SpinBox* SpinBox1_2;
-    QLabel* TextLabel1_3;
-    SMESHGUI_SpinBox* SpinBox1_3;
-    QLabel* TextLabel2;
-    QPushButton* SelectButton2;
-    QLabel* TextLabel2_1;
-    SMESHGUI_SpinBox* SpinBox2_1;
-    QLabel* TextLabel2_2;
-    SMESHGUI_SpinBox* SpinBox2_2;
-    QLabel* TextLabel2_3;
-    SMESHGUI_SpinBox* SpinBox2_3;
-    QCheckBox* CheckBoxCopy;
-   
-    private slots:
-
-    void ConstructorsClicked(int constructorId);
-    void ClickOnOk();
-    void ClickOnCancel();
-    void ClickOnApply();
-    void SetEditCurrentArgument() ;
-    void SelectionIntoArgument() ;
-    void DeactivateActiveDialog() ;
-    void ActivateThisDialog() ;
-    void onTextChange(const QString&);
-    void onSelectMesh(bool toSelectMesh);
-    
-protected:
-    QGridLayout* SMESHGUI_TranslationDlgLayout;
-    QGridLayout* GroupConstructorsLayout;
-    QGridLayout* GroupButtonsLayout;
-    QGridLayout* GroupArgumentsLayout;
-};
-
-#endif // DIALOGBOX_TRANSLATION_H
diff --git a/src/SMESHGUI/SMESHGUI_TransparencyDlg.cxx b/src/SMESHGUI/SMESHGUI_TransparencyDlg.cxx
deleted file mode 100644 (file)
index 283306a..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_TransparencyDlg.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_TransparencyDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESH_Actor.h"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_OverrideCursor.h"
-
-#include "SALOME_ListIO.hxx"
-#include "SALOME_ListIteratorOfListIO.hxx"
-#include "SALOME_InteractiveObject.hxx"
-
-#include "SalomeApp_Study.h"
-#include "SalomeApp_SelectionMgr.h"
-
-#include "SVTK_ViewWindow.h"
-
-// QT Includes
-#include <qlabel.h>
-#include <qpushbutton.h>
-#include <qslider.h>
-#include <qlayout.h>
-#include <qgroupbox.h>
-
-using namespace std;
-
-//=================================================================================
-// class    : SMESHGUI_TransparencyDlg()
-// purpose  :
-//
-//=================================================================================
-SMESHGUI_TransparencyDlg::SMESHGUI_TransparencyDlg( SMESHGUI* theModule,
-                                                   const char* name,
-                                                   bool modal,
-                                                   WFlags fl)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-                WStyle_Title | WStyle_SysMenu | WDestructiveClose ),
-     mySMESHGUI( theModule ),
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) ),
-     myViewWindow( SMESH::GetViewWindow( theModule ) )
-{
-  if (!name)
-    setName("SMESHGUI_TransparencyDlg");
-  setCaption(tr("SMESH_TRANSPARENCY_TITLE" ));
-  setSizeGripEnabled(TRUE);
-  QGridLayout* SMESHGUI_TransparencyDlgLayout = new QGridLayout(this);
-  SMESHGUI_TransparencyDlgLayout->setSpacing(6);
-  SMESHGUI_TransparencyDlgLayout->setMargin(11);
-
-  /*************************************************************************/
-  QGroupBox* GroupC1 = new QGroupBox(this, "GroupC1");
-  GroupC1->setColumnLayout(0, Qt::Vertical);
-  GroupC1->layout()->setSpacing(0);
-  GroupC1->layout()->setMargin(0);
-  QGridLayout* GroupC1Layout = new QGridLayout(GroupC1->layout());
-  GroupC1Layout->setAlignment(Qt::AlignTop);
-  GroupC1Layout->setSpacing(6);
-  GroupC1Layout->setMargin(11);
-
-  TextLabelTransparent = new QLabel(GroupC1, "TextLabelTransparent");
-  TextLabelTransparent->setText(tr("SMESH_TRANSPARENCY_TRANSPARENT" ));
-  TextLabelTransparent->setAlignment(AlignLeft);
-  GroupC1Layout->addWidget(TextLabelTransparent, 0, 0);
-
-  ValueLab = new QLabel(GroupC1, "ValueLab");
-  ValueLab->setAlignment(AlignCenter);
-  ValueLab->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
-  QFont fnt = ValueLab->font(); fnt.setBold(true); ValueLab->setFont(fnt);
-  GroupC1Layout->addWidget(ValueLab, 0, 1);
-
-  TextLabelOpaque = new QLabel(GroupC1, "TextLabelOpaque");
-  TextLabelOpaque->setText(tr("SMESH_TRANSPARENCY_OPAQUE" ));
-  TextLabelOpaque->setAlignment(AlignRight);
-  GroupC1Layout->addWidget(TextLabelOpaque, 0, 2);
-
-  Slider1 = new QSlider(0, 10, 1, 5, Horizontal, GroupC1, "Slider1");
-  Slider1->setFocusPolicy(QWidget::NoFocus);
-  Slider1->setMinimumSize(300, 0);
-  Slider1->setTickmarks(QSlider::Above);
-  Slider1->setTickInterval(10);
-  Slider1->setTracking(true);
-  Slider1->setMinValue(0);
-  Slider1->setMaxValue(100);
-  Slider1->setLineStep(1);
-  Slider1->setPageStep(10);
-  GroupC1Layout->addMultiCellWidget(Slider1, 1, 1, 0, 2);
-
-  /*************************************************************************/
-  QGroupBox* GroupButtons = new QGroupBox(this, "GroupButtons");
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  QGridLayout* GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-
-  buttonOk = new QPushButton(GroupButtons, "buttonOk");
-  buttonOk->setText(tr("SMESH_BUT_CLOSE"));
-  buttonOk->setAutoDefault(TRUE);
-  buttonOk->setDefault(TRUE);
-  GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 0);
-  GroupButtonsLayout->addWidget(buttonOk, 0, 1);
-  GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 2);
-
-  SMESHGUI_TransparencyDlgLayout->addWidget(GroupC1,      0, 0);
-  SMESHGUI_TransparencyDlgLayout->addWidget(GroupButtons, 1, 0);
-
-  // Initial state
-  this->onSelectionChanged();
-
-  // signals and slots connections : after ValueHasChanged()
-  connect(buttonOk, SIGNAL(clicked()),         this, SLOT(ClickOnOk()));
-  connect(Slider1,  SIGNAL(valueChanged(int)), this, SLOT(SetTransparency()));
-  connect(Slider1,  SIGNAL(sliderMoved(int)),  this, SLOT(ValueHasChanged()));
-  connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnOk()));
-  connect(mySelectionMgr,  SIGNAL(currentSelectionChanged()), this, SLOT(onSelectionChanged()));
-
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show();
-}
-
-//=================================================================================
-// function : ~SMESHGUI_TransparencyDlg()
-// purpose  :
-//=================================================================================
-SMESHGUI_TransparencyDlg::~SMESHGUI_TransparencyDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=======================================================================
-// function : ClickOnOk()
-// purpose  :
-//=======================================================================
-void SMESHGUI_TransparencyDlg::ClickOnOk()
-{
-  close();
-}
-
-//=================================================================================
-// function : SetTransparency()
-// purpose  : Called when value of slider change
-//          : or the first time as initilisation
-//=================================================================================
-void SMESHGUI_TransparencyDlg::SetTransparency()
-{
-  if( myViewWindow ) {
-    SUIT_OverrideCursor wc;
-    float opacity = this->Slider1->value() / 100.;
-
-    SALOME_ListIO aList;
-    mySelectionMgr->selectedObjects(aList);
-
-    SALOME_ListIteratorOfListIO It (aList);
-    for (;It.More(); It.Next()) {
-      Handle(SALOME_InteractiveObject) IOS = It.Value();
-      SMESH_Actor* anActor = SMESH::FindActorByEntry(IOS->getEntry());
-      if (anActor)
-       anActor->SetOpacity(opacity);
-    }
-    myViewWindow->Repaint();
-  }
-  ValueHasChanged();
-}
-
-//=================================================================================
-// function : ValueHasChanged()
-// purpose  : Called when user moves a slider
-//=================================================================================
-void SMESHGUI_TransparencyDlg::ValueHasChanged()
-{
-  ValueLab->setText(QString::number(this->Slider1->value()) + "%");
-}
-
-//=================================================================================
-// function : onSelectionChanged()
-// purpose  : Called when selection is changed
-//=================================================================================
-void SMESHGUI_TransparencyDlg::onSelectionChanged()
-{
-  if( myViewWindow ) {
-    int opacity = 100;
-
-    SALOME_ListIO aList;
-    mySelectionMgr->selectedObjects(aList);
-
-    if (aList.Extent() == 1) {
-      Handle(SALOME_InteractiveObject) FirstIOS = aList.First();
-      if (!FirstIOS.IsNull()) {
-       SMESH_Actor* anActor = SMESH::FindActorByEntry(FirstIOS->getEntry());
-       if (anActor)
-         opacity = int(anActor->GetOpacity() * 100. + 0.5);
-      }
-    } else if (aList.Extent() > 1) {
-      SALOME_ListIteratorOfListIO It (aList);
-      int setOp = -1;
-      for (; It.More(); It.Next()) {
-       Handle(SALOME_InteractiveObject) IO = It.Value();
-       if (!IO.IsNull()) {
-         SMESH_Actor* anActor = SMESH::FindActorByEntry(IO->getEntry());
-         if (anActor) {
-           int op = int(anActor->GetOpacity() * 100. + 0.5);
-           if (setOp < 0)
-             setOp = op;
-           else if (setOp != op) {
-             setOp = 100;
-             break;
-           }
-         }
-       }
-      }
-      if (setOp >= 0)
-       opacity = setOp;
-    } else {
-    }
-    Slider1->setValue(opacity);
-  }
-  ValueHasChanged();
-}
diff --git a/src/SMESHGUI/SMESHGUI_TransparencyDlg.h b/src/SMESHGUI/SMESHGUI_TransparencyDlg.h
deleted file mode 100644 (file)
index c1cced6..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_TransparencyDlg.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef DIALOGBOX_TRANSPARENCYDLG_H
-#define DIALOGBOX_TRANSPARENCYDLG_H
-
-// QT Includes
-#include <qdialog.h>
-
-class QLabel;
-class QPushButton;
-class QSlider;
-class SalomeApp_SelectionMgr;
-class SVTK_Selector;
-class SVTK_ViewWindow;
-class SMESHGUI;
-
-//=================================================================================
-// class    : SMESHGUI_TransparencyDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_TransparencyDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    SMESHGUI_TransparencyDlg( SMESHGUI*,
-                             const char* name = 0,
-                             bool modal = false,
-                             WFlags fl = 0 );
-
-    ~SMESHGUI_TransparencyDlg();
-
-private :
-
-  SMESHGUI*               mySMESHGUI;
-  SalomeApp_SelectionMgr* mySelectionMgr;
-  SVTK_ViewWindow*        myViewWindow;
-
-  QPushButton*      buttonOk;
-  QLabel*           TextLabelOpaque;
-  QLabel*           ValueLab;
-  QLabel*           TextLabelTransparent;
-  QSlider*          Slider1;
-
-public slots:
-      
-    void ClickOnOk();
-    void ValueHasChanged();
-    void SetTransparency();
-    void onSelectionChanged();
-};
-
-#endif // DIALOGBOX_TRANSPARENCYDLG_H
diff --git a/src/SMESHGUI/SMESHGUI_Utils.cxx b/src/SMESHGUI/SMESHGUI_Utils.cxx
deleted file mode 100644 (file)
index 78b9974..0000000
+++ /dev/null
@@ -1,272 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-
-
-#include <qstring.h>
-
-#include "SMESHGUI_Utils.h"
-
-#include "OB_Browser.h"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_Application.h"
-#include "SUIT_Session.h"
-
-#include "SalomeApp_SelectionMgr.h"
-#include "SalomeApp_Application.h"
-#include "SalomeApp_Module.h"
-#include "SalomeApp_Study.h"
-
-#include "SALOME_ListIO.hxx"
-
-#include "SALOMEconfig.h"
-#include CORBA_CLIENT_HEADER(GEOM_Gen)
-
-#include "utilities.h"
-
-//using namespace std;
-
-namespace SMESH{
-
-  SUIT_Desktop*
-  GetDesktop(const CAM_Module* theModule)
-  {
-    return theModule->application()->desktop();
-  }
-
-  SalomeApp_SelectionMgr*
-  GetSelectionMgr(const SalomeApp_Module* theModule)
-  {
-    return theModule->getApp()->selectionMgr();
-  }
-
-  SUIT_ResourceMgr*
-  GetResourceMgr( const SalomeApp_Module* )
-  {
-    return SUIT_Session::session()->resourceMgr();
-  }
-
-  _PTR(Study)
-  GetCStudy(const SalomeApp_Study* theStudy)
-  {
-    return theStudy->studyDS();
-  }
-
-  CORBA::Object_var 
-  DataOwnerToObject(const SalomeApp_DataOwnerPtr& theOwner)
-  {
-    CORBA::Object_var anObj;
-    if(theOwner){
-      const Handle(SALOME_InteractiveObject)& anIO = theOwner->IO();
-      if(!anIO.IsNull()){
-       if(anIO->hasEntry()){
-         _PTR(Study) aStudy = GetActiveStudyDocument();
-         _PTR(SObject) aSObj = aStudy->FindObjectID(anIO->getEntry());
-         anObj = SObjectToObject(aSObj,aStudy);
-       }
-      }
-    }
-    return anObj;
-  }
-
-
-  SUIT_Study* GetActiveStudy()
-  {
-    SUIT_Application* app = SUIT_Session::session()->activeApplication();
-    if (app)
-      return app->activeStudy();
-    else
-      return NULL;
-  }
-
-  SUIT_ViewWindow* GetActiveWindow()
-  {
-    SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
-      (SUIT_Session::session()->activeApplication());
-    if (app && app->desktop() )
-      return app->desktop()->activeWindow();
-    else
-      return NULL;
-  }
-
-  _PTR(Study) GetActiveStudyDocument()
-  {
-    SalomeApp_Study* aStudy = dynamic_cast<SalomeApp_Study*>(GetActiveStudy());
-    if (aStudy)
-      return aStudy->studyDS();
-    else
-      return _PTR(Study)();
-  }
-
-  _PTR(SObject) FindSObject (CORBA::Object_ptr theObject)
-  {
-    SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
-      (SUIT_Session::session()->activeApplication());
-    if (app && !CORBA::is_nil(theObject)) {
-      if(_PTR(Study) aStudy = GetActiveStudyDocument()){
-       CORBA::String_var anIOR = app->orb()->object_to_string(theObject);
-       if (strcmp(anIOR.in(), "") != 0)
-         return aStudy->FindObjectIOR(anIOR.in());
-      }
-    }
-    return _PTR(SObject)();
-  }
-
-  void SetName (_PTR(SObject) theSObject, const char* theName)
-  {
-    _PTR(Study) aStudy = GetActiveStudyDocument();
-    if (aStudy->GetProperties()->IsLocked())
-      return;
-    _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
-    _PTR(GenericAttribute) anAttr =
-      aBuilder->FindOrCreateAttribute(theSObject, "AttributeName");
-    _PTR(AttributeName) aName = anAttr;
-    if (aName)
-      aName->SetValue(theName);
-  }
-
-  void SetValue (_PTR(SObject) theSObject, const char* theValue)
-  {
-    _PTR(Study) aStudy = GetActiveStudyDocument();
-    if (aStudy->GetProperties()->IsLocked())
-      return;
-    _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
-    _PTR(GenericAttribute) anAttr =
-      aBuilder->FindOrCreateAttribute(theSObject, "AttributeComment");
-    _PTR(AttributeComment) aComment = anAttr;
-    if (aComment)
-      aComment->SetValue(theValue);
-  }
-
-  CORBA::Object_var SObjectToObject (_PTR(SObject) theSObject,
-                                     _PTR(Study)   theStudy)
-  {
-    SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
-      (SUIT_Session::session()->activeApplication());
-    if (theSObject) {
-      _PTR(GenericAttribute) anAttr;
-      if (theSObject->FindAttribute(anAttr, "AttributeIOR")) {
-       _PTR(AttributeIOR) anIOR = anAttr;
-       CORBA::String_var aVal = anIOR->Value().c_str();
-       return app->orb()->string_to_object(aVal);
-      }
-    }
-    return CORBA::Object::_nil();
-  }
-
-  CORBA::Object_var SObjectToObject (_PTR(SObject) theSObject)
-  {
-    _PTR(Study) aStudy = GetActiveStudyDocument();
-    return SObjectToObject(theSObject,aStudy);
-  }
-
-  CORBA::Object_var IObjectToObject (const Handle(SALOME_InteractiveObject)& theIO)
-  {
-    if (!theIO.IsNull()) {
-      if (theIO->hasEntry()) {
-       _PTR(Study) aStudy = GetActiveStudyDocument();
-       _PTR(SObject) anObj = aStudy->FindObjectID(theIO->getEntry());
-       return SObjectToObject(anObj,aStudy);
-      }
-    }
-    return CORBA::Object::_nil();
-  }
-
-  CORBA::Object_var IORToObject (const char* theIOR)
-  {
-    SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
-      (SUIT_Session::session()->activeApplication());
-    return app->orb()->string_to_object(theIOR);
-  }
-
-  int GetNameOfSelectedIObjects(SalomeApp_SelectionMgr* theMgr, QString& theName)
-  {
-    if (!theMgr)
-      return 0;
-
-    SALOME_ListIO selected;
-    theMgr->selectedObjects(selected);
-    int aNbSel = selected.Extent();
-    if (aNbSel == 1) {
-      Handle(SALOME_InteractiveObject) anIObject = selected.First();
-      theName = anIObject->getName();
-    } else {
-      theName = QObject::tr("SMESH_OBJECTS_SELECTED").arg(aNbSel);
-    }
-    return aNbSel;
-  }
-
-  _PTR(SObject) GetMeshOrSubmesh (_PTR(SObject) theSObject)
-  {
-    GEOM::GEOM_Object_var aShape = SObjectToInterface<GEOM::GEOM_Object>(theSObject);
-    if (!aShape->_is_nil()){ //It s a shape
-      return theSObject->GetFather();
-    }
-    _PTR(SObject) aSObject;
-    if (theSObject->ReferencedObject(aSObject)) {
-      aSObject = theSObject->GetFather();
-      return aSObject->GetFather();
-    }
-    return theSObject->GetFather();
-  }
-
-  void ModifiedMesh (_PTR(SObject) theSObject, bool theIsRight)
-  {
-    _PTR(Study) aStudy = GetActiveStudyDocument();
-    if (aStudy->GetProperties()->IsLocked())
-      return;
-
-    _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
-    _PTR(GenericAttribute) anAttr =
-      aBuilder->FindOrCreateAttribute(theSObject,"AttributePixMap");
-    _PTR(AttributePixMap) aPixmap = anAttr;
-    if (theIsRight) {
-      aPixmap->SetPixMap("ICON_SMESH_TREE_MESH");
-    } else {
-      aPixmap->SetPixMap("ICON_SMESH_TREE_MESH_WARN");
-    }
-
-    _PTR(ChildIterator) anIter = aStudy->NewChildIterator(theSObject);
-    for (int i = 1; anIter->More(); anIter->Next(), i++) {
-      _PTR(SObject) aSObj = anIter->Value();
-      if (i >= 4) {
-       _PTR(ChildIterator) anIter1 = aStudy->NewChildIterator(aSObj);
-       for (; anIter1->More(); anIter1->Next()) {
-         _PTR(SObject) aSObj1 = anIter1->Value();
-         anAttr = aBuilder->FindOrCreateAttribute(aSObj1, "AttributePixMap");
-         aPixmap = anAttr;
-         if (theIsRight) {
-           aPixmap->SetPixMap("ICON_SMESH_TREE_MESH");
-         } else {
-           aPixmap->SetPixMap("ICON_SMESH_TREE_MESH_WARN");
-         }
-       }
-      }
-    }
-  }
-
-//  void UpdateObjBrowser (bool)
-//  {
-//    //SMESHGUI::activeStudy()->updateObjBrowser(true);
-//    //SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>
-//    //  (SUIT_Session::session()->activeApplication());
-//    //if (anApp) anApp->objectBrowser()->updateTree();
-//    SMESHGUI::GetSMESHGUI()->updateObjBrowser();
-//  }
-}
diff --git a/src/SMESHGUI/SMESHGUI_Utils.h b/src/SMESHGUI/SMESHGUI_Utils.h
deleted file mode 100644 (file)
index 69e1f61..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-
-#ifndef SMESHGUI_Utils_HeaderFile
-#define SMESHGUI_Utils_HeaderFile
-
-#include <CORBA.h>
-
-#include "SALOMEDSClient_definitions.hxx"
-#include "SALOME_InteractiveObject.hxx"
-#include "SalomeApp_DataOwner.h"
-
-class QString;
-
-class SUIT_ViewWindow;
-class SUIT_Desktop;
-class SUIT_Study;
-class SUIT_ResourceMgr;
-
-class CAM_Module;
-
-class SALOMEDSClient_Study;
-class SALOMEDSClient_SObject;
-
-class SalomeApp_Study;
-class SalomeApp_Module;
-class SalomeApp_SelectionMgr;
-
-namespace SMESH {
-
-  SUIT_Desktop*
-  GetDesktop(const CAM_Module* theModule);
-
-  SalomeApp_SelectionMgr*
-  GetSelectionMgr(const SalomeApp_Module* theModule);
-
-  SalomeApp_Study*
-  GetAppStudy(const CAM_Module* theModule);
-
-  SUIT_ResourceMgr*
-  GetResourceMgr( const SalomeApp_Module* );
-  
-  _PTR(Study)
-  GetCStudy(const SalomeApp_Study* theStudy);
-
-  CORBA::Object_var DataOwnerToObject(const SalomeApp_DataOwnerPtr& theOwner);
-
-  template<class TInterface> typename TInterface::_var_type
-    DataOwnerToInterface(const SalomeApp_DataOwnerPtr& theDataOwner)
-    {
-      CORBA::Object_var anObj = DataOwnerToObject(theDataOwner);
-      if(!CORBA::is_nil(anObj))
-       return TInterface::_narrow(anObj);
-      return TInterface::_nil();
-    }
-
-
-  SUIT_Study* GetActiveStudy();
-
-  SUIT_ViewWindow* GetActiveWindow();
-
-  _PTR(Study) GetActiveStudyDocument();
-
-  _PTR(SObject) FindSObject(CORBA::Object_ptr theObject);
-
-  void SetName  (_PTR(SObject) theSObject, const char* theName);
-  void SetValue (_PTR(SObject) theSObject, const char* theValue);
-
-  CORBA::Object_var SObjectToObject (_PTR(SObject) theSObject,
-                                    _PTR(Study) theStudy);
-
-  CORBA::Object_var SObjectToObject(_PTR(SObject) theSObject);
-
-  template<class TInterface> typename TInterface::_var_type
-    SObjectToInterface(_PTR(SObject) theSObject)
-    {
-      CORBA::Object_var anObj = SObjectToObject(theSObject);
-      if(!CORBA::is_nil(anObj))
-       return TInterface::_narrow(anObj);
-      return TInterface::_nil();
-    }
-
-  CORBA::Object_var IObjectToObject(const Handle(SALOME_InteractiveObject)& theIO);
-
-  template<class TInterface> typename TInterface::_var_type
-    IObjectToInterface(const Handle(SALOME_InteractiveObject)& theIO)
-    {
-      CORBA::Object_var anObj = IObjectToObject(theIO);
-      if(!CORBA::is_nil(anObj))
-       return TInterface::_narrow(anObj);
-      return TInterface::_nil();
-    }
-
-  CORBA::Object_var IORToObject(const char* theIOR);
-
-  template<class TInterface> typename TInterface::_var_type
-    IORToInterface(const char* theIOR)
-    {
-      CORBA::Object_var anObj = IORToObject(theIOR);
-      if(!CORBA::is_nil(anObj))
-       return TInterface::_narrow(anObj);
-      return TInterface::_nil();
-    }
-
-  int GetNameOfSelectedIObjects (SalomeApp_SelectionMgr*, QString& theName);
-
-  _PTR(SObject) GetMeshOrSubmesh (_PTR(SObject) theSObject);
-
-  void ModifiedMesh (_PTR(SObject) theSObject, bool theIsRight);
-
-//  void UpdateObjBrowser (bool);
-}
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_XmlHandler.cxx b/src/SMESHGUI/SMESHGUI_XmlHandler.cxx
deleted file mode 100644 (file)
index 00a1e26..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-//  SMESH SMESHGUI : reading of xml file with list of available hypotheses and algorithms
-//  Copyright (C) 2003  CEA
-//
-//  This library is free software; you can redistribute it and/or
-// //  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_XmlHandler.cxx
-//  Author : Julia DOROVSKIKH
-//  Module : SMESH
-//  $Header$
-
-#define  INCLUDE_MENUITEM_DEF 
-
-// QT Include
-#include <qfileinfo.h>
-#include <qstringlist.h>
-
-#include "SMESHGUI.h"
-#include "SUIT_ResourceMgr.h"
-#include "SUIT_Desktop.h"
-
-#include "SMESHGUI_XmlHandler.h"
-#include "SMESHGUI_Hypotheses.h"
-#include "SMESHGUI_Utils.h"
-
-#include "utilities.h"
-
-using namespace std;
-
-/*!
-  Constructor
-*/
-SMESHGUI_XmlHandler::SMESHGUI_XmlHandler()
-{
-}
-
-/*!
-  Destructor
-*/
-SMESHGUI_XmlHandler::~SMESHGUI_XmlHandler()
-{
-}
-
-/*!
-  Starts parsing of document. Does some initialization
-
-  Reimplemented from QXmlDefaultHandler.
-*/
-bool SMESHGUI_XmlHandler::startDocument()
-{
-  myErrorProt = "";
-  return TRUE;
-}
-
-/*!
-  Does different actions depending on the name of the tag and the
-  state you are in document.
-
-  Reimplemented from QXmlDefaultHandler.
-*/
-bool SMESHGUI_XmlHandler::startElement (const QString&, const QString&, 
-                                        const QString& qName, 
-                                        const QXmlAttributes& atts)
-{
-  if (qName == "meshers")
-  {
-    myHypothesesMap.clear();
-    myAlgorithmsMap.clear();
-  }
-  else if (qName == "meshers-group") // group of hypotheses and algorithms
-  {
-//    if (atts.value("server-lib") != "")
-    {
-      myPluginName = atts.value("name");
-      myServerLib  = atts.value("server-lib");
-      myClientLib  = atts.value("gui-lib");
-
-      QString aResName = atts.value("resources");
-      if (aResName != "")
-      {
-        MESSAGE("Loading Resources " << aResName);
-        SUIT_ResourceMgr* resMgr = SMESHGUI::resourceMgr();
-        resMgr->loadTranslator("resources",aResName+"_msg_en.qm");
-       resMgr->loadTranslator("resources",aResName+"_images.qm");
-      }
-    }
-  }
-  else if (qName == "hypotheses") // group of hypotheses
-  {
-  }
-  else if (qName == "algorithms") // group of algorithms
-  {
-  }
-  else if (qName == "hypothesis" || qName == "algorithm") // hypothesis or algorithm
-  {
-    if (atts.value("type") != "")
-    {
-      QString aHypAlType = atts.value("type");
-      QString aLabel = atts.value("label-id");
-      QString anIcon = atts.value("icon-id");
-      bool isAux = atts.value("auxiliary") == "true";
-      
-      QString aDimStr = atts.value("dim");
-      aDimStr = aDimStr.remove( ' ' );
-      QStringList aDimList = QStringList::split( ',', aDimStr );
-      QStringList::iterator anIter;
-      bool isOk;
-      QValueList<int> aDim;
-      for ( anIter = aDimList.begin(); anIter != aDimList.end(); ++anIter )
-      {
-        int aVal = (*anIter).toInt( &isOk );
-        if ( isOk )
-          aDim.append( aVal - 1 );
-      }
-      
-      HypothesisData* aHypLibNames =
-        new HypothesisData (myPluginName, myServerLib, myClientLib,
-                            aLabel, anIcon, aDim, isAux );
-
-      if (qName == "algorithm")
-      {
-        myAlgorithmsMap[(char*)aHypAlType.latin1()] = aHypLibNames;
-      }
-      else
-      {
-        myHypothesesMap[(char*)aHypAlType.latin1()] = aHypLibNames;
-      }
-    }
-  }
-  else
-  {
-    // error
-    return FALSE;
-  }
-  return TRUE;
-}
-
-
-/*!
-  Reimplemented from QXmlDefaultHandler.
-*/
-bool SMESHGUI_XmlHandler::endElement (const QString&, const QString&, const QString&)
-{
-  return TRUE;
-}
-
-
-/*!
-  Reimplemented from QXmlDefaultHandler.
-*/
-bool SMESHGUI_XmlHandler::characters (const QString& ch)
-{
-  // we are not interested in whitespaces
-  QString ch_simplified = ch.simplifyWhiteSpace();
-  if ( ch_simplified.isEmpty() )
-    return TRUE;
-  return TRUE;
-}
-
-
-/*!
-  Returns the default error string.
-
-  Reimplemented from QXmlDefaultHandler.
-*/
-QString SMESHGUI_XmlHandler::errorString()
-{
-  return "the document is not in the quote file format";
-}
-
-/*!
-  Returns the error protocol if parsing failed
-
-  Reimplemented from QXmlDefaultHandler.
-*/
-QString SMESHGUI_XmlHandler::errorProtocol()
-{
-  return myErrorProt;
-}
-
-/*!
-  Returns exception
-
-  Reimplemented from QXmlDefaultHandler.
-*/
-bool SMESHGUI_XmlHandler::fatalError (const QXmlParseException& exception)
-{
-  myErrorProt += QString("fatal parsing error: %1 in line %2, column %3\n")
-    .arg(exception.message())
-    .arg(exception.lineNumber())
-    .arg(exception.columnNumber());
-  
-  return QXmlDefaultHandler::fatalError( exception );
-}
diff --git a/src/SMESHGUI/SMESHGUI_XmlHandler.h b/src/SMESHGUI/SMESHGUI_XmlHandler.h
deleted file mode 100644 (file)
index c64ff86..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-//  SMESH SMESHGUI : reading of xml file with list of available hypotheses and algorithms
-//
-//  Copyright (C) 2003  CEA
-//
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_XmlHandler.cxx
-//  Author : Julia DOROVSKIKH
-//  Module : SMESH
-//  $Header$
-
-#ifndef SMESHGUI_XmlHandler_HeaderFile
-#define SMESHGUI_XmlHandler_HeaderFile
-
-#include "SMESHGUI_Hypotheses.h"
-
-#include <qxml.h>
-#include <map>
-
-class SMESHGUI_XmlHandler : public QXmlDefaultHandler
-{
- public:
-  SMESHGUI_XmlHandler();
-  virtual ~SMESHGUI_XmlHandler();
-
-  bool startDocument();
-  bool startElement( const QString& namespaceURI, const QString& localName, 
-                    const QString& qName, const QXmlAttributes& atts );
-  bool endElement( const QString& namespaceURI, const QString& localName, const QString& qName );
-  bool characters( const QString& ch );
-
-  QString errorString();
-  QString errorProtocol();
-  bool fatalError   (const QXmlParseException& exception);
-
- public:
-  std::map<std::string, HypothesisData*> myHypothesesMap;
-  std::map<std::string, HypothesisData*> myAlgorithmsMap;
-
- private:
-  QString myErrorProt;
-  QString myPluginName;
-  QString myServerLib;
-  QString myClientLib;
-};
-
-
-#endif
diff --git a/src/SMESHGUI/SMESHGUI_aParameter.cxx b/src/SMESHGUI/SMESHGUI_aParameter.cxx
deleted file mode 100644 (file)
index 3e513f0..0000000
+++ /dev/null
@@ -1,941 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_aParameter.cxx
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_aParameter.h"
-
-#include <qspinbox.h>
-#include <qvalidator.h>
-#include <qlineedit.h>
-#include <qtextedit.h>
-#include <qcombobox.h>
-#include <qcheckbox.h>
-#include <qtable.h>
-#include <qvalidator.h>
-#include <qpushbutton.h>
-#include <qlayout.h>
-
-#include <QtxDblSpinBox.h>
-
-SMESHGUI_aParameter::~SMESHGUI_aParameter() {}
-
-QString SMESHGUI_aParameter::sigValueChanged() const
-{
-  return QString::null;
-}
-
-//=================================================================================
-// class    : SMESHGUI_intParameter
-// purpose  :
-//=================================================================================
-SMESHGUI_intParameter::SMESHGUI_intParameter (const int      theInitValue,
-                                              const QString& theLabel,
-                                              const int      theBottom,
-                                              const int      theTop)
-     :SMESHGUI_aParameter(theLabel),
-       _top(theTop), _bottom(theBottom), _initValue(theInitValue),
-       _newValue( theInitValue )
-{
-}
-SMESHGUI_aParameter::Type SMESHGUI_intParameter::GetType() const
-{
-  return SMESHGUI_aParameter::INT;
-}
-bool SMESHGUI_intParameter::GetNewInt (int & theValue) const
-{
-  theValue = _newValue;
-  return _newValue != _initValue;
-}
-bool SMESHGUI_intParameter::GetNewDouble (double & Value) const
-{
-  return false;
-}
-bool SMESHGUI_intParameter::GetNewText (QString & Value) const
-{
-  return false;
-}
-
-QWidget* SMESHGUI_intParameter::CreateWidget( QWidget* parent ) const
-{
-  return new QSpinBox( parent );
-}
-  
-void SMESHGUI_intParameter::InitializeWidget (QWidget* theQWidget) const
-{
-  QSpinBox * aSpin = dynamic_cast< QSpinBox *>(theQWidget);
-  if (aSpin) {
-    aSpin->setMinValue(_bottom);
-    aSpin->setMaxValue(_top);
-    aSpin->setValue(_initValue);
-  }
-}
-void SMESHGUI_intParameter::TakeValue (QWidget* theQWidget)
-{
-  QSpinBox * aSpin = dynamic_cast< QSpinBox *>(theQWidget);
-  if (aSpin)
-    _newValue = aSpin->value();
-}
-
-QString SMESHGUI_intParameter::sigValueChanged() const
-{
-  return SIGNAL( valueChanged( int ) );
-}
-
-//=================================================================================
-// class    : SMESHGUI_doubleParameter
-// purpose  :
-//=================================================================================
-SMESHGUI_doubleParameter::SMESHGUI_doubleParameter (const double   theInitValue,
-                                                    const QString& theLabel,
-                                                    const double   theBottom,
-                                                    const double   theTop,
-                                                    const double   theStep,
-                                                    const int      theDecimals)
-     :SMESHGUI_aParameter(theLabel),
-       _top(theTop), _bottom(theBottom), _step(theStep),
-       _initValue(theInitValue), _decimals(theDecimals)
-{
-}
-SMESHGUI_aParameter::Type SMESHGUI_doubleParameter::GetType() const
-{
-  return SMESHGUI_aParameter::DOUBLE;
-}
-bool SMESHGUI_doubleParameter::GetNewInt (int & theValue) const
-{
-  return false;
-}
-bool SMESHGUI_doubleParameter::GetNewDouble (double & Value) const
-{
-  Value = _newValue;
-  return _newValue != _initValue;
-}
-bool SMESHGUI_doubleParameter::GetNewText (QString & Value) const
-{
-  return false;
-}
-
-QWidget* SMESHGUI_doubleParameter::CreateWidget( QWidget* parent ) const
-{
-  return new QtxDblSpinBox( parent );
-}
-
-void SMESHGUI_doubleParameter::InitializeWidget (QWidget* theQWidget) const
-{
-  QtxDblSpinBox* aSpin = dynamic_cast<QtxDblSpinBox*>(theQWidget);
-  if (aSpin) {
-    aSpin->setPrecision(_decimals);
-#ifdef NEW_GUI
-    aSpin->setDblPrecision(_bottom);
-#endif
-    aSpin->setRange(_bottom, _top);
-    aSpin->setValue(_initValue);
-    aSpin->setLineStep(_step);
-  }
-}
-void SMESHGUI_doubleParameter::TakeValue (QWidget* theQWidget)
-{
-  QtxDblSpinBox* aSpin = dynamic_cast<QtxDblSpinBox*>(theQWidget);
-  if (aSpin)
-    _newValue = aSpin->value();
-}
-
-QString SMESHGUI_doubleParameter::sigValueChanged() const
-{
-  return SIGNAL( valueChanged( double ) );
-}
-
-//=================================================================================
-// class    : SMESHGUI_strParameter
-// purpose  :
-//=================================================================================
-SMESHGUI_strParameter::SMESHGUI_strParameter (const QString& theInitValue,
-                                              const QString& theLabel)
-     :SMESHGUI_aParameter(theLabel),
-      _initValue(theInitValue)
-{
-}
-SMESHGUI_aParameter::Type SMESHGUI_strParameter::GetType() const
-{
-  return SMESHGUI_aParameter::STRING;
-}
-bool SMESHGUI_strParameter::GetNewInt (int & theValue) const
-{
-  return false;
-}
-bool SMESHGUI_strParameter::GetNewDouble (double & Value) const
-{
-  return false;
-}
-bool SMESHGUI_strParameter::GetNewText (QString & theValue) const
-{
-  theValue = _newValue;
-  return _newValue != _initValue;
-}
-
-QWidget* SMESHGUI_strParameter::CreateWidget( QWidget* parent ) const
-{
-  return new QLineEdit( parent );
-}
-
-void SMESHGUI_strParameter::InitializeWidget (QWidget* theQWidget) const
-{
-  QLineEdit* anEdit = dynamic_cast< QLineEdit* >(theQWidget);
-  if (anEdit) {
-    anEdit->setText(_initValue);
-  }
-}
-void SMESHGUI_strParameter::TakeValue (QWidget* theQWidget)
-{
-  QLineEdit* anEdit = dynamic_cast< QLineEdit* >(theQWidget);
-  if (anEdit)
-    _newValue = anEdit->text();
-}
-
-QString SMESHGUI_strParameter::sigValueChanged() const
-{
-  return SIGNAL( textChanged( const QString& ) );
-}
-
-
-
-//=================================================================================
-// class    : SMESHGUI_dependParameter
-// purpose  :
-//=================================================================================
-SMESHGUI_dependParameter::SMESHGUI_dependParameter( const QString& label )
-: SMESHGUI_aParameter( label )
-{
-}
-
-const SMESHGUI_dependParameter::ShownMap& SMESHGUI_dependParameter::shownMap() const
-{
-  return myShownMap;
-}
-
-SMESHGUI_dependParameter::ShownMap& SMESHGUI_dependParameter::shownMap()
-{
-  return myShownMap;
-}
-
-
-  
-
-
-//=================================================================================
-// class    : SMESHGUI_enumParameter
-// purpose  :
-//=================================================================================
-SMESHGUI_enumParameter::SMESHGUI_enumParameter( const QStringList& values,
-                                                const int initValue,
-                                                const QString& label )
-: SMESHGUI_dependParameter( label ),
-  myInitValue( initValue ),
-  myValue( initValue ),
-  myValues( values )
-{
-}
-
-SMESHGUI_enumParameter::~SMESHGUI_enumParameter()
-{
-}
-
-SMESHGUI_aParameter::Type SMESHGUI_enumParameter::GetType() const
-{
-  return SMESHGUI_aParameter::ENUM;
-}
-
-bool SMESHGUI_enumParameter::GetNewInt( int& v ) const
-{
-  v = myValue;
-  return myValue!=myInitValue;
-}
-
-bool SMESHGUI_enumParameter::GetNewDouble( double& ) const
-{
-  return false;
-}
-
-bool SMESHGUI_enumParameter::GetNewText( QString& v ) const
-{
-  bool res = myValue>=0 && myValue<Count();
-
-  if( res )
-    v = myValues[ myValue ];
-
-  return res && v!=myInitValue;
-}
-
-QWidget* SMESHGUI_enumParameter::CreateWidget( QWidget* parent ) const
-{
-  return new QComboBox( parent );
-}
-
-void SMESHGUI_enumParameter::InitializeWidget( QWidget* w ) const
-{
-  if( w && w->inherits( "QComboBox" ) )
-  {
-    QComboBox* c = ( QComboBox* ) w;
-    c->clear();
-    c->insertStringList( myValues );
-    c->setCurrentItem( myInitValue );
-  }
-}
-
-void SMESHGUI_enumParameter::TakeValue( QWidget* w )
-{
-  if( w && w->inherits( "QComboBox" ) )
-  {
-    QComboBox* c = ( QComboBox* ) w;
-    myValue = c->currentItem();
-  }
-}
-
-int SMESHGUI_enumParameter::Count() const
-{
-  return myValues.count();
-}
-
-QString SMESHGUI_enumParameter::sigValueChanged() const
-{
-  return SIGNAL( activated( int ) );
-}
-
-
-//=================================================================================
-// class    : SMESHGUI_boolParameter
-// purpose  :
-//=================================================================================
-SMESHGUI_boolParameter::SMESHGUI_boolParameter( const bool initValue,
-                                                const QString& label )
-: SMESHGUI_dependParameter( label ),
-  myInitValue( initValue ),
-  myValue( myInitValue )
-{
-}
-
-SMESHGUI_boolParameter::~SMESHGUI_boolParameter()
-{
-}
-
-SMESHGUI_aParameter::Type SMESHGUI_boolParameter::GetType() const
-{
-  return BOOL;
-}
-
-bool SMESHGUI_boolParameter::GetNewInt( int& v ) const
-{
-  if( myValue )
-    v = 1;
-  else
-    v = 0;
-  return v!=myInitValue;
-}
-
-bool SMESHGUI_boolParameter::GetNewDouble( double& ) const
-{
-  return false;
-}
-
-bool SMESHGUI_boolParameter::GetNewText( QString& ) const
-{
-  return false;
-}
-
-QWidget* SMESHGUI_boolParameter::CreateWidget( QWidget* parent ) const
-{
-  return new QCheckBox( parent );
-}
-
-void SMESHGUI_boolParameter::InitializeWidget( QWidget* w ) const
-{
-  if( w && w->inherits( "QCheckBox" ) )
-  {
-    QCheckBox* box = ( QCheckBox* )w;
-    box->setChecked( myInitValue );
-  }
-}
-
-void SMESHGUI_boolParameter::TakeValue( QWidget* w )
-{
-  if( w && w->inherits( "QCheckBox" ) )
-  {
-    QCheckBox* box = ( QCheckBox* )w;
-    myValue = box->isChecked();
-  }  
-}
-
-QString SMESHGUI_boolParameter::sigValueChanged() const
-{
-  return SIGNAL( stateChanged( int ) );
-}
-
-
-
-
-//=================================================================================
-// class    : SMESHGUI_doubleItem
-// purpose  : Custom table item which contains double and has double validator
-//=================================================================================
-class SMESHGUI_doubleItem: public QTableItem
-{
-public:
-  SMESHGUI_doubleItem( QTable*, EditType, const double );
-  virtual ~SMESHGUI_doubleItem();
-
-  void setValidator( const double, const double, const int );
-  void validator( double&, double&, int& );
-  virtual QWidget* createEditor() const;
-
-private:
-  QDoubleValidator*  myValidator;
-};
-
-SMESHGUI_doubleItem::SMESHGUI_doubleItem( QTable* t, EditType e, const double num )
-: QTableItem( t, e, QString( "%1" ).arg( num ) ),
-  myValidator( new QDoubleValidator( 0.0, 1.0, 3, t ) )
-{
-}
-
-SMESHGUI_doubleItem::~SMESHGUI_doubleItem()
-{
-}
-
-void SMESHGUI_doubleItem::setValidator( const double bot, const double top, const int dec )
-{
-  myValidator->setBottom( bot );
-  myValidator->setTop( top );
-  myValidator->setDecimals( dec );
-}
-
-void SMESHGUI_doubleItem::validator( double& bot, double& top, int& dec )
-{
-  bot = myValidator->bottom();
-  top = myValidator->top();
-  dec = myValidator->decimals();
-}
-
-QWidget* SMESHGUI_doubleItem::createEditor() const
-{
-  QWidget* res = QTableItem::createEditor();
-  if( res && res->inherits( "QLineEdit" ) )
-  {
-    QLineEdit* l = ( QLineEdit* )res;
-    l->setValidator( myValidator );
-  }
-  return res;
-}
-
-
-//=================================================================================
-// class    : SMESHGUI_Table
-// purpose  :
-//=================================================================================
-SMESHGUI_Table::SMESHGUI_Table( int numRows, int numCols, QWidget* parent, const char* name )
-: QTable( numRows, numCols, parent, name )
-{
-}
-
-SMESHGUI_Table::~SMESHGUI_Table()
-{
-}
-
-QSize SMESHGUI_Table::sizeHint() const
-{
-  if( cachedSizeHint().isValid() )
-    return cachedSizeHint();
-
-  constPolish();
-
-  QSize sh = QScrollView::sizeHint();
-  if( sh.width()<400 )
-    sh.setWidth( 400 );
-  if( sh.height()<200 )
-    sh.setHeight( 200 );
-
-  setCachedSizeHint( sh );
-  return sh;
-}
-
-void SMESHGUI_Table::stopEditing()
-{
-  endEdit( currEditRow(), currEditCol(), false, false );
-}
-
-void SMESHGUI_Table::validator( const int row, const int col, double& minV, double& maxV, int& dec )
-{
-  SMESHGUI_doubleItem* it = dynamic_cast<SMESHGUI_doubleItem*>( item( row, col ) );
-  if( it )
-    it->validator( minV, maxV, dec );
-}
-
-void SMESHGUI_Table::setValidator( const double minV, const double maxV, const int dec,
-                                   const int rmin, const int rmax,
-                                   const int cmin, const int cmax )
-{
-  int r1 = rmin>=0 ? rmin : 0,
-      r2 = rmax>=0 ? rmax : numRows(),
-      c1 = cmin>=0 ? cmin : 0,
-      c2 = cmax>=0 ? cmax : numCols();
-
-  for( int i=r1; i<=r2; i++ )
-    for( int j=c1; j<=c2; j++ )
-    {
-      SMESHGUI_doubleItem* it = dynamic_cast<SMESHGUI_doubleItem*>( item( i, j ) );
-      if( it )
-        it->setValidator( minV, maxV, dec );
-    }
-}
-
-
-
-//=================================================================================
-// class    : SMESHGUI_TableFrame
-// purpose  :
-//=================================================================================
-SMESHGUI_TableFrame::SMESHGUI_TableFrame( QWidget* parent )
-: QFrame( parent )
-{
-  QVBoxLayout* main = new QVBoxLayout( this, 0, 0 );
-
-  myTable = new SMESHGUI_Table( 1, 1, this );
-  
-  QFrame* aButFrame = new QFrame( this );
-  QHBoxLayout* butLay = new QHBoxLayout( aButFrame, 5, 5 );
-
-  myAddColumn = new QPushButton( "Add column", aButFrame );
-
-  myRemoveColumn = new QPushButton( "Remove column", aButFrame );
-
-  myAddRow = new QPushButton( "Add row", aButFrame );
-
-  myRemoveRow = new QPushButton( "Remove row", aButFrame );
-
-  butLay->addWidget( myAddColumn, 0 );
-  butLay->addWidget( myRemoveColumn, 0 );
-  butLay->addWidget( myAddRow, 0 );
-  butLay->addWidget( myRemoveRow, 0 );
-  butLay->addStretch( 1 );
-
-  main->addWidget( myTable, 1 );
-  main->addWidget( aButFrame, 0 );
-
-  connect( myAddColumn,    SIGNAL( clicked() ), this, SLOT( onButtonClicked() ) );
-  connect( myRemoveColumn, SIGNAL( clicked() ), this, SLOT( onButtonClicked() ) );
-  connect( myAddRow,       SIGNAL( clicked() ), this, SLOT( onButtonClicked() ) );
-  connect( myRemoveRow,    SIGNAL( clicked() ), this, SLOT( onButtonClicked() ) );
-}
-
-SMESHGUI_TableFrame::~SMESHGUI_TableFrame()
-{
-}
-
-SMESHGUI_Table* SMESHGUI_TableFrame::table() const
-{
-  return myTable;
-}
-
-void SMESHGUI_TableFrame::setShown( const Button b, const bool sh )
-{
-  if( button( b ) )
-    button( b )->setShown( sh );
-}
-
-bool SMESHGUI_TableFrame::isShown( const Button b ) const
-{
-  bool res = false;
-  if( button( b ) )
-    res = button( b )->isShown();
-  return res;
-}
-
-QButton* SMESHGUI_TableFrame::button( const Button b ) const
-{
-  QButton* res = 0;
-  switch( b )
-  {
-    case ADD_COLUMN:
-      res = myAddColumn;
-      break;
-
-    case REMOVE_COLUMN:
-      res = myRemoveColumn;
-      break;
-
-    case ADD_ROW:
-      res = myAddRow;
-      break;
-
-    case REMOVE_ROW:
-      res = myRemoveRow;
-      break;
-  }
-  return res;
-}
-
-void SMESHGUI_TableFrame::onButtonClicked()
-{
-  if( sender()==button( ADD_COLUMN ) )
-    emit toEdit( ADD_COLUMN, table()->currentColumn() );
-    
-  else if( sender()==button( REMOVE_COLUMN ) )
-    emit toEdit( REMOVE_COLUMN, table()->currentColumn() );
-    
-  else if( sender()==button( ADD_ROW ) )
-    emit toEdit( ADD_ROW, table()->currentRow() );
-    
-  else if( sender()==button( REMOVE_ROW ) )
-    emit toEdit( REMOVE_ROW, table()->currentRow() );
-}
-
-
-//=================================================================================
-// class    : SMESHGUI_tableParameter
-// purpose  :
-//=================================================================================
-SMESHGUI_tableParameter::SMESHGUI_tableParameter( const double init,
-                                                  const QString& label )
-: SMESHGUI_aParameter( label ),
-  myInitValue( init ),
-  myColsInt( 1 ),
-  myRowsInt( 1 ),
-  myEditCols( false ),
-  myEditRows( false )
-{
-}
-
-SMESHGUI_tableParameter::~SMESHGUI_tableParameter()
-{
-}
-
-SMESHGUI_aParameter::Type SMESHGUI_tableParameter::GetType() const
-{
-  return TABLE;
-}
-
-bool SMESHGUI_tableParameter::GetNewInt( int& ) const
-{
-  return false;
-}
-
-bool SMESHGUI_tableParameter::GetNewDouble( double& ) const
-{
-  return false;
-}
-
-bool SMESHGUI_tableParameter::GetNewText( QString& ) const
-{
-  return false;
-}
-
-QWidget* SMESHGUI_tableParameter::CreateWidget( QWidget* par ) const
-{
-  SMESHGUI_TableFrame* t = new SMESHGUI_TableFrame( par );
-  connect( t,    SIGNAL( toEdit( SMESHGUI_TableFrame::Button, int ) ),
-           this, SLOT  ( onEdit( SMESHGUI_TableFrame::Button, int ) ) );
-  
-  update( t );
-  return t;
-}
-
-void SMESHGUI_tableParameter::setItems( QWidget* w,
-                                        int old_row, int new_row,
-                                        int old_col, int new_col ) const
-{
-  if( w && w->inherits( "SMESHGUI_TableFrame" ) )
-  {
-    QTable* tab = ( ( SMESHGUI_TableFrame* )w )->table();
-    
-    if( old_row<0 )
-      old_row = 0;
-    if( new_row<0 )
-      new_row = tab->numRows();
-    if( old_col<0 )
-      old_col = 0;
-    if( new_col<0 )
-      new_col = tab->numCols();
-    
-    for( int i=old_row, m=new_row; i<m; i++ )
-      for( int j=0, n=new_col; j<n; j++ )
-        tab->setItem( i, j, new SMESHGUI_doubleItem( tab, QTableItem::WhenCurrent, myInitValue ) );
-    
-    for( int i=0, m=new_row; i<m; i++ )
-      for( int j=old_col, n=new_col; j<n; j++ )
-        tab->setItem( i, j, new SMESHGUI_doubleItem( tab, QTableItem::WhenCurrent, myInitValue ) );
-
-    for( int j=old_col; j<new_col; j++ )
-      tab->setColumnWidth( j, 50 );
-  }
-}
-
-void SMESHGUI_tableParameter::InitializeWidget( QWidget* w ) const
-{
-  setItems( w );
-
-  if( w && w->inherits( "SMESHGUI_TableFrame" ) )
-  {
-    SMESHGUI_Table* tab = ( ( SMESHGUI_TableFrame* )w )->table();
-    tab->stopEditing();
-
-    int col = tab->numCols(),
-        row = tab->numRows();
-    
-    for( int i=0, m=row; i<m; i++ )
-      for( int j=0, n=col; j<n; j++ )
-        if( row*j+i<myData.length() )
-          tab->item( i, j )->setText( QString( "%1" ).arg( myData[row*j+i] ) );
-  }
-}
-
-void SMESHGUI_tableParameter::TakeValue( QWidget* w )
-{
-  if( w && w->inherits( "SMESHGUI_TableFrame" ) )
-  {
-    QTable* tab = ( ( SMESHGUI_TableFrame* )w )->table();
-
-    int col = tab->numCols(),
-        row = tab->numRows();
-
-    myData.length( col*row );
-    for( int i=0; i<row; i++ )
-      for( int j=0; j<col; j++ )
-        myData[ col*i+j ] = tab->text( i, j ).toDouble();
-  }
-}
-
-void SMESHGUI_tableParameter::data( SMESH::double_array& v ) const
-{
-  v = myData;
-}
-
-void SMESHGUI_tableParameter::setData( const SMESH::double_array& d )
-{
-  myData = d;
-}
-
-void SMESHGUI_tableParameter::update( QWidget* w ) const
-{
-  if( w && w->inherits( "SMESHGUI_TableFrame" ) )
-  {
-    SMESHGUI_TableFrame* tabfr = ( SMESHGUI_TableFrame* ) w;
-    SMESHGUI_Table* tab = tabfr->table();
-
-    int old_col = tab->numCols(),
-        old_row = tab->numRows();
-        
-    int col = myColsInt, row = myRowsInt;
-    if( myCols.get() )
-      myCols->GetNewInt( col );
-        
-    if( myRows.get() )
-      myRows->GetNewInt( row );
-
-    if( col<=0 )
-      col = 1;
-    if( row<=0 )
-      row = 1;
-
-    if( col!=tab->numCols() )
-      tab->setNumCols( col );
-
-    if( row!=tab->numRows() )
-      tab->setNumRows( row );
-
-    tabfr->setShown( SMESHGUI_TableFrame::ADD_COLUMN, myEditCols );
-    tabfr->setShown( SMESHGUI_TableFrame::REMOVE_COLUMN, myEditCols );
-    tabfr->setShown( SMESHGUI_TableFrame::ADD_ROW, myEditRows );
-    tabfr->setShown( SMESHGUI_TableFrame::REMOVE_ROW, myEditRows );
-
-    setItems( w, old_row, row, old_col, col );
-
-    QMap< int, QString >::const_iterator aNIt = myColNames.begin(),
-                                         aNLast = myColNames.end();
-    for( ; aNIt!=aNLast; aNIt++ )
-      tab->horizontalHeader()->setLabel( aNIt.key(), aNIt.data() );
-    
-    ValidatorsMap::const_iterator anIt = myValidators.begin(),
-                                  aLast = myValidators.end();
-    for( ; anIt!=aLast; anIt++ )
-    {
-      int row = anIt.key(), dec;
-      double minV, maxV;
-      validator( row, minV, maxV, dec );
-      tab->setValidator( minV, maxV, dec, -1, -1, col, col );
-    }
-
-    QSize s = tab->sizeHint();
-    tab->resize( s.width(), s.height() );
-  }
-}
-
-void SMESHGUI_tableParameter::setColCount( const int c, QWidget* w )
-{
-  myColsInt = c;
-  update( w );
-}
-
-void SMESHGUI_tableParameter::setRowCount( const int c, QWidget* w )
-{
-  myRowsInt = c;
-  update( w );
-}
-
-void SMESHGUI_tableParameter::setColCount( const SMESHGUI_aParameterPtr p, QWidget* w )
-{
-  if( p.get() )
-  {
-    myCols = p;
-    update( w );
-  }
-}
-
-void SMESHGUI_tableParameter::setRowCount( const SMESHGUI_aParameterPtr p, QWidget* w )
-{
-  if( p.get() )
-  {
-    myRows = p;
-    update( w );
-  }
-}
-
-QString SMESHGUI_tableParameter::sigValueChanged() const
-{
-  return SIGNAL( valueChanged( int, int ) );
-}
-
-void SMESHGUI_tableParameter::setValidator( const int ind, const double minV, const double maxV, const int dec )
-{
-  ValidatorInfo inf;
-  inf.myMin = minV;
-  inf.myMax = maxV;
-  inf.myDecimals = dec;
-  myValidators[ ind ] = inf;
-}
-
-void SMESHGUI_tableParameter::validator( const int ind, double& minV, double& maxV, int& dec ) const
-{
-  if( myValidators.contains( ind ) )
-  {
-    const ValidatorInfo& inf = myValidators[ ind ];
-    minV = inf.myMin;
-    maxV = inf.myMax;
-    dec = inf.myDecimals;
-  }
-}
-
-void SMESHGUI_tableParameter::setEditCols( const bool ed )
-{
-  myEditCols = ed;
-}
-
-void SMESHGUI_tableParameter::setEditRows( const bool ed )
-{
-  myEditRows = ed;
-}
-
-void SMESHGUI_tableParameter::setColName( const int ind, const QString& name )
-{
-  myColNames.insert( ind, name );
-}
-
-QString SMESHGUI_tableParameter::colName( const int ind ) const
-{
-  if( myColNames.contains( ind ) )
-    return myColNames[ ind ];
-  else
-    return QString::null;
-}
-
-void SMESHGUI_tableParameter::onEdit( SMESHGUI_TableFrame::Button b, int n )
-{
-  if( sender() && sender()->inherits( "SMESHGUI_TableFrame" ) )
-  {
-    SMESHGUI_TableFrame* fr = ( SMESHGUI_TableFrame* )sender();
-    SMESHGUI_Table* tab = fr->table();
-
-    switch( b )
-    {
-      case SMESHGUI_TableFrame::ADD_COLUMN:
-      {
-        if( !myEditCols || myCols.get() )
-          return;
-
-        myColsInt++; update( fr );
-        if( n>=0 )
-          for( int i=0; i<myRowsInt; i++ )
-            for( int j=myColsInt-1; j>=n; j-- )
-              if( j==n )
-                tab->setText( i, j, QString( "%1" ).arg( myInitValue ) );
-              else
-                tab->setText( i, j, tab->text( i, j-1 ) );
-        break;
-      }
-      
-      case SMESHGUI_TableFrame::REMOVE_COLUMN:
-      {
-        if( !myEditCols || myCols.get() || myColsInt<=1 )
-          return;
-
-        if( n>=0 )
-          for( int i=0; i<myRowsInt; i++ )
-            for( int j=n; j<myColsInt-1; j++ )
-              tab->setText( i, j, tab->text( i, j+1 ) );
-        myColsInt--; update( fr );
-
-        break;
-      }
-      
-      case SMESHGUI_TableFrame::ADD_ROW:
-      {
-        if( !myEditRows || myRows.get() )
-          return;
-
-        myRowsInt++; update( fr );
-        if( n>=0 )
-          for( int i=myRowsInt-1; i>=n; i-- )
-            for( int j=0; j<myColsInt; j++ )
-              if( i==n )
-                tab->setText( i, j, QString( "%1" ).arg( myInitValue ) );
-              else
-                tab->setText( i, j, tab->text( i-1, j ) );
-        break;        
-      }
-      
-      case SMESHGUI_TableFrame::REMOVE_ROW:
-      {
-        if( !myEditRows || myRows.get() || myRowsInt<=1 )
-          return;
-
-        if( n>=0 )
-          for( int i=n; i<myRowsInt-1; i++ )
-            for( int j=0; j<myColsInt; j++ )
-              tab->setText( i, j, tab->text( i+1, j ) );
-        myRowsInt--; update( fr );
-
-        break;
-      }
-    }
-  }
-}
diff --git a/src/SMESHGUI/SMESHGUI_aParameter.h b/src/SMESHGUI/SMESHGUI_aParameter.h
deleted file mode 100644 (file)
index 8613b50..0000000
+++ /dev/null
@@ -1,442 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_aParameter.h
-//  Module : SMESH
-//  $Header$
-
-#ifndef SMESHGUI_aParameter_H
-#define SMESHGUI_aParameter_H
-
-#include <boost/shared_ptr.hpp>
-#include <qstringlist.h>
-#include <qmap.h>
-#include <qtable.h>
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-class QWidget;
-class SMESHGUI_aParameter;
-
-typedef boost::shared_ptr<SMESHGUI_aParameter> SMESHGUI_aParameterPtr;
-
-/*!
- *  \brief This class is the base class of all parameters
- */
-class SMESHGUI_aParameter
-{ 
-public:
-  SMESHGUI_aParameter(const QString& label):_label(label) {}
-  virtual ~SMESHGUI_aParameter();
-
-  enum Type { INT, DOUBLE, STRING, ENUM, BOOL, TABLE };
-  virtual Type GetType() const = 0;
-  virtual bool GetNewInt( int & Value ) const = 0;
-  virtual bool GetNewDouble( double & Value ) const = 0;
-  virtual bool GetNewText( QString & Value ) const = 0;
-  virtual void TakeValue( QWidget* ) = 0;
-  virtual QWidget* CreateWidget( QWidget* ) const = 0;
-  virtual void InitializeWidget( QWidget* ) const = 0;
-
-  /*!
-   *  \brief Returns string representation of signal emitted when value in corrsponding widget is changed
-   */
-  virtual QString sigValueChanged() const;
-
-  QString & Label() { return _label; }
-  
-private:
-  QString _label;
-};
-
-/*!
- *  \brief This class provides parameter with integer value
- */
-class SMESHGUI_intParameter: public SMESHGUI_aParameter
-{ 
-public:
-  SMESHGUI_intParameter(const int      initValue = 0,
-                       const QString& label     = QString::null,
-                       const int      bottom    = 0,
-                       const int      top       = 1000);
-  int & InitValue() { return _initValue; }
-  int & Top()       { return _top; }
-  int & Bottom()    { return _bottom; }
-  virtual Type GetType() const;
-  virtual bool GetNewInt( int & Value ) const;
-  virtual bool GetNewDouble( double & Value ) const;
-  virtual bool GetNewText( QString & Value ) const;
-  virtual void TakeValue( QWidget* );
-  virtual QWidget* CreateWidget( QWidget* ) const;
-  virtual void InitializeWidget( QWidget* ) const;
-
-  virtual QString sigValueChanged() const;
-  
-private:
-  int _top, _bottom;
-  int _initValue, _newValue;
-};
-
-/*!
- *  \brief This class provides parameter with double value
- */
-class SMESHGUI_doubleParameter: public SMESHGUI_aParameter
-{ 
-public:
-  SMESHGUI_doubleParameter(const double   initValue = 0.0,
-                          const QString& label     = QString::null,
-                          const double   bottom    = -1E6,
-                          const double   top       = +1E6,
-                          const double   step      = 1.0,
-                          const int      decimals  = 3);
-  double & InitValue() { return _initValue; }
-  double & Top()       { return _top; }
-  double & Bottom()    { return _bottom; }
-  double & Step()      { return _step; }
-  int    & Decimals()  { return _decimals; }
-  virtual Type GetType() const;
-  virtual bool GetNewInt( int & Value ) const;
-  virtual bool GetNewDouble( double & Value ) const;
-  virtual bool GetNewText( QString & Value ) const;
-  virtual QWidget* CreateWidget( QWidget* ) const;
-  virtual void InitializeWidget( QWidget* ) const;
-  virtual void TakeValue( QWidget* );
-
-  virtual QString sigValueChanged() const;
-  
-private:
-  double _top, _bottom, _step;
-  double _initValue, _newValue;
-  int _decimals;
-};
-
-/*!
- *  \brief This class provides parameter with string value
- */
-class SMESHGUI_strParameter: public SMESHGUI_aParameter
-{ 
-public:
-  SMESHGUI_strParameter( const QString& initValue = "",
-                         const QString& label     = QString::null);
-  QString& InitValue() { return _initValue; }
-  virtual Type GetType() const;
-  virtual bool GetNewInt( int & Value ) const;
-  virtual bool GetNewDouble( double & Value ) const;
-  virtual bool GetNewText( QString & Value ) const;
-  virtual QWidget* CreateWidget( QWidget* ) const;
-  virtual void InitializeWidget( QWidget* ) const;
-  virtual void TakeValue( QWidget* );
-
-  virtual QString sigValueChanged() const;
-  
-private:
-  QString _initValue, _newValue;
-};
-
-
-/*!
- *  \brief This class represents the base parameter which contains dependency of
- *  shown state of other parameters on value of current
- */
-class SMESHGUI_dependParameter: public SMESHGUI_aParameter
-{
-public:
-  /*!
-   *  \brief This map describes what parameters must be shown when this parameter has value as key
-   *  The list contains some indices of parameters (for example, order in some list)
-   *  Value is integer based 0. If map is empty, it means that there is no dependencies.
-   */
-  typedef QValueList< int > IntList;
-  typedef QMap< int, IntList >  ShownMap;
-
-public:
-  SMESHGUI_dependParameter( const QString& = QString::null );
-
-  const ShownMap&    shownMap() const;
-  ShownMap&          shownMap();
-  
-private:
-  ShownMap     myShownMap;
-};
-
-/*!
- *  \brief This class represents parameter which can have value from fixed set
- */
-class SMESHGUI_enumParameter: public SMESHGUI_dependParameter
-{
-public:
-  /*!
-   *  \brief Creates parameter with set of values 'values', default value 'init' and title 'label'
-   *  Every value can be described both by integer based 0 or by string value
-   */
-  SMESHGUI_enumParameter( const QStringList& values,
-                          const int init = 0,
-                          const QString& label = QString::null );
-  virtual ~SMESHGUI_enumParameter();
-
-  /*!
-   *  \brief Returns count of possible values
-   */
-  int            Count() const;
-
-  int& InitValue() { return myInitValue; }
-  virtual Type GetType() const;
-  virtual bool GetNewInt( int& ) const;
-  virtual bool GetNewDouble( double& ) const;
-  virtual bool GetNewText( QString& ) const;
-  virtual QWidget* CreateWidget( QWidget* ) const;
-  virtual void InitializeWidget( QWidget* ) const;
-  virtual void TakeValue( QWidget* );
-
-  virtual QString sigValueChanged() const;
-    
-private:
-  int         myInitValue, myValue;
-  QStringList myValues;
-};
-
-
-/*!
- *  \brief This class represents parameter which can have value true or false
- */
-class SMESHGUI_boolParameter: public SMESHGUI_dependParameter
-{
-public:
-  SMESHGUI_boolParameter( const bool = false,
-                          const QString& = QString::null );
-  virtual ~SMESHGUI_boolParameter();
-
-  bool& InitValue() { return myInitValue; }
-  virtual Type GetType() const;
-  virtual bool GetNewInt( int& ) const;
-  virtual bool GetNewDouble( double& ) const;
-  virtual bool GetNewText( QString& ) const;
-  virtual QWidget* CreateWidget( QWidget* ) const;
-  virtual void InitializeWidget( QWidget* ) const;
-  virtual void TakeValue( QWidget* );
-
-  virtual QString sigValueChanged() const;
-  
-private:
-  bool myInitValue, myValue;
-};
-
-
-class QButton;
-
-/*!
- *  \brief This class represents custom table. It has only double values and
-    editor for every cell has validator
- */
-class SMESHGUI_Table : public QTable
-{
-  Q_OBJECT
-  
-public:
-  SMESHGUI_Table( int numRows, int numCols, QWidget* = 0, const char* = 0 );
-  virtual ~SMESHGUI_Table();
-
-/*!
- *  \brief Hides current editor of cell
- */
-  void stopEditing();
-  
-  virtual QSize sizeHint() const;
-
-/*!
- *  \brief Returns parameters of double validator corresponding to cell (row,col)
- */
-  void validator( const int row, const int col, double&, double&, int& );
-  
-/*!
- *  \brief Sets the double validator parameters to every cell in row range [rmin,rmax]
- *         and column range [cmin,cmax].
- *         If rmin=-1 then rmin is set to 0, if rmax=-1 then rmax = last row.
- *         Analogically cmin and cmax are set
- */
-  void setValidator( const double, const double, const int,
-                     const int rmin = -1, const int rmax = -1,
-                     const int cmin = -1, const int cmax = -1 );  
-};
-
-
-/*!
- *  \brief This class represents frame for table and buttons
- */
-class SMESHGUI_TableFrame : public QFrame
-{
-  Q_OBJECT
-  
-public:
-/*!
- *  \brief Values corresponding to buttons for table resize
- */
-  typedef enum { ADD_COLUMN, REMOVE_COLUMN, ADD_ROW, REMOVE_ROW } Button;
-
-public:
-  SMESHGUI_TableFrame( QWidget* );
-  ~SMESHGUI_TableFrame();
-
-  SMESHGUI_Table* table() const;
-
-/*!
- *  \brief Changes shown state of some button for table resize
- */   
-  void setShown( const Button, const bool );
-
-/*!
- *  \brief Returns shown state of some button for table resize
- */
-  bool isShown( const Button ) const;
-  
-private:
-  QButton* button( const Button ) const;
-
-private slots:
-  void onButtonClicked();
-  
-signals:
-/*!
- *  \brief This signal is emitted if some of button for table resize is clicked
- *         Second parameter is current column for ADD_COLUMN, REMOVE_COLUMN buttons
- *         and current row for ADD_ROW, REMOVE_ROW buttons. Take into account that
- *         this object resize table ( returned by table() ) automatically
- */
-  void toEdit( SMESHGUI_TableFrame::Button, int );
-
-private:
-  QButton *myAddColumn, *myRemoveColumn, *myAddRow, *myRemoveRow;
-  SMESHGUI_Table*  myTable;
-};
-
-
-/*!
- *  \brief This class represents parameter which can have two-dimensional array of values
- */
-class SMESHGUI_tableParameter: public QObject, public SMESHGUI_aParameter
-{
-  Q_OBJECT
-  
-public:
-/*!
- *  \brief Creates table parameter with default value 'init' and title 'label'.
- *         The default value means that by default the table is filled with default value
- *         and if new column or row is added then it is filled with default value
- */
-  SMESHGUI_tableParameter( const double init = 0.0,
-                           const QString& label = QString::null );
-  virtual ~SMESHGUI_tableParameter();
-
-  virtual Type GetType() const;
-  virtual bool GetNewInt( int& ) const;
-  virtual bool GetNewDouble( double& ) const;
-  virtual bool GetNewText( QString& ) const;
-  virtual QWidget* CreateWidget( QWidget* ) const;
-  virtual void InitializeWidget( QWidget* ) const;
-  virtual void TakeValue( QWidget* );
-
-/*!
- *  \brief Updates look of widget in accordance with all parameters of this object
- */
-  void update( QWidget* ) const;
-  
-/*!
- *  \brief Returns data taken from widget. Please don't forget to call TakeValue before.
- */
-  void data( SMESH::double_array& ) const;
-
-/*!
- *  \brief Sets data. The InitializeWidget must be called in order to change values in widget
- */
-  void setData( const SMESH::double_array& );
-
-/*!
- *  \brief Sets count of columns and updates widget
- */
-  void setColCount( const int, QWidget* = 0 );
-
-/*!
- *  \brief Sets count of rows and updates widget
- */
-  void setRowCount( const int, QWidget* = 0 );
-  
-/*!
- *  \brief Binds count of columns to some parameter and updates widget. Take into account that
- *         if this parameter is changed, the update() must be called to resize table
- */
-  void setColCount( const SMESHGUI_aParameterPtr, QWidget* = 0 );
-
-/*!
- *  \brief Binds count of rows to some parameter and updates widget. Take into account that
- *         if this parameter is changed, the update() must be called to resize table
- */
-  void setRowCount( const SMESHGUI_aParameterPtr, QWidget* = 0 );
-  
-/*!
- *  \brief Enables or disables to change count of columns by buttons
- */
-  void setEditCols( const bool );
-
-/*!
- *  \brief Enables or disables to change count of rows by buttons
- */
-  void setEditRows( const bool );  
-
-  virtual QString sigValueChanged() const;
-  
-  void setValidator( const int col, const double, const double, const int );
-  void validator( const int col, double&, double&, int& ) const;
-
-/*!
- *  \brief These methods allow to read and change name of column
- */
-  void    setColName( const int, const QString& );
-  QString colName( const int ) const;
-
-private slots:
-  void onEdit( SMESHGUI_TableFrame::Button, int );
-
-private:
-  void setItems( QWidget*, int = -1, int = -1, int = -1, int = -1 ) const;
-
-private:
-  typedef struct
-  {
-    double myMin, myMax;
-    int    myDecimals;
-  } ValidatorInfo;
-
-  typedef QMap<int, ValidatorInfo>  ValidatorsMap;
-  
-private:
-  int                      myColsInt, myRowsInt;
-  SMESHGUI_aParameterPtr   myCols, myRows;
-  double                   myInitValue;
-  SMESH::double_array      myData;
-  ValidatorsMap            myValidators;
-  bool                     myEditCols, myEditRows;
-  QMap< int, QString >     myColNames;
-};
-
-#endif // SMESHGUI_aParameter.h
diff --git a/src/SMESHGUI/SMESHGUI_aParameterDlg.cxx b/src/SMESHGUI/SMESHGUI_aParameterDlg.cxx
deleted file mode 100644 (file)
index 7e824a7..0000000
+++ /dev/null
@@ -1,255 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_aParameterDlg.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_aParameterDlg.h"
-#include "SMESHGUI_aParameter.h"
-#include "SMESHGUI.h"
-#include "SMESHGUI_SpinBox.h"
-#include "SMESHGUI_Utils.h"
-
-#include "SUIT_Tools.h"
-#include "SUIT_Desktop.h"
-
-// QT Includes
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qpushbutton.h>
-#include <qlayout.h>
-#include <qspinbox.h>
-#include <qvalidator.h>
-#include <qlineedit.h>
-
-using namespace std;
-
-//======================================================================================
-// function : SMESHGUI_aParameterDlg()
-//
-//  The dialog will by default be modal, unless you set 'modal' to
-//  false when constructing dialog
-//
-//======================================================================================
-SMESHGUI_aParameterDlg::SMESHGUI_aParameterDlg
-                                       ( SMESHGUI* theModule,
-                                        std::list<SMESHGUI_aParameterPtr> params,
-                                         QString                           title,
-                                         bool                              modal)
-: QDialog( SMESH::GetDesktop( theModule ), "MyParameterDialog", modal, WStyle_Customize |
-           WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),          
-  myParamList(params),
-  mySMESHGUI(theModule)
-{
-  /* creating widgets */
-  init();
-  /* title */
-  setCaption(title);
-
-  /* Move widget on the botton right corner of main widget */
-  SUIT_Tools::centerWidget(this, SMESH::GetDesktop( theModule ) );
-}
-
-//======================================================================================
-// function : SMESHGUI_aParameterDlg::init()
-// purpose  : creates dialog's layout
-//======================================================================================
-void SMESHGUI_aParameterDlg::init()
-{
-  setSizeGripEnabled(TRUE);
-
-  QVBoxLayout* topLayout = new QVBoxLayout(this);
-  topLayout->setMargin(11); topLayout->setSpacing(6);
-
-  /***************************************************************/
-  QGroupBox* GroupC1 = new QGroupBox(this, "GroupC1");
-  GroupC1->setColumnLayout(0, Qt::Vertical);
-  GroupC1->layout()->setSpacing(0);
-  GroupC1->layout()->setMargin(0);
-  QGridLayout* GroupC1Layout = new QGridLayout(GroupC1->layout());
-  GroupC1Layout->setAlignment(Qt::AlignTop);
-  GroupC1Layout->setSpacing(6);
-  GroupC1Layout->setMargin(11);
-  /* Spin boxes with labels */
-  list<SMESHGUI_aParameterPtr>::iterator paramIt = myParamList.begin();
-  for (int row = 0; paramIt != myParamList.end(); paramIt++ , row++)
-  {
-    SMESHGUI_aParameterPtr param = (*paramIt);
-    QLabel * label = new QLabel(GroupC1, "TextLabel");
-    GroupC1Layout->addWidget(label, row, 0);
-    label->setText(param->Label());
-    QWidget* aSpinWidget = param->CreateWidget( GroupC1 );
-    if (aSpinWidget) {
-      GroupC1Layout->addWidget(aSpinWidget, row, 1);
-      aSpinWidget->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum));
-      aSpinWidget->setMinimumSize(150, 0);
-
-      QString sig = param->sigValueChanged();
-      if( !sig.isEmpty() && param->GetType()!=SMESHGUI_aParameter::TABLE )
-        connect( aSpinWidget, sig.latin1(), this, SLOT( onValueChanged() ) );
-      
-      param->InitializeWidget(aSpinWidget);
-      mySpinList.push_back(aSpinWidget);
-      myLabelList.push_back(label);
-    }
-  }
-
-  paramIt = myParamList.begin();
-  std::list<QWidget*>::const_iterator anIt = mySpinList.begin();
-  for( ; paramIt!=myParamList.end(); paramIt++, anIt++ )
-    UpdateShown( *paramIt, *anIt );
-  
-
-  /***************************************************************/
-  QGroupBox* GroupButtons = new QGroupBox(this, "GroupButtons");
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  QGridLayout* GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-  /* Ok button */
-  myButtonOk = new QPushButton(GroupButtons, "buttonOk");
-  myButtonOk->setText(tr("SMESH_BUT_OK"));
-  myButtonOk->setAutoDefault(TRUE);
-  myButtonOk->setDefault(TRUE);
-  GroupButtonsLayout->addWidget(myButtonOk, 0, 0);
-  /* add spacer between buttons */
-  GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 1);
-  /* Cancel button */
-  myButtonCancel = new QPushButton(GroupButtons, "buttonCancel");
-  myButtonCancel->setText(tr("SMESH_BUT_CANCEL"));
-  myButtonCancel->setAutoDefault(TRUE);
-  GroupButtonsLayout->addWidget(myButtonCancel, 0, 2);
-
-  /***************************************************************/
-  topLayout->addWidget(GroupC1,      1 );
-  topLayout->addWidget(GroupButtons, 0 );
-
-  /* signals and slots connections */
-  connect(myButtonOk,     SIGNAL(clicked()), this, SLOT(ClickOnOk()));
-  connect(myButtonCancel, SIGNAL(clicked()), this, SLOT(reject()));
-}
-
-//======================================================================================
-// function : ~SMESHGUI_aParameterDlg()
-// purpose  : Destructor
-//======================================================================================
-SMESHGUI_aParameterDlg::~SMESHGUI_aParameterDlg()
-{
-}
-
-//=======================================================================
-//function : ClickOnOk
-//purpose  :
-//=======================================================================
-void SMESHGUI_aParameterDlg::ClickOnOk()
-{
-  if (!mySMESHGUI->isActiveStudyLocked()) {
-    list<SMESHGUI_aParameterPtr>::iterator paramIt  = myParamList.begin();
-    list<QWidget*>::iterator               widgetIt = mySpinList.begin();
-    for (;
-         paramIt != myParamList.end() && widgetIt != mySpinList.end();
-         paramIt++ , widgetIt++)
-      (*paramIt)->TakeValue(*widgetIt);
-
-    accept();
-  }
-}
-
-//=======================================================================
-// function : Parameters()
-// purpose  : return a list of parameters from a dialog box
-//=======================================================================
-bool SMESHGUI_aParameterDlg::Parameters( SMESHGUI* theModule, 
-                                        list<SMESHGUI_aParameterPtr> params,
-                                         const char *aTitle)
-{
-  if (!params.empty()) {
-    SMESHGUI_aParameterDlg *Dialog =
-      new SMESHGUI_aParameterDlg( theModule, params, aTitle, TRUE);
-    return (Dialog->exec() == QDialog::Accepted);
-  }
-  return false;
-}
-
-//=======================================================================
-// function : onValueChanged
-// purpose  : 
-//=======================================================================
-void SMESHGUI_aParameterDlg::onValueChanged()
-{
-  if( sender()->inherits( "QWidget" ) )
-  {
-    QWidget* w = ( QWidget* )sender();
-
-    SMESHGUI_aParameterPtr param;
-
-    std::list<QWidget*>::const_iterator anIt = mySpinList.begin(),
-                                        aLast = mySpinList.end();
-    std::list<SMESHGUI_aParameterPtr>::const_iterator aPIt = myParamList.begin();
-    for( ; anIt!=aLast; anIt++, aPIt++ )
-      if( *anIt == w )
-      {
-        (*aPIt)->TakeValue( w );
-        UpdateShown( *aPIt, w );
-        break;
-      }
-  }
-}
-
-//=======================================================================
-// function : onValueChanged
-// purpose  :
-//=======================================================================
-void SMESHGUI_aParameterDlg::UpdateShown( const SMESHGUI_aParameterPtr param, QWidget* w )
-{
-  SMESHGUI_dependParameter* depPar = dynamic_cast<SMESHGUI_enumParameter*>( param.get() );
-  if( !depPar )
-    depPar = dynamic_cast<SMESHGUI_boolParameter*>( param.get() );
-
-  if( !depPar )
-    return;
-
-  SMESHGUI_dependParameter::ShownMap& map = depPar->shownMap();
-  if( map.isEmpty() )
-    return;
-
-  int val;
-  depPar->TakeValue( w );
-  depPar->GetNewInt( val );
-  bool hasValue = map.contains( val );
-
-  std::list<QWidget*>::const_iterator anIt = mySpinList.begin(),
-                                      aLast = mySpinList.end(),
-                                      aLIt = myLabelList.begin();
-  for( int i=0; anIt!=aLast; anIt++, aLIt++, i++ )
-  {
-    bool shown = hasValue && map[ val ].contains( i );
-    (*anIt)->setShown( shown );
-    (*aLIt)->setShown( shown );
-  }
-}
diff --git a/src/SMESHGUI/SMESHGUI_aParameterDlg.h b/src/SMESHGUI/SMESHGUI_aParameterDlg.h
deleted file mode 100644 (file)
index 7fd28a9..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_aParameterDlg.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef SMESHGUI_aParameterDlg_H
-#define SMESHGUI_aParameterDlg_H
-
-// QT Includes
-#include <qdialog.h>
-
-#include <list>
-#include "SMESHGUI_aParameter.h"
-
-class QLabel;
-class QPushButton;
-class SMESHGUI;
-class QWidget;
-
-//=================================================================================
-// class    : SMESHGUI_aParameterDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_aParameterDlg : public QDialog
-{
-    Q_OBJECT
-
-public:
-    SMESHGUI_aParameterDlg( SMESHGUI*,
-                           std::list<SMESHGUI_aParameterPtr> params,
-                           QString                           title  = QString::null,
-                           bool                              modal  = TRUE);
-
-    ~SMESHGUI_aParameterDlg();
-
-    /* Parameter function */
-    static bool Parameters( SMESHGUI*, std::list<SMESHGUI_aParameterPtr> params, const char *aTitle);
-
-protected:
-    void init();
-
-protected slots:
-    virtual void onValueChanged();
-    
-private slots:
-    void ClickOnOk();
-    void UpdateShown( const SMESHGUI_aParameterPtr, QWidget* );
-
-private:
-    SMESHGUI*       mySMESHGUI;
-
-    QPushButton*    myButtonOk;
-    QPushButton*    myButtonCancel;
-
-    std::list<QWidget*>               mySpinList, myLabelList;
-    std::list<SMESHGUI_aParameterPtr> myParamList;
-};
-
-#endif // SMESHGUI_aParameterDlg.h
diff --git a/src/SMESHGUI/SMESH_icons.po b/src/SMESHGUI/SMESH_icons.po
deleted file mode 100644 (file)
index 60dff5a..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-# This is a Qt message file in .po format.  Each msgid starts with
-# a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
-# would be translated to "Pub", not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2002-05-28 10:57:43 AM CEST\n"
-"PO-Revision-Date: YYYY-MM-DD\n"
-"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-
-#-----------------------------------------------------------
-# Divers Mesh
-#-----------------------------------------------------------
-
-#ObjectBrowser Icon
-msgid "ICON_OBJBROWSER_SMESH"
-msgstr "mesh.png"
-
-#Select Icon
-msgid "ICON_SELECT"
-msgstr "select1.png"
-
-#Mesh Init
-msgid "ICON_DLG_INIT_MESH"
-msgstr "mesh_init.png"
-
-#
-msgid "ICON_DLG_ADD_SUBMESH"
-msgstr "mesh_add_sub.png"
-
-#Move Node
-msgid "ICON_DLG_MOVE_NODE"
-msgstr "mesh_move_node.png"
-
-#Remove Node
-msgid "ICON_DLG_REM_NODE"
-msgstr "mesh_rem_node.png"
-
-#Remove Element
-msgid "ICON_DLG_REM_ELEMENT"
-msgstr "mesh_rem_element.png"
-
-#Orientation
-msgid "ICON_DLG_MESH_ORIENTATION"
-msgstr "mesh_orientation.png"
-
-#
-msgid "ICON_DLG_MESH_DIAGONAL"
-msgstr "mesh_diagonal.png"
-
-#Connectivity
-msgid "ICON_DLG_CONNECTIVITY"
-msgstr "mesh_connectivity.png"
-
-#Smoothing
-msgid "ICON_DLG_SMOOTHING"
-msgstr "mesh_smoothing.png"
-
-#Renumbering nodes
-msgid "ICON_DLG_RENUMBERING_NODES"
-msgstr "mesh_renumbering_nodes.png"
-
-#Renumbering elements
-msgid "ICON_DLG_RENUMBERING_ELEMENTS"
-msgstr "mesh_renumbering_elements.png"
-
-#Rotation
-msgid "ICON_DLG_ROTATION"
-msgstr "mesh_rotation.png"
-
-#Translation by vector
-msgid "ICON_SMESH_TRANSLATION_VECTOR"
-msgstr "mesh_translation_vector.png"
-
-#Translation by two points
-msgid "ICON_SMESH_TRANSLATION_POINTS"
-msgstr "mesh_translation_points.png"
-
-#Symmetry by point
-msgid "ICON_SMESH_SYMMETRY_POINT"
-msgstr "mesh_symmetry_point.png"
-
-#Symmetry by axis
-msgid "ICON_SMESH_SYMMETRY_AXIS"
-msgstr "mesh_symmetry_axis.png"
-
-#Symmetry by plane
-msgid "ICON_SMESH_SYMMETRY_PLANE"
-msgstr "mesh_symmetry_plane.png"
-
-#Sew free borders
-msgid "ICON_SMESH_SEWING_FREEBORDERS"
-msgstr "mesh_sew_freeborders.png"
-
-#Sew conform free borders
-msgid "ICON_SMESH_SEWING_CONFORM_FREEBORDERS"
-msgstr "mesh_sew_conform_freeborders.png"
-
-#Sew border to side
-msgid "ICON_SMESH_SEWING_BORDERTOSIDE"
-msgstr "mesh_sew_bordertoside.png"
-
-#Sew side elements
-msgid "ICON_SMESH_SEWING_SIDEELEMENTS"
-msgstr "mesh_sew_sideelements.png"
-
-#Merge nodes
-msgid "ICON_SMESH_MERGE_NODES"
-msgstr "mesh_merge_nodes.png"
-
-#-----------------------------------------------------------
-# Hypothesis
-#-----------------------------------------------------------
-
-#Set Algo
-msgid "ICON_DLG_ADD_ALGORITHM"
-msgstr "mesh_set_algo.png"
-
-#Set Hypo
-msgid "ICON_DLG_ADD_HYPOTHESIS"
-msgstr "mesh_set_hypo.png"
-
-#Edit Hypo.
-msgid "ICON_DLG_EDIT_MESH"
-msgstr "mesh_edit.png"
-
-
-#-----------------------------------------------------------
-# Elements
-#-----------------------------------------------------------
-
-#Vertex
-msgid "ICON_DLG_NODE"
-msgstr "mesh_vertex.png"
-
-#Line
-msgid "ICON_DLG_EDGE"
-msgstr "mesh_line.png"
-
-#triangle
-msgid "ICON_DLG_TRIANGLE"
-msgstr "mesh_triangle.png"
-
-#Quadrangle
-msgid "ICON_DLG_QUADRANGLE"
-msgstr "mesh_quad.png"
-
-#triangle
-msgid "ICON_DLG_TETRAS"
-msgstr "mesh_tetra.png"
-
-#Quadrangle
-msgid "ICON_DLG_HEXAS"
-msgstr "mesh_hexa.png"
-
-
-#-----------------------------------------------------------
-# ObjectBrowser
-#-----------------------------------------------------------
-
-#mesh_tree_mesh
-msgid "ICON_SMESH_TREE_MESH"
-msgstr "mesh_tree_mesh.png"    
-
-#mesh_tree_group
-msgid "ICON_SMESH_TREE_GROUP"
-msgstr "mesh_tree_group.png"   
-
-#mesh_tree_algo
-msgid "ICON_SMESH_TREE_ALGO"
-msgstr "mesh_tree_algo.png"
-
-#mesh_tree_hypo
-msgid "ICON_SMESH_TREE_HYPO"
-msgstr "mesh_tree_hypo.png"
-
-#mesh_tree_mesh_warn
-msgid "ICON_SMESH_TREE_MESH_WARN"
-msgstr "mesh_tree_mesh_warn.png"
-
-#mesh_tree_mesh
-msgid "ICON_SMESH_TREE_MESH_IMPORTED"
-msgstr "mesh_tree_importedmesh.png"
-
-
-#-----------------------------------------------------------
-# Group
-#-----------------------------------------------------------
-
-msgid "ICON_EDIT_GROUP"
-msgstr "mesh_edit_group.png"
-
-msgid "ICON_CONSTRUCT_GROUP"
-msgstr "mesh_make_group.png"
-
-#-----------------------------------------------------------
-# Mesh pattern
-#-----------------------------------------------------------
-
-msgid "ICON_PATTERN_2d"
-msgstr "mesh_algo_mefisto.png"
-
-msgid "ICON_PATTERN_3d"
-msgstr "mesh_algo_hexa.png"
-
-msgid "ICON_PATTERN_SAMPLE_2D"
-msgstr "pattern_sample_2d.png"
-
-msgid "ICON_PATTERN_SAMPLE_3D"
-msgstr "pattern_sample_3D.png"
-
-#-----------------------------------------------------------
-# Add/Remove buttons
-#-----------------------------------------------------------
-
-msgid "ICON_APPEND"
-msgstr "mesh_add.png"
-
-msgid "ICON_REMOVE"
-msgstr "mesh_remove.png"
\ No newline at end of file
diff --git a/src/SMESHGUI/SMESH_images.po b/src/SMESHGUI/SMESH_images.po
deleted file mode 100644 (file)
index 05cf07b..0000000
+++ /dev/null
@@ -1,338 +0,0 @@
-# This is a Qt message file in .po format.  Each msgid starts with
-# a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
-# would be translated to "Pub", not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2002-05-28 10:57:43 AM CEST\n"
-"PO-Revision-Date: 2005-06-07 10:51+0400\n"
-"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-
-#-----------------------------------------------------------
-# Divers Mesh
-#-----------------------------------------------------------
-
-#ObjectBrowser Icon
-msgid "ICON_OBJBROWSER_SMESH"
-msgstr "mesh.png"
-
-#Select Icon
-msgid "ICON_SELECT"
-msgstr "select1.png"
-
-#Mesh Init
-msgid "ICON_DLG_INIT_MESH"
-msgstr "mesh_init.png"
-
-#
-msgid "ICON_DLG_ADD_SUBMESH"
-msgstr "mesh_add_sub.png"
-
-#Move Node
-msgid "ICON_DLG_MOVE_NODE"
-msgstr "mesh_move_node.png"
-
-#Remove Node
-msgid "ICON_DLG_REM_NODE"
-msgstr "mesh_rem_node.png"
-
-#Remove Element
-msgid "ICON_DLG_REM_ELEMENT"
-msgstr "mesh_rem_element.png"
-
-#Orientation
-msgid "ICON_DLG_MESH_ORIENTATION"
-msgstr "mesh_orientation.png"
-
-#
-msgid "ICON_DLG_MESH_DIAGONAL"
-msgstr "mesh_diagonal.png"
-
-#Connectivity
-msgid "ICON_DLG_CONNECTIVITY"
-msgstr "mesh_connectivity.png"
-
-#Smoothing
-msgid "ICON_DLG_SMOOTHING"
-msgstr "mesh_smoothing.png"
-
-#Renumbering nodes
-msgid "ICON_DLG_RENUMBERING_NODES"
-msgstr "mesh_renumbering_nodes.png"
-
-#Renumbering elements
-msgid "ICON_DLG_RENUMBERING_ELEMENTS"
-msgstr "mesh_renumbering_elements.png"
-
-#Rotation
-msgid "ICON_DLG_ROTATION"
-msgstr "mesh_rotation.png"
-
-#Translation by vector
-msgid "ICON_SMESH_TRANSLATION_VECTOR"
-msgstr "mesh_translation_vector.png"
-
-#Translation by two points
-msgid "ICON_SMESH_TRANSLATION_POINTS"
-msgstr "mesh_translation_points.png"
-
-#Symmetry by point
-msgid "ICON_SMESH_SYMMETRY_POINT"
-msgstr "mesh_symmetry_point.png"
-
-#Symmetry by axis
-msgid "ICON_SMESH_SYMMETRY_AXIS"
-msgstr "mesh_symmetry_axis.png"
-
-#Symmetry by plane
-msgid "ICON_SMESH_SYMMETRY_PLANE"
-msgstr "mesh_symmetry_plane.png"
-
-#Sew free borders
-msgid "ICON_SMESH_SEWING_FREEBORDERS"
-msgstr "mesh_sew_freeborders.png"
-
-#Sew conform free borders
-msgid "ICON_SMESH_SEWING_CONFORM_FREEBORDERS"
-msgstr "mesh_sew_conform_freeborders.png"
-
-#Sew border to side
-msgid "ICON_SMESH_SEWING_BORDERTOSIDE"
-msgstr "mesh_sew_bordertoside.png"
-
-#Sew side elements
-msgid "ICON_SMESH_SEWING_SIDEELEMENTS"
-msgstr "mesh_sew_sideelements.png"
-
-#Merge nodes
-msgid "ICON_SMESH_MERGE_NODES"
-msgstr "mesh_merge_nodes.png"
-
-#Merge elements
-msgid "ICON_DLG_MERGE_ELEMENTS"
-msgstr "mesh_merge_elements.png"
-
-#-----------------------------------------------------------
-# Hypothesis
-#-----------------------------------------------------------
-
-msgid "ICON_HYPO"
-msgstr "mesh_hypo_length.png"
-
-msgid "ICON_HYPO_EDIT"
-msgstr "mesh_hypo_edit.png"
-
-#Set Algo
-msgid "ICON_DLG_ADD_ALGORITHM"
-msgstr "mesh_set_algo.png"
-
-#Set Hypo
-msgid "ICON_DLG_ADD_HYPOTHESIS"
-msgstr "mesh_set_hypo.png"
-
-#Edit Hypo.
-msgid "ICON_DLG_EDIT_MESH"
-msgstr "mesh_edit.png"
-
-
-#-----------------------------------------------------------
-# Elements
-#-----------------------------------------------------------
-
-#Vertex
-msgid "ICON_DLG_NODE"
-msgstr "mesh_vertex.png"
-
-#Line
-msgid "ICON_DLG_EDGE"
-msgstr "mesh_line.png"
-
-#triangle
-msgid "ICON_DLG_TRIANGLE"
-msgstr "mesh_triangle.png"
-
-#Quadrangle
-msgid "ICON_DLG_QUADRANGLE"
-msgstr "mesh_quad.png"
-#Polygone
-msgid "ICON_DLG_POLYGON"
-msgstr "mesh_polygon.png"
-#triangle
-msgid "ICON_DLG_TETRAS"
-msgstr "mesh_tetra.png"
-
-#Quadrangle
-msgid "ICON_DLG_HEXAS"
-msgstr "mesh_hexa.png"
-
-#Polyhedre
-msgid "ICON_DLG_POLYHEDRON"
-msgstr "mesh_polyhedron.png"
-#-----------------------------------------------------------
-# ObjectBrowser
-#-----------------------------------------------------------
-
-#mesh_tree_mesh
-msgid "ICON_SMESH_TREE_MESH"
-msgstr "mesh_tree_mesh.png"    
-
-#mesh_tree_group
-msgid "ICON_SMESH_TREE_GROUP"
-msgstr "mesh_tree_group.png"   
-
-#mesh_tree_algo
-msgid "ICON_SMESH_TREE_ALGO"
-msgstr "mesh_tree_algo.png"
-
-#mesh_tree_hypo
-msgid "ICON_SMESH_TREE_HYPO"
-msgstr "mesh_tree_hypo.png"
-
-#mesh_tree_mesh_warn
-msgid "ICON_SMESH_TREE_MESH_WARN"
-msgstr "mesh_tree_mesh_warn.png"
-
-#mesh_tree_mesh
-msgid "ICON_SMESH_TREE_MESH_IMPORTED"
-msgstr "mesh_tree_importedmesh.png"
-
-
-#-----------------------------------------------------------
-# Group
-#-----------------------------------------------------------
-
-msgid "ICON_EDIT_GROUP"
-msgstr "mesh_edit_group.png"
-
-msgid "ICON_CONSTRUCT_GROUP"
-msgstr "mesh_make_group.png"
-
-#-----------------------------------------------------------
-# Mesh pattern
-#-----------------------------------------------------------
-
-msgid "ICON_PATTERN_2d"
-msgstr "mesh_algo_mefisto.png"
-
-msgid "ICON_PATTERN_3d"
-msgstr "mesh_algo_hexa.png"
-
-msgid "ICON_PATTERN_SAMPLE_2D"
-msgstr "pattern_sample_2d.png"
-
-msgid "ICON_PATTERN_SAMPLE_3D"
-msgstr "pattern_sample_3D.png"
-
-#-----------------------------------------------------------
-# Add/Remove buttons
-#-----------------------------------------------------------
-
-msgid "ICON_APPEND"
-msgstr "mesh_add.png"
-
-msgid "ICON_REMOVE"
-msgstr "mesh_remove.png"
-
-msgid "ICON_DELETE"
-msgstr "delete.png"
-
-msgid "ICON_COMPUTE"
-msgstr "mesh_compute.png"
-
-msgid "ICON_UNION"
-msgstr "mesh_unionGroups.png"
-
-msgid "ICON_INTERSECT"
-msgstr "mesh_intersectGroups.png"
-
-msgid "ICON_CUT"
-msgstr "mesh_cutGroups.png"
-
-msgid "ICON_DEL_GROUP"
-msgstr "mesh_deleteGroups.png"
-
-msgid "ICON_ADV_INFO"
-msgstr "advanced_mesh_info.png"
-
-msgid "ICON_STD_INFO"
-msgstr "standard_mesh_info.png"
-
-msgid "ICON_LENGTH"
-msgstr "mesh_length.png"
-
-msgid "ICON_LENGTH_2D"
-msgstr "mesh_length_2d.png"
-
-msgid "ICON_AREA"
-msgstr "mesh_area.png"
-
-msgid "ICON_TAPER"
-msgstr "mesh_taper.png"
-
-msgid "ICON_FREE_EDGE"
-msgstr "mesh_free_edges.png"
-
-msgid "ICON_FREE_EDGE_2D"
-msgstr "mesh_free_edges_2d.png"
-
-msgid "ICON_CONNECTION"
-msgstr "mesh_multi_edges.png"
-
-msgid "ICON_CONNECTION_2D"
-msgstr "mesh_multi_edges_2d.png"
-
-msgid "ICON_WIRE"
-msgstr "mesh_wireframe.png"
-
-msgid "ICON_SHADE"
-msgstr "mesh_shading.png"
-
-msgid "ICON_SHRINK"
-msgstr "mesh_shrink.png"
-
-msgid "ICON_POINTS"
-msgstr "mesh_points.png"
-
-msgid "ICON_ASPECT"
-msgstr "mesh_aspect.png"
-
-msgid "ICON_ASPECT_3D"
-msgstr "mesh_aspect_3d.png"
-
-msgid "ICON_ANGLE"
-msgstr "mesh_angle.png"
-
-msgid "ICON_WARP"
-msgstr "mesh_wrap.png"
-
-msgid "ICON_SKEW"
-msgstr "mesh_skew.png"
-
-msgid "ICON_UPDATE"
-msgstr "mesh_update.png"
-
-msgid "ICON_UNIONTRI"
-msgstr "mesh_uniontri.png"
-
-msgid "ICON_UNION2TRI"
-msgstr "mesh_union2tri.png"
-
-msgid "ICON_CUTQUAD"
-msgstr "mesh_cutquad.png"
-
-msgid "ICON_EXTRUSION"
-msgstr "mesh_extrusion.png"
-
-msgid "ICON_EXTRUSION_ALONG"
-msgstr "mesh_extrusionpath.png"
-
-msgid "ICON_REVOLUTION"
-msgstr "mesh_revolution.png"
-
-msgid "ICON_MAP"
-msgstr "mesh_pattern.png"
-
-msgid "ICON_FILE_OPEN"
-msgstr "open.png"
diff --git a/src/SMESHGUI/SMESH_msg_en.po b/src/SMESHGUI/SMESH_msg_en.po
deleted file mode 100644 (file)
index 7f5fc68..0000000
+++ /dev/null
@@ -1,2908 +0,0 @@
-# This is a Qt message file in .po format.  Each msgid starts with
-# a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
-# would be translated to "Pub", not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2002-05-28 10:46:48 AM CEST\n"
-"PO-Revision-Date: 2004-10-20 17:25+0400\n"
-"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-#-------------------------------------------------------------------------
-# BUTTON
-#-------------------------------------------------------------------------
-
-#Apply
-msgid "SMESH_BUT_APPLY"
-msgstr "&Apply"
-
-#Close
-msgid "SMESH_BUT_CLOSE"
-msgstr "&Close"
-
-#Ok
-msgid "SMESH_BUT_OK"
-msgstr "&Ok"
-
-#Yes
-msgid "SMESH_BUT_YES"
-msgstr "&Yes"
-
-#No
-msgid "SMESH_BUT_NO"
-msgstr "&No"
-
-#Cancel
-msgid "SMESH_BUT_CANCEL"
-msgstr "&Cancel"
-
-#Add
-msgid "SMESH_BUT_ADD"
-msgstr "A&dd"
-
-#Remove
-msgid "SMESH_BUT_REMOVE"
-msgstr "&Remove"
-
-#Set Filters
-msgid "SMESH_BUT_FILTER"
-msgstr "Set &Filters"
-
-#Sort
-msgid "SMESH_BUT_SORT"
-msgstr "&Sort List"
-
-#Create
-msgid "SMESH_BUT_CREATE"
-msgstr "Create"
-
-#New
-msgid "SMESH_BUT_NEW"
-msgstr "New"
-
-#Delete
-msgid "SMESH_BUT_DELETE"
-msgstr "Delete"
-
-
-#-------------------------------------------------------------------------
-# WARNING
-#-------------------------------------------------------------------------
-
-#Error
-msgid "SMESH_ERROR"
-msgstr "Error"
-
-#Warning
-msgid "SMESH_WRN_WARNING"
-msgstr "Warning"
-
-msgid "SMESH_WARNING"
-msgstr "Warning"
-
-#Error
-msgid "SMESH_OPERATION_FAILED"
-msgstr "Operation failed"
-
-#: SMESHGUI.cxx:465
-msgid "SMESH_REALLY_DELETE"
-msgstr "Do you really want to delete object(s) ?"
-
-#Hypothesis or Algorithm not exists
-msgid "SMESH_WRN_HYPOTHESIS_NOTEXIST"
-msgstr "Hypothesis or Algorithm not exists"
-
-#Hypothesis already exists
-msgid "SMESH_WRN_HYPOTHESIS_ALREADYEXIST"
-msgstr "Hypothesis already exists"
-
-#Algorithm already exists
-msgid "SMESH_WRN_ALGORITHM_ALREADYEXIST"
-msgstr "Algorithm already exists"
-
-#Missing parameters
-msgid "SMESH_WRN_MISSING_PARAMETERS"
-msgstr "Missing parameters"
-
-#Compute failed
-msgid "SMESH_WRN_COMPUTE_FAILED"
-msgstr "Mesh computation failed"
-
-#Study frame with VTK Viewer must be activated
-msgid "SMESH_WRN_VIEWER_VTK"
-msgstr "Study frame with VTK Viewer must be activated"
-
-#Activate Elements Selection Mode
-msgid "SMESH_WRN_SELECTIONMODE_ELEMENTS"
-msgstr "Activate Elements Selection Mode"
-
-#Activate Nodes Selection Mode
-msgid "SMESH_WRN_SELECTIONMODE_NODES"
-msgstr "Activate Nodes Selection Mode"
-
-#Activate Link Selection Mode
-msgid "SMESH_WRN_SELECTIONMODE_DIAGONAL"
-msgstr "Activate Link Selection Mode"
-
-#Empty name
-msgid "SMESH_WRN_EMPTY_NAME" 
-msgstr "Empty name is not valid"
-
-#-------------------------------------------------------------------------
-# MEN
-#-------------------------------------------------------------------------
-
-#SMESH
-msgid "SMESH_MEN_COMPONENT"
-msgstr "SMESH"
-
-#SubMeshes On Vertex
-msgid "SMESH_MEN_SubMeshesOnVertex"
-msgstr "SubMeshes On Vertex"
-
-#SubMeshes On Edge
-msgid "SMESH_MEN_SubMeshesOnEdge"
-msgstr "SubMeshes On Edge"
-
-#SubMeshes On Face
-msgid "SMESH_MEN_SubMeshesOnFace"
-msgstr "SubMeshes On Face"
-
-#SubMeshes On Solid
-msgid "SMESH_MEN_SubMeshesOnSolid"
-msgstr "SubMeshes On Solid"
-
-#SubMeshes On Compound
-msgid "SMESH_MEN_SubMeshesOnCompound"
-msgstr "SubMeshes On Compound"
-
-#Applied Algorithm
-msgid "SMESH_MEN_APPLIED_ALGORIHTMS"
-msgstr "Applied Algorithms"
-
-#Applied Hypothesis
-msgid "SMESH_MEN_APPLIED_HYPOTHESIS"
-msgstr "Applied Hypotheses"
-
-#Hypothesis Definition
-msgid "SMESH_MEN_HYPOTHESIS"
-msgstr "Hypotheses"
-
-#Algorithms Definition
-msgid "SMESH_MEN_ALGORITHMS"
-msgstr "Algorithms"
-
-
-#-------------------------------------------------------------------------
-# DIVERS
-#-------------------------------------------------------------------------
-
-#Arguments
-msgid "SMESH_ARGUMENTS"
-msgstr "Arguments"
-
-#Value
-msgid "SMESH_VALUE"
-msgstr "Value"
-
-#%1_objects
-msgid "SMESH_OBJECTS_SELECTED"
-msgstr "%1_objects"
-
-#Name
-msgid "SMESH_NAME"
-msgstr "Name"
-
-#Geometrical Object
-msgid "SMESH_OBJECT_GEOM"
-msgstr "Geometrical Object"
-
-#Length
-msgid "SMESH_LENGTH"
-msgstr "Length"
-
-#Coordinates
-msgid "SMESH_COORDINATES"
-msgstr "Coordinates"
-
-#X
-msgid "SMESH_X"
-msgstr "X"
-
-#Y
-msgid "SMESH_Y"
-msgstr "Y"
-
-#Z
-msgid "SMESH_Z"
-msgstr "Z"
-
-#dX
-msgid "SMESH_DX"
-msgstr "dX"
-
-#dY
-msgid "SMESH_DY"
-msgstr "dY"
-
-#dZ
-msgid "SMESH_DZ"
-msgstr "dZ"
-
-msgid "SMESH_POINT"
-msgstr "Point"
-
-msgid "SMESH_POINT_1"
-msgstr "Point 1"
-
-msgid "SMESH_POINT_2"
-msgstr "Point 2"
-
-msgid "SMESH_VECTOR"
-msgstr "Vector"
-
-#Axis
-msgid "SMESH_AXIS"
-msgstr "Axis"
-
-#Plane
-msgid "SMESH_PLANE"
-msgstr "Plane"
-
-#Normal
-msgid "SMESH_NORMAL"
-msgstr "Normal"
-
-#Parameters
-msgid "SMESH_PARAMETERS"
-msgstr "Parameters"
-
-#Distance
-msgid "SMESH_DISTANCE"
-msgstr "Distance"
-
-
-#-------------------------------------------------------------------------
-# DLG
-#-------------------------------------------------------------------------
-
-# -------------- Init --------------
-
-#Mesh
-msgid "SMESH_INIT"
-msgstr "Mesh"
-
-#Mesh or SubMesh
-msgid "SMESH_OBJECT_MESHorSUBMESH"
-msgstr "Mesh or SubMesh"
-
-#Mesh Construction
-msgid "SMESH_INIT_MESH"
-msgstr "Mesh Construction"
-
-#SubMesh Construction
-msgid "SMESH_ADD_SUBMESH"
-msgstr "SubMesh Construction"
-
-#Mesh
-msgid "SMESH_OBJECT_MESH"
-msgstr "Mesh"
-
-#SubMesh
-msgid "SMESH_SUBMESH"
-msgstr "SubMesh"
-
-
-# -------------- Hypothesis / Algorithm --------------
-
-#Meshers file
-msgid "MESHERS_FILE_NO_VARIABLE"
-msgstr "Environment variable SMESH_MeshersList is not defined"
-
-#Meshers file
-msgid "MESHERS_FILE_CANT_OPEN"
-msgstr "Can not open resource file"
-
-#Meshers file
-msgid "MESHERS_FILE_CHECK_VARIABLE"
-msgstr "Check environment variable SMESH_MeshersList"
-
-#Hypothesis
-msgid "SMESH_ADD_HYPOTHESIS"
-msgstr "Hypothesis"
-
-#Hypothesis Construction
-msgid "SMESH_ADD_HYPOTHESIS_TITLE"
-msgstr "Hypothesis Assignation"
-
-#Hypothesis
-msgid "SMESH_OBJECT_HYPOTHESIS"
-msgstr "Hypothesis"
-
-#Algorithms
-msgid "SMESH_ADD_ALGORITHM"
-msgstr "Algorithms"
-
-#Algorithms Construction
-msgid "SMESH_ADD_ALGORITHM_TITLE"
-msgstr "Algorithms Assignation"
-
-#Algorithm
-msgid "SMESH_OBJECT_ALGORITHM"
-msgstr "Algorithm"
-
-
-# -------------- Nodes / Segments / Elements --------------
-
-#Node
-msgid "MESH_NODE"
-msgstr "Node"
-
-#Node Construction
-msgid "MESH_NODE_TITLE"
-msgstr "Add Node"
-
-#Segments
-msgid "SMESH_SEGMENTS"
-msgstr "Segments"
-
-#Elements
-msgid "SMESH_ELEMENTS"
-msgstr "Elements"
-
-#Id Elements
-msgid "SMESH_ID_ELEMENTS"
-msgstr "Id Elements"
-
-#Remove
-msgid "SMESH_REMOVE"
-msgstr "Remove"
-
-#Remove Elements
-msgid "SMESH_REMOVE_ELEMENTS_TITLE"
-msgstr "Remove Elements"
-
-#Id Nodes
-msgid "SMESH_ID_NODES"
-msgstr "Id Nodes"
-
-#Nodes
-msgid "SMESH_NODES"
-msgstr "Nodes"
-
-#Id Faces
-msgid "SMESH_ID_FACES"
-msgstr "Id Faces"
-
-#Remove Nodes
-msgid "SMESH_REMOVE_NODES_TITLE"
-msgstr "Remove Nodes"
-
-#Move
-msgid "SMESH_MOVE"
-msgstr "Move"
-
-#Move Node
-msgid "SMESH_MOVE_NODES_TITLE"
-msgstr "Move Node"
-
-#Add Triangle
-msgid "SMESH_ADD_TRIANGLE_TITLE"
-msgstr "Add Triangle"
-
-#Add Quadrangle
-msgid "SMESH_ADD_QUADRANGLE_TITLE"
-msgstr "Add Quadrangle"
-
-#Add Edge
-msgid "SMESH_ADD_EDGE_TITLE"
-msgstr "Add Edge"
-
-#Add Tetrahedron
-msgid "SMESH_ADD_TETRAS_TITLE"
-msgstr "Add Tetrahedron"
-
-#Add Hexahedron
-msgid "SMESH_ADD_HEXAS_TITLE"
-msgstr "Add Hexahedron"
-
-#Reverse
-msgid "SMESH_REVERSE"
-msgstr "Reverse"
-
-#Triangle
-msgid "SMESH_TRIANGLE"
-msgstr "Triangle"
-
-#Quadrangle
-msgid "SMESH_QUADRANGLE"
-msgstr "Quadrangle"
-
-#Edge
-msgid "SMESH_EDGE"
-msgstr "Edge"
-
-#Tetrahedron
-msgid "SMESH_TETRAS"
-msgstr "Tetrahedron"
-
-#Hexahedron
-msgid "SMESH_HEXAS"
-msgstr "Hexahedron"
-
-#Add Triangle
-msgid "SMESH_ADD_TRIANGLE"
-msgstr "Add Triangle"
-
-#Add Quadrangle
-msgid "SMESH_ADD_QUADRANGLE"
-msgstr "Add Quadrangle"
-
-#Add Edge
-msgid "SMESH_ADD_EDGE"
-msgstr "Add Edge"
-
-#Add Tetrahedron
-msgid "SMESH_ADD_TETRAS"
-msgstr "Add Tetrahedron"
-
-#Add Hexahedron
-msgid "SMESH_ADD_HEXAS"
-msgstr "Add Hexahedron"
-
-
-#Angle
-msgid "SMESH_ANGLE"
-msgstr "Angle"
-
-#Tolerance
-msgid "SMESH_TOLERANCE"
-msgstr "Tolerance"
-
-# -------------- Transparency --------------
-
-#Opacity
-msgid "SMESH_TRANSPARENCY_OPAQUE"
-msgstr "---> Opaque"
-
-#Transparency
-msgid "SMESH_TRANSPARENCY_TITLE"
-msgstr "Change Transparency"
-
-#Fully Transparency
-msgid "SMESH_TRANSPARENCY_TRANSPARENT"
-msgstr "Transparent <---"
-
-
-# -------------- Clipping --------------
-
-#Transparency
-msgid "SMESH_CLIPPING_TITLE"
-msgstr "Change Clipping"
-
-#Front
-msgid "SMESH_CLIPPING_FROM"
-msgstr "From <---"
-
-#Back
-msgid "SMESH_CLIPPING_INTO"
-msgstr "---> Into"
-
-
-# -------------- Preferences -----------
-
-#Scalar Bar Preferences
-msgid "SMESH_PROPERTIES_SCALARBAR"
-msgstr "Scalar Bar Properties"
-
-#Scalar Bar Properties
-msgid "SMESH_PREFERENCES_SCALARBAR"
-msgstr "Scalar Bar Preferences"
-
-#Scalar Bar Range
-msgid "SMESH_RANGE_SCALARBAR"
-msgstr "Scalar Range"
-
-#Scalar Bar Range Min Value
-msgid "SMESH_RANGE_MIN"
-msgstr "Min value:"
-
-#Scalar Bar Range Max Value
-msgid "SMESH_RANGE_MAX"
-msgstr "Max value:"
-
-#Scalar Bar Font
-msgid "SMESH_FONT_SCALARBAR"
-msgstr "Font"
-
-#Arial
-msgid "SMESH_FONT_ARIAL"
-msgstr "Arial"
-
-#Courier
-msgid "SMESH_FONT_COURIER"
-msgstr "Courier"
-
-#Times
-msgid "SMESH_FONT_TIMES"
-msgstr "Times"
-
-#Bold
-msgid "SMESH_FONT_BOLD"
-msgstr "Bold"
-
-#Italic
-msgid "SMESH_FONT_ITALIC"
-msgstr "Italic"
-
-#Shadow
-msgid "SMESH_FONT_SHADOW"
-msgstr "Shadow"
-
-#Title
-msgid "SMESH_TITLE"
-msgstr "Title:"
-
-#Labels
-msgid "SMESH_LABELS"
-msgstr "Labels:"
-
-#Colors & Labels
-msgid "SMESH_LABELS_COLORS_SCALARBAR"
-msgstr "Colors && Labels"
-
-#Number Of Colors
-msgid "SMESH_NUMBEROFCOLORS"
-msgstr "Nb of colors:"
-
-#Number Of Labels
-msgid "SMESH_NUMBEROFLABELS"
-msgstr "Nb of labels:"
-
-#Number Of Steps
-msgid "SMESH_NUMBEROFSTEPS"
-msgstr "Number of steps:"
-
-#Orientation
-msgid "SMESH_ORIENTATION"
-msgstr "Orientation"
-
-#Vertical
-msgid "SMESH_VERTICAL"
-msgstr "Vertical"
-
-#Horizontal
-msgid "SMESH_HORIZONTAL"
-msgstr "Horizontal"
-
-#Position & Size
-msgid "SMESH_POSITION_SIZE_SCALARBAR"
-msgstr "Origin && Size"
-
-#X
-msgid "SMESH_X_SCALARBAR"
-msgstr "X:"
-
-#Y
-msgid "SMESH_Y_SCALARBAR"
-msgstr "Y:"
-
-#Width
-msgid "SMESH_WIDTH"
-msgstr "Width:"
-
-#Height
-msgid "SMESH_HEIGHT"
-msgstr "Height:"
-
-# -------------- ScalarBar --------------
-
-#Max
-msgid "SMESH_MAX"
-msgstr "Max"
-
-#Min
-msgid "SMESH_MIN"
-msgstr "Min"
-
-#ScalarBar
-msgid "SMESH_SCALARBAR"
-msgstr "Scalar Bar"
-
-#Update View
-msgid "SMESH_UPDATEVIEW"
-msgstr "Update View"
-
-
-# -------------- Connectivity --------------
-
-#Boundary Edges
-msgid "SMESH_BOUNDARYEDGES"
-msgstr "Boundary Edges"
-
-#Feature Edges
-msgid "SMESH_FEATUREEDGES"
-msgstr "Feature Edges"
-
-#Manifold Edges
-msgid "SMESH_MANIFOLDEDGES"
-msgstr "Manifold Edges"
-
-#Non Manifold Edges
-msgid "SMESH_NONMANIFOLDEDGES"
-msgstr "Non Manifold Edges"
-
-#Edges Connectivity
-msgid "SMESH_EDGES_CONNECTIVITY_TITLE"
-msgstr "Edges Connectivity"
-
-#Mesh
-msgid "SMESH_MESH"
-msgstr "Mesh"
-
-#Feature Angle
-msgid "SMESH_FEATUREANGLE"
-msgstr "Feature Angle"
-
-# -------------- Operations --------------
-
-#Change Orientation
-msgid "SMESH_ORIENTATION_ELEMENTS_TITLE"
-msgstr "Change Orientation"
-
-#Id Diagonal
-msgid "SMESH_ID_DIAGONAL"
-msgstr "Id Edges"
-
-#Diagonal Inversion
-msgid "SMESH_DIAGONAL"
-msgstr "Diagonal Inversion"
-
-#Diagonal Inversion
-msgid "SMESH_DIAGONAL_INVERSION_TITLE"
-msgstr "Diagonal Inversion"
-
-#Select whole mesh or submesh
-msgid "SMESH_SELECT_WHOLE_MESH"
-msgstr "Select whole mesh, submesh or group"
-
-#Smoothing
-msgid "SMESH_SMOOTHING"
-msgstr "Smoothing"
-
-#Renumberig
-msgid "SMESH_RENUMBERING"
-msgstr "Renumbering"
-
-#Renumberig nodes
-msgid "SMESH_RENUMBERING_NODES_TITLE"
-msgstr "Renumbering nodes"
-
-#Renumberig elements
-msgid "SMESH_RENUMBERING_ELEMENTS_TITLE"
-msgstr "Renumbering elements"
-
-#Rotation about an axis
-msgid "SMESH_ROTATION_TITLE"
-msgstr "Rotation about an axis"
-
-#Translation
-msgid "SMESH_TRANSLATION"
-msgstr "Translation"
-
-#Symmetry
-msgid "SMESH_SYMMETRY"
-msgstr "Symmetry"
-
-#Sewing
-msgid "SMESH_SEWING"
-msgstr "Sewing"
-
-#Merge nodes
-msgid "SMESH_MERGE_NODES"
-msgstr "Merge nodes"
-
-#Merge elements
-msgid "SMESH_MERGE_ELEMENTS_TITLE"
-msgstr "Merge elements"
-
-#Extrusion
-msgid "SMESH_EXTRUSION"
-msgstr "Extrusion"
-
-#Revolution
-msgid "SMESH_REVOLUTION"
-msgstr "Revolution"
-
-#Create a copy
-msgid "SMESH_CREATE_COPY"
-msgstr "Create a copy"
-
-#Rotation
-msgid "SMESH_ROTATION"
-msgstr "Rotation"
-
-# -------------- Mesh Infos --------------
-
-#Mesh Infos
-msgid "SMESH_MESHINFO_TITLE"
-msgstr "Mesh Infos"
-
-#Standard Mesh Infos
-msgid "SMESH_STANDARD_MESHINFO_TITLE"
-msgstr "Standard Mesh Infos"
-
-#Mesh Infos
-msgid "SMESH_MESHINFO_NAME"
-msgstr "Name"
-
-#Faces :
-msgid "SMESH_MESHINFO_ELEMENTS"
-msgstr "Elements"
-
-#Edges :
-msgid "SMESH_MESHINFO_EDGES"
-msgstr "Edges"
-
-#Nodes :
-msgid "SMESH_MESHINFO_NODES"
-msgstr "Nodes"
-
-#Faces :
-msgid "SMESH_MESHINFO_FACES"
-msgstr "Faces"
-
-#Total :
-msgid "SMESH_MESHINFO_TOTAL"
-msgstr "Total"
-
-#Triangles :
-msgid "SMESH_MESHINFO_TRIANGLES"
-msgstr "Triangles"
-
-#Quadrangles :
-msgid "SMESH_MESHINFO_QUADRANGLES"
-msgstr "Quadrangles"
-
-#Volumes :
-msgid "SMESH_MESHINFO_VOLUMES"
-msgstr "Volumes"
-
-#Tetrahedrons :
-msgid "SMESH_MESHINFO_TETRAS"
-msgstr "Tetrahedrons"
-
-#Hexahedrons :
-msgid "SMESH_MESHINFO_HEXAS"
-msgstr "Hexahedrons"
-
-#Pyramids :
-msgid "SMESH_MESHINFO_PYRAS"
-msgstr "Pyramids"
-
-#Prisms :
-msgid "SMESH_MESHINFO_PRISMS"
-msgstr "Prisms"
-
-#Type :
-msgid "SMESH_MESHINFO_TYPE"
-msgstr "Type"
-
-#Entities :
-msgid "SMESH_MESHINFO_ENTITIES"
-msgstr "Entities"
-
-#All types :
-msgid "SMESH_MESHINFO_ALL_TYPES"
-msgstr "Heterogenous"
-
-#Polygons
-msgid "SMESH_MESHINFO_POLYGONES"
-msgstr "Polygons"
-
-#polyhedrons
-msgid "SMESH_MESHINFO_POLYEDRES"
-msgstr "Polyhedrons"
-
-#No valid selection :
-msgid "SMESH_BAD_SELECTION"
-msgstr "No valid selection"
-
-#Information :
-msgid "SMESH_INFORMATION"
-msgstr "Information"
-
-# --------- Create hypotheses/algorithms ---------
-
-msgid "SMESH_CREATE_HYPOTHESES"
-msgstr "Create hypotheses"
-
-msgid "SMESH_CREATE_ALGORITHMS"
-msgstr "Create algorithms"
-
-msgid "SMESH_AVAILABLE_ALGORITHMS"
-msgstr "Available algorithms"
-
-msgid "SMESH_AVAILABLE_HYPOTHESES"
-msgstr "Available hypotheses"
-
-# -------------- Edit --------------
-
-#Hypotheses Assignation
-msgid "SMESH_EDIT_HYPOTHESES"
-msgstr "Hypotheses Assignation"
-
-#Hypotheses
-msgid "SMESH_HYPOTHESES"
-msgstr "Hypotheses"
-
-#Available
-msgid "SMESH_AVAILABLE"
-msgstr "Available"
-
-#Used
-msgid "SMESH_EDIT_USED"
-msgstr "Used"
-
-# -------------- Group --------------
-
-#Create Group
-msgid "SMESH_CREATE_GROUP_TITLE"
-msgstr "Create Group"
-
-#Edit Group
-msgid "SMESH_EDIT_GROUP_TITLE"
-msgstr "Edit Group"
-
-#Elements Type
-msgid "SMESH_ELEMENTS_TYPE"
-msgstr "Elements Type"
-
-#Face
-msgid "SMESH_FACE"
-msgstr "Face"
-
-#Volume
-msgid "SMESH_VOLUME"
-msgstr "Volume"
-
-#Content
-msgid "SMESH_CONTENT"
-msgstr "Content"
-
-#Select from
-msgid "SMESH_SELECT_FROM"
-msgstr "Select From"
-
-#Group
-msgid "SMESH_GROUP"
-msgstr "Group"
-
-#Group type
-msgid "SMESH_GROUP_TYPE"
-msgstr "Group type"
-
-#Group type: standalone
-msgid "SMESH_GROUP_STANDALONE"
-msgstr "Standalone group"
-
-#Group type: geometry
-msgid "SMESH_GROUP_GEOMETRY"
-msgstr "Group on geometry"
-
-#Geometry group
-msgid "SMESH_GEOM_GROUP"
-msgstr "Geometry group"
-
-#%1 SubMeshes
-msgid "SMESH_SUBMESH_SELECTED"
-msgstr "%1 SubMeshes"
-
-#%1 Groups
-msgid "SMESH_GROUP_SELECTED"
-msgstr "%1 Groups"
-
-
-# -------------- Preferences - Selection --------------
-msgid "SMESH_PREF_SELECTION"
-msgstr "Preferences - Selection"
-
-msgid "SMESH_SELECTION"
-msgstr "Selection"
-
-msgid "SMESH_PRESELECTION"
-msgstr "Preselection"
-
-msgid "SMESH_HILIGHT_COLOR"
-msgstr "Highlight Color"
-
-msgid "SMESH_ELEMENTS_COLOR"
-msgstr "Mesh Element Color"
-
-msgid "SMESH_PRECISION"
-msgstr "Precision"
-
-msgid "SMESH_OUTLINE_COLOR"
-msgstr "Mesh Object Color"
-
-# -------------- SMESHGUI_FilterTable --------------
-
-msgid "SMESHGUI_FilterTable::FILTER"
-msgstr "Filter"
-
-msgid "SMESHGUI_FilterTable::ADD"
-msgstr "Add"
-
-msgid "SMESHGUI_FilterTable::CLEAR"
-msgstr "Clear"
-
-msgid "SMESHGUI_FilterTable::REMOVE"
-msgstr "Remove"
-
-msgid "SMESHGUI_FilterTable::INSERT"
-msgstr "Insert"
-
-msgid "SMESHGUI_FilterTable::ADD_TO"
-msgstr "Add to..."
-
-msgid "SMESHGUI_FilterTable::COPY_FROM"
-msgstr "Copy from..."
-
-msgid "SMESHGUI_FilterTable::ADDITIONAL_PARAMETERS"
-msgstr "Additional parameters"
-
-msgid "SMESHGUI_FilterTable::CRITERION"
-msgstr "Criterion"
-
-msgid "SMESHGUI_FilterTable::COMPARE"
-msgstr "Compare"
-
-msgid "SMESHGUI_FilterTable::THRESHOLD_VALUE"
-msgstr "Threshold value"
-
-msgid "SMESHGUI_FilterTable::UNARY"
-msgstr "Unary"
-
-msgid "SMESHGUI_FilterTable::BINARY"
-msgstr "Binary"
-
-msgid "SMESHGUI_FilterTable::FREE_EDGES"
-msgstr "Free edges"
-
-msgid "SMESHGUI_FilterTable::FREE_BORDERS"
-msgstr "Free borders"
-
-msgid "SMESHGUI_FilterTable::MULTI_BORDERS"
-msgstr "Borders at multi-connections"
-
-#msgid "SMESHGUI_FilterTable::MULTI2D_BORDERS"
-#msgstr "Borders at multi-connections 2D"
-
-msgid "SMESHGUI_FilterTable::LENGTH"
-msgstr "Length"
-
-#msgid "SMESHGUI_FilterTable::LENGTH2D"
-#msgstr "Length2D"
-
-msgid "SMESHGUI_FilterTable::ASPECT_RATIO"
-msgstr "Aspect ratio"
-
-msgid "SMESHGUI_FilterTable::ASPECT_RATIO_3D"
-msgstr "Aspect ratio 3D"
-
-msgid "SMESHGUI_FilterTable::WARPING"
-msgstr "Warping"
-
-msgid "SMESHGUI_FilterTable::MINIMUM_ANGLE"
-msgstr "Minimum angle"
-
-msgid "SMESHGUI_FilterTable::TAPER"
-msgstr "Taper"
-
-msgid "SMESHGUI_FilterTable::SKEW"
-msgstr "Skew"
-
-msgid "SMESHGUI_FilterTable::AREA"
-msgstr "Area"
-
-msgid "SMESHGUI_FilterTable::BAD_ORIENTED_VOLUME"
-msgstr "Bad oriented volume"
-
-msgid "SMESHGUI_FilterTable::LESS_THAN"
-msgstr "Less than"
-
-msgid "SMESHGUI_FilterTable::MORE_THAN"
-msgstr "More than"
-
-msgid "SMESHGUI_FilterTable::EQUAL_TO"
-msgstr "Equal to"
-
-msgid "SMESHGUI_FilterTable::NOT"
-msgstr "Not"
-
-msgid "SMESHGUI_FilterTable::AND"
-msgstr "And"
-
-msgid "SMESHGUI_FilterTable::OR"
-msgstr "Or"
-
-msgid "SMESHGUI_FilterTable::ERROR"
-msgstr "Threshold value is not correctly specified\nPlease enter correct value and try again"
-
-msgid "SMESHGUI_INVALID_PARAMETERS"
-msgstr "Parameters are not correctly specified\nPlease enter correct values and try again"
-
-msgid "SMESHGUI_FilterTable::MULTIEDGES_ERROR"
-msgstr "Threshold value of borders at multi-connections can not be equal 1\nPlease enter correct value and try again"
-
-msgid "SMESHGUI_FilterTable::ENTITY_TYPE"
-msgstr "Entity type"
-
-msgid "SMESHGUI_FilterTable::FACES"
-msgstr "Faces"
-
-msgid "SMESHGUI_FilterTable::EDGES"
-msgstr "Edges"
-
-msgid "SMESHGUI_FilterTable::NODES"
-msgstr "Nodes"
-
-msgid "SMESHGUI_FilterTable::VOLUMES"
-msgstr "Volumes"
-
-msgid "SMESHGUI_FilterTable::ID"
-msgstr "ID"
-
-msgid "SMESHGUI_FilterTable::RANGE_OF_IDS"
-msgstr "Range of IDs"
-
-msgid "SMESHGUI_FilterTable::BELONG_TO_GEOM"
-msgstr "Belong to Geom"
-
-msgid "SMESHGUI_FilterTable::BELONG_TO_PLANE"
-msgstr "Belong to Plane"
-
-msgid "SMESHGUI_FilterTable::BELONG_TO_CYLINDER"
-msgstr "Belong to Cylinder"
-
-msgid "SMESHGUI_FilterTable::LYING_ON_GEOM"
-msgstr "Lying on Geom"
-
-# -------------- SMESHGUI_FilterDlg --------------
-msgid "SMESHGUI_FilterDlg::TLT"
-msgstr "Selection filter"
-
-msgid "SMESHGUI_FilterDlg::FACES_TLT"
-msgstr "Filter for Faces"
-
-msgid "SMESHGUI_FilterDlg::EDGES_TLT"
-msgstr "Filter for Edges"
-
-msgid "SMESHGUI_FilterDlg::NODES_TLT"
-msgstr "Filter for Nodes"
-
-msgid "SMESHGUI_FilterDlg::VOLUMES_TLT"
-msgstr "Filter for Volumes"
-
-msgid "SMESHGUI_FilterDlg::SOURCE"
-msgstr "Source"
-
-msgid "SMESHGUI_FilterDlg::MESH"
-msgstr "Mesh"
-
-msgid "SMESHGUI_FilterDlg::SELECTION"
-msgstr "Initial Selection"
-
-msgid "SMESHGUI_FilterDlg::CURRENT_GROUP"
-msgstr "Current Group"
-
-msgid "SMESHGUI_FilterDlg::SET_IN_VIEWER"
-msgstr "Insert filter in viewer"
-
-msgid "SMESHGUI_FilterDlg::BAD_SHAPE_NAME"
-msgstr "There is no \"%1\" geometrical object in the current study\nPlease select valid object and try again"
-
-msgid "SMESHGUI_FilterDlg::SHAPE_IS_NOT_A_FACE"
-msgstr "\"%1\" is not a face\nPlease select a face and try again"
-
-msgid "SMESHGUI_FilterDlg::SHAPE_IS_NOT_A_PLANE"
-msgstr "\"%1\" is not a plane\nPlease select a plane and try again"
-
-msgid "SMESHGUI_FilterDlg::SHAPE_IS_NOT_A_CYLINDER"
-msgstr "\"%1\" is not a cylinderical face\nPlease select a cylindrical face and try again"
-
-# -------------- SMESHGUI --------------
-msgid "MESH_IS_NOT_SELECTED"
-msgstr "There is no selected mesh\nPlease, select a mesh and try again"
-
-msgid "SMESHGUI::NOT_A_VTK_VIEWER"
-msgstr "This command is available in VTK viewer only\nPlease, create VTK viewer and try again"
-
-msgid "LENGTH_EDGES"
-msgstr "Length"
-
-msgid "LENGTH2D_EDGES"
-msgstr "Length 2D"
-
-msgid "FREE_BORDERS"
-msgstr "Free Borders"
-
-msgid "MULTI_BORDERS"
-msgstr "Borders at Multi-Connections"
-
-msgid "MULTI2D_BORDERS"
-msgstr "Borders at Multi-Connections 2D"
-
-msgid "AREA_ELEMENTS"
-msgstr "Area"
-
-msgid "TAPER_ELEMENTS"
-msgstr "Taper"
-
-msgid "ASPECTRATIO_ELEMENTS"
-msgstr "Aspect Ratio"
-
-msgid "ASPECTRATIO_3D_ELEMENTS"
-msgstr "Aspect Ratio 3D"
-
-msgid "MINIMUMANGLE_ELEMENTS"
-msgstr "Minimum Angle"
-
-msgid "WARP_ELEMENTS"
-msgstr "Warping"
-
-msgid "SKEW_ELEMENTS"
-msgstr "Skew"
-
-msgid "SMESH_INSUFFICIENT_DATA"
-msgstr "Insufficient input value"
-
-msgid "SMESH_CANT_ADD_HYP"
-msgstr "Can not assign \"%1\":\n"     
-
-msgid "SMESH_ADD_HYP_WRN"
-msgstr "\"%1\" assigned but:\n"
-
-msgid "SMESH_CANT_RM_HYP"
-msgstr "Can not unassign \"%1\":\n"
-
-msgid "SMESH_RM_HYP_WRN"
-msgstr "\"%1\" unassigned but:\n"
-
-msgid "SMESH_HYP_1"
-msgstr "Algorithm misses a hypothesis"
-
-msgid "SMESH_HYP_2"
-msgstr "There are concurrent hypotheses on a shape"
-
-msgid "SMESH_HYP_3"
-msgstr "Hypothesis has a bad parameter value"
-
-msgid "SMESH_HYP_4"
-msgstr "Unknown fatal error at hypothesis definition"
-
-msgid "SMESH_HYP_5"
-msgstr "Hypothesis is not suitable in the current context"
-
-msgid "SMESH_HYP_6"
-msgstr "Non-conform mesh is produced using applied hypotheses"
-
-msgid "SMESH_HYP_7"
-msgstr "Such dimention hypothesis is already assigned to the shape"
-
-msgid "SMESH_HYP_8"
-msgstr "Hypothesis and submesh dimensions mismatch"
-
-msgid "SMESH_DRS_1"
-msgstr "MED file contains no mesh with the given name"
-
-msgid "SMESH_DRS_2"
-msgstr ""
-"MED file has overlapped ranges of element numbers,\n"
-"     the numbers from the file are ignored"
-
-msgid "SMESH_DRS_3"
-msgstr "Some elements were skipped due to incorrect file data"
-
-msgid "SMESH_DRS_4"
-msgstr "    The file is incorrect,\n"
-       "some information will be missed"
-
-msgid "SMESH_DRS_EMPTY"
-msgstr "      The file is empty,\n"
-       "there is nothing to be published"
-
-msgid "SMESH_EXPORT_UNV"
-msgstr "During export mesh with name - \"%1\" to UNV\n"
-       "       pyramid's elements will be missed"
-
-msgid "SMESH_EXPORT_MED_V2_1"
-msgstr "During export mesh with name - \"%1\" to MED 2.1\n"
-       "polygons and polyhedrons elements will be missed\n"
-       "For correct export use MED 2.2\n"
-       "Are you sure want to export to MED 2.1 ?"
-
-msgid "INF_SELECT_OBJECT"
-msgstr "Select an object"
-
-#----------------------------------------------------
-
-msgid "SMESHGUI_FilterLibraryDlg::ADD_TO_TLT"
-msgstr "Add selection filter to library"
-
-msgid "SMESHGUI_FilterLibraryDlg::COPY_FROM_TLT"
-msgstr "Copy selection filter from library"
-
-msgid "SMESHGUI_FilterLibraryDlg::EDIT_LIB_TLT"
-msgstr "Selection filter library"
-
-msgid "SMESHGUI_FilterLibraryDlg::LIBRARY_FILE"
-msgstr "Library file name"
-
-msgid "SMESHGUI_FilterLibraryDlg::ADD"
-msgstr "Add"
-
-msgid "SMESHGUI_FilterLibraryDlg::DELETE"
-msgstr "Delete"
-
-msgid "SMESHGUI_FilterLibraryDlg::FILTER_NAME"
-msgstr "Filter name"
-
-msgid "SMESHGUI_FilterLibraryDlg::OPEN_LIBRARY"
-msgstr "Open library"
-
-msgid "SMESHGUI_FilterLibraryDlg::XML_FILT"
-msgstr "XML files(*.xml)"
-
-msgid "SMESHGUI_FilterLibraryDlg::ALL_FILES_FILTER"
-msgstr "All Files (*.*)"
-
-msgid "SMESHGUI_FilterLibraryDlg::ERROR_LOAD"
-msgstr "It is impossible to load library\nPlease check library file name and attributes"
-
-msgid "SMESHGUI_FilterLibraryDlg::ERROR_FILTER_NAME"
-msgstr "Name of the filter is not unique\nPlease enter other name"
-
-msgid "SMESHGUI_FilterLibraryDlg::EMPTY_FILTER_NAME"
-msgstr "Name of the filter is empty\nPlease enter a non-empty name"
-
-msgid "SMESHGUI_FilterLibraryDlg::FACE"
-msgstr "Face"
-
-msgid "SMESHGUI_FilterLibraryDlg::EDGE"
-msgstr "Edge"
-
-msgid "SMESHGUI_FilterLibraryDlg::NODE"
-msgstr "Node"
-
-msgid "SMESHGUI_FilterLibraryDlg::VOLUME"
-msgstr "Volume"
-
-msgid "SMESHGUI_FilterLibraryDlg::ELEMENT"
-msgstr "Element"
-
-msgid "SMESHGUI_FilterLibraryDlg::LIB_NAME"
-msgstr "FilterLib.xml"
-
-msgid "SMESHGUI_FilterLibraryDlg::SELECTION"
-msgstr "Selection"
-
-msgid "SMESHGUI_FilterLibraryDlg::FILTER"
-msgstr "Filter"
-
-msgid "SMESHGUI_FilterLibraryDlg::LIBRARY_IS_NOT_LOADED"
-msgstr "Library is not loaded. Please load library and try again"
-
-msgid "SMESHGUI_FilterLibraryDlg::ERROR_OF_ADDING"
-msgstr "Internal error occurs during adiing new filter in library.\nPlease verify validity of entered information"
-
-msgid "SMESHGUI_FilterLibraryDlg::ERROR_OF_DELETING"
-msgstr "Internal error occurs during deleting filter from library.\nPlease verify validity of entered information"
-
-msgid "SMESHGUI_FilterLibraryDlg::ERROR_OF_COPYING"
-msgstr "Internal error occurs during copying filter from library.\nPlease verify validity of entered information"
-
-msgid "SMESHGUI_FilterLibraryDlg::ERROR_OF_EDITING"
-msgstr "Internal error occurs during editing filter library.\nPlease verify validity of entered information"
-
-msgid "SMESHGUI_FilterLibraryDlg::ASSIGN_NEW_NAME"
-msgstr "Library already contains filter with name \"%1\"\nNew name \"%2\" is assigned to added filter"
-
-msgid "SMESHGUI_FilterLibraryDlg::FILTER_NAMES"
-msgstr "Names of filters"
-
-msgid "SMESHGUI_FilterLibraryDlg::NO_PERMISSION"
-msgstr "You do not have write permission to this file"
-
-msgid "SMESHGUI_FilterLibraryDlg::ERROR_OF_SAVING"
-msgstr "Internal error occurs during saving filter library\nPlease check input data and try again"
-
-#----------------------------------------------------
-
-msgid "SMESHGUI_SingleEditDlg::EDGE_BETWEEN"
-msgstr "Edge between neighboring triangles"
-
-msgid "SMESHGUI_TrianglesInversionDlg::CAPTION"
-msgstr "Diagonal inversion"
-
-msgid "SMESHGUI_UnionOfTwoTrianglesDlg::CAPTION"
-msgstr "Union of two triangles"
-
-#----------------------------------------------------
-
-msgid "SMESHGUI_MultiEditDlg::FILTER"
-msgstr "Filter"
-
-msgid "SMESHGUI_MultiEditDlg::ADD"
-msgstr "Add"
-
-msgid "SMESHGUI_MultiEditDlg::REMOVE"
-msgstr "Remove"
-
-msgid "SMESHGUI_MultiEditDlg::SORT_LIST"
-msgstr "Sort list"
-
-msgid "SMESHGUI_MultiEditDlg::TO_ALL"
-msgstr "Apply to all"
-
-msgid "SMESHGUI_MultiEditDlg::SPLIT_JOIN_CRITERION"
-msgstr "Criterion"
-
-msgid "SMESHGUI_MultiEditDlg::USE_DIAGONAL_1_3"
-msgstr "Use diagonal 1-3"
-
-msgid "SMESHGUI_MultiEditDlg::USE_DIAGONAL_2_4"
-msgstr "Use diagonal 2-4"
-
-msgid "SMESHGUI_MultiEditDlg::USE_NUMERIC_FUNC"
-msgstr "Use numeric functor"
-
-msgid "SMESHGUI_MultiEditDlg::SELECT_FROM"
-msgstr "Select from"
-
-msgid "SMESHGUI_ChangeOrientationDlg::CAPTION"
-msgstr "Modification of orientation"
-
-msgid "SMESHGUI_UnionOfTrianglesDlg::CAPTION"
-msgstr "Union of triangles"
-
-msgid "SMESHGUI_UnionOfTrianglesDlg::MAXIMUM_ANGLE"
-msgstr "Maximum bending angle"
-
-msgid "SMESHGUI_CuttingOfQuadsDlg::CAPTION"
-msgstr "Cutting of quadrangles"
-
-msgid "SMESHGUI_CuttingOfQuadsDlg::PREVIEW"
-msgstr "Preview"
-
-#----------------------------------------------------
-
-msgid "SMESHGUI_MoveNodesDlg::CAPTION"
-msgstr "Move node"
-
-msgid "SMESHGUI_MoveNodesDlg::NODE_ID"
-msgstr "Node ID"
-
-msgid "SMESHGUI_MoveNodesDlg::NODE_ID_IS_NOT_DEFINED"
-msgstr "Node ID is not defined"
-
-#----------------------------------------------------
-
-msgid "SMESHGUI_DeleteGroupDlg::CAPTION"
-msgstr "Delete groups with contents"
-
-msgid "SMESHGUI_DeleteGroupDlg::SELECTED_GROUPS"
-msgstr "Selected groups"
-
-msgid "SMESHGUI_DeleteGroupDlg::NO_SELECTED_GROUPS"
-msgstr "There are no selected groups\nPlease select a groups and try again"
-
-#----------------------------------------------------
-
-msgid "SMESHGUI_GroupOpDlg::NAME"
-msgstr "Name"
-
-msgid "SMESHGUI_GroupOpDlg::RESULT_NAME"
-msgstr "Result name"
-
-msgid "SMESHGUI_GroupOpDlg::ARGUMENTS"
-msgstr "Arguments"
-
-msgid "SMESHGUI_GroupOpDlg::OBJECT_1"
-msgstr "Object 1"
-
-msgid "SMESHGUI_GroupOpDlg::OBJECT_2"
-msgstr "Object 2"
-
-msgid "SMESHGUI_GroupOpDlg::MAIN_OBJECT"
-msgstr "Main object"
-
-msgid "SMESHGUI_GroupOpDlg::TOOL_OBJECT"
-msgstr "Tool object"
-
-msgid "SMESHGUI_GroupOpDlg::UNION_OF_TWO_GROUPS"
-msgstr "Union of two groups"
-
-msgid "SMESHGUI_GroupOpDlg::INTERSECTION_OF_TWO_GROUPS"
-msgstr "Intersection of two groups"
-
-msgid "SMESHGUI_GroupOpDlg::CUT_OF_TWO_GROUPS"
-msgstr "Cut of two groups"
-
-msgid "SMESHGUI_GroupOpDlg::INCORRECT_ARGUMENTS"
-msgstr "Arguments of operation are not specified\nPlease specify them and try again"
-
-msgid "SMESHGUI_GroupOpDlg::DIFF_MESHES"
-msgstr "Arguments of operation are not correctly specified\nGroups correspond to a different meshes\nPlease specify valid arguments and try again"
-
-msgid "SMESHGUI_GroupOpDlg::DIFF_TYPES"
-msgstr "Arguments of operation are not correctly specified\nGroups contain elements of different types\nPlease specify valid arguments and try again"
-
-msgid "SMESHGUI_GroupOpDlg::EMPTY_NAME"
-msgstr "Name of group to be created is not valid\nPlease specify non-empty name and try again"
-
-#----------------------------------------------------
-
-
-msgid "SMESHGUI_SmoothingDlg::FIXED_NODES_IDS"
-msgstr "Fixed nodes ids"
-
-msgid "SMESHGUI_SmoothingDlg::METHOD"
-msgstr "Method"
-
-msgid "SMESHGUI_SmoothingDlg::ITERATION_LIMIT"
-msgstr "Iteration limit"
-
-msgid "SMESHGUI_SmoothingDlg::MAX_ASPECT_RATIO"
-msgstr "Max. aspect ratio"
-
-msgid "SMESHGUI_SmoothingDlg::LAPLACIAN"
-msgstr "Laplacian"
-
-msgid "SMESHGUI_SmoothingDlg::CENTROIDAL"
-msgstr "Centroidal"
-
-msgid "SMESHGUI_SmoothingDlg::IS_PARAMETRIC"
-msgstr "in parametric space"
-
-#---------------SMESHGUI_SewingDlg-----------
-
-msgid "SMESHGUI_SewingDlg::CREATE_POLYGONS_INSTEAD_SPLITTING"
-msgstr "Create polygons instead of splitting"
-
-msgid "SMESHGUI_SewingDlg::CREATE_POLYEDRS_NEAR_BOUNDARY"
-msgstr "Replace affected volumes by polyedres"
-
-msgid "SMESHGUI_SewingDlg::MERGE_EQUAL_ELEMENTS"
-msgstr "Merge equal elements"
-
-msgid "SMESHGUI_SewingDlg::SEW_FREE_BORDERS"
-msgstr "Sew Free Borders"
-
-msgid "SMESHGUI_SewingDlg::BORDER"
-msgstr "Border"
-
-msgid "SMESHGUI_SewingDlg::BORDER_1"
-msgstr "Border 1"
-
-msgid "SMESHGUI_SewingDlg::BORDER_2"
-msgstr "Border 2"
-
-msgid "SMESHGUI_SewingDlg::SEW_CONFORM_FREE_BORDERS"
-msgstr "Sew Conform Free Borders"
-
-msgid "SMESHGUI_SewingDlg::SEW_BORDER_TO_SIDE"
-msgstr "Sew Border To Side"
-
-msgid "SMESHGUI_SewingDlg::SIDE"
-msgstr "Side"
-
-msgid "SMESHGUI_SewingDlg::SEW_SIDE_ELEMENTS"
-msgstr "Sew Side Elements"
-
-msgid "SMESHGUI_SewingDlg::SIDE_1"
-msgstr "Side 1"
-
-msgid "SMESHGUI_SewingDlg::SIDE_2"
-msgstr "Side 2"
-
-msgid "SMESHGUI_SewingDlg::NODE1_TO_MERGE"
-msgstr "Node 1 To Merge"
-
-msgid "SMESHGUI_SewingDlg::NODE2_TO_MERGE"
-msgstr "Node 2 To Merge"
-
-msgid "SMESHGUI_SewingDlg::FIRST_NODE_ID"
-msgstr "First Node ID"
-
-msgid "SMESHGUI_SewingDlg::SECOND_NODE_ID"
-msgstr "Second Node ID"
-
-msgid "SMESHGUI_SewingDlg::LAST_NODE_ID"
-msgstr "Last Node ID"
-
-msgid "SMESHGUI_SewingDlg::ERROR_1"
-msgstr "Free Border1 not found by the selected nodes"
-
-msgid "SMESHGUI_SewingDlg::ERROR_2"
-msgstr "Free Border2 not found by the selected nodes"
-
-msgid "SMESHGUI_SewingDlg::ERROR_3"
-msgstr "Free Border1 and Border2 not found by the selected nodes"
-
-msgid "SMESHGUI_SewingDlg::ERROR_4"
-msgstr "No path from the first side node to the last side node have been found"
-
-msgid "SMESHGUI_SewingDlg::ERROR_5"
-msgstr "Not allowed to splite volumes on the side!"
-
-msgid "SMESHGUI_SewingDlg::ERROR_6"
-msgstr "Different number of elements selected on the sides"
-
-msgid "SMESHGUI_SewingDlg::ERROR_7"
-msgstr "Element sets are topologically different or given nodes are inconvenient"
-
-msgid "SMESHGUI_SewingDlg::ERROR_8"
-msgstr "Nodes on the side 1 are either not linked or not laying on the element set boundary"
-
-msgid "SMESHGUI_SewingDlg::ERROR_9"
-msgstr "Nodes on the side 2 are either not linked or not laying on the element set boundary"
-
-#----------------------------------------------------
-
-msgid "SMESHGUI_ExtrusionDlg::EXTRUSION_ALONG_LINE"
-msgstr "Extrusion along a line"
-
-msgid "SMESHGUI_ExtrusionDlg::EXTRUSION_1D"
-msgstr "Extrusion of 1D elements"
-
-msgid "SMESHGUI_ExtrusionDlg::EXTRUSION_2D"
-msgstr "Extrusion of 2D elements"
-
-#----------------------------------------------------
-
-msgid "SMESHGUI_ExtrusionAlongPathDlg::EXTRUSION_ALONG_PATH"
-msgstr "Extrusion along a path"
-
-msgid "SMESHGUI_ExtrusionAlongPathDlg::EXTRUSION_1D"
-msgstr "Extrusion of 1D elements"
-
-msgid "SMESHGUI_ExtrusionAlongPathDlg::EXTRUSION_2D"
-msgstr "Extrusion of 2D elements"
-
-msgid "SMESHGUI_ExtrusionAlongPathDlg::SMESH_PATH"
-msgstr "Path"
-
-msgid "SMESHGUI_ExtrusionAlongPathDlg::SMESH_PATH_MESH"
-msgstr "Mesh"
-
-msgid "SMESHGUI_ExtrusionAlongPathDlg::SMESH_PATH_SHAPE"
-msgstr "Shape (edge or wire)"
-
-msgid "SMESHGUI_ExtrusionAlongPathDlg::SMESH_PATH_START"
-msgstr "Start point"
-
-msgid "SMESHGUI_ExtrusionAlongPathDlg::SMESH_USE_ANGLES"
-msgstr "Use Angles"
-
-msgid "SMESHGUI_ExtrusionAlongPathDlg::SMESH_ANGLES"
-msgstr "Rotation Angles"
-
-msgid "SMESHGUI_ExtrusionAlongPathDlg::SMESH_USE_BASE_POINT"
-msgstr "Use Base Point"
-
-msgid "SMESHGUI_ExtrusionAlongPathDlg::SMESH_BASE_POINT"
-msgstr "Base Point"
-
-msgid "SMESHGUI_ExtrusionAlongPathDlg::NO_ELEMENTS_SELECTED"
-msgstr "No mesh elements are selected for extrusion"
-
-msgid "SMESHGUI_ExtrusionAlongPathDlg::SELECTED_PATH_IS_NOT_EDGE"
-msgstr "Path mesh should be of edge type"
-
-msgid "SMESHGUI_ExtrusionAlongPathDlg::BAD_SHAPE_TYPE"
-msgstr "The shape selected for the path is not edge"
-
-msgid "SMESHGUI_ExtrusionAlongPathDlg::EXTR_BAD_STARTING_NODE"
-msgstr "Wrong path starting node"
-
-msgid "SMESHGUI_ExtrusionAlongPathDlg::WRONG_ANGLES_NUMBER"
-msgstr "The number of angles should correspond to the number of path nodes"
-
-msgid "SMESHGUI_ExtrusionAlongPathDlg::CANT_GET_TANGENT"
-msgstr "Can't get tangent for one of the path nodes"
-
-#----------------------------------------------------
-
-msgid "SMESHGUI_RevolutionDlg::REVOLUTION_AROUND_AXIS"
-msgstr "Revolution around an axis"
-
-msgid "SMESHGUI_RevolutionDlg::REVOLUTION_1D"
-msgstr "Revolution of 1D elements"
-
-msgid "SMESHGUI_RevolutionDlg::REVOLUTION_2D"
-msgstr "Revolution of 2D elements"
-
-#----------------------------------------------------
-
-#Coincident nodes
-msgid "SMESHGUI_MergeNodesDlg::COINCIDENT_NODES"
-msgstr "Coincident nodes"
-
-#Detect
-msgid "SMESHGUI_MergeNodesDlg::DETECT"
-msgstr "Detect"
-
-#Select all
-msgid "SMESHGUI_MergeNodesDlg::SELECT_ALL"
-msgstr "Select all"
-
-# Edit group of nodes
-msgid "SMESHGUI_MergeNodesDlg::EDIT_GROUP_OF_NODES"
-msgstr "Edit group of nodes"
-
-#----------------------------------------------------
-
-msgid "SMESHGUI_MeshPatternDlg::CAPTION"
-msgstr "Pattern Mapping"
-
-msgid "SMESHGUI_MeshPatternDlg::PATTERN_TYPE"
-msgstr "Pattern type"
-
-msgid "SMESHGUI_MeshPatternDlg::PATTERN"
-msgstr "Pattern"
-
-msgid "SMESHGUI_MeshPatternDlg::NEW"
-msgstr "New..."
-
-msgid "SMESHGUI_MeshPatternDlg::FACE"
-msgstr "Face"
-
-msgid "SMESHGUI_MeshPatternDlg::VERTEX"
-msgstr "Vertex   "
-
-msgid "SMESHGUI_MeshPatternDlg::VERTEX1"
-msgstr "Vertex 1"
-
-msgid "SMESHGUI_MeshPatternDlg::VERTEX2"
-msgstr "Vertex 2"
-
-msgid "SMESHGUI_MeshPatternDlg::REVERSE"
-msgstr "Reverse order of key-points"
-
-msgid "SMESHGUI_MeshPatternDlg::PREVIEW"
-msgstr "Preview"
-
-msgid "SMESHGUI_MeshPatternDlg::3D_BLOCK"
-msgstr "3D block"
-
-msgid "SMESHGUI_MeshPatternDlg::LOAD_PATTERN"
-msgstr "Load pattern"
-
-msgid "SMESHGUI_MeshPatternDlg::PATTERN_FILT"
-msgstr "Pattern files(*.smp)"
-
-msgid "SMESHGUI_MeshPatternDlg::CREATE_POLYGONS_NEAR_BOUNDARY"
-msgstr "Create polygons near boundary"
-
-msgid "SMESHGUI_MeshPatternDlg::CREATE_POLYEDRS_NEAR_BOUNDARY"
-msgstr "Create polyhedrons near boundary"
-
-msgid "SMESHGUI_MeshPatternDlg::ERROR_OF_LOADING"
-msgstr "Loading of pattern from file failed. Probably file\nis corrupted or contains pattern of the other type"
-
-msgid "SMESHGUI_MeshPatternDlg::ERROR_OF_OPENING"
-msgstr "It is impossible to open file. Please verify whether\nfile exists and your permission to this file"
-
-msgid "SMESHGUI_MeshPatternDlg::ERROR_OF_READING"
-msgstr "It is impossible to load pattern\nPlease verify file's contents"
-
-msgid "SMESHGUI_MeshPatternDlg::ERR_READ_NB_POINTS"
-msgstr "It is impossible to load pattern\nIt is impossible to read number of points from file"
-
-msgid "SMESHGUI_MeshPatternDlg::ERR_READ_POINT_COORDS"
-msgstr "It is impossible to load pattern\nIt is impossible to read point coordinates from file"
-
-msgid "SMESHGUI_MeshPatternDlg::ERR_READ_TOO_FEW_POINTS"
-msgstr "It is impossible to load pattern. There are\n too few points in the file for pattern loading"
-
-msgid "SMESHGUI_MeshPatternDlg::ERR_READ_3D_COORD"
-msgstr "It is impossible to load pattern\nCoordinates of 3D points out of [0,1] range"
-
-msgid "SMESHGUI_MeshPatternDlg::ERR_READ_NO_KEYPOINT"
-msgstr "It is impossible to load pattern\nThere are no key-points in 2D one"
-
-msgid "SMESHGUI_MeshPatternDlg::ERR_READ_BAD_INDEX"
-msgstr "It is impossible to load pattern\nInvalid index of point detected"
-
-msgid "SMESHGUI_MeshPatternDlg::ERR_READ_ELEM_POINTS"
-msgstr "It is impossible to load pattern\ninvalid number of points in element"
-
-msgid "SMESHGUI_MeshPatternDlg::ERR_READ_NO_ELEMS"
-msgstr "It is impossible to load pattern\nThere are no elements in it"
-
-msgid "SMESHGUI_MeshPatternDlg::ERR_READ_BAD_KEY_POINT"
-msgstr "It is impossible to load pattern\nKey-point not on a boundary"
-
-msgid "SMESHGUI_MeshPatternDlg::REFINE"
-msgstr "Refine selected mesh elements"
-
-msgid "SMESHGUI_MeshPatternDlg::NODE_1"
-msgstr "Node 1"
-
-msgid "SMESHGUI_MeshPatternDlg::NODE_2"
-msgstr "Node 2"
-
-msgid "SMESHGUI_MeshPatternDlg::MESH_FACES"
-msgstr "Mesh faces"
-
-msgid "SMESHGUI_MeshPatternDlg::MESH_VOLUMES"
-msgstr "Mesh volumes"
-
-msgid "SMESHGUI_CreatePolyhedralVolumeDlg::FACES_BY_NODES"
-msgstr "Faces by nodes"
-
-msgid "SMESHGUI_CreatePolyhedralVolumeDlg::SMESH_POLYEDRE_PREVIEW"
-msgstr "Polyhedron preview"
-
-msgid "SMESH_CREATE_POLYHEDRAL_VOLUME_TITLE"
-msgstr "Create polyhedral volume"
-
-msgid "SMESH_ADD_POLYGON_TITLE"
-msgstr "Add polygon"
-
-msgid "SMESH_POLYGON"
-msgstr "Polygon"
-
-msgid "SMESH_ADD_POLYGON"
-msgstr "Add polygon"
-
-#----------------------------------------------------
-
-msgid "SMESHGUI_CreatePatternDlg::CAPTION"
-msgstr "Pattern Creation"
-
-msgid "SMESHGUI_CreatePatternDlg::MESH_OR_SUBMESH"
-msgstr "Mesh or SubMesh"
-
-msgid "SMESHGUI_CreatePatternDlg::PROJECT"
-msgstr "Project nodes on the face"
-
-msgid "SMESHGUI_CreatePatternDlg::PATTERN"
-msgstr "Pattern"
-
-msgid "SMESHGUI_CreatePatternDlg::PATTERN_NAME"
-msgstr "Pattern name"
-
-msgid "SMESHGUI_CreatePatternDlg::SAVE"
-msgstr "Save..."
-
-msgid "SMESHGUI_CreatePatternDlg::ERROR_OF_CREATION"
-msgstr "Internal error occurs during pattern creation\nPlease verify validity of entered information"
-
-msgid "SMESHGUI_CreatePatternDlg::DEFAULT_2D"
-msgstr "Pattern_2d"
-
-msgid "SMESHGUI_CreatePatternDlg::DEFAULT_3D"
-msgstr "Pattern_3d"
-
-msgid "SMESHGUI_CreatePatternDlg::SAVE_PATTERN"
-msgstr "Save Pattern"
-
-msgid "SMESHGUI_CreatePatternDlg::ERROR_OF_SAVING"
-msgstr "Internal error occurs during pattern saving. Please verify\n\free disk space and your write permission to this file"
-
-msgid "SMESHGUI_CreatePatternDlg::PATTERN_TYPE"
-msgstr "Pattern type"
-
-msgid "SMESHGUI_CreatePatternDlg::PATTERN_FILT"
-msgstr "Pattern files(*.smp)"
-
-msgid "SMESHGUI_CreatePatternDlg::ERR_LOAD_EMPTY_SUBMESH"
-msgstr "There are no elements to create pattern"
-
-msgid "SMESHGUI_CreatePatternDlg::ERR_LOADF_NARROW_FACE"
-msgstr "It is impossible to create pattern from narrow face"
-
-msgid "SMESHGUI_CreatePatternDlg::ERR_LOADF_CLOSED_FACE"
-msgstr "It is impossible to create pattern from face having seam edge"
-
-msgid "SMESHGUI_CreatePatternDlg::ERR_LOADV_BAD_SHAPE"
-msgstr "Pattern can be created from closed shell or solid with 6 faces only"
-
-msgid "SMESHGUI_CreatePatternDlg::ERR_LOADV_COMPUTE_PARAMS"
-msgstr "It is impossible to compute point parameters"
-
-#-------------------------------------------------------------------------
-
-msgid "SMESHGUI_PrecisionDlg::CAPTION"
-msgstr "Precision for mesh quality controls"
-
-msgid "SMESHGUI_PrecisionDlg::PRECISION"
-msgstr "Number of digits after point"
-
-msgid "SMESHGUI_PrecisionDlg::NOT_USE"
-msgstr "Do not use"
-
-msgid "NON_SMESH_OBJECTS_SELECTED"
-msgstr "There are objects selected which do not belong to %1 component."
-
-
-
-
-
-#-----------   Menu   bar   ----------#
-#------ MEN -----#
-msgid "MEN_DAT"
-msgstr "DAT file"
-
-msgid "MEN_UNV"
-msgstr "UNV file"
-
-msgid "MEN_MED"
-msgstr "MED file"
-
-msgid "MEN_EXPORT_DAT"
-msgstr "Export to DAT file"
-
-msgid "MEN_EXPORT_UNV"
-msgstr "Export to UNV file"
-
-msgid "MEN_EXPORT_MED"
-msgstr "Export to MED file"
-
-msgid "MEN_DELETE"
-msgstr "Delete"
-
-msgid "MEN_SEL_FILTER_LIB"
-msgstr "Selection filters library"
-
-msgid "MEN_CREATE_MESH"
-msgstr "Create Mesh"
-
-msgid "MEN_EDIT_MESHSUBMESH"
-msgstr "Edit Mesh/Sub-mesh"
-
-msgid "MEN_COMPUTE"
-msgstr "Compute"
-
-msgid "MEN_CREATE_SUBMESH"
-msgstr "Create Sub-mesh"
-
-msgid "MEN_GLOBAL_HYPO"
-msgstr "Global Hypothesis"
-
-msgid "MEN_EDIT"
-msgstr "Edit"
-
-msgid "MEN_EDIT_HYPO"
-msgstr "Edit Hypothesis"
-
-msgid "MEN_CREATE_GROUP"
-msgstr "Create Group"
-
-msgid "MEN_CONSTRUCT_GROUP"
-msgstr "Construct Group"
-
-msgid "MEN_EDIT_GROUP"
-msgstr "Edit Group"
-
-msgid "MEN_UN_GROUP"
-msgstr "Union Groups"
-
-msgid "MEN_INT_GROUP"
-msgstr "Intersect Groups"
-
-msgid "MEN_CUT_GROUP"
-msgstr "Cut Groups"
-
-msgid "MEN_DEL_GROUP"
-msgstr "Delete Groups"
-
-msgid "MEN_ADV_INFO"
-msgstr "Advanced Mesh Infos"
-
-msgid "MEN_STD_INFO"
-msgstr "Standard Mesh Infos"
-
-msgid "MEN_LENGTH"
-msgstr "Length"
-
-msgid "MEN_FREE_EDGE"
-msgstr "Free Edges"
-
-msgid "MEN_FREE_BORDER"
-msgstr "Free Borders"
-
-msgid "MEN_CONNECTION"
-msgstr "Borders at Multi-Connection"
-
-msgid "MEN_AREA"
-msgstr "Area"
-
-msgid "MEN_TAPER"
-msgstr "Taper"
-
-msgid "MEN_ASPECT"
-msgstr "Aspect Ratio"
-
-msgid "MEN_MIN_ANG"
-msgstr "Minimum Angle"
-
-msgid "MEN_WARP"
-msgstr "Warping angle"
-
-msgid "MEN_SKEW"
-msgstr "Skew"
-
-msgid "MEN_ASPECT_3D"
-msgstr "Aspect Ratio 3D"
-
-msgid "MEN_LENGTH_2D"
-msgstr "Length 2D"
-
-msgid "MEN_CONNECTION_2D"
-msgstr "Borders at Multi-Connection 2D"
-
-msgid "MEN_NODE"
-msgstr "Node"
-
-msgid "MEN_EDGE"
-msgstr "Edge"
-
-msgid "MEN_TRIANGLE"
-msgstr "Triangle"
-
-msgid "MEN_QUAD"
-msgstr "Quadrangle"
-
-msgid "MEN_TETRA"
-msgstr "Tetrahedron"
-
-msgid "MEN_HEXA"
-msgstr "Hexahedron"
-
-msgid "MEN_POLYGON"
-msgstr "Polygon"
-
-msgid "MEN_POLYHEDRON"
-msgstr "Polyhedron"
-
-msgid "MEN_NODES"
-msgstr "Nodes"
-
-msgid "MEN_REMOVE_NODES"
-msgstr "Nodes"
-
-msgid "MEN_RENUM_NODES"
-msgstr "Nodes"
-
-msgid "MEN_REMOVE_ELEMENTS"
-msgstr "Elements"
-
-msgid "MEN_RENUM_ELEMENTS"
-msgstr "Elements"
-
-msgid "MEN_TRANS"
-msgstr "Translation"
-
-msgid "MEN_ROT"
-msgstr "Rotation"
-
-msgid "MEN_SYM"
-msgstr "Symmetry"
-
-msgid "MEN_SEW"
-msgstr "Sewing"
-
-msgid "MEN_MERGE"
-msgstr "Merge nodes"
-
-msgid "MEN_MERGE_ELEMENTS"
-msgstr "Merge elements"
-
-msgid "MEN_MOVE"
-msgstr "Move Node"
-
-msgid "MEN_INV"
-msgstr "Diagonal Inversion"
-
-msgid "MEN_UNION2"
-msgstr "Union of two triangles"
-
-msgid "MEN_ORIENT"
-msgstr "Orientation"
-
-msgid "MEN_UNION"
-msgstr "Union of triangles"
-
-msgid "MEN_CUT"
-msgstr "Cutting of quadrangles"
-
-msgid "MEN_SMOOTH"
-msgstr "Smoothing"
-
-msgid "MEN_EXTRUSION"
-msgstr "Extrusion"
-
-msgid "MEN_REVOLUTION"
-msgstr "Revolution"
-
-msgid "MEN_MAP"
-msgstr "Pattern mapping"
-
-msgid "MEN_EXTRUSION_ALONG"
-msgstr "Extrusion along a path"
-
-msgid "MEN_WIRE"
-msgstr "Wireframe"
-
-msgid "MEN_SHADE"
-msgstr "Shading"
-
-msgid "MEN_SHRINK"
-msgstr "Shrink"
-
-msgid "MEN_AUTO_UPD"
-msgstr "Automatic update"
-
-msgid "MEN_COLORS"
-msgstr "Colors / Size"
-
-msgid "MEN_SCALAR_BAR"
-msgstr "Scalar bar"
-
-msgid "MEN_SELECTION"
-msgstr "Selection"
-
-msgid "MEN_PRECISION"
-msgstr "Precision"
-
-msgid "MEN_DISP_ENT"
-msgstr "Display entity"
-
-msgid "MEN_UPDATE"
-msgstr "Update"
-
-msgid "MEN_FILE"
-msgstr "File"
-
-msgid "MEN_TOOLS"
-msgstr "Tools"
-
-msgid "MEN_HYPO"
-msgstr "Hypotheses"
-
-msgid "MEN_MESH"
-msgstr "Mesh"
-
-msgid "MEN_CTRL"
-msgstr "Controls"
-
-msgid "MEN_MODIFY"
-msgstr "Modification"
-
-msgid "MEN_PREF"
-msgstr "Preferences"
-
-msgid "MEN_VIEW"
-msgstr "View"
-
-msgid "MEN_IMPORT"
-msgstr "Import"
-
-msgid "MEN_EXPORT"
-msgstr "Export"
-
-msgid "MEN_ADD"
-msgstr "Add"
-
-msgid "MEN_REMOVE"
-msgstr "Remove"
-
-msgid "MEN_RENUM"
-msgstr "Renumbering"
-
-msgid "MEN_NUM"
-msgstr "Numbering"
-
-msgid "MEN_TRANSF"
-msgstr "Transformation"
-
-msgid "MEN_DISPMODE"
-msgstr "Display mode"
-
-msgid "MEN_QUALITY"
-msgstr "Quality controls"
-
-msgid "MEN_RENAME"
-msgstr "Rename"
-
-msgid "MEN_UNASSIGN"
-msgstr "Unassign"
-
-msgid "MEN_NUM_NODES"
-msgstr "Display Nodes #"
-
-msgid "MEN_NUM_ELEMENTS"
-msgstr "Display Elements #"
-
-msgid "MEN_RESET"
-msgstr "Reset"
-
-msgid "MEN_SCALAR_BAR_PROP"
-msgstr "Scalar bar Properties"
-
-msgid "MEN_EDGES"
-msgstr "Edges"
-
-msgid "MEN_FACES"
-msgstr "Faces"
-
-msgid "MEN_VOLUMES"
-msgstr "Volumes"
-
-msgid "MEN_ALL"
-msgstr "All"
-
-msgid "MEN_TRANSP"
-msgstr "Transparency"
-
-msgid "MEN_CLIP"
-msgstr "Clipping"
-
-msgid "MEN_DISPLAY"
-msgstr "Display"
-
-msgid "MEN_ERASE"
-msgstr "Erase"
-
-msgid "MEN_DISPLAY_ONLY"
-msgstr "Display only"
-
-
-#------ TOP -----#
-msgid "TOP_DAT"
-msgstr "Import DAT file"
-
-msgid "TOP_UNV"
-msgstr "Import UNV file"
-
-msgid "TOP_MED"
-msgstr "Import MED file"
-
-msgid "TOP_EXPORT_DAT"
-msgstr "Export to DAT file"
-
-msgid "TOP_EXPORT_UNV"
-msgstr "Export to UNV file"
-
-msgid "TOP_EXPORT_MED"
-msgstr "Export to MED file"
-
-msgid "TOP_DELETE"
-msgstr "Delete"
-
-msgid "TOP_SEL_FILTER_LIB"
-msgstr "Selection filters library"
-
-msgid "TOP_CREATE_MESH"
-msgstr "Create Mesh"
-
-msgid "TOP_EDIT_MESHSUBMESH"
-msgstr "Edit Mesh/Sub-mesh"
-
-msgid "TOP_COMPUTE"
-msgstr "Compute"
-
-msgid "TOP_CREATE_SUBMESH"
-msgstr "Create Sub-mesh"
-
-msgid "TOP_GLOBAL_HYPO"
-msgstr "Global Hypothesis"
-
-msgid "TOP_EDIT_HYPO"
-msgstr "Edit Hypothesis"
-
-msgid "TOP_CREATE_GROUP"
-msgstr "Create Group"
-
-msgid "TOP_CONSTRUCT_GROUP"
-msgstr "Construct Group"
-
-msgid "TOP_EDIT_GROUP"
-msgstr "Edit Group"
-
-msgid "TOP_UN_GROUP"
-msgstr "Union Groups"
-
-msgid "TOP_INT_GROUP"
-msgstr "Intersect Groups"
-
-msgid "TOP_CUT_GROUP"
-msgstr "Cut Groups"
-
-msgid "TOP_DEL_GROUP"
-msgstr "Delete Groups"
-
-msgid "TOP_ADV_INFO"
-msgstr "Advanced Mesh Infos"
-
-msgid "TOP_STD_INFO"
-msgstr "Standard Mesh Infos"
-
-msgid "TOP_LENGTH"
-msgstr "Length"
-
-msgid "TOP_FREE_EDGE"
-msgstr "Free Edges"
-
-msgid "TOP_FREE_BORDER"
-msgstr "Free Borders"
-
-msgid "TOP_CONNECTION"
-msgstr "Borders at Multi-Connection"
-
-msgid "TOP_AREA"
-msgstr "Area"
-
-msgid "TOP_TAPER"
-msgstr "Taper"
-
-msgid "TOP_ASPECT"
-msgstr "Aspect Ratio"
-
-msgid "TOP_MIN_ANG"
-msgstr "Minimum Angle"
-
-msgid "TOP_WARP"
-msgstr "Warping angle"
-
-msgid "TOP_SKEW"
-msgstr "Skew"
-
-msgid "TOP_ASPECT_3D"
-msgstr "Aspect Ratio 3D"
-
-msgid "TOP_LENGTH_2D"
-msgstr "Length 2D"
-
-msgid "TOP_CONNECTION_2D"
-msgstr "Borders at Multi-Connection 2D"
-
-msgid "TOP_NODE"
-msgstr "Node"
-
-msgid "TOP_EDGE"
-msgstr "Edge"
-
-msgid "TOP_TRIANGLE"
-msgstr "Triangle"
-
-msgid "TOP_QUAD"
-msgstr "Quadrangle"
-
-msgid "TOP_TETRA"
-msgstr "Tetrahedron"
-
-msgid "TOP_HEXA"
-msgstr "Hexahedron"
-
-msgid "TOP_POLYGON"
-msgstr "Polygon"
-
-msgid "TOP_POLYHEDRON"
-msgstr "Polyhedron"
-
-msgid "TOP_NODES"
-msgstr "Nodes"
-
-msgid "TOP_REMOVE_NODES"
-msgstr "Remove nodes"
-
-msgid "TOP_RENUM_NODES"
-msgstr "Renumbering nodes"
-
-msgid "TOP_REMOVE_ELEMENTS"
-msgstr "Remove elements"
-
-msgid "TOP_RENUM_ELEMENTS"
-msgstr "Renumbering elements"
-
-msgid "TOP_TRANS"
-msgstr "Translation"
-
-msgid "TOP_ROT"
-msgstr "Rotation"
-
-msgid "TOP_SYM"
-msgstr "Symmetry"
-
-msgid "TOP_SEW"
-msgstr "Sewing"
-
-msgid "TOP_MERGE"
-msgstr "Merge nodes"
-
-msgid "TOP_MERGE_ELEMENTS"
-msgstr "Merge elements"
-
-msgid "TOP_MOVE"
-msgstr "Move Node"
-
-msgid "TOP_INV"
-msgstr "Diagonal Inversion"
-
-msgid "TOP_UNION2"
-msgstr "Union of two triangles"
-
-msgid "TOP_ORIENT"
-msgstr "Orientation"
-
-msgid "TOP_UNION"
-msgstr "Union of triangles"
-
-msgid "TOP_CUT"
-msgstr "Cutting of quadrangles"
-
-msgid "TOP_SMOOTH"
-msgstr "Smoothing"
-
-msgid "TOP_EXTRUSION"
-msgstr "Extrusion"
-
-msgid "TOP_REVOLUTION"
-msgstr "Revolution"
-
-msgid "TOP_MAP"
-msgstr "Pattern mapping"
-
-msgid "TOP_EXTRUSION_ALONG"
-msgstr "Extrusion along a path"
-
-msgid "TOP_WIRE"
-msgstr "Wireframe"
-
-msgid "TOP_SHADE"
-msgstr "Shading"
-
-msgid "TOP_SHRINK"
-msgstr "Shrink"
-
-msgid "TOP_AUTO_UPD"
-msgstr "Automatic update"
-
-msgid "TOP_COLORS"
-msgstr "Colors / Size"
-
-msgid "TOP_SCALAR_BAR"
-msgstr "Scalar bar"
-
-msgid "TOP_SELECTION"
-msgstr "Selection"
-
-msgid "TOP_PRECISION"
-msgstr "Precision"
-
-msgid "TOP_DISP_ENT"
-msgstr "Display entity"
-
-msgid "TOP_UPDATE"
-msgstr "Update"
-
-msgid "TOP_RENAME"
-msgstr "Rename"
-
-msgid "TOP_UNASSIGN"
-msgstr "Unassign"
-
-msgid "TOP_NUM_NODES"
-msgstr "Display Nodes"
-
-msgid "TOP_NUM_ELEMENTS"
-msgstr "Display Elements"
-
-msgid "TOP_RESET"
-msgstr "Reset"
-
-msgid "TOP_SCALAR_BAR_PROP"
-msgstr "Scalar bar Properties"
-
-msgid "TOP_EDGES"
-msgstr "Edges"
-
-msgid "TOP_FACES"
-msgstr "Faces"
-
-msgid "TOP_VOLUMES"
-msgstr "Volumes"
-
-msgid "TOP_ALL"
-msgstr "All"
-
-msgid "TOP_TRANSP"
-msgstr "Transparency"
-
-msgid "TOP_CLIP"
-msgstr "Clipping"
-
-msgid "TOP_DISPLAY"
-msgstr "Display"
-
-msgid "TOP_ERASE"
-msgstr "Erase"
-
-msgid "TOP_DISPLAY_ONLY"
-msgstr "Display only"
-
-
-
-
-#------ STB -----#
-msgid "STB_DAT"
-msgstr "Import DAT file"
-
-msgid "STB_UNV"
-msgstr "Import UNV file"
-
-msgid "STB_MED"
-msgstr "Import MED file"
-
-msgid "STB_EXPORT_DAT"
-msgstr "Export to DAT file"
-
-msgid "STB_EXPORT_UNV"
-msgstr "Export to UNV file"
-
-msgid "STB_EXPORT_MED"
-msgstr "Export to MED file"
-
-msgid "STB_DELETE"
-msgstr "Delete"
-
-msgid "STB_SEL_FILTER_LIB"
-msgstr "Selection filters library"
-
-msgid "STB_CREATE_MESH"
-msgstr "Create Mesh"
-
-msgid "STB_EDIT_MESHSUBMESH"
-msgstr "Edit Mesh/Sub-mesh"
-
-msgid "STB_COMPUTE"
-msgstr "Compute"
-
-msgid "STB_CREATE_SUBMESH"
-msgstr "Create Sub-mesh"
-
-msgid "STB_GLOBAL_HYPO"
-msgstr "Global Hypothesis"
-
-msgid "STB_EDIT_HYPO"
-msgstr "Edit Hypothesis"
-
-msgid "STB_CREATE_GROUP"
-msgstr "Create Group"
-
-msgid "STB_CONSTRUCT_GROUP"
-msgstr "Construct Group"
-
-msgid "STB_EDIT_GROUP"
-msgstr "Edit Group"
-
-msgid "STB_UN_GROUP"
-msgstr "Union Groups"
-
-msgid "STB_INT_GROUP"
-msgstr "Intersect Groups"
-
-msgid "STB_CUT_GROUP"
-msgstr "Cut Groups"
-
-msgid "STB_DEL_GROUP"
-msgstr "Delete Groups"
-
-msgid "STB_ADV_INFO"
-msgstr "Advanced Mesh Infos"
-
-msgid "STB_STD_INFO"
-msgstr "Standard Mesh Infos"
-
-msgid "STB_LENGTH"
-msgstr "Length"
-
-msgid "STB_FREE_EDGE"
-msgstr "Free Edges"
-
-msgid "STB_FREE_BORDER"
-msgstr "Free Borders"
-
-msgid "STB_CONNECTION"
-msgstr "Borders at Multi-Connection"
-
-msgid "STB_AREA"
-msgstr "Area"
-
-msgid "STB_TAPER"
-msgstr "Taper"
-
-msgid "STB_ASPECT"
-msgstr "Aspect Ratio"
-
-msgid "STB_MIN_ANG"
-msgstr "Minimum Angle"
-
-msgid "STB_WARP"
-msgstr "Warping angle"
-
-msgid "STB_SKEW"
-msgstr "Skew"
-
-msgid "STB_ASPECT_3D"
-msgstr "Aspect Ratio 3D"
-
-msgid "STB_LENGTH_2D"
-msgstr "Length 2D"
-
-msgid "STB_CONNECTION_2D"
-msgstr "Borders at Multi-Connection 2D"
-
-msgid "STB_NODE"
-msgstr "Node"
-
-msgid "STB_EDGE"
-msgstr "Edge"
-
-msgid "STB_TRIANGLE"
-msgstr "Triangle"
-
-msgid "STB_QUAD"
-msgstr "Quadrangle"
-
-msgid "STB_TETRA"
-msgstr "Tetrahedron"
-
-msgid "STB_HEXA"
-msgstr "Hexahedron"
-
-msgid "STB_POLYGON"
-msgstr "Polygon"
-
-msgid "STB_POLYHEDRON"
-msgstr "Polyhedron"
-
-msgid "STB_NODES"
-msgstr "Nodes"
-
-msgid "STB_REMOVE_NODES"
-msgstr "Remove nodes"
-
-msgid "STB_RENUM_NODES"
-msgstr "Renumbering nodes"
-
-msgid "STB_REMOVE_ELEMENTS"
-msgstr "Remove elements"
-
-msgid "STB_RENUM_ELEMENTS"
-msgstr "Renumbering elements"
-
-msgid "STB_TRANS"
-msgstr "Translation"
-
-msgid "STB_ROT"
-msgstr "Rotation"
-
-msgid "STB_SYM"
-msgstr "Symmetry"
-
-msgid "STB_SEW"
-msgstr "Sewing"
-
-msgid "STB_MERGE"
-msgstr "Merge nodes"
-
-msgid "STB_MERGE_ELEMENTS"
-msgstr "Merge elements"
-
-msgid "STB_MOVE"
-msgstr "Move Node"
-
-msgid "STB_INV"
-msgstr "Diagonal Inversion"
-
-msgid "STB_UNION2"
-msgstr "Union of two triangles"
-
-msgid "STB_ORIENT"
-msgstr "Orientation"
-
-msgid "STB_UNION"
-msgstr "Union of triangles"
-
-msgid "STB_CUT"
-msgstr "Cutting of quadrangles"
-
-msgid "STB_SMOOTH"
-msgstr "Smoothing"
-
-msgid "STB_EXTRUSION"
-msgstr "Extrusion"
-
-msgid "STB_REVOLUTION"
-msgstr "Revolution"
-
-msgid "STB_MAP"
-msgstr "Pattern mapping"
-
-msgid "STB_EXTRUSION_ALONG"
-msgstr "Extrusion along a path"
-
-msgid "STB_WIRE"
-msgstr "Wireframe"
-
-msgid "STB_SHADE"
-msgstr "Shading"
-
-msgid "STB_SHRINK"
-msgstr "Shrink"
-
-msgid "STB_AUTO_UPD"
-msgstr "Automatic update"
-
-msgid "STB_COLORS"
-msgstr "Colors / Size"
-
-msgid "STB_SCALAR_BAR"
-msgstr "Scalar bar"
-
-msgid "STB_SELECTION"
-msgstr "Selection"
-
-msgid "STB_PRECISION"
-msgstr "Precision"
-
-msgid "STB_DISP_ENT"
-msgstr "Display entity"
-
-msgid "STB_UPDATE"
-msgstr "Update"
-
-msgid "STB_RENAME"
-msgstr "Rename"
-
-msgid "STB_UNASSIGN"
-msgstr "Unassign"
-
-msgid "STB_NUM_NODES"
-msgstr "Display Nodes"
-
-msgid "STB_NUM_ELEMENTS"
-msgstr "Display Elements"
-
-msgid "STB_RESET"
-msgstr "Reset"
-
-msgid "STB_SCALAR_BAR_PROP"
-msgstr "Scalar bar Properties"
-
-msgid "STB_EDGES"
-msgstr "Edges"
-
-msgid "STB_FACES"
-msgstr "Faces"
-
-msgid "STB_VOLUMES"
-msgstr "Volumes"
-
-msgid "STB_ALL"
-msgstr "All"
-
-msgid "STB_TRANSP"
-msgstr "Transparency"
-
-msgid "STB_CLIP"
-msgstr "Clipping"
-
-msgid "STB_DISPLAY"
-msgstr "Display"
-
-msgid "STB_ERASE"
-msgstr "Erase"
-
-msgid "STB_DISPLAY_ONLY"
-msgstr "Display only"
-
-
-
-
-
-msgid "TB_MESH"
-msgstr "Mesh Toolbar"
-
-msgid "TB_HYPO"
-msgstr "Hypotheses Toolbar"
-
-msgid "TB_CTRL"
-msgstr "Controls Toolbar"
-
-msgid "TB_ADD_REMOVE"
-msgstr "Add/Remove Toolbar"
-
-msgid "TB_MODIFY"
-msgstr "Modification Toolbar"
-
-msgid "TB_DISP_MODE"
-msgstr "Display Mode Toolbar"
-
-#-------------------------------------------------------------------------
-# PREFEERENCES
-#-------------------------------------------------------------------------
-
-msgid "SMESHGUI::PREF_TAB_GENERAL"
-msgstr "General"
-
-msgid "SMESHGUI::PREF_GROUP_QUALITY"
-msgstr "Quality controls"
-
-msgid "SMESHGUI::PREF_DISPLAY_ENTITY"
-msgstr "Display entity"
-
-msgid "SMESHGUI::PREF_AUTO_UPDATE"
-msgstr "Automatic update"
-
-msgid "SMESHGUI::PREF_PRECISION_USE"
-msgstr "Use precision"
-
-msgid "SMESHGUI::PREF_PRECISION_VALUE"
-msgstr "Number of digits after point"
-
-msgid "SMESHGUI::PREF_GROUP_PRECISION"
-msgstr "Precision"
-
-msgid "SMESHGUI::PREF_TAB_MESH"
-msgstr "Mesh"
-
-msgid "SMESHGUI::PREF_GROUP_NODES"
-msgstr "Nodes"
-
-msgid "SMESHGUI::PREF_GROUP_ELEMENTS"
-msgstr "Elements"
-
-msgid "SMESHGUI::PREF_COLOR"
-msgstr "Color"
-
-msgid "SMESHGUI::PREF_SIZE"
-msgstr "Size"
-
-msgid "SMESHGUI::PREF_WIDTH"
-msgstr "Width"
-
-msgid "SMESHGUI::PREF_FILL"
-msgstr "Fill"
-
-msgid "SMESHGUI::PREF_OUTLINE"
-msgstr "Outline"
-
-msgid "SMESHGUI::PREF_BACKFACE"
-msgstr "Back face"
-
-msgid "SMESHGUI::PREF_SHRINK_COEFF"
-msgstr "Shrink coef."
-
-msgid "SMESHGUI::PREF_TAB_SELECTION"
-msgstr "Selection"
-
-msgid "SMESHGUI::PREF_GROUP_SELECTION"
-msgstr "Selection"
-
-msgid "SMESHGUI::PREF_GROUP_PRESELECTION"
-msgstr "Preselection"
-
-msgid "SMESHGUI::PREF_OBJECT_COLOR"
-msgstr "Object color"
-
-msgid "SMESHGUI::PREF_ELEMENT_COLOR"
-msgstr "Element color"
-
-msgid "SMESHGUI::PREF_HIGHLIGHT_COLOR"
-msgstr "Highlight color"
-
-msgid "SMESHGUI::PREF_NODES"
-msgstr "Nodes"
-
-msgid "SMESHGUI::PREF_ELEMENTS"
-msgstr "Elements"
-
-msgid "SMESHGUI::PREF_DISPLAY_MODE"
-msgstr "Display mode"
-
-#-----------------------------------------------------------
-
-msgid "SMESHGUI_MeshDlg::DIM_1D"
-msgstr "1D"
-
-msgid "SMESHGUI_MeshDlg::DIM_2D"
-msgstr "2D"
-
-msgid "SMESHGUI_MeshDlg::DIM_3D"
-msgstr "3D"
-
-msgid "SMESHGUI_MeshDlg::NAME"
-msgstr "Name"
-
-msgid "SMESHGUI_MeshDlg::MESH"
-msgstr "Mesh"
-
-msgid "SMESHGUI_MeshDlg::GEOMETRY"
-msgstr "Geometry"
-
-msgid "SMESHGUI_MeshDlg::CREATE_MESH"
-msgstr "Create mesh"
-
-msgid "SMESHGUI_MeshDlg::CREATE_SUBMESH"
-msgstr "Create sub-mesh"
-
-msgid "SMESHGUI_MeshDlg::EDIT_MESH_SUBMESH"
-msgstr "Edit mesh/sub-mesh"
-
-#-----------------------------------------------------------
-
-msgid "SMESHGUI_MeshTab::ALGORITHM"
-msgstr "Algorithm"
-
-msgid "SMESHGUI_MeshTab::HYPOTHESIS"
-msgstr "Hypothesis"
-
-msgid "SMESHGUI_MeshTab::ADD_HYPOTHESIS"
-msgstr "Add. Hypothesis"
-
-msgid "SMESHGUI_MeshTab::NONE"
-msgstr "<None>"
-
-#-----------------------------------------------------------
-
-msgid "SMESHGUI_MeshOp::NAME_OF_MESH_IS_EMPTY"
-msgstr "Name of mesh is empty\nPlease enter valid name and try again"
-
-msgid "SMESHGUI_MeshOp::NAME_OF_SUBMESH_IS_EMPTY"
-msgstr "Name of submesh is empty\nPlease enter valid name and try again"
-
-msgid "SMESHGUI_MeshOp::HYPOTHESES_AND_ALGORITHMS_ARE_NOT_DEFINED"
-msgstr "Hypotheses and algorithms are not defined"
-
-msgid "SMESHGUI_MeshOp::ALGORITHM_WITHOUT_HYPOTHESIS"
-msgstr "Algorithm is defined for %1 dimension but hypothesis is not defined"
-
-msgid "SMESHGUI_MeshOp::HYPOTHESIS_WITHOUT_ALGORITHM"
-msgstr "Hypothesis is defined for %1 dimension but algorithm is not defined"
-
-msgid "SMESHGUI_MeshOp::GEOMETRY_OBJECT_IS_NULL"
-msgstr "Geometry object is null"
-
-msgid "SMESHGUI_MeshOp::GEOMETRY_OBJECT_IS_NOT_DEFINED"
-msgstr "Geometry object is not defined\nPlease specify it and try again"
-
-msgid "SMESHGUI_MeshOp::THERE_IS_NO_OBJECT_FOR_EDITING"
-msgstr "There is no object for editing. Please\nselect mesh or sub-mesh and try again"
-
-msgid "SMESHGUI_MeshOp::MESH_IS_NULL"
-msgstr "Mesh is null"
-
-msgid "SMESHGUI_MeshOp::MESH_IS_NOT_DEFINED"
-msgstr "Mesh is not defined\nPlease specify it and try again"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
index 3954979d131431afc95da16efcc15c6720f8f417..f5fe81b86444a67cbcad744d962cdb5aeb168b1f 100644 (file)
@@ -97,7 +97,7 @@ LDFLAGSFORBIN += -lSMDS -lSMESHDS \
                -L${MED_ROOT_DIR}/lib/salome -lMEDWrapper -lMEDWrapperBase -lMEDWrapper_V2_1 -lMEDWrapper_V2_2 \
                -lMeshDriver -lMeshDriverMED -lMeshDriverUNV -lMeshDriverDAT -lMeshDriverSTL \
                -L${KERNEL_ROOT_DIR}/lib/salome -lSalomeContainer -lSalomeNS -lRegistry -lSalomeResourcesManager \
-               -lOpUtil -lSALOMELocalTrace -lSALOMETraceCollector -lSalomeNotification -lCASCatch \
+               -lOpUtil -lSALOMELocalTrace -lSALOMEBasics -lSalomeNotification -lCASCatch \
                -lSalomeHDFPersist -lSalomeLifeCycleCORBA -lTOOLSDS -lSalomeGenericObj \
                -L${GEOM_ROOT_DIR}/lib/salome -lGEOMClient -lSMESHimpl -lSMESHControls -lNMTTools -lNMTDS \
      -L${CASROOT}/lin/lib -lTKCDF -lTKBO -lTKMath
diff --git a/src/SMESH_I/SMESH.hxx b/src/SMESH_I/SMESH.hxx
deleted file mode 100644 (file)
index ea68b04..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-//  SMESH SMESH_I :
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH.hxx
-//  Author : Michael ZORIN
-//  Module : SMESH
-//  $Header: 
-
-#ifndef _SMESH_SMESH_HXX_
-#define _SMESH_SMESH_HXX_
-
-// Tags definition
-enum {
-  // Top level
-  Tag_HypothesisRoot         = 1, // hypotheses root
-  Tag_AlgorithmsRoot         = 2, // algorithms root
-  // Mesh/Submesh
-  Tag_RefOnShape             = 1, // references to shape
-  Tag_RefOnAppliedHypothesis = 2, // applied hypotheses root
-  Tag_RefOnAppliedAlgorithms = 3, // applied algorithms root
-  // Mesh only
-  Tag_SubMeshOnVertex        = 4, // sub-meshes roots by type
-  Tag_SubMeshOnEdge          = 5, // ...
-  Tag_SubMeshOnWire          = 6, // ...
-  Tag_SubMeshOnFace          = 7, // ...
-  Tag_SubMeshOnShell         = 8, // ...
-  Tag_SubMeshOnSolid         = 9, // ...
-  Tag_SubMeshOnCompound      = 10, // ...
-  Tag_NodeGroups             = 11, // Group roots by type
-  Tag_EdgeGroups             = 12, // ...
-  Tag_FaceGroups             = 13, // ...
-  Tag_VolumeGroups           = 14 // ... 
-};
-
-#endif
-
diff --git a/src/SMESH_I/SMESHEngine.cxx b/src/SMESH_I/SMESHEngine.cxx
deleted file mode 100644 (file)
index fc1bd44..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-int main(int argc, char** argv)
-{
-  return 1;
-}
diff --git a/src/SMESH_I/SMESH_1D_Algo_i.cxx b/src/SMESH_I/SMESH_1D_Algo_i.cxx
deleted file mode 100644 (file)
index 06f621d..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_1D_Algo_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "SMESH_1D_Algo_i.hxx"
-
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  SMESH_1D_Algo_i::SMESH_1D_Algo_i
- * 
- *  Constructor
- */
-//=============================================================================
-
-SMESH_1D_Algo_i::SMESH_1D_Algo_i( PortableServer::POA_ptr thePOA )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA ), 
-       SMESH_Algo_i( thePOA )
-{
-  MESSAGE( "SMESH_1D_Algo_i::SMESH_1D_Algo_i" );
-}
-
-//=============================================================================
-/*!
- *  SMESH_1D_Algo_i::~SMESH_1D_Algo_i
- * 
- *  Destructor
- */
-//=============================================================================
-
-SMESH_1D_Algo_i::~SMESH_1D_Algo_i()
-{
-  MESSAGE( "SMESH_1D_Algo_i::~SMESH_1D_Algo_i" );
-}
-
-//================================================================================
-/*!
- * \brief Verify whether algorithm supports given entity type 
-  * \param type - dimension (see SMESH::Dimension enumeration)
-  * \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise
- * 
- * Verify whether algorithm supports given entity type (see SMESH::Dimension enumeration)
- */
-//================================================================================
-CORBA::Boolean SMESH_1D_Algo_i::IsDimSupported( SMESH::Dimension type )
-{
-  return type == SMESH::DIM_1D;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/SMESH_I/SMESH_1D_Algo_i.hxx b/src/SMESH_I/SMESH_1D_Algo_i.hxx
deleted file mode 100644 (file)
index 1112a40..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_1D_Algo_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_1D_ALGO_I_HXX_
-#define _SMESH_1D_ALGO_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Hypothesis)
-
-#include "SMESH_Algo_i.hxx"
-
-// ======================================================
-// Generic 1D algorithm
-// ======================================================
-class SMESH_1D_Algo_i:
-  public virtual POA_SMESH::SMESH_1D_Algo,
-  public virtual SMESH_Algo_i
-{
-protected:
-  // Constructor : placed in protected section to prohibit creation of generic class instance
-  SMESH_1D_Algo_i( PortableServer::POA_ptr thePOA );
-
-public:
-  // Destructor
-  virtual ~SMESH_1D_Algo_i();
-  
-  // Verify whether algorithm supports given entity type 
-  CORBA::Boolean IsDimSupported( SMESH::Dimension type );
-};
-
-#endif
diff --git a/src/SMESH_I/SMESH_2D_Algo_i.cxx b/src/SMESH_I/SMESH_2D_Algo_i.cxx
deleted file mode 100644 (file)
index 00744ee..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_2D_Algo_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "SMESH_2D_Algo_i.hxx"
-
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  SMESH_2D_Algo_i::SMESH_2D_Algo_i
- * 
- *  Constructor
- */
-//=============================================================================
-
-SMESH_2D_Algo_i::SMESH_2D_Algo_i( PortableServer::POA_ptr thePOA )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA ), 
-       SMESH_Algo_i( thePOA ) 
-{
-  MESSAGE( "SMESH_2D_Algo_i::SMESH_2D_Algo_i" );
-}
-
-//=============================================================================
-/*!
- *  SMESH_2D_Algo_i::~SMESH_2D_Algo_i
- * 
- *  Destructor
- */
-//=============================================================================
-
-SMESH_2D_Algo_i::~SMESH_2D_Algo_i()
-{
-  MESSAGE( "SMESH_2D_Algo_i::~SMESH_2D_Algo_i" );
-}
-
-//================================================================================
-/*!
- * \brief Verify whether algorithm supports given entity type 
-  * \param type - dimension (see SMESH::Dimension enumeration)
-  * \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise
- * 
- * Verify whether algorithm supports given entity type (see SMESH::Dimension enumeration)
- */
-//================================================================================  
-CORBA::Boolean SMESH_2D_Algo_i::IsDimSupported( SMESH::Dimension type )
-{
-  return type == SMESH::DIM_2D;
-}
diff --git a/src/SMESH_I/SMESH_2D_Algo_i.hxx b/src/SMESH_I/SMESH_2D_Algo_i.hxx
deleted file mode 100644 (file)
index 58664c9..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_2D_Algo_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_2D_ALGO_I_HXX_
-#define _SMESH_2D_ALGO_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Hypothesis)
-
-#include "SMESH_Algo_i.hxx"
-
-// ======================================================
-// Generic 2D algorithm
-// ======================================================
-class SMESH_2D_Algo_i:
-  public virtual POA_SMESH::SMESH_2D_Algo,
-  public virtual SMESH_Algo_i
-{
-protected:
-  // Constructor : placed in protected section to prohibit creation of generic class instance
-  SMESH_2D_Algo_i( PortableServer::POA_ptr thePOA );
-
-public:
-  // Destructor
-  virtual ~SMESH_2D_Algo_i();
-  
-  // Verify whether algorithm supports given entity type 
-  CORBA::Boolean IsDimSupported( SMESH::Dimension type );
-};
-
-#endif
diff --git a/src/SMESH_I/SMESH_3D_Algo_i.cxx b/src/SMESH_I/SMESH_3D_Algo_i.cxx
deleted file mode 100644 (file)
index 14276fe..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_3D_Algo_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "SMESH_3D_Algo_i.hxx"
-
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  SMESH_3D_Algo_i::SMESH_3D_Algo_i
- * 
- *  Constructor
- */
-//=============================================================================
-
-SMESH_3D_Algo_i::SMESH_3D_Algo_i( PortableServer::POA_ptr thePOA )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA ), 
-       SMESH_Algo_i( thePOA )
-{
-  MESSAGE( "SMESH_3D_Algo_i::SMESH_3D_Algo_i" );
-}
-
-//=============================================================================
-/*!
- *  SMESH_3D_Algo_i::~SMESH_3D_Algo_i
- * 
- *  Destructor
- */
-//=============================================================================
-
-SMESH_3D_Algo_i::~SMESH_3D_Algo_i()
-{
-  MESSAGE( "SMESH_3D_Algo_i::~SMESH_3D_Algo_i" );
-}
-
-//================================================================================
-/*!
- * \brief Verify whether algorithm supports given entity type 
-  * \param type - dimension (see SMESH::Dimension enumeration)
-  * \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise
- * 
- * Verify whether algorithm supports given entity type (see SMESH::Dimension enumeration)
- */
-//================================================================================  
-CORBA::Boolean SMESH_3D_Algo_i::IsDimSupported( SMESH::Dimension type )
-{
-  return type == SMESH::DIM_3D;
-}
-
diff --git a/src/SMESH_I/SMESH_3D_Algo_i.hxx b/src/SMESH_I/SMESH_3D_Algo_i.hxx
deleted file mode 100644 (file)
index 8589e16..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_3D_Algo_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_3D_ALGO_I_HXX_
-#define _SMESH_3D_ALGO_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Hypothesis)
-
-#include "SMESH_Algo_i.hxx"
-
-// ======================================================
-// Generic 3D algorithm
-// ======================================================
-class SMESH_3D_Algo_i:
-  public virtual POA_SMESH::SMESH_3D_Algo,
-  public virtual SMESH_Algo_i
-{
-protected:
-  // Constructor : placed in protected section to prohibit creation of generic class instance
-  SMESH_3D_Algo_i( PortableServer::POA_ptr thePOA );
-
-public:
-  // Destructor
-  virtual ~SMESH_3D_Algo_i();
-  
-  // Verify whether algorithm supports given entity type 
-  CORBA::Boolean IsDimSupported( SMESH::Dimension type );
-};
-
-#endif
diff --git a/src/SMESH_I/SMESH_Algo_i.cxx b/src/SMESH_I/SMESH_Algo_i.cxx
deleted file mode 100644 (file)
index a57df7b..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Algo_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "SMESH_Algo_i.hxx"
-#include "SMESH_Algo.hxx"
-
-#include "utilities.h"
-
-#include <string>
-#include <vector>
-
-//=============================================================================
-/*!
- *  SMESH_Algo_i::SMESH_Algo_i
- * 
- *  Constructor
- */
-//=============================================================================
-
-SMESH_Algo_i::SMESH_Algo_i( PortableServer::POA_ptr thePOA )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA )
-{
-  MESSAGE( "SMESH_Algo_i::SMESH_Algo_i" );
-}
-
-//=============================================================================
-/*!
- *  SMESH_Algo_i::~SMESH_Algo_i
- * 
- *  Destructor
- */
-//=============================================================================
-
-SMESH_Algo_i::~SMESH_Algo_i()
-{
-  MESSAGE( "SMESH_Algo_i::~SMESH_Algo_i" );
-}
-
-//=============================================================================
-/*!
- *  SMESH_Algo_i::GetCompatibleHypothesis
- * 
- *  Gets list of compatible hypotheses
- */
-//=============================================================================
-
-SMESH::ListOfHypothesisName* SMESH_Algo_i::GetCompatibleHypothesis()
-{
-  MESSAGE( "SMESH_Algo_i::GetCompatibleHypothesis" );
-  SMESH::ListOfHypothesisName_var listOfHypothesis = new SMESH::ListOfHypothesisName;
-  const vector<string>& hypList = ( ( ::SMESH_Algo* )myBaseImpl )->GetCompatibleHypothesis();
-  int nbHyp = hypList.size();
-  listOfHypothesis->length( nbHyp );
-  for ( int i = 0; i < nbHyp; i++ ) {
-    listOfHypothesis[ i ] = CORBA::string_dup( hypList[ i ].c_str() );
-  }
-  return listOfHypothesis._retn();
-}
diff --git a/src/SMESH_I/SMESH_Algo_i.hxx b/src/SMESH_I/SMESH_Algo_i.hxx
deleted file mode 100644 (file)
index 21630ec..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Algo_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_ALGO_I_HXX_
-#define _SMESH_ALGO_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Hypothesis)
-
-#include "SMESH_Hypothesis_i.hxx"
-
-// ======================================================
-// Generic algorithm
-// ======================================================
-class SMESH_Algo_i:
-  public virtual POA_SMESH::SMESH_Algo,
-  public virtual SMESH_Hypothesis_i
-{
-public:
-  // Constructor : placed in protected section to prohibit creation of generic class instance
-  SMESH_Algo_i( PortableServer::POA_ptr thePOA );
-
-public:
-  // Destructor
-  virtual ~SMESH_Algo_i();
-  
-  // Gets list of compatible hypotheses
-  SMESH::ListOfHypothesisName* GetCompatibleHypothesis();
-};
-
-#endif
diff --git a/src/SMESH_I/SMESH_DumpPython.cxx b/src/SMESH_I/SMESH_DumpPython.cxx
deleted file mode 100644 (file)
index 016e216..0000000
+++ /dev/null
@@ -1,683 +0,0 @@
-// File    : SMESH_Gen_i_DumpPython.cxx
-// Created : Thu Mar 24 17:17:59 2005
-// Author  : Julia DOROVSKIKH
-// Module  : SMESH
-// $Header : $
-
-#include "SMESH_PythonDump.hxx"
-#include "SMESH_Gen_i.hxx"
-#include "SMESH_Filter_i.hxx"
-
-#include <TColStd_HSequenceOfInteger.hxx>
-#include <TCollection_AsciiString.hxx>
-
-
-#ifdef _DEBUG_
-static int MYDEBUG = 0;
-#else
-static int MYDEBUG = 0;
-#endif
-
-static TCollection_AsciiString NotPublishedObjectName()
-{
-  return "__NOT__Published__Object__";
-}
-
-namespace SMESH
-{
-
-  size_t TPythonDump::myCounter = 0;
-
-  TPythonDump::
-  TPythonDump()
-  {
-    ++myCounter;
-  }
-  TPythonDump::
-  ~TPythonDump()
-  {
-    if(--myCounter == 0){
-      SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-      SALOMEDS::Study_ptr aStudy = aSMESHGen->GetCurrentStudy();
-      if(!aStudy->_is_nil()){
-       std::string aString = myStream.str();
-       TCollection_AsciiString aCollection(Standard_CString(aString.c_str()));
-       aSMESHGen->AddToPythonScript(aStudy->StudyId(),aCollection);
-       if(MYDEBUG) MESSAGE(aString);
-      }
-    }
-  }
-
-  TPythonDump& 
-  TPythonDump::
-  operator<<(long int theArg){
-    myStream<<theArg;
-    return *this;
-  }
-
-  TPythonDump& 
-  TPythonDump::
-  operator<<(int theArg){
-    myStream<<theArg;
-    return *this;
-  }
-
-  TPythonDump& 
-  TPythonDump::
-  operator<<(double theArg){
-    myStream<<theArg;
-    return *this;
-  }
-
-  TPythonDump& 
-  TPythonDump::
-  operator<<(float theArg){
-    myStream<<theArg;
-    return *this;
-  }
-
-  TPythonDump& 
-  TPythonDump::
-  operator<<(const void* theArg){
-    myStream<<theArg;
-    return *this;
-  }
-
-  TPythonDump& 
-  TPythonDump::
-  operator<<(const char* theArg){
-    myStream<<theArg;
-    return *this;
-  }
-
-  TPythonDump& 
-  TPythonDump::
-  operator<<(const SMESH::ElementType& theArg)
-  {
-    myStream<<"SMESH.";
-    switch(theArg){
-    case ALL: 
-      myStream<<"ALL"; 
-      break;
-    case NODE: 
-      myStream<<"NODE"; 
-      break;
-    case EDGE: 
-      myStream<<"EDGE"; 
-      break;
-    case FACE: 
-      myStream<<"FACE"; 
-      break;
-    case VOLUME: 
-      myStream<<"VOLUME"; 
-      break;
-    }
-    return *this;
-  }
-
-
-  TPythonDump& 
-  TPythonDump::
-  operator<<(const SMESH::long_array& theArg)
-  {
-    myStream<<"[ ";
-    CORBA::Long i = 1, iEnd = theArg.length();
-    for(; i <= iEnd; i++) {
-      myStream<<theArg[i-1];
-      if(i < iEnd)
-       myStream<< ", ";
-    }
-    myStream<<" ]";
-    return *this;
-  }
-
-
-  TPythonDump& 
-  TPythonDump::
-  operator<<(CORBA::Object_ptr theArg)
-  {
-    TCollection_AsciiString aString("None");
-    SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-    SALOMEDS::Study_ptr aStudy = aSMESHGen->GetCurrentStudy();
-    SALOMEDS::SObject_var aSObject = SMESH_Gen_i::ObjectToSObject(aStudy,theArg);
-    if(!aSObject->_is_nil()){
-      aString = aSObject->GetID();
-    }else if(!CORBA::is_nil(theArg)){
-      aString = "smeshObj_";
-      if ( aSMESHGen->CanPublishInStudy( theArg )) // not published SMESH object
-        aString += (int) theArg;
-      else
-        aString = NotPublishedObjectName();
-    }
-    myStream<<aString.ToCString();
-    return *this;
-  }
-
-  TPythonDump& 
-  TPythonDump::
-  operator<<(SMESH::FilterLibrary_i* theArg)
-  {
-    myStream<<"aFilterLibrary"<<theArg;
-    return *this;
-  }
-
-  TPythonDump& 
-  TPythonDump::
-  operator<<(SMESH::FilterManager_i* theArg)
-  {
-    myStream<<"aFilterManager";
-    return *this;
-  }
-
-  TPythonDump& 
-  TPythonDump::
-  operator<<(SMESH::Filter_i* theArg)
-  {
-    myStream<<"aFilter"<<theArg;
-    return *this;
-  }
-
-  TPythonDump& 
-  TPythonDump::
-  operator<<(SMESH::Functor_i* theArg)
-  {
-    FunctorType aFunctorType = theArg->GetFunctorType();
-    switch(aFunctorType){
-    case FT_AspectRatio:
-      myStream<<"anAspectRatio";
-      break;
-    case FT_AspectRatio3D:
-      myStream<<"anAspectRatio3D";
-      break;
-    case FT_Warping:
-      myStream<<"aWarping";
-      break;
-    case FT_MinimumAngle:
-      myStream<<"aMinimumAngle";
-      break;
-    case FT_Taper:
-      myStream<<"aTaper";
-      break;
-    case FT_Skew:
-      myStream<<"aSkew";
-      break;
-    case FT_Area:
-      myStream<<"aArea";
-      break;
-    case FT_FreeBorders:
-      myStream<<"aFreeBorders";
-      break;
-    case FT_FreeEdges:
-      myStream<<"aFreeEdges";
-      break;
-    case FT_MultiConnection:
-      myStream<<"aMultiConnection";
-      break;
-    case FT_MultiConnection2D:
-      myStream<<"aMultiConnection2D";
-      break;
-    case FT_Length:
-      myStream<<"aLength";
-      break;
-    case FT_Length2D:
-      myStream<<"aLength";
-      break;
-    case FT_BelongToGeom:
-      myStream<<"aBelongToGeom";
-      break;
-    case FT_BelongToPlane:
-      myStream<<"aBelongToPlane";
-      break;
-    case FT_BelongToCylinder:
-      myStream<<"aBelongToCylinder";
-      break;
-    case FT_LyingOnGeom:
-      myStream<<"aLyingOnGeom";
-      break;
-    case FT_RangeOfIds:
-      myStream<<"aRangeOfIds";
-      break;
-    case FT_BadOrientedVolume:
-      myStream<<"aBadOrientedVolume";
-      break;
-    case FT_LessThan:
-      myStream<<"aLessThan";
-      break;
-    case FT_MoreThan:
-      myStream<<"aMoreThan";
-      break;
-    case FT_EqualTo:
-      myStream<<"anEqualTo";
-      break;
-    case FT_LogicalNOT:
-      myStream<<"aLogicalNOT";
-      break;
-    case FT_LogicalAND:
-      myStream<<"aLogicalAND";
-      break;
-    case FT_LogicalOR:
-      myStream<<"aLogicalOR";
-      break;
-    case FT_Undefined:
-      myStream<<"anUndefined";
-      break;
-    }
-    myStream<<theArg;
-    return *this;
-  }
-}
-
-//=======================================================================
-//function : DumpPython
-//purpose  : 
-//=======================================================================
-Engines::TMPFile* SMESH_Gen_i::DumpPython (CORBA::Object_ptr theStudy,
-                                           CORBA::Boolean isPublished,
-                                           CORBA::Boolean& isValidScript)
-{
-  SALOMEDS::Study_var aStudy = SALOMEDS::Study::_narrow(theStudy);
-  if (CORBA::is_nil(aStudy))
-    return new Engines::TMPFile(0);
-
-  SALOMEDS::SObject_var aSO = aStudy->FindComponent(ComponentDataType());
-  if (CORBA::is_nil(aSO))
-    return new Engines::TMPFile(0);
-
-  // Map study entries to object names
-  Resource_DataMapOfAsciiStringAsciiString aMap;
-  Resource_DataMapOfAsciiStringAsciiString aMapNames;
-  TCollection_AsciiString s ("qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM0987654321_");
-
-  SALOMEDS::ChildIterator_var Itr = aStudy->NewChildIterator(aSO);
-  for (Itr->InitEx(true); Itr->More(); Itr->Next()) {
-    SALOMEDS::SObject_var aValue = Itr->Value();
-    CORBA::String_var anID = aValue->GetID();
-    CORBA::String_var aName = aValue->GetName();
-    TCollection_AsciiString aGUIName ( (char*) aName.in() );
-    TCollection_AsciiString anEnrty ( (char*) anID.in() );
-    if (aGUIName.Length() > 0) {
-      aMapNames.Bind( anEnrty, aGUIName );
-      aMap.Bind( anEnrty, aGUIName );
-    }
-  }
-
-  // Get trace of restored study
-  //SALOMEDS::SObject_var aSO = SMESH_Gen_i::ObjectToSObject(theStudy, _this());
-  SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder();
-  SALOMEDS::GenericAttribute_var anAttr =
-    aStudyBuilder->FindOrCreateAttribute(aSO, "AttributePythonObject");
-
-  char* oldValue = SALOMEDS::AttributePythonObject::_narrow(anAttr)->GetObject();
-  TCollection_AsciiString aSavedTrace (oldValue);
-
-  // Add trace of API methods calls and replace study entries by names
-  //TCollection_AsciiString aScript =
-  //  SALOMEDSImpl_Study::GetDumpStudyComment("SMESH") + "\n\n" +
-  //    DumpPython_impl(aStudy->StudyId(), aMap, aMapNames, isPublished, isValidScript, aSavedTrace);
-  TCollection_AsciiString aScript =
-    "### This file is generated by SALOME automatically by dump python functionality of SMESH component\n\n";
-  aScript += DumpPython_impl(aStudy->StudyId(), aMap, aMapNames,
-                             isPublished, isValidScript, aSavedTrace);
-
-  int aLen = aScript.Length(); 
-  unsigned char* aBuffer = new unsigned char[aLen+1];
-  strcpy((char*)aBuffer, aScript.ToCString());
-
-  CORBA::Octet* anOctetBuf =  (CORBA::Octet*)aBuffer;
-  Engines::TMPFile_var aStreamFile = new Engines::TMPFile(aLen+1, aLen+1, anOctetBuf, 1); 
-
-  bool hasNotPublishedObjects = aScript.Location( NotPublishedObjectName(), 1, aLen);
-  isValidScript = isValidScript && !hasNotPublishedObjects;
-
-  return aStreamFile._retn(); 
-}
-
-//=============================================================================
-/*!
- *  AddToPythonScript
- */
-//=============================================================================
-void SMESH_Gen_i::AddToPythonScript (int theStudyID, const TCollection_AsciiString& theString)
-{
-  if (myPythonScripts.find(theStudyID) == myPythonScripts.end()) {
-    myPythonScripts[theStudyID] = new TColStd_HSequenceOfAsciiString;
-  }
-  myPythonScripts[theStudyID]->Append(theString);
-}
-
-//=============================================================================
-/*!
- *  RemoveLastFromPythonScript
- */
-//=============================================================================
-void SMESH_Gen_i::RemoveLastFromPythonScript (int theStudyID)
-{
-  if (myPythonScripts.find(theStudyID) != myPythonScripts.end()) {
-    int aLen = myPythonScripts[theStudyID]->Length();
-    myPythonScripts[theStudyID]->Remove(aLen);
-  }
-}
-
-//=======================================================================
-//function : AddToCurrentPyScript
-//purpose  : 
-//=======================================================================
-
-void SMESH_Gen_i::AddToCurrentPyScript (const TCollection_AsciiString& theString)
-{
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  SALOMEDS::Study_ptr aStudy = aSMESHGen->GetCurrentStudy();
-  if (aStudy->_is_nil()) return;
-  aSMESHGen->AddToPythonScript(aStudy->StudyId(), theString);
-}
-
-
-//=======================================================================
-//function : AddObject
-//purpose  : add object to script string
-//=======================================================================
-
-TCollection_AsciiString& SMESH_Gen_i::AddObject(TCollection_AsciiString& theStr,
-                                                CORBA::Object_ptr        theObject)
-{
-  TCollection_AsciiString aString("None");
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  SALOMEDS::SObject_var aSObject =
-    aSMESHGen->ObjectToSObject(aSMESHGen->GetCurrentStudy(), theObject);
-  if ( !aSObject->_is_nil() ) {
-    aString = aSObject->GetID();
-  } else if ( !CORBA::is_nil( theObject )) {
-    aString = "smeshObj_";
-    if ( aSMESHGen->CanPublishInStudy( theObject )) // not published SMESH object
-      aString += (int) theObject;
-    else
-      aString = NotPublishedObjectName();
-  }
-  theStr += aString;
-  return theStr;
-}
-
-//=======================================================================
-//function : SavePython
-//purpose  : 
-//=======================================================================
-void SMESH_Gen_i::SavePython (SALOMEDS::Study_ptr theStudy)
-{
-  // Dump trace of API methods calls
-  TCollection_AsciiString aScript = GetNewPythonLines(theStudy->StudyId());
-
-  // Check contents of PythonObject attribute
-  SALOMEDS::SObject_var aSO = theStudy->FindComponent(ComponentDataType());
-  //SALOMEDS::SObject_var aSO = SMESH_Gen_i::ObjectToSObject(theStudy, _this());
-  SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder();
-  SALOMEDS::GenericAttribute_var anAttr =
-    aStudyBuilder->FindOrCreateAttribute(aSO, "AttributePythonObject");
-
-  char* oldValue = SALOMEDS::AttributePythonObject::_narrow(anAttr)->GetObject();
-  TCollection_AsciiString oldScript (oldValue);
-
-  if (oldScript.Length() > 0) {
-    oldScript += "\n";
-    oldScript += aScript;
-  } else {
-    oldScript = aScript;
-  }
-
-  // Store in PythonObject attribute
-  SALOMEDS::AttributePythonObject::_narrow(anAttr)->SetObject(oldScript.ToCString(), 1);
-
-  // Clean trace of API methods calls
-  CleanPythonTrace(theStudy->StudyId());
-}
-
-
-// impl
-
-
-//=============================================================================
-/*!
- *  FindEntries: Returns a sequence of start/end positions of entries in the string
- */
-//=============================================================================
-Handle(TColStd_HSequenceOfInteger) FindEntries (TCollection_AsciiString& theString)
-{
-  Handle(TColStd_HSequenceOfInteger) aSeq = new TColStd_HSequenceOfInteger;
-  Standard_Integer aLen = theString.Length();
-  Standard_Boolean isFound = Standard_False;
-
-  char* arr = theString.ToCString();
-  Standard_Integer i = 0, j;
-
-  while(i < aLen) {
-    int c = (int)arr[i];
-    j = i+1;
-    if(c >= 48 && c <= 57) { //Is digit?
-      isFound = Standard_False;
-      while((j < aLen) && ((c >= 48 && c <= 57) || c == 58) ) { //Check if it is an entry
-       c = (int)arr[j++];  
-       if(c == 58) isFound = Standard_True;
-      }
-
-      if (isFound) {
-        int prev = (i < 1) ? 0 : (int)arr[i - 1];
-        // last char should be a diggit,
-        // previous char should not be '"'.
-        if (arr[j-2] != 58 && prev != 34) {
-          aSeq->Append(i+1); // +1 because AsciiString starts from 1
-          aSeq->Append(j-1);
-        }
-      }
-    }
-
-    i = j;
-  }
-
-  return aSeq;
-}
-
-//=============================================================================
-/*!
- *  DumpPython
- */
-//=============================================================================
-TCollection_AsciiString SMESH_Gen_i::DumpPython_impl
-                        (int theStudyID, 
-                         Resource_DataMapOfAsciiStringAsciiString& theObjectNames,
-                         Resource_DataMapOfAsciiStringAsciiString& theNames,
-                         bool isPublished, 
-                         bool& aValidScript,
-                         const TCollection_AsciiString& theSavedTrace)
-{
-  TCollection_AsciiString aScript;
-  aScript = "def RebuildData(theStudy):";
-  aScript += "\n\tsmesh = salome.lcc.FindOrLoadComponent(\"FactoryServer\", \"SMESH\")";
-  aScript += "\n\taFilterManager = smesh.CreateFilterManager()";
-  if ( isPublished )
-    aScript += "\n\tsmesh.SetCurrentStudy(theStudy)";
-  else
-    aScript += "\n\tsmesh.SetCurrentStudy(None)";
-
-  // Dump trace of restored study
-  if (theSavedTrace.Length() > 0) {
-    aScript += "\n";
-    aScript += theSavedTrace;
-  }
-
-  // Dump trace of API methods calls
-  TCollection_AsciiString aNewLines = GetNewPythonLines(theStudyID);
-  if (aNewLines.Length() > 0) {
-    aScript += "\n";
-    aScript += aNewLines;
-  }
-
-  // Find entries to be replaced by names
-  Handle(TColStd_HSequenceOfInteger) aSeq = FindEntries(aScript);
-  Standard_Integer aLen = aSeq->Length();
-
-  if (aLen == 0)
-    return aScript;
-
-  // Replace entries by the names
-  GEOM::GEOM_Gen_ptr geom = GetGeomEngine();
-  TColStd_SequenceOfAsciiString seqRemoved;
-  Resource_DataMapOfAsciiStringAsciiString mapRemoved;
-  Standard_Integer objectCounter = 0, aStart = 1, aScriptLength = aScript.Length();
-  TCollection_AsciiString anUpdatedScript, anEntry, aName, aBaseName("smeshObj_"),
-    allowedChars ("qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM0987654321_");
-
-  // Collect names of GEOM objects to exclude same names for SMESH objects
-  GEOM::string_array_var aGeomNames = geom->GetAllDumpNames();
-  int ign = 0, nbgn = aGeomNames->length();
-  for (; ign < nbgn; ign++) {
-    aName = aGeomNames[ign];
-    theObjectNames.Bind(aName, "1");
-  }
-
-  bool importGeom = false;
-  for (Standard_Integer i = 1; i <= aLen; i += 2) {
-    anUpdatedScript += aScript.SubString(aStart, aSeq->Value(i) - 1);
-    anEntry = aScript.SubString(aSeq->Value(i), aSeq->Value(i + 1));
-    // is a GEOM object?
-    aName = geom->GetDumpName( anEntry.ToCString() );
-    if (aName.IsEmpty()) {
-      // is a SMESH object
-      if (theObjectNames.IsBound(anEntry)) {
-        // The Object is in Study
-        aName = theObjectNames.Find(anEntry);
-        // check validity of aName
-        bool isValidName = true;
-        if ( aName.IsIntegerValue() ) { // aName must not start with a digit
-          aName.Insert( 1, 'a' );
-          isValidName = false;
-        }
-        int p, p2=1; // replace not allowed chars
-        while ((p = aName.FirstLocationNotInSet(allowedChars, p2, aName.Length()))) {
-          aName.SetValue(p, '_');
-          p2=p;
-          isValidName = false;
-        }
-        if (theObjectNames.IsBound(aName) && anEntry != theObjectNames(aName)) {
-          // diff objects have same name - make a new name by appending a digit
-          TCollection_AsciiString aName2;
-          Standard_Integer i = 0;
-          do {
-            aName2 = aName + "_" + ++i;
-          } while (theObjectNames.IsBound(aName2) && anEntry != theObjectNames(aName2));
-          aName = aName2;
-          isValidName = false;
-        }
-        if ( !isValidName )
-          theObjectNames(anEntry) = aName;
-
-      } else {
-        // Removed Object
-        do {
-          aName = aBaseName + TCollection_AsciiString(++objectCounter);
-        } while (theObjectNames.IsBound(aName));
-        seqRemoved.Append(aName);
-        mapRemoved.Bind(anEntry, "1");
-        theObjectNames.Bind(anEntry, aName);
-      }
-      theObjectNames.Bind(aName, anEntry); // to detect same name of diff objects
-    }
-    else
-    {
-      importGeom = true;
-    }
-    anUpdatedScript += aName;
-    aStart = aSeq->Value(i + 1) + 1;
-  }
-
-  // set initial part of aSript
-  TCollection_AsciiString initPart = "import salome, SMESH, StdMeshers\n\n";
-  if ( importGeom )
-  {
-    initPart += ("import string, os, sys, re\n"
-                 "sys.path.insert( 0, os.path.dirname(__file__) )\n"
-                 "exec(\"from \"+re.sub(\"SMESH$\",\"GEOM\",__name__)+\" import *\")\n\n");
-  }
-  anUpdatedScript.Insert ( 1, initPart );
-
-  // add final part of aScript
-  if (aSeq->Value(aLen) < aScriptLength)
-    anUpdatedScript += aScript.SubString(aSeq->Value(aLen) + 1, aScriptLength);
-
-  // Remove removed objects
-  anUpdatedScript += "\n\taStudyBuilder = theStudy.NewBuilder()";
-  for (int ir = 1; ir <= seqRemoved.Length(); ir++) {
-    anUpdatedScript += "\n\tSO = theStudy.FindObjectIOR(theStudy.ConvertObjectToIOR(";
-    anUpdatedScript += seqRemoved.Value(ir);
-    anUpdatedScript += "))\n\tif SO is not None: aStudyBuilder.RemoveObjectWithChildren(SO)";
-  }
-
-  // Set object names
-  anUpdatedScript += "\n\n\tisGUIMode = ";
-  anUpdatedScript += isPublished;
-  anUpdatedScript += "\n\tif isGUIMode:";
-  anUpdatedScript += "\n\t\tsmeshgui = salome.ImportComponentGUI(\"SMESH\")";
-  anUpdatedScript += "\n\t\tsmeshgui.Init(theStudy._get_StudyId())";
-  anUpdatedScript += "\n";
-
-  TCollection_AsciiString aGUIName;
-  Resource_DataMapOfAsciiStringAsciiString mapEntries;
-  for (Standard_Integer i = 1; i <= aLen; i += 2) {
-    anEntry = aScript.SubString(aSeq->Value(i), aSeq->Value(i + 1));
-    aName = geom->GetDumpName( anEntry.ToCString() );
-    if (aName.IsEmpty() && // Not a GEOM object
-        theNames.IsBound(anEntry) &&
-        !mapEntries.IsBound(anEntry) && // Not yet processed
-        !mapRemoved.IsBound(anEntry)) { // Was not removed
-      aName = theObjectNames.Find(anEntry);
-      aGUIName = theNames.Find(anEntry);
-      mapEntries.Bind(anEntry, aName);
-      anUpdatedScript += "\n\t\tsmeshgui.SetName(salome.ObjectToID(";
-      anUpdatedScript += aName + "), \"" + aGUIName + "\")";
-    }
-  }
-  anUpdatedScript += "\n\n\t\tsalome.sg.updateObjBrowser(0)";
-
-  anUpdatedScript += "\n\n\tpass\n";
-
-  aValidScript = true;
-
-  return anUpdatedScript;
-}
-
-//=============================================================================
-/*!
- *  GetNewPythonLines
- */
-//=============================================================================
-TCollection_AsciiString SMESH_Gen_i::GetNewPythonLines (int theStudyID)
-{
-  TCollection_AsciiString aScript;
-
-  // Dump trace of API methods calls
-  if (myPythonScripts.find(theStudyID) != myPythonScripts.end()) {
-    Handle(TColStd_HSequenceOfAsciiString) aPythonScript = myPythonScripts[theStudyID];
-    Standard_Integer istr, aLen = aPythonScript->Length();
-    for (istr = 1; istr <= aLen; istr++) {
-      aScript += "\n\t";
-      aScript += aPythonScript->Value(istr);
-    }
-    aScript += "\n";
-  }
-
-  return aScript;
-}
-
-//=============================================================================
-/*!
- *  CleanPythonTrace
- */
-//=============================================================================
-void SMESH_Gen_i::CleanPythonTrace (int theStudyID)
-{
-  TCollection_AsciiString aScript;
-
-  // Clean trace of API methods calls
-  if (myPythonScripts.find(theStudyID) != myPythonScripts.end()) {
-    myPythonScripts[theStudyID]->Clear();
-  }
-}
diff --git a/src/SMESH_I/SMESH_Filter_i.cxx b/src/SMESH_I/SMESH_Filter_i.cxx
deleted file mode 100644 (file)
index 05d5f38..0000000
+++ /dev/null
@@ -1,2730 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details.
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESH_Filter_i.cxx
-//  Author : Alexey Petrov, OCC
-//  Module : SMESH
-
-
-#include "SMESH_Filter_i.hxx"
-
-#include "SMESH_Gen_i.hxx"
-#include "SMESH_PythonDump.hxx"
-
-#include "SMDS_Mesh.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_MeshElement.hxx"
-
-#include "SMESHDS_Mesh.hxx"
-
-#include <LDOM_Document.hxx>
-#include <LDOM_Element.hxx>
-#include <LDOM_Node.hxx>
-#include <LDOMString.hxx>
-#include <LDOMParser.hxx>
-#include <LDOM_XmlWriter.hxx>
-#include <TCollection_HAsciiString.hxx>
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
-#include <TColStd_ListOfInteger.hxx>
-#include <TColStd_ListOfReal.hxx>
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_SequenceOfHAsciiString.hxx>
-#include <TColStd_ListIteratorOfListOfReal.hxx>
-#include <Precision.hxx>
-#include <BRep_Tool.hxx>
-#include <TopoDS_Shape.hxx>
-#include <TopoDS.hxx>
-#include <TopoDS_Face.hxx>
-#include <Geom_Plane.hxx>
-#include <Geom_CylindricalSurface.hxx>
-#include <TopExp_Explorer.hxx>
-#include <OSD_Path.hxx>
-#include <OSD_File.hxx>
-
-using namespace SMESH;
-using namespace SMESH::Controls;
-
-
-namespace SMESH
-{
-  Predicate_i* 
-  GetPredicate( Predicate_ptr thePredicate )
-  {
-    return DownCast<Predicate_i*>(thePredicate);
-  }
-}
-
-
-/*
-  Class       : BelongToGeom
-  Description : Predicate for verifying whether entiy belong to
-                specified geometrical support
-*/
-
-Controls::BelongToGeom::BelongToGeom()
-: myMeshDS(NULL),
-  myType(SMDSAbs_All)
-{}
-
-void Controls::BelongToGeom::SetMesh( const SMDS_Mesh* theMesh )
-{
-  myMeshDS = dynamic_cast<const SMESHDS_Mesh*>(theMesh);
-}
-
-void Controls::BelongToGeom::SetGeom( const TopoDS_Shape& theShape )
-{
-  myShape = theShape;
-}
-
-static bool IsContains( const SMESHDS_Mesh*     theMeshDS,
-                        const TopoDS_Shape&     theShape,
-                        const SMDS_MeshElement* theElem,
-                        TopAbs_ShapeEnum        theFindShapeEnum,
-                        TopAbs_ShapeEnum        theAvoidShapeEnum = TopAbs_SHAPE )
-{
-  TopExp_Explorer anExp( theShape,theFindShapeEnum,theAvoidShapeEnum );
-  
-  while( anExp.More() )
-  {
-    const TopoDS_Shape& aShape = anExp.Current();
-    if( SMESHDS_SubMesh* aSubMesh = theMeshDS->MeshElements( aShape ) ){
-      if( aSubMesh->Contains( theElem ) )
-        return true;
-    }
-    anExp.Next();
-  }
-  return false;
-}
-
-bool Controls::BelongToGeom::IsSatisfy( long theId )
-{
-  if ( myMeshDS == 0 || myShape.IsNull() )
-    return false;
-
-  if( myType == SMDSAbs_Node )
-  {
-    if( const SMDS_MeshNode* aNode = myMeshDS->FindNode( theId ) )
-    {
-      const SMDS_PositionPtr& aPosition = aNode->GetPosition();
-      SMDS_TypeOfPosition aTypeOfPosition = aPosition->GetTypeOfPosition();
-      switch( aTypeOfPosition )
-      {
-      case SMDS_TOP_VERTEX : return IsContains( myMeshDS,myShape,aNode,TopAbs_VERTEX );
-      case SMDS_TOP_EDGE   : return IsContains( myMeshDS,myShape,aNode,TopAbs_EDGE );
-      case SMDS_TOP_FACE   : return IsContains( myMeshDS,myShape,aNode,TopAbs_FACE );
-      case SMDS_TOP_3DSPACE: return IsContains( myMeshDS,myShape,aNode,TopAbs_SHELL );
-      }
-    }
-  }
-  else
-  {
-    if( const SMDS_MeshElement* anElem = myMeshDS->FindElement( theId ) )
-    {
-      if( myType == SMDSAbs_All )
-      {
-        return IsContains( myMeshDS,myShape,anElem,TopAbs_EDGE ) ||
-               IsContains( myMeshDS,myShape,anElem,TopAbs_FACE ) ||
-               IsContains( myMeshDS,myShape,anElem,TopAbs_SHELL )||
-               IsContains( myMeshDS,myShape,anElem,TopAbs_SOLID );
-      }
-      else if( myType == anElem->GetType() )
-      {
-        switch( myType )
-        {
-        case SMDSAbs_Edge  : return IsContains( myMeshDS,myShape,anElem,TopAbs_EDGE );
-        case SMDSAbs_Face  : return IsContains( myMeshDS,myShape,anElem,TopAbs_FACE );
-        case SMDSAbs_Volume: return IsContains( myMeshDS,myShape,anElem,TopAbs_SHELL )||
-                                    IsContains( myMeshDS,myShape,anElem,TopAbs_SOLID );
-        }
-      }
-    }
-  }
-    
-  return false;
-}
-
-void Controls::BelongToGeom::SetType( SMDSAbs_ElementType theType )
-{
-  myType = theType;
-}
-
-SMDSAbs_ElementType Controls::BelongToGeom::GetType() const
-{
-  return myType;
-}
-
-TopoDS_Shape Controls::BelongToGeom::GetShape()
-{
-  return myShape;
-}
-
-const SMESHDS_Mesh* 
-Controls::BelongToGeom::
-GetMeshDS() const
-{
-  return myMeshDS;
-}
-
-/*
-  Class       : LyingOnGeom
-  Description : Predicate for verifying whether entiy lying or partially lying on
-                specified geometrical support
-*/
-
-Controls::LyingOnGeom::LyingOnGeom()
-: myMeshDS(NULL),
-  myType(SMDSAbs_All)
-{}
-
-void Controls::LyingOnGeom::SetMesh( const SMDS_Mesh* theMesh )
-{
-  myMeshDS = dynamic_cast<const SMESHDS_Mesh*>(theMesh);
-}
-
-void Controls::LyingOnGeom::SetGeom( const TopoDS_Shape& theShape )
-{
-  myShape = theShape;
-}
-
-bool Controls::LyingOnGeom::IsSatisfy( long theId )
-{
-  if ( myMeshDS == 0 || myShape.IsNull() )
-    return false;
-
-  if( myType == SMDSAbs_Node )
-  {
-    if( const SMDS_MeshNode* aNode = myMeshDS->FindNode( theId ) )
-    {
-      const SMDS_PositionPtr& aPosition = aNode->GetPosition();
-      SMDS_TypeOfPosition aTypeOfPosition = aPosition->GetTypeOfPosition();
-      switch( aTypeOfPosition )
-      {
-      case SMDS_TOP_VERTEX : return IsContains( myMeshDS,myShape,aNode,TopAbs_VERTEX );
-      case SMDS_TOP_EDGE   : return IsContains( myMeshDS,myShape,aNode,TopAbs_EDGE );
-      case SMDS_TOP_FACE   : return IsContains( myMeshDS,myShape,aNode,TopAbs_FACE );
-      case SMDS_TOP_3DSPACE: return IsContains( myMeshDS,myShape,aNode,TopAbs_SHELL );
-      }
-    }
-  }
-  else
-  {
-    if( const SMDS_MeshElement* anElem = myMeshDS->FindElement( theId ) )
-    {
-      if( myType == SMDSAbs_All )
-      {
-        return Contains( myMeshDS,myShape,anElem,TopAbs_EDGE ) ||
-               Contains( myMeshDS,myShape,anElem,TopAbs_FACE ) ||
-               Contains( myMeshDS,myShape,anElem,TopAbs_SHELL )||
-               Contains( myMeshDS,myShape,anElem,TopAbs_SOLID );
-      }
-      else if( myType == anElem->GetType() )
-      {
-        switch( myType )
-        {
-        case SMDSAbs_Edge  : return Contains( myMeshDS,myShape,anElem,TopAbs_EDGE );
-        case SMDSAbs_Face  : return Contains( myMeshDS,myShape,anElem,TopAbs_FACE );
-        case SMDSAbs_Volume: return Contains( myMeshDS,myShape,anElem,TopAbs_SHELL )||
-                                    Contains( myMeshDS,myShape,anElem,TopAbs_SOLID );
-        }
-      }
-    }
-  }
-    
-  return false;
-}
-
-void Controls::LyingOnGeom::SetType( SMDSAbs_ElementType theType )
-{
-  myType = theType;
-}
-
-SMDSAbs_ElementType Controls::LyingOnGeom::GetType() const
-{
-  return myType;
-}
-
-TopoDS_Shape Controls::LyingOnGeom::GetShape()
-{
-  return myShape;
-}
-
-const SMESHDS_Mesh* 
-Controls::LyingOnGeom::
-GetMeshDS() const
-{
-  return myMeshDS;
-}
-
-bool Controls::LyingOnGeom::Contains( const SMESHDS_Mesh*     theMeshDS,
-                                     const TopoDS_Shape&     theShape,
-                                     const SMDS_MeshElement* theElem,
-                                     TopAbs_ShapeEnum        theFindShapeEnum,
-                                     TopAbs_ShapeEnum        theAvoidShapeEnum )
-{
-  if (IsContains(theMeshDS, theShape, theElem, theFindShapeEnum, theAvoidShapeEnum))
-    return true;
-  
-  TopTools_IndexedMapOfShape aSubShapes;
-  TopExp::MapShapes( theShape, aSubShapes );
-  
-  for (int i = 1; i <= aSubShapes.Extent(); i++)
-    {
-      const TopoDS_Shape& aShape = aSubShapes.FindKey(i);
-      
-      if( SMESHDS_SubMesh* aSubMesh = theMeshDS->MeshElements( aShape ) ){
-       if( aSubMesh->Contains( theElem ) )
-         return true;
-       
-       SMDS_NodeIteratorPtr aNodeIt = aSubMesh->GetNodes();
-       while ( aNodeIt->more() )
-         {
-           const SMDS_MeshNode* aNode = static_cast<const SMDS_MeshNode*>(aNodeIt->next());
-           SMDS_ElemIteratorPtr anElemIt = aNode->GetInverseElementIterator();
-           while ( anElemIt->more() )
-             {
-               const SMDS_MeshElement* anElement = static_cast<const SMDS_MeshElement*>(anElemIt->next());
-               if (anElement == theElem)
-                 return true;
-             }
-         }
-      }
-    }
-  return false;
-}
-
-
-/*
-                            AUXILIARY METHODS
-*/
-
-inline 
-const SMDS_Mesh* 
-MeshPtr2SMDSMesh( SMESH_Mesh_ptr theMesh )
-{
-  SMESH_Mesh_i* anImplPtr = DownCast<SMESH_Mesh_i*>(theMesh);
-  return anImplPtr ? anImplPtr->GetImpl().GetMeshDS() : 0;
-}
-
-inline 
-SMESH::long_array* 
-toArray( const TColStd_ListOfInteger& aList )
-{
-  SMESH::long_array_var anArray = new SMESH::long_array;
-  anArray->length( aList.Extent() );
-  TColStd_ListIteratorOfListOfInteger anIter( aList );
-  int i = 0;
-  for( ; anIter.More(); anIter.Next() )
-    anArray[ i++ ] = anIter.Value();
-
-  return anArray._retn();
-}
-
-inline 
-SMESH::double_array* 
-toArray( const TColStd_ListOfReal& aList )
-{
-  SMESH::double_array_var anArray = new SMESH::double_array;
-  anArray->length( aList.Extent() );
-  TColStd_ListIteratorOfListOfReal anIter( aList );
-  int i = 0;
-  for( ; anIter.More(); anIter.Next() )
-    anArray[ i++ ] = anIter.Value();
-
-  return anArray._retn();
-}
-
-static SMESH::Filter::Criterion createCriterion()
-{
-  SMESH::Filter::Criterion aCriterion;
-
-  aCriterion.Type          = FT_Undefined;
-  aCriterion.Compare       = FT_Undefined;
-  aCriterion.Threshold     = 0;
-  aCriterion.UnaryOp       = FT_Undefined;
-  aCriterion.BinaryOp      = FT_Undefined;
-  aCriterion.ThresholdStr  = "";
-  aCriterion.Tolerance     = Precision::Confusion();
-  aCriterion.TypeOfElement = SMESH::ALL;
-  aCriterion.Precision     = -1;
-
-  return aCriterion;
-}
-
-static TopoDS_Shape getShapeByName( const char* theName )
-{
-  if ( theName != 0 )
-  {
-    SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-    SALOMEDS::Study_ptr aStudy = aSMESHGen->GetCurrentStudy();
-    if ( aStudy != 0 )
-    {
-      SALOMEDS::Study::ListOfSObject_var aList =
-        aStudy->FindObjectByName( theName, "GEOM" );
-      if ( aList->length() > 0 )
-      {
-        GEOM::GEOM_Object_var aGeomObj = GEOM::GEOM_Object::_narrow( aList[ 0 ]->GetObject() );
-        if ( !aGeomObj->_is_nil() )
-        {
-         GEOM::GEOM_Gen_var aGEOMGen = SMESH_Gen_i::GetGeomEngine();
-          TopoDS_Shape aLocShape = aSMESHGen->GetShapeReader()->GetShape( aGEOMGen, aGeomObj );
-          return aLocShape;
-        }
-      }
-    }
-  }
-  return TopoDS_Shape();
-}
-
-
-
-/*
-                                FUNCTORS
-*/
-
-/*
-  Class       : Functor_i
-  Description : An abstact class for all functors 
-*/
-Functor_i::Functor_i(): 
-  SALOME::GenericObj_i( SMESH_Gen_i::GetPOA() )
-{
-  PortableServer::ObjectId_var anObjectId = 
-    SMESH_Gen_i::GetPOA()->activate_object( this );
-}
-
-Functor_i::~Functor_i()
-{
-  TPythonDump()<<this<<".Destroy()";
-}
-
-void Functor_i::SetMesh( SMESH_Mesh_ptr theMesh )
-{
-  myFunctorPtr->SetMesh( MeshPtr2SMDSMesh( theMesh ) );
-  TPythonDump()<<this<<".SetMesh("<<theMesh<<")";
-}
-
-ElementType Functor_i::GetElementType()
-{
-  return ( ElementType )myFunctorPtr->GetType();
-}
-
-
-/*
-  Class       : NumericalFunctor_i
-  Description : Base class for numerical functors
-*/
-CORBA::Double NumericalFunctor_i::GetValue( CORBA::Long theId )
-{
-  return myNumericalFunctorPtr->GetValue( theId );
-}
-
-void NumericalFunctor_i::SetPrecision( CORBA::Long thePrecision )
-{
-  myNumericalFunctorPtr->SetPrecision( thePrecision );
-  TPythonDump()<<this<<".SetPrecision("<<thePrecision<<")";
-}
-
-CORBA::Long NumericalFunctor_i::GetPrecision()
-{
- return myNumericalFunctorPtr->GetPrecision();
-}
-
-Controls::NumericalFunctorPtr NumericalFunctor_i::GetNumericalFunctor()
-{
-  return myNumericalFunctorPtr;
-}
-
-
-/*
-  Class       : SMESH_MinimumAngle
-  Description : Functor for calculation of minimum angle
-*/
-MinimumAngle_i::MinimumAngle_i()
-{
-  myNumericalFunctorPtr.reset( new Controls::MinimumAngle() );
-  myFunctorPtr = myNumericalFunctorPtr;
-}
-
-FunctorType MinimumAngle_i::GetFunctorType()
-{
-  return SMESH::FT_MinimumAngle;
-}
-
-
-/*
-  Class       : AspectRatio
-  Description : Functor for calculating aspect ratio
-*/
-AspectRatio_i::AspectRatio_i()
-{
-  myNumericalFunctorPtr.reset( new Controls::AspectRatio() );
-  myFunctorPtr = myNumericalFunctorPtr;
-}
-
-FunctorType AspectRatio_i::GetFunctorType()
-{
-  return SMESH::FT_AspectRatio;
-}
-
-
-/*
-  Class       : AspectRatio3D
-  Description : Functor for calculating aspect ratio 3D
-*/
-AspectRatio3D_i::AspectRatio3D_i()
-{
-  myNumericalFunctorPtr.reset( new Controls::AspectRatio3D() );
-  myFunctorPtr = myNumericalFunctorPtr;
-}
-
-FunctorType AspectRatio3D_i::GetFunctorType()
-{
-  return SMESH::FT_AspectRatio3D;
-}
-
-
-/*
-  Class       : Warping_i
-  Description : Functor for calculating warping
-*/
-Warping_i::Warping_i()
-{
-  myNumericalFunctorPtr.reset( new Controls::Warping() );
-  myFunctorPtr = myNumericalFunctorPtr;
-}
-
-FunctorType Warping_i::GetFunctorType()
-{
-  return SMESH::FT_Warping;
-}
-
-
-/*
-  Class       : Taper_i
-  Description : Functor for calculating taper
-*/
-Taper_i::Taper_i()
-{
-  myNumericalFunctorPtr.reset( new Controls::Taper() );
-  myFunctorPtr = myNumericalFunctorPtr;
-}
-
-FunctorType Taper_i::GetFunctorType()
-{
-  return SMESH::FT_Taper;
-}
-
-
-/*
-  Class       : Skew_i
-  Description : Functor for calculating skew in degrees
-*/
-Skew_i::Skew_i()
-{
-  myNumericalFunctorPtr.reset( new Controls::Skew() );
-  myFunctorPtr = myNumericalFunctorPtr;
-}
-
-FunctorType Skew_i::GetFunctorType()
-{
-  return SMESH::FT_Skew;
-}
-
-/*
-  Class       : Area_i
-  Description : Functor for calculating area
-*/
-Area_i::Area_i()
-{
-  myNumericalFunctorPtr.reset( new Controls::Area() );
-  myFunctorPtr = myNumericalFunctorPtr;
-}
-
-FunctorType Area_i::GetFunctorType()
-{
-  return SMESH::FT_Area;
-}
-
-/*
-  Class       : Length_i
-  Description : Functor for calculating length off edge
-*/
-Length_i::Length_i()
-{
-  myNumericalFunctorPtr.reset( new Controls::Length() );
-  myFunctorPtr = myNumericalFunctorPtr;
-}
-
-FunctorType Length_i::GetFunctorType()
-{
-  return SMESH::FT_Length;
-}
-
-/*
-  Class       : Length2D_i
-  Description : Functor for calculating length of edge
-*/
-Length2D_i::Length2D_i()
-{
-  myNumericalFunctorPtr.reset( new Controls::Length2D() );
-  myFunctorPtr = myNumericalFunctorPtr;
-}
-
-FunctorType Length2D_i::GetFunctorType()
-{
-  return SMESH::FT_Length2D;
-}
-
-SMESH::Length2D::Values* Length2D_i::GetValues()
-{
-  INFOS("Length2D_i::GetValues");
-  SMESH::Controls::Length2D::TValues aValues;
-  myLength2DPtr->GetValues( aValues );
-  
-  long i = 0, iEnd = aValues.size();
-
-  SMESH::Length2D::Values_var aResult = new SMESH::Length2D::Values(iEnd);
-
-  SMESH::Controls::Length2D::TValues::const_iterator anIter;
-  for ( anIter = aValues.begin() ; anIter != aValues.end(); anIter++, i++ )
-  {
-    const SMESH::Controls::Length2D::Value&  aVal = *anIter;
-    SMESH::Length2D::Value &aValue = aResult[ i ];
-    
-    aValue.myLength = aVal.myLength;
-    aValue.myPnt1 = aVal.myPntId[ 0 ];
-    aValue.myPnt2 = aVal.myPntId[ 1 ];
-   
-  }
-
-  INFOS("Length2D_i::GetValuess~");
-  return aResult._retn();
-}
-
-/*
-  Class       : MultiConnection_i
-  Description : Functor for calculating number of faces conneted to the edge
-*/
-MultiConnection_i::MultiConnection_i()
-{
-  myNumericalFunctorPtr.reset( new Controls::MultiConnection() );
-  myFunctorPtr = myNumericalFunctorPtr;
-}
-
-FunctorType MultiConnection_i::GetFunctorType()
-{
-  return SMESH::FT_MultiConnection;
-}
-
-/*
-  Class       : MultiConnection2D_i
-  Description : Functor for calculating number of faces conneted to the edge
-*/
-MultiConnection2D_i::MultiConnection2D_i()
-{
-  myNumericalFunctorPtr.reset( new Controls::MultiConnection2D() );
-  myFunctorPtr = myNumericalFunctorPtr;
-}
-
-FunctorType MultiConnection2D_i::GetFunctorType()
-{
-  return SMESH::FT_MultiConnection2D;
-}
-
-SMESH::MultiConnection2D::Values* MultiConnection2D_i::GetValues()
-{
-  INFOS("MultiConnection2D_i::GetValues");
-  SMESH::Controls::MultiConnection2D::MValues aValues;
-  myMulticonnection2DPtr->GetValues( aValues );
-  
-  long i = 0, iEnd = aValues.size();
-
-  SMESH::MultiConnection2D::Values_var aResult = new SMESH::MultiConnection2D::Values(iEnd);
-
-  SMESH::Controls::MultiConnection2D::MValues::const_iterator anIter;
-  for ( anIter = aValues.begin() ; anIter != aValues.end(); anIter++, i++ )
-  {
-    const SMESH::Controls::MultiConnection2D::Value&  aVal = (*anIter).first;
-    SMESH::MultiConnection2D::Value &aValue = aResult[ i ];
-    
-    aValue.myPnt1 = aVal.myPntId[ 0 ];
-    aValue.myPnt2 = aVal.myPntId[ 1 ];
-    aValue.myNbConnects = (*anIter).second;
-   
-  }
-
-  INFOS("Multiconnection2D_i::GetValuess~");
-  return aResult._retn();
-}
-
-/*
-                            PREDICATES
-*/
-
-
-/*
-  Class       : Predicate_i
-  Description : Base class for all predicates
-*/
-CORBA::Boolean Predicate_i::IsSatisfy( CORBA::Long theId )
-{
-  return myPredicatePtr->IsSatisfy( theId );
-}
-
-Controls::PredicatePtr Predicate_i::GetPredicate()
-{
-  return myPredicatePtr;
-}
-
-/*
-  Class       : BadOrientedVolume_i
-  Description : Verify whether a mesh volume is incorrectly oriented from
-                the point of view of MED convention
-*/
-BadOrientedVolume_i::BadOrientedVolume_i()
-{
-  Controls::PredicatePtr control( new Controls::BadOrientedVolume() );
-  myFunctorPtr = myPredicatePtr = control;
-};
-
-FunctorType BadOrientedVolume_i::GetFunctorType()
-{
-  return SMESH::FT_BadOrientedVolume;
-}
-
-/*
-  Class       : BelongToGeom_i
-  Description : Predicate for selection on geometrical support
-*/
-BelongToGeom_i::BelongToGeom_i()
-{
-  myBelongToGeomPtr.reset( new Controls::BelongToGeom() );
-  myFunctorPtr = myPredicatePtr = myBelongToGeomPtr;
-  myShapeName = 0;
-}
-
-BelongToGeom_i::~BelongToGeom_i()
-{
-  delete myShapeName;
-}
-
-void BelongToGeom_i::SetGeom( GEOM::GEOM_Object_ptr theGeom )
-{
-  if ( theGeom->_is_nil() )
-    return;
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  GEOM::GEOM_Gen_var aGEOMGen = SMESH_Gen_i::GetGeomEngine();
-  TopoDS_Shape aLocShape = aSMESHGen->GetShapeReader()->GetShape( aGEOMGen, theGeom );
-  myBelongToGeomPtr->SetGeom( aLocShape );
-  TPythonDump()<<this<<".SetGeom("<<theGeom<<")";
-}
-
-void BelongToGeom_i::SetGeom( const TopoDS_Shape& theShape )
-{
-  myBelongToGeomPtr->SetGeom( theShape );
-}
-
-void BelongToGeom_i::SetElementType(ElementType theType){
-  myBelongToGeomPtr->SetType(SMDSAbs_ElementType(theType));
-  TPythonDump()<<this<<".SetElementType("<<theType<<")";
-}
-
-FunctorType BelongToGeom_i::GetFunctorType()
-{
-  return SMESH::FT_BelongToGeom;
-}
-
-void BelongToGeom_i::SetShapeName( const char* theName )
-{
-  delete myShapeName;
-  myShapeName = strdup( theName );
-  myBelongToGeomPtr->SetGeom( getShapeByName( myShapeName ) );
-  TPythonDump()<<this<<".SetShapeName('"<<theName<<"')";
-}
-
-char* BelongToGeom_i::GetShapeName()
-{
-  return CORBA::string_dup( myShapeName );
-}
-
-/*
-  Class       : BelongToSurface_i
-  Description : Predicate for selection on geometrical support
-*/
-BelongToSurface_i::BelongToSurface_i( const Handle(Standard_Type)& theSurfaceType )
-{
-  myElementsOnSurfacePtr.reset( new Controls::ElementsOnSurface() );
-  myFunctorPtr = myPredicatePtr = myElementsOnSurfacePtr;
-  myShapeName = 0;
-  mySurfaceType = theSurfaceType;
-}
-
-BelongToSurface_i::~BelongToSurface_i()
-{
-  delete myShapeName;
-}
-
-void BelongToSurface_i::SetSurface( GEOM::GEOM_Object_ptr theGeom, ElementType theType )
-{
-  if ( theGeom->_is_nil() )
-    return;
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  GEOM::GEOM_Gen_var aGEOMGen = SMESH_Gen_i::GetGeomEngine();
-  TopoDS_Shape aLocShape = aSMESHGen->GetShapeReader()->GetShape( aGEOMGen, theGeom );
-
-  if ( aLocShape.ShapeType() == TopAbs_FACE )
-  {
-    Handle(Geom_Surface) aSurf = BRep_Tool::Surface( TopoDS::Face( aLocShape ) );
-    if ( !aSurf.IsNull() && aSurf->DynamicType() == mySurfaceType )
-    {
-      myElementsOnSurfacePtr->SetSurface( aLocShape, (SMDSAbs_ElementType)theType );
-      return;
-    }
-  }
-
-  myElementsOnSurfacePtr->SetSurface( TopoDS_Shape(), (SMDSAbs_ElementType)theType );
-  TPythonDump()<<this<<".SetSurface("<<theGeom<<",'"<<theType<<"')";
-}
-
-void BelongToSurface_i::SetShapeName( const char* theName, ElementType theType )
-{
-  delete myShapeName;
-  myShapeName = strdup( theName );
-  myElementsOnSurfacePtr->SetSurface( getShapeByName( myShapeName ), (SMDSAbs_ElementType)theType );
-  TPythonDump()<<this<<".SetShapeName('"<<theName<<"',"<<theType<<")";
-}
-
-char* BelongToSurface_i::GetShapeName()
-{
-  return CORBA::string_dup( myShapeName );
-}
-
-void BelongToSurface_i::SetTolerance( CORBA::Double theToler )
-{
-  myElementsOnSurfacePtr->SetTolerance( theToler );
-  TPythonDump()<<this<<".SetTolerance("<<theToler<<")";
-}
-
-CORBA::Double BelongToSurface_i::GetTolerance()
-{
-  return myElementsOnSurfacePtr->GetTolerance();
-}
-
-/*
-  Class       : BelongToPlane_i
-  Description : Verify whether mesh element lie in pointed Geom planar object
-*/
-
-BelongToPlane_i::BelongToPlane_i()
-: BelongToSurface_i( STANDARD_TYPE( Geom_Plane ) )
-{
-}
-
-void BelongToPlane_i::SetPlane( GEOM::GEOM_Object_ptr theGeom, ElementType theType )
-{
-  BelongToSurface_i::SetSurface( theGeom, theType );
-  TPythonDump()<<this<<".SetPlane("<<theGeom<<","<<theType<<")";
-}
-
-FunctorType BelongToPlane_i::GetFunctorType()
-{
-  return FT_BelongToPlane;
-}
-
-/*
-  Class       : BelongToCylinder_i
-  Description : Verify whether mesh element lie in pointed Geom planar object
-*/
-
-BelongToCylinder_i::BelongToCylinder_i()
-: BelongToSurface_i( STANDARD_TYPE( Geom_CylindricalSurface ) )
-{
-}
-
-void BelongToCylinder_i::SetCylinder( GEOM::GEOM_Object_ptr theGeom, ElementType theType )
-{
-  BelongToSurface_i::SetSurface( theGeom, theType );
-  TPythonDump()<<this<<".SetCylinder("<<theGeom<<","<<theType<<")";
-}
-
-FunctorType BelongToCylinder_i::GetFunctorType()
-{
-  return FT_BelongToCylinder;
-}
-
-/*
-  Class       : LyingOnGeom_i
-  Description : Predicate for selection on geometrical support
-*/
-LyingOnGeom_i::LyingOnGeom_i()
-{
-  myLyingOnGeomPtr.reset( new Controls::LyingOnGeom() );
-  myFunctorPtr = myPredicatePtr = myLyingOnGeomPtr;
-  myShapeName = 0;
-}
-
-LyingOnGeom_i::~LyingOnGeom_i()
-{
-  delete myShapeName;
-}
-
-void LyingOnGeom_i::SetGeom( GEOM::GEOM_Object_ptr theGeom )
-{
-  if ( theGeom->_is_nil() )
-    return;
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  GEOM::GEOM_Gen_var aGEOMGen = SMESH_Gen_i::GetGeomEngine();
-  TopoDS_Shape aLocShape = aSMESHGen->GetShapeReader()->GetShape( aGEOMGen, theGeom );
-  myLyingOnGeomPtr->SetGeom( aLocShape );
-  TPythonDump()<<this<<".SetGeom("<<theGeom<<")";
-}
-
-void LyingOnGeom_i::SetGeom( const TopoDS_Shape& theShape )
-{
-  myLyingOnGeomPtr->SetGeom( theShape );
-}
-
-void LyingOnGeom_i::SetElementType(ElementType theType){
-  myLyingOnGeomPtr->SetType(SMDSAbs_ElementType(theType));
-  TPythonDump()<<this<<".SetElementType("<<theType<<")";
-}
-
-FunctorType LyingOnGeom_i::GetFunctorType()
-{
-  return SMESH::FT_LyingOnGeom;
-}
-
-void LyingOnGeom_i::SetShapeName( const char* theName )
-{
-  delete myShapeName;
-  myShapeName = strdup( theName );
-  myLyingOnGeomPtr->SetGeom( getShapeByName( myShapeName ) );
-  TPythonDump()<<this<<".SetShapeName('"<<theName<<"')";
-}
-
-char* LyingOnGeom_i::GetShapeName()
-{
-  return CORBA::string_dup( myShapeName );
-}
-
-/*
-  Class       : FreeBorders_i
-  Description : Predicate for free borders
-*/
-FreeBorders_i::FreeBorders_i()
-{
-  myPredicatePtr.reset(new Controls::FreeBorders());
-  myFunctorPtr = myPredicatePtr;
-}
-
-FunctorType FreeBorders_i::GetFunctorType()
-{
-  return SMESH::FT_FreeBorders;
-}
-
-/*
-  Class       : FreeEdges_i
-  Description : Predicate for free borders
-*/
-FreeEdges_i::FreeEdges_i()
-: myFreeEdgesPtr( new Controls::FreeEdges() )
-{
-  myFunctorPtr = myPredicatePtr = myFreeEdgesPtr;
-}
-
-SMESH::FreeEdges::Borders* FreeEdges_i::GetBorders()
-{
-  INFOS("FreeEdges_i::GetBorders");
-  SMESH::Controls::FreeEdges::TBorders aBorders;
-  myFreeEdgesPtr->GetBoreders( aBorders );
-  
-  long i = 0, iEnd = aBorders.size();
-
-  SMESH::FreeEdges::Borders_var aResult = new SMESH::FreeEdges::Borders(iEnd);
-
-  SMESH::Controls::FreeEdges::TBorders::const_iterator anIter;
-  for ( anIter = aBorders.begin() ; anIter != aBorders.end(); anIter++, i++ )
-  {
-    const SMESH::Controls::FreeEdges::Border&  aBord = *anIter;
-    SMESH::FreeEdges::Border &aBorder = aResult[ i ];
-    
-    aBorder.myElemId = aBord.myElemId;
-    aBorder.myPnt1 = aBord.myPntId[ 0 ];
-    aBorder.myPnt2 = aBord.myPntId[ 1 ];
-  }
-
-  INFOS("FreeEdges_i::GetBorders~");
-  return aResult._retn();
-}
-
-FunctorType FreeEdges_i::GetFunctorType()
-{
-  return SMESH::FT_FreeEdges;
-}
-
-/*
-  Class       : RangeOfIds_i
-  Description : Predicate for Range of Ids.
-                Range may be specified with two ways.
-                1. Using AddToRange method
-                2. With SetRangeStr method. Parameter of this method is a string
-                   like as "1,2,3,50-60,63,67,70-"
-*/
-
-RangeOfIds_i::RangeOfIds_i()
-{
-  myRangeOfIdsPtr.reset( new Controls::RangeOfIds() );
-  myFunctorPtr = myPredicatePtr = myRangeOfIdsPtr;
-}
-
-void RangeOfIds_i::SetRange( const SMESH::long_array& theIds )
-{
-  CORBA::Long iEnd = theIds.length();
-  for ( CORBA::Long i = 0; i < iEnd; i++ )
-    myRangeOfIdsPtr->AddToRange( theIds[ i ] );
-  TPythonDump()<<this<<".SetRange("<<theIds<<")";
-}
-
-CORBA::Boolean RangeOfIds_i::SetRangeStr( const char* theRange )
-{
-  TPythonDump()<<this<<".SetRangeStr('"<<theRange<<"')";
-  return myRangeOfIdsPtr->SetRangeStr(
-    TCollection_AsciiString( (Standard_CString)theRange ) );
-}
-
-char* RangeOfIds_i::GetRangeStr()
-{
-  TCollection_AsciiString aStr;
-  myRangeOfIdsPtr->GetRangeStr( aStr );
-  return CORBA::string_dup( aStr.ToCString() );
-}
-
-void RangeOfIds_i::SetElementType( ElementType theType )
-{
-  myRangeOfIdsPtr->SetType( SMDSAbs_ElementType( theType ) );
-  TPythonDump()<<this<<".SetElementType("<<theType<<")";
-}
-
-FunctorType RangeOfIds_i::GetFunctorType()
-{
-  return SMESH::FT_RangeOfIds;
-}
-
-/*
-  Class       : Comparator_i
-  Description : Base class for comparators
-*/
-Comparator_i::Comparator_i():
-  myNumericalFunctor( NULL )
-{}
-
-Comparator_i::~Comparator_i()
-{
-  if ( myNumericalFunctor )
-    myNumericalFunctor->Destroy();
-}
-
-void Comparator_i::SetMargin( CORBA::Double theValue )
-{
-  myComparatorPtr->SetMargin( theValue );
-  TPythonDump()<<this<<".SetMargin("<<theValue<<")";
-}
-
-CORBA::Double Comparator_i::GetMargin()
-{
-  return myComparatorPtr->GetMargin();
-}
-
-void Comparator_i::SetNumFunctor( NumericalFunctor_ptr theFunct )
-{
-  if ( myNumericalFunctor )
-    myNumericalFunctor->Destroy();
-
-  myNumericalFunctor = DownCast<NumericalFunctor_i*>(theFunct);
-
-  if ( myNumericalFunctor )
-  {
-    myComparatorPtr->SetNumFunctor( myNumericalFunctor->GetNumericalFunctor() );
-    myNumericalFunctor->Register();
-    TPythonDump()<<this<<".SetNumFunctor("<<myNumericalFunctor<<")";
-  }
-}
-
-Controls::ComparatorPtr Comparator_i::GetComparator()
-{
-  return myComparatorPtr;
-}
-
-NumericalFunctor_i* Comparator_i::GetNumFunctor_i()
-{
-  return myNumericalFunctor;
-}
-
-
-/*
-  Class       : LessThan_i
-  Description : Comparator "<"
-*/
-LessThan_i::LessThan_i()
-{
-  myComparatorPtr.reset( new Controls::LessThan() );
-  myFunctorPtr = myPredicatePtr = myComparatorPtr;
-}
-
-FunctorType LessThan_i::GetFunctorType()
-{
-  return SMESH::FT_LessThan;
-}
-
-
-/*
-  Class       : MoreThan_i
-  Description : Comparator ">"
-*/
-MoreThan_i::MoreThan_i()
-{
-  myComparatorPtr.reset( new Controls::MoreThan() );
-  myFunctorPtr = myPredicatePtr = myComparatorPtr;
-}
-
-FunctorType MoreThan_i::GetFunctorType()
-{
-  return SMESH::FT_MoreThan;
-}
-
-
-/*
-  Class       : EqualTo_i
-  Description : Comparator "="
-*/
-EqualTo_i::EqualTo_i()
-: myEqualToPtr( new Controls::EqualTo() )
-{
-  myFunctorPtr = myPredicatePtr = myComparatorPtr = myEqualToPtr;
-}
-
-void EqualTo_i::SetTolerance( CORBA::Double theToler )
-{
-  myEqualToPtr->SetTolerance( theToler );
-  TPythonDump()<<this<<".SetTolerance("<<theToler<<")";
-}
-
-CORBA::Double EqualTo_i::GetTolerance()
-{
-  return myEqualToPtr->GetTolerance();
-}
-
-FunctorType EqualTo_i::GetFunctorType()
-{
-  return SMESH::FT_EqualTo;
-}
-
-/*
-  Class       : LogicalNOT_i
-  Description : Logical NOT predicate
-*/
-LogicalNOT_i::LogicalNOT_i()
-: myPredicate( NULL ),
-  myLogicalNOTPtr( new Controls::LogicalNOT() )
-{
-  myFunctorPtr = myPredicatePtr = myLogicalNOTPtr;
-}
-
-LogicalNOT_i::~LogicalNOT_i()
-{
-  if ( myPredicate )
-    myPredicate->Destroy();
-}
-
-void LogicalNOT_i::SetPredicate( Predicate_ptr thePredicate )
-{
-  if ( myPredicate )
-    myPredicate->Destroy();
-
-  myPredicate = SMESH::GetPredicate(thePredicate);
-
-  if ( myPredicate ){
-    myLogicalNOTPtr->SetPredicate(myPredicate->GetPredicate());
-    myPredicate->Register();
-    TPythonDump()<<this<<".SetPredicate("<<myPredicate<<")";
-  }
-}
-
-FunctorType LogicalNOT_i::GetFunctorType()
-{
-  return SMESH::FT_LogicalNOT;
-}
-
-Predicate_i* LogicalNOT_i::GetPredicate_i()
-{
-  return myPredicate;
-}
-
-
-/*
-  Class       : LogicalBinary_i
-  Description : Base class for binary logical predicate
-*/
-LogicalBinary_i::LogicalBinary_i()
-: myPredicate1( NULL ),
-  myPredicate2( NULL )
-{}
-
-LogicalBinary_i::~LogicalBinary_i()
-{
-  if ( myPredicate1 )
-    myPredicate1->Destroy();
-
-  if ( myPredicate2 )
-    myPredicate2->Destroy();
-}
-
-void LogicalBinary_i::SetMesh( SMESH_Mesh_ptr theMesh )
-{
-  if ( myPredicate1 )
-    myPredicate1->SetMesh( theMesh );
-
-  if ( myPredicate2 )
-    myPredicate2->SetMesh( theMesh );
-}
-
-void LogicalBinary_i::SetPredicate1( Predicate_ptr thePredicate )
-{
-  if ( myPredicate1 )
-    myPredicate1->Destroy();
-
-  myPredicate1 = SMESH::GetPredicate(thePredicate);
-
-  if ( myPredicate1 ){
-    myLogicalBinaryPtr->SetPredicate1(myPredicate1->GetPredicate());
-    myPredicate1->Register();
-    TPythonDump()<<this<<".SetPredicate1("<<myPredicate1<<")";
-  }
-}
-
-void LogicalBinary_i::SetPredicate2( Predicate_ptr thePredicate )
-{
-  if ( myPredicate2 )
-    myPredicate2->Destroy();
-
-  myPredicate2 = SMESH::GetPredicate(thePredicate);
-
-  if ( myPredicate2 ){
-    myLogicalBinaryPtr->SetPredicate2(myPredicate2->GetPredicate());
-    myPredicate2->Register();
-    TPythonDump()<<this<<".SetPredicate2("<<myPredicate2<<")";
-  }
-}
-
-Controls::LogicalBinaryPtr LogicalBinary_i::GetLogicalBinary()
-{
-  return myLogicalBinaryPtr;
-}
-
-Predicate_i* LogicalBinary_i::GetPredicate1_i()
-{
-  return myPredicate1;
-}
-Predicate_i* LogicalBinary_i::GetPredicate2_i()
-{
-  return myPredicate2;
-}
-
-
-/*
-  Class       : LogicalAND_i
-  Description : Logical AND
-*/
-LogicalAND_i::LogicalAND_i()
-{
-  myLogicalBinaryPtr.reset( new Controls::LogicalAND() );
-  myFunctorPtr = myPredicatePtr = myLogicalBinaryPtr;
-}
-
-FunctorType LogicalAND_i::GetFunctorType()
-{
-  return SMESH::FT_LogicalAND;
-}
-
-
-/*
-  Class       : LogicalOR_i
-  Description : Logical OR
-*/
-LogicalOR_i::LogicalOR_i()
-{
-  myLogicalBinaryPtr.reset( new Controls::LogicalOR() );
-  myFunctorPtr = myPredicatePtr = myLogicalBinaryPtr;
-}
-
-FunctorType LogicalOR_i::GetFunctorType()
-{
-  return SMESH::FT_LogicalOR;
-}
-
-
-/*
-                            FILTER MANAGER
-*/
-
-FilterManager_i::FilterManager_i()
-: SALOME::GenericObj_i( SMESH_Gen_i::GetPOA() )
-{
-  PortableServer::ObjectId_var anObjectId = 
-    SMESH_Gen_i::GetPOA()->activate_object( this );
-}
-
-
-FilterManager_i::~FilterManager_i()
-{
-  TPythonDump()<<this<<".Destroy()";
-}
-
-
-MinimumAngle_ptr FilterManager_i::CreateMinimumAngle()
-{
-  SMESH::MinimumAngle_i* aServant = new SMESH::MinimumAngle_i();
-  SMESH::MinimumAngle_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateMinimumAngle()";
-  return anObj._retn();
-}
-
-
-AspectRatio_ptr FilterManager_i::CreateAspectRatio()
-{
-  SMESH::AspectRatio_i* aServant = new SMESH::AspectRatio_i();
-  SMESH::AspectRatio_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateAspectRatio()";
-  return anObj._retn();
-}
-
-
-AspectRatio3D_ptr FilterManager_i::CreateAspectRatio3D()
-{
-  SMESH::AspectRatio3D_i* aServant = new SMESH::AspectRatio3D_i();
-  SMESH::AspectRatio3D_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateAspectRatio3D()";
-  return anObj._retn();
-}
-
-
-Warping_ptr FilterManager_i::CreateWarping()
-{
-  SMESH::Warping_i* aServant = new SMESH::Warping_i();
-  SMESH::Warping_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateWarping()";
-  return anObj._retn();
-}
-
-
-Taper_ptr FilterManager_i::CreateTaper()
-{
-  SMESH::Taper_i* aServant = new SMESH::Taper_i();
-  SMESH::Taper_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateTaper()";
-  return anObj._retn();
-}
-
-
-Skew_ptr FilterManager_i::CreateSkew()
-{
-  SMESH::Skew_i* aServant = new SMESH::Skew_i();
-  SMESH::Skew_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateSkew()";
-  return anObj._retn();
-}
-
-
-Area_ptr FilterManager_i::CreateArea()
-{
-  SMESH::Area_i* aServant = new SMESH::Area_i();
-  SMESH::Area_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateArea()";
-  return anObj._retn();
-}
-
-
-Length_ptr FilterManager_i::CreateLength()
-{
-  SMESH::Length_i* aServant = new SMESH::Length_i();
-  SMESH::Length_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateLength()";
-  return anObj._retn();
-}
-
-Length2D_ptr FilterManager_i::CreateLength2D()
-{
-  SMESH::Length2D_i* aServant = new SMESH::Length2D_i();
-  SMESH::Length2D_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateLength2D()";
-  return anObj._retn();
-}
-
-MultiConnection_ptr FilterManager_i::CreateMultiConnection()
-{
-  SMESH::MultiConnection_i* aServant = new SMESH::MultiConnection_i();
-  SMESH::MultiConnection_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateMultiConnection()";
-  return anObj._retn();
-}
-
-MultiConnection2D_ptr FilterManager_i::CreateMultiConnection2D()
-{
-  SMESH::MultiConnection2D_i* aServant = new SMESH::MultiConnection2D_i();
-  SMESH::MultiConnection2D_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateMultiConnection2D()";
-  return anObj._retn();
-}
-
-BelongToGeom_ptr FilterManager_i::CreateBelongToGeom()
-{
-  SMESH::BelongToGeom_i* aServant = new SMESH::BelongToGeom_i();
-  SMESH::BelongToGeom_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateBelongToGeom()";
-  return anObj._retn();
-}
-
-BelongToPlane_ptr FilterManager_i::CreateBelongToPlane()
-{
-  SMESH::BelongToPlane_i* aServant = new SMESH::BelongToPlane_i();
-  SMESH::BelongToPlane_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateBelongToPlane()";
-  return anObj._retn();
-}
-
-BelongToCylinder_ptr FilterManager_i::CreateBelongToCylinder()
-{
-  SMESH::BelongToCylinder_i* aServant = new SMESH::BelongToCylinder_i();
-  SMESH::BelongToCylinder_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateBelongToCylinder()";
-  return anObj._retn();
-}
-
-LyingOnGeom_ptr FilterManager_i::CreateLyingOnGeom()
-{
-  SMESH::LyingOnGeom_i* aServant = new SMESH::LyingOnGeom_i();
-  SMESH::LyingOnGeom_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateLyingOnGeom()";
-  return anObj._retn();
-}
-
-FreeBorders_ptr FilterManager_i::CreateFreeBorders()
-{
-  SMESH::FreeBorders_i* aServant = new SMESH::FreeBorders_i();
-  SMESH::FreeBorders_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateFreeBorders()";
-  return anObj._retn();
-}
-
-FreeEdges_ptr FilterManager_i::CreateFreeEdges()
-{
-  SMESH::FreeEdges_i* aServant = new SMESH::FreeEdges_i();
-  SMESH::FreeEdges_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateFreeEdges()";
-  return anObj._retn();
-}
-
-RangeOfIds_ptr FilterManager_i::CreateRangeOfIds()
-{
-  SMESH::RangeOfIds_i* aServant = new SMESH::RangeOfIds_i();
-  SMESH::RangeOfIds_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateRangeOfIds()";
-  return anObj._retn();
-}
-
-BadOrientedVolume_ptr FilterManager_i::CreateBadOrientedVolume()
-{
-  SMESH::BadOrientedVolume_i* aServant = new SMESH::BadOrientedVolume_i();
-  SMESH::BadOrientedVolume_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateBadOrientedVolume()";
-  return anObj._retn();
-}
-
-LessThan_ptr FilterManager_i::CreateLessThan()
-{
-  SMESH::LessThan_i* aServant = new SMESH::LessThan_i();
-  SMESH::LessThan_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateLessThan()";
-  return anObj._retn();
-}
-
-
-MoreThan_ptr FilterManager_i::CreateMoreThan()
-{
-  SMESH::MoreThan_i* aServant = new SMESH::MoreThan_i();
-  SMESH::MoreThan_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateMoreThan()";
-  return anObj._retn();
-}
-
-EqualTo_ptr FilterManager_i::CreateEqualTo()
-{
-  SMESH::EqualTo_i* aServant = new SMESH::EqualTo_i();
-  SMESH::EqualTo_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateEqualTo()";
-  return anObj._retn();
-}
-
-
-LogicalNOT_ptr FilterManager_i::CreateLogicalNOT()
-{
-  SMESH::LogicalNOT_i* aServant = new SMESH::LogicalNOT_i();
-  SMESH::LogicalNOT_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateLogicalNOT()";
-  return anObj._retn();
-}
-
-
-LogicalAND_ptr FilterManager_i::CreateLogicalAND()
-{
-  SMESH::LogicalAND_i* aServant = new SMESH::LogicalAND_i();
-  SMESH::LogicalAND_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateLogicalAND()";
-  return anObj._retn();
-}
-
-
-LogicalOR_ptr FilterManager_i::CreateLogicalOR()
-{
-  SMESH::LogicalOR_i* aServant = new SMESH::LogicalOR_i();
-  SMESH::LogicalOR_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateLogicalOR()";
-  return anObj._retn();
-}
-
-Filter_ptr FilterManager_i::CreateFilter()
-{
-  SMESH::Filter_i* aServant = new SMESH::Filter_i();
-  SMESH::Filter_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateFilter()";
-  return anObj._retn();
-}
-
-FilterLibrary_ptr FilterManager_i::LoadLibrary( const char* aFileName )
-{
-  SMESH::FilterLibrary_i* aServant = new SMESH::FilterLibrary_i( aFileName );
-  SMESH::FilterLibrary_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".LoadLibrary("<<aFileName<<")";
-  return anObj._retn();
-}
-
-FilterLibrary_ptr FilterManager_i::CreateLibrary()
-{
-  SMESH::FilterLibrary_i* aServant = new SMESH::FilterLibrary_i();
-  SMESH::FilterLibrary_var anObj = aServant->_this();
-  TPythonDump()<<aServant<<" = "<<this<<".CreateLibrary()";
-  return anObj._retn();
-}
-
-CORBA::Boolean FilterManager_i::DeleteLibrary( const char* aFileName )
-{
-  TPythonDump()<<this<<".DeleteLibrary("<<aFileName<<")";
-  return remove( aFileName ) ? false : true;
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::CreateFilterManager
- *
- *  Create filter manager
- */
-//=============================================================================
-
-SMESH::FilterManager_ptr SMESH_Gen_i::CreateFilterManager()
-{
-  SMESH::FilterManager_i* aFilter = new SMESH::FilterManager_i();
-  SMESH::FilterManager_var anObj = aFilter->_this();
-  return anObj._retn();
-}
-
-
-/*
-                              FILTER
-*/
-
-//=======================================================================
-// name    : Filter_i::Filter_i
-// Purpose : Constructor
-//=======================================================================
-Filter_i::Filter_i()
-: myPredicate( NULL )
-{}
-
-//=======================================================================
-// name    : Filter_i::~Filter_i
-// Purpose : Destructor
-//=======================================================================
-Filter_i::~Filter_i()
-{
-  if ( myPredicate )
-    myPredicate->Destroy();
-
-  if(!CORBA::is_nil(myMesh))
-    myMesh->Destroy();
-
-  TPythonDump()<<this<<".Destroy()";
-}
-
-//=======================================================================
-// name    : Filter_i::SetPredicate
-// Purpose : Set predicate
-//=======================================================================
-void Filter_i::SetPredicate( Predicate_ptr thePredicate )
-{
-  if ( myPredicate )
-    myPredicate->Destroy();
-
-  myPredicate = SMESH::GetPredicate(thePredicate);
-
-  if ( myPredicate )
-  {
-    myFilter.SetPredicate( myPredicate->GetPredicate() );
-    myPredicate->Register();
-    TPythonDump()<<this<<".SetPredicate("<<myPredicate<<")";
-  }
-}
-
-//=======================================================================
-// name    : Filter_i::GetElementType
-// Purpose : Get entity type
-//=======================================================================
-SMESH::ElementType Filter_i::GetElementType()
-{
-  return myPredicate != 0 ? myPredicate->GetElementType() : SMESH::ALL;
-}
-
-//=======================================================================
-// name    : Filter_i::SetMesh
-// Purpose : Set mesh
-//=======================================================================
-void 
-Filter_i::
-SetMesh( SMESH_Mesh_ptr theMesh )
-{
-  if(!CORBA::is_nil(theMesh))
-    theMesh->Register();
-
-  if(!CORBA::is_nil(myMesh))
-    myMesh->Destroy();
-
-  myMesh = theMesh;
-  TPythonDump()<<this<<".SetMesh("<<theMesh<<")";
-}
-
-SMESH::long_array* 
-Filter_i::
-GetIDs()
-{
-  return GetElementsId(myMesh);
-}
-
-//=======================================================================
-// name    : Filter_i::GetElementsId
-// Purpose : Get ids of entities
-//=======================================================================
-void
-Filter_i::
-GetElementsId( Predicate_i* thePredicate,
-              const SMDS_Mesh* theMesh,
-              Controls::Filter::TIdSequence& theSequence )
-{
-  Controls::Filter::GetElementsId(theMesh,thePredicate->GetPredicate(),theSequence);
-}
-
-void
-Filter_i::
-GetElementsId( Predicate_i* thePredicate,
-              SMESH_Mesh_ptr theMesh,
-              Controls::Filter::TIdSequence& theSequence )
-{
-  if(const SMDS_Mesh* aMesh = MeshPtr2SMDSMesh(theMesh))
-    Controls::Filter::GetElementsId(aMesh,thePredicate->GetPredicate(),theSequence);
-}
-
-SMESH::long_array* 
-Filter_i::
-GetElementsId( SMESH_Mesh_ptr theMesh )
-{
-  SMESH::long_array_var anArray = new SMESH::long_array;
-  if(!CORBA::is_nil(theMesh)){
-    Controls::Filter::TIdSequence aSequence;
-    GetElementsId(myPredicate,theMesh,aSequence);
-    long i = 0, iEnd = aSequence.size();
-    anArray->length( iEnd );
-    for ( ; i < iEnd; i++ )
-      anArray[ i ] = aSequence[i];
-  }
-  return anArray._retn();
-}
-
-//=======================================================================
-// name    : getCriteria
-// Purpose : Retrieve criterions from predicate
-//=======================================================================
-static inline bool getCriteria( Predicate_i*                thePred,
-                                SMESH::Filter::Criteria_out theCriteria )
-{
-  int aFType = thePred->GetFunctorType();
-
-  switch ( aFType )
-  {
-  case FT_FreeBorders:
-  case FT_FreeEdges:
-    {
-      CORBA::ULong i = theCriteria->length();
-      theCriteria->length( i + 1 );
-
-      theCriteria[ i ] = createCriterion();
-
-      theCriteria[ i ].Type = aFType;
-      theCriteria[ i ].TypeOfElement = thePred->GetElementType();
-      return true;
-    }
-  case FT_BelongToGeom:
-    {
-      BelongToGeom_i* aPred = dynamic_cast<BelongToGeom_i*>( thePred );
-
-      CORBA::ULong i = theCriteria->length();
-      theCriteria->length( i + 1 );
-
-      theCriteria[ i ] = createCriterion();
-
-      theCriteria[ i ].Type          = FT_BelongToGeom;
-      theCriteria[ i ].ThresholdStr  = aPred->GetShapeName();
-      theCriteria[ i ].TypeOfElement = aPred->GetElementType();
-
-      return true;
-    }
-  case FT_BelongToPlane:
-  case FT_BelongToCylinder:
-    {
-      BelongToSurface_i* aPred = dynamic_cast<BelongToSurface_i*>( thePred );
-
-      CORBA::ULong i = theCriteria->length();
-      theCriteria->length( i + 1 );
-
-      theCriteria[ i ] = createCriterion();
-
-      theCriteria[ i ].Type          = aFType;
-      theCriteria[ i ].ThresholdStr  = aPred->GetShapeName();
-      theCriteria[ i ].TypeOfElement = aPred->GetElementType();
-      theCriteria[ i ].Tolerance     = aPred->GetTolerance();
-
-      return true;
-    }
-   case FT_LyingOnGeom:
-    {
-      LyingOnGeom_i* aPred = dynamic_cast<LyingOnGeom_i*>( thePred );
-
-      CORBA::ULong i = theCriteria->length();
-      theCriteria->length( i + 1 );
-
-      theCriteria[ i ] = createCriterion();
-
-      theCriteria[ i ].Type          = FT_LyingOnGeom;
-      theCriteria[ i ].ThresholdStr  = aPred->GetShapeName();
-      theCriteria[ i ].TypeOfElement = aPred->GetElementType();
-
-      return true;
-    }
-  case FT_RangeOfIds:
-    {
-      RangeOfIds_i* aPred = dynamic_cast<RangeOfIds_i*>( thePred );
-
-      CORBA::ULong i = theCriteria->length();
-      theCriteria->length( i + 1 );
-
-      theCriteria[ i ] = createCriterion();
-
-      theCriteria[ i ].Type          = FT_RangeOfIds;
-      theCriteria[ i ].ThresholdStr  = aPred->GetRangeStr();
-      theCriteria[ i ].TypeOfElement = aPred->GetElementType();
-
-      return true;
-    }
-  case FT_BadOrientedVolume:
-    {
-      BadOrientedVolume_i* aPred = dynamic_cast<BadOrientedVolume_i*>( thePred );
-
-      CORBA::ULong i = theCriteria->length();
-      theCriteria->length( i + 1 );
-
-      theCriteria[ i ] = createCriterion();
-
-      theCriteria[ i ].Type          = FT_BadOrientedVolume;
-      theCriteria[ i ].TypeOfElement = aPred->GetElementType();
-
-      return true;
-    }
-  case FT_LessThan:
-  case FT_MoreThan:
-  case FT_EqualTo:
-    {
-      Comparator_i* aCompar = dynamic_cast<Comparator_i*>( thePred );
-
-      CORBA::ULong i = theCriteria->length();
-      theCriteria->length( i + 1 );
-
-      theCriteria[ i ] = createCriterion();
-
-      theCriteria[ i ].Type      = aCompar->GetNumFunctor_i()->GetFunctorType();
-      theCriteria[ i ].Compare   = aFType;
-      theCriteria[ i ].Threshold = aCompar->GetMargin();
-      theCriteria[ i ].TypeOfElement = aCompar->GetElementType();
-
-      if ( aFType == FT_EqualTo )
-      {
-        EqualTo_i* aCompar = dynamic_cast<EqualTo_i*>( thePred );
-        theCriteria[ i ].Tolerance = aCompar->GetTolerance();
-      }
-    }
-    return true;
-
-  case FT_LogicalNOT:
-    {
-      Predicate_i* aPred = ( dynamic_cast<LogicalNOT_i*>( thePred ) )->GetPredicate_i();
-      getCriteria( aPred, theCriteria );
-      theCriteria[ theCriteria->length() - 1 ].UnaryOp = FT_LogicalNOT;
-    }
-    return true;
-
-  case FT_LogicalAND:
-  case FT_LogicalOR:
-    {
-      Predicate_i* aPred1 = ( dynamic_cast<LogicalBinary_i*>( thePred ) )->GetPredicate1_i();
-      Predicate_i* aPred2 = ( dynamic_cast<LogicalBinary_i*>( thePred ) )->GetPredicate2_i();
-      if ( !getCriteria( aPred1, theCriteria ) )
-        return false;
-      theCriteria[ theCriteria->length() - 1 ].BinaryOp = aFType;
-      return getCriteria( aPred2, theCriteria );
-    }
-
-  case FT_Undefined:
-    return false;
-  default:
-    return false;
-  }
-}
-
-//=======================================================================
-// name    : Filter_i::GetCriteria
-// Purpose : Retrieve criterions from predicate
-//=======================================================================
-CORBA::Boolean Filter_i::GetCriteria( SMESH::Filter::Criteria_out theCriteria )
-{
-  theCriteria = new SMESH::Filter::Criteria;
-  return myPredicate != 0 ? getCriteria( myPredicate, theCriteria ) : true;
-}
-
-//=======================================================================
-// name    : Filter_i::SetCriteria
-// Purpose : Create new predicate and set criterions in it
-//=======================================================================
-CORBA::Boolean Filter_i::SetCriteria( const SMESH::Filter::Criteria& theCriteria )
-{
-  if ( myPredicate != 0 )
-    myPredicate->Destroy();
-
-  SMESH::FilterManager_i* aFilter = new SMESH::FilterManager_i();
-  FilterManager_ptr aFilterMgr = aFilter->_this();
-  
-  // CREATE two lists ( PREDICATES  and LOG OP )
-
-  // Criterion
-  TPythonDump()<<"aCriteria = []";
-  std::list<SMESH::Predicate_ptr> aPredicates;
-  std::list<int>                  aBinaries;
-  for ( int i = 0, n = theCriteria.length(); i < n; i++ )
-  {
-    int         aCriterion    = theCriteria[ i ].Type;
-    int         aCompare      = theCriteria[ i ].Compare;
-    double      aThreshold    = theCriteria[ i ].Threshold;
-    int         aUnary        = theCriteria[ i ].UnaryOp;
-    int         aBinary       = theCriteria[ i ].BinaryOp;
-    double      aTolerance    = theCriteria[ i ].Tolerance;
-    const char* aThresholdStr = theCriteria[ i ].ThresholdStr;
-    ElementType aTypeOfElem   = theCriteria[ i ].TypeOfElement;
-    long        aPrecision    = theCriteria[ i ].Precision;
-
-    TPythonDump()<<"aCriteria.append(SMESH.Filter.Criterion("<<
-      aCriterion<<","<<aCompare<<","<<aThreshold<<",'"<<aThresholdStr<<"',"<<
-      aUnary<<","<<aBinary<<","<<aTolerance<<","<<aTypeOfElem<<","<<aPrecision<<"))";
-    
-    SMESH::Predicate_ptr aPredicate = SMESH::Predicate::_nil();
-    SMESH::NumericalFunctor_ptr aFunctor = SMESH::NumericalFunctor::_nil();
-
-    switch ( aCriterion )
-    {
-      // Functors
-      
-      case SMESH::FT_MultiConnection:
-        aFunctor = aFilterMgr->CreateMultiConnection();
-        break;
-      case SMESH::FT_MultiConnection2D:
-       aFunctor = aFilterMgr->CreateMultiConnection2D();
-       break;
-      case SMESH::FT_Length:
-        aFunctor = aFilterMgr->CreateLength();
-        break;
-      case SMESH::FT_Length2D:
-        aFunctor = aFilterMgr->CreateLength2D();
-        break;
-      case SMESH::FT_AspectRatio:
-        aFunctor = aFilterMgr->CreateAspectRatio();
-        break;
-      case SMESH::FT_AspectRatio3D:
-        aFunctor = aFilterMgr->CreateAspectRatio3D();
-        break;
-      case SMESH::FT_Warping:
-        aFunctor = aFilterMgr->CreateWarping();
-        break;
-      case SMESH::FT_MinimumAngle:
-        aFunctor = aFilterMgr->CreateMinimumAngle();
-        break;
-      case SMESH::FT_Taper:
-        aFunctor = aFilterMgr->CreateTaper();
-        break;
-      case SMESH::FT_Skew:
-        aFunctor = aFilterMgr->CreateSkew();
-        break;
-      case SMESH::FT_Area:
-        aFunctor = aFilterMgr->CreateArea();
-        break;
-
-      // Predicates
-
-      case SMESH::FT_FreeBorders:
-        aPredicate = aFilterMgr->CreateFreeBorders();
-        break;
-      case SMESH::FT_FreeEdges:
-        aPredicate = aFilterMgr->CreateFreeEdges();
-        break;
-      case SMESH::FT_BelongToGeom:
-        {
-          SMESH::BelongToGeom_ptr tmpPred = aFilterMgr->CreateBelongToGeom();
-          tmpPred->SetElementType( aTypeOfElem );
-          tmpPred->SetShapeName( aThresholdStr );
-          aPredicate = tmpPred;
-        }
-        break;
-      case SMESH::FT_BelongToPlane:
-      case SMESH::FT_BelongToCylinder:
-        {
-          SMESH::BelongToSurface_ptr tmpPred;
-          if ( aCriterion == SMESH::FT_BelongToPlane )
-            tmpPred = aFilterMgr->CreateBelongToPlane();
-          else
-            tmpPred = aFilterMgr->CreateBelongToCylinder();
-          tmpPred->SetShapeName( aThresholdStr, aTypeOfElem );
-          tmpPred->SetTolerance( aTolerance );
-          aPredicate = tmpPred;
-        }
-        break;
-      case SMESH::FT_LyingOnGeom:
-        {
-          SMESH::LyingOnGeom_ptr tmpPred = aFilterMgr->CreateLyingOnGeom();
-          tmpPred->SetElementType( aTypeOfElem );
-          tmpPred->SetShapeName( aThresholdStr );
-          aPredicate = tmpPred;
-        }
-        break; 
-      case SMESH::FT_RangeOfIds:
-        {
-          SMESH::RangeOfIds_ptr tmpPred = aFilterMgr->CreateRangeOfIds();
-          tmpPred->SetRangeStr( aThresholdStr );
-          tmpPred->SetElementType( aTypeOfElem );
-          aPredicate = tmpPred;
-        }
-        break;
-      case SMESH::FT_BadOrientedVolume:
-        {
-          aPredicate = aFilterMgr->CreateBadOrientedVolume();
-        }
-        break;
-              
-      default:
-        continue;
-    }
-
-    // Comparator
-    if ( !aFunctor->_is_nil() && aPredicate->_is_nil() )
-    {
-      SMESH::Comparator_ptr aComparator = SMESH::Comparator::_nil();
-
-      if ( aCompare == SMESH::FT_LessThan )
-        aComparator = aFilterMgr->CreateLessThan();
-      else if ( aCompare == SMESH::FT_MoreThan )
-        aComparator = aFilterMgr->CreateMoreThan();
-      else if ( aCompare == SMESH::FT_EqualTo )
-        aComparator = aFilterMgr->CreateEqualTo();
-      else
-        continue;
-
-      aComparator->SetNumFunctor( aFunctor );
-      aComparator->SetMargin( aThreshold );
-
-      if ( aCompare == FT_EqualTo )
-      {
-        SMESH::EqualTo_var anEqualTo = SMESH::EqualTo::_narrow( aComparator );
-        anEqualTo->SetTolerance( aTolerance );
-      }
-
-      aPredicate = aComparator;
-
-      aFunctor->SetPrecision( aPrecision );
-    }
-
-    // Logical not
-    if ( aUnary == FT_LogicalNOT )
-    {
-      SMESH::LogicalNOT_ptr aNotPred = aFilterMgr->CreateLogicalNOT();
-      aNotPred->SetPredicate( aPredicate );
-      aPredicate = aNotPred;
-    }
-
-    // logical op
-    aPredicates.push_back( aPredicate );
-    aBinaries.push_back( aBinary );
-
-  } // end of for
-  TPythonDump()<<this<<".SetCriteria(aCriteria)";
-
-  // CREATE ONE PREDICATE FROM PREVIOUSLY CREATED MAP
-
-  // combine all "AND" operations
-
-  std::list<SMESH::Predicate_ptr> aResList;
-
-  std::list<SMESH::Predicate_ptr>::iterator aPredIter;
-  std::list<int>::iterator                  aBinaryIter;
-
-  SMESH::Predicate_ptr aPrevPredicate = SMESH::Predicate::_nil();
-  int aPrevBinary = SMESH::FT_Undefined;
-
-  for ( aPredIter = aPredicates.begin(), aBinaryIter = aBinaries.begin();
-        aPredIter != aPredicates.end() && aBinaryIter != aBinaries.end();
-        ++aPredIter, ++aBinaryIter )
-  {
-    int aCurrBinary = *aBinaryIter;
-
-    SMESH::Predicate_ptr aCurrPred = SMESH::Predicate::_nil();
-
-    if ( aPrevBinary == SMESH::FT_LogicalAND )
-    {
-
-      SMESH::LogicalBinary_ptr aBinaryPred = aFilterMgr->CreateLogicalAND();
-      aBinaryPred->SetPredicate1( aPrevPredicate );
-      aBinaryPred->SetPredicate2( *aPredIter );
-      aCurrPred = aBinaryPred;
-    }
-    else
-      aCurrPred = *aPredIter;
-
-    if ( aCurrBinary != SMESH::FT_LogicalAND )
-      aResList.push_back( aCurrPred );
-
-    aPrevPredicate = aCurrPred;
-    aPrevBinary = aCurrBinary;
-  }
-
-  // combine all "OR" operations
-
-  SMESH::Predicate_ptr aResPredicate = SMESH::Predicate::_nil();
-
-  if ( aResList.size() == 1 )
-    aResPredicate = *aResList.begin();
-  else if ( aResList.size() > 1 )
-  {
-    std::list<SMESH::Predicate_ptr>::iterator anIter = aResList.begin();
-    aResPredicate = *anIter;
-    anIter++;
-    for ( ; anIter != aResList.end(); ++anIter )
-    {
-      SMESH::LogicalBinary_ptr aBinaryPred = aFilterMgr->CreateLogicalOR();
-      aBinaryPred->SetPredicate1( aResPredicate );
-      aBinaryPred->SetPredicate2( *anIter );
-      aResPredicate = aBinaryPred;
-    }
-  }
-
-  SetPredicate( aResPredicate );
-
-  return !aResPredicate->_is_nil();
-}
-
-//=======================================================================
-// name    : Filter_i::GetPredicate_i
-// Purpose : Get implementation of predicate
-//=======================================================================
-Predicate_i* Filter_i::GetPredicate_i()
-{
-  return myPredicate;
-}
-
-//=======================================================================
-// name    : Filter_i::GetPredicate
-// Purpose : Get predicate
-//=======================================================================
-Predicate_ptr Filter_i::GetPredicate()
-{
-  if ( myPredicate == 0 )
-    return SMESH::Predicate::_nil();
-  else
-  {
-    SMESH::Predicate_var anObj = myPredicate->_this();
-    return anObj._retn();
-  }
-}
-
-/*
-                            FILTER LIBRARY
-*/
-
-#define ATTR_TYPE          "type"
-#define ATTR_COMPARE       "compare"
-#define ATTR_THRESHOLD     "threshold"
-#define ATTR_UNARY         "unary"
-#define ATTR_BINARY        "binary"
-#define ATTR_THRESHOLD_STR "threshold_str"
-#define ATTR_TOLERANCE     "tolerance"
-#define ATTR_ELEMENT_TYPE  "ElementType"
-
-//=======================================================================
-// name    : toString
-// Purpose : Convert bool to LDOMString
-//=======================================================================
-static inline LDOMString toString( const bool val )
-{
-  return val ? "logical not" : "";
-}
-
-//=======================================================================
-// name    : toBool
-// Purpose : Convert LDOMString to bool
-//=======================================================================
-static inline bool toBool( const LDOMString& theStr )
-{
-  return theStr.equals( "logical not" );
-}
-
-//=======================================================================
-// name    : toString
-// Purpose : Convert double to LDOMString
-//=======================================================================
-static inline LDOMString toString( const double val )
-{
-  char a[ 255 ];
-  sprintf( a, "%e", val );
-  return LDOMString( a );
-}
-
-//=======================================================================
-// name    : toDouble
-// Purpose : Convert LDOMString to double
-//=======================================================================
-static inline double toDouble( const LDOMString& theStr )
-{
-  return atof( theStr.GetString() );
-}
-
-//=======================================================================
-// name    : toString
-// Purpose : Convert functor type to LDOMString
-//=======================================================================
-static inline LDOMString toString( const long theType )
-{
-  switch ( theType )
-  {
-    case FT_AspectRatio     : return "Aspect ratio";
-    case FT_Warping         : return "Warping";
-    case FT_MinimumAngle    : return "Minimum angle";
-    case FT_Taper           : return "Taper";
-    case FT_Skew            : return "Skew";
-    case FT_Area            : return "Area";
-    case FT_BelongToGeom    : return "Belong to Geom";
-    case FT_BelongToPlane   : return "Belong to Plane";
-    case FT_BelongToCylinder: return "Belong to Cylinder";
-    case FT_LyingOnGeom     : return "Lying on Geom";
-    case FT_BadOrientedVolume: return "Bad Oriented Volume";
-    case FT_RangeOfIds      : return "Range of IDs";
-    case FT_FreeBorders     : return "Free borders";
-    case FT_FreeEdges       : return "Free edges";
-    case FT_MultiConnection : return "Borders at multi-connections";
-    case FT_MultiConnection2D: return "Borders at multi-connections 2D";
-    case FT_Length          : return "Length";
-    case FT_Length2D        : return "Length2D";
-    case FT_LessThan        : return "Less than";
-    case FT_MoreThan        : return "More than";
-    case FT_EqualTo         : return "Equal to";
-    case FT_LogicalNOT      : return "Not";
-    case FT_LogicalAND      : return "And";
-    case FT_LogicalOR       : return "Or";
-    case FT_Undefined       : return "";
-    default                 : return "";
-  }
-}
-
-//=======================================================================
-// name    : toFunctorType
-// Purpose : Convert LDOMString to functor type
-//=======================================================================
-static inline SMESH::FunctorType toFunctorType( const LDOMString& theStr )
-{
-  if      ( theStr.equals( "Aspect ratio"                 ) ) return FT_AspectRatio;
-  else if ( theStr.equals( "Warping"                      ) ) return FT_Warping;
-  else if ( theStr.equals( "Minimum angle"                ) ) return FT_MinimumAngle;
-  else if ( theStr.equals( "Taper"                        ) ) return FT_Taper;
-  else if ( theStr.equals( "Skew"                         ) ) return FT_Skew;
-  else if ( theStr.equals( "Area"                         ) ) return FT_Area;
-  else if ( theStr.equals( "Belong to Geom"               ) ) return FT_BelongToGeom;
-  else if ( theStr.equals( "Belong to Plane"              ) ) return FT_BelongToPlane;
-  else if ( theStr.equals( "Belong to Cylinder"           ) ) return FT_BelongToCylinder;
-  else if ( theStr.equals( "Lying on Geom"                ) ) return FT_LyingOnGeom;
-  else if ( theStr.equals( "Free borders"                 ) ) return FT_FreeBorders;
-  else if ( theStr.equals( "Free edges"                   ) ) return FT_FreeEdges;
-  else if ( theStr.equals( "Borders at multi-connections" ) ) return FT_MultiConnection;
-  //  else if ( theStr.equals( "Borders at multi-connections 2D" ) ) return FT_MultiConnection2D;
-  else if ( theStr.equals( "Length"                       ) ) return FT_Length;
-  //  else if ( theStr.equals( "Length2D"                     ) ) return FT_Length2D;
-  else if ( theStr.equals( "Range of IDs"                 ) ) return FT_RangeOfIds;
-  else if ( theStr.equals( "Bad Oriented Volume"          ) ) return FT_BadOrientedVolume;
-  else if ( theStr.equals( "Less than"                    ) ) return FT_LessThan;
-  else if ( theStr.equals( "More than"                    ) ) return FT_MoreThan;
-  else if ( theStr.equals( "Equal to"                     ) ) return FT_EqualTo;
-  else if ( theStr.equals( "Not"                          ) ) return FT_LogicalNOT;
-  else if ( theStr.equals( "And"                          ) ) return FT_LogicalAND;
-  else if ( theStr.equals( "Or"                           ) ) return FT_LogicalOR;
-  else if ( theStr.equals( ""                             ) ) return FT_Undefined;
-  else  return FT_Undefined;
-}
-
-//=======================================================================
-// name    : toFunctorType
-// Purpose : Convert LDOMString to value of ElementType enumeration
-//=======================================================================
-static inline SMESH::ElementType toElementType( const LDOMString& theStr )
-{
-  if      ( theStr.equals( "NODE"   ) ) return SMESH::NODE;
-  else if ( theStr.equals( "EDGE"   ) ) return SMESH::EDGE;
-  else if ( theStr.equals( "FACE"   ) ) return SMESH::FACE;
-  else if ( theStr.equals( "VOLUME" ) ) return SMESH::VOLUME;
-  else                                  return SMESH::ALL;
-}
-
-//=======================================================================
-// name    : toString
-// Purpose : Convert ElementType to string
-//=======================================================================
-static inline LDOMString toString( const SMESH::ElementType theType )
-{
-  switch ( theType )
-  {
-    case SMESH::NODE   : return "NODE";
-    case SMESH::EDGE   : return "EDGE";
-    case SMESH::FACE   : return "FACE";
-    case SMESH::VOLUME : return "VOLUME";
-    case SMESH::ALL    : return "ALL";
-    default            : return "";
-  }
-}
-
-//=======================================================================
-// name    : findFilter
-// Purpose : Find filter in document
-//=======================================================================
-static LDOM_Element findFilter( const char* theFilterName,
-                                const LDOM_Document& theDoc,
-                                LDOM_Node* theParent = 0 )
-{
-  LDOM_Element aRootElement = theDoc.getDocumentElement();
-  if ( aRootElement.isNull() || !aRootElement.hasChildNodes() )
-    return LDOM_Element();
-
-  for ( LDOM_Node aTypeNode = aRootElement.getFirstChild();
-        !aTypeNode.isNull(); aTypeNode = aTypeNode.getNextSibling() )
-  {
-    for ( LDOM_Node aFilter = aTypeNode.getFirstChild();
-          !aFilter.isNull(); aFilter = aFilter.getNextSibling() )
-    {
-      LDOM_Element* anElem = ( LDOM_Element* )&aFilter;
-      if ( anElem->getTagName().equals( LDOMString( "filter" ) ) &&
-           anElem->getAttribute( "name" ).equals( LDOMString( theFilterName ) ) )
-      {
-        if ( theParent != 0  )
-          *theParent = aTypeNode;
-        return (LDOM_Element&)aFilter;
-      }
-    }
-  }
-  return LDOM_Element();
-}
-
-//=======================================================================
-// name    : getSectionName
-// Purpose : Get name of section of filters
-//=======================================================================
-static const char* getSectionName( const ElementType theType )
-{
-  switch ( theType )
-  {
-    case SMESH::NODE   : return "Filters for nodes";
-    case SMESH::EDGE   : return "Filters for edges";
-    case SMESH::FACE   : return "Filters for faces";
-    case SMESH::VOLUME : return "Filters for volumes";
-    case SMESH::ALL    : return "Filters for elements";
-    default            : return "";
-  }
-}
-
-//=======================================================================
-// name    : getSection
-// Purpose : Create section for filters corresponding to the entity type
-//=======================================================================
-static LDOM_Node getSection( const ElementType theType,
-                             LDOM_Document&    theDoc,
-                             const bool        toCreate = false )
-{
-  LDOM_Element aRootElement = theDoc.getDocumentElement();
-  if ( aRootElement.isNull() )
-    return LDOM_Node();
-
-  // Find section
-  bool anExist = false;
-  const char* aSectionName = getSectionName( theType );
-  if ( strcmp( aSectionName, "" ) == 0 )
-    return LDOM_Node();
-  
-  LDOM_NodeList aSections = theDoc.getElementsByTagName( "section" );
-  LDOM_Node aNode;
-  for ( int i = 0, n = aSections.getLength(); i < n; i++ )
-  {
-    aNode = aSections.item( i );
-    LDOM_Element& anItem = ( LDOM_Element& )aNode;
-    if ( anItem.getAttribute( "name" ).equals( LDOMString( aSectionName ) ) )
-    {
-      anExist = true;
-      break;
-    }
-  }
-
-  // Create new section if necessary
-  if ( !anExist )
-  {
-    if ( toCreate )
-    {
-      LDOM_Element aNewItem = theDoc.createElement( "section" );
-      aNewItem.setAttribute( "name", aSectionName );
-      aRootElement.appendChild( aNewItem );
-      return aNewItem;
-    }
-    else
-      return LDOM_Node();
-  }
-  return
-    aNode;
-}
-
-//=======================================================================
-// name    : createFilterItem
-// Purpose : Create filter item or LDOM document
-//=======================================================================
-static LDOM_Element createFilterItem( const char*       theName,
-                                      SMESH::Filter_ptr theFilter,
-                                      LDOM_Document&    theDoc )
-{
-  // create new filter in document
-  LDOM_Element aFilterItem = theDoc.createElement( "filter" );
-  aFilterItem.setAttribute( "name", theName );
-
-  // save filter criterions
-  SMESH::Filter::Criteria_var aCriteria = new SMESH::Filter::Criteria;
-
-  if ( !theFilter->GetCriteria( aCriteria ) )
-    return LDOM_Element();
-
-  for ( CORBA::ULong i = 0, n = aCriteria->length(); i < n; i++ )
-  {
-    LDOM_Element aCriterionItem = theDoc.createElement( "criterion" );
-
-    aCriterionItem.setAttribute( ATTR_TYPE         , toString( aCriteria[ i ].Type      ) );
-    aCriterionItem.setAttribute( ATTR_COMPARE      , toString( aCriteria[ i ].Compare   ) );
-    aCriterionItem.setAttribute( ATTR_THRESHOLD    , toString( aCriteria[ i ].Threshold ) );
-    aCriterionItem.setAttribute( ATTR_UNARY        , toString( aCriteria[ i ].UnaryOp   ) );
-    aCriterionItem.setAttribute( ATTR_BINARY       , toString( aCriteria[ i ].BinaryOp  ) );
-    
-    aCriterionItem.setAttribute( ATTR_THRESHOLD_STR, (const char*)aCriteria[ i ].ThresholdStr );
-    aCriterionItem.setAttribute( ATTR_TOLERANCE    , toString( aCriteria[ i ].Tolerance ) );
-    aCriterionItem.setAttribute( ATTR_ELEMENT_TYPE ,
-      toString( (SMESH::ElementType)aCriteria[ i ].TypeOfElement ) );
-
-    aFilterItem.appendChild( aCriterionItem );
-  }
-
-  return aFilterItem;
-}
-
-//=======================================================================
-// name    : FilterLibrary_i::FilterLibrary_i
-// Purpose : Constructor
-//=======================================================================
-FilterLibrary_i::FilterLibrary_i( const char* theFileName )
-{
-  myFileName = strdup( theFileName );
-  SMESH::FilterManager_i* aFilterMgr = new SMESH::FilterManager_i();
-  myFilterMgr = aFilterMgr->_this();
-
-  LDOMParser aParser;
-
-  // Try to use existing library file
-  bool anExists = false;
-  if ( !aParser.parse( myFileName ) )
-  {
-    myDoc = aParser.getDocument();
-    anExists = true;
-  }
-  // Create a new XML document if it doesn't exist
-  else
-    myDoc = LDOM_Document::createDocument( LDOMString() );
-
-  LDOM_Element aRootElement = myDoc.getDocumentElement();
-  if ( aRootElement.isNull() )
-  {
-    // If the existing document is empty --> try to create a new one
-    if ( anExists )
-      myDoc = LDOM_Document::createDocument( LDOMString() );
-  }
-}
-
-//=======================================================================
-// name    : FilterLibrary_i::FilterLibrary_i
-// Purpose : Constructor
-//=======================================================================
-FilterLibrary_i::FilterLibrary_i()
-{
-  myFileName = 0;
-  SMESH::FilterManager_i* aFilter = new SMESH::FilterManager_i();
-  myFilterMgr = aFilter->_this();
-
-  myDoc = LDOM_Document::createDocument( LDOMString() );
-}
-
-FilterLibrary_i::~FilterLibrary_i()
-{
-  delete myFileName;
-  TPythonDump()<<this<<".Destroy()";
-}
-
-//=======================================================================
-// name    : FilterLibrary_i::Copy
-// Purpose : Create filter and initialize it with values from library
-//=======================================================================
-Filter_ptr FilterLibrary_i::Copy( const char* theFilterName )
-{
-  Filter_ptr aRes = Filter::_nil();
-  LDOM_Node aFilter = findFilter( theFilterName, myDoc );
-
-  if ( aFilter.isNull() )
-    return aRes;
-
-  std::list<SMESH::Filter::Criterion> aCriteria;
-    
-  for ( LDOM_Node aCritNode = aFilter.getFirstChild();
-        !aCritNode.isNull() ; aCritNode = aCritNode.getNextSibling() )
-  {
-    LDOM_Element* aCrit = (LDOM_Element*)&aCritNode;
-
-    const char* aTypeStr      = aCrit->getAttribute( ATTR_TYPE          ).GetString();
-    const char* aCompareStr   = aCrit->getAttribute( ATTR_COMPARE       ).GetString();
-    const char* aUnaryStr     = aCrit->getAttribute( ATTR_UNARY         ).GetString();
-    const char* aBinaryStr    = aCrit->getAttribute( ATTR_BINARY        ).GetString();
-    const char* anElemTypeStr = aCrit->getAttribute( ATTR_ELEMENT_TYPE  ).GetString();
-    
-    SMESH::Filter::Criterion aCriterion = createCriterion();
-
-    aCriterion.Type          = toFunctorType( aTypeStr );
-    aCriterion.Compare       = toFunctorType( aCompareStr );
-    aCriterion.UnaryOp       = toFunctorType( aUnaryStr );
-    aCriterion.BinaryOp      = toFunctorType( aBinaryStr );
-    
-    aCriterion.TypeOfElement = toElementType( anElemTypeStr );
-
-    LDOMString str = aCrit->getAttribute( ATTR_THRESHOLD );
-    int val = 0;
-    aCriterion.Threshold = str.Type() == LDOMBasicString::LDOM_Integer && str.GetInteger( val )
-      ? val : atof( str.GetString() );
-
-    str = aCrit->getAttribute( ATTR_TOLERANCE );
-    aCriterion.Tolerance = str.Type() == LDOMBasicString::LDOM_Integer && str.GetInteger( val )
-      ? val : atof( str.GetString() );
-
-    str = aCrit->getAttribute( ATTR_THRESHOLD_STR );
-    if ( str.Type() == LDOMBasicString::LDOM_Integer && str.GetInteger( val ) )
-    {
-      char a[ 255 ];
-      sprintf( a, "%d", val );
-      aCriterion.ThresholdStr = strdup( a );
-    }
-    else
-      aCriterion.ThresholdStr = str.GetString();
-
-    aCriteria.push_back( aCriterion );
-  }
-
-  SMESH::Filter::Criteria_var aCriteriaVar = new SMESH::Filter::Criteria;
-  aCriteriaVar->length( aCriteria.size() );
-  
-  CORBA::ULong i = 0;
-  std::list<SMESH::Filter::Criterion>::iterator anIter = aCriteria.begin();
-  
-  for( ; anIter != aCriteria.end(); ++anIter )
-    aCriteriaVar[ i++ ] = *anIter;
-
-  aRes = myFilterMgr->CreateFilter();
-  aRes->SetCriteria( aCriteriaVar.inout() );
-  
-  TPythonDump()<<this<<".Copy('"<<theFilterName<<"')";
-  
-  return aRes;
-}
-
-//=======================================================================
-// name    : FilterLibrary_i::SetFileName
-// Purpose : Set file name for library
-//=======================================================================
-void FilterLibrary_i::SetFileName( const char* theFileName )
-{
-  delete myFileName;
-  myFileName = strdup( theFileName );
-  TPythonDump()<<this<<".SetFileName('"<<theFileName<<"')";
-}
-
-//=======================================================================
-// name    : FilterLibrary_i::GetFileName
-// Purpose : Get file name of library
-//=======================================================================
-char* FilterLibrary_i::GetFileName()
-{
-  return CORBA::string_dup( myFileName );
-}
-
-//=======================================================================
-// name    : FilterLibrary_i::Add
-// Purpose : Add new filter to library
-//=======================================================================
-CORBA::Boolean FilterLibrary_i::Add( const char* theFilterName, Filter_ptr theFilter )
-{
-  // if filter already in library or entry filter is null do nothing
-  LDOM_Node aFilterNode = findFilter( theFilterName, myDoc );
-  if ( !aFilterNode.isNull() || theFilter->_is_nil() )
-    return false;
-
-  // get section corresponding to the filter type
-  ElementType anEntType = theFilter->GetElementType();
-
-  LDOM_Node aSection = getSection( anEntType, myDoc, true );
-  if ( aSection.isNull() )
-    return false;
-
-  // create filter item
-  LDOM_Element aFilterItem = createFilterItem( theFilterName, theFilter, myDoc );
-  if ( aFilterItem.isNull() )
-    return false;
-  else
-  {
-    aSection.appendChild( aFilterItem );
-    if(Filter_i* aFilter = DownCast<Filter_i*>(theFilter))
-      TPythonDump()<<this<<".Add('"<<theFilterName<<"',"<<aFilter<<")";
-    return true;
-  }
-}
-
-//=======================================================================
-// name    : FilterLibrary_i::Add
-// Purpose : Add new filter to library
-//=======================================================================
-CORBA::Boolean FilterLibrary_i::AddEmpty( const char* theFilterName, ElementType theType )
-{
-  // if filter already in library or entry filter is null do nothing
-  LDOM_Node aFilterNode = findFilter( theFilterName, myDoc );
-  if ( !aFilterNode.isNull() )
-    return false;
-
-  LDOM_Node aSection = getSection( theType, myDoc, true );
-  if ( aSection.isNull() )
-    return false;
-
-  // create filter item
-  Filter_var aFilter = myFilterMgr->CreateFilter();
-  
-  LDOM_Element aFilterItem = createFilterItem( theFilterName, aFilter, myDoc );
-  if ( aFilterItem.isNull() )
-    return false;
-  else
-  {
-    aSection.appendChild( aFilterItem );
-    TPythonDump()<<this<<".AddEmpty('"<<theFilterName<<"',"<<theType<<")";
-    return true;
-  }
-}
-
-//=======================================================================
-// name    : FilterLibrary_i::Delete
-// Purpose : Delete filter from library
-//=======================================================================
-CORBA::Boolean FilterLibrary_i::Delete ( const char* theFilterName )
-{
-  LDOM_Node aParentNode;
-  LDOM_Node aFilterNode = findFilter( theFilterName, myDoc, &aParentNode );
-  if ( aFilterNode.isNull() || aParentNode.isNull() )
-    return false;
-
-  aParentNode.removeChild( aFilterNode );
-  TPythonDump()<<this<<".Delete('"<<theFilterName<<"')";
-  return true;
-}
-
-//=======================================================================
-// name      : FilterLibrary_i::Replace 
-// Purpose   : Replace existing filter with entry filter.
-// IMPORTANT : If filter does not exist it is not created
-//=======================================================================
-CORBA::Boolean FilterLibrary_i::Replace( const char* theFilterName,
-                                         const char* theNewName,                 
-                                         Filter_ptr  theFilter )
-{
-  LDOM_Element aFilterItem = findFilter( theFilterName, myDoc );
-  if ( aFilterItem.isNull() || theFilter->_is_nil() )
-    return false;
-
-  LDOM_Element aNewItem = createFilterItem( theNewName, theFilter, myDoc );
-  if ( aNewItem.isNull() )
-    return false;
-  else                                                                                          
-  {
-    aFilterItem.ReplaceElement( aNewItem );
-    if(Filter_i* aFilter = DownCast<Filter_i*>(theFilter))
-      TPythonDump()<<this<<".Replace('"<<theFilterName<<"',"<<theNewName<<"',"<<aFilter<<")";
-    return true;
-  }
-}
-
-//=======================================================================
-// name    : FilterLibrary_i::Save
-// Purpose : Save library on disk
-//=======================================================================
-CORBA::Boolean FilterLibrary_i::Save()
-{
-  if ( myFileName == 0 || strlen( myFileName ) == 0 )
-    return false;
-          
-  FILE* aOutFile = fopen( myFileName, "wt" );
-  if ( !aOutFile )
-    return false;
-
-  LDOM_XmlWriter aWriter( aOutFile );
-  aWriter.SetIndentation( 2 );
-  aWriter << myDoc;
-  fclose( aOutFile );
-
-  TPythonDump()<<this<<".Save()";
-  return true;
-}
-
-//=======================================================================
-// name    : FilterLibrary_i::SaveAs
-// Purpose : Save library on disk
-//=======================================================================
-CORBA::Boolean FilterLibrary_i::SaveAs( const char* aFileName )
-{
-  myFileName = strdup ( aFileName );
-  TPythonDump()<<this<<".SaveAs('"<<aFileName<<"')";
-  return Save();
-}
-
-//=======================================================================
-// name    : FilterLibrary_i::IsPresent
-// Purpose : Verify whether filter is in library
-//=======================================================================
-CORBA::Boolean FilterLibrary_i::IsPresent( const char* theFilterName )
-{
-  return !findFilter( theFilterName, myDoc ).isNull();
-}
-
-//=======================================================================
-// name    : FilterLibrary_i::NbFilters
-// Purpose : Return amount of filters in library
-//=======================================================================
-CORBA::Long FilterLibrary_i::NbFilters( ElementType theType )
-{
-  string_array_var aNames = GetNames( theType );
-  return aNames->length();
-}
-
-//=======================================================================
-// name    : FilterLibrary_i::GetNames
-// Purpose : Get names of filters from library
-//=======================================================================
-string_array* FilterLibrary_i::GetNames( ElementType theType )
-{
-  string_array_var anArray = new string_array;
-  TColStd_SequenceOfHAsciiString aSeq;
-
-  LDOM_Node aSection = getSection( theType, myDoc, false );
-
-  if ( !aSection.isNull() )
-  {
-    for ( LDOM_Node aFilter = aSection.getFirstChild();
-          !aFilter.isNull(); aFilter = aFilter.getNextSibling() )
-    {
-      LDOM_Element& anElem = ( LDOM_Element& )aFilter;
-      aSeq.Append( new TCollection_HAsciiString(
-         (Standard_CString)anElem.getAttribute( "name" ).GetString() ) );
-    }
-  }
-
-  anArray->length( aSeq.Length() );
-  for ( int i = 1, n = aSeq.Length(); i <= n; i++ )
-    anArray[ i - 1 ] = CORBA::string_dup( aSeq( i )->ToCString() );
-
-  return anArray._retn();
-}
-
-//=======================================================================
-// name    : FilterLibrary_i::GetAllNames
-// Purpose : Get names of filters from library
-//=======================================================================
-string_array* FilterLibrary_i::GetAllNames()
-{
-  string_array_var aResArray = new string_array;
-  for ( int type = SMESH::ALL; type <= SMESH::VOLUME; type++ )
-  {
-    SMESH::string_array_var aNames = GetNames( (SMESH::ElementType)type );
-
-    int aPrevLength = aResArray->length();
-    aResArray->length( aPrevLength + aNames->length() );
-    for ( int i = 0, n = aNames->length(); i < n; i++ )
-      aResArray[ aPrevLength + i ] = aNames[ i ];
-  }
-
-  return aResArray._retn();
-}
diff --git a/src/SMESH_I/SMESH_Filter_i.hxx b/src/SMESH_I/SMESH_Filter_i.hxx
deleted file mode 100644 (file)
index b634bfe..0000000
+++ /dev/null
@@ -1,781 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Filter_i.hxx
-//  Author : Alexey Petrov, OCC
-//  Module : SMESH
-
-#ifndef _SMESH_FILTER_I_HXX_
-#define _SMESH_FILTER_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Filter)
-
-#include <LDOM_Document.hxx>
-#include <TopoDS_Shape.hxx>
-
-#include "SALOME_GenericObj_i.hh"
-#include "SMESH_ControlsDef.hxx"
-
-class SMESHDS_Mesh;
-
-namespace SMESH
-{
-
-  namespace Controls
-  {
-    
-    /*
-      Class       : BelongToGeom
-      Description : Predicate for verifying whether entiy belong to
-      specified geometrical support
-    */
-    class BelongToGeom: public virtual Predicate
-    {
-    public:
-      BelongToGeom();
-      
-      virtual void                    SetMesh( const SMDS_Mesh* theMesh );
-      virtual void                    SetGeom( const TopoDS_Shape& theShape );
-      
-      virtual bool                    IsSatisfy( long theElementId );
-      
-      virtual void                    SetType( SMDSAbs_ElementType theType );
-      virtual                         SMDSAbs_ElementType GetType() const;
-      
-      TopoDS_Shape                    GetShape();
-      const SMESHDS_Mesh*             GetMeshDS() const;
-      
-    private:
-      TopoDS_Shape                    myShape;
-      const SMESHDS_Mesh*             myMeshDS;
-      SMDSAbs_ElementType             myType;
-    };
-    typedef boost::shared_ptr<BelongToGeom> BelongToGeomPtr;
-    
-    /*
-      Class       : LyingOnGeom
-      Description : Predicate for verifying whether entiy lying or partially lying on
-      specified geometrical support
-    */
-    class LyingOnGeom: public virtual Predicate
-    {
-    public:
-      LyingOnGeom();
-      
-      virtual void                    SetMesh( const SMDS_Mesh* theMesh );
-      virtual void                    SetGeom( const TopoDS_Shape& theShape );
-      
-      virtual bool                    IsSatisfy( long theElementId );
-      
-      virtual void                    SetType( SMDSAbs_ElementType theType );
-      virtual                         SMDSAbs_ElementType GetType() const;
-      
-      TopoDS_Shape                    GetShape();
-      const SMESHDS_Mesh*             GetMeshDS() const;
-      
-      virtual bool                    Contains( const SMESHDS_Mesh*     theMeshDS,
-                                               const TopoDS_Shape&     theShape,
-                                               const SMDS_MeshElement* theElem,
-                                               TopAbs_ShapeEnum        theFindShapeEnum,
-                                               TopAbs_ShapeEnum        theAvoidShapeEnum = TopAbs_SHAPE );
-    private:
-      TopoDS_Shape                    myShape;
-      const SMESHDS_Mesh*             myMeshDS;
-      SMDSAbs_ElementType             myType;
-    };
-    typedef boost::shared_ptr<LyingOnGeom> LyingOnGeomPtr;
-  }
-  
-  /*
-    FUNCTORS
-  */
-  
-  /*
-    Class       : Functor_i
-    Description : An abstact class for all functors 
-  */
-  class Functor_i: public virtual POA_SMESH::Functor,
-                  public virtual SALOME::GenericObj_i
-  {
-  public:
-    void                            SetMesh( SMESH_Mesh_ptr theMesh );
-    Controls::FunctorPtr            GetFunctor(){ return myFunctorPtr;}
-    ElementType                     GetElementType();
-    
-  protected:
-    Functor_i();
-    ~Functor_i();
-  protected:                                
-    Controls::FunctorPtr            myFunctorPtr;
-  };
-  
-  /*
-    Class       : NumericalFunctor_i
-    Description : Base class for numerical functors 
-  */
-  class NumericalFunctor_i: public virtual POA_SMESH::NumericalFunctor,
-                           public virtual Functor_i
-  {
-  public:
-    CORBA::Double                   GetValue( CORBA::Long theElementId );
-    void                            SetPrecision( CORBA::Long thePrecision );
-    CORBA::Long                     GetPrecision();
-    Controls::NumericalFunctorPtr   GetNumericalFunctor();
-    
-  protected:
-    Controls::NumericalFunctorPtr   myNumericalFunctorPtr;
-  };
-  
-  
-  /*
-    Class       : SMESH_MinimumAngleFunct
-    Description : Functor for calculation of minimum angle
-  */
-  class MinimumAngle_i: public virtual POA_SMESH::MinimumAngle,
-                       public virtual NumericalFunctor_i
-  {
-  public:
-    MinimumAngle_i();
-    FunctorType                     GetFunctorType();
-  };
-  
-  
-  /*
-    Class       : AspectRatio_i
-    Description : Functor for calculating aspect ratio
-  */
-  class AspectRatio_i: public virtual POA_SMESH::AspectRatio,
-                      public virtual NumericalFunctor_i
-  {
-  public:
-    AspectRatio_i();
-    FunctorType                     GetFunctorType();
-  };
-  
-  
-  /*
-    Class       : AspectRatio3D_i
-    Description : Functor for calculating aspect ratio for 3D
-  */
-  class AspectRatio3D_i: public virtual POA_SMESH::AspectRatio3D,
-                        public virtual NumericalFunctor_i
-  {
-  public:
-    AspectRatio3D_i();
-    FunctorType                     GetFunctorType();
-  };
-  
-
-  /*
-    Class       : Warping_i
-    Description : Functor for calculating warping
-  */
-  class Warping_i: public virtual POA_SMESH::Warping,
-                  public virtual NumericalFunctor_i
-  {
-  public:
-    Warping_i();
-    FunctorType                     GetFunctorType();
-  };
-  
-  
-  /*
-    Class       : Taper_i
-    Description : Functor for calculating taper
-  */
-  class Taper_i: public virtual POA_SMESH::Taper,
-                public virtual NumericalFunctor_i
-  {
-  public:
-    Taper_i();
-    FunctorType                     GetFunctorType();
-  };
-  
-  
-  /*
-    Class       : Skew_i
-    Description : Functor for calculating skew in degrees
-  */
-  class Skew_i: public virtual POA_SMESH::Skew,
-               public virtual NumericalFunctor_i
-  {
-  public:
-    Skew_i();
-    FunctorType                     GetFunctorType();
-  };
-  
-  
-  /*
-    Class       : Area_i
-    Description : Functor for calculating area
-  */
-  class Area_i: public virtual POA_SMESH::Area,
-               public virtual NumericalFunctor_i
-  {
-  public:
-    Area_i();
-    FunctorType                     GetFunctorType();
-  };
-  
-  
-  /*
-    Class       : Length_i
-    Description : Functor for calculating length of edge
-  */
-  class Length_i: public virtual POA_SMESH::Length,
-                 public virtual NumericalFunctor_i
-  {
-  public:
-    Length_i();
-    FunctorType                     GetFunctorType();
-  };
-  
-  /*
-    Class       : Length2D_i
-    Description : Functor for calculating length of edge
-  */
-  class Length2D_i: public virtual POA_SMESH::Length2D,
-                   public virtual NumericalFunctor_i
-  {
-  public:
-    Length2D_i();
-    SMESH::Length2D::Values*        GetValues();
-    FunctorType                     GetFunctorType();
-    
-  protected:
-    Controls::Length2DPtr          myLength2DPtr;
-  };
-  
-  
-  /*
-    Class       : MultiConnection_i
-    Description : Functor for calculating number of faces conneted to the edge
-  */
-  class MultiConnection_i: public virtual POA_SMESH::MultiConnection,
-                          public virtual NumericalFunctor_i
-  {
-  public:
-    MultiConnection_i();
-    FunctorType                     GetFunctorType();
-  };
-  
-  /*
-    Class       : MultiConnection2D_i
-    Description : Functor for calculating number of faces conneted to the edge
-  */
-  class MultiConnection2D_i: public virtual POA_SMESH::MultiConnection2D,
-                            public virtual NumericalFunctor_i
-  {
-  public:
-    MultiConnection2D_i();
-    SMESH::MultiConnection2D::Values*  GetValues();
-    FunctorType                        GetFunctorType();
-    
-  protected:
-    Controls::MultiConnection2DPtr     myMulticonnection2DPtr;
-  };
-  
-  
-  /*
-    PREDICATES
-  */
-  /*
-    Class       : Predicate_i
-    Description : Base class for all predicates
-  */
-  class Predicate_i: public virtual POA_SMESH::Predicate,
-                    public virtual Functor_i
-  {
-  public:
-    CORBA::Boolean                  IsSatisfy( CORBA::Long theElementId );
-    Controls::PredicatePtr          GetPredicate();
-    
-  protected:
-    Controls::PredicatePtr          myPredicatePtr;
-  };
-  
-  
-  /*
-    Class       : BadOrientedVolume_i
-    Description : Verify whether a mesh volume is incorrectly oriented from
-    the point of view of MED convention
-  */
-  class BadOrientedVolume_i: public virtual POA_SMESH::BadOrientedVolume,
-                            public virtual Predicate_i
-  {
-  public:
-    BadOrientedVolume_i();
-    FunctorType                     GetFunctorType();
-  };
-  
-  /*
-    Class       : BelongToGeom_i
-    Description : Predicate for selection on geometrical support
-  */
-  class BelongToGeom_i: public virtual POA_SMESH::BelongToGeom,
-                       public virtual Predicate_i
-  {
-  public:
-    BelongToGeom_i();
-    virtual                         ~BelongToGeom_i();
-    
-    void                            SetGeom( GEOM::GEOM_Object_ptr theGeom );
-    void                            SetElementType( ElementType theType );
-    FunctorType                     GetFunctorType();
-    
-    void                            SetGeom( const TopoDS_Shape& theShape );
-    
-    void                            SetShapeName( const char* theName );
-    char*                           GetShapeName();
-    
-  protected:
-    Controls::BelongToGeomPtr       myBelongToGeomPtr;
-    char*                           myShapeName;
-  };
-  
-  /*
-    Class       : BelongToSurface_i
-    Description : Verify whether mesh element lie in pointed Geom planar object
-  */
-  class BelongToSurface_i: public virtual POA_SMESH::BelongToSurface,
-                          public virtual Predicate_i
-  {
-  public:
-    BelongToSurface_i( const Handle(Standard_Type)& );
-    virtual                         ~BelongToSurface_i();
-    
-    void                            SetSurface( GEOM::GEOM_Object_ptr theGeom, ElementType theType );
-    
-    void                            SetShapeName( const char* theName, ElementType theType );
-    char*                           GetShapeName();
-    
-    void                            SetTolerance( CORBA::Double );
-    CORBA::Double                   GetTolerance();
-    
-  protected:
-    Controls::ElementsOnSurfacePtr  myElementsOnSurfacePtr;
-    char*                           myShapeName;
-    Handle(Standard_Type)           mySurfaceType;
-  };
-  
-  /*
-    Class       : BelongToPlane_i
-    Description : Verify whether mesh element lie in pointed Geom planar object
-  */
-  class BelongToPlane_i: public virtual POA_SMESH::BelongToPlane,
-                        public virtual BelongToSurface_i
-  {
-  public:
-    BelongToPlane_i();
-    void                            SetPlane( GEOM::GEOM_Object_ptr theGeom, ElementType theType );
-    FunctorType                     GetFunctorType();
-  };
-  
-  /*
-    Class       : BelongToCylinder_i
-    Description : Verify whether mesh element lie in pointed Geom cylindrical object
-  */
-  class BelongToCylinder_i: public virtual POA_SMESH::BelongToCylinder,
-                           public virtual BelongToSurface_i
-  {
-  public:
-    BelongToCylinder_i();
-    void                            SetCylinder( GEOM::GEOM_Object_ptr theGeom, ElementType theType );
-    FunctorType                     GetFunctorType();
-  };
-  
-  /*
-    Class       : LyingOnGeom_i
-    Description : Predicate for selection on geometrical support(lying or partially lying)
-  */
-  class LyingOnGeom_i: public virtual POA_SMESH::LyingOnGeom,
-                      public virtual Predicate_i
-  {
-  public:
-    LyingOnGeom_i();
-    virtual                         ~LyingOnGeom_i();
-    
-    void                            SetGeom( GEOM::GEOM_Object_ptr theGeom );
-    void                            SetElementType( ElementType theType );
-    FunctorType                     GetFunctorType();
-    
-    void                            SetGeom( const TopoDS_Shape& theShape );
-    
-    void                            SetShapeName( const char* theName );
-    char*                           GetShapeName();
-    
-  protected:
-    Controls::LyingOnGeomPtr        myLyingOnGeomPtr;
-    char*                           myShapeName;
-  };
-  
-  /*
-    Class       : FreeBorders_i
-    Description : Predicate for free borders
-  */
-  class FreeBorders_i: public virtual POA_SMESH::FreeBorders,
-                      public virtual Predicate_i
-  {
-  public:
-    FreeBorders_i();
-    FunctorType                     GetFunctorType();
-  };
-  
-  
-  /*
-    Class       : FreeEdges_i
-    Description : Predicate for free edges
-  */
-  class FreeEdges_i: public virtual POA_SMESH::FreeEdges,
-                    public virtual Predicate_i
-  {
-  public:
-    FreeEdges_i();
-    SMESH::FreeEdges::Borders*      GetBorders();
-    FunctorType                     GetFunctorType();
-    
-  protected:
-    Controls::FreeEdgesPtr          myFreeEdgesPtr;
-  };
-  
-  
-  /*
-    Class       : RangeOfIds_i
-    Description : Predicate for Range of Ids
-  */
-  class RangeOfIds_i: public virtual POA_SMESH::RangeOfIds,
-                     public virtual Predicate_i
-  {
-  public:
-    RangeOfIds_i();
-    void                            SetRange( const SMESH::long_array& theIds );
-    CORBA::Boolean                  SetRangeStr( const char* theRange );
-    char*                           GetRangeStr();
-    
-    void                            SetElementType( ElementType theType );
-    FunctorType                     GetFunctorType();
-    
-  protected:
-    Controls::RangeOfIdsPtr         myRangeOfIdsPtr;
-  };
-  
-  /*
-    Class       : Comparator_i
-    Description : Base class for comparators
-  */
-  class Comparator_i: public virtual POA_SMESH::Comparator,
-                     public virtual Predicate_i
-  {
-  public:
-    virtual                         ~Comparator_i();
-    
-    virtual void                    SetMargin( CORBA::Double );
-    virtual void                    SetNumFunctor( NumericalFunctor_ptr );
-    
-    Controls::ComparatorPtr         GetComparator();
-    NumericalFunctor_i*             GetNumFunctor_i();
-    CORBA::Double                   GetMargin();
-    
-  protected:
-    Comparator_i();
-  protected:                                  
-    Controls::ComparatorPtr         myComparatorPtr;
-    NumericalFunctor_i*             myNumericalFunctor;
-  };
-  
-  
-  /*
-    Class       : LessThan_i
-    Description : Comparator "<"
-  */
-  class LessThan_i: public virtual POA_SMESH::LessThan,
-                   public virtual Comparator_i
-  {
-  public:
-    LessThan_i();
-    FunctorType                     GetFunctorType();
-  };
-  
-  
-  /*
-    Class       : MoreThan_i
-    Description : Comparator ">"
-  */
-  class MoreThan_i: public virtual POA_SMESH::MoreThan,
-                   public virtual Comparator_i
-  {
-  public:
-    MoreThan_i();
-    FunctorType                     GetFunctorType();
-  };
-  
-  
-  /*
-    Class       : EqualTo_i
-    Description : Comparator "="
-  */
-  class EqualTo_i: public virtual POA_SMESH::EqualTo,
-                  public virtual Comparator_i
-  {
-  public:
-    EqualTo_i();
-    virtual void                    SetTolerance( CORBA::Double );
-    CORBA::Double                   GetTolerance();
-    FunctorType                     GetFunctorType();
-    
-  protected:
-    Controls::EqualToPtr            myEqualToPtr;
-  };
-  
-  
-  /*
-    Class       : LogicalNOT_i
-    Description : Logical NOT predicate
-  */
-  class LogicalNOT_i: public virtual POA_SMESH::LogicalNOT,
-                     public virtual Predicate_i
-  {
-  public:
-    LogicalNOT_i();
-  virtual                         ~LogicalNOT_i();
-    
-    virtual void                    SetPredicate( Predicate_ptr );
-    Predicate_i*                    GetPredicate_i();
-    FunctorType                     GetFunctorType();
-    
-  protected:
-    Controls::LogicalNOTPtr         myLogicalNOTPtr;
-    Predicate_i*                    myPredicate;
-  };
-  
-  
-  /*
-    Class       : LogicalBinary_i
-    Description : Base class for binary logical predicate
-  */
-  class LogicalBinary_i: public virtual POA_SMESH::LogicalBinary,
-                        public virtual Predicate_i
-  {
-  public:
-    virtual                         ~LogicalBinary_i();
-    virtual void                    SetMesh( SMESH_Mesh_ptr theMesh );
-    virtual void                    SetPredicate1( Predicate_ptr );
-    virtual void                    SetPredicate2( Predicate_ptr );
-    
-    Controls::LogicalBinaryPtr      GetLogicalBinary();
-    Predicate_i*                    GetPredicate1_i();
-    Predicate_i*                    GetPredicate2_i();
-    
-  protected:
-    LogicalBinary_i();
-  protected:  
-    Controls::LogicalBinaryPtr      myLogicalBinaryPtr;
-    Predicate_i*                    myPredicate1;
-    Predicate_i*                    myPredicate2;
-  };
-  
-  
-  /*
-    Class       : LogicalAND_i
-    Description : Logical AND
-  */
-  class LogicalAND_i: public virtual POA_SMESH::LogicalAND,
-                     public virtual LogicalBinary_i
-  {
-  public:
-    LogicalAND_i();
-    FunctorType                     GetFunctorType();
-  };
-  
-  
-  /*
-    Class       : LogicalOR_i
-    Description : Logical OR
-  */
-  class LogicalOR_i: public virtual POA_SMESH::LogicalOR,
-                    public virtual LogicalBinary_i
-  {
-  public:
-    LogicalOR_i();
-    FunctorType                     GetFunctorType();
-  };
-  
-  
-  /*
-    FILTER
-  */
-  class Filter_i: public virtual POA_SMESH::Filter,
-                 public virtual SALOME::GenericObj_i
-  {
-  public:
-    Filter_i();
-    ~Filter_i();
-    
-    virtual
-    void
-    SetPredicate( Predicate_ptr );
-
-    virtual
-    void
-    SetMesh( SMESH_Mesh_ptr );
-
-    virtual
-    SMESH::long_array* 
-    GetIDs();
-    
-    static
-    void
-    GetElementsId( Predicate_i*,
-                  const SMDS_Mesh*,
-                  Controls::Filter::TIdSequence& );
-    static
-    void           
-    GetElementsId( Predicate_i*,
-                  SMESH_Mesh_ptr,
-                  Controls::Filter::TIdSequence& );
-    
-    virtual
-    long_array*      
-    GetElementsId( SMESH_Mesh_ptr );
-
-    virtual
-    ElementType      
-    GetElementType();
-    
-    virtual
-    CORBA::Boolean   
-    GetCriteria( SMESH::Filter::Criteria_out theCriteria );
-
-    virtual
-    CORBA::Boolean
-    SetCriteria( const SMESH::Filter::Criteria& theCriteria );
-    
-    virtual
-    Predicate_ptr
-    GetPredicate();
-
-    Predicate_i*     GetPredicate_i();
-
-  private:
-    Controls::Filter myFilter;
-    Predicate_i*     myPredicate;
-    SMESH_Mesh_var   myMesh;
-  };
-  
-  
-  /*
-    FILTER LIBRARY
-  */
-  class FilterLibrary_i: public virtual POA_SMESH::FilterLibrary,
-                        public virtual SALOME::GenericObj_i
-  {
-  public:
-    FilterLibrary_i( const char* theFileName );
-    FilterLibrary_i();
-    ~FilterLibrary_i();
-    
-    Filter_ptr              Copy( const char* theFilterName );
-    
-    CORBA::Boolean          Add     ( const char* theFilterName, Filter_ptr theFilter );
-    CORBA::Boolean          AddEmpty( const char* theFilterName, ElementType theType );
-    CORBA::Boolean          Delete  ( const char* theFilterName );
-    CORBA::Boolean          Replace ( const char* theFilterName, 
-                                     const char* theNewName, 
-                                     Filter_ptr  theFilter );
-    
-    CORBA::Boolean          Save();
-    CORBA::Boolean          SaveAs( const char* aFileName );
-    
-    CORBA::Boolean          IsPresent( const char* aFilterName );
-    CORBA::Long             NbFilters( ElementType );
-    string_array*           GetNames( ElementType );
-    string_array*           GetAllNames();
-    void                    SetFileName( const char* theFileName );
-    char*                   GetFileName();
-    
-  private:
-    char*                   myFileName;
-    LDOM_Document           myDoc;
-    FilterManager_var       myFilterMgr;
-  };
-  
-  
-  /*
-    FILTER MANAGER
-  */
-  
-  class FilterManager_i: public virtual POA_SMESH::FilterManager,
-                        public virtual SALOME::GenericObj_i
-  {
-  public:
-    FilterManager_i();
-    ~FilterManager_i();
-
-    MinimumAngle_ptr          CreateMinimumAngle();
-    AspectRatio_ptr           CreateAspectRatio();
-    AspectRatio3D_ptr         CreateAspectRatio3D();
-    Warping_ptr               CreateWarping();
-    Taper_ptr                 CreateTaper();
-    Skew_ptr                  CreateSkew();
-    Area_ptr                  CreateArea();
-    Length_ptr                CreateLength();
-    Length2D_ptr              CreateLength2D();
-    MultiConnection_ptr       CreateMultiConnection();
-    MultiConnection2D_ptr     CreateMultiConnection2D();
-    
-    BelongToGeom_ptr          CreateBelongToGeom();
-    BelongToPlane_ptr         CreateBelongToPlane();
-    BelongToCylinder_ptr      CreateBelongToCylinder();
-    
-    LyingOnGeom_ptr           CreateLyingOnGeom();
-    
-    FreeBorders_ptr           CreateFreeBorders();
-    FreeEdges_ptr             CreateFreeEdges();
-    
-    RangeOfIds_ptr            CreateRangeOfIds();
-    
-    BadOrientedVolume_ptr     CreateBadOrientedVolume();
-    
-    LessThan_ptr              CreateLessThan();
-    MoreThan_ptr              CreateMoreThan();
-    EqualTo_ptr               CreateEqualTo();
-    
-    LogicalNOT_ptr            CreateLogicalNOT();
-    LogicalAND_ptr            CreateLogicalAND();
-    LogicalOR_ptr             CreateLogicalOR();
-    
-    Filter_ptr                CreateFilter();
-    
-    FilterLibrary_ptr         LoadLibrary( const char* aFileName );
-    FilterLibrary_ptr         CreateLibrary();
-    CORBA::Boolean            DeleteLibrary( const char* aFileName );
-  };
-  
-  
-  Predicate_i* 
-  GetPredicate( SMESH::Predicate_ptr thePredicate );
-}
-
-
-#endif
diff --git a/src/SMESH_I/SMESH_Gen_i.cxx b/src/SMESH_I/SMESH_Gen_i.cxx
deleted file mode 100644 (file)
index a51c17b..0000000
+++ /dev/null
@@ -1,2587 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Gen_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#include <TopExp.hxx>
-#include <TopExp_Explorer.hxx>
-#include <TopoDS.hxx>
-#include <TopoDS_Iterator.hxx>
-#include <TopoDS_Compound.hxx>
-#include <TopoDS_CompSolid.hxx>
-#include <TopoDS_Solid.hxx>
-#include <TopoDS_Shell.hxx>
-#include <TopoDS_Face.hxx>
-#include <TopoDS_Wire.hxx>
-#include <TopoDS_Edge.hxx>
-#include <TopoDS_Vertex.hxx>
-#include <TopoDS_Shape.hxx>
-#include <TopTools_MapOfShape.hxx>
-#include <TopTools_IndexedMapOfShape.hxx>
-#include <gp_Pnt.hxx>
-#include <BRep_Tool.hxx>
-#include <TCollection_AsciiString.hxx>
-
-#include "Utils_CorbaException.hxx"
-
-#include "utilities.h"
-#include <fstream>
-#include <stdio.h>
-#include <dlfcn.h>
-
-#include <HDFOI.hxx>
-
-#include "SMESH_Gen_i.hxx"
-#include "SMESH_Mesh_i.hxx"
-#include "SMESH_Hypothesis_i.hxx"
-#include "SMESH_Algo_i.hxx"
-#include "SMESH_Group_i.hxx"
-
-#include "SMESHDS_Document.hxx"
-#include "SMESHDS_Group.hxx"
-#include "SMESHDS_GroupOnGeom.hxx"
-#include "SMESH_Group.hxx"
-
-#include "SMDS_EdgePosition.hxx"
-#include "SMDS_FacePosition.hxx"
-
-#include CORBA_SERVER_HEADER(SMESH_Group)
-#include CORBA_SERVER_HEADER(SMESH_Filter)
-
-#include "DriverMED_W_SMESHDS_Mesh.h"
-#include "DriverMED_R_SMESHDS_Mesh.h"
-
-#include "SALOMEDS_Tool.hxx"
-#include "SALOME_NamingService.hxx"
-#include "SALOME_LifeCycleCORBA.hxx"
-#include "Utils_SINGLETON.hxx"
-#include "OpUtil.hxx"
-
-#include CORBA_CLIENT_HEADER(SALOME_ModuleCatalog)
-
-#include "GEOM_Client.hxx"
-#include "Utils_ExceptHandlers.hxx"
-
-#include <map>
-#include <boost/filesystem/path.hpp>
-
-using namespace std;
-
-#define NUM_TMP_FILES 2
-
-#ifdef _DEBUG_
-static int MYDEBUG = 0;
-#else
-static int MYDEBUG = 0;
-#endif
-
-// Static variables definition
-CORBA::ORB_var          SMESH_Gen_i::myOrb;
-PortableServer::POA_var SMESH_Gen_i::myPoa;
-SALOME_NamingService*   SMESH_Gen_i::myNS  = NULL;
-SALOME_LifeCycleCORBA*  SMESH_Gen_i::myLCC = NULL;
-SMESH_Gen_i*            SMESH_Gen_i::mySMESHGen = NULL;
-
-//=============================================================================
-/*!
- *  GetServant [ static ]
- *
- *  Get servant of the CORBA object
- */
-//=============================================================================
-
-PortableServer::ServantBase_var SMESH_Gen_i::GetServant( CORBA::Object_ptr theObject )
-{
-  if( CORBA::is_nil( theObject ) || CORBA::is_nil( GetPOA() ) )
-    return NULL;
-  try {
-    PortableServer::Servant aServant = GetPOA()->reference_to_servant( theObject );
-    return aServant;
-  } 
-  catch (...) {
-    INFOS( "GetServant - Unknown exception was caught!!!" ); 
-    return NULL;
-  }
-}
-
-//=============================================================================
-/*!
- *  SObjectToObject [ static ]
- *
- *  Get CORBA object corresponding to the SALOMEDS::SObject
- */
-//=============================================================================
-
-CORBA::Object_var SMESH_Gen_i::SObjectToObject( SALOMEDS::SObject_ptr theSObject )
-{
-  SALOMEDS::GenericAttribute_var anAttr;
-  CORBA::Object_var anObj;
-  if ( !theSObject->_is_nil() ) {
-    try {
-      if( theSObject->FindAttribute( anAttr, "AttributeIOR" ) ) {
-       SALOMEDS::AttributeIOR_var anIOR  = SALOMEDS::AttributeIOR::_narrow( anAttr );
-       CORBA::String_var aValue = anIOR->Value();
-       if( strcmp( aValue, "" ) != 0 )
-         anObj = GetORB()->string_to_object( aValue );
-       }
-    }
-    catch( ... ) {
-      INFOS( "SObjectToObject - Unknown exception was caught!!!" );
-    }
-  }
-  return anObj;
-}
-
-//=============================================================================
-/*!
- *  GetNS [ static ]
- *
- *  Get SALOME_NamingService object 
- */
-//=============================================================================
-
-SALOME_NamingService* SMESH_Gen_i::GetNS()
-{
-  if ( myNS == NULL ) {
-    myNS = SINGLETON_<SALOME_NamingService>::Instance();
-    ASSERT(SINGLETON_<SALOME_NamingService>::IsAlreadyExisting());
-    myNS->init_orb( GetORB() );
-  }
-  return myNS;
-}
-
-//=============================================================================
-/*!
- *  GetLCC [ static ]
- *
- *  Get SALOME_LifeCycleCORBA object
- */
-//=============================================================================     
-SALOME_LifeCycleCORBA*  SMESH_Gen_i::GetLCC() {
-  if ( myLCC == NULL ) {
-    myLCC = new SALOME_LifeCycleCORBA( GetNS() );
-  }
-  return myLCC;
-}
-
-
-//=============================================================================
-/*!
- *  GetGeomEngine [ static ]
- *
- *  Get GEOM::GEOM_Gen reference
- */
-//=============================================================================     
-GEOM::GEOM_Gen_ptr SMESH_Gen_i::GetGeomEngine() {
-  GEOM::GEOM_Gen_var aGeomEngine =
-    GEOM::GEOM_Gen::_narrow( GetLCC()->FindOrLoad_Component("FactoryServer","GEOM") );
-  return aGeomEngine._retn();
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::SMESH_Gen_i
- *
- *  Default constructor: not for use
- */
-//=============================================================================
-
-SMESH_Gen_i::SMESH_Gen_i()
-{
-  INFOS( "SMESH_Gen_i::SMESH_Gen_i : default constructor" );
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::SMESH_Gen_i 
- *
- *  Standard constructor, used with Container
- */
-//=============================================================================
-
-SMESH_Gen_i::SMESH_Gen_i( CORBA::ORB_ptr            orb,
-                         PortableServer::POA_ptr   poa,
-                         PortableServer::ObjectId* contId, 
-                         const char*               instanceName, 
-                          const char*               interfaceName )
-     : Engines_Component_i( orb, poa, contId, instanceName, interfaceName )
-{
-  INFOS( "SMESH_Gen_i::SMESH_Gen_i : standard constructor" );
-
-  myOrb = CORBA::ORB::_duplicate(orb);
-  myPoa = PortableServer::POA::_duplicate(poa);
-  
-  _thisObj = this ;
-  _id = myPoa->activate_object( _thisObj );
-  
-  myShapeReader = NULL;  // shape reader
-  mySMESHGen = this;
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::~SMESH_Gen_i
- *
- *  Destructor
- */
-//=============================================================================
-
-SMESH_Gen_i::~SMESH_Gen_i()
-{
-  INFOS( "SMESH_Gen_i::~SMESH_Gen_i" );
-
-  // delete hypothesis creators
-  map<string, GenericHypothesisCreator_i*>::iterator itHyp;
-  for (itHyp = myHypCreatorMap.begin(); itHyp != myHypCreatorMap.end(); itHyp++)
-  {
-    delete (*itHyp).second;
-  }
-  myHypCreatorMap.clear();
-
-  // Clear study contexts data
-  map<int, StudyContext*>::iterator it;
-  for ( it = myStudyContextMap.begin(); it != myStudyContextMap.end(); ++it ) {
-    delete it->second;
-  }
-  myStudyContextMap.clear();
-  // delete shape reader
-  if ( !myShapeReader ) 
-    delete myShapeReader;
-}
-  
-//=============================================================================
-/*!
- *  SMESH_Gen_i::createHypothesis
- *
- *  Create hypothesis of given type
- */
-//=============================================================================
-SMESH::SMESH_Hypothesis_ptr SMESH_Gen_i::createHypothesis(const char* theHypName,
-                                                          const char* theLibName)
-     throw (SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  if(MYDEBUG) MESSAGE( "Create Hypothesis <" << theHypName << "> from " << theLibName);
-
-  // create a new hypothesis object servant
-  SMESH_Hypothesis_i* myHypothesis_i = 0;
-  SMESH::SMESH_Hypothesis_var hypothesis_i;
-
-  try
-  {
-    // check, if creator for this hypothesis type already exists
-    if (myHypCreatorMap.find(string(theHypName)) == myHypCreatorMap.end())
-    {
-      // load plugin library
-      if(MYDEBUG) MESSAGE("Loading server meshers plugin library ...");
-      void* libHandle = dlopen (theLibName, RTLD_LAZY);
-      if (!libHandle)
-      {
-        // report any error, if occured
-        const char* anError = dlerror();
-        throw(SALOME_Exception(anError));
-      }
-
-      // get method, returning hypothesis creator
-      if(MYDEBUG) MESSAGE("Find GetHypothesisCreator() method ...");
-      typedef GenericHypothesisCreator_i* (*GetHypothesisCreator)(const char* theHypName);
-      GetHypothesisCreator procHandle =
-        (GetHypothesisCreator)dlsym( libHandle, "GetHypothesisCreator" );
-      if (!procHandle)
-      {
-        throw(SALOME_Exception(LOCALIZED("bad hypothesis plugin library")));
-        dlclose(libHandle);
-      }
-
-      // get hypothesis creator
-      if(MYDEBUG) MESSAGE("Get Hypothesis Creator for " << theHypName);
-      GenericHypothesisCreator_i* aCreator = procHandle(theHypName);
-      if (!aCreator)
-      {
-        throw(SALOME_Exception(LOCALIZED("no such a hypothesis in this plugin")));
-      }
-
-      // map hypothesis creator to a hypothesis name
-      myHypCreatorMap[string(theHypName)] = aCreator;
-    }
-
-    // create a new hypothesis object, store its ref. in studyContext
-    if(MYDEBUG) MESSAGE("Create Hypothesis " << theHypName);
-    myHypothesis_i =
-      myHypCreatorMap[string(theHypName)]->Create (myPoa, GetCurrentStudyID(), &myGen);
-    // _CS_gbo Explicit activation (no longer made in the constructor).
-    myHypothesis_i->Activate();
-    myHypothesis_i->SetLibName(theLibName); // for persistency assurance
-  }
-  catch (SALOME_Exception& S_ex)
-  {
-    THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
-  }
-
-  if (!myHypothesis_i)
-    return hypothesis_i._retn();
-
-  // activate the CORBA servant of hypothesis
-  hypothesis_i = SMESH::SMESH_Hypothesis::_narrow( myHypothesis_i->_this() );
-  int nextId = RegisterObject( hypothesis_i );
-  if(MYDEBUG) MESSAGE( "Add hypo to map with id = "<< nextId );
-
-  return hypothesis_i._retn();
-}
-  
-//=============================================================================
-/*!
- *  SMESH_Gen_i::createMesh
- *
- *  Create empty mesh on shape
- */
-//=============================================================================
-SMESH::SMESH_Mesh_ptr SMESH_Gen_i::createMesh()
-     throw ( SALOME::SALOME_Exception )
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::createMesh" );
-
-  // Get or create the GEOM_Client instance
-  try {
-    // create a new mesh object servant, store it in a map in study context
-    SMESH_Mesh_i* meshServant = new SMESH_Mesh_i( GetPOA(), this, GetCurrentStudyID() );
-    // create a new mesh object
-    meshServant->SetImpl( myGen.CreateMesh( GetCurrentStudyID() ));
-
-    // activate the CORBA servant of Mesh
-    SMESH::SMESH_Mesh_var mesh = SMESH::SMESH_Mesh::_narrow( meshServant->_this() );
-    int nextId = RegisterObject( mesh );
-    if(MYDEBUG) MESSAGE( "Add mesh to map with id = "<< nextId);
-    return mesh._retn();
-  }
-  catch (SALOME_Exception& S_ex) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(), SALOME::BAD_PARAM );
-  }
-  return SMESH::SMESH_Mesh::_nil();
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::GetShapeReader
- *
- *  Get shape reader
- */
-//=============================================================================
-GEOM_Client* SMESH_Gen_i::GetShapeReader()
-{
-  // create shape reader if necessary
-  if ( !myShapeReader ) 
-    myShapeReader = new GEOM_Client(GetContainerRef());
-  ASSERT( myShapeReader );
-  return myShapeReader;
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::SetCurrentStudy
- *
- *  Set current study
- */
-//=============================================================================
-
-void SMESH_Gen_i::SetCurrentStudy( SALOMEDS::Study_ptr theStudy )
-{
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::SetCurrentStudy" );
-  myCurrentStudy = SALOMEDS::Study::_duplicate( theStudy );
-  // create study context, if it doesn't exist and set current study
-  int studyId = GetCurrentStudyID();
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::SetCurrentStudy: study Id = " << studyId );
-  if ( myStudyContextMap.find( studyId ) == myStudyContextMap.end() ) {
-    myStudyContextMap[ studyId ] = new StudyContext;      
-  }
-  // set current study for geom engine
-  /*
-  if ( !CORBA::is_nil( GetGeomEngine() ) )
-    GetGeomEngine()->GetCurrentStudy( myCurrentStudy->StudyId() );
-  */
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::GetCurrentStudy
- *
- *  Get current study
- */
-//=============================================================================
-
-SALOMEDS::Study_ptr SMESH_Gen_i::GetCurrentStudy()
-{
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::GetCurrentStudy: study Id = " << GetCurrentStudyID() );
-  return SALOMEDS::Study::_duplicate( myCurrentStudy );
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::GetCurrentStudyContext 
- *
- *  Get current study context
- */
-//=============================================================================
-StudyContext* SMESH_Gen_i::GetCurrentStudyContext()
-{
-  if ( !CORBA::is_nil( myCurrentStudy ) &&
-      myStudyContextMap.find( GetCurrentStudyID() ) != myStudyContextMap.end() )
-    return myStudyContextMap[ myCurrentStudy->StudyId() ];
-  else
-    return 0;
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::CreateHypothesis 
- *
- *  Create hypothesis/algorothm of given type and publish it in the study
- */
-//=============================================================================
-
-SMESH::SMESH_Hypothesis_ptr SMESH_Gen_i::CreateHypothesis( const char* theHypName,
-                                                           const char* theLibName )
-     throw ( SALOME::SALOME_Exception )
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  // Create hypothesis/algorithm
-  SMESH::SMESH_Hypothesis_var hyp = this->createHypothesis( theHypName, theLibName );
-
-  // Publish hypothesis/algorithm in the study
-  if ( CanPublishInStudy( hyp ) ) {
-    SALOMEDS::SObject_var aSO = PublishHypothesis( myCurrentStudy, hyp );
-    if ( !aSO->_is_nil() ) {
-      // Update Python script
-      TCollection_AsciiString aStr (aSO->GetID());
-      aStr += " = smesh.CreateHypothesis(\"";
-      aStr += Standard_CString(theHypName);
-      aStr += "\", \"";
-      aStr += Standard_CString(theLibName);
-      aStr += "\")";
-
-      AddToCurrentPyScript(aStr);
-    }
-  }
-
-  return hyp._retn();
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::CreateMesh
- *
- *  Create empty mesh on a shape and publish it in the study
- */
-//=============================================================================
-
-SMESH::SMESH_Mesh_ptr SMESH_Gen_i::CreateMesh( GEOM::GEOM_Object_ptr theShapeObject )
-     throw ( SALOME::SALOME_Exception )
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMesh" );
-  // create mesh
-  SMESH::SMESH_Mesh_var mesh = this->createMesh();
-  // set shape
-  SMESH_Mesh_i* meshServant = dynamic_cast<SMESH_Mesh_i*>( GetServant( mesh ).in() );
-  ASSERT( meshServant );
-  meshServant->SetShape( theShapeObject );
-
-  // publish mesh in the study
-  if ( CanPublishInStudy( mesh ) ) {
-    SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder();
-    aStudyBuilder->NewCommand();  // There is a transaction
-    SALOMEDS::SObject_var aSO = PublishMesh( myCurrentStudy, mesh.in() );
-    aStudyBuilder->CommitCommand();
-    if ( !aSO->_is_nil() ) {
-      // Update Python script
-      TCollection_AsciiString aStr (aSO->GetID());
-      aStr += " = smesh.CreateMesh(";
-      SMESH_Gen_i::AddObject(aStr, theShapeObject) += ")";
-      
-      AddToCurrentPyScript(aStr);
-    }
-  }
-
-  return mesh._retn();
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::CreateMeshFromUNV
- *
- *  Create mesh and import data from UNV file
- */
-//=============================================================================
-
-SMESH::SMESH_Mesh_ptr SMESH_Gen_i::CreateMeshesFromUNV( const char* theFileName )
-  throw ( SALOME::SALOME_Exception )
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMeshesFromUNV" );
-
-  SMESH::SMESH_Mesh_var aMesh = createMesh();
-  string aFileName; // = boost::filesystem::path(theFileName).leaf();
-  // publish mesh in the study
-  if ( CanPublishInStudy( aMesh ) ) {
-    SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder();
-    aStudyBuilder->NewCommand();  // There is a transaction
-    SALOMEDS::SObject_var aSO = PublishMesh( myCurrentStudy, aMesh.in(), aFileName.c_str() );
-    aStudyBuilder->CommitCommand();
-    if ( !aSO->_is_nil() ) {
-      // Update Python script
-      TCollection_AsciiString aStr (aSO->GetID());
-      aStr += " = smesh.CreateMeshesFromUNV(\"";
-      aStr += Standard_CString(theFileName);
-      aStr += "\")";
-
-      AddToCurrentPyScript(aStr);
-    }
-  }
-
-  SMESH_Mesh_i* aServant = dynamic_cast<SMESH_Mesh_i*>( GetServant( aMesh ).in() );
-  ASSERT( aServant );
-  aServant->ImportUNVFile( theFileName );
-  return aMesh._retn();
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::CreateMeshFromMED
- *
- *  Create mesh and import data from MED file
- */
-//=============================================================================
-
-SMESH::mesh_array* SMESH_Gen_i::CreateMeshesFromMED( const char* theFileName,
-                                                     SMESH::DriverMED_ReadStatus& theStatus)
-     throw ( SALOME::SALOME_Exception )
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMeshFromMED" );
-
-  // Python Dump
-  TCollection_AsciiString aStr ("([");
-
-  // Retrieve mesh names from the file
-  DriverMED_R_SMESHDS_Mesh myReader;
-  myReader.SetFile( theFileName );
-  myReader.SetMeshId( -1 );
-  Driver_Mesh::Status aStatus;
-  list<string> aNames = myReader.GetMeshNames(aStatus);
-  SMESH::mesh_array_var aResult = new SMESH::mesh_array();
-  theStatus = (SMESH::DriverMED_ReadStatus)aStatus;
-  if (theStatus == SMESH::DRS_OK) {
-    SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder();
-    aStudyBuilder->NewCommand();  // There is a transaction
-    aResult->length( aNames.size() );
-    int i = 0;
-    
-    // Iterate through all meshes and create mesh objects
-    for ( list<string>::iterator it = aNames.begin(); it != aNames.end(); it++ ) {
-      // Python Dump
-      if (i > 0) aStr += ", ";
-
-      // create mesh
-      SMESH::SMESH_Mesh_var mesh = createMesh();
-      
-      // publish mesh in the study
-      SALOMEDS::SObject_var aSO;
-      if ( CanPublishInStudy( mesh ) )
-        aSO = PublishMesh( myCurrentStudy, mesh.in(), (*it).c_str() );
-      if ( !aSO->_is_nil() ) {
-        // Python Dump
-        aStr += aSO->GetID();
-      } else {
-        // Python Dump
-        aStr += "mesh_";
-        aStr += TCollection_AsciiString(i);
-      }
-
-      // Read mesh data (groups are published automatically by ImportMEDFile())
-      SMESH_Mesh_i* meshServant = dynamic_cast<SMESH_Mesh_i*>( GetServant( mesh ).in() );
-      ASSERT( meshServant );
-      SMESH::DriverMED_ReadStatus status1 =
-       meshServant->ImportMEDFile( theFileName, (*it).c_str() );
-      if (status1 > theStatus)
-       theStatus = status1;
-
-      aResult[i++] = SMESH::SMESH_Mesh::_duplicate( mesh );
-    }
-    aStudyBuilder->CommitCommand();
-  }
-
-  // Update Python script
-  aStr += "], status) = smesh.CreateMeshesFromMED(\"";
-  aStr += Standard_CString(theFileName);
-  aStr += "\")";
-
-  AddToCurrentPyScript(aStr);
-
-  return aResult._retn();
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::CreateMeshFromSTL
- *
- *  Create mesh and import data from STL file
- */
-//=============================================================================
-
-SMESH::SMESH_Mesh_ptr SMESH_Gen_i::CreateMeshesFromSTL( const char* theFileName )
-  throw ( SALOME::SALOME_Exception )
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMeshesFromSTL" );
-
-  SMESH::SMESH_Mesh_var aMesh = createMesh();
-  string aFileName; // = boost::filesystem::path(theFileName).leaf();
-  // publish mesh in the study
-  if ( CanPublishInStudy( aMesh ) ) {
-    SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder();
-    aStudyBuilder->NewCommand();  // There is a transaction
-    SALOMEDS::SObject_var aSO = PublishInStudy
-      ( myCurrentStudy, SALOMEDS::SObject::_nil(), aMesh.in(), aFileName.c_str() );
-    aStudyBuilder->CommitCommand();
-    if ( !aSO->_is_nil() ) {
-    // Update Python script
-      TCollection_AsciiString aStr (aSO->GetID());
-      aStr += " = smesh.CreateMeshesFromSTL(\"";
-      aStr += Standard_CString(theFileName);
-      aStr += "\")";
-
-      AddToCurrentPyScript(aStr);
-    }
-  }
-
-  SMESH_Mesh_i* aServant = dynamic_cast<SMESH_Mesh_i*>( GetServant( aMesh ).in() );
-  ASSERT( aServant );
-  aServant->ImportSTLFile( theFileName );
-  return aMesh._retn();
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::IsReadyToCompute
- *
- *  Returns true if mesh contains enough data to be computed
- */
-//=============================================================================
-
-CORBA::Boolean SMESH_Gen_i::IsReadyToCompute( SMESH::SMESH_Mesh_ptr theMesh,
-                                              GEOM::GEOM_Object_ptr theShapeObject )
-  throw ( SALOME::SALOME_Exception )
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::IsReadyToCompute" );
-
-  if ( CORBA::is_nil( theShapeObject ) )
-    THROW_SALOME_CORBA_EXCEPTION( "bad shape object reference", 
-                                  SALOME::BAD_PARAM );
-
-  if ( CORBA::is_nil( theMesh ) )
-    THROW_SALOME_CORBA_EXCEPTION( "bad Mesh reference",
-                                  SALOME::BAD_PARAM );
-
-  try {
-    // get mesh servant
-    SMESH_Mesh_i* meshServant = dynamic_cast<SMESH_Mesh_i*>( GetServant( theMesh ).in() );
-    ASSERT( meshServant );
-    if ( meshServant ) {
-      // get local TopoDS_Shape
-      TopoDS_Shape myLocShape = GeomObjectToShape( theShapeObject );
-      // call implementation
-      ::SMESH_Mesh& myLocMesh = meshServant->GetImpl();
-      return myGen.CheckAlgoState( myLocMesh, myLocShape );
-    }
-  }
-  catch ( SALOME_Exception& S_ex ) {
-    INFOS( "catch exception "<< S_ex.what() );
-  }
-  return false;
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::GetSubShapesId
- *
- *  Get sub-shapes unique ID's list
- */
-//=============================================================================
-
-SMESH::long_array* SMESH_Gen_i::GetSubShapesId( GEOM::GEOM_Object_ptr theMainShapeObject,
-                                           const SMESH::object_array& theListOfSubShapeObject )
-     throw ( SALOME::SALOME_Exception )
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::GetSubShapesId" );
-
-  SMESH::long_array_var shapesId = new SMESH::long_array;
-  set<int> setId;
-
-  if ( CORBA::is_nil( theMainShapeObject ) )
-    THROW_SALOME_CORBA_EXCEPTION( "bad shape object reference",
-                                  SALOME::BAD_PARAM );
-
-  try
-    {
-      TopoDS_Shape myMainShape = GeomObjectToShape(theMainShapeObject);
-      TopTools_IndexedMapOfShape myIndexToShape;      
-      TopExp::MapShapes(myMainShape,myIndexToShape);
-
-      for ( int i = 0; i < theListOfSubShapeObject.length(); i++ )
-       {
-         GEOM::GEOM_Object_var aShapeObject
-           = GEOM::GEOM_Object::_narrow(theListOfSubShapeObject[i]);
-         if ( CORBA::is_nil( aShapeObject ) )
-           THROW_SALOME_CORBA_EXCEPTION ("bad shape object reference", \
-                                       SALOME::BAD_PARAM );
-
-         TopoDS_Shape locShape  = GeomObjectToShape(aShapeObject);
-         for (TopExp_Explorer exp(locShape,TopAbs_FACE); exp.More(); exp.Next())
-           {
-             const TopoDS_Face& F = TopoDS::Face(exp.Current());
-             setId.insert(myIndexToShape.FindIndex(F));
-             if(MYDEBUG) SCRUTE(myIndexToShape.FindIndex(F));
-           }
-         for (TopExp_Explorer exp(locShape,TopAbs_EDGE); exp.More(); exp.Next())
-           {
-             const TopoDS_Edge& E = TopoDS::Edge(exp.Current());
-             setId.insert(myIndexToShape.FindIndex(E));
-             if(MYDEBUG) SCRUTE(myIndexToShape.FindIndex(E));
-           }
-         for (TopExp_Explorer exp(locShape,TopAbs_VERTEX); exp.More(); exp.Next())
-           {
-             const TopoDS_Vertex& V = TopoDS::Vertex(exp.Current());
-             setId.insert(myIndexToShape.FindIndex(V));
-             if(MYDEBUG) SCRUTE(myIndexToShape.FindIndex(V));
-           }
-       }
-      shapesId->length(setId.size());
-      set<int>::iterator iind;
-      int i=0;
-      for (iind = setId.begin(); iind != setId.end(); iind++)
-       {
-         if(MYDEBUG) SCRUTE((*iind));
-         shapesId[i] = (*iind);
-         if(MYDEBUG) SCRUTE(shapesId[i]);
-         i++;
-       }
-    }
-  catch (SALOME_Exception& S_ex)
-    {
-      THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
-    }
-
-  return shapesId._retn();
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::Compute
- *
- *  Compute mesh on a shape
- */
-//=============================================================================
-
-CORBA::Boolean SMESH_Gen_i::Compute( SMESH::SMESH_Mesh_ptr theMesh,
-                                     GEOM::GEOM_Object_ptr theShapeObject )
-     throw ( SALOME::SALOME_Exception )
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::Compute" );
-
-  if ( CORBA::is_nil( theShapeObject ) )
-    THROW_SALOME_CORBA_EXCEPTION( "bad shape object reference", 
-                                  SALOME::BAD_PARAM );
-
-  if ( CORBA::is_nil( theMesh ) )
-    THROW_SALOME_CORBA_EXCEPTION( "bad Mesh reference",
-                                  SALOME::BAD_PARAM );
-
-  // Update Python script
-  TCollection_AsciiString aStr ("isDone = smesh.Compute(");
-  SMESH_Gen_i::AddObject(aStr, theMesh) += ", ";
-  SMESH_Gen_i::AddObject(aStr, theShapeObject) += ")";
-
-  AddToCurrentPyScript(aStr);
-
-  aStr = "if isDone == 0: print \"Mesh ";
-  SMESH_Gen_i::AddObject(aStr, theMesh) += " computation failed\"";
-  AddToCurrentPyScript(aStr);
-
-  try {
-    // get mesh servant
-    SMESH_Mesh_i* meshServant = dynamic_cast<SMESH_Mesh_i*>( GetServant( theMesh ).in() );
-    ASSERT( meshServant );
-    if ( meshServant ) {
-      // get local TopoDS_Shape
-      TopoDS_Shape myLocShape = GeomObjectToShape( theShapeObject );
-      // call implementation compute
-      ::SMESH_Mesh& myLocMesh = meshServant->GetImpl();
-      return myGen.Compute( myLocMesh, myLocShape);
-    }
-  }
-  catch ( SALOME_Exception& S_ex ) {
-    INFOS( "Compute(): catch exception "<< S_ex.what() );
-  }
-  catch ( ... ) {
-    INFOS( "Compute(): unknown exception " );
-  }
-  return false;
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::Save
- *
- *  Save SMESH module's data
- */
-//=============================================================================
-SALOMEDS::TMPFile* SMESH_Gen_i::Save( SALOMEDS::SComponent_ptr theComponent,
-                                     const char*              theURL,
-                                     bool                     isMultiFile )
-{
-  INFOS( "SMESH_Gen_i::Save" );
-
-//  ASSERT( theComponent->GetStudy()->StudyId() == myCurrentStudy->StudyId() )
-  // san -- in case <myCurrentStudy> differs from theComponent's study,
-  // use that of the component
-  if ( myCurrentStudy->_is_nil() || 
-       theComponent->GetStudy()->StudyId() != myCurrentStudy->StudyId() )
-    SetCurrentStudy( theComponent->GetStudy() );
-
-  // Store study contents as a set of python commands
-  SavePython(myCurrentStudy);
-
-  StudyContext* myStudyContext = GetCurrentStudyContext();
-  
-  // Declare a byte stream
-  SALOMEDS::TMPFile_var aStreamFile;
-  
-  // Obtain a temporary dir
-  TCollection_AsciiString tmpDir =
-    ( isMultiFile ) ? TCollection_AsciiString( ( char* )theURL ) : ( char* )SALOMEDS_Tool::GetTmpDir().c_str();
-
-  // Create a sequence of files processed
-  SALOMEDS::ListOfFileNames_var aFileSeq = new SALOMEDS::ListOfFileNames;
-  aFileSeq->length( NUM_TMP_FILES );
-
-  TCollection_AsciiString aStudyName( "" );
-  if ( isMultiFile ) 
-    aStudyName = ( (char*)SALOMEDS_Tool::GetNameFromPath( myCurrentStudy->URL() ).c_str() );
-
-  // Set names of temporary files
-  TCollection_AsciiString filename =
-    aStudyName + TCollection_AsciiString( "_SMESH.hdf" );        // for SMESH data itself
-  TCollection_AsciiString meshfile =
-    aStudyName + TCollection_AsciiString( "_SMESH_Mesh.med" );   // for mesh data to be stored in MED file
-  aFileSeq[ 0 ] = CORBA::string_dup( filename.ToCString() );
-  aFileSeq[ 1 ] = CORBA::string_dup( meshfile.ToCString() );
-  filename = tmpDir + filename;
-  meshfile = tmpDir + meshfile;
-
-  HDFfile*    aFile;
-  HDFdataset* aDataset;
-  HDFgroup*   aTopGroup;
-  HDFgroup*   aGroup;
-  HDFgroup*   aSubGroup;
-  HDFgroup*   aSubSubGroup;
-  hdf_size    aSize[ 1 ];
-
-  // MED writer to be used by storage process
-  DriverMED_W_SMESHDS_Mesh myWriter;
-  myWriter.SetFile( meshfile.ToCString() );
-
-  // Write data
-  // ---> create HDF file
-  aFile = new HDFfile( filename.ToCString() );
-  aFile->CreateOnDisk();
-  
-  // --> iterator for top-level objects
-  SALOMEDS::ChildIterator_var itBig = myCurrentStudy->NewChildIterator( theComponent );
-  for ( ; itBig->More(); itBig->Next() ) {
-    SALOMEDS::SObject_var gotBranch = itBig->Value();
-
-    // --> hypotheses root branch (only one for the study)
-    if ( gotBranch->Tag() == GetHypothesisRootTag() ) {
-      // create hypotheses root HDF group
-      aTopGroup = new HDFgroup( "Hypotheses", aFile );
-      aTopGroup->CreateOnDisk();
-
-      // iterator for all hypotheses
-      SALOMEDS::ChildIterator_var it = myCurrentStudy->NewChildIterator( gotBranch );
-      for ( ; it->More(); it->Next() ) {
-        SALOMEDS::SObject_var mySObject = it->Value();
-       CORBA::Object_var anObject = SObjectToObject( mySObject );
-       if ( !CORBA::is_nil( anObject ) ) {
-          SMESH::SMESH_Hypothesis_var myHyp = SMESH::SMESH_Hypothesis::_narrow( anObject );
-          if ( !myHyp->_is_nil() ) {
-           SMESH_Hypothesis_i* myImpl = dynamic_cast<SMESH_Hypothesis_i*>( GetServant( myHyp ).in() );
-           if ( myImpl ) {
-             string hypname = string( myHyp->GetName() );
-             string libname = string( myHyp->GetLibName() );
-             int    id      = myStudyContext->findId( string( GetORB()->object_to_string( anObject ) ) );
-             string hypdata = string( myImpl->SaveTo() );
-
-             // for each hypothesis create HDF group basing on its id
-             char hypGrpName[30];
-             sprintf( hypGrpName, "Hypothesis %d", id );
-             aGroup = new HDFgroup( hypGrpName, aTopGroup );
-             aGroup->CreateOnDisk();
-             // --> type name of hypothesis
-             aSize[ 0 ] = hypname.length() + 1;
-             aDataset = new HDFdataset( "Name", aGroup, HDF_STRING, aSize, 1 );
-             aDataset->CreateOnDisk();
-             aDataset->WriteOnDisk( ( char* )( hypname.c_str() ) );
-             aDataset->CloseOnDisk();
-             // --> server plugin library name of hypothesis
-             aSize[ 0 ] = libname.length() + 1;
-             aDataset = new HDFdataset( "LibName", aGroup, HDF_STRING, aSize, 1 );
-             aDataset->CreateOnDisk();
-             aDataset->WriteOnDisk( ( char* )( libname.c_str() ) );
-             aDataset->CloseOnDisk();
-             // --> persistent data of hypothesis
-             aSize[ 0 ] = hypdata.length() + 1;
-             aDataset = new HDFdataset( "Data", aGroup, HDF_STRING, aSize, 1 );
-             aDataset->CreateOnDisk();
-             aDataset->WriteOnDisk( ( char* )( hypdata.c_str() ) );
-             aDataset->CloseOnDisk();
-             // close hypothesis HDF group
-             aGroup->CloseOnDisk();
-           }
-         }
-       }
-      }
-      // close hypotheses root HDF group
-      aTopGroup->CloseOnDisk();
-    }
-    // --> algorithms root branch (only one for the study)
-    else if ( gotBranch->Tag() == GetAlgorithmsRootTag() ) {
-      // create algorithms root HDF group
-      aTopGroup = new HDFgroup( "Algorithms", aFile );
-      aTopGroup->CreateOnDisk();
-
-      // iterator for all algorithms
-      SALOMEDS::ChildIterator_var it = myCurrentStudy->NewChildIterator( gotBranch );
-      for ( ; it->More(); it->Next() ) {
-        SALOMEDS::SObject_var mySObject = it->Value();
-       CORBA::Object_var anObject = SObjectToObject( mySObject );
-       if ( !CORBA::is_nil( anObject ) ) {
-          SMESH::SMESH_Hypothesis_var myHyp = SMESH::SMESH_Hypothesis::_narrow( anObject );
-          if ( !myHyp->_is_nil() ) {
-           SMESH_Hypothesis_i* myImpl = dynamic_cast<SMESH_Hypothesis_i*>( GetServant( myHyp ).in() );
-           if ( myImpl ) {
-             string hypname = string( myHyp->GetName() );
-             string libname = string( myHyp->GetLibName() );
-             int    id      = myStudyContext->findId( string( GetORB()->object_to_string( anObject ) ) );
-             string hypdata = string( myImpl->SaveTo() );
-
-             // for each algorithm create HDF group basing on its id
-             char hypGrpName[30];
-             sprintf( hypGrpName, "Algorithm %d", id );
-             aGroup = new HDFgroup( hypGrpName, aTopGroup );
-             aGroup->CreateOnDisk();
-             // --> type name of algorithm
-             aSize[0] = hypname.length() + 1;
-             aDataset = new HDFdataset( "Name", aGroup, HDF_STRING, aSize, 1 );
-             aDataset->CreateOnDisk();
-             aDataset->WriteOnDisk( ( char* )( hypname.c_str() ) );
-             aDataset->CloseOnDisk();
-             // --> server plugin library name of hypothesis
-             aSize[0] = libname.length() + 1;
-             aDataset = new HDFdataset( "LibName", aGroup, HDF_STRING, aSize, 1 );
-             aDataset->CreateOnDisk();
-             aDataset->WriteOnDisk( ( char* )( libname.c_str() ) );
-             aDataset->CloseOnDisk();
-             // --> persistent data of algorithm
-             aSize[0] = hypdata.length() + 1;
-             aDataset = new HDFdataset( "Data", aGroup, HDF_STRING, aSize, 1 );
-             aDataset->CreateOnDisk();
-             aDataset->WriteOnDisk( ( char* )( hypdata.c_str() ) );
-             aDataset->CloseOnDisk();
-             // close algorithm HDF group
-             aGroup->CloseOnDisk();
-           }
-         }
-       }
-      }
-      // close algorithms root HDF group
-      aTopGroup->CloseOnDisk();
-    }
-    // --> mesh objects roots branches
-    else if ( gotBranch->Tag() > GetAlgorithmsRootTag() ) {
-      CORBA::Object_var anObject = SObjectToObject( gotBranch );
-      if ( !CORBA::is_nil( anObject ) ) {
-       SMESH::SMESH_Mesh_var myMesh = SMESH::SMESH_Mesh::_narrow( anObject ) ;
-        if ( !myMesh->_is_nil() ) {
-         SMESH_Mesh_i* myImpl = dynamic_cast<SMESH_Mesh_i*>( GetServant( myMesh ).in() );
-         if ( myImpl ) {
-           int id = myStudyContext->findId( string( GetORB()->object_to_string( anObject ) ) );
-           ::SMESH_Mesh& myLocMesh = myImpl->GetImpl();
-           SMESHDS_Mesh* mySMESHDSMesh = myLocMesh.GetMeshDS();
-
-           // for each mesh open the HDF group basing on its id
-           char meshGrpName[ 30 ];
-           sprintf( meshGrpName, "Mesh %d", id );
-           aTopGroup = new HDFgroup( meshGrpName, aFile );
-           aTopGroup->CreateOnDisk();
-
-           // --> put dataset to hdf file which is a flag that mesh has data
-           string strHasData = "0";
-           // check if the mesh is not empty
-           if ( mySMESHDSMesh->NbNodes() > 0 ) {
-             // write mesh data to med file
-             myWriter.SetMesh( mySMESHDSMesh );
-             myWriter.SetMeshId( id );
-             strHasData = "1";
-           }
-           aSize[ 0 ] = strHasData.length() + 1;
-           aDataset = new HDFdataset( "Has data", aTopGroup, HDF_STRING, aSize, 1 );
-           aDataset->CreateOnDisk();
-           aDataset->WriteOnDisk( ( char* )( strHasData.c_str() ) );
-           aDataset->CloseOnDisk();
-           
-           // write reference on a shape if exists
-           SALOMEDS::SObject_var myRef;
-            bool shapeRefFound = false;
-           bool found = gotBranch->FindSubObject( GetRefOnShapeTag(), myRef );
-           if ( found ) {
-             SALOMEDS::SObject_var myShape;
-             bool ok = myRef->ReferencedObject( myShape );
-             if ( ok ) {
-                shapeRefFound = (! CORBA::is_nil( myShape->GetObject() ));
-               string myRefOnObject = myShape->GetID();
-               if ( shapeRefFound && myRefOnObject.length() > 0 ) {
-                 aSize[ 0 ] = myRefOnObject.length() + 1;
-                 aDataset = new HDFdataset( "Ref on shape", aTopGroup, HDF_STRING, aSize, 1 );
-                 aDataset->CreateOnDisk();
-                 aDataset->WriteOnDisk( ( char* )( myRefOnObject.c_str() ) );
-                 aDataset->CloseOnDisk();
-               }
-             }
-           }
-
-           // write applied hypotheses if exist
-           SALOMEDS::SObject_var myHypBranch;
-           found = gotBranch->FindSubObject( GetRefOnAppliedHypothesisTag(), myHypBranch );
-           if ( found && !shapeRefFound ) { // remove applied hyps
-              myCurrentStudy->NewBuilder()->RemoveObjectWithChildren( myHypBranch );
-            }
-           if ( found && shapeRefFound ) {
-             aGroup = new HDFgroup( "Applied Hypotheses", aTopGroup );
-             aGroup->CreateOnDisk();
-
-             SALOMEDS::ChildIterator_var it = myCurrentStudy->NewChildIterator( myHypBranch );
-             int hypNb = 0;
-             for ( ; it->More(); it->Next() ) {
-               SALOMEDS::SObject_var mySObject = it->Value();
-               SALOMEDS::SObject_var myRefOnHyp;
-               bool ok = mySObject->ReferencedObject( myRefOnHyp );
-               if ( ok ) {
-                 // san - it is impossible to recover applied hypotheses
-                  //       using their entries within Load() method,
-                 // for there are no AttributeIORs in the study when Load() is working. 
-                 // Hence, it is better to store persistent IDs of hypotheses as references to them
-
-                 //string myRefOnObject = myRefOnHyp->GetID();
-                 CORBA::Object_var anObject = SObjectToObject( myRefOnHyp );
-                 int id = myStudyContext->findId( string( GetORB()->object_to_string( anObject ) ) );
-                 //if ( myRefOnObject.length() > 0 ) {
-                 //aSize[ 0 ] = myRefOnObject.length() + 1;
-                 char hypName[ 30 ], hypId[ 30 ];
-                 sprintf( hypName, "Hyp %d", ++hypNb );
-                 sprintf( hypId, "%d", id );
-                 aSize[ 0 ] = strlen( hypId ) + 1;
-                 aDataset = new HDFdataset( hypName, aGroup, HDF_STRING, aSize, 1 );
-                 aDataset->CreateOnDisk();
-                 //aDataset->WriteOnDisk( ( char* )( myRefOnObject.c_str() ) );
-                 aDataset->WriteOnDisk( hypId );
-                 aDataset->CloseOnDisk();
-                 //}
-               }
-             }
-             aGroup->CloseOnDisk();
-           }
-
-           // write applied algorithms if exist
-           SALOMEDS::SObject_var myAlgoBranch;
-           found = gotBranch->FindSubObject( GetRefOnAppliedAlgorithmsTag(), myAlgoBranch );
-           if ( found && !shapeRefFound ) { // remove applied algos
-              myCurrentStudy->NewBuilder()->RemoveObjectWithChildren( myAlgoBranch );
-            }
-           if ( found && shapeRefFound ) {
-             aGroup = new HDFgroup( "Applied Algorithms", aTopGroup );
-             aGroup->CreateOnDisk();
-
-             SALOMEDS::ChildIterator_var it = myCurrentStudy->NewChildIterator( myAlgoBranch );
-             int algoNb = 0;
-             for ( ; it->More(); it->Next() ) {
-               SALOMEDS::SObject_var mySObject = it->Value();
-               SALOMEDS::SObject_var myRefOnAlgo;
-               bool ok = mySObject->ReferencedObject( myRefOnAlgo );
-               if ( ok ) {
-                 // san - it is impossible to recover applied algorithms
-                  //       using their entries within Load() method,
-                 // for there are no AttributeIORs in the study when Load() is working. 
-                 // Hence, it is better to store persistent IDs of algorithms as references to them
-
-                 //string myRefOnObject = myRefOnAlgo->GetID();
-                 CORBA::Object_var anObject = SObjectToObject( myRefOnAlgo );
-                 int id = myStudyContext->findId( string( GetORB()->object_to_string( anObject ) ) );
-                 //if ( myRefOnObject.length() > 0 ) {
-                 //aSize[ 0 ] = myRefOnObject.length() + 1;
-                 char algoName[ 30 ], algoId[ 30 ];
-                 sprintf( algoName, "Algo %d", ++algoNb );
-                 sprintf( algoId, "%d", id );
-                 aSize[ 0 ] = strlen( algoId ) + 1;
-                 aDataset = new HDFdataset( algoName, aGroup, HDF_STRING, aSize, 1 );
-                 aDataset->CreateOnDisk();
-                 //aDataset->WriteOnDisk( ( char* )( myRefOnObject.c_str() ) );
-                 aDataset->WriteOnDisk( algoId );
-                 aDataset->CloseOnDisk();
-                 //}
-               }
-             }
-             aGroup->CloseOnDisk();
-           }
-
-           // --> submesh objects sub-branches
-
-           for ( int i = GetSubMeshOnVertexTag(); i <= GetSubMeshOnCompoundTag(); i++ ) {
-             SALOMEDS::SObject_var mySubmeshBranch;
-             found = gotBranch->FindSubObject( i, mySubmeshBranch );
-
-              if ( found ) // check if there is shape reference in submeshes
-              {
-                bool hasShapeRef = false;
-               SALOMEDS::ChildIterator_var itSM =
-                  myCurrentStudy->NewChildIterator( mySubmeshBranch );
-               for ( ; itSM->More(); itSM->Next() ) {
-                 SALOMEDS::SObject_var mySubRef, myShape, mySObject = itSM->Value();
-                  if ( mySObject->FindSubObject( GetRefOnShapeTag(), mySubRef ))
-                    mySubRef->ReferencedObject( myShape );
-                  if ( !CORBA::is_nil( myShape ) && !CORBA::is_nil( myShape->GetObject() ))
-                    hasShapeRef = true;
-                  else
-                  { // remove one submesh
-                    if ( shapeRefFound )
-                    { // unassign hypothesis
-                      SMESH::SMESH_subMesh_var mySubMesh =
-                        SMESH::SMESH_subMesh::_narrow( SObjectToObject( mySObject ));
-                      if ( !mySubMesh->_is_nil() ) {
-                        int shapeID = mySubMesh->GetId();
-                        TopoDS_Shape S = mySMESHDSMesh->IndexToShape( shapeID );
-                        const list<const SMESHDS_Hypothesis*>& hypList =
-                          mySMESHDSMesh->GetHypothesis( S );
-                        list<const SMESHDS_Hypothesis*>::const_iterator hyp = hypList.begin();
-                        while ( hyp != hypList.end() ) {
-                          int hypID = (*hyp++)->GetID(); // goto next hyp here because
-                          myLocMesh.RemoveHypothesis( S, hypID ); // hypList changes here
-                        }
-                      }
-                    }
-                    myCurrentStudy->NewBuilder()->RemoveObjectWithChildren( mySObject );
-                  }
-                } // loop on submeshes of a type
-                if ( !shapeRefFound || !hasShapeRef ) { // remove the whole submeshes branch
-                  myCurrentStudy->NewBuilder()->RemoveObjectWithChildren( mySubmeshBranch );
-                  found = false;
-                }
-              }  // end check if there is shape reference in submeshes
-             if ( found ) {
-               char name_meshgroup[ 30 ];
-               if ( i == GetSubMeshOnVertexTag() )
-                 strcpy( name_meshgroup, "SubMeshes On Vertex" );
-               else if ( i == GetSubMeshOnEdgeTag() )
-                 strcpy( name_meshgroup, "SubMeshes On Edge" );
-               else if ( i == GetSubMeshOnWireTag() )
-                 strcpy( name_meshgroup, "SubMeshes On Wire" );
-               else if ( i == GetSubMeshOnFaceTag() )
-                 strcpy( name_meshgroup, "SubMeshes On Face" );
-               else if ( i == GetSubMeshOnShellTag() )
-                 strcpy( name_meshgroup, "SubMeshes On Shell" );
-               else if ( i == GetSubMeshOnSolidTag() )
-                 strcpy( name_meshgroup, "SubMeshes On Solid" );
-               else if ( i == GetSubMeshOnCompoundTag() )
-                 strcpy( name_meshgroup, "SubMeshes On Compound" );
-               
-               // for each type of submeshes create container HDF group
-               aGroup = new HDFgroup( name_meshgroup, aTopGroup );
-               aGroup->CreateOnDisk();
-           
-               // iterator for all submeshes of given type
-               SALOMEDS::ChildIterator_var itSM = myCurrentStudy->NewChildIterator( mySubmeshBranch );
-               for ( ; itSM->More(); itSM->Next() ) {
-                 SALOMEDS::SObject_var mySObject = itSM->Value();
-                 CORBA::Object_var anSubObject = SObjectToObject( mySObject );
-                 if ( !CORBA::is_nil( anSubObject ))
-                  {
-                   SMESH::SMESH_subMesh_var mySubMesh = SMESH::SMESH_subMesh::_narrow( anSubObject ) ;
-                   int subid = myStudyContext->findId( string( GetORB()->object_to_string( anSubObject ) ) );
-                     
-                   // for each mesh open the HDF group basing on its id
-                   char submeshGrpName[ 30 ];
-                   sprintf( submeshGrpName, "SubMesh %d", subid );
-                   aSubGroup = new HDFgroup( submeshGrpName, aGroup );
-                   aSubGroup->CreateOnDisk();
-
-                   // write reference on a shape, already checked if it exists
-                    SALOMEDS::SObject_var mySubRef, myShape;
-                    if ( mySObject->FindSubObject( GetRefOnShapeTag(), mySubRef ))
-                      mySubRef->ReferencedObject( myShape );
-                    string myRefOnObject = myShape->GetID();
-                    if ( myRefOnObject.length() > 0 ) {
-                      aSize[ 0 ] = myRefOnObject.length() + 1;
-                      aDataset = new HDFdataset( "Ref on shape", aSubGroup, HDF_STRING, aSize, 1 );
-                      aDataset->CreateOnDisk();
-                      aDataset->WriteOnDisk( ( char* )( myRefOnObject.c_str() ) );
-                      aDataset->CloseOnDisk();
-                    }
-
-                   // write applied hypotheses if exist
-                   SALOMEDS::SObject_var mySubHypBranch;
-                   found = mySObject->FindSubObject( GetRefOnAppliedHypothesisTag(), mySubHypBranch );
-                   if ( found ) {
-                     aSubSubGroup = new HDFgroup( "Applied Hypotheses", aSubGroup );
-                     aSubSubGroup->CreateOnDisk();
-
-                     SALOMEDS::ChildIterator_var it = myCurrentStudy->NewChildIterator( mySubHypBranch );
-                     int hypNb = 0;
-                     for ( ; it->More(); it->Next() ) {
-                       SALOMEDS::SObject_var mySubSObject = it->Value();
-                       SALOMEDS::SObject_var myRefOnHyp;
-                       bool ok = mySubSObject->ReferencedObject( myRefOnHyp );
-                       if ( ok ) {
-                         //string myRefOnObject = myRefOnHyp->GetID();
-                         CORBA::Object_var anObject = SObjectToObject( myRefOnHyp );
-                         int id = myStudyContext->findId( string( GetORB()->object_to_string( anObject ) ) );
-                         //if ( myRefOnObject.length() > 0 ) {
-                         //aSize[ 0 ] = myRefOnObject.length() + 1;
-                         char hypName[ 30 ], hypId[ 30 ];
-                         sprintf( hypName, "Hyp %d", ++hypNb );
-                         sprintf( hypId, "%d", id );
-                         aSize[ 0 ] = strlen( hypId ) + 1;
-                         aDataset = new HDFdataset( hypName, aSubSubGroup, HDF_STRING, aSize, 1 );
-                         aDataset->CreateOnDisk();
-                         //aDataset->WriteOnDisk( ( char* )( myRefOnObject.c_str() ) );
-                         aDataset->WriteOnDisk( hypId );
-                         aDataset->CloseOnDisk();
-                         //}
-                       }
-                     }
-                     aSubSubGroup->CloseOnDisk();
-                   }
-                   
-                   // write applied algorithms if exist
-                   SALOMEDS::SObject_var mySubAlgoBranch;
-                   found = mySObject->FindSubObject( GetRefOnAppliedAlgorithmsTag(), mySubAlgoBranch );
-                   if ( found ) {
-                     aSubSubGroup = new HDFgroup( "Applied Algorithms", aSubGroup );
-                     aSubSubGroup->CreateOnDisk();
-
-                     SALOMEDS::ChildIterator_var it = myCurrentStudy->NewChildIterator( mySubAlgoBranch );
-                     int algoNb = 0;
-                     for ( ; it->More(); it->Next() ) {
-                       SALOMEDS::SObject_var mySubSObject = it->Value();
-                       SALOMEDS::SObject_var myRefOnAlgo;
-                       bool ok = mySubSObject->ReferencedObject( myRefOnAlgo );
-                       if ( ok ) {
-                         //string myRefOnObject = myRefOnAlgo->GetID();
-                         CORBA::Object_var anObject = SObjectToObject( myRefOnAlgo );
-                         int id = myStudyContext->findId( string( GetORB()->object_to_string( anObject ) ) );
-                         //if ( myRefOnObject.length() > 0 ) {
-                         //aSize[ 0 ] = myRefOnObject.length() + 1;
-                         char algoName[ 30 ], algoId[ 30 ];
-                         sprintf( algoName, "Algo %d", ++algoNb );
-                         sprintf( algoId, "%d", id );
-                         aSize[ 0 ] = strlen( algoId ) + 1;
-                         aDataset = new HDFdataset( algoName, aSubSubGroup, HDF_STRING, aSize, 1 );
-                         aDataset->CreateOnDisk();
-                         //aDataset->WriteOnDisk( ( char* )( myRefOnObject.c_str() ) );
-                         aDataset->WriteOnDisk( algoId );
-                         aDataset->CloseOnDisk();
-                         //}
-                       }
-                     }
-                     aSubSubGroup->CloseOnDisk();
-                   }
-                   // close submesh HDF group
-                   aSubGroup->CloseOnDisk();
-                 }
-               }
-               // close container of submeshes by type HDF group
-               aGroup->CloseOnDisk();
-             }
-           }
-            // All sub-meshes will be stored in MED file
-            if ( shapeRefFound )
-              myWriter.AddAllSubMeshes();
-
-           // groups root sub-branch
-           SALOMEDS::SObject_var myGroupsBranch;
-           for ( int i = GetNodeGroupsTag(); i <= GetVolumeGroupsTag(); i++ ) {
-             found = gotBranch->FindSubObject( i, myGroupsBranch );
-             if ( found ) {
-               char name_group[ 30 ];
-               if ( i == GetNodeGroupsTag() )
-                 strcpy( name_group, "Groups of Nodes" );
-               else if ( i == GetEdgeGroupsTag() )
-                 strcpy( name_group, "Groups of Edges" );
-               else if ( i == GetFaceGroupsTag() )
-                 strcpy( name_group, "Groups of Faces" );
-               else if ( i == GetVolumeGroupsTag() )
-                 strcpy( name_group, "Groups of Volumes" );
-
-               aGroup = new HDFgroup( name_group, aTopGroup );
-               aGroup->CreateOnDisk();
-
-               SALOMEDS::ChildIterator_var it = myCurrentStudy->NewChildIterator( myGroupsBranch );
-               for ( ; it->More(); it->Next() ) {
-                 SALOMEDS::SObject_var mySObject = it->Value();
-                 CORBA::Object_var aSubObject = SObjectToObject( mySObject );
-                 if ( !CORBA::is_nil( aSubObject ) ) {
-                   SMESH_GroupBase_i* myGroupImpl =
-                      dynamic_cast<SMESH_GroupBase_i*>( GetServant( aSubObject ).in() );
-                   if ( !myGroupImpl )
-                     continue;
-
-                   int anId = myStudyContext->findId( string( GetORB()->object_to_string( aSubObject ) ) );
-                   
-                   // For each group, create a dataset named "Group <group_persistent_id>"
-                    // and store the group's user name into it
-                   char grpName[ 30 ];
-                   sprintf( grpName, "Group %d", anId );
-                   char* aUserName = myGroupImpl->GetName();
-                   aSize[ 0 ] = strlen( aUserName ) + 1;
-
-                   aDataset = new HDFdataset( grpName, aGroup, HDF_STRING, aSize, 1 );
-                   aDataset->CreateOnDisk();
-                   aDataset->WriteOnDisk( aUserName );
-                   aDataset->CloseOnDisk();
-
-                   // Store the group contents into MED file
-                   if ( myLocMesh.GetGroup( myGroupImpl->GetLocalID() ) ) {
-
-                     if(MYDEBUG) MESSAGE( "VSR - SMESH_Gen_i::Save(): saving group with StoreName = "
-                              << grpName << " to MED file" );
-                     SMESHDS_GroupBase* aGrpBaseDS =
-                        myLocMesh.GetGroup( myGroupImpl->GetLocalID() )->GetGroupDS();
-                     aGrpBaseDS->SetStoreName( grpName );
-
-                     // Pass SMESHDS_Group to MED writer 
-                     SMESHDS_Group* aGrpDS = dynamic_cast<SMESHDS_Group*>( aGrpBaseDS );
-                      if ( aGrpDS )
-                        myWriter.AddGroup( aGrpDS );
-
-                      // write reference on a shape if exists
-                      SMESHDS_GroupOnGeom* aGeomGrp =
-                        dynamic_cast<SMESHDS_GroupOnGeom*>( aGrpBaseDS );
-                      if ( aGeomGrp ) {
-                        SALOMEDS::SObject_var mySubRef, myShape;
-                        if (mySObject->FindSubObject( GetRefOnShapeTag(), mySubRef ) &&
-                            mySubRef->ReferencedObject( myShape ) &&
-                            !CORBA::is_nil( myShape->GetObject() ))
-                        {
-                          string myRefOnObject = myShape->GetID();
-                          if ( myRefOnObject.length() > 0 ) {
-                            char aRefName[ 30 ];
-                            sprintf( aRefName, "Ref on shape %d", anId);
-                            aSize[ 0 ] = myRefOnObject.length() + 1;
-                            aDataset = new HDFdataset(aRefName, aGroup, HDF_STRING, aSize, 1);
-                            aDataset->CreateOnDisk();
-                            aDataset->WriteOnDisk( ( char* )( myRefOnObject.c_str() ) );
-                            aDataset->CloseOnDisk();
-                          }
-                        }
-                        else // shape ref is invalid:
-                        {
-                          // save a group on geometry as ordinary group
-                          myWriter.AddGroup( aGeomGrp );
-                        }
-                      }
-                   }
-                 }
-               }
-               aGroup->CloseOnDisk();
-             }
-           } // loop on groups 
-
-           if ( strcmp( strHasData.c_str(), "1" ) == 0 )
-            {
-              // Flush current mesh information into MED file
-             myWriter.Perform();
-
-              // maybe a shape was deleted in the study
-              if ( !shapeRefFound && !mySMESHDSMesh->ShapeToMesh().IsNull() ) {
-                TopoDS_Shape nullShape;
-                myLocMesh.ShapeToMesh( nullShape ); // remove shape referring data
-              }
-
-              // Store node positions on sub-shapes (SMDS_Position):
-
-              if ( !mySMESHDSMesh->SubMeshes().empty() )
-              {
-                aGroup = new HDFgroup( "Node Positions", aTopGroup );
-                aGroup->CreateOnDisk();
-
-                // in aGroup, create 5 datasets to contain:
-                // "Nodes on Edges" - ID of node on edge
-                // "Edge positions" - U parameter on node on edge
-                // "Nodes on Faces" - ID of node on face
-                // "Face U positions" - U parameter of node on face
-                // "Face V positions" - V parameter of node on face
-
-                // Find out nb of nodes on edges and faces
-                // Collect corresponing sub-meshes
-                int nbEdgeNodes = 0, nbFaceNodes = 0;
-                list<SMESHDS_SubMesh*> aEdgeSM, aFaceSM;
-                // loop on SMESHDS_SubMesh'es
-                const map<int,SMESHDS_SubMesh*>& aSubMeshes = mySMESHDSMesh->SubMeshes();
-                map<int,SMESHDS_SubMesh*>::const_iterator itSubM ( aSubMeshes.begin() );
-                for ( ; itSubM != aSubMeshes.end() ; itSubM++ )
-                {
-                  SMESHDS_SubMesh* aSubMesh = (*itSubM).second;
-                  if ( aSubMesh->IsComplexSubmesh() )
-                    continue; // submesh containing other submeshs
-                  int nbNodes = aSubMesh->NbNodes();
-                  if ( nbNodes == 0 ) continue;
-
-                  int aShapeID = (*itSubM).first;
-                  int aShapeType = mySMESHDSMesh->IndexToShape( aShapeID ).ShapeType();
-                  // write only SMDS_FacePosition and SMDS_EdgePosition
-                  switch ( aShapeType ) {
-                  case TopAbs_FACE:
-                    nbFaceNodes += nbNodes;
-                    aFaceSM.push_back( aSubMesh );
-                    break;
-                  case TopAbs_EDGE:
-                    nbEdgeNodes += nbNodes;
-                    aEdgeSM.push_back( aSubMesh );
-                    break;
-                  default:
-                    continue;
-                  }
-                }
-                // Treat positions on edges or faces
-                for ( int onFace = 0; onFace < 2; onFace++ )
-                {
-                  // Create arrays to store in datasets
-                  int iNode = 0, nbNodes = ( onFace ? nbFaceNodes : nbEdgeNodes );
-                  if (!nbNodes) continue;
-                  int* aNodeIDs = new int [ nbNodes ];
-                  double* aUPos = new double [ nbNodes ];
-                  double* aVPos = ( onFace ? new double[ nbNodes ] : 0 );
-
-                  // Fill arrays
-                  // loop on sub-meshes
-                  list<SMESHDS_SubMesh*> * pListSM = ( onFace ? &aFaceSM : &aEdgeSM );
-                  list<SMESHDS_SubMesh*>::iterator itSM = pListSM->begin();
-                  for ( ; itSM != pListSM->end(); itSM++ )
-                  {
-                    SMESHDS_SubMesh* aSubMesh = (*itSM);
-                    if ( aSubMesh->IsComplexSubmesh() )
-                      continue; // submesh containing other submeshs
-
-                    SMDS_NodeIteratorPtr itNode = aSubMesh->GetNodes();
-                    // loop on nodes in aSubMesh
-                    while ( itNode->more() )
-                    {
-                      //node ID
-                      const SMDS_MeshNode* node = itNode->next();
-                      aNodeIDs [ iNode ] = node->GetID();
-
-                      // Position
-                      const SMDS_PositionPtr pos = node->GetPosition();
-                      if ( onFace ) { // on FACE
-                        const SMDS_FacePosition* fPos =
-                          dynamic_cast<const SMDS_FacePosition*>( pos.get() );
-                        if ( fPos ) {
-                          aUPos[ iNode ] = fPos->GetUParameter();
-                          aVPos[ iNode ] = fPos->GetVParameter();
-                          iNode++;
-                        }
-                        else
-                          nbNodes--;
-                      }
-                      else { // on EDGE
-                        const SMDS_EdgePosition* ePos =
-                          dynamic_cast<const SMDS_EdgePosition*>( pos.get() );
-                        if ( ePos ) {
-                          aUPos[ iNode ] = ePos->GetUParameter();
-                          iNode++;
-                        }
-                        else
-                          nbNodes--;
-                      }
-                    } // loop on nodes in aSubMesh
-                  } // loop on sub-meshes
-
-                  // Write datasets
-                  if ( nbNodes )
-                  {
-                    aSize[ 0 ] = nbNodes*sizeof(int);
-                    // IDS
-                    string aDSName( onFace ? "Nodes on Faces" : "Nodes on Edges");
-                    aDataset = new HDFdataset( (char*)aDSName.c_str(), aGroup, HDF_STRING, aSize, 1 );
-                    aDataset->CreateOnDisk();
-                    aDataset->WriteOnDisk( aNodeIDs );
-                    aDataset->CloseOnDisk();
-
-                   aSize[ 0 ] = nbNodes;
-                    // U Positions
-                    aDSName = ( onFace ? "Face U positions" : "Edge positions");
-                    aDataset = new HDFdataset( (char*)aDSName.c_str(), aGroup, HDF_FLOAT64, aSize, 1);
-                    aDataset->CreateOnDisk();
-                    aDataset->WriteOnDisk( aUPos );
-                    aDataset->CloseOnDisk();
-                    // V Positions
-                    if ( onFace ) {
-                      aDataset = new HDFdataset( "Face V positions", aGroup, HDF_FLOAT64, aSize, 1);
-                      aDataset->CreateOnDisk();
-                      aDataset->WriteOnDisk( aVPos );
-                      aDataset->CloseOnDisk();
-                    }
-                  }
-                  delete [] aNodeIDs;
-                  delete [] aUPos;
-                  if ( aVPos ) delete [] aVPos;
-
-                } // treat positions on edges or faces
-
-                // close "Node Positions" group
-                aGroup->CloseOnDisk(); 
-
-              } // if ( there are submeshes in SMESHDS_Mesh )
-            } // if ( hasData )
-
-           // close mesh HDF group
-           aTopGroup->CloseOnDisk();
-         }
-       }
-      }
-    }
-  }
-
-  // close HDF file
-  aFile->CloseOnDisk();
-  delete aFile;
-
-  // Convert temporary files to stream
-  aStreamFile = SALOMEDS_Tool::PutFilesToStream( tmpDir.ToCString(), aFileSeq.in(), isMultiFile );
-
-  // Remove temporary files and directory
-  if ( !isMultiFile ) 
-    SALOMEDS_Tool::RemoveTemporaryFiles( tmpDir.ToCString(), aFileSeq.in(), true );
-
-  INFOS( "SMESH_Gen_i::Save() completed" );
-  return aStreamFile._retn();
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::SaveASCII
- *
- *  Save SMESH module's data in ASCII format (not implemented yet)
- */
-//=============================================================================
-
-SALOMEDS::TMPFile* SMESH_Gen_i::SaveASCII( SALOMEDS::SComponent_ptr theComponent,
-                                          const char*              theURL,
-                                          bool                     isMultiFile ) {
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::SaveASCII" );
-  SALOMEDS::TMPFile_var aStreamFile = Save( theComponent, theURL, isMultiFile );
-  return aStreamFile._retn();
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::loadGeomData
- *
- *  Load GEOM module data
- */
-//=============================================================================
-
-void SMESH_Gen_i::loadGeomData( SALOMEDS::SComponent_ptr theCompRoot )
-{
-  if ( theCompRoot->_is_nil() )
-    return;
-
-  SALOMEDS::Study_var aStudy = SALOMEDS::Study::_narrow( theCompRoot->GetStudy() );
-  if ( aStudy->_is_nil() )
-    return;
-
-  SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder(); 
-  aStudyBuilder->LoadWith( theCompRoot, GetGeomEngine() );
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::Load
- *
- *  Load SMESH module's data
- */
-//=============================================================================
-
-bool SMESH_Gen_i::Load( SALOMEDS::SComponent_ptr theComponent,
-                       const SALOMEDS::TMPFile& theStream,
-                       const char*              theURL,
-                       bool                     isMultiFile )
-{
-  INFOS( "SMESH_Gen_i::Load" );
-
-  if ( myCurrentStudy->_is_nil() || 
-       theComponent->GetStudy()->StudyId() != myCurrentStudy->StudyId() )
-    SetCurrentStudy( theComponent->GetStudy() );
-
-  StudyContext* myStudyContext = GetCurrentStudyContext();
-  
-  // Get temporary files location
-  TCollection_AsciiString tmpDir =
-    isMultiFile ? TCollection_AsciiString( ( char* )theURL ) : ( char* )SALOMEDS_Tool::GetTmpDir().c_str();
-
-  // Convert the stream into sequence of files to process
-  SALOMEDS::ListOfFileNames_var aFileSeq = SALOMEDS_Tool::PutStreamToFiles( theStream,
-                                                                            tmpDir.ToCString(),
-                                                                           isMultiFile );
-  TCollection_AsciiString aStudyName( "" );
-  if ( isMultiFile ) 
-    aStudyName = ( (char*)SALOMEDS_Tool::GetNameFromPath( myCurrentStudy->URL() ).c_str() );
-
-  // Set names of temporary files
-  TCollection_AsciiString filename = tmpDir + aStudyName + TCollection_AsciiString( "_SMESH.hdf" );
-  TCollection_AsciiString meshfile = tmpDir + aStudyName + TCollection_AsciiString( "_SMESH_Mesh.med" );
-
-  int size;
-  HDFfile*    aFile;
-  HDFdataset* aDataset;
-  HDFgroup*   aTopGroup;
-  HDFgroup*   aGroup;
-  HDFgroup*   aSubGroup;
-  HDFgroup*   aSubSubGroup;
-
-  // Read data
-  // ---> open HDF file
-  aFile = new HDFfile( filename.ToCString() );
-  try {
-    aFile->OpenOnDisk( HDF_RDONLY );
-  }
-  catch ( HDFexception ) {
-    INFOS( "Load(): " << filename << " not found!" );
-    return false;
-  }
-
-  DriverMED_R_SMESHDS_Mesh myReader;
-  myReader.SetFile( meshfile.ToCString() );
-
-  // get total number of top-level groups
-  int aNbGroups = aFile->nInternalObjects(); 
-  if ( aNbGroups > 0 ) {
-    // --> in first turn we should read&create hypotheses
-    if ( aFile->ExistInternalObject( "Hypotheses" ) ) {
-      // open hypotheses root HDF group
-      aTopGroup = new HDFgroup( "Hypotheses", aFile ); 
-      aTopGroup->OpenOnDisk();
-
-      // get number of hypotheses
-      int aNbObjects = aTopGroup->nInternalObjects(); 
-      for ( int j = 0; j < aNbObjects; j++ ) {
-       // try to identify hypothesis
-       char hypGrpName[ HDF_NAME_MAX_LEN+1 ];
-        aTopGroup->InternalObjectIndentify( j, hypGrpName );
-
-       if ( string( hypGrpName ).substr( 0, 10 ) == string( "Hypothesis" ) ) {
-         // open hypothesis group
-         aGroup = new HDFgroup( hypGrpName, aTopGroup ); 
-         aGroup->OpenOnDisk();
-
-         // --> get hypothesis id
-         int    id = atoi( string( hypGrpName ).substr( 10 ).c_str() );
-         string hypname;
-         string libname;
-         string hypdata;
-
-         // get number of datasets
-         int aNbSubObjects = aGroup->nInternalObjects();
-         for ( int k = 0; k < aNbSubObjects; k++ ) {
-           // identify dataset
-           char name_of_subgroup[ HDF_NAME_MAX_LEN+1 ];
-           aGroup->InternalObjectIndentify( k, name_of_subgroup );
-           // --> get hypothesis name
-           if ( strcmp( name_of_subgroup, "Name"  ) == 0 ) {
-             aDataset = new HDFdataset( name_of_subgroup, aGroup );
-             aDataset->OpenOnDisk();
-             size = aDataset->GetSize();
-             char* hypname_str = new char[ size ];
-             aDataset->ReadFromDisk( hypname_str );
-             hypname = string( hypname_str );
-             delete hypname_str;
-             aDataset->CloseOnDisk();
-           }
-           // --> get hypothesis plugin library name
-           if ( strcmp( name_of_subgroup, "LibName"  ) == 0 ) {
-             aDataset = new HDFdataset( name_of_subgroup, aGroup );
-             aDataset->OpenOnDisk();
-             size = aDataset->GetSize();
-             char* libname_str = new char[ size ];
-             aDataset->ReadFromDisk( libname_str );
-             if(MYDEBUG) SCRUTE( libname_str );
-             libname = string( libname_str );
-             delete libname_str;
-             aDataset->CloseOnDisk();
-           }
-           // --> get hypothesis data
-           if ( strcmp( name_of_subgroup, "Data"  ) == 0 ) {
-             aDataset = new HDFdataset( name_of_subgroup, aGroup );
-             aDataset->OpenOnDisk();
-             size = aDataset->GetSize();
-             char* hypdata_str = new char[ size ];
-             aDataset->ReadFromDisk( hypdata_str );
-             hypdata = string( hypdata_str );
-             delete hypdata_str;
-             aDataset->CloseOnDisk();
-           }
-         }
-         // close hypothesis HDF group
-         aGroup->CloseOnDisk();
-
-         // --> restore hypothesis from data
-         if ( id > 0 && !hypname.empty()/* && !hypdata.empty()*/ ) { // VSR : persistent data can be empty
-           if(MYDEBUG) MESSAGE("VSR - load hypothesis : id = " << id <<
-                    ", name = " << hypname.c_str() << ", persistent string = " << hypdata.c_str());
-            SMESH::SMESH_Hypothesis_var myHyp;
-           
-           try { // protect persistence mechanism against exceptions
-             myHyp = this->createHypothesis( hypname.c_str(), libname.c_str() );
-           }
-           catch (...) {
-             INFOS( "Exception during hypothesis creation" );
-           }
-
-           SMESH_Hypothesis_i* myImpl = dynamic_cast<SMESH_Hypothesis_i*>( GetServant( myHyp ).in() );
-           if ( myImpl ) {
-             myImpl->LoadFrom( hypdata.c_str() );
-             string iorString = GetORB()->object_to_string( myHyp );
-             int newId = myStudyContext->findId( iorString );
-             myStudyContext->mapOldToNew( id, newId );
-           }
-           else
-             if(MYDEBUG) MESSAGE( "VSR - SMESH_Gen::Load - can't get servant" );
-          }
-        }
-      }
-      // close hypotheses root HDF group
-      aTopGroup->CloseOnDisk();
-    }
-
-    // --> then we should read&create algorithms
-    if ( aFile->ExistInternalObject( "Algorithms" ) ) {
-      // open algorithms root HDF group
-      aTopGroup = new HDFgroup( "Algorithms", aFile ); 
-      aTopGroup->OpenOnDisk();
-
-      // get number of algorithms
-      int aNbObjects = aTopGroup->nInternalObjects(); 
-      for ( int j = 0; j < aNbObjects; j++ ) {
-       // try to identify algorithm
-       char hypGrpName[ HDF_NAME_MAX_LEN+1 ];
-        aTopGroup->InternalObjectIndentify( j, hypGrpName );
-
-       if ( string( hypGrpName ).substr( 0, 9 ) == string( "Algorithm" ) ) {
-         // open algorithm group
-         aGroup = new HDFgroup( hypGrpName, aTopGroup ); 
-         aGroup->OpenOnDisk();
-
-         // --> get algorithm id
-         int    id = atoi( string( hypGrpName ).substr( 9 ).c_str() );
-         string hypname;
-         string libname;
-         string hypdata;
-
-         // get number of datasets
-         int aNbSubObjects = aGroup->nInternalObjects();
-         for ( int k = 0; k < aNbSubObjects; k++ ) {
-           // identify dataset
-           char name_of_subgroup[ HDF_NAME_MAX_LEN+1 ];
-           aGroup->InternalObjectIndentify( k, name_of_subgroup );
-           // --> get algorithm name
-           if ( strcmp( name_of_subgroup, "Name"  ) == 0 ) {
-             aDataset = new HDFdataset( name_of_subgroup, aGroup );
-             aDataset->OpenOnDisk();
-             size = aDataset->GetSize();
-             char* hypname_str = new char[ size ];
-             aDataset->ReadFromDisk( hypname_str );
-             hypname = string( hypname_str );
-             delete hypname_str;
-             aDataset->CloseOnDisk();
-           }
-           // --> get algorithm plugin library name
-           if ( strcmp( name_of_subgroup, "LibName"  ) == 0 ) {
-             aDataset = new HDFdataset( name_of_subgroup, aGroup );
-             aDataset->OpenOnDisk();
-             size = aDataset->GetSize();
-             char* libname_str = new char[ size ];
-             aDataset->ReadFromDisk( libname_str );
-             if(MYDEBUG) SCRUTE( libname_str );
-             libname = string( libname_str );
-             delete libname_str;
-             aDataset->CloseOnDisk();
-           }
-           // --> get algorithm data
-           if ( strcmp( name_of_subgroup, "Data"  ) == 0 ) {
-             aDataset = new HDFdataset( name_of_subgroup, aGroup );
-             aDataset->OpenOnDisk();
-             size = aDataset->GetSize();
-             char* hypdata_str = new char[ size ];
-             aDataset->ReadFromDisk( hypdata_str );
-             if(MYDEBUG) SCRUTE( hypdata_str );
-             hypdata = string( hypdata_str );
-             delete hypdata_str;
-             aDataset->CloseOnDisk();
-           }
-         }
-         // close algorithm HDF group
-         aGroup->CloseOnDisk();
-         
-         // --> restore algorithm from data
-         if ( id > 0 && !hypname.empty()/* && !hypdata.empty()*/ ) { // VSR : persistent data can be empty
-           if(MYDEBUG) MESSAGE("VSR - load algo : id = " << id <<
-                    ", name = " << hypname.c_str() << ", persistent string = " << hypdata.c_str());
-            SMESH::SMESH_Hypothesis_var myHyp;
-                   
-           try { // protect persistence mechanism against exceptions
-             myHyp = this->createHypothesis( hypname.c_str(), libname.c_str() );
-           }
-           catch (...) {
-             INFOS( "Exception during hypothesis creation" );
-           }
-           
-           SMESH_Hypothesis_i* myImpl = dynamic_cast<SMESH_Hypothesis_i*>( GetServant( myHyp ).in() );
-           if ( myImpl ) {
-             myImpl->LoadFrom( hypdata.c_str() );
-             string iorString = GetORB()->object_to_string( myHyp );
-             int newId = myStudyContext->findId( iorString );
-             myStudyContext->mapOldToNew( id, newId );
-           }
-           else
-             if(MYDEBUG) MESSAGE( "VSR - SMESH_Gen::Load - can't get servant" );
-          }
-        }
-      }
-      // close algorithms root HDF group
-      aTopGroup->CloseOnDisk();
-    }
-
-    // --> the rest groups should be meshes
-    for ( int i = 0; i < aNbGroups; i++ ) {
-      // identify next group
-      char meshName[ HDF_NAME_MAX_LEN+1 ];
-      aFile->InternalObjectIndentify( i, meshName );
-
-      if ( string( meshName ).substr( 0, 4 ) == string( "Mesh" ) ) {
-       // --> get mesh id
-       int id = atoi( string( meshName ).substr( 4 ).c_str() );
-       if ( id <= 0 )
-         continue;
-
-       bool hasData = false;
-
-       // open mesh HDF group
-       aTopGroup = new HDFgroup( meshName, aFile ); 
-       aTopGroup->OpenOnDisk();
-
-       // get number of child HDF objects
-       int aNbObjects = aTopGroup->nInternalObjects(); 
-       if ( aNbObjects > 0 ) {
-         // create mesh
-         if(MYDEBUG) MESSAGE( "VSR - load mesh : id = " << id );
-         SMESH::SMESH_Mesh_var myNewMesh = this->createMesh();
-         SMESH_Mesh_i* myNewMeshImpl = dynamic_cast<SMESH_Mesh_i*>( GetServant( myNewMesh ).in() );
-          if ( !myNewMeshImpl )
-           continue;
-         string iorString = GetORB()->object_to_string( myNewMesh );
-         int newId = myStudyContext->findId( iorString );
-         myStudyContext->mapOldToNew( id, newId );
-         
-         ::SMESH_Mesh& myLocMesh = myNewMeshImpl->GetImpl();
-         SMESHDS_Mesh* mySMESHDSMesh = myLocMesh.GetMeshDS();
-
-         // try to find mesh data dataset
-         if ( aTopGroup->ExistInternalObject( "Has data" ) ) {
-           // load mesh "has data" flag
-           aDataset = new HDFdataset( "Has data", aTopGroup );
-           aDataset->OpenOnDisk();
-           size = aDataset->GetSize();
-           char* strHasData = new char[ size ];
-           aDataset->ReadFromDisk( strHasData );
-           aDataset->CloseOnDisk();
-           if ( strcmp( strHasData, "1") == 0 ) {
-             // read mesh data from MED file
-             myReader.SetMesh( mySMESHDSMesh );
-             myReader.SetMeshId( id );
-             myReader.Perform();
-             hasData = true;
-           }
-         }
-
-         // try to read and set reference to shape
-         GEOM::GEOM_Object_var aShapeObject;
-         if ( aTopGroup->ExistInternalObject( "Ref on shape" ) ) {
-           // load mesh "Ref on shape" - it's an entry to SObject
-           aDataset = new HDFdataset( "Ref on shape", aTopGroup );
-           aDataset->OpenOnDisk();
-           size = aDataset->GetSize();
-           char* refFromFile = new char[ size ];
-           aDataset->ReadFromDisk( refFromFile );
-           aDataset->CloseOnDisk();
-           if ( strlen( refFromFile ) > 0 ) {
-             SALOMEDS::SObject_var shapeSO = myCurrentStudy->FindObjectID( refFromFile );
-
-             // Make sure GEOM data are loaded first
-             loadGeomData( shapeSO->GetFatherComponent() );
-
-             CORBA::Object_var shapeObject = SObjectToObject( shapeSO );
-             if ( !CORBA::is_nil( shapeObject ) ) {
-               aShapeObject = GEOM::GEOM_Object::_narrow( shapeObject );
-               if ( !aShapeObject->_is_nil() )
-                 myNewMeshImpl->SetShape( aShapeObject );
-             }
-           }
-         }
-
-         // try to get applied algorithms
-         if ( aTopGroup->ExistInternalObject( "Applied Algorithms" ) ) {
-           aGroup = new HDFgroup( "Applied Algorithms", aTopGroup );
-           aGroup->OpenOnDisk();
-           // get number of applied algorithms
-           int aNbSubObjects = aGroup->nInternalObjects(); 
-           if(MYDEBUG) MESSAGE( "VSR - number of applied algos " << aNbSubObjects );
-           for ( int j = 0; j < aNbSubObjects; j++ ) {
-             char name_dataset[ HDF_NAME_MAX_LEN+1 ];
-             aGroup->InternalObjectIndentify( j, name_dataset );
-             // check if it is an algorithm
-             if ( string( name_dataset ).substr( 0, 4 ) == string( "Algo" ) ) {
-               aDataset = new HDFdataset( name_dataset, aGroup );
-               aDataset->OpenOnDisk();
-               size = aDataset->GetSize();
-               char* refFromFile = new char[ size ];
-               aDataset->ReadFromDisk( refFromFile );
-               aDataset->CloseOnDisk();
-
-               // san - it is impossible to recover applied algorithms using their entries within Load() method
-               
-               //SALOMEDS::SObject_var hypSO = myCurrentStudy->FindObjectID( refFromFile );
-               //CORBA::Object_var hypObject = SObjectToObject( hypSO );
-               int id = atoi( refFromFile );
-               string anIOR = myStudyContext->getIORbyOldId( id );
-               if ( !anIOR.empty() ) {
-                 CORBA::Object_var hypObject = GetORB()->string_to_object( anIOR.c_str() );
-                 if ( !CORBA::is_nil( hypObject ) ) {
-                   SMESH::SMESH_Hypothesis_var anHyp = SMESH::SMESH_Hypothesis::_narrow( hypObject );
-                   if ( !anHyp->_is_nil() && !aShapeObject->_is_nil() )
-                     myNewMeshImpl->addHypothesis( aShapeObject, anHyp );
-                 }
-               }
-             }
-           }
-           aGroup->CloseOnDisk();
-         }
-
-         // try to get applied hypotheses
-         if ( aTopGroup->ExistInternalObject( "Applied Hypotheses" ) ) {
-           aGroup = new HDFgroup( "Applied Hypotheses", aTopGroup );
-           aGroup->OpenOnDisk();
-           // get number of applied hypotheses
-           int aNbSubObjects = aGroup->nInternalObjects(); 
-           for ( int j = 0; j < aNbSubObjects; j++ ) {
-             char name_dataset[ HDF_NAME_MAX_LEN+1 ];
-             aGroup->InternalObjectIndentify( j, name_dataset );
-             // check if it is a hypothesis
-             if ( string( name_dataset ).substr( 0, 3 ) == string( "Hyp" ) ) {
-               aDataset = new HDFdataset( name_dataset, aGroup );
-               aDataset->OpenOnDisk();
-               size = aDataset->GetSize();
-               char* refFromFile = new char[ size ];
-               aDataset->ReadFromDisk( refFromFile );
-               aDataset->CloseOnDisk();
-
-               // san - it is impossible to recover applied hypotheses using their entries within Load() method
-               
-               //SALOMEDS::SObject_var hypSO = myCurrentStudy->FindObjectID( refFromFile );
-               //CORBA::Object_var hypObject = SObjectToObject( hypSO );
-               int id = atoi( refFromFile );
-               string anIOR = myStudyContext->getIORbyOldId( id );
-               if ( !anIOR.empty() ) {
-                 CORBA::Object_var hypObject = GetORB()->string_to_object( anIOR.c_str() );
-                 if ( !CORBA::is_nil( hypObject ) ) {
-                   SMESH::SMESH_Hypothesis_var anHyp = SMESH::SMESH_Hypothesis::_narrow( hypObject );
-                   if ( !anHyp->_is_nil() && !aShapeObject->_is_nil() )
-                     myNewMeshImpl->addHypothesis( aShapeObject, anHyp );
-                 }
-               }
-             }
-           }
-           aGroup->CloseOnDisk();
-         }
-
-         // --> try to find submeshes containers for each type of submesh
-         for ( int j = GetSubMeshOnVertexTag(); j <= GetSubMeshOnCompoundTag(); j++ ) {
-           char name_meshgroup[ 30 ];
-           if ( j == GetSubMeshOnVertexTag() )
-             strcpy( name_meshgroup, "SubMeshes On Vertex" );
-           else if ( j == GetSubMeshOnEdgeTag() )
-             strcpy( name_meshgroup, "SubMeshes On Edge" );
-           else if ( j == GetSubMeshOnWireTag() )
-             strcpy( name_meshgroup, "SubMeshes On Wire" );
-           else if ( j == GetSubMeshOnFaceTag() )
-             strcpy( name_meshgroup, "SubMeshes On Face" );
-           else if ( j == GetSubMeshOnShellTag() )
-             strcpy( name_meshgroup, "SubMeshes On Shell" );
-           else if ( j == GetSubMeshOnSolidTag() )
-             strcpy( name_meshgroup, "SubMeshes On Solid" );
-           else if ( j == GetSubMeshOnCompoundTag() )
-             strcpy( name_meshgroup, "SubMeshes On Compound" );
-           
-           // try to get submeshes container HDF group
-           if ( aTopGroup->ExistInternalObject( name_meshgroup ) ) {
-             // open submeshes containers HDF group
-             aGroup = new HDFgroup( name_meshgroup, aTopGroup );
-             aGroup->OpenOnDisk();
-             
-             // get number of submeshes
-             int aNbSubMeshes = aGroup->nInternalObjects(); 
-             for ( int k = 0; k < aNbSubMeshes; k++ ) {
-               // identify submesh
-               char name_submeshgroup[ HDF_NAME_MAX_LEN+1 ];
-               aGroup->InternalObjectIndentify( k, name_submeshgroup );
-               if ( string( name_submeshgroup ).substr( 0, 7 ) == string( "SubMesh" )  ) {
-                 // --> get submesh id
-                 int subid = atoi( string( name_submeshgroup ).substr( 7 ).c_str() );
-                 if ( subid <= 0 )
-                   continue;
-                 // open submesh HDF group
-                 aSubGroup = new HDFgroup( name_submeshgroup, aGroup );
-                 aSubGroup->OpenOnDisk();
-                 
-                 // try to read and set reference to subshape
-                 GEOM::GEOM_Object_var aSubShapeObject;
-                 SMESH::SMESH_subMesh_var aSubMesh;
-
-                 if ( aSubGroup->ExistInternalObject( "Ref on shape" ) ) {
-                   // load submesh "Ref on shape" - it's an entry to SObject
-                   aDataset = new HDFdataset( "Ref on shape", aSubGroup );
-                   aDataset->OpenOnDisk();
-                   size = aDataset->GetSize();
-                   char* refFromFile = new char[ size ];
-                   aDataset->ReadFromDisk( refFromFile );
-                   aDataset->CloseOnDisk();
-                   if ( strlen( refFromFile ) > 0 ) {
-                     SALOMEDS::SObject_var subShapeSO = myCurrentStudy->FindObjectID( refFromFile );
-                     CORBA::Object_var subShapeObject = SObjectToObject( subShapeSO );
-                     if ( !CORBA::is_nil( subShapeObject ) ) {
-                       aSubShapeObject = GEOM::GEOM_Object::_narrow( subShapeObject );
-                       if ( !aSubShapeObject->_is_nil() )
-                         aSubMesh = SMESH::SMESH_subMesh::_duplicate
-                            ( myNewMeshImpl->createSubMesh( aSubShapeObject ) );
-                       if ( aSubMesh->_is_nil() )
-                         continue;
-                       string iorSubString = GetORB()->object_to_string( aSubMesh );
-                       int newSubId = myStudyContext->findId( iorSubString );
-                       myStudyContext->mapOldToNew( subid, newSubId );
-                     }
-                   }
-                 }
-                 
-                 if ( aSubMesh->_is_nil() )
-                   continue;
-
-                 // VSR: Get submesh data from MED convertor
-//               int anInternalSubmeshId = aSubMesh->GetId(); // this is not a persistent ID, it's an internal one computed from sub-shape
-//               if (myNewMeshImpl->_mapSubMesh.find(anInternalSubmeshId) != myNewMeshImpl->_mapSubMesh.end()) {
-//                 if(MYDEBUG) MESSAGE("VSR - SMESH_Gen_i::Load(): loading from MED file submesh with ID = " <<
-//                            subid << " for subshape # " << anInternalSubmeshId);
-//                 SMESHDS_SubMesh* aSubMeshDS =
-//                      myNewMeshImpl->_mapSubMesh[anInternalSubmeshId]->CreateSubMeshDS();
-//                 if ( !aSubMeshDS ) {
-//                   if(MYDEBUG) MESSAGE("VSR - SMESH_Gen_i::Load(): FAILED to create a submesh for subshape # " <<
-//                              anInternalSubmeshId << " in current mesh!");
-//                 }
-//                 else
-//                   myReader.GetSubMesh( aSubMeshDS, subid );
-//               }
-                   
-                 // try to get applied algorithms
-                 if ( aSubGroup->ExistInternalObject( "Applied Algorithms" ) ) {
-                   // open "applied algorithms" HDF group
-                   aSubSubGroup = new HDFgroup( "Applied Algorithms", aSubGroup );
-                   aSubSubGroup->OpenOnDisk();
-                   // get number of applied algorithms
-                   int aNbSubObjects = aSubSubGroup->nInternalObjects(); 
-                   for ( int l = 0; l < aNbSubObjects; l++ ) {
-                     char name_dataset[ HDF_NAME_MAX_LEN+1 ];
-                     aSubSubGroup->InternalObjectIndentify( l, name_dataset );
-                     // check if it is an algorithm
-                     if ( string( name_dataset ).substr( 0, 4 ) == string( "Algo" ) ) {
-                       aDataset = new HDFdataset( name_dataset, aSubSubGroup );
-                       aDataset->OpenOnDisk();
-                       size = aDataset->GetSize();
-                       char* refFromFile = new char[ size ];
-                       aDataset->ReadFromDisk( refFromFile );
-                       aDataset->CloseOnDisk();
-
-                       //SALOMEDS::SObject_var hypSO = myCurrentStudy->FindObjectID( refFromFile );
-                       //CORBA::Object_var hypObject = SObjectToObject( hypSO );
-                       int id = atoi( refFromFile );
-                       string anIOR = myStudyContext->getIORbyOldId( id );
-                       if ( !anIOR.empty() ) {
-                         CORBA::Object_var hypObject = GetORB()->string_to_object( anIOR.c_str() );
-                         if ( !CORBA::is_nil( hypObject ) ) {
-                           SMESH::SMESH_Hypothesis_var anHyp = SMESH::SMESH_Hypothesis::_narrow( hypObject );
-                           if ( !anHyp->_is_nil() && !aShapeObject->_is_nil() )
-                             myNewMeshImpl->addHypothesis( aSubShapeObject, anHyp );
-                         }
-                       }
-                     }
-                   }
-                   // close "applied algorithms" HDF group
-                   aSubSubGroup->CloseOnDisk();
-                 }
-                 
-                 // try to get applied hypotheses
-                 if ( aSubGroup->ExistInternalObject( "Applied Hypotheses" ) ) {
-                   // open "applied hypotheses" HDF group
-                   aSubSubGroup = new HDFgroup( "Applied Hypotheses", aSubGroup );
-                   aSubSubGroup->OpenOnDisk();
-                   // get number of applied hypotheses
-                   int aNbSubObjects = aSubSubGroup->nInternalObjects(); 
-                   for ( int l = 0; l < aNbSubObjects; l++ ) {
-                     char name_dataset[ HDF_NAME_MAX_LEN+1 ];
-                     aSubSubGroup->InternalObjectIndentify( l, name_dataset );
-                     // check if it is a hypothesis
-                     if ( string( name_dataset ).substr( 0, 3 ) == string( "Hyp" ) ) {
-                       aDataset = new HDFdataset( name_dataset, aSubSubGroup );
-                       aDataset->OpenOnDisk();
-                       size = aDataset->GetSize();
-                       char* refFromFile = new char[ size ];
-                       aDataset->ReadFromDisk( refFromFile );
-                       aDataset->CloseOnDisk();
-                       
-                       //SALOMEDS::SObject_var hypSO = myCurrentStudy->FindObjectID( refFromFile );
-                       //CORBA::Object_var hypObject = SObjectToObject( hypSO );
-                       int id = atoi( refFromFile );
-                       string anIOR = myStudyContext->getIORbyOldId( id );
-                       if ( !anIOR.empty() ) {
-                         CORBA::Object_var hypObject = GetORB()->string_to_object( anIOR.c_str() );
-                         if ( !CORBA::is_nil( hypObject ) ) {
-                           SMESH::SMESH_Hypothesis_var anHyp = SMESH::SMESH_Hypothesis::_narrow( hypObject );
-                           if ( !anHyp->_is_nil() && !aShapeObject->_is_nil() )
-                             myNewMeshImpl->addHypothesis( aSubShapeObject, anHyp );
-                         }
-                       }
-                     }
-                   }
-                   // close "applied hypotheses" HDF group
-                   aSubSubGroup->CloseOnDisk();
-                 }
-
-                 // close submesh HDF group
-                 aSubGroup->CloseOnDisk();
-               }
-             }
-             // close submeshes containers HDF group
-             aGroup->CloseOnDisk();
-           }
-         }
-
-         if(hasData) {
-           // Read sub-meshes from MED
-           if(MYDEBUG) MESSAGE("JFA - Create all sub-meshes");
-           myReader.CreateAllSubMeshes();
-
-
-            // Read node positions on sub-shapes (SMDS_Position)
-
-            if ( aTopGroup->ExistInternalObject( "Node Positions" ))
-            {
-              // There are 5 datasets to read:
-              // "Nodes on Edges" - ID of node on edge
-              // "Edge positions" - U parameter on node on edge
-              // "Nodes on Faces" - ID of node on face
-              // "Face U positions" - U parameter of node on face
-              // "Face V positions" - V parameter of node on face
-              char* aEid_DSName = "Nodes on Edges";
-              char* aEu_DSName  = "Edge positions";
-              char* aFu_DSName  = "Face U positions";
-              //char* aFid_DSName = "Nodes on Faces";
-              //char* aFv_DSName  = "Face V positions";
-
-              // data to retrieve
-              int nbEids = 0, nbFids = 0;
-              int *aEids = 0, *aFids  = 0;
-              double *aEpos = 0, *aFupos = 0, *aFvpos = 0;
-
-              // open a group
-              aGroup = new HDFgroup( "Node Positions", aTopGroup ); 
-              aGroup->OpenOnDisk();
-
-              // loop on 5 data sets
-              int aNbObjects = aGroup->nInternalObjects();
-              for ( int i = 0; i < aNbObjects; i++ )
-              {
-                // identify dataset
-                char aDSName[ HDF_NAME_MAX_LEN+1 ];
-                aGroup->InternalObjectIndentify( i, aDSName );
-                // read data
-                aDataset = new HDFdataset( aDSName, aGroup );
-                aDataset->OpenOnDisk();
-                if ( aDataset->GetType() == HDF_FLOAT64 ) // Positions
-                {
-                  double* pos = new double [ aDataset->GetSize() ];
-                  aDataset->ReadFromDisk( pos );
-                  // which one?
-                  if ( strncmp( aDSName, aEu_DSName, strlen( aEu_DSName )) == 0 )
-                    aEpos = pos;
-                  else if ( strncmp( aDSName, aFu_DSName, strlen( aFu_DSName )) == 0 )
-                    aFupos = pos;
-                  else
-                    aFvpos = pos;
-                }
-                else // NODE IDS
-                {
-                 int aSize = aDataset->GetSize()/sizeof(int);
-                 int* ids = new int [aSize];
-                  aDataset->ReadFromDisk( ids );
-                  // on face or nodes?
-                  if ( strncmp( aDSName, aEid_DSName, strlen( aEid_DSName )) == 0 ) {
-                    aEids = ids;
-                    nbEids = aSize;
-                  }
-                  else {
-                    aFids = ids;
-                    nbFids = aSize;
-                  }
-                }
-              } // loop on 5 datasets
-
-              // Set node positions on edges or faces
-              for ( int onFace = 0; onFace < 2; onFace++ )
-              {
-                int nbNodes = ( onFace ? nbFids : nbEids );
-                if ( nbNodes == 0 ) continue;
-                int* aNodeIDs = ( onFace ? aFids : aEids );
-                double* aUPos = ( onFace ? aFupos : aEpos );
-                double* aVPos = ( onFace ? aFvpos : 0 );
-                // loop on node IDs
-                for ( int iNode = 0; iNode < nbNodes; iNode++ )
-                {
-                  const SMDS_MeshNode* node = mySMESHDSMesh->FindNode( aNodeIDs[ iNode ]);
-                  ASSERT( node );
-                  SMDS_PositionPtr aPos = node->GetPosition();
-                  ASSERT( aPos )
-                  if ( onFace ) {
-                    ASSERT( aPos->GetTypeOfPosition() == SMDS_TOP_FACE );
-                    SMDS_FacePosition* fPos = const_cast<SMDS_FacePosition*>
-                      ( static_cast<const SMDS_FacePosition*>( aPos.get() ));
-                    fPos->SetUParameter( aUPos[ iNode ]);
-                    fPos->SetVParameter( aVPos[ iNode ]);
-                  }
-                  else {
-                    ASSERT( aPos->GetTypeOfPosition() == SMDS_TOP_EDGE );
-                    SMDS_EdgePosition* fPos = const_cast<SMDS_EdgePosition*>
-                      ( static_cast<const SMDS_EdgePosition*>( aPos.get() ));
-                    fPos->SetUParameter( aUPos[ iNode ]);
-                  }
-                }
-              }
-              if ( aEids ) delete [] aEids;
-              if ( aFids ) delete [] aFids;
-              if ( aEpos ) delete [] aEpos;
-              if ( aFupos ) delete [] aFupos;
-              if ( aFvpos ) delete [] aFvpos;
-              
-              aGroup->CloseOnDisk();
-
-            } // if ( aTopGroup->ExistInternalObject( "Node Positions" ) )
-         } // if ( hasData )
-
-          // Recompute State (as computed sub-meshes are restored from MED)
-         if ( !aShapeObject->_is_nil() ) {
-           MESSAGE("JFA - Compute State Engine ...");
-           TopoDS_Shape myLocShape = GeomObjectToShape( aShapeObject );
-           myNewMeshImpl->GetImpl().GetSubMesh(myLocShape)->ComputeStateEngine
-              (SMESH_subMesh::SUBMESH_RESTORED);
-           MESSAGE("JFA - Compute State Engine finished");
-         }
-
-         // try to get groups
-         for ( int ii = GetNodeGroupsTag(); ii <= GetVolumeGroupsTag(); ii++ ) {
-           char name_group[ 30 ];
-           if ( ii == GetNodeGroupsTag() )
-             strcpy( name_group, "Groups of Nodes" );
-           else if ( ii == GetEdgeGroupsTag() )
-             strcpy( name_group, "Groups of Edges" );
-           else if ( ii == GetFaceGroupsTag() )
-             strcpy( name_group, "Groups of Faces" );
-           else if ( ii == GetVolumeGroupsTag() )
-             strcpy( name_group, "Groups of Volumes" );
-
-           if ( aTopGroup->ExistInternalObject( name_group ) ) {
-             aGroup = new HDFgroup( name_group, aTopGroup );
-             aGroup->OpenOnDisk();
-             // get number of groups
-             int aNbSubObjects = aGroup->nInternalObjects(); 
-             for ( int j = 0; j < aNbSubObjects; j++ ) {
-               char name_dataset[ HDF_NAME_MAX_LEN+1 ];
-               aGroup->InternalObjectIndentify( j, name_dataset );
-               // check if it is an group
-               if ( string( name_dataset ).substr( 0, 5 ) == string( "Group" ) ) {
-                 // --> get group id
-                 int subid = atoi( string( name_dataset ).substr( 5 ).c_str() );
-                 if ( subid <= 0 )
-                   continue;
-                 aDataset = new HDFdataset( name_dataset, aGroup );
-                 aDataset->OpenOnDisk();
-
-                 // Retrieve actual group name
-                 size = aDataset->GetSize();
-                 char* nameFromFile = new char[ size ];
-                 aDataset->ReadFromDisk( nameFromFile );
-                 aDataset->CloseOnDisk();
-
-                 // Try to find a shape reference
-                  TopoDS_Shape aShape;
-                  char aRefName[ 30 ];
-                  sprintf( aRefName, "Ref on shape %d", subid);
-                  if ( aGroup->ExistInternalObject( aRefName ) ) {
-                    // load mesh "Ref on shape" - it's an entry to SObject
-                    aDataset = new HDFdataset( aRefName, aGroup );
-                    aDataset->OpenOnDisk();
-                    size = aDataset->GetSize();
-                    char* refFromFile = new char[ size ];
-                    aDataset->ReadFromDisk( refFromFile );
-                    aDataset->CloseOnDisk();
-                    if ( strlen( refFromFile ) > 0 ) {
-                      SALOMEDS::SObject_var shapeSO = myCurrentStudy->FindObjectID( refFromFile );
-                      CORBA::Object_var shapeObject = SObjectToObject( shapeSO );
-                      if ( !CORBA::is_nil( shapeObject ) ) {
-                        aShapeObject = GEOM::GEOM_Object::_narrow( shapeObject );
-                        if ( !aShapeObject->_is_nil() )
-                          aShape = GeomObjectToShape( aShapeObject );
-                      }
-                    }
-                  }
-                 // Create group servant
-                  SMESH::ElementType type = (SMESH::ElementType)(ii - GetNodeGroupsTag() + 1);
-                 SMESH::SMESH_GroupBase_var aNewGroup = SMESH::SMESH_GroupBase::_duplicate
-                    ( myNewMeshImpl->createGroup( type, nameFromFile, aShape ) );
-                 // Obtain a SMESHDS_Group object 
-                 if ( aNewGroup->_is_nil() )
-                   continue;
-
-                 string iorSubString = GetORB()->object_to_string( aNewGroup );
-                 int newSubId = myStudyContext->findId( iorSubString );
-                 myStudyContext->mapOldToNew( subid, newSubId );
-
-                 SMESH_GroupBase_i* aGroupImpl =
-                    dynamic_cast<SMESH_GroupBase_i*>( GetServant( aNewGroup ).in() );
-                 if ( !aGroupImpl )
-                   continue;
-
-                 SMESH_Group* aLocalGroup  = myLocMesh.GetGroup( aGroupImpl->GetLocalID() );
-                 if ( !aLocalGroup )
-                   continue;
-
-                 SMESHDS_GroupBase* aGroupBaseDS = aLocalGroup->GetGroupDS();
-                 aGroupBaseDS->SetStoreName( name_dataset );
-
-                 // Fill group with contents from MED file
-                  SMESHDS_Group* aGrp = dynamic_cast<SMESHDS_Group*>( aGroupBaseDS );
-                  if ( aGrp )
-                    myReader.GetGroup( aGrp );
-               }
-             }
-             aGroup->CloseOnDisk();
-           }
-         }
-       }
-       // close mesh group
-       aTopGroup->CloseOnDisk();       
-      }
-    }
-  }
-  // close HDF file
-  aFile->CloseOnDisk();
-  delete aFile;
-
-  // Remove temporary files created from the stream
-  if ( !isMultiFile ) 
-    SALOMEDS_Tool::RemoveTemporaryFiles( tmpDir.ToCString(), aFileSeq.in(), true );
-
-  INFOS( "SMESH_Gen_i::Load completed" );
-  return true;
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::LoadASCII
- *
- *  Load SMESH module's data in ASCII format (not implemented yet)
- */
-//=============================================================================
-
-bool SMESH_Gen_i::LoadASCII( SALOMEDS::SComponent_ptr theComponent,
-                            const SALOMEDS::TMPFile& theStream,
-                            const char*              theURL,
-                            bool                     isMultiFile ) {
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::LoadASCII" );
-  return Load( theComponent, theStream, theURL, isMultiFile );
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::Close
- *
- *  Clears study-connected data when it is closed
- */
-//=============================================================================
-
-void SMESH_Gen_i::Close( SALOMEDS::SComponent_ptr theComponent )
-{
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::Close" );
-
-  // Clear study contexts data
-  int studyId = GetCurrentStudyID();
-  if ( myStudyContextMap.find( studyId ) != myStudyContextMap.end() ) {
-    delete myStudyContextMap[ studyId ];
-    myStudyContextMap.erase( studyId );
-  }
-  return;
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::ComponentDataType
- * 
- *  Get component data type
- */
-//=============================================================================
-
-char* SMESH_Gen_i::ComponentDataType()
-{
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::ComponentDataType" );
-  return CORBA::string_dup( "SMESH" );
-}
-
-    
-//=============================================================================
-/*!
- *  SMESH_Gen_i::IORToLocalPersistentID
- *  
- *  Transform data from transient form to persistent
- */
-//=============================================================================
-
-char* SMESH_Gen_i::IORToLocalPersistentID( SALOMEDS::SObject_ptr /*theSObject*/,
-                                          const char*           IORString,
-                                          CORBA::Boolean        /*isMultiFile*/,
-                                          CORBA::Boolean        /*isASCII*/ )
-{
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::IORToLocalPersistentID" );
-  StudyContext* myStudyContext = GetCurrentStudyContext();
-  
-  if ( myStudyContext && strcmp( IORString, "" ) != 0 ) {
-    int anId = myStudyContext->findId( IORString );
-    if ( anId ) {
-      if(MYDEBUG) MESSAGE( "VSR " << anId )
-      char strId[ 20 ];
-      sprintf( strId, "%d", anId );
-      return  CORBA::string_dup( strId );
-    }
-  }
-  return CORBA::string_dup( "" );
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::LocalPersistentIDToIOR
- *
- *  Transform data from persistent form to transient
- */
-//=============================================================================
-
-char* SMESH_Gen_i::LocalPersistentIDToIOR( SALOMEDS::SObject_ptr /*theSObject*/,
-                                          const char*           aLocalPersistentID,
-                                          CORBA::Boolean        /*isMultiFile*/,
-                                          CORBA::Boolean        /*isASCII*/ )
-{
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::LocalPersistentIDToIOR(): id = " << aLocalPersistentID );
-  StudyContext* myStudyContext = GetCurrentStudyContext();
-
-  if ( myStudyContext && strcmp( aLocalPersistentID, "" ) != 0 ) {
-    int anId = atoi( aLocalPersistentID );
-    return CORBA::string_dup( myStudyContext->getIORbyOldId( anId ).c_str() );
-  }
-  return CORBA::string_dup( "" );
-}
-
-//=======================================================================
-//function : RegisterObject
-//purpose  : 
-//=======================================================================
-
-int SMESH_Gen_i::RegisterObject(CORBA::Object_ptr theObject)
-{
-  StudyContext* myStudyContext = GetCurrentStudyContext();
-  if ( myStudyContext && !CORBA::is_nil( theObject )) {
-    string iorString = GetORB()->object_to_string( theObject );
-    return myStudyContext->addObject( iorString );
-  }
-  return 0;
-}
-      
-//=============================================================================
-/*! 
- *  SMESHEngine_factory
- *
- *  C factory, accessible with dlsym, after dlopen  
- */
-//=============================================================================
-
-extern "C"
-{
-  PortableServer::ObjectId* SMESHEngine_factory( CORBA::ORB_ptr            orb,
-                                                PortableServer::POA_ptr   poa, 
-                                                PortableServer::ObjectId* contId,
-                                                const char*               instanceName, 
-                                                const char*               interfaceName )
-  {
-    if(MYDEBUG) MESSAGE( "PortableServer::ObjectId* SMESHEngine_factory()" );
-    if(MYDEBUG) SCRUTE(interfaceName);
-    SMESH_Gen_i* aSMESHGen = new SMESH_Gen_i(orb, poa, contId, instanceName, interfaceName);
-    return aSMESHGen->getId() ;
-  }
-}
diff --git a/src/SMESH_I/SMESH_Gen_i.hxx b/src/SMESH_I/SMESH_Gen_i.hxx
deleted file mode 100644 (file)
index 152edb6..0000000
+++ /dev/null
@@ -1,444 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Gen_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_GEN_I_HXX_
-#define _SMESH_GEN_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Gen)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-#include CORBA_SERVER_HEADER(SMESH_Hypothesis)
-#include CORBA_CLIENT_HEADER(GEOM_Gen)
-#include CORBA_CLIENT_HEADER(SALOMEDS)
-#include CORBA_CLIENT_HEADER(SALOMEDS_Attributes)
-
-#include "SMESH_Mesh_i.hxx"
-#include "SMESH_Hypothesis_i.hxx"
-#include "SALOME_Component_i.hxx"
-#include "SALOME_NamingService.hxx"
-
-#include "SMESH_Gen.hxx"
-#include "GEOM_Client.hxx"
-
-#include <TCollection_AsciiString.hxx>
-#include <Resource_DataMapOfAsciiStringAsciiString.hxx>
-#include <TColStd_HSequenceOfAsciiString.hxx>
-
-#include <map>
-#include <sstream>
-
-class SMESH_Mesh_i;
-class SALOME_LifeCycleCORBA;
-
-// ===========================================================
-// Study context - stores study-connected objects references
-// ==========================================================
-class StudyContext
-{
-public:
-  // constructor
-  StudyContext() {}
-  // destructor
-  ~StudyContext() 
-  { 
-    mapIdToIOR.clear();
-    mapIdToId.clear();
-  }
-  // register object in the internal map and return its id
-  int addObject( string theIOR )
-  {
-    int nextId = getNextId();
-    mapIdToIOR[ nextId ]  = theIOR;
-    return nextId;
-  }
-  // find the object id in the internal map by the IOR
-  int findId( string theIOR )
-  {
-    map<int, string>::iterator imap;
-    for ( imap = mapIdToIOR.begin(); imap != mapIdToIOR.end(); ++imap ) {
-      if ( imap->second == theIOR )
-        return imap->first;
-    }
-    return 0;
-  }
-  // get object's IOR by id
-  string getIORbyId( const int theId )
-  {
-    if ( mapIdToIOR.find( theId ) != mapIdToIOR.end() )
-      return mapIdToIOR[ theId ];
-    return string( "" );
-  }
-  // get object's IOR by old id
-  string getIORbyOldId( const int theOldId )
-  {
-    if ( mapIdToId.find( theOldId ) != mapIdToId.end() )
-      return getIORbyId( mapIdToId[ theOldId ] );
-    return string( "" );
-  }
-  // maps old object id to the new one (used when restoring data)
-  void mapOldToNew( const int oldId, const int newId ) {
-    mapIdToId[ oldId ] = newId;
-  }
-    
-private:
-  // get next free object identifier
-  int getNextId()
-  {
-    int id = 1;
-    while( mapIdToIOR.find( id ) != mapIdToIOR.end() )
-      id++;
-    return id;
-  }
-
-  map<int, string> mapIdToIOR;      // persistent-to-transient map
-  map<int, int>    mapIdToId;       // used to translate object from persistent to transient form
-};
-
-// ===========================================================
-// SMESH module's engine
-// ==========================================================
-class SMESH_Gen_i:
-  public virtual POA_SMESH::SMESH_Gen,
-  public virtual Engines_Component_i 
-{
-public:
-  // Get last created instance of the class
-  static SMESH_Gen_i* GetSMESHGen() { return mySMESHGen;}
-  // Get ORB object
-  static CORBA::ORB_var GetORB() { return myOrb;}
-  // Get SMESH module's POA object
-  static PortableServer::POA_var GetPOA() { return myPoa;}
-  // Get Naming Service object
-  static SALOME_NamingService* GetNS();
-  // Get SALOME_LifeCycleCORBA object
-  static SALOME_LifeCycleCORBA* GetLCC();
-  // Retrieve and get GEOM engine reference
-  static GEOM::GEOM_Gen_ptr GetGeomEngine();
-  // Get object of the CORBA reference
-  static PortableServer::ServantBase_var GetServant( CORBA::Object_ptr theObject );
-  // Get CORBA object corresponding to the SALOMEDS::SObject
-  static CORBA::Object_var SObjectToObject( SALOMEDS::SObject_ptr theSObject );
-  // Get the SALOMEDS::SObject corresponding to a CORBA object
-  static SALOMEDS::SObject_ptr ObjectToSObject(SALOMEDS::Study_ptr theStudy,
-                                               CORBA::Object_ptr   theObject);
-  // Get GEOM Object correspoding to TopoDS_Shape
-  GEOM::GEOM_Object_ptr ShapeToGeomObject (const TopoDS_Shape& theShape );
-  // Get TopoDS_Shape correspoding to GEOM_Object
-  TopoDS_Shape GeomObjectToShape(GEOM::GEOM_Object_ptr theGeomObject);
-  
-  // Default constructor
-  SMESH_Gen_i();
-  // Standard constructor
-  SMESH_Gen_i( CORBA::ORB_ptr            orb,
-               PortableServer::POA_ptr   poa,
-               PortableServer::ObjectId* contId, 
-               const char*               instanceName, 
-               const char*               interfaceName );
-  // Destructor
-  virtual ~SMESH_Gen_i();
-  
-  // *****************************************
-  // Interface methods
-  // *****************************************
-
-  // Set current study
-  void SetCurrentStudy( SALOMEDS::Study_ptr theStudy );
-  // Get current study
-  SALOMEDS::Study_ptr GetCurrentStudy();
-
-  // Create hypothesis/algorothm of given type
-  SMESH::SMESH_Hypothesis_ptr CreateHypothesis (const char* theHypType,
-                                                const char* theLibName)
-    throw ( SALOME::SALOME_Exception );
-  
-  // Create empty mesh on a shape
-  SMESH::SMESH_Mesh_ptr CreateMesh( GEOM::GEOM_Object_ptr theShapeObject )
-    throw ( SALOME::SALOME_Exception );
-
-  //  Create mesh(es) and import data from UNV file
-  SMESH::SMESH_Mesh_ptr CreateMeshesFromUNV( const char* theFileName )
-    throw ( SALOME::SALOME_Exception );
-
-  //  Create mesh(es) and import data from MED file
-  SMESH::mesh_array* CreateMeshesFromMED( const char* theFileName,
-                                          SMESH::DriverMED_ReadStatus& theStatus )
-    throw ( SALOME::SALOME_Exception );
-
-  //  Create mesh(es) and import data from STL file
-  SMESH::SMESH_Mesh_ptr CreateMeshesFromSTL( const char* theFileName )
-    throw ( SALOME::SALOME_Exception );
-
-  // Compute mesh on a shape
-  CORBA::Boolean Compute( SMESH::SMESH_Mesh_ptr theMesh,
-                          GEOM::GEOM_Object_ptr  theShapeObject )
-    throw ( SALOME::SALOME_Exception );
-
-  // Returns true if mesh contains enough data to be computed
-  CORBA::Boolean IsReadyToCompute( SMESH::SMESH_Mesh_ptr theMesh,
-                                   GEOM::GEOM_Object_ptr theShapeObject )
-    throw ( SALOME::SALOME_Exception );
-
-  // Get sub-shapes unique ID's list
-  SMESH::long_array* GetSubShapesId( GEOM::GEOM_Object_ptr      theMainShapeObject,
-                                     const SMESH::object_array& theListOfSubShape )
-    throw ( SALOME::SALOME_Exception );
-
-
-  // ****************************************************
-  // Interface inherited methods (from SALOMEDS::Driver)
-  // ****************************************************
-
-  // Save SMESH data
-  SALOMEDS::TMPFile* Save( SALOMEDS::SComponent_ptr theComponent,
-                        const char*              theURL,
-                        bool                     isMultiFile );
-  // Load SMESH data
-  bool Load( SALOMEDS::SComponent_ptr theComponent,
-            const SALOMEDS::TMPFile& theStream,
-            const char*              theURL,
-            bool                     isMultiFile );
-  // Save SMESH data in ASCII format
-  SALOMEDS::TMPFile* SaveASCII( SALOMEDS::SComponent_ptr theComponent,
-                               const char*              theURL,
-                               bool                     isMultiFile );
-  // Load SMESH data in ASCII format
-  bool LoadASCII( SALOMEDS::SComponent_ptr theComponent,
-                 const SALOMEDS::TMPFile& theStream,
-                 const char*              theURL,
-                 bool                     isMultiFile );
-
-  // Create filter manager
-  SMESH::FilterManager_ptr CreateFilterManager();
-
-  // Return a pattern mesher
-  SMESH::SMESH_Pattern_ptr GetPattern();
-
-  // Clears study-connected data when it is closed
-  void Close( SALOMEDS::SComponent_ptr theComponent );
-  
-  // Get component data type
-  char* ComponentDataType();
-    
-  // Transform data from transient form to persistent
-  char* IORToLocalPersistentID( SALOMEDS::SObject_ptr theSObject,
-                               const char*           IORString,
-                               CORBA::Boolean        isMultiFile,
-                               CORBA::Boolean        isASCII );
-  // Transform data from persistent form to transient
-  char* LocalPersistentIDToIOR( SALOMEDS::SObject_ptr theSObject,
-                               const char*           aLocalPersistentID,
-                               CORBA::Boolean        isMultiFile,
-                               CORBA::Boolean        isASCII );
-
-  // Returns true if object can be published in the study
-  bool CanPublishInStudy( CORBA::Object_ptr theIOR );
-  // Publish object in the study
-  SALOMEDS::SObject_ptr PublishInStudy( SALOMEDS::Study_ptr   theStudy,
-                                       SALOMEDS::SObject_ptr theSObject,
-                                       CORBA::Object_ptr     theObject,
-                                       const char*           theName ) 
-    throw ( SALOME::SALOME_Exception );
-
-  // Copy-paste methods - returns true if object can be copied to the clipboard
-  CORBA::Boolean CanCopy( SALOMEDS::SObject_ptr theObject ) { return false; }
-  // Copy-paste methods - copy object to the clipboard
-  SALOMEDS::TMPFile* CopyFrom( SALOMEDS::SObject_ptr theObject, CORBA::Long& theObjectID ) { return false; }
-  // Copy-paste methods - returns true if object can be pasted from the clipboard
-  CORBA::Boolean CanPaste( const char* theComponentName, CORBA::Long theObjectID ) { return false; }
-  // Copy-paste methods - paste object from the clipboard
-  SALOMEDS::SObject_ptr PasteInto( const SALOMEDS::TMPFile& theStream,
-                                  CORBA::Long              theObjectID,
-                                  SALOMEDS::SObject_ptr    theObject ) {
-    SALOMEDS::SObject_var aResultSO;
-    return aResultSO._retn();
-  }
-
-  // ============
-  // Dump python
-  // ============
-
-  virtual Engines::TMPFile* DumpPython(CORBA::Object_ptr theStudy, 
-                                      CORBA::Boolean isPublished, 
-                                      CORBA::Boolean& isValidScript);
-
-  void AddToPythonScript (int theStudyID, const TCollection_AsciiString& theString);
-
-  void RemoveLastFromPythonScript (int theStudyID);
-
-  static void AddToCurrentPyScript (const TCollection_AsciiString& theString);
-
-  void SavePython (SALOMEDS::Study_ptr theStudy);
-
-  TCollection_AsciiString DumpPython_impl (int theStudyID, 
-                                           Resource_DataMapOfAsciiStringAsciiString& theObjectNames,
-                                           Resource_DataMapOfAsciiStringAsciiString& theNames,
-                                           bool isPublished, 
-                                           bool& aValidScript,
-                                           const TCollection_AsciiString& theSavedTrace);
-
-  TCollection_AsciiString GetNewPythonLines (int theStudyID);
-
-  void CleanPythonTrace (int theStudyID);
-
-  // Dump python comfort methods
-
-  static TCollection_AsciiString& AddObject(TCollection_AsciiString& theStr,
-                                            CORBA::Object_ptr        theObject);
-  // add object to script string
-
-  template <class _array>
-    static TCollection_AsciiString& AddArray(TCollection_AsciiString& theStr,
-                                             const _array &           array)
-      // put array contents into theStr like this: "[ 1, 2, 5 ]"
-    {
-      ostringstream sout; // can convert long int, and TCollection_AsciiString cant
-      sout << "[ ";
-      for (int i = 1; i <= array.length(); i++) {
-        sout << array[i-1];
-        if ( i < array.length() )
-          sout << ", ";
-      }
-      sout << " ]";
-      theStr += (char*) sout.str().c_str();
-      return theStr;
-    }
-
-  // *****************************************
-  // Internal methods
-  // *****************************************
-public:
-  // Get shape reader
-  GEOM_Client* GetShapeReader();
-
-  // Tags definition 
-  static long GetHypothesisRootTag();
-  static long GetAlgorithmsRootTag();
-  static long GetRefOnShapeTag();
-  static long GetRefOnAppliedHypothesisTag();
-  static long GetRefOnAppliedAlgorithmsTag();
-  static long GetSubMeshOnVertexTag();
-  static long GetSubMeshOnEdgeTag();
-  static long GetSubMeshOnFaceTag();
-  static long GetSubMeshOnSolidTag();
-  static long GetSubMeshOnCompoundTag();
-  static long GetSubMeshOnWireTag();
-  static long GetSubMeshOnShellTag();
-  static long GetNodeGroupsTag();
-  static long GetEdgeGroupsTag();
-  static long GetFaceGroupsTag();
-  static long GetVolumeGroupsTag();
-
-  // publishing methods
-  SALOMEDS::SComponent_ptr PublishComponent(SALOMEDS::Study_ptr theStudy);
-  SALOMEDS::SObject_ptr PublishMesh (SALOMEDS::Study_ptr   theStudy,
-                                     SMESH::SMESH_Mesh_ptr theMesh,
-                                     const char*           theName = 0);
-  SALOMEDS::SObject_ptr PublishHypothesis (SALOMEDS::Study_ptr         theStudy,
-                                           SMESH::SMESH_Hypothesis_ptr theHyp,
-                                           const char*                 theName = 0);
-  SALOMEDS::SObject_ptr PublishSubMesh (SALOMEDS::Study_ptr      theStudy,
-                                        SMESH::SMESH_Mesh_ptr    theMesh,
-                                        SMESH::SMESH_subMesh_ptr theSubMesh,
-                                        GEOM::GEOM_Object_ptr    theShapeObject,
-                                       const char*              theName = 0);
-  SALOMEDS::SObject_ptr PublishGroup (SALOMEDS::Study_ptr    theStudy,
-                                      SMESH::SMESH_Mesh_ptr  theMesh,
-                                      SMESH::SMESH_GroupBase_ptr theGroup,
-                                      GEOM::GEOM_Object_ptr  theShapeObject,
-                                      const char*            theName = 0);
-  bool AddHypothesisToShape(SALOMEDS::Study_ptr         theStudy,
-                            SMESH::SMESH_Mesh_ptr       theMesh,
-                            GEOM::GEOM_Object_ptr       theShapeObject,
-                            SMESH::SMESH_Hypothesis_ptr theHyp);
-  bool RemoveHypothesisFromShape(SALOMEDS::Study_ptr         theStudy,
-                                 SMESH::SMESH_Mesh_ptr       theMesh,
-                                 GEOM::GEOM_Object_ptr       theShapeObject,
-                                 SMESH::SMESH_Hypothesis_ptr theHyp);
-  SALOMEDS::SObject_ptr GetMeshOrSubmeshByShape (SALOMEDS::Study_ptr   theStudy,
-                                                 SMESH::SMESH_Mesh_ptr theMesh,
-                                                 GEOM::GEOM_Object_ptr theShape);
-  static void SetName(SALOMEDS::SObject_ptr theSObject,
-                      const char*           theName,
-                      const char*           theDefaultName = 0);
-
-  //  Get study context
-  StudyContext* GetCurrentStudyContext();
-
-  // Register an object in a StudyContext; return object id
-  int RegisterObject(CORBA::Object_ptr theObject);
-
-  // Get current study ID
-  int GetCurrentStudyID()
-  { return myCurrentStudy->_is_nil() ? -1 : myCurrentStudy->StudyId(); }
-private:
-  // Create hypothesis of given type
-  SMESH::SMESH_Hypothesis_ptr createHypothesis( const char* theHypName,
-                                                const char* theLibName)
-    throw ( SALOME::SALOME_Exception );
-  
-  // Create empty mesh on shape
-  SMESH::SMESH_Mesh_ptr createMesh()
-    throw ( SALOME::SALOME_Exception );
-
-  static void loadGeomData( SALOMEDS::SComponent_ptr theCompRoot );
-  
-private:
-
-  static CORBA::ORB_var          myOrb;         // ORB reference
-  static PortableServer::POA_var myPoa;         // POA reference
-  static SALOME_NamingService*   myNS;          // Naming Service
-  static SALOME_LifeCycleCORBA*  myLCC;         // Life Cycle CORBA
-  static SMESH_Gen_i*            mySMESHGen;    // Point to last created instance of the class
-  ::SMESH_Gen               myGen;              // SMESH_Gen local implementation
-
-  // hypotheses managing
-  map<string, GenericHypothesisCreator_i*> myHypCreatorMap;
-
-  map<int, StudyContext*>   myStudyContextMap;  // Map of study context objects
-
-  GEOM_Client*              myShapeReader;      // Shape reader
-  SALOMEDS::Study_var       myCurrentStudy;     // Current study
-
-  // Dump Python: trace of API methods calls
-  std::map < int, Handle(TColStd_HSequenceOfAsciiString) > myPythonScripts;
-};
-
-
-namespace SMESH
-{
-  template<class T>
-  T
-  DownCast(CORBA::Object_ptr theArg)
-  {
-    return dynamic_cast<T>(SMESH_Gen_i::GetServant(theArg).in());
-  }
-}
-
-
-#endif
diff --git a/src/SMESH_I/SMESH_Gen_i_1.cxx b/src/SMESH_I/SMESH_Gen_i_1.cxx
deleted file mode 100644 (file)
index d3c6459..0000000
+++ /dev/null
@@ -1,845 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-// File      : SMESH_Gen_i_1.cxx
-// Created   : Thu Oct 21 17:24:06 2004
-// Author    : Edward AGAPOV (eap)
-// Module    : SMESH
-// $Header: 
-
-#include "SMESH_Gen_i.hxx"
-
-#include "SMESH_Mesh_i.hxx"
-#include "SMESH_Hypothesis_i.hxx"
-#include "SMESH_Algo_i.hxx"
-#include "SMESH_Group_i.hxx"
-
-#include "SMESH.hxx"
-
-#include CORBA_CLIENT_HEADER(SALOME_ModuleCatalog)
-
-#include "utilities.h"
-#include "Utils_ExceptHandlers.hxx"
-
-#include <TCollection_AsciiString.hxx>
-
-#ifdef _DEBUG_
-static int MYDEBUG = 0;
-#else
-static int MYDEBUG = 0;
-#endif
-
-//=============================================================================
-/*!
- *  Get...Tag [ static ]
- *
- *  Methods which determine SMESH data model structure
- */
-//=============================================================================
-
-long SMESH_Gen_i::GetHypothesisRootTag()
-{
-  return Tag_HypothesisRoot;
-}
-
-long SMESH_Gen_i::GetAlgorithmsRootTag()
-{
-  return Tag_AlgorithmsRoot;
-}
-
-long SMESH_Gen_i::GetRefOnShapeTag()
-{
-  return Tag_RefOnShape;
-}
-
-long SMESH_Gen_i::GetRefOnAppliedHypothesisTag()
-{
-  return Tag_RefOnAppliedHypothesis;
-}
-
-long SMESH_Gen_i::GetRefOnAppliedAlgorithmsTag()
-{
-  return Tag_RefOnAppliedAlgorithms;
-}
-
-long SMESH_Gen_i::GetSubMeshOnVertexTag()
-{
-  return Tag_SubMeshOnVertex;
-}
-
-long SMESH_Gen_i::GetSubMeshOnEdgeTag()
-{
-  return Tag_SubMeshOnEdge;
-}
-
-long SMESH_Gen_i::GetSubMeshOnFaceTag()
-{
-  return Tag_SubMeshOnFace;
-}
-
-long SMESH_Gen_i::GetSubMeshOnSolidTag()
-{
-  return Tag_SubMeshOnSolid;
-}
-
-long SMESH_Gen_i::GetSubMeshOnCompoundTag()
-{
-  return Tag_SubMeshOnCompound;
-}
-
-long SMESH_Gen_i::GetSubMeshOnWireTag()
-{
-  return Tag_SubMeshOnWire;
-}
-
-long SMESH_Gen_i::GetSubMeshOnShellTag()
-{
-  return Tag_SubMeshOnShell;
-}
-
-long SMESH_Gen_i::GetNodeGroupsTag()
-{
-  return Tag_NodeGroups;
-}
-
-long SMESH_Gen_i::GetEdgeGroupsTag()
-{
-  return Tag_EdgeGroups;
-}
-
-long SMESH_Gen_i::GetFaceGroupsTag()
-{
-  return Tag_FaceGroups;
-}
-
-long SMESH_Gen_i::GetVolumeGroupsTag()
-{
-  return Tag_VolumeGroups;
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::CanPublishInStudy
- *
- *  Returns true if object can be published in the study
- */
-//=============================================================================
-
-bool SMESH_Gen_i::CanPublishInStudy(CORBA::Object_ptr theIOR)
-{
-  if(MYDEBUG) MESSAGE("CanPublishInStudy - "<<!CORBA::is_nil(myCurrentStudy));
-  if(CORBA::is_nil(myCurrentStudy))
-    return false;
-  
-  SMESH::SMESH_Mesh_var aMesh       = SMESH::SMESH_Mesh::_narrow(theIOR);
-  if( !aMesh->_is_nil() )
-    return true;
-
-  SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow(theIOR);
-  if( !aSubMesh->_is_nil() )
-    return true;
-
-  SMESH::SMESH_Hypothesis_var aHyp  = SMESH::SMESH_Hypothesis::_narrow(theIOR);
-  if( !aHyp->_is_nil() )
-    return true;
-
-  SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(theIOR);
-  if( !aGroup->_is_nil() )
-    return true;
-
-  if(MYDEBUG) MESSAGE("CanPublishInStudy--CANT");
-  return false;
-}
-
-//=======================================================================
-//function : ObjectToSObject
-//purpose  : 
-//=======================================================================
-
-SALOMEDS::SObject_ptr SMESH_Gen_i::ObjectToSObject(SALOMEDS::Study_ptr theStudy,
-                                                   CORBA::Object_ptr   theObject)
-{
-  SALOMEDS::SObject_var aSO;
-  if ( !CORBA::is_nil( theStudy ) && !CORBA::is_nil( theObject ))
-    aSO = theStudy->FindObjectIOR( SMESH_Gen_i::GetORB()->object_to_string( theObject ) );
-  return aSO._retn();
-}
-
-//=======================================================================
-//function : objectToServant
-//purpose  : 
-//=======================================================================
-
-template<typename T> static inline T* objectToServant( CORBA::Object_ptr theIOR )
-{
-  return dynamic_cast<T*>( SMESH_Gen_i::GetServant( theIOR ).in() );
-}
-
-//=======================================================================
-//function : ShapeToGeomObject
-//purpose  : 
-//=======================================================================
-
-GEOM::GEOM_Object_ptr SMESH_Gen_i::ShapeToGeomObject (const TopoDS_Shape& theShape )
-{
-  GEOM::GEOM_Object_var aShapeObj;
-  if ( !theShape.IsNull() ) {
-    GEOM_Client* aClient = GetShapeReader();
-    TCollection_AsciiString IOR;
-    if ( aClient && aClient->Find( theShape, IOR ))
-      aShapeObj = GEOM::GEOM_Object::_narrow
-        ( GetORB()->string_to_object( IOR.ToCString() ) );
-  }
-  return aShapeObj._retn();
-}
-
-//=======================================================================
-//function : GeomObjectToShape
-//purpose  : 
-//=======================================================================
-
-TopoDS_Shape SMESH_Gen_i::GeomObjectToShape(GEOM::GEOM_Object_ptr theGeomObject)
-{
-  TopoDS_Shape S;
-  if ( !theGeomObject->_is_nil() ) {
-    GEOM_Client* aClient = GetShapeReader();
-    GEOM::GEOM_Gen_var aGeomEngine = GetGeomEngine();
-    if ( aClient && !aGeomEngine->_is_nil () )
-      S = aClient->GetShape( aGeomEngine, theGeomObject );
-  }
-  return S;
-}
-
-//=======================================================================
-//function : publish
-//purpose  : 
-//=======================================================================
-
-static SALOMEDS::SObject_ptr publish(SALOMEDS::Study_ptr   theStudy,
-                                     CORBA::Object_ptr     theIOR,
-                                     SALOMEDS::SObject_ptr theFatherObject,
-                                     const int             theTag = 0,
-                                     const char*           thePixMap = 0,
-                                     const bool            theSelectable = true)
-{
-  SALOMEDS::SObject_var SO = SMESH_Gen_i::ObjectToSObject( theStudy, theIOR );
-  SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder();
-  if ( SO->_is_nil() ) {
-    if ( theTag == 0 )
-      SO = aStudyBuilder->NewObject( theFatherObject );
-    else if ( !theFatherObject->FindSubObject( theTag, SO ))
-      SO = aStudyBuilder->NewObjectToTag( theFatherObject, theTag );
-  }
-
-  SALOMEDS::GenericAttribute_var anAttr;
-  if ( !CORBA::is_nil( theIOR )) {
-    anAttr = aStudyBuilder->FindOrCreateAttribute( SO, "AttributeIOR" );
-    SALOMEDS::AttributeIOR::_narrow(anAttr)->SetValue
-      ( SMESH_Gen_i::GetORB()->object_to_string( theIOR ) );
-  }
-  if ( thePixMap ) {
-    anAttr  = aStudyBuilder->FindOrCreateAttribute( SO, "AttributePixMap" );
-    SALOMEDS::AttributePixMap::_narrow( anAttr )->SetPixMap( thePixMap );
-  }
-  if ( !theSelectable ) {
-    anAttr   = aStudyBuilder->FindOrCreateAttribute( SO, "AttributeSelectable" );
-    SALOMEDS::AttributeSelectable::_narrow( anAttr )->SetSelectable( false );
-  }
-  return SO._retn();
-}
-
-//=======================================================================
-//function : setName
-//purpose  : 
-//=======================================================================
-
-void SMESH_Gen_i::SetName(SALOMEDS::SObject_ptr theSObject,
-                          const char*           theName,
-                          const char*           theDefaultName)
-{
-  if ( !theSObject->_is_nil() ) {
-    SALOMEDS::StudyBuilder_var aStudyBuilder = theSObject->GetStudy()->NewBuilder();
-    SALOMEDS::GenericAttribute_var anAttr =
-      aStudyBuilder->FindOrCreateAttribute( theSObject, "AttributeName" );
-    SALOMEDS::AttributeName_var aNameAttr = SALOMEDS::AttributeName::_narrow( anAttr );
-    if ( theName && strlen( theName ) != 0 )
-      aNameAttr->SetValue( theName );
-    else {
-      CORBA::String_var curName = CORBA::string_dup( aNameAttr->Value() );
-      if ( strlen( curName ) == 0 ) {
-        TCollection_AsciiString aName( (char*) theDefaultName );
-        aName += TCollection_AsciiString("_") + TCollection_AsciiString( theSObject->Tag() );
-        aNameAttr->SetValue( aName.ToCString() );
-      }
-    }
-  }
-}
-
-//=======================================================================
-//function : addReference
-//purpose  : 
-//=======================================================================
-
-static void addReference (SALOMEDS::Study_ptr   theStudy,
-                          SALOMEDS::SObject_ptr theSObject,
-                          CORBA::Object_ptr     theToObject,
-                          int                   theTag = 0)
-{
-  SALOMEDS::SObject_var aToObjSO = SMESH_Gen_i::ObjectToSObject( theStudy, theToObject );
-  if ( !aToObjSO->_is_nil() && !theSObject->_is_nil() ) {
-    SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder();
-    SALOMEDS::SObject_var aReferenceSO;
-    if ( !theTag ) {
-      bool isReferred = false;
-      SALOMEDS::ChildIterator_var anIter = theStudy->NewChildIterator( theSObject );
-      for ( ; !isReferred && anIter->More(); anIter->Next() ) {
-        if ( anIter->Value()->ReferencedObject( aReferenceSO ) &&
-            strcmp( aReferenceSO->GetID(), aToObjSO->GetID() ) == 0 )
-          isReferred = true;
-      }
-      if ( !isReferred ) {
-        aReferenceSO = aStudyBuilder->NewObject( theSObject );
-        aStudyBuilder->Addreference( aReferenceSO, aToObjSO );
-      }
-    }
-    else {
-      if ( !theSObject->FindSubObject( theTag, aReferenceSO ))
-        aReferenceSO = aStudyBuilder->NewObjectToTag( theSObject, theTag );
-      aStudyBuilder->Addreference( aReferenceSO, aToObjSO );
-    }
-  }
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::PublishInStudy
- *
- *  Publish object in the study
- */
-//=============================================================================
-
-SALOMEDS::SObject_ptr SMESH_Gen_i::PublishInStudy(SALOMEDS::Study_ptr   theStudy,
-                                                 SALOMEDS::SObject_ptr theSObject,
-                                                 CORBA::Object_ptr     theIOR,
-                                                 const char*           theName)
-     throw (SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  SALOMEDS::SObject_var aSO;
-  if ( CORBA::is_nil( theStudy ) || CORBA::is_nil( theIOR ))
-    return aSO._retn();
-  if(MYDEBUG) MESSAGE("PublishInStudy");
-
-  // Publishing a mesh
-  SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow( theIOR );
-  if( !aMesh->_is_nil() )
-    aSO = PublishMesh( theStudy, aMesh, theName );
-
-  // Publishing a sub-mesh
-  SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow( theIOR );
-  if( aSO->_is_nil() && !aSubMesh->_is_nil() ) {
-    GEOM::GEOM_Object_var aShapeObject = aSubMesh->GetSubShape();
-    aMesh = aSubMesh->GetFather();
-    aSO = PublishSubMesh( theStudy, aMesh, aSubMesh, aShapeObject, theName );
-  }
-
-  // Publishing a hypothesis or algorithm
-  SMESH::SMESH_Hypothesis_var aHyp = SMESH::SMESH_Hypothesis::_narrow( theIOR );
-  if ( aSO->_is_nil() && !aHyp->_is_nil() )
-    aSO = PublishHypothesis( theStudy, aHyp );
-
-  // Publishing a group
-  SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(theIOR);
-  if ( aSO->_is_nil() && !aGroup->_is_nil() ) {
-    GEOM::GEOM_Object_var aShapeObject;
-    aMesh = aGroup->GetMesh();
-    aSO = PublishGroup( theStudy, aMesh, aGroup, aShapeObject, theName );
-  }
-  if(MYDEBUG) MESSAGE("PublishInStudy_END");
-
-  return aSO._retn();
-}
-
-//=======================================================================
-//function : PublishComponent
-//purpose  : 
-//=======================================================================
-
-SALOMEDS::SComponent_ptr SMESH_Gen_i::PublishComponent(SALOMEDS::Study_ptr theStudy)
-{
-  if ( CORBA::is_nil( theStudy ))
-    return SALOMEDS::SComponent::_nil();
-  if(MYDEBUG) MESSAGE("PublishComponent");
-
-  SALOMEDS::SComponent_var father =
-    SALOMEDS::SComponent::_narrow( theStudy->FindComponent( ComponentDataType() ) );
-  if ( !CORBA::is_nil( father ) )
-    return father._retn();
-
-  SALOME_ModuleCatalog::ModuleCatalog_var aCat =
-    SALOME_ModuleCatalog::ModuleCatalog::_narrow( GetNS()->Resolve("/Kernel/ModulCatalog") );
-  if ( CORBA::is_nil( aCat ) )
-    return father._retn();
-
-  SALOME_ModuleCatalog::Acomponent_var aComp = aCat->GetComponent( ComponentDataType() );
-  if ( CORBA::is_nil( aComp ) )
-    return father._retn();
-
-  SALOMEDS::StudyBuilder_var     aStudyBuilder = theStudy->NewBuilder(); 
-  SALOMEDS::GenericAttribute_var anAttr;
-  SALOMEDS::AttributePixMap_var  aPixmap;
-
-  father  = aStudyBuilder->NewComponent( ComponentDataType() );
-  aStudyBuilder->DefineComponentInstance( father, SMESH_Gen::_this() );
-  anAttr  = aStudyBuilder->FindOrCreateAttribute( father, "AttributePixMap" );
-  aPixmap = SALOMEDS::AttributePixMap::_narrow( anAttr );
-  aPixmap ->SetPixMap( "ICON_OBJBROWSER_SMESH" );
-  SetName( father, aComp->componentusername(), "MESH" );
-  if(MYDEBUG) MESSAGE("PublishComponent--END");
-
-  return father._retn();
-}
-
-//=============================================================================
-/*!
- *  findMaxChildTag [ static internal ]
- *
- *  Finds maximum child tag for the given object
- */
-//=============================================================================
-
-static long findMaxChildTag( SALOMEDS::SObject_ptr theSObject )
-{
-  long aTag = 0;
-  if ( !theSObject->_is_nil() ) {
-    SALOMEDS::Study_var aStudy = theSObject->GetStudy();
-    if ( !aStudy->_is_nil() ) {
-      SALOMEDS::ChildIterator_var anIter = aStudy->NewChildIterator( theSObject );
-      for ( ; anIter->More(); anIter->Next() ) {
-       long nTag = anIter->Value()->Tag();
-       if ( nTag > aTag )
-         aTag = nTag;
-      }
-    }
-  }
-  return aTag;
-}
-
-//=======================================================================
-//function : PublishMesh
-//purpose  : 
-//=======================================================================
-
-SALOMEDS::SObject_ptr SMESH_Gen_i::PublishMesh (SALOMEDS::Study_ptr   theStudy,
-                                                SMESH::SMESH_Mesh_ptr theMesh,
-                                                const char*           theName)
-{
-  if ( CORBA::is_nil( theStudy ) ||
-       CORBA::is_nil( theMesh ))
-    return SALOMEDS::SComponent::_nil();
-  if(MYDEBUG) MESSAGE("PublishMesh--IN");
-
-  // find or publish a mesh
-
-  SALOMEDS::SObject_var aMeshSO = ObjectToSObject( theStudy, theMesh );
-  if ( aMeshSO->_is_nil() )
-  {
-    SALOMEDS::SComponent_var father = PublishComponent( theStudy );
-    if ( father->_is_nil() )
-      return aMeshSO._retn();
-
-    // Find correct free tag
-    long aTag = findMaxChildTag( father.in() );
-    if ( aTag <= GetAlgorithmsRootTag() )
-      aTag = GetAlgorithmsRootTag() + 1;
-    else
-      aTag++;
-
-    aMeshSO = publish (theStudy, theMesh, father, aTag, "ICON_SMESH_TREE_MESH_WARN" );
-    if ( aMeshSO->_is_nil() )
-      return aMeshSO._retn();
-  }
-  SetName( aMeshSO, theName, "Mesh" );
-
-  // Add shape reference
-
-  GEOM::GEOM_Object_var aShapeObject = theMesh->GetShapeToMesh();
-  if ( !CORBA::is_nil( aShapeObject )) {
-    addReference( theStudy, aMeshSO, aShapeObject, GetRefOnShapeTag() );
-
-    // Publish global hypotheses
-
-    SMESH::ListOfHypothesis * hypList = theMesh->GetHypothesisList( aShapeObject );
-    if ( hypList )
-      for ( int i = 0; i < hypList->length(); i++ ) {
-        SMESH::SMESH_Hypothesis_var aHyp = SMESH::SMESH_Hypothesis::_narrow( (*hypList)[ i ]);
-        PublishHypothesis( theStudy, aHyp );
-        AddHypothesisToShape( theStudy, theMesh, aShapeObject, aHyp );
-      }
-  }
-
-  // Publish submeshes
-
-  SMESH_Mesh_i* mesh_i = objectToServant<SMESH_Mesh_i>( theMesh );
-  if ( !mesh_i )
-    return aMeshSO._retn();
-  map<int, SMESH_subMesh_i*>& subMap = mesh_i->_mapSubMesh_i;
-  map<int, SMESH_subMesh_i*>::iterator subIt = subMap.begin();
-  for ( ; subIt != subMap.end(); subIt++ ) {
-    SMESH::SMESH_subMesh_ptr aSubMesh = (*subIt).second->_this();
-    if ( !CORBA::is_nil( aSubMesh )) {
-      aShapeObject = aSubMesh->GetSubShape();
-      PublishSubMesh( theStudy, theMesh, aSubMesh, aShapeObject );
-    }
-  }
-
-  // Publish groups
-  const map<int, SMESH::SMESH_GroupBase_ptr>& grMap = mesh_i->getGroups();
-  map<int, SMESH::SMESH_GroupBase_ptr>::const_iterator it = grMap.begin();
-  for ( ; it != grMap.end(); it++ )
-  {
-    SMESH::SMESH_GroupBase_ptr aGroup = (*it).second;
-    if ( !aGroup->_is_nil() ) {
-      GEOM::GEOM_Object_var  aShapeObj;
-      SMESH::SMESH_GroupOnGeom_var aGeomGroup =
-        SMESH::SMESH_GroupOnGeom::_narrow( aGroup );
-      if ( !aGeomGroup->_is_nil() )
-        aShapeObj = aGeomGroup->GetShape();
-      PublishGroup( theStudy, theMesh, aGroup, aShapeObj );
-    }
-  }
-
-  if(MYDEBUG) MESSAGE("PublishMesh_END");
-  return aMeshSO._retn();
-}
-
-//=======================================================================
-//function : PublishSubMesh
-//purpose  : 
-//=======================================================================
-
-SALOMEDS::SObject_ptr SMESH_Gen_i::PublishSubMesh (SALOMEDS::Study_ptr      theStudy,
-                                                   SMESH::SMESH_Mesh_ptr    theMesh,
-                                                   SMESH::SMESH_subMesh_ptr theSubMesh,
-                                                   GEOM::GEOM_Object_ptr    theShapeObject,
-                                                   const char*              theName)
-{
-  if (theStudy->_is_nil() || theMesh->_is_nil() ||
-      theSubMesh->_is_nil() || theShapeObject->_is_nil() )
-    return SALOMEDS::SObject::_nil();
-
-  SALOMEDS::SObject_var aSubMeshSO = ObjectToSObject( theStudy, theSubMesh );
-  if ( aSubMeshSO->_is_nil() )
-  {
-    SALOMEDS::SObject_var aMeshSO = ObjectToSObject( theStudy, theMesh );
-    if ( aMeshSO->_is_nil() ) {
-      aMeshSO = PublishMesh( theStudy, theMesh );
-      if ( aMeshSO->_is_nil())
-        return SALOMEDS::SObject::_nil();
-    }
-    // Find submesh sub-tree tag
-    long aRootTag;
-    char* aRootName = "";
-    switch ( theShapeObject->GetShapeType() ) {
-    case GEOM::VERTEX:
-      aRootTag  = GetSubMeshOnVertexTag();
-      aRootName = "SubMeshes on Vertex";
-      break;
-    case GEOM::EDGE:
-      aRootTag  = GetSubMeshOnEdgeTag();
-      aRootName = "SubMeshes on Edge";
-      break;
-    case GEOM::WIRE:
-      aRootTag  = GetSubMeshOnWireTag();
-      aRootName = "SubMeshes on Wire";
-      break;
-    case GEOM::FACE:
-      aRootTag  = GetSubMeshOnFaceTag();
-      aRootName = "SubMeshes on Face";    
-      break;
-    case GEOM::SHELL:
-      aRootTag  = GetSubMeshOnShellTag();
-      aRootName = "SubMeshes on Shell";   
-      break;
-    case GEOM::SOLID:
-      aRootTag  = GetSubMeshOnSolidTag();
-      aRootName = "SubMeshes on Solid";
-      break;
-    default:
-      aRootTag  = GetSubMeshOnCompoundTag();
-      aRootName = "SubMeshes on Compound";
-      break;
-    }
-
-    // Find or create submesh root
-    SALOMEDS::SObject_var aRootSO = publish (theStudy, CORBA::Object::_nil(),
-                                             aMeshSO, aRootTag, 0, false );
-    SetName( aRootSO, aRootName );
-
-    // Add new submesh to corresponding sub-tree
-    aSubMeshSO = publish (theStudy, theSubMesh, aRootSO, 0, "ICON_SMESH_TREE_MESH_WARN");
-    if ( aSubMeshSO->_is_nil() )
-      return aSubMeshSO._retn();
-  }
-  SetName( aSubMeshSO, theName, "SubMesh" );
-
-  // Add reference to theShapeObject
-
-  addReference( theStudy, aSubMeshSO, theShapeObject, 1 );
-
-  // Publish hypothesis
-
-  SMESH::ListOfHypothesis * hypList = theMesh->GetHypothesisList( theShapeObject );
-  if ( hypList )
-    for ( int i = 0; i < hypList->length(); i++ ) {
-      SMESH::SMESH_Hypothesis_var aHyp = SMESH::SMESH_Hypothesis::_narrow( (*hypList)[ i ]);
-      PublishHypothesis( theStudy, aHyp );
-      AddHypothesisToShape( theStudy, theMesh, theShapeObject, aHyp );
-    }
-
-  return aSubMeshSO._retn();
-}
-
-//=======================================================================
-//function : PublishGroup
-//purpose  : 
-//=======================================================================
-
-SALOMEDS::SObject_ptr SMESH_Gen_i::PublishGroup (SALOMEDS::Study_ptr    theStudy,
-                                                 SMESH::SMESH_Mesh_ptr  theMesh,
-                                                 SMESH::SMESH_GroupBase_ptr theGroup,
-                                                 GEOM::GEOM_Object_ptr  theShapeObject,
-                                                 const char*            theName)
-{
-  if (theStudy->_is_nil() || theMesh->_is_nil() || theGroup->_is_nil() )
-    return SALOMEDS::SObject::_nil();
-
-  SALOMEDS::SObject_var aGroupSO = ObjectToSObject( theStudy, theGroup );
-  if ( aGroupSO->_is_nil() )
-  {
-    SALOMEDS::SObject_var aMeshSO = ObjectToSObject( theStudy, theMesh );
-    if ( aMeshSO->_is_nil() ) {
-      aMeshSO = PublishInStudy( theStudy, SALOMEDS::SObject::_nil(), theMesh, "");
-      if ( aMeshSO->_is_nil())
-        return SALOMEDS::SObject::_nil();
-    }
-    int aType = (int)theGroup->GetType();
-    const char* aRootNames[] = {
-      "Compound Groups", "Groups of Nodes",
-      "Groups of Edges", "Groups of Faces", "Groups of Volumes" };
-
-    // Currently, groups with heterogenous content are not supported
-    if ( aType != SMESH::ALL ) {
-      long aRootTag = GetNodeGroupsTag() + aType - 1;
-
-      // Find or create groups root
-      SALOMEDS::SObject_var aRootSO = publish (theStudy, CORBA::Object::_nil(),
-                                               aMeshSO, aRootTag, 0, false );
-      if ( aType < 5 )
-        SetName( aRootSO, aRootNames[aType] );
-
-      // Add new group to corresponding sub-tree
-      aGroupSO = publish (theStudy, theGroup, aRootSO, 0, "ICON_SMESH_TREE_GROUP" );
-    }
-    if ( aGroupSO->_is_nil() )
-      return aGroupSO._retn();
-  }
-
-  SetName( aGroupSO, theName, "Group" );
-
-  //Add reference to geometry
-  if ( !theShapeObject->_is_nil() )
-    addReference( theStudy, aGroupSO, theShapeObject, 1 );
-
-  return aGroupSO._retn();
-}
-
-//=======================================================================
-//function : PublishHypothesis
-//purpose  : 
-//=======================================================================
-
-SALOMEDS::SObject_ptr
-  SMESH_Gen_i::PublishHypothesis (SALOMEDS::Study_ptr         theStudy,
-                                  SMESH::SMESH_Hypothesis_ptr theHyp,
-                                  const char*                 theName)
-{
-  if(MYDEBUG) MESSAGE("PublishHypothesis")
-  if (theStudy->_is_nil() || theHyp->_is_nil())
-    return SALOMEDS::SObject::_nil();
-
-  SALOMEDS::SObject_var aHypSO = ObjectToSObject( theStudy, theHyp );
-  if ( aHypSO->_is_nil() )
-  {
-    SALOMEDS::SComponent_var father = PublishComponent( theStudy );
-    if ( father->_is_nil() )
-      return aHypSO._retn();
-
-    //Find or Create Hypothesis root
-    bool isAlgo = ( !SMESH::SMESH_Algo::_narrow( theHyp )->_is_nil() );
-    int aRootTag = isAlgo ? GetAlgorithmsRootTag() : GetHypothesisRootTag();
-    SALOMEDS::SObject_var aRootSO =
-      publish (theStudy, CORBA::Object::_nil(),father, aRootTag,
-               isAlgo ? "ICON_SMESH_TREE_ALGO" : "ICON_SMESH_TREE_HYPO", false);
-    SetName( aRootSO, isAlgo ?  "Algorithms" : "Hypotheses" );
-
-    // Add New Hypothesis
-    string aPmName = isAlgo ? "ICON_SMESH_TREE_ALGO_" : "ICON_SMESH_TREE_HYPO_";
-    aPmName += theHyp->GetName();
-    aHypSO = publish( theStudy, theHyp, aRootSO, 0, aPmName.c_str() );
-  }
-
-  if ( !aHypSO->_is_nil() ) {
-    CORBA::String_var aHypName = CORBA::string_dup( theHyp->GetName() );
-    SetName( aHypSO, theName, aHypName );
-  }
-
-  if(MYDEBUG) MESSAGE("PublishHypothesis--END")
-  return aHypSO._retn();
-}
-
-//=======================================================================
-//function : GetMeshOrSubmeshByShape
-//purpose  : 
-//=======================================================================
-
-SALOMEDS::SObject_ptr
-  SMESH_Gen_i::GetMeshOrSubmeshByShape (SALOMEDS::Study_ptr   theStudy,
-                                        SMESH::SMESH_Mesh_ptr theMesh,
-                                        GEOM::GEOM_Object_ptr theShape)
-{
-  if(MYDEBUG) MESSAGE("GetMeshOrSubmeshByShape")
-  SALOMEDS::SObject_var aMeshOrSubMesh;
-  if ( theShape->_is_nil() || theMesh->_is_nil() )
-    return aMeshOrSubMesh._retn();
-
-  TopoDS_Shape aShape = GeomObjectToShape( theShape );
-  SMESH_Mesh_i* mesh_i = objectToServant<SMESH_Mesh_i>( theMesh );
-
-  if ( !aShape.IsNull() && mesh_i && mesh_i->GetImpl().GetMeshDS() ) {
-    SMESHDS_Mesh* meshDS = mesh_i->GetImpl().GetMeshDS();
-    if ( aShape.IsSame( meshDS->ShapeToMesh() ))
-      aMeshOrSubMesh = ObjectToSObject( theStudy, theMesh );
-    else {
-      int shapeID = meshDS->ShapeToIndex( aShape );
-      SMESH::SMESH_subMesh_var aSubMesh = mesh_i->getSubMesh(shapeID);
-      if ( !aSubMesh->_is_nil() )
-        aMeshOrSubMesh = ObjectToSObject( theStudy, aSubMesh );
-    }
-  }
-  if(MYDEBUG) MESSAGE("GetMeshOrSubmeshByShape--END")
-  return aMeshOrSubMesh._retn();
-}
-
-//=======================================================================
-//function : AddHypothesisToShape
-//purpose  : 
-//=======================================================================
-
-bool SMESH_Gen_i::AddHypothesisToShape(SALOMEDS::Study_ptr         theStudy,
-                                       SMESH::SMESH_Mesh_ptr       theMesh,
-                                       GEOM::GEOM_Object_ptr       theShape,
-                                       SMESH::SMESH_Hypothesis_ptr theHyp)
-{
-  if(MYDEBUG) MESSAGE("AddHypothesisToShape")
-  if (theStudy->_is_nil() || theMesh->_is_nil() ||
-      theHyp->_is_nil() || theShape->_is_nil() )
-    return false;
-
-  SALOMEDS::SObject_var aMeshSO = ObjectToSObject( theStudy, theMesh );
-  if ( aMeshSO->_is_nil() )
-    aMeshSO = PublishMesh( theStudy, theMesh );
-  SALOMEDS::SObject_var aHypSO = PublishHypothesis( theStudy, theHyp );
-  if ( aMeshSO->_is_nil() || aHypSO->_is_nil())
-    return false;
-
-  // Find a mesh or submesh refering to theShape
-  SALOMEDS::SObject_var aMeshOrSubMesh =
-    GetMeshOrSubmeshByShape( theStudy, theMesh, theShape );
-  if ( aMeshOrSubMesh->_is_nil() )
-  {
-    // publish submesh
-    TopoDS_Shape aShape = GeomObjectToShape( theShape );
-    SMESH_Mesh_i* mesh_i = objectToServant<SMESH_Mesh_i>( theMesh );
-    if ( !aShape.IsNull() && mesh_i && mesh_i->GetImpl().GetMeshDS() ) {
-      SMESHDS_Mesh* meshDS = mesh_i->GetImpl().GetMeshDS();
-      int shapeID = meshDS->ShapeToIndex( aShape );
-      SMESH::SMESH_subMesh_var aSubMesh = mesh_i->getSubMesh(shapeID);
-      aMeshOrSubMesh = PublishSubMesh( theStudy, theMesh, aSubMesh, theShape );
-    }
-    if ( aMeshOrSubMesh->_is_nil() )
-      return false;
-  }
-
-  //Find or Create Applied Hypothesis root
-  bool aIsAlgo = !SMESH::SMESH_Algo::_narrow( theHyp )->_is_nil();
-  SALOMEDS::SObject_var AHR =
-    publish (theStudy, CORBA::Object::_nil(), aMeshOrSubMesh,
-             aIsAlgo ? GetRefOnAppliedAlgorithmsTag() : GetRefOnAppliedHypothesisTag(),
-             aIsAlgo ? "ICON_SMESH_TREE_ALGO" : "ICON_SMESH_TREE_HYPO", false);
-  SetName( AHR, aIsAlgo ? "Applied algorithms" : "Applied hypotheses" );
-  if ( AHR->_is_nil() )
-    return false;
-
-  addReference( theStudy, AHR, theHyp );
-  if(MYDEBUG) MESSAGE("AddHypothesisToShape--END")
-  return true;
-}
-
-//=======================================================================
-//function : RemoveHypothesisFromShape
-//purpose  : 
-//=======================================================================
-
-bool SMESH_Gen_i::RemoveHypothesisFromShape(SALOMEDS::Study_ptr         theStudy,
-                                            SMESH::SMESH_Mesh_ptr       theMesh,
-                                            GEOM::GEOM_Object_ptr       theShape,
-                                            SMESH::SMESH_Hypothesis_ptr theHyp)
-{
-  if (theStudy->_is_nil() || theMesh->_is_nil() ||
-      theHyp->_is_nil() || theShape->_is_nil() )
-    return false;
-
-  SALOMEDS::SObject_var aHypSO = ObjectToSObject( theStudy, theHyp );
-  if ( aHypSO->_is_nil() )
-    return false;
-
-  // Find a mesh or submesh refering to theShape
-  SALOMEDS::SObject_var aMeshOrSubMesh =
-    GetMeshOrSubmeshByShape( theStudy, theMesh, theShape );
-  if ( aMeshOrSubMesh->_is_nil() )
-    return false;
-
-  // Find and remove a reference to aHypSO
-  SALOMEDS::SObject_var aRef, anObj;
-  CORBA::String_var     anID = CORBA::string_dup( aHypSO->GetID() );
-  SALOMEDS::ChildIterator_var it = theStudy->NewChildIterator( aMeshOrSubMesh );
-  for ( it->InitEx( true ); it->More(); it->Next() ) {
-    anObj = it->Value();
-    if (anObj->ReferencedObject( aRef ) && strcmp( aRef->GetID(), anID ) == 0 ) {
-      theStudy->NewBuilder()->RemoveObject( anObj );
-      break;
-    }
-  }
-  return true;
-}
-
diff --git a/src/SMESH_I/SMESH_Group_i.cxx b/src/SMESH_I/SMESH_Group_i.cxx
deleted file mode 100644 (file)
index 47236ab..0000000
+++ /dev/null
@@ -1,436 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's classes
-//
-//  Copyright (C) 2004  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Group_i.cxx
-//  Author : Sergey ANIKIN, OCC
-//  Module : SMESH
-//  $Header$
-
-
-#include "SMESH_Group_i.hxx"
-#include "SMESH_Mesh_i.hxx"
-#include "SMESH_Gen_i.hxx"
-#include "SMESH_Group.hxx"
-#include "SMESHDS_Group.hxx"
-#include "SMESHDS_GroupOnGeom.hxx"
-#include "SMDSAbs_ElementType.hxx"
-
-#include "SMESH_Filter_i.hxx"
-#include "SMESH_PythonDump.hxx"
-
-#include "utilities.h"
-
-using namespace SMESH;
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_GroupBase_i::SMESH_GroupBase_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID )
-: SALOME::GenericObj_i( thePOA ),
-  myMeshServant( theMeshServant ), 
-  myLocalID( theLocalID )
-{
-  // PAL7962: san -- To ensure correct mapping of servant and correct reference counting in GenericObj_i,
-  // servant activation is performed by SMESH_Mesh_i::createGroup()
-  // thePOA->activate_object( this );
-}
-
-SMESH_Group_i::SMESH_Group_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID )
-     : SALOME::GenericObj_i( thePOA ),
-       SMESH_GroupBase_i( thePOA, theMeshServant, theLocalID )
-{
-  MESSAGE("SMESH_Group_i; this = "<<this );
-}
-
-SMESH_GroupOnGeom_i::SMESH_GroupOnGeom_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID )
-     : SALOME::GenericObj_i( thePOA ),
-       SMESH_GroupBase_i( thePOA, theMeshServant, theLocalID )
-{
-  MESSAGE("SMESH_GroupOnGeom_i; this = "<<this );
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_GroupBase_i::~SMESH_GroupBase_i()
-{
-  MESSAGE("~SMESH_GroupBase_i; this = "<<this );
-  if ( myMeshServant )
-    myMeshServant->removeGroup(myLocalID);
-}
-
-//=======================================================================
-//function : GetSmeshGroup
-//purpose  : 
-//=======================================================================
-
-::SMESH_Group* SMESH_GroupBase_i::GetSmeshGroup() const
-{
-  if ( myMeshServant ) {
-    ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
-    return aMesh.GetGroup(myLocalID);
-  }
-  return 0;
-}
-
-//=======================================================================
-//function : GetGroupDS
-//purpose  : 
-//=======================================================================
-
-SMESHDS_GroupBase* SMESH_GroupBase_i::GetGroupDS() const
-{
-  ::SMESH_Group* aGroup = GetSmeshGroup();
-  if ( aGroup )
-    return aGroup->GetGroupDS();
-  return 0;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_GroupBase_i::SetName( const char* theName )
-{
-  // Update Python script
-  TCollection_AsciiString aStr, aStrName ((char*)theName);
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".SetName(\"";
-  aStr += aStrName + "\")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-
-  // Perform renaming
-  ::SMESH_Group* aGroup = GetSmeshGroup();
-  if (aGroup) {
-    aGroup->SetName(theName);
-
-    // Update group name in a study
-    SMESH_Gen_i* aGen = myMeshServant->GetGen();
-    aGen->SetName( aGen->ObjectToSObject( aGen->GetCurrentStudy(), _this() ), theName );
-    return;
-  }
-  MESSAGE("can't set name of a vague group");
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-char* SMESH_GroupBase_i::GetName()
-{
-  ::SMESH_Group* aGroup = GetSmeshGroup();
-  if (aGroup)
-    return CORBA::string_dup (aGroup->GetName());
-  MESSAGE("get name of a vague group");
-  return CORBA::string_dup( "NO_NAME" );
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH::ElementType SMESH_GroupBase_i::GetType()
-{
-  SMESHDS_GroupBase* aGroupDS = GetGroupDS();
-  if (aGroupDS) {
-    SMDSAbs_ElementType aSMDSType = aGroupDS->GetType();
-    SMESH::ElementType aType;
-    switch (aSMDSType) {
-    case SMDSAbs_Node:   aType = SMESH::NODE; break;
-    case SMDSAbs_Edge:   aType = SMESH::EDGE; break;
-    case SMDSAbs_Face:   aType = SMESH::FACE; break;
-    case SMDSAbs_Volume: aType = SMESH::VOLUME; break;
-    default:             aType = SMESH::ALL; break;
-    }
-    return aType;
-  }
-  MESSAGE("get type of a vague group");
-  return SMESH::ALL;
-}
-
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-CORBA::Long SMESH_GroupBase_i::Size()
-{
-  SMESHDS_GroupBase* aGroupDS = GetGroupDS();
-  if (aGroupDS)
-    return aGroupDS->Extent();
-  MESSAGE("get size of a vague group");
-  return 0;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-CORBA::Boolean SMESH_GroupBase_i::IsEmpty()
-{
-  SMESHDS_GroupBase* aGroupDS = GetGroupDS();
-  if (aGroupDS)
-    return aGroupDS->IsEmpty();
-  MESSAGE("checking IsEmpty of a vague group");
-  return true;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_Group_i::Clear()
-{
-  // Update Python script
-  TCollection_AsciiString aStr;
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".Clear()";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-
-  // Clear the group
-  SMESHDS_Group* aGroupDS = dynamic_cast<SMESHDS_Group*>( GetGroupDS() );
-  if (aGroupDS) {
-    aGroupDS->Clear();
-    return;
-  }
-  MESSAGE("attempt to clear a vague group");
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-CORBA::Boolean SMESH_GroupBase_i::Contains( CORBA::Long theID )
-{
-  SMESHDS_GroupBase* aGroupDS = GetGroupDS();
-  if (aGroupDS)
-    return aGroupDS->Contains(theID);
-  MESSAGE("attempt to check contents of a vague group");
-  return false;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-CORBA::Long SMESH_Group_i::Add( const SMESH::long_array& theIDs )
-{
-  // Update Python script
-  TCollection_AsciiString aStr ("nbAdd = ");
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".Add(";
-  SMESH_Gen_i::AddArray(aStr, theIDs) += ")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-
-  // Add elements to the group
-  SMESHDS_Group* aGroupDS = dynamic_cast<SMESHDS_Group*>( GetGroupDS() );
-  if (aGroupDS) {
-    int nbAdd = 0;
-    for (int i = 0; i < theIDs.length(); i++) {
-      int anID = (int) theIDs[i];
-      if (aGroupDS->Add(anID))
-        nbAdd++;
-    }
-    return nbAdd;
-  }
-  MESSAGE("attempt to add elements to a vague group");
-  return 0;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-CORBA::Long SMESH_Group_i::Remove( const SMESH::long_array& theIDs )
-{
-  // Update Python script
-  TCollection_AsciiString aStr ("nbDel = ");
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".Remove(";
-  SMESH_Gen_i::AddArray(aStr, theIDs) += ")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-
-  // Remove elements from the group
-  SMESHDS_Group* aGroupDS = dynamic_cast<SMESHDS_Group*>( GetGroupDS() );
-  if (aGroupDS) {
-    int nbDel = 0;
-    for (int i = 0; i < theIDs.length(); i++) {
-      int anID = (int) theIDs[i];
-      if (aGroupDS->Remove(anID))
-        nbDel++;
-    }
-    return nbDel;
-  }
-  MESSAGE("attempt to remove elements from a vague group");
-  return 0;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-typedef bool (SMESHDS_Group::*TFunChangeGroup)(const int);
-
-CORBA::Long 
-ChangeByPredicate( SMESH::Predicate_i* thePredicate,
-                  SMESHDS_GroupBase* theGroupBase,
-                  TFunChangeGroup theFun)
-{
-  CORBA::Long aNb = 0;
-  if(SMESHDS_Group* aGroupDS = dynamic_cast<SMESHDS_Group*>(theGroupBase)){
-    SMESH::Controls::Filter::TIdSequence aSequence;
-    const SMDS_Mesh* aMesh = theGroupBase->GetMesh();
-    SMESH::Filter_i::GetElementsId(thePredicate,aMesh,aSequence);
-    
-    CORBA::Long i = 0, iEnd = aSequence.size();
-    for(; i < iEnd; i++)
-      if((aGroupDS->*theFun)(aSequence[i]))
-       aNb++;
-    return aNb;
-  }
-  return aNb;
-}
-
-CORBA::Long 
-SMESH_Group_i::
-AddByPredicate( SMESH::Predicate_ptr thePredicate )
-{
-  if(SMESH::Predicate_i* aPredicate = SMESH::GetPredicate(thePredicate)){
-    TPythonDump()<<_this()<<".AddByPredicate("<<aPredicate<<")";
-    return ChangeByPredicate(aPredicate,GetGroupDS(),&SMESHDS_Group::Add);
-  }
-  return 0;
-}
-
-CORBA::Long 
-SMESH_Group_i::
-RemoveByPredicate( SMESH::Predicate_ptr thePredicate )
-{
-  if(SMESH::Predicate_i* aPredicate = SMESH::GetPredicate(thePredicate)){
-    TPythonDump()<<_this()<<".RemoveByPredicate("<<aPredicate<<")";
-    return ChangeByPredicate(aPredicate,GetGroupDS(),&SMESHDS_Group::Remove);
-  }
-  return 0;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-CORBA::Long SMESH_GroupBase_i::GetID( CORBA::Long theIndex )
-{
-  SMESHDS_GroupBase* aGroupDS = GetGroupDS();
-  if (aGroupDS)
-    return aGroupDS->GetID(theIndex);
-  MESSAGE("attempt to iterate on a vague group");
-  return -1;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH::long_array* SMESH_GroupBase_i::GetListOfID()
-{
-  SMESH::long_array_var aRes = new SMESH::long_array();
-  SMESHDS_GroupBase* aGroupDS = GetGroupDS();
-  if (aGroupDS) {
-    int aSize = aGroupDS->Extent();
-    aRes->length(aSize);
-    for (int i = 0; i < aSize; i++)
-      aRes[i] = aGroupDS->GetID(i+1);
-    return aRes._retn();
-  }
-  MESSAGE("get list of IDs of a vague group");
-  return aRes._retn();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-SMESH::SMESH_Mesh_ptr SMESH_GroupBase_i::GetMesh()
-{
-  SMESH::SMESH_Mesh_var aMesh;
-  if ( myMeshServant )
-    aMesh = SMESH::SMESH_Mesh::_narrow( myMeshServant->_this() );
-  return aMesh._retn();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-SMESH::long_array* SMESH_GroupBase_i::GetIDs()
-{
-  SMESH::long_array_var aResult = GetListOfID();
-  return aResult._retn();
-}
-
-//=======================================================================
-//function : GetShape
-//purpose  : 
-//=======================================================================
-
-GEOM::GEOM_Object_ptr SMESH_GroupOnGeom_i::GetShape()
-{
-  GEOM::GEOM_Object_var aGeomObj;
-  SMESHDS_GroupOnGeom* aGroupDS = dynamic_cast<SMESHDS_GroupOnGeom*>( GetGroupDS() );
-  if ( aGroupDS ) {
-    SMESH_Gen_i* aGen = GetMeshServant()->GetGen();
-    aGeomObj = aGen->ShapeToGeomObject( aGroupDS->GetShape() );
-  }
-  return aGeomObj._retn();
-}
-
diff --git a/src/SMESH_I/SMESH_Group_i.hxx b/src/SMESH_I/SMESH_Group_i.hxx
deleted file mode 100644 (file)
index e9801b2..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's classes
-//
-//  Copyright (C) 2004  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Group_i.hxx
-//  Author : Sergey ANIKIN, OCC
-//  Module : SMESH
-//  $Header$
-
-
-#ifndef SMESH_Group_i_HeaderFile
-#define SMESH_Group_i_HeaderFile
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Group)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-#include CORBA_CLIENT_HEADER(GEOM_Gen)
-
-#include "SALOME_GenericObj_i.hh"
-
-class SMESH_Mesh_i;
-class SMESH_Group;
-class SMESHDS_GroupBase;
-
-// ===========
-// Group Base
-// ===========
-class SMESH_GroupBase_i:
-  public virtual POA_SMESH::SMESH_GroupBase,
-  public virtual SALOME::GenericObj_i
-{
- public:
-  SMESH_GroupBase_i(PortableServer::POA_ptr thePOA,
-                    SMESH_Mesh_i* theMeshServant,
-                    const int theLocalID );
-  virtual ~SMESH_GroupBase_i();
-
-  // CORBA interface implementation
-  void SetName(const char* name);
-  char* GetName();
-  SMESH::ElementType GetType();
-  CORBA::Long Size();
-  CORBA::Boolean IsEmpty();
-  CORBA::Boolean Contains(CORBA::Long elem_id);
-  CORBA::Long GetID(CORBA::Long elem_index);
-  SMESH::long_array* GetListOfID();
-  SMESH::SMESH_Mesh_ptr GetMesh();
-
-  // Inherited from SMESH_IDSource interface
-  virtual SMESH::long_array* GetIDs();
-
-  // Internal C++ interface
-  int GetLocalID() const { return myLocalID; }
-  SMESH_Mesh_i* GetMeshServant() const { return myMeshServant; }
-  SMESH_Group* GetSmeshGroup() const;
-  SMESHDS_GroupBase* GetGroupDS() const;
-
-private:
-  SMESH_Mesh_i* myMeshServant;
-  int myLocalID;
-};
-
-// ======
-// Group
-// ======
-
-class SMESH_Group_i:
-  public virtual POA_SMESH::SMESH_Group,
-  public SMESH_GroupBase_i
-{
- public:
-  SMESH_Group_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID );
-
-  // CORBA interface implementation
-  void Clear();
-  CORBA::Long Add( const SMESH::long_array& theIDs );
-  CORBA::Long Remove( const SMESH::long_array& theIDs );
-
-  CORBA::Long AddByPredicate( SMESH::Predicate_ptr thePredicate );
-  CORBA::Long RemoveByPredicate( SMESH::Predicate_ptr thePredicate );
-};
-
-// =========================
-// Group linked to geometry
-// =========================
-
-class SMESH_GroupOnGeom_i:
-  public virtual POA_SMESH::SMESH_GroupOnGeom,
-  public SMESH_GroupBase_i
-{
- public:
-  SMESH_GroupOnGeom_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID );
-
-  // CORBA interface implementation
-  GEOM::GEOM_Object_ptr GetShape();
-};
-#endif
diff --git a/src/SMESH_I/SMESH_Hypothesis_i.cxx b/src/SMESH_I/SMESH_Hypothesis_i.cxx
deleted file mode 100644 (file)
index d5cdce9..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Hypothesis_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include <iostream>
-#include <sstream>
-#include "SMESH_Hypothesis_i.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  SMESH_Hypothesis_i::SMESH_Hypothesis_i
- * 
- *  Constructor
- */
-//=============================================================================
-
-SMESH_Hypothesis_i::SMESH_Hypothesis_i( PortableServer::POA_ptr thePOA )
-     : SALOME::GenericObj_i( thePOA )
-{
-  MESSAGE( "SMESH_Hypothesis_i::SMESH_Hypothesis_i / Début" );
-  myBaseImpl = 0;
-  // _CS_gbo This instruction fails
-  // thePOA->activate_object( this );
-  // _CS_gbo I keep the POA reference to activate the object in the future.
-  myPOA = thePOA;
-  
-  MESSAGE( "SMESH_Hypothesis_i::SMESH_Hypothesis_i / Fin" );
-};
-
-//=============================================================================
-/*!
- *  SMESH_Hypothesis_i::Activate()
- *
- *  Activation of the object
- */
-//=============================================================================
-void SMESH_Hypothesis_i::Activate() {
-  myPOA->activate_object( this );
-}
-
-//=============================================================================
-/*!
- *  SMESH_Hypothesis_i::~SMESH_Hypothesis_i
- *
- *  Destructor
- */
-//=============================================================================
-
-SMESH_Hypothesis_i::~SMESH_Hypothesis_i()
-{
-  MESSAGE( "SMESH_Hypothesis_i::~SMESH_Hypothesis_i" );
-  if ( myBaseImpl )
-    delete myBaseImpl;
-};
-
-//=============================================================================
-/*!
- *  SMESH_Hypothesis_i::GetName
- *
- *  Get type name of hypothesis
- */
-//=============================================================================
-
-char* SMESH_Hypothesis_i::GetName()
-{
-  MESSAGE( "SMESH_Hypothesis_i::GetName" );
-  return CORBA::string_dup( myBaseImpl->GetName() );
-};
-
-//=============================================================================
-/*!
- *  SMESH_Hypothesis_i::GetLibName
- *
- *  Get plugin library name of hypothesis (required by persistency mechanism)
- */
-//=============================================================================
-
-char* SMESH_Hypothesis_i::GetLibName()
-{
-  MESSAGE( "SMESH_Hypothesis_i::GetLibName" );
-  return CORBA::string_dup( myBaseImpl->GetLibName() );
-};
-
-//=============================================================================
-/*!
- *  SMESH_Hypothesis_i::SetLibName
- *
- *  Set plugin library name of hypothesis (required by persistency mechanism)
- */
-//=============================================================================
-
-void SMESH_Hypothesis_i::SetLibName(const char* theLibName)
-{
-  MESSAGE( "SMESH_Hypothesis_i::SetLibName" );
-  myBaseImpl->SetLibName( theLibName );
-};
-
-//=============================================================================
-/*!
- *  SMESH_Hypothesis_i::GetId
- *
- *  Get unique id of hypothesis
- */
-//=============================================================================
-
-CORBA::Long SMESH_Hypothesis_i::GetId()
-{
-  MESSAGE( "SMESH_Hypothesis_i::GetId" );
-  return myBaseImpl->GetID();
-}
-
-//=============================================================================
-/*!
- *  SMESH_Hypothesis_i::GetImpl
- *
- *  Get implementation
- */
-//=============================================================================
-
-::SMESH_Hypothesis* SMESH_Hypothesis_i::GetImpl()
-{
-  MESSAGE( "SMESH_Hypothesis_i::GetImpl" );
-  return myBaseImpl;
-}
-
-//=============================================================================
-/*!
- *  SMESH_Hypothesis_i::SaveTo
- *
- *  Persistence: Dumps parameters to the string stream
- */
-//=============================================================================
-
-char* SMESH_Hypothesis_i::SaveTo()
-{
-  MESSAGE( "SMESH_Hypothesis_i::SaveTo" );
-  std::ostringstream os;
-  myBaseImpl->SaveTo( os );
-  return CORBA::string_dup( os.str().c_str() );
-}
-
-//=============================================================================
-/*!
-*  SMESH_Hypothesis_i::LoadFrom
-*
-*  Persistence: Restores parameters from string
-*/
-//=============================================================================
-
-void SMESH_Hypothesis_i::LoadFrom( const char* theStream )
-{
-  MESSAGE( "SMESH_Hypothesis_i::LoadFrom" );
-  std::istringstream is( theStream );
-  myBaseImpl->LoadFrom( is );
-}
diff --git a/src/SMESH_I/SMESH_Hypothesis_i.hxx b/src/SMESH_I/SMESH_Hypothesis_i.hxx
deleted file mode 100644 (file)
index df89d82..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Hypothesis_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_HYPOTHESIS_I_HXX_
-#define _SMESH_HYPOTHESIS_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Hypothesis)
-
-#include "SMESH_Hypothesis.hxx"
-#include "SALOME_GenericObj_i.hh"
-
-#include "SMESH_Gen.hxx"
-
-// ======================================================
-// Generic hypothesis
-// ======================================================
-class SMESH_Hypothesis_i:
-  public virtual POA_SMESH::SMESH_Hypothesis,
-  public virtual SALOME::GenericObj_i
-{
-public:
-  // Constructor : placed in protected section to prohibit creation of generic class instance
-  SMESH_Hypothesis_i( PortableServer::POA_ptr thePOA );
-
-public:
-  // Destructor
-  virtual ~SMESH_Hypothesis_i();
-
-  // Get type name of hypothesis
-  char* GetName();
-
-  // Get plugin library name of hypothesis
-  char* GetLibName();
-
-  // Set plugin library name of hypothesis
-  void SetLibName( const char* theLibName );
-
-  // Get unique id of hypothesis
-  CORBA::Long GetId();
-
-  // Get implementation
-  ::SMESH_Hypothesis* GetImpl();
-  
-  // _CS_gbo_ Activate the object using the POA
-  void Activate();
-
-  // Persistence
-  virtual char* SaveTo();
-  virtual void  LoadFrom( const char* theStream );
-  
-protected:
-  ::SMESH_Hypothesis* myBaseImpl;    // base hypothesis implementation
-
-  // _CS_gbo_070505 To keep the reference and delayed the activation
-  // in the methode Activate().
-  PortableServer::POA_ptr myPOA;
-};
-
-// ======================================================
-// Generic hypothesis creator
-// ======================================================
-class GenericHypothesisCreator_i
-{
-public:
-  // Create a hypothesis
-  virtual SMESH_Hypothesis_i* Create(PortableServer::POA_ptr thePOA,
-                                     int                     theStudyId,
-                                     ::SMESH_Gen*            theGenImpl) = 0;
-};
-
-//=============================================================================
-//
-// Specific Hypothesis Creators are generated with a template which inherits a
-// generic hypothesis creator. Each creator returns an hypothesis of the type
-// given in the template. 
-//
-//=============================================================================
-template <class T> class HypothesisCreator_i: public GenericHypothesisCreator_i
-{
-public:
-  virtual SMESH_Hypothesis_i* Create (PortableServer::POA_ptr thePOA,
-                                      int                     theStudyId,
-                                      ::SMESH_Gen*            theGenImpl) 
-  {
-    return new T (thePOA, theStudyId, theGenImpl);
-  };
-};
-
-#endif
diff --git a/src/SMESH_I/SMESH_MEDFamily_i.cxx b/src/SMESH_I/SMESH_MEDFamily_i.cxx
deleted file mode 100644 (file)
index 6e25089..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_MEDFamily_i.cxx
-//  Module : SMESH
-
-using namespace std;
-#include "SMESH_MEDFamily_i.hxx"
-#include "utilities.h"
-#include "Utils_CorbaException.hxx"
-
-//=============================================================================
-/*!
- * Default constructor
- */
-//=============================================================================
-SMESH_MEDFamily_i::SMESH_MEDFamily_i()
-{
-  BEGIN_OF("Default Constructor SMESH_MEDFamily_i");
-  END_OF("Default Constructor SMESH_MEDFamily_i");
-}
-//=============================================================================
-/*!
- * constructor par recopie
- */
-//=============================================================================
-SMESH_MEDFamily_i::SMESH_MEDFamily_i(const SMESH_MEDFamily_i & f): 
-  SMESH_MEDSupport_i(f._subMesh_i,f._name,f._description,f._entity),
-  _subMesh_i(f._subMesh_i),
-  _identifier(f._identifier),
-  _numberOfAttribute(f._numberOfAttribute),
-  _numberOfGroup(f._numberOfGroup), 
-  _attributeValue(f._attributeValue)
-{
-  BEGIN_OF("Copy Constructor SMESH_MEDFamily_i");
-  _attributeDescription=new string[_numberOfAttribute];
-  for (int i=0;i<_numberOfAttribute;i++) {
-    _attributeDescription[i]=f._attributeDescription[i];
-  };
-  _groupName=new string[_numberOfGroup];
-  for (int i=0;i<_numberOfAttribute;i++) {
-    _groupName[i]=f._groupName[i];
-  };
-  END_OF("Copy Constructor SMESH_MEDFamily_i");
-}
-//=============================================================================
-/*!
- * Destructor
- */
-//=============================================================================
-SMESH_MEDFamily_i::~SMESH_MEDFamily_i()
-{
-}
-//=============================================================================
-/*!
- * Constructor
- */
-//=============================================================================
-SMESH_MEDFamily_i::SMESH_MEDFamily_i(int identifier, SMESH_subMesh_i* sm,
-                                    string name, string description, SALOME_MED::medEntityMesh entity): 
-  SMESH_MEDSupport_i( sm, name, description, entity ),
-  
-  _subMesh_i(sm),
-  _identifier(identifier),
-  _numberOfAttribute(0),
-  _attributeIdentifier((int*)NULL),
-  _attributeValue((int*)NULL), 
-  _attributeDescription((string*)NULL),
-  _numberOfGroup(0), 
-  _groupName((string*)NULL)
-{
-  BEGIN_OF("Constructor SMESH_MEDFamily_i");
-  END_OF("Constructor SMESH_MEDFamily_i");
-}
-//=============================================================================
-/*!
- * CORBA: Accessor for Family's Identifier
- */
-//=============================================================================
-
-CORBA::Long SMESH_MEDFamily_i::getIdentifier()      
-throw (SALOME::SALOME_Exception)
-{
-  if (_subMeshDS==NULL)
-    THROW_SALOME_CORBA_EXCEPTION("No associated Family",\
-                                SALOME::INTERNAL_ERROR); 
-  return _identifier;
-  
-}
-//=============================================================================
-/*!
- * CORBA: Accessor for number of attributes
- */
-//=============================================================================
-CORBA::Long SMESH_MEDFamily_i::getNumberOfAttributes() 
-throw (SALOME::SALOME_Exception)
-{
-  if (_subMeshDS==NULL)
-    THROW_SALOME_CORBA_EXCEPTION("No associated Family",\
-                                SALOME::INTERNAL_ERROR);
-  return _numberOfAttribute;
-}
-//=============================================================================
-/*!
- * CORBA: Accessor for attributes identifiers
- */
-//=============================================================================
-SALOME_MED::long_array*  SMESH_MEDFamily_i::getAttributesIdentifiers() 
-throw (SALOME::SALOME_Exception)
-{
-  if (_subMeshDS==NULL)
-    THROW_SALOME_CORBA_EXCEPTION("No associated Family",\
-                                SALOME::INTERNAL_ERROR);
-  if (_numberOfAttribute == 0)
-    {
-      MESSAGE("Les familles SMESH n ont pas d attribut");
-      THROW_SALOME_CORBA_EXCEPTION("No attributes"\
-                                  ,SALOME::BAD_PARAM);
-    };
-  
-  SALOME_MED::long_array_var myseq= new SALOME_MED::long_array;
-  myseq->length(_numberOfAttribute);
-  for (int i=0;i<_numberOfAttribute;i++)
-    {
-      myseq[i]=_attributeIdentifier[i];
-    };
-  return myseq._retn();
-
-}
-//=============================================================================
-/*!
- * CORBA: Accessor for attribute identifier I
- */
-//=============================================================================
-CORBA::Long SMESH_MEDFamily_i::getAttributeIdentifier(CORBA::Long i) 
-  throw (SALOME::SALOME_Exception)
-{    
-  if (_subMeshDS==NULL)
-    THROW_SALOME_CORBA_EXCEPTION("No associated Family",\
-                                SALOME::INTERNAL_ERROR);
-  MESSAGE("Les familles SMESH n ont pas d attribut");
-  THROW_SALOME_CORBA_EXCEPTION("No attributes"\
-                              ,SALOME::BAD_PARAM);
-  if (_numberOfAttribute == 0)
-    {
-      MESSAGE("Les familles SMESH n ont pas d attribut");
-      THROW_SALOME_CORBA_EXCEPTION("No attributes"\
-                                  ,SALOME::BAD_PARAM);
-    };
-  ASSERT (i <= _numberOfAttribute);
-  return _attributeIdentifier[i];
-}
-//=============================================================================
-/*!
- * CORBA: Accessor for attributes values
- */
-//=============================================================================
-SALOME_MED::long_array*  SMESH_MEDFamily_i::getAttributesValues() 
-  throw (SALOME::SALOME_Exception)
-{
-  if (_subMeshDS==NULL)
-    THROW_SALOME_CORBA_EXCEPTION("No associated Family",\
-                                SALOME::INTERNAL_ERROR);
-
-  if (_numberOfAttribute == 0)
-    {
-      MESSAGE("Les familles SMESH n ont pas d attribut");
-      THROW_SALOME_CORBA_EXCEPTION("No attributes"\
-                                  ,SALOME::BAD_PARAM);
-    };
-
-  SALOME_MED::long_array_var myseq= new SALOME_MED::long_array;
-  myseq->length(_numberOfAttribute);
-  for (int i=0;i<_numberOfAttribute;i++)
-    {
-      myseq[i]=_attributeValue[i];
-    };
-  return myseq._retn();
-}
-//=============================================================================
-/*!
- * CORBA: Accessor for attribute value I
- */
-//=============================================================================
-CORBA::Long  SMESH_MEDFamily_i::getAttributeValue(CORBA::Long i) 
-  throw (SALOME::SALOME_Exception)
-{   
-  if (_subMeshDS==NULL)
-    THROW_SALOME_CORBA_EXCEPTION("No associated Family",\
-                                SALOME::INTERNAL_ERROR);
-  if (_numberOfAttribute == 0)
-    {
-      MESSAGE("Les familles SMESH n ont pas d attribut");
-      THROW_SALOME_CORBA_EXCEPTION("No attributes"\
-                                  ,SALOME::BAD_PARAM);
-    }
-
-  ASSERT (i <= _numberOfAttribute);
-  return _attributeValue[i];
-}
-//=============================================================================
-/*!
- * CORBA: Accessor for attributes desriptions
- */
-//=============================================================================
-SALOME_MED::string_array * SMESH_MEDFamily_i::getAttributesDescriptions() 
-  throw (SALOME::SALOME_Exception)
-{
-  if (_subMeshDS==NULL)
-    THROW_SALOME_CORBA_EXCEPTION("No associated Family",\
-                                SALOME::INTERNAL_ERROR);
-  if (_numberOfAttribute == 0)
-    {
-      MESSAGE("Les familles SMESH n ont pas d attribut");
-      THROW_SALOME_CORBA_EXCEPTION("No attributes"\
-                                  ,SALOME::BAD_PARAM);
-    }
-  SALOME_MED::string_array_var myseq = new SALOME_MED::string_array;
-  for (int i=0;i<_numberOfAttribute;i++)
-    {
-      myseq[i]=CORBA::string_dup(_attributeDescription[i].c_str());
-    }
-  return myseq._retn();
-}
-//=============================================================================
-/*!
- * CORBA: Accessor for attribute description i
- */
-//=============================================================================
-char *  SMESH_MEDFamily_i::getAttributeDescription( CORBA::Long i) 
-  throw (SALOME::SALOME_Exception)
-{   
-  if (_subMeshDS==NULL)
-    THROW_SALOME_CORBA_EXCEPTION("No associated Family",\
-                                SALOME::INTERNAL_ERROR);
-  if (_numberOfAttribute == 0)
-    {
-      MESSAGE("Les familles SMESH n ont pas d attribut");
-      THROW_SALOME_CORBA_EXCEPTION("No attributes"\
-                                  ,SALOME::BAD_PARAM);
-    }
-  ASSERT (i <= _numberOfAttribute);
-  return CORBA::string_dup(_attributeDescription[i].c_str());
-}
-//=============================================================================
-/*!
- * CORBA: Accessor for the number of groups
- */
-//=============================================================================
-CORBA::Long SMESH_MEDFamily_i::getNumberOfGroups()
-    throw (SALOME::SALOME_Exception)
-{
-  MESSAGE("!!! NOT YET IMPLEMENTED !!!!");
-  THROW_SALOME_CORBA_EXCEPTION("Not Implemented", SALOME::BAD_PARAM);
-  return 0;
-}
-//=============================================================================
-/*!
- * CORBA: Accessor for the name of the group i
- */
-//=============================================================================
-char * SMESH_MEDFamily_i::getGroupName( CORBA::Long i)
-  throw (SALOME::SALOME_Exception)
-{
-  MESSAGE("!!! NOT YET IMPLEMENTED !!!!");
-  THROW_SALOME_CORBA_EXCEPTION("Not Implemented", SALOME::BAD_PARAM);
-  return NULL;
-}
-//=============================================================================
-/*!
- * CORBA: Accessor for all the groups name
- */
-//=============================================================================
-SALOME_MED::string_array* SMESH_MEDFamily_i::getGroupsNames()
-  throw (SALOME::SALOME_Exception)
-{
-  MESSAGE("!!! NOT YET IMPLEMENTED !!!!");
-  THROW_SALOME_CORBA_EXCEPTION("Not Implemented", SALOME::BAD_PARAM);
-  return NULL;
-}
diff --git a/src/SMESH_I/SMESH_MEDFamily_i.hxx b/src/SMESH_I/SMESH_MEDFamily_i.hxx
deleted file mode 100644 (file)
index e60379c..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_MEDFamily_i.hxx
-//  Module : SMESH
-
-#ifndef SMESH_MED_FAMILY_I_HXX_
-#define SMESH_MED_FAMILY_I_HXX_
-
-#include "SMESH_MEDSupport_i.hxx"
-
-#include<string>
-
-class SMESH_MEDFamily_i:
-  public POA_SALOME_MED::FAMILY,
-  public SMESH_MEDSupport_i
-{
-protected :
-  SMESH_MEDFamily_i();
-  ~SMESH_MEDFamily_i();
-  
-  ::SMESH_subMesh_i*      _subMesh_i;
-  
-  // Values
-  int       _identifier;
-  int       _numberOfAttribute;
-  int    *  _attributeIdentifier;
-  int    *  _attributeValue;
-  string *  _attributeDescription;
-  int       _numberOfGroup ;
-  string *  _groupName ;
-  
-
-public :
-  
-  // Constructors and associated internal methods
-  SMESH_MEDFamily_i(int identifier, SMESH_subMesh_i* sm,
-                   string name, string description, SALOME_MED::medEntityMesh entity );
-  SMESH_MEDFamily_i(const SMESH_MEDFamily_i & f);
-  
-  // IDL Methods
-  void setProtocol(SALOME::TypeOfCommunication typ) {}
-  void release() {}
-  SALOME::SenderInt_ptr getSenderForNumber(long int) {return SALOME::SenderInt::_nil();}
-  SALOME::SenderInt_ptr getSenderForNumberIndex() {return SALOME::SenderInt::_nil();}
-  
-  CORBA::Long            getIdentifier()      
-    throw (SALOME::SALOME_Exception);
-  CORBA::Long            getNumberOfAttributes() 
-    throw (SALOME::SALOME_Exception);
-  SALOME_MED::long_array*   getAttributesIdentifiers() 
-    throw (SALOME::SALOME_Exception);
-  CORBA::Long            getAttributeIdentifier(CORBA::Long i) 
-    throw (SALOME::SALOME_Exception);
-  SALOME_MED::long_array*   getAttributesValues() 
-    throw (SALOME::SALOME_Exception);
-  CORBA::Long            getAttributeValue(CORBA::Long i) 
-    throw (SALOME::SALOME_Exception);
-  SALOME_MED::string_array* getAttributesDescriptions() 
-    throw (SALOME::SALOME_Exception);
-  char*                  getAttributeDescription( CORBA::Long i) 
-    throw (SALOME::SALOME_Exception);
-  CORBA::Long               getNumberOfGroups()
-    throw (SALOME::SALOME_Exception);
-  char *                    getGroupName( CORBA::Long i)
-    throw (SALOME::SALOME_Exception);
-  SALOME_MED::string_array* getGroupsNames()
-    throw (SALOME::SALOME_Exception);  
-};
-#endif /* MED_FAMILY_I_HXX_ */
diff --git a/src/SMESH_I/SMESH_MEDMesh_i.cxx b/src/SMESH_I/SMESH_MEDMesh_i.cxx
deleted file mode 100644 (file)
index 3f1c017..0000000
+++ /dev/null
@@ -1,1206 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_MEDMesh_i.cxx
-//  Module : SMESH
-
-#include "SMESH_MEDMesh_i.hxx"
-#include "SMESH_Mesh_i.hxx"
-
-#include "SMESHDS_Mesh.hxx"
-#include "SMESHDS_SubMesh.hxx"
-
-#include <TopExp.hxx>
-#include <TopExp_Explorer.hxx>
-#include <TopoDS.hxx>
-#include <TopoDS_Iterator.hxx>
-#include <TopoDS_Compound.hxx>
-#include <TopoDS_CompSolid.hxx>
-#include <TopoDS_Solid.hxx>
-#include <TopoDS_Shell.hxx>
-#include <TopoDS_Face.hxx>
-#include <TopoDS_Wire.hxx>
-#include <TopoDS_Edge.hxx>
-#include <TopoDS_Vertex.hxx>
-#include <TopoDS_Shape.hxx>
-#include <TopTools_MapOfShape.hxx>
-
-#include "utilities.h"
-#include "Utils_CorbaException.hxx"
-
-#include "SMESH_MEDSupport_i.hxx"
-#include "SMESH_MEDFamily_i.hxx"
-
-# include "Utils_ORB_INIT.hxx"
-# include "Utils_SINGLETON.hxx"
-# include "Utils_ExceptHandlers.hxx"
-
-extern "C"
-{
-#include <stdio.h>
-}
-
-using namespace std;
-
-//=============================================================================
-/*!
- * Default constructor
- */
-//=============================================================================
-// PN Est-ce un const ?
-SMESH_MEDMesh_i::SMESH_MEDMesh_i()
-{
-       BEGIN_OF("Default Constructor SMESH_MEDMesh_i");
-       END_OF("Default Constructor SMESH_MEDMesh_i");
-}
-
-//=============================================================================
-/*!
- * Destructor
- */
-//=============================================================================
-SMESH_MEDMesh_i::~SMESH_MEDMesh_i()
-{
-}
-
-//=============================================================================
-/*!
- * Constructor
- */
-//=============================================================================
-SMESH_MEDMesh_i::SMESH_MEDMesh_i(::SMESH_Mesh_i * m_i):_meshId(""),
-                                                      _compte(false),
-                                                      _creeFamily(false),
-                                                      _famIdent(0),
-                                                      _indexElts(0),
-                                                      _indexEnts(0)
-{
-       BEGIN_OF("Constructor SMESH_MEDMesh_i");
-
-       _mesh_i = m_i;
-       _meshDS = _mesh_i->GetImpl().GetMeshDS();
-
-       END_OF("Constructor SMESH_MEDMesh_i");
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for Name
- */
-//=============================================================================
-char *SMESH_MEDMesh_i::getName() throw(SALOME::SALOME_Exception)
-{
-       if (_meshDS == NULL)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-
-       try
-       {
-               // A COMPLETER PAR LE NOM DU MAILLAGE
-               //return CORBA::string_dup(_mesh_i->getName().c_str());
-               return CORBA::string_dup("toto");
-       }
-       catch(...)
-       {
-               MESSAGE("Exception en accedant au nom");
-               THROW_SALOME_CORBA_EXCEPTION("Unable to acces Mesh C++ Object",
-                       SALOME::INTERNAL_ERROR);
-       }
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for corbaindex cuisine interne 
- */
-//=============================================================================
-CORBA::Long SMESH_MEDMesh_i::getCorbaIndex()throw(SALOME::SALOME_Exception)
-{
-       MESSAGE("Non Implemente");
-       THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for Space Dimension
- */
-//=============================================================================
-CORBA::Long SMESH_MEDMesh_i::getSpaceDimension()throw(SALOME::SALOME_Exception)
-{
-       // PN : Il semblerait que la dimension soit fixee a 3
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       return 3;
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for Mesh Dimension
- */
-//=============================================================================
-CORBA::Long SMESH_MEDMesh_i::getMeshDimension()throw(SALOME::SALOME_Exception)
-{
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       // PN : Il semblerait que la dimension soit fixee a 3
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       return 3;
-}
-//=============================================================================
-/*!
- * CORBA: Accessor for the boolean _isAGrid
- */
-//=============================================================================
-CORBA::Boolean SMESH_MEDMesh_i::getIsAGrid() throw (SALOME::SALOME_Exception)
-{
-  MESSAGE("!!!!!! NOT YET IMPLEMENTED !!!!!!");
-
-  THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-
-  return false;
-}
-//=============================================================================
-/*!
- * CORBA: Accessor for the connectivities, to see if they exist
- */
-//=============================================================================
-CORBA::Boolean
-SMESH_MEDMesh_i::existConnectivity(SALOME_MED::medConnectivity connectivityType,
-                                  SALOME_MED::medEntityMesh entity)
-  throw (SALOME::SALOME_Exception)
-{
-  MESSAGE("!!!!!! IMPLEMENTED BUT ONLY PARTIALLY !!!!!!");
-
-
-  return false;
-
-}
-//=============================================================================
-/*!
- * CORBA: Accessor for Coordinate
- */
-//=============================================================================
-CORBA::Double SMESH_MEDMesh_i::getCoordinate(CORBA::Long Number, CORBA::Long Axis)
-  throw (SALOME::SALOME_Exception)
-{
-  MESSAGE("!!!!!! NOT YET IMPLEMENTED !!!!");
-
-  THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-
-  return 0.0;
-}
-//=============================================================================
-/*!
- * CORBA: Accessor for Coordinates System
- */
-//=============================================================================
-char *SMESH_MEDMesh_i::getCoordinatesSystem() throw(SALOME::SALOME_Exception)
-{
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       // PN : En dur. Non encore prevu
-       try
-       {
-               string systcoo = "CARTESIEN";
-               return CORBA::string_dup(systcoo.c_str());
-       }
-       catch(...)
-       {
-               MESSAGE("Exception en accedant au maillage");
-               THROW_SALOME_CORBA_EXCEPTION("Unable to acces Mesh C++ Object",
-                       SALOME::INTERNAL_ERROR);
-       }
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for Coordinates
- */
-//=============================================================================
-SALOME_MED::double_array * SMESH_MEDMesh_i::getCoordinates(
-       SALOME_MED::medModeSwitch typeSwitch) throw(SALOME::SALOME_Exception)
-{
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       SALOME_MED::double_array_var myseq = new SALOME_MED::double_array;
-       try
-       {
-               // PN  : En dur
-               int spaceDimension = 3;
-               int nbNodes = _meshDS->NbNodes();
-               SCRUTE(nbNodes);
-               myseq->length(nbNodes * spaceDimension);
-               int i = 0;
-
-               SMDS_NodeIteratorPtr itNodes=_meshDS->nodesIterator();
-               while(itNodes->more())
-               {
-                       const SMDS_MeshNode* node = itNodes->next();
-
-                       if (typeSwitch == SALOME_MED::MED_FULL_INTERLACE)
-                       {
-                               myseq[i * 3] = node->X();
-                               myseq[i * 3 + 1] = node->Y();
-                               myseq[i * 3 + 2] = node->Z();
-                               SCRUTE(myseq[i * 3]);
-                               SCRUTE(myseq[i * 3 + 1]);
-                               SCRUTE(myseq[i * 3 + 2]);
-                       }
-                       else
-                       {
-                               ASSERT(typeSwitch == SALOME_MED::MED_NO_INTERLACE);
-                               myseq[i] = node->X();
-                               myseq[i + nbNodes] = node->Y();
-                               myseq[i + (nbNodes * 2)] = node->Z();
-                               SCRUTE(myseq[i]);
-                               SCRUTE(myseq[i + nbNodes]);
-                               SCRUTE(myseq[i + (nbNodes * 2)]);
-                       }
-                       i++;
-               }
-       }
-       catch(...)
-       {
-               MESSAGE("Exception en accedant aux coordonnees");
-               THROW_SALOME_CORBA_EXCEPTION("Unable to acces Mesh C++ Object",
-                       SALOME::INTERNAL_ERROR);
-       }
-       return myseq._retn();
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for Coordinates Names
- */
-//=============================================================================
-SALOME_MED::string_array *
-       SMESH_MEDMesh_i::getCoordinatesNames()throw(SALOME::SALOME_Exception)
-{
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       SALOME_MED::string_array_var myseq = new SALOME_MED::string_array;
-       try
-       {
-               // PN : en dur
-               int spaceDimension = 3;
-               myseq->length(spaceDimension);
-               myseq[0] = CORBA::string_dup("x");
-               myseq[1] = CORBA::string_dup("y");
-               myseq[2] = CORBA::string_dup("z");
-       }
-       catch(...)
-       {
-               MESSAGE("Exception en accedant aux noms des coordonnees");
-               THROW_SALOME_CORBA_EXCEPTION("Unable to acces Mesh C++ Object",
-                       SALOME::INTERNAL_ERROR);
-       }
-       return myseq._retn();
-
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for Coordinates Units
- */
-//=============================================================================
-SALOME_MED::string_array *
-       SMESH_MEDMesh_i::getCoordinatesUnits()throw(SALOME::SALOME_Exception)
-{
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       SALOME_MED::string_array_var myseq = new SALOME_MED::string_array;
-       try
-       {
-               // PN : en dur
-               int spaceDimension = 3;
-               myseq->length(spaceDimension);
-               myseq[0] = CORBA::string_dup("m");
-               myseq[1] = CORBA::string_dup("m");
-               myseq[2] = CORBA::string_dup("m");
-       }
-       catch(...)
-       {
-               MESSAGE("Exception en accedant aux unites des coordonnees");
-               THROW_SALOME_CORBA_EXCEPTION("Unable to acces Mesh C++ Object",
-                       SALOME::INTERNAL_ERROR);
-       }
-       return myseq._retn();
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for Number of Nodes
- */
-//=============================================================================
-CORBA::Long SMESH_MEDMesh_i::getNumberOfNodes()throw(SALOME::SALOME_Exception)
-{
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       try
-       {
-               return _meshDS->NbNodes();
-       }
-       catch(...)
-       {
-               MESSAGE("Exception en accedant au nombre de noeuds");
-               THROW_SALOME_CORBA_EXCEPTION("Unable to acces Mesh C++ Object",
-                       SALOME::INTERNAL_ERROR);
-       }
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for number of Types
- */
-//=============================================================================
-CORBA::Long SMESH_MEDMesh_i::getNumberOfTypes(SALOME_MED::medEntityMesh entity)
-throw(SALOME::SALOME_Exception)
-{
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       try
-       {
-               if (!_compte)
-                       calculeNbElts();
-               int retour = 0;
-               if (_mapNbTypes.find(entity) != _mapNbTypes.end())
-                       retour = _mapNbTypes[entity];
-               return retour;
-       }
-       catch(...)
-       {
-               MESSAGE("Exception en accedant au nombre de Types");
-               THROW_SALOME_CORBA_EXCEPTION("Unable to acces Mesh C++ Object",
-                       SALOME::INTERNAL_ERROR);
-       }
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for existing geometry element types 
- *       Not implemented for MED_ALL_ENTITIES
- */
-//=============================================================================
-SALOME_MED::medGeometryElement_array *
-       SMESH_MEDMesh_i::getTypes(SALOME_MED::medEntityMesh entity) throw(SALOME::
-       SALOME_Exception)
-{
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       if (entity == SALOME_MED::MED_ALL_ENTITIES)
-               THROW_SALOME_CORBA_EXCEPTION("Not implemented for MED_ALL_ENTITIES",
-                       SALOME::BAD_PARAM);
-       if (!_compte)
-               calculeNbElts();
-       SALOME_MED::medGeometryElement_array_var myseq =
-               new SALOME_MED::medGeometryElement_array;
-       try
-       {
-               if (_mapNbTypes.find(entity) == _mapNbTypes.end())
-                       THROW_SALOME_CORBA_EXCEPTION("No Such Entity in the mesh",
-                               SALOME::BAD_PARAM);
-               int nbTypes = _mapNbTypes[entity];
-
-               myseq->length(nbTypes);
-
-               if (_mapIndToVectTypes.find(entity) == _mapIndToVectTypes.end())
-                       THROW_SALOME_CORBA_EXCEPTION("No Such Entity in the mesh",
-                               SALOME::INTERNAL_ERROR);
-
-               int index = _mapIndToVectTypes[entity];
-               ASSERT(_TypesId[index].size() != 0);
-               int i = 0;
-               vector < SALOME_MED::medGeometryElement >::iterator it;
-               for (it = _TypesId[index].begin(); it != _TypesId[index].end(); it++)
-               {
-                       myseq[i++] = *it;
-               };
-       }
-       catch(...)
-       {
-               MESSAGE("Exception en accedant aux differents types");
-               THROW_SALOME_CORBA_EXCEPTION("Unable to acces Mesh C++ Object",
-                       SALOME::INTERNAL_ERROR);
-       }
-       return myseq._retn();
-}
-
-//=============================================================================
-/*!
- * CORBA: Returns number of elements of type medGeometryElement
- *       Not implemented for MED_ALL_ELEMENTS 
- *       implemented for MED_ALL_ENTITIES
- *
- * Dans cette implementation, il n est pas prevu de tenir compte du entity
- * qui ne doit pas pouvoir avoir deux valeurs differentes pour un geomElement 
- */
-//=============================================================================
-CORBA::Long SMESH_MEDMesh_i::getNumberOfElements(SALOME_MED::
-       medEntityMesh entity,
-       SALOME_MED::medGeometryElement geomElement) throw(SALOME::SALOME_Exception)
-{
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       if (geomElement == SALOME_MED::MED_ALL_ELEMENTS)
-               THROW_SALOME_CORBA_EXCEPTION("Not implemented for MED_ALL_ELEMENTS",
-                       SALOME::BAD_PARAM);
-       if (!_compte)
-               calculeNbElts();
-
-       try
-       {
-               int retour = 0;
-               if (_mapIndToSeqElts.find(geomElement) != _mapIndToSeqElts.end())
-               {
-                       int index = _mapIndToSeqElts[geomElement];
-
-                       retour = _seq_elemId[index]->length();
-               }
-               return retour;
-       }
-       catch(...)
-       {
-               MESSAGE("Exception en accedant au nombre d Ã©lements");
-               THROW_SALOME_CORBA_EXCEPTION("Unable to acces Mesh C++ Object",
-                       SALOME::INTERNAL_ERROR);
-       }
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for connectivities
- */
-//=============================================================================
-SALOME_MED::long_array *
-SMESH_MEDMesh_i::getConnectivity(SALOME_MED::medModeSwitch typeSwitch,
-                                SALOME_MED::medConnectivity mode,
-                                SALOME_MED::medEntityMesh entity,
-                                SALOME_MED::medGeometryElement geomElement)
-  throw(SALOME::SALOME_Exception)
-{
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       if (mode != SALOME_MED::MED_NODAL)
-               THROW_SALOME_CORBA_EXCEPTION("Not Implemented", SALOME::BAD_PARAM);
-       if (typeSwitch == SALOME_MED::MED_NO_INTERLACE)
-               THROW_SALOME_CORBA_EXCEPTION("Not Yet Implemented", SALOME::BAD_PARAM);
-       if (!_compte)
-               calculeNbElts();
-
-       // Faut-il renvoyer un pointeur vide ???
-       if (_mapIndToSeqElts.find(geomElement) != _mapIndToSeqElts.end())
-               THROW_SALOME_CORBA_EXCEPTION("No Such Element in the mesh",
-                       SALOME::BAD_PARAM);
-
-       int index = _mapIndToSeqElts[geomElement];
-
-       return _seq_elemId[index]._retn();
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for connectivities
- */
-//=============================================================================
-SALOME_MED::long_array *
-SMESH_MEDMesh_i::getConnectivityIndex(SALOME_MED::medConnectivity mode,
-                                     SALOME_MED::medEntityMesh entity)
-  throw(SALOME::SALOME_Exception)
-{
-       MESSAGE("Pas Implemente dans SMESH");
-       THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-       return 0;
-}
-
-//=============================================================================
-/*!
- * CORBA: Find an element corresponding to the given connectivity
- */
-//=============================================================================
-CORBA::Long
-SMESH_MEDMesh_i::getElementNumber(SALOME_MED::medConnectivity mode,
-                                 SALOME_MED::medEntityMesh entity,
-                                 SALOME_MED::medGeometryElement type,
-                                 const SALOME_MED::long_array & connectivity)
-  throw(SALOME::SALOME_Exception)
-{
-       const char *LOC = "getElementNumber ";
-       MESSAGE(LOC << "Pas Implemente dans SMESH");
-       THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-       return -1;
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for Ascendant connectivities
- * not implemented for MED_ALL_ENTITIES and MED_MAILLE
- */
-//=============================================================================
-SALOME_MED::long_array *
-       SMESH_MEDMesh_i::getReverseConnectivity(SALOME_MED::
-       medConnectivity mode) throw(SALOME::SALOME_Exception)
-{
-       MESSAGE("Pas Implemente dans SMESH");
-       THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-       return 0;
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for connectivities
- */
-//=============================================================================
-SALOME_MED::long_array *
-       SMESH_MEDMesh_i::getReverseConnectivityIndex(SALOME_MED::
-       medConnectivity mode) throw(SALOME::SALOME_Exception)
-{
-       MESSAGE("Pas Implemente dans SMESH");
-       THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-       return 0;
-}
-
-//=============================================================================
-/*!
- * CORBA: Returns number of families within the mesh
- */
-//=============================================================================
-CORBA::Long SMESH_MEDMesh_i::getNumberOfFamilies(SALOME_MED::
-       medEntityMesh entity) throw(SALOME::SALOME_Exception)
-{
-       if (_creeFamily == false)
-               createFamilies();
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       return _families.size();
-}
-
-//=============================================================================
-/*!
- * CORBA: Returns number of groups within the mesh
- */
-//=============================================================================
-CORBA::Long SMESH_MEDMesh_i::getNumberOfGroups(SALOME_MED::medEntityMesh entity)
-throw(SALOME::SALOME_Exception)
-{
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       MESSAGE(" Pas d implementation des groupes dans SMESH");
-       return 0;
-}
-
-//=============================================================================
-/*!
- * CORBA: Returns references for families within the mesh
- */
-//=============================================================================
-SALOME_MED::Family_array *
-       SMESH_MEDMesh_i::getFamilies(SALOME_MED::
-       medEntityMesh entity) throw(SALOME::SALOME_Exception)
-{
-       if (_creeFamily == false)
-               createFamilies();
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       SALOME_MED::Family_array_var myseq = new SALOME_MED::Family_array;
-       int nbfam = _families.size();
-       myseq->length(nbfam);
-       int i = 0;
-       vector < SALOME_MED::FAMILY_ptr >::iterator it;
-       for (it = _families.begin(); it != _families.end(); it++)
-       {
-               myseq[i++] = *it;
-       };
-       return myseq._retn();
-}
-
-//=============================================================================
-/*!
- * CORBA: Returns references for family i within the mesh
- */
-//=============================================================================
-SALOME_MED::FAMILY_ptr SMESH_MEDMesh_i::getFamily(SALOME_MED::
-       medEntityMesh entity, CORBA::Long i) throw(SALOME::SALOME_Exception)
-{
-       if (_creeFamily == false)
-               createFamilies();
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-
-       SCRUTE(_families[i]->getName());
-       MESSAGE(" SMESH_MEDMesh_i::getFamily " << i) return _families[i];
-}
-
-//=============================================================================
-/*!
- * CORBA: Returns references for groups within the mesh
- */
-//=============================================================================
-SALOME_MED::Group_array *
-       SMESH_MEDMesh_i::getGroups(SALOME_MED::medEntityMesh entity) throw(SALOME::
-       SALOME_Exception)
-{
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       MESSAGE(" Pas d implementation des groupes dans SMESH");
-       THROW_SALOME_CORBA_EXCEPTION("No group implementation", SALOME::BAD_PARAM);
-}
-
-//=============================================================================
-/*!
- * CORBA: Returns references for group i within the mesh
- */
-//=============================================================================
-SALOME_MED::GROUP_ptr SMESH_MEDMesh_i::getGroup(SALOME_MED::
-       medEntityMesh entity, CORBA::Long i) throw(SALOME::SALOME_Exception)
-{
-       if (_mesh_i == 0)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       MESSAGE(" Pas d implementation des groupes dans SMESH");
-       THROW_SALOME_CORBA_EXCEPTION("No group implementation", SALOME::BAD_PARAM);
-}
-//=============================================================================
-/*!
- * CORBA: Returns references for the global numbering index
- */
-//=============================================================================
-SALOME_MED::long_array*
-SMESH_MEDMesh_i::getGlobalNumberingIndex(SALOME_MED::medEntityMesh entity)
-  throw (SALOME::SALOME_Exception)
-{
-  MESSAGE("!!!! NOT YET IMPLEMENTED !!!!!");
-
-  THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-
-  return NULL;
-}
-//=============================================================================
-/*!
- * CORBA: Returns references for the support of boundary elements of type
- * entity
- */
-//=============================================================================
-SALOME_MED::SUPPORT_ptr
-SMESH_MEDMesh_i::getBoundaryElements(SALOME_MED::medEntityMesh entity)
-  throw (SALOME::SALOME_Exception)
-{
-  MESSAGE("!!!! NOT YET IMPLEMENTED !!!!!");
-
-  THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-
-  return NULL;
-}
-//=============================================================================
-/*!
- * CORBA: Returns references for the support of the skin of the support
- * mySupport3D
- */
-//=============================================================================
-SALOME_MED::SUPPORT_ptr
-SMESH_MEDMesh_i::getSkin(SALOME_MED::SUPPORT_ptr mySupport3D)
-  throw (SALOME::SALOME_Exception)
-{
-  MESSAGE("!!!! NOT YET IMPLEMENTED !!!!!");
-
-  THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-
-  return NULL;
-}
-//=============================================================================
-/*!
- * CORBA: 
- */
-//=============================================================================
-SALOME_MED::FIELD_ptr SMESH_MEDMesh_i::getVolume(SALOME_MED::
-       SUPPORT_ptr mySupport) throw(SALOME::SALOME_Exception)
-{
-       MESSAGE("Pas Implemente dans SMESH");
-       THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-       return 0;
-}
-
-//=============================================================================
-/*!
- * CORBA: 
- */
-//=============================================================================
-SALOME_MED::FIELD_ptr SMESH_MEDMesh_i::getArea(SALOME_MED::
-       SUPPORT_ptr mySupport) throw(SALOME::SALOME_Exception)
-{
-       MESSAGE("Pas Implemente dans SMESH");
-       THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-       return 0;
-}
-
-//=============================================================================
-/*!
- * CORBA: 
- */
-//=============================================================================
-SALOME_MED::FIELD_ptr SMESH_MEDMesh_i::getLength(SALOME_MED::
-       SUPPORT_ptr mySupport) throw(SALOME::SALOME_Exception)
-{
-       MESSAGE("Pas Implemente dans SMESH");
-       THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-       return 0;
-}
-
-//=============================================================================
-/*!
- * CORBA: 
- */
-//=============================================================================
-SALOME_MED::FIELD_ptr SMESH_MEDMesh_i::getNormal(SALOME_MED::
-       SUPPORT_ptr mySupport) throw(SALOME::SALOME_Exception)
-{
-       MESSAGE("Pas Implemente dans SMESH");
-       THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-       return 0;
-}
-
-//=============================================================================
-/*!
- * CORBA: 
- */
-//=============================================================================
-SALOME_MED::FIELD_ptr SMESH_MEDMesh_i::getBarycenter(SALOME_MED::
-       SUPPORT_ptr mySupport) throw(SALOME::SALOME_Exception)
-{
-       MESSAGE("Pas Implemente dans SMESH");
-       THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-       return 0;
-}
-
-//=============================================================================
-/*!
- * CORBA: 
- */
-//=============================================================================
-SALOME_MED::FIELD_ptr SMESH_MEDMesh_i::getNeighbourhood(SALOME_MED::
-       SUPPORT_ptr mySupport) throw(SALOME::SALOME_Exception)
-{
-       MESSAGE("Non Implemente");
-       THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-       return 0;
-}
-
-//=============================================================================
-/*!
- * CORBA: add the Mesh in the StudyManager 
- * PN Pas Implemente
- */
-//=============================================================================
-void SMESH_MEDMesh_i::addInStudy(SALOMEDS::Study_ptr myStudy,
-       SALOME_MED::MESH_ptr myIor) throw(SALOME::SALOME_Exception)
-{
-       BEGIN_OF("MED_Mesh_i::addInStudy");
-       if (_meshId != "")
-       {
-               MESSAGE("Mesh already in Study");
-               THROW_SALOME_CORBA_EXCEPTION("Mesh already in Study",
-                       SALOME::BAD_PARAM);
-       };
-
-       /*
-        * SALOMEDS::StudyBuilder_var myBuilder = myStudy->NewBuilder();
-        * 
-        * // Create SComponent labelled 'MED' if it doesn't already exit
-        * SALOMEDS::SComponent_var medfather = myStudy->FindComponent("MED");
-        * if ( CORBA::is_nil(medfather) ) 
-        * {
-        * MESSAGE("Add Component MED");
-        * medfather = myBuilder->NewComponent("MED");
-        * //myBuilder->AddAttribute (medfather,SALOMEDS::Name,"MED");
-        * SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(
-        * myBuilder->FindOrCreateAttribute(medfather, "AttributeName"));
-        * aName->SetValue("MED");
-        * 
-        * myBuilder->DefineComponentInstance(medfather,myIor);
-        * 
-        * } ;
-        * 
-        * MESSAGE("Add a mesh Object under MED");
-        * myBuilder->NewCommand();
-        * SALOMEDS::SObject_var newObj = myBuilder->NewObject(medfather);
-        * 
-        * ORB_INIT &init = *SINGLETON_<ORB_INIT>::Instance() ;
-        * ASSERT(SINGLETON_<ORB_INIT>::IsAlreadyExisting()) ;
-        * CORBA::ORB_var &orb = init(0,0);
-        * string iorStr = orb->object_to_string(myIor);
-        * //myBuilder->AddAttribute(newObj,SALOMEDS::IOR,iorStr.c_str());
-        * SALOMEDS::AttributeIOR_var aIOR = SALOMEDS::AttributeIOR::_narrow(
-        * myBuilder->FindOrCreateAttribute(newObj, "AttributeIOR"));
-        * aIOR->SetValue(iorStr.c_str());
-        * 
-        * //myBuilder->AddAttribute(newObj,SALOMEDS::Name,_mesh_i->getName().c_str());
-        * SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(
-        * myBuilder->FindOrCreateAttribute(newObj, "AttributeName"));
-        * aName->SetValue(_mesh_i->getName().c_str());
-        * 
-        * _meshId = newObj->GetID();
-        * myBuilder->CommitCommand();
-        * 
-        */
-       END_OF("Mesh_i::addInStudy(SALOMEDS::Study_ptr myStudy)");
-}
-
-//=============================================================================
-/*!
- * CORBA: write mesh in a med file
- */
-//=============================================================================
-void SMESH_MEDMesh_i::write(CORBA::Long i, const char *driverMeshName)
-throw(SALOME::SALOME_Exception)
-{
-       MESSAGE("Non Implemente");
-       THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-}
-
-//=============================================================================
-/*!
- * CORBA: read mesh in a med file
- */
-//=============================================================================
-void SMESH_MEDMesh_i::read(CORBA::Long i) throw(SALOME::SALOME_Exception)
-{
-       MESSAGE("Non Implemente");
-       THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-}
-
-//=============================================================================
-/*!
- * CORBA : release driver
- */
-//=============================================================================
-void SMESH_MEDMesh_i::rmDriver(CORBA::Long i) throw(SALOME::SALOME_Exception)
-{
-       MESSAGE("Non Implemente");
-       THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-}
-
-//=============================================================================
-/*!
- * CORBA : attach driver
- */
-//=============================================================================
-CORBA::Long SMESH_MEDMesh_i::addDriver(SALOME_MED::medDriverTypes driverType,
-       const char *fileName, const char *meshName) throw(SALOME::SALOME_Exception)
-{
-       MESSAGE("Non Implemente");
-       THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-       return 0;
-}
-
-//=============================================================================
-/*!
- * Calcule le Nb d'elements par entite geometrique
- */
-//=============================================================================
-void SMESH_MEDMesh_i::calculeNbElts() throw(SALOME::SALOME_Exception)
-{
-       if (!_compte)
-       {
-               _compte = true;
-
-               _mapNbTypes[SALOME_MED::MED_NODE] = 1;
-               // On compte les aretes MED_SEG2 ou MED_SEG3
-               // On range les elements dans  les vecteurs correspondants 
-
-               _mapIndToSeqElts[SALOME_MED::MED_SEG2] = _indexElts++;
-               _mapIndToSeqElts[SALOME_MED::MED_SEG3] = _indexElts++;
-               _mapIndToVectTypes[SALOME_MED::MED_EDGE] = _indexEnts++;
-
-               int trouveSeg2 = 0;
-               int trouveSeg3 = 0;
-               SALOME_MED::medGeometryElement medElement;
-
-               SMDS_EdgeIteratorPtr itEdges=_meshDS->edgesIterator();
-               while(itEdges->more())
-               {
-                       const SMDS_MeshEdge* elem = itEdges->next();
-                       int nb_of_nodes = elem->NbNodes();
-
-                       switch (nb_of_nodes)
-                       {
-                       case 2:
-                       {
-                               medElement = SALOME_MED::MED_SEG2;
-                               if (trouveSeg2 == 0)
-                               {
-                                       trouveSeg2 = 1;
-                                       _TypesId[SALOME_MED::MED_EDGE].
-                                               push_back(SALOME_MED::MED_SEG2);
-                               }
-                               break;
-                       }
-                       case 3:
-                       {
-                               medElement = SALOME_MED::MED_SEG3;
-                               if (trouveSeg3 == 0)
-                               {
-                                       trouveSeg3 = 1;
-                                       _TypesId[SALOME_MED::MED_EDGE].
-                                               push_back(SALOME_MED::MED_SEG3);
-                               }
-                               break;
-                       }
-                       }
-                       int index = _mapIndToSeqElts[medElement];
-                       SCRUTE(index);
-                       // Traitement de l arete
-
-                       int longueur = _seq_elemId[index]->length();
-                       _seq_elemId[index]->length(longueur + nb_of_nodes);
-
-                       SMDS_NodeIteratorPtr itn=_meshDS->nodesIterator();
-
-                       for(int k=0; itn->more(); k++)
-                               _seq_elemId[index][longueur + k] = itn->next()->GetID()+1;
-               }
-
-               _mapNbTypes[SALOME_MED::MED_EDGE] = trouveSeg2 + trouveSeg3;
-
-               // On compte les faces MED_TRIA3, MED_HEXA8, MED_TRIA6
-               // On range les elements dans  les vecteurs correspondants 
-               int trouveTria3 = 0;
-               int trouveTria6 = 0;
-               int trouveQuad4 = 0;
-
-               _mapIndToSeqElts[SALOME_MED::MED_TRIA3] = _indexElts++;
-               _mapIndToSeqElts[SALOME_MED::MED_TRIA6] = _indexElts++;
-               _mapIndToSeqElts[SALOME_MED::MED_QUAD4] = _indexElts++;
-               _mapIndToVectTypes[SALOME_MED::MED_FACE] = _indexEnts++;
-
-               SMDS_FaceIteratorPtr itFaces=_meshDS->facesIterator();
-               while(itFaces->more())
-               {
-                       const SMDS_MeshFace * elem = itFaces->next();
-                       int nb_of_nodes = elem->NbNodes();
-
-                       switch (nb_of_nodes)
-                       {
-                       case 3:
-                       {
-                               medElement = SALOME_MED::MED_TRIA3;
-                               if (trouveTria3 == 0)
-                               {
-                                       trouveTria3 = 1;
-                                       _TypesId[SALOME_MED::MED_FACE].
-                                               push_back(SALOME_MED::MED_TRIA3);
-                               }
-                               break;
-                       }
-                       case 4:
-                       {
-                               medElement = SALOME_MED::MED_QUAD4;
-                               if (trouveQuad4 == 0)
-                               {
-                                       trouveQuad4 = 1;
-                                       _TypesId[SALOME_MED::MED_FACE].
-                                               push_back(SALOME_MED::MED_QUAD4);
-                               }
-                               break;
-                       }
-                       case 6:
-                       {
-                               medElement = SALOME_MED::MED_TRIA6;
-                               if (trouveTria6 == 0)
-                               {
-                                       trouveTria6 = 1;
-                                       _TypesId[SALOME_MED::MED_FACE].
-                                               push_back(SALOME_MED::MED_TRIA6);
-                               }
-                               break;
-                       }
-                       }
-                       int index = _mapIndToSeqElts[medElement];
-                       SCRUTE(index);
-
-                       // Traitement de la face
-                       // Attention La numérotation des noeuds Med commence a 1
-
-                       int longueur = _seq_elemId[index]->length();
-                       _seq_elemId[index]->length(longueur + nb_of_nodes);
-
-                       SMDS_NodeIteratorPtr itn=_meshDS->nodesIterator();
-
-                       for(int k=0; itn->more(); k++)
-                               _seq_elemId[index][longueur + k] = itn->next()->GetID()+1;
-               } //itFaces
-
-               _mapNbTypes[SALOME_MED::MED_FACE] =
-                       trouveTria3 + trouveTria6 + trouveQuad4;
-
-               _mapIndToSeqElts[SALOME_MED::MED_HEXA8] = _indexElts++;
-               _mapIndToVectTypes[SALOME_MED::MED_CELL] = _indexEnts++;
-               int index = _mapIndToSeqElts[medElement];
-
-               int trouveHexa8 = 0;
-
-               SMDS_VolumeIteratorPtr itVolumes=_meshDS->volumesIterator();
-               while(itVolumes->more())
-               {
-                       const SMDS_MeshVolume * elem = itVolumes->next();
-
-                       int nb_of_nodes = elem->NbNodes();
-                       medElement = SALOME_MED::MED_HEXA8;
-                       ASSERT(nb_of_nodes = 8);
-
-                       if (trouveHexa8 == 0)
-                       {
-                               trouveHexa8 = 1;
-                               _TypesId[SALOME_MED::MED_CELL].push_back(SALOME_MED::MED_HEXA8);
-                       };
-                       // Traitement de la maille
-                       int longueur = _seq_elemId[index]->length();
-                       _seq_elemId[index]->length(longueur + nb_of_nodes);
-
-                       SMDS_NodeIteratorPtr itn=_meshDS->nodesIterator();
-                       for(int k=0; itn->more(); k++)
-                               _seq_elemId[index][longueur + k] = itn->next()->GetID()+1;
-               }
-
-               _mapNbTypes[SALOME_MED::MED_CELL] = trouveHexa8;
-               _mapNbTypes[SALOME_MED::MED_ALL_ENTITIES]
-                       =
-                       trouveHexa8 + trouveTria3 + trouveTria6 + trouveQuad4 + trouveSeg2 +
-                       trouveSeg3;
-       }// fin du _compte
-};
-
-//=============================================================================
-/*!
- * Creation des familles
- */
-//=============================================================================
-void SMESH_MEDMesh_i::createFamilies() throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-       string famDes = ("Je ne sais pas");
-       string famName0 = "Famille_";
-       string famName;
-       char numero[10];
-
-       if (_creeFamily == false)
-       {
-               _creeFamily = true;
-               SMESH_subMesh_i *subMeshServant;
-
-               map < int, SMESH_subMesh_i * >::iterator it;
-               for (it = _mesh_i->_mapSubMesh_i.begin();
-                       it != _mesh_i->_mapSubMesh_i.end(); it++)
-               {
-                       SMESH_subMesh_i *submesh_i = (*it).second;
-                       int famIdent = (*it).first;
-
-                       ASSERT(famIdent < 999999999);
-                       sprintf(numero, "%d\n", famIdent);
-                       famName = famName0 + numero;
-
-                       SMESH_MEDFamily_i *famservant =
-                               new SMESH_MEDFamily_i(famIdent, submesh_i,
-                               famName, famDes, SALOME_MED::MED_NODE);
-                       SALOME_MED::FAMILY_ptr famille =
-                               SALOME_MED::FAMILY::_narrow(famservant->
-                               POA_SALOME_MED::FAMILY::_this());
-                       _families.push_back(famille);
-               }
-       }
-};
-//=============================================================================
-/*!
- * Gives informations of the considered mesh.
- */
-//=============================================================================
-SALOME_MED::MESH::meshInfos * SMESH_MEDMesh_i::getMeshGlobal()
-  throw (SALOME::SALOME_Exception)
-{
-  MESSAGE("!!!! NOT YET IMPLEMENTED !!!!!");
-
-  THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-
-  return NULL;
-}
-//=============================================================================
-/*!
- * Gives informations on coordinates of the considered mesh.
- */
-//=============================================================================
-SALOME_MED::MESH::coordinateInfos * SMESH_MEDMesh_i::getCoordGlobal()
-  throw (SALOME::SALOME_Exception)
-{
-  MESSAGE("!!!! NOT YET IMPLEMENTED !!!!!");
-
-  THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-
-  return NULL;
-}
-//=============================================================================
-/*!
- * Gives informations on connectivities of the considered mesh for the entity
- * entity.
- */
-//=============================================================================
-SALOME_MED::MESH::connectivityInfos *
-SMESH_MEDMesh_i::getConnectGlobal(SALOME_MED::medEntityMesh entity)
-  throw (SALOME::SALOME_Exception)
-{
-  MESSAGE("!!!! NOT YET IMPLEMENTED !!!!!");
-
-  THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-
-  return NULL;
-}
-//=============================================================================
-/*!
- * Gives the type of the element number of entity entity
- */
-//=============================================================================
-SALOME_MED::medGeometryElement
-SMESH_MEDMesh_i::getElementType(SALOME_MED::medEntityMesh entity,
-                               CORBA::Long number)
-  throw (SALOME::SALOME_Exception)
-{
-  MESSAGE("!!!! NOT YET IMPLEMENTED !!!!!");
-
-  THROW_SALOME_CORBA_EXCEPTION("Unimplemented Method", SALOME::BAD_PARAM);
-
-  return (SALOME_MED::medGeometryElement) 0;
-}
diff --git a/src/SMESH_I/SMESH_MEDMesh_i.hxx b/src/SMESH_I/SMESH_MEDMesh_i.hxx
deleted file mode 100644 (file)
index 3e8fe7a..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_MEDMesh_i.hxx
-//  Module : SMESH
-
-#ifndef _MED_SMESH_MESH_I_HXX_
-#define _MED_SMESH_MESH_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(MED)
-#include <string>
-#include <vector>
-#include <map>
-
-#include "SMESHDS_Mesh.hxx"
-
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-
-#define MED_NBR_GEOMETRIE_MAILLE 15
-#define MED_NBR_TYPE 5
-
-class SMESH_Mesh_i;
-
-class SMESH_MEDMesh_i:
-       public POA_SALOME_MED::MESH, public PortableServer::RefCountServantBase
-{
-  public: private: protected:
-       // C++ object containing values
-       ::SMESH_Mesh_i * _mesh_i;
-       SMESHDS_Mesh *_meshDS;
-
-       string _meshId;
-       bool _compte;
-       bool _creeFamily;
-       int _indexElts;
-       int _indexEnts;
-       int _famIdent;
-
-       map < SALOME_MED::medGeometryElement, int >_mapIndToSeqElts;
-       SALOME_MED::long_array_var _seq_elemId[MED_NBR_GEOMETRIE_MAILLE];
-
-       map < SALOME_MED::medEntityMesh, int >_mapNbTypes;
-       map < SALOME_MED::medEntityMesh, int >_mapIndToVectTypes;
-       vector < SALOME_MED::medGeometryElement >
-               _TypesId[MED_NBR_GEOMETRIE_MAILLE];
-
-       vector < SALOME_MED::FAMILY_ptr > _families;
-  public:
-
-       // Constructors and associated internal methods
-       SMESH_MEDMesh_i();
-       SMESH_MEDMesh_i(SMESH_Mesh_i * m);
-       ~SMESH_MEDMesh_i();
-
-       // IDL Methods
-       void setProtocol(SALOME::TypeOfCommunication typ) {}
-       void release() {}
-       SALOME::SenderDouble_ptr getSenderForCoordinates(long int) {return SALOME::SenderDouble::_nil();}
-       SALOME::SenderInt_ptr getSenderForConnectivity(long int, long int, long int, long int) {return SALOME::SenderInt::_nil();}
-       
-       char *getName() throw(SALOME::SALOME_Exception);
-       CORBA::Long getSpaceDimension() throw(SALOME::SALOME_Exception);
-
-       CORBA::Long getMeshDimension() throw(SALOME::SALOME_Exception);
-
-        CORBA::Boolean  getIsAGrid() throw (SALOME::SALOME_Exception);
-
-        CORBA::Boolean
-       existConnectivity(SALOME_MED::medConnectivity connectivityType,
-                         SALOME_MED::medEntityMesh entity)
-         throw (SALOME::SALOME_Exception);
-
-       char *getCoordinatesSystem() throw(SALOME::SALOME_Exception);
-
-        CORBA::Double getCoordinate(CORBA::Long Number, CORBA::Long Axis)
-         throw (SALOME::SALOME_Exception);
-
-       SALOME_MED::double_array * getCoordinates(SALOME_MED::medModeSwitch typeSwitch)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::string_array * getCoordinatesNames()
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::string_array * getCoordinatesUnits()
-         throw(SALOME::SALOME_Exception);
-
-       CORBA::Long getNumberOfNodes() throw(SALOME::SALOME_Exception);
-
-       CORBA::Long getNumberOfTypes(SALOME_MED::medEntityMesh entity)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::medGeometryElement_array *
-               getTypes(SALOME_MED::medEntityMesh entity) throw(SALOME::
-               SALOME_Exception);
-
-        SALOME_MED::medGeometryElement
-       getElementType(SALOME_MED::medEntityMesh entity,
-                      CORBA::Long number)
-         throw   (SALOME::SALOME_Exception);
-
-        CORBA::Long getNumberOfElements(SALOME_MED::medEntityMesh entity,
-               SALOME_MED::medGeometryElement geomElement)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::long_array *
-       getConnectivity(SALOME_MED::medModeSwitch typeSwitch,
-                       SALOME_MED::medConnectivity mode,
-                       SALOME_MED::medEntityMesh entity,
-                       SALOME_MED::medGeometryElement geomElement)
-         throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::long_array *
-       getConnectivityIndex(SALOME_MED::medConnectivity mode,
-                            SALOME_MED::medEntityMesh entity)
-         throw(SALOME::SALOME_Exception);
-
-        SALOME_MED::long_array*
-       getGlobalNumberingIndex(SALOME_MED::medEntityMesh entity)
-         throw (SALOME::SALOME_Exception);
-
-       CORBA::Long getElementNumber(SALOME_MED::medConnectivity mode,
-               SALOME_MED::medEntityMesh entity,
-               SALOME_MED::medGeometryElement type,
-               const SALOME_MED::long_array & connectivity)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::long_array *
-               getReverseConnectivity(SALOME_MED::medConnectivity mode)
-         throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::long_array *
-               getReverseConnectivityIndex(SALOME_MED::
-               medConnectivity mode) throw(SALOME::SALOME_Exception);
-
-       // Family and Group
-       CORBA::Long getNumberOfFamilies(SALOME_MED::medEntityMesh entity)
-               throw(SALOME::SALOME_Exception);
-
-       CORBA::Long getNumberOfGroups(SALOME_MED::medEntityMesh entity)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::Family_array *
-       getFamilies(SALOME_MED::medEntityMesh entity)
-         throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::FAMILY_ptr getFamily(SALOME_MED::medEntityMesh entity,
-               CORBA::Long i) throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::Group_array * getGroups(SALOME_MED::medEntityMesh entity)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::GROUP_ptr getGroup(SALOME_MED::medEntityMesh entity,
-               CORBA::Long i) throw(SALOME::SALOME_Exception);
-
-        SALOME_MED::SUPPORT_ptr
-       getBoundaryElements(SALOME_MED::medEntityMesh entity)
-         throw (SALOME::SALOME_Exception);
-
-        SALOME_MED::SUPPORT_ptr getSkin(SALOME_MED::SUPPORT_ptr mySupport3D)
-         throw (SALOME::SALOME_Exception);
-
-       SALOME_MED::FIELD_ptr getVolume(SALOME_MED::SUPPORT_ptr mySupport)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::FIELD_ptr getArea(SALOME_MED::SUPPORT_ptr mySupport)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::FIELD_ptr getLength(SALOME_MED::SUPPORT_ptr mySupport)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::FIELD_ptr getNormal(SALOME_MED::SUPPORT_ptr mySupport)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::FIELD_ptr getBarycenter(SALOME_MED::SUPPORT_ptr mySupport)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::FIELD_ptr getNeighbourhood(SALOME_MED::SUPPORT_ptr mySupport)
-               throw(SALOME::SALOME_Exception);
-
-       // Others
-       void addInStudy(SALOMEDS::Study_ptr myStudy,
-               SALOME_MED::MESH_ptr myIor) throw(SALOME::SALOME_Exception);
-       CORBA::Long addDriver(SALOME_MED::medDriverTypes driverType,
-               const char *fileName, const char *meshName)
-               throw(SALOME::SALOME_Exception);
-       void rmDriver(CORBA::Long i) throw(SALOME::SALOME_Exception);
-       void read(CORBA::Long i) throw(SALOME::SALOME_Exception);
-       void write(CORBA::Long i, const char *driverMeshName)
-               throw(SALOME::SALOME_Exception);
-
-       //                    Cuisine interne
-       CORBA::Long getCorbaIndex() throw(SALOME::SALOME_Exception);
-
-        SALOME_MED::MESH::meshInfos * getMeshGlobal()
-         throw (SALOME::SALOME_Exception);
-
-       bool areEquals(SALOME_MED::MESH_ptr other) { return false;};
-
-        SALOME_MED::MESH::coordinateInfos * getCoordGlobal()
-         throw (SALOME::SALOME_Exception);
-
-        SALOME_MED::MESH::connectivityInfos *
-       getConnectGlobal(SALOME_MED::medEntityMesh entity)
-         throw (SALOME::SALOME_Exception);
-
-       //
-       void calculeNbElts() throw(SALOME::SALOME_Exception);
-       void createFamilies() throw(SALOME::SALOME_Exception);
-};
-
-#endif /* _MED_MESH_I_HXX_ */
diff --git a/src/SMESH_I/SMESH_MEDSupport_i.cxx b/src/SMESH_I/SMESH_MEDSupport_i.cxx
deleted file mode 100644 (file)
index 7b5289e..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_MEDSupport_i.cxx
-//  Module : SMESH
-
-using namespace std;
-#include "SMESH_MEDSupport_i.hxx"
-#include "utilities.h"
-#include "Utils_CorbaException.hxx"
-#include "Utils_ExceptHandlers.hxx"
-
-#include <TopoDS_Iterator.hxx>
-#include "SMESHDS_Mesh.hxx"
-
-#include "SMESH_subMesh.hxx"
-#include "SMESH_Mesh_i.hxx"
-#include "SMESH_subMesh_i.hxx"
-
-
-//=============================================================================
-/*!
- * Default constructor
- */
-//=============================================================================
-SMESH_MEDSupport_i::SMESH_MEDSupport_i()
-{
-       BEGIN_OF("Default Constructor SMESH_MEDSupport_i");
-       END_OF("Default Constructor SMESH_MEDSupport_i");
-}
-
-//=============================================================================
-/*!
- * Constructor
- */
-//=============================================================================
-SMESH_MEDSupport_i::SMESH_MEDSupport_i(SMESH_subMesh_i * sm, string name,
-       string description, SALOME_MED::medEntityMesh entity)
-       :_subMesh_i(sm), _name(name), _description(description), _entity(entity),
-       _seqNumber(false), _seqLength(0)
-{
-       BEGIN_OF("Constructor SMESH_MEDSupport_i");
-
-       _meshDS = _subMesh_i->_mesh_i->GetImpl().GetMeshDS();
-
-       int subMeshId = _subMesh_i->GetId();
-
-       MESSAGE(" subMeshId " << subMeshId)
-
-       if (_subMesh_i->_mesh_i->_mapSubMesh.find(subMeshId) !=
-               _subMesh_i->_mesh_i->_mapSubMesh.end())
-       {
-               ::SMESH_subMesh * subMesh = _subMesh_i->_mesh_i->_mapSubMesh[subMeshId];
-               _subMeshDS = subMesh->GetSubMeshDS();
-       }
-
-       if (_entity == SALOME_MED::MED_NODE)
-       {
-               _numberOfGeometricType = 1;
-               _geometricType = new SALOME_MED::medGeometryElement[1];
-               _geometricType[0] = SALOME_MED::MED_NONE;
-       }
-       else
-       {
-               MESSAGE("Pas implemente dans cette version");
-               THROW_SALOME_CORBA_EXCEPTION
-                       ("Seules les familles de noeuds sont implementees ",
-                       SALOME::BAD_PARAM);
-       }
-
-       END_OF("Constructor SMESH_MEDSupport_i");
-}
-
-//=============================================================================
-/*!
- * Constructor
- */
-//=============================================================================
-SMESH_MEDSupport_i::
-SMESH_MEDSupport_i(const SMESH_MEDSupport_i & s):_subMesh_i(s._subMesh_i),
-_name(s._name), _description(s._description), _entity(s._entity),
-_seqNumber(false), _seqLength(0)
-{
-       BEGIN_OF("Constructor SMESH_MEDSupport_i");
-
-       _meshDS = _subMesh_i->_mesh_i->GetImpl().GetMeshDS();
-
-       int subMeshId = _subMesh_i->GetId();
-       if (_subMesh_i->_mesh_i->_mapSubMesh.find(subMeshId) !=
-               _subMesh_i->_mesh_i->_mapSubMesh.end())
-       {
-               ::SMESH_subMesh * subMesh = _subMesh_i->_mesh_i->_mapSubMesh[subMeshId];
-               _subMeshDS = subMesh->GetSubMeshDS();
-       }
-
-       END_OF("Constructor SMESH_MEDSupport_i");
-}
-
-//=============================================================================
-/*!
- * Destructor
- */
-//=============================================================================
-
-SMESH_MEDSupport_i::~SMESH_MEDSupport_i()
-{
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for Corba Index 
- */
-//=============================================================================
-
-CORBA::Long SMESH_MEDSupport_i::getCorbaIndex()throw(SALOME::SALOME_Exception)
-{
-       if (_subMeshDS == NULL)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Support",
-                       SALOME::INTERNAL_ERROR);
-       MESSAGE("Not implemented for SMESH_i");
-       THROW_SALOME_CORBA_EXCEPTION("Not Implemented ", SALOME::BAD_PARAM);
-
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for Name 
- */
-//=============================================================================
-
-char *SMESH_MEDSupport_i::getName() throw(SALOME::SALOME_Exception)
-{
-       if (_subMeshDS==NULL)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Support",
-                       SALOME::INTERNAL_ERROR);
-       return CORBA::string_dup(_name.c_str());
-
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for Description 
- */
-//=============================================================================
-
-char *SMESH_MEDSupport_i::getDescription() throw(SALOME::SALOME_Exception)
-{
-       if (_subMeshDS==NULL)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Support",
-                       SALOME::INTERNAL_ERROR);
-       return CORBA::string_dup(_description.c_str());
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for Mesh 
- */
-//=============================================================================
-
-SALOME_MED::MESH_ptr SMESH_MEDSupport_i::getMesh()throw(SALOME::
-       SALOME_Exception)
-{
-       if (_subMeshDS==NULL)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Support",
-                       SALOME::INTERNAL_ERROR);
-
-       return _subMesh_i->_mesh_i->GetMEDMesh();
-}
-
-//=============================================================================
-/*!
- * CORBA: boolean indicating if support concerns all elements 
- */
-//=============================================================================
-
-CORBA::Boolean SMESH_MEDSupport_i::isOnAllElements()throw(SALOME::
-       SALOME_Exception)
-{
-       if (_subMeshDS==NULL)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Support",
-                       SALOME::INTERNAL_ERROR);
-       if (_seqNumber == false)
-       {
-               if (_entity != SALOME_MED::MED_NONE)
-               {
-                       _seqLength = _subMeshDS->NbNodes();
-                       _seqNumber = true;
-               }
-               else
-               {
-                       MESSAGE("Only Node Families are implemented ");
-                       THROW_SALOME_CORBA_EXCEPTION("Not implemented Yet ",
-                               SALOME::BAD_PARAM);
-               }
-       }
-       try
-       {
-               _isOnAllElements = (_seqLength == _meshDS->NbNodes());
-       }
-       catch(...)
-       {
-               MESSAGE("unable to acces related Mesh");
-               THROW_SALOME_CORBA_EXCEPTION("No associated Mesh",
-                       SALOME::INTERNAL_ERROR);
-       };
-       return _isOnAllElements;
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for type of support's entity 
- */
-//=============================================================================
-
-SALOME_MED::medEntityMesh SMESH_MEDSupport_i::getEntity()throw(SALOME::
-       SALOME_Exception)
-{
-       if (_subMeshDS==NULL)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Support",
-                       SALOME::INTERNAL_ERROR);
-       return _entity;
-}
-
-//=============================================================================
-/*!
- * CORBA: Accessor for types of geometry elements 
- */
-//=============================================================================
-
-SALOME_MED::medGeometryElement_array *
-       SMESH_MEDSupport_i::getTypes()throw(SALOME::SALOME_Exception)
-{
-       if (_subMeshDS==NULL)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Support",
-                       SALOME::INTERNAL_ERROR);
-       SALOME_MED::medGeometryElement_array_var myseq =
-               new SALOME_MED::medGeometryElement_array;
-       try
-       {
-               int mySeqLength = _numberOfGeometricType;
-               myseq->length(mySeqLength);
-               for (int i = 0; i < mySeqLength; i++)
-               {
-                       myseq[i] = _geometricType[i];
-               }
-       }
-       catch(...)
-       {
-               MESSAGE("Exception lors de la recherche des differents types");
-               THROW_SALOME_CORBA_EXCEPTION("Unable to acces Support Types",
-                       SALOME::INTERNAL_ERROR);
-       }
-       return myseq._retn();
-}
-
-//=============================================================================
-/*!
- * CORBA: Number of different types of geometry elements
- *        existing in the support
- */
-//=============================================================================
-CORBA::Long SMESH_MEDSupport_i::getNumberOfElements(SALOME_MED::
-       medGeometryElement geomElement) throw(SALOME::SALOME_Exception)
-{
-       if (_subMeshDS==NULL)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Support",
-                       SALOME::INTERNAL_ERROR);
-       return _numberOfGeometricType;
-
-}
-
-//=============================================================================
-/*!
- * CORBA: get Nodes 
- */
-//=============================================================================
-
-SALOME_MED::long_array * SMESH_MEDSupport_i::getNumber(
-       SALOME_MED::medGeometryElement geomElement) throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-       if (_subMeshDS==NULL)
-               THROW_SALOME_CORBA_EXCEPTION("No associated Support",
-                       SALOME::INTERNAL_ERROR);
-
-       // A changer s'il ne s agit plus seulement de famille de noeuds
-       if (geomElement != SALOME_MED::MED_NONE)
-               THROW_SALOME_CORBA_EXCEPTION("Not implemented", SALOME::BAD_PARAM);
-
-       SALOME_MED::long_array_var myseq = new SALOME_MED::long_array;
-
-       int i = 0;
-       myseq->length(_subMeshDS->NbNodes());
-
-       SMDS_NodeIteratorPtr it = _subMeshDS->GetNodes();
-       while(it->more())
-       {
-               myseq[i] = it->next()->GetID();
-               i++;
-       };
-
-       SCRUTE(myseq->length());
-       MESSAGE("End of SMESH_MEDSupport_i::getNumber");
-       return myseq._retn();
-
-}
-
-//=============================================================================
-/*!
- * CORBA: Global Nodes Index (optionnaly designed by the user)
- * CORBA:  ??????????????????????????????
- */
-//=============================================================================
-
-SALOME_MED::long_array *
-       SMESH_MEDSupport_i::getNumberIndex()throw(SALOME::SALOME_Exception)
-{
-       MESSAGE("Not implemented for SMESH_i");
-       THROW_SALOME_CORBA_EXCEPTION("Not Implemented", SALOME::BAD_PARAM);
-       return NULL;
-}
-//=============================================================================
-/*!
- * CORBA: Array containing indexes for elements included in the support  
- */
-//=============================================================================
-
-CORBA::Long SMESH_MEDSupport_i::getNumberOfGaussPoint(SALOME_MED::
-       medGeometryElement geomElement) throw(SALOME::SALOME_Exception)
-{
-       MESSAGE("Not implemented for SMESH_i");
-       return 0;
-}
-//=============================================================================
-/*!
- * Gives the number of types of elements included in the support 
- */
-//=============================================================================
-CORBA::Long SMESH_MEDSupport_i::getNumberOfTypes()
-  throw (SALOME::SALOME_Exception)
-{
-  MESSAGE("!!! NOT YET IMPLEMENTED !!!!");
-  THROW_SALOME_CORBA_EXCEPTION("Not Implemented", SALOME::BAD_PARAM);
-  return 0;
-}
-//=============================================================================
-/*!
- * Gives CORBA: Array containing the numbers of Gauss point of elements
- * included in the support 
- */
-//=============================================================================
-SALOME_MED::long_array* SMESH_MEDSupport_i::getNumbersOfGaussPoint()
-  throw (SALOME::SALOME_Exception)
-{
-  MESSAGE("!!! NOT YET IMPLEMENTED !!!!");
-  THROW_SALOME_CORBA_EXCEPTION("Not Implemented", SALOME::BAD_PARAM);
-  return NULL;
-}
-//=============================================================================
-/*!
- * build the object which will contain all the boundary elements of the mesh.
- */
-//=============================================================================
-void SMESH_MEDSupport_i::getBoundaryElements()
-  throw (SALOME::SALOME_Exception)
-{
-  MESSAGE("!!! NOT YET IMPLEMENTED !!!!");
-  THROW_SALOME_CORBA_EXCEPTION("Not Implemented", SALOME::BAD_PARAM);
-}
-//=============================================================================
-/*!
- * Gives information on the support
- */
-//=============================================================================
-SALOME_MED::SUPPORT::supportInfos * SMESH_MEDSupport_i::getSupportGlobal()
-  throw (SALOME::SALOME_Exception)
-{
-  MESSAGE("!!! NOT YET IMPLEMENTED !!!!");
-  THROW_SALOME_CORBA_EXCEPTION("Not Implemented", SALOME::BAD_PARAM);
-  return NULL;
-}
diff --git a/src/SMESH_I/SMESH_MEDSupport_i.hxx b/src/SMESH_I/SMESH_MEDSupport_i.hxx
deleted file mode 100644 (file)
index 5be60dd..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-// File : SMESH_MEDSupport_i.hxx
-// Module : SMESH
-
-#ifndef _MED_SMESH_MEDSUPPORT_I_HXX_
-#define _MED_SMESH_MEDSUPPORT_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(MED)
-#include <string>
-
-#include "SMESHDS_Mesh.hxx"
-#include "SMESHDS_SubMesh.hxx"
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-
-#include "SMESH_MEDSupport_i.hxx"
-
-class SMESH_subMesh_i;
-
-class SMESH_MEDSupport_i:
-       public POA_SALOME_MED::SUPPORT, public PortableServer::RefCountServantBase
-{
-  public:
-
-// Constructors and associated internal methods
-       SMESH_MEDSupport_i(SMESH_subMesh_i * sm,
-               string name, string description, SALOME_MED::medEntityMesh entity);
-       SMESH_MEDSupport_i(const SMESH_MEDSupport_i & s);
-
-// IDL Methods
-       char *getName() throw(SALOME::SALOME_Exception);
-       char *getDescription() throw(SALOME::SALOME_Exception);
-       SALOME_MED::MESH_ptr getMesh() throw(SALOME::SALOME_Exception);
-       CORBA::Boolean isOnAllElements() throw(SALOME::SALOME_Exception);
-       SALOME_MED::medEntityMesh getEntity() throw(SALOME::SALOME_Exception);
-        CORBA::Long
-       getNumberOfElements(SALOME_MED::medGeometryElement geomElement)
-         throw(SALOME::SALOME_Exception);
-
-        CORBA::Long getNumberOfTypes() throw (SALOME::SALOME_Exception);
-
-       SALOME_MED::long_array *
-       getNumber(SALOME_MED::medGeometryElement geomElement)
-         throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::long_array * getNumberIndex()
-         throw(SALOME::SALOME_Exception);
-
-        CORBA::Long
-       getNumberOfGaussPoint(SALOME_MED::medGeometryElement geomElement)
-         throw(SALOME::SALOME_Exception);
-
-        SALOME_MED::long_array* getNumbersOfGaussPoint()
-         throw (SALOME::SALOME_Exception);
-
-       SALOME_MED::medGeometryElement_array *getTypes()
-         throw(SALOME::SALOME_Exception);
-
-        void getBoundaryElements() throw (SALOME::SALOME_Exception);
-
-       CORBA::Long getCorbaIndex() throw(SALOME::SALOME_Exception);
-
-        SALOME_MED::SUPPORT::supportInfos * getSupportGlobal()
-         throw (SALOME::SALOME_Exception);
-
-       void createSeq() throw(SALOME::SALOME_Exception);
-
-  public: //public field
-       const SMESHDS_SubMesh * _subMeshDS;
-       ::SMESH_subMesh_i * _subMesh_i;
-
-       SMESHDS_Mesh * _meshDS;
-       string _name;
-       string _description;
-       bool _isOnAllElements;
-       bool _seqNumber;
-       int _seqLength;
-
-       SALOME_MED::medEntityMesh _entity;
-       SALOME_MED::medGeometryElement * _geometricType;
-       int _numberOfGeometricType;
-
-  protected:
-       SMESH_MEDSupport_i();
-       ~SMESH_MEDSupport_i();
-};
-
-#endif /* _MED_MEDSUPPORT_I_HXX_ */
diff --git a/src/SMESH_I/SMESH_MeshEditor_i.cxx b/src/SMESH_I/SMESH_MeshEditor_i.cxx
deleted file mode 100644 (file)
index 0c46be9..0000000
+++ /dev/null
@@ -1,1702 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESH_MeshEditor_i.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#include "SMESH_MeshEditor_i.hxx"
-
-#include "SMDS_MeshEdge.hxx"
-#include "SMDS_MeshFace.hxx"
-#include "SMDS_MeshVolume.hxx"
-
-#include "SMESH_MeshEditor.hxx"
-
-#include "SMESH_Gen_i.hxx"
-#include "SMESH_Filter_i.hxx"
-
-#include "utilities.h"
-
-#include <gp_Ax1.hxx>
-#include <gp_Ax2.hxx>
-#include <gp_Vec.hxx>
-
-#include <sstream>
-
-using namespace std;
-
-//=======================================================================
-//function : addAxis
-//purpose  :
-//=======================================================================
-
-static TCollection_AsciiString& addAxis(TCollection_AsciiString&  theStr,
-                                        const SMESH::AxisStruct & theAxis)
-{
-  theStr += "SMESH.AxisStruct( ";
-  theStr += TCollection_AsciiString( theAxis.x  ) + ", ";
-  theStr += TCollection_AsciiString( theAxis.y  ) + ", ";
-  theStr += TCollection_AsciiString( theAxis.z  ) + ", ";
-  theStr += TCollection_AsciiString( theAxis.vx ) + ", ";
-  theStr += TCollection_AsciiString( theAxis.vy ) + ", ";
-  theStr += TCollection_AsciiString( theAxis.vz ) + " )";
-  return theStr;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-SMESH_MeshEditor_i::SMESH_MeshEditor_i(SMESH_Mesh* theMesh)
-{
-       _myMesh = theMesh;
-};
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-CORBA::Boolean
-  SMESH_MeshEditor_i::RemoveElements(const SMESH::long_array & IDsOfElements)
-{
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  list< int > IdList;
-
-  for (int i = 0; i < IDsOfElements.length(); i++)
-    IdList.push_back( IDsOfElements[i] );
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.RemoveElements(");
-  SMESH_Gen_i::AddArray( str, IDsOfElements ) += ")";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-#ifdef _DEBUG_
-  SMESH_Gen_i::AddToCurrentPyScript( "print \"RemoveElements: \", isDone" );
-#endif
-  // Remove Elements
-  return anEditor.Remove( IdList, false );
-};
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-CORBA::Boolean SMESH_MeshEditor_i::RemoveNodes(const SMESH::
-       long_array & IDsOfNodes)
-{
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  list< int > IdList;
-  for (int i = 0; i < IDsOfNodes.length(); i++)
-    IdList.push_back( IDsOfNodes[i] );
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.RemoveNodes(");
-  SMESH_Gen_i::AddArray( str, IDsOfNodes ) += ")";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-#ifdef _DEBUG_
-  SMESH_Gen_i::AddToCurrentPyScript( "print \"RemoveNodes: \", isDone" );
-#endif
-
-  return anEditor.Remove( IdList, true );
-};
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-CORBA::Boolean SMESH_MeshEditor_i::AddEdge(const SMESH::long_array & IDsOfNodes)
-{
-  int NbNodes = IDsOfNodes.length();
-  if (NbNodes == 2)
-  {
-    CORBA::Long index1 = IDsOfNodes[0];
-    CORBA::Long index2 = IDsOfNodes[1];
-    GetMeshDS()->AddEdge(GetMeshDS()->FindNode(index1), GetMeshDS()->FindNode(index2));
-
-    // Update Python script
-    TCollection_AsciiString str ("isDone = mesh_editor.AddEdge([");
-    str += TCollection_AsciiString((int) index1) + ", ";
-    str += TCollection_AsciiString((int) index2) + " ])";
-    SMESH_Gen_i::AddToCurrentPyScript( str );
-  }
-  return true;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-CORBA::Boolean SMESH_MeshEditor_i::AddNode(CORBA::Double x,
-                                           CORBA::Double y, CORBA::Double z)
-{
-  GetMeshDS()->AddNode(x, y, z);
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.AddNode(");
-  str += TCollection_AsciiString( x ) + ", ";
-  str += TCollection_AsciiString( y ) + ", ";
-  str += TCollection_AsciiString( z ) + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-
-  return true;
-}
-
-//=============================================================================
-/*!
- *  AddFace
- */
-//=============================================================================
-
-CORBA::Boolean SMESH_MeshEditor_i::AddFace(const SMESH::long_array & IDsOfNodes)
-{
-  int NbNodes = IDsOfNodes.length();
-  if (NbNodes < 3)
-  {
-    return false;
-  }
-
-  std::vector<const SMDS_MeshNode*> nodes (NbNodes);
-  for (int i = 0; i < NbNodes; i++)
-    nodes[i] = GetMeshDS()->FindNode(IDsOfNodes[i]);
-
-  if (NbNodes == 3)
-  {
-    GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2]);
-  }
-  else if (NbNodes == 4)
-  {
-    GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2], nodes[3]);
-  }
-  else
-  {
-    GetMeshDS()->AddPolygonalFace(nodes);
-  }
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.AddFace(");
-  SMESH_Gen_i::AddArray( str, IDsOfNodes ) += ")";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-#ifdef _DEBUG_
-  SMESH_Gen_i::AddToCurrentPyScript( "print \"AddFace: \", isDone" );
-#endif
-
-  return true;
-};
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-CORBA::Boolean SMESH_MeshEditor_i::AddVolume(const SMESH::
-                                             long_array & IDsOfNodes)
-{
-  int NbNodes = IDsOfNodes.length();
-  vector< const SMDS_MeshNode*> n(NbNodes);
-  for(int i=0;i<NbNodes;i++)
-    n[i]=GetMeshDS()->FindNode(IDsOfNodes[i]);
-
-  switch(NbNodes)
-  {
-  case 4:GetMeshDS()->AddVolume(n[0],n[1],n[2],n[3]); break;
-  case 5:GetMeshDS()->AddVolume(n[0],n[1],n[2],n[3],n[4]); break;
-  case 6:GetMeshDS()->AddVolume(n[0],n[1],n[2],n[3],n[4],n[5]); break;
-  case 8:GetMeshDS()->AddVolume(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7]); break;
-  }
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.AddVolume(");
-  SMESH_Gen_i::AddArray( str, IDsOfNodes ) += ")";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-#ifdef _DEBUG_
-  SMESH_Gen_i::AddToCurrentPyScript( "print \"AddVolume: \", isDone" );
-#endif
-
-  return true;
-};
-
-//=============================================================================
-/*!
- *  AddPolyhedralVolume
- */
-//=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::AddPolyhedralVolume
-                                   (const SMESH::long_array & IDsOfNodes,
-                                    const SMESH::long_array & Quantities)
-{
-  int NbNodes = IDsOfNodes.length();
-  std::vector<const SMDS_MeshNode*> n (NbNodes);
-  for (int i = 0; i < NbNodes; i++)
-    n[i] = GetMeshDS()->FindNode(IDsOfNodes[i]);
-
-  int NbFaces = Quantities.length();
-  std::vector<int> q (NbFaces);
-  for (int j = 0; j < NbFaces; j++)
-    q[j] = Quantities[j];
-
-  GetMeshDS()->AddPolyhedralVolume(n, q);
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.AddPolyhedralVolume(");
-  SMESH_Gen_i::AddArray( str, IDsOfNodes ) += ", ";
-  SMESH_Gen_i::AddArray( str, Quantities ) += ")";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-#ifdef _DEBUG_
-  SMESH_Gen_i::AddToCurrentPyScript( "print \"AddPolyhedralVolume: \", isDone" );
-#endif
-
-  return true;
-};
-
-//=============================================================================
-/*!
- *  AddPolyhedralVolumeByFaces
- */
-//=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::AddPolyhedralVolumeByFaces
-                                   (const SMESH::long_array & IdsOfFaces)
-{
-  int NbFaces = IdsOfFaces.length();
-  std::vector<const SMDS_MeshNode*> poly_nodes;
-  std::vector<int> quantities (NbFaces);
-
-  for (int i = 0; i < NbFaces; i++) {
-    const SMDS_MeshElement* aFace = GetMeshDS()->FindElement(IdsOfFaces[i]);
-    quantities[i] = aFace->NbNodes();
-
-    SMDS_ElemIteratorPtr It = aFace->nodesIterator();
-    while (It->more()) {
-      poly_nodes.push_back(static_cast<const SMDS_MeshNode *>(It->next()));
-    }
-  }
-
-  GetMeshDS()->AddPolyhedralVolume(poly_nodes, quantities);
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.AddPolyhedralVolumeByFaces(");
-  SMESH_Gen_i::AddArray( str, IdsOfFaces ) += ")";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-#ifdef _DEBUG_
-  SMESH_Gen_i::AddToCurrentPyScript( "print \"AddPolyhedralVolume: \", isDone" );
-#endif
-
-  return true;
-};
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-CORBA::Boolean SMESH_MeshEditor_i::MoveNode(CORBA::Long   NodeID,
-                                            CORBA::Double x,
-                                            CORBA::Double y,
-                                            CORBA::Double z)
-{
-  const SMDS_MeshNode * node = GetMeshDS()->FindNode( NodeID );
-  if ( !node )
-    return false;
-
-  GetMeshDS()->MoveNode(node, x, y, z);
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.MoveNode(");
-  str += TCollection_AsciiString((Standard_Integer) NodeID) + ", ";
-  str += TCollection_AsciiString((Standard_Real) x) + ", ";
-  str += TCollection_AsciiString((Standard_Real) y) + ", ";
-  str += TCollection_AsciiString((Standard_Real) z) + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-
-  return true;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-CORBA::Boolean SMESH_MeshEditor_i::InverseDiag(CORBA::Long NodeID1,
-                                               CORBA::Long NodeID2)
-{
-  const SMDS_MeshNode * n1 = GetMeshDS()->FindNode( NodeID1 );
-  const SMDS_MeshNode * n2 = GetMeshDS()->FindNode( NodeID2 );
-  if ( !n1 || !n2 )
-    return false;
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.InverseDiag(");
-  str += TCollection_AsciiString((Standard_Integer) NodeID1) + ", ";
-  str += TCollection_AsciiString((Standard_Integer) NodeID2) + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-
-  ::SMESH_MeshEditor aMeshEditor( _myMesh );
-  return aMeshEditor.InverseDiag ( n1, n2 );
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-CORBA::Boolean SMESH_MeshEditor_i::DeleteDiag(CORBA::Long NodeID1,
-                                              CORBA::Long NodeID2)
-{
-  const SMDS_MeshNode * n1 = GetMeshDS()->FindNode( NodeID1 );
-  const SMDS_MeshNode * n2 = GetMeshDS()->FindNode( NodeID2 );
-  if ( !n1 || !n2 )
-    return false;
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.DeleteDiag(");
-  str += TCollection_AsciiString((Standard_Integer) NodeID1) + ", ";
-  str += TCollection_AsciiString((Standard_Integer) NodeID2) + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-
-  ::SMESH_MeshEditor aMeshEditor( _myMesh );
-  return aMeshEditor.DeleteDiag ( n1, n2 );
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-CORBA::Boolean SMESH_MeshEditor_i::Reorient(const SMESH::long_array & IDsOfElements)
-{
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  for (int i = 0; i < IDsOfElements.length(); i++)
-  {
-    CORBA::Long index = IDsOfElements[i];
-    const SMDS_MeshElement * elem = GetMeshDS()->FindElement(index);
-    if ( elem )
-      anEditor.Reorient( elem );
-  }
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.Reorient(");
-  SMESH_Gen_i::AddArray( str, IDsOfElements ) += ")";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-
-  return true;
-}
-
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-CORBA::Boolean SMESH_MeshEditor_i::ReorientObject(SMESH::SMESH_IDSource_ptr theObject)
-{
-  SMESH::long_array_var anElementsId = theObject->GetIDs();
-  CORBA::Boolean isDone = Reorient(anElementsId);
-
-  // Clear python line, created by Reorient()
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.ReorientObject(");
-  SMESH_Gen_i::AddObject( str, theObject ) += ")";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-
-  return isDone;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::TriToQuad (const SMESH::long_array &   IDsOfElements,
-                                              SMESH::NumericalFunctor_ptr Criterion,
-                                              CORBA::Double               MaxAngle)
-{
-  set<const SMDS_MeshElement*> faces;
-  for (int i = 0; i < IDsOfElements.length(); i++)
-  {
-    CORBA::Long index = IDsOfElements[i];
-    const SMDS_MeshElement * elem = GetMeshDS()->FindElement(index);
-    if ( elem && elem->GetType() == SMDSAbs_Face)
-      faces.insert( elem );
-  }
-  SMESH::NumericalFunctor_i* aNumericalFunctor =
-    dynamic_cast<SMESH::NumericalFunctor_i*>( SMESH_Gen_i::GetServant( Criterion ).in() );
-  SMESH::Controls::NumericalFunctorPtr aCrit;
-  if ( !aNumericalFunctor )
-    aCrit.reset( new SMESH::Controls::AspectRatio() );
-  else
-    aCrit = aNumericalFunctor->GetNumericalFunctor();
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.TriToQuad(");
-  SMESH_Gen_i::AddArray( str, IDsOfElements ) += ", None, ";
-  str += TCollection_AsciiString((Standard_Real) MaxAngle) + ")";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-#ifdef _DEBUG_
-  SMESH_Gen_i::AddToCurrentPyScript( "print \"TriToQuad: \", isDone" );
-#endif
-
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  return anEditor.TriToQuad( faces, aCrit, MaxAngle );
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::TriToQuadObject (SMESH::SMESH_IDSource_ptr   theObject,
-                                                    SMESH::NumericalFunctor_ptr Criterion,
-                                                    CORBA::Double               MaxAngle)
-{
-  SMESH::long_array_var anElementsId = theObject->GetIDs();
-  CORBA::Boolean isDone = TriToQuad(anElementsId, Criterion, MaxAngle);
-
-  // Clear python line(s), created by TriToQuad()
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
-#ifdef _DEBUG_
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
-#endif
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.TriToQuadObject(");
-  SMESH_Gen_i::AddObject( str, theObject ) += ", None, ";
-  str += TCollection_AsciiString((Standard_Real) MaxAngle) + ")";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-#ifdef _DEBUG_
-  SMESH_Gen_i::AddToCurrentPyScript( "print \"TriToQuadObject: \", isDone" );
-#endif
-
-  return isDone;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::QuadToTri (const SMESH::long_array &   IDsOfElements,
-                                              SMESH::NumericalFunctor_ptr Criterion)
-{
-  set<const SMDS_MeshElement*> faces;
-  for (int i = 0; i < IDsOfElements.length(); i++)
-  {
-    CORBA::Long index = IDsOfElements[i];
-    const SMDS_MeshElement * elem = GetMeshDS()->FindElement(index);
-    if ( elem && elem->GetType() == SMDSAbs_Face)
-      faces.insert( elem );
-  }
-  SMESH::NumericalFunctor_i* aNumericalFunctor =
-    dynamic_cast<SMESH::NumericalFunctor_i*>( SMESH_Gen_i::GetServant( Criterion ).in() );
-  SMESH::Controls::NumericalFunctorPtr aCrit;
-  if ( !aNumericalFunctor )
-    aCrit.reset( new SMESH::Controls::AspectRatio() );
-  else
-    aCrit = aNumericalFunctor->GetNumericalFunctor();
-
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.QuadToTri(");
-  SMESH_Gen_i::AddArray( str, IDsOfElements ) += ", None )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-#ifdef _DEBUG_
-  SMESH_Gen_i::AddToCurrentPyScript( "print \"QuadToTri: \", isDone" );
-#endif
-
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  return anEditor.QuadToTri( faces, aCrit );
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::QuadToTriObject (SMESH::SMESH_IDSource_ptr   theObject,
-                                                    SMESH::NumericalFunctor_ptr Criterion)
-{
-  SMESH::long_array_var anElementsId = theObject->GetIDs();
-  CORBA::Boolean isDone = QuadToTri(anElementsId, Criterion);
-
-  // Clear python line(s), created by QuadToTri()
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
-#ifdef _DEBUG_
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
-#endif
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.QuadToTriObject(");
-  SMESH_Gen_i::AddObject( str, theObject ) += ", None )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-#ifdef _DEBUG_
-  SMESH_Gen_i::AddToCurrentPyScript( "print \"QuadToTriObject: \", isDone" );
-#endif
-
-  return isDone;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::SplitQuad (const SMESH::long_array & IDsOfElements,
-                                              CORBA::Boolean            Diag13)
-{
-  set<const SMDS_MeshElement*> faces;
-  for (int i = 0; i < IDsOfElements.length(); i++)
-  {
-    CORBA::Long index = IDsOfElements[i];
-    const SMDS_MeshElement * elem = GetMeshDS()->FindElement(index);
-    if ( elem && elem->GetType() == SMDSAbs_Face)
-      faces.insert( elem );
-  }
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.SplitQuad(");
-  SMESH_Gen_i::AddArray( str, IDsOfElements ) += ", ";
-  str += TCollection_AsciiString( Diag13 ) + ")";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-#ifdef _DEBUG_
-  SMESH_Gen_i::AddToCurrentPyScript( "print \"SplitQuad: \", isDone" );
-#endif
-
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  return anEditor.QuadToTri( faces, Diag13 );
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::SplitQuadObject (SMESH::SMESH_IDSource_ptr theObject,
-                                                    CORBA::Boolean            Diag13)
-{
-  SMESH::long_array_var anElementsId = theObject->GetIDs();
-  CORBA::Boolean isDone = SplitQuad(anElementsId, Diag13);
-
-  // Clear python line(s), created by SplitQuad()
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
-#ifdef _DEBUG_
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
-#endif
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.SplitQuadObject(");
-  SMESH_Gen_i::AddObject( str, theObject ) += ", ";
-  str += TCollection_AsciiString( Diag13 ) + ")";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-#ifdef _DEBUG_
-  SMESH_Gen_i::AddToCurrentPyScript( "print \"SplitQuadObject: \", isDone" );
-#endif
-
-  return isDone;
-}
-
-//=============================================================================
-/*!
- *  BestSplit
- */
-//=============================================================================
-CORBA::Long SMESH_MeshEditor_i::BestSplit (CORBA::Long                 IDOfQuad,
-                                           SMESH::NumericalFunctor_ptr Criterion)
-{
-  const SMDS_MeshElement* quad = GetMeshDS()->FindElement(IDOfQuad);
-  if (quad && quad->GetType() == SMDSAbs_Face && quad->NbNodes() == 4)
-  {
-    SMESH::NumericalFunctor_i* aNumericalFunctor =
-      dynamic_cast<SMESH::NumericalFunctor_i*>(SMESH_Gen_i::GetServant(Criterion).in());
-    SMESH::Controls::NumericalFunctorPtr aCrit;
-    if (aNumericalFunctor)
-      aCrit = aNumericalFunctor->GetNumericalFunctor();
-    else
-      aCrit.reset(new SMESH::Controls::AspectRatio());
-
-    ::SMESH_MeshEditor anEditor (_myMesh);
-    return anEditor.BestSplit(quad, aCrit);
-  }
-  return -1;
-}
-
-//=======================================================================
-//function : Smooth
-//purpose  :
-//=======================================================================
-
-CORBA::Boolean
-  SMESH_MeshEditor_i::Smooth(const SMESH::long_array &              IDsOfElements,
-                             const SMESH::long_array &              IDsOfFixedNodes,
-                             CORBA::Long                            MaxNbOfIterations,
-                             CORBA::Double                          MaxAspectRatio,
-                             SMESH::SMESH_MeshEditor::Smooth_Method Method)
-{
-  return smooth( IDsOfElements, IDsOfFixedNodes, MaxNbOfIterations,
-                MaxAspectRatio, Method, false );
-}
-
-//=======================================================================
-//function : SmoothParametric
-//purpose  :
-//=======================================================================
-
-CORBA::Boolean
-  SMESH_MeshEditor_i::SmoothParametric(const SMESH::long_array &              IDsOfElements,
-                                       const SMESH::long_array &              IDsOfFixedNodes,
-                                       CORBA::Long                            MaxNbOfIterations,
-                                       CORBA::Double                          MaxAspectRatio,
-                                       SMESH::SMESH_MeshEditor::Smooth_Method Method)
-{
-  return smooth( IDsOfElements, IDsOfFixedNodes, MaxNbOfIterations,
-                MaxAspectRatio, Method, true );
-}
-
-//=======================================================================
-//function : SmoothObject
-//purpose  :
-//=======================================================================
-
-CORBA::Boolean
-  SMESH_MeshEditor_i::SmoothObject(SMESH::SMESH_IDSource_ptr              theObject,
-                                  const SMESH::long_array &              IDsOfFixedNodes,
-                                  CORBA::Long                            MaxNbOfIterations,
-                                  CORBA::Double                          MaxAspectRatio,
-                                  SMESH::SMESH_MeshEditor::Smooth_Method Method)
-{
-  return smoothObject (theObject, IDsOfFixedNodes, MaxNbOfIterations,
-                       MaxAspectRatio, Method, false);
-}
-
-//=======================================================================
-//function : SmoothParametricObject
-//purpose  :
-//=======================================================================
-
-CORBA::Boolean
-  SMESH_MeshEditor_i::SmoothParametricObject(SMESH::SMESH_IDSource_ptr              theObject,
-                                  const SMESH::long_array &              IDsOfFixedNodes,
-                                  CORBA::Long                            MaxNbOfIterations,
-                                  CORBA::Double                          MaxAspectRatio,
-                                  SMESH::SMESH_MeshEditor::Smooth_Method Method)
-{
-  return smoothObject (theObject, IDsOfFixedNodes, MaxNbOfIterations,
-                       MaxAspectRatio, Method, true);
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-CORBA::Boolean
-  SMESH_MeshEditor_i::smooth(const SMESH::long_array &              IDsOfElements,
-                             const SMESH::long_array &              IDsOfFixedNodes,
-                             CORBA::Long                            MaxNbOfIterations,
-                             CORBA::Double                          MaxAspectRatio,
-                             SMESH::SMESH_MeshEditor::Smooth_Method Method,
-                             bool                                   IsParametric)
-{
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < IDsOfElements.length(); i++)
-  {
-    CORBA::Long index = IDsOfElements[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem && elem->GetType() == SMDSAbs_Face)
-      elements.insert( elem );
-  }
-
-  set<const SMDS_MeshNode*> fixedNodes;
-  for (int i = 0; i < IDsOfFixedNodes.length(); i++)
-  {
-    CORBA::Long index = IDsOfFixedNodes[i];
-    const SMDS_MeshNode * node = aMesh->FindNode(index);
-    if ( node )
-      fixedNodes.insert( node );
-  }
-  ::SMESH_MeshEditor::SmoothMethod method = ::SMESH_MeshEditor::LAPLACIAN;
-  if ( Method != SMESH::SMESH_MeshEditor::LAPLACIAN_SMOOTH )
-    method = ::SMESH_MeshEditor::CENTROIDAL;
-
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  anEditor.Smooth(elements, fixedNodes, method,
-                  MaxNbOfIterations, MaxAspectRatio, IsParametric );
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.");
-  str += (char*) (IsParametric ? "SmoothParametric( " : "Smooth( ");
-  SMESH_Gen_i::AddArray( str, IDsOfElements ) += ", ";
-  SMESH_Gen_i::AddArray( str, IDsOfFixedNodes ) += ", ";
-  str += (Standard_Integer) MaxNbOfIterations;
-  str += ", ";
-  str += (Standard_Real) MaxAspectRatio;
-  if ( method == ::SMESH_MeshEditor::CENTROIDAL )
-    str += ", SMESH.SMESH_MeshEditor.CENTROIDAL_SMOOTH, ";
-  else
-    str += ", SMESH.SMESH_MeshEditor.LAPLACIAN_SMOOTH, ";
-  str += IsParametric;
-  str += " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-#ifdef _DEBUG_
-  SMESH_Gen_i::AddToCurrentPyScript( "print \"Smooth: \", isDone" );
-#endif
-
-  return true;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-CORBA::Boolean
-  SMESH_MeshEditor_i::smoothObject(SMESH::SMESH_IDSource_ptr              theObject,
-                                  const SMESH::long_array &              IDsOfFixedNodes,
-                                  CORBA::Long                            MaxNbOfIterations,
-                                  CORBA::Double                          MaxAspectRatio,
-                                  SMESH::SMESH_MeshEditor::Smooth_Method Method,
-                                   bool                                   IsParametric)
-{
-  SMESH::long_array_var anElementsId = theObject->GetIDs();
-  CORBA::Boolean isDone = smooth (anElementsId, IDsOfFixedNodes, MaxNbOfIterations,
-                                  MaxAspectRatio, Method, IsParametric);
-
-  // Clear python line(s), created by Smooth()
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
-#ifdef _DEBUG_
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
-#endif
-
-  // Update Python script
-  TCollection_AsciiString str ("isDone = mesh_editor.");
-  str += (char*) (IsParametric ? "SmoothParametricObject( " : "SmoothObject( ");
-  SMESH_Gen_i::AddObject( str, theObject ) += ", ";
-  SMESH_Gen_i::AddArray( str, IDsOfFixedNodes ) += ", ";
-  str += (Standard_Integer) MaxNbOfIterations;
-  str += ", ";
-  str += (Standard_Real) MaxAspectRatio;
-  if ( Method == SMESH::SMESH_MeshEditor::CENTROIDAL_SMOOTH )
-    str += ", SMESH.SMESH_MeshEditor.CENTROIDAL_SMOOTH, ";
-  else
-    str += ", SMESH.SMESH_MeshEditor.LAPLACIAN_SMOOTH, ";
-  str += IsParametric;
-  str += " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-#ifdef _DEBUG_
-  SMESH_Gen_i::AddToCurrentPyScript( "print \"SmoothObject: \", isDone" );
-#endif
-
-  return isDone;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-void SMESH_MeshEditor_i::RenumberNodes()
-{
-  // Update Python script
-  SMESH_Gen_i::AddToCurrentPyScript( "mesh_editor.RenumberNodes()" );
-
-  GetMeshDS()->Renumber( true );
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-void SMESH_MeshEditor_i::RenumberElements()
-{
-  // Update Python script
-  SMESH_Gen_i::AddToCurrentPyScript( "mesh_editor.RenumberElements()" );
-
-  GetMeshDS()->Renumber( false );
-}
-
-//=======================================================================
-//function : RotationSweep
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor_i::RotationSweep(const SMESH::long_array & theIDsOfElements,
-                                       const SMESH::AxisStruct & theAxis,
-                                       CORBA::Double             theAngleInRadians,
-                                       CORBA::Long               theNbOfSteps,
-                                       CORBA::Double             theTolerance)
-{
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < theIDsOfElements.length(); i++)
-  {
-    CORBA::Long index = theIDsOfElements[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem )
-      elements.insert( elem );
-  }
-  gp_Ax1 Ax1 (gp_Pnt( theAxis.x, theAxis.y, theAxis.z ),
-              gp_Vec( theAxis.vx, theAxis.vy, theAxis.vz ));
-
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  anEditor.RotationSweep (elements, Ax1, theAngleInRadians,
-                          theNbOfSteps, theTolerance);
-
-  // Update Python script
-  TCollection_AsciiString str = "axis = ";
-  addAxis( str, theAxis );
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-  str = "mesh_editor.RotationSweep(";
-  SMESH_Gen_i::AddArray( str, theIDsOfElements ) += ", axis, ";
-  str += TCollection_AsciiString( theAngleInRadians ) + ", ";
-  str += TCollection_AsciiString( (int)theNbOfSteps ) + ", ";
-  str += TCollection_AsciiString( theTolerance      ) + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-}
-
-//=======================================================================
-//function : RotationSweepObject
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor_i::RotationSweepObject(SMESH::SMESH_IDSource_ptr theObject,
-                                            const SMESH::AxisStruct & theAxis,
-                                            CORBA::Double             theAngleInRadians,
-                                            CORBA::Long               theNbOfSteps,
-                                            CORBA::Double             theTolerance)
-{
-  SMESH::long_array_var anElementsId = theObject->GetIDs();
-  RotationSweep(anElementsId, theAxis, theAngleInRadians, theNbOfSteps, theTolerance);
-
-  // Clear python line, created by RotationSweep()
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
-
-  // Update Python script
-  TCollection_AsciiString str ("mesh_editor.RotationSweepObject(");
-  SMESH_Gen_i::AddObject( str, theObject ) += ", axis, ";
-  str += TCollection_AsciiString( theAngleInRadians ) + ", ";
-  str += TCollection_AsciiString( (int)theNbOfSteps ) + ", ";
-  str += TCollection_AsciiString( theTolerance      ) + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-}
-
-//=======================================================================
-//function : ExtrusionSweep
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor_i::ExtrusionSweep(const SMESH::long_array & theIDsOfElements,
-                                        const SMESH::DirStruct &  theStepVector,
-                                        CORBA::Long               theNbOfSteps)
-{
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < theIDsOfElements.length(); i++)
-  {
-    CORBA::Long index = theIDsOfElements[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem )
-      elements.insert( elem );
-  }
-  const SMESH::PointStruct * P = &theStepVector.PS;
-  gp_Vec stepVec( P->x, P->y, P->z );
-
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps);
-
-  // Update Python script
-  TCollection_AsciiString str = "stepVector = SMESH.DirStruct( SMESH.PointStruct ( ";
-  str += (TCollection_AsciiString) stepVec.X() + ", ";
-  str += (TCollection_AsciiString) stepVec.Y() + ", ";
-  str += (TCollection_AsciiString) stepVec.Z() + " ))";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-  str = ("mesh_editor.ExtrusionSweep(");
-  SMESH_Gen_i::AddArray( str, theIDsOfElements ) += ", stepVector, ";
-  str += TCollection_AsciiString((int)theNbOfSteps) + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-}
-
-
-//=======================================================================
-//function : ExtrusionSweepObject
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor_i::ExtrusionSweepObject(SMESH::SMESH_IDSource_ptr theObject,
-                                             const SMESH::DirStruct &  theStepVector,
-                                             CORBA::Long               theNbOfSteps)
-{
-  SMESH::long_array_var anElementsId = theObject->GetIDs();
-  ExtrusionSweep(anElementsId, theStepVector, theNbOfSteps);
-
-  // Clear python line, created by ExtrusionSweep()
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
-
-  // Update Python script
-  TCollection_AsciiString str ("mesh_editor.ExtrusionSweepObject(");
-  SMESH_Gen_i::AddObject( str, theObject ) += ", stepVector, ";
-  str += TCollection_AsciiString((int)theNbOfSteps) + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-}
-//=======================================================================
-//function : ExtrusionSweepObject1D
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor_i::ExtrusionSweepObject1D(SMESH::SMESH_IDSource_ptr theObject,
-                                                const SMESH::DirStruct &  theStepVector,
-                                                CORBA::Long               theNbOfSteps)
-{
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  SMESH::long_array_var allElementsId = theObject->GetIDs();
-
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < allElementsId->length(); i++)
-  {
-    CORBA::Long index = allElementsId[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem && elem->GetType() == SMDSAbs_Edge )
-      elements.insert( elem );
-  }
-  const SMESH::PointStruct * P = &theStepVector.PS;
-  gp_Vec stepVec( P->x, P->y, P->z );
-
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps);
-}
-
-//=======================================================================
-//function : ExtrusionSweepObject2D
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor_i::ExtrusionSweepObject2D(SMESH::SMESH_IDSource_ptr theObject,
-                                                const SMESH::DirStruct &  theStepVector,
-                                                CORBA::Long               theNbOfSteps)
-{
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  SMESH::long_array_var allElementsId = theObject->GetIDs();
-
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < allElementsId->length(); i++)
-  {
-    CORBA::Long index = allElementsId[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem && elem->GetType() == SMDSAbs_Face )
-      elements.insert( elem );
-  }
-  const SMESH::PointStruct * P = &theStepVector.PS;
-  gp_Vec stepVec( P->x, P->y, P->z );
-
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps);
-}
-
-#define RETCASE(enm) case ::SMESH_MeshEditor::enm: return SMESH::SMESH_MeshEditor::enm;
-
-static SMESH::SMESH_MeshEditor::Extrusion_Error convExtrError( const::SMESH_MeshEditor::Extrusion_Error e )
-{
-  switch ( e ) {
-  RETCASE( EXTR_OK );
-  RETCASE( EXTR_NO_ELEMENTS );
-  RETCASE( EXTR_PATH_NOT_EDGE );
-  RETCASE( EXTR_BAD_PATH_SHAPE );
-  RETCASE( EXTR_BAD_STARTING_NODE );
-  RETCASE( EXTR_BAD_ANGLES_NUMBER );
-  RETCASE( EXTR_CANT_GET_TANGENT );
-  }
-  return SMESH::SMESH_MeshEditor::EXTR_OK;
-}
-
-//=======================================================================
-//function : ExtrusionAlongPath
-//purpose  :
-//=======================================================================
-
-SMESH::SMESH_MeshEditor::Extrusion_Error
-  SMESH_MeshEditor_i::ExtrusionAlongPath(const SMESH::long_array &   theIDsOfElements,
-                                        SMESH::SMESH_Mesh_ptr       thePathMesh,
-                                        GEOM::GEOM_Object_ptr       thePathShape,
-                                        CORBA::Long                 theNodeStart,
-                                        CORBA::Boolean              theHasAngles,
-                                        const SMESH::double_array & theAngles,
-                                        CORBA::Boolean              theHasRefPoint,
-                                        const SMESH::PointStruct &  theRefPoint)
-{
-  SMESHDS_Mesh*  aMesh = GetMeshDS();
-
-  if ( thePathMesh->_is_nil() || thePathShape->_is_nil() )
-    return SMESH::SMESH_MeshEditor::EXTR_BAD_PATH_SHAPE;
-
-  SMESH_Mesh_i* aMeshImp = dynamic_cast<SMESH_Mesh_i*>( SMESH_Gen_i::GetServant( thePathMesh ).in() );
-  TopoDS_Shape aShape = SMESH_Gen_i::GetSMESHGen()->GeomObjectToShape( thePathShape );
-  SMESH_subMesh* aSubMesh = aMeshImp->GetImpl().GetSubMesh( aShape );
-
-  if ( !aSubMesh )
-    return SMESH::SMESH_MeshEditor::EXTR_BAD_PATH_SHAPE;
-
-  SMDS_MeshNode* nodeStart = (SMDS_MeshNode*)aMeshImp->GetImpl().GetMeshDS()->FindNode(theNodeStart);
-  if ( !nodeStart )
-    return SMESH::SMESH_MeshEditor::EXTR_BAD_STARTING_NODE;
-
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < theIDsOfElements.length(); i++)
-  {
-    CORBA::Long index = theIDsOfElements[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem )
-      elements.insert( elem );
-  }
-
-  list<double> angles;
-  for (int i = 0; i < theAngles.length(); i++)
-  {
-    angles.push_back( theAngles[i] );
-  }
-
-  gp_Pnt refPnt( theRefPoint.x, theRefPoint.y, theRefPoint.z );
-
-  // Update Python script
-  TCollection_AsciiString str = "refPoint = SMESH.PointStruct( ";
-  str += (TCollection_AsciiString) refPnt.X() + ", ";
-  str += (TCollection_AsciiString) refPnt.Y() + ", ";
-  str += (TCollection_AsciiString) refPnt.Z() + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-  str = ("error = mesh_editor.ExtrusionAlongPath(");
-  SMESH_Gen_i::AddArray ( str, theIDsOfElements ) += ", ";
-  SMESH_Gen_i::AddObject( str, thePathMesh ) += ", ";
-  SMESH_Gen_i::AddObject( str, thePathShape ) += ", ";
-  str += TCollection_AsciiString( (int)theNodeStart ) + ", ";
-  str += TCollection_AsciiString( (int)theHasAngles ) + ", ";
-  SMESH_Gen_i::AddArray ( str, theAngles ) += ", ";
-  str += (TCollection_AsciiString) theHasRefPoint + ", refPoint )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  return convExtrError( anEditor.ExtrusionAlongTrack( elements, aSubMesh, nodeStart, theHasAngles, angles, theHasRefPoint, refPnt ) );
-}
-
-//=======================================================================
-//function : ExtrusionAlongPathObject
-//purpose  :
-//=======================================================================
-
-SMESH::SMESH_MeshEditor::Extrusion_Error
-  SMESH_MeshEditor_i::ExtrusionAlongPathObject(SMESH::SMESH_IDSource_ptr   theObject,
-                                              SMESH::SMESH_Mesh_ptr       thePathMesh,
-                                              GEOM::GEOM_Object_ptr       thePathShape,
-                                              CORBA::Long                 theNodeStart,
-                                              CORBA::Boolean              theHasAngles,
-                                              const SMESH::double_array & theAngles,
-                                              CORBA::Boolean              theHasRefPoint,
-                                              const SMESH::PointStruct &  theRefPoint)
-{
-  SMESH::long_array_var anElementsId = theObject->GetIDs();
-  SMESH::SMESH_MeshEditor::Extrusion_Error error = ExtrusionAlongPath
-    (anElementsId, thePathMesh, thePathShape, theNodeStart,
-     theHasAngles, theAngles, theHasRefPoint, theRefPoint);
-
-  // Clear python line, created by ExtrusionAlongPath()
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
-
-  // Update Python script
-  TCollection_AsciiString str ("error = mesh_editor.ExtrusionAlongPathObject(");
-  SMESH_Gen_i::AddObject( str, theObject ) += ", ";
-  SMESH_Gen_i::AddObject( str, thePathMesh ) += ", ";
-  SMESH_Gen_i::AddObject( str, thePathShape ) += ", ";
-  str += TCollection_AsciiString( (int)theNodeStart ) + ", ";
-  str += TCollection_AsciiString( theHasAngles ) + ", ";
-  SMESH_Gen_i::AddArray ( str, theAngles ) += ", ";
-  str += TCollection_AsciiString( theHasRefPoint ) + ", refPoint )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-
-  return error;
-}
-
-//=======================================================================
-//function : Mirror
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor_i::Mirror(const SMESH::long_array &           theIDsOfElements,
-                                const SMESH::AxisStruct &           theAxis,
-                                SMESH::SMESH_MeshEditor::MirrorType theMirrorType,
-                                CORBA::Boolean                      theCopy)
-{
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < theIDsOfElements.length(); i++)
-  {
-    CORBA::Long index = theIDsOfElements[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem )
-      elements.insert( elem );
-  }
-  gp_Pnt P ( theAxis.x, theAxis.y, theAxis.z );
-  gp_Vec V ( theAxis.vx, theAxis.vy, theAxis.vz );
-
-  gp_Trsf aTrsf;
-  TCollection_AsciiString typeStr, copyStr( theCopy );
-  switch ( theMirrorType ) {
-  case  SMESH::SMESH_MeshEditor::POINT:
-    aTrsf.SetMirror( P );
-    typeStr = "SMESH.SMESH_MeshEditor.POINT";
-    break;
-  case  SMESH::SMESH_MeshEditor::AXIS:
-    aTrsf.SetMirror( gp_Ax1( P, V ));
-    typeStr = "SMESH.SMESH_MeshEditor.AXIS";
-    break;
-  default:
-    aTrsf.SetMirror( gp_Ax2( P, V ));
-    typeStr = "SMESH.SMESH_MeshEditor.PLANE";
-  }
-
-  // Update Python script
-  TCollection_AsciiString str ("mesh_editor.Mirror(");
-  SMESH_Gen_i::AddArray( str, theIDsOfElements ) += ", ";
-  addAxis( str, theAxis )           += ", ";
-  str += typeStr                     + ", ";
-  str += copyStr                     + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  anEditor.Transform (elements, aTrsf, theCopy);
-}
-
-//=======================================================================
-//function : MirrorObject
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor_i::MirrorObject(SMESH::SMESH_IDSource_ptr           theObject,
-                                     const SMESH::AxisStruct &           theAxis,
-                                     SMESH::SMESH_MeshEditor::MirrorType theMirrorType,
-                                     CORBA::Boolean                      theCopy)
-{
-  SMESH::long_array_var anElementsId = theObject->GetIDs();
-  Mirror(anElementsId, theAxis, theMirrorType, theCopy);
-
-  // Clear python line, created by Mirror()
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
-
-  // Update Python script
-  TCollection_AsciiString typeStr, copyStr( theCopy );
-  switch ( theMirrorType ) {
-  case  SMESH::SMESH_MeshEditor::POINT:
-    typeStr = "SMESH.SMESH_MeshEditor.POINT";
-    break;
-  case  SMESH::SMESH_MeshEditor::AXIS:
-    typeStr = "SMESH.SMESH_MeshEditor.AXIS";
-    break;
-  default:
-    typeStr = "SMESH.SMESH_MeshEditor.PLANE";
-  }
-
-  TCollection_AsciiString str ("mesh_editor.MirrorObject(");
-  SMESH_Gen_i::AddObject( str, theObject ) += ", ";
-  addAxis( str, theAxis ) += ", ";
-  str += typeStr + ", " + copyStr + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-}
-
-//=======================================================================
-//function : Translate
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor_i::Translate(const SMESH::long_array & theIDsOfElements,
-                                   const SMESH::DirStruct &  theVector,
-                                   CORBA::Boolean            theCopy)
-{
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < theIDsOfElements.length(); i++)
-  {
-    CORBA::Long index = theIDsOfElements[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem )
-      elements.insert( elem );
-  }
-  gp_Trsf aTrsf;
-  const SMESH::PointStruct * P = &theVector.PS;
-  aTrsf.SetTranslation( gp_Vec( P->x, P->y, P->z ));
-
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  anEditor.Transform (elements, aTrsf, theCopy);
-
-  // Update Python script
-  TCollection_AsciiString str = "vector = SMESH.DirStruct( SMESH.PointStruct ( ";
-  str += (TCollection_AsciiString) P->x + ", ";
-  str += (TCollection_AsciiString) P->y + ", ";
-  str += (TCollection_AsciiString) P->z + " ))";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-  str = ("mesh_editor.Translate(");
-  SMESH_Gen_i::AddArray( str, theIDsOfElements ) += ", vector, ";
-  str += (TCollection_AsciiString) theCopy + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-}
-
-//=======================================================================
-//function : TranslateObject
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor_i::TranslateObject(SMESH::SMESH_IDSource_ptr theObject,
-                                        const SMESH::DirStruct &  theVector,
-                                        CORBA::Boolean            theCopy)
-{
-  SMESH::long_array_var anElementsId = theObject->GetIDs();
-  Translate(anElementsId, theVector, theCopy);
-
-  // Clear python line, created by Translate()
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
-
-  // Update Python script
-  TCollection_AsciiString str ("mesh_editor.TranslateObject(");
-  SMESH_Gen_i::AddObject( str, theObject ) += ", vector, ";
-  str += TCollection_AsciiString( theCopy ) + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-}
-
-//=======================================================================
-//function : Rotate
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor_i::Rotate(const SMESH::long_array & theIDsOfElements,
-                                const SMESH::AxisStruct & theAxis,
-                                CORBA::Double             theAngle,
-                                CORBA::Boolean            theCopy)
-{
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < theIDsOfElements.length(); i++)
-  {
-    CORBA::Long index = theIDsOfElements[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem )
-      elements.insert( elem );
-  }
-  gp_Pnt P ( theAxis.x, theAxis.y, theAxis.z );
-  gp_Vec V ( theAxis.vx, theAxis.vy, theAxis.vz );
-
-  gp_Trsf aTrsf;
-  aTrsf.SetRotation( gp_Ax1( P, V ), theAngle);
-
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  anEditor.Transform (elements, aTrsf, theCopy);
-
-  // Update Python script
-  TCollection_AsciiString str ("axis = ");
-  addAxis( str, theAxis );
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-  str = ("mesh_editor.Rotate(");
-  SMESH_Gen_i::AddArray( str, theIDsOfElements ) += ", axis, ";
-  str += (TCollection_AsciiString) theAngle + ", ";
-  str += (TCollection_AsciiString) theCopy + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-}
-
-//=======================================================================
-//function : RotateObject
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor_i::RotateObject(SMESH::SMESH_IDSource_ptr theObject,
-                                     const SMESH::AxisStruct & theAxis,
-                                     CORBA::Double             theAngle,
-                                     CORBA::Boolean            theCopy)
-{
-  SMESH::long_array_var anElementsId = theObject->GetIDs();
-  Rotate(anElementsId, theAxis, theAngle, theCopy);
-
-  // Clear python line, created by Rotate()
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
-
-  // Update Python script
-  TCollection_AsciiString str ("mesh_editor.RotateObject(");
-  SMESH_Gen_i::AddObject( str, theObject ) += ", axis, ";
-  str += TCollection_AsciiString( theAngle ) + ", ";
-  str += TCollection_AsciiString( theCopy ) + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-}
-
-//=======================================================================
-//function : FindCoincidentNodes
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor_i::FindCoincidentNodes (CORBA::Double                  Tolerance,
-                                              SMESH::array_of_long_array_out GroupsOfNodes)
-{
-  ::SMESH_MeshEditor::TListOfListOfNodes aListOfListOfNodes;
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  set<const SMDS_MeshNode*> nodes; // no input nodes
-  anEditor.FindCoincidentNodes( nodes, Tolerance, aListOfListOfNodes );
-
-  GroupsOfNodes = new SMESH::array_of_long_array;
-  GroupsOfNodes->length( aListOfListOfNodes.size() );
-  ::SMESH_MeshEditor::TListOfListOfNodes::iterator llIt = aListOfListOfNodes.begin();
-  for ( CORBA::Long i = 0; llIt != aListOfListOfNodes.end(); llIt++, i++ )
-  {
-    list< const SMDS_MeshNode* >& aListOfNodes = *llIt;
-    list< const SMDS_MeshNode* >::iterator lIt = aListOfNodes.begin();;
-    SMESH::long_array& aGroup = GroupsOfNodes[ i ];
-    aGroup.length( aListOfNodes.size() );
-    for ( int j = 0; lIt != aListOfNodes.end(); lIt++, j++ )
-      aGroup[ j ] = (*lIt)->GetID();
-  }
-}
-
-//=======================================================================
-//function : MergeNodes
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor_i::MergeNodes (const SMESH::array_of_long_array& GroupsOfNodes)
-{
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  TCollection_AsciiString str( "mesh_editor.MergeNodes([" );
-  ::SMESH_MeshEditor::TListOfListOfNodes aListOfListOfNodes;
-  for (int i = 0; i < GroupsOfNodes.length(); i++)
-  {
-    const SMESH::long_array& aNodeGroup = GroupsOfNodes[ i ];
-    aListOfListOfNodes.push_back( list< const SMDS_MeshNode* >() );
-    list< const SMDS_MeshNode* >& aListOfNodes = aListOfListOfNodes.back();
-    for ( int j = 0; j < aNodeGroup.length(); j++ )
-    {
-      CORBA::Long index = aNodeGroup[ j ];
-      const SMDS_MeshNode * node = aMesh->FindNode(index);
-      if ( node )
-        aListOfNodes.push_back( node );
-    }
-    if ( aListOfNodes.size() < 2 )
-      aListOfListOfNodes.pop_back();
-
-    if ( i > 0 )
-      str += ",";
-    SMESH_Gen_i::AddArray( str, aNodeGroup );
-  }
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  anEditor.MergeNodes( aListOfListOfNodes );
-
-  // Update Python script
-  SMESH_Gen_i::AddToCurrentPyScript( str + "])" );
-}
-
-//=======================================================================
-//function : MergeEqualElements
-//purpose  :
-//=======================================================================
-
-void SMESH_MeshEditor_i::MergeEqualElements()
-{
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  anEditor.MergeEqualElements();
-
-  // Update Python script
-  SMESH_Gen_i::AddToCurrentPyScript( "mesh_editor.MergeEqualElements()" );
-}
-
-//=======================================================================
-//function : operator
-//purpose  :
-//=======================================================================
-
-#define RETCASE(enm) case ::SMESH_MeshEditor::enm: return SMESH::SMESH_MeshEditor::enm;
-
-static SMESH::SMESH_MeshEditor::Sew_Error convError( const::SMESH_MeshEditor::Sew_Error e )
-{
-  switch ( e ) {
-  RETCASE( SEW_OK );
-  RETCASE( SEW_BORDER1_NOT_FOUND );
-  RETCASE( SEW_BORDER2_NOT_FOUND );
-  RETCASE( SEW_BOTH_BORDERS_NOT_FOUND );
-  RETCASE( SEW_BAD_SIDE_NODES );
-  RETCASE( SEW_VOLUMES_TO_SPLIT );
-  RETCASE( SEW_DIFF_NB_OF_ELEMENTS );
-  RETCASE( SEW_TOPO_DIFF_SETS_OF_ELEMENTS );
-  RETCASE( SEW_BAD_SIDE1_NODES );
-  RETCASE( SEW_BAD_SIDE2_NODES );
-  }
-  return SMESH::SMESH_MeshEditor::SEW_OK;
-}
-
-//=======================================================================
-//function : SewFreeBorders
-//purpose  :
-//=======================================================================
-
-SMESH::SMESH_MeshEditor::Sew_Error
-  SMESH_MeshEditor_i::SewFreeBorders(CORBA::Long FirstNodeID1,
-                                     CORBA::Long SecondNodeID1,
-                                     CORBA::Long LastNodeID1,
-                                     CORBA::Long FirstNodeID2,
-                                     CORBA::Long SecondNodeID2,
-                                     CORBA::Long LastNodeID2,
-                                     CORBA::Boolean CreatePolygons,
-                                     CORBA::Boolean CreatePolyedrs)
-{
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  const SMDS_MeshNode* aBorderFirstNode  = aMesh->FindNode( FirstNodeID1  );
-  const SMDS_MeshNode* aBorderSecondNode = aMesh->FindNode( SecondNodeID1 );
-  const SMDS_MeshNode* aBorderLastNode   = aMesh->FindNode( LastNodeID1   );
-  const SMDS_MeshNode* aSide2FirstNode   = aMesh->FindNode( FirstNodeID2  );
-  const SMDS_MeshNode* aSide2SecondNode  = aMesh->FindNode( SecondNodeID2 );
-  const SMDS_MeshNode* aSide2ThirdNode   = aMesh->FindNode( LastNodeID2   );
-
-  if (!aBorderFirstNode ||
-      !aBorderSecondNode||
-      !aBorderLastNode)
-    return SMESH::SMESH_MeshEditor::SEW_BORDER1_NOT_FOUND;
-  if (!aSide2FirstNode  ||
-      !aSide2SecondNode ||
-      !aSide2ThirdNode)
-    return SMESH::SMESH_MeshEditor::SEW_BORDER2_NOT_FOUND;
-
-  // Update Python script
-  TCollection_AsciiString str ("error = mesh_editor.SewFreeBorders( ");
-  str += TCollection_AsciiString( (int) FirstNodeID1  )  + ", ";
-  str += TCollection_AsciiString( (int) SecondNodeID1 )  + ", ";
-  str += TCollection_AsciiString( (int) LastNodeID1   )  + ", ";
-  str += TCollection_AsciiString( (int) FirstNodeID2  )  + ", ";
-  str += TCollection_AsciiString( (int) SecondNodeID2 )  + ", ";
-  str += TCollection_AsciiString( (int) LastNodeID2   )  + ", ";
-  str += TCollection_AsciiString( CreatePolygons      )  + ", ";
-  str += TCollection_AsciiString( CreatePolyedrs      )  + ") ";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  return convError( anEditor.SewFreeBorder (aBorderFirstNode,
-                                            aBorderSecondNode,
-                                            aBorderLastNode,
-                                            aSide2FirstNode,
-                                            aSide2SecondNode,
-                                            aSide2ThirdNode,
-                                            true,
-                                            CreatePolygons,
-                                            CreatePolyedrs) );
-}
-
-//=======================================================================
-//function : SewConformFreeBorders
-//purpose  :
-//=======================================================================
-
-SMESH::SMESH_MeshEditor::Sew_Error
-  SMESH_MeshEditor_i::SewConformFreeBorders(CORBA::Long FirstNodeID1,
-                                            CORBA::Long SecondNodeID1,
-                                            CORBA::Long LastNodeID1,
-                                            CORBA::Long FirstNodeID2,
-                                            CORBA::Long SecondNodeID2)
-{
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  const SMDS_MeshNode* aBorderFirstNode  = aMesh->FindNode( FirstNodeID1  );
-  const SMDS_MeshNode* aBorderSecondNode = aMesh->FindNode( SecondNodeID1 );
-  const SMDS_MeshNode* aBorderLastNode   = aMesh->FindNode( LastNodeID1   );
-  const SMDS_MeshNode* aSide2FirstNode   = aMesh->FindNode( FirstNodeID2  );
-  const SMDS_MeshNode* aSide2SecondNode  = aMesh->FindNode( SecondNodeID2 );
-  const SMDS_MeshNode* aSide2ThirdNode   = 0;
-
-  if (!aBorderFirstNode ||
-      !aBorderSecondNode||
-      !aBorderLastNode )
-    return SMESH::SMESH_MeshEditor::SEW_BORDER1_NOT_FOUND;
-  if (!aSide2FirstNode  ||
-      !aSide2SecondNode)
-    return SMESH::SMESH_MeshEditor::SEW_BORDER2_NOT_FOUND;
-
-  // Update Python script
-  TCollection_AsciiString str ("error = mesh_editor.SewConformFreeBorders( ");
-  str += TCollection_AsciiString( (int) FirstNodeID1  )  + ", ";
-  str += TCollection_AsciiString( (int) SecondNodeID1 )  + ", ";
-  str += TCollection_AsciiString( (int) LastNodeID1   )  + ", ";
-  str += TCollection_AsciiString( (int) FirstNodeID2  )  + ", ";
-  str += TCollection_AsciiString( (int) SecondNodeID2 )  + ")";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  return convError( anEditor.SewFreeBorder (aBorderFirstNode,
-                                            aBorderSecondNode,
-                                            aBorderLastNode,
-                                            aSide2FirstNode,
-                                            aSide2SecondNode,
-                                            aSide2ThirdNode,
-                                            true,
-                                            false, false) );
-}
-
-//=======================================================================
-//function : SewBorderToSide
-//purpose  :
-//=======================================================================
-
-SMESH::SMESH_MeshEditor::Sew_Error
-  SMESH_MeshEditor_i::SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder,
-                                      CORBA::Long SecondNodeIDOnFreeBorder,
-                                      CORBA::Long LastNodeIDOnFreeBorder,
-                                      CORBA::Long FirstNodeIDOnSide,
-                                      CORBA::Long LastNodeIDOnSide,
-                                      CORBA::Boolean CreatePolygons,
-                                      CORBA::Boolean CreatePolyedrs)
-{
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  const SMDS_MeshNode* aBorderFirstNode  = aMesh->FindNode( FirstNodeIDOnFreeBorder  );
-  const SMDS_MeshNode* aBorderSecondNode = aMesh->FindNode( SecondNodeIDOnFreeBorder );
-  const SMDS_MeshNode* aBorderLastNode   = aMesh->FindNode( LastNodeIDOnFreeBorder   );
-  const SMDS_MeshNode* aSide2FirstNode   = aMesh->FindNode( FirstNodeIDOnSide  );
-  const SMDS_MeshNode* aSide2SecondNode  = aMesh->FindNode( LastNodeIDOnSide );
-  const SMDS_MeshNode* aSide2ThirdNode   = 0;
-
-  if (!aBorderFirstNode ||
-      !aBorderSecondNode||
-      !aBorderLastNode  )
-    return SMESH::SMESH_MeshEditor::SEW_BORDER1_NOT_FOUND;
-  if (!aSide2FirstNode  ||
-      !aSide2SecondNode)
-    return SMESH::SMESH_MeshEditor::SEW_BAD_SIDE_NODES;
-
-  // Update Python script
-  TCollection_AsciiString str ("error = mesh_editor.SewBorderToSide( ");
-  str += TCollection_AsciiString( (int) FirstNodeIDOnFreeBorder  ) + ", ";
-  str += TCollection_AsciiString( (int) SecondNodeIDOnFreeBorder ) + ", ";
-  str += TCollection_AsciiString( (int) LastNodeIDOnFreeBorder   ) + ", ";
-  str += TCollection_AsciiString( (int) FirstNodeIDOnSide        ) + ", ";
-  str += TCollection_AsciiString( (int) LastNodeIDOnSide         ) + ", ";
-  str += TCollection_AsciiString( CreatePolygons                 ) + ", ";
-  str += TCollection_AsciiString( CreatePolyedrs                 ) + ") ";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  return convError( anEditor.SewFreeBorder (aBorderFirstNode,
-                                            aBorderSecondNode,
-                                            aBorderLastNode,
-                                            aSide2FirstNode,
-                                            aSide2SecondNode,
-                                            aSide2ThirdNode,
-                                            false,
-                                            CreatePolygons,
-                                            CreatePolyedrs) );
-}
-
-//=======================================================================
-//function : SewSideElements
-//purpose  :
-//=======================================================================
-
-SMESH::SMESH_MeshEditor::Sew_Error
-  SMESH_MeshEditor_i::SewSideElements(const SMESH::long_array& IDsOfSide1Elements,
-                                      const SMESH::long_array& IDsOfSide2Elements,
-                                      CORBA::Long NodeID1OfSide1ToMerge,
-                                      CORBA::Long NodeID1OfSide2ToMerge,
-                                      CORBA::Long NodeID2OfSide1ToMerge,
-                                      CORBA::Long NodeID2OfSide2ToMerge)
-{
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  const SMDS_MeshNode* aFirstNode1ToMerge  = aMesh->FindNode( NodeID1OfSide1ToMerge );
-  const SMDS_MeshNode* aFirstNode2ToMerge  = aMesh->FindNode( NodeID1OfSide2ToMerge );
-  const SMDS_MeshNode* aSecondNode1ToMerge = aMesh->FindNode( NodeID2OfSide1ToMerge );
-  const SMDS_MeshNode* aSecondNode2ToMerge = aMesh->FindNode( NodeID2OfSide2ToMerge );
-
-  if (!aFirstNode1ToMerge ||
-      !aFirstNode2ToMerge )
-    return SMESH::SMESH_MeshEditor::SEW_BAD_SIDE1_NODES;
-  if (!aSecondNode1ToMerge||
-      !aSecondNode2ToMerge)
-    return SMESH::SMESH_MeshEditor::SEW_BAD_SIDE2_NODES;
-
-  set<const SMDS_MeshElement*> aSide1Elems, aSide2Elems;
-  for (int i = 0; i < IDsOfSide1Elements.length(); i++)
-  {
-    CORBA::Long index = IDsOfSide1Elements[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem )
-      aSide1Elems.insert( elem );
-  }
-  for (int i = 0; i < IDsOfSide2Elements.length(); i++)
-  {
-    CORBA::Long index = IDsOfSide2Elements[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem )
-      aSide2Elems.insert( elem );
-  }
-  // Update Python script
-  TCollection_AsciiString str ("error = mesh_editor.SewSideElements( ");
-  SMESH_Gen_i::AddArray( str, IDsOfSide1Elements ) += ", ";
-  SMESH_Gen_i::AddArray( str, IDsOfSide2Elements ) += ", ";
-  str += TCollection_AsciiString( (int) NodeID1OfSide1ToMerge ) + ", ";
-  str += TCollection_AsciiString( (int) NodeID1OfSide2ToMerge ) + ", ";
-  str += TCollection_AsciiString( (int) NodeID2OfSide1ToMerge ) + ", ";
-  str += TCollection_AsciiString( (int) NodeID2OfSide2ToMerge ) + ")";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  return convError( anEditor.SewSideElements (aSide1Elems, aSide2Elems,
-                                              aFirstNode1ToMerge,
-                                              aFirstNode2ToMerge,
-                                              aSecondNode1ToMerge,
-                                              aSecondNode2ToMerge));
-}
diff --git a/src/SMESH_I/SMESH_MeshEditor_i.hxx b/src/SMESH_I/SMESH_MeshEditor_i.hxx
deleted file mode 100644 (file)
index 327c497..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESH_MeshEditor_i.hxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_MESHEDITOR_I_HXX_
-#define _SMESH_MESHEDIOTR_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-#include "SMESH_Mesh.hxx"
-
-class SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor
-{
- public:
-  SMESH_MeshEditor_i(SMESH_Mesh * theMesh);
-
-  virtual ~ SMESH_MeshEditor_i()
-  {
-  };
-
-  // --- CORBA
-  CORBA::Boolean RemoveElements(const SMESH::long_array & IDsOfElements);
-  CORBA::Boolean RemoveNodes(const SMESH::long_array & IDsOfNodes);
-
-  CORBA::Boolean AddNode(CORBA::Double x, CORBA::Double y, CORBA::Double z);
-  CORBA::Boolean AddEdge(const SMESH::long_array & IDsOfNodes);
-  CORBA::Boolean AddFace(const SMESH::long_array & IDsOfNodes);
-  CORBA::Boolean AddVolume(const SMESH::long_array & IDsOfNodes);
-
-  CORBA::Boolean AddPolyhedralVolume(const SMESH::long_array & IDsOfNodes,
-                                     const SMESH::long_array & Quantities);
-  CORBA::Boolean AddPolyhedralVolumeByFaces(const SMESH::long_array & IdsOfFaces);
-
-  CORBA::Boolean MoveNode(CORBA::Long NodeID,
-                          CORBA::Double x, CORBA::Double y, CORBA::Double z);
-
-  CORBA::Boolean InverseDiag(CORBA::Long NodeID1, CORBA::Long NodeID2);
-  CORBA::Boolean DeleteDiag(CORBA::Long NodeID1, CORBA::Long NodeID2);
-  CORBA::Boolean Reorient(const SMESH::long_array & IDsOfElements);
-  CORBA::Boolean ReorientObject(SMESH::SMESH_IDSource_ptr theObject);
-
-  // Split/Join faces
-  CORBA::Boolean TriToQuad       (const SMESH::long_array &   IDsOfElements,
-                                  SMESH::NumericalFunctor_ptr Criterion,
-                                  CORBA::Double               MaxAngle);
-  CORBA::Boolean TriToQuadObject (SMESH::SMESH_IDSource_ptr   theObject,
-                                  SMESH::NumericalFunctor_ptr Criterion,
-                                  CORBA::Double               MaxAngle);
-  CORBA::Boolean QuadToTri       (const SMESH::long_array &   IDsOfElements,
-                                  SMESH::NumericalFunctor_ptr Criterion);
-  CORBA::Boolean QuadToTriObject (SMESH::SMESH_IDSource_ptr   theObject,
-                                  SMESH::NumericalFunctor_ptr Criterion);
-  CORBA::Boolean SplitQuad       (const SMESH::long_array &   IDsOfElements,
-                                  CORBA::Boolean              Diag13);
-  CORBA::Boolean SplitQuadObject (SMESH::SMESH_IDSource_ptr   theObject,
-                                  CORBA::Boolean              Diag13);
-  CORBA::Long    BestSplit       (CORBA::Long                 IDOfQuad,
-                                  SMESH::NumericalFunctor_ptr Criterion);
-
-  CORBA::Boolean Smooth(const SMESH::long_array &              IDsOfElements,
-                        const SMESH::long_array &              IDsOfFixedNodes,
-                        CORBA::Long                            MaxNbOfIterations,
-                        CORBA::Double                          MaxAspectRatio,
-                        SMESH::SMESH_MeshEditor::Smooth_Method Method);
-  CORBA::Boolean SmoothObject(SMESH::SMESH_IDSource_ptr              theObject,
-                             const SMESH::long_array &              IDsOfFixedNodes,
-                             CORBA::Long                            MaxNbOfIterations,
-                             CORBA::Double                          MaxAspectRatio,
-                             SMESH::SMESH_MeshEditor::Smooth_Method Method);
-  CORBA::Boolean SmoothParametric(const SMESH::long_array &              IDsOfElements,
-                                  const SMESH::long_array &              IDsOfFixedNodes,
-                                  CORBA::Long                            MaxNbOfIterations,
-                                  CORBA::Double                          MaxAspectRatio,
-                                  SMESH::SMESH_MeshEditor::Smooth_Method Method);
-  CORBA::Boolean SmoothParametricObject(SMESH::SMESH_IDSource_ptr              theObject,
-                                        const SMESH::long_array &              IDsOfFixedNodes,
-                                        CORBA::Long                            MaxNbOfIterations,
-                                        CORBA::Double                          MaxAspectRatio,
-                                        SMESH::SMESH_MeshEditor::Smooth_Method Method);
-  CORBA::Boolean smooth(const SMESH::long_array &              IDsOfElements,
-                        const SMESH::long_array &              IDsOfFixedNodes,
-                        CORBA::Long                            MaxNbOfIterations,
-                        CORBA::Double                          MaxAspectRatio,
-                        SMESH::SMESH_MeshEditor::Smooth_Method Method,
-                        bool                                   IsParametric);
-  CORBA::Boolean smoothObject(SMESH::SMESH_IDSource_ptr              theObject,
-                             const SMESH::long_array &              IDsOfFixedNodes,
-                             CORBA::Long                            MaxNbOfIterations,
-                             CORBA::Double                          MaxAspectRatio,
-                             SMESH::SMESH_MeshEditor::Smooth_Method Method,
-                              bool                                   IsParametric);
-
-  void RenumberNodes();
-  void RenumberElements();
-
-  void RotationSweep(const SMESH::long_array & IDsOfElements,
-                     const SMESH::AxisStruct & Axis,
-                     CORBA::Double             AngleInRadians,
-                     CORBA::Long               NbOfSteps,
-                     CORBA::Double             Tolerance);
-  void RotationSweepObject(SMESH::SMESH_IDSource_ptr theObject,
-                          const SMESH::AxisStruct & Axis,
-                          CORBA::Double             AngleInRadians,
-                          CORBA::Long               NbOfSteps,
-                          CORBA::Double             Tolerance);
-
-  void ExtrusionSweep(const SMESH::long_array & IDsOfElements,
-                      const SMESH::DirStruct &  StepVector,
-                      CORBA::Long               NbOfSteps);
-  void ExtrusionSweepObject(SMESH::SMESH_IDSource_ptr theObject,
-                           const SMESH::DirStruct &  StepVector,
-                           CORBA::Long               NbOfSteps);
-  void ExtrusionSweepObject1D(SMESH::SMESH_IDSource_ptr theObject,
-                              const SMESH::DirStruct &  StepVector,
-                              CORBA::Long               NbOfSteps);
-  void ExtrusionSweepObject2D(SMESH::SMESH_IDSource_ptr theObject,
-                              const SMESH::DirStruct &  StepVector,
-                              CORBA::Long               NbOfSteps);
-
-  SMESH::SMESH_MeshEditor::Extrusion_Error
-    ExtrusionAlongPath(const SMESH::long_array &   IDsOfElements,
-                       SMESH::SMESH_Mesh_ptr       PathMesh,
-                       GEOM::GEOM_Object_ptr       PathShape,
-                       CORBA::Long                 NodeStart,
-                       CORBA::Boolean              HasAngles,
-                       const SMESH::double_array & Angles,
-                       CORBA::Boolean              HasRefPoint,
-                       const SMESH::PointStruct &  RefPoint);
-
-  SMESH::SMESH_MeshEditor::Extrusion_Error
-    ExtrusionAlongPathObject(SMESH::SMESH_IDSource_ptr   theObject,
-                             SMESH::SMESH_Mesh_ptr       PathMesh,
-                             GEOM::GEOM_Object_ptr       PathShape,
-                             CORBA::Long                 NodeStart,
-                             CORBA::Boolean              HasAngles,
-                             const SMESH::double_array & Angles,
-                             CORBA::Boolean              HasRefPoint,
-                             const SMESH::PointStruct &  RefPoint);
-
-  void Mirror(const SMESH::long_array &           IDsOfElements,
-              const SMESH::AxisStruct &           Axis,
-              SMESH::SMESH_MeshEditor::MirrorType MirrorType,
-              CORBA::Boolean                      Copy);
-  void MirrorObject(SMESH::SMESH_IDSource_ptr           theObject,
-                   const SMESH::AxisStruct &           Axis,
-                   SMESH::SMESH_MeshEditor::MirrorType MirrorType,
-                   CORBA::Boolean                      Copy);
-  void Translate(const SMESH::long_array & IDsOfElements,
-                 const SMESH::DirStruct &   Vector,
-                 CORBA::Boolean            Copy);
-  void TranslateObject(SMESH::SMESH_IDSource_ptr  theObject,
-                      const SMESH::DirStruct &   Vector,
-                      CORBA::Boolean             Copy);
-  void Rotate(const SMESH::long_array & IDsOfElements,
-              const SMESH::AxisStruct &  Axis,
-              CORBA::Double             Angle,
-              CORBA::Boolean            Copy);
-  void RotateObject(SMESH::SMESH_IDSource_ptr  theObject,
-                   const SMESH::AxisStruct &  Axis,
-                   CORBA::Double              Angle,
-                   CORBA::Boolean             Copy);
-
-  void FindCoincidentNodes (CORBA::Double                  Tolerance,
-                            SMESH::array_of_long_array_out GroupsOfNodes);
-  void MergeNodes (const SMESH::array_of_long_array& GroupsOfNodes);
-  void MergeEqualElements();
-
-  SMESH::SMESH_MeshEditor::Sew_Error
-    SewFreeBorders(CORBA::Long FirstNodeID1,
-                   CORBA::Long SecondNodeID1,
-                   CORBA::Long LastNodeID1,
-                   CORBA::Long FirstNodeID2,
-                   CORBA::Long SecondNodeID2,
-                   CORBA::Long LastNodeID2,
-                   CORBA::Boolean CreatePolygons,
-                   CORBA::Boolean CreatePolyedrs);
-  SMESH::SMESH_MeshEditor::Sew_Error
-    SewConformFreeBorders(CORBA::Long FirstNodeID1,
-                          CORBA::Long SecondNodeID1,
-                          CORBA::Long LastNodeID1,
-                          CORBA::Long FirstNodeID2,
-                          CORBA::Long SecondNodeID2);
-  SMESH::SMESH_MeshEditor::Sew_Error
-    SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder,
-                    CORBA::Long SecondNodeIDOnFreeBorder,
-                    CORBA::Long LastNodeIDOnFreeBorder,
-                    CORBA::Long FirstNodeIDOnSide,
-                    CORBA::Long LastNodeIDOnSide,
-                    CORBA::Boolean CreatePolygons,
-                    CORBA::Boolean CreatePolyedrs);
-  SMESH::SMESH_MeshEditor::Sew_Error
-    SewSideElements(const SMESH::long_array& IDsOfSide1Elements,
-                    const SMESH::long_array& IDsOfSide2Elements,
-                    CORBA::Long NodeID1OfSide1ToMerge,
-                    CORBA::Long NodeID1OfSide2ToMerge,
-                    CORBA::Long NodeID2OfSide1ToMerge,
-                    CORBA::Long NodeID2OfSide2ToMerge);
-
- private:
-  SMESHDS_Mesh * GetMeshDS() { return _myMesh->GetMeshDS(); }
-  SMESH_Mesh   *_myMesh;
-};
-
-#endif
diff --git a/src/SMESH_I/SMESH_Mesh_i.cxx b/src/SMESH_I/SMESH_Mesh_i.cxx
deleted file mode 100644 (file)
index 22bde5e..0000000
+++ /dev/null
@@ -1,1606 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Mesh_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#include "SMESH_Mesh_i.hxx"
-#include "SMESH_subMesh_i.hxx"
-#include "SMESH_MEDMesh_i.hxx"
-#include "SMESH_Group_i.hxx"
-#include "SMESH_Filter_i.hxx"
-
-#include "Utils_CorbaException.hxx"
-#include "Utils_ExceptHandlers.hxx"
-#include "utilities.h"
-
-#include "SALOME_NamingService.hxx"
-#include "Utils_SINGLETON.hxx"
-#include "OpUtil.hxx"
-
-#include "TCollection_AsciiString.hxx"
-#include "SMESHDS_Command.hxx"
-#include "SMESHDS_CommandType.hxx"
-#include "SMESH_MeshEditor_i.hxx"
-#include "SMESH_Gen_i.hxx"
-#include "DriverMED_R_SMESHDS_Mesh.h"
-
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_MapIteratorOfMapOfInteger.hxx>
-#include <TColStd_SequenceOfInteger.hxx>
-
-#include <string>
-#include <iostream>
-#include <sstream>
-
-#ifdef _DEBUG_
-static int MYDEBUG = 0;
-#else
-static int MYDEBUG = 0;
-#endif
-
-using namespace std;
-
-int SMESH_Mesh_i::myIdGenerator = 0;
-
-//=============================================================================
-/*!
- *  Constructor
- */
-//=============================================================================
-
-SMESH_Mesh_i::SMESH_Mesh_i( PortableServer::POA_ptr thePOA,
-                           SMESH_Gen_i*            gen_i,
-                           CORBA::Long studyId )
-: SALOME::GenericObj_i( thePOA )
-{
-  INFOS("SMESH_Mesh_i");
-  _impl = NULL;
-  _gen_i = gen_i;
-  _id = myIdGenerator++;
-  _studyId = studyId;
-  thePOA->activate_object( this );
-}
-
-//=============================================================================
-/*!
- *  Destructor
- */
-//=============================================================================
-
-SMESH_Mesh_i::~SMESH_Mesh_i()
-{
-  INFOS("~SMESH_Mesh_i");
-  map<int, SMESH::SMESH_GroupBase_ptr>::iterator it;
-  for ( it = _mapGroups.begin(); it != _mapGroups.end(); it++ ) {
-    SMESH_GroupBase_i* aGroup = dynamic_cast<SMESH_GroupBase_i*>( SMESH_Gen_i::GetServant( it->second ).in() );
-    if ( aGroup ) {
-
-      // this method is colled from destructor of group (PAL6331)
-      //_impl->RemoveGroup( aGroup->GetLocalID() );
-      
-      aGroup->Destroy();
-    }
-  }
-  _mapGroups.clear();
-}
-
-//=============================================================================
-/*!
- *  SetShape
- *
- *  Associates <this> mesh with <theShape> and puts a reference  
- *  to <theShape> into the current study; 
- *  the previous shape is substituted by the new one.
- */
-//=============================================================================
-
-void SMESH_Mesh_i::SetShape( GEOM::GEOM_Object_ptr theShapeObject )
-    throw (SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  try {
-    _impl->ShapeToMesh( _gen_i->GeomObjectToShape( theShapeObject ));
-  }
-  catch(SALOME_Exception & S_ex) {
-    THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
-  }
-}
-
-//=======================================================================
-//function : GetShapeToMesh
-//purpose  : 
-//=======================================================================
-
-GEOM::GEOM_Object_ptr SMESH_Mesh_i::GetShapeToMesh()
-    throw (SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  GEOM::GEOM_Object_var aShapeObj;
-  try {
-    TopoDS_Shape S = _impl->GetMeshDS()->ShapeToMesh();
-    if ( !S.IsNull() )
-      aShapeObj = _gen_i->ShapeToGeomObject( S );
-  }
-  catch(SALOME_Exception & S_ex) {
-    THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
-  }
-  return aShapeObj._retn();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-static SMESH::DriverMED_ReadStatus ConvertDriverMEDReadStatus (int theStatus)
-{
-  SMESH::DriverMED_ReadStatus res;
-  switch (theStatus)
-  {
-  case DriverMED_R_SMESHDS_Mesh::DRS_OK:
-    res = SMESH::DRS_OK; break;
-  case DriverMED_R_SMESHDS_Mesh::DRS_EMPTY:
-    res = SMESH::DRS_EMPTY; break;
-  case DriverMED_R_SMESHDS_Mesh::DRS_WARN_RENUMBER:
-    res = SMESH::DRS_WARN_RENUMBER; break;
-  case DriverMED_R_SMESHDS_Mesh::DRS_WARN_SKIP_ELEM:
-    res = SMESH::DRS_WARN_SKIP_ELEM; break;
-  case DriverMED_R_SMESHDS_Mesh::DRS_FAIL:
-  default:
-    res = SMESH::DRS_FAIL; break;
-  }
-  return res;
-}
-
-//=============================================================================
-/*!
- *  ImportMEDFile
- *
- *  Imports mesh data from MED file
- */
-//=============================================================================
-
-SMESH::DriverMED_ReadStatus
-SMESH_Mesh_i::ImportMEDFile( const char* theFileName, const char* theMeshName )
-  throw ( SALOME::SALOME_Exception )
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  int status;
-  try {
-    status = importMEDFile( theFileName, theMeshName );
-  }
-  catch( SALOME_Exception& S_ex ) {
-    THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
-  }  
-  catch ( ... ) {
-    THROW_SALOME_CORBA_EXCEPTION("ImportMEDFile(): unknown exception", SALOME::BAD_PARAM);
-  }
-
-  SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-  if ( !aStudy->_is_nil() ) {
-    // publishing of the groups in the study (sub-meshes are out of scope of MED import)
-    map<int, SMESH::SMESH_GroupBase_ptr>::iterator it = _mapGroups.begin();
-    for (; it != _mapGroups.end(); it++ ) {
-      SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_duplicate( it->second );
-      _gen_i->PublishGroup( aStudy, _this(), aGroup,
-                           GEOM::GEOM_Object::_nil(), aGroup->GetName());
-    }
-  }
-  return ConvertDriverMEDReadStatus(status);
-}
-
-//=============================================================================
-/*!
- *  ImportUNVFile
- *
- *  Imports mesh data from MED file
- */
-//=============================================================================
-
-int SMESH_Mesh_i::ImportUNVFile( const char* theFileName )
-  throw ( SALOME::SALOME_Exception )
-{
-  // Read mesh with name = <theMeshName> into SMESH_Mesh
-  _impl->UNVToMesh( theFileName );
-
-  return 1;
-}
-
-//=============================================================================
-/*!
- *  ImportSTLFile
- *
- *  Imports mesh data from STL file
- */
-//=============================================================================
-int SMESH_Mesh_i::ImportSTLFile( const char* theFileName )
-  throw ( SALOME::SALOME_Exception )
-{
-  // Read mesh with name = <theMeshName> into SMESH_Mesh
-  _impl->STLToMesh( theFileName );
-
-  return 1;
-}
-
-//=============================================================================
-/*!
- *  importMEDFile
- *
- *  Imports mesh data from MED file
- */
-//=============================================================================
-
-int SMESH_Mesh_i::importMEDFile( const char* theFileName, const char* theMeshName )
-{
-  // Read mesh with name = <theMeshName> and all its groups into SMESH_Mesh
-  int status = _impl->MEDToMesh( theFileName, theMeshName );
-
-  // Create group servants, if any groups were imported
-  list<int> aGroupIds = _impl->GetGroupIds();
-  for ( list<int>::iterator it = aGroupIds.begin(); it != aGroupIds.end(); it++ ) {
-    SMESH_Group_i* aGroupImpl     = new SMESH_Group_i( SMESH_Gen_i::GetPOA(), this, *it );
-
-    // PAL7962: san -- To ensure correct mapping of servant and correct reference counting in GenericObj_i
-    SMESH_Gen_i::GetPOA()->activate_object( aGroupImpl );
-    aGroupImpl->Register();
-    // PAL7962: san -- To ensure correct mapping of servant and correct reference counting in GenericObj_i
-
-    SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group::_narrow( aGroupImpl->_this() );
-    _mapGroups[*it]               = SMESH::SMESH_Group::_duplicate( aGroup );
-
-    // register CORBA object for persistence
-    int nextId = _gen_i->RegisterObject( aGroup );
-    if(MYDEBUG) MESSAGE( "Add group to map with id = "<< nextId);
-  }
-
-  return status;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-static SMESH::Hypothesis_Status ConvertHypothesisStatus
-                         (SMESH_Hypothesis::Hypothesis_Status theStatus)
-{
-  SMESH::Hypothesis_Status res;
-  switch (theStatus)
-  {
-  case SMESH_Hypothesis::HYP_OK:
-    res = SMESH::HYP_OK; break;
-  case SMESH_Hypothesis::HYP_MISSING:
-    res = SMESH::HYP_MISSING; break;
-  case SMESH_Hypothesis::HYP_CONCURENT:
-    res = SMESH::HYP_CONCURENT; break;
-  case SMESH_Hypothesis::HYP_BAD_PARAMETER:
-    res = SMESH::HYP_BAD_PARAMETER; break;
-  case SMESH_Hypothesis::HYP_INCOMPATIBLE:
-    res = SMESH::HYP_INCOMPATIBLE; break;
-  case SMESH_Hypothesis::HYP_NOTCONFORM:
-    res = SMESH::HYP_NOTCONFORM; break;
-  case SMESH_Hypothesis::HYP_ALREADY_EXIST:
-    res = SMESH::HYP_ALREADY_EXIST; break;
-  case SMESH_Hypothesis::HYP_BAD_DIM:
-    res = SMESH::HYP_BAD_DIM; break;
-  default:
-    res = SMESH::HYP_UNKNOWN_FATAL;
-  }
-  return res;
-}
-
-//=============================================================================
-/*!
- *  AddHypothesis
- *
- *  calls internal addHypothesis() and then adds a reference to <anHyp> under 
- *  the SObject actually having a reference to <aSubShape>.
- *  NB: For this method to work, it is necessary to add a reference to sub-shape first.
- */
-//=============================================================================
-
-SMESH::Hypothesis_Status SMESH_Mesh_i::AddHypothesis(GEOM::GEOM_Object_ptr aSubShapeObject,
-                                                     SMESH::SMESH_Hypothesis_ptr anHyp)
-  throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  SMESH_Hypothesis::Hypothesis_Status status = addHypothesis( aSubShapeObject, anHyp );
-
-  if ( !SMESH_Hypothesis::IsStatusFatal(status) )
-    _gen_i->AddHypothesisToShape(_gen_i->GetCurrentStudy(), _this(),
-                                 aSubShapeObject, anHyp );
-
-  if(MYDEBUG) MESSAGE( " AddHypothesis(): status = " << status );
-
-  // Update Python script
-  TCollection_AsciiString aStr ("status = ");
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".AddHypothesis(";
-  SMESH_Gen_i::AddObject(aStr, aSubShapeObject) += ", ";
-  SMESH_Gen_i::AddObject(aStr, anHyp) += ")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-
-  return ConvertHypothesisStatus(status);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_Hypothesis::Hypothesis_Status
-  SMESH_Mesh_i::addHypothesis(GEOM::GEOM_Object_ptr       aSubShapeObject,
-                              SMESH::SMESH_Hypothesis_ptr anHyp)
-{
-  if(MYDEBUG) MESSAGE("addHypothesis");
-
-  if (CORBA::is_nil(aSubShapeObject))
-    THROW_SALOME_CORBA_EXCEPTION("bad subShape reference",
-                                 SALOME::BAD_PARAM);
-
-  SMESH::SMESH_Hypothesis_var myHyp = SMESH::SMESH_Hypothesis::_narrow(anHyp);
-  if (CORBA::is_nil(myHyp))
-    THROW_SALOME_CORBA_EXCEPTION("bad hypothesis reference",
-                                 SALOME::BAD_PARAM);
-
-  SMESH_Hypothesis::Hypothesis_Status status = SMESH_Hypothesis::HYP_OK;
-  try
-  {
-    TopoDS_Shape myLocSubShape = _gen_i->GeomObjectToShape( aSubShapeObject);
-    int hypId = myHyp->GetId();
-    status = _impl->AddHypothesis(myLocSubShape, hypId);
-    if ( !SMESH_Hypothesis::IsStatusFatal(status) ) {
-      _mapHypo[hypId] = myHyp;
-      // assure there is a corresponding submesh
-      if ( !_impl->IsMainShape( myLocSubShape )) {
-        int shapeId = _impl->GetMeshDS()->ShapeToIndex( myLocSubShape );
-        if ( _mapSubMesh_i.find( shapeId ) == _mapSubMesh_i.end() )
-          createSubMesh( aSubShapeObject );
-      }
-    }
-  }
-  catch(SALOME_Exception & S_ex)
-  {
-    THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
-  }
-  return status;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH::Hypothesis_Status SMESH_Mesh_i::RemoveHypothesis(GEOM::GEOM_Object_ptr aSubShapeObject,
-                                                        SMESH::SMESH_Hypothesis_ptr anHyp)
-     throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  SMESH_Hypothesis::Hypothesis_Status status = removeHypothesis( aSubShapeObject, anHyp );
-
-  if ( !SMESH_Hypothesis::IsStatusFatal(status) )
-    _gen_i->RemoveHypothesisFromShape(_gen_i->GetCurrentStudy(), _this(),
-                                      aSubShapeObject, anHyp );
-
-  // Update Python script
-  TCollection_AsciiString aStr ("status = ");
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".RemoveHypothesis(";
-  SMESH_Gen_i::AddObject(aStr, aSubShapeObject) += ", ";
-  SMESH_Gen_i::AddObject(aStr, anHyp) += ")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-
-  return ConvertHypothesisStatus(status);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_Hypothesis::Hypothesis_Status SMESH_Mesh_i::removeHypothesis(GEOM::GEOM_Object_ptr aSubShapeObject,
-                                 SMESH::SMESH_Hypothesis_ptr anHyp)
-{
-       if(MYDEBUG) MESSAGE("removeHypothesis()");
-       // **** proposer liste de subShape (selection multiple)
-
-       if (CORBA::is_nil(aSubShapeObject))
-               THROW_SALOME_CORBA_EXCEPTION("bad subShape reference",
-                       SALOME::BAD_PARAM);
-
-       SMESH::SMESH_Hypothesis_var myHyp = SMESH::SMESH_Hypothesis::_narrow(anHyp);
-       if (CORBA::is_nil(myHyp))
-         THROW_SALOME_CORBA_EXCEPTION("bad hypothesis reference",
-                       SALOME::BAD_PARAM);
-
-       SMESH_Hypothesis::Hypothesis_Status status = SMESH_Hypothesis::HYP_OK;
-       try
-       {
-               TopoDS_Shape myLocSubShape = _gen_i->GeomObjectToShape(aSubShapeObject);
-               int hypId = myHyp->GetId();
-               status = _impl->RemoveHypothesis(myLocSubShape, hypId);
-                if ( !SMESH_Hypothesis::IsStatusFatal(status) )
-                  _mapHypo.erase( hypId );
-       }
-       catch(SALOME_Exception & S_ex)
-       {
-               THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
-       }
-       return status;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH::ListOfHypothesis *
-       SMESH_Mesh_i::GetHypothesisList(GEOM::GEOM_Object_ptr aSubShapeObject)
-throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  if (MYDEBUG) MESSAGE("GetHypothesisList");
-  if (CORBA::is_nil(aSubShapeObject))
-    THROW_SALOME_CORBA_EXCEPTION("bad subShape reference",
-                                SALOME::BAD_PARAM);
-  
-  SMESH::ListOfHypothesis_var aList = new SMESH::ListOfHypothesis();
-
-  try {
-    TopoDS_Shape myLocSubShape = _gen_i->GeomObjectToShape(aSubShapeObject);
-    const list<const SMESHDS_Hypothesis*>& aLocalList = _impl->GetHypothesisList( myLocSubShape );
-    int i = 0, n = aLocalList.size();
-    aList->length( n );
-
-    for ( list<const SMESHDS_Hypothesis*>::const_iterator anIt = aLocalList.begin(); i < n && anIt != aLocalList.end(); anIt++ ) {
-      SMESHDS_Hypothesis* aHyp = (SMESHDS_Hypothesis*)(*anIt);
-      if ( _mapHypo.find( aHyp->GetID() ) != _mapHypo.end() )
-       aList[i++] = SMESH::SMESH_Hypothesis::_narrow( _mapHypo[aHyp->GetID()] );
-    }
-
-    aList->length( i );
-  }
-  catch(SALOME_Exception & S_ex) {
-    THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
-  }
-  
-  return aList._retn();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-SMESH::SMESH_subMesh_ptr SMESH_Mesh_i::GetSubMesh(GEOM::GEOM_Object_ptr aSubShapeObject,
-                                                 const char*           theName ) 
-     throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  MESSAGE("SMESH_Mesh_i::GetSubMesh");
-  if (CORBA::is_nil(aSubShapeObject))
-    THROW_SALOME_CORBA_EXCEPTION("bad subShape reference",
-                                SALOME::BAD_PARAM);
-  
-  SMESH::SMESH_subMesh_var subMesh;
-  SMESH::SMESH_Mesh_var    aMesh = SMESH::SMESH_Mesh::_narrow(_this());
-  try {
-    TopoDS_Shape myLocSubShape = _gen_i->GeomObjectToShape(aSubShapeObject);
-    
-    //Get or Create the SMESH_subMesh object implementation
-    
-    int subMeshId = _impl->GetMeshDS()->ShapeToIndex( myLocSubShape );
-    subMesh = getSubMesh( subMeshId );
-
-    // create a new subMesh object servant if there is none for the shape
-    if ( subMesh->_is_nil() )
-      subMesh = createSubMesh( aSubShapeObject );
-
-    if ( _gen_i->CanPublishInStudy( subMesh )) {
-      SALOMEDS::SObject_var aSO =
-        _gen_i->PublishSubMesh(_gen_i->GetCurrentStudy(), aMesh,
-                               subMesh, aSubShapeObject, theName );
-      if ( !aSO->_is_nil()) {
-        // Update Python script
-        TCollection_AsciiString aStr (aSO->GetID());
-        aStr += " = ";
-        SMESH_Gen_i::AddObject(aStr, _this()) += ".GetSubMesh(";
-        SMESH_Gen_i::AddObject(aStr, aSubShapeObject) += ", \"";
-        aStr += (char*)theName;
-        aStr += "\")";
-
-        SMESH_Gen_i::AddToCurrentPyScript(aStr);
-      }
-    }
-  }
-  catch(SALOME_Exception & S_ex) {
-    THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
-  }
-  return subMesh._retn();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_Mesh_i::RemoveSubMesh( SMESH::SMESH_subMesh_ptr theSubMesh )
-     throw (SALOME::SALOME_Exception)
-{
-  if(MYDEBUG) MESSAGE("SMESH_Mesh_i::RemoveSubMesh");
-  if ( theSubMesh->_is_nil() )
-    return;
-
-  GEOM::GEOM_Object_var aSubShapeObject;
-  SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-  if ( !aStudy->_is_nil() )  {
-    // Remove submesh's SObject
-    SALOMEDS::SObject_var anSO = _gen_i->ObjectToSObject( aStudy, theSubMesh );
-    if ( !anSO->_is_nil() ) {
-      long aTag = SMESH_Gen_i::GetRefOnShapeTag(); 
-      SALOMEDS::SObject_var anObj, aRef;
-      if ( anSO->FindSubObject( aTag, anObj ) && anObj->ReferencedObject( aRef ) )
-       aSubShapeObject = GEOM::GEOM_Object::_narrow( aRef->GetObject() );
-
-      aStudy->NewBuilder()->RemoveObjectWithChildren( anSO );
-
-      // Update Python script
-      TCollection_AsciiString aStr;
-      SMESH_Gen_i::AddObject(aStr, _this()) += ".RemoveSubMesh(";
-      aStr += anSO->GetID();
-      aStr += ")";
-
-      SMESH_Gen_i::AddToCurrentPyScript(aStr);
-    }
-  }
-
-  removeSubMesh( theSubMesh, aSubShapeObject.in() );
-}
-
-//=============================================================================
-/*!
- *  ElementTypeString
- */
-//=============================================================================
-inline TCollection_AsciiString ElementTypeString (SMESH::ElementType theElemType)
-{
-  TCollection_AsciiString aStr;
-  switch (theElemType) {
-  case SMESH::ALL:
-    aStr = "SMESH.ALL";
-    break;
-  case SMESH::NODE:
-    aStr = "SMESH.NODE";
-    break;
-  case SMESH::EDGE:
-    aStr = "SMESH.EDGE";
-    break;
-  case SMESH::FACE:
-    aStr = "SMESH.FACE";
-    break;
-  case SMESH::VOLUME:
-    aStr = "SMESH.VOLUME";
-    break;
-  default:
-    break;
-  }
-  return aStr;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH::SMESH_Group_ptr SMESH_Mesh_i::CreateGroup( SMESH::ElementType theElemType,
-                                                 const char*         theName )
-     throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  SMESH::SMESH_Group_var aNewGroup =
-    SMESH::SMESH_Group::_narrow( createGroup( theElemType, theName ));
-
-  if ( _gen_i->CanPublishInStudy( aNewGroup ) ) {
-    SALOMEDS::SObject_var aSO =
-      _gen_i->PublishGroup(_gen_i->GetCurrentStudy(), _this(),
-                           aNewGroup, GEOM::GEOM_Object::_nil(), theName);
-    if ( !aSO->_is_nil()) {
-      // Update Python script
-      TCollection_AsciiString aStr (aSO->GetID());
-      aStr += " = ";
-      SMESH_Gen_i::AddObject(aStr, _this()) += ".CreateGroup(";
-      aStr += ElementTypeString(theElemType) + ", \"" + (char*)theName + "\")";
-
-      SMESH_Gen_i::AddToCurrentPyScript(aStr);
-    }
-  }
-
-  return aNewGroup._retn();
-}
-
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-SMESH::SMESH_GroupOnGeom_ptr SMESH_Mesh_i::CreateGroupFromGEOM (SMESH::ElementType    theElemType,
-                                                                const char*           theName,
-                                                                GEOM::GEOM_Object_ptr theGeomObj)
-     throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  SMESH::SMESH_GroupOnGeom_var aNewGroup;
-
-  TopoDS_Shape aShape = _gen_i->GeomObjectToShape( theGeomObj );
-  if ( !aShape.IsNull() ) {
-    aNewGroup = SMESH::SMESH_GroupOnGeom::_narrow
-      ( createGroup( theElemType, theName, aShape ));
-    if ( _gen_i->CanPublishInStudy( aNewGroup ) ) {
-      SALOMEDS::SObject_var aSO =
-        _gen_i->PublishGroup(_gen_i->GetCurrentStudy(), _this(), 
-                             aNewGroup, theGeomObj, theName);
-      if ( !aSO->_is_nil()) {
-        // Update Python script
-        TCollection_AsciiString aStr (aSO->GetID());
-        aStr += " = ";
-        SMESH_Gen_i::AddObject(aStr, _this()) += ".CreateGroupFromGEOM(";
-        aStr += ElementTypeString(theElemType) + ", \"" + (char*)theName + "\", ";
-        SMESH_Gen_i::AddObject(aStr, theGeomObj) += ")";
-
-        SMESH_Gen_i::AddToCurrentPyScript(aStr);
-      }
-    }
-  }
-
-  return aNewGroup._retn();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_Mesh_i::RemoveGroup( SMESH::SMESH_GroupBase_ptr theGroup )
-     throw (SALOME::SALOME_Exception)
-{
-  if ( theGroup->_is_nil() )
-    return;
-
-  SMESH_GroupBase_i* aGroup =
-    dynamic_cast<SMESH_GroupBase_i*>( SMESH_Gen_i::GetServant( theGroup ).in() );
-  if ( !aGroup )
-    return;
-
-  SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-  if ( !aStudy->_is_nil() )  {
-    SALOMEDS::SObject_var aGroupSO = _gen_i->ObjectToSObject( aStudy, theGroup );
-
-    if ( !aGroupSO->_is_nil() ) {
-      // Update Python script
-      TCollection_AsciiString aStr;
-      SMESH_Gen_i::AddObject(aStr, _this()) += ".RemoveGroup(";
-      aStr += aGroupSO->GetID();
-      aStr += ")";
-
-      SMESH_Gen_i::AddToCurrentPyScript(aStr);
-
-      // Remove group's SObject
-      aStudy->NewBuilder()->RemoveObject( aGroupSO );
-    }
-  }
-
-  // Remove the group from SMESH data structures
-  removeGroup( aGroup->GetLocalID() );
-}
-
-//=============================================================================
-/*! RemoveGroupWithContents
- *  Remove group with its contents
- */ 
-//=============================================================================
-void SMESH_Mesh_i::RemoveGroupWithContents( SMESH::SMESH_GroupBase_ptr theGroup )
-  throw (SALOME::SALOME_Exception)
-{
-  if ( theGroup->_is_nil() )
-    return;
-
-  SMESH_GroupBase_i* aGroup =
-    dynamic_cast<SMESH_GroupBase_i*>( SMESH_Gen_i::GetServant( theGroup ).in() );
-  if ( !aGroup )
-    return;
-  
-  SMESH::long_array_var anIds = aGroup->GetListOfID();
-  SMESH::SMESH_MeshEditor_var aMeshEditor = SMESH_Mesh_i::GetMeshEditor();
-
-  // Update Python script
-  TCollection_AsciiString aStr;
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".RemoveGroupWithContents(";
-  SMESH_Gen_i::AddObject(aStr, theGroup) += ")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-
-  // Remove contents
-  if ( aGroup->GetType() == SMESH::NODE )
-    aMeshEditor->RemoveNodes( anIds );
-  else
-    aMeshEditor->RemoveElements( anIds );
-
-  // Remove group
-  RemoveGroup( theGroup );
-
-  // Clear python lines, created by RemoveNodes/Elements() and RemoveGroup()
-  _gen_i->RemoveLastFromPythonScript(_gen_i->GetCurrentStudy()->StudyId());
-  _gen_i->RemoveLastFromPythonScript(_gen_i->GetCurrentStudy()->StudyId());
-}
-
-//=============================================================================
-/*! UnionGroups
- *  New group is created. All mesh elements that are 
- *  present in initial groups are added to the new one
- */
-//=============================================================================
-SMESH::SMESH_Group_ptr SMESH_Mesh_i::UnionGroups( SMESH::SMESH_GroupBase_ptr theGroup1, 
-                                                  SMESH::SMESH_GroupBase_ptr theGroup2, 
-                                                  const char* theName )
-  throw (SALOME::SALOME_Exception)
-{
-  try
-  {
-    if ( theGroup1->_is_nil() || theGroup2->_is_nil() ||
-         theGroup1->GetType() != theGroup2->GetType() )
-      return SMESH::SMESH_Group::_nil();
-
-    // Create Union
-    SMESH::SMESH_Group_var aResGrp = CreateGroup( theGroup1->GetType(), theName );
-    if ( aResGrp->_is_nil() )
-      return SMESH::SMESH_Group::_nil();
-
-    SMESH::long_array_var anIds1 = theGroup1->GetListOfID();
-    SMESH::long_array_var anIds2 = theGroup2->GetListOfID();
-
-    TColStd_MapOfInteger aResMap;
-
-    for ( int i1 = 0, n1 = anIds1->length(); i1 < n1; i1++ )
-      aResMap.Add( anIds1[ i1 ] );
-
-    for ( int i2 = 0, n2 = anIds2->length(); i2 < n2; i2++ )
-      aResMap.Add( anIds2[ i2 ] );
-
-    SMESH::long_array_var aResIds = new SMESH::long_array;
-    aResIds->length( aResMap.Extent() );
-
-    int resI = 0;
-    TColStd_MapIteratorOfMapOfInteger anIter( aResMap );
-    for( ; anIter.More(); anIter.Next() )
-      aResIds[ resI++ ] = anIter.Key();
-
-    aResGrp->Add( aResIds );
-
-    // Clear python lines, created by CreateGroup() and Add()
-    SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-    _gen_i->RemoveLastFromPythonScript(aStudy->StudyId());
-    _gen_i->RemoveLastFromPythonScript(aStudy->StudyId());
-
-    // Update Python script
-    TCollection_AsciiString aStr;
-    SMESH_Gen_i::AddObject(aStr, aResGrp) += " = ";
-    SMESH_Gen_i::AddObject(aStr, _this()) += ".UnionGroups(";
-    SMESH_Gen_i::AddObject(aStr, theGroup1) += ", ";
-    SMESH_Gen_i::AddObject(aStr, theGroup2) += ", \"";
-    aStr += TCollection_AsciiString((char*)theName) + "\")";
-
-    SMESH_Gen_i::AddToCurrentPyScript(aStr);
-
-    return aResGrp._retn();
-  }
-  catch( ... )
-  {
-    return SMESH::SMESH_Group::_nil();
-  }
-}
-  
-//=============================================================================
-/*! IntersectGroups
- *  New group is created. All mesh elements that are 
- *  present in both initial groups are added to the new one.
- */
-//=============================================================================
-SMESH::SMESH_Group_ptr SMESH_Mesh_i::IntersectGroups( SMESH::SMESH_GroupBase_ptr theGroup1, 
-                                                      SMESH::SMESH_GroupBase_ptr theGroup2, 
-                                                      const char* theName )
-  throw (SALOME::SALOME_Exception)
-{
-  if ( theGroup1->_is_nil() || theGroup2->_is_nil() || 
-       theGroup1->GetType() != theGroup2->GetType() )
-    return SMESH::SMESH_Group::_nil();
-
-  // Create Intersection
-  SMESH::SMESH_Group_var aResGrp = CreateGroup( theGroup1->GetType(), theName );
-  if ( aResGrp->_is_nil() )
-    return aResGrp;
-
-  SMESH::long_array_var anIds1 = theGroup1->GetListOfID();
-  SMESH::long_array_var anIds2 = theGroup2->GetListOfID();
-
-  TColStd_MapOfInteger aMap1;
-
-  for ( int i1 = 0, n1 = anIds1->length(); i1 < n1; i1++ )
-    aMap1.Add( anIds1[ i1 ] );
-
-  TColStd_SequenceOfInteger aSeq;
-
-  for ( int i2 = 0, n2 = anIds2->length(); i2 < n2; i2++ )
-    if ( aMap1.Contains( anIds2[ i2 ] ) )
-      aSeq.Append( anIds2[ i2 ] );
-
-  SMESH::long_array_var aResIds = new SMESH::long_array;
-  aResIds->length( aSeq.Length() );
-
-  for ( int resI = 0, resN = aSeq.Length(); resI < resN; resI++ )
-    aResIds[ resI ] = aSeq( resI + 1 );
-
-  aResGrp->Add( aResIds );
-
-  // Clear python lines, created by CreateGroup() and Add()
-  SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-  _gen_i->RemoveLastFromPythonScript(aStudy->StudyId());
-  _gen_i->RemoveLastFromPythonScript(aStudy->StudyId());
-
-  // Update Python script
-  TCollection_AsciiString aStr;
-  SMESH_Gen_i::AddObject(aStr, aResGrp) += " = ";
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".IntersectGroups(";
-  SMESH_Gen_i::AddObject(aStr, theGroup1) += ", ";
-  SMESH_Gen_i::AddObject(aStr, theGroup2) += ", \"";
-  aStr += TCollection_AsciiString((char*)theName) + "\")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-
-  return aResGrp._retn();
-}
-
-//=============================================================================
-/*! CutGroups
- *  New group is created. All mesh elements that are present in 
- *  main group but do not present in tool group are added to the new one 
- */
-//=============================================================================
-SMESH::SMESH_Group_ptr SMESH_Mesh_i::CutGroups( SMESH::SMESH_GroupBase_ptr theGroup1, 
-                                                SMESH::SMESH_GroupBase_ptr theGroup2, 
-                                                const char* theName )
-  throw (SALOME::SALOME_Exception)
-{
-  if ( theGroup1->_is_nil() || theGroup2->_is_nil() || 
-       theGroup1->GetType() != theGroup2->GetType() )
-    return SMESH::SMESH_Group::_nil();
-
-  // Perform Cutting
-  SMESH::SMESH_Group_var aResGrp = CreateGroup( theGroup1->GetType(), theName );
-  if ( aResGrp->_is_nil() )
-    return aResGrp;
-
-  SMESH::long_array_var anIds1 = theGroup1->GetListOfID();
-  SMESH::long_array_var anIds2 = theGroup2->GetListOfID();
-
-  TColStd_MapOfInteger aMap2;
-
-  for ( int i2 = 0, n2 = anIds2->length(); i2 < n2; i2++ )
-    aMap2.Add( anIds2[ i2 ] );
-
-
-  TColStd_SequenceOfInteger aSeq;
-  for ( int i1 = 0, n1 = anIds1->length(); i1 < n1; i1++ )
-    if ( !aMap2.Contains( anIds1[ i1 ] ) )
-      aSeq.Append( anIds1[ i1 ] );
-
-  SMESH::long_array_var aResIds = new SMESH::long_array;
-  aResIds->length( aSeq.Length() );
-
-  for ( int resI = 0, resN = aSeq.Length(); resI < resN; resI++ )
-    aResIds[ resI ] = aSeq( resI + 1 );  
-
-  aResGrp->Add( aResIds );
-
-  // Clear python lines, created by CreateGroup() and Add()
-  SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-  _gen_i->RemoveLastFromPythonScript(aStudy->StudyId());
-  _gen_i->RemoveLastFromPythonScript(aStudy->StudyId());
-
-  // Update Python script
-  TCollection_AsciiString aStr;
-  SMESH_Gen_i::AddObject(aStr, aResGrp) += " = ";
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".CutGroups(";
-  SMESH_Gen_i::AddObject(aStr, theGroup1) += ", ";
-  SMESH_Gen_i::AddObject(aStr, theGroup2) += ", \"";
-  aStr += TCollection_AsciiString((char*)theName) + "\")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-
-  return aResGrp._retn();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH::SMESH_subMesh_ptr SMESH_Mesh_i::createSubMesh( GEOM::GEOM_Object_ptr theSubShapeObject )
-{
-  if(MYDEBUG) MESSAGE( "createSubMesh" );
-  TopoDS_Shape myLocSubShape = _gen_i->GeomObjectToShape(theSubShapeObject);
-
-  ::SMESH_subMesh * mySubMesh = _impl->GetSubMesh(myLocSubShape);
-  int subMeshId = _impl->GetMeshDS()->ShapeToIndex( myLocSubShape );
-  SMESH_subMesh_i *subMeshServant = new SMESH_subMesh_i(myPOA, _gen_i, this, subMeshId);
-  SMESH::SMESH_subMesh_var subMesh
-    = SMESH::SMESH_subMesh::_narrow(subMeshServant->_this());
-
-  _mapSubMesh[subMeshId] = mySubMesh;
-  _mapSubMesh_i[subMeshId] = subMeshServant;
-  _mapSubMeshIor[subMeshId] = SMESH::SMESH_subMesh::_duplicate(subMesh);
-
-  // register CORBA object for persistence
-  int nextId = _gen_i->RegisterObject( subMesh );
-  if(MYDEBUG) MESSAGE( "Add submesh to map with id = "<< nextId);
-
-  return subMesh._retn(); 
-}
-
-//=======================================================================
-//function : getSubMesh
-//purpose  : 
-//=======================================================================
-
-SMESH::SMESH_subMesh_ptr SMESH_Mesh_i::getSubMesh(int shapeID)
-{
-  map<int, SMESH::SMESH_subMesh_ptr>::iterator it = _mapSubMeshIor.find( shapeID );
-  if ( it == _mapSubMeshIor.end() )
-    return SMESH::SMESH_subMesh::_nil();
-
-  return SMESH::SMESH_subMesh::_duplicate( (*it).second );
-}
-
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_Mesh_i::removeSubMesh (SMESH::SMESH_subMesh_ptr theSubMesh,
-                                  GEOM::GEOM_Object_ptr    theSubShapeObject )
-{
-  MESSAGE("SMESH_Mesh_i::removeSubMesh()");
-  if ( theSubMesh->_is_nil() || theSubShapeObject->_is_nil() )
-    return;
-
-  try {
-    SMESH::ListOfHypothesis_var aHypList = GetHypothesisList( theSubShapeObject );
-    for ( int i = 0, n = aHypList->length(); i < n; i++ ) {
-      removeHypothesis( theSubShapeObject, aHypList[i] );
-    }
-  }
-  catch( const SALOME::SALOME_Exception& ) {
-    INFOS("SMESH_Mesh_i::removeSubMesh(): exception caught!");
-  }
-
-  int subMeshId = theSubMesh->GetId();
-
-  _mapSubMesh.erase(subMeshId);
-  _mapSubMesh_i.erase(subMeshId);
-  _mapSubMeshIor.erase(subMeshId);
-  if(MYDEBUG) MESSAGE("SMESH_Mesh_i::removeSubMesh() completed");
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH::SMESH_GroupBase_ptr SMESH_Mesh_i::createGroup (SMESH::ElementType theElemType,
-                                                      const char*         theName,
-                                                      const TopoDS_Shape& theShape )
-{
-  int anId;
-  SMESH::SMESH_GroupBase_var aGroup;
-  if ( _impl->AddGroup( (SMDSAbs_ElementType)theElemType, theName, anId, theShape )) {
-    SMESH_GroupBase_i* aGroupImpl;
-    if ( !theShape.IsNull() )
-      aGroupImpl = new SMESH_GroupOnGeom_i( SMESH_Gen_i::GetPOA(), this, anId );
-    else
-      aGroupImpl = new SMESH_Group_i( SMESH_Gen_i::GetPOA(), this, anId );
-
-    // PAL7962: san -- To ensure correct mapping of servant and correct reference counting in GenericObj_i
-    SMESH_Gen_i::GetPOA()->activate_object( aGroupImpl );
-    aGroupImpl->Register();
-    // PAL7962: san -- To ensure correct mapping of servant and correct reference counting in GenericObj_i
-
-    aGroup = SMESH::SMESH_GroupBase::_narrow( aGroupImpl->_this() );
-    _mapGroups[anId] = SMESH::SMESH_GroupBase::_duplicate( aGroup );
-
-    // register CORBA object for persistence
-    int nextId = _gen_i->RegisterObject( aGroup );
-    if(MYDEBUG) MESSAGE( "Add group to map with id = "<< nextId);
-  }
-  return aGroup._retn();
-}
-
-//=============================================================================
-/*!
- * SMESH_Mesh_i::removeGroup
- *
- * Should be called by ~SMESH_Group_i() 
- */
-//=============================================================================
-
-void SMESH_Mesh_i::removeGroup( const int theId )
-{
-  if(MYDEBUG) MESSAGE("SMESH_Mesh_i::removeGroup()" );  
-  if ( _mapGroups.find( theId ) != _mapGroups.end() ) {
-    _mapGroups.erase( theId );
-    _impl->RemoveGroup( theId );
-  }
-}
-
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH::log_array * SMESH_Mesh_i::GetLog(CORBA::Boolean clearAfterGet)
-throw(SALOME::SALOME_Exception)
-{
-  if(MYDEBUG) MESSAGE("SMESH_Mesh_i::GetLog");
-  
-  SMESH::log_array_var aLog;
-  try{
-    list < SMESHDS_Command * >logDS = _impl->GetLog();
-    aLog = new SMESH::log_array;
-    int indexLog = 0;
-    int lg = logDS.size();
-    SCRUTE(lg);
-    aLog->length(lg);
-    list < SMESHDS_Command * >::iterator its = logDS.begin();
-    while(its != logDS.end()){
-      SMESHDS_Command *com = *its;
-      int comType = com->GetType();
-      //SCRUTE(comType);
-      int lgcom = com->GetNumber();
-      //SCRUTE(lgcom);
-      const list < int >&intList = com->GetIndexes();
-      int inum = intList.size();
-      //SCRUTE(inum);
-      list < int >::const_iterator ii = intList.begin();
-      const list < double >&coordList = com->GetCoords();
-      int rnum = coordList.size();
-      //SCRUTE(rnum);
-      list < double >::const_iterator ir = coordList.begin();
-      aLog[indexLog].commandType = comType;
-      aLog[indexLog].number = lgcom;
-      aLog[indexLog].coords.length(rnum);
-      aLog[indexLog].indexes.length(inum);
-      for(int i = 0; i < rnum; i++){
-       aLog[indexLog].coords[i] = *ir;
-       //MESSAGE(" "<<i<<" "<<ir.Value());
-       ir++;
-      }
-      for(int i = 0; i < inum; i++){
-       aLog[indexLog].indexes[i] = *ii;
-       //MESSAGE(" "<<i<<" "<<ii.Value());
-       ii++;
-      }
-      indexLog++;
-      its++;
-    }
-    if(clearAfterGet)
-      _impl->ClearLog();
-  }
-  catch(SALOME_Exception & S_ex){
-    THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
-  }
-  return aLog._retn();
-}
-
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_Mesh_i::ClearLog() throw(SALOME::SALOME_Exception)
-{
-  if(MYDEBUG) MESSAGE("SMESH_Mesh_i::ClearLog");
-  // ****
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-CORBA::Long SMESH_Mesh_i::GetId()throw(SALOME::SALOME_Exception)
-{
-  if(MYDEBUG) MESSAGE("SMESH_Mesh_i::GetId");
-  return _id;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-CORBA::Long SMESH_Mesh_i::GetStudyId()throw(SALOME::SALOME_Exception)
-{
-  return _studyId;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_Mesh_i::SetImpl(::SMESH_Mesh * impl)
-{
-  if(MYDEBUG) MESSAGE("SMESH_Mesh_i::SetImpl");
-  _impl = impl;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-::SMESH_Mesh & SMESH_Mesh_i::GetImpl()
-{
-  if(MYDEBUG) MESSAGE("SMESH_Mesh_i::GetImpl()");
-  return *_impl;
-}
-
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH::SMESH_MeshEditor_ptr SMESH_Mesh_i::GetMeshEditor()
-{
-  // Update Python script
-  TCollection_AsciiString aStr ("mesh_editor = ");
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".GetMeshEditor()";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-
-  // Create MeshEditor
-  SMESH_MeshEditor_i *aMeshEditor = new SMESH_MeshEditor_i( _impl );
-  SMESH::SMESH_MeshEditor_var aMesh = aMeshEditor->_this();
-  return aMesh._retn();
-}
-
-//=============================================================================
-/*!
- *  Export in different formats
- */
-//=============================================================================
-
-void SMESH_Mesh_i::ExportToMED (const char* file, 
-                               CORBA::Boolean auto_groups, 
-                               SMESH::MED_VERSION theVersion)
-  throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-
-  // Update Python script
-  TCollection_AsciiString aStr;
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".ExportToMED(\"";
-  aStr += TCollection_AsciiString((char*)file) + "\", ";
-  aStr += TCollection_AsciiString((int)auto_groups) + ", ";
-  switch (theVersion) {
-  case SMESH::MED_V2_1:
-    aStr += "SMESH.MED_V2_1)";
-    break;
-  case SMESH::MED_V2_2:
-    aStr += "SMESH.MED_V2_2)";
-    break;
-  default:
-    aStr += TCollection_AsciiString(theVersion) + ")";
-    break;
-  }
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-
-  // Perform Export
-  char* aMeshName = "Mesh";
-  SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-  if ( !aStudy->_is_nil() ) {
-    SALOMEDS::SObject_var aMeshSO = _gen_i->ObjectToSObject( aStudy, _this() );
-    if ( !aMeshSO->_is_nil() ) {
-      aMeshName = aMeshSO->GetName();
-      //SCRUTE(file);
-      //SCRUTE(aMeshName);
-      //SCRUTE(aMeshSO->GetID());
-      
-      // asv : 27.10.04 : fix of 6903: check for StudyLocked before adding attributes 
-      if ( !aStudy->GetProperties()->IsLocked() ) 
-       {
-       SALOMEDS::GenericAttribute_var anAttr;
-       SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder();
-       SALOMEDS::AttributeExternalFileDef_var aFileName;
-       anAttr=aStudyBuilder->FindOrCreateAttribute(aMeshSO, "AttributeExternalFileDef");
-       aFileName = SALOMEDS::AttributeExternalFileDef::_narrow(anAttr);
-       ASSERT(!aFileName->_is_nil());
-        aFileName->SetValue(file);
-        SALOMEDS::AttributeFileType_var aFileType;
-        anAttr=aStudyBuilder->FindOrCreateAttribute(aMeshSO, "AttributeFileType");
-        aFileType = SALOMEDS::AttributeFileType::_narrow(anAttr);
-        ASSERT(!aFileType->_is_nil());
-        aFileType->SetValue("FICHIERMED");
-       }
-    }
-  }
-  _impl->ExportMED( file, aMeshName, auto_groups, theVersion );
-}
-
-void SMESH_Mesh_i::ExportMED (const char* file, 
-                             CORBA::Boolean auto_groups)
-  throw(SALOME::SALOME_Exception)
-{
-  ExportToMED(file,auto_groups,SMESH::MED_V2_1);
-}
-
-void SMESH_Mesh_i::ExportDAT (const char *file)
-  throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-
-  // Update Python script
-  TCollection_AsciiString aStr;
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".ExportDAT(\"";
-  aStr += TCollection_AsciiString((char*)file) + "\")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-
-  // Perform Export
-  _impl->ExportDAT(file);
-}
-
-void SMESH_Mesh_i::ExportUNV (const char *file)
-  throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-
-  // Update Python script
-  TCollection_AsciiString aStr;
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".ExportUNV(\"";
-  aStr += TCollection_AsciiString((char*)file) + "\")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-
-  // Perform Export
-  _impl->ExportUNV(file);
-}
-
-void SMESH_Mesh_i::ExportSTL (const char *file, const bool isascii)
-  throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-
-  // Update Python script
-  TCollection_AsciiString aStr;
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".ExportToMED(\"";
-  aStr += TCollection_AsciiString((char*)file) + "\", ";
-  aStr += TCollection_AsciiString((int)isascii) + ")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-
-  // Perform Export
-  _impl->ExportSTL(file, isascii);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SALOME_MED::MESH_ptr SMESH_Mesh_i::GetMEDMesh()throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  SMESH_MEDMesh_i *aMedMesh = new SMESH_MEDMesh_i(this);
-  SALOME_MED::MESH_var aMesh = aMedMesh->_this();
-  return aMesh._retn();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-CORBA::Long SMESH_Mesh_i::NbNodes()throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbNodes();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-CORBA::Long SMESH_Mesh_i::NbElements()throw (SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  return NbEdges() + NbFaces() + NbVolumes();
-}
-  
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-CORBA::Long SMESH_Mesh_i::NbEdges()throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbEdges();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-CORBA::Long SMESH_Mesh_i::NbFaces()throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbFaces();
-}
-
-CORBA::Long SMESH_Mesh_i::NbTriangles()throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbTriangles();
-}
-
-CORBA::Long SMESH_Mesh_i::NbQuadrangles()throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbQuadrangles();
-}
-
-CORBA::Long SMESH_Mesh_i::NbPolygons()throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbPolygons();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-CORBA::Long SMESH_Mesh_i::NbVolumes()throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbVolumes();
-}
-
-CORBA::Long SMESH_Mesh_i::NbTetras()throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbTetras();
-}
-
-CORBA::Long SMESH_Mesh_i::NbHexas()throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbHexas();
-}
-
-CORBA::Long SMESH_Mesh_i::NbPyramids()throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbPyramids();
-}
-
-CORBA::Long SMESH_Mesh_i::NbPrisms()throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbPrisms();
-}
-
-CORBA::Long SMESH_Mesh_i::NbPolyhedrons()throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbPolyhedrons();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-CORBA::Long SMESH_Mesh_i::NbSubMesh()throw(SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbSubMesh();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-char* SMESH_Mesh_i::Dump()
-{
-  std::ostringstream os;
-  _impl->Dump( os );
-  return CORBA::string_dup( os.str().c_str() );
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-SMESH::long_array* SMESH_Mesh_i::GetIDs()
-{
-  SMESH::long_array_var aResult = new SMESH::long_array();
-  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
-  int aMinId = aSMESHDS_Mesh->MinElementID();
-  int aMaxId =  aSMESHDS_Mesh->MaxElementID();
-
-  aResult->length(aMaxId - aMinId + 1);
-  
-  for (int i = 0, id = aMinId; id <= aMaxId; id++  )
-    aResult[i++] = id;
-  
-  return aResult._retn();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-  
-SMESH::long_array* SMESH_Mesh_i::GetElementsId()
-     throw (SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  MESSAGE("SMESH_Mesh_i::GetElementsId");
-  SMESH::long_array_var aResult = new SMESH::long_array();
-  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
-
-  if ( aSMESHDS_Mesh == NULL )
-    return aResult._retn();
-
-  long nbElements = NbElements();
-  aResult->length( nbElements );
-  SMDS_ElemIteratorPtr anIt = aSMESHDS_Mesh->elementsIterator();
-  for ( int i = 0, n = nbElements; i < n && anIt->more(); i++ )
-    aResult[i] = anIt->next()->GetID();
-
-  return aResult._retn();
-}
-
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH::long_array* SMESH_Mesh_i::GetElementsByType( SMESH::ElementType theElemType )
-    throw (SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  MESSAGE("SMESH_subMesh_i::GetElementsByType");
-  SMESH::long_array_var aResult = new SMESH::long_array();
-  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
-
-  if ( aSMESHDS_Mesh == NULL )
-    return aResult._retn();
-
-  long nbElements = NbElements();
-
-  // No sense in returning ids of elements along with ids of nodes:
-  // when theElemType == SMESH::ALL, return node ids only if
-  // there are no elements
-  if ( theElemType == SMESH::NODE || theElemType == SMESH::ALL && nbElements == 0 )
-    return GetNodesId();
-
-  aResult->length( nbElements );
-
-  int i = 0;
-
-  SMDS_ElemIteratorPtr anIt = aSMESHDS_Mesh->elementsIterator();
-  while ( i < nbElements && anIt->more() ) {
-    const SMDS_MeshElement* anElem = anIt->next();
-    if ( theElemType == SMESH::ALL || anElem->GetType() == (SMDSAbs_ElementType)theElemType )
-      aResult[i++] = anElem->GetID();
-  }
-
-  aResult->length( i );
-
-  return aResult._retn();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-  
-SMESH::long_array* SMESH_Mesh_i::GetNodesId()
-  throw (SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  MESSAGE("SMESH_subMesh_i::GetNodesId");
-  SMESH::long_array_var aResult = new SMESH::long_array();
-  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
-
-  if ( aSMESHDS_Mesh == NULL )
-    return aResult._retn();
-
-  long nbNodes = NbNodes();
-  aResult->length( nbNodes );
-  SMDS_NodeIteratorPtr anIt = aSMESHDS_Mesh->nodesIterator();
-  for ( int i = 0, n = nbNodes; i < n && anIt->more(); i++ )
-    aResult[i] = anIt->next()->GetID();
-
-  return aResult._retn();
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-SMESH::ElementType SMESH_Mesh_i::GetElementType( const CORBA::Long id, const bool iselem )
-  throw (SALOME::SALOME_Exception)
-{
-  return ( SMESH::ElementType )_impl->GetElementType( id, iselem );
-}
diff --git a/src/SMESH_I/SMESH_Mesh_i.hxx b/src/SMESH_I/SMESH_Mesh_i.hxx
deleted file mode 100644 (file)
index 42fac7d..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Mesh_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_MESH_I_HXX_
-#define _SMESH_MESH_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-#include CORBA_SERVER_HEADER(SMESH_Group)
-#include CORBA_SERVER_HEADER(SMESH_Hypothesis)
-#include CORBA_CLIENT_HEADER(GEOM_Gen)
-#include CORBA_CLIENT_HEADER(MED)
-
-#include "SMESH_Hypothesis.hxx"
-#include "SMESH_Mesh.hxx"
-#include "SMESH_subMesh_i.hxx"
-#include "SMESH_subMesh.hxx"
-
-#include "SALOME_GenericObj_i.hh"
-
-class SMESH_Gen_i;
-class SMESH_GroupBase_i;
-
-#include <map>
-
-class SMESH_Mesh_i:
-  public virtual POA_SMESH::SMESH_Mesh,
-  public virtual SALOME::GenericObj_i
-{
-  SMESH_Mesh_i();
-  SMESH_Mesh_i(const SMESH_Mesh_i&);
-public:
-  SMESH_Mesh_i( PortableServer::POA_ptr thePOA,
-                SMESH_Gen_i*            myGen_i,
-               CORBA::Long             studyId );
-
-  virtual ~SMESH_Mesh_i();
-
-  // --- CORBA
-  void SetShape( GEOM::GEOM_Object_ptr theShapeObject )
-    throw (SALOME::SALOME_Exception);
-
-  GEOM::GEOM_Object_ptr GetShapeToMesh()
-    throw (SALOME::SALOME_Exception);
-
-  SMESH::Hypothesis_Status AddHypothesis(GEOM::GEOM_Object_ptr aSubShapeObject,
-                                         SMESH::SMESH_Hypothesis_ptr anHyp)
-    throw (SALOME::SALOME_Exception);
-
-  SMESH::Hypothesis_Status RemoveHypothesis(GEOM::GEOM_Object_ptr aSubShapeObject,
-                                            SMESH::SMESH_Hypothesis_ptr anHyp)
-    throw (SALOME::SALOME_Exception);
-
-  SMESH::ListOfHypothesis* GetHypothesisList(GEOM::GEOM_Object_ptr aSubShapeObject)
-    throw (SALOME::SALOME_Exception);
-
-  SMESH::SMESH_subMesh_ptr GetSubMesh(GEOM::GEOM_Object_ptr aSubShapeObject, const char* theName)
-    throw (SALOME::SALOME_Exception);
-
-  void RemoveSubMesh( SMESH::SMESH_subMesh_ptr theSubMesh )
-    throw (SALOME::SALOME_Exception);
-
-  SMESH::SMESH_Group_ptr CreateGroup( SMESH::ElementType theElemType, const char* theName )
-    throw (SALOME::SALOME_Exception);
-  
-  SMESH::SMESH_GroupOnGeom_ptr CreateGroupFromGEOM(SMESH::ElementType    theElemType,
-                                                   const char*           theName,
-                                                   GEOM::GEOM_Object_ptr theGeomObj )
-    throw (SALOME::SALOME_Exception);
-
-  void RemoveGroup( SMESH::SMESH_GroupBase_ptr theGroup )
-    throw (SALOME::SALOME_Exception);
-  
-  void RemoveGroupWithContents( SMESH::SMESH_GroupBase_ptr theGroup )
-    throw (SALOME::SALOME_Exception);
-  
-  SMESH::SMESH_Group_ptr UnionGroups( SMESH::SMESH_GroupBase_ptr theGroup1, 
-                                      SMESH::SMESH_GroupBase_ptr theGroup2, 
-                                      const char* theName )
-    throw (SALOME::SALOME_Exception);
-  
-  SMESH::SMESH_Group_ptr IntersectGroups( SMESH::SMESH_GroupBase_ptr theGroup1, 
-                                          SMESH::SMESH_GroupBase_ptr theGroup2, 
-                                          const char* theName )
-    throw (SALOME::SALOME_Exception);
-  
-  SMESH::SMESH_Group_ptr CutGroups( SMESH::SMESH_GroupBase_ptr theGroup1, 
-                                    SMESH::SMESH_GroupBase_ptr theGroup2, 
-                                   const char* theName )
-    throw (SALOME::SALOME_Exception);
-
-//    SMESH::string_array* GetLog(CORBA::Boolean clearAfterGet)
-//      throw (SALOME::SALOME_Exception);
-
-  SMESH::log_array* GetLog(CORBA::Boolean clearAfterGet)
-    throw (SALOME::SALOME_Exception);
-
-  SMESH::SMESH_MeshEditor_ptr GetMeshEditor();
-
-  void ClearLog()
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long GetId()
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long GetStudyId()
-    throw (SALOME::SALOME_Exception);
-
-  // --- C++ interface
-
-  void SetImpl(::SMESH_Mesh* impl);
-  ::SMESH_Mesh& GetImpl();         // :: force no namespace here
-
-  SMESH_Gen_i* GetGen() { return _gen_i; }
-  
-  int ImportUNVFile( const char* theFileName )
-    throw (SALOME::SALOME_Exception);
-
-  int ImportSTLFile( const char* theFileName )
-    throw (SALOME::SALOME_Exception);
-
-  /*!
-   * consult DriverMED_R_SMESHDS_Mesh::ReadStatus for returned value
-   */
-  SMESH::DriverMED_ReadStatus ImportMEDFile( const char* theFileName, const char* theMeshName )
-    throw (SALOME::SALOME_Exception);
-
-  void ExportToMED( const char* file, CORBA::Boolean auto_groups, SMESH::MED_VERSION theVersion )
-    throw (SALOME::SALOME_Exception);
-  void ExportMED( const char* file, CORBA::Boolean auto_groups )
-    throw (SALOME::SALOME_Exception);
-
-  void ExportDAT( const char* file )
-    throw (SALOME::SALOME_Exception);
-  void ExportUNV( const char* file )
-    throw (SALOME::SALOME_Exception);
-  void ExportSTL( const char* file, const bool isascii )
-    throw (SALOME::SALOME_Exception);
-
-  SALOME_MED::MESH_ptr GetMEDMesh()
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long NbNodes()
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long NbElements()
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long NbEdges()
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long NbFaces()
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long NbTriangles()
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long NbQuadrangles()
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long NbPolygons()
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long NbVolumes()
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long NbTetras()
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long NbHexas()
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long NbPyramids()
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long NbPrisms()
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long NbPolyhedrons()
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long NbSubMesh()
-    throw (SALOME::SALOME_Exception);
-
-  SMESH::long_array* GetElementsId()
-    throw (SALOME::SALOME_Exception);
-
-  SMESH::long_array* GetElementsByType( SMESH::ElementType theElemType )
-    throw (SALOME::SALOME_Exception);
-  
-  SMESH::long_array* GetNodesId()
-    throw (SALOME::SALOME_Exception);
-  
-  SMESH::ElementType GetElementType( const CORBA::Long id, const bool iselem )
-    throw (SALOME::SALOME_Exception);
-  
-  char* Dump();
-  
-  // Internal methods not available through CORBA
-  // They are called by corresponding interface methods
-  SMESH_Hypothesis::Hypothesis_Status addHypothesis(GEOM::GEOM_Object_ptr aSubShapeObject,
-                                                    SMESH::SMESH_Hypothesis_ptr anHyp);
-
-  SMESH_Hypothesis::Hypothesis_Status removeHypothesis(GEOM::GEOM_Object_ptr aSubShapeObject,
-                                                       SMESH::SMESH_Hypothesis_ptr anHyp);
-  
-  int importMEDFile( const char* theFileName, const char* theMeshName );
-
-  SMESH::SMESH_subMesh_ptr createSubMesh( GEOM::GEOM_Object_ptr theSubShapeObject );
-
-  void removeSubMesh(SMESH::SMESH_subMesh_ptr theSubMesh,
-                     GEOM::GEOM_Object_ptr theSubShapeObject );
-
-  SMESH::SMESH_GroupBase_ptr createGroup(SMESH::ElementType  theElemType,
-                                         const char*         theName,
-                                         const TopoDS_Shape& theShape = TopoDS_Shape());
-
-  void removeGroup( const int theId );
-
-  SMESH::SMESH_subMesh_ptr getSubMesh(int shapeID);
-  // return an existing subMesh object for the shapeID. shapeID == submeshID.
-
-  const map<int, SMESH::SMESH_GroupBase_ptr>& getGroups() { return _mapGroups; }
-  // return an existing group object.
-
-  virtual SMESH::long_array* GetIDs();
-
-  map<int, SMESH_subMesh_i*> _mapSubMesh_i; //NRI
-  map<int, ::SMESH_subMesh*> _mapSubMesh;   //NRI
-
-private:
-  static int myIdGenerator;
-  ::SMESH_Mesh* _impl;  // :: force no namespace here
-  SMESH_Gen_i* _gen_i;
-  int _id;          // id given by creator (unique within the creator instance)
-  int _studyId;
-  map<int, SMESH::SMESH_subMesh_ptr>    _mapSubMeshIor;
-  map<int, SMESH::SMESH_GroupBase_ptr>  _mapGroups;
-  map<int, SMESH::SMESH_Hypothesis_ptr> _mapHypo;
-};
-
-#endif
-
diff --git a/src/SMESH_I/SMESH_Pattern_i.cxx b/src/SMESH_I/SMESH_Pattern_i.cxx
deleted file mode 100644 (file)
index e8da5c8..0000000
+++ /dev/null
@@ -1,510 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-// File      : SMESH_Pattern_i.cxx
-// Created   : Fri Aug 20 16:15:49 2004
-// Author    : Edward AGAPOV (eap)
-//  $Header: 
-
-#include "SMESH_Pattern_i.hxx"
-
-#include "GEOM_Client.hxx"
-#include "SMESH_Gen_i.hxx"
-#include "SMESH_Mesh.hxx"
-#include "SMESH_Mesh_i.hxx"
-#include "SMDS_MeshFace.hxx"
-#include "SMDS_MeshVolume.hxx"
-
-#include <TopExp_Explorer.hxx>
-#include <TopoDS.hxx>
-#include <TopoDS_Face.hxx>
-
-#include <sstream>
-#include <set>
-
-//=======================================================================
-//function : dumpErrorCode
-//purpose  : 
-//=======================================================================
-
-static void addErrorCode(const char* thePyCommand)
-{
-  SMESH_Gen_i::AddToCurrentPyScript("if (isDone != 1):");
-  TCollection_AsciiString str ("\tprint \"");
-  str += (char*) thePyCommand;
-  str += ":\", pattern.GetErrorCode()";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::GetPattern
- *
- *  Create pattern mapper
- */
-//=============================================================================
-
-SMESH::SMESH_Pattern_ptr SMESH_Gen_i::GetPattern()
-{
-  // Update Python script
-  SMESH_Gen_i::AddToCurrentPyScript( "pattern = smesh.GetPattern()" );
-
-  SMESH_Pattern_i* i = new SMESH_Pattern_i( this );
-  SMESH::SMESH_Pattern_var anObj = i->_this();
-  return anObj._retn();
-}
-
-//=======================================================================
-//function : SMESH_Pattern_i
-//purpose  : 
-//=======================================================================
-
-SMESH_Pattern_i::SMESH_Pattern_i( SMESH_Gen_i* theGen_i ):
-       myGen( theGen_i )
-{
-}
-
-//=======================================================================
-//function : getMesh
-//purpose  : 
-//=======================================================================
-
-::SMESH_Mesh* SMESH_Pattern_i::getMesh( SMESH::SMESH_Mesh_ptr & theMesh )
-{
-  SMESH_Mesh_i* anImplPtr = 
-    dynamic_cast<SMESH_Mesh_i*>( SMESH_Gen_i::GetServant( theMesh ).in() );
-  if ( anImplPtr )
-    return & anImplPtr->GetImpl();
-
-  return 0;
-}
-
-//=======================================================================
-//function : LoadFromFile
-//purpose  : 
-//=======================================================================
-
-CORBA::Boolean SMESH_Pattern_i::LoadFromFile(const char* theFileContents)
-{
-  // Update Python script
-  TCollection_AsciiString str( "isDone = pattern.LoadFromFile(" );
-  str += TCollection_AsciiString( (char*) theFileContents ) + ")";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-  addErrorCode( "LoadFromFile" );
-
-  return myPattern.Load( theFileContents );
-}
-
-//=======================================================================
-//function : LoadFromFace
-//purpose  : 
-//=======================================================================
-
-CORBA::Boolean SMESH_Pattern_i::LoadFromFace(SMESH::SMESH_Mesh_ptr theMesh,
-                                             GEOM::GEOM_Object_ptr theFace,
-                                             CORBA::Boolean        theProject)
-{
-  if ( theMesh->_is_nil() || theFace->_is_nil() )
-    return false;
-
-  ::SMESH_Mesh* aMesh = getMesh( theMesh );
-  if ( !aMesh )
-    return false;
-
-  TopoDS_Face aFace = TopoDS::Face( myGen->GeomObjectToShape( theFace ));
-  if ( aFace.IsNull() )
-    return false;
-
-  // Update Python script
-  TCollection_AsciiString str( "isDone = pattern.LoadFromFace( " );
-  SMESH_Gen_i::AddObject( str, theMesh ) += ", ";
-  SMESH_Gen_i::AddObject( str, theFace ) += ", ";
-  str += TCollection_AsciiString( theProject ) + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-  addErrorCode( "LoadFromFace" );
-
-  return myPattern.Load( aMesh, aFace, theProject );
-}
-
-//=======================================================================
-//function : LoadFrom3DBlock
-//purpose  : 
-//=======================================================================
-
-CORBA::Boolean SMESH_Pattern_i::LoadFrom3DBlock(SMESH::SMESH_Mesh_ptr theMesh,
-                                                GEOM::GEOM_Object_ptr theBlock)
-{
-  if ( theMesh->_is_nil() || theBlock->_is_nil() )
-    return false;
-
-  ::SMESH_Mesh* aMesh = getMesh( theMesh );
-  if ( !aMesh )
-    return false;
-
-  TopoDS_Shape aShape = myGen->GeomObjectToShape( theBlock );
-  if ( aShape.IsNull())
-    return false;
-
-  TopExp_Explorer exp ( aShape, TopAbs_SHELL );
-  if ( !exp.More() )
-    return false;
-
-  // Update Python script
-  TCollection_AsciiString str( "isDone = pattern.LoadFrom3DBlock( " );
-  SMESH_Gen_i::AddObject( str, theMesh ) += ", ";
-  SMESH_Gen_i::AddObject( str, theBlock ) += " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-  addErrorCode( "LoadFrom3DBlock" );
-
-  return myPattern.Load( aMesh, TopoDS::Shell( exp.Current() ));
-}
-
-//=======================================================================
-//function : ApplyToFace
-//purpose  : 
-//=======================================================================
-
-SMESH::point_array* SMESH_Pattern_i::ApplyToFace(GEOM::GEOM_Object_ptr theFace,
-                                                 GEOM::GEOM_Object_ptr theVertexOnKeyPoint1,
-                                                 CORBA::Boolean        theReverse)
-{
-  SMESH::point_array_var points = new SMESH::point_array;
-  list<const gp_XYZ *> xyzList;
-
-  TopoDS_Shape F = myGen->GeomObjectToShape( theFace );
-  TopoDS_Shape V = myGen->GeomObjectToShape( theVertexOnKeyPoint1 );
-
-  if (!F.IsNull() && F.ShapeType() == TopAbs_FACE &&
-      !V.IsNull() && V.ShapeType() == TopAbs_VERTEX
-      &&
-      myPattern.Apply( TopoDS::Face( F ), TopoDS::Vertex( V ), theReverse ) &&
-      myPattern.GetMappedPoints( xyzList ))
-  {
-    points->length( xyzList.size() );
-    list<const gp_XYZ *>::iterator xyzIt = xyzList.begin();
-    for ( int i = 0; xyzIt != xyzList.end(); xyzIt++ ) {
-      SMESH::PointStruct & p = points[ i++ ];
-      (*xyzIt)->Coord( p.x, p.y, p.z );
-    }
-  }
-
-  // Update Python script
-  TCollection_AsciiString str( "pattern.ApplyToFace( " );
-  SMESH_Gen_i::AddObject( str, theFace ) += ", ";
-  SMESH_Gen_i::AddObject( str, theVertexOnKeyPoint1 ) += ", ";
-  str += TCollection_AsciiString( theReverse ) + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-
-  return points._retn();
-}
-
-//=======================================================================
-//function : ApplyTo3DBlock
-//purpose  : 
-//=======================================================================
-
-SMESH::point_array* SMESH_Pattern_i::ApplyTo3DBlock(GEOM::GEOM_Object_ptr theBlock,
-                                                    GEOM::GEOM_Object_ptr theVertex000,
-                                                    GEOM::GEOM_Object_ptr theVertex001)
-{
-  SMESH::point_array_var points = new SMESH::point_array;
-  list<const gp_XYZ *> xyzList;
-
-  TopExp_Explorer exp( myGen->GeomObjectToShape( theBlock ), TopAbs_SHELL );
-  TopoDS_Shape V000 = myGen->GeomObjectToShape( theVertex000 );
-  TopoDS_Shape V001 = myGen->GeomObjectToShape( theVertex001 );
-
-  if (exp.More() &&
-      !V000.IsNull() && V000.ShapeType() == TopAbs_VERTEX &&
-      !V001.IsNull() && V001.ShapeType() == TopAbs_VERTEX 
-      &&
-      myPattern.Apply(TopoDS::Shell( exp.Current() ),
-                      TopoDS::Vertex( V000 ),
-                      TopoDS::Vertex( V001 )) &&
-      myPattern.GetMappedPoints( xyzList ))
-  {
-    points->length( xyzList.size() );
-    list<const gp_XYZ *>::iterator xyzIt = xyzList.begin();
-    for ( int i = 0; xyzIt != xyzList.end(); xyzIt++ ) {
-      SMESH::PointStruct & p = points[ i++ ];
-      (*xyzIt)->Coord( p.x, p.y, p.z );
-    }
-  }
-
-  // Update Python script
-  TCollection_AsciiString str( "pattern.ApplyTo3DBlock( " );
-  SMESH_Gen_i::AddObject( str, theBlock ) += ", ";
-  SMESH_Gen_i::AddObject( str, theVertex000 ) += ", ";
-  SMESH_Gen_i::AddObject( str, theVertex001 ) += " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-
-  return points._retn();
-}
-
-//=======================================================================
-//function : ApplyToMeshFaces
-//purpose  : 
-//=======================================================================
-
-SMESH::point_array*
-  SMESH_Pattern_i::ApplyToMeshFaces(SMESH::SMESH_Mesh_ptr    theMesh,
-                                    const SMESH::long_array& theFacesIDs,
-                                    CORBA::Long              theNodeIndexOnKeyPoint1,
-                                    CORBA::Boolean           theReverse)
-{
-  SMESH::point_array_var points = new SMESH::point_array;
-
-  ::SMESH_Mesh* aMesh = getMesh( theMesh );
-  if ( !aMesh )
-    return points._retn();
-
-  list<const gp_XYZ *> xyzList;
-  set<const SMDS_MeshFace*> fset;
-  for (int i = 0; i < theFacesIDs.length(); i++)
-  {
-    CORBA::Long index = theFacesIDs[i];
-    const SMDS_MeshElement * elem = aMesh->GetMeshDS()->FindElement(index);
-    if ( elem && elem->GetType() == SMDSAbs_Face )
-      fset.insert( static_cast<const SMDS_MeshFace *>( elem ));
-  }
-  if (myPattern.Apply( fset, theNodeIndexOnKeyPoint1, theReverse ) &&
-      myPattern.GetMappedPoints( xyzList ))
-  {
-    points->length( xyzList.size() );
-    list<const gp_XYZ *>::iterator xyzIt = xyzList.begin();
-    for ( int i = 0; xyzIt != xyzList.end(); xyzIt++ ) {
-      SMESH::PointStruct & p = points[ i++ ];
-      (*xyzIt)->Coord( p.x, p.y, p.z );
-    }
-  }
-
-  // Update Python script
-  TCollection_AsciiString str( "pattern.ApplyToMeshFaces( " );
-  SMESH_Gen_i::AddObject( str, theMesh ) += ", ";
-  SMESH_Gen_i::AddArray( str, theFacesIDs ) += ", ";
-  str += TCollection_AsciiString( (int)theNodeIndexOnKeyPoint1 ) + ", ";
-  str += TCollection_AsciiString( theReverse ) + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-
-  return points._retn();
-}
-
-//=======================================================================
-//function : ApplyToHexahedrons
-//purpose  : 
-//=======================================================================
-
-SMESH::point_array*
-  SMESH_Pattern_i::ApplyToHexahedrons(SMESH::SMESH_Mesh_ptr    theMesh,
-                                      const SMESH::long_array& theVolumesIDs,
-                                      CORBA::Long              theNode000Index,
-                                      CORBA::Long              theNode001Index)
-{
-  SMESH::point_array_var points = new SMESH::point_array;
-
-  ::SMESH_Mesh* aMesh = getMesh( theMesh );
-  if ( !aMesh )
-    return points._retn();
-
-  list<const gp_XYZ *> xyzList;
-  set<const SMDS_MeshVolume*> vset;
-  for (int i = 0; i < theVolumesIDs.length(); i++)
-  {
-    CORBA::Long index = theVolumesIDs[i];
-    const SMDS_MeshElement * elem = aMesh->GetMeshDS()->FindElement(index);
-    if ( elem && elem->GetType() == SMDSAbs_Volume && elem->NbNodes() == 8 )
-      vset.insert( static_cast<const SMDS_MeshVolume *>( elem ));
-  }
-  if (myPattern.Apply( vset, theNode000Index, theNode001Index ) &&
-      myPattern.GetMappedPoints( xyzList ))
-  {
-    points->length( xyzList.size() );
-    list<const gp_XYZ *>::iterator xyzIt = xyzList.begin();
-    for ( int i = 0; xyzIt != xyzList.end(); xyzIt++ ) {
-      SMESH::PointStruct & p = points[ i++ ];
-      (*xyzIt)->Coord( p.x, p.y, p.z );
-    }
-  }
-
-  // Update Python script
-  TCollection_AsciiString str( "pattern.ApplyToHexahedrons( " );
-  SMESH_Gen_i::AddObject( str, theMesh ) += ", ";
-  SMESH_Gen_i::AddArray( str, theVolumesIDs ) += ", ";
-  str += TCollection_AsciiString( (int)theNode000Index ) + ", ";
-  str += TCollection_AsciiString( (int)theNode001Index ) + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-
-  return points._retn();
-}
-
-//=======================================================================
-//function : MakeMesh
-//purpose  : 
-//=======================================================================
-
-CORBA::Boolean SMESH_Pattern_i::MakeMesh (SMESH::SMESH_Mesh_ptr theMesh,
-                                          const CORBA::Boolean  CreatePolygons,
-                                          const CORBA::Boolean  CreatePolyedrs)
-{
-  ::SMESH_Mesh* aMesh = getMesh( theMesh );
-  if ( !aMesh )
-    return false;
-
-  // Update Python script
-  TCollection_AsciiString str( "isDone = pattern.MakeMesh( " );
-  SMESH_Gen_i::AddObject( str, theMesh ) += ", ";
-  str += TCollection_AsciiString( CreatePolygons ) + ", ";
-  str += TCollection_AsciiString( CreatePolyedrs ) + " )";
-  SMESH_Gen_i::AddToCurrentPyScript( str );
-  addErrorCode( "MakeMesh" );
-
-  return myPattern.MakeMesh( aMesh, CreatePolygons, CreatePolyedrs );
-}
-
-//=======================================================================
-//function : GetString
-//purpose  : 
-//=======================================================================
-
-char* SMESH_Pattern_i::GetString()
-{
-  ostringstream os;
-  myPattern.Save( os );
-  
-  return CORBA::string_dup( os.str().c_str() );
-}
-
-//=======================================================================
-//function : Is2D
-//purpose  : 
-//=======================================================================
-
-CORBA::Boolean SMESH_Pattern_i::Is2D()
-{
-  return myPattern.Is2D();
-}
-
-//=======================================================================
-//function : GetPoints
-//purpose  : 
-//=======================================================================
-
-SMESH::point_array* SMESH_Pattern_i::GetPoints()
-{
-  SMESH::point_array_var points = new SMESH::point_array;
-  list<const gp_XYZ *> xyzList;
-
-  if (myPattern.GetPoints( xyzList ))
-  {
-    points->length( xyzList.size() );
-    list<const gp_XYZ *>::iterator xyzIt = xyzList.begin();
-    for ( int i = 0; xyzIt != xyzList.end(); xyzIt++ ) {
-      SMESH::PointStruct & p = points[ i++ ];
-      (*xyzIt)->Coord( p.x, p.y, p.z );
-    }
-  }
-
-  return points._retn();
-}
-
-//=======================================================================
-//function : GetKeyPoints
-//purpose  : 
-//=======================================================================
-
-SMESH::long_array* SMESH_Pattern_i::GetKeyPoints()
-{
-  SMESH::long_array_var ids = new SMESH::long_array;
-  if ( myPattern.IsLoaded() ) {
-    const list< int > & idList = myPattern.GetKeyPointIDs();
-    ids->length( idList.size() );
-    list< int >::const_iterator iIt = idList.begin();
-    for ( int i = 0; iIt != idList.end(); iIt++, i++ )
-      ids[ i ] = *iIt;
-  }
-  return ids._retn();
-}
-
-//=======================================================================
-//function : GetElementPoints
-//purpose  : 
-//=======================================================================
-
-SMESH::array_of_long_array* SMESH_Pattern_i::GetElementPoints(CORBA::Boolean applied)
-{
-  SMESH::array_of_long_array_var arrayOfArray = new SMESH::array_of_long_array;
-
-  const list< list< int > >& listOfIdList = myPattern.GetElementPointIDs(applied);
-  arrayOfArray->length( listOfIdList.size() );
-  list< list< int > >::const_iterator llIt = listOfIdList.begin();
-  for ( int i = 0 ; llIt != listOfIdList.end(); llIt++, i++ )
-  {
-    const list< int > & idList = (*llIt);
-    SMESH::long_array& ids = arrayOfArray[ i ];
-    ids.length( idList.size() );
-    list< int >::const_iterator iIt = idList.begin();
-    for ( int j = 0; iIt != idList.end(); iIt++, j++ )
-      ids[ j ] = *iIt;
-  }
-  return arrayOfArray._retn();
-}
-
-//=======================================================================
-//function : GetErrorCode
-//purpose  : 
-//=======================================================================
-
-#define RETCASE(enm) case ::SMESH_Pattern::enm: return SMESH::SMESH_Pattern::enm;
-
-SMESH::SMESH_Pattern::ErrorCode SMESH_Pattern_i::GetErrorCode()
-{
-  switch ( myPattern.GetErrorCode() ) {
-    RETCASE( ERR_OK );
-    RETCASE( ERR_READ_NB_POINTS );
-    RETCASE( ERR_READ_POINT_COORDS );
-    RETCASE( ERR_READ_TOO_FEW_POINTS );
-    RETCASE( ERR_READ_3D_COORD );
-    RETCASE( ERR_READ_NO_KEYPOINT );
-    RETCASE( ERR_READ_BAD_INDEX );
-    RETCASE( ERR_READ_ELEM_POINTS );
-    RETCASE( ERR_READ_NO_ELEMS );
-    RETCASE( ERR_READ_BAD_KEY_POINT );
-    RETCASE( ERR_SAVE_NOT_LOADED );
-    RETCASE( ERR_LOAD_EMPTY_SUBMESH );
-    RETCASE( ERR_LOADF_NARROW_FACE );
-    RETCASE( ERR_LOADF_CLOSED_FACE );
-    RETCASE( ERR_LOADV_BAD_SHAPE );
-    RETCASE( ERR_LOADV_COMPUTE_PARAMS );
-    RETCASE( ERR_APPL_NOT_LOADED );
-    RETCASE( ERR_APPL_BAD_DIMENTION );
-    RETCASE( ERR_APPL_BAD_NB_VERTICES );
-    RETCASE( ERR_APPLF_BAD_TOPOLOGY );
-    RETCASE( ERR_APPLF_BAD_VERTEX );
-    RETCASE( ERR_APPLF_INTERNAL_EEROR );
-    RETCASE( ERR_APPLV_BAD_SHAPE );
-    RETCASE( ERR_MAKEM_NOT_COMPUTED );
-  default:;
-  };
-  return SMESH::SMESH_Pattern::ERR_OK;
-}
-
diff --git a/src/SMESH_I/SMESH_Pattern_i.hxx b/src/SMESH_I/SMESH_Pattern_i.hxx
deleted file mode 100644 (file)
index 29b5084..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-// File      : SMESH_Pattern_i.hxx
-// Created   : Fri Aug 20 16:03:15 2004
-// Author    : Edward AGAPOV (eap)
-
-//  $Header: 
-
-#ifndef SMESH_Pattern_I_HeaderFile
-#define SMESH_Pattern_I_HeaderFile
-
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_Pattern)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-#include CORBA_CLIENT_HEADER(GEOM_Gen)
-
-#include <TopoDS_Shape.hxx>
-#include "SMESH_Pattern.hxx"
-
-class SMESH_Gen_i;
-class SMESH_Mesh;
-
-class SMESH_Pattern_i:
-  public virtual POA_SMESH::SMESH_Pattern
-{
- public:
-
-  SMESH_Pattern_i (SMESH_Gen_i* theGen_i);
-
-  CORBA::Boolean LoadFromFile(const char* theFileContents);
-
-  CORBA::Boolean LoadFromFace(SMESH::SMESH_Mesh_ptr theMesh,
-                              GEOM::GEOM_Object_ptr theFace,
-                              CORBA::Boolean        theProject);
-
-  CORBA::Boolean LoadFrom3DBlock(SMESH::SMESH_Mesh_ptr theMesh,
-                                 GEOM::GEOM_Object_ptr theBlock);
-
-  SMESH::point_array* ApplyToFace(GEOM::GEOM_Object_ptr theFace,
-                                  GEOM::GEOM_Object_ptr theVertexOnKeyPoint1,
-                                  CORBA::Boolean        theReverse);
-
-  SMESH::point_array* ApplyTo3DBlock(GEOM::GEOM_Object_ptr theBlock,
-                                     GEOM::GEOM_Object_ptr theVertex000,
-                                     GEOM::GEOM_Object_ptr theVertex001);
-
-  SMESH::point_array* ApplyToMeshFaces(SMESH::SMESH_Mesh_ptr    theMesh,
-                                       const SMESH::long_array& theFacesIDs,
-                                       CORBA::Long              theNodeIndexOnKeyPoint1,
-                                       CORBA::Boolean           theReverse);
-
-  SMESH::point_array* ApplyToHexahedrons(SMESH::SMESH_Mesh_ptr    theMesh,
-                                         const SMESH::long_array& theVolumesIDs,
-                                         CORBA::Long              theNode000Index,
-                                         CORBA::Long              theNode001Index);
-
-  CORBA::Boolean MakeMesh (SMESH::SMESH_Mesh_ptr theMesh,
-                           const CORBA::Boolean  CreatePolygons,
-                           const CORBA::Boolean  CreatePolyedrs);
-
-  SMESH::SMESH_Pattern::ErrorCode GetErrorCode();
-
-  char* GetString();
-
-  CORBA::Boolean Is2D();
-
-  SMESH::point_array* GetPoints();
-
-  SMESH::long_array* GetKeyPoints();
-
-  SMESH::array_of_long_array* GetElementPoints(CORBA::Boolean applied);
-
-
- private:
-
-  ::SMESH_Mesh* getMesh( SMESH::SMESH_Mesh_ptr & theMesh );
-
-  ::SMESH_Pattern myPattern;
-
-  SMESH_Gen_i*    myGen;
-};
-#endif
diff --git a/src/SMESH_I/SMESH_PythonDump.hxx b/src/SMESH_I/SMESH_PythonDump.hxx
deleted file mode 100644 (file)
index 86133cf..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-
-#ifndef _SMESH_PYTHONDUMP_HXX_
-#define _SMESH_PYTHONDUMP_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-#include <sstream>
-
-namespace SMESH
-{
-  class FilterLibrary_i;
-  class FilterManager_i;
-  class Filter_i;
-  class Functor_i;
-
-  class TPythonDump
-  {
-    std::ostringstream myStream;
-    static size_t myCounter;
-  public:
-    TPythonDump();
-    virtual ~TPythonDump();
-    
-    TPythonDump& 
-    operator<<(long int theArg);
-
-    TPythonDump& 
-    operator<<(int theArg);
-
-    TPythonDump& 
-    operator<<(double theArg);
-
-    TPythonDump& 
-    operator<<(float theArg);
-
-    TPythonDump& 
-    operator<<(const void* theArg);
-
-    TPythonDump& 
-    operator<<(const char* theArg);
-
-    TPythonDump& 
-    operator<<(const SMESH::ElementType& theArg);
-
-    TPythonDump& 
-    operator<<(const SMESH::long_array& theArg);
-
-    TPythonDump& 
-    operator<<(CORBA::Object_ptr theArg);
-
-    TPythonDump& 
-    operator<<(SMESH::FilterLibrary_i* theArg);
-
-    TPythonDump& 
-    operator<<(SMESH::FilterManager_i* theArg);
-
-    TPythonDump& 
-    operator<<(SMESH::Filter_i* theArg);
-
-    TPythonDump& 
-    operator<<(SMESH::Functor_i* theArg);
-  };
-}
-
-
-#endif
diff --git a/src/SMESH_I/SMESH_subMesh_i.cxx b/src/SMESH_I/SMESH_subMesh_i.cxx
deleted file mode 100644 (file)
index f8ade30..0000000
+++ /dev/null
@@ -1,487 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_subMesh_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "SMESH_subMesh_i.hxx"
-#include "SMESH_Gen_i.hxx"
-#include "SMESH_Mesh_i.hxx"
-
-#include "Utils_CorbaException.hxx"
-#include "utilities.h"
-#include "OpUtil.hxx"
-#include "Utils_ExceptHandlers.hxx"
-
-#include <BRepTools.hxx>
-#include <TopoDS.hxx>
-#include <TopoDS_Iterator.hxx>
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_subMesh_i::SMESH_subMesh_i()
-     : SALOME::GenericObj_i( PortableServer::POA::_nil() )
-{
-  MESSAGE("SMESH_subMesh_i::SMESH_subMesh_i default, not for use");
-    ASSERT(0);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_subMesh_i::SMESH_subMesh_i( PortableServer::POA_ptr thePOA,
-                                 SMESH_Gen_i*            gen_i,
-                                 SMESH_Mesh_i*           mesh_i,
-                                 int                     localId )
-     : SALOME::GenericObj_i( thePOA )
-{
-  MESSAGE("SMESH_subMesh_i::SMESH_subMesh_i");
-  _gen_i = gen_i;
-  _mesh_i = mesh_i;
-  _localId = localId;
-  thePOA->activate_object( this );
-  // ****
-}
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_subMesh_i::~SMESH_subMesh_i()
-{
-  MESSAGE("SMESH_subMesh_i::~SMESH_subMesh_i");
-  // ****
-}
-
-//=======================================================================
-//function : getSubMeshes
-//purpose  : for a submesh on shape to which elements are not bound directly,
-//           return submeshes containing elements
-//=======================================================================
-
-typedef list<SMESHDS_SubMesh*> TListOfSubMeshes;
-
-bool getSubMeshes(::SMESH_subMesh*  theSubMesh,
-                  TListOfSubMeshes& theSubMeshList)
-{
-  int size = theSubMeshList.size();
-
-  SMESH_Mesh*      aMesh      = theSubMesh->GetFather();
-  SMESHDS_Mesh*    aMeshDS    = aMesh->GetMeshDS();
-  SMESHDS_SubMesh* aSubMeshDS = theSubMesh->GetSubMeshDS();
-
-  // nodes can be bound to either vertex, edge, face or solid_or_shell
-  TopoDS_Shape aShape = theSubMesh->GetSubShape();
-  switch ( aShape.ShapeType() )
-  {
-  case TopAbs_SOLID: {
-    // add submesh of solid itself
-    aSubMeshDS = aMeshDS->MeshElements( aShape );
-    if ( aSubMeshDS )
-      theSubMeshList.push_back( aSubMeshDS );
-    // and of the first shell
-    TopExp_Explorer exp( aShape, TopAbs_SHELL );
-    if ( exp.More() ) {
-      aSubMeshDS = aMeshDS->MeshElements( exp.Current() );
-      if ( aSubMeshDS )
-        theSubMeshList.push_back( aSubMeshDS );
-    }
-    break;
-  }
-  case TopAbs_WIRE:
-  case TopAbs_COMPOUND:
-  case TopAbs_COMPSOLID: {
-    // call getSubMeshes() for sub-shapes
-    list<TopoDS_Shape> shapeList;
-    shapeList.push_back( aShape );
-    list<TopoDS_Shape>::iterator sh = shapeList.begin();
-    for ( ; sh != shapeList.end(); ++sh ) {
-      for ( TopoDS_Iterator it( *sh ); it.More(); it.Next() ) {
-        ::SMESH_subMesh* aSubMesh = aMesh->GetSubMeshContaining( it.Value() );
-        if ( aSubMesh )
-          getSubMeshes( aSubMesh, theSubMeshList );
-        else
-          // no submesh for a compound inside compound
-          shapeList.push_back( it.Value() );
-      }
-    }
-    // return only unique submeshes
-    set<SMESHDS_SubMesh*> smSet;
-    TListOfSubMeshes::iterator sm = theSubMeshList.begin();
-    while ( sm != theSubMeshList.end() ) {
-      if ( !smSet.insert( *sm ).second )
-        sm = theSubMeshList.erase( sm );
-      else
-        ++sm;
-    }
-    break;
-  }
-  }
-  return size < theSubMeshList.size();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-CORBA::Long SMESH_subMesh_i::GetNumberOfElements()
-  throw (SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  MESSAGE("SMESH_subMesh_i::GetNumberOfElements");
-  if ( _mesh_i->_mapSubMesh.find( _localId ) == _mesh_i->_mapSubMesh.end() )
-    return 0;
-
-  ::SMESH_subMesh* aSubMesh = _mesh_i->_mapSubMesh[_localId];
-  SMESHDS_SubMesh* aSubMeshDS = aSubMesh->GetSubMeshDS();
-
-  int nbElems = aSubMeshDS ? aSubMeshDS->NbElements() : 0;
-
-  // volumes are bound to shell
-  TListOfSubMeshes smList;
-  if ( nbElems == 0 && getSubMeshes( aSubMesh, smList ))
-  {
-    TListOfSubMeshes::iterator sm = smList.begin();
-    for ( ; sm != smList.end(); ++sm )
-      nbElems += (*sm)->NbElements();
-  }
-  return nbElems;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-CORBA::Long SMESH_subMesh_i::GetNumberOfNodes(CORBA::Boolean all)
-  throw (SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  MESSAGE("SMESH_subMesh_i::GetNumberOfNodes");
-  if ( _mesh_i->_mapSubMesh.find( _localId ) == _mesh_i->_mapSubMesh.end() )
-    return 0;
-
-  ::SMESH_subMesh* aSubMesh = _mesh_i->_mapSubMesh[_localId];
-  SMESHDS_SubMesh* aSubMeshDS = aSubMesh->GetSubMeshDS();
-
-  set<int> nodeIds;
-
-  // nodes are bound to shell instead of solid
-  TListOfSubMeshes smList;
-  if ( all && getSubMeshes( aSubMesh, smList ))
-  {
-    TListOfSubMeshes::iterator sm = smList.begin();
-    for ( ; sm != smList.end(); ++sm )
-    {
-      SMDS_ElemIteratorPtr eIt = (*sm)->GetElements();
-      while ( eIt->more() ) {
-        const SMDS_MeshElement* anElem = eIt->next();
-        SMDS_ElemIteratorPtr nIt = anElem->nodesIterator();
-        while ( nIt->more() )
-          nodeIds.insert( nIt->next()->GetID() );
-      }
-    }
-    return nodeIds.size();
-  }
-
-  if ( aSubMeshDS == NULL )
-    return 0;
-
-  if ( all ) { // all nodes of submesh elements
-    SMDS_ElemIteratorPtr eIt = aSubMeshDS->GetElements();
-    while ( eIt->more() ) {
-      const SMDS_MeshElement* anElem = eIt->next();
-      SMDS_ElemIteratorPtr nIt = anElem->nodesIterator();
-      while ( nIt->more() )
-        nodeIds.insert( nIt->next()->GetID() );
-    }
-    return nodeIds.size();
-  }
-    
-  return aSubMeshDS->NbNodes();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-  
-SMESH::long_array* SMESH_subMesh_i::GetElementsId()
-  throw (SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  MESSAGE("SMESH_subMesh_i::GetElementsId");
-  SMESH::long_array_var aResult = new SMESH::long_array();
-
-  if ( _mesh_i->_mapSubMesh.find( _localId ) == _mesh_i->_mapSubMesh.end() )
-    return aResult._retn();
-
-  ::SMESH_subMesh* aSubMesh = _mesh_i->_mapSubMesh[_localId];
-  SMESHDS_SubMesh* aSubMeshDS = aSubMesh->GetSubMeshDS();
-
-  int nbElems = aSubMeshDS ? aSubMeshDS->NbElements() : 0;
-  TListOfSubMeshes smList;
-  if ( nbElems )
-    smList.push_back( aSubMeshDS );
-
-  // volumes are bound to shell
-  if ( nbElems == 0 && getSubMeshes( aSubMesh, smList ))
-  {
-    TListOfSubMeshes::iterator sm = smList.begin();
-    for ( ; sm != smList.end(); ++sm )
-      nbElems += (*sm)->NbElements();
-  }
-
-  aResult->length( nbElems );
-  if ( nbElems )
-  {
-    TListOfSubMeshes::iterator sm = smList.begin();
-    for ( int i = 0; sm != smList.end(); sm++ )
-    {
-      SMDS_ElemIteratorPtr anIt = (*sm)->GetElements();
-      for ( int n = aSubMeshDS->NbElements(); i < n && anIt->more(); i++ )
-        aResult[i] = anIt->next()->GetID();
-    }
-  }
-  return aResult._retn();
-}
-
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH::long_array* SMESH_subMesh_i::GetElementsByType( SMESH::ElementType theElemType )
-    throw (SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  MESSAGE("SMESH_subMesh_i::GetElementsByType");
-  SMESH::long_array_var aResult = new SMESH::long_array();
-
-  if ( _mesh_i->_mapSubMesh.find( _localId ) == _mesh_i->_mapSubMesh.end() )
-    return aResult._retn();
-
-  ::SMESH_subMesh* aSubMesh = _mesh_i->_mapSubMesh[_localId];
-  SMESHDS_SubMesh* aSubMeshDS = aSubMesh->GetSubMeshDS();
-
-  // PAL5440, return all nodes belonging to elements of submesh
-  set<int> nodeIds;
-  int nbElems = aSubMeshDS ? aSubMeshDS->NbElements() : 0;
-
-  // volumes may be bound to shell instead of solid
-  TListOfSubMeshes smList;
-  if ( nbElems == 0 && getSubMeshes( aSubMesh, smList ))
-  {
-    TListOfSubMeshes::iterator sm = smList.begin();
-    for ( ; sm != smList.end(); ++sm )
-    {
-      if ( theElemType == SMESH::NODE )
-      {
-        SMDS_ElemIteratorPtr eIt = (*sm)->GetElements();
-        while ( eIt->more() ) {
-          const SMDS_MeshElement* anElem = eIt->next();
-          SMDS_ElemIteratorPtr nIt = anElem->nodesIterator();
-          while ( nIt->more() )
-            nodeIds.insert( nIt->next()->GetID() );
-        }
-      }
-      else
-      {
-        nbElems += (*sm)->NbElements();
-      }
-    }
-    aSubMeshDS = 0;
-  }
-  else
-  {
-    if ( nbElems )
-      smList.push_back( aSubMeshDS );
-  }
-
-  if ( theElemType == SMESH::NODE && aSubMeshDS )
-  {
-    SMDS_ElemIteratorPtr eIt = aSubMeshDS->GetElements();
-    while ( eIt->more() ) {
-      const SMDS_MeshElement* anElem = eIt->next();
-      SMDS_ElemIteratorPtr nIt = anElem->nodesIterator();
-      while ( nIt->more() )
-        nodeIds.insert( nIt->next()->GetID() );
-    }
-  }
-
-  if ( theElemType == SMESH::NODE )
-    aResult->length( nodeIds.size() );
-  else
-    aResult->length( nbElems );
-
-  int i = 0, n = aResult->length();
-
-  if ( theElemType == SMESH::NODE && !nodeIds.empty() ) {
-    set<int>::iterator idIt = nodeIds.begin();
-    for ( ; i < n && idIt != nodeIds.end() ; i++, idIt++ )
-      aResult[i] = *idIt;
-  }
-
-  if ( theElemType != SMESH::NODE ) {
-    TListOfSubMeshes::iterator sm = smList.begin();
-    for ( i = 0; sm != smList.end(); sm++ )
-    {
-      aSubMeshDS = *sm;
-      SMDS_ElemIteratorPtr anIt = aSubMeshDS->GetElements();
-      while ( i < n && anIt->more() ) {
-        const SMDS_MeshElement* anElem = anIt->next();
-        if ( theElemType == SMESH::ALL || anElem->GetType() == (SMDSAbs_ElementType)theElemType )
-          aResult[i++] = anElem->GetID();
-      }
-    }
-  }
-
-  aResult->length( i );
-
-  return aResult._retn();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-  
-SMESH::long_array* SMESH_subMesh_i::GetNodesId()
-  throw (SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  MESSAGE("SMESH_subMesh_i::GetNodesId");
-  SMESH::long_array_var aResult = GetElementsByType( SMESH::NODE );
-  return aResult._retn();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-  
-SMESH::SMESH_Mesh_ptr SMESH_subMesh_i::GetFather()
-  throw (SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  MESSAGE("SMESH_subMesh_i::GetFather");
-  return _mesh_i->_this();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-  
-CORBA::Long SMESH_subMesh_i::GetId()
-{
-  MESSAGE("SMESH_subMesh_i::GetId");
-  return _localId;
-}
-
-//=======================================================================
-//function : GetSubShape
-//purpose  : 
-//=======================================================================
-
-GEOM::GEOM_Object_ptr SMESH_subMesh_i::GetSubShape()
-     throw (SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  GEOM::GEOM_Object_var aShapeObj;
-  try {
-    if ( _mesh_i->_mapSubMesh.find( _localId ) != _mesh_i->_mapSubMesh.end()) {
-      TopoDS_Shape S = _mesh_i->_mapSubMesh[ _localId ]->GetSubShape();
-      if ( !S.IsNull() )
-        aShapeObj = _gen_i->ShapeToGeomObject( S );
-    }
-  }
-  catch(SALOME_Exception & S_ex) {
-    THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
-  }
-  return aShapeObj._retn();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-SALOME_MED::FAMILY_ptr SMESH_subMesh_i::GetFamily()
-  throw (SALOME::SALOME_Exception)
-{
-  Unexpect aCatch(SALOME_SalomeException);
-  SALOME_MED::MESH_var MEDMesh = GetFather()->GetMEDMesh();
-
-  SALOME_MED::Family_array_var families = 
-    MEDMesh->getFamilies(SALOME_MED::MED_NODE);
-    
-  for ( int i = 0; i < families->length(); i++ ) {
-    if ( families[i]->getIdentifier() == ( _localId ) )
-      return families[i];
-  }
-  
-  return SALOME_MED::FAMILY::_nil();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-SMESH::long_array* SMESH_subMesh_i::GetIDs()
-{
-  SMESH::long_array_var aResult = GetElementsId();
-  return aResult._retn();
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-SMESH::ElementType SMESH_subMesh_i::GetElementType( const CORBA::Long id, const bool iselem )
-  throw (SALOME::SALOME_Exception)
-{
-  return GetFather()->GetElementType( id, iselem );
-}
diff --git a/src/SMESH_I/SMESH_subMesh_i.hxx b/src/SMESH_I/SMESH_subMesh_i.hxx
deleted file mode 100644 (file)
index e8d84b3..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_subMesh_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_SUBMESH_I_HXX_
-#define _SMESH_SUBMESH_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-#include CORBA_SERVER_HEADER(SMESH_Hypothesis)
-#include CORBA_CLIENT_HEADER(GEOM_Gen)
-#include CORBA_CLIENT_HEADER(MED)
-
-#include "SALOME_GenericObj_i.hh"
-
-class SMESH_Gen_i;
-class SMESH_Mesh_i;
-
-class SMESH_subMesh_i:
-  public virtual POA_SMESH::SMESH_subMesh,
-  public virtual SALOME::GenericObj_i
-{
-public:
-  SMESH_subMesh_i();
-  SMESH_subMesh_i( PortableServer::POA_ptr thePOA,
-                   SMESH_Gen_i*            gen_i,
-                  SMESH_Mesh_i*           mesh_i,
-                  int                     localId );
-  ~SMESH_subMesh_i();
-
-  CORBA::Long GetNumberOfElements()
-    throw (SALOME::SALOME_Exception);
-  
-  CORBA::Long  GetNumberOfNodes( CORBA::Boolean all )
-    throw (SALOME::SALOME_Exception);
-  
-  SMESH::long_array* GetElementsId()
-    throw (SALOME::SALOME_Exception);
-
-  SMESH::long_array* GetElementsByType( SMESH::ElementType theElemType )
-    throw (SALOME::SALOME_Exception);
-  
-  SMESH::ElementType GetElementType( const CORBA::Long id, const bool iselem )
-    throw (SALOME::SALOME_Exception);
-  
-  SMESH::long_array* GetNodesId()
-    throw (SALOME::SALOME_Exception);
-  
-  SMESH::SMESH_Mesh_ptr GetFather()
-    throw (SALOME::SALOME_Exception);
-  
-  GEOM::GEOM_Object_ptr GetSubShape()
-    throw (SALOME::SALOME_Exception);
-
-  CORBA::Long GetId();   
-
-  SALOME_MED::FAMILY_ptr GetFamily()
-    throw (SALOME::SALOME_Exception);
-
-  virtual SMESH::long_array* GetIDs();
-
-  SMESH_Mesh_i* _mesh_i; //NRI
-
-protected:
-  SMESH_Gen_i* _gen_i;
-  int _localId;
-};
-
-#endif
diff --git a/src/SMESH_I/smeshpy.py b/src/SMESH_I/smeshpy.py
deleted file mode 100644 (file)
index 9fb4709..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-#  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-#
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : smeshpy.py
-#  Module : SMESH
-
-import salome
-import SMESH
-
-from SALOME_utilities import *
-
-#=============================================================================
-
-class smeshpy:
-    _geom = None
-    _smesh = None
-    _studyId = None
-
-    #--------------------------------------------------------------------------
-
-    def __init__(self):
-        try:
-            self._geom = salome.lcc.FindOrLoadComponent("FactoryServer","GEOM")
-            self._smesh = salome.lcc.FindOrLoadComponent("FactoryServer","SMESH")
-        except:
-            MESSAGE( "exception in smeshpy:__init__" )
-        self._study = salome.myStudy
-        self._smesh.SetCurrentStudy(self._study)
-
-    #--------------------------------------------------------------------------
-
-    def CreateMesh(self, shapeId):
-        try:
-            shape = salome.IDToObject(shapeId)
-            aMesh = self._smesh.CreateMesh(shape)
-            return aMesh
-        except:
-            MESSAGE( "exception in smeshpy:Init" )
-            return None
-
-    #--------------------------------------------------------------------------
-
-    def CreateHypothesis(self, name, libname):
-        try:
-            hyp = self._smesh.CreateHypothesis(name, libname)
-            return hyp
-        except:
-            MESSAGE( "exception in smeshpy:CreateHypothesis" )
-            return None    
-
-    #--------------------------------------------------------------------------
-
-    def Compute(self, mesh, shapeId):
-        try:
-            shape = salome.IDToObject(shapeId)
-            ret=self._smesh.Compute(mesh, shape)
-            return ret
-        except:
-            MESSAGE( "exception in smeshpy:Compute" )
-            return 0    
-
-#=============================================================================
-##    #--------------------------------------------------------------------------
-
-##def SmeshInit(shapeId):
-##    import salome
-##    import SMESH
-##    geom = salome.lcc.FindOrLoadComponent("FactoryServer", "GEOM")
-##    smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-##    shape = salome.IDToObject(shapeId)
-##    studyId = salome.myStudyId
-##    MESSAGE( str(studyId) )
-##    aMesh = smesh.Init(geom, studyId, shape)
-##    return aMesh
-
-##    #--------------------------------------------------------------------------
diff --git a/src/SMESH_SWIG/Makefile.in b/src/SMESH_SWIG/Makefile.in
deleted file mode 100644 (file)
index df7e19a..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : Makefile.in
-#  Author : Nicolas REJNERI, Paul RASCLE
-#  Module : SMESH
-#  $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@top_srcdir@/idl
-
-
-@COMMENCE@
-
-# Libraries targets
-
-LIB = libSMESH_Swigcmodule.la
-LIB_SRC = 
-
-SWIG_DEF = libSMESH_Swig.i
-EXPORT_PYSCRIPTS = libSMESH_Swig.py \
-                  smesh.py \
-                  batchmode_smesh.py \
-                  batchmode_mefisto.py \
-                  ex00_all.py \
-                  ex01_cube2build.py \
-                  ex02_cube2primitive.py \
-                  ex03_cube2partition.py \
-                  ex04_cube5tetraHexa.py \
-                  ex05_hole1build.py \
-                  ex06_hole1boolean.py \
-                  ex07_hole1partition.py \
-                  ex08_hole2build.py \
-                  ex09_grid4build.py \
-                  ex10_grid4geometry.py \
-                  ex11_grid3partition.py \
-                  ex12_grid17partition.py \
-                  ex13_hole1partial.py \
-                  ex14_cyl1holed.py \
-                  ex15_cyl2geometry.py \
-                  ex16_cyl2complementary.py \
-                  ex17_dome1.py \
-                  ex18_dome2.py \
-                  ex19_sphereINcube.py \
-                   SMESH_test.py\
-                   SMESH_test0.py\
-                  SMESH_test1.py \
-                  SMESH_test2.py \
-                  SMESH_test3.py \
-                  SMESH_test4.py \
-                  SMESH_test5.py \
-                  SMESH_mechanic.py \
-                  SMESH_mechanic_tetra.py \
-                  SMESH_mechanic_editor.py \
-                  SMESH_fixation.py \
-                  SMESH_fixation_hexa.py \
-                  SMESH_fixation_tetra.py \
-                  SMESH_box_tetra.py \
-                  SMESH_box2_tetra.py \
-                  SMESH_box3_tetra.py \
-                  SMESH_flight_skin.py \
-                  SMESH_Partition1_tetra.py\
-                  SMESH_controls.py \
-                  SMESH_freebord.py \
-                  SMESH_blocks.py \
-                  SMESH_BelongToGeom.py \
-                  SMESH_GroupFromGeom2.py \
-                  SMESH_box.py \
-                  SMESH_demo_hexa2_upd.py \
-                  SMESH_hexaedre.py \
-                  SMESH_Sphere.py \
-                  SMESH_GroupFromGeom.py \
-                  SMESH_Nut.py \
-                  SMESH_GroupLyingOnGeom.py \
-                  PAL_MESH_041_mesh.py \
-                  PAL_MESH_043_2D.py \
-                  PAL_MESH_043_3D.py \
-                  SMESH_reg.py
-
-LIB_CLIENT_IDL = SALOMEDS.idl \
-                SALOME_Exception.idl \
-                GEOM_Gen.idl \
-                SMESH_Gen.idl \
-                SMESH_Mesh.idl \
-                SMESH_Hypothesis.idl \
-                SMESH_BasicHypothesis.idl \
-                SMESH_Group.idl \
-                SALOME_ModuleCatalog.idl \
-                SALOME_Component.idl \
-                SALOME_GenericObj.idl \
-                MED.idl \
-                SALOME_Comm.idl
-
-EXPORT_SHAREDPYSCRIPTS=SMESH_shared_modules.py
-
-CPPFLAGS+=$(QT_INCLUDES) $(PYTHON_INCLUDES) $(OCC_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome -DHAVE_CONFIG_H
-LIBS+= $(PYTHON_LIBS)
-LDFLAGS+= -lSMESH -L${KERNEL_ROOT_DIR}/lib/salome -lSalomeGenericObj
-
-@CONCLUDE@
diff --git a/src/SMESH_SWIG/PAL_MESH_041_mesh.py b/src/SMESH_SWIG/PAL_MESH_041_mesh.py
deleted file mode 100755 (executable)
index 8585c9f..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-import geompy
-import salome
-
-import StdMeshers
-
-#-----------------------------GEOM----------------------------------------
-
-#----------Vertexes------------
-p1 = geompy.MakeVertex(20.0,30.0,40.0)
-p2 = geompy.MakeVertex(90.0,80.0,0.0)
-p3 = geompy.MakeVertex(30.0,80.0,200.0)
-
-#----------Edges---------------
-e1 = geompy.MakeEdge(p1,p2)
-e2 = geompy.MakeEdge(p2,p3)
-e3 = geompy.MakeEdge(p3,p1)
-
-#----------Wire----------------
-ListOfEdges = []
-ListOfEdges.append(e3)
-ListOfEdges.append(e2)
-ListOfEdges.append(e1)
-wire1 = geompy.MakeWire(ListOfEdges)
-
-
-#----------Face----------------
-WantPlanarFace = 1
-face1 = geompy.MakeFace(wire1,WantPlanarFace)
-
-Id_face1 = geompy.addToStudy(face1,"Face1")
-
-
-
-#-----------------------------SMESH-------------------------------------------
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-
-# -- Init --
-plane_mesh = salome.IDToObject( Id_face1)
-smesh.SetCurrentStudy(salome.myStudy)
-
-mesh = smesh.CreateMesh(plane_mesh)
-
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId)
-
-id_mesh = salome.ObjectToID(mesh)
-smeshgui.SetName( id_mesh, "Mesh_1")
-
-
-print"---------------------Hypothesis"
-
-
-#---------------- NumberOfSegments
-numberOfSegment = 9
-
-hypNbSeg = smesh.CreateHypothesis( "NumberOfSegments", "libStdMeshersEngine.so" )
-hypNbSeg.SetNumberOfSegments( numberOfSegment )
-
-print hypNbSeg.GetName()
-print hypNbSeg.GetNumberOfSegments()
-smeshgui.SetName(salome.ObjectToID(hypNbSeg), "Nb. Segments")
-
-
-#--------------------------Max. Element Area
-maxElementArea = 200
-
-hypArea200 = smesh.CreateHypothesis("MaxElementArea","libStdMeshersEngine.so")
-hypArea200.SetMaxElementArea( maxElementArea )
-print hypArea200.GetName()
-print hypArea200.GetMaxElementArea()
-
-smeshgui.SetName(salome.ObjectToID(hypArea200), "Max. Element Area")
-
-print"---------------------Algorithms"
-
-#----------------------------Wire discretisation
-algoWireDes = smesh.CreateHypothesis( "Regular_1D", "libStdMeshersEngine.so" )
-listHyp = algoWireDes.GetCompatibleHypothesis()
-
-print algoWireDes.GetName()
-smeshgui.SetName(salome.ObjectToID(algoWireDes), "Ware descritisation")
-
-#----------------------------Triangle (Mefisto)
-algoMef = smesh.CreateHypothesis( "MEFISTO_2D", "libStdMeshersEngine.so" )
-listHyp = algoMef.GetCompatibleHypothesis()
-
-print algoMef.GetName()
-
-#----------------------------Add hipothesis to the plane
-mesh.AddHypothesis( plane_mesh, hypNbSeg )     # nb segments
-mesh.AddHypothesis( plane_mesh, hypArea200 )   # max area
-
-mesh.AddHypothesis( plane_mesh, algoWireDes )  # Regular 1D/wire discretisation
-mesh.AddHypothesis( plane_mesh, algoMef )      # MEFISTO 2D
-
-smeshgui.SetName(salome.ObjectToID(algoMef), "Triangle (Mefisto)")
-
-print "---------------------Compute the mesh"
-
-smesh.Compute(mesh, plane_mesh)
-
-salome.sg.updateObjBrowser(1)
-
diff --git a/src/SMESH_SWIG/PAL_MESH_043_2D.py b/src/SMESH_SWIG/PAL_MESH_043_2D.py
deleted file mode 100755 (executable)
index 76ab259..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File        : SMESH_testExtrusion2D.py
-#  Module      : SMESH
-#  Description : Create meshes to test extrusion of mesh elements along path
-
-import salome
-import geompy
-import SMESH
-import StdMeshers
-
-#----------------------------------GEOM
-
-# create points
-p1 = geompy.MakeVertex(100, 0, 0)
-p2 = geompy.MakeVertex(100, 0, 100)
-p3 = geompy.MakeVertex(0, 0, 0)
-p4 = geompy.MakeVertex(0, 100, 0)
-
-
-# create two vectors
-vector1 = geompy.MakeVector(p1,p2)
-vector2 = geompy.MakeVector(p3,p4)
-
-# make two ellipses
-ellipse1 = geompy.MakeEllipse(p1,vector1,50,25)
-ellipse2 = geompy.MakeEllipse(p3,vector2,300,50)
-
-# publish circular face and second circle
-id_ellipse1 = geompy.addToStudy(ellipse1, "Ellips 1")
-id_ellipse2 = geompy.addToStudy(ellipse2, "Ellips 2")
-
-
-#---------------------------------SMESH
-# get smesh engine
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-smesh.SetCurrentStudy(salome.myStudy)
-
-# get SMESH GUI
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId)
-
-# create hypoteses
-hypNbSeg1 = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypNbSeg1.SetNumberOfSegments(18)
-id_hypNbSeg1 = salome.ObjectToID(hypNbSeg1) 
-smeshgui.SetName(id_hypNbSeg1, "NumberOfSegments 1");
-
-hypNbSeg2 = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypNbSeg2.SetNumberOfSegments(34)
-id_hypNbSeg2 = salome.ObjectToID(hypNbSeg2) 
-smeshgui.SetName(id_hypNbSeg2, "NumberOfSegments 2");
-
-# create algorithmes
-algoReg = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
-id_algoReg = salome.ObjectToID(algoReg)
-smeshgui.SetName(id_algoReg, "Regular_1D");
-
-# create the path mesh
-mesh1 = smesh.CreateMesh(ellipse1)
-id_mesh1 = salome.ObjectToID(mesh1)
-smeshgui.SetName(id_mesh1, "Path Mesh");
-
-# set hypotheses and algos
-mesh1.AddHypothesis(ellipse1,algoReg)
-mesh1.AddHypothesis(ellipse1,hypNbSeg1)
-
-# create the tool mesh
-mesh2 = smesh.CreateMesh(ellipse2)
-id_mesh2 = salome.ObjectToID(mesh2)
-smeshgui.SetName(id_mesh2, "Tool Mesh");
-
-# set hypotheses and algos
-mesh2.AddHypothesis(ellipse2,algoReg)
-mesh2.AddHypothesis(ellipse2,hypNbSeg2)
-
-# compute meshes
-smesh.Compute(mesh1,ellipse1)
-smesh.Compute(mesh2,ellipse2)
-
-
-# ---- udate object browser
-salome.sg.updateObjBrowser(1);
diff --git a/src/SMESH_SWIG/PAL_MESH_043_3D.py b/src/SMESH_SWIG/PAL_MESH_043_3D.py
deleted file mode 100755 (executable)
index cfd0f45..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File        : SMESH_testExtrusion3D.py
-#  Module      : SMESH
-#  Description : Create meshes to test extrusion of mesh elements along path
-
-import salome
-import geompy
-import SMESH
-import StdMeshers
-
-# get smesh engine
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-smesh.SetCurrentStudy(salome.myStudy)
-
-# create points to build two circles
-p1 = geompy.MakeVertex(0,  100,  0)
-p2 = geompy.MakeVertex(100,  0,  0)
-p3 = geompy.MakeVertex(0, -100,  0)
-p4 = geompy.MakeVertex(0,   70,  0)
-p5 = geompy.MakeVertex(0,  100, 30)
-p6 = geompy.MakeVertex(0,  130,  0)
-
-# create two circles
-circle = geompy.MakeCircleThreePnt(p1, p2, p3)
-cf     = geompy.MakeCircleThreePnt(p4, p5, p6)
-
-# make circular face
-wire = geompy.MakeWire([cf])
-face = geompy.MakeFace(wire, 1)
-
-# publish circular face and second circle
-idcircle = geompy.addToStudy(circle, "Circle")
-idface   = geompy.addToStudy(face,   "Circular face")
-
-# get SMESH GUI
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId)
-
-# create hypoteses
-hypNbSeg = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypNbSeg.SetNumberOfSegments(12)
-idseg = salome.ObjectToID(hypNbSeg) 
-smeshgui.SetName(idseg, "NumberOfSegments_10");
-
-hypArea = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")
-hypArea.SetMaxElementArea(30)
-idarea = salome.ObjectToID(hypArea)
-smeshgui.SetName(idarea, "MaxElementArea_20");
-
-# create algorithmes
-algoReg = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
-idreg = salome.ObjectToID(algoReg)
-smeshgui.SetName(idreg, "Regular_1D");
-
-algoMef = smesh.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so")
-idmef = salome.ObjectToID(algoMef)
-smeshgui.SetName(idmef, "MEFISTO_2D");
-
-# init a Mesh with the circular face
-mesh1 = smesh.CreateMesh(face)
-idmesh1 = salome.ObjectToID(mesh1)
-smeshgui.SetName(idmesh1, "Mesh on circular face");
-
-# set hypotheses and algos
-mesh1.AddHypothesis(face,algoReg)
-mesh1.AddHypothesis(face,hypNbSeg)
-mesh1.AddHypothesis(face,algoMef)
-mesh1.AddHypothesis(face,hypArea)
-
-# init a Mesh with the second circle
-mesh2 = smesh.CreateMesh(circle)
-idmesh2 = salome.ObjectToID(mesh2)
-smeshgui.SetName(idmesh2, "Mesh on circular edge");
-
-# set hypotheses and algos
-mesh2.AddHypothesis(circle,algoReg)
-mesh2.AddHypothesis(circle,hypNbSeg)
-
-# compute meshes
-smesh.Compute(mesh1,face)
-smesh.Compute(mesh2,circle)
-
-# ---- udate object browser
-salome.sg.updateObjBrowser(1);
diff --git a/src/SMESH_SWIG/SMESH_BelongToGeom.py b/src/SMESH_SWIG/SMESH_BelongToGeom.py
deleted file mode 100644 (file)
index c4ee39d..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-import SMESH
-from SMESH_test1 import *
-
-def CheckBelongToGeomFilter(theMeshGen, theMesh, theShape, theSubShape, theElemType):
-    import geompy
-    if theShape != theSubShape:
-        aName = str(theSubShape)
-        geompy.addToStudyInFather(theShape,theSubShape,aName)
-
-    theMeshGen.Compute(theMesh,theShape)
-
-    aFilterMgr = theMeshGen.CreateFilterManager()
-    aFilter = aFilterMgr.CreateFilter()
-   
-    aBelongToGeom = aFilterMgr.CreateBelongToGeom()
-    aBelongToGeom.SetGeom(theSubShape)
-    aBelongToGeom.SetElementType(theElemType)
-    
-    aFilter.SetPredicate(aBelongToGeom)
-    return aFilter.GetElementsId(theMesh)
-
-anElemType = SMESH.ALL;
-print "anElemType =", anElemType
-#anIds = CheckBelongToGeomFilter(smesh,mesh,box,subShapeList[1],SMESH.FACE)
-anIds = CheckBelongToGeomFilter(smesh,mesh,box,box,SMESH.FACE)
-print "anIds = ", anIds
-
-salome.sg.updateObjBrowser(1);
diff --git a/src/SMESH_SWIG/SMESH_GroupFromGeom.py b/src/SMESH_SWIG/SMESH_GroupFromGeom.py
deleted file mode 100644 (file)
index 3647c77..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : SMESH_GroupFromGeom.py
-#  Module : SMESH
-
-from SMESH_test1 import *
-import SMESH
-
-# Compute the mesh created in SMESH_test1
-
-smesh.Compute(mesh, box)
-
-# Create geometry groups on plane:
-aGeomGroup1 = geompy.CreateGroup(face , geompy.ShapeType["FACE"])
-geompy.AddObject(aGeomGroup1, 1)
-
-aGeomGroup2 = geompy.CreateGroup(face , geompy.ShapeType["EDGE"])
-
-geompy.AddObject(aGeomGroup2, 3)
-geompy.AddObject(aGeomGroup2, 6)
-geompy.AddObject(aGeomGroup2, 8)
-geompy.AddObject(aGeomGroup2, 10)
-
-geompy.addToStudy(aGeomGroup1, "Group on Faces")
-geompy.addToStudy(aGeomGroup2, "Group on Edges")
-
-aSmeshGroup1 = mesh.CreateGroupFromGEOM(SMESH.FACE, "SMESHGroup1", aGeomGroup1)
-aSmeshGroup2 = mesh.CreateGroupFromGEOM(SMESH.EDGE, "SMESHGroup2", aGeomGroup2)
-
-salome.sg.updateObjBrowser(1);
diff --git a/src/SMESH_SWIG/SMESH_GroupFromGeom2.py b/src/SMESH_SWIG/SMESH_GroupFromGeom2.py
deleted file mode 100755 (executable)
index 37f333d..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#==============================================================================
-#  Info.
-#  Bug (from script, bug)   : SMESH_GroupFromGeom.py, PAL6945
-#  Modified                 : 25/11/2004
-#  Author                   : Kovaltchuk Alexey
-#  Project                  : PAL/SALOME
-#============================================================================== 
-from SMESH_test1 import *
-import SMESH
-
-# Compute the mesh created in SMESH_test1
-
-smesh.Compute(mesh, box)
-
-# Create geometry groups on plane:
-aGeomGroup1 = geompy.CreateGroup(face , geompy.ShapeType["FACE"])
-geompy.AddObject(aGeomGroup1, 1)
-
-aGeomGroup2 = geompy.CreateGroup(face , geompy.ShapeType["EDGE"])
-
-geompy.AddObject(aGeomGroup2, 3)
-geompy.AddObject(aGeomGroup2, 6)
-geompy.AddObject(aGeomGroup2, 8)
-geompy.AddObject(aGeomGroup2, 10)
-
-geompy.addToStudy(aGeomGroup1, "Group on Faces")
-geompy.addToStudy(aGeomGroup2, "Group on Edges")
-
-aSmeshGroup1 = mesh.CreateGroupFromGEOM(SMESH.FACE, "SMESHGroup1", aGeomGroup1)
-aSmeshGroup2 = mesh.CreateGroupFromGEOM(SMESH.EDGE, "SMESHGroup2", aGeomGroup2)
-
-print "Create aGroupOnShell - a group linked to a shell"
-aGroupOnShell = mesh.CreateGroupFromGEOM(SMESH.EDGE, "GroupOnShell", shell)
-print "aGroupOnShell type =", aGroupOnShell.GetType()
-print "aGroupOnShell size =", aGroupOnShell.Size()
-print "aGroupOnShell ids :", aGroupOnShell.GetListOfID()
-
-print " "
-
-print "Modify <LocalLength> hypothesis: 100 -> 50"
-hypLen1.SetLength(50)
-print "Contents of aGroupOnShell changes:"
-print "aGroupOnShell size =", aGroupOnShell.Size()
-print "aGroupOnShell ids :", aGroupOnShell.GetListOfID()
-
-print " "
-
-print "Re-compute mesh, contents of aGroupOnShell changes again:"
-smesh.Compute(mesh, box)
-print "aGroupOnShell size =", aGroupOnShell.Size()
-print "aGroupOnShell ids :", aGroupOnShell.GetListOfID()
-
-salome.sg.updateObjBrowser(1);
diff --git a/src/SMESH_SWIG/SMESH_GroupLyingOnGeom.py b/src/SMESH_SWIG/SMESH_GroupLyingOnGeom.py
deleted file mode 100644 (file)
index 6a4533e..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-from smesh import *
-
-def BuildGroupLyingOn(theMesh, theElemType, theName, theShape):
-    aFilterMgr = smesh.CreateFilterManager()
-    aFilter = aFilterMgr.CreateFilter()
-   
-    aLyingOnGeom = aFilterMgr.CreateLyingOnGeom()
-    aLyingOnGeom.SetGeom(theShape)
-    aLyingOnGeom.SetElementType(theElemType)
-    
-    aFilter.SetPredicate(aLyingOnGeom)
-    anIds = aFilter.GetElementsId(theMesh)
-
-    aGroup = theMesh.CreateGroup(theElemType, theName)
-    aGroup.Add(anIds)
-
-#Example
-## from SMESH_test1 import *
-
-## smesh.Compute(mesh, box)
-## BuildGroupLyingOn(mesh, SMESH.FACE, "Group of faces lying on edge", edge )
-
-## salome.sg.updateObjBrowser(1);
diff --git a/src/SMESH_SWIG/SMESH_Nut.py b/src/SMESH_SWIG/SMESH_Nut.py
deleted file mode 100755 (executable)
index 2a208b9..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-#####################################################################
-#Created                :17/02/2005
-#Auhtor                 :MASLOV Eugeny, KOVALTCHUK Alexey 
-#####################################################################
-
-import geompy
-import salome
-import os
-import math
-import StdMeshers
-import SMESH
-
-#Sketcher_1 creation
-print "Sketcher creation..."
-Sketcher_1 = geompy.MakeSketcher("Sketcher:F 100 -57.7:TT 100 57.7:TT 0 115.47:TT -100 57.7:TT -100 -57.7:TT 0 -115.47:WW") 
-geompy.addToStudy(Sketcher_1, "Sketcher_1")
-Face_1 = geompy.MakeFace(Sketcher_1, 1)
-geompy.addToStudy(Face_1, "Face_1")
-
-#Line creation
-print "Line  creation..."
-Line_1 = geompy.MakeLineTwoPnt(geompy.MakeVertex(0,0,0), geompy.MakeVertex(0,0,100))
-geompy.addToStudy(Line_1, "Line_1")
-
-#Prism creation
-print "Prism creation..."
-Prism_1 = geompy.MakePrismVecH(Face_1, Line_1, 100)
-geompy.addToStudy(Prism_1, "Prism_1")
-
-#Sketcher_2 creation
-print "Sketcher creation..."
-Sketcher_2 = geompy.MakeSketcher("Sketcher:F 50 0:TT 80 0:TT 112 13:TT 112 48:TT 80 63:TT 80 90:TT 50 90:WW", [0,0,0, 1,0,0, 0,1,0]) 
-geompy.addToStudy(Sketcher_2, "Sketcher_2")
-Face_2 = geompy.MakeFace(Sketcher_2, 1)
-geompy.addToStudy(Face_2, "Face_2")
-
-#Revolution creation
-print "Revolution creation..."
-Revolution_1 = geompy.MakeRevolution(Face_2, Line_1, 2*math.pi)
-geompy.addToStudy(Revolution_1, "Revolution_1")
-
-#Common applying
-print "Common of Revolution and Prism..."
-Common_1 = geompy.MakeBoolean(Revolution_1, Prism_1, 1)
-geompy.addToStudy(Common_1, "Common_1")
-
-#Explode Common_1 on edges
-CommonExplodedListEdges = geompy.SubShapeAll(Common_1, geompy.ShapeType["EDGE"])
-for i in range(0, len(CommonExplodedListEdges)):
-    name = "Edge_"+str(i+1)
-    geompy.addToStudyInFather(Common_1, CommonExplodedListEdges[i], name)
-
-#Fillet applying
-print "Fillet creation..."
-Fillet_1 = geompy.MakeFillet(Common_1, 10, geompy.ShapeType["EDGE"], [6])
-geompy.addToStudy(Fillet_1, "Fillet_1")
-
-#Chamfer applying
-print "Chamfer creation..."
-Chamfer_1 = geompy.MakeChamferEdge(Fillet_1, 10, 10, 16, 50 )
-geompy.addToStudy(Chamfer_1, "Chamfer_1")
-Chamfer_2 = geompy.MakeChamferEdge(Chamfer_1, 10, 10, 21, 31 )
-geompy.addToStudy(Chamfer_2, "Chamfer_2")
-
-#Import of the shape from "slots.brep"
-print "Import multi-rotation from the KERNEL_ROOT_DIR/examples/slots.brep"
-thePath = os.getenv("KERNEL_ROOT_DIR")
-theFileName = thePath + "/examples/slots.brep"
-theShapeForCut = geompy.ImportBREP(theFileName)
-geompy.addToStudy(theShapeForCut, "slot.brep_1")
-
-#Cut applying
-print "Cut..."
-Cut_1 = geompy.MakeBoolean(Chamfer_2, theShapeForCut, 2)
-Cut_1_ID = geompy.addToStudy(Cut_1, "Cut_1")
-
-#Mesh creation
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-
-# -- Init --
-shape_mesh = salome.IDToObject( Cut_1_ID )
-smesh.SetCurrentStudy(salome.myStudy)
-mesh = smesh.CreateMesh(shape_mesh)
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId)
-idmesh = salome.ObjectToID(mesh)
-smeshgui.SetName( idmesh, "Nut" )
-
-#HYPOTHESIS CREATION
-print "-------------------------- Average length"
-theAverageLength = 5
-hAvLength = smesh.CreateHypothesis( "LocalLength", "libStdMeshersEngine.so" )
-hAvLength.SetLength( theAverageLength )
-print hAvLength.GetName()
-print hAvLength.GetId()
-smeshgui.SetName(salome.ObjectToID(hAvLength), "AverageLength_5")
-
-print "-------------------------- MaxElementArea"
-theMaxElementArea = 20
-hArea20 = smesh.CreateHypothesis( "MaxElementArea", "libStdMeshersEngine.so" )
-hArea20.SetMaxElementArea( theMaxElementArea )
-print hArea20.GetName()
-print hArea20.GetId()
-print hArea20.GetMaxElementArea()
-smeshgui.SetName(salome.ObjectToID(hArea20), "MaxElementArea_20")
-
-print "-------------------------- MaxElementVolume"
-theMaxElementVolume = 150
-hVolume150 = smesh.CreateHypothesis( "MaxElementVolume", "libStdMeshersEngine.so" )
-hVolume150.SetMaxElementVolume( theMaxElementVolume )
-print hVolume150.GetName()
-print hVolume150.GetId()
-print hVolume150.GetMaxElementVolume()
-smeshgui.SetName(salome.ObjectToID(hVolume150), "MaxElementVolume_150")
-
-mesh.AddHypothesis(shape_mesh, hAvLength)
-mesh.AddHypothesis(shape_mesh, hArea20)
-mesh.AddHypothesis(shape_mesh, hVolume150)
-
-print "-------------------------- Regular_1D"
-
-algoReg1D = smesh.CreateHypothesis( "Regular_1D", "libStdMeshersEngine.so" )
-listHyp = algoReg1D.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algoReg1D.GetName()
-print algoReg1D.GetId()
-smeshgui.SetName(salome.ObjectToID(algoReg1D), "Wire discretisation")
-
-print "-------------------------- MEFISTO_2D"
-algoMef = smesh.CreateHypothesis( "MEFISTO_2D", "libStdMeshersEngine.so" )
-listHyp = algoMef.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algoMef.GetName()
-print algoMef.GetId()
-smeshgui.SetName(salome.ObjectToID(algoMef), "Triangle (Mefisto)")
-
-print "-------------------------- NETGEN_3D"
-
-algoNg = smesh.CreateHypothesis( "NETGEN_3D", "libNETGENEngine.so" )
-print algoNg.GetName()
-print algoNg.GetId()
-smeshgui.SetName(salome.ObjectToID(algoNg), "Tetrahedron (NETGEN)")
-mesh.AddHypothesis(shape_mesh, algoReg1D)
-mesh.AddHypothesis(shape_mesh, algoMef)
-mesh.AddHypothesis(shape_mesh, algoNg)
-
-print "-------------------------- compute the mesh of the mechanic piece"
-smesh.Compute(mesh,shape_mesh)
-
-print "Information about the Nut:"
-print "Number of nodes       : ", mesh.NbNodes()
-print "Number of edges       : ", mesh.NbEdges()
-print "Number of faces       : ", mesh.NbFaces()
-print "Number of triangles   : ", mesh.NbTriangles()
-print "Number of quadrangles : ", mesh.NbQuadrangles()
-print "Number of volumes     : ", mesh.NbVolumes()
-print "Number of tetrahedrons: ", mesh.NbTetras()
-
-salome.sg.updateObjBrowser(1)
diff --git a/src/SMESH_SWIG/SMESH_Partition1_tetra.py b/src/SMESH_SWIG/SMESH_Partition1_tetra.py
deleted file mode 100644 (file)
index e9bb55f..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-#
-# Tetrahedrization of the geometry generated by the Python script GEOM_Partition1.py
-# Hypothesis and algorithms for the mesh generation are global
-#
-#%Make geometry (like CEA script (A1)) using Partition algorithm% from OCC
-# -- Rayon de la bariere
-
-import salome
-import geompy
-from math import sqrt
-
-import StdMeshers
-import NETGENPlugin
-
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-smesh.SetCurrentStudy(salome.myStudy)
-
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId)
-
-#---------------------------------------------------------------
-
-barier_height = 7.0
-barier_radius = 5.6 / 2 # Rayon de la bariere
-colis_radius = 1.0 / 2  # Rayon du colis
-colis_step = 2.0        # Distance s\89parant deux colis
-cc_width = 0.11         # Epaisseur du complement de colisage
-
-# --
-
-cc_radius = colis_radius + cc_width
-colis_center = sqrt(2.0)*colis_step/2
-
-# --
-
-boolean_common  = 1
-boolean_cut     = 2
-boolean_fuse    = 3
-boolean_section = 4
-
-# --
-
-p0 = geompy.MakeVertex(0.,0.,0.)
-vz = geompy.MakeVectorDXDYDZ(0.,0.,1.)
-
-# --
-
-barier = geompy.MakeCylinder(p0, vz, barier_radius, barier_height)
-
-# --
-
-colis = geompy.MakeCylinder(p0, vz, colis_radius, barier_height)
-cc    = geompy.MakeCylinder(p0, vz,    cc_radius, barier_height)
-
-colis_cc = geompy.MakeCompound([colis, cc])
-colis_cc = geompy.MakeTranslation(colis_cc, colis_center, 0.0, 0.0)
-
-colis_cc_multi = geompy.MultiRotate1D(colis_cc, vz, 4)
-
-# --
-
-alveole = geompy.MakePartition([colis_cc_multi, barier])
-
-print "Analysis of the geometry to mesh (right after the Partition) :"
-
-subShellList = geompy.SubShapeAll(alveole, geompy.ShapeType["SHELL"])
-subFaceList  = geompy.SubShapeAll(alveole, geompy.ShapeType["FACE"])
-subEdgeList  = geompy.SubShapeAll(alveole, geompy.ShapeType["EDGE"])
-
-print "number of Shells in alveole : ", len(subShellList)
-print "number of Faces  in alveole : ", len(subFaceList)
-print "number of Edges  in alveole : ", len(subEdgeList)
-
-subshapes = geompy.SubShapeAll(alveole, geompy.ShapeType["SHAPE"])
-
-## there are 9 subshapes
-
-comp1 = geompy.MakeCompound( [ subshapes[0], subshapes[1] ] )
-comp2 = geompy.MakeCompound( [ subshapes[2], subshapes[3] ] )
-comp3 = geompy.MakeCompound( [ subshapes[4], subshapes[5] ] )
-comp4 = geompy.MakeCompound( [ subshapes[6], subshapes[7] ] )
-
-compGOs = []
-compGOs.append( comp1 )
-compGOs.append( comp2 )
-compGOs.append( comp3 )
-compGOs.append( comp4 )
-comp = geompy.MakeCompound( compGOs )
-
-alveole = geompy.MakeCompound( [ comp, subshapes[8] ])
-
-idalveole = geompy.addToStudy(alveole, "alveole")
-
-print "Analysis of the geometry to mesh (right after the MakeCompound) :"
-
-subShellList = geompy.SubShapeAll(alveole, geompy.ShapeType["SHELL"])
-subFaceList  = geompy.SubShapeAll(alveole, geompy.ShapeType["FACE"])
-subEdgeList  = geompy.SubShapeAll(alveole, geompy.ShapeType["EDGE"])
-
-print "number of Shells in alveole : ", len(subShellList)
-print "number of Faces  in alveole : ", len(subFaceList)
-print "number of Edges  in alveole : ", len(subEdgeList)
-
-status = geompy.CheckShape(alveole)
-print " check status ", status
-
-# ---- launch SMESH
-
-print "-------------------------- create Hypothesis (In this case global hypothesis are used)"
-
-print "-------------------------- NumberOfSegments"
-
-numberOfSegments = 10
-
-hypNbSeg = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypNbSeg.SetNumberOfSegments(numberOfSegments)
-print hypNbSeg.GetName()
-print hypNbSeg.GetId()
-print hypNbSeg.GetNumberOfSegments()
-
-smeshgui.SetName(salome.ObjectToID(hypNbSeg), "NumberOfSegments_10")
-
-print "-------------------------- MaxElementArea"
-
-maxElementArea = 0.1
-
-hypArea = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")
-hypArea.SetMaxElementArea(maxElementArea)
-print hypArea.GetName()
-print hypArea.GetId()
-print hypArea.GetMaxElementArea()
-
-smeshgui.SetName(salome.ObjectToID(hypArea), "MaxElementArea_0.1")
-
-print "-------------------------- MaxElementVolume"
-
-maxElementVolume = 0.5
-
-hypVolume = smesh.CreateHypothesis("MaxElementVolume", "libStdMeshersEngine.so")
-hypVolume.SetMaxElementVolume(maxElementVolume)
-print hypVolume.GetName()
-print hypVolume.GetId()
-print hypVolume.GetMaxElementVolume()
-
-smeshgui.SetName(salome.ObjectToID(hypVolume), "MaxElementVolume_0.5")
-
-print "-------------------------- create Algorithms"
-
-print "-------------------------- Regular_1D"
-
-regular1D = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
-smeshgui.SetName(salome.ObjectToID(regular1D), "Wire Discretisation")
-
-print "-------------------------- MEFISTO_2D"
-
-mefisto2D = smesh.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so")
-smeshgui.SetName(salome.ObjectToID(mefisto2D), "MEFISTO_2D")
-
-print "-------------------------- NETGEN_3D"
-
-netgen3D = smesh.CreateHypothesis("NETGEN_3D", "libNETGENEngine.so")
-smeshgui.SetName(salome.ObjectToID(netgen3D), "NETGEN_3D")
-
-# ---- init a Mesh with the alveole
-shape_mesh = salome.IDToObject( idalveole )
-
-mesh = smesh.CreateMesh(shape_mesh)
-smeshgui.SetName(salome.ObjectToID(mesh), "MeshAlveole")
-
-# ---- add hypothesis to alveole
-
-print "-------------------------- add hypothesis to alveole"
-
-mesh.AddHypothesis(shape_mesh,regular1D)
-mesh.AddHypothesis(shape_mesh,hypNbSeg)
-
-mesh.AddHypothesis(shape_mesh,mefisto2D)
-mesh.AddHypothesis(shape_mesh,hypArea)
-
-mesh.AddHypothesis(shape_mesh,netgen3D)
-mesh.AddHypothesis(shape_mesh,hypVolume)
-
-print "-------------------------- compute the mesh of alveole "
-ret = smesh.Compute(mesh,shape_mesh)
-
-if ret != 0:
-    log=mesh.GetLog(0) # no erase trace
-    for linelog in log:
-        print linelog
-    print "Information about the Mesh_mechanic:"
-    print "Number of nodes       : ", mesh.NbNodes()
-    print "Number of edges       : ", mesh.NbEdges()
-    print "Number of faces       : ", mesh.NbFaces()
-    print "Number of triangles   : ", mesh.NbTriangles()
-    print "Number of volumes     : ", mesh.NbVolumes()
-    print "Number of tetrahedrons: ", mesh.NbTetras()
-else:
-    print "problem when computing the mesh"
-
-salome.sg.updateObjBrowser(1)
diff --git a/src/SMESH_SWIG/SMESH_Sphere.py b/src/SMESH_SWIG/SMESH_Sphere.py
deleted file mode 100644 (file)
index 893e544..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-#  GEOM GEOM_SWIG : binding of C++ omplementaion with Python
-#
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : GEOM_Sphere.py
-#  Author : Damien COQUERET, Open CASCADE
-#  Module : GEOM
-#  $Header: 
-
-from geompy import *
-from math import *
-
-import smesh
-
-# It is an example of creating a hexahedrical mesh on a sphere.
-#
-# Used approach allows to avoid problems with degenerated and
-# seam edges without special processing of geometrical shapes
-
-#-----------------------------------------------------------------------
-#Variables
-Radius  = 100.
-Dist    = Radius / 2.
-Factor  = 2.5
-Angle90 = pi / 2.
-NbSeg   = 10
-
-PointsList = []
-ShapesList = []
-
-#Basic Elements
-P0 = MakeVertex(0., 0., 0.)
-P1 = MakeVertex(-Dist, -Dist, -Dist)
-P2 = MakeVertex(-Dist, -Dist, Dist)
-P3 = MakeVertex(-Dist, Dist, Dist)
-P4 = MakeVertex(-Dist, Dist, -Dist)
-
-VZ = MakeVectorDXDYDZ(0., 0., 1.)
-
-#Construction Elements
-PointsList.append(P1)
-PointsList.append(P2)
-PointsList.append(P3)
-PointsList.append(P4)
-PointsList.append(P1)
-
-PolyLine = MakePolyline(PointsList)
-
-Face1 = MakeFace(PolyLine, 1)
-Face2 = MakeScaleTransform(Face1, P0, Factor)
-Face3 = MakeScaleTransform(Face1, P0, -1.)
-
-#Models
-Sphere = MakeSphereR(Radius)
-
-Block = MakeHexa2Faces(Face1, Face2)
-Cube  = MakeHexa2Faces(Face1, Face3)
-
-Common1 = MakeBoolean(Sphere, Block, 1)
-Common2 = MakeRotation(Common1, VZ, Angle90)
-
-MultiBlock1 = MakeMultiTransformation1D(Common1, 21, -1, 3)
-MultiBlock2 = MakeMultiTransformation1D(Common2, 31, -1, 3)
-
-#Reconstruct sphere from several blocks
-ShapesList.append(Cube)
-ShapesList.append(MultiBlock1)
-ShapesList.append(MultiBlock2)
-Compound = MakeCompound(ShapesList)
-
-Result = MakeGlueFaces(Compound, 0.1)
-
-#addToStudy
-Id_Sphere      = addToStudy(Sphere, "Sphere")
-Id_Cube        = addToStudy(Cube, "Cube")
-
-Id_Common1     = addToStudy(Common1, "Common1")
-Id_Common2     = addToStudy(Common2, "Common2")
-
-Id_MultiBlock1 = addToStudy(MultiBlock1, "MultiBlock1")
-Id_MultiBlock2 = addToStudy(MultiBlock2, "MultiBlock2")
-
-Id_Result      = addToStudy(Result, "Result")
-
-#-----------------------------------------------------------------------
-#Meshing
-my_hexa = smesh.Mesh(Result, "Sphere_Mesh")
-algo = my_hexa.Segment()
-algo.NumberOfSegments(NbSeg)
-my_hexa.Quadrangle()
-my_hexa.Hexahedron()
-my_hexa.Compute()
diff --git a/src/SMESH_SWIG/SMESH_blocks.py b/src/SMESH_SWIG/SMESH_blocks.py
deleted file mode 100644 (file)
index 0430867..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#  SMESH SMESH_SWIG : binding of C++ implementaion with Python
-#
-#  Copyright (C) 2003  CEA
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-#
-#
-#
-#  File   : SMESH_blocks.py
-#  Author : Julia DOROVSKIKH
-#  Module : SMESH
-#  $Header$
-
-import salome
-import geompy
-import math
-
-import GEOM_Spanner
-
-isBlocksTest = 0 # False
-isMeshTest   = 1 # True
-hasGUI       = 1 # True
-
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-smesh.SetCurrentStudy(salome.myStudy)
-
-GEOM_Spanner.MakeSpanner(salome, geompy, math, isBlocksTest, isMeshTest, smesh, hasGUI)
-
-salome.sg.updateObjBrowser(1);
diff --git a/src/SMESH_SWIG/SMESH_box.py b/src/SMESH_SWIG/SMESH_box.py
deleted file mode 100755 (executable)
index 2902c73..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-#==============================================================================
-#  Info.
-#  Bug (from script, bug)   : box.py, PAL5223
-#  Modified                 : 25/11/2004
-#  Author                   : Kovaltchuk Alexey
-#  Project                  : PAL/SALOME
-#==============================================================================
-#
-# Salome geometry and meshing for a box
-#
-import salome
-from salome import sg
-import geompy
-
-import StdMeshers
-
-# ---- launch GEOM
-
-geom          = salome.lcc.FindOrLoadComponent("FactoryServer", "GEOM")
-meshgenerator = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-
-###geom.GetCurrentStudy(salome.myStudy._get_StudyId())
-meshgenerator.SetCurrentStudy(salome.myStudy)
-
-# Plate
-
-box    = geompy.MakeBox(0.,0.,0.,1.,1.,1.)
-boxId  = geompy.addToStudy(box,"box")
-
-# ---- launch SMESH
-
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId)
-# meshgenerator=smeshpy.smeshpy()
-
-
-# Hypothesis
-
-hypL1=meshgenerator.CreateHypothesis("LocalLength","libStdMeshersEngine.so")
-hypL1.SetLength(0.25)
-hypL1Id = salome.ObjectToID(hypL1) 
-smeshgui.SetName(hypL1Id, "LocalLength")
-
-# Algorithm
-
-alg1D=meshgenerator.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
-alg1DId = salome.ObjectToID(alg1D) 
-smeshgui.SetName(alg1DId, "algo1D")
-
-alg2D=meshgenerator.CreateHypothesis("Quadrangle_2D", "libStdMeshersEngine.so")
-alg2DId = salome.ObjectToID(alg2D) 
-smeshgui.SetName(alg2DId, "algo2D")
-
-alg3D=meshgenerator.CreateHypothesis("Hexa_3D", "libStdMeshersEngine.so")
-alg3DId = salome.ObjectToID(alg3D) 
-smeshgui.SetName(alg3DId, "algo3D")
-# ---- init a Mesh
-
-box_mesh=meshgenerator.CreateMesh(box)
-box_meshId = salome.ObjectToID(box_mesh)
-smeshgui.SetName(box_meshId, "box_mesh")
-
-# ---- set Hypothesis & Algorithm
-
-box_mesh.AddHypothesis(box,alg1D)
-box_mesh.AddHypothesis(box,alg2D)
-box_mesh.AddHypothesis(box,alg3D)
-box_mesh.AddHypothesis(box,hypL1)
-
-meshgenerator.Compute(box_mesh,box)
-
-sg.updateObjBrowser(1)
diff --git a/src/SMESH_SWIG/SMESH_box2_tetra.py b/src/SMESH_SWIG/SMESH_box2_tetra.py
deleted file mode 100644 (file)
index e8a4afd..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-#
-# Tetrahedrization of the geometry union of 2 boxes having a face in common
-# Hypothesis and algorithms for the mesh generation are global
-#
-
-import salome
-import geompy
-
-import StdMeshers
-import NETGENPlugin
-
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId);
-
-# ---- define 2 boxes box1 and box2
-
-box1 = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
-
-idbox1 = geompy.addToStudy(box1, "box1")
-
-print "Analysis of the geometry box1 :"
-subShellList = geompy.SubShapeAll(box1, geompy.ShapeType["SHELL"])
-subFaceList  = geompy.SubShapeAll(box1, geompy.ShapeType["FACE"])
-subEdgeList  = geompy.SubShapeAll(box1, geompy.ShapeType["EDGE"])
-
-print "number of Shells in box1 : ", len(subShellList)
-print "number of Faces  in box1 : ", len(subFaceList)
-print "number of Edges  in box1 : ", len(subEdgeList)
-
-box2 = geompy.MakeBox(100., 0., 0., 200., 200., 300.)
-
-idbox2 = geompy.addToStudy(box2, "box2")
-
-print "Analysis of the geometry box2 :"
-subShellList = geompy.SubShapeAll(box2, geompy.ShapeType["SHELL"])
-subFaceList  = geompy.SubShapeAll(box2, geompy.ShapeType["FACE"])
-subEdgeList  = geompy.SubShapeAll(box2, geompy.ShapeType["EDGE"])
-
-print "number of Shells in box2 : ", len(subShellList)
-print "number of Faces  in box2 : ", len(subFaceList)
-print "number of Edges  in box2 : ", len(subEdgeList)
-
-# append the tow boxes to make ine shel, referrencing only once
-# the internal interface
-
-shell = geompy.MakePartition([box1, box2])
-idshell = geompy.addToStudy(shell, "shell")
-
-print "Analysis of the geometry shell (union of box1 and box2) :"
-subShellList = geompy.SubShapeAll(shell, geompy.ShapeType["SHELL"])
-subFaceList  = geompy.SubShapeAll(shell, geompy.ShapeType["FACE"])
-subEdgeList  = geompy.SubShapeAll(shell, geompy.ShapeType["EDGE"])
-
-print "number of Shells in shell : ", len(subShellList)
-print "number of Faces  in shell : ", len(subFaceList)
-print "number of Edges  in shell : ", len(subEdgeList)
-
-
-### ---------------------------- SMESH --------------------------------------
-
-# ---- create Hypothesis
-
-print "-------------------------- create Hypothesis"
-
-print "-------------------------- NumberOfSegments"
-
-numberOfSegments = 10
-
-hypNbSeg = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypNbSeg.SetNumberOfSegments(numberOfSegments)
-
-print hypNbSeg.GetName()
-print hypNbSeg.GetId()
-print hypNbSeg.GetNumberOfSegments()
-
-smeshgui.SetName(salome.ObjectToID(hypNbSeg), "NumberOfSegments_10")
-
-print "-------------------------- MaxElementArea"
-
-maxElementArea = 500
-
-hypArea = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")
-hypArea.SetMaxElementArea(maxElementArea)
-
-print hypArea.GetName()
-print hypArea.GetId()
-print hypArea.GetMaxElementArea()
-
-smeshgui.SetName(salome.ObjectToID(hypArea), "MaxElementArea_500")
-
-print "-------------------------- MaxElementVolume"
-
-maxElementVolume = 500
-
-hypVolume = smesh.CreateHypothesis("MaxElementVolume", "libStdMeshersEngine.so")
-hypVolume.SetMaxElementVolume(maxElementVolume)
-
-print hypVolume.GetName()
-print hypVolume.GetId()
-print hypVolume.GetMaxElementVolume()
-
-smeshgui.SetName(salome.ObjectToID(hypVolume), "MaxElementVolume_500")
-
-# ---- create Algorithms
-
-print "-------------------------- create Algorithms"
-
-print "-------------------------- Regular_1D"
-
-regular1D = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
-smeshgui.SetName(salome.ObjectToID(regular1D), "Wire Discretisation")
-
-print "-------------------------- MEFISTO_2D"
-
-mefisto2D = smesh.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so")
-smeshgui.SetName(salome.ObjectToID(mefisto2D), "MEFISTO_2D")
-
-print "-------------------------- NETGEN_3D"
-
-netgen3D = smesh.CreateHypothesis("NETGEN_3D", "libNETGENEngine.so")
-smeshgui.SetName(salome.ObjectToID(netgen3D), "NETGEN_3D")
-
-# ---- init a Mesh with the shell
-
-mesh = smesh.CreateMesh(shell)
-smeshgui.SetName(salome.ObjectToID(mesh), "MeshBox2")
-
-# ---- add hypothesis to shell
-
-print "-------------------------- add hypothesis to shell"
-
-mesh.AddHypothesis(shell,regular1D)
-mesh.AddHypothesis(shell,hypNbSeg)
-
-mesh.AddHypothesis(shell,mefisto2D)
-mesh.AddHypothesis(shell,hypArea)
-
-mesh.AddHypothesis(shell,netgen3D)
-mesh.AddHypothesis(shell,hypVolume)
-
-salome.sg.updateObjBrowser(1)
-
-print "-------------------------- compute shell"
-ret = smesh.Compute(mesh,shell)
-print ret
-if ret != 0:
-    log = mesh.GetLog(0) # no erase trace
-    for linelog in log:
-        print linelog
-    print "Information about the MeshBox2:"
-    print "Number of nodes       : ", mesh.NbNodes()
-    print "Number of edges       : ", mesh.NbEdges()
-    print "Number of faces       : ", mesh.NbFaces()
-    print "Number of triangles   : ", mesh.NbTriangles()
-    print "Number of volumes     : ", mesh.NbVolumes()
-    print "Number of tetrahedrons: ", mesh.NbTetras()
-else:
-    print "probleme when computing the mesh"
diff --git a/src/SMESH_SWIG/SMESH_box3_tetra.py b/src/SMESH_SWIG/SMESH_box3_tetra.py
deleted file mode 100644 (file)
index af40827..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-#
-# Tetrahedrization of the geometry union of 3 boxes aligned where the middle
-# one has a race in common with the two others.
-# Hypothesis and algorithms for the mesh generation are global
-#
-
-import salome
-import geompy
-
-import StdMeshers
-import NETGENPlugin
-
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId);
-
-# ---- define 3 boxes box1, box2 and box3
-
-box1 = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
-
-idbox1 = geompy.addToStudy(box1, "box1")
-
-print "Analysis of the geometry box1 :"
-subShellList = geompy.SubShapeAll(box1, geompy.ShapeType["SHELL"])
-subFaceList  = geompy.SubShapeAll(box1, geompy.ShapeType["FACE"])
-subEdgeList  = geompy.SubShapeAll(box1, geompy.ShapeType["EDGE"])
-
-print "number of Shells in box1 : ", len(subShellList)
-print "number of Faces  in box1 : ", len(subFaceList)
-print "number of Edges  in box1 : ", len(subEdgeList)
-
-box2 = geompy.MakeBox(100., 0., 0., 200., 200., 300.)
-
-idbox2 = geompy.addToStudy(box2, "box2")
-
-print "Analysis of the geometry box2 :"
-subShellList = geompy.SubShapeAll(box2, geompy.ShapeType["SHELL"])
-subFaceList  = geompy.SubShapeAll(box2, geompy.ShapeType["FACE"])
-subEdgeList  = geompy.SubShapeAll(box2, geompy.ShapeType["EDGE"])
-
-print "number of Shells in box2 : ", len(subShellList)
-print "number of Faces  in box2 : ", len(subFaceList)
-print "number of Edges  in box2 : ", len(subEdgeList)
-
-box3 = geompy.MakeBox(0., 0., 300., 200., 200., 500.)
-
-idbox3 = geompy.addToStudy(box3, "box3")
-
-print "Analysis of the geometry box3 :"
-subShellList = geompy.SubShapeAll(box3, geompy.ShapeType["SHELL"])
-subFaceList  = geompy.SubShapeAll(box3, geompy.ShapeType["FACE"])
-subEdgeList  = geompy.SubShapeAll(box3, geompy.ShapeType["EDGE"])
-
-print "number of Shells in box3 : ", len(subShellList)
-print "number of Faces  in box3 : ", len(subFaceList)
-print "number of Edges  in box3 : ", len(subEdgeList)
-
-shell = geompy.MakePartition([box1, box2, box3])
-idshell = geompy.addToStudy(shell,"shell")
-
-print "Analysis of the geometry shell (union of box1, box2 and box3) :"
-subShellList = geompy.SubShapeAll(shell, geompy.ShapeType["SHELL"])
-subFaceList  = geompy.SubShapeAll(shell, geompy.ShapeType["FACE"])
-subEdgeList  = geompy.SubShapeAll(shell, geompy.ShapeType["EDGE"])
-
-print "number of Shells in shell : ", len(subShellList)
-print "number of Faces  in shell : ", len(subFaceList)
-print "number of Edges  in shell : ", len(subEdgeList)
-
-
-### ---------------------------- SMESH --------------------------------------
-
-# ---- create Hypothesis
-
-print "-------------------------- create Hypothesis"
-
-print "-------------------------- NumberOfSegments"
-
-numberOfSegments = 10
-
-hypNbSeg = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypNbSeg.SetNumberOfSegments(numberOfSegments)
-
-print hypNbSeg.GetName()
-print hypNbSeg.GetId()
-print hypNbSeg.GetNumberOfSegments()
-
-smeshgui.SetName(salome.ObjectToID(hypNbSeg), "NumberOfSegments_10")
-
-print "-------------------------- MaxElementArea"
-
-maxElementArea = 500
-
-hypArea = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")
-hypArea.SetMaxElementArea(maxElementArea)
-
-print hypArea.GetName()
-print hypArea.GetId()
-print hypArea.GetMaxElementArea()
-
-smeshgui.SetName(salome.ObjectToID(hypArea), "MaxElementArea_500")
-
-print "-------------------------- MaxElementVolume"
-
-maxElementVolume = 500
-
-hypVolume = smesh.CreateHypothesis("MaxElementVolume", "libStdMeshersEngine.so")
-hypVolume.SetMaxElementVolume(maxElementVolume)
-
-print hypVolume.GetName()
-print hypVolume.GetId()
-print hypVolume.GetMaxElementVolume()
-
-smeshgui.SetName(salome.ObjectToID(hypVolume), "MaxElementVolume_500")
-
-# ---- create Algorithms
-
-print "-------------------------- create Algorithms"
-
-print "-------------------------- Regular_1D"
-
-regular1D = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
-smeshgui.SetName(salome.ObjectToID(regular1D), "Wire Discretisation")
-
-print "-------------------------- MEFISTO_2D"
-
-mefisto2D = smesh.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so")
-smeshgui.SetName(salome.ObjectToID(mefisto2D), "MEFISTO_2D")
-
-print "-------------------------- NETGEN_3D"
-
-netgen3D = smesh.CreateHypothesis("NETGEN_3D", "libNETGENEngine.so")
-smeshgui.SetName(salome.ObjectToID(netgen3D), "NETGEN_3D")
-
-# ---- init a Mesh with the shell
-
-mesh = smesh.CreateMesh(shell)
-smeshgui.SetName(salome.ObjectToID(mesh), "MeshBox3")
-
-# ---- add hypothesis to shell
-
-print "-------------------------- add hypothesis to shell"
-
-mesh.AddHypothesis(shell,regular1D)
-mesh.AddHypothesis(shell,hypNbSeg)
-
-mesh.AddHypothesis(shell,mefisto2D)
-mesh.AddHypothesis(shell,hypArea)
-
-mesh.AddHypothesis(shell,netgen3D)
-mesh.AddHypothesis(shell,hypVolume)
-
-salome.sg.updateObjBrowser(1)
-
-print "-------------------------- compute shell"
-ret = smesh.Compute(mesh,shell)
-print ret
-if ret != 0:
-    log = mesh.GetLog(0) # no erase trace
-    for linelog in log:
-        print linelog
-    print "Information about the MeshBox3:"
-    print "Number of nodes       : ", mesh.NbNodes()
-    print "Number of edges       : ", mesh.NbEdges()
-    print "Number of faces       : ", mesh.NbFaces()
-    print "Number of triangles   : ", mesh.NbTriangles()
-    print "Number of volumes     : ", mesh.NbVolumes()
-    print "Number of tetrahedrons: ", mesh.NbTetras()
-else:
-    print "probleme when computing the mesh"
diff --git a/src/SMESH_SWIG/SMESH_box_tetra.py b/src/SMESH_SWIG/SMESH_box_tetra.py
deleted file mode 100644 (file)
index 72b45e1..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-#
-# Tetrahedrization of a simple box. Hypothesis and algorithms for
-# the mesh generation are global
-#
-
-import salome
-import geompy
-
-import StdMeshers
-import NETGENPlugin
-
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId);
-
-# ---- define a boxe
-
-box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
-
-idbox = geompy.addToStudy(box, "box")
-
-print "Analysis of the geometry box :"
-subShellList = geompy.SubShapeAll(box, geompy.ShapeType["SHELL"])
-subFaceList  = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
-subEdgeList  = geompy.SubShapeAll(box, geompy.ShapeType["EDGE"])
-
-print "number of Shells in box : ", len(subShellList)
-print "number of Faces  in box : ", len(subFaceList)
-print "number of Edges  in box : ", len(subEdgeList)
-
-
-### ---------------------------- SMESH --------------------------------------
-
-# ---- create Hypothesis
-
-print "-------------------------- create Hypothesis"
-
-print "-------------------------- NumberOfSegments"
-
-numberOfSegments = 10
-
-hypNbSeg = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypNbSeg.SetNumberOfSegments(numberOfSegments)
-
-print hypNbSeg.GetName()
-print hypNbSeg.GetId()
-print hypNbSeg.GetNumberOfSegments()
-
-smeshgui.SetName(salome.ObjectToID(hypNbSeg), "NumberOfSegments_10")
-
-print "-------------------------- MaxElementArea"
-
-maxElementArea = 500
-
-hypArea = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")
-hypArea.SetMaxElementArea(maxElementArea)
-
-print hypArea.GetName()
-print hypArea.GetId()
-print hypArea.GetMaxElementArea()
-
-smeshgui.SetName(salome.ObjectToID(hypArea), "MaxElementArea_500")
-
-print "-------------------------- MaxElementVolume"
-
-maxElementVolume = 500
-
-hypVolume = smesh.CreateHypothesis("MaxElementVolume", "libStdMeshersEngine.so")
-hypVolume.SetMaxElementVolume(maxElementVolume)
-
-print hypVolume.GetName()
-print hypVolume.GetId()
-print hypVolume.GetMaxElementVolume()
-
-smeshgui.SetName(salome.ObjectToID(hypVolume), "MaxElementVolume_500")
-
-# ---- create Algorithms
-
-print "-------------------------- create Algorithms"
-
-print "-------------------------- Regular_1D"
-
-regular1D = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
-smeshgui.SetName(salome.ObjectToID(regular1D), "Wire Discretisation")
-
-print "-------------------------- MEFISTO_2D"
-
-mefisto2D = smesh.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so")
-smeshgui.SetName(salome.ObjectToID(mefisto2D), "MEFISTO_2D")
-
-print "-------------------------- NETGEN_3D"
-
-netgen3D = smesh.CreateHypothesis("NETGEN_3D", "libNETGENEngine.so")
-smeshgui.SetName(salome.ObjectToID(netgen3D), "NETGEN_3D")
-
-# ---- init a Mesh with the boxe
-
-mesh = smesh.CreateMesh(box)
-smeshgui.SetName(salome.ObjectToID(mesh), "MeshBox")
-
-# ---- add hypothesis to the boxe
-
-print "-------------------------- add hypothesis to the box"
-
-mesh.AddHypothesis(box,regular1D)
-mesh.AddHypothesis(box,hypNbSeg)
-
-mesh.AddHypothesis(box,mefisto2D)
-mesh.AddHypothesis(box,hypArea)
-
-mesh.AddHypothesis(box,netgen3D)
-mesh.AddHypothesis(box,hypVolume)
-
-salome.sg.updateObjBrowser(1)
-
-print "-------------------------- compute the mesh of the boxe"
-ret = smesh.Compute(mesh,box)
-print ret
-if ret != 0:
-    log = mesh.GetLog(0) # no erase trace
-    for linelog in log:
-        print linelog
-    print "Information about the MeshBox:"
-    print "Number of nodes       : ", mesh.NbNodes()
-    print "Number of edges       : ", mesh.NbEdges()
-    print "Number of faces       : ", mesh.NbFaces()
-    print "Number of triangles   : ", mesh.NbTriangles()
-    print "Number of volumes     : ", mesh.NbVolumes()
-    print "Number of tetrahedrons: ", mesh.NbTetras()
-else:
-    print "probleme when computing the mesh"
diff --git a/src/SMESH_SWIG/SMESH_controls.py b/src/SMESH_SWIG/SMESH_controls.py
deleted file mode 100644 (file)
index 1d5080d..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-#  Copyright (C) 2004  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
-#  This library is free software; you can redistribute it and/or
-#  modify it under the terms of the GNU Lesser General Public
-#  License as published by the Free Software Foundation; either
-#  version 2.1 of the License.
-#
-#  This library is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#  Lesser General Public License for more details.
-#
-#  You should have received a copy of the GNU Lesser General Public
-#  License along with this library; if not, write to the Free Software
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-#
-#
-#
-#  File   : SMESH_control.py
-#  Author : Sergey LITONIN
-#  Module : SMESH
-
-
-import SMESH
-import SMESH_mechanic
-
-smesh  = SMESH_mechanic.smesh
-mesh   = SMESH_mechanic.mesh
-salome = SMESH_mechanic.salome
-
-
-aFilterMgr = smesh.CreateFilterManager()
-
-# Criterion : AREA > 100
-
-aFunctor = aFilterMgr.CreateArea()
-aPredicate = aFilterMgr.CreateMoreThan()
-aPredicate.SetNumFunctor( aFunctor )
-aPredicate.SetMargin( 100 )
-
-aFilter = aFilterMgr.CreateFilter()
-aFilter.SetPredicate( aPredicate )
-
-anIds = aFilter.GetElementsId( mesh )
-
-# print result
-print "Criterion: Area > 100 Nb = ", len( anIds )
-#for i in range( len( anIds ) ):
-  #print anIds[ i ]
-
-# create group
-aGroup = mesh.CreateGroup( SMESH.FACE, "Area > 100" )
-aGroup.Add( anIds )
-
-
-# Criterion : Taper > 3e-15
-
-aFunctor = aFilterMgr.CreateTaper()
-aPredicate = aFilterMgr.CreateMoreThan()
-aPredicate.SetNumFunctor( aFunctor )
-aPredicate.SetMargin( 3e-15 )
-
-aFilter = aFilterMgr.CreateFilter()
-aFilter.SetPredicate( aPredicate )
-
-anIds = aFilter.GetElementsId( mesh )
-
-# print result
-print "Criterion: Taper > 3e-15 Nb = ", len( anIds )
-#for i in range( len( anIds ) ):
-  #print anIds[ i ]
-
-# create group
-aGroup = mesh.CreateGroup( SMESH.FACE, "Taper > 3e-15" )
-aGroup.Add( anIds )
-
-
-# Criterion : ASPECT RATIO > 1.3
-
-aFunctor = aFilterMgr.CreateAspectRatio()
-aPredicate = aFilterMgr.CreateMoreThan()
-aPredicate.SetNumFunctor( aFunctor )
-aPredicate.SetMargin( 1.3 )
-
-aFilter = aFilterMgr.CreateFilter()
-aFilter.SetPredicate( aPredicate )
-
-anIds = aFilter.GetElementsId( mesh )
-
-# print result
-print "Criterion: Aspect Ratio > 1.3 Nb = ", len( anIds )
-#for i in range( len( anIds ) ):
-  #print anIds[ i ]
-
-# create group
-aGroup = mesh.CreateGroup( SMESH.FACE, "Aspect Ratio > 1.3" )
-aGroup.Add( anIds )
-
-
-# Criterion : MINIMUM ANGLE < 30
-
-aFunctor = aFilterMgr.CreateMinimumAngle()
-aPredicate = aFilterMgr.CreateLessThan()
-aPredicate.SetNumFunctor( aFunctor )
-aPredicate.SetMargin( 30 )
-
-aFilter = aFilterMgr.CreateFilter()
-aFilter.SetPredicate( aPredicate )
-
-anIds = aFilter.GetElementsId( mesh )
-
-# print result
-print "Criterion: Minimum Angle < 30 Nb = ", len( anIds )
-#for i in range( len( anIds ) ):
-  #print anIds[ i ]
-
-# create group
-aGroup = mesh.CreateGroup( SMESH.FACE, "Minimum Angle < 30" )
-aGroup.Add( anIds )
-
-# Criterion : Warp > 2e-13
-
-aFunctor = aFilterMgr.CreateWarping()
-aPredicate = aFilterMgr.CreateMoreThan()
-aPredicate.SetNumFunctor( aFunctor )
-aPredicate.SetMargin( 2e-13 )
-
-aFilter = aFilterMgr.CreateFilter()
-aFilter.SetPredicate( aPredicate )
-
-anIds = aFilter.GetElementsId( mesh )
-
-# print result
-print "Criterion: Warp > 2e-13 Nb = ", len( anIds )
-#for i in range( len( anIds ) ):
-  #print anIds[ i ]
-
-# create group
-aGroup = mesh.CreateGroup( SMESH.FACE, "Warp > 2e-13" )
-aGroup.Add( anIds )
-
-# Criterion : Skew > 18
-
-aFunctor = aFilterMgr.CreateSkew()
-aPredicate = aFilterMgr.CreateMoreThan()
-aPredicate.SetNumFunctor( aFunctor )
-aPredicate.SetMargin( 18 )
-
-aFilter = aFilterMgr.CreateFilter()
-aFilter.SetPredicate( aPredicate )
-
-anIds = aFilter.GetElementsId( mesh )
-
-# print result
-print "Criterion: Skew > 18 Nb = ", len( anIds )
-#for i in range( len( anIds ) ):
-  #print anIds[ i ]
-
-# create group
-aGroup = mesh.CreateGroup( SMESH.FACE, "Skew > 18" )
-aGroup.Add( anIds )
-
-# Criterion : Length > 10
-
-aFunctor = aFilterMgr.CreateLength()
-aPredicate = aFilterMgr.CreateMoreThan()
-aPredicate.SetNumFunctor( aFunctor )
-aPredicate.SetMargin( 10 )
-
-aFilter = aFilterMgr.CreateFilter()
-aFilter.SetPredicate( aPredicate )
-
-anIds = aFilter.GetElementsId( mesh )
-
-# print result
-print "Criterion: Length > 10 Nb = ", len( anIds )
-#for i in range( len( anIds ) ):
-  #print anIds[ i ]
-
-# create group
-aGroup = mesh.CreateGroup( SMESH.EDGE, "Length > 10" )
-aGroup.Add( anIds )
-
-# Criterion : Borders at multi-connections = 2
-
-aFunctor = aFilterMgr.CreateMultiConnection()
-aPredicate = aFilterMgr.CreateEqualTo()
-aPredicate.SetNumFunctor( aFunctor )
-aPredicate.SetMargin( 2 )
-
-aFilter = aFilterMgr.CreateFilter()
-aFilter.SetPredicate( aPredicate )
-
-anIds = aFilter.GetElementsId( mesh )
-
-# print result
-print "Criterion: Borders at multi-connections = 2 Nb = ", len( anIds )
-#for i in range( len( anIds ) ):
-  #print anIds[ i ]
-
-# create group
-aGroup = mesh.CreateGroup( SMESH.EDGE, "Borders at multi-connections = 2" )
-aGroup.Add( anIds )
-
-
-salome.sg.updateObjBrowser(1)
diff --git a/src/SMESH_SWIG/SMESH_demo_hexa2_upd.py b/src/SMESH_SWIG/SMESH_demo_hexa2_upd.py
deleted file mode 100755 (executable)
index 755214a..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-#==============================================================================
-#  Info.
-#  Bug (from script, bug)   : SMESH_demo_hexa2_upd.py, PAL6781
-#  Modified                 : 25/11/2004
-#  Author                   : Kovaltchuk Alexey
-#  Project                  : PAL/SALOME
-#==============================================================================
-# Tetrahedrization of a geometry (box minus a inner cylinder).
-# Hypothesis and algorithms for the mesh generation are not global:
-# the mesh of some edges is thinner
-#
-
-import salome
-import geompy
-
-import StdMeshers
-import NETGENPlugin
-
-geom  = salome.lcc.FindOrLoadComponent("FactoryServer", "GEOM")
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId);
-
-import math
-
-# -----------------------------------------------------------------------------
-
-ShapeTypeShell     = 3
-ShapeTypeFace      = 4
-ShapeTypeEdge      = 6
-
-a = math.sqrt(2.)/4.
-ma = - a
-zero = 0.
-un = 1.
-mun= - un
-demi = 1./2.
-
-Orig = geompy.MakeVertex(zero,zero,zero)
-P0 = geompy.MakeVertex(a,a,zero)
-P1 = geompy.MakeVertex(zero,demi,zero)
-P2 = geompy.MakeVertex(ma,a,zero)
-P3 = geompy.MakeVertex(mun,un,zero)
-P4 = geompy.MakeVertex(un,un,zero)
-P5 = geompy.MakeVertex(zero,zero,un)
-
-arc = geompy.MakeArc(P0,P1,P2)
-e1 = geompy.MakeEdge(P2,P3)
-e2 = geompy.MakeEdge(P3,P4)
-e3 = geompy.MakeEdge(P4,P0)
-
-list = []
-list.append(arc)
-list.append(e1)
-list.append(e2)
-list.append(e3)
-
-wire = geompy.MakeWire(list)
-face = geompy.MakeFace(wire,1)
-
-dir = geompy.MakeVector(Orig,P5)
-vol1 = geompy.MakePipe(face,dir)
-
-angle = math.pi/2.
-#dir = geom.MakeVector(Orig,P5)
-vol2 = geompy.MakeRotation(vol1,dir,angle)
-
-vol3 = geompy.MakeRotation(vol2,dir,angle)
-
-vol4 = geompy.MakeRotation(vol3,dir,angle)
-
-list = []
-list.append(vol1)
-list.append(vol2)
-list.append(vol3)
-list.append(vol4)
-
-volComp = geompy.MakeCompound(list)
-
-tol3d = 1.e-3
-vol = geompy.MakeGlueFaces(volComp,tol3d)
-idVol = geompy.addToStudy(vol,"volume")
-
-print "Analysis of the final volume:"
-subShellList = geompy.SubShapeAllSorted(vol,ShapeTypeShell)
-subFaceList = geompy.SubShapeAllSorted(vol,ShapeTypeFace)
-subEdgeList = geompy.SubShapeAllSorted(vol,ShapeTypeEdge)
-
-print "number of Shells in the volume : ",len(subShellList)
-print "number of Faces in the volume : ",len(subFaceList)
-print "number of Edges in the volume : ",len(subEdgeList)
-
-idSubEdge = []
-for k in range(len(subEdgeList)):
-    idSubEdge.append(geompy.addToStudyInFather(vol,subEdgeList[k],"SubEdge"+str(k)))
-
-edgeZ = []
-edgeZ.append(subEdgeList[0])
-edgeZ.append(subEdgeList[3])
-edgeZ.append(subEdgeList[10])
-edgeZ.append(subEdgeList[11])
-edgeZ.append(subEdgeList[20])
-edgeZ.append(subEdgeList[21])
-edgeZ.append(subEdgeList[28])
-edgeZ.append(subEdgeList[31])
-
-idEdgeZ = []
-for i in range(8):
-    idEdgeZ.append(geompy.addToStudyInFather(vol,edgeZ[i],"EdgeZ"+str(i+1)))
-
-### ---------------------------- SMESH --------------------------------------
-
-# ---- create Hypothesis
-
-print "-------------------------- create Hypothesis"
-
-print "-------------------------- NumberOfSegments the global one"
-
-numberOfSegments = 10
-
-hypNbSeg=smesh.CreateHypothesis("NumberOfSegments","libStdMeshersEngine.so")
-hypNbSeg.SetNumberOfSegments(numberOfSegments)
-hypNbSegID = hypNbSeg.GetId()
-print hypNbSeg.GetName()
-print hypNbSegID
-print hypNbSeg.GetNumberOfSegments()
-
-smeshgui.SetName(salome.ObjectToID(hypNbSeg), "NumberOfSegments")
-
-print "-------------------------- NumberOfSegments in the Z direction"
-
-numberOfSegmentsZ = 40
-
-hypNbSegZ=smesh.CreateHypothesis("NumberOfSegments","libStdMeshersEngine.so")
-hypNbSegZ.SetNumberOfSegments(numberOfSegmentsZ)
-hypNbSegZID = hypNbSegZ.GetId()
-print hypNbSegZ.GetName()
-print hypNbSegZID
-print hypNbSegZ.GetNumberOfSegments()
-
-smeshgui.SetName(salome.ObjectToID(hypNbSegZ), "NumberOfSegmentsZ")
-
-# ---- create Algorithms
-
-print "-------------------------- create Algorithms"
-
-print "-------------------------- Regular_1D"
-
-regular1D=smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
-smeshgui.SetName(salome.ObjectToID(regular1D), "Wire Discretisation")
-
-print "-------------------------- Quadrangle_2D"
-
-quad2D=smesh.CreateHypothesis("Quadrangle_2D", "libStdMeshersEngine.so")
-smeshgui.SetName(salome.ObjectToID(quad2D), "Quadrangle_2D")
-
-print "-------------------------- Hexa_3D"
-
-hexa3D=smesh.CreateHypothesis("Hexa_3D", "libStdMeshersEngine.so")
-smeshgui.SetName(salome.ObjectToID(hexa3D), "Hexa_3D")
-
-# ---- init a Mesh with the volume
-
-mesh = smesh.CreateMesh(vol)
-smeshgui.SetName(salome.ObjectToID(mesh), "meshVolume")
-
-# ---- add hypothesis to the volume
-
-print "-------------------------- add hypothesis to the volume"
-
-ret=mesh.AddHypothesis(vol,regular1D)
-print ret
-ret=mesh.AddHypothesis(vol,hypNbSeg)
-print ret
-ret=mesh.AddHypothesis(vol,quad2D)
-print ret
-ret=mesh.AddHypothesis(vol,hexa3D)
-print ret
-
-for i in range(8):
-    print "-------------------------- add hypothesis to edge in the Z directions", (i+1)
-
-    subMeshEdgeZ = mesh.GetSubMesh(edgeZ[i],"SubMeshEdgeZ_"+str(i+1))
-
-    retZ = mesh.AddHypothesis(edgeZ[i],hypNbSegZ)
-    print " add hyp Z ", retZ
-
-salome.sg.updateObjBrowser(1)
-
-print "-------------------------- compute the mesh of the volume"
-
-ret=smesh.Compute(mesh,vol)
-
-print ret
-if ret != 0:
-##    log=mesh.GetLog(0) # no erase trace
-##    for linelog in log:
-##        print linelog
-    print "Information about the MeshBox :"
-    print "Number of nodes       : ", mesh.NbNodes()
-    print "Number of edges       : ", mesh.NbEdges()
-    print "Number of faces       : ", mesh.NbFaces()
-    print "Number of triangles   : ", mesh.NbTriangles()
-    print "Number of volumes     : ", mesh.NbVolumes()
-    print "Number of tetrahedrons: ", mesh.NbTetras()
-else:
-    print "problem when Computing the mesh"
-
-salome.sg.updateObjBrowser(1)
diff --git a/src/SMESH_SWIG/SMESH_fixation.py b/src/SMESH_SWIG/SMESH_fixation.py
deleted file mode 100644 (file)
index b10fcc8..0000000
+++ /dev/null
@@ -1,294 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
-#  This library is free software; you can redistribute it and/or
-#  modify it under the terms of the GNU Lesser General Public
-#  License as published by the Free Software Foundation; either
-#  version 2.1 of the License.
-#
-#  This library is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#  Lesser General Public License for more details.
-#
-#  You should have received a copy of the GNU Lesser General Public
-#  License along with this library; if not, write to the Free Software
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-#
-#
-#
-#  File   : SMESH_fix_volute.py
-#  Author : Paul RASCLE, EDF
-#  Module : SMESH
-#  $Header$
-
-import salome
-import geompy
-import math
-
-# -----------------------------------------------------------------------------
-
-def MakeFace(lstEdges) :
-    """
-    Creates a planar face from 4 edges
-    """
-    wire = geompy.MakeWire(lstEdges)
-    face = geompy.MakeFace(wire, 1)
-    return face
-
-# -----------------------------------------------------------------------------
-
-# ---- dimensions
-
-##longueurPlq  = 0.686
-##largeurPlq   = 0.573
-##epaisseurPlq = 0.150
-
-##hauteurFlanc   = 0.380
-##epaisseurFlanc = 0.112
-##rayonConge   = 0.150 - epaisseurFlanc
-
-##epaisseurFond = 0.162
-##rayonTrou = 0.075
-##posAxeTrou = hauteurFlanc -(0.180 + rayonTrou)
-##marge = 0.01
-##tol3d = 1.e-5
-
-longueurPlq  = 686
-largeurPlq   = 573
-epaisseurPlq = 150
-
-hauteurFlanc   = 380
-epaisseurFlanc = 112
-rayonConge   = 150 - epaisseurFlanc
-
-epaisseurFond = 162
-rayonTrou = 75
-posAxeTrou = hauteurFlanc - (180 + rayonTrou)
-marge = 10
-tol3d = 1.e-3
-
-# ---- points, directions de base
-
-p0 = geompy.MakeVertex(0., 0., 0.)
-
-vx = geompy.MakeVectorDXDYDZ(100., 0., 0.)
-vy = geompy.MakeVectorDXDYDZ(0., 100., 0.)
-vz = geompy.MakeVectorDXDYDZ(0., 0., 100.)
-
-# ---- ellipse du flanc
-
-he = hauteurFlanc - 2*rayonConge
-re = 0.5*(largeurPlq - epaisseurFond) - rayonConge
-sine = re/he
-cose = math.sqrt(1. - sine*sine)
-
-ve = geompy.MakeVectorDXDYDZ(sine, 0., cose)
-cyl0 = geompy.MakeCylinder(p0, ve, re, 2*he)
-cyl1 = geompy.MakeRotation(cyl0, ve, 0.5)
-cyle = geompy.MakeTranslation(cyl1, -marge*sine, 0., -marge*cose)
-
-pbe = geompy.MakeVertex(3*he, -2*re, 3*he)
-boxe = geompy.MakeBoxTwoPnt(p0, pbe)
-
-cylcoup = geompy.MakeBoolean(cyle, boxe, 2)
-
-aretes = []
-aretes = geompy.SubShapeAllSorted(cylcoup, geompy.ShapeType["EDGE"])
-
-shape = geompy.MakeCopy(aretes[0])
-aShape = geompy.MakeTranslation(shape, 0., rayonConge + re, epaisseurPlq + 2*rayonConge)
-
-
-# -----------------------------------------------------------------------------
-# ---- decoupage de la piece en volumes a 6 faces de 4 cotes
-# -----------------------------------------------------------------------------
-
-# ---- cotes x
-
-x0  = 0.
-x0h = rayonConge
-x1  = rayonConge + epaisseurFlanc
-xc  = longueurPlq/2
-x2  = longueurPlq - rayonConge - epaisseurFlanc
-x3h = longueurPlq - rayonConge
-x3  = longueurPlq
-
-# ---- cotes y
-
-y0  = 0.
-y0h = rayonConge
-y1  = largeurPlq - epaisseurFond
-y1m = y1 - marge
-y2  = largeurPlq
-y2p = largeurPlq + marge
-
-# ---- cotes z
-
-z0  = 0.
-z1m = epaisseurPlq - marge
-z1  = epaisseurPlq
-z2  = epaisseurPlq + rayonConge
-z3  = epaisseurPlq + 2*rayonConge
-z4  = epaisseurPlq + hauteurFlanc
-z4p = epaisseurPlq + hauteurFlanc + marge
-
-zc  = epaisseurPlq + posAxeTrou
-zc2 = epaisseurPlq + (posAxeTrou - rayonTrou)/3
-zc3 = epaisseurPlq + 2*(posAxeTrou - rayonTrou)/3
-
-# ---- decoupe du fond
-
-p11 = geompy.MakeVertex(x1, y1m, z1)
-p12 = geompy.MakeVertex(x1, y1m, z2)
-p13 = geompy.MakeVertex(x1, y1m, z3)
-p14 = geompy.MakeVertex(x1, y1m, z4)
-pc1 = geompy.MakeVertex(xc, y1m, z1)
-pc2 = geompy.MakeVertex(xc, y1m, zc2)
-pc3 = geompy.MakeVertex(xc, y1m, zc3)
-pcc = geompy.MakeVertex(xc, y1m, zc)
-pc4 = geompy.MakeVertex(xc, y1m, z4)
-p21 = geompy.MakeVertex(x2, y1m, z1)
-p22 = geompy.MakeVertex(x2, y1m, z2)
-p23 = geompy.MakeVertex(x2, y1m, z3)
-p24 = geompy.MakeVertex(x2, y1m, z4)
-pcf = geompy.MakeVertex(xc, y2p, zc)
-
-arc2 = geompy.MakeArc(p12,pc2,p22)
-arc3 = geompy.MakeArc(p13,pc3,p23)
-
-segz1  = geompy.MakeVector(p11,p21)
-segz41 = geompy.MakeVector(p14,pc4)
-segz42 = geompy.MakeVector(pc4,p24)
-segx11 = geompy.MakeVector(p11,p12)
-segx12 = geompy.MakeVector(p12,p13)
-segx13 = geompy.MakeVector(p13,p14)
-segxc2 = geompy.MakeVector(pc1,pc2)
-segxc3 = geompy.MakeVector(pc2,pc3)
-segxc4 = geompy.MakeVector(pcc,pc4)
-segx21 = geompy.MakeVector(p21,p22)
-segx22 = geompy.MakeVector(p22,p23)
-segx23 = geompy.MakeVector(p23,p24)
-segx1c1 = geompy.MakeVector(p13,pcc)
-segx1c2 = geompy.MakeVector(p14,pcc)
-segx2c1 = geompy.MakeVector(p23,pcc)
-segx2c2 = geompy.MakeVector(p24,pcc)
-
-facef = []
-facef.append(MakeFace([segx13,segx1c2,segx1c1]))
-facef.append(MakeFace([segx23,segx2c2,segx2c1]))
-facef.append(MakeFace([segx2c2,segxc4,segz42]))
-facef.append(MakeFace([segx1c2,segz41,segxc4]))
-facef.append(MakeFace([segx1c1,arc3,segx2c1]))
-facef.append(MakeFace([segx12,arc2,segx22,arc3]))
-facef.append(MakeFace([segx11,segz1,segx21,arc2]))
-
-vcccf = geompy.MakeVector(pcc, pcf)
-hcccf = y2p - y1m
-decf = []
-for face in facef:
-    decf.append(geompy.MakePrismVecH(face,vcccf,hcccf))
-
-pc  = geompy.MakeVertex(xc, 0., zc)
-py2 = geompy.MakeVertex(xc, y2, zc)
-axeCyl = geompy.MakeVector(pc, py2)
-
-cylFond = geompy.MakeCylinder(pc, vy, rayonTrou, 1.1*largeurPlq)
-cylFond2 = geompy.MakeRotation(cylFond, axeCyl, math.pi)
-
-fondec = []
-for id in (0,1,2,3):
-    fondec.append(geompy.MakeBoolean(decf[id], cylFond2, 2))
-fondec.append(geompy.MakeBoolean(decf[4], cylFond, 2))
-for id in (5,6):
-    fondec.append(decf[id])
-
-p_xcy2pz4p = geompy.MakeVertex(xc,y2p,z4p)
-p_x3y2pz4p = geompy.MakeVertex(x3,y2p,z4p)
-pxc = geompy.MakeVertex(xc,y0,z0)
-bcut1 = geompy.MakeBoxTwoPnt(p0, p_xcy2pz4p)
-bcut2 = geompy.MakeBoxTwoPnt(pxc, p_x3y2pz4p)
-
-fondec2 = []
-for id in (0,1,2,3):
-    fondec2.append(fondec[id])
-for id in (4,5,6):
-    fondec2.append(geompy.MakeBoolean(fondec[id], bcut1, 1))
-    fondec2.append(geompy.MakeBoolean(fondec[id], bcut2, 1))
-
-# ----- autres blocs de decoupe
-
-bcong1 = geompy.MakeBox(x0,y0,z1, x1,y1,z2)
-bcong2 = geompy.MakeBox(x0,y1,z1, x1,y2,z2)
-bcong3 = geompy.MakeBox(x2,y0,z1, x3,y1,z2)
-bcong4 = geompy.MakeBox(x2,y1,z1, x3,y2,z2)
-
-pcylx0 = geompy.MakeVertex(0., -marge, z2)
-pcylx3 = geompy.MakeVertex(longueurPlq, -marge, z2)
-pcyly0 = geompy.MakeVertex(-marge, 0., z2)
-
-cylcongx0 = geompy.MakeCylinder(pcylx0, vy, rayonConge, largeurPlq + 2*marge)
-cylcongx3 = geompy.MakeCylinder(pcylx3, vy, rayonConge, largeurPlq + 2*marge)
-cylcongy0 = geompy.MakeCylinder(pcyly0, vx, rayonConge, longueurPlq + 2*marge)
-
-bcong1 = geompy.MakeBoolean(bcong1,cylcongx0,2)
-bcong2 = geompy.MakeBoolean(bcong2,cylcongx0,2)
-bcong1 = geompy.MakeBoolean(bcong1,cylcongy0,2)
-#NRI : inverse order of BOP
-bcong3 = geompy.MakeBoolean(bcong3,cylcongy0,2)
-bcong3 = geompy.MakeBoolean(bcong3,cylcongx3,2)
-bcong4 = geompy.MakeBoolean(bcong4,cylcongx3,2)
-
-pf1 = geompy.MakeVertex(0., y0h, z3)
-pf2 = geompy.MakeVertex(0., y1, z3)
-pf3 = geompy.MakeVertex(0., y1, z4)
-pf4 = geompy.MakeVertex(0., 0.5*(largeurPlq - epaisseurFond) , z4)
-
-vf1 = geompy.MakeEdge(pf1, pf2)
-vf2 = geompy.MakeEdge(pf2, pf3)
-vf3 = geompy.MakeEdge(pf3, pf4)
-
-faceFlanc = MakeFace([vf1,vf2,vf3,aShape])
-
-flanc1 = geompy.MakePrismVecH(faceFlanc, vx, epaisseurFlanc)
-flanc2 = geompy.MakeCopy(flanc1)
-flanc1 = geompy.MakeTranslation(flanc1, rayonConge, 0., 0.)
-flanc2 = geompy.MakeTranslation(flanc2, longueurPlq - rayonConge - epaisseurFlanc, 0., 0.)
-
-# ---- constitution et decoupe des blocs
-boxfond2 = geompy.MakeBox(x0, y1, z0, x3, y2, z4p)
-
-blocs = []
-for dec in fondec2:
-    blocs.append(geompy.MakeBoolean(boxfond2, dec, 1))
-
-blocs.append(geompy.MakeBox(x0,y1,z0, x1,y2,z1))
-blocs.append(geompy.MakeBox(x1,y1,z0, xc,y2,z1))
-blocs.append(geompy.MakeBox(xc,y1,z0, x2,y2,z1))
-blocs.append(geompy.MakeBox(x2,y1,z0, x3,y2,z1))
-blocs.append(geompy.MakeBox(x0,y0,z0, x1,y1,z1))
-blocs.append(geompy.MakeBox(x1,y0,z0, xc,y1,z1))
-blocs.append(geompy.MakeBox(xc,y0,z0, x2,y1,z1))
-blocs.append(geompy.MakeBox(x2,y0,z0, x3,y1,z1))
-blocs.append(bcong2)
-blocs.append(bcong4)
-blocs.append(bcong1)
-blocs.append(bcong3)
-blocs.append(geompy.MakeBox(x0h,y1, z2, x1, y2, z3))
-blocs.append(geompy.MakeBox(x2, y1, z2, x3h,y2, z3))
-blocs.append(geompy.MakeBox(x0h,y0h,z2, x1, y1, z3))
-blocs.append(geompy.MakeBox(x2, y0h,z2, x3h,y1, z3))
-blocs.append(geompy.MakeBox(x0h,y1, z3, x1, y2, z4))
-blocs.append(geompy.MakeBox(x2, y1, z3, x3h,y2, z4))
-blocs.append(flanc1)
-blocs.append(flanc2)
-
-compbloc = geompy.MakeCompound(blocs)
-idcomp = geompy.addToStudy(compbloc, "compbloc")
-
-# ---- eliminer les faces en double, solid-->shell
-
-compshell = geompy.MakeGlueFaces(compbloc,tol3d)
-idcomp = geompy.addToStudy(compshell, "compshell")
diff --git a/src/SMESH_SWIG/SMESH_fixation_hexa.py b/src/SMESH_SWIG/SMESH_fixation_hexa.py
deleted file mode 100644 (file)
index 1845b22..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-#
-# Hexahedrization of the geometry generated by the Python script
-# SMESH_fixation.py
-# Hypothesis and algorithms for the mesh generation are global
-#
-
-import SMESH_fixation
-
-import StdMeshers
-
-compshell = SMESH_fixation.compshell
-idcomp = SMESH_fixation.idcomp
-geompy = SMESH_fixation.geompy
-salome = SMESH_fixation.salome
-
-print "Analysis of the geometry to be meshed :"
-subShellList = geompy.SubShapeAll(compshell, geompy.ShapeType["SHELL"])
-subFaceList  = geompy.SubShapeAll(compshell, geompy.ShapeType["FACE"])
-subEdgeList  = geompy.SubShapeAll(compshell, geompy.ShapeType["EDGE"])
-
-print "number of Shells in compshell : ", len(subShellList)
-print "number of Faces  in compshell : ", len(subFaceList)
-print "number of Edges  in compshell : ", len(subEdgeList)
-
-status = geompy.CheckShape(compshell)
-print " check status ", status
-
-### ---------------------------- SMESH --------------------------------------
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId)
-
-print "-------------------------- create Hypothesis"
-
-print "-------------------------- NumberOfSegments"
-
-numberOfSegments = 5
-
-hypNbSeg = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypNbSeg.SetNumberOfSegments(numberOfSegments)
-
-print hypNbSeg.GetName()
-print hypNbSeg.GetId()
-print hypNbSeg.GetNumberOfSegments()
-
-smeshgui.SetName(salome.ObjectToID(hypNbSeg), "NumberOfSegments_5")
-
-print "-------------------------- create Algorithms"
-
-print "-------------------------- Regular_1D"
-
-regular1D = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
-
-smeshgui.SetName(salome.ObjectToID(regular1D), "Wire Discretisation")
-
-print "-------------------------- Quadrangle_2D"
-
-quad2D = smesh.CreateHypothesis("Quadrangle_2D", "libStdMeshersEngine.so")
-
-smeshgui.SetName(salome.ObjectToID(quad2D), "Quadrangle_2D")
-
-print "-------------------------- Hexa_3D"
-
-hexa3D = smesh.CreateHypothesis("Hexa_3D", "libStdMeshersEngine.so")
-
-smeshgui.SetName(salome.ObjectToID(hexa3D), "Hexa_3D")
-
-# ---- init a Mesh with the compshell
-shape_mesh = salome.IDToObject( idcomp  )
-
-mesh = smesh.CreateMesh(shape_mesh)
-smeshgui.SetName(salome.ObjectToID(mesh), "MeshCompShell")
-
-
-print "-------------------------- add hypothesis to compshell"
-
-mesh.AddHypothesis(shape_mesh,regular1D)
-mesh.AddHypothesis(shape_mesh,hypNbSeg)
-
-mesh.AddHypothesis(shape_mesh,quad2D)
-mesh.AddHypothesis(shape_mesh,hexa3D)
-
-salome.sg.updateObjBrowser(1)
-
-print "-------------------------- compute compshell"
-ret = smesh.Compute(mesh, shape_mesh)
-print ret
-if ret != 0:
-    log = mesh.GetLog(0) # no erase trace
-    for linelog in log:
-        print linelog
-    print "Information about the MeshcompShel:"
-    print "Number of nodes       : ", mesh.NbNodes()
-    print "Number of edges       : ", mesh.NbEdges()
-    print "Number of faces       : ", mesh.NbFaces()
-    print "Number of quadrangles : ", mesh.NbQuadrangles()
-    print "Number of volumes     : ", mesh.NbVolumes()
-    print "Number of hexahedrons : ", mesh.NbHexas()
-else:
-    print "problem when Computing the mesh"
diff --git a/src/SMESH_SWIG/SMESH_fixation_tetra.py b/src/SMESH_SWIG/SMESH_fixation_tetra.py
deleted file mode 100644 (file)
index 2d588bb..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-#
-# Tetrahedrization of the geometry generated by the Python script
-# SMESH_fixation.py
-# Hypothesis and algorithms for the mesh generation are global
-#
-
-import StdMeshers
-import NETGENPlugin
-import SMESH_fixation
-
-compshell = SMESH_fixation.compshell
-idcomp = SMESH_fixation.idcomp
-geompy = SMESH_fixation.geompy
-salome = SMESH_fixation.salome
-
-print "Analysis of the geometry to be meshed :"
-subShellList = geompy.SubShapeAll(compshell, geompy.ShapeType["SHELL"])
-subFaceList  = geompy.SubShapeAll(compshell, geompy.ShapeType["FACE"])
-subEdgeList  = geompy.SubShapeAll(compshell, geompy.ShapeType["EDGE"])
-
-print "number of Shells in compshell : ", len(subShellList)
-print "number of Faces  in compshell : ", len(subFaceList)
-print "number of Edges  in compshell : ", len(subEdgeList)
-
-status = geompy.CheckShape(compshell)
-print " check status ", status
-
-### ---------------------------- SMESH --------------------------------------
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId)
-
-print "-------------------------- create Hypothesis"
-
-print "-------------------------- NumberOfSegments"
-
-numberOfSegments = 5
-
-hypNbSeg = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypNbSeg.SetNumberOfSegments(numberOfSegments)
-
-print hypNbSeg.GetName()
-print hypNbSeg.GetId()
-print hypNbSeg.GetNumberOfSegments()
-
-smeshgui.SetName(salome.ObjectToID(hypNbSeg), "NumberOfSegments_5")
-
-print "-------------------------- MaxElementArea"
-
-## maxElementArea = 80
-
-## hypArea=smesh.CreateHypothesis("MaxElementArea")
-## hypArea.SetMaxElementArea(maxElementArea)
-## print hypArea.GetName()
-## print hypArea.GetId()
-## print hypArea.GetMaxElementArea()
-## smeshgui.SetName(salome.ObjectToID(hypArea), "MaxElementArea_160")
-
-hypLengthFromEdges = smesh.CreateHypothesis("LengthFromEdges", "libStdMeshersEngine.so")
-smeshgui.SetName(salome.ObjectToID(hypLengthFromEdges), "LengthFromEdges")
-
-
-print "-------------------------- MaxElementVolume"
-
-maxElementVolume = 1000
-
-hypVolume = smesh.CreateHypothesis("MaxElementVolume", "libStdMeshersEngine.so")
-hypVolume.SetMaxElementVolume(maxElementVolume)
-
-print hypVolume.GetName()
-print hypVolume.GetId()
-print hypVolume.GetMaxElementVolume()
-
-smeshgui.SetName(salome.ObjectToID(hypVolume), "MaxElementVolume_1000")
-
-print "-------------------------- create Algorithms"
-
-print "-------------------------- Regular_1D"
-
-regular1D = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
-
-smeshgui.SetName(salome.ObjectToID(regular1D), "Wire Discretisation")
-
-print "-------------------------- MEFISTO_2D"
-
-mefisto2D = smesh.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so")
-
-smeshgui.SetName(salome.ObjectToID(mefisto2D), "MEFISTO_2D")
-
-print "-------------------------- NETGEN_3D"
-
-netgen3D = smesh.CreateHypothesis("NETGEN_3D", "libNETGENEngine.so")
-
-smeshgui.SetName(salome.ObjectToID(netgen3D), "NETGEN_3D")
-
-# ---- init a Mesh with the compshell
-
-mesh = smesh.CreateMesh(compshell)
-smeshgui.SetName(salome.ObjectToID(mesh), "MeshcompShel")
-
-print "-------------------------- add hypothesis to compshell"
-
-mesh.AddHypothesis(compshell,regular1D)
-mesh.AddHypothesis(compshell,hypNbSeg)
-
-mesh.AddHypothesis(compshell,mefisto2D)
-mesh.AddHypothesis(compshell,hypLengthFromEdges)
-
-mesh.AddHypothesis(compshell,netgen3D)
-mesh.AddHypothesis(compshell,hypVolume)
-
-salome.sg.updateObjBrowser(1)
-
-print "-------------------------- compute compshell"
-ret = smesh.Compute(mesh,compshell)
-print ret
-if ret != 0:
-    log = mesh.GetLog(0) # no erase trace
-    for linelog in log:
-        print linelog
-    print "Information about the MeshcompShel:"
-    print "Number of nodes        : ", mesh.NbNodes()
-    print "Number of edges        : ", mesh.NbEdges()
-    print "Number of faces        : ", mesh.NbFaces()
-    print "Number of triangles    : ", mesh.NbTriangles()
-    print "Number of volumes      : ", mesh.NbVolumes()
-    print "Number of tetrahedrons : ", mesh.NbTetras()
-    
-else:
-    print "problem when computing the mesh"
diff --git a/src/SMESH_SWIG/SMESH_flight_skin.py b/src/SMESH_SWIG/SMESH_flight_skin.py
deleted file mode 100644 (file)
index fa3b8ef..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-#
-# Triangulation of the skin of the geometry from a Brep representing a plane
-# This geometry is from EADS
-# Hypothesis and algorithms for the mesh generation are global
-#
-
-import os
-import salome
-import geompy
-import StdMeshers
-
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId)
-
-
-# ---------------------------- GEOM --------------------------------------
-
-# import a BRep
-#before running this script, please be sure about
-#the path the file fileName
-
-filePath = os.environ["SMESH_ROOT_DIR"]
-filePath = filePath + "/share/salome/resources/"
-
-filename = "flight_solid.brep"
-filename = filePath + filename
-
-shape = geompy.Import(filename, "BREP")
-idShape = geompy.addToStudy(shape, "flight")
-
-print "Analysis of the geometry flight :"
-subShellList = geompy.SubShapeAll(shape, geompy.ShapeType["SHELL"])
-subFaceList  = geompy.SubShapeAll(shape, geompy.ShapeType["FACE"])
-subEdgeList  = geompy.SubShapeAll(shape, geompy.ShapeType["EDGE"])
-
-print "number of Shells in flight : ", len(subShellList)
-print "number of Faces  in flight : ", len(subFaceList)
-print "number of Edges  in flight : ", len(subEdgeList)
-
-
-### ---------------------------- SMESH --------------------------------------
-
-print "-------------------------- create Hypothesis"
-
-print "-------------------------- LocalLength"
-
-lengthOfSegments = 0.3
-
-hypLength = smesh.CreateHypothesis("LocalLength", "libStdMeshersEngine.so")
-hypLength.SetLength(lengthOfSegments)
-
-print hypLength.GetName()
-print hypLength.GetId()
-print hypLength.GetLength()
-
-smeshgui.SetName(salome.ObjectToID(hypLength), "LocalLength_0.3")
-
-print "-------------------------- LengthFromEdges"
-
-hypLengthFromEdge = smesh.CreateHypothesis("LengthFromEdges", "libStdMeshersEngine.so")
-
-print hypLengthFromEdge.GetName()
-print hypLengthFromEdge.GetId()
-
-smeshgui.SetName(salome.ObjectToID(hypLengthFromEdge), "LengthFromEdge")
-
-print "-------------------------- create Algorithms"
-
-print "-------------------------- Regular_1D"
-
-regular1D = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
-
-smeshgui.SetName(salome.ObjectToID(regular1D), "Wire Discretisation")
-
-print "-------------------------- MEFISTO_2D"
-
-mefisto2D = smesh.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so")
-
-smeshgui.SetName(salome.ObjectToID(mefisto2D), "MEFISTO_2D")
-
-# ---- init a Mesh with the shell
-shape_mesh = salome.IDToObject( idShape )
-
-mesh = smesh.CreateMesh(shape_mesh)
-smeshgui.SetName(salome.ObjectToID(mesh), "MeshFlight")
-
-# ---- add hypothesis to flight
-
-print "-------------------------- add hypothesis to flight"
-
-mesh.AddHypothesis(shape_mesh,regular1D)
-mesh.AddHypothesis(shape_mesh,hypLength)
-mesh.AddHypothesis(shape_mesh,mefisto2D)
-mesh.AddHypothesis(shape_mesh,hypLengthFromEdge)
-
-salome.sg.updateObjBrowser(1)
-
-
-print "-------------------------- compute the skin flight"
-ret = smesh.Compute(mesh,shape_mesh)
-print ret
-if ret != 0:
-    log = mesh.GetLog(0) # no erase trace
-    for linelog in log:
-        print linelog
-    print "Information about the Mesh_mechanic_tetra:"
-    print "Number of nodes      : ", mesh.NbNodes()
-    print "Number of edges      : ", mesh.NbEdges()
-    print "Number of faces      : ", mesh.NbFaces()
-    print "Number of triangles  : ", mesh.NbTriangles()
-    print "Number of volumes    : ", mesh.NbVolumes()
-else:
-    print "probleme when computing the mesh"
diff --git a/src/SMESH_SWIG/SMESH_freebord.py b/src/SMESH_SWIG/SMESH_freebord.py
deleted file mode 100644 (file)
index d240a35..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-import salome\r
-import geompy\r
-import SMESH\r
-import StdMeshers\r
-\r
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")\r
-smesh.SetCurrentStudy(salome.myStudy)\r
-\r
-# Create box without one plane\r
-\r
-box = geompy.MakeBox(0., 0., 0., 10., 20., 30.)\r
-subShapeList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])\r
-\r
-FaceList  = []\r
-for i in range( 5 ):\r
-  FaceList.append( subShapeList[ i ] )\r
-\r
-aComp = geompy.MakeCompound( FaceList )\r
-aBox = geompy.Sew( aComp, 1. )\r
-idbox = geompy.addToStudy( aBox, "box" )\r
-  \r
-aBox  = salome.IDToObject( idbox )\r
-\r
-# Create mesh\r
-\r
-hyp1 = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")\r
-hyp1.SetNumberOfSegments(5)\r
-hyp2 = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")\r
-hyp2.SetMaxElementArea(20)\r
-hyp3 = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")\r
-hyp3.SetMaxElementArea(50)\r
-\r
-algo1 = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")\r
-algo2 = smesh.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so")\r
-\r
-mesh = smesh.CreateMesh(aBox)\r
-mesh.AddHypothesis(aBox,hyp1)\r
-mesh.AddHypothesis(aBox,hyp2)\r
-mesh.AddHypothesis(aBox,algo1)\r
-mesh.AddHypothesis(aBox,algo2)\r
-\r
-smesh.Compute(mesh,aBox)\r
-\r
-smeshgui = salome.ImportComponentGUI("SMESH")\r
-smeshgui.Init(salome.myStudyId);\r
-smeshgui.SetName( salome.ObjectToID( mesh ), "Mesh_freebord" );\r
-\r
-# Criterion : Free edges\r
-aFilterMgr = smesh.CreateFilterManager()\r
-aPredicate = aFilterMgr.CreateFreeBorders()\r
-aFilter = aFilterMgr.CreateFilter()\r
-aFilter.SetPredicate( aPredicate )\r
-\r
-anIds = aFilter.GetElementsId( mesh )\r
-\r
-# print result\r
-print "Criterion: Free edges Nb = ", len( anIds )\r
-for i in range( len( anIds ) ):\r
-  print anIds[ i ]\r
-\r
-# create group\r
-aGroup = mesh.CreateGroup( SMESH.EDGE, "Free edges" )\r
-aGroup.Add( anIds )\r
-\r
-\r
-salome.sg.updateObjBrowser(1)\r
diff --git a/src/SMESH_SWIG/SMESH_hexaedre.py b/src/SMESH_SWIG/SMESH_hexaedre.py
deleted file mode 100755 (executable)
index 1b93e1c..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-#==============================================================================
-#  Info.
-#  Bug (from script, bug)   : hexaedre_modified.py, PAL6194, PAL7153
-#  Modified                 : 25/11/2004
-#  Author                   : Kovaltchuk Alexey
-#  Project                  : PAL/SALOME
-#==============================================================================
-
-import salome
-from salome import sg
-
-import geompy
-
-import math
-
-# -----------------------------------------------------------------------------
-
-geom = salome.lcc.FindOrLoadComponent("FactoryServer", "GEOM")
-myBuilder = salome.myStudy.NewBuilder()
-gg = salome.ImportComponentGUI("GEOM")
-from salome import sg
-
-ShapeTypeCompSolid = 1
-ShapeTypeSolid     = 2
-ShapeTypeShell     = 3
-ShapeTypeFace      = 4
-ShapeTypeWire      = 5
-ShapeTypeEdge      = 6
-ShapeTypeVertex    = 7
-
-Boolop_common = 1
-Boolop_cut = 2
-Boolop_fuse = 3
-Boolop_section = 4
-
-p0 = geompy.MakeVertex(0., 0., 0.)
-px = geompy.MakeVertex(100., 0., 0.)
-py = geompy.MakeVertex(0., 100., 0.)
-pz = geompy.MakeVertex(0., 0., 100.)
-vx = geompy.MakeVector(p0, px)
-vy = geompy.MakeVector(p0, py)
-vz = geompy.MakeVector(p0, pz)
-
-sphereExt = geompy.MakeSphere(    0.,  0.,  0., 400.)
-sphereInt = geompy.MakeSphere(    0.,-50.,  0., 350.)
-sphereA   = geompy.MakeSphere( -400., 50., 50., 400.)
-sphereB   = geompy.MakeSphere(  350.,-50.,-50., 350.)
-ptcyle    = geompy.MakeVertex(0., -300., -450.)
-cylindre  = geompy.MakeCylinder(ptcyle,vz,500.,900.)
-
-vol1=geompy.MakeCut(sphereExt,sphereA)
-vol2=geompy.MakeCut(vol1,sphereB)
-vol3=geompy.MakeCut(vol2,cylindre)
-blob=geompy.MakeCut(vol3,sphereInt)
-
-idblob = geompy.addToStudy(blob,"blob")
-
-aretes = []
-aretes = geompy.SubShapeAllSorted(blob, ShapeTypeEdge)
-eid=0
-
-# -------------------------------
-# --- numerotation des aretes
-##for edge in aretes:
-##    edname="arete%d"%eid
-##    idedge=geompy.addToStudy(edge,edname)
-##    eid=eid+1
-
-salome.sg.updateObjBrowser(1)
-
-# --- epaisseur 0 2 8 10
-# --- hauteur   1 3 9 11
-# --- largeur   4 5 6 7
-
-# -----------------------------------------------------------------------------
-
-print "-------------------------- mesh"
-
-import SMESH
-import StdMeshers
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-smesh.SetCurrentStudy(salome.myStudy)
-
-# ---- create Hypothesis
-print "-------------------------- create Hypothesis"
-numberOfSegments = 4
-hypNbSegA=smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypNbSegA.SetNumberOfSegments(numberOfSegments)
-numberOfSegments = 10
-hypNbSegB=smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypNbSegB.SetNumberOfSegments(numberOfSegments)
-numberOfSegments = 15
-hypNbSegC=smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypNbSegC.SetNumberOfSegments(numberOfSegments)
-
-# ---- create Algorithms
-print "-------------------------- create Algorithms"
-regular1D=smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
-quad2D=smesh.CreateHypothesis("Quadrangle_2D", "libStdMeshersEngine.so")
-hexa3D=smesh.CreateHypothesis("Hexa_3D", "libStdMeshersEngine.so")
-
-# ---- init a Mesh with the geom shape
-shape_mesh = blob
-myMesh=smesh.CreateMesh(shape_mesh)
-
-# ---- add hypothesis and algorithms to mesh
-print "-------------------------- add hypothesis to mesh"
-myMesh.AddHypothesis(shape_mesh,regular1D)
-myMesh.AddHypothesis(shape_mesh,quad2D)
-myMesh.AddHypothesis(shape_mesh,hexa3D)
-
-#myMesh.AddHypothesis(shape_mesh,hypNbSeg)
-
-myMesh.AddHypothesis(aretes[0],hypNbSegA)
-myMesh.AddHypothesis(aretes[2],hypNbSegA)
-myMesh.AddHypothesis(aretes[8],hypNbSegA)
-myMesh.AddHypothesis(aretes[10],hypNbSegA)
-
-myMesh.AddHypothesis(aretes[1],hypNbSegC)
-myMesh.AddHypothesis(aretes[3],hypNbSegC)
-myMesh.AddHypothesis(aretes[9],hypNbSegC)
-myMesh.AddHypothesis(aretes[11],hypNbSegC)
-
-myMesh.AddHypothesis(aretes[4],hypNbSegB)
-myMesh.AddHypothesis(aretes[5],hypNbSegB)
-myMesh.AddHypothesis(aretes[6],hypNbSegB)
-myMesh.AddHypothesis(aretes[7],hypNbSegB)
-
-# ---- compute mesh
-
-print "-------------------------- compute mesh"
-ret=smesh.Compute(myMesh, shape_mesh)
-print ret
-if ret != 0:
-    #log=myMesh.GetLog(0) # no erase trace
-    #for linelog in log:
-    #    print linelog
-    print "Information about the Mesh:"
-    print "Number of nodes       : ", myMesh.NbNodes()
-    print "Number of edges       : ", myMesh.NbEdges()
-    print "Number of faces       : ", myMesh.NbFaces()
-    print "Number of quadrangles : ", myMesh.NbQuadrangles()
-    print "Number of volumes     : ", myMesh.NbVolumes()
-    print "Number of hexahedrons : ", myMesh.NbHexas()
-else:
-    print "problem when Computing the mesh"
-
-salome.sg.updateObjBrowser(1)
diff --git a/src/SMESH_SWIG/SMESH_mechanic.py b/src/SMESH_SWIG/SMESH_mechanic.py
deleted file mode 100644 (file)
index 7c1fdbd..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
-#  This library is free software; you can redistribute it and/or
-#  modify it under the terms of the GNU Lesser General Public
-#  License as published by the Free Software Foundation; either
-#  version 2.1 of the License.
-#
-#  This library is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#  Lesser General Public License for more details.
-#
-#  You should have received a copy of the GNU Lesser General Public
-#  License along with this library; if not, write to the Free Software
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-#
-#
-#
-#  File   : SMESH_withHole.py
-#  Author : Lucien PIGNOLONI
-#  Module : SMESH
-#  $Header$
-
-#-------------------------------------------------------------------------
-
-import salome
-import geompy
-
-import StdMeshers
-
-# ---------------------------- GEOM --------------------------------------
-
-# ---- define contigous arcs and segment to define a closed wire
-p1   = geompy.MakeVertex( 100.0,   0.0,  0.0 )
-p2   = geompy.MakeVertex(  50.0,  50.0,  0.0 )
-p3   = geompy.MakeVertex( 100.0, 100.0,  0.0 )
-arc1 = geompy.MakeArc( p1, p2, p3 )
-
-p4   = geompy.MakeVertex( 170.0, 100.0, 0.0 )
-seg1 = geompy.MakeVector( p3, p4 )
-
-p5   = geompy.MakeVertex( 200.0, 70.0, 0.0 )
-p6   = geompy.MakeVertex( 170.0, 40.0, 0.0 )
-arc2 = geompy.MakeArc( p4, p5, p6 )
-
-p7   = geompy.MakeVertex( 120.0, 30.0, 0.0 )
-arc3 = geompy.MakeArc( p6, p7, p1 )
-
-# ---- define a closed wire with arcs and segment
-List1 = []
-List1.append( arc1 )
-List1.append( seg1 )
-List1.append( arc2 )
-List1.append( arc3 )
-
-wire1 = geompy.MakeWire( List1 )
-Id_wire1 = geompy.addToStudy( wire1, "wire1" )
-
-# ---- define a planar face with wire
-WantPlanarFace = 1 #True
-face1 = geompy.MakeFace( wire1, WantPlanarFace )
-Id_face1 = geompy.addToStudy( face1, "face1" )
-
-# ---- create a shape by extrusion
-pO = geompy.MakeVertex( 0.0, 0.0,   0.0 )
-pz = geompy.MakeVertex( 0.0, 0.0, 100.0 )
-vz = geompy.MakeVector( pO, pz )
-
-prism1 = geompy.MakePrismVecH( face1, vz, 100.0 )
-Id_prism1 = geompy.addToStudy( prism1, "prism1" )
-
-# ---- create two cylinders
-pc1 = geompy.MakeVertex(  90.0, 50.0, -40.0 )
-pc2 = geompy.MakeVertex( 170.0, 70.0, -40.0 )
-
-radius = 20.0
-height = 180.0
-cyl1 = geompy.MakeCylinder( pc1, vz, radius, height )
-cyl2 = geompy.MakeCylinder( pc2, vz, radius, height )
-
-Id_Cyl1 = geompy.addToStudy( cyl1, "cyl1" )
-Id_Cyl2 = geompy.addToStudy( cyl2, "cyl2" )
-
-# ---- cut with cyl1
-shape = geompy.MakeBoolean( prism1, cyl1, 2 )
-
-# ---- fuse with cyl2 to obtain the final mechanic piece :)
-mechanic = geompy.MakeBoolean( shape, cyl2, 3 )
-Id_mechanic = geompy.addToStudy( mechanic, "mechanic" )
-
-# ---- explode on faces
-SubFaceL = geompy.SubShapeAllSorted(mechanic, geompy.ShapeType["FACE"])
-
-# ---- add a face sub shape in study to be meshed different
-sub_face1 = SubFaceL[0]
-name      = geompy.SubShapeName( sub_face1, mechanic )
-
-Id_SubFace1 = geompy.addToStudyInFather( mechanic, sub_face1, name )
-
-# ---- add a face sub shape in study to be meshed different
-sub_face2 = SubFaceL[4]
-name      = geompy.SubShapeName( sub_face2, mechanic )
-
-Id_SubFace2 = geompy.addToStudyInFather( mechanic, sub_face2, name )
-
-# ---- add a face sub shape in study to be meshed different
-sub_face3 = SubFaceL[5]
-name      = geompy.SubShapeName( sub_face3, mechanic )
-
-Id_SubFace3 = geompy.addToStudyInFather( mechanic, sub_face3, name )
-
-# ---- add a face sub shape in study to be meshed different
-sub_face4 = SubFaceL[10]
-name      = geompy.SubShapeName( sub_face4, mechanic )
-
-Id_SubFace4 = geompy.addToStudyInFather( mechanic, sub_face4, name )
-
-# ---------------------------- SMESH --------------------------------------
-
-# ---- launch SMESH, init a Mesh with shape 'mechanic'
-
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-
-# -- Init --
-shape_mesh = salome.IDToObject( Id_mechanic )
-smesh.SetCurrentStudy(salome.myStudy)
-
-mesh = smesh.CreateMesh(shape_mesh)
-
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId)
-
-idmesh = salome.ObjectToID(mesh)
-smeshgui.SetName( idmesh, "Mesh_mechanic" )
-
-print "-------------------------- NumberOfSegments"
-
-numberOfSegment = 10
-
-hypNbSeg = smesh.CreateHypothesis( "NumberOfSegments", "libStdMeshersEngine.so" )
-hypNbSeg.SetNumberOfSegments( numberOfSegment )
-print hypNbSeg.GetName()
-print hypNbSeg.GetId()
-print hypNbSeg.GetNumberOfSegments()
-
-smeshgui.SetName(salome.ObjectToID(hypNbSeg), "NumberOfSegments_10")
-
-print "-------------------------- MaxElementArea"
-
-maxElementArea = 25
-
-hypArea25 = smesh.CreateHypothesis( "MaxElementArea", "libStdMeshersEngine.so" )
-hypArea25.SetMaxElementArea( maxElementArea )
-print hypArea25.GetName()
-print hypArea25.GetId()
-print hypArea25.GetMaxElementArea()
-
-smeshgui.SetName(salome.ObjectToID(hypArea25), "MaxElementArea_25")
-
-print "-------------------------- MaxElementArea"
-
-maxElementArea = 35
-
-hypArea35 = smesh.CreateHypothesis( "MaxElementArea", "libStdMeshersEngine.so" )
-hypArea35.SetMaxElementArea( maxElementArea )
-print hypArea35.GetName()
-print hypArea35.GetId()
-print hypArea35.GetMaxElementArea()
-
-smeshgui.SetName(salome.ObjectToID(hypArea35), "MaxElementArea_35")
-
-print "-------------------------- Regular_1D"
-
-algoReg1D = smesh.CreateHypothesis( "Regular_1D", "libStdMeshersEngine.so" )
-listHyp = algoReg1D.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algoReg1D.GetName()
-print algoReg1D.GetId()
-
-smeshgui.SetName(salome.ObjectToID(algoReg1D), "Regular_1D")
-
-print "-------------------------- MEFISTO_2D"
-
-algoMef = smesh.CreateHypothesis( "MEFISTO_2D", "libStdMeshersEngine.so" )
-listHyp = algoMef.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algoMef.GetName()
-print algoMef.GetId()
-
-smeshgui.SetName(salome.ObjectToID(algoMef), "MEFISTO_2D")
-
-print "-------------------------- SMESH_Quadrangle_2D"
-
-algoQuad = smesh.CreateHypothesis( "Quadrangle_2D", "libStdMeshersEngine.so" )
-listHyp = algoQuad.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algoQuad.GetName()
-print algoQuad.GetId()
-
-smeshgui.SetName(salome.ObjectToID(algoQuad), "SMESH_Quadrangle_2D")
-
-print "-------------------------- add hypothesis to main shape"
-
-mesh.AddHypothesis( shape_mesh, hypNbSeg )   # nb segments
-mesh.AddHypothesis( shape_mesh, hypArea25 )  # max area
-
-mesh.AddHypothesis( shape_mesh, algoReg1D )  # Regular 1D/wire discretisation
-mesh.AddHypothesis( shape_mesh, algoMef )    # MEFISTO 2D
-
-print "-------------------------- add hypothesis and algorithm to sub face 1"
-
-submesh = mesh.GetSubMesh(sub_face1, "SubMeshFace1")
-
-mesh.AddHypothesis( sub_face1, algoQuad )   # Quadrangle 2D
-mesh.AddHypothesis( sub_face1, hypArea35 )  # max area
-
-print "-------------------------- add hypothesis and algorithm to sub face 2"
-
-submesh = mesh.GetSubMesh(sub_face2, "SubMeshFace2")
-
-mesh.AddHypothesis( sub_face2, algoQuad )   # Quadrangle 2D
-mesh.AddHypothesis( sub_face2, hypArea35 )  # max area
-
-print "-------------------------- add hypothesis and algorith to sub face 3"
-
-submesh = mesh.GetSubMesh(sub_face3, "SubMeshFace3")
-
-mesh.AddHypothesis( sub_face3, algoQuad )   # Quadrangle 2D
-mesh.AddHypothesis( sub_face3, hypArea35 )  # max area
-
-print "-------------------------- add hypothesis and algorith to sub face 4"
-
-submesh = mesh.GetSubMesh(sub_face4, "SubMeshFace4")
-
-mesh.AddHypothesis( sub_face4, algoQuad )   # Quadrangle 2D
-mesh.AddHypothesis( sub_face4, hypArea35 )  # max area
-
-print "-------------------------- compute the mesh of the mechanic piece"
-
-smesh.Compute(mesh, shape_mesh)
-
-print "Information about the Mesh_mechanic:"
-print "Number of nodes       : ", mesh.NbNodes()
-print "Number of edges       : ", mesh.NbEdges()
-print "Number of faces       : ", mesh.NbFaces()
-print "Number of triangles   : ", mesh.NbTriangles()
-print "Number of quadrangles : ", mesh.NbQuadrangles()
-print "Number of volumes     : ", mesh.NbVolumes()
-print "Number of tetrahedrons: ", mesh.NbTetras()
-
-salome.sg.updateObjBrowser(1)
diff --git a/src/SMESH_SWIG/SMESH_mechanic_editor.py b/src/SMESH_SWIG/SMESH_mechanic_editor.py
deleted file mode 100644 (file)
index 596786e..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
-#  This library is free software; you can redistribute it and/or
-#  modify it under the terms of the GNU Lesser General Public
-#  License as published by the Free Software Foundation; either
-#  version 2.1 of the License.
-#
-#  This library is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#  Lesser General Public License for more details.
-#
-#  You should have received a copy of the GNU Lesser General Public
-#  License along with this library; if not, write to the Free Software
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-#
-#
-#
-#  File   : SMESH_withHole.py
-#  Author : Lucien PIGNOLONI
-#  Module : SMESH
-#  $Header$
-
-#-------------------------------------------------------------------------
-
-import salome
-import geompy
-
-import StdMeshers
-
-import SMESH
-
-# ---------------------------- GEOM --------------------------------------
-
-# ---- define contigous arcs and segment to define a closed wire
-p1   = geompy.MakeVertex( 100.0,   0.0,  0.0 )
-p2   = geompy.MakeVertex(  50.0,  50.0,  0.0 )
-p3   = geompy.MakeVertex( 100.0, 100.0,  0.0 )
-arc1 = geompy.MakeArc( p1, p2, p3 )
-
-p4   = geompy.MakeVertex( 170.0, 100.0, 0.0 )
-seg1 = geompy.MakeVector( p3, p4 )
-
-p5   = geompy.MakeVertex( 200.0, 70.0, 0.0 )
-p6   = geompy.MakeVertex( 170.0, 40.0, 0.0 )
-arc2 = geompy.MakeArc( p4, p5, p6 )
-
-p7   = geompy.MakeVertex( 120.0, 30.0, 0.0 )
-arc3 = geompy.MakeArc( p6, p7, p1 )
-
-# ---- define a closed wire with arcs and segment
-List1 = []
-List1.append( arc1 )
-List1.append( seg1 )
-List1.append( arc2 )
-List1.append( arc3 )
-
-wire1 = geompy.MakeWire( List1 )
-Id_wire1 = geompy.addToStudy( wire1, "wire1" )
-
-# ---- define a planar face with wire
-WantPlanarFace = 1 #True
-face1 = geompy.MakeFace( wire1, WantPlanarFace )
-Id_face1 = geompy.addToStudy( face1, "face1" )
-
-# ---- create a shape by extrusion
-pO = geompy.MakeVertex( 0.0, 0.0,   0.0 )
-pz = geompy.MakeVertex( 0.0, 0.0, 100.0 )
-vz = geompy.MakeVector( pO, pz )
-
-prism1 = geompy.MakePrismVecH( face1, vz, 100.0 )
-Id_prism1 = geompy.addToStudy( prism1, "prism1" )
-
-# ---- create two cylinders
-pc1 = geompy.MakeVertex(  90.0, 50.0, -40.0 )
-pc2 = geompy.MakeVertex( 170.0, 70.0, -40.0 )
-
-radius = 20.0
-height = 180.0
-cyl1 = geompy.MakeCylinder( pc1, vz, radius, height )
-cyl2 = geompy.MakeCylinder( pc2, vz, radius, height )
-
-Id_Cyl1 = geompy.addToStudy( cyl1, "cyl1" )
-Id_Cyl2 = geompy.addToStudy( cyl2, "cyl2" )
-
-# ---- cut with cyl1
-shape = geompy.MakeBoolean( prism1, cyl1, 2 )
-
-# ---- fuse with cyl2 to obtain the final mechanic piece :)
-mechanic = geompy.MakeBoolean( shape, cyl2, 3 )
-Id_mechanic = geompy.addToStudy( mechanic, "mechanic" )
-
-# ---- explode on faces
-SubFaceL = geompy.SubShapeAllSorted(mechanic, geompy.ShapeType["FACE"])
-
-# ---- add a face sub shape in study to be meshed different
-sub_face1 = SubFaceL[0]
-name      = geompy.SubShapeName( sub_face1, mechanic )
-
-Id_SubFace1 = geompy.addToStudyInFather( mechanic, sub_face1, name )
-
-# ---- add a face sub shape in study to be meshed different
-sub_face2 = SubFaceL[4]
-name      = geompy.SubShapeName( sub_face2, mechanic )
-
-Id_SubFace2 = geompy.addToStudyInFather( mechanic, sub_face2, name )
-
-# ---- add a face sub shape in study to be meshed different
-sub_face3 = SubFaceL[5]
-name      = geompy.SubShapeName( sub_face3, mechanic )
-
-Id_SubFace3 = geompy.addToStudyInFather( mechanic, sub_face3, name )
-
-# ---- add a face sub shape in study to be meshed different
-sub_face4 = SubFaceL[10]
-name      = geompy.SubShapeName( sub_face4, mechanic )
-
-Id_SubFace4 = geompy.addToStudyInFather( mechanic, sub_face4, name )
-
-# ---------------------------- SMESH --------------------------------------
-
-# ---- launch SMESH, init a Mesh with shape 'mechanic'
-
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-
-# -- Init --
-shape_mesh = salome.IDToObject( Id_mechanic )
-smesh.SetCurrentStudy(salome.myStudy)
-
-mesh = smesh.CreateMesh(shape_mesh)
-
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId)
-
-idmesh = salome.ObjectToID(mesh)
-smeshgui.SetName( idmesh, "Mesh_mechanic" )
-
-print "-------------------------- NumberOfSegments"
-
-numberOfSegment = 10
-
-hypNbSeg = smesh.CreateHypothesis( "NumberOfSegments", "libStdMeshersEngine.so" )
-hypNbSeg.SetNumberOfSegments( numberOfSegment )
-print hypNbSeg.GetName()
-print hypNbSeg.GetId()
-print hypNbSeg.GetNumberOfSegments()
-
-smeshgui.SetName(salome.ObjectToID(hypNbSeg), "NumberOfSegments_10")
-
-print "-------------------------- MaxElementArea"
-
-maxElementArea = 25
-
-hypArea25 = smesh.CreateHypothesis( "MaxElementArea", "libStdMeshersEngine.so" )
-hypArea25.SetMaxElementArea( maxElementArea )
-print hypArea25.GetName()
-print hypArea25.GetId()
-print hypArea25.GetMaxElementArea()
-
-smeshgui.SetName(salome.ObjectToID(hypArea25), "MaxElementArea_25")
-
-print "-------------------------- MaxElementArea"
-
-maxElementArea = 35
-
-hypArea35 = smesh.CreateHypothesis( "MaxElementArea", "libStdMeshersEngine.so" )
-hypArea35.SetMaxElementArea( maxElementArea )
-print hypArea35.GetName()
-print hypArea35.GetId()
-print hypArea35.GetMaxElementArea()
-
-smeshgui.SetName(salome.ObjectToID(hypArea35), "MaxElementArea_35")
-
-print "-------------------------- Regular_1D"
-
-algoReg1D = smesh.CreateHypothesis( "Regular_1D", "libStdMeshersEngine.so" )
-listHyp = algoReg1D.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algoReg1D.GetName()
-print algoReg1D.GetId()
-
-smeshgui.SetName(salome.ObjectToID(algoReg1D), "Regular_1D")
-
-print "-------------------------- MEFISTO_2D"
-
-algoMef = smesh.CreateHypothesis( "MEFISTO_2D", "libStdMeshersEngine.so" )
-listHyp = algoMef.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algoMef.GetName()
-print algoMef.GetId()
-
-smeshgui.SetName(salome.ObjectToID(algoMef), "MEFISTO_2D")
-
-print "-------------------------- SMESH_Quadrangle_2D"
-
-algoQuad = smesh.CreateHypothesis( "Quadrangle_2D", "libStdMeshersEngine.so" )
-listHyp = algoQuad.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algoQuad.GetName()
-print algoQuad.GetId()
-
-smeshgui.SetName(salome.ObjectToID(algoQuad), "SMESH_Quadrangle_2D")
-
-print "-------------------------- add hypothesis to main shape"
-
-mesh.AddHypothesis( shape_mesh, hypNbSeg )   # nb segments
-mesh.AddHypothesis( shape_mesh, hypArea25 )  # max area
-
-mesh.AddHypothesis( shape_mesh, algoReg1D )  # Regular 1D/wire discretisation
-mesh.AddHypothesis( shape_mesh, algoMef )    # MEFISTO 2D
-
-print "-------------------------- add hypothesis and algorithm to sub face 1"
-
-submesh = mesh.GetSubMesh(sub_face1, "SubMeshFace1")
-
-mesh.AddHypothesis( sub_face1, algoQuad )   # Quadrangle 2D
-mesh.AddHypothesis( sub_face1, hypArea35 )  # max area
-
-print "-------------------------- add hypothesis and algorithm to sub face 2"
-
-submesh = mesh.GetSubMesh(sub_face2, "SubMeshFace2")
-
-mesh.AddHypothesis( sub_face2, algoQuad )   # Quadrangle 2D
-mesh.AddHypothesis( sub_face2, hypArea35 )  # max area
-
-print "-------------------------- add hypothesis and algorith to sub face 3"
-
-submesh = mesh.GetSubMesh(sub_face3, "SubMeshFace3")
-
-mesh.AddHypothesis( sub_face3, algoQuad )   # Quadrangle 2D
-mesh.AddHypothesis( sub_face3, hypArea35 )  # max area
-
-print "-------------------------- add hypothesis and algorith to sub face 4"
-
-submesh = mesh.GetSubMesh(sub_face4, "SubMeshFace4")
-
-mesh.AddHypothesis( sub_face4, algoQuad )   # Quadrangle 2D
-mesh.AddHypothesis( sub_face4, hypArea35 )  # max area
-
-print "-------------------------- compute the mesh of the mechanic piece"
-
-smesh.Compute(mesh, shape_mesh)
-
-print "Information about the Mesh_mechanic:"
-print "Number of nodes       : ", mesh.NbNodes()
-print "Number of edges       : ", mesh.NbEdges()
-print "Number of faces       : ", mesh.NbFaces()
-print "Number of triangles   : ", mesh.NbTriangles()
-print "Number of quadrangles : ", mesh.NbQuadrangles()
-print "Number of volumes     : ", mesh.NbVolumes()
-print "Number of tetrahedrons: ", mesh.NbTetras()
-
-
-MeshEditor = mesh.GetMeshEditor()
-
-#1 cutting of quadrangles of the 'SubMeshFace2' submesh
-submesh = mesh.GetSubMesh(sub_face2, "SubMeshFace2")
-MeshEditor.SplitQuadObject(submesh, 1)
-
-#2 cutting of triangles of the group
-FacesTriToQuad = [2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422]
-GroupTriToQuad = mesh.CreateGroup(SMESH.FACE,"Group of faces (quad)")
-GroupTriToQuad.Add(FacesTriToQuad)
-MeshEditor.TriToQuadObject(GroupTriToQuad, None , 1.57)
-
-#3 extrusion of the group
-point = SMESH.PointStruct(0, 0, 5)
-vector = SMESH.DirStruct(point) 
-MeshEditor.ExtrusionSweepObject(GroupTriToQuad, vector, 5)
-
-#4 mirror object
-MeshEditor.MirrorObject(mesh, SMESH.AxisStruct(0, 0, 0, 0, 0, 0), SMESH.SMESH_MeshEditor.POINT, 0) 
-
-#5 mesh translation
-point = SMESH.PointStruct(10, 10, 10)
-vector = SMESH.DirStruct(point) 
-MeshEditor.TranslateObject(mesh, vector, 0)
-
-#6 mesh rotation
-axisXYZ = SMESH.AxisStruct(0, 0, 0, 10, 10, 10)
-angle180 =  180*3.141/180
-MeshEditor.RotateObject(mesh, axisXYZ, angle180, 0)
-
-#7 group smoothing
-FacesSmooth = [864, 933, 941, 950, 1005, 1013]
-GroupSmooth = mesh.CreateGroup(SMESH.FACE,"Group of faces (smooth)")
-GroupSmooth.Add(FacesSmooth)
-MeshEditor.SmoothObject(GroupSmooth, [], 20, 2, SMESH.SMESH_MeshEditor.CENTROIDAL_SMOOTH)
-
-#8 rotation sweep object
-FacesRotate = [492, 493, 502, 503]
-GroupRotate = mesh.CreateGroup(SMESH.FACE,"Group of faces (rotate)")
-GroupRotate.Add(FacesRotate)
-angle45 =  45*3.141/180
-axisXYZ = SMESH.AxisStruct(-38.3128, -73.3658, -133.321, -13.3402, -13.3265, 6.66632)
-MeshEditor.RotationSweepObject(GroupRotate, axisXYZ, angle45, 4, 1e-5)
-
-#9 reorientation of the whole mesh
-submesh = mesh.GetSubMesh(sub_face1, "SubMeshFace1")
-MeshEditor.ReorientObject(submesh)
-
-salome.sg.updateObjBrowser(1)
diff --git a/src/SMESH_SWIG/SMESH_mechanic_tetra.py b/src/SMESH_SWIG/SMESH_mechanic_tetra.py
deleted file mode 100644 (file)
index eee3f87..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
-#  This library is free software; you can redistribute it and/or
-#  modify it under the terms of the GNU Lesser General Public
-#  License as published by the Free Software Foundation; either
-#  version 2.1 of the License.
-#
-#  This library is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#  Lesser General Public License for more details.
-#
-#  You should have received a copy of the GNU Lesser General Public
-#  License along with this library; if not, write to the Free Software
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-#
-#
-#
-#  File   : SMESH_withHole.py
-#  Author : Lucien PIGNOLONI
-#  Module : SMESH
-#  $Header$
-
-import salome
-import geompy
-
-geom  = geompy.geom
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-smesh.SetCurrentStudy(salome.myStudy)
-
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId)
-
-import StdMeshers
-import NETGENPlugin
-
-# ---------------------------- GEOM --------------------------------------
-
-# ---- define contigous arcs and segment to define a closed wire
-p1   = geompy.MakeVertex( 100.0,   0.0,  0.0 )
-p2   = geompy.MakeVertex(  50.0,  50.0,  0.0 )
-p3   = geompy.MakeVertex( 100.0, 100.0,  0.0 )
-arc1 = geompy.MakeArc( p1, p2, p3 )
-
-p4   = geompy.MakeVertex( 170.0, 100.0, 0.0 )
-seg1 = geompy.MakeVector( p3, p4 )
-
-p5   = geompy.MakeVertex( 200.0, 70.0, 0.0 )
-p6   = geompy.MakeVertex( 170.0, 40.0, 0.0 )
-arc2 = geompy.MakeArc( p4, p5, p6 )
-
-p7   = geompy.MakeVertex( 120.0, 30.0, 0.0 )
-arc3 = geompy.MakeArc( p6, p7, p1 )
-
-# ---- define a closed wire with arcs and segment
-List1 = []
-List1.append( arc1 )
-List1.append( seg1 )
-List1.append( arc2 )
-List1.append( arc3 )
-
-wire1 = geompy.MakeWire( List1 )
-Id_wire1 = geompy.addToStudy( wire1, "wire1" )
-
-# ---- define a planar face with wire
-WantPlanarFace = 1 #True
-face1 = geompy.MakeFace( wire1, WantPlanarFace )
-Id_face1 = geompy.addToStudy( face1, "face1" )
-
-# ---- create a shape by extrusion
-pO = geompy.MakeVertex( 0.0, 0.0,   0.0 )
-pz = geompy.MakeVertex( 0.0, 0.0, 100.0 )
-vz = geompy.MakeVector( pO, pz )
-
-prism1 = geompy.MakePrismVecH( face1, vz, 100.0 )
-Id_prism1 = geompy.addToStudy( prism1, "prism1")
-
-# ---- create two cylinders
-
-pc1 = geompy.MakeVertex(  90.0, 50.0, -40.0 )
-pc2 = geompy.MakeVertex( 170.0, 70.0, -40.0 )
-radius = 20.0
-height = 180.0
-cyl1  = geompy.MakeCylinder( pc1, vz, radius, height )
-cyl2  = geompy.MakeCylinder( pc2, vz, radius, height )
-
-Id_Cyl1 = geompy.addToStudy( cyl1, "cyl1" )
-Id_Cyl2 = geompy.addToStudy( cyl2, "cyl2" )
-
-# ---- cut with cyl1
-shape  = geompy.MakeBoolean( prism1, cyl1, 2 )
-
-# ---- fuse with cyl2 to obtain the final mechanic piece :)
-mechanic =  geompy.MakeBoolean( shape, cyl2, 3 )
-Id_mechanic = geompy.addToStudy( mechanic, "mechanic" )
-
-# ---- Analysis of the geometry
-
-print "Analysis of the geometry mechanic :"
-
-subShellList = geompy.SubShapeAll(mechanic,geompy.ShapeType["SHELL"])
-subFaceList  = geompy.SubShapeAll(mechanic,geompy.ShapeType["FACE"])
-subEdgeList  = geompy.SubShapeAll(mechanic,geompy.ShapeType["EDGE"])
-
-print "number of Shells in mechanic : ",len(subShellList)
-print "number of Faces in mechanic : ",len(subFaceList)
-print "number of Edges in mechanic : ",len(subEdgeList)
-
-### ---------------------------- SMESH --------------------------------------
-
-print "-------------------------- NumberOfSegments"
-
-numberOfSegment = 10
-
-hypNbSeg = smesh.CreateHypothesis( "NumberOfSegments", "libStdMeshersEngine.so" )
-hypNbSeg.SetNumberOfSegments( numberOfSegment )
-print hypNbSeg.GetName()
-print hypNbSeg.GetId()
-print hypNbSeg.GetNumberOfSegments()
-
-smeshgui.SetName(salome.ObjectToID(hypNbSeg), "NumberOfSegments_10")
-
-print "-------------------------- MaxElementArea"
-
-maxElementArea = 20
-
-hypArea = smesh.CreateHypothesis( "MaxElementArea", "libStdMeshersEngine.so" )
-hypArea.SetMaxElementArea( maxElementArea )
-print hypArea.GetName()
-print hypArea.GetId()
-print hypArea.GetMaxElementArea()
-
-smeshgui.SetName(salome.ObjectToID(hypArea), "MaxElementArea_20")
-
-print "-------------------------- MaxElementVolume"
-
-maxElementVolume = 20
-
-hypVolume = smesh.CreateHypothesis( "MaxElementVolume", "libStdMeshersEngine.so" )
-hypVolume.SetMaxElementVolume( maxElementVolume )
-print hypVolume.GetName()
-print hypVolume.GetId()
-print hypVolume.GetMaxElementVolume()
-
-smeshgui.SetName(salome.ObjectToID(hypVolume), "MaxElementVolume_20")
-
-print "-------------------------- Regular_1D"
-
-algoReg1D = smesh.CreateHypothesis( "Regular_1D", "libStdMeshersEngine.so" )
-listHyp =algoReg1D.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algoReg1D.GetName()
-print algoReg1D.GetId()
-
-smeshgui.SetName(salome.ObjectToID(algoReg1D), "Regular_1D")
-
-print "-------------------------- MEFISTO_2D"
-
-algoMef = smesh.CreateHypothesis( "MEFISTO_2D", "libStdMeshersEngine.so" )
-listHyp = algoMef.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algoMef.GetName()
-print algoMef.GetId()
-
-smeshgui.SetName(salome.ObjectToID(algoMef), "MEFISTO_2D")
-
-print "-------------------------- NETGEN_3D"
-
-algoNg = smesh.CreateHypothesis( "NETGEN_3D", "libNETGENEngine.so" )
-listHyp = algoNg.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algoNg.GetName()
-print algoNg.GetId()
-
-smeshgui.SetName(salome.ObjectToID(algoNg), "NETGEN_3D")
-
-print "-------------------------- add hypothesis to main mechanic"
-
-shape_mesh = salome.IDToObject( Id_mechanic  )
-
-mesh = smesh.CreateMesh(shape_mesh)
-
-idmesh = salome.ObjectToID(mesh)
-smeshgui.SetName( idmesh, "Mesh_mechanic_tetra" )
-
-mesh.AddHypothesis( shape_mesh, hypNbSeg )   # nb segments
-mesh.AddHypothesis( shape_mesh, hypArea )    # max area
-mesh.AddHypothesis( shape_mesh, hypVolume )  # max volume
-
-mesh.AddHypothesis( shape_mesh, algoReg1D )  # Regular 1D/wire discretisation
-mesh.AddHypothesis( shape_mesh, algoMef )    # MEFISTO 2D
-mesh.AddHypothesis( shape_mesh, algoNg )     # NETGEN 3D
-
-print "-------------------------- compute the mesh of the mechanic piece"
-smesh.Compute(mesh,shape_mesh)
-
-print "Information about the Mesh_mechanic_tetra:"
-print "Number of nodes       : ", mesh.NbNodes()
-print "Number of edges       : ", mesh.NbEdges()
-print "Number of faces       : ", mesh.NbFaces()
-print "Number of triangles   : ", mesh.NbTriangles()
-print "Number of quadrangles: ", mesh.NbQuadrangles()
-print "Number of volumes     : ", mesh.NbVolumes()
-print "Number of tetrahedrons: ", mesh.NbTetras()
-
-salome.sg.updateObjBrowser(1)
diff --git a/src/SMESH_SWIG/SMESH_reg.py b/src/SMESH_SWIG/SMESH_reg.py
deleted file mode 100644 (file)
index 8235deb..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : SMESH_reg.py
-#  Module : SMESH
-
-import salome
-import geompy
-
-import StdMeshers
-
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-smesh.SetCurrentStudy(salome.myStudy)
-
-# ---- define a box
-print "Define box"
-box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
-idbox = geompy.addToStudy(box, "box")
-
-# ---- add faces of box to study
-print "Add faces to study"
-idface = []
-subShapeList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
-for f in subShapeList:
-  name = geompy.SubShapeName(f, box)
-  print name
-  idface.append( geompy.addToStudyInFather(box, f, name) )
-
-# ---- add edges of box to study
-print "Add edges to study"
-idedge = []
-subShapeList = geompy.SubShapeAll(box, geompy.ShapeType["EDGE"])
-for f in subShapeList:
-  name = geompy.SubShapeName(f, box)
-  print name
-  idedge.append( geompy.addToStudyInFather(box, f, name) )
-
-salome.sg.updateObjBrowser(1);
-
-# ---- launch SMESH
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId)
-
-
-print "-------------------------- create Hypothesis"
-
-print "-------------------------- LocalLength"
-hypLen1 = smesh.CreateHypothesis("LocalLength", "libStdMeshersEngine.so")
-hypLen1.SetLength(100)
-print hypLen1.GetName()
-print hypLen1.GetId()
-print hypLen1.GetLength()
-
-idlength = salome.ObjectToID(hypLen1)
-smeshgui.SetName(idlength, "Local_Length_100");
-
-hypNbSeg = []
-print "-------------------------- NumberOfSegments"
-hypNbSeg1 = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypNbSeg1.SetDistrType(0)
-hypNbSeg1.SetNumberOfSegments(7)
-print hypNbSeg1.GetName()
-print hypNbSeg1.GetId()
-print hypNbSeg1.GetNumberOfSegments()
-idseg1 = salome.ObjectToID(hypNbSeg1)
-smeshgui.SetName(idseg1, "NumberOfSegmentsReg");
-hypNbSeg.append(hypNbSeg1)
-
-hypNbSeg2 = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypNbSeg2.SetDistrType(1)
-hypNbSeg2.SetNumberOfSegments(7)
-hypNbSeg2.SetScaleFactor(2)
-print hypNbSeg2.GetName()
-print hypNbSeg2.GetId()
-print hypNbSeg2.GetNumberOfSegments()
-idseg2 = salome.ObjectToID(hypNbSeg2)
-smeshgui.SetName(idseg2, "NumberOfSegmentsScale");
-hypNbSeg.append(hypNbSeg2)
-
-hypNbSeg3 = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypNbSeg3.SetDistrType(2)
-hypNbSeg3.SetNumberOfSegments(7)
-hypNbSeg3.SetTableFunction( [0.25, 0.5, 0.5, 0.25] )
-print hypNbSeg3.GetName()
-print hypNbSeg3.GetId()
-print hypNbSeg3.GetNumberOfSegments()
-idseg3 = salome.ObjectToID(hypNbSeg3)
-smeshgui.SetName(idseg3, "NumberOfSegmentsTable");
-hypNbSeg.append(hypNbSeg3)
-
-hypNbSeg4 = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypNbSeg4.SetDistrType(3)
-hypNbSeg4.SetNumberOfSegments(7)
-hypNbSeg4.SetExpressionFunction("sin(t)")
-print hypNbSeg4.GetName()
-print hypNbSeg4.GetId()
-print hypNbSeg4.GetNumberOfSegments()
-idseg4 = salome.ObjectToID(hypNbSeg4)
-smeshgui.SetName(idseg4, "NumberOfSegmentsExpr");
-hypNbSeg.append(hypNbSeg4)
-
-print "-------------------------- MaxElementArea"
-hypArea1 = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")
-hypArea1.SetMaxElementArea(2500)
-print hypArea1.GetName()
-print hypArea1.GetId()
-print hypArea1.GetMaxElementArea()
-
-idarea1 = salome.ObjectToID(hypArea1)
-smeshgui.SetName(idarea1, "MaxElementArea_2500");
-
-print "-------------------------- MaxElementArea"
-hypArea2 = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")
-hypArea2.SetMaxElementArea(500)
-print hypArea2.GetName()
-print hypArea2.GetId()
-print hypArea2.GetMaxElementArea()
-
-idarea2 = salome.ObjectToID(hypArea2)
-smeshgui.SetName(idarea2, "MaxElementArea_500");
-
-print "-------------------------- Regular_1D"
-algoReg = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
-listHyp = algoReg.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algoReg.GetName()
-print algoReg.GetId()
-
-idreg = salome.ObjectToID(algoReg)
-smeshgui.SetName(idreg, "Regular_1D");
-
-print "-------------------------- MEFISTO_2D"
-algoMef = smesh.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so")
-listHyp = algoMef.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algoMef.GetName()
-print algoMef.GetId()
-
-idmef = salome.ObjectToID(algoMef)
-smeshgui.SetName(idmef, "MEFISTO_2D");
-
-salome.sg.updateObjBrowser(1);
-
-# ---- Init a Mesh with the box
-
-box = salome.IDToObject(idbox)
-names = [ "MeshBoxReg", "MeshBoxScale", "MeshBoxTable", "MeshBoxExpr" ];
-j = 0
-for i in range(4):
-  mesh = smesh.CreateMesh(box)
-  idmesh = salome.ObjectToID(mesh)
-  smeshgui.SetName(idmesh, names[j]);
-  print "-------------------------- add hypothesis to box"
-  mesh.AddHypothesis(box,algoReg)
-  mesh.AddHypothesis(box,hypNbSeg[j])
-  mesh.AddHypothesis(box,algoMef)
-  mesh.AddHypothesis(box,hypArea1)
-  j=j+1
-
-salome.sg.updateObjBrowser(1);
-
diff --git a/src/SMESH_SWIG/SMESH_shared_modules.py b/src/SMESH_SWIG/SMESH_shared_modules.py
deleted file mode 100644 (file)
index e40362f..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-"""
-
-"""
-
-# force SMESH importation at interpretor initialization
-# see salome_shared_modules.py
-# (avoids incomplete import at run time)
-
-print "============== import SMESH ======================="
-
-import SMESH
-
-# this function is required
-
-def init_shared_modules():
-   """
-      This function initializes shared modules that need to be
-   """
-   pass
diff --git a/src/SMESH_SWIG/SMESH_test.py b/src/SMESH_SWIG/SMESH_test.py
deleted file mode 100644 (file)
index 8e484a4..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-#  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-#
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
-#  This library is free software; you can redistribute it and/or
-#  modify it under the terms of the GNU Lesser General Public
-#  License as published by the Free Software Foundation; either
-#  version 2.1 of the License.
-#
-#  This library is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#  Lesser General Public License for more details.
-#
-#  You should have received a copy of the GNU Lesser General Public
-#  License along with this library; if not, write to the Free Software
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-#
-#
-#
-#  File   : SMESH_test.py
-#  Module : SMESH
-
-import salome
-import geompy
-import smesh
-
-import SMESH
-import StdMeshers
-
-# ---- define a box
-
-box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
-idb = geompy.addToStudy(box, "box")
-
-# ---- add first face of box in study
-
-subShapeList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
-face = subShapeList[0]
-name = geompy.SubShapeName(face, box)
-idf = geompy.addToStudyInFather(box, face, name)
-
-# ---- add shell from box  in study
-
-subShellList = geompy.SubShapeAll(box, geompy.ShapeType["SHELL"])
-shell = subShellList[0]
-name = geompy.SubShapeName(shell, box)
-ids = geompy.addToStudyInFather(box, shell, name)
-
-# ---- add first edge of face in study
-
-edgeList = geompy.SubShapeAll(face, geompy.ShapeType["EDGE"])
-edge = edgeList[0];
-name = geompy.SubShapeName(edge, face)
-ide = geompy.addToStudyInFather(face, edge, name)
-
-# ---- launch SMESH, init a Mesh with the box
-
-gen = smesh.smesh()
-mesh = gen.CreateMesh(idb)
-
-print "-------------------------- create Hypothesis"
-
-print "-------------------------- LocalLength"
-
-hypo1 = gen.CreateHypothesis("LocalLength", "libStdMeshersEngine.so")
-print hypo1.GetName()
-print hypo1.GetId()
-print hypo1.GetLength()
-hypo1.SetLength(100)
-print hypo1.GetLength()
-
-print "-------------------------- bidon"
-
-hyp3 = gen.CreateHypothesis("bidon", "")
-
-print "-------------------------- NumberOfSegments"
-
-hypo3 = gen.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypo3.SetNumberOfSegments(7)
-print hypo3.GetName()
-print hypo3.GetNumberOfSegments()
-print hypo3.GetId()
-
-print "-------------------------- MaxElementArea"
-
-hypo4 = gen.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")
-hypo4.SetMaxElementArea(5000)
-print hypo4.GetName()
-print hypo4.GetMaxElementArea()
-print hypo4.GetId()
-
-print "-------------------------- Regular_1D"
-
-algo_1 = gen.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
-print algo_1.GetName()
-print algo_1.GetId()
-listHyp = algo_1.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algo_1.GetId()
-
-print "-------------------------- MEFISTO_2D"
-
-algo_2 = gen.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so")
-print algo_2.GetName()
-print algo_2.GetId()
-listHyp = algo_2.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algo_2.GetId()
-
-print "-------------------------- add hypothesis to edge"
-
-edge = salome.IDToObject(ide)
-submesh = mesh.GetSubMesh(edge, "SubMeshEdge")
-ret = mesh.AddHypothesis(edge,algo_1)
-print ret
-ret = mesh.AddHypothesis(edge,hypo1)
-print ret
-
-##print "-------------------------- compute edge"
-##ret=gen.Compute(mesh,ide)
-##print ret
-##log=mesh.GetLog(1);
-##for a in log:
-##    print a
-
-print "-------------------------- add hypothesis to box"
-
-box = salome.IDToObject(idb)
-submesh = mesh.GetSubMesh(box, "SubMeshBox")
-ret = mesh.AddHypothesis(box,algo_1)
-print ret
-ret = mesh.AddHypothesis(box,hypo1)
-print ret
-ret = mesh.AddHypothesis(box,algo_2)
-print ret
-ret = mesh.AddHypothesis(box,hypo4)
-print ret
-
-print "-------------------------- compute face"
-
-ret = gen.Compute(mesh,idf)
-print ret
-log = mesh.GetLog(0) # 0 - GetLog without ClearLog after, else if 1 - ClearLog after
-for a in log:
-    print "-------"
-    ii = 0
-    ir = 0
-    comType = a.commandType
-    if comType == 0:
-        for i in range(a.number):
-            ind = a.indexes[ii]
-            ii = ii+1
-            r1 = a.coords[ir]
-            ir = ir+1
-            r2 = a.coords[ir]
-            ir = ir+1
-            r3 = a.coords[ir]
-            ir = ir+1
-            print "AddNode %i - %g %g %g" % (ind, r1, r2, r3)
-    elif comType == 1:
-        for i in range(a.number):
-            ind = a.indexes[ii]
-            ii = ii+1
-            i1 = a.indexes[ii]
-            ii = ii+1
-            i2 = a.indexes[ii]
-            ii = ii+1
-            print "AddEdge %i - %i %i" % (ind, i1, i2)
-    elif comType == 2:
-        for i in range(a.number):
-            ind = a.indexes[ii]
-            ii = ii+1
-            i1 = a.indexes[ii]
-            ii = ii+1
-            i2 = a.indexes[ii]
-            ii = ii+1
-            i3 = a.indexes[ii]
-            ii = ii+1
-            print "AddTriangle %i - %i %i %i" % (ind, i1, i2, i3)
-
-##print "-------------------------- compute box"
-##ret=gen.Compute(mesh,idb)
-##print ret
-##log=mesh.GetLog(1);
-##print log
-
-##shell=salome.IDToObject(ids)
-##submesh=mesh.GetElementsOnShape(shell)
-##ret=mesh.AddHypothesis(shell,algo_1)
-##print ret
-##ret=mesh.AddHypothesis(shell,hypo1)
-##print ret
-##ret=gen.Compute(mesh,ids)
-##print ret
diff --git a/src/SMESH_SWIG/SMESH_test0.py b/src/SMESH_SWIG/SMESH_test0.py
deleted file mode 100644 (file)
index a7a5282..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : SMESH_test0.py
-#  Module : SMESH
-
-import salome
-import geompy
-from geompy import geom
-from geompy import gg
-
-import SMESH
-
-myBuilder = salome.myStudy.NewBuilder()
-
-# ---- define a box
-
-box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
-idbox = geompy.addToStudy(box, "box")
-
-# ---- add first face of box in study
-
-subShapeList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
-face = subShapeList[0]
-name = geompy.SubShapeName(face, box)
-print name
-idface = geompy.addToStudyInFather(box, face, name)
-
-# ---- add shell from box  in study
-
-subShellList = geompy.SubShapeAll(box, geompy.ShapeType["SHELL"])
-shell = subShellList[0]
-name = geompy.SubShapeName(shell, box)
-print name
-idshell = geompy.addToStudyInFather(box, shell, name)
-
-# ---- add first edge of face in study
-
-edgeList = geompy.SubShapeAll(face, geompy.ShapeType["EDGE"])
-edge = edgeList[0]
-name = geompy.SubShapeName(edge, face)
-print name
-idedge = geompy.addToStudyInFather(face, edge, name)
-
-salome.sg.updateObjBrowser(1)
diff --git a/src/SMESH_SWIG/SMESH_test1.py b/src/SMESH_SWIG/SMESH_test1.py
deleted file mode 100644 (file)
index c0b0429..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : SMESH_test1.py
-#  Module : SMESH
-
-import salome
-import geompy
-
-import StdMeshers
-
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-smesh.SetCurrentStudy(salome.myStudy)
-
-# ---- define a box
-
-box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
-idbox = geompy.addToStudy(box, "box")
-
-# ---- add first face of box in study
-
-subShapeList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
-face = subShapeList[0]
-name = geompy.SubShapeName(face, box)
-print name
-idface = geompy.addToStudyInFather(box, face, name)
-
-# ---- add shell from box  in study
-
-subShellList = geompy.SubShapeAll(box, geompy.ShapeType["SHELL"])
-shell = subShellList[0]
-name = geompy.SubShapeName(shell, box)
-print name
-idshell = geompy.addToStudyInFather(box, shell, name)
-
-# ---- add first edge of face in study
-
-edgeList = geompy.SubShapeAll(face, geompy.ShapeType["EDGE"])
-edge = edgeList[0]
-name = geompy.SubShapeName(edge, face)
-print name
-idedge = geompy.addToStudyInFather(face, edge, name)
-
-# ---- launch SMESH
-
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId)
-
-print "-------------------------- create Hypothesis"
-
-print "-------------------------- LocalLength"
-hypLen1 = smesh.CreateHypothesis("LocalLength", "libStdMeshersEngine.so")
-hypLen1.SetLength(100)
-print hypLen1.GetName()
-print hypLen1.GetId()
-print hypLen1.GetLength()
-
-idlength = salome.ObjectToID(hypLen1) 
-smeshgui.SetName(idlength, "Local_Length_100");
-
-print "-------------------------- NumberOfSegments"
-hypNbSeg1 = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hypNbSeg1.SetNumberOfSegments(7)
-print hypNbSeg1.GetName()
-print hypNbSeg1.GetId()
-print hypNbSeg1.GetNumberOfSegments()
-
-idseg = salome.ObjectToID(hypNbSeg1) 
-smeshgui.SetName(idseg, "NumberOfSegments_7");
-
-print "-------------------------- MaxElementArea"
-hypArea1 = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")
-hypArea1.SetMaxElementArea(2500)
-print hypArea1.GetName()
-print hypArea1.GetId()
-print hypArea1.GetMaxElementArea()
-
-idarea1 = salome.ObjectToID(hypArea1)
-smeshgui.SetName(idarea1, "MaxElementArea_2500");
-
-print "-------------------------- MaxElementArea"
-hypArea2 = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")
-hypArea2.SetMaxElementArea(500)
-print hypArea2.GetName()
-print hypArea2.GetId()
-print hypArea2.GetMaxElementArea()
-
-idarea2 = salome.ObjectToID(hypArea2)
-smeshgui.SetName(idarea2, "MaxElementArea_500");
-
-print "-------------------------- Regular_1D"
-algoReg = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
-listHyp = algoReg.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algoReg.GetName()
-print algoReg.GetId()
-
-idreg = salome.ObjectToID(algoReg)
-smeshgui.SetName(idreg, "Regular_1D");
-
-print "-------------------------- MEFISTO_2D"
-algoMef = smesh.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so")
-listHyp = algoMef.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algoMef.GetName()
-print algoMef.GetId()
-
-idmef = salome.ObjectToID(algoMef)
-smeshgui.SetName(idmef, "MEFISTO_2D");
-
-# ---- Init a Mesh with the box
-
-box = salome.IDToObject(idbox)
-mesh = smesh.CreateMesh(box)
-idmesh = salome.ObjectToID(mesh)
-smeshgui.SetName(idmesh, "Meshbox");
-
-print "-------------------------- add hypothesis to box"
-mesh.AddHypothesis(box,algoReg)
-mesh.AddHypothesis(box,hypNbSeg1)
-mesh.AddHypothesis(box,algoMef)
-mesh.AddHypothesis(box,hypArea1)
-
-# ---- add hypothesis to edge
-
-print "-------------------------- add hypothesis to edge"
-edge = salome.IDToObject(idedge)
-submesh = mesh.GetSubMesh(edge, "SubMeshEdge")
-mesh.AddHypothesis(edge, algoReg)
-mesh.AddHypothesis(edge, hypLen1)
-
-print "-------------------------- add hypothesis to face"
-face = salome.IDToObject(idface)
-submesh = mesh.GetSubMesh(face, "SubMeshFace")
-mesh.AddHypothesis(face, hypArea2)
-
-salome.sg.updateObjBrowser(1);
diff --git a/src/SMESH_SWIG/SMESH_test2.py b/src/SMESH_SWIG/SMESH_test2.py
deleted file mode 100644 (file)
index b552a14..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : SMESH_test2.py
-#  Module : SMESH
-
-from SMESH_test1 import *
-
-# ---- compute box
-
-print "-------------------------- compute box"
-ret = smesh.Compute(mesh,box)
-print ret
-log = mesh.GetLog(0); # no erase trace
-for linelog in log:
-    print linelog
-
-salome.sg.updateObjBrowser(1);
-
-# ---- compute edge
-
-##print "-------------------------- compute edge"
-##ret=gen.Compute(mesh,idedge)
-##print ret
-##log=mesh.GetLog(1);
-##for a in log:
-##    print a
-
-# ---- add hypothesis to face
-
-# ---- compute face
-
-#print "-------------------------- compute face"
-#ret=gen.Compute(mesh,idface)
-#print ret
-#log=mesh.GetLog(1);
-#for a in log:
-#    print a
-
-##shell=salome.IDToObject(ids)
-##submesh=mesh.GetElementsOnShape(shell)
-##ret=mesh.AddHypothesis(shell,algoReg)
-##print ret
-##ret=mesh.AddHypothesis(shell,hypLen1)
-##print ret
-##ret=gen.Compute(mesh,ids)
-##print ret
diff --git a/src/SMESH_SWIG/SMESH_test3.py b/src/SMESH_SWIG/SMESH_test3.py
deleted file mode 100644 (file)
index e105018..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : SMESH_test3.py
-#  Module : SMESH
-
-#import salome
-import math
-import geompy
-
-pi = math.pi
-
-# ---------------------------------------------
-xa = math.sin(pi/12)
-ya = 0
-za = math.cos(pi/12)
-
-xb = 0
-yb = math.sin(pi/18)
-zb = math.cos(pi/18)
-
-xc = math.cos(-pi/18)
-yc = 0
-zc = math.sin(-pi/18)
-
-rc1 = 150
-rc2 = 150
-rc3 = 150
-rc4 = 300
-
-hc1 = 300
-hc2 = 2*hc1
-hc3 = 2*hc1
-hc4 = 2*hc1
-
-# ---------------------------------------------
-point_0 = geompy.MakeVertex(0, 0, 0)
-point_z = geompy.MakeVertex(0, 0, 1)
-
-point_a = geompy.MakeVertex(xa, ya, za)
-point_b = geompy.MakeVertex(xb, yb, zb)
-point_c = geompy.MakeVertex(xc, yc, zc)
-
-dir_z = geompy.MakeVector(point_0, point_z)
-dir_a = geompy.MakeVector(point_0, point_a)
-dir_b = geompy.MakeVector(point_0, point_b)
-dir_c = geompy.MakeVector(point_0, point_c)
-
-axe_z = dir_z
-axe_a = dir_a
-axe_b = dir_b
-axe_c = dir_c
-
-cyl_1 = geompy.MakeCylinder(point_0, dir_z, rc1, hc1)
-
-cyl_t = geompy.MakeCylinder(point_0, dir_a, rc2, hc2)
-cyl_a = geompy.MakeTranslation(cyl_t, 1.2*rc1, 0.1*rc1, -0.5*hc1)
-
-cyl_t = geompy.MakeCylinder(point_0, dir_b, rc3, hc3)
-cyl_b = geompy.MakeTranslation(cyl_t, -1.2*rc1, -0.1*rc1, -0.5*hc1)
-
-cyl_t = geompy.MakeCylinder(point_0, dir_c, rc4, hc4)
-cyl_t = geompy.MakeRotation(cyl_t, axe_c, pi/2)
-cyl_c = geompy.MakeTranslation(cyl_t, -hc1, 0, 0)
-cyl_d = geompy.MakeTranslation(cyl_t, -hc1, 0, 1.3*rc4)
-
-inter_t = geompy.MakeBoolean(cyl_c,cyl_d, 1) # common
-
-blob_t = geompy.MakeBoolean(cyl_1, cyl_a, 2) # cut
-blob_t = geompy.MakeBoolean(blob_t, cyl_b, 2)
-
-blob = geompy.MakeBoolean(blob_t, inter_t, 1) # common
-
-idblob = geompy.addToStudy(blob,"blob")
-#idc = geompy.addToStudy(cyl_c,"cyl_c")
-#idd = geompy.addToStudy(cyl_d,"cyl_d")
diff --git a/src/SMESH_SWIG/SMESH_test4.py b/src/SMESH_SWIG/SMESH_test4.py
deleted file mode 100755 (executable)
index 09271b6..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-import salome
-import geompy
-import SMESH
-import StdMeshers
-
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-smesh.SetCurrentStudy(salome.myStudy)
-
-box   = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
-idbox = geompy.addToStudy(box, "box")
-
-subShapeList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
-face   = subShapeList[0]
-name   = geompy.SubShapeName(face, box)
-idface = geompy.addToStudyInFather(box, face, name)
-
-box  = salome.IDToObject(idbox)
-face = salome.IDToObject(idface)
-
-hyp1 = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-hyp1.SetNumberOfSegments(10)
-hyp2 = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")
-hyp2.SetMaxElementArea(10)
-hyp3 = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")
-hyp3.SetMaxElementArea(100)
-
-algo1 = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
-algo2 = smesh.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so")
-
-mesh = smesh.CreateMesh(box)
-mesh.AddHypothesis(box,hyp1)
-mesh.AddHypothesis(box,hyp2)
-mesh.AddHypothesis(box,algo1)
-mesh.AddHypothesis(box,algo2)
-
-submesh = mesh.GetSubMesh(face, "SubMeshFace")
-mesh.AddHypothesis(face,hyp1)
-mesh.AddHypothesis(face,hyp3)
-mesh.AddHypothesis(face,algo1)
-mesh.AddHypothesis(face,algo2)
-
-smesh.Compute(mesh,box)
-
-faces = submesh.GetElementsByType(SMESH.FACE)
-if len(faces) > 1:
-    print len(faces), len(faces)/2
-    group1 = mesh.CreateGroup(SMESH.FACE,"Group of faces")
-    group2 = mesh.CreateGroup(SMESH.FACE,"Another group of faces")
-    group1.Add(faces[:int(len(faces)/2)])
-    group2.Add(faces[int(len(faces)/2):])
-
-salome.sg.updateObjBrowser(1)
diff --git a/src/SMESH_SWIG/SMESH_test5.py b/src/SMESH_SWIG/SMESH_test5.py
deleted file mode 100644 (file)
index 8a9e148..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : SMESH_test1.py
-#  Module : SMESH
-
-import salome
-import SMESH
-import SALOMEDS
-import CORBA
-import os
-import os.path
-
-def SetSObjName(theSObj,theName) :
-    ok, anAttr = theSObj.FindAttribute("AttributeName")
-    if ok:
-        aName = anAttr._narrow(SALOMEDS.AttributeName)
-        #print aName.__dict__
-        aName.SetValue(theName)
-
-def ConvertMED2UNV(thePath,theFile) :
-    anInitFileName = thePath + theFile
-    aMeshes,aResult = smesh.CreateMeshesFromMED(anInitFileName)
-    print aResult, aMeshes
-
-    for iMesh in range(len(aMeshes)) :
-        aMesh = aMeshes[iMesh]
-        anSObj = salome.ObjectToSObject(aMesh)
-        print anSObj.GetName(),
-        aFileName = anInitFileName
-        aFileName = os.path.basename(aFileName)
-        SetSObjName(anSObj,aFileName)
-        print anSObj.GetName()
-
-        aOutPath = '/tmp/'
-        aFileName = aOutPath + theFile + "." + str(iMesh) + ".unv"
-        aMesh.ExportUNV(aFileName)
-        aMesh = smesh.CreateMeshesFromUNV(aFileName)
-        anSObj = salome.ObjectToSObject(aMesh)
-        print anSObj.GetName(),
-        os.remove(aFileName)
-        aFileName = os.path.basename(aFileName)
-        SetSObjName(anSObj,aFileName)
-        print anSObj.GetName()
-
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-smesh.SetCurrentStudy(salome.myStudy)
-
-aPath = os.getenv('KERNEL_ROOT_DIR') + '/examples/'
-aListDir = os.listdir(aPath)
-print aListDir
-
-for iFile in range(len(aListDir)) :
-    aFileName = aListDir[iFile]
-    aName,anExt = os.path.splitext(aFileName)
-    if anExt == ".med" :
-        aFileName = os.path.basename(aFileName)
-        print aFileName
-        ConvertMED2UNV(aPath,aFileName)
-        #break
-
-salome.sg.updateObjBrowser(1)
diff --git a/src/SMESH_SWIG/batchmode_mefisto.py b/src/SMESH_SWIG/batchmode_mefisto.py
deleted file mode 100644 (file)
index 203b160..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-import os
-import re
-
-import batchmode_salome
-import batchmode_geompy
-import batchmode_smesh
-import StdMeshers
-
-smesh = batchmode_smesh.smesh
-smesh.SetCurrentStudy(batchmode_salome.myStudy)
-
-def CreateMesh (theFileName, area, len = None, nbseg = None):
-    
-    if not(os.path.isfile(theFileName)) or re.search("\.brep$", theFileName) is None :
-        print "Incorrect file name !"
-        return
-
-    if (len is None) and (nbseg is None):
-        print "Define length or number of segments !"
-        return
-
-    if (len is not None) and (nbseg is not None):
-        print "Only one Hypothesis (from length and number of segments) can be defined !"
-        return
-
-    
-    # ----  Import shape from BREP file and add it to the study  
-    shape_mesh = batchmode_geompy.Import(theFileName, "BREP")
-    Id_shape = batchmode_geompy.addToStudy(shape_mesh, "shape_mesh")
-
-
-    # ---- SMESH
-      
-    print "-------------------------- create Hypothesis"
-    if (len is not None):
-        print "-------------------------- LocalLength"
-        hypLength1 = smesh.CreateHypothesis("LocalLength", "libStdMeshersEngine.so")
-        hypLength1.SetLength(len)
-        print "Hypothesis type : ", hypLength1.GetName()
-        print "Hypothesis ID   : ", hypLength1.GetId()
-        print "Hypothesis Value: ", hypLength1.GetLength()
-    
-    if (nbseg is not None):   
-        print "-------------------------- NumberOfSegments"
-        hypNbSeg1 = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
-        hypNbSeg1.SetNumberOfSegments(nbseg)
-        print "Hypothesis type : ", hypNbSeg1.GetName()
-        print "Hypothesis ID   : ", hypNbSeg1.GetId()
-        print "Hypothesis Value: ", hypNbSeg1.GetNumberOfSegments()
-
-    if (area == "LengthFromEdges"):
-        print "-------------------------- LengthFromEdges"
-        hypLengthFromEdges = smesh.CreateHypothesis("LengthFromEdges", "libStdMeshersEngine.so")
-        hypLengthFromEdges.SetMode(1)
-        print "Hypothesis type     : ", hypLengthFromEdges.GetName()
-        print "Hypothesis ID       : ", hypLengthFromEdges.GetId()
-        print "LengthFromEdges Mode: ", hypLengthFromEdges.GetMode()
-       
-    else:
-        print "-------------------------- MaxElementArea"
-        hypArea1 = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")
-        hypArea1.SetMaxElementArea(area)
-        print "Hypothesis type : ", hypArea1.GetName()
-        print "Hypothesis ID   : ", hypArea1.GetId()
-        print "Hypothesis Value: ", hypArea1.GetMaxElementArea()
-              
-    
-    print "-------------------------- Regular_1D"
-    algoReg = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
-   
-    listHyp = algoReg.GetCompatibleHypothesis()
-    for hyp in listHyp:
-        print hyp
-    
-    print "Algo name: ", algoReg.GetName()
-    print "Algo ID  : ", algoReg.GetId()
-   
-    print "-------------------------- MEFISTO_2D"
-    algoMef = smesh.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so")
-    
-    listHyp = algoMef.GetCompatibleHypothesis()
-    for hyp in listHyp:
-        print hyp
-        
-    print "Algo name: ", algoMef.GetName()
-    print "Algo ID  : ", algoMef.GetId()
-
-
-    # ---- add hypothesis to shape
-
-    print "-------------------------- add hypothesis to shape"
-    mesh = smesh.CreateMesh(shape_mesh) 
-
-    ret = mesh.AddHypothesis(shape_mesh, algoReg)
-    print "Add Regular_1D algo .... ", 
-    print ret
-    
-    if (nbseg is not None):
-        ret = mesh.AddHypothesis(shape_mesh, hypNbSeg1)
-        print "Add Number Of Segements algo .... ", 
-        print ret
-
-    if (len is not None):
-        ret = mesh.AddHypothesis(shape_mesh,hypLength1)
-        print "Add  Local Length algo .... ", 
-        print ret
-
-    ret = mesh.AddHypothesis(shape_mesh, algoMef)
-    print "Add MEFISTO_2D algo....", 
-    print ret
-    
-    if (area == "LengthFromEdges"):
-        ret = mesh.AddHypothesis( shape_mesh, hypLengthFromEdges)    # length from edge 
-        print "Add Length From Edges algo .... ",
-        print ret
-    else:
-        ret = mesh.AddHypothesis(shape_mesh, hypArea1)
-        print "Add Max Triangle Area algo .... ", 
-        print ret
-    
-    print "-------------------------- compute mesh"
-    ret = smesh.Compute(mesh,shape_mesh)
-    print  "Compute Mesh .... ", 
-    print ret
-    log = mesh.GetLog(0); # no erase trace
-    #for linelog in log:
-    #    print linelog
-
-    print "------------ INFORMATION ABOUT MESH ------------"
-    
-    print "Number of nodes    : ", mesh.NbNodes()
-    print "Number of edges    : ", mesh.NbEdges()
-    print "Number of faces    : ", mesh.NbFaces()
-    print "Number of triangles: ", mesh.NbTriangles()
-
-    return mesh
diff --git a/src/SMESH_SWIG/batchmode_smesh.py b/src/SMESH_SWIG/batchmode_smesh.py
deleted file mode 100644 (file)
index 4964c8b..0000000
+++ /dev/null
@@ -1,304 +0,0 @@
-#  Copyright (C) 2003  CEA/DEN, EDF R&D
-#
-#
-#
-#  File   : batchmode_smesh.py
-#  Author : Oksana TCHEBANOVA
-#  Module : SMESH
-#  $Header$
-
-from batchmode_salome import *
-from batchmode_geompy import ShapeType
-import SMESH
-
-#--------------------------------------------------------------------------
-modulecatalog = naming_service.Resolve("/Kernel/ModulCatalog")
-
-smesh = lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-myStudyBuilder = myStudy.NewBuilder()
-
-if myStudyBuilder is None:
-       raise RuntimeError, " Null myStudyBuilder"
-
-father = myStudy.FindComponent("SMESH")
-if father is None:
-        father = myStudyBuilder.NewComponent("SMESH")
-        FName = myStudyBuilder.FindOrCreateAttribute(father, "AttributeName")
-       Comp = modulecatalog.GetComponent("SMESH")
-       FName.SetValue(Comp._get_componentusername())
-       aPixmap = myStudyBuilder.FindOrCreateAttribute(father, "AttributePixMap")
-       aPixmap.SetPixMap("ICON_OBJBROWSER_Mesh")
-
-myStudyBuilder.DefineComponentInstance(father,smesh)
-
-mySComponentMesh = father._narrow(SALOMEDS.SComponent)
-
-Tag_HypothesisRoot  = 1
-Tag_AlgorithmsRoot  = 2
-  
-Tag_RefOnShape      = 1
-Tag_RefOnAppliedHypothesis = 2
-Tag_RefOnAppliedAlgorithms = 3
-  
-Tag_SubMeshOnVertex = 4
-Tag_SubMeshOnEdge = 5
-Tag_SubMeshOnFace = 6
-Tag_SubMeshOnSolid = 7
-Tag_SubMeshOnCompound = 8
-
-Tag = {"HypothesisRoot":1,"AlgorithmsRoot":2,"RefOnShape":1,"RefOnAppliedHypothesis":2,"RefOnAppliedAlgorithms":3,"SubMeshOnVertex":4,"SubMeshOnEdge":5,"SubMeshOnFace":6,"SubMeshOnSolid":7,"SubMeshOnCompound":8}
-
-#------------------------------------------------------------
-def Init():
-        pass
-#------------------------------------------------------------
-def AddNewMesh(IOR):
-       # VSR: added temporarily - objects are published automatically by the engine
-       aSO = myStudy.FindObjectIOR( IOR )
-       if aSO is not None:
-               return aSO.GetID()
-       # VSR ######################################################################
-       
-       res,HypothesisRoot = mySComponentMesh.FindSubObject ( Tag_HypothesisRoot )
-       if HypothesisRoot is None or res == 0:
-               HypothesisRoot = myStudyBuilder.NewObjectToTag(mySComponentMesh, Tag_HypothesisRoot)
-               aName = myStudyBuilder.FindOrCreateAttribute(HypothesisRoot, "AttributeName")
-               aName.SetValue("Hypotheses")
-               aPixmap = myStudyBuilder.FindOrCreateAttribute(HypothesisRoot, "AttributePixMap")
-               aPixmap.SetPixMap( "mesh_tree_hypo.png" )
-               aSelAttr = myStudyBuilder.FindOrCreateAttribute(HypothesisRoot, "AttributeSelectable")
-               aSelAttr.SetSelectable(0)
-
-       res, AlgorithmsRoot = mySComponentMesh.FindSubObject (Tag_AlgorithmsRoot)
-       if AlgorithmsRoot is None  or res == 0:
-               AlgorithmsRoot = myStudyBuilder.NewObjectToTag (mySComponentMesh, Tag_AlgorithmsRoot)
-               aName = myStudyBuilder.FindOrCreateAttribute(AlgorithmsRoot, "AttributeName")
-               aName.SetValue("Algorithms")
-               aPixmap = myStudyBuilder.FindOrCreateAttribute(AlgorithmsRoot, "AttributePixMap")
-               aPixmap.SetPixMap( "mesh_tree_algo.png" )
-               aSelAttr = myStudyBuilder.FindOrCreateAttribute(AlgorithmsRoot, "AttributeSelectable")
-               aSelAttr.SetSelectable(0)
-
-       HypothesisRoot = HypothesisRoot._narrow(SALOMEDS.SObject)
-       newMesh = myStudyBuilder.NewObject(mySComponentMesh)
-       aPixmap = myStudyBuilder.FindOrCreateAttribute(newMesh, "AttributePixMap")
-       aPixmap.SetPixMap( "mesh_tree_mesh.png" )
-       anIOR = myStudyBuilder.FindOrCreateAttribute(newMesh, "AttributeIOR")
-       anIOR.SetValue(IOR)
-       return newMesh.GetID()
-
-#------------------------------------------------------------  
-def AddNewHypothesis(IOR):
-       # VSR: added temporarily - objects are published automatically by the engine
-       aSO = myStudy.FindObjectIOR( IOR )
-       if aSO is not None:
-               return aSO.GetID()
-       # VSR ######################################################################
-
-       res, HypothesisRoot = mySComponentMesh.FindSubObject (Tag_HypothesisRoot)
-       if HypothesisRoot is None or res == 0:
-               HypothesisRoot = myStudyBuilder.NewObjectToTag (mySComponentMesh, Tag_HypothesisRoot)
-               aName = myStudyBuilder.FindOrCreateAttribute(HypothesisRoot, "AttributeName")
-               aName.SetValue("Hypotheses")
-               aSelAttr = myStudyBuilder.FindOrCreateAttribute(HypothesisRoot, "AttributeSelectable")
-               aSelAttr.SetSelectable(0)
-               aPixmap = myStudyBuilder.FindOrCreateAttribute(HypothesisRoot, "AttributePixMap")
-               aPixmap.SetPixMap( "mesh_tree_hypo.png" )
-       # Add New Hypothesis
-       newHypo = myStudyBuilder.NewObject(HypothesisRoot)
-       aPixmap = myStudyBuilder.FindOrCreateAttribute(newHypo, "AttributePixMap")
-       H = orb.string_to_object(IOR)
-       aType = H.GetName()
-       aPixmap.SetPixMap( "mesh_tree_hypo.png_" + aType )
-       anIOR = myStudyBuilder.FindOrCreateAttribute(newHypo, "AttributeIOR")
-       anIOR.SetValue(IOR)
-       return newHypo.GetID()
-
-#------------------------------------------------------------
-def AddNewAlgorithms(IOR):
-       # VSR: added temporarily - objects are published automatically by the engine
-       aSO = myStudy.FindObjectIOR( IOR )
-       if aSO is not None:
-               return aSO.GetID()
-       # VSR ######################################################################
-
-       res, AlgorithmsRoot = mySComponentMesh.FindSubObject (Tag_AlgorithmsRoot)
-       if  AlgorithmsRoot is None or res == 0:
-               AlgorithmsRoot = myStudyBuilde.NewObjectToTag (mySComponentMesh, Tag_AlgorithmsRoot)
-               aName = myStudyBuilder.FindOrCreateAttribute(AlgorithmsRoot, "AttributeName")
-               aName.SetValue("Algorithms")
-               aSelAttr = myStudyBuilder.FindOrCreateAttribute(AlgorithmsRoot, "AttributeSelectable")
-               aSelAttr.SetSelectable(0)
-               aPixmap = myStudyBuilder.FindOrCreateAttribute(AlgorithmsRoot, "AttributePixMap")
-               aPixmap.SetPixMap( "mesh_tree_algo.png" )
-
-  # Add New Algorithms
-       newHypo = myStudyBuilder.NewObject(AlgorithmsRoot)
-       aPixmap = myStudyBuilder.FindOrCreateAttribute(newHypo, "AttributePixMap")
-       aPixmap = anAttr._narrow(SALOMEDS.AttributePixMap)
-       H = orb.string_to_object(IOR)
-       aType = H.GetName();    #QString in fact
-       aPixmap.SetPixMap( "mesh_tree_algo.png_" + aType )
-       anIOR = myStudyBuilder.FindOrCreateAttribute(newHypo, "AttributeIOR")
-       anIOR.SetValue(IOR)
-       return newHypo.GetID()
-
-
-#------------------------------------------------------------
-def SetShape(ShapeEntry, MeshEntry):
-       SO_MorSM = myStudy.FindObjectID( MeshEntry )
-       SO_GeomShape = myStudy.FindObjectID( ShapeEntry )
-
-       if SO_MorSM is not None and SO_GeomShape is not None :
-               # VSR: added temporarily - shape reference is published automatically by the engine
-               res, Ref = SO_MorSM.FindSubObject( Tag_RefOnShape )
-               if res == 1 :
-                       return
-               # VSR ######################################################################
-       
-               SO = myStudyBuilder.NewObjectToTag (SO_MorSM, Tag_RefOnShape)
-               myStudyBuilder.Addreference (SO,SO_GeomShape)
-
-
-#------------------------------------------------------------
-def SetHypothesis(Mesh_Or_SubMesh_Entry, Hypothesis_Entry):
-  SO_MorSM = myStudy.FindObjectID( Mesh_Or_SubMesh_Entry )
-  SO_Hypothesis =  myStudy.FindObjectID( Hypothesis_Entry )
-
-  if  SO_MorSM is not None and SO_Hypothesis is not None : 
-    
-        #Find or Create Applied Hypothesis root
-       res, AHR = SO_MorSM.FindSubObject (Tag_RefOnAppliedHypothesis)
-       if  AHR is None or res == 0: 
-               AHR = myStudyBuilder.NewObjectToTag (SO_MorSM, Tag_RefOnAppliedHypothesis)
-               aName = myStudyBuilder.FindOrCreateAttribute(AHR, "AttributeName")
-               
-               # The same name as in SMESH_Mesh_i::AddHypothesis() ##################
-               aName.SetValue("Applied hypotheses")
-               
-               aSelAttr = myStudyBuilder.FindOrCreateAttribute(AHR, "AttributeSelectable")
-               aSelAttr.SetSelectable(0)
-               aPixmap = myStudyBuilder.FindOrCreateAttribute(AHR, "AttributePixMap")
-               aPixmap.SetPixMap( "mesh_tree_hypo.png" )
-               
-       # VSR: added temporarily - reference to applied hypothesis is published automatically by the engine
-       else :
-               it = myStudy.NewChildIterator(AHR)
-               while it.More() :
-                       res, Ref = it.Value().ReferencedObject()
-                       if res and Ref is not None and Ref.GetID() == Hypothesis_Entry :
-                               return
-                       it.Next()
-       # VSR ######################################################################
-       
-       SO = myStudyBuilder.NewObject(AHR)
-       myStudyBuilder.Addreference (SO,SO_Hypothesis)
-
-#------------------------------------------------------------
-def SetAlgorithms(Mesh_Or_SubMesh_Entry, Algorithms_Entry):
-    SO_MorSM = myStudy.FindObjectID( Mesh_Or_SubMesh_Entry )
-    SO_Algorithms = myStudy.FindObjectID( Algorithms_Entry )
-    if  SO_MorSM != None and SO_Algorithms != None : 
-       #Find or Create Applied Algorithms root
-       res, AHR = SO_MorSM.FindSubObject (Tag_RefOnAppliedAlgorithms)
-       if AHR is None or res == 0: 
-               AHR = myStudyBuilder.NewObjectToTag (SO_MorSM, Tag_RefOnAppliedAlgorithms)
-               aName = myStudyBuilder.FindOrCreateAttribute(AHR, "AttributeName")
-
-               # The same name as in SMESH_Mesh_i::AddHypothesis() ##################
-               aName.SetValue("Applied algorithms")
-               
-               aSelAttr = myStudyBuilder.FindOrCreateAttribute(AHR, "AttributeSelectable")
-               aSelAttr.SetSelectable(0)
-               aPixmap = myStudyBuilder.FindOrCreateAttribute(AHR, "AttributePixMap")
-               aPixmap.SetPixMap( "mesh_tree_algo.png" )
-                       
-       # VSR: added temporarily - reference to applied hypothesis is published automatically by the engine
-       else :
-               it = myStudy.NewChildIterator(AHR)
-               while it.More() :
-                       res, Ref = it.Value().ReferencedObject()
-                       if res and Ref is not None and Ref.GetID() == Algorithms_Entry :
-                               return
-                       it.Next()
-       # VSR ######################################################################
-       
-       SO = myStudyBuilder.NewObject(AHR)
-       myStudyBuilder.Addreference (SO,SO_Algorithms)
-  
-
-#------------------------------------------------------------
-def UnSetHypothesis( Applied_Hypothesis_Entry ):
-       SO_Applied_Hypothesis = myStudy.FindObjectID( Applied_Hypothesis_Entry )
-       if SO_Applied_Hypothesis : 
-               myStudyBuilder.RemoveObject(SO_Applied_Hypothesis)
-       
-
-#------------------------------------------------------------
-def AddSubMesh ( SO_Mesh_Entry, SM_IOR, ST):
-       # VSR: added temporarily - objects are published automatically by the engine
-       aSO = myStudy.FindObjectIOR( SM_IOR )
-       if aSO is not None:
-               return aSO.GetID()
-       # VSR ######################################################################
-       
-       SO_Mesh = myStudy.FindObjectID( SO_Mesh_Entry )
-       if ( SO_Mesh ) : 
-    
-               if  ST == ShapeType["COMPSOLID"] : 
-                       Tag_Shape = Tag_SubMeshOnSolid
-                       Name = "SubMeshes on Solid"
-               elif ST == ShapeType["FACE"] :
-                       Tag_Shape = Tag_SubMeshOnFace
-                       Name = "SubMeshes on Face"
-               elif ST == ShapeType["EDGE"] :
-                       Tag_Shape = Tag_SubMeshOnEdge
-                       Name = "SubMeshes on Edge"
-               elif ST == ShapeType["VERTEX"] :
-                       Tag_Shape = Tag_SubMeshOnVertex
-                       Name = "SubMeshes on Vertex"
-               else :
-                       Tag_Shape = Tag_SubMeshOnCompound
-                       Name = "SubMeshes on Compound"
-               
-               res, SubmeshesRoot = SO_Mesh.FindSubObject (Tag_Shape)
-               if SubmeshesRoot is None or res == 0:
-                       SubmeshesRoot = myStudyBuilder.NewObjectToTag (SO_Mesh, Tag_Shape)
-                       aName = myStudyBuilder.FindOrCreateAttribute(SubmeshesRoot, "AttributeName")
-                       aName.SetValue(Name)
-                       aSelAttr = myStudyBuilder.FindOrCreateAttribute(SubmeshesRoot, "AttributeSelectable")
-                       aSelAttr.SetSelectable(0)
-               
-               SO = myStudyBuilder.NewObject (SubmeshesRoot)
-               anIOR = myStudyBuilder.FindOrCreateAttribute(SO, "AttributeIOR")
-               anIOR.SetValue(SM_IOR)
-               return  SO.GetID()
-
-       return None
-
-#------------------------------------------------------------
-def AddSubMeshOnShape (Mesh_Entry, GeomShape_Entry, SM_IOR, ST) :
-       # VSR: added temporarily - objects are published automatically by the engine
-       aSO = myStudy.FindObjectIOR( SM_IOR )
-       if aSO is not None:
-               return aSO.GetID()
-       # VSR ######################################################################
-       SO_GeomShape = myStudy.FindObjectID( GeomShape_Entry )
-       if  SO_GeomShape != None : 
-               SM_Entry = AddSubMesh (Mesh_Entry,SM_IOR,ST)
-               SO_SM = myStudy.FindObjectID( SM_Entry )
-
-               if  SO_SM != None :
-                       SetShape (GeomShape_Entry, SM_Entry)
-                       return SM_Entry
-
-       return None
-
-
-#------------------------------------------------------------
-def SetName(Entry, Name):
-       SO = myStudy.FindObjectID( Entry )
-       if SO != None : 
-               aName = myStudyBuilder.FindOrCreateAttribute(SO, "AttributeName")
-               aName.SetValue(Name)
diff --git a/src/SMESH_SWIG/ex00_all.py b/src/SMESH_SWIG/ex00_all.py
deleted file mode 100644 (file)
index b1aa726..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# CEA/LGLS 2005, Francis KLOSS (OCC)
-# ==================================
-
-# Load all examples
-# -----------------
-
-import ex01_cube2build
-import ex02_cube2primitive
-import ex03_cube2partition
-import ex04_cube5tetraHexa
-import ex05_hole1build
-import ex06_hole1boolean
-import ex07_hole1partition
-import ex08_hole2build
-import ex09_grid4build
-import ex10_grid4geometry
-import ex11_grid3partition
-import ex12_grid17partition
-import ex13_hole1partial
-import ex14_cyl1holed
-import ex15_cyl2geometry
-import ex16_cyl2complementary
-import ex17_dome1
-import ex18_dome2
-import ex19_sphereINcube
diff --git a/src/SMESH_SWIG/ex01_cube2build.py b/src/SMESH_SWIG/ex01_cube2build.py
deleted file mode 100644 (file)
index 02b5b15..0000000
+++ /dev/null
@@ -1,293 +0,0 @@
-# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
-# =======================================
-
-from geompy import *
-
-import smesh
-
-# Geometry
-# ========
-
-# A small cube centered and put on a great cube build by points, edges, faces and solids
-
-# Points
-# ------
-
-greatPoint111 = MakeVertex( 0,  0,  0)
-greatPoint211 = MakeVertex(10,  0,  0)
-greatPoint311 = MakeVertex(20,  0,  0)
-greatPoint411 = MakeVertex(30,  0,  0)
-
-greatPoint121 = MakeVertex( 0, 10,  0)
-greatPoint221 = MakeVertex(10, 10,  0)
-greatPoint321 = MakeVertex(20, 10,  0)
-greatPoint421 = MakeVertex(30, 10,  0)
-
-greatPoint112 = MakeVertex( 0,  0, 10)
-greatPoint212 = MakeVertex(10,  0, 10)
-greatPoint312 = MakeVertex(20,  0, 10)
-greatPoint412 = MakeVertex(30,  0, 10)
-
-greatPoint122 = MakeVertex( 0, 10, 10)
-greatPoint222 = MakeVertex(10, 10, 10)
-greatPoint322 = MakeVertex(20, 10, 10)
-greatPoint422 = MakeVertex(30, 10, 10)
-
-greatPoint113 = MakeVertex( 0,  0, 20)
-greatPoint213 = MakeVertex(10,  0, 20)
-greatPoint313 = MakeVertex(20,  0, 20)
-greatPoint413 = MakeVertex(30,  0, 20)
-
-greatPoint123 = MakeVertex( 0, 10, 20)
-greatPoint223 = MakeVertex(10, 10, 20)
-greatPoint323 = MakeVertex(20, 10, 20)
-greatPoint423 = MakeVertex(30, 10, 20)
-
-greatPoint114 = MakeVertex( 0,  0, 30)
-greatPoint214 = MakeVertex(10,  0, 30)
-greatPoint314 = MakeVertex(20,  0, 30)
-greatPoint414 = MakeVertex(30,  0, 30)
-
-greatPoint124 = MakeVertex( 0, 10, 30)
-greatPoint224 = MakeVertex(10, 10, 30)
-greatPoint324 = MakeVertex(20, 10, 30)
-greatPoint424 = MakeVertex(30, 10, 30)
-
-
-smallPoint111 = greatPoint222
-smallPoint211 = greatPoint322
-smallPoint121 = MakeVertex(10, 20, 10)
-smallPoint221 = MakeVertex(20, 20, 10)
-
-smallPoint112 = greatPoint223
-smallPoint212 = greatPoint323
-smallPoint122 = MakeVertex(10, 20, 20)
-smallPoint222 = MakeVertex(20, 20, 20)
-
-# Edges
-# -----
-
-smallEdgeX11 = MakeEdge(smallPoint111, smallPoint211)
-smallEdgeX21 = MakeEdge(smallPoint121, smallPoint221)
-smallEdgeX12 = MakeEdge(smallPoint112, smallPoint212)
-smallEdgeX22 = MakeEdge(smallPoint122, smallPoint222)
-
-smallEdgeY11 = MakeEdge(smallPoint111, smallPoint121)
-smallEdgeY21 = MakeEdge(smallPoint211, smallPoint221)
-smallEdgeY12 = MakeEdge(smallPoint112, smallPoint122)
-smallEdgeY22 = MakeEdge(smallPoint212, smallPoint222)
-
-smallEdgeZ11 = MakeEdge(smallPoint111, smallPoint112)
-smallEdgeZ21 = MakeEdge(smallPoint211, smallPoint212)
-smallEdgeZ12 = MakeEdge(smallPoint121, smallPoint122)
-smallEdgeZ22 = MakeEdge(smallPoint221, smallPoint222)
-
-
-greatEdgeX111 = MakeEdge(greatPoint111, greatPoint211)
-greatEdgeX211 = MakeEdge(greatPoint211, greatPoint311)
-greatEdgeX311 = MakeEdge(greatPoint311, greatPoint411)
-greatEdgeX121 = MakeEdge(greatPoint121, greatPoint221)
-greatEdgeX221 = MakeEdge(greatPoint221, greatPoint321)
-greatEdgeX321 = MakeEdge(greatPoint321, greatPoint421)
-
-greatEdgeX112 = MakeEdge(greatPoint112, greatPoint212)
-greatEdgeX212 = MakeEdge(greatPoint212, greatPoint312)
-greatEdgeX312 = MakeEdge(greatPoint312, greatPoint412)
-greatEdgeX122 = MakeEdge(greatPoint122, greatPoint222)
-greatEdgeX222 = smallEdgeX11
-greatEdgeX322 = MakeEdge(greatPoint322, greatPoint422)
-
-greatEdgeX113 = MakeEdge(greatPoint113, greatPoint213)
-greatEdgeX213 = MakeEdge(greatPoint213, greatPoint313)
-greatEdgeX313 = MakeEdge(greatPoint313, greatPoint413)
-greatEdgeX123 = MakeEdge(greatPoint123, greatPoint223)
-greatEdgeX223 = smallEdgeX12
-greatEdgeX323 = MakeEdge(greatPoint323, greatPoint423)
-
-greatEdgeX114 = MakeEdge(greatPoint114, greatPoint214)
-greatEdgeX214 = MakeEdge(greatPoint214, greatPoint314)
-greatEdgeX314 = MakeEdge(greatPoint314, greatPoint414)
-greatEdgeX124 = MakeEdge(greatPoint124, greatPoint224)
-greatEdgeX224 = MakeEdge(greatPoint224, greatPoint324)
-greatEdgeX324 = MakeEdge(greatPoint324, greatPoint424)
-
-greatEdgeY11 = MakeEdge(greatPoint111, greatPoint121)
-greatEdgeY21 = MakeEdge(greatPoint211, greatPoint221)
-greatEdgeY31 = MakeEdge(greatPoint311, greatPoint321)
-greatEdgeY41 = MakeEdge(greatPoint411, greatPoint421)
-
-greatEdgeY12 = MakeEdge(greatPoint112, greatPoint122)
-greatEdgeY22 = MakeEdge(greatPoint212, greatPoint222)
-greatEdgeY32 = MakeEdge(greatPoint312, greatPoint322)
-greatEdgeY42 = MakeEdge(greatPoint412, greatPoint422)
-
-greatEdgeY13 = MakeEdge(greatPoint113, greatPoint123)
-greatEdgeY23 = MakeEdge(greatPoint213, greatPoint223)
-greatEdgeY33 = MakeEdge(greatPoint313, greatPoint323)
-greatEdgeY43 = MakeEdge(greatPoint413, greatPoint423)
-
-greatEdgeY14 = MakeEdge(greatPoint114, greatPoint124)
-greatEdgeY24 = MakeEdge(greatPoint214, greatPoint224)
-greatEdgeY34 = MakeEdge(greatPoint314, greatPoint324)
-greatEdgeY44 = MakeEdge(greatPoint414, greatPoint424)
-
-greatEdgeZ111 = MakeEdge(greatPoint111, greatPoint112)
-greatEdgeZ211 = MakeEdge(greatPoint211, greatPoint212)
-greatEdgeZ311 = MakeEdge(greatPoint311, greatPoint312)
-greatEdgeZ411 = MakeEdge(greatPoint411, greatPoint412)
-
-greatEdgeZ121 = MakeEdge(greatPoint121, greatPoint122)
-greatEdgeZ221 = MakeEdge(greatPoint221, greatPoint222)
-greatEdgeZ321 = MakeEdge(greatPoint321, greatPoint322)
-greatEdgeZ421 = MakeEdge(greatPoint421, greatPoint422)
-
-greatEdgeZ112 = MakeEdge(greatPoint112, greatPoint113)
-greatEdgeZ212 = MakeEdge(greatPoint212, greatPoint213)
-greatEdgeZ312 = MakeEdge(greatPoint312, greatPoint313)
-greatEdgeZ412 = MakeEdge(greatPoint412, greatPoint413)
-
-greatEdgeZ122 = MakeEdge(greatPoint122, greatPoint123)
-greatEdgeZ222 = smallEdgeZ11
-greatEdgeZ322 = smallEdgeZ21
-greatEdgeZ422 = MakeEdge(greatPoint422, greatPoint423)
-
-greatEdgeZ113 = MakeEdge(greatPoint113, greatPoint114)
-greatEdgeZ213 = MakeEdge(greatPoint213, greatPoint214)
-greatEdgeZ313 = MakeEdge(greatPoint313, greatPoint314)
-greatEdgeZ413 = MakeEdge(greatPoint413, greatPoint414)
-
-greatEdgeZ123 = MakeEdge(greatPoint123, greatPoint124)
-greatEdgeZ223 = MakeEdge(greatPoint223, greatPoint224)
-greatEdgeZ323 = MakeEdge(greatPoint323, greatPoint324)
-greatEdgeZ423 = MakeEdge(greatPoint423, greatPoint424)
-
-# Faces
-# -----
-
-smallFaceX1 = MakeQuad(smallEdgeY11, smallEdgeZ11, smallEdgeY12, smallEdgeZ12)
-smallFaceX2 = MakeQuad(smallEdgeY21, smallEdgeZ21, smallEdgeY22, smallEdgeZ22)
-smallFaceY1 = MakeQuad(smallEdgeX11, smallEdgeZ11, smallEdgeX12, smallEdgeZ21)
-smallFaceY2 = MakeQuad(smallEdgeX21, smallEdgeZ12, smallEdgeX22, smallEdgeZ22)
-smallFaceZ1 = MakeQuad(smallEdgeX11, smallEdgeY11, smallEdgeX21, smallEdgeY21)
-smallFaceZ2 = MakeQuad(smallEdgeX12, smallEdgeY12, smallEdgeX22, smallEdgeY22)
-
-
-greatFaceX11 = MakeQuad(greatEdgeY11, greatEdgeZ111, greatEdgeY12, greatEdgeZ121)
-greatFaceX21 = MakeQuad(greatEdgeY21, greatEdgeZ211, greatEdgeY22, greatEdgeZ221)
-greatFaceX31 = MakeQuad(greatEdgeY31, greatEdgeZ311, greatEdgeY32, greatEdgeZ321)
-greatFaceX41 = MakeQuad(greatEdgeY41, greatEdgeZ411, greatEdgeY42, greatEdgeZ421)
-
-greatFaceX12 = MakeQuad(greatEdgeY12, greatEdgeZ112, greatEdgeY13, greatEdgeZ122)
-greatFaceX22 = MakeQuad(greatEdgeY22, greatEdgeZ212, greatEdgeY23, greatEdgeZ222)
-greatFaceX32 = MakeQuad(greatEdgeY32, greatEdgeZ312, greatEdgeY33, greatEdgeZ322)
-greatFaceX42 = MakeQuad(greatEdgeY42, greatEdgeZ412, greatEdgeY43, greatEdgeZ422)
-
-greatFaceX13 = MakeQuad(greatEdgeY13, greatEdgeZ113, greatEdgeY14, greatEdgeZ123)
-greatFaceX23 = MakeQuad(greatEdgeY23, greatEdgeZ213, greatEdgeY24, greatEdgeZ223)
-greatFaceX33 = MakeQuad(greatEdgeY33, greatEdgeZ313, greatEdgeY34, greatEdgeZ323)
-greatFaceX43 = MakeQuad(greatEdgeY43, greatEdgeZ413, greatEdgeY44, greatEdgeZ423)
-
-greatFaceY111 = MakeQuad(greatEdgeX111, greatEdgeZ111, greatEdgeX112, greatEdgeZ211)
-greatFaceY211 = MakeQuad(greatEdgeX211, greatEdgeZ211, greatEdgeX212, greatEdgeZ311)
-greatFaceY311 = MakeQuad(greatEdgeX311, greatEdgeZ311, greatEdgeX312, greatEdgeZ411)
-greatFaceY121 = MakeQuad(greatEdgeX121, greatEdgeZ121, greatEdgeX122, greatEdgeZ221)
-greatFaceY221 = MakeQuad(greatEdgeX221, greatEdgeZ221, greatEdgeX222, greatEdgeZ321)
-greatFaceY321 = MakeQuad(greatEdgeX321, greatEdgeZ321, greatEdgeX322, greatEdgeZ421)
-
-greatFaceY112 = MakeQuad(greatEdgeX112, greatEdgeZ112, greatEdgeX113, greatEdgeZ212)
-greatFaceY212 = MakeQuad(greatEdgeX212, greatEdgeZ212, greatEdgeX213, greatEdgeZ312)
-greatFaceY312 = MakeQuad(greatEdgeX312, greatEdgeZ312, greatEdgeX313, greatEdgeZ412)
-greatFaceY122 = MakeQuad(greatEdgeX122, greatEdgeZ122, greatEdgeX123, greatEdgeZ222)
-greatFaceY222 = smallFaceY1
-greatFaceY322 = MakeQuad(greatEdgeX322, greatEdgeZ322, greatEdgeX323, greatEdgeZ422)
-
-greatFaceY113 = MakeQuad(greatEdgeX113, greatEdgeZ113, greatEdgeX114, greatEdgeZ213)
-greatFaceY213 = MakeQuad(greatEdgeX213, greatEdgeZ213, greatEdgeX214, greatEdgeZ313)
-greatFaceY313 = MakeQuad(greatEdgeX313, greatEdgeZ313, greatEdgeX314, greatEdgeZ413)
-greatFaceY123 = MakeQuad(greatEdgeX123, greatEdgeZ123, greatEdgeX124, greatEdgeZ223)
-greatFaceY223 = MakeQuad(greatEdgeX223, greatEdgeZ223, greatEdgeX224, greatEdgeZ323)
-greatFaceY323 = MakeQuad(greatEdgeX323, greatEdgeZ323, greatEdgeX324, greatEdgeZ423)
-
-greatFaceZ11 = MakeQuad(greatEdgeX111, greatEdgeY11, greatEdgeX121, greatEdgeY21)
-greatFaceZ21 = MakeQuad(greatEdgeX211, greatEdgeY21, greatEdgeX221, greatEdgeY31)
-greatFaceZ31 = MakeQuad(greatEdgeX311, greatEdgeY31, greatEdgeX321, greatEdgeY41)
-
-greatFaceZ12 = MakeQuad(greatEdgeX112, greatEdgeY12, greatEdgeX122, greatEdgeY22)
-greatFaceZ22 = MakeQuad(greatEdgeX212, greatEdgeY22, greatEdgeX222, greatEdgeY32)
-greatFaceZ32 = MakeQuad(greatEdgeX312, greatEdgeY32, greatEdgeX322, greatEdgeY42)
-
-greatFaceZ13 = MakeQuad(greatEdgeX113, greatEdgeY13, greatEdgeX123, greatEdgeY23)
-greatFaceZ23 = MakeQuad(greatEdgeX213, greatEdgeY23, greatEdgeX223, greatEdgeY33)
-greatFaceZ33 = MakeQuad(greatEdgeX313, greatEdgeY33, greatEdgeX323, greatEdgeY43)
-
-greatFaceZ14 = MakeQuad(greatEdgeX114, greatEdgeY14, greatEdgeX124, greatEdgeY24)
-greatFaceZ24 = MakeQuad(greatEdgeX214, greatEdgeY24, greatEdgeX224, greatEdgeY34)
-greatFaceZ34 = MakeQuad(greatEdgeX314, greatEdgeY34, greatEdgeX324, greatEdgeY44)
-
-# Solids
-# ------
-
-smallBlock   = MakeHexa(smallFaceX1, smallFaceX2, smallFaceY1, smallFaceY2, smallFaceZ1, smallFaceZ2)
-
-greatBlock11 = MakeHexa(greatFaceX11, greatFaceX21, greatFaceY111, greatFaceY121, greatFaceZ11, greatFaceZ12)
-greatBlock21 = MakeHexa(greatFaceX21, greatFaceX31, greatFaceY211, greatFaceY221, greatFaceZ21, greatFaceZ22)
-greatBlock31 = MakeHexa(greatFaceX31, greatFaceX41, greatFaceY311, greatFaceY321, greatFaceZ31, greatFaceZ32)
-
-greatBlock12 = MakeHexa(greatFaceX12, greatFaceX22, greatFaceY112, greatFaceY122, greatFaceZ12, greatFaceZ13)
-greatBlock22 = MakeHexa(greatFaceX22, greatFaceX32, greatFaceY212, greatFaceY222, greatFaceZ22, greatFaceZ23)
-greatBlock32 = MakeHexa(greatFaceX32, greatFaceX42, greatFaceY312, greatFaceY322, greatFaceZ32, greatFaceZ33)
-
-greatBlock13 = MakeHexa(greatFaceX13, greatFaceX23, greatFaceY113, greatFaceY123, greatFaceZ13, greatFaceZ14)
-greatBlock23 = MakeHexa(greatFaceX23, greatFaceX33, greatFaceY213, greatFaceY223, greatFaceZ23, greatFaceZ24)
-greatBlock33 = MakeHexa(greatFaceX33, greatFaceX43, greatFaceY313, greatFaceY323, greatFaceZ33, greatFaceZ34)
-
-# Compound
-# --------
-
-c_l = []
-c_l.append(smallBlock)
-c_l.append(greatBlock11)
-c_l.append(greatBlock21)
-c_l.append(greatBlock31)
-c_l.append(greatBlock12)
-c_l.append(greatBlock22)
-c_l.append(greatBlock32)
-c_l.append(greatBlock13)
-c_l.append(greatBlock23)
-c_l.append(greatBlock33)
-
-piece = MakeCompound(c_l)
-
-# Add in study
-# ------------
-
-piece_id = addToStudy(piece, "ex01_cube2build")
-
-# Meshing
-# =======
-
-# Create hexahedrical mesh on piece
-# ---------------------------------
-
-hexa = smesh.Mesh(piece, "ex01_cube2build:hexa")
-
-algo = hexa.Segment()
-algo.NumberOfSegments(4)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Create local hypothesis
-# -----------------------
-
-algo = hexa.Segment(greatEdgeX111)
-
-algo.Arithmetic1D(1, 4)
-
-algo.Propagation()
-
-# Compute the mesh
-# ----------------
-
-hexa.Compute()
diff --git a/src/SMESH_SWIG/ex02_cube2primitive.py b/src/SMESH_SWIG/ex02_cube2primitive.py
deleted file mode 100644 (file)
index 7475072..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
-# =======================================
-
-from geompy import *
-
-import smesh
-
-# Geometry
-# ========
-
-# A small cube centered and put on a great cube build by primitive geometric functionalities
-
-# Values
-# ------
-
-ox = 0
-oy = 0
-oz = 0
-
-arete = 10
-
-# Points
-# ------
-
-blockPoint111 = MakeVertex(ox      , oy, oz)
-blockPoint211 = MakeVertex(ox+arete, oy, oz)
-blockPoint112 = MakeVertex(ox      , oy, oz+arete)
-blockPoint212 = MakeVertex(ox+arete, oy, oz+arete)
-
-# Face and solid
-# --------------
-
-blockFace1 = MakeQuad4Vertices(blockPoint111, blockPoint211, blockPoint212, blockPoint112)
-
-blockSolid11  = MakePrismVecH(blockFace1, MakeVectorDXDYDZ(0, 1, 0), arete)
-
-# Translations
-# ------------
-
-blockSolid21  = MakeTranslation(blockSolid11, arete, 0, 0)
-blockSolid31  = MakeTranslation(blockSolid21, arete, 0, 0)
-
-blockSolid12  = MakeTranslation(blockSolid11, 0, 0, arete)
-blockSolid22  = MakeTranslation(blockSolid12, arete, 0, 0)
-blockSolid32  = MakeTranslation(blockSolid22, arete, 0, 0)
-
-blockSolid13  = MakeTranslation(blockSolid12, 0, 0, arete)
-blockSolid23  = MakeTranslation(blockSolid13, arete, 0, 0)
-blockSolid33  = MakeTranslation(blockSolid23, arete, 0, 0)
-
-blockSolid111 = MakeTranslation(blockSolid22, 0, arete, 0)
-
-# Compound and glue
-# -----------------
-
-c_l = []
-c_l.append(blockSolid11)
-c_l.append(blockSolid21)
-c_l.append(blockSolid31)
-c_l.append(blockSolid12)
-c_l.append(blockSolid22)
-c_l.append(blockSolid32)
-c_l.append(blockSolid13)
-c_l.append(blockSolid23)
-c_l.append(blockSolid33)
-c_l.append(blockSolid111)
-
-c_cpd = MakeCompound(c_l)
-
-piece = MakeGlueFaces(c_cpd, 1.e-5)
-
-# Add in study
-# ------------
-
-piece_id = addToStudy(piece, "ex02_cube2primitive")
-
-# Meshing
-# =======
-
-# Create hexahedrical mesh on piece
-# ---------------------------------
-
-hexa = smesh.Mesh(piece, "ex02_cube2primitive:hexa")
-
-algo = hexa.Segment()
-algo.LocalLength(1)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Compute the mesh
-# ----------------
-
-hexa.Compute()
diff --git a/src/SMESH_SWIG/ex03_cube2partition.py b/src/SMESH_SWIG/ex03_cube2partition.py
deleted file mode 100644 (file)
index cc56689..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
-# =======================================
-
-from geompy import *
-
-import smesh
-
-# Geometry
-# ========
-
-# A small cube centered and put on a great cube build with partition
-
-# Values
-# ------
-
-g_ox = 0
-g_oy = 0
-g_oz = 0
-
-g_arete = 10
-
-g_trim = 1000
-
-# Points
-# ------
-
-v_arete2 = g_arete*2
-v_arete3 = g_arete*3
-
-v_1 = MakeVertex(g_ox         , g_oy         , g_oz         )
-v_2 = MakeVertex(g_ox+v_arete3, g_oy+g_arete , g_oz+v_arete3)
-
-v_3 = MakeVertex(g_ox+g_arete , g_oy+g_arete , g_oz+g_arete )
-v_4 = MakeVertex(g_ox+v_arete2, g_oy+v_arete2, g_oz+v_arete2)
-
-# Solids
-# ------
-
-s_base = MakeBoxTwoPnt(v_1, v_2)
-s_haut = MakeBoxTwoPnt(v_3, v_4)
-
-# Partition
-# ---------
-
-p_dir1 = MakeVectorDXDYDZ(1, 0, 0)
-p_dir2 = MakeVectorDXDYDZ(0, 0, 1)
-p_dir3 = MakeVectorDXDYDZ(0, 1, 0)
-
-p_tools = []
-
-p_tools.append(MakePlane(v_3, p_dir1, g_trim))
-p_tools.append(MakePlane(v_4, p_dir1, g_trim))
-p_tools.append(MakePlane(v_3, p_dir2, g_trim))
-p_tools.append(MakePlane(v_4, p_dir2, g_trim))
-p_tools.append(MakePlane(v_3, p_dir3, g_trim))
-
-piece = MakePartition([s_base, s_haut], p_tools, [], [], ShapeType["SOLID"])
-
-# Study
-# -----
-
-piece_id = addToStudy(piece, "ex03_cube2partition")
-
-# Meshing
-# =======
-
-# Create hexahedrical mesh on piece
-# ---------------------------------
-
-hexa = smesh.Mesh(piece, "ex03_cube2partition:hexa")
-
-algo = hexa.Segment()
-algo.NumberOfSegments(5)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Compute the mesh
-# ----------------
-
-hexa.Compute()
diff --git a/src/SMESH_SWIG/ex04_cube5tetraHexa.py b/src/SMESH_SWIG/ex04_cube5tetraHexa.py
deleted file mode 100644 (file)
index 5bb4a1c..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
-# =======================================
-
-from geompy import *
-
-import smesh
-
-# Geometry
-# ========
-
-# 5 box with a hexahedral mesh and with 2 box in tetrahedral mesh
-
-# Values
-# ------
-
-arete = 100
-
-arete0 = 0
-arete1 = arete
-arete2 = arete*2
-arete3 = arete*3
-
-# Solids
-# ------
-
-box_tetra1 = MakeBox(arete0, arete0, 0,  arete1, arete1, arete)
-
-box_ijk1   = MakeBox(arete1, arete0, 0,  arete2, arete1, arete)
-
-box_hexa   = MakeBox(arete1, arete1, 0,  arete2, arete2, arete)
-
-box_ijk2   = MakeBox(arete2, arete1, 0,  arete3, arete2, arete)
-
-box_tetra2 = MakeBox(arete2, arete2, 0,  arete3 ,arete3, arete)
-
-# Piece
-# -----
-
-piece_cpd = MakeCompound([box_tetra1, box_ijk1, box_hexa, box_ijk2, box_tetra2])
-
-piece = MakeGlueFaces(piece_cpd, 1e-4)
-
-piece_id = addToStudy(piece, "ex04_cube5tetraHexa")
-
-# Meshing
-# =======
-
-# Create a hexahedral mesh
-# ------------------------
-
-mixed = smesh.Mesh(piece, "ex04_cube5tetraHexa:mixed")
-
-algo = mixed.Segment()
-
-algo.StartEndLength(3, 25)
-
-mixed.Quadrangle()
-
-mixed.Hexahedron()
-
-# Tetrahedral local mesh
-# ----------------------
-
-def localMesh(b, hyp):
-    box   = GetInPlace(piece, b)
-    faces = SubShapeAll(box, ShapeType["FACE"])
-
-    i = 0
-    n = len(faces)
-    while i<n:
-        algo = mixed.Triangle(faces[i])
-        if hyp:
-            algo.MaxElementArea(80)
-        else:
-            algo.LengthFromEdges()
-        i = i + 1
-
-    algo = mixed.Tetrahedron(smesh.NETGEN, box)
-    algo.MaxElementVolume(400)
-
-localMesh(box_tetra1, 1)
-localMesh(box_tetra2, 0)
-
-# Mesh calculus
-# -------------
-
-mixed.Compute()
diff --git a/src/SMESH_SWIG/ex05_hole1build.py b/src/SMESH_SWIG/ex05_hole1build.py
deleted file mode 100644 (file)
index ecaa211..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
-# =======================================
-
-from geompy import *
-
-import smesh
-
-import math
-
-# Geometry
-# ========
-
-# A centered holed cube build by  build by points, edges, faces and solids
-
-# Values
-# ------
-
-ox = 0
-oy = 0
-oz = 0
-
-longueur = 100
-largeur  =  80
-hauteur  =  50
-
-rayon = 10
-
-# Points
-# ------
-
-basePoint111 = MakeVertex(ox         ,  oy, oz)
-basePoint211 = MakeVertex(ox+longueur,  oy, oz)
-basePoint112 = MakeVertex(ox         ,  oy, oz+largeur)
-basePoint212 = MakeVertex(ox+longueur,  oy, oz+largeur)
-
-cx = ox+longueur/2
-cy = oy
-cz = oz+largeur/2
-
-ll = longueur/largeur
-ll = ll*ll
-dx = rayon/math.sqrt(1+ll)
-dz = rayon/math.sqrt(1+1/ll)
-
-circlePoint1 = MakeVertex(cx-dx, cy, cz-dz)
-circlePoint2 = MakeVertex(cx+dx, cy, cz-dz)
-circlePoint3 = MakeVertex(cx+dx, cy, cz+dz)
-circlePoint4 = MakeVertex(cx-dx, cy, cz+dz)
-
-# Edges
-# -----
-
-squareEdge1 = MakeEdge(basePoint111, basePoint211)
-squareEdge2 = MakeEdge(basePoint211, basePoint212)
-squareEdge3 = MakeEdge(basePoint212, basePoint112)
-squareEdge4 = MakeEdge(basePoint112, basePoint111)
-
-diagEdge1   = MakeEdge(basePoint111, circlePoint1)
-diagEdge2   = MakeEdge(basePoint211, circlePoint2)
-diagEdge3   = MakeEdge(basePoint212, circlePoint3)
-diagEdge4   = MakeEdge(basePoint112, circlePoint4)
-
-arcEdge1    = MakeArc(circlePoint1, MakeVertex(cx      , cy, cz-rayon), circlePoint2)
-arcEdge2    = MakeArc(circlePoint2, MakeVertex(cx+rayon, cy, cz      ), circlePoint3)
-arcEdge3    = MakeArc(circlePoint3, MakeVertex(cx      , cy, cz+rayon), circlePoint4)
-arcEdge4    = MakeArc(circlePoint4, MakeVertex(cx-rayon, cy, cz      ), circlePoint1)
-
-# Faces
-# -----
-
-baseFace1 = MakeQuad(squareEdge1, diagEdge2, arcEdge1, diagEdge1)
-baseFace2 = MakeQuad(squareEdge2, diagEdge3, arcEdge2, diagEdge2)
-baseFace3 = MakeQuad(squareEdge3, diagEdge4, arcEdge3, diagEdge3)
-baseFace4 = MakeQuad(squareEdge4, diagEdge1, arcEdge4, diagEdge4)
-
-# Solids
-# ------
-
-baseVector = MakeVectorDXDYDZ(0, 1, 0)
-
-baseSolid1 = MakePrismVecH(baseFace1, baseVector, hauteur)
-baseSolid2 = MakePrismVecH(baseFace2, baseVector, hauteur)
-baseSolid3 = MakePrismVecH(baseFace3, baseVector, hauteur)
-baseSolid4 = MakePrismVecH(baseFace4, baseVector, hauteur)
-
-# Compound
-# --------
-
-c_l = []
-c_l.append(baseSolid1)
-c_l.append(baseSolid2)
-c_l.append(baseSolid3)
-c_l.append(baseSolid4)
-
-c_cpd = MakeCompound(c_l)
-piece = MakeGlueFaces(c_cpd, 1.e-5)
-
-# Add in study
-# ------------
-
-piece_id = addToStudy(piece, "ex05_hole1build")
-
-# Meshing
-# =======
-
-# Create a hexahedral mesh
-# ------------------------
-
-hexa = smesh.Mesh(piece, "ex05_hole1build:hexa")
-
-algo = hexa.Segment()
-
-algo.NumberOfSegments(6, 3)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Mesh calculus
-# -------------
-
-hexa.Compute()
diff --git a/src/SMESH_SWIG/ex06_hole1boolean.py b/src/SMESH_SWIG/ex06_hole1boolean.py
deleted file mode 100644 (file)
index 5e461e4..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
-# =======================================
-
-from geompy import *
-
-import smesh
-
-# Geometry
-# ========
-
-# A not centered holed cube build by boolean geometric operations
-
-# Values
-# ------
-
-ox = 0
-oy = 0
-oz = 0
-
-longueur1 = 30
-longueur2 = 70
-
-largeur1  = 30
-largeur2  = 50
-
-hauteur   = 50
-
-rayon = 10
-
-# Triangular face
-# ---------------
-
-def triangle(p1, p2, p3):
-    l = []
-    l.append(MakeEdge(p1, p2))
-    l.append(MakeEdge(p2, p3))
-    l.append(MakeEdge(p3, p1))
-    w = MakeWire(l)
-    return MakeFace(w, 1)
-
-# Points
-# ------
-
-basePoint111 = MakeVertex(ox-longueur1,  oy, oz-largeur1)
-basePoint211 = MakeVertex(ox+longueur2,  oy, oz-largeur1)
-basePoint112 = MakeVertex(ox-longueur1,  oy, oz+largeur2)
-basePoint212 = MakeVertex(ox+longueur2,  oy, oz+largeur2)
-
-holePoint    = MakeVertex(ox, oy, oz)
-
-# Faces
-# -----
-
-baseFace1 = triangle(basePoint111, basePoint211, holePoint)
-baseFace2 = triangle(basePoint211, basePoint212, holePoint)
-baseFace3 = triangle(basePoint212, basePoint112, holePoint)
-baseFace4 = triangle(basePoint112, basePoint111, holePoint)
-
-# Solids
-# ------
-
-baseVector = MakeVectorDXDYDZ(0, 1, 0)
-
-baseSolid1 = MakePrismVecH(baseFace1, baseVector, hauteur)
-baseSolid2 = MakePrismVecH(baseFace2, baseVector, hauteur)
-baseSolid3 = MakePrismVecH(baseFace3, baseVector, hauteur)
-baseSolid4 = MakePrismVecH(baseFace4, baseVector, hauteur)
-
-holeSolid = MakeCylinder(holePoint, baseVector, rayon, hauteur)
-
-# Boolean operations
-# ------------------
-
-baseHexa1 = MakeCut(baseSolid1, holeSolid)
-baseHexa2 = MakeCut(baseSolid2, holeSolid)
-baseHexa3 = MakeCut(baseSolid3, holeSolid)
-baseHexa4 = MakeCut(baseSolid4, holeSolid)
-
-# Compound, glue and repair
-# -------------------------
-
-c_l = []
-c_l.append(baseHexa1)
-c_l.append(baseHexa2)
-c_l.append(baseHexa3)
-c_l.append(baseHexa4)
-
-c_cpd = MakeCompound(c_l)
-c_glu = MakeGlueFaces(c_cpd, 1.e-5)
-piece = RemoveExtraEdges(c_glu)
-
-# Add in study
-# ------------
-
-piece_id = addToStudy(piece, "ex06_hole1boolean")
-
-# Meshing
-# =======
-
-# Create a hexahedral mesh
-# ------------------------
-
-hexa = smesh.Mesh(piece, "ex06_hole1boolean:hexa")
-
-algo = hexa.Segment()
-
-algo.NumberOfSegments(11)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Create local hypothesis
-# -----------------------
-
-edge1 = GetEdgeNearPoint(piece, MakeVertex(ox, oy, oz-largeur1))
-algo1 = hexa.Segment(edge1)
-algo1.NumberOfSegments(3)
-algo1.Propagation()
-
-edge2 = GetEdgeNearPoint(piece, MakeVertex(ox-longueur1, oy, oz))
-algo2 = hexa.Segment(edge2)
-algo2.NumberOfSegments(5)
-algo2.Propagation()
-
-edge3 = GetEdgeNearPoint(piece, MakeVertex(ox, oy, oz+largeur2))
-algo3 = hexa.Segment(edge3)
-algo3.NumberOfSegments(7)
-algo3.Propagation()
-
-edge4 = GetEdgeNearPoint(piece, MakeVertex(ox+longueur2, oy, oz))
-algo4 = hexa.Segment(edge4)
-algo4.NumberOfSegments(9)
-algo4.Propagation()
-
-# Mesh calculus
-# -------------
-
-hexa.Compute()
diff --git a/src/SMESH_SWIG/ex07_hole1partition.py b/src/SMESH_SWIG/ex07_hole1partition.py
deleted file mode 100644 (file)
index 592e5f8..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
-# =======================================
-
-from geompy import *
-
-import smesh
-
-# Geometry
-# ========
-
-# A holed cube build by partitioning geometric operations
-
-# Values
-# ------
-
-g_x = 0
-g_y = 0
-g_z = 0
-
-g_longueur = 50.0
-g_largeur  = 40.0
-g_hauteur  = 25.0
-
-g_rayon = 10
-
-g_trim = 1000
-
-# Box
-# ---
-
-b_boite = MakeBox(g_x-g_longueur, g_y-g_hauteur, g_z-g_largeur,  g_x+g_longueur, g_y+g_hauteur, g_z+g_largeur)
-
-# Cylinder
-# --------
-
-c_axe = MakeVectorDXDYDZ(0, 1, 0)
-
-c_cyl = MakeCylinder(MakeVertex(g_x, g_y-g_hauteur, g_z), c_axe, g_rayon, g_hauteur*2)
-
-c_piece = MakeCut(b_boite, c_cyl)
-
-# Partition and reperation
-# ------------------------
-
-p_centre = MakeVertex(g_x, g_y, g_z)
-
-p_tools = []
-p_tools.append(MakePlane(p_centre, MakeVectorDXDYDZ( g_largeur, 0, g_longueur), g_trim))
-p_tools.append(MakePlane(p_centre, MakeVectorDXDYDZ(-g_largeur, 0, g_longueur), g_trim))
-
-p_part = MakePartition([c_piece], p_tools, [], [], ShapeType["SOLID"])
-
-p_blocs = RemoveExtraEdges(p_part)
-piece   = MakeGlueFaces(p_blocs, 1.e-5)
-
-# Add in study
-# ------------
-
-piece_id = addToStudy(piece, "ex07_hole1partition")
-
-# Meshing
-# =======
-
-# Create a hexahedral mesh
-# ------------------------
-
-hexa = smesh.Mesh(piece, "ex07_hole1partition:hexa")
-
-algo = hexa.Segment()
-algo.NumberOfSegments(20)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Mesh calculus
-# -------------
-
-hexa.Compute()
diff --git a/src/SMESH_SWIG/ex08_hole2build.py b/src/SMESH_SWIG/ex08_hole2build.py
deleted file mode 100644 (file)
index ab23cb7..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
-# =======================================
-
-from geompy import *
-
-import smesh
-
-# Geometry
-# ========
-
-# A twice holed cube build by points, edges, faces and solids
-
-# Values
-# ------
-
-ox = 0
-oy = 0
-oz = 0
-
-longueur = 200
-largeur  = 100
-hauteur  =  80
-
-cylindre = 50
-
-rayon = 20
-
-# Points
-# ------
-
-piecePoint1 = MakeVertex(ox         , oy, oz)
-piecePoint2 = MakeVertex(ox+longueur, oy, oz)
-piecePoint3 = MakeVertex(ox+longueur, oy, oz+largeur)
-piecePoint4 = MakeVertex(ox         , oy, oz+largeur)
-
-cz = oz+largeur/2
-
-cylPoint1    = MakeVertex(ox+cylindre         , oy, cz-rayon)
-cylPoint2    = MakeVertex(ox+longueur-cylindre, oy, cz-rayon)
-cylPoint3    = MakeVertex(ox+longueur-cylindre, oy, cz+rayon)
-cylPoint4    = MakeVertex(ox+cylindre         , oy, cz+rayon)
-
-# Edges
-# -----
-
-pieceEdge1 = MakeEdge(piecePoint1, piecePoint4)
-pieceEdge2 = MakeEdge(piecePoint1, cylPoint1)
-pieceEdge3 = MakeEdge(piecePoint4, cylPoint4)
-
-pieceEdge4 = MakeEdge(piecePoint2, piecePoint3)
-pieceEdge5 = MakeEdge(piecePoint2, cylPoint2)
-pieceEdge6 = MakeEdge(piecePoint3, cylPoint3)
-
-pieceEdge7 = MakeEdge(cylPoint1, cylPoint2)
-pieceEdge8 = MakeEdge(cylPoint3, cylPoint4)
-
-cylEdge1 = MakeArc(cylPoint1, MakeVertex(ox+cylindre-rayon         , oy, cz), cylPoint4)
-cylEdge2 = MakeArc(cylPoint1, MakeVertex(ox+cylindre+rayon         , oy, cz), cylPoint4)
-cylEdge3 = MakeArc(cylPoint2, MakeVertex(ox+longueur-cylindre-rayon, oy, cz), cylPoint3)
-cylEdge4 = MakeArc(cylPoint2, MakeVertex(ox+longueur-cylindre+rayon, oy, cz), cylPoint3)
-
-# Faces
-# -----
-
-pieceFace1 = MakeQuad4Vertices(piecePoint1, piecePoint2, cylPoint2 , cylPoint1 )
-pieceFace2 = MakeQuad         (pieceEdge1 , pieceEdge2 , cylEdge1  , pieceEdge3)
-pieceFace3 = MakeQuad4Vertices(piecePoint3, piecePoint4, cylPoint4 , cylPoint3 )
-pieceFace4 = MakeQuad         (pieceEdge4 , pieceEdge5 , cylEdge4  , pieceEdge6)
-pieceFace5 = MakeQuad         (pieceEdge7 , cylEdge3   , pieceEdge8, cylEdge2  )
-
-# Solids
-# ------
-
-pieceVector = MakeVectorDXDYDZ(0, 1, 0)
-
-pieceSolid1 = MakePrismVecH(pieceFace1, pieceVector, hauteur)
-pieceSolid2 = MakePrismVecH(pieceFace2, pieceVector, hauteur)
-pieceSolid3 = MakePrismVecH(pieceFace3, pieceVector, hauteur)
-pieceSolid4 = MakePrismVecH(pieceFace4, pieceVector, hauteur)
-pieceSolid5 = MakePrismVecH(pieceFace5, pieceVector, hauteur)
-
-# Compound and glue
-# -----------------
-
-c_cpd = MakeCompound([pieceSolid1, pieceSolid2, pieceSolid3, pieceSolid4, pieceSolid5])
-
-piece = MakeGlueFaces(c_cpd, 1.e-5)
-
-# Add in study
-# ------------
-
-piece_id = addToStudy(piece, "ex08_hole2build")
-
-# Meshing
-# =======
-
-# Create a hexahedral mesh
-# ------------------------
-
-hexa = smesh.Mesh(piece, "ex08_hole2build:hexa")
-
-algo = hexa.Segment()
-algo.NumberOfSegments(7)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Mesh calculus
-# -------------
-
-hexa.Compute()
diff --git a/src/SMESH_SWIG/ex09_grid4build.py b/src/SMESH_SWIG/ex09_grid4build.py
deleted file mode 100644 (file)
index 681a31f..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
-# =======================================
-
-from geompy import *
-
-import smesh
-
-import math
-
-# Geometry
-# ========
-
-# Element of a grid compound by a square with a cylinder on each vertex build by points, edges, faces and solids
-
-# Values
-# ------
-
-ox = 0
-oy = 0
-oz = 0
-
-arete   =  50
-hauteur = 100
-
-rayon = 10
-
-demi = rayon/2
-r3   = demi*math.sqrt(3)
-
-# Points
-# ------
-
-piecePoint111 = MakeVertex(ox+rayon      , oy, oz)
-piecePoint211 = MakeVertex(ox+arete-rayon, oy, oz)
-piecePoint112 = MakeVertex(ox            , oy, oz+rayon)
-piecePoint212 = MakeVertex(ox+arete      , oy, oz+rayon)
-piecePoint113 = MakeVertex(ox            , oy, oz+arete-rayon)
-piecePoint213 = MakeVertex(ox+arete      , oy, oz+arete-rayon)
-piecePoint114 = MakeVertex(ox+rayon      , oy, oz+arete)
-piecePoint214 = MakeVertex(ox+arete-rayon, oy, oz+arete)
-
-pieceCenter1  = MakeVertex(ox            , oy, oz)
-pieceCenter2  = MakeVertex(ox+arete      , oy, oz)
-pieceCenter3  = MakeVertex(ox            , oy, oz+arete)
-pieceCenter4  = MakeVertex(ox+arete      , oy, oz+arete)
-
-piecePass1    = MakeVertex(ox+demi       , oy, oz+r3)
-piecePass2    = MakeVertex(ox+arete-demi , oy, oz+r3)
-piecePass3    = MakeVertex(ox+arete-demi , oy, oz+arete-r3)
-piecePass4    = MakeVertex(ox+demi       , oy, oz+arete-r3)
-
-# Edges
-# -----
-
-pieceEdgeSquare1   = MakeEdge(piecePoint111, piecePoint211)
-pieceEdgeSquare2   = MakeEdge(piecePoint114, piecePoint214)
-pieceEdgeSquare3   = MakeEdge(piecePoint112, piecePoint113)
-pieceEdgeSquare4   = MakeEdge(piecePoint212, piecePoint213)
-
-pieceEdgeDiagonal1 = MakeEdge(piecePoint111, piecePoint213)
-pieceEdgeDiagonal2 = MakeEdge(piecePoint112, piecePoint214)
-
-pieceEdgeArc1 = MakeArc(piecePoint111, piecePass1, piecePoint112)
-pieceEdgeArc2 = MakeArc(piecePoint211, piecePass2, piecePoint212)
-pieceEdgeArc3 = MakeArc(piecePoint213, piecePass3, piecePoint214)
-pieceEdgeArc4 = MakeArc(piecePoint113, piecePass4, piecePoint114)
-
-# Faces
-# -----
-
-pieceFace1 = MakeQuad(pieceEdgeSquare1, pieceEdgeArc2, pieceEdgeSquare4, pieceEdgeDiagonal1)
-pieceFace2 = MakeQuad(pieceEdgeSquare2, pieceEdgeArc4, pieceEdgeSquare3, pieceEdgeDiagonal2)
-
-pieceFace3 = MakeQuad(pieceEdgeArc1, pieceEdgeDiagonal1, pieceEdgeArc3, pieceEdgeDiagonal2)
-
-# Solids
-# ------
-
-pieceVector = MakeVectorDXDYDZ(0, 1, 0)
-
-pieceSolid1 = MakePrismVecH(pieceFace1, pieceVector, hauteur)
-pieceSolid2 = MakePrismVecH(pieceFace2, pieceVector, hauteur)
-pieceSolid3 = MakePrismVecH(pieceFace3, pieceVector, hauteur)
-
-# Compound and glue
-# -----------------
-
-c_cpd = MakeCompound([pieceSolid1, pieceSolid2, pieceSolid3])
-
-piece = MakeGlueFaces(c_cpd, 1.e-5)
-
-# Add in study
-# ------------
-
-piece_id = addToStudy(piece, "ex09_grid4build")
-
-# Meshing
-# =======
-
-# Create a hexahedral mesh
-# ------------------------
-
-hexa = smesh.Mesh(piece, "ex09_grid4build:hexa")
-
-algo = hexa.Segment()
-algo.NumberOfSegments(6)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Mesh calculus
-# -------------
-
-hexa.Compute()
diff --git a/src/SMESH_SWIG/ex10_grid4geometry.py b/src/SMESH_SWIG/ex10_grid4geometry.py
deleted file mode 100644 (file)
index bcd5637..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
-# =======================================
-
-from geompy import *
-
-import smesh
-
-# Geometry
-# ========
-
-# Element of a grid compound by a square with a cylinder on each vertex build by using partition
-
-# Values
-# ------
-
-ox = 0
-oy = 0
-oz = 0
-
-arete   =  50
-hauteur = 100
-rayon   =  10
-
-g_trim = 1000
-
-# Box
-# ---
-
-piecePoint = MakeVertex(ox, oy, oz)
-
-pieceBox = MakeBoxTwoPnt(piecePoint, MakeVertex(ox+arete, oy+hauteur, oz+arete))
-
-# Cut by cylinders
-# ----------------
-
-dirUp = MakeVectorDXDYDZ(0, 1, 0)
-
-pieceCut1 = MakeCut(pieceBox , MakeCylinder(piecePoint                        , dirUp, rayon, hauteur))
-pieceCut2 = MakeCut(pieceCut1, MakeCylinder(MakeVertex(ox+arete, oy, oz      ), dirUp, rayon, hauteur))
-pieceCut3 = MakeCut(pieceCut2, MakeCylinder(MakeVertex(ox      , oy, oz+arete), dirUp, rayon, hauteur))
-pieceCut4 = MakeCut(pieceCut3, MakeCylinder(MakeVertex(ox+arete, oy, oz+arete), dirUp, rayon, hauteur))
-
-# Compound by make a partition of a solid
-# ---------------------------------------
-
-dir = MakeVectorDXDYDZ(-1, 0, 1)
-
-tools = []
-tools.append(MakePlane(MakeVertex(ox+rayon, oy, oz      ), dir, g_trim))
-tools.append(MakePlane(MakeVertex(ox      , oy, oz+rayon), dir, g_trim))
-
-piece = MakePartition([pieceCut4], tools, [], [], ShapeType["SOLID"])
-
-# Add in study
-# ------------
-
-piece_id = addToStudy(piece, "ex10_grid4geometry")
-
-# Meshing
-# =======
-
-# Create a hexahedral mesh
-# ------------------------
-
-hexa = smesh.Mesh(piece, "ex10_grid4geometry:hexa")
-
-algo = hexa.Segment()
-algo.NumberOfSegments(10)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Mesh calculus
-# -------------
-
-hexa.Compute()
diff --git a/src/SMESH_SWIG/ex11_grid3partition.py b/src/SMESH_SWIG/ex11_grid3partition.py
deleted file mode 100644 (file)
index 4327775..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
-# =======================================
-
-from geompy import *
-
-import smesh
-
-# Geometry
-# ========
-
-# grid compound of 3 x 3 elements
-# an element is compound of 3 cylinders concentriques
-# an element is centered in a square of the grid
-# the smaller cylinder is a hole
-
-# prism the grid, and mesh it in hexahedral way
-
-# Values
-# ------
-
-g_x = 0
-g_y = 0
-g_z = 0
-
-g_arete   = 50
-g_hauteur = 30
-
-g_rayon1 = 20
-g_rayon2 = 30
-g_rayon3 = 40
-
-g_grid = 3
-
-g_trim = 1000
-
-# Element
-# -------
-
-e_boite = MakeBox(g_x-g_arete, g_y-g_hauteur, g_z-g_arete,  g_x+g_arete, g_y+g_hauteur, g_z+g_arete)
-
-e_hauteur = 2*g_hauteur
-e_centre  = MakeVertex(g_x, g_y-g_hauteur, g_z)
-e_dir     = MakeVectorDXDYDZ(0, 1, 0)
-
-e_cyl1 = MakeCylinder(e_centre, e_dir, g_rayon3, e_hauteur)
-
-e_blo1 = MakeCut(e_boite, e_cyl1)
-
-e_cyl2 = MakeCylinder(e_centre, e_dir, g_rayon2, e_hauteur)
-
-e_blo2 = MakeCut(e_cyl1, e_cyl2)
-
-e_cyl3 = MakeCylinder(e_centre, e_dir, g_rayon1, e_hauteur)
-
-e_blo3 = MakeCut(e_cyl2, e_cyl3)
-
-# Partition and repair
-# --------------------
-
-p_tools = []
-p_tools.append(MakePlane(e_centre, MakeVectorDXDYDZ( 1, 0, 1), g_trim))
-p_tools.append(MakePlane(e_centre, MakeVectorDXDYDZ(-1, 0, 1), g_trim))
-
-p_part = MakePartition([e_blo1, e_blo2, e_blo3], p_tools, [], [], ShapeType["SOLID"])
-
-p_element = RemoveExtraEdges(p_part)
-
-# Grid and glue
-# -------------
-
-grid = MakeMultiTranslation2D(p_element, MakeVectorDXDYDZ(1, 0, 0), 2*g_arete, g_grid, MakeVectorDXDYDZ(0, 0, 1), 2*g_arete, g_grid)
-
-piece = MakeGlueFaces(grid, 1e-5)
-
-# Add in study
-# ------------
-
-piece_id = addToStudy(piece, "ex11_grid3partition")
-
-# Meshing
-# =======
-
-# Create a hexahedral mesh
-# ------------------------
-
-hexa = smesh.Mesh(piece, "ex11_grid3partition:hexa")
-
-algo = hexa.Segment()
-algo.NumberOfSegments(3)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Mesh calculus
-# -------------
-
-hexa.Compute()
diff --git a/src/SMESH_SWIG/ex12_grid17partition.py b/src/SMESH_SWIG/ex12_grid17partition.py
deleted file mode 100644 (file)
index f83de14..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
-# =======================================
-
-from geompy import *
-
-import smesh
-
-# Geometry
-# ========
-
-# grid compound of 17 x 17 elements
-# an element is compound of 3 concentric cylinders
-# an element is centered in a square of the grid
-
-# prism the grid, and mesh it in hexahedral way
-
-# Values
-# ------
-
-g_x = 0
-g_y = 0
-g_z = 0
-
-g_arete   = 50
-g_hauteur = 30
-
-g_rayon1 = 20
-g_rayon2 = 30
-g_rayon3 = 40
-
-g_grid = 17
-
-g_trim = 1000
-
-# Solids and rotation to prevent repair
-# -------------------------------------
-
-s_boite = MakeBox(g_x-g_arete, g_y-g_hauteur, g_z-g_arete,  g_x+g_arete, g_y+g_hauteur, g_z+g_arete)
-
-s_pi4     = 3.141592653/4
-s_hauteur = 2*g_hauteur
-s_centre  = MakeVertex(g_x, g_y-g_hauteur, g_z)
-s_dir     = MakeVectorDXDYDZ(0, 1, 0)
-
-s_cyl0 = MakeCylinder(s_centre, s_dir, g_rayon3, s_hauteur)
-s_cyl1 = MakeRotation(s_cyl0, s_dir, s_pi4)
-
-s_blo1 = MakeCut(s_boite, s_cyl1)
-
-s_cyl0 = MakeCylinder(s_centre, s_dir, g_rayon2, s_hauteur)
-s_cyl2 = MakeRotation(s_cyl0, s_dir, s_pi4)
-
-s_blo2 = MakeCut(s_cyl1, s_cyl2)
-
-s_cyl0 = MakeCylinder(s_centre, s_dir, g_rayon1, s_hauteur)
-s_cyl3 = MakeRotation(s_cyl0, s_dir, s_pi4)
-
-s_blo3 = MakeCut(s_cyl2, s_cyl3)
-
-s_arete = g_rayon1/2
-
-s_blo4 = MakeBox(g_x-s_arete, g_y-g_hauteur, g_z-s_arete,  g_x+s_arete, g_y+g_hauteur, g_z+s_arete)
-
-s_blo5 = MakeCut(s_cyl3, s_blo4)
-
-# Partition
-# ---------
-
-p_tools = []
-p_tools.append(MakePlane(s_centre, MakeVectorDXDYDZ( 1, 0, 1), g_trim))
-p_tools.append(MakePlane(s_centre, MakeVectorDXDYDZ(-1, 0, 1), g_trim))
-
-p_partie = MakePartition([s_blo1, s_blo2, s_blo3, s_blo5], p_tools, [], [], ShapeType["SOLID"])
-
-# Compound and glue
-# -----------------
-
-c_blocs = SubShapeAll(p_partie, ShapeType["SOLID"])
-c_blocs.append(s_blo4)
-
-c_cpd = MakeCompound(c_blocs)
-
-c_element = MakeGlueFaces(c_cpd, 1e-4)
-
-# Grid
-# ----
-
-piece = MakeMultiTranslation2D(c_element, MakeVectorDXDYDZ(1, 0, 0), 2*g_arete, g_grid, MakeVectorDXDYDZ(0, 0, 1), 2*g_arete, g_grid)
-
-# Add in study
-# ------------
-
-piece_id = addToStudy(piece, "ex12_grid17partition")
-
-# Meshing
-# =======
-
-# Create a hexahedral mesh
-# ------------------------
-
-hexa = smesh.Mesh(piece, "ex12_grid17partition:hexa")
-
-algo = hexa.Segment()
-algo.NumberOfSegments(2)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Mesh calculus
-# -------------
-
-hexa.Compute()
diff --git a/src/SMESH_SWIG/ex13_hole1partial.py b/src/SMESH_SWIG/ex13_hole1partial.py
deleted file mode 100644 (file)
index c97ccb8..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-# CEA/LGLS 2005, Francis KLOSS (OCC)
-# ==================================
-
-from geompy import *
-
-import smesh
-
-# Geometry
-# ========
-
-# With hexahedral, build a box partially holed by a not centered cylinder with a thickness
-
-# Values
-# ------
-
-box_dx = 1000
-box_dy =  900
-box_dz =  800
-
-cyl_x      = 500
-cyl_y      = 300
-cyl_dz     = 600
-cyl_radius = 150
-cyl_thick  =  30
-
-# Triangular face
-# ---------------
-
-def triangle(p1, p2, p3):
-    l = []
-    l.append(MakeEdge(p1, p2))
-    l.append(MakeEdge(p2, p3))
-    l.append(MakeEdge(p3, p1))
-    w = MakeWire(l)
-    return MakeFace(w, 1)
-
-# The holed part
-# ==============
-
-# Vertex of the holed part
-# ------------------------
-
-hole_point_11 = MakeVertex(0     , 0     , 0)
-hole_point_21 = MakeVertex(box_dx, 0     , 0)
-hole_point_12 = MakeVertex(0     , box_dy, 0)
-hole_point_22 = MakeVertex(box_dx, box_dy, 0)
-
-hole_center   = MakeVertex(cyl_x, cyl_y, 0)
-
-# Faces of the holed part
-# -----------------------
-
-hole_face_1 = triangle(hole_point_11, hole_point_21, hole_center)
-hole_face_2 = triangle(hole_point_21, hole_point_22, hole_center)
-hole_face_3 = triangle(hole_point_12, hole_point_22, hole_center)
-hole_face_4 = triangle(hole_point_11, hole_point_12, hole_center)
-
-# Solids of the holed part
-# ------------------------
-
-cyl_dir = MakeVectorDXDYDZ(0, 0, 1)
-
-hole_solid_1 = MakePrismVecH(hole_face_1, cyl_dir, cyl_dz)
-hole_solid_2 = MakePrismVecH(hole_face_2, cyl_dir, cyl_dz)
-hole_solid_3 = MakePrismVecH(hole_face_3, cyl_dir, cyl_dz)
-hole_solid_4 = MakePrismVecH(hole_face_4, cyl_dir, cyl_dz)
-
-hole_internal = MakeCylinder(hole_center, cyl_dir, cyl_radius          , cyl_dz)
-hole_external = MakeCylinder(hole_center, cyl_dir, cyl_radius+cyl_thick, cyl_dz)
-hole_median   = MakeCut(hole_external, hole_internal)
-
-# Boolean operations
-# ------------------
-
-blocks = []
-
-blocks.append(   MakeCut(hole_solid_1, hole_external))
-blocks.append(MakeCommon(hole_solid_1, hole_median  ))
-
-blocks.append(   MakeCut(hole_solid_2, hole_external))
-blocks.append(MakeCommon(hole_solid_2, hole_median  ))
-
-blocks.append(   MakeCut(hole_solid_3, hole_external))
-blocks.append(MakeCommon(hole_solid_3, hole_median  ))
-
-blocks.append(   MakeCut(hole_solid_4, hole_external))
-blocks.append(MakeCommon(hole_solid_4, hole_median  ))
-
-# The full part
-# =============
-
-# Vertex of the full part
-# -----------------------
-
-full_point_11 = MakeVertex(0     , 0     , cyl_dz)
-full_point_21 = MakeVertex(box_dx, 0     , cyl_dz)
-full_point_12 = MakeVertex(0     , box_dy, cyl_dz)
-full_point_22 = MakeVertex(box_dx, box_dy, cyl_dz)
-
-full_center = MakeVertex(cyl_x, cyl_y, cyl_dz)
-
-# Faces of the full part
-# ----------------------
-
-full_face_1 = triangle(full_point_11, full_point_21, full_center)
-full_face_2 = triangle(full_point_21, full_point_22, full_center)
-full_face_3 = triangle(full_point_12, full_point_22, full_center)
-full_face_4 = triangle(full_point_11, full_point_12, full_center)
-
-# Solids of the full part
-# ------------------------
-
-full_dz = box_dz - cyl_dz
-
-full_solid_1 = MakePrismVecH(full_face_1, cyl_dir, full_dz)
-full_solid_2 = MakePrismVecH(full_face_2, cyl_dir, full_dz)
-full_solid_3 = MakePrismVecH(full_face_3, cyl_dir, full_dz)
-full_solid_4 = MakePrismVecH(full_face_4, cyl_dir, full_dz)
-
-full_internal = MakeCylinder(full_center, cyl_dir, cyl_radius          , full_dz)
-full_external = MakeCylinder(full_center, cyl_dir, cyl_radius+cyl_thick, full_dz)
-full_median   = MakeCut(full_external, full_internal)
-
-# Boolean operations
-# ------------------
-
-full = []
-
-full.append(   MakeCut(full_solid_1, full_external))
-full.append(MakeCommon(full_solid_1, full_median))
-
-full.append(   MakeCut(full_solid_2, full_external))
-full.append(MakeCommon(full_solid_2, full_median ))
-
-full.append(   MakeCut(full_solid_3, full_external))
-full.append(MakeCommon(full_solid_3, full_median))
-
-full.append(   MakeCut(full_solid_4, full_external))
-full.append(MakeCommon(full_solid_4, full_median))
-
-# Filling the hole
-# ----------------
-
-box_d = cyl_radius/3
-
-x = cyl_x-box_d
-y = x * cyl_y / cyl_x
-box_point_11 = MakeVertex(x, y, cyl_dz)
-
-x = cyl_x+box_d
-y = (box_dx - x) * cyl_y / (box_dx - cyl_x)
-box_point_12 = MakeVertex(x, y, cyl_dz)
-
-x = cyl_x-box_d
-y = box_dy - x * (box_dy - cyl_y) / cyl_x
-box_point_21 = MakeVertex(x, y, cyl_dz)
-
-x = cyl_x+box_d
-y = box_dy - (box_dx - x) * (box_dy - cyl_y) / (box_dx - cyl_x)
-box_point_22 = MakeVertex(x, y, cyl_dz)
-
-box_face = MakeQuad4Vertices(box_point_11, box_point_12, box_point_21, box_point_22)
-
-box = MakePrismVecH(box_face, cyl_dir, full_dz)
-
-full.append(box)
-
-full.append(MakeCut(MakeCommon(full_solid_1, full_internal), box))
-full.append(MakeCut(MakeCommon(full_solid_2, full_internal), box))
-full.append(MakeCut(MakeCommon(full_solid_3, full_internal), box))
-full.append(MakeCut(MakeCommon(full_solid_4, full_internal), box))
-
-# Cut the cylinder thikness
-# -------------------------
-
-full_plan = MakePlane(MakeVertex(0, 0, cyl_dz+cyl_thick), cyl_dir, 5000)
-
-full_parts = MakePartition(full, [full_plan], [], [], ShapeType["SOLID"])
-
-# Geometry result
-# ---------------
-
-blocks.append(full_parts)
-
-piece_cpd = MakeCompound(blocks)
-
-piece_ok = RemoveExtraEdges(piece_cpd)
-
-piece = MakeGlueFaces(piece_ok, 1.e-3)
-
-piece_id = addToStudy(piece, "ex13_hole1partial")
-
-# Meshing
-# =======
-
-# Create a mesh
-# -------------
-
-hexa = smesh.Mesh(piece, "ex13_hole1partial:hexa")
-
-algo = hexa.Segment()
-algo.NumberOfSegments(2)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Local hypothesis
-# ----------------
-
-def local(x, y, z, d):
-    edge = GetEdgeNearPoint(piece, MakeVertex(x, y, z))
-    algo = hexa.Segment(edge)
-    algo.NumberOfSegments(d)
-    algo.Propagation()
-
-local(0, 0, 100, 40)
-local(0, 0, 700, 15)
-
-local(100, 0, 0, 20)
-local(0, 100, 0, 20)
-
-local(100, 100, 0, 25)
-
-d = cyl_radius-3*cyl_thick
-local(cyl_x+d, cyl_y+d, box_dz, 10)
-
-# Compute the mesh
-# ----------------
-
-hexa.Compute()
diff --git a/src/SMESH_SWIG/ex14_cyl1holed.py b/src/SMESH_SWIG/ex14_cyl1holed.py
deleted file mode 100644 (file)
index 6a2127a..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
-# =======================================
-
-from geompy import *
-
-import smesh
-
-# Geometrie
-# =========
-
-# Creer un cylindre avec un trou cylindrique excentre, decoupage en hexahedre et mailler.
-
-# Donnees
-# -------
-
-# unite: millimetre
-
-g_ox = 0
-g_oy = 0
-g_oz = 0
-
-g_cyl_rayon       = 1000
-g_cyl_demiHauteur = 3000
-
-g_trou_rayon       =   5
-g_trou_centre      = 300
-
-g_trim = 15000
-
-# Construire le cylindre
-# ----------------------
-
-c_point    = MakeVertex(g_ox, g_oy, g_oz-g_cyl_demiHauteur)
-c_dir      = MakeVectorDXDYDZ(0, 0, 1)
-c_hauteur  = 2*g_cyl_demiHauteur
-c_cylindre = MakeCylinder(c_point, c_dir, g_cyl_rayon, c_hauteur)
-
-# Trouer le cylindre par un minuscule cylindre excentre
-# -----------------------------------------------------
-
-t_hauteur = g_cyl_demiHauteur
-t_point   = MakeVertex(g_ox-g_trou_centre, g_oy, g_oz-t_hauteur)
-t_trou    = MakeCylinder(t_point, c_dir, g_trou_rayon, 2*t_hauteur)
-
-t_piece   = MakeCut(c_cylindre, t_trou)
-
-# Geometrie hexahedrique
-# ======================
-
-# Decouper
-# --------
-
-h_outils = []
-h_outils.append(MakePlane(t_point, MakeVectorDXDYDZ(1, 0, 0), g_trim))
-h_outils.append(MakePlane(t_point, MakeVectorDXDYDZ(0, 1, 0), g_trim))
-
-h_piece = MakePartition([t_piece], h_outils, [], [], ShapeType["SOLID"])
-
-# Decouper pour les conditions locales
-# ------------------------------------
-
-l_outils = []
-l_i = 1
-l_n = 12
-l_hauteur = c_hauteur/l_n
-
-while l_i<l_n:
-    l_outils.append(MakePlane(MakeVertex(g_ox, g_oy, g_oz-g_cyl_demiHauteur+l_i*l_hauteur), c_dir, g_trim))
-    l_i = l_i+1
-
-piece = MakePartition([h_piece], l_outils, [], [], ShapeType["SOLID"])
-
-# Ajouter la piece dans l'etude
-# -----------------------------
-
-piece_id = addToStudy(piece, "ex14_cyl1holed")
-
-# Maillage
-# ========
-
-# Creer un maillage hexahedrique
-# ------------------------------
-
-hexa = smesh.Mesh(piece, "ex14_cyl1holed:hexa")
-
-algo = hexa.Segment()
-algo.NumberOfSegments(4)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Poser les hypotheses locales
-# ----------------------------
-
-m_i = 0
-m_n = 12
-m_h = c_hauteur/m_n
-m_d = [4, 6, 8, 10, 10, 9, 8, 7, 6, 5, 4, 3]
-
-m_x = g_ox+g_cyl_rayon
-m_y = g_oy
-m_z = g_oz-g_cyl_demiHauteur+m_h/2
-
-while m_i<m_n:
-    m_p = MakeVertex(m_x, m_y, m_z + m_i*m_h)
-    m_e = GetEdgeNearPoint(piece, m_p)
-    m_a = hexa.Segment(m_e)
-    m_a.NumberOfSegments(m_d[m_i])
-    m_a.Propagation()
-    m_i = m_i + 1
-
-# Calculer le maillage
-# --------------------
-
-hexa.Compute()
diff --git a/src/SMESH_SWIG/ex15_cyl2geometry.py b/src/SMESH_SWIG/ex15_cyl2geometry.py
deleted file mode 100644 (file)
index c7de688..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
-# =======================================
-
-from geompy import *
-
-import smesh
-
-# Geometrie
-# =========
-
-# Construire avec des hexahedres une piece faite de 2 cylindres de diametre different
-# et dont les axes se coupent orthogonalement, puis mailler.
-
-# Valeurs
-# -------
-
-cx = 0
-cy = 0
-cz = 0
-
-g_rayon   = 100.0
-g_hauteur = 500
-
-p_rayon   =  50.0
-p_hauteur = 500
-
-g_trim = 1000
-
-# Gros cylindre
-# -------------
-
-cpd = []
-
-g_base = MakeVertex(cx, cy, cz)
-g_dir  = MakeVectorDXDYDZ(0, 0, 1)
-t_hauteur = p_rayon+10.0
-
-g_cyl = MakeCylinder(g_base, g_dir, g_rayon, g_hauteur)
-
-g_coupe   = MakeVectorDXDYDZ(1, 0, 0)
-
-g_tools = []
-g_tools.append(MakePlane(MakeVertex(cx+t_hauteur, cy, cz), g_coupe, g_trim))
-g_tools.append(MakePlane(MakeVertex(cx-t_hauteur, cy, cz), g_coupe, g_trim))
-
-g_partie = MakePartition([g_cyl], g_tools, [], [], ShapeType["SOLID"])
-g_bas, g_centre, g_haut = SubShapeAllSorted(g_partie, ShapeType["SOLID"])
-
-# Partie basse du gros cylindre
-# -----------------------------
-
-b_hauteur = 10
-b_base    = 20
-
-b_boite = MakeBox(cx-t_hauteur, cy-b_base, cz,  cx-t_hauteur-b_hauteur, cy+b_base, cz+g_hauteur)
-cpd.append(b_boite)
-
-b_cyl = MakeCut(g_bas, b_boite)
-
-b_tools = []
-b_tools.append(MakePlane(MakeVertex(cx-t_hauteur-b_hauteur, cy+b_base, cz), MakeVectorDXDYDZ( 1, 1, 0), g_trim))
-b_tools.append(MakePlane(MakeVertex(cx-t_hauteur-b_hauteur, cy-b_base, cz), MakeVectorDXDYDZ(-1, 1, 0), g_trim))
-
-b_partie = MakePartition([b_cyl], b_tools, [], [], ShapeType["SOLID"])
-b_element = SubShapeAll(b_partie, ShapeType["SOLID"])
-cpd = cpd + b_element
-
-# Partie haute du gros cylindre
-# -----------------------------
-
-h_plan = MakePlane(g_base, g_coupe, g_trim)
-
-cpd.append(MakeMirrorByPlane(b_boite, h_plan))
-
-for h in b_element:
-    h_symetrie = MakeMirrorByPlane(h, h_plan)
-    cpd.append(h_symetrie)
-
-# Petit cylindre
-# --------------
-
-z_arete = p_rayon/2
-x_arete = z_arete*t_hauteur*2/g_hauteur
-
-px = cx-x_arete
-py = cy-1.5*g_rayon
-pz = cz+g_hauteur/2
-
-p_base = MakeVertex(cx, py, pz)
-p_dir  = MakeVectorDXDYDZ(0, 1, 0)
-p_cyl  = MakeCylinder(p_base, p_dir, p_rayon, p_hauteur)
-
-p_boite = MakeBox(px, py, pz-z_arete,  cx+x_arete, py+p_hauteur, pz+z_arete)
-
-# Partie interieure du petit cylindre
-# -----------------------------------
-
-i_cyl   = MakeCommon(p_cyl, g_cyl)
-i_tuyau = MakeCut(i_cyl, p_boite)
-i_boite = MakeCommon(p_boite, g_cyl)
-
-# Partie exterieure du petit cylindre
-# -----------------------------------
-
-e_cyl0 = MakeCut(p_cyl, g_cyl)
-e_cyl  = SubShapeAllSorted(e_cyl0, ShapeType["SOLID"])
-
-e_tuyau = MakeCut(e_cyl[1], p_boite)
-
-e_boite0 = MakeCut(p_boite, g_cyl)
-e_boite  = SubShapeAllSorted(e_boite0, ShapeType["SOLID"])
-
-cpd.append(e_boite[1])
-
-# Partie centrale du gros cylindre
-# --------------------------------
-
-c_cyl = MakeCut(g_centre, p_cyl)
-
-# Partitionner
-# ------------
-
-p_tools = []
-p_tools.append(MakePlane(MakeVertex(px, py, pz-z_arete), MakeVectorDXDYDZ(-z_arete, 0, x_arete), g_trim))
-p_tools.append(MakePlane(MakeVertex(px, py, pz+z_arete), MakeVectorDXDYDZ( z_arete, 0, x_arete), g_trim))
-
-p_partie = MakePartition([e_tuyau], p_tools, [], [], ShapeType["SOLID"])
-p_element = SubShapeAll(p_partie, ShapeType["SOLID"])
-cpd = cpd + p_element
-
-q_partie = MakePartition([i_tuyau, c_cyl], p_tools, [], [], ShapeType["SOLID"])
-q_element = SubShapeAll(q_partie, ShapeType["SOLID"])
-
-q_element = q_element + [i_boite]
-
-q_tools = []
-q_tools.append(MakePlane(MakeVertex(cx, cy-b_base, cz), MakeVectorDXDYDZ(0, 1, 0), g_trim))
-q_tools.append(MakePlane(MakeVertex(cx, cy+b_base, cz), MakeVectorDXDYDZ(0, 1, 0), g_trim))
-
-r_element = []
-for e in q_element:
-    r_partie = MakePartition([e], q_tools, [], [], ShapeType["SOLID"])
-    r_element = r_element + SubShapeAll(r_partie, ShapeType["SOLID"])
-
-cpd = cpd + r_element
-
-# Compound
-# --------
-
-piece = RemoveExtraEdges(MakeCompound(cpd))
-
-# Ajouter la piece dans l'etude
-# -----------------------------
-
-piece_id = addToStudy(piece, "ex15_cyl2geometry")
-
-# Meshing
-# =======
-
-# Create a hexahedral mesh
-# ------------------------
-
-hexa = smesh.Mesh(piece, "ex15_cyl2geometry:hexa")
-
-algo = hexa.Segment()
-algo.NumberOfSegments(12)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Mesh calculus
-# -------------
-
-hexa.Compute()
diff --git a/src/SMESH_SWIG/ex16_cyl2complementary.py b/src/SMESH_SWIG/ex16_cyl2complementary.py
deleted file mode 100644 (file)
index e38aba2..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
-# =======================================
-
-from geompy import *
-
-import smesh
-
-# Geometry
-# ========
-
-# Create the hexahedrical block geometry of a holed parallelepipede.
-# The hole has a T form composed by 2 cylinders with different radius, and their axis are normal.
-# This piece is meshed in hexahedrical.
-
-# Values
-# ------
-
-gx = 0
-gy = 0
-gz = 0
-
-g_dx = 250
-g_dy = 200
-g_dz = 150
-
-g_rayonGrand = 70
-g_rayonPetit = 50
-
-g_trim = 1000
-
-# The parallelepipede
-# -------------------
-
-p_boite = MakeBox(gx-g_dx, gy-g_dy, gz-g_dz,  gx+g_dx, gy+g_dy, gz+g_dz)
-
-# The great cylinder
-# ------------------
-
-g_base = MakeVertex(gx-g_dx, gy, gz)
-g_dir  = MakeVectorDXDYDZ(1, 0, 0)
-g_cyl  = MakeCylinder(g_base, g_dir, g_rayonGrand, g_dx*2)
-
-# The first hole
-# --------------
-
-b_boite = MakeCut(p_boite , g_cyl)
-
-# Partitioning
-# ------------
-
-p_base = MakeVertex(gx, gy, gz)
-
-p_tools = []
-
-p_tools.append(MakePlane(p_base, MakeVectorDXDYDZ(0,  1   , 0   ), g_trim))
-p_tools.append(MakePlane(p_base, MakeVectorDXDYDZ(0,  g_dz, g_dy), g_trim))
-p_tools.append(MakePlane(p_base, MakeVectorDXDYDZ(0, -g_dz, g_dy), g_trim))
-
-p_tools.append(MakePlane(MakeVertex(gx-g_rayonPetit, gy, gz), g_dir, g_trim))
-p_tools.append(MakePlane(MakeVertex(gx+g_rayonPetit, gy, gz), g_dir, g_trim))
-
-p_piece = MakePartition([b_boite], p_tools, [], [], ShapeType["SOLID"])
-
-# The small cylinder
-# ------------------
-
-c_cyl = MakeCylinder(p_base, MakeVectorDXDYDZ(0, 0, 1), g_rayonPetit, g_dz)
-
-# The second hole
-# ---------------
-
-d_element = SubShapeAllSorted(p_piece, ShapeType["SOLID"])
-
-d_element[ 8] = MakeCut(d_element[ 8], c_cyl)
-d_element[10] = MakeCut(d_element[10], c_cyl)
-
-# Compound
-# --------
-
-piece = RemoveExtraEdges(MakeCompound(d_element))
-
-# Add piece in study
-# ------------------
-
-piece_id = addToStudy(piece, "ex16_cyl2complementary")
-
-# Meshing
-# =======
-
-# Create a hexahedral mesh
-# ------------------------
-
-hexa = smesh.Mesh(piece, "ex16_cyl2complementary:hexa")
-
-algo = hexa.Segment()
-algo.NumberOfSegments(12)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Define local hypothesis
-# -----------------------
-
-def local(x, y, z, d):
-    edge = GetEdgeNearPoint(piece, MakeVertex(x, y, z))
-    algo = hexa.Segment(edge)
-    algo.NumberOfSegments(d)
-    algo.Propagation()
-
-local(gx     , gy+g_dy, gz+g_dz, 7)
-local(gx+g_dx, gy+g_dy, gz     , 21)
-local(gx+g_dx, gy-g_dy, gz     , 21)
-
-# Mesh calculus
-# -------------
-
-hexa.Compute()
diff --git a/src/SMESH_SWIG/ex17_dome1.py b/src/SMESH_SWIG/ex17_dome1.py
deleted file mode 100644 (file)
index 5064a93..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
-# =======================================
-
-from geompy import *
-
-import smesh
-
-# Geometrie
-# =========
-
-# Creer un cylindre surplombe d'une demi-sphere le tout troue par un petit cylindre.
-# Decouper en hexahedre et mailler.
-
-# Donnees
-# -------
-
-cylindre_rayon   = 100
-cylindre_hauteur = 400
-
-trou_rayon = 20
-trou_z     = cylindre_rayon/2
-
-plan_trim = 2000
-
-# Cylindre
-# --------
-
-cylindre_base = MakeVertex(0, 0, 0)
-cylindre_dir  = MakeVectorDXDYDZ(1, 0, 0)
-cylindre      = MakeCylinder(cylindre_base, cylindre_dir, cylindre_rayon, cylindre_hauteur)
-
-# Dome
-# ----
-
-dome_sphere = MakeSpherePntR(cylindre_base, cylindre_rayon)
-dome        = MakeFuse(dome_sphere, cylindre)
-
-# Cheminee
-# --------
-
-cheminee_base = MakeVertex(-cylindre_hauteur/2, 0, trou_z)
-cheminee_trou = MakeCylinder(cheminee_base, cylindre_dir, trou_rayon, 2*cylindre_hauteur)
-cheminee      = MakeCut(dome, cheminee_trou)
-
-# Decoupage et reparation
-# -----------------------
-
-blocs_plan1 = MakePlane(cheminee_base, MakeVectorDXDYDZ(0, 1, 0), plan_trim)
-blocs_plan2 = MakePlane(cheminee_base, MakeVectorDXDYDZ(0, 0, 1), plan_trim)
-
-blocs_part = MakePartition([cheminee], [blocs_plan1, blocs_plan2], [], [], ShapeType["SOLID"])
-
-piece = RemoveExtraEdges(blocs_part)
-
-# Etude
-# -----
-
-piece_id = addToStudy(piece, "ex17_dome1")
-
-# Maillage
-# ========
-
-# Maillage hexahedrique
-# ---------------------
-
-hexa = smesh.Mesh(piece, "ex17_dome1:hexa")
-
-algo = hexa.Segment()
-algo.NumberOfSegments(20)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Calcul du maillage
-# ------------------
-
-hexa.Compute()
diff --git a/src/SMESH_SWIG/ex18_dome2.py b/src/SMESH_SWIG/ex18_dome2.py
deleted file mode 100644 (file)
index 96d8738..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
-# =======================================
-
-from geompy import *
-
-import smesh
-
-import math
-
-# Geometrie
-# =========
-
-# Creer un cylindre ayant a chaque bout un morceau de sphere et le tout troue par un petit cylindrique excentre.
-# Decouper en hexahedre et mailler.
-
-# Donnees
-# -------
-
-# unite: millimetre
-
-g_ox = 0
-g_oy = 0
-g_oz = 0
-
-g_cyl_rayon       = 1000
-g_cyl_demiHauteur = 3000
-
-g_trou_rayon       =   5
-g_trou_centre      = 300
-
-g_sphere_rayon = 3500
-
-g_trim = 15000
-
-# Cylindre
-# --------
-
-c_point    = MakeVertex(g_ox, g_oy, g_oz-g_cyl_demiHauteur)
-c_dir      = MakeVectorDXDYDZ(0, 0, 1)
-c_hauteur  = 2*g_cyl_demiHauteur
-
-c_cylindre = MakeCylinder(c_point, c_dir, g_cyl_rayon, c_hauteur)
-
-# Sphere
-# ------
-
-s_hauteur = math.sqrt(g_sphere_rayon*g_sphere_rayon - g_cyl_rayon*g_cyl_rayon) - g_cyl_demiHauteur
-
-s_sphere  = MakeSphere(g_ox, g_oy, g_oz-s_hauteur, g_sphere_rayon)
-
-# Calottes
-# --------
-
-c_outils = []
-c_outils.append(MakePlane(MakeVertex(g_ox, g_oy, g_oz+g_cyl_demiHauteur), MakeVectorDXDYDZ(0, 0, 1), g_trim))
-
-c_cpd = MakePartition([s_sphere], c_outils, [], [], ShapeType["SOLID"])
-c_calotte_haut, c_reste = SubShapeAllSorted(c_cpd, ShapeType["SOLID"])
-
-c_plan = MakePlane(MakeVertex(g_ox, g_oy, g_oz), MakeVectorDXDYDZ(0, 0, 1), g_trim)
-c_calotte_bas = MakeMirrorByPlane(c_calotte_haut, c_plan)
-
-# Fusionner
-# ---------
-
-f_piece1 = MakeFuse(c_cylindre, c_calotte_haut)
-f_piece  = MakeFuse(f_piece1, c_calotte_bas)
-
-# Trouer
-# ------
-
-t_hauteur = g_sphere_rayon
-t_point   = MakeVertex(g_ox-g_trou_centre, g_oy, g_oz-t_hauteur)
-t_trou    = MakeCylinder(t_point, c_dir, g_trou_rayon, 2*t_hauteur)
-
-t_piece   = MakeCut(f_piece, t_trou)
-
-# Decouper
-# --------
-
-h_outils = []
-h_outils.append(MakePlane(t_point, MakeVectorDXDYDZ(1, 0, 0), g_trim))
-h_outils.append(MakePlane(t_point, MakeVectorDXDYDZ(0, 1, 0), g_trim))
-
-h_piece = MakePartition([t_piece], h_outils, [], [], ShapeType["SOLID"])
-
-# Reparer
-# -------
-
-piece = RemoveExtraEdges(h_piece)
-
-# Ajouter la piece dans l'etude
-# -----------------------------
-
-piece_id = addToStudy(piece, "ex18_dome2")
-
-# Maillage
-# ========
-
-# Maillage hexahedrique
-# ---------------------
-
-hexa = smesh.Mesh(piece, "ex18_dome2:hexa")
-
-algo = hexa.Segment()
-algo.NumberOfSegments(2)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Calcul du maillage
-# ------------------
-
-hexa.Compute()
diff --git a/src/SMESH_SWIG/ex19_sphereINcube.py b/src/SMESH_SWIG/ex19_sphereINcube.py
deleted file mode 100644 (file)
index 295a95f..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# CEA/LGLS 2005, Francis KLOSS (OCC)
-# ==================================
-
-from geompy import *
-
-import smesh
-
-# Geometrie
-# =========
-
-# Mailler en hexahedre une sphere dans un cube.
-
-# Donnees
-# -------
-
-sphere_rayon = 100
-
-cube_cote = 200
-
-plan_trim = 1000
-
-# Sphere
-# ------
-
-sphere_centre = MakeVertex(0, 0, 0)
-
-sphere_pleine = MakeSpherePntR(sphere_centre, sphere_rayon)
-
-# Cube interieur
-# --------------
-
-boite_cote = sphere_rayon / 2
-
-boite = MakeBox(-boite_cote, -boite_cote, -boite_cote,  +boite_cote, +boite_cote, +boite_cote)
-
-blocs = [boite]
-
-# Decoupage sphere
-# ----------------
-
-sphere_troue = MakeCut(sphere_pleine, boite)
-
-sphere_outils = []
-sphere_outils.append(MakePlane(sphere_centre, MakeVectorDXDYDZ( 1, 0,  1), plan_trim))
-sphere_outils.append(MakePlane(sphere_centre, MakeVectorDXDYDZ( 1, 0, -1), plan_trim))
-sphere_outils.append(MakePlane(sphere_centre, MakeVectorDXDYDZ( 1, 1,  0), plan_trim))
-sphere_outils.append(MakePlane(sphere_centre, MakeVectorDXDYDZ(-1, 1,  0), plan_trim))
-
-sphere_decoupee = MakePartition([sphere_troue], sphere_outils, [], [], ShapeType["SOLID"])
-
-sphere_partie   = GetBlockNearPoint(sphere_decoupee, MakeVertex(-sphere_rayon, 0, 0))
-sphere_bloc     = RemoveExtraEdges(sphere_partie)
-
-blocs.append(sphere_bloc)
-
-pi2 = 3.141592653/2
-
-sphere_dir1 = MakeVectorDXDYDZ(0, 1,  0)
-sphere_dir2 = MakeVectorDXDYDZ(0, 0,  1)
-
-blocs.append(MakeRotation(sphere_bloc, sphere_dir1, +pi2))
-blocs.append(MakeRotation(sphere_bloc, sphere_dir1, -pi2))
-
-blocs.append(MakeRotation(sphere_bloc, sphere_dir2, +pi2))
-blocs.append(MakeRotation(sphere_bloc, sphere_dir2, -pi2))
-
-blocs.append(MakeMirrorByPoint(sphere_bloc, sphere_centre))
-
-# Cube exterieur
-# --------------
-
-cube_plein   = MakeBox(-cube_cote, -cube_cote, -cube_cote,  +cube_cote, +cube_cote, +cube_cote)
-cube_trou    = MakeCut(cube_plein, sphere_pleine)
-cube_decoupe = MakePartition([cube_trou], sphere_outils, [], [], ShapeType["SOLID"])
-cube_partie  = GetBlockNearPoint(cube_decoupe, MakeVertex(-cube_cote, 0, 0))
-cube_bloc    = RemoveExtraEdges(cube_partie)
-
-blocs.append(cube_bloc)
-
-blocs.append(MakeRotation(cube_bloc, sphere_dir1, +pi2))
-blocs.append(MakeRotation(cube_bloc, sphere_dir1, -pi2))
-
-blocs.append(MakeRotation(cube_bloc, sphere_dir2, +pi2))
-blocs.append(MakeRotation(cube_bloc, sphere_dir2, -pi2))
-
-blocs.append(MakeMirrorByPoint(cube_bloc, sphere_centre))
-
-# Piece
-# -----
-
-piece_cpd = MakeCompound(blocs)
-piece = MakeGlueFaces(piece_cpd, 1.e-3)
-
-piece_id = addToStudy(piece, "ex19_sphereINcube")
-
-# Groupe geometrique
-# ==================
-
-# Definition du groupe
-# --------------------
-
-groupe = CreateGroup(piece, ShapeType["SOLID"])
-
-groupe_nom = "ex19_sphereINcube_interieur"
-addToStudy(groupe, groupe_nom)
-groupe.SetName(groupe_nom)
-
-# Contenu du groupe
-# -----------------
-
-groupe_sphere = GetShapesOnSphere(piece, ShapeType["SOLID"], sphere_centre, sphere_rayon, GEOM.ST_ONIN)
-
-UnionList(groupe, groupe_sphere)
-
-# Meshing
-# =======
-
-# Create a hexahedral mesh
-# ------------------------
-
-hexa = smesh.Mesh(piece, "ex19_sphereINcube:hexa")
-
-algo = hexa.Segment()
-algo.NumberOfSegments(10)
-
-hexa.Quadrangle()
-
-hexa.Hexahedron()
-
-# Mesh calculus
-# -------------
-
-hexa.Compute()
-
-# Le groupe de mailles
-# --------------------
-
-hexa_groupe = hexa.Group(groupe)
diff --git a/src/SMESH_SWIG/libSMESH_Swig.i b/src/SMESH_SWIG/libSMESH_Swig.i
deleted file mode 100644 (file)
index 7caf233..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : libGeometry_Swig.i
-//  Author : Nicolas REJNERI, Paul RASCLE
-//  Module : SMESH
-//  $Header$
-
-%module libSMESH_Swig
-
-%include "SMESHGUI_Swig.i"
-
diff --git a/src/SMESH_SWIG/smesh.py b/src/SMESH_SWIG/smesh.py
deleted file mode 100644 (file)
index 9c0d2ba..0000000
+++ /dev/null
@@ -1,491 +0,0 @@
-#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
-#  This library is free software; you can redistribute it and/or
-#  modify it under the terms of the GNU Lesser General Public
-#  License as published by the Free Software Foundation; either
-#  version 2.1 of the License.
-#
-#  This library is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#  Lesser General Public License for more details.
-#
-#  You should have received a copy of the GNU Lesser General Public
-#  License along with this library; if not, write to the Free Software
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-#
-#  File   : smesh.py
-#  Author : Francis KLOSS, OCC
-#  Module : SMESH
-
-"""
- \namespace smesh
- \brief Module smesh
-"""
-
-import salome
-import geompy
-import StdMeshers
-import SMESH
-
-# Public variables
-# ----------------
-
-REGULAR = 1
-PYTHON  = 2
-
-NETGEN  = 3
-GHS3D   = 4
-
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-smesh.SetCurrentStudy(salome.myStudy)
-
-# Private functions
-# -----------------
-
-NO_NAME = "NoName"
-
-def GetName(obj):
-    ior  = salome.orb.object_to_string(obj)
-    sobj = salome.myStudy.FindObjectIOR(ior)
-    if sobj is None:
-        return NO_NAME
-    else:
-        attr = sobj.FindAttribute("AttributeName")[1]
-        return attr.Value()
-
-def SetName(obj, name):
-    ior  = salome.orb.object_to_string(obj)
-    sobj = salome.myStudy.FindObjectIOR(ior)
-    attr = sobj.FindAttribute("AttributeName")[1]
-    attr.SetValue(name)
-
-# Algorithms and hypothesis
-# =========================
-
-# Private class: Mesh_Algorithm
-# -----------------------------
-
-class Mesh_Algorithm:
-    """
-    Mother class to define algorithm, recommended to don't use directly
-    """
-
-    mesh = 0
-    geom = 0
-    subm = 0
-
-    def GetSubMesh(self):
-        """
-         If the algorithm is global, return 0
-         else return the submesh associated to this algorithm
-        """
-        return self.subm
-
-    def Create(self, mesh, geom, hypo, so="libStdMeshersEngine.so"):
-        """
-         Private method
-        """
-        self.mesh = mesh
-        piece = mesh.geom
-        if geom==0:
-            self.geom = piece
-            name = GetName(piece)
-        else:
-            self.geom = geom
-            name = GetName(geom)
-            if name==NO_NAME:
-                name = geompy.SubShapeName(geom, piece)
-                geompy.addToStudyInFather(piece, geom, name)
-            self.subm = mesh.mesh.GetSubMesh(geom, hypo)
-
-        algo = smesh.CreateHypothesis(hypo, so)
-        SetName(algo, name + "/" + hypo)
-        mesh.mesh.AddHypothesis(self.geom, algo)
-
-    def Hypothesis(self, hyp, args=[], so="libStdMeshersEngine.so"):
-        """
-         Private method
-        """
-        hypo = smesh.CreateHypothesis(hyp, so)
-        a = ""
-        s = "="
-        i = 0
-        n = len(args)
-        while i<n:
-            a = a + s + str(args[i])
-            s = ","
-            i = i + 1
-        SetName(hypo, GetName(self.geom) + "/" + hyp + a)
-        self.mesh.mesh.AddHypothesis(self.geom, hypo)
-        return hypo
-
-# Public class: Mesh_Segment
-# --------------------------
-
-class Mesh_Segment(Mesh_Algorithm):
-    """
-    Class to define a segment 1D algorithm for discretization
-    """
-
-    def __init__(self, mesh, geom=0):
-        """
-         Private constructor
-        """
-        self.Create(mesh, geom, "Regular_1D")
-
-    def LocalLength(self, l):
-        """
-         Define "LocalLength" hypothesis to cut an edge in several segments with the same length
-         \param l for the length of segments that cut an edge
-        """
-        hyp = self.Hypothesis("LocalLength", [l])
-        hyp.SetLength(l)
-        return hyp
-
-    def NumberOfSegments(self, n, s=[]):
-        """
-         Define "NumberOfSegments" hypothesis to cut an edge in several fixed number of segments
-         \param n for the number of segments that cut an edge
-         \param s for the scale factor (optional)
-        """
-        if s == []:
-            hyp = self.Hypothesis("NumberOfSegments", [n])
-        else:
-            hyp = self.Hypothesis("NumberOfSegments", [n,s])
-            hyp.SetScaleFactor(s)
-        hyp.SetNumberOfSegments(n)
-        return hyp
-
-    def Arithmetic1D(self, start, end):
-        """
-         Define "Arithmetic1D" hypothesis to cut an edge in several segments with arithmetic length increasing
-         \param start for the length of the first segment
-         \param end   for the length of the last  segment
-        """
-        hyp = self.Hypothesis("Arithmetic1D", [start, end])
-        hyp.SetLength(start, 1)
-        hyp.SetLength(end  , 0)
-        return hyp
-
-    def StartEndLength(self, start, end):
-        """
-         Define "StartEndLength" hypothesis to cut an edge in several segments with geometric length increasing
-         \param start for the length of the first segment
-         \param end   for the length of the last  segment
-        """
-        hyp = self.Hypothesis("StartEndLength", [start, end])
-        hyp.SetLength(start, 1)
-        hyp.SetLength(end  , 0)
-        return hyp
-
-    def Deflection1D(self, d):
-        """
-         Define "Deflection1D" hypothesis
-         \param d for the deflection
-        """
-        hyp = self.Hypothesis("Deflection1D", [d])
-        hyp.SetDeflection(d)
-        return hyp
-
-    def Propagation(self):
-        """
-         Define "Propagation" hypothesis that propagate all other hypothesis on all others edges that are in
-         the opposite side in the case of quadrangular faces
-        """
-        return self.Hypothesis("Propagation")
-
-# Public class: Mesh_Segment_Python
-# ---------------------------------
-
-class Mesh_Segment_Python(Mesh_Segment):
-    """
-    Class to define a segment 1D algorithm for discretization with python function
-    """
-
-    def __init__(self, mesh, geom=0):
-        """
-         Private constructor
-        """
-        import Python1dPlugin
-        self.Create(mesh, geom, "Python_1D", "libPython1dEngine.so")
-
-    def PythonSplit1D(self, n, func):
-        """
-         Define "PythonSplit1D" hypothesis based on the Erwan Adam patch, awaiting equivalent SALOME functionality
-         \param n for the number of segments that cut an edge
-         \param func for the python function that calculate the length of all segments
-        """
-        hyp = self.Hypothesis("PythonSplit1D", [n], "libPython1dEngine.so")
-        hyp.SetNumberOfSegments(n)
-        hyp.SetPythonLog10RatioFunction(func)
-        return hyp
-
-# Public class: Mesh_Triangle
-# ---------------------------
-
-class Mesh_Triangle(Mesh_Algorithm):
-    """
-    Class to define a triangle 2D algorithm
-    """
-
-    def __init__(self, mesh, geom=0):
-        """
-         Private constructor
-        """
-        self.Create(mesh, geom, "MEFISTO_2D")
-
-    def MaxElementArea(self, area):
-        """
-         Define "MaxElementArea" hypothesis to give the maximun area of each triangles
-         \param area for the maximum area of each triangles
-        """
-        hyp = self.Hypothesis("MaxElementArea", [area])
-        hyp.SetMaxElementArea(area)
-        return hyp
-
-    def LengthFromEdges(self):
-        """
-         Define "LengthFromEdges" hypothesis to build triangles based on the length of the edges taken from the wire
-        """
-        return self.Hypothesis("LengthFromEdges")
-
-# Public class: Mesh_Quadrangle
-# -----------------------------
-
-class Mesh_Quadrangle(Mesh_Algorithm):
-    """
-    Class to define a quadrangle 2D algorithm
-    """
-
-    def __init__(self, mesh, geom=0):
-        """
-         Private constructor
-        """
-        self.Create(mesh, geom, "Quadrangle_2D")
-
-# Public class: Mesh_Tetrahedron
-# ------------------------------
-
-class Mesh_Tetrahedron(Mesh_Algorithm):
-    """
-    Class to define a tetrahedron 3D algorithm
-    """
-
-    def __init__(self, mesh, algo, geom=0):
-        """
-         Private constructor
-        """
-        if algo == NETGEN:
-            self.Create(mesh, geom, "NETGEN_3D", "libNETGENEngine.so")
-        elif algo == GHS3D:
-            import GHS3DPlugin
-            self.Create(mesh, geom, "GHS3D_3D" , "libGHS3DEngine.so")
-
-    def MaxElementVolume(self, vol):
-        """
-         Define "MaxElementVolume" hypothesis to give the maximun volume of each tetrahedral
-         \param vol for the maximum volume of each tetrahedral
-        """
-        hyp = self.Hypothesis("MaxElementVolume", [vol])
-        hyp.SetMaxElementVolume(vol)
-        return hyp
-
-# Public class: Mesh_Hexahedron
-# ------------------------------
-
-class Mesh_Hexahedron(Mesh_Algorithm):
-    """
-    Class to define a hexahedron 3D algorithm
-    """
-
-    def __init__(self, mesh, geom=0):
-        """
-         Private constructor
-        """
-        self.Create(mesh, geom, "Hexa_3D")
-
-# Public class: Mesh
-# ==================
-
-class Mesh:
-    """
-    Class to define a mesh
-    """
-
-    geom = 0
-    mesh = 0
-
-    def __init__(self, geom, name=0):
-        """
-         Constructor
-
-         Creates mesh on the shape \a geom,
-         sets GUI name of this mesh to \a name.
-         \param geom Shape to be meshed
-         \param name Study name of the mesh
-        """
-        self.geom = geom
-        self.mesh = smesh.CreateMesh(geom)
-        if name == 0:
-            SetName(self.mesh, GetName(geom))
-        else:
-            SetName(self.mesh, name)
-
-    def GetMesh(self):
-        """
-         Method that returns the mesh
-        """
-        return self.mesh
-
-    def GetShape(self):
-        """
-         Method that returns the shape associated to the mesh
-        """
-        return self.geom
-
-    def Segment(self, algo=REGULAR, geom=0):
-        """
-         Creates a segment discretization 1D algorithm.
-         If the optional \a algo parameter is not sets, this algorithm is REGULAR.
-         If the optional \a geom parameter is not sets, this algorithm is global.
-         Otherwise, this algorithm define a submesh based on \a geom subshape.
-         \param algo values are smesh.REGULAR or smesh.PYTHON for discretization via python function
-         \param geom If defined, subshape to be meshed
-        """
-        if algo == REGULAR:
-            return Mesh_Segment(self, geom)
-        elif algo == PYTHON:
-            return Mesh_Segment_Python(self, geom)
-        else:
-            return Mesh_Segment(self, algo)
-
-    def Triangle(self, geom=0):
-        """
-         Creates a triangle 2D algorithm for faces.
-         If the optional \a geom parameter is not sets, this algorithm is global.
-         Otherwise, this algorithm define a submesh based on \a geom subshape.
-         \param geom If defined, subshape to be meshed
-        """
-        return Mesh_Triangle(self, geom)
-
-    def Quadrangle(self, geom=0):
-        """
-         Creates a quadrangle 2D algorithm for faces.
-         If the optional \a geom parameter is not sets, this algorithm is global.
-         Otherwise, this algorithm define a submesh based on \a geom subshape.
-         \param geom If defined, subshape to be meshed
-        """
-        return Mesh_Quadrangle(self, geom)
-
-    def Tetrahedron(self, algo, geom=0):
-        """
-         Creates a tetrahedron 3D algorithm for solids.
-         The parameter \a algo permits to choice the algorithm: NETGEN or GHS3D
-         If the optional \a geom parameter is not sets, this algorithm is global.
-         Otherwise, this algorithm define a submesh based on \a geom subshape.
-         \param algo values are: smesh.NETGEN, smesh.GHS3D
-         \param geom If defined, subshape to be meshed
-        """
-        return Mesh_Tetrahedron(self, algo, geom)
-
-    def Hexahedron(self, geom=0):
-        """
-         Creates a hexahedron 3D algorithm for solids.
-         If the optional \a geom parameter is not sets, this algorithm is global.
-         Otherwise, this algorithm define a submesh based on \a geom subshape.
-         \param geom If defined, subshape to be meshed
-        """
-        return Mesh_Hexahedron(self, geom)
-
-    def Compute(self):
-        """
-         Compute the mesh and return the status of the computation
-        """
-        b = smesh.Compute(self.mesh, self.geom)
-        if salome.sg.hasDesktop():
-            smeshgui = salome.ImportComponentGUI("SMESH")
-            smeshgui.Init(salome.myStudyId)
-            smeshgui.SetMeshIcon( salome.ObjectToID( self.mesh ), b )
-            salome.sg.updateObjBrowser(1)
-        return b
-
-    def Group(self, grp, name=""):
-        """
-         Create a mesh group based on geometric object \a grp
-         and give a \a name, if this parameter is not defined
-         the name is the same as the geometric group name
-         \param grp  is a geometric group, a vertex, an edge, a face or a solid
-         \param name is the name of the mesh group
-        """
-        if name == "":
-            name = grp.GetName()
-
-        type = []
-        tgeo = str(grp.GetShapeType())
-        if tgeo == "VERTEX":
-            type = SMESH.NODE
-        elif tgeo == "EDGE":
-            type = SMESH.EDGE
-        elif tgeo == "FACE":
-            type = SMESH.FACE
-        elif tgeo == "SOLID":
-            type = SMESH.VOLUME
-        elif tgeo == "SHELL":
-            type = SMESH.VOLUME
-        elif tgeo == "COMPOUND":
-            tgeo = geompy.GetType(grp)
-            if tgeo == geompy.ShapeType["VERTEX"]:
-                type = SMESH.NODE
-            elif tgeo == geompy.ShapeType["EDGE"]:
-                type = SMESH.EDGE
-            elif tgeo == geompy.ShapeType["FACE"]:
-                type = SMESH.FACE
-            elif tgeo == geompy.ShapeType["SOLID"]:
-                type = SMESH.VOLUME
-
-        if type == []:
-            print "Mesh.Group: bad first argument: expected a group, a vertex, an edge, a face or a solid"
-            return 0
-        else:
-            return self.mesh.CreateGroupFromGEOM(type, name, grp)
-
-    def ExportToMED(self, f, version, opt=0):
-        """
-         Export the mesh in a file with the MED format and choice the \a version of MED format
-         \param f is the file name
-         \param version values are smesh.MED_V2_1, smesh.MED_V2_2
-        """
-        self.mesh.ExportToMED(f, opt, version)
-
-    def ExportMED(self, f, opt=0):
-        """
-         Export the mesh in a file with the MED format
-         \param f is the file name
-        """
-        self.mesh.ExportMED(f, opt)
-
-    def ExportDAT(self, f):
-        """
-         Export the mesh in a file with the DAT format
-         \param f is the file name
-        """
-        self.mesh.ExportDAT(f)
-
-    def ExportUNV(self, f):
-        """
-         Export the mesh in a file with the UNV format
-         \param f is the file name
-        """
-        self.mesh.ExportUNV(f)
-
-    def ExportSTL(self, f, ascii=1):
-        """
-         Export the mesh in a file with the STL format
-         \param f is the file name
-         \param ascii defined the kind of file contents
-        """
-        self.mesh.ExportSTL(f, ascii)
diff --git a/src/StdMeshers/Makefile.in b/src/StdMeshers/Makefile.in
deleted file mode 100644 (file)
index 88661b5..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-#  SMESH StdMeshers : implementaion of SMESH idl descriptions
-#
-#  Copyright (C) 2003  CEA
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-#
-#
-#
-#  File   : Makefile.in
-#  Author : Julia DOROVSKIKH
-#  Module : SMESH
-#  $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@top_srcdir@/idl:$(top_builddir)/idl
-
-
-@COMMENCE@
-
-# header files  
-EXPORT_HEADERS = \
-       StdMeshers_LocalLength.hxx \
-       StdMeshers_StartEndLength.hxx \
-       StdMeshers_Arithmetic1D.hxx \
-       StdMeshers_NumberOfSegments.hxx \
-       StdMeshers_Deflection1D.hxx \
-       StdMeshers_Propagation.hxx \
-       StdMeshers_LengthFromEdges.hxx \
-       StdMeshers_MaxElementArea.hxx \
-       StdMeshers_MaxElementVolume.hxx \
-       StdMeshers_NotConformAllowed.hxx \
-       StdMeshers_Regular_1D.hxx \
-       StdMeshers_Quadrangle_2D.hxx \
-       StdMeshers_MEFISTO_2D.hxx \
-       StdMeshers_Hexa_3D.hxx
-
-EXPORT_PYSCRIPTS =
-
-# Libraries targets
-
-LIB = libStdMeshers.la
-
-LIB_SRC = \
-       StdMeshers_LocalLength.cxx \
-       StdMeshers_StartEndLength.cxx \
-       StdMeshers_Arithmetic1D.cxx \
-       StdMeshers_NumberOfSegments.cxx \
-       StdMeshers_Deflection1D.cxx \
-       StdMeshers_Propagation.cxx \
-       StdMeshers_LengthFromEdges.cxx \
-       StdMeshers_MaxElementArea.cxx \
-       StdMeshers_MaxElementVolume.cxx \
-       StdMeshers_NotConformAllowed.cxx \
-       StdMeshers_Regular_1D.cxx \
-       StdMeshers_Quadrangle_2D.cxx \
-       StdMeshers_MEFISTO_2D.cxx \
-       StdMeshers_Penta_3D.cxx \
-       StdMeshers_Hexa_3D.cxx 
-
-LIB_SERVER_IDL = 
-
-LIB_CLIENT_IDL =
-
-# Executables targets
-BIN = 
-BIN_SRC = 
-
-# additionnal information to compil and link file
-CPPFLAGS+= $(OCC_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS)
-CXXFLAGS+= $(OCC_CXXFLAGS) -I${KERNEL_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome
-
-LDFLAGS+= -lSMESHimpl -lMEFISTO2D -L${CASROOT}/Linux/lib -lTKAdvTools -L${KERNEL_ROOT_DIR}/lib/salome -L${GEOM_ROOT_DIR}/lib/salome
-
-@CONCLUDE@
diff --git a/src/StdMeshers/StdMeshers_Arithmetic1D.cxx b/src/StdMeshers/StdMeshers_Arithmetic1D.cxx
deleted file mode 100644 (file)
index c2241c0..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Arithmetic1D.cxx
-//  Author : Damien COQUERET, OCC
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_Arithmetic1D.hxx"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_Arithmetic1D::StdMeshers_Arithmetic1D(int hypId, int studyId,
-       SMESH_Gen * gen):SMESH_Hypothesis(hypId, studyId, gen)
-{
-  _begLength = 1.;
-  _endLength = 1.;
-  _name = "Arithmetic1D";
-  _param_algo_dim = 1; 
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_Arithmetic1D::~StdMeshers_Arithmetic1D()
-{
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void StdMeshers_Arithmetic1D::SetLength(double length, bool isStartLength)
-     throw(SALOME_Exception)
-{
-  if ( (isStartLength ? _begLength : _endLength) != length ) {
-    if (length <= 0)
-      throw SALOME_Exception(LOCALIZED("length must be positive"));
-    if ( isStartLength )
-      _begLength = length;
-    else
-      _endLength = length;
-
-    NotifySubMeshesHypothesisModification();
-  }
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-double StdMeshers_Arithmetic1D::GetLength(bool isStartLength) const
-{
-  return isStartLength ? _begLength : _endLength;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & StdMeshers_Arithmetic1D::SaveTo(ostream & save)
-{
-  save << _begLength << " " << _endLength;
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & StdMeshers_Arithmetic1D::LoadFrom(istream & load)
-{
-  bool isOK = true;
-  isOK = (load >> _begLength);
-  if (!isOK)
-    load.clear(ios::badbit | load.rdstate());
-  isOK = (load >> _endLength);
-  if (!isOK)
-    load.clear(ios::badbit | load.rdstate());
-  return load;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator <<(ostream & save, StdMeshers_Arithmetic1D & hyp)
-{
-  return hyp.SaveTo( save );
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >>(istream & load, StdMeshers_Arithmetic1D & hyp)
-{
-  return hyp.LoadFrom( load );
-}
diff --git a/src/StdMeshers/StdMeshers_Arithmetic1D.hxx b/src/StdMeshers/StdMeshers_Arithmetic1D.hxx
deleted file mode 100644 (file)
index ca49df1..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Arithmetic1D.hxx
-//  Author : Damien COQUERET, OCC
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_ARITHMETIC1D_HXX_
-#define _SMESH_ARITHMETIC1D_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-class StdMeshers_Arithmetic1D:
-  public SMESH_Hypothesis
-{
-public:
-  StdMeshers_Arithmetic1D(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~StdMeshers_Arithmetic1D();
-
-  void SetLength(double length, bool isStartLength) throw(SALOME_Exception);
-
-  double GetLength(bool isStartLength) const;
-
-  virtual ostream & SaveTo(ostream & save);
-  virtual istream & LoadFrom(istream & load);
-  friend ostream& operator << (ostream & save, StdMeshers_Arithmetic1D & hyp);
-  friend istream& operator >> (istream & load, StdMeshers_Arithmetic1D & hyp);
-
-protected:
-  double _begLength, _endLength;
-};
-
-#endif
diff --git a/src/StdMeshers/StdMeshers_Deflection1D.cxx b/src/StdMeshers/StdMeshers_Deflection1D.cxx
deleted file mode 100644 (file)
index f6e5469..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-//  SMESH StdMeshers_Deflection1D : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Deflection1D.cxx
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-
-#include "StdMeshers_Deflection1D.hxx"
-#include "utilities.h"
-
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_Deflection1D::StdMeshers_Deflection1D(int         hypId,
-                                                 int         studyId,
-                                                 SMESH_Gen * gen)
-     :SMESH_Hypothesis(hypId, studyId, gen)
-{
-  _value = 1.;
-  _name = "Deflection1D";
-  _param_algo_dim = 1; // is used by SMESH_Regular_1D
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_Deflection1D::~StdMeshers_Deflection1D()
-{
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void StdMeshers_Deflection1D::SetDeflection(double value)
-     throw(SALOME_Exception)
-{
-  if (_value != value) {
-    if (value <= 0.)
-      throw SALOME_Exception(LOCALIZED("Value must be positive"));
-
-    NotifySubMeshesHypothesisModification();
-
-    _value = value;
-  }
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-double StdMeshers_Deflection1D::GetDeflection() const
-{
-  return _value;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & StdMeshers_Deflection1D::SaveTo(ostream & save)
-{
-  save << _value;
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & StdMeshers_Deflection1D::LoadFrom(istream & load)
-{
-  bool isOK = (load >> _value);
-  if (!isOK)
-    load.clear(ios::badbit | load.rdstate());
-  return load;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator <<(ostream & save, StdMeshers_Deflection1D & hyp)
-{
-  return hyp.SaveTo( save );
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >>(istream & load, StdMeshers_Deflection1D & hyp)
-{
-  return hyp.LoadFrom( load );
-}
diff --git a/src/StdMeshers/StdMeshers_Deflection1D.hxx b/src/StdMeshers/StdMeshers_Deflection1D.hxx
deleted file mode 100644 (file)
index 1ed43cb..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-//  SMESH StdMeshers : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Deflection1D.hxx
-//  Module : SMESH
-//  $Header$
-
-#ifndef _StdMeshers_Deflection1D_HXX_
-#define _StdMeshers_Deflection1D_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-class StdMeshers_Deflection1D:public SMESH_Hypothesis
-{
- public:
-  StdMeshers_Deflection1D(int hypId, int studyId, SMESH_Gen * gen);
-  virtual ~ StdMeshers_Deflection1D();
-
-  void SetDeflection(double value) throw(SALOME_Exception);
-
-  double GetDeflection() const;
-  
-  virtual ostream & SaveTo(ostream & save);
-  virtual istream & LoadFrom(istream & load);
-  friend ostream & operator <<(ostream & save, StdMeshers_Deflection1D & hyp);
-  friend istream & operator >>(istream & load, StdMeshers_Deflection1D & hyp);
-
- protected:
-  double _value;
-};
-
-#endif
diff --git a/src/StdMeshers/StdMeshers_Hexa_3D.cxx b/src/StdMeshers/StdMeshers_Hexa_3D.cxx
deleted file mode 100644 (file)
index 597c354..0000000
+++ /dev/null
@@ -1,1081 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Hexa_3D.cxx
-//           Moved here from SMESH_Hexa_3D.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_Hexa_3D.hxx"
-#include "StdMeshers_Quadrangle_2D.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_Mesh.hxx"
-#include "SMESH_subMesh.hxx"
-
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_FacePosition.hxx"
-#include "SMDS_VolumeTool.hxx"
-#include "SMDS_VolumeOfNodes.hxx"
-
-#include <TopExp.hxx>
-#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
-#include <TopTools_ListOfShape.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
-
-#include <BRep_Tool.hxx>
-#include <Geom_Surface.hxx>
-#include <Geom_Curve.hxx>
-#include <Geom2d_Curve.hxx>
-#include <Handle_Geom2d_Curve.hxx>
-#include <Handle_Geom_Curve.hxx>
-#include <gp_Pnt2d.hxx>
-
-#include "utilities.h"
-#include "Utils_ExceptHandlers.hxx"
-
-//modified by NIZNHY-PKV Wed Nov 17 15:31:58 2004 f
-#include "StdMeshers_Penta_3D.hxx"
-
-static bool ComputePentahedralMesh(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape);
-//modified by NIZNHY-PKV Wed Nov 17 15:32:00 2004 t
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_Hexa_3D::StdMeshers_Hexa_3D(int hypId, int studyId,
-       SMESH_Gen * gen):SMESH_3D_Algo(hypId, studyId, gen)
-{
-       MESSAGE("StdMeshers_Hexa_3D::StdMeshers_Hexa_3D");
-       _name = "Hexa_3D";
-//   _shapeType = TopAbs_SOLID;
-       _shapeType = (1 << TopAbs_SHELL) | (1 << TopAbs_SOLID); // 1 bit /shape type
-//   MESSAGE("_shapeType octal " << oct << _shapeType);
-       for (int i = 0; i < 6; i++)
-               _quads[i] = 0;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_Hexa_3D::~StdMeshers_Hexa_3D()
-{
-       MESSAGE("StdMeshers_Hexa_3D::~StdMeshers_Hexa_3D");
-       for (int i = 0; i < 6; i++)
-               StdMeshers_Quadrangle_2D::QuadDelete(_quads[i]);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool StdMeshers_Hexa_3D::CheckHypothesis
-                         (SMESH_Mesh& aMesh,
-                          const TopoDS_Shape& aShape,
-                          SMESH_Hypothesis::Hypothesis_Status& aStatus)
-{
-       //MESSAGE("StdMeshers_Hexa_3D::CheckHypothesis");
-
-       bool isOk = true;
-        aStatus = SMESH_Hypothesis::HYP_OK;
-
-       // nothing to check
-
-       return isOk;
-}
-
-//=======================================================================
-//function : findIJ
-//purpose  : return i,j of the node
-//=======================================================================
-
-static bool findIJ (const SMDS_MeshNode* node, const FaceQuadStruct * quad, int& I, int& J)
-{
-  I = J = 0;
-  const SMDS_FacePosition* fpos =
-    static_cast<const SMDS_FacePosition*>(node->GetPosition().get());
-  if ( ! fpos ) return false;
-  gp_Pnt2d uv( fpos->GetUParameter(), fpos->GetVParameter() );
-
-  double minDist = DBL_MAX;
-  int nbhoriz  = Min(quad->nbPts[0], quad->nbPts[2]);
-  int nbvertic = Min(quad->nbPts[1], quad->nbPts[3]);
-  for (int i = 1; i < nbhoriz - 1; i++) {
-    for (int j = 1; j < nbvertic - 1; j++) {
-      int ij = j * nbhoriz + i;
-      gp_Pnt2d uv2( quad->uv_grid[ij].u, quad->uv_grid[ij].v );
-      double dist = uv.SquareDistance( uv2 );
-      if ( dist < minDist ) {
-        minDist = dist;
-        I = i;
-        J = j;
-      }
-    }
-  }
-  return true;
-}
-
-//=============================================================================
-/*!
- * Hexahedron mesh on hexaedron like form
- * -0.  - shape and face mesh verification
- * -1.  - identify faces and vertices of the "cube"
- * -2.  - Algorithm from:
- * "Application de l'interpolation transfinie Ã  la création de maillages
- *  C0 ou G1 continus sur des triangles, quadrangles, tetraedres, pentaedres
- *  et hexaedres déformés."
- * Alain PERONNET - 8 janvier 1999
- */
-//=============================================================================
-
-bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh & aMesh,
-       const TopoDS_Shape & aShape)throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-       MESSAGE("StdMeshers_Hexa_3D::Compute");
-       //bool isOk = false;
-       SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
-       //SMESH_subMesh *theSubMesh = aMesh.GetSubMesh(aShape);
-       //const SMESHDS_SubMesh *& subMeshDS = theSubMesh->GetSubMeshDS();
-
-       // 0.  - shape and face mesh verification
-       // 0.1 - shape must be a solid (or a shell) with 6 faces
-       //MESSAGE("---");
-
-       vector < SMESH_subMesh * >meshFaces;
-       for (TopExp_Explorer exp(aShape, TopAbs_FACE); exp.More(); exp.Next())
-       {
-               SMESH_subMesh *aSubMesh = aMesh.GetSubMeshContaining(exp.Current());
-               ASSERT(aSubMesh);
-               meshFaces.push_back(aSubMesh);
-       }
-       if (meshFaces.size() != 6)
-       {
-               SCRUTE(meshFaces.size());
-//             ASSERT(0);
-               return false;
-       }
-
-       // 0.2 - is each face meshed with Quadrangle_2D? (so, with a wire of 4 edges)
-       //MESSAGE("---");
-
-       for (int i = 0; i < 6; i++)
-       {
-         TopoDS_Shape aFace = meshFaces[i]->GetSubShape();
-         SMESH_Algo *algo = _gen->GetAlgo(aMesh, aFace);
-         string algoName = algo->GetName();
-          bool isAllQuad = false;
-         if (algoName == "Quadrangle_2D") {
-            SMESHDS_SubMesh * sm = meshDS->MeshElements( aFace );
-            if ( sm ) {
-              isAllQuad = true;
-              SMDS_ElemIteratorPtr eIt = sm->GetElements();
-              while ( isAllQuad && eIt->more() )
-                isAllQuad = ( eIt->next()->NbNodes() == 4 );
-            }
-          }
-          if ( ! isAllQuad ) {
-           //modified by NIZNHY-PKV Wed Nov 17 15:31:37 2004 f
-            bool bIsOk;
-            //
-            bIsOk=ComputePentahedralMesh(aMesh, aShape);
-            if (bIsOk) {
-              return true;
-            }
-           //modified by NIZNHY-PKV Wed Nov 17 15:31:42 2004 t
-           SCRUTE(algoName);
-           //                  ASSERT(0);
-           return false;
-         }
-         StdMeshers_Quadrangle_2D *quadAlgo =
-           dynamic_cast < StdMeshers_Quadrangle_2D * >(algo);
-         ASSERT(quadAlgo);
-         try
-           {
-             _quads[i] = quadAlgo->CheckAnd2Dcompute(aMesh, aFace);
-             // *** to delete after usage
-           }
-         catch(SALOME_Exception & S_ex)
-           {
-             // *** delete _quads
-             // *** throw exception
-             //                        ASSERT(0);
-             return false;
-           }
-
-         // 0.2.1 - number of points on the opposite edges must be the same
-         if (_quads[i]->nbPts[0] != _quads[i]->nbPts[2] ||
-             _quads[i]->nbPts[1] != _quads[i]->nbPts[3])
-           {
-             MESSAGE("different number of points on the opposite edges of face " << i);
-             //                  ASSERT(0);
-             return false;
-           }
-       }
-
-       // 1.  - identify faces and vertices of the "cube"
-       // 1.1 - ancestor maps vertex->edges in the cube
-       //MESSAGE("---");
-
-       TopTools_IndexedDataMapOfShapeListOfShape MS;
-       TopExp::MapShapesAndAncestors(aShape, TopAbs_VERTEX, TopAbs_EDGE, MS);
-
-       // 1.2 - first face is choosen as face Y=0 of the unit cube
-       //MESSAGE("---");
-
-       const TopoDS_Shape & aFace = meshFaces[0]->GetSubShape();
-       const TopoDS_Face & F = TopoDS::Face(aFace);
-
-       // 1.3 - identify the 4 vertices of the face Y=0: V000, V100, V101, V001
-       //MESSAGE("---");
-
-       int i = 0;
-       TopoDS_Edge E = _quads[0]->edge[i];     //edge will be Y=0,Z=0 on unit cube
-       double f, l;
-       Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
-       TopoDS_Vertex VFirst, VLast;
-       TopExp::Vertices(E, VFirst, VLast);     // corresponds to f and l
-       bool isForward =
-               (((l - f) * (_quads[0]->last[i] - _quads[0]->first[i])) > 0);
-
-       if (isForward)
-       {
-               _cube.V000 = VFirst;    // will be (0,0,0) on the unit cube
-               _cube.V100 = VLast;             // will be (1,0,0) on the unit cube
-       }
-       else
-       {
-               _cube.V000 = VLast;
-               _cube.V100 = VFirst;
-       }
-
-       i = 1;
-       E = _quads[0]->edge[i];
-       C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
-       TopExp::Vertices(E, VFirst, VLast);
-       isForward = (((l - f) * (_quads[0]->last[i] - _quads[0]->first[i])) > 0);
-       if (isForward)
-               _cube.V101 = VLast;             // will be (1,0,1) on the unit cube
-       else
-               _cube.V101 = VFirst;
-
-       i = 2;
-       E = _quads[0]->edge[i];
-       C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
-       TopExp::Vertices(E, VFirst, VLast);
-       isForward = (((l - f) * (_quads[0]->last[i] - _quads[0]->first[i])) > 0);
-       if (isForward)
-               _cube.V001 = VLast;             // will be (0,0,1) on the unit cube
-       else
-               _cube.V001 = VFirst;
-
-       // 1.4 - find edge X=0, Z=0 (ancestor of V000 not in face Y=0)
-       //     - find edge X=1, Z=0 (ancestor of V100 not in face Y=0)
-       //     - find edge X=1, Z=1 (ancestor of V101 not in face Y=0) 
-       //     - find edge X=0, Z=1 (ancestor of V001 not in face Y=0)
-       //MESSAGE("---");
-
-       TopoDS_Edge E_0Y0 = EdgeNotInFace(aMesh, aShape, F, _cube.V000, MS);
-       ASSERT(!E_0Y0.IsNull());
-
-       TopoDS_Edge E_1Y0 = EdgeNotInFace(aMesh, aShape, F, _cube.V100, MS);
-       ASSERT(!E_1Y0.IsNull());
-
-       TopoDS_Edge E_1Y1 = EdgeNotInFace(aMesh, aShape, F, _cube.V101, MS);
-       ASSERT(!E_1Y1.IsNull());
-
-       TopoDS_Edge E_0Y1 = EdgeNotInFace(aMesh, aShape, F, _cube.V001, MS);
-       ASSERT(!E_0Y1.IsNull());
-
-       // 1.5 - identify the 4 vertices in face Y=1: V010, V110, V111, V011
-       //MESSAGE("---");
-
-       TopExp::Vertices(E_0Y0, VFirst, VLast);
-       if (VFirst.IsSame(_cube.V000))
-               _cube.V010 = VLast;
-       else
-               _cube.V010 = VFirst;
-
-       TopExp::Vertices(E_1Y0, VFirst, VLast);
-       if (VFirst.IsSame(_cube.V100))
-               _cube.V110 = VLast;
-       else
-               _cube.V110 = VFirst;
-
-       TopExp::Vertices(E_1Y1, VFirst, VLast);
-       if (VFirst.IsSame(_cube.V101))
-               _cube.V111 = VLast;
-       else
-               _cube.V111 = VFirst;
-
-       TopExp::Vertices(E_0Y1, VFirst, VLast);
-       if (VFirst.IsSame(_cube.V001))
-               _cube.V011 = VLast;
-       else
-               _cube.V011 = VFirst;
-
-       // 1.6 - find remaining faces given 4 vertices
-       //MESSAGE("---");
-
-       _indY0 = 0;
-       _cube.quad_Y0 = _quads[_indY0];
-
-       _indY1 = GetFaceIndex(aMesh, aShape, meshFaces,
-               _cube.V010, _cube.V011, _cube.V110, _cube.V111);
-       _cube.quad_Y1 = _quads[_indY1];
-
-       _indZ0 = GetFaceIndex(aMesh, aShape, meshFaces,
-               _cube.V000, _cube.V010, _cube.V100, _cube.V110);
-       _cube.quad_Z0 = _quads[_indZ0];
-
-       _indZ1 = GetFaceIndex(aMesh, aShape, meshFaces,
-               _cube.V001, _cube.V011, _cube.V101, _cube.V111);
-       _cube.quad_Z1 = _quads[_indZ1];
-
-       _indX0 = GetFaceIndex(aMesh, aShape, meshFaces,
-               _cube.V000, _cube.V001, _cube.V010, _cube.V011);
-       _cube.quad_X0 = _quads[_indX0];
-
-       _indX1 = GetFaceIndex(aMesh, aShape, meshFaces,
-               _cube.V100, _cube.V101, _cube.V110, _cube.V111);
-       _cube.quad_X1 = _quads[_indX1];
-
-       //MESSAGE("---");
-
-       // 1.7 - get convertion coefs from face 2D normalized to 3D normalized
-
-       Conv2DStruct cx0;                       // for face X=0
-       Conv2DStruct cx1;                       // for face X=1
-       Conv2DStruct cy0;
-       Conv2DStruct cy1;
-       Conv2DStruct cz0;
-       Conv2DStruct cz1;
-
-       GetConv2DCoefs(*_cube.quad_X0, meshFaces[_indX0]->GetSubShape(),
-               _cube.V000, _cube.V010, _cube.V011, _cube.V001, cx0);
-       GetConv2DCoefs(*_cube.quad_X1, meshFaces[_indX1]->GetSubShape(),
-               _cube.V100, _cube.V110, _cube.V111, _cube.V101, cx1);
-       GetConv2DCoefs(*_cube.quad_Y0, meshFaces[_indY0]->GetSubShape(),
-               _cube.V000, _cube.V100, _cube.V101, _cube.V001, cy0);
-       GetConv2DCoefs(*_cube.quad_Y1, meshFaces[_indY1]->GetSubShape(),
-               _cube.V010, _cube.V110, _cube.V111, _cube.V011, cy1);
-       GetConv2DCoefs(*_cube.quad_Z0, meshFaces[_indZ0]->GetSubShape(),
-               _cube.V000, _cube.V100, _cube.V110, _cube.V010, cz0);
-       GetConv2DCoefs(*_cube.quad_Z1, meshFaces[_indZ1]->GetSubShape(),
-               _cube.V001, _cube.V101, _cube.V111, _cube.V011, cz1);
-
-       // 1.8 - create a 3D structure for normalized values
-
-       //MESSAGE("---");
-        int nbx = _cube.quad_Z0->nbPts[0];
-        if (cz0.a1 == 0.) nbx = _cube.quad_Z0->nbPts[1];
-        int nby = _cube.quad_X0->nbPts[0];
-        if (cx0.a1 == 0.) nby = _cube.quad_X0->nbPts[1];
-        int nbz = _cube.quad_Y0->nbPts[0];
-        if (cy0.a1 != 0.) nbz = _cube.quad_Y0->nbPts[1];
-
-       int i1, j1, nbxyz = nbx * nby * nbz;
-       Point3DStruct *np = new Point3DStruct[nbxyz];
-
-       // 1.9 - store node indexes of faces
-
-       {
-               const TopoDS_Face & F = TopoDS::Face(meshFaces[_indX0]->GetSubShape());
-
-               faceQuadStruct *quad = _cube.quad_X0;
-               int i = 0;                              // j = x/face , k = y/face
-               int nbdown = quad->nbPts[0];
-               int nbright = quad->nbPts[1];
-
-
-               SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
-                       
-               while(itf->more())
-               {
-                       const SMDS_MeshNode * node = itf->next();
-                        findIJ( node, quad, i1, j1 );
-                       int ij1 = j1 * nbdown + i1;
-                       quad->uv_grid[ij1].node = node;
-               }
-
-               for (int i1 = 0; i1 < nbdown; i1++)
-                       for (int j1 = 0; j1 < nbright; j1++)
-                       {
-                               int ij1 = j1 * nbdown + i1;
-                               int j = cx0.ia * i1 + cx0.ib * j1 + cx0.ic;     // j = x/face
-                               int k = cx0.ja * i1 + cx0.jb * j1 + cx0.jc;     // k = y/face
-                               int ijk = k * nbx * nby + j * nbx + i;
-                               //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
-                               np[ijk].node = quad->uv_grid[ij1].node;
-                               //SCRUTE(np[ijk].nodeId);
-                       }
-       }
-
-       {
-               const TopoDS_Face & F = TopoDS::Face(meshFaces[_indX1]->GetSubShape());
-
-               SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
-
-               faceQuadStruct *quad = _cube.quad_X1;
-               int i = nbx - 1;                // j = x/face , k = y/face
-               int nbdown = quad->nbPts[0];
-               int nbright = quad->nbPts[1];
-
-               while(itf->more())
-               {
-                       const SMDS_MeshNode * node = itf->next();
-                        findIJ( node, quad, i1, j1 );
-                       int ij1 = j1 * nbdown + i1;
-                       quad->uv_grid[ij1].node = node;
-               }
-
-               for (int i1 = 0; i1 < nbdown; i1++)
-                       for (int j1 = 0; j1 < nbright; j1++)
-                       {
-                               int ij1 = j1 * nbdown + i1;
-                               int j = cx1.ia * i1 + cx1.ib * j1 + cx1.ic;     // j = x/face
-                               int k = cx1.ja * i1 + cx1.jb * j1 + cx1.jc;     // k = y/face
-                               int ijk = k * nbx * nby + j * nbx + i;
-                               //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
-                               np[ijk].node = quad->uv_grid[ij1].node;
-                               //SCRUTE(np[ijk].nodeId);
-                       }
-       }
-
-       {
-               const TopoDS_Face & F = TopoDS::Face(meshFaces[_indY0]->GetSubShape());
-
-               SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
-
-               faceQuadStruct *quad = _cube.quad_Y0;
-               int j = 0;                              // i = x/face , k = y/face
-               int nbdown = quad->nbPts[0];
-               int nbright = quad->nbPts[1];
-
-               while(itf->more())
-               {
-                       const SMDS_MeshNode * node = itf->next();
-                        findIJ( node, quad, i1, j1 );
-                       int ij1 = j1 * nbdown + i1;
-                       quad->uv_grid[ij1].node = node;
-               }
-
-               for (int i1 = 0; i1 < nbdown; i1++)
-                       for (int j1 = 0; j1 < nbright; j1++)
-                       {
-                               int ij1 = j1 * nbdown + i1;
-                               int i = cy0.ia * i1 + cy0.ib * j1 + cy0.ic;     // i = x/face
-                               int k = cy0.ja * i1 + cy0.jb * j1 + cy0.jc;     // k = y/face
-                               int ijk = k * nbx * nby + j * nbx + i;
-                               //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
-                               np[ijk].node = quad->uv_grid[ij1].node;
-                               //SCRUTE(np[ijk].nodeId);
-                       }
-       }
-
-       {
-               const TopoDS_Face & F = TopoDS::Face(meshFaces[_indY1]->GetSubShape());
-
-               SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
-
-               faceQuadStruct *quad = _cube.quad_Y1;
-               int j = nby - 1;                // i = x/face , k = y/face
-               int nbdown = quad->nbPts[0];
-               int nbright = quad->nbPts[1];
-
-               while(itf->more())
-               {
-                       const SMDS_MeshNode * node = itf->next();
-                        findIJ( node, quad, i1, j1 );
-                       int ij1 = j1 * nbdown + i1;
-                       quad->uv_grid[ij1].node = node;
-               }
-
-               for (int i1 = 0; i1 < nbdown; i1++)
-                       for (int j1 = 0; j1 < nbright; j1++)
-                       {
-                               int ij1 = j1 * nbdown + i1;
-                               int i = cy1.ia * i1 + cy1.ib * j1 + cy1.ic;     // i = x/face
-                               int k = cy1.ja * i1 + cy1.jb * j1 + cy1.jc;     // k = y/face
-                               int ijk = k * nbx * nby + j * nbx + i;
-                               //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
-                               np[ijk].node = quad->uv_grid[ij1].node;
-                               //SCRUTE(np[ijk].nodeId);
-                       }
-       }
-
-       {
-               const TopoDS_Face & F = TopoDS::Face(meshFaces[_indZ0]->GetSubShape());
-
-               SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
-
-               faceQuadStruct *quad = _cube.quad_Z0;
-               int k = 0;                              // i = x/face , j = y/face
-               int nbdown = quad->nbPts[0];
-               int nbright = quad->nbPts[1];
-
-               while(itf->more())
-               {
-                       const SMDS_MeshNode * node = itf->next();
-                        findIJ( node, quad, i1, j1 );
-                       int ij1 = j1 * nbdown + i1;
-                       quad->uv_grid[ij1].node = node;
-               }
-
-               for (int i1 = 0; i1 < nbdown; i1++)
-                       for (int j1 = 0; j1 < nbright; j1++)
-                       {
-                               int ij1 = j1 * nbdown + i1;
-                               int i = cz0.ia * i1 + cz0.ib * j1 + cz0.ic;     // i = x/face
-                               int j = cz0.ja * i1 + cz0.jb * j1 + cz0.jc;     // j = y/face
-                               int ijk = k * nbx * nby + j * nbx + i;
-                               //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
-                               np[ijk].node = quad->uv_grid[ij1].node;
-                               //SCRUTE(np[ijk].nodeId);
-                       }
-       }
-
-       {
-               const TopoDS_Face & F = TopoDS::Face(meshFaces[_indZ1]->GetSubShape());
-
-               SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
-
-               faceQuadStruct *quad = _cube.quad_Z1;
-               int k = nbz - 1;                // i = x/face , j = y/face
-               int nbdown = quad->nbPts[0];
-               int nbright = quad->nbPts[1];
-
-               while(itf->more())
-               {
-                       const SMDS_MeshNode * node = itf->next();
-                        findIJ( node, quad, i1, j1 );
-                       int ij1 = j1 * nbdown + i1;
-                       quad->uv_grid[ij1].node = node;
-               }
-
-               for (int i1 = 0; i1 < nbdown; i1++)
-                       for (int j1 = 0; j1 < nbright; j1++)
-                       {
-                               int ij1 = j1 * nbdown + i1;
-                               int i = cz1.ia * i1 + cz1.ib * j1 + cz1.ic;     // i = x/face
-                               int j = cz1.ja * i1 + cz1.jb * j1 + cz1.jc;     // j = y/face
-                               int ijk = k * nbx * nby + j * nbx + i;
-                               //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
-                               np[ijk].node = quad->uv_grid[ij1].node;
-                               //SCRUTE(np[ijk].nodeId);
-                       }
-       }
-
-       // 2.0 - for each node of the cube:
-       //       - get the 8 points 3D = 8 vertices of the cube
-       //       - get the 12 points 3D on the 12 edges of the cube
-       //       - get the 6 points 3D on the 6 faces with their ID
-       //       - compute the point 3D
-       //       - store the point 3D in SMESHDS, store its ID in 3D structure
-
-       TopoDS_Shell aShell;
-       TopExp_Explorer exp(aShape, TopAbs_SHELL);
-       if (exp.More())
-       {
-               aShell = TopoDS::Shell(exp.Current());
-       }
-       else
-       {
-               MESSAGE("no shell...");
-               ASSERT(0);
-       }
-
-       Pt3 p000, p001, p010, p011, p100, p101, p110, p111;
-       Pt3 px00, px01, px10, px11;
-       Pt3 p0y0, p0y1, p1y0, p1y1;
-       Pt3 p00z, p01z, p10z, p11z;
-       Pt3 pxy0, pxy1, px0z, px1z, p0yz, p1yz;
-
-       GetPoint(p000, 0, 0, 0, nbx, nby, nbz, np, meshDS);
-       GetPoint(p001, 0, 0, nbz - 1, nbx, nby, nbz, np, meshDS);
-       GetPoint(p010, 0, nby - 1, 0, nbx, nby, nbz, np, meshDS);
-       GetPoint(p011, 0, nby - 1, nbz - 1, nbx, nby, nbz, np, meshDS);
-       GetPoint(p100, nbx - 1, 0, 0, nbx, nby, nbz, np, meshDS);
-       GetPoint(p101, nbx - 1, 0, nbz - 1, nbx, nby, nbz, np, meshDS);
-       GetPoint(p110, nbx - 1, nby - 1, 0, nbx, nby, nbz, np, meshDS);
-       GetPoint(p111, nbx - 1, nby - 1, nbz - 1, nbx, nby, nbz, np, meshDS);
-
-       for (int i = 1; i < nbx - 1; i++)
-       {
-               for (int j = 1; j < nby - 1; j++)
-               {
-                       for (int k = 1; k < nbz - 1; k++)
-                       {
-                               // *** seulement maillage regulier
-                               // 12 points on edges
-                               GetPoint(px00, i, 0, 0, nbx, nby, nbz, np, meshDS);
-                               GetPoint(px01, i, 0, nbz - 1, nbx, nby, nbz, np, meshDS);
-                               GetPoint(px10, i, nby - 1, 0, nbx, nby, nbz, np, meshDS);
-                               GetPoint(px11, i, nby - 1, nbz - 1, nbx, nby, nbz, np, meshDS);
-
-                               GetPoint(p0y0, 0, j, 0, nbx, nby, nbz, np, meshDS);
-                               GetPoint(p0y1, 0, j, nbz - 1, nbx, nby, nbz, np, meshDS);
-                               GetPoint(p1y0, nbx - 1, j, 0, nbx, nby, nbz, np, meshDS);
-                               GetPoint(p1y1, nbx - 1, j, nbz - 1, nbx, nby, nbz, np, meshDS);
-
-                               GetPoint(p00z, 0, 0, k, nbx, nby, nbz, np, meshDS);
-                               GetPoint(p01z, 0, nby - 1, k, nbx, nby, nbz, np, meshDS);
-                               GetPoint(p10z, nbx - 1, 0, k, nbx, nby, nbz, np, meshDS);
-                               GetPoint(p11z, nbx - 1, nby - 1, k, nbx, nby, nbz, np, meshDS);
-
-                               // 12 points on faces
-                               GetPoint(pxy0, i, j, 0, nbx, nby, nbz, np, meshDS);
-                               GetPoint(pxy1, i, j, nbz - 1, nbx, nby, nbz, np, meshDS);
-                               GetPoint(px0z, i, 0, k, nbx, nby, nbz, np, meshDS);
-                               GetPoint(px1z, i, nby - 1, k, nbx, nby, nbz, np, meshDS);
-                               GetPoint(p0yz, 0, j, k, nbx, nby, nbz, np, meshDS);
-                               GetPoint(p1yz, nbx - 1, j, k, nbx, nby, nbz, np, meshDS);
-
-                               int ijk = k * nbx * nby + j * nbx + i;
-                               double x = double (i) / double (nbx - 1);       // *** seulement
-                               double y = double (j) / double (nby - 1);       // *** maillage
-                               double z = double (k) / double (nbz - 1);       // *** regulier
-
-                               Pt3 X;
-                               for (int i = 0; i < 3; i++)
-                               {
-                                       X[i] =
-                                               (1 - x) * p0yz[i] + x * p1yz[i]
-                                               + (1 - y) * px0z[i] + y * px1z[i]
-                                               + (1 - z) * pxy0[i] + z * pxy1[i]
-                                               - (1 - x) * ((1 - y) * p00z[i] + y * p01z[i])
-                                               - x * ((1 - y) * p10z[i] + y * p11z[i])
-                                               - (1 - y) * ((1 - z) * px00[i] + z * px01[i])
-                                               - y * ((1 - z) * px10[i] + z * px11[i])
-                                               - (1 - z) * ((1 - x) * p0y0[i] + x * p1y0[i])
-                                               - z * ((1 - x) * p0y1[i] + x * p1y1[i])
-                                               + (1 - x) * ((1 - y) * ((1 - z) * p000[i] + z * p001[i])
-                                               + y * ((1 - z) * p010[i] + z * p011[i]))
-                                               + x * ((1 - y) * ((1 - z) * p100[i] + z * p101[i])
-                                               + y * ((1 - z) * p110[i] + z * p111[i]));
-                               }
-
-                               SMDS_MeshNode * node = meshDS->AddNode(X[0], X[1], X[2]);
-                               np[ijk].node = node;
-                               //meshDS->SetNodeInVolume(node, TopoDS::Solid(aShape));
-                               meshDS->SetNodeInVolume(node, aShell);
-                       }
-               }
-       }
-
-  // find orientation of furute volumes according to MED convention
-  vector< bool > forward( nbx * nby );
-  SMDS_VolumeTool vTool;
-  for (int i = 0; i < nbx - 1; i++)
-    for (int j = 0; j < nby - 1; j++)
-    {
-      int n1 = j * nbx + i;
-      int n2 = j * nbx + i + 1;
-      int n3 = (j + 1) * nbx + i + 1;
-      int n4 = (j + 1) * nbx + i;
-      int n5 = nbx * nby + j * nbx + i;
-      int n6 = nbx * nby + j * nbx + i + 1;
-      int n7 = nbx * nby + (j + 1) * nbx + i + 1;
-      int n8 = nbx * nby + (j + 1) * nbx + i;
-
-      SMDS_VolumeOfNodes tmpVol (np[n1].node,np[n2].node,np[n3].node,np[n4].node,
-                                 np[n5].node,np[n6].node,np[n7].node,np[n8].node);
-      vTool.Set( &tmpVol );
-      forward[ n1 ] = vTool.IsForward();
-    }
-
-       //2.1 - for each node of the cube (less 3 *1 Faces):
-       //      - store hexahedron in SMESHDS
-       MESSAGE("Storing hexahedron into the DS");
-       for (int i = 0; i < nbx - 1; i++)
-               for (int j = 0; j < nby - 1; j++)
-                {
-                        bool isForw = forward.at( j * nbx + i );
-                       for (int k = 0; k < nbz - 1; k++)
-                       {
-                               int n1 = k * nbx * nby + j * nbx + i;
-                               int n2 = k * nbx * nby + j * nbx + i + 1;
-                               int n3 = k * nbx * nby + (j + 1) * nbx + i + 1;
-                               int n4 = k * nbx * nby + (j + 1) * nbx + i;
-                               int n5 = (k + 1) * nbx * nby + j * nbx + i;
-                               int n6 = (k + 1) * nbx * nby + j * nbx + i + 1;
-                               int n7 = (k + 1) * nbx * nby + (j + 1) * nbx + i + 1;
-                               int n8 = (k + 1) * nbx * nby + (j + 1) * nbx + i;
-
-                               SMDS_MeshVolume * elt;
-                                if ( isForw )
-                                  elt = meshDS->AddVolume(np[n1].node,
-                                                          np[n2].node,
-                                                          np[n3].node,
-                                                          np[n4].node,
-                                                          np[n5].node,
-                                                          np[n6].node,
-                                                          np[n7].node,
-                                                          np[n8].node);
-                                else
-                                  elt = meshDS->AddVolume(np[n1].node,
-                                                          np[n4].node,
-                                                          np[n3].node,
-                                                          np[n2].node,
-                                                          np[n5].node,
-                                                          np[n8].node,
-                                                          np[n7].node,
-                                                          np[n6].node);
-
-                               meshDS->SetMeshElementOnShape(elt, aShell);
-
-
-                              }
-                      }
-  if ( np ) delete [] np;
-       //MESSAGE("End of StdMeshers_Hexa_3D::Compute()");
-       return true;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void StdMeshers_Hexa_3D::GetPoint(Pt3 p, int i, int j, int k, int nbx, int nby,
-       int nbz, Point3DStruct * np, const SMESHDS_Mesh * meshDS)
-{
-       int ijk = k * nbx * nby + j * nbx + i;
-       const SMDS_MeshNode * node = np[ijk].node;
-       p[0] = node->X();
-       p[1] = node->Y();
-       p[2] = node->Z();
-       //MESSAGE(" "<<i<<" "<<j<<" "<<k<<" "<<p[0]<<" "<<p[1]<<" "<<p[2]);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-int StdMeshers_Hexa_3D::GetFaceIndex(SMESH_Mesh & aMesh,
-       const TopoDS_Shape & aShape,
-       const vector < SMESH_subMesh * >&meshFaces,
-       const TopoDS_Vertex & V0,
-       const TopoDS_Vertex & V1,
-       const TopoDS_Vertex & V2, const TopoDS_Vertex & V3)
-{
-       //MESSAGE("StdMeshers_Hexa_3D::GetFaceIndex");
-       int faceIndex = -1;
-       for (int i = 1; i < 6; i++)
-       {
-               const TopoDS_Shape & aFace = meshFaces[i]->GetSubShape();
-               //const TopoDS_Face& F = TopoDS::Face(aFace);
-               TopTools_IndexedMapOfShape M;
-               TopExp::MapShapes(aFace, TopAbs_VERTEX, M);
-               bool verticesInShape = false;
-               if (M.Contains(V0))
-                       if (M.Contains(V1))
-                               if (M.Contains(V2))
-                                       if (M.Contains(V3))
-                                               verticesInShape = true;
-               if (verticesInShape)
-               {
-                       faceIndex = i;
-                       break;
-               }
-       }
-       ASSERT(faceIndex > 0);
-       //SCRUTE(faceIndex);
-       return faceIndex;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-TopoDS_Edge
-       StdMeshers_Hexa_3D::EdgeNotInFace(SMESH_Mesh & aMesh,
-       const TopoDS_Shape & aShape,
-       const TopoDS_Face & aFace,
-       const TopoDS_Vertex & aVertex,
-       const TopTools_IndexedDataMapOfShapeListOfShape & MS)
-{
-       //MESSAGE("StdMeshers_Hexa_3D::EdgeNotInFace");
-       TopTools_IndexedDataMapOfShapeListOfShape MF;
-       TopExp::MapShapesAndAncestors(aFace, TopAbs_VERTEX, TopAbs_EDGE, MF);
-       const TopTools_ListOfShape & ancestorsInSolid = MS.FindFromKey(aVertex);
-       const TopTools_ListOfShape & ancestorsInFace = MF.FindFromKey(aVertex);
-//     SCRUTE(ancestorsInSolid.Extent());
-//     SCRUTE(ancestorsInFace.Extent());
-       ASSERT(ancestorsInSolid.Extent() == 6); // 6 (edges doublees)
-       ASSERT(ancestorsInFace.Extent() == 2);
-
-       TopoDS_Edge E;
-       E.Nullify();
-       TopTools_ListIteratorOfListOfShape its(ancestorsInSolid);
-       for (; its.More(); its.Next())
-       {
-               TopoDS_Shape ancestor = its.Value();
-               TopTools_ListIteratorOfListOfShape itf(ancestorsInFace);
-               bool isInFace = false;
-               for (; itf.More(); itf.Next())
-               {
-                       TopoDS_Shape ancestorInFace = itf.Value();
-                       if (ancestorInFace.IsSame(ancestor))
-                       {
-                               isInFace = true;
-                               break;
-                       }
-               }
-               if (!isInFace)
-               {
-                       E = TopoDS::Edge(ancestor);
-                       break;
-               }
-       }
-       return E;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void StdMeshers_Hexa_3D::GetConv2DCoefs(const faceQuadStruct & quad,
-       const TopoDS_Shape & aShape,
-       const TopoDS_Vertex & V0,
-       const TopoDS_Vertex & V1,
-       const TopoDS_Vertex & V2, const TopoDS_Vertex & V3, Conv2DStruct & conv)
-{
-//     MESSAGE("StdMeshers_Hexa_3D::GetConv2DCoefs");
-       const TopoDS_Face & F = TopoDS::Face(aShape);
-       TopoDS_Edge E = quad.edge[0];
-       double f, l;
-       Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
-       TopoDS_Vertex VFirst, VLast;
-       TopExp::Vertices(E, VFirst, VLast);     // corresponds to f and l
-       bool isForward = (((l - f) * (quad.last[0] - quad.first[0])) > 0);
-       TopoDS_Vertex VA, VB;
-       if (isForward)
-       {
-               VA = VFirst;
-               VB = VLast;
-       }
-       else
-       {
-               VA = VLast;
-               VB = VFirst;
-       }
-       int a1, b1, c1, a2, b2, c2;
-       if (VA.IsSame(V0))
-               if (VB.IsSame(V1))
-               {
-                       a1 = 1;
-                       b1 = 0;
-                       c1 = 0;                         // x
-                       a2 = 0;
-                       b2 = 1;
-                       c2 = 0;                         // y
-               }
-               else
-               {
-                       ASSERT(VB.IsSame(V3));
-                       a1 = 0;
-                       b1 = 1;
-                       c1 = 0;                         // y
-                       a2 = 1;
-                       b2 = 0;
-                       c2 = 0;                         // x
-               }
-       if (VA.IsSame(V1))
-               if (VB.IsSame(V2))
-               {
-                       a1 = 0;
-                       b1 = -1;
-                       c1 = 1;                         // 1-y
-                       a2 = 1;
-                       b2 = 0;
-                       c2 = 0;                         // x
-               }
-               else
-               {
-                       ASSERT(VB.IsSame(V0));
-                       a1 = -1;
-                       b1 = 0;
-                       c1 = 1;                         // 1-x
-                       a2 = 0;
-                       b2 = 1;
-                       c2 = 0;                         // y
-               }
-       if (VA.IsSame(V2))
-               if (VB.IsSame(V3))
-               {
-                       a1 = -1;
-                       b1 = 0;
-                       c1 = 1;                         // 1-x
-                       a2 = 0;
-                       b2 = -1;
-                       c2 = 1;                         // 1-y
-               }
-               else
-               {
-                       ASSERT(VB.IsSame(V1));
-                       a1 = 0;
-                       b1 = -1;
-                       c1 = 1;                         // 1-y
-                       a2 = -1;
-                       b2 = 0;
-                       c2 = 1;                         // 1-x
-               }
-       if (VA.IsSame(V3))
-               if (VB.IsSame(V0))
-               {
-                       a1 = 0;
-                       b1 = 1;
-                       c1 = 0;                         // y
-                       a2 = -1;
-                       b2 = 0;
-                       c2 = 1;                         // 1-x
-               }
-               else
-               {
-                       ASSERT(VB.IsSame(V2));
-                       a1 = 1;
-                       b1 = 0;
-                       c1 = 0;                         // x
-                       a2 = 0;
-                       b2 = -1;
-                       c2 = 1;                         // 1-y
-               }
-//     MESSAGE("X = " << c1 << "+ " << a1 << "*x + " << b1 << "*y");
-//     MESSAGE("Y = " << c2 << "+ " << a2 << "*x + " << b2 << "*y");
-       conv.a1 = a1;
-       conv.b1 = b1;
-       conv.c1 = c1;
-       conv.a2 = a2;
-       conv.b2 = b2;
-       conv.c2 = c2;
-
-       int nbdown = quad.nbPts[0];
-       int nbright = quad.nbPts[1];
-       conv.ia = int (a1);
-       conv.ib = int (b1);
-       conv.ic =
-               int (c1 * a1 * a1) * (nbdown - 1) + int (c1 * b1 * b1) * (nbright - 1);
-       conv.ja = int (a2);
-       conv.jb = int (b2);
-       conv.jc =
-               int (c2 * a2 * a2) * (nbdown - 1) + int (c2 * b2 * b2) * (nbright - 1);
-//     MESSAGE("I " << conv.ia << " " << conv.ib << " " << conv.ic);
-//     MESSAGE("J " << conv.ja << " " << conv.jb << " " << conv.jc);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & StdMeshers_Hexa_3D::SaveTo(ostream & save)
-{
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & StdMeshers_Hexa_3D::LoadFrom(istream & load)
-{
-  return load;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator <<(ostream & save, StdMeshers_Hexa_3D & hyp)
-{
-  return hyp.SaveTo( save );
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >>(istream & load, StdMeshers_Hexa_3D & hyp)
-{
-  return hyp.LoadFrom( load );
-}
-
-//modified by NIZNHY-PKV Wed Nov 17 15:34:13 2004 f
-///////////////////////////////////////////////////////////////////////////////
-//ZZ
-//#include <stdio.h>
-
-//=======================================================================
-//function : ComputePentahedralMesh
-//purpose  : 
-//=======================================================================
-bool ComputePentahedralMesh(SMESH_Mesh & aMesh,        const TopoDS_Shape & aShape)
-{
-  //printf(" ComputePentahedralMesh HERE\n");
-  //
-  bool bOK;
-  int iErr;
-  StdMeshers_Penta_3D anAlgo;
-  //
-  bOK=anAlgo.Compute(aMesh, aShape);
-  /*
-  iErr=anAlgo.ErrorStatus();
-  
-  if (iErr) {
-    printf("  *** Error# %d\n", iErr);
-  }
-  else {
-    printf("  *** No errors# %d\n", iErr);
-  }
-  */
-  return bOK;
-}
-
diff --git a/src/StdMeshers/StdMeshers_Hexa_3D.hxx b/src/StdMeshers/StdMeshers_Hexa_3D.hxx
deleted file mode 100644 (file)
index a9e2045..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Hexa_3D.hxx
-//           Moved here from SMESH_Hexa_3D.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_HEXA_3D_HXX_
-#define _SMESH_HEXA_3D_HXX_
-
-#include "SMESH_3D_Algo.hxx"
-#include "SMESH_Mesh.hxx"
-#include "StdMeshers_Quadrangle_2D.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-typedef struct point3Dstruct
-{
-       const SMDS_MeshNode * node;
-} Point3DStruct;
-
-typedef double Pt3[3];
-
-typedef struct conv2dstruct
-{
-  double a1; // X = a1*x + b1*y + c1 
-  double b1; // Y = a2*x + b2*y + c2
-  double c1; // a1, b1 a2, b2 in {-1,0,1}
-  double a2; // c1, c2 in {0,1}
-  double b2;
-  double c2;
-  int ia;    // I = ia*i + ib*j + ic
-  int ib;
-  int ic;
-  int ja;    // J = ja*i + jb*j + jc
-  int jb;
-  int jc;
-} Conv2DStruct;
-
-typedef struct cubeStruct
-{
-  TopoDS_Vertex V000;
-  TopoDS_Vertex V001;
-  TopoDS_Vertex V010;
-  TopoDS_Vertex V011;
-  TopoDS_Vertex V100;
-  TopoDS_Vertex V101;
-  TopoDS_Vertex V110;
-  TopoDS_Vertex V111;
-  faceQuadStruct* quad_X0;
-  faceQuadStruct* quad_X1;
-  faceQuadStruct* quad_Y0;
-  faceQuadStruct* quad_Y1;
-  faceQuadStruct* quad_Z0;
-  faceQuadStruct* quad_Z1;
-  Point3DStruct* np; // normalised 3D coordinates
-} CubeStruct;
-
-class StdMeshers_Hexa_3D:
-  public SMESH_3D_Algo
-{
-public:
-  StdMeshers_Hexa_3D(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~StdMeshers_Hexa_3D();
-
-  virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
-                               const TopoDS_Shape& aShape,
-                               SMESH_Hypothesis::Hypothesis_Status& aStatus);
-
-  virtual bool Compute(SMESH_Mesh& aMesh,
-                      const TopoDS_Shape& aShape)
-    throw (SALOME_Exception);
-
-  ostream & SaveTo(ostream & save);
-  istream & LoadFrom(istream & load);
-  friend ostream & operator << (ostream & save, StdMeshers_Hexa_3D & hyp);
-  friend istream & operator >> (istream & load, StdMeshers_Hexa_3D & hyp);
-
-protected:
-  TopoDS_Edge
-  EdgeNotInFace(SMESH_Mesh& aMesh,
-               const TopoDS_Shape& aShape,
-               const TopoDS_Face& aFace,
-               const TopoDS_Vertex& aVertex,
-               const TopTools_IndexedDataMapOfShapeListOfShape& MS);
-
-  int GetFaceIndex(SMESH_Mesh& aMesh,
-                  const TopoDS_Shape& aShape,
-                  const vector<SMESH_subMesh*>& meshFaces,
-                  const TopoDS_Vertex& V0,
-                  const TopoDS_Vertex& V1,
-                  const TopoDS_Vertex& V2,
-                  const TopoDS_Vertex& V3);
-
-  void GetConv2DCoefs(const faceQuadStruct& quad,
-                     const TopoDS_Shape& aShape,
-                     const TopoDS_Vertex& V0,
-                     const TopoDS_Vertex& V1,
-                     const TopoDS_Vertex& V2,
-                     const TopoDS_Vertex& V3,
-                     Conv2DStruct& conv);
-
-  void GetPoint(Pt3 p,
-               int i, int j, int k,
-               int nbx, int nby, int nbz,
-               Point3DStruct *np,
-               const SMESHDS_Mesh* meshDS);
-
-  CubeStruct _cube;
-  FaceQuadStruct* _quads[6];
-  int _indX0;
-  int _indX1;
-  int _indY0;
-  int _indY1;
-  int _indZ0;
-  int _indZ1;
-};
-
-#endif
diff --git a/src/StdMeshers/StdMeshers_LengthFromEdges.cxx b/src/StdMeshers/StdMeshers_LengthFromEdges.cxx
deleted file mode 100644 (file)
index f21f199..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_LengthFromEdges.cxx
-//           Moved here from SMESH_LengthFromEdges.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_LengthFromEdges.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_LengthFromEdges::StdMeshers_LengthFromEdges(int hypId, int studyId, SMESH_Gen* gen)
-  : SMESH_Hypothesis(hypId, studyId, gen)
-{
-  _mode =1;
-  _name = "LengthFromEdges";
-//   SCRUTE(_name);
-//   SCRUTE(&_name);
-  _param_algo_dim = 2; // is used by SMESH_MEFISTO_2D
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_LengthFromEdges::~StdMeshers_LengthFromEdges()
-{
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void StdMeshers_LengthFromEdges::SetMode(int mode)
-  throw (SALOME_Exception)
-{
-  int oldMode = _mode;
-  if (mode <= 0) 
-    throw SALOME_Exception(LOCALIZED("mode must be positive"));
-  _mode = mode;
-  if (oldMode != _mode)
-    NotifySubMeshesHypothesisModification();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-int StdMeshers_LengthFromEdges::GetMode()
-{
-  return _mode;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & StdMeshers_LengthFromEdges::SaveTo(ostream & save)
-{
-  save << this->_mode;
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & StdMeshers_LengthFromEdges::LoadFrom(istream & load)
-{
-  bool isOK = true;
-  int a;
-  isOK = (load >> a);
-  if (isOK) 
-    this->_mode = a;
-  else 
-    load.clear(ios::badbit | load.rdstate());
-  return load;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator << (ostream & save, StdMeshers_LengthFromEdges & hyp)
-{
-  return hyp.SaveTo( save );
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >> (istream & load, StdMeshers_LengthFromEdges & hyp)
-{
-  return hyp.LoadFrom( load );
-}
-
diff --git a/src/StdMeshers/StdMeshers_LengthFromEdges.hxx b/src/StdMeshers/StdMeshers_LengthFromEdges.hxx
deleted file mode 100644 (file)
index d514e7c..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_LengthFromEdges.hxx
-//           Moved here from SMESH_LengthFromEdges.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_LENGTHFROMEDGES_HXX_
-#define _SMESH_LENGTHFROMEDGES_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-class StdMeshers_LengthFromEdges:
-  public SMESH_Hypothesis
-{
-public:
-  StdMeshers_LengthFromEdges(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~StdMeshers_LengthFromEdges();
-
-  void SetMode(int mode)
-    throw (SALOME_Exception);
-
-  int GetMode();
-
-  virtual ostream & SaveTo(ostream & save);
-  virtual istream & LoadFrom(istream & load);
-  friend ostream & operator << (ostream & save, StdMeshers_LengthFromEdges & hyp);
-  friend istream & operator >> (istream & load, StdMeshers_LengthFromEdges & hyp);
-
-protected:
-  int _mode;
-};
-
-#endif
diff --git a/src/StdMeshers/StdMeshers_LocalLength.cxx b/src/StdMeshers/StdMeshers_LocalLength.cxx
deleted file mode 100644 (file)
index 457d8d8..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_LocalLength.cxx
-//           Moved here from SMESH_LocalLength.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_LocalLength.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_LocalLength::StdMeshers_LocalLength(int hypId, int studyId,
-       SMESH_Gen * gen):SMESH_Hypothesis(hypId, studyId, gen)
-{
-       _length = 1.;
-       _name = "LocalLength";
-//   SCRUTE(_name);
-//   SCRUTE(&_name);
-        _param_algo_dim = 1; // is used by SMESH_Regular_1D
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_LocalLength::~StdMeshers_LocalLength()
-{
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void StdMeshers_LocalLength::SetLength(double length) throw(SALOME_Exception)
-{
-       double oldLength = _length;
-       if (length <= 0)
-               throw SALOME_Exception(LOCALIZED("length must be positive"));
-       _length = length;
-       if (oldLength != _length)
-               NotifySubMeshesHypothesisModification();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-double StdMeshers_LocalLength::GetLength() const
-{
-       return _length;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & StdMeshers_LocalLength::SaveTo(ostream & save)
-{
-  save << this->_length;
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & StdMeshers_LocalLength::LoadFrom(istream & load)
-{
-  bool isOK = true;
-  double a;
-  isOK = (load >> a);
-  if (isOK)
-    this->_length = a;
-  else
-    load.clear(ios::badbit | load.rdstate());
-  return load;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator <<(ostream & save, StdMeshers_LocalLength & hyp)
-{
-  return hyp.SaveTo( save );
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >>(istream & load, StdMeshers_LocalLength & hyp)
-{
-  return hyp.LoadFrom( load );
-}
diff --git a/src/StdMeshers/StdMeshers_LocalLength.hxx b/src/StdMeshers/StdMeshers_LocalLength.hxx
deleted file mode 100644 (file)
index aba58e5..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_LocalLength.hxx
-//           Moved here from SMESH_LocalLength.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_LOCALLENGTH_HXX_
-#define _SMESH_LOCALLENGTH_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-class StdMeshers_LocalLength:public SMESH_Hypothesis
-{
-  public:
-       StdMeshers_LocalLength(int hypId, int studyId, SMESH_Gen * gen);
-         virtual ~ StdMeshers_LocalLength();
-
-       void SetLength(double length) throw(SALOME_Exception);
-
-       double GetLength() const;
-
-       virtual ostream & SaveTo(ostream & save);
-       virtual istream & LoadFrom(istream & load);
-       friend ostream & operator <<(ostream & save, StdMeshers_LocalLength & hyp);
-       friend istream & operator >>(istream & load, StdMeshers_LocalLength & hyp);
-
-  protected:
-       double _length;
-};
-
-#endif
diff --git a/src/StdMeshers/StdMeshers_MEFISTO_2D.cxx b/src/StdMeshers/StdMeshers_MEFISTO_2D.cxx
deleted file mode 100644 (file)
index b7da7cb..0000000
+++ /dev/null
@@ -1,875 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_MEFISTO_2D.cxx
-//           Moved here from SMESH_MEFISTO_2D.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_MEFISTO_2D.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_Mesh.hxx"
-#include "SMESH_subMesh.hxx"
-
-#include "StdMeshers_MaxElementArea.hxx"
-#include "StdMeshers_LengthFromEdges.hxx"
-
-#include "Rn.h"
-#include "aptrte.h"
-
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_EdgePosition.hxx"
-#include "SMDS_FacePosition.hxx"
-
-#include "utilities.h"
-
-#include <TopoDS_Face.hxx>
-#include <TopoDS_Edge.hxx>
-#include <TopoDS_Shape.hxx>
-#include <Geom_Surface.hxx>
-#include <GeomAdaptor_Curve.hxx>
-#include <Geom2d_Curve.hxx>
-#include <gp_Pnt2d.hxx>
-#include <BRep_Tool.hxx>
-#include <BRepTools.hxx>
-#include <BRepTools_WireExplorer.hxx>
-#include <GCPnts_AbscissaPoint.hxx>
-#include <GCPnts_UniformAbscissa.hxx>
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TopTools_ListOfShape.hxx>
-
-#include <string>
-//#include <algorithm>
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_MEFISTO_2D::StdMeshers_MEFISTO_2D(int hypId, int studyId,
-       SMESH_Gen * gen):SMESH_2D_Algo(hypId, studyId, gen)
-{
-       MESSAGE("StdMeshers_MEFISTO_2D::StdMeshers_MEFISTO_2D");
-       _name = "MEFISTO_2D";
-//   _shapeType = TopAbs_FACE;
-       _shapeType = (1 << TopAbs_FACE);
-       _compatibleHypothesis.push_back("MaxElementArea");
-       _compatibleHypothesis.push_back("LengthFromEdges");
-
-       _edgeLength = 0;
-       _maxElementArea = 0;
-       _hypMaxElementArea = NULL;
-       _hypLengthFromEdges = NULL;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_MEFISTO_2D::~StdMeshers_MEFISTO_2D()
-{
-       MESSAGE("StdMeshers_MEFISTO_2D::~StdMeshers_MEFISTO_2D");
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool StdMeshers_MEFISTO_2D::CheckHypothesis
-                         (SMESH_Mesh& aMesh,
-                          const TopoDS_Shape& aShape,
-                          SMESH_Hypothesis::Hypothesis_Status& aStatus)
-{
-       //MESSAGE("StdMeshers_MEFISTO_2D::CheckHypothesis");
-
-       _hypMaxElementArea = NULL;
-       _hypLengthFromEdges = NULL;
-
-       list <const SMESHDS_Hypothesis * >::const_iterator itl;
-       const SMESHDS_Hypothesis *theHyp;
-
-       const list <const SMESHDS_Hypothesis * >&hyps = GetUsedHypothesis(aMesh, aShape);
-       int nbHyp = hyps.size();
-        if (!nbHyp)
-        {
-          aStatus = SMESH_Hypothesis::HYP_MISSING;
-          return false;  // can't work with no hypothesis
-        }
-
-       itl = hyps.begin();
-       theHyp = (*itl); // use only the first hypothesis
-
-       string hypName = theHyp->GetName();
-       int hypId = theHyp->GetID();
-       //SCRUTE(hypName);
-
-       bool isOk = false;
-
-       if (hypName == "MaxElementArea")
-       {
-               _hypMaxElementArea = static_cast<const StdMeshers_MaxElementArea *>(theHyp);
-               ASSERT(_hypMaxElementArea);
-               _maxElementArea = _hypMaxElementArea->GetMaxArea();
-               _edgeLength = 0;
-               isOk = true;
-                aStatus = SMESH_Hypothesis::HYP_OK;
-       }
-
-       else if (hypName == "LengthFromEdges")
-       {
-               _hypLengthFromEdges = static_cast<const StdMeshers_LengthFromEdges *>(theHyp);
-               ASSERT(_hypLengthFromEdges);
-               _edgeLength = 0;
-               _maxElementArea = 0;
-               isOk = true;
-                aStatus = SMESH_Hypothesis::HYP_OK;
-       }
-        else
-          aStatus = SMESH_Hypothesis::HYP_INCOMPATIBLE;
-
-       if (isOk)
-       {
-               isOk = false;
-               if (_maxElementArea > 0)
-               {
-//                     _edgeLength = 2 * sqrt(_maxElementArea);        // triangles : minorant
-                       _edgeLength = 2 * sqrt(_maxElementArea/sqrt(3.0));
-                       isOk = true;
-               }
-               else
-                       isOk = (_hypLengthFromEdges != NULL);   // **** check mode
-                if (!isOk)
-                  aStatus = SMESH_Hypothesis::HYP_BAD_PARAMETER;
-       }
-
-       //SCRUTE(_edgeLength);
-       //SCRUTE(_maxElementArea);
-       return isOk;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool StdMeshers_MEFISTO_2D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
-{
-       MESSAGE("StdMeshers_MEFISTO_2D::Compute");
-
-       if (_hypLengthFromEdges)
-               _edgeLength = ComputeEdgeElementLength(aMesh, aShape);
-
-       bool isOk = false;
-       const SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
-       SMESH_subMesh *theSubMesh = aMesh.GetSubMesh(aShape);
-
-       const TopoDS_Face & FF = TopoDS::Face(aShape);
-       bool faceIsForward = (FF.Orientation() == TopAbs_FORWARD);
-       TopoDS_Face F = TopoDS::Face(FF.Oriented(TopAbs_FORWARD));
-
-       Z nblf;                                         //nombre de lignes fermees (enveloppe en tete)
-       Z *nudslf = NULL;                       //numero du dernier sommet de chaque ligne fermee
-       R2 *uvslf = NULL;
-       Z nbpti = 0;                            //nombre points internes futurs sommets de la triangulation
-       R2 *uvpti = NULL;
-
-       Z nbst;
-       R2 *uvst = NULL;
-       Z nbt;
-       Z *nust = NULL;
-       Z ierr = 0;
-
-       Z nutysu = 1;                           // 1: il existe un fonction areteideale_()
-       // Z  nutysu=0;              // 0: on utilise aretmx
-       R aretmx = _edgeLength;         // longueur max aretes future triangulation
-
-       nblf = NumberOfWires(F);
-
-       nudslf = new Z[1 + nblf];
-       nudslf[0] = 0;
-       int iw = 1;
-       int nbpnt = 0;
-
-       myOuterWire = BRepTools::OuterWire(F);
-       nbpnt += NumberOfPoints(aMesh, myOuterWire);
-        if ( nbpnt < 3 ) // ex: a circle with 2 segments
-          return false;
-       nudslf[iw++] = nbpnt;
-
-       for (TopExp_Explorer exp(F, TopAbs_WIRE); exp.More(); exp.Next())
-       {
-               const TopoDS_Wire & W = TopoDS::Wire(exp.Current());
-               if (!myOuterWire.IsSame(W))
-               {
-                       nbpnt += NumberOfPoints(aMesh, W);
-                       nudslf[iw++] = nbpnt;
-               }
-       }
-
-        // avoid passing same uv points for a vertex common to 2 wires
-        TopTools_IndexedDataMapOfShapeListOfShape VWMap;
-        if ( iw - 1 > 1 ) // nbofWires > 1
-          TopExp::MapShapesAndAncestors( F , TopAbs_VERTEX, TopAbs_WIRE, VWMap );
-
-       uvslf = new R2[nudslf[nblf]];
-       int m = 0;
-
-        double scalex, scaley;
-        ComputeScaleOnFace(aMesh, F, scalex, scaley);
-
-        map<int, const SMDS_MeshNode*> mefistoToDS;    // correspondence mefisto index--> points IDNodes
-       if ( !LoadPoints(aMesh, F, myOuterWire, uvslf, m,
-                         mefistoToDS, scalex, scaley, VWMap))
-          return false;
-
-       for (TopExp_Explorer exp(F, TopAbs_WIRE); exp.More(); exp.Next())
-       {
-               const TopoDS_Wire & W = TopoDS::Wire(exp.Current());
-               if (!myOuterWire.IsSame(W))
-               {
-                       if (! LoadPoints(aMesh, F, W, uvslf, m,
-                                         mefistoToDS, scalex, scaley, VWMap ))
-                          return false;
-               }
-       }
-
-       uvst = NULL;
-       nust = NULL;
-       aptrte(nutysu, aretmx,
-               nblf, nudslf, uvslf, nbpti, uvpti, nbst, uvst, nbt, nust, ierr);
-
-       if (ierr == 0)
-         {
-           MESSAGE("... End Triangulation Generated Triangle Number " << nbt);
-           MESSAGE("                                    Node Number " << nbst);
-           StoreResult(aMesh, nbst, uvst, nbt, nust, F,
-                       faceIsForward, mefistoToDS, scalex, scaley);
-           isOk = true;
-         }
-       else
-       {
-               MESSAGE("Error in Triangulation");
-               isOk = false;
-       }
-       if (nudslf != NULL)
-               delete[]nudslf;
-       if (uvslf != NULL)
-               delete[]uvslf;
-       if (uvst != NULL)
-               delete[]uvst;
-       if (nust != NULL)
-               delete[]nust;
-       return isOk;
-}
-
-//=======================================================================
-//function : fixOverlappedLinkUV
-//purpose  : prevent failure due to overlapped adjacent links
-//=======================================================================
-
-static bool fixOverlappedLinkUV( R2& uv0, const R2& uv1, const R2& uv2 )
-{
-  gp_XY v1( uv0.x - uv1.x, uv0.y - uv1.y );
-  gp_XY v2( uv2.x - uv1.x, uv2.y - uv1.y );
-
-  double tol2 = DBL_MIN * DBL_MIN;
-  double sqMod1 = v1.SquareModulus();
-  if ( sqMod1 <= tol2 ) return false;
-  double sqMod2 = v2.SquareModulus();
-  if ( sqMod2 <= tol2 ) return false;
-
-  double dot = v1*v2;
-
-  // check sinus >= 1.e-3
-  const double minSin = 1.e-3;
-  if ( dot > 0 && 1 - dot * dot / ( sqMod1 * sqMod2 ) < minSin * minSin ) {
-    MESSAGE(" ___ FIX UV ____" << uv0.x << " " << uv0.y);
-    v1.SetCoord( -v1.Y(), v1.X() );
-    double delta = sqrt( sqMod1 ) * minSin;
-    if ( v1.X() < 0 )
-      uv0.x -= delta;
-    else
-      uv0.x += delta;
-    if ( v1.Y() < 0 )
-      uv0.y -= delta;
-    else
-      uv0.y += delta;
-//    MESSAGE(" -> " << uv0.x << " " << uv0.y << " ");
-//     MESSAGE("v1( " << v1.X() << " " << v1.Y() << " ) " <<
-//       "v2( " << v2.X() << " " << v2.Y() << " ) ");
-//    MESSAGE("SIN: " << sqrt(1 - dot * dot / (sqMod1 * sqMod2)));
-//     v1.SetCoord( uv0.x - uv1.x, uv0.y - uv1.y );
-//     v2.SetCoord( uv2.x - uv1.x, uv2.y - uv1.y );
-//     gp_XY v3( uv2.x - uv0.x, uv2.y - uv0.y );
-//     sqMod1 = v1.SquareModulus();
-//     sqMod2 = v2.SquareModulus();
-//     dot = v1*v2;
-//     double sin = sqrt(1 - dot * dot / (sqMod1 * sqMod2));
-//     MESSAGE("NEW SIN: " << sin);
-    return true;
-  }
-  return false;
-}
-
-//=======================================================================
-//function : fixCommonVertexUV
-//purpose  : 
-//=======================================================================
-
-static bool fixCommonVertexUV (gp_Pnt2d &           theUV,
-                               const TopoDS_Vertex& theV,
-                               const TopoDS_Wire&   theW,
-                               const TopoDS_Wire&   theOW,
-                               const TopoDS_Face&   theF,
-                               const TopTools_IndexedDataMapOfShapeListOfShape & theVWMap,
-                               SMESH_Mesh &         theMesh)
-{
-  if( theW.IsSame( theOW ) ||
-      !theVWMap.Contains( theV )) return false;
-
-  // check if there is another wire sharing theV
-  const TopTools_ListOfShape& WList = theVWMap.FindFromKey( theV );
-  TopTools_ListIteratorOfListOfShape aWIt;
-  for ( aWIt.Initialize( WList ); aWIt.More(); aWIt.Next() )
-    if ( !theW.IsSame( aWIt.Value() ))
-      break;
-  if ( !aWIt.More() ) return false;
-
-  TopTools_ListOfShape EList;
-  list< double >       UList;
-
-  // find edges of theW sharing theV
-  // and find 2d normal to them at theV
-  gp_Vec2d N(0.,0.);
-  TopoDS_Iterator itE( theW );
-  for (  ; itE.More(); itE.Next() )
-  {
-    const TopoDS_Edge& E = TopoDS::Edge( itE.Value() );
-    TopoDS_Iterator itV( E );
-    for ( ; itV.More(); itV.Next() )
-    {
-      const TopoDS_Vertex & V = TopoDS::Vertex( itV.Value() );
-      if ( !V.IsSame( theV ))
-        continue;
-      EList.Append( E );
-      Standard_Real u = BRep_Tool::Parameter( V, E );
-      UList.push_back( u );
-      double f, l;
-      Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, theF, f, l);
-      gp_Vec2d d1;
-      gp_Pnt2d p;
-      C2d->D1( u, p, d1 );
-      gp_Vec2d n( d1.Y(), -d1.X() );
-      if ( E.Orientation() == TopAbs_REVERSED )
-        n.Reverse();
-      N += n.Normalized();
-    }
-  }
-
-  // define step size by which to move theUV
-
-  gp_Pnt2d nextUV; // uv of next node on edge, most distant of the four
-  double maxDist = -DBL_MAX;
-  TopTools_ListIteratorOfListOfShape aEIt (EList);
-  list< double >::iterator aUIt = UList.begin();
-  for ( ; aEIt.More(); aEIt.Next(), aUIt++ )
-  {
-    const TopoDS_Edge& E = TopoDS::Edge( aEIt.Value() );
-    double f, l;
-    Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, theF, f, l);
-
-    double umin = DBL_MAX, umax = -DBL_MAX;
-    SMDS_NodeIteratorPtr nIt = theMesh.GetSubMesh(E)->GetSubMeshDS()->GetNodes();
-    if ( !nIt->more() ) // no nodes on edge, only on vertices
-    {
-      umin = l;
-      umax = f;
-    }
-    else
-    {
-      while ( nIt->more() ) {
-        const SMDS_MeshNode* node = nIt->next();
-        const SMDS_EdgePosition* epos =
-          static_cast<const SMDS_EdgePosition*>(node->GetPosition().get());
-        double u = epos->GetUParameter();
-        if ( u < umin )
-          umin = u;
-        if ( u > umax )
-          umax = u;
-      }
-    }
-    bool isFirstCommon = ( *aUIt == f );
-    gp_Pnt2d uv = C2d->Value( isFirstCommon ? umin : umax );
-    double dist = theUV.SquareDistance( uv );
-    if ( dist > maxDist ) {
-      maxDist = dist;
-      nextUV  = uv;
-    }
-  }
-  R2 uv0, uv1, uv2;
-  uv0.x = theUV.X();    uv0.y = theUV.Y(); 
-  uv1.x = nextUV.X();   uv1.y = nextUV.Y(); 
-  uv2.x = uv0.x;        uv2.y = uv0.y;
-  if ( fixOverlappedLinkUV( uv0, uv1, uv2 ))
-  {
-    double step = theUV.Distance( gp_Pnt2d( uv0.x, uv0.y ));
-
-    // move theUV along the normal by the step
-
-    N *= step;
-
-    MESSAGE("--fixCommonVertexUV move(" << theUV.X() << " " << theUV.Y()
-            << ") by (" << N.X() << " " << N.Y() << ")" 
-            << endl << "--- MAX DIST " << maxDist);
-
-    theUV.SetXY( theUV.XY() + N.XY() );
-
-    return true;
-  }
-  return false;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool StdMeshers_MEFISTO_2D::LoadPoints(SMESH_Mesh &        aMesh,
-                                       const TopoDS_Face & FF,
-                                       const TopoDS_Wire & WW,
-                                       R2 *                uvslf,
-                                       int &               m,
-                                       map<int, const SMDS_MeshNode*>&mefistoToDS,
-                                       double              scalex,
-                                       double              scaley,
-                                       const TopTools_IndexedDataMapOfShapeListOfShape& VWMap)
-{
-//  MESSAGE("StdMeshers_MEFISTO_2D::LoadPoints");
-
-  SMDS_Mesh * meshDS = aMesh.GetMeshDS();
-
-  TopoDS_Face F = TopoDS::Face(FF.Oriented(TopAbs_FORWARD));
-
-  int mInit = m, mFirst, iEdge;
-  gp_XY scale( scalex, scaley );
-
-  TopoDS_Wire W = TopoDS::Wire(WW.Oriented(TopAbs_FORWARD));
-  BRepTools_WireExplorer wexp(W, F);
-  for (wexp.Init(W, F), iEdge = 0; wexp.More(); wexp.Next(), iEdge++)
-  {
-    const TopoDS_Edge & E = wexp.Current();
-
-    // --- IDNodes of first and last Vertex
-
-    TopoDS_Vertex VFirst, VLast;
-    TopExp::Vertices(E, VFirst, VLast); // corresponds to f and l
-
-    ASSERT(!VFirst.IsNull());
-    SMDS_NodeIteratorPtr lid=
-      aMesh.GetSubMesh(VFirst)->GetSubMeshDS()->GetNodes();
-    if ( !lid->more() ) {
-      MESSAGE (" NO NODE BUILT ON VERTEX ");
-      return false;
-    }
-    const SMDS_MeshNode* idFirst = lid->next();
-
-    ASSERT(!VLast.IsNull());
-    lid=aMesh.GetSubMesh(VLast)->GetSubMeshDS()->GetNodes();
-    if ( !lid->more() ) {
-      MESSAGE (" NO NODE BUILT ON VERTEX ");
-      return false;
-    }
-    const SMDS_MeshNode* idLast = lid->next();
-
-    // --- edge internal IDNodes (relies on good order storage, not checked)
-
-    int nbPoints = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
-
-    double f, l;
-    Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
-
-    SMDS_NodeIteratorPtr ite= aMesh.GetSubMesh(E)->GetSubMeshDS()->GetNodes();
-
-    bool isForward = (E.Orientation() == TopAbs_FORWARD);
-    map<double, const SMDS_MeshNode*> params;
-
-    while(ite->more())
-    {
-      const SMDS_MeshNode * node = ite->next();
-      const SMDS_EdgePosition* epos =
-        static_cast<const SMDS_EdgePosition*>(node->GetPosition().get());
-      double param = epos->GetUParameter();
-      params[param] = node;
-    }
-    if ( nbPoints != params.size())
-    {
-      MESSAGE( "BAD NODE ON EDGE POSITIONS" );
-      return false;
-    }
-
-    mFirst = m;
-
-    // --- load 2D values into MEFISTO structure,
-    //     add IDNodes in mefistoToDS map
-    if (E.Orientation() == TopAbs_FORWARD)
-    {
-      gp_Pnt2d p = C2d->Value(f).XY().Multiplied( scale );       // first point = Vertex Forward
-      if ( fixCommonVertexUV( p, VFirst, W, myOuterWire, F, VWMap, aMesh ))
-        myNodesOnCommonV.push_back( idFirst );
-      uvslf[m].x = p.X();
-      uvslf[m].y = p.Y();
-      mefistoToDS[m + 1] = idFirst;
-      //MESSAGE(" "<<m<<" "<<mefistoToDS[m+1]);
-      //MESSAGE("__ f "<<f<<" "<<uvslf[m].x <<" "<<uvslf[m].y);
-      m++;
-      map<double, const SMDS_MeshNode*>::iterator itp = params.begin();
-      for (int i = 1; i <= nbPoints; i++)       // nbPoints internal
-      {
-        double param = (*itp).first;
-        gp_Pnt2d p = C2d->Value(param).XY().Multiplied( scale );
-        uvslf[m].x = p.X();
-        uvslf[m].y = p.Y();
-        mefistoToDS[m + 1] = (*itp).second;
-        //MESSAGE(" "<<m<<" "<<mefistoToDS[m+1]);
-        //MESSAGE("__ "<<i<<" "<<param<<" "<<uvslf[m].x <<" "<<uvslf[m].y);
-        m++;
-        itp++;
-      }
-    }
-    else
-    {
-      gp_Pnt2d p = C2d->Value(l).XY().Multiplied( scale );       // last point = Vertex Reversed
-      if ( fixCommonVertexUV( p, VLast, W, myOuterWire, F, VWMap, aMesh ))
-        myNodesOnCommonV.push_back( idLast );
-      uvslf[m].x = p.X();
-      uvslf[m].y = p.Y();
-      mefistoToDS[m + 1] = idLast;
-      //MESSAGE(" "<<m<<" "<<mefistoToDS[m+1]);
-      //MESSAGE("__ l "<<l<<" "<<uvslf[m].x <<" "<<uvslf[m].y);
-      m++;
-      map<double, const SMDS_MeshNode*>::reverse_iterator itp = params.rbegin();
-      for (int i = nbPoints; i >= 1; i--)
-      {
-        double param = (*itp).first;
-        gp_Pnt2d p = C2d->Value(param).XY().Multiplied( scale );
-        uvslf[m].x = p.X();
-        uvslf[m].y = p.Y();
-        mefistoToDS[m + 1] = (*itp).second;
-        //MESSAGE(" "<<m<<" "<<mefistoToDS[m+1]);
-        //MESSAGE("__ "<<i<<" "<<param<<" "<<uvslf[m].x <<" "<<uvslf[m].y);
-        m++;
-        itp++;
-      }
-    }
-    // prevent failure on overlapped adjacent links
-    if ( iEdge > 0 )
-      fixOverlappedLinkUV (uvslf[ mFirst - 1],
-                           uvslf[ mFirst ],
-                           uvslf[ mFirst + 1 ]);
-    
-  } // for  wexp
-
-  fixOverlappedLinkUV (uvslf[ m - 1],
-                       uvslf[ mInit ],
-                       uvslf[ mInit + 1 ]);
-
-  return true;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void StdMeshers_MEFISTO_2D::ComputeScaleOnFace(SMESH_Mesh & aMesh,
-       const TopoDS_Face & aFace, double &scalex, double &scaley)
-{
-  //MESSAGE("StdMeshers_MEFISTO_2D::ComputeScaleOnFace");
-  TopoDS_Face F = TopoDS::Face(aFace.Oriented(TopAbs_FORWARD));
-  TopoDS_Wire W = BRepTools::OuterWire(F);
-
-  double xmin = 1.e300;         // min & max of face 2D parametric coord.
-  double xmax = -1.e300;
-  double ymin = 1.e300;
-  double ymax = -1.e300;
-  int nbp = 23;
-  scalex = 1;
-  scaley = 1;
-
-  TopExp_Explorer wexp(W, TopAbs_EDGE);
-  for ( ; wexp.More(); wexp.Next())
-  {
-    const TopoDS_Edge & E = TopoDS::Edge( wexp.Current() );
-    double f, l;
-    Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
-    if ( C2d.IsNull() ) continue;
-    double du = (l - f) / double (nbp);
-    for (int i = 0; i <= nbp; i++)
-    {
-      double param = f + double (i) * du;
-      gp_Pnt2d p = C2d->Value(param);
-      if (p.X() < xmin)
-        xmin = p.X();
-      if (p.X() > xmax)
-        xmax = p.X();
-      if (p.Y() < ymin)
-        ymin = p.Y();
-      if (p.Y() > ymax)
-        ymax = p.Y();
-      //    MESSAGE(" "<< f<<" "<<l<<" "<<param<<" "<<xmin<<" "<<xmax<<" "<<ymin<<" "<<ymax);
-    }
-  }
-  //   SCRUTE(xmin);
-  //   SCRUTE(xmax);
-  //   SCRUTE(ymin);
-  //   SCRUTE(ymax);
-  double xmoy = (xmax + xmin) / 2.;
-  double ymoy = (ymax + ymin) / 2.;
-  double xsize = xmax - xmin;
-  double ysize = ymax - ymin;
-
-  Handle(Geom_Surface) S = BRep_Tool::Surface(F);       // 3D surface
-
-  double length_x = 0;
-  double length_y = 0;
-  gp_Pnt PX0 = S->Value(xmin, ymoy);
-  gp_Pnt PY0 = S->Value(xmoy, ymin);
-  double dx = xsize / double (nbp);
-  double dy = ysize / double (nbp);
-  for (int i = 1; i <= nbp; i++)
-  {
-    double x = xmin + double (i) * dx;
-    gp_Pnt PX = S->Value(x, ymoy);
-    double y = ymin + double (i) * dy;
-    gp_Pnt PY = S->Value(xmoy, y);
-    length_x += PX.Distance(PX0);
-    length_y += PY.Distance(PY0);
-    PX0 = PX;
-    PY0 = PY;
-  }
-  scalex = length_x / xsize;
-  scaley = length_y / ysize;
-//   SCRUTE(xsize);
-//   SCRUTE(ysize);
-  double xyratio = xsize*scalex/(ysize*scaley);
-  const double maxratio = 1.e2;
-  //SCRUTE(xyratio);
-  if (xyratio > maxratio) {
-    SCRUTE( scaley );
-    scaley *= xyratio / maxratio;
-    SCRUTE( scaley );
-  }
-  else if (xyratio < 1./maxratio) {
-    SCRUTE( scalex );
-    scalex *= 1 / xyratio / maxratio;
-    SCRUTE( scalex );
-  }
-  ASSERT(scalex);
-  ASSERT(scaley);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void StdMeshers_MEFISTO_2D::StoreResult(SMESH_Mesh & aMesh,
-                                        Z nbst, R2 * uvst, Z nbt, Z * nust,
-                                        const TopoDS_Face & F, bool faceIsForward,
-                                        map<int, const SMDS_MeshNode*>&mefistoToDS,
-                                        double scalex, double scaley)
-{
-  SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
-
-  Z n, m;
-  Handle(Geom_Surface) S = BRep_Tool::Surface(F);
-
-  for (n = 0; n < nbst; n++)
-  {
-    if (mefistoToDS.find(n + 1) == mefistoToDS.end())
-    {
-      double u = uvst[n][0] / scalex;
-      double v = uvst[n][1] / scaley;
-      gp_Pnt P = S->Value(u, v);
-
-      SMDS_MeshNode * node = meshDS->AddNode(P.X(), P.Y(), P.Z());
-      meshDS->SetNodeOnFace(node, F);
-
-      //MESSAGE(P.X()<<" "<<P.Y()<<" "<<P.Z());
-      mefistoToDS[n + 1] = node;
-      //MESSAGE("NEW: "<<n<<" "<<mefistoToDS[n+1]);
-      SMDS_FacePosition* fpos =
-        static_cast<SMDS_FacePosition*>(node->GetPosition().get());
-      fpos->SetUParameter(u);
-      fpos->SetVParameter(v);
-    }
-  }
-
-  m = 0;
-  int mt = 0;
-
-  //SCRUTE(faceIsForward);
-  for (n = 1; n <= nbt; n++)
-  {
-    int inode1 = nust[m++];
-    int inode2 = nust[m++];
-    int inode3 = nust[m++];
-
-    const SMDS_MeshNode *n1, *n2, *n3;
-    n1 = mefistoToDS[inode1];
-    n2 = mefistoToDS[inode2];
-    n3 = mefistoToDS[inode3];
-    //MESSAGE("-- "<<inode1<<" "<<inode2<<" "<<inode3);
-
-    // triangle points must be in trigonometric order if face is Forward
-    // else they must be put clockwise
-
-    bool triangleIsWellOriented = faceIsForward;
-
-    SMDS_MeshElement * elt;
-    if (triangleIsWellOriented)
-      elt = meshDS->AddFace(n1, n2, n3);
-    else
-      elt = meshDS->AddFace(n1, n3, n2);
-
-    meshDS->SetMeshElementOnShape(elt, F);
-    m++;
-  }
-
-  // remove bad elements build on vertices shared by wires
-
-  list<const SMDS_MeshNode*>::iterator itN = myNodesOnCommonV.begin();
-  for ( ; itN != myNodesOnCommonV.end(); itN++ )
-  {
-    const SMDS_MeshNode* node = *itN;
-    SMDS_ElemIteratorPtr invElemIt = node->GetInverseElementIterator();
-    while ( invElemIt->more() )
-    {
-      const SMDS_MeshElement* elem = invElemIt->next();
-      SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-      int nbSame = 0;
-      while ( itN->more() )
-        if ( itN->next() == node)
-          nbSame++;
-      if (nbSame > 1) {
-        MESSAGE( "RM bad element " << elem->GetID());
-        meshDS->RemoveElement( elem );
-      }
-    }
-  }
-
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-double StdMeshers_MEFISTO_2D::ComputeEdgeElementLength(SMESH_Mesh & aMesh,
-       const TopoDS_Shape & aShape)
-{
-       //MESSAGE("StdMeshers_MEFISTO_2D::ComputeEdgeElementLength");
-       // **** a mettre dans SMESH_2D_Algo ?
-
-       const TopoDS_Face & FF = TopoDS::Face(aShape);
-       bool faceIsForward = (FF.Orientation() == TopAbs_FORWARD);
-       TopoDS_Face F = TopoDS::Face(FF.Oriented(TopAbs_FORWARD));
-
-       double meanElementLength = 100;
-       double wireLength = 0;
-       int wireElementsNumber = 0;
-       for (TopExp_Explorer exp(F, TopAbs_WIRE); exp.More(); exp.Next())
-       {
-               const TopoDS_Wire & W = TopoDS::Wire(exp.Current());
-               for (TopExp_Explorer expe(W, TopAbs_EDGE); expe.More(); expe.Next())
-               {
-                       const TopoDS_Edge & E = TopoDS::Edge(expe.Current());
-                       int nb = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
-                       double length = EdgeLength(E);
-                       wireLength += length;
-                       wireElementsNumber += nb;
-               }
-       }
-       if (wireElementsNumber)
-               meanElementLength = wireLength / wireElementsNumber;
-       //SCRUTE(meanElementLength);
-       return meanElementLength;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & StdMeshers_MEFISTO_2D::SaveTo(ostream & save)
-{
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & StdMeshers_MEFISTO_2D::LoadFrom(istream & load)
-{
-  return load;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator <<(ostream & save, StdMeshers_MEFISTO_2D & hyp)
-{
-  return hyp.SaveTo( save );
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >>(istream & load, StdMeshers_MEFISTO_2D & hyp)
-{
-  return hyp.LoadFrom( load );
-}
diff --git a/src/StdMeshers/StdMeshers_MEFISTO_2D.hxx b/src/StdMeshers/StdMeshers_MEFISTO_2D.hxx
deleted file mode 100644 (file)
index fac85f0..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_MEFISTO_2D.hxx
-//           Moved here from SMESH_MEFISTO_2D.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _StdMeshers_MEFISTO_2D_HXX_
-#define _StdMeshers_MEFISTO_2D_HXX_
-
-#include "SMESH_2D_Algo.hxx"
-#include <TopoDS_Wire.hxx>
-
-class SMDS_MeshNode;
-class TopTools_IndexedDataMapOfShapeListOfShape;
-class TopoDS_Face;
-class TopoDS_WIre;
-class StdMeshers_MaxElementArea;
-class StdMeshers_LengthFromEdges;
-class SMDS_MeshNode;
-
-#include <list>
-#include <map>
-#include "Rn.h"
-
-class StdMeshers_MEFISTO_2D:
-  public SMESH_2D_Algo
-{
-public:
-  StdMeshers_MEFISTO_2D(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~StdMeshers_MEFISTO_2D();
-
-  virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
-                               const TopoDS_Shape& aShape,
-                               SMESH_Hypothesis::Hypothesis_Status& aStatus);
-
-  virtual bool Compute(SMESH_Mesh& aMesh,
-                      const TopoDS_Shape& aShape);
-
-  double ComputeEdgeElementLength(SMESH_Mesh& aMesh,
-                                 const TopoDS_Shape& aShape);
-
-  bool LoadPoints(SMESH_Mesh& aMesh,
-                 const TopoDS_Face& F, 
-                 const TopoDS_Wire& W,
-                 R2* uvslf, 
-                 int& m,
-                 map<int,const SMDS_MeshNode*>& mefistoToDS,
-                  double scalex, double scaley,
-                  const TopTools_IndexedDataMapOfShapeListOfShape& VWMap);
-
-  void ComputeScaleOnFace(SMESH_Mesh& aMesh,
-                         const TopoDS_Face& aFace,
-                         double& scalex,
-                         double& scaley);
-
-  void StoreResult (SMESH_Mesh& aMesh,
-                   Z nbst, R2* uvst, Z nbt, Z* nust, 
-                   const TopoDS_Face& F, bool faceIsForward,
-                   map<int,const SMDS_MeshNode*>& mefistoToDS,
-                    double scalex, double scaley);
-                                         
-  ostream & SaveTo(ostream & save);
-  istream & LoadFrom(istream & load);
-  friend ostream & operator << (ostream & save, StdMeshers_MEFISTO_2D & hyp);
-  friend istream & operator >> (istream & load, StdMeshers_MEFISTO_2D & hyp);
-
-protected:
-  double                            _edgeLength;
-  double                            _maxElementArea;
-  const StdMeshers_MaxElementArea*  _hypMaxElementArea;
-  const StdMeshers_LengthFromEdges* _hypLengthFromEdges;
-
-  TopoDS_Wire myOuterWire;
-  std::list<const SMDS_MeshNode*> myNodesOnCommonV;
-};
-
-#endif
diff --git a/src/StdMeshers/StdMeshers_MaxElementArea.cxx b/src/StdMeshers/StdMeshers_MaxElementArea.cxx
deleted file mode 100644 (file)
index c4a2d5e..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_MaxElementArea.cxx
-//           Moved here from SMESH_MaxElementArea.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_MaxElementArea.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_MaxElementArea::StdMeshers_MaxElementArea(int hypId, int studyId, SMESH_Gen* gen)
-  : SMESH_Hypothesis(hypId, studyId, gen)
-{
-  _maxArea =1.;
-  _name = "MaxElementArea";
-//   SCRUTE(_name);
-//   SCRUTE(&_name);
-  _param_algo_dim = 2; 
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_MaxElementArea::~StdMeshers_MaxElementArea()
-{
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void StdMeshers_MaxElementArea::SetMaxArea(double maxArea)
-  throw (SALOME_Exception)
-{
-  double oldArea = _maxArea;
-  if (maxArea <= 0) 
-    throw SALOME_Exception(LOCALIZED("maxArea must be positive"));
-  _maxArea = maxArea;
-  if (_maxArea != oldArea)
-    NotifySubMeshesHypothesisModification();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-double StdMeshers_MaxElementArea::GetMaxArea() const
-{
-  return _maxArea;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & StdMeshers_MaxElementArea::SaveTo(ostream & save)
-{
-  save << this->_maxArea;
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & StdMeshers_MaxElementArea::LoadFrom(istream & load)
-{
-  bool isOK = true;
-  double a;
-  isOK = (load >> a);
-  if (isOK) 
-    this->_maxArea = a;
-  else 
-    load.clear(ios::badbit | load.rdstate());
-  return load;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator << (ostream & save, StdMeshers_MaxElementArea & hyp)
-{
-  return hyp.SaveTo( save );
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >> (istream & load, StdMeshers_MaxElementArea & hyp)
-{
-  return hyp.LoadFrom( load );
-}
-
diff --git a/src/StdMeshers/StdMeshers_MaxElementArea.hxx b/src/StdMeshers/StdMeshers_MaxElementArea.hxx
deleted file mode 100644 (file)
index 52af887..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_MaxElementArea.hxx
-//           Moved here from SMESH_MaxElementArea.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_MAXELEMENTAREA_HXX_
-#define _SMESH_MAXELEMENTAREA_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-class StdMeshers_MaxElementArea:public SMESH_Hypothesis
-{
-  public:
-       StdMeshers_MaxElementArea(int hypId, int studyId, SMESH_Gen * gen);
-         virtual ~ StdMeshers_MaxElementArea();
-
-       void SetMaxArea(double maxArea) throw(SALOME_Exception);
-
-       double GetMaxArea() const;
-
-       virtual ostream & SaveTo(ostream & save);
-       virtual istream & LoadFrom(istream & load);
-       friend ostream & operator <<(ostream & save, StdMeshers_MaxElementArea & hyp);
-       friend istream & operator >>(istream & load, StdMeshers_MaxElementArea & hyp);
-
-  protected:
-       double _maxArea;
-};
-
-#endif
diff --git a/src/StdMeshers/StdMeshers_MaxElementVolume.cxx b/src/StdMeshers/StdMeshers_MaxElementVolume.cxx
deleted file mode 100644 (file)
index f9f6b63..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_MaxElementVolume.cxx
-//           Moved here from SMESH_MaxElementVolume.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-
-#include "StdMeshers_MaxElementVolume.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_MaxElementVolume::StdMeshers_MaxElementVolume(int hypId, int studyId, SMESH_Gen* gen)
-  : SMESH_Hypothesis(hypId, studyId, gen)
-{
-  _maxVolume =1.;
-  _name = "MaxElementVolume";
-//   SCRUTE(_name);
-  SCRUTE(&_name);
-  _param_algo_dim = 3;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_MaxElementVolume::~StdMeshers_MaxElementVolume()
-{
-  MESSAGE("StdMeshers_MaxElementVolume::~StdMeshers_MaxElementVolume");
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void StdMeshers_MaxElementVolume::SetMaxVolume(double maxVolume)
-  throw (SALOME_Exception)
-{
-  double oldVolume = _maxVolume;
-  if (maxVolume <= 0) 
-    throw SALOME_Exception(LOCALIZED("maxVolume must be positive"));
-  _maxVolume = maxVolume;
-  if (_maxVolume != oldVolume)
-    NotifySubMeshesHypothesisModification();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-double StdMeshers_MaxElementVolume::GetMaxVolume() const
-{
-  return _maxVolume;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & StdMeshers_MaxElementVolume::SaveTo(ostream & save)
-{
-  save << this->_maxVolume;
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & StdMeshers_MaxElementVolume::LoadFrom(istream & load)
-{
-  bool isOK = true;
-  double a;
-  isOK = (load >> a);
-  if (isOK)
-    this->_maxVolume = a;
-  else 
-    load.clear(ios::badbit | load.rdstate());
-  return load;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator << (ostream & save, StdMeshers_MaxElementVolume & hyp)
-{
-  return hyp.SaveTo( save );
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >> (istream & load, StdMeshers_MaxElementVolume & hyp)
-{
-  return hyp.LoadFrom( load );
-}
-
diff --git a/src/StdMeshers/StdMeshers_MaxElementVolume.hxx b/src/StdMeshers/StdMeshers_MaxElementVolume.hxx
deleted file mode 100644 (file)
index ee9986f..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_MaxElementVolume.hxx
-//           Moved here from SMESH_MaxElementVolume.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_MAXELEMENTVOLUME_HXX_
-#define _SMESH_MAXELEMENTVOLUME_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-class StdMeshers_MaxElementVolume:
-  public SMESH_Hypothesis
-{
-public:
-  StdMeshers_MaxElementVolume(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~StdMeshers_MaxElementVolume();
-
-  void SetMaxVolume(double maxVolume)
-    throw (SALOME_Exception);
-
-  double GetMaxVolume() const;
-
-  virtual ostream & SaveTo(ostream & save);
-  virtual istream & LoadFrom(istream & load);
-  friend ostream & operator << (ostream & save, StdMeshers_MaxElementVolume & hyp);
-  friend istream & operator >> (istream & load, StdMeshers_MaxElementVolume & hyp);
-
-protected:
-  double _maxVolume;
-};
-
-#endif
diff --git a/src/StdMeshers/StdMeshers_NotConformAllowed.cxx b/src/StdMeshers/StdMeshers_NotConformAllowed.cxx
deleted file mode 100644 (file)
index 5c471b2..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-//  SMESH StdMeshers : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_NotConformAllowed.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_NotConformAllowed.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_NotConformAllowed::StdMeshers_NotConformAllowed(int hypId, int studyId, SMESH_Gen* gen)
-  : SMESH_Hypothesis(hypId, studyId, gen)
-{
-  _name = "NotConformAllowed";
-  _param_algo_dim = -1; 
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_NotConformAllowed::~StdMeshers_NotConformAllowed()
-{
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & StdMeshers_NotConformAllowed::SaveTo(ostream & save)
-{
-  return save << this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & StdMeshers_NotConformAllowed::LoadFrom(istream & load)
-{
-  return load >> (*this);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator << (ostream & save, StdMeshers_NotConformAllowed & hyp)
-{
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >> (istream & load, StdMeshers_NotConformAllowed & hyp)
-{
-  return load;
-}
diff --git a/src/StdMeshers/StdMeshers_NotConformAllowed.hxx b/src/StdMeshers/StdMeshers_NotConformAllowed.hxx
deleted file mode 100644 (file)
index 0797424..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-//  SMESH StdMeshers : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_NotConformAllowed.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _StdMeshers_NotConformAllowed_HXX_
-#define _StdMeshers_NotConformAllowed_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-class StdMeshers_NotConformAllowed:
-  public SMESH_Hypothesis
-{
-public:
-  StdMeshers_NotConformAllowed(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~StdMeshers_NotConformAllowed();
-
-  virtual ostream & SaveTo(ostream & save);
-  virtual istream & LoadFrom(istream & load);
-  friend ostream & operator << (ostream & save, StdMeshers_NotConformAllowed & hyp);
-  friend istream & operator >> (istream & load, StdMeshers_NotConformAllowed & hyp);
-};
-
-#endif
diff --git a/src/StdMeshers/StdMeshers_NumberOfSegments.cxx b/src/StdMeshers/StdMeshers_NumberOfSegments.cxx
deleted file mode 100644 (file)
index 44ac159..0000000
+++ /dev/null
@@ -1,496 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_NumberOfSegments.cxx
-//           Moved here from SMESH_NumberOfSegments.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_NumberOfSegments.hxx"
-#include <Standard_ErrorHandler.hxx>
-#include <TCollection_AsciiString.hxx>
-#include <ExprIntrp_GenExp.hxx>
-#include <Expr_NamedUnknown.hxx>
-
-const double PRECISION = 1e-7;
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_NumberOfSegments::StdMeshers_NumberOfSegments(int hypId, int studyId,
-       SMESH_Gen * gen)
-  : SMESH_Hypothesis(hypId, studyId, gen),
-    _numberOfSegments(1),
-    _distrType(DT_Regular),
-    _scaleFactor(1.),
-    _expMode(false)
-{
-  _name = "NumberOfSegments";
-  _param_algo_dim = 1; 
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_NumberOfSegments::~StdMeshers_NumberOfSegments()
-{
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void StdMeshers_NumberOfSegments::SetNumberOfSegments(int segmentsNumber)
-throw(SALOME_Exception)
-{
-       int oldNumberOfSegments = _numberOfSegments;
-       if (segmentsNumber <= 0)
-               throw
-                       SALOME_Exception(LOCALIZED("number of segments must be positive"));
-       _numberOfSegments = segmentsNumber;
-
-       if (oldNumberOfSegments != _numberOfSegments)
-               NotifySubMeshesHypothesisModification();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-int StdMeshers_NumberOfSegments::GetNumberOfSegments() const
-{
-       return _numberOfSegments;
-}
-
-//================================================================================
-/*!
- * 
- */
-//================================================================================
-
-void StdMeshers_NumberOfSegments::SetDistrType(DistrType typ)
-  throw(SALOME_Exception)
-{
-  if (typ < DT_Regular || typ > DT_ExprFunc)
-    throw SALOME_Exception(LOCALIZED("distribution type is out of range"));
-
-  if (typ != _distrType)
-  {
-    _distrType = typ;
-    NotifySubMeshesHypothesisModification();
-  }
-}
-
-//================================================================================
-/*!
- * 
- */
-//================================================================================
-
-StdMeshers_NumberOfSegments::DistrType StdMeshers_NumberOfSegments::GetDistrType() const
-{
-  return _distrType;
-}
-
-//================================================================================
-/*!
- * 
- */
-//================================================================================
-
-void StdMeshers_NumberOfSegments::SetScaleFactor(double scaleFactor)
-  throw(SALOME_Exception)
-{
-  if (_distrType != DT_Scale)
-    throw SALOME_Exception(LOCALIZED("not a scale distribution"));
-  if (scaleFactor < PRECISION)
-    throw SALOME_Exception(LOCALIZED("scale factor must be positive"));
-  if (fabs(scaleFactor - 1.0) < PRECISION)
-    throw SALOME_Exception(LOCALIZED("scale factor must not be equal to 1"));
-
-  if (fabs(_scaleFactor - scaleFactor) > PRECISION)
-  {
-    _scaleFactor = scaleFactor;
-    NotifySubMeshesHypothesisModification();
-  }
-}
-
-//================================================================================
-/*!
- * 
- */
-//================================================================================
-
-double StdMeshers_NumberOfSegments::GetScaleFactor() const
-  throw(SALOME_Exception)
-{
-  if (_distrType != DT_Scale)
-    throw SALOME_Exception(LOCALIZED("not a scale distribution"));
-  return _scaleFactor;
-}
-
-//================================================================================
-/*!
- * 
- */
-//================================================================================
-
-void StdMeshers_NumberOfSegments::SetTableFunction(const std::vector<double>& table)
-  throw(SALOME_Exception)
-{
-  if (_distrType != DT_TabFunc)
-    throw SALOME_Exception(LOCALIZED("not a table function distribution"));
-  if ( (table.size() % 2) != 0 )
-    throw SALOME_Exception(LOCALIZED("odd size of vector of table function"));
-
-  int i;
-  double prev = -PRECISION;
-  bool isSame = table.size() == _table.size();
-
-  for (i=0; i < table.size()/2; i++) {
-    double par = table[i*2];
-    double val = table[i*2+1];
-    if ( par<0 || par > 1)
-      throw SALOME_Exception(LOCALIZED("parameter of table function is out of range [0,1]"));
-    if ( fabs(par-prev)<PRECISION )
-      throw SALOME_Exception(LOCALIZED("two parameters are the same"));
-    if (val < PRECISION)
-      throw SALOME_Exception(LOCALIZED("value of table function is not positive"));
-    if (isSame)
-    {
-      double oldpar = _table[i*2];
-      double oldval = _table[i*2+1];
-      if (fabs(par - oldpar) > PRECISION || fabs(val - oldval) > PRECISION)
-        isSame = false;
-    }
-    prev = par;
-  }
-
-  if (!isSame)
-  {
-    _table = table;
-    NotifySubMeshesHypothesisModification();
-  }
-}
-
-//================================================================================
-/*!
- * 
- */
-//================================================================================
-
-const std::vector<double>& StdMeshers_NumberOfSegments::GetTableFunction() const
-  throw(SALOME_Exception)
-{
-  if (_distrType != DT_TabFunc)
-    throw SALOME_Exception(LOCALIZED("not a table function distribution"));
-  return _table;
-}
-
-//================================================================================
-/*! check if only 't' is unknown variable in expression
- */
-//================================================================================
-bool isCorrect( const Handle( Expr_GeneralExpression )& expr )
-{
-  if( expr.IsNull() )
-    return true;
-    
-  bool res = true;
-  for( int i=1, n=expr->NbSubExpressions(); i<=n && res; i++ )
-  {
-    Handle( Expr_GeneralExpression ) subexpr = expr->SubExpression( i );
-    Handle( Expr_NamedUnknown ) name = Handle( Expr_NamedUnknown )::DownCast( subexpr );
-    if( !name.IsNull() )
-    {
-      if( name->GetName()!="t" )
-        res = false;
-    }
-    else
-      res = isCorrect( subexpr );
-  }
-  return res;
-}
-
-//================================================================================
-/*! this function parses the expression 'str' in order to check if syntax is correct
- *  ( result in 'syntax' ) and if only 't' is unknown variable in expression ( result in 'args' )
- */
-//================================================================================
-void casProcess( const TCollection_AsciiString& str, bool& syntax, bool& args )
-{
-  // check validity of expression
-  syntax = false;
-  args = false;
-  try
-  {
-    Handle( ExprIntrp_GenExp ) gen = ExprIntrp_GenExp::Create();
-    gen->Process( str );
-        
-    if( gen->IsDone() ) 
-    {
-      syntax = true;
-      args = isCorrect( gen->Expression() );
-    }
-  }
-  catch (Standard_Failure)
-  {
-  }
-}
-
-//================================================================================
-/*!
- * 
- */
-//================================================================================
-
-void StdMeshers_NumberOfSegments::SetExpressionFunction(const char* expr)
-  throw(SALOME_Exception)
-{
-  if (_distrType != DT_ExprFunc)
-    throw SALOME_Exception(LOCALIZED("not an expression function distribution"));
-
-  // remove white spaces
-  TCollection_AsciiString str((Standard_CString)expr);
-  str.RemoveAll(' ');
-  str.RemoveAll('\t');
-  str.RemoveAll('\r');
-  str.RemoveAll('\n');
-
-  bool syntax, args;
-  casProcess( str, syntax, args );
-  if( !syntax )
-    throw SALOME_Exception(LOCALIZED("invalid expression syntax"));
-  if( !args )
-    throw SALOME_Exception(LOCALIZED("only 't' may be used as function argument"));
-
-  string func(str.ToCString());
-  if (_func != func)
-  {
-    _func = func;
-    NotifySubMeshesHypothesisModification();
-  }
-}
-
-//================================================================================
-/*!
- * 
- */
-//================================================================================
-
-const char* StdMeshers_NumberOfSegments::GetExpressionFunction() const
-  throw(SALOME_Exception)
-{
-  if (_distrType != DT_ExprFunc)
-    throw SALOME_Exception(LOCALIZED("not an expression function distribution"));
-  return _func.c_str();
-}
-
-//================================================================================
-/*!
- * 
- */
-//================================================================================
-
-void StdMeshers_NumberOfSegments::SetExponentMode(bool isExp)
-  throw(SALOME_Exception)
-{
-  if (_distrType != DT_TabFunc && _distrType != DT_ExprFunc)
-    throw SALOME_Exception(LOCALIZED("not a functional distribution"));
-
-  if (isExp != _expMode)
-  {
-    _expMode = isExp;
-    NotifySubMeshesHypothesisModification();
-  }
-}
-
-//================================================================================
-/*!
- * 
- */
-//================================================================================
-
-bool StdMeshers_NumberOfSegments::IsExponentMode() const
-  throw(SALOME_Exception)
-{
-  if (_distrType != DT_TabFunc && _distrType != DT_ExprFunc)
-    throw SALOME_Exception(LOCALIZED("not a functional distribution"));
-  return _expMode;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & StdMeshers_NumberOfSegments::SaveTo(ostream & save)
-{
-  save << _numberOfSegments << " " << (int)_distrType;
-  switch (_distrType)
-  {
-  case DT_Scale:
-    save << " " << _scaleFactor;
-    break;
-  case DT_TabFunc:
-    int i;
-    save << " " << _table.size();
-    for (i=0; i < _table.size(); i++)
-      save << " " << _table[i];
-    break;
-  case DT_ExprFunc:
-    save << " " << _func;
-    break;
-  case DT_Regular:
-  default:
-    break;
-  }
-
-  if (_distrType == DT_TabFunc || _distrType == DT_ExprFunc)
-    save << " " << (int)_expMode;
-  
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load)
-{
-  bool isOK = true;
-  int a;
-
-  // read number of segments
-  isOK = (load >> a);
-  if (isOK)
-    _numberOfSegments = a;
-  else
-    load.clear(ios::badbit | load.rdstate());
-
-  // read ditribution type
-  isOK = (load >> a);
-  if (isOK)
-  {
-    if (a < DT_Regular || a > DT_ExprFunc)
-      _distrType = DT_Regular;
-    else
-      _distrType = (DistrType) a;
-  }
-  else
-    load.clear(ios::badbit | load.rdstate());
-
-  // parameters of distribution
-  double b;
-  switch (_distrType)
-  {
-  case DT_Scale:
-    {
-      isOK = (load >> b);
-      if (isOK)
-        _scaleFactor = b;
-      else
-        load.clear(ios::badbit | load.rdstate());
-    }
-    break;
-  case DT_TabFunc:
-    {
-      isOK = (load >> a);
-      if (isOK)
-        _table.resize(a, 0.);
-      else
-        load.clear(ios::badbit | load.rdstate());
-      int i;
-      for (i=0; i < _table.size(); i++)
-      {
-        isOK = (load >> b);
-        if (isOK)
-          _table[i] = b;
-        else
-          load.clear(ios::badbit | load.rdstate());
-      }
-    }
-    break;
-  case DT_ExprFunc:
-    {
-      string str;
-      isOK = (load >> str);
-      if (isOK)
-        _func = str;
-      else
-        load.clear(ios::badbit | load.rdstate());
-    }
-    break;
-  case DT_Regular:
-  default:
-    break;
-  }
-
-  if (_distrType == DT_TabFunc || _distrType == DT_ExprFunc)
-  {
-    isOK = (load >> a);
-    if (isOK)
-      _expMode = (bool) a;
-    else
-      load.clear(ios::badbit | load.rdstate());
-  }
-
-  return load;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator <<(ostream & save, StdMeshers_NumberOfSegments & hyp)
-{
-  return hyp.SaveTo( save );
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >>(istream & load, StdMeshers_NumberOfSegments & hyp)
-{
-  return hyp.LoadFrom( load );
-}
diff --git a/src/StdMeshers/StdMeshers_NumberOfSegments.hxx b/src/StdMeshers/StdMeshers_NumberOfSegments.hxx
deleted file mode 100644 (file)
index 2f559fb..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_NumberOfSegments.hxx
-//           Moved here from SMESH_NumberOfSegments.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_NUMBEROFSEGMENTS_HXX_
-#define _SMESH_NUMBEROFSEGMENTS_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-#include "Utils_SALOME_Exception.hxx"
-#include <vector>
-
-/*!
- * \brief This class represents hypothesis for 1d algorithm
- * 
- * It provides parameters for subdivision an edge by various
- * distribution types, considering the given number of resulting segments
- */
-class StdMeshers_NumberOfSegments:
-  public SMESH_Hypothesis
-{
-public:
-  StdMeshers_NumberOfSegments(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~StdMeshers_NumberOfSegments();
-
-  /*!
-   * \brief Set the number of segments
-    * \param segmentsNumber - must be greater than zero
-   */
-  void SetNumberOfSegments(int segmentsNumber)
-    throw (SALOME_Exception);
-
-  /*!
-   * \brief Get the number of segments
-   */
-  int GetNumberOfSegments() const;
-
-  /*!
-   * \brief This enumeration presents available types of distribution
-   */
-  enum DistrType
-  {
-    DT_Regular, //!< equidistant distribution
-    DT_Scale,   //!< scale distribution
-    DT_TabFunc, //!< distribution with density function presented by table
-    DT_ExprFunc //!< distribution with density function presented by expression
-  };
-
-  /*!
-   * \brief Set distribution type
-   */
-  void SetDistrType(DistrType typ)
-    throw (SALOME_Exception);
-
-  /*!
-   * \brief Get distribution type
-   */
-  DistrType GetDistrType() const;
-
-  /*!
-   * \brief Set scale factor for scale distribution
-   * \param scaleFactor - positive value different from 1
-   * 
-   * Throws SALOME_Exception if distribution type is not DT_Scale,
-   * or scaleFactor is not a positive value different from 1
-   */
-  virtual void SetScaleFactor(double scaleFactor)
-    throw (SALOME_Exception);
-
-  /*!
-   * \brief Get scale factor for scale distribution
-   * 
-   * Throws SALOME_Exception if distribution type is not DT_Scale
-   */
-  double GetScaleFactor() const
-    throw (SALOME_Exception);
-
-  /*!
-   * \brief Set table function for distribution DT_TabFunc
-    * \param table - this vector contains the pairs (parameter, value)
-   * following each by other, so the number of elements in the vector
-   * must be even. The parameters must be in range [0,1] and sorted in
-   * increase order. The values of function must be positive.
-   * 
-   * Throws SALOME_Exception if distribution type is not DT_TabFunc
-   */
-  void SetTableFunction(const std::vector<double>& table)
-    throw (SALOME_Exception);
-
-  /*!
-   * \brief Get table function for distribution DT_TabFunc
-   * 
-   * Throws SALOME_Exception if distribution type is not DT_TabFunc
-   */
-  const std::vector<double>& GetTableFunction() const
-    throw (SALOME_Exception);
-
-  /*!
-   * \brief Set expression function for distribution DT_ExprFunc
-    * \param expr - string containing the expression of the function
-    *               f(t), e.g. "sin(t)"
-   * 
-   * Throws SALOME_Exception if distribution type is not DT_ExprFunc
-   */
-  void SetExpressionFunction(const char* expr)
-    throw (SALOME_Exception);
-
-  /*!
-   * \brief Get expression function for distribution DT_ExprFunc
-   * 
-   * Throws SALOME_Exception if distribution type is not DT_ExprFunc
-   */
-  const char* GetExpressionFunction() const
-    throw (SALOME_Exception);
-
-  /*!
-   * \brief When exponent mode is set, the function of distribution of density
-   * is used as an exponent of 10, i,e, 10^f(t). This mode is sensible only when
-   * function distribution is used (DT_TabFunc or DT_ExprFunc)
-    * \param isExp - boolean switching on/off the mode
-   * 
-   * Throws SALOME_Exception if distribution type is not functional
-   */
-  void SetExponentMode(bool isExp)
-    throw (SALOME_Exception);
-
-  /*!
-   * \brief Returns true if the exponent mode is set
-   * 
-   * Throws SALOME_Exception if distribution type is not functional
-   */
-  bool IsExponentMode() const
-    throw (SALOME_Exception);
-
-  virtual ostream & SaveTo(ostream & save);
-  virtual istream & LoadFrom(istream & load);
-  friend ostream& operator << (ostream & save, StdMeshers_NumberOfSegments & hyp);
-  friend istream& operator >> (istream & load, StdMeshers_NumberOfSegments & hyp);
-
-protected:
-  int                 _numberOfSegments; //!< an edge will be split on to this number of segments
-  DistrType           _distrType;        //!< the type of distribution of density function
-  double              _scaleFactor;      //!< the scale parameter for DT_Scale
-  std::vector<double> _table;            //!< the table for DT_TabFunc, a sequence of pairs of numbers
-  std::string         _func;             //!< the expression of the function for DT_ExprFunc
-  bool                _expMode;          //!< flag of exponent mode
-};
-
-#endif
diff --git a/src/StdMeshers/StdMeshers_Penta_3D.cxx b/src/StdMeshers/StdMeshers_Penta_3D.cxx
deleted file mode 100644 (file)
index e1a4c02..0000000
+++ /dev/null
@@ -1,1593 +0,0 @@
-//  SMESH StdMeshers_Penta_3D implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Penta_3D.cxx
-//  Module : SMESH
-
-#include "StdMeshers_Penta_3D.hxx"
-
-#include "utilities.h"
-#include "Utils_ExceptHandlers.hxx"
-
-#include "SMDS_EdgePosition.hxx"
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_VolumeOfNodes.hxx"
-#include "SMDS_VolumeTool.hxx"
-#include "SMESHDS_SubMesh.hxx"
-#include "SMESH_Mesh.hxx"
-#include "SMESH_subMesh.hxx"
-#include "SMESH_MeshEditor.hxx"
-
-#include <BRep_Tool.hxx>
-#include <TopAbs_ShapeEnum.hxx>
-#include <TopExp.hxx>
-#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
-#include <TopTools_IndexedMapOfShape.hxx>
-#include <TopTools_IndexedMapOfShape.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TopTools_ListOfShape.hxx>
-#include <TopoDS.hxx>
-#include <TopoDS_Edge.hxx>
-#include <TopoDS_Shell.hxx>
-#include <TopoDS_Vertex.hxx>
-#include <gp_Pnt.hxx>
-
-#include <stdio.h>
-#include <algorithm>
-
-using namespace std;
-
-typedef map < int, int, less<int> >::iterator   \
-  StdMeshers_IteratorOfDataMapOfIntegerInteger;
-
-//=======================================================================
-//
-//           StdMeshers_Penta_3D 
-//
-//=======================================================================
-//function : StdMeshers_Penta_3D
-//purpose  : 
-//=======================================================================
-StdMeshers_Penta_3D::StdMeshers_Penta_3D()
-: myErrorStatus(1)
-{
-  myTol3D=0.1;
-  myWallNodesMaps.resize( SMESH_Block::NbFaces() );
-  myShapeXYZ.resize( SMESH_Block::NbSubShapes() );
-}
-//=======================================================================
-//function : Compute
-//purpose  : 
-//=======================================================================
-bool StdMeshers_Penta_3D::Compute(SMESH_Mesh& aMesh, 
-                                 const TopoDS_Shape& aShape)
-{
-  MESSAGE("StdMeshers_Penta_3D::Compute()");
-  //
-  myErrorStatus=0;
-  //
-  bool bOK=false;
-  //
-  myShape=aShape;
-  SetMesh(aMesh);
-  //
-  CheckData();
-  if (myErrorStatus){
-    return bOK;
-  }
-  //
-  MakeBlock();
-    if (myErrorStatus){
-    return bOK;
-  }
-  //
-  MakeNodes();
-  if (myErrorStatus){
-    return bOK;
-  }
-  //
-  MakeConnectingMap();
-  //
-  ClearMeshOnFxy1();
-  if (myErrorStatus) {
-    return bOK;
-  }
-  //
-  MakeMeshOnFxy1();
-  if (myErrorStatus) {
-    return bOK;
-  }
-  //
-  MakeVolumeMesh();
-  //
-  return !bOK;
-}
-//=======================================================================
-//function : MakeNodes
-//purpose  : 
-//=======================================================================
-void StdMeshers_Penta_3D::MakeNodes()
-{
-  myErrorStatus=0;
-  //
-  const int aNbSIDs=9;
-  int i, j, k, ij, iNbN, aNodeID, aSize, iErr;
-  double aX, aY, aZ;
-  SMESH_Block::TShapeID aSID, aSIDs[aNbSIDs]={
-    SMESH_Block::ID_V000, SMESH_Block::ID_V100, 
-    SMESH_Block::ID_V110, SMESH_Block::ID_V010,
-    SMESH_Block::ID_Ex00, SMESH_Block::ID_E1y0, 
-    SMESH_Block::ID_Ex10, SMESH_Block::ID_E0y0,
-    SMESH_Block::ID_Fxy0
-  }; 
-  //
-  SMESH_Mesh* pMesh=GetMesh();
-  //
-  // 1. Define the sizes of mesh
-  //
-  // 1.1 Horizontal size
-  myJSize=0;
-  for (i=0; i<aNbSIDs; ++i) {
-    const TopoDS_Shape& aS=myBlock.Shape(aSIDs[i]);
-    SMESH_subMesh *aSubMesh = pMesh->GetSubMeshContaining(aS);
-    ASSERT(aSubMesh);
-    SMESHDS_SubMesh *aSM=aSubMesh->GetSubMeshDS();
-    iNbN=aSM->NbNodes();
-    myJSize+=iNbN;
-  }
-  //printf("***  Horizontal: number of nodes summary=%d\n", myJSize);
-  //
-  // 1.2 Vertical size
-  myISize=2;
-  {
-    const TopoDS_Shape& aS=myBlock.Shape(SMESH_Block::ID_E00z);
-    SMESH_subMesh *aSubMesh = pMesh->GetSubMeshContaining(aS);
-    ASSERT(aSubMesh);
-    SMESHDS_SubMesh *aSM=aSubMesh->GetSubMeshDS();
-    iNbN=aSM->NbNodes();
-    myISize+=iNbN;
-  }
-  //printf("***  Vertical: number of nodes on edges and vertices=%d\n", myISize);
-  //
-  aSize=myISize*myJSize;
-  myTNodes.resize(aSize);
-  //
-  StdMeshers_TNode aTNode;
-  gp_XYZ aCoords;
-  gp_Pnt aP3D;
-  //
-  // 2. Fill the repers on base face (Z=0)
-  i=0; j=0;
-  // vertices
-  for (k=0; k<aNbSIDs; ++k) {
-    aSID=aSIDs[k];
-    const TopoDS_Shape& aS=myBlock.Shape(aSID);
-    SMDS_NodeIteratorPtr ite =pMesh->GetSubMeshContaining(aS)->GetSubMeshDS()->GetNodes();
-    while(ite->more()) {
-      const SMDS_MeshNode* aNode = ite->next();
-      aNodeID=aNode->GetID();
-      //
-      aTNode.SetNode(aNode);
-      aTNode.SetShapeSupportID(aSID);
-      aTNode.SetBaseNodeID(aNodeID);
-      //
-      if ( SMESH_Block::IsEdgeID (aSID))
-      {
-        const SMDS_EdgePosition* epos =
-          static_cast<const SMDS_EdgePosition*>(aNode->GetPosition().get());
-        myBlock.ComputeParameters( epos->GetUParameter(), aS, aCoords );
-      }
-      else {
-        aX=aNode->X();
-        aY=aNode->Y();
-        aZ=aNode->Z();
-        aP3D.SetCoord(aX, aY, aZ);
-        myBlock.ComputeParameters(aP3D, aS, aCoords);
-      }
-      iErr=myBlock.ErrorStatus();
-      if (iErr) {
-        MESSAGE("StdMeshers_Penta_3D::MakeNodes()," <<
-                "SMESHBlock: ComputeParameters operation failed");
-        myErrorStatus=101; // SMESHBlock: ComputeParameters operation failed
-        return;
-      }
-      aTNode.SetNormCoord(aCoords);
-      ij=i*myJSize+j;
-      myTNodes[ij]=aTNode;
-      ++j;
-    }
-  }
-  /*
-  //DEB
-  {
-    int iShapeSupportID, iBaseNodeID;
-    //
-    //printf("\n\n*** Base Face\n");
-    i=0;
-    for (j=0; j<myJSize; ++j) {
-      ij=i*myJSize+j;
-      const StdMeshers_TNode& aTNode=myTNodes[ij];
-      iShapeSupportID=aTNode.ShapeSupportID();
-      iBaseNodeID=aTNode.BaseNodeID();
-      const gp_XYZ& aXYZ=aTNode.NormCoord();
-      printf("*** j:%d bID#%d iSS:%d { %lf %lf %lf }\n",
-            j,  iBaseNodeID, iShapeSupportID, aXYZ.X(),  aXYZ.Y(), aXYZ.Z());
-    }
-  }
-  */
-  //DEB
-  //return; //zz
-  //
-  // 3. Finding of Z-layers
-//   vector<double> aZL(myISize);
-//   vector<double>::iterator aItZL1, aItZL2 ;
-//   //
-//   const TopoDS_Shape& aE00z=myBlock.Shape(SMESH_Block::ID_E00z);
-//   SMDS_NodeIteratorPtr aItaE00z =
-//     pMesh->GetSubMeshContaining(aE00z)->GetSubMeshDS()->GetNodes();
-//   //
-//   aZL[0]=0.;
-//   i=1;
-//   while (aItaE00z->more()) {
-//     const SMDS_MeshNode* aNode=aItaE00z->next();
-//     const SMDS_EdgePosition* epos =
-//       static_cast<const SMDS_EdgePosition*>(aNode->GetPosition().get());
-//     myBlock.ComputeParameters( epos->GetUParameter(), aE00z, aCoords );
-//     iErr=myBlock.ErrorStatus();
-//     if (iErr) {
-//       MESSAGE("StdMeshers_Penta_3D::MakeNodes()," <<
-//               "SMESHBlock: ComputeParameters operation failed");
-//       myErrorStatus=101; // SMESHBlock: ComputeParameters operation failed
-//       return;
-//     }
-//     aZL[i]=aCoords.Z();
-//     ++i;
-//   }
-//   aZL[i]=1.;
-//   //
-//   aItZL1=aZL.begin();
-//   aItZL2=aZL.end();
-//   //
-//   // Sorting the layers
-//   sort(aItZL1, aItZL2);
-  //DEB
-  /*
-  printf("** \n\n Layers begin\n");
-  for(i=0, aItZL=aItZL1; aItZL!=aItZL2; ++aItZL, ++i) {
-    printf(" #%d : %lf\n", i, *aItZL);
-  } 
-  printf("** Layers end\n");
-  */
-  //DEB
-  //
-  //
-
-  // 3.1 Fill maps of wall nodes
-  SMESH_Block::TShapeID wallFaceID[4] = {
-    SMESH_Block::ID_Fx0z, SMESH_Block::ID_Fx1z,
-    SMESH_Block::ID_F0yz, SMESH_Block::ID_F1yz
-    };
-  SMESH_Block::TShapeID baseEdgeID[4] = {
-    SMESH_Block::ID_Ex00, SMESH_Block::ID_Ex10,
-    SMESH_Block::ID_E0y0, SMESH_Block::ID_E1y0
-    };
-  for ( i = 0; i < 4; ++i ) {
-    int fIndex = SMESH_Block::ShapeIndex( wallFaceID[ i ]);
-    bool ok = LoadIJNodes (myWallNodesMaps[ fIndex ],
-                           TopoDS::Face( myBlock.Shape( wallFaceID[ i ] )),
-                           TopoDS::Edge( myBlock.Shape( baseEdgeID[ i ] )),
-                           pMesh->GetMeshDS());
-    if ( !ok ) {
-      myErrorStatus = i + 1;
-      MESSAGE(" Cant LoadIJNodes() from a wall face " << myErrorStatus );
-      return;
-    }
-  }
-
-  // 3.2 find node columns for vertical edges and edge IDs
-  vector<const SMDS_MeshNode*> * verticEdgeNodes[ 4 ];
-  SMESH_Block::TShapeID          verticEdgeID   [ 4 ];
-  for ( i = 0; i < 4; ++i ) { // 4 first base nodes are nodes on vertices
-    // edge ID
-    SMESH_Block::TShapeID eID, vID = aSIDs[ i ];
-    ShapeSupportID(false, vID, eID);
-    verticEdgeID[ i ] = eID;
-    // column nodes
-    StdMeshers_TNode& aTNode = myTNodes[ i ];
-    verticEdgeNodes[ i ] = 0;
-    for ( j = 0; j < 4; ++j ) { // loop on 4 wall faces
-      int fIndex = SMESH_Block::ShapeIndex( wallFaceID[ j ]);
-      StdMeshers_IJNodeMap & ijNodes= myWallNodesMaps[ fIndex ];
-      if ( ijNodes.begin()->second[0] == aTNode.Node() )
-        verticEdgeNodes[ i ] = & ijNodes.begin()->second;
-      else if ( ijNodes.rbegin()->second[0] == aTNode.Node() )
-        verticEdgeNodes[ i ] = & ijNodes.rbegin()->second;
-      if ( verticEdgeNodes[ i ] )
-        break;
-    }
-  }
-
-  // 3.3 set XYZ of vertices, and initialize of the rest
-  SMESHDS_Mesh* aMesh = GetMesh()->GetMeshDS();
-  for ( int id = SMESH_Block::ID_V000; id < SMESH_Block::ID_Shell; ++id )
-  {
-    if ( SMESH_Block::IsVertexID( id )) {
-      TopoDS_Shape V = myBlock.Shape( id );
-      SMESHDS_SubMesh* sm = aMesh->MeshElements( V );
-      const SMDS_MeshNode* n = sm->GetNodes()->next();
-      myShapeXYZ[ id ].SetCoord( n->X(), n->Y(), n->Z() );
-    }
-    else
-      myShapeXYZ[ id ].SetCoord( 0., 0., 0. );
-  }
-
-
-  // 4. Fill the rest repers
-  bool bIsUpperLayer;
-  int iBNID;
-  SMESH_Block::TShapeID aSSID, aBNSSID;
-  StdMeshers_TNode aTN;
-  //
-  for (j=0; j<myJSize; ++j)
-  {
-    // base node info
-    const StdMeshers_TNode& aBN=myTNodes[j];
-    aBNSSID=(SMESH_Block::TShapeID)aBN.ShapeSupportID();
-    iBNID=aBN.BaseNodeID();
-    const gp_XYZ& aBNXYZ=aBN.NormCoord();
-    bool createNode = ( aBNSSID == SMESH_Block::ID_Fxy0 );
-    //
-    // set XYZ on horizontal edges and get node columns of faces:
-    // 2 columns for each face, between which a base node is located
-    vector<const SMDS_MeshNode*>* nColumns[8];
-    double ratio[4]; // base node position between columns [0.-1.]
-    if ( createNode )
-      for ( k = 0; k < 4; ++k )
-        ratio[ k ] = SetHorizEdgeXYZ (aBNXYZ, wallFaceID[ k ],
-                                      nColumns[k*2], nColumns[k*2+1]);
-    //
-    // XYZ on the bottom and top faces
-    const SMDS_MeshNode* n = aBN.Node();
-    myShapeXYZ[ SMESH_Block::ID_Fxy0 ].SetCoord( n->X(), n->Y(), n->Z() );
-    myShapeXYZ[ SMESH_Block::ID_Fxy1 ].SetCoord( 0., 0., 0. );
-    //
-    // first create or find a top node, then the rest ones in a column
-    for (i=myISize-1; i>0; --i)
-    {
-      if ( createNode ) {
-        // set XYZ on vertical edges and faces
-        for ( k = 0; k < 4; ++k ) {
-          const SMDS_MeshNode* n = (*verticEdgeNodes[ k ]) [ i ];
-          myShapeXYZ[ verticEdgeID[ k ] ].SetCoord( n->X(), n->Y(), n->Z() );
-          //
-          n = (*nColumns[k*2]) [ i ];
-          gp_XYZ xyz( n->X(), n->Y(), n->Z() );
-          myShapeXYZ[ wallFaceID[ k ]] = ( 1. - ratio[ k ]) * xyz;
-          n = (*nColumns[k*2+1]) [ i ];
-          xyz.SetCoord( n->X(), n->Y(), n->Z() );
-          myShapeXYZ[ wallFaceID[ k ]] += ratio[ k ] * xyz;
-        }
-      }
-      // fill current node info
-      //   -index in aTNodes
-      ij=i*myJSize+j; 
-      //   -normalized coordinates  
-      aX=aBNXYZ.X();  
-      aY=aBNXYZ.Y();
-      //aZ=aZL[i];
-      aZ=(double)i/(double)(myISize-1);
-      aCoords.SetCoord(aX, aY, aZ);
-      //
-      //   suporting shape ID
-      bIsUpperLayer=(i==(myISize-1));
-      ShapeSupportID(bIsUpperLayer, aBNSSID, aSSID);
-      if (myErrorStatus) {
-        MESSAGE("StdMeshers_Penta_3D::MakeNodes() ");
-       return;
-      }
-      //
-      aTN.SetShapeSupportID(aSSID);
-      aTN.SetNormCoord(aCoords);
-      aTN.SetBaseNodeID(iBNID);
-      //
-      if (aSSID!=SMESH_Block::ID_NONE){
-       // try to find the node
-       const TopoDS_Shape& aS=myBlock.Shape((int)aSSID);
-       FindNodeOnShape(aS, aCoords, i, aTN);
-      }
-      else{
-       // create node and get it id
-       CreateNode (bIsUpperLayer, aCoords, aTN);
-        //
-        if ( bIsUpperLayer ) {
-          const SMDS_MeshNode* n = aTN.Node();
-          myShapeXYZ[ SMESH_Block::ID_Fxy1 ].SetCoord( n->X(), n->Y(), n->Z() );
-        }
-      }
-      if (myErrorStatus) {
-        MESSAGE("StdMeshers_Penta_3D::MakeNodes() ");
-       return;
-      }
-      //
-      myTNodes[ij]=aTN;
-    }
-  }
-  //DEB
-  /*
-  {
-    int iSSID, iBNID, aID;
-    //
-    for (i=0; i<myISize; ++i) {
-      printf(" Layer# %d\n", i);
-      for (j=0; j<myJSize; ++j) {
-       ij=i*myJSize+j; 
-       const StdMeshers_TNode& aTN=myTNodes[ij];
-       //const StdMeshers_TNode& aTN=aTNodes[ij];
-       const gp_XYZ& aXYZ=aTN.NormCoord();
-       iSSID=aTN.ShapeSupportID();
-       iBNID=aTN.BaseNodeID();
-       //
-       const SMDS_MeshNode* aNode=aTN.Node();
-       aID=aNode->GetID(); 
-       aX=aNode->X();
-       aY=aNode->Y();
-       aZ=aNode->Z();
-       printf("*** j:%d BNID#%d iSSID:%d ID:%d { %lf %lf %lf },  { %lf %lf %lf }\n",
-              j,  iBNID, iSSID, aID, aXYZ.X(),  aXYZ.Y(), aXYZ.Z(), aX, aY, aZ);
-      }
-    }
-  }
-  */
-  //DEB t
-}
-//=======================================================================
-//function : FindNodeOnShape
-//purpose  : 
-//=======================================================================
-void StdMeshers_Penta_3D::FindNodeOnShape(const TopoDS_Shape& aS,
-                                         const gp_XYZ&       aParams,
-                                          const int           z,
-                                         StdMeshers_TNode&   aTN)
-{
-  myErrorStatus=0;
-  //
-  double aX, aY, aZ, aD, aTol2, minD;
-  gp_Pnt aP1, aP2;
-  //
-  SMESH_Mesh* pMesh=GetMesh();
-  aTol2=myTol3D*myTol3D;
-  minD = 1.e100;
-  SMDS_MeshNode* pNode=NULL;
-  //
-  if ( aS.ShapeType() == TopAbs_FACE ||
-       aS.ShapeType() == TopAbs_EDGE )
-  {
-    // find a face ID to which aTN belongs to
-    int faceID;
-    if ( aS.ShapeType() == TopAbs_FACE )
-      faceID = myBlock.ShapeID( aS );
-    else { // edge maybe vertical or top horizontal
-      gp_XYZ aCoord = aParams;
-      if ( aCoord.Z() == 1. )
-        aCoord.SetZ( 0.5 ); // move from top down
-      else
-        aCoord.SetX( 0.5 ); // move along X
-      faceID = SMESH_Block::GetShapeIDByParams( aCoord );
-    }
-    ASSERT( SMESH_Block::IsFaceID( faceID ));
-    int fIndex = SMESH_Block::ShapeIndex( faceID );
-    StdMeshers_IJNodeMap & ijNodes= myWallNodesMaps[ fIndex ];
-    // look for a base node in ijNodes
-    const SMDS_MeshNode* baseNode = pMesh->GetMeshDS()->FindNode( aTN.BaseNodeID() );
-    StdMeshers_IJNodeMap::const_iterator par_nVec = ijNodes.begin();
-    for ( ; par_nVec != ijNodes.end(); par_nVec++ )
-      if ( par_nVec->second[ 0 ] == baseNode ) {
-        pNode=(SMDS_MeshNode*)par_nVec->second.at( z );
-        aTN.SetNode(pNode);
-        return;
-      }
-  }
-  //
-  myBlock.Point(aParams, aS, aP1);
-  //
-  SMDS_NodeIteratorPtr ite=
-    pMesh->GetSubMeshContaining(aS)->GetSubMeshDS()->GetNodes();
-  while(ite->more()) {
-    const SMDS_MeshNode* aNode = ite->next();
-    aX=aNode->X();
-    aY=aNode->Y();
-    aZ=aNode->Z();
-    aP2.SetCoord(aX, aY, aZ);
-    aD=(double)aP1.SquareDistance(aP2);
-    //printf("** D=%lf ", aD, aTol2);
-    if (aD < minD) {
-      pNode=(SMDS_MeshNode*)aNode;
-      aTN.SetNode(pNode);
-      minD = aD;
-      //printf(" Ok\n");
-      if (aD<aTol2)
-        return; 
-    }
-  }
-  //
-  //printf(" KO\n");
-  //aTN.SetNode(pNode);
-  //MESSAGE("StdMeshers_Penta_3D::FindNodeOnShape(), can not find the node");
-  //myErrorStatus=11; // can not find the node;
-}
-
-//=======================================================================
-//function : SetHorizEdgeXYZ
-//purpose  : 
-//=======================================================================
-
-double StdMeshers_Penta_3D::SetHorizEdgeXYZ(const gp_XYZ&                  aBaseNodeParams,
-                                            const int                      aFaceID,
-                                            vector<const SMDS_MeshNode*>*& aCol1,
-                                            vector<const SMDS_MeshNode*>*& aCol2)
-{
-  // find base and top edges of the face
-  vector< int > edgeVec; // 0-base, 1-top
-  SMESH_Block::GetFaceEdgesIDs( aFaceID, edgeVec );
-  //
-  int coord = SMESH_Block::GetCoordIndOnEdge( edgeVec[ 0 ] );
-  double param = aBaseNodeParams.Coord( coord );
-  if ( !myBlock.IsForwadEdge( edgeVec[ 0 ] ))
-    param = 1. - param;
-  //
-  // look for columns around param
-  StdMeshers_IJNodeMap & ijNodes =
-    myWallNodesMaps[ SMESH_Block::ShapeIndex( aFaceID )];
-  StdMeshers_IJNodeMap::iterator par_nVec_1 = ijNodes.begin();
-  while ( par_nVec_1->first < param )
-    par_nVec_1++;
-  StdMeshers_IJNodeMap::iterator par_nVec_2 = par_nVec_1;
-  //
-  double r = 0;
-  if ( par_nVec_1 != ijNodes.begin() ) {
-    par_nVec_1--;
-    r = ( param - par_nVec_1->first ) / ( par_nVec_2->first - par_nVec_1->first );
-  }
-  aCol1 = & par_nVec_1->second;
-  aCol2 = & par_nVec_2->second;
-
-  // base edge
-  const SMDS_MeshNode* n1 = aCol1->front();
-  const SMDS_MeshNode* n2 = aCol2->front();
-  gp_XYZ xyz1( n1->X(), n1->Y(), n1->Z() ), xyz2( n2->X(), n2->Y(), n2->Z() );
-  myShapeXYZ[ edgeVec[ 0 ] ] = ( 1. - r ) * xyz1 + r * xyz2;
-
-  // top edge
-  n1 = aCol1->back();
-  n2 = aCol2->back();
-  xyz1.SetCoord( n1->X(), n1->Y(), n1->Z() );
-  xyz2.SetCoord( n2->X(), n2->Y(), n2->Z() );
-  myShapeXYZ[ edgeVec[ 1 ] ] = ( 1. - r ) * xyz1 + r * xyz2;
-
-  return r;
-}
-
-//=======================================================================
-//function : MakeVolumeMesh
-//purpose  : 
-//=======================================================================
-void StdMeshers_Penta_3D::MakeVolumeMesh()
-{
-  myErrorStatus=0;
-  //
-  int i, j, ij, ik, i1, i2, aSSID; 
-  //
-  TopoDS_Shell aShell;
-  TopExp_Explorer aExp;
-  //
-  SMESH_Mesh*   pMesh =GetMesh();
-  SMESHDS_Mesh* meshDS=pMesh->GetMeshDS();
-  //
-  aExp.Init(myShape, TopAbs_SHELL);
-  for (; aExp.More(); aExp.Next()){
-    aShell=TopoDS::Shell(aExp.Current());
-    break;
-  }
-  //
-  // 1. Set Node In Volume
-  ik=myISize-1;
-  for (i=1; i<ik; ++i){
-    for (j=0; j<myJSize; ++j){
-      ij=i*myJSize+j;
-      const StdMeshers_TNode& aTN=myTNodes[ij];
-      aSSID=aTN.ShapeSupportID();
-      if (aSSID==SMESH_Block::ID_NONE) {
-       SMDS_MeshNode* aNode=(SMDS_MeshNode*)aTN.Node();
-       meshDS->SetNodeInVolume(aNode, aShell);
-      }
-    }
-  }
-  //
-  // 2. Make pentahedrons
-  int aID0, k , aJ[3];
-  vector<const SMDS_MeshNode*> aN;
-  //
-  SMDS_ElemIteratorPtr itf, aItNodes;
-  //
-  const TopoDS_Face& aFxy0=
-    TopoDS::Face(myBlock.Shape(SMESH_Block::ID_Fxy0));
-  SMESH_subMesh *aSubMesh0 = pMesh->GetSubMeshContaining(aFxy0);
-  SMESHDS_SubMesh *aSM0=aSubMesh0->GetSubMeshDS();
-  //
-  itf=aSM0->GetElements();
-  while(itf->more()) {
-    const SMDS_MeshElement* pE0=itf->next();
-    //
-    int nbFaceNodes = pE0->NbNodes();
-    if ( aN.size() < nbFaceNodes * 2 )
-      aN.resize( nbFaceNodes * 2 );
-    //
-    k=0;
-    aItNodes=pE0->nodesIterator();
-    while (aItNodes->more()) {
-      const SMDS_MeshElement* pNode=aItNodes->next();
-      aID0=pNode->GetID();
-      aJ[k]=GetIndexOnLayer(aID0);
-      if (myErrorStatus) {
-        MESSAGE("StdMeshers_Penta_3D::MakeVolumeMesh");
-       return;
-      }
-      //
-      ++k;
-    }
-    //
-    bool forward = true;
-    for (i=0; i<ik; ++i){
-      i1=i;
-      i2=i+1;
-      for(j=0; j<nbFaceNodes; ++j) {
-       ij=i1*myJSize+aJ[j];
-       const StdMeshers_TNode& aTN1=myTNodes[ij];
-       const SMDS_MeshNode* aN1=aTN1.Node();
-       aN[j]=aN1;
-       //
-       ij=i2*myJSize+aJ[j];
-       const StdMeshers_TNode& aTN2=myTNodes[ij];
-       const SMDS_MeshNode* aN2=aTN2.Node();
-       aN[j+nbFaceNodes]=aN2;
-      }
-      // check if volume orientation will be ok
-      if ( i == 0 ) {
-        SMDS_VolumeTool vTool;
-        switch ( nbFaceNodes ) {
-        case 3: {
-          SMDS_VolumeOfNodes tmpVol (aN[0], aN[1], aN[2],
-                                     aN[3], aN[4], aN[5]);
-          vTool.Set( &tmpVol );
-          break;
-        }
-        case 4: {
-          SMDS_VolumeOfNodes tmpVol(aN[0], aN[1], aN[2], aN[3],
-                                    aN[4], aN[5], aN[6], aN[7]);
-          vTool.Set( &tmpVol );
-          break;
-        }
-        default:
-          continue;
-        }
-        forward = vTool.IsForward();
-      }
-      // add volume
-      SMDS_MeshVolume* aV = 0;
-      switch ( nbFaceNodes ) {
-      case 3:
-        if ( forward )
-          aV = meshDS->AddVolume(aN[0], aN[1], aN[2],
-                                 aN[3], aN[4], aN[5]);
-        else
-          aV = meshDS->AddVolume(aN[0], aN[2], aN[1],
-                                 aN[3], aN[5], aN[4]);
-        break;
-      case 4:
-        if ( forward )
-          aV = meshDS->AddVolume(aN[0], aN[1], aN[2], aN[3],
-                                 aN[4], aN[5], aN[6], aN[7]);
-        else
-          aV = meshDS->AddVolume(aN[0], aN[3], aN[2], aN[1],
-                                 aN[4], aN[7], aN[6], aN[5]);
-        break;
-      default:
-        continue;
-      }
-      meshDS->SetMeshElementOnShape(aV, aShell);
-    }
-  }
-}
-
-//=======================================================================
-//function : MakeMeshOnFxy1
-//purpose  : 
-//=======================================================================
-void StdMeshers_Penta_3D::MakeMeshOnFxy1()
-{
-  myErrorStatus=0;
-  //
-  int aID0, aJ, aLevel, ij, aNbNodes, k;
-  //
-  SMDS_NodeIteratorPtr itn;
-  SMDS_ElemIteratorPtr itf, aItNodes;
-  SMDSAbs_ElementType aElementType;
-  //
-  const TopoDS_Face& aFxy0=
-    TopoDS::Face(myBlock.Shape(SMESH_Block::ID_Fxy0));
-  const TopoDS_Face& aFxy1=
-    TopoDS::Face(myBlock.Shape(SMESH_Block::ID_Fxy1));
-  //
-  SMESH_Mesh* pMesh=GetMesh();
-  SMESHDS_Mesh * meshDS = pMesh->GetMeshDS();
-  //
-  SMESH_subMesh *aSubMesh0 = pMesh->GetSubMeshContaining(aFxy0);
-  SMESHDS_SubMesh *aSM0=aSubMesh0->GetSubMeshDS();
-  //
-  // set nodes on aFxy1
-  aLevel=myISize-1;
-  itn=aSM0->GetNodes();
-  aNbNodes=aSM0->NbNodes();
-  //printf("** aNbNodes=%d\n", aNbNodes);
-  while(itn->more()) {
-    const SMDS_MeshNode* aN0=itn->next();
-    aID0=aN0->GetID();
-    aJ=GetIndexOnLayer(aID0);
-    if (myErrorStatus) {
-      MESSAGE("StdMeshers_Penta_3D::MakeMeshOnFxy1() ");
-      return;
-    }
-    //
-    ij=aLevel*myJSize+aJ;
-    const StdMeshers_TNode& aTN1=myTNodes[ij];
-    SMDS_MeshNode* aN1=(SMDS_MeshNode*)aTN1.Node();
-    //
-    meshDS->SetNodeOnFace(aN1, aFxy1);
-  }
-  //
-  // set elements on aFxy1
-  vector<const SMDS_MeshNode*> aNodes1;
-  //
-  itf=aSM0->GetElements();
-  while(itf->more()) {
-    const SMDS_MeshElement * pE0=itf->next();
-    aElementType=pE0->GetType();
-    if (!aElementType==SMDSAbs_Face) {
-      continue;
-    }
-    aNbNodes=pE0->NbNodes();
-//     if (aNbNodes!=3) {
-//       continue;
-//     }
-    if ( aNodes1.size() < aNbNodes )
-      aNodes1.resize( aNbNodes );
-    //
-    k=aNbNodes-1; // reverse a face
-    aItNodes=pE0->nodesIterator();
-    while (aItNodes->more()) {
-      const SMDS_MeshElement* pNode=aItNodes->next();
-      aID0=pNode->GetID();
-      aJ=GetIndexOnLayer(aID0);
-      if (myErrorStatus) {
-        MESSAGE("StdMeshers_Penta_3D::MakeMeshOnFxy1() ");
-       return;
-      }
-      //
-      ij=aLevel*myJSize+aJ;
-      const StdMeshers_TNode& aTN1=myTNodes[ij];
-      const SMDS_MeshNode* aN1=aTN1.Node();
-      aNodes1[k]=aN1;
-      --k;
-    }
-    SMDS_MeshFace * face = 0;
-    switch ( aNbNodes ) {
-    case 3:
-      face = meshDS->AddFace(aNodes1[0], aNodes1[1], aNodes1[2]);
-      break;
-    case 4:
-      face = meshDS->AddFace(aNodes1[0], aNodes1[1], aNodes1[2], aNodes1[3]);
-      break;
-    default:
-      continue;
-    }
-    meshDS->SetMeshElementOnShape(face, aFxy1);
-  }
-}
-//=======================================================================
-//function : ClearMeshOnFxy1
-//purpose  : 
-//=======================================================================
-void StdMeshers_Penta_3D::ClearMeshOnFxy1()
-{
-  myErrorStatus=0;
-  //
-  SMESH_subMesh* aSubMesh;
-  SMESH_Mesh* pMesh=GetMesh();
-  //
-  const TopoDS_Shape& aFxy1=myBlock.Shape(SMESH_Block::ID_Fxy1);
-  aSubMesh = pMesh->GetSubMeshContaining(aFxy1);
-  if (aSubMesh)
-    aSubMesh->ComputeStateEngine( SMESH_subMesh::CLEAN );
-}
-
-//=======================================================================
-//function : GetIndexOnLayer
-//purpose  : 
-//=======================================================================
-int StdMeshers_Penta_3D::GetIndexOnLayer(const int aID)
-{
-  myErrorStatus=0;
-  //
-  int j=-1;
-  StdMeshers_IteratorOfDataMapOfIntegerInteger aMapIt;
-  //
-  aMapIt=myConnectingMap.find(aID);
-  if (aMapIt==myConnectingMap.end()) {
-    myErrorStatus=200;
-    return j;
-  }
-  j=(*aMapIt).second;
-  return j;
-}
-//=======================================================================
-//function : MakeConnectingMap
-//purpose  : 
-//=======================================================================
-void StdMeshers_Penta_3D::MakeConnectingMap()
-{
-  int j, aBNID;
-  //
-  for (j=0; j<myJSize; ++j) {
-    const StdMeshers_TNode& aBN=myTNodes[j];
-    aBNID=aBN.BaseNodeID();
-    myConnectingMap[aBNID]=j;
-  }
-}
-//=======================================================================
-//function : CreateNode
-//purpose  : 
-//=======================================================================
-void StdMeshers_Penta_3D::CreateNode(const bool bIsUpperLayer,
-                                    const gp_XYZ& aParams,
-                                    StdMeshers_TNode& aTN)
-{
-  myErrorStatus=0;
-  //
-  int iErr;
-  double aX, aY, aZ;
-  //
-  gp_Pnt aP;
-  //
-  SMDS_MeshNode* pNode=NULL; 
-  aTN.SetNode(pNode);  
-  //
-//   if (bIsUpperLayer) {
-//     // point on face Fxy1
-//     const TopoDS_Shape& aS=myBlock.Shape(SMESH_Block::ID_Fxy1);
-//     myBlock.Point(aParams, aS, aP);
-//   }
-//   else {
-//     // point inside solid
-//     myBlock.Point(aParams, aP);
-//   }
-  if (bIsUpperLayer)
-  {
-    double u = aParams.X(), v = aParams.Y();
-    double u1 = ( 1. - u ), v1 = ( 1. - v );
-    aP.ChangeCoord()  = myShapeXYZ[ SMESH_Block::ID_Ex01 ] * v1;
-    aP.ChangeCoord() += myShapeXYZ[ SMESH_Block::ID_Ex11 ] * v;
-    aP.ChangeCoord() += myShapeXYZ[ SMESH_Block::ID_E0y1 ] * u1;
-    aP.ChangeCoord() += myShapeXYZ[ SMESH_Block::ID_E1y1 ] * u;
-
-    aP.ChangeCoord() -= myShapeXYZ[ SMESH_Block::ID_V001 ] * u1 * v1;
-    aP.ChangeCoord() -= myShapeXYZ[ SMESH_Block::ID_V101 ] * u  * v1;
-    aP.ChangeCoord() -= myShapeXYZ[ SMESH_Block::ID_V011 ] * u1 * v;
-    aP.ChangeCoord() -= myShapeXYZ[ SMESH_Block::ID_V111 ] * u  * v;
-  }
-  else
-  {
-    SMESH_Block::ShellPoint( aParams, myShapeXYZ, aP.ChangeCoord() );
-  }
-  //
-//   iErr=myBlock.ErrorStatus();
-//   if (iErr) {
-//     myErrorStatus=12; // can not find the node point;
-//     return;
-//   }
-  //
-  aX=aP.X(); aY=aP.Y(); aZ=aP.Z(); 
-  //
-  SMESH_Mesh* pMesh=GetMesh();
-  SMESHDS_Mesh* pMeshDS=pMesh->GetMeshDS();
-  //
-  pNode = pMeshDS->AddNode(aX, aY, aZ);
-  aTN.SetNode(pNode);
-}
-//=======================================================================
-//function : ShapeSupportID
-//purpose  : 
-//=======================================================================
-void StdMeshers_Penta_3D::ShapeSupportID(const bool bIsUpperLayer,
-                                        const SMESH_Block::TShapeID aBNSSID,
-                                        SMESH_Block::TShapeID& aSSID)
-{
-  myErrorStatus=0;
-  //
-  switch (aBNSSID) {
-    case SMESH_Block::ID_V000:
-      aSSID=(bIsUpperLayer) ?  SMESH_Block::ID_V001 : SMESH_Block::ID_E00z;
-      break;
-    case SMESH_Block::ID_V100:
-      aSSID=(bIsUpperLayer) ?  SMESH_Block::ID_V101 : SMESH_Block::ID_E10z;
-      break; 
-    case SMESH_Block::ID_V110:
-      aSSID=(bIsUpperLayer) ?  SMESH_Block::ID_V111 : SMESH_Block::ID_E11z;
-      break;
-    case SMESH_Block::ID_V010:
-      aSSID=(bIsUpperLayer) ?  SMESH_Block::ID_V011 : SMESH_Block::ID_E01z;
-      break;
-    case SMESH_Block::ID_Ex00:
-      aSSID=(bIsUpperLayer) ?  SMESH_Block::ID_Ex01 : SMESH_Block::ID_Fx0z;
-      break;
-    case SMESH_Block::ID_Ex10:
-      aSSID=(bIsUpperLayer) ?  SMESH_Block::ID_Ex11 : SMESH_Block::ID_Fx1z;
-      break; 
-    case SMESH_Block::ID_E0y0:
-      aSSID=(bIsUpperLayer) ?  SMESH_Block::ID_E0y1 : SMESH_Block::ID_F0yz;
-      break; 
-    case SMESH_Block::ID_E1y0:
-      aSSID=(bIsUpperLayer) ?  SMESH_Block::ID_E1y1 : SMESH_Block::ID_F1yz;
-      break; 
-    case SMESH_Block::ID_Fxy0:
-      aSSID=SMESH_Block::ID_NONE;//(bIsUpperLayer) ?  Shape_ID_Fxy1 : Shape_ID_NONE;
-      break;   
-    default:
-      aSSID=SMESH_Block::ID_NONE;
-      myErrorStatus=10; // Can not find supporting shape ID
-      break;
-  }
-  return;
-}
-//=======================================================================
-//function : MakeBlock
-//purpose  : 
-//=======================================================================
-void StdMeshers_Penta_3D::MakeBlock()
-{
-  myErrorStatus=0;
-  //
-  bool bFound;
-  int i, j, iNbEV, iNbE, iErr, iCnt, iNbNodes, iNbF;
-  //
-  TopoDS_Vertex aV000, aV001;
-  TopoDS_Shape aFTr;
-  TopTools_IndexedDataMapOfShapeListOfShape aMVES;
-  TopTools_IndexedMapOfShape aME ,aMEV, aM;
-  TopTools_ListIteratorOfListOfShape aIt;
-  //
-  TopExp::MapShapes(myShape, TopAbs_FACE, aM);
-  //
-  // 0. Find triangulated face aFTr
-  SMDSAbs_ElementType aElementType;
-  SMESH_Mesh* pMesh=GetMesh();
-  //
-  iCnt=0;
-  iNbF=aM.Extent();
-  for (i=1; i<=iNbF; ++i) {
-    const TopoDS_Shape& aF=aM(i);
-    SMESH_subMesh *aSubMesh = pMesh->GetSubMeshContaining(aF);
-    ASSERT(aSubMesh);
-    SMESHDS_SubMesh *aSM=aSubMesh->GetSubMeshDS();
-    SMDS_ElemIteratorPtr itf=aSM->GetElements();
-    while(itf->more()) {
-      const SMDS_MeshElement * pElement=itf->next();
-      aElementType=pElement->GetType();
-      if (aElementType==SMDSAbs_Face) {
-       iNbNodes=pElement->NbNodes();
-       if (iNbNodes==3) {
-         aFTr=aF;
-         ++iCnt;
-         if (iCnt>1) {
-            MESSAGE("StdMeshers_Penta_3D::MakeBlock() ");
-           myErrorStatus=5; // more than one face has triangulation
-           return;
-         }
-         break; // next face
-       }
-      }
-    }
-  }
-  // 
-  // 1. Vetrices V00, V001;
-  //
-  TopExp::MapShapes(aFTr, TopAbs_EDGE, aME);
-  TopExp::MapShapesAndAncestors(myShape, TopAbs_VERTEX, TopAbs_EDGE, aMVES);
-  //
-  // 1.1 Base vertex V000
-  iNbE=aME.Extent();
-  if (iNbE!=4){
-    MESSAGE("StdMeshers_Penta_3D::MakeBlock() ");
-    myErrorStatus=7; // too few edges are in base face aFTr 
-    return;
-  }
-  const TopoDS_Edge& aE1=TopoDS::Edge(aME(1));
-  aV000=TopExp::FirstVertex(aE1);
-  //
-  const TopTools_ListOfShape& aLE=aMVES.FindFromKey(aV000);
-  aIt.Initialize(aLE);
-  for (; aIt.More(); aIt.Next()) {
-    const TopoDS_Shape& aEx=aIt.Value();
-    aMEV.Add(aEx);
-  }
-  iNbEV=aMEV.Extent();
-  if (iNbEV!=3){
-    MESSAGE("StdMeshers_Penta_3D::MakeBlock() ");
-    myErrorStatus=7; // too few edges meet in base vertex 
-    return;
-  }
-  //
-  // 1.2 Vertex V001
-  bFound=false;
-  for (j=1; j<=iNbEV; ++j) {
-    const TopoDS_Shape& aEx=aMEV(j);
-    if (!aME.Contains(aEx)) {
-      TopoDS_Vertex aV[2];
-      //
-      const TopoDS_Edge& aE=TopoDS::Edge(aEx);
-      TopExp::Vertices(aE, aV[0], aV[1]);
-      for (i=0; i<2; ++i) {
-       if (!aV[i].IsSame(aV000)) {
-         aV001=aV[i];
-         bFound=!bFound;
-         break;
-       }
-      }
-    }
-  }
-  //
-  if (!bFound) {
-    MESSAGE("StdMeshers_Penta_3D::MakeBlock() ");
-    myErrorStatus=8; // can not find reper V001 
-    return;
-  }
-  //DEB
-  //gp_Pnt aP000, aP001;
-  //
-  //aP000=BRep_Tool::Pnt(TopoDS::Vertex(aV000));
-  //printf("*** aP000 { %lf, %lf, %lf }\n", aP000.X(), aP000.Y(), aP000.Z());
-  //aP001=BRep_Tool::Pnt(TopoDS::Vertex(aV001));
-  //printf("*** aP001 { %lf, %lf, %lf }\n", aP001.X(), aP001.Y(), aP001.Z());
-  //DEB
-  //
-  aME.Clear();
-  TopExp::MapShapes(myShape, TopAbs_SHELL, aME);
-  iNbE=aME.Extent();
-  if (iNbE!=1) {
-    MESSAGE("StdMeshers_Penta_3D::MakeBlock() ");
-    myErrorStatus=9; // number of shells in source shape !=1 
-    return;
-  }
-  //
-  // 2. Load Block
-  const TopoDS_Shell& aShell=TopoDS::Shell(aME(1));
-  myBlock.Load(aShell, aV000, aV001);
-  iErr=myBlock.ErrorStatus();
-  if (iErr) {
-    MESSAGE("StdMeshers_Penta_3D::MakeBlock() ");
-    myErrorStatus=100; // SMESHBlock: Load operation failed
-    return;
-  }
-}
-//=======================================================================
-//function : CheckData
-//purpose  : 
-//=======================================================================
-void StdMeshers_Penta_3D::CheckData()
-{
-  myErrorStatus=0;
-  //
-  int i, iNb;
-  int iNbEx[]={8, 12, 6};
-  //
-  TopAbs_ShapeEnum aST;
-  TopAbs_ShapeEnum aSTEx[]={
-    TopAbs_VERTEX, TopAbs_EDGE, TopAbs_FACE
-  }; 
-  TopTools_IndexedMapOfShape aM;
-  //
-  if (myShape.IsNull()){
-    MESSAGE("StdMeshers_Penta_3D::CheckData() ");
-    myErrorStatus=2; // null shape
-    return;
-  }
-  //
-  aST=myShape.ShapeType();
-  if (!(aST==TopAbs_SOLID || aST==TopAbs_SHELL)) {
-    MESSAGE("StdMeshers_Penta_3D::CheckData() ");
-    myErrorStatus=3; // not compatible type of shape
-    return;
-  }
-  //
-  for (i=0; i<3; ++i) {
-    aM.Clear();
-    TopExp::MapShapes(myShape, aSTEx[i], aM);
-    iNb=aM.Extent();
-    if (iNb!=iNbEx[i]){
-      MESSAGE("StdMeshers_Penta_3D::CheckData() ");
-      myErrorStatus=4; // number of subshape is not compatible
-      return;
-    }
-  }
-}
-
-//=======================================================================
-//function : LoadIJNodes
-//purpose  : Load nodes bound to theFace into column (vectors) and rows
-//           of theIJNodes.
-//           The value of theIJNodes map is a vector of ordered nodes so
-//           that the 0-the one lies on theBaseEdge.
-//           The key of theIJNodes map is a normalized parameter of each
-//           0-the node on theBaseEdge.
-//=======================================================================
-
-bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes,
-                                      const TopoDS_Face&     theFace,
-                                      const TopoDS_Edge&     theBaseEdge,
-                                      SMESHDS_Mesh*          theMesh)
-{
-  // get vertices of theBaseEdge
-  TopoDS_Vertex vfb, vlb, vft; // first and last, bottom and top vertices
-  TopoDS_Edge eFrw = TopoDS::Edge( theBaseEdge.Oriented( TopAbs_FORWARD ));
-  TopExp::Vertices( eFrw, vfb, vlb );
-
-  // find the other edges of theFace and orientation of e1
-  TopoDS_Edge e1, e2, eTop;
-  bool rev1, CumOri = false;
-  TopExp_Explorer exp( theFace, TopAbs_EDGE );
-  int nbEdges = 0;
-  for ( ; exp.More(); exp.Next() )
-  {
-    if ( ++nbEdges > 4 )
-      return false; // more than 4 edges in theFace
-    TopoDS_Edge e = TopoDS::Edge( exp.Current() );
-    if ( theBaseEdge.IsSame( e ))
-      continue;
-    TopoDS_Vertex vCommon;
-    if ( !TopExp::CommonVertex( theBaseEdge, e, vCommon ))
-      eTop = e;
-    else if ( vCommon.IsSame( vfb )) {
-      e1 = e;
-      vft = TopExp::LastVertex( e1, CumOri );
-      rev1 = vfb.IsSame( vft );
-      if ( rev1 )
-        vft = TopExp::FirstVertex( e1, CumOri );
-    }
-    else
-      e2 = e;
-  }
-  if ( nbEdges < 4 )
-    return false; // lass than 4 edges in theFace
-
-  // submeshes corresponding to shapes
-  SMESHDS_SubMesh* smFace = theMesh->MeshElements( theFace );
-  SMESHDS_SubMesh* smb = theMesh->MeshElements( theBaseEdge );
-  SMESHDS_SubMesh* smt = theMesh->MeshElements( eTop );
-  SMESHDS_SubMesh* sm1 = theMesh->MeshElements( e1 );
-  SMESHDS_SubMesh* sm2 = theMesh->MeshElements( e2 );
-  SMESHDS_SubMesh* smVfb = theMesh->MeshElements( vfb );
-  SMESHDS_SubMesh* smVlb = theMesh->MeshElements( vlb );
-  SMESHDS_SubMesh* smVft = theMesh->MeshElements( vft );
-  if (!smFace || !smb || !smt || !sm1 || !sm2 || !smVfb || !smVlb || !smVft ) {
-    MESSAGE( "NULL submesh " <<smFace<<" "<<smb<<" "<<smt<<" "<<
-            sm1<<" "<<sm2<<" "<<smVfb<<" "<<smVlb<<" "<<smVft);
-    return false;
-  }
-  if ( smb->NbNodes() != smt->NbNodes() || sm1->NbNodes() != sm2->NbNodes() ) {
-    MESSAGE(" Diff nb of nodes on opposite edges" );
-    return false;
-  }
-  if (smVfb->NbNodes() != 1 || smVlb->NbNodes() != 1 || smVft->NbNodes() != 1) {
-    MESSAGE("Empty submesh of vertex");
-    return false;
-  }
-  if ( sm1->NbNodes() * smb->NbNodes() != smFace->NbNodes() ) {
-    MESSAGE( "Wrong nb face nodes: " <<
-            sm1->NbNodes()<<" "<<smb->NbNodes()<<" "<<smFace->NbNodes());
-    return false;
-  }
-  // IJ size
-  int vsize = sm1->NbNodes() + 2;
-  int hsize = smb->NbNodes() + 2;
-
-  // load nodes from theBaseEdge
-
-  set<const SMDS_MeshNode*> loadedNodes;
-  const SMDS_MeshNode* nullNode = 0;
-
-  vector<const SMDS_MeshNode*> & nVecf = theIJNodes[ 0.];
-  nVecf.resize( vsize, nullNode );
-  loadedNodes.insert( nVecf[ 0 ] = smVfb->GetNodes()->next() );
-
-  vector<const SMDS_MeshNode*> & nVecl = theIJNodes[ 1.];
-  nVecl.resize( vsize, nullNode );
-  loadedNodes.insert( nVecl[ 0 ] = smVlb->GetNodes()->next() );
-
-  double f, l;
-  BRep_Tool::Range( eFrw, f, l );
-  double range = l - f;
-  SMDS_NodeIteratorPtr nIt = smb->GetNodes();
-  const SMDS_MeshNode* node;
-  while ( nIt->more() )
-  {
-    node = nIt->next();
-    const SMDS_EdgePosition* pos =
-      dynamic_cast<const SMDS_EdgePosition*>( node->GetPosition().get() );
-    if ( !pos ) return false;
-    double u = ( pos->GetUParameter() - f ) / range;
-    vector<const SMDS_MeshNode*> & nVec = theIJNodes[ u ];
-    nVec.resize( vsize, nullNode );
-    loadedNodes.insert( nVec[ 0 ] = node );
-  }
-  if ( theIJNodes.size() != hsize ) {
-    MESSAGE( "Wrong node positions on theBaseEdge" );
-    return false;
-  }
-
-  // load nodes from e1
-
-  map< double, const SMDS_MeshNode*> sortedNodes; // sort by param on edge
-  nIt = sm1->GetNodes();
-  while ( nIt->more() )
-  {
-    node = nIt->next();
-    const SMDS_EdgePosition* pos =
-      dynamic_cast<const SMDS_EdgePosition*>( node->GetPosition().get() );
-    if ( !pos ) return false;
-    sortedNodes.insert( make_pair( pos->GetUParameter(), node ));
-  }
-  loadedNodes.insert( nVecf[ vsize - 1 ] = smVft->GetNodes()->next() );
-  map< double, const SMDS_MeshNode*>::iterator u_n = sortedNodes.begin();
-  int row = rev1 ? vsize - 1 : 0;
-  for ( ; u_n != sortedNodes.end(); u_n++ )
-  {
-    if ( rev1 ) row--;
-    else        row++;
-    loadedNodes.insert( nVecf[ row ] = u_n->second );
-  }
-
-  // try to load the rest nodes
-
-  // get all faces from theFace
-  set<const SMDS_MeshElement*> allFaces, foundFaces;
-  SMDS_ElemIteratorPtr eIt = smFace->GetElements();
-  while ( eIt->more() ) {
-    const SMDS_MeshElement* e = eIt->next();
-    if ( e->GetType() == SMDSAbs_Face )
-      allFaces.insert( e );
-  }
-  // Starting from 2 neighbour nodes on theBaseEdge, look for a face
-  // the nodes belong to, and between the nodes of the found face,
-  // look for a not loaded node considering this node to be the next
-  // in a column of the starting second node. Repeat, starting
-  // from nodes next to the previous starting nodes in their columns,
-  // and so on while a face can be found. Then go the the next pair
-  // of nodes on theBaseEdge.
-  StdMeshers_IJNodeMap::iterator par_nVec_1 = theIJNodes.begin();
-  StdMeshers_IJNodeMap::iterator par_nVec_2 = par_nVec_1;
-  // loop on columns
-  int col = 0;
-  for ( par_nVec_2++; par_nVec_2 != theIJNodes.end(); par_nVec_1++, par_nVec_2++ )
-  {
-    col++;
-    row = 0;
-    const SMDS_MeshNode* n1 = par_nVec_1->second[ row ];
-    const SMDS_MeshNode* n2 = par_nVec_2->second[ row ];
-    const SMDS_MeshElement* face = 0;
-    do {
-      // look for a face by 2 nodes
-      face = SMESH_MeshEditor::FindFaceInSet( n1, n2, allFaces, foundFaces );
-      if ( face )
-      {
-        int nbFaceNodes = face->NbNodes();
-        if ( nbFaceNodes > 4 ) {
-          MESSAGE(" Too many nodes in a face: " << nbFaceNodes );
-          return false;
-        }
-        // look for a not loaded node of the <face>
-        bool found = false;
-        const SMDS_MeshNode* n3 = 0; // a node defferent from n1 and n2
-        eIt = face->nodesIterator() ;
-        while ( !found && eIt->more() ) {
-          node = static_cast<const SMDS_MeshNode*>( eIt->next() );
-          found = loadedNodes.insert( node ).second;
-          if ( !found && node != n1 && node != n2 )
-            n3 = node;
-        }
-        if ( found ) {
-          if ( ++row > vsize - 1 ) {
-            MESSAGE( "Too many nodes in column "<< col <<": "<< row+1);
-            return false;
-          }
-          par_nVec_2->second[ row ] = node;
-          foundFaces.insert( face );
-          n2 = node;
-          if ( nbFaceNodes == 4 )
-            n1 = par_nVec_1->second[ row ];
-        }
-        else if (nbFaceNodes == 3 &&
-                 n3 == par_nVec_1->second[ row ] )
-          n1 = n3;
-        else {
-          MESSAGE( "Not quad mesh, column "<< col );
-          return false;
-        }
-      }
-    } while ( face && n1 && n2 );
-
-    if ( row < vsize - 1 ) {
-      MESSAGE( "Too few nodes in column "<< col <<": "<< row+1);
-      MESSAGE( "Base node 1: "<< par_nVec_1->second[0]);
-      MESSAGE( "Base node 2: "<< par_nVec_2->second[0]);
-      MESSAGE( "Current node 1: "<< n1);
-      MESSAGE( "Current node 2: "<< n2);
-      MESSAGE( "first base node: "<< theIJNodes.begin()->second[0]);
-      MESSAGE( "last base node: "<< theIJNodes.rbegin()->second[0]);
-      return false;
-    }
-  } // loop on columns
-
-  return true;
-}
-
-//////////////////////////////////////////////////////////////////////////
-//
-//   StdMeshers_SMESHBlock
-//
-//////////////////////////////////////////////////////////////////////////
-
-//=======================================================================
-//function : StdMeshers_SMESHBlock
-//purpose  : 
-//=======================================================================
-StdMeshers_SMESHBlock::StdMeshers_SMESHBlock()
-{
-  myErrorStatus=1;
-  myIsEdgeForward.resize( SMESH_Block::NbEdges(), -1 );
-}
-
-//=======================================================================
-//function : IsForwadEdge
-//purpose  : 
-//=======================================================================
-
-bool StdMeshers_SMESHBlock::IsForwadEdge(const int theEdgeID)
-{
-  int index = myTBlock.ShapeIndex( theEdgeID );
-  if ( !myTBlock.IsEdgeID( theEdgeID ))
-    return false;
-
-  if ( myIsEdgeForward[ index ] < 0 )
-    myIsEdgeForward[ index ] =
-      myTBlock.IsForwardEdge( TopoDS::Edge( Shape( theEdgeID )), myShapeIDMap );
-
-  return myIsEdgeForward[ index ];
-}
-
-//=======================================================================
-//function : ErrorStatus
-//purpose  : 
-//=======================================================================
-int StdMeshers_SMESHBlock::ErrorStatus() const
-{
-  return myErrorStatus;
-}
-//=======================================================================
-//function : Load
-//purpose  : 
-//=======================================================================
-void StdMeshers_SMESHBlock::Load(const TopoDS_Shell& theShell)
-{
-  
-  TopoDS_Vertex aV000, aV001;
-  //
-  Load(theShell, aV000, aV001);
-}
-//=======================================================================
-//function : Load
-//purpose  : 
-//=======================================================================
-void StdMeshers_SMESHBlock::Load(const TopoDS_Shell& theShell,
-                                const TopoDS_Vertex& theV000,
-                                const TopoDS_Vertex& theV001)
-{
-  myErrorStatus=0;
-  //
-  myShell=theShell;
-  //
-  bool bOk;
-  //
-  myShapeIDMap.Clear();  
-  bOk=myTBlock.LoadBlockShapes(myShell, theV000, theV001, myShapeIDMap);
-  if (!bOk) {
-    myErrorStatus=2;
-    return;
-  }
-}
-//=======================================================================
-//function : ComputeParameters
-//purpose  : 
-//=======================================================================
-void StdMeshers_SMESHBlock::ComputeParameters(const gp_Pnt& thePnt, 
-                                             gp_XYZ& theXYZ)
-{
-  ComputeParameters(thePnt, myShell, theXYZ);
-}
-//=======================================================================
-//function : ComputeParameters
-//purpose  : 
-//=======================================================================
-void StdMeshers_SMESHBlock::ComputeParameters(const gp_Pnt& thePnt,
-                                             const TopoDS_Shape& theShape,
-                                             gp_XYZ& theXYZ)
-{
-  myErrorStatus=0;
-  //
-  int aID;
-  bool bOk;
-  //
-  aID=ShapeID(theShape);
-  if (myErrorStatus) {
-    return;
-  }
-  bOk=myTBlock.ComputeParameters(thePnt, theXYZ, aID);
-  if (!bOk) {
-    myErrorStatus=4; // problems with computation Parameters 
-    return;
-  }
-}
-
-//=======================================================================
-//function : ComputeParameters
-//purpose  : 
-//=======================================================================
-
-void StdMeshers_SMESHBlock::ComputeParameters(const double& theU,
-                                              const TopoDS_Shape& theShape,
-                                              gp_XYZ& theXYZ)
-{
-  myErrorStatus=0;
-  //
-  int aID;
-  bool bOk=false;
-  //
-  aID=ShapeID(theShape);
-  if (myErrorStatus) {
-    return;
-  }
-  if ( SMESH_Block::IsEdgeID( aID ))
-      bOk=myTBlock.EdgeParameters( aID, theU, theXYZ );
-  if (!bOk) {
-    myErrorStatus=4; // problems with computation Parameters 
-    return;
-  }
-}
-
-//=======================================================================
-//function : Point
-//purpose  : 
-//=======================================================================
- void StdMeshers_SMESHBlock::Point(const gp_XYZ& theParams,
-                                  gp_Pnt& aP3D)
-{
-  TopoDS_Shape aS;
-  //
-  Point(theParams, aS, aP3D);
-}
-//=======================================================================
-//function : Point
-//purpose  : 
-//=======================================================================
- void StdMeshers_SMESHBlock::Point(const gp_XYZ& theParams,
-                                  const TopoDS_Shape& theShape,
-                                  gp_Pnt& aP3D)
-{
-  myErrorStatus=0;
-  //
-  int aID;
-  bool bOk=false;
-  gp_XYZ aXYZ(99.,99.,99.);
-  aP3D.SetXYZ(aXYZ);
-  //
-  if (theShape.IsNull()) {
-    bOk=myTBlock.ShellPoint(theParams, aXYZ);
-  }
-  //
-  else {
-    aID=ShapeID(theShape);
-    if (myErrorStatus) {
-      return;
-    }
-    //
-    if (SMESH_Block::IsVertexID(aID)) {
-      bOk=myTBlock.VertexPoint(aID, aXYZ);
-    }
-    else if (SMESH_Block::IsEdgeID(aID)) {
-      bOk=myTBlock.EdgePoint(aID, theParams, aXYZ);
-    }
-    //
-    else if (SMESH_Block::IsFaceID(aID)) {
-      bOk=myTBlock.FacePoint(aID, theParams, aXYZ);
-    }
-  }
-  if (!bOk) {
-    myErrorStatus=4; // problems with point computation 
-    return;
-  }
-  aP3D.SetXYZ(aXYZ);
-}
-//=======================================================================
-//function : ShapeID
-//purpose  : 
-//=======================================================================
-int StdMeshers_SMESHBlock::ShapeID(const TopoDS_Shape& theShape)
-{
-  myErrorStatus=0;
-  //
-  int aID=-1;
-  TopoDS_Shape aSF, aSR;
-  //
-  aSF=theShape;
-  aSF.Orientation(TopAbs_FORWARD);
-  aSR=theShape;
-  aSR.Orientation(TopAbs_REVERSED);
-  //
-  if (myShapeIDMap.Contains(aSF)) {
-    aID=myShapeIDMap.FindIndex(aSF);
-    return aID;
-  }
-  if (myShapeIDMap.Contains(aSR)) {
-    aID=myShapeIDMap.FindIndex(aSR);
-    return aID;
-  }
-  myErrorStatus=2; // unknown shape;
-  return aID;
-}
-//=======================================================================
-//function : Shape
-//purpose  : 
-//=======================================================================
-const TopoDS_Shape& StdMeshers_SMESHBlock::Shape(const int theID)
-{
-  myErrorStatus=0;
-  //
-  int aNb;
-  //
-  aNb=myShapeIDMap.Extent();
-  if (theID<1 || theID>aNb) {
-    myErrorStatus=3; // ID is out of range
-    return myEmptyShape;
-  }
-  //
-  const TopoDS_Shape& aS=myShapeIDMap.FindKey(theID);
-  return aS;
-}
diff --git a/src/StdMeshers/StdMeshers_Penta_3D.hxx b/src/StdMeshers/StdMeshers_Penta_3D.hxx
deleted file mode 100644 (file)
index dc8ba72..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-//  SMESH StdMeshers : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Penta_3D.hxx
-//  Module : SMESH
-
-#ifndef StdMeshers_Penta_3D_HeaderFile
-#define StdMeshers_Penta_3D_HeaderFile
-
-#include <map>
-
-////////////////////////////////////////////////////////////////////////
-//
-//  class StdMeshers_SMESHBlock
-//
-////////////////////////////////////////////////////////////////////////
-#include <gp_Pnt.hxx>
-#include <gp_XYZ.hxx>
-#include <TopoDS_Vertex.hxx>
-#include <TopoDS_Shell.hxx>
-#include <TopTools_IndexedMapOfOrientedShape.hxx>
-
-#include "SMESH_Block.hxx"
-
-typedef std::map< double, std::vector<const SMDS_MeshNode*> > StdMeshers_IJNodeMap;
-
-class StdMeshers_SMESHBlock {
-public:
-  //
-  StdMeshers_SMESHBlock();
-  
-  void Load (const TopoDS_Shell& theShell);
-  
-  void Load (const TopoDS_Shell& theShell,
-            const TopoDS_Vertex& theV000,
-            const TopoDS_Vertex& theV001);
-  
-  void ComputeParameters(const gp_Pnt& thePnt, 
-                        gp_XYZ& theXYZ);
-  
-  void ComputeParameters(const gp_Pnt& thePnt,
-                        const TopoDS_Shape& theShape,
-                        gp_XYZ& theXYZ);
-  
-  void ComputeParameters(const double& theU,
-                        const TopoDS_Shape& theShape,
-                        gp_XYZ& theXYZ);
-  
-  void Point(const gp_XYZ& theParams, 
-            gp_Pnt& thePnt);
-  
-  void Point(const gp_XYZ& theParams,
-            const TopoDS_Shape& theShape, 
-            gp_Pnt& thePnt);
-  
-  int ShapeID(const TopoDS_Shape& theShape); 
-  
-  const TopoDS_Shape& Shape(const int theID);
-
-  SMESH_Block & Block() { return myTBlock; }
-
-  bool IsForwadEdge(const int theEdgeID);
-
-  int  ErrorStatus() const;
-
-
-protected:
-  TopoDS_Shell                       myShell;
-  TopTools_IndexedMapOfOrientedShape myShapeIDMap;
-  SMESH_Block                        myTBlock;
-  TopoDS_Shape                       myEmptyShape;
-  vector<int>                        myIsEdgeForward;
-  //
-  int myErrorStatus;
-};
-
-////////////////////////////////////////////////////////////////////////
-//
-//  class StdMeshers_TNode
-//
-////////////////////////////////////////////////////////////////////////
-#include "SMDS_MeshNode.hxx"
-
-class StdMeshers_TNode {
-
-public:
-  
-  StdMeshers_TNode(){
-    myNode=NULL;
-    myXYZ.SetCoord(99., 99., 99.);
-    myShapeSupportID=-1;
-    myBaseNodeID=-1;
-  }
-  
-  void SetNode(const SMDS_MeshNode* theNode) {
-    myNode=(SMDS_MeshNode*) theNode;
-  }
-  
-  const SMDS_MeshNode* Node()const {
-    return myNode;
-  }
-
-  void SetShapeSupportID (const int theID) {
-    myShapeSupportID=theID;
-  }
-  
-  int ShapeSupportID()const {
-    return myShapeSupportID;
-  }
-  
-  void SetNormCoord (const gp_XYZ& theXYZ) {
-    myXYZ=theXYZ;
-  }
-
-  const gp_XYZ& NormCoord ()const{
-    return myXYZ;
-  }
-  
-  void SetBaseNodeID (const int theID) {
-    myBaseNodeID=theID;
-  }
-  
-  int BaseNodeID ()const{
-    return myBaseNodeID;
-  }
-
-private:
-  SMDS_MeshNode* myNode;
-  int  myShapeSupportID;
-  gp_XYZ         myXYZ;
-  int            myBaseNodeID;
-};
-
-////////////////////////////////////////////////////////////////////////
-//
-//  class StdMeshers_Penta_3D
-//
-////////////////////////////////////////////////////////////////////////
-#include "SMESH_Mesh.hxx"
-#include <TopoDS_Shape.hxx>
-//
-class StdMeshers_Penta_3D {
-//
-  public: // methods
-    StdMeshers_Penta_3D();
-    
-    //~StdMeshers_Penta_3D();
-    
-    bool Compute(SMESH_Mesh& , const TopoDS_Shape& );
-    
-    int ErrorStatus() const {
-      return myErrorStatus;
-    }
-   
-    void SetTolerance(const double theTol3D) {
-      myTol3D=theTol3D;
-    }
-    
-    double Tolerance() const {
-      return myTol3D;
-    }
-
-    static bool LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes,
-                            const TopoDS_Face&     theFace,
-                            const TopoDS_Edge&     theBaseEdge,
-                            SMESHDS_Mesh*          theMesh);
-    // Load nodes bound to theFace into column (vectors) and rows
-    // of theIJNodes.
-    // The value of theIJNodes map is a vector of ordered nodes so
-    // that the 0-the one lies on theBaseEdge.
-    // The key of theIJNodes map is a normalized parameter of each
-    // 0-the node on theBaseEdge.
-
-
-  protected: // methods
-    
-    void CheckData();
-    
-    void MakeBlock();
-
-    void MakeNodes();
-
-    double SetHorizEdgeXYZ(const gp_XYZ&                  aBNXYZ,
-                           const int                      aFaceID,
-                           vector<const SMDS_MeshNode*>*& aCol1,
-                           vector<const SMDS_MeshNode*>*& aCol2);
-
-    void ShapeSupportID(const bool theIsUpperLayer,
-                       const SMESH_Block::TShapeID theBNSSID,
-                       SMESH_Block::TShapeID& theSSID);
-
-    void FindNodeOnShape(const TopoDS_Shape& aS,
-                        const gp_XYZ& aParams,
-                         const int z,
-                        StdMeshers_TNode& aTN);
-
-    void CreateNode(const bool theIsUpperLayer,
-                   const gp_XYZ& aParams,
-                   StdMeshers_TNode& aTN);
-
-    void ClearMeshOnFxy1();
-
-    void MakeMeshOnFxy1();
-
-    void MakeConnectingMap();
-
-    int GetIndexOnLayer(const int aID);
-
-    void MakeVolumeMesh();
-  
-    void SetMesh(SMESH_Mesh& theMesh) {
-      myMesh=(void *)&theMesh;
-    }
-    
-    SMESH_Mesh* GetMesh()const {
-      return (SMESH_Mesh*)myMesh;
-    }
-    
-  protected: // fields
-    TopoDS_Shape              myShape;
-    StdMeshers_SMESHBlock     myBlock;
-    void *                    myMesh;
-    int                       myErrorStatus;
-    //
-    vector <StdMeshers_TNode> myTNodes;
-    int                       myISize;
-    int                       myJSize;
-    double                    myTol3D;        // Tolerance value     
-    std::map < int, int >     myConnectingMap;
-    //
-    vector<StdMeshers_IJNodeMap> myWallNodesMaps; // nodes on a face
-    vector<gp_XYZ>            myShapeXYZ; // point on each sub-shape
-};
-
-#endif
diff --git a/src/StdMeshers/StdMeshers_Propagation.cxx b/src/StdMeshers/StdMeshers_Propagation.cxx
deleted file mode 100644 (file)
index f314b4c..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  CEA
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : StdMeshers_Propagation.cxx
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_Propagation.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-StdMeshers_Propagation::StdMeshers_Propagation (int hypId, int studyId,
-                                                SMESH_Gen * gen)
-     : SMESH_Hypothesis(hypId, studyId, gen)
-{
-  _name = GetName();
-  _param_algo_dim = -2;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-StdMeshers_Propagation::~StdMeshers_Propagation()
-{
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-ostream & StdMeshers_Propagation::SaveTo (ostream & save)
-{
-  return save;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-istream & StdMeshers_Propagation::LoadFrom (istream & load)
-{
-  return load;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-ostream & operator << (ostream & save, StdMeshers_Propagation & hyp)
-{
-  return hyp.SaveTo(save);
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-istream & operator >> (istream & load, StdMeshers_Propagation & hyp)
-{
-  return hyp.LoadFrom(load);
-}
-
-//=============================================================================
-/*!
- *  GetName
- */
-//=============================================================================
-std::string StdMeshers_Propagation::GetName ()
-{
-  return "Propagation";
-}
diff --git a/src/StdMeshers/StdMeshers_Propagation.hxx b/src/StdMeshers/StdMeshers_Propagation.hxx
deleted file mode 100644 (file)
index 4ee7c56..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  CEA
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : StdMeshers_Propagation.hxx
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_PROPAGATION_HXX_
-#define _SMESH_PROPAGATION_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-class StdMeshers_Propagation:public SMESH_Hypothesis
-{
- public:
-  StdMeshers_Propagation(int hypId, int studyId, SMESH_Gen * gen);
-  virtual ~ StdMeshers_Propagation();
-
-  virtual ostream & SaveTo(ostream & save);
-  virtual istream & LoadFrom(istream & load);
-  friend ostream & operator <<(ostream & save, StdMeshers_Propagation & hyp);
-  friend istream & operator >>(istream & load, StdMeshers_Propagation & hyp);
-
-  static std::string GetName ();
-};
-
-#endif
diff --git a/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx b/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx
deleted file mode 100644 (file)
index da6b6a2..0000000
+++ /dev/null
@@ -1,1117 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Quadrangle_2D.cxx
-//           Moved here from SMESH_Quadrangle_2D.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_Quadrangle_2D.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_Mesh.hxx"
-#include "SMESH_subMesh.hxx"
-
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_EdgePosition.hxx"
-#include "SMDS_FacePosition.hxx"
-
-#include <BRep_Tool.hxx>
-#include <BRepTools.hxx>
-#include <BRepTools_WireExplorer.hxx>
-
-#include <Geom_Surface.hxx>
-#include <Geom_Curve.hxx>
-#include <Geom2d_Curve.hxx>
-#include <GeomAdaptor_Curve.hxx>
-#include <GCPnts_UniformAbscissa.hxx>
-
-#include <Precision.hxx>
-#include <gp_Pnt2d.hxx>
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
-
-#include "utilities.h"
-#include "Utils_ExceptHandlers.hxx"
-
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_Quadrangle_2D::StdMeshers_Quadrangle_2D (int hypId, int studyId, SMESH_Gen* gen)
-     : SMESH_2D_Algo(hypId, studyId, gen)
-{
-  MESSAGE("StdMeshers_Quadrangle_2D::StdMeshers_Quadrangle_2D");
-  _name = "Quadrangle_2D";
-  //  _shapeType = TopAbs_FACE;
-  _shapeType = (1 << TopAbs_FACE);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_Quadrangle_2D::~StdMeshers_Quadrangle_2D()
-{
-  MESSAGE("StdMeshers_Quadrangle_2D::~StdMeshers_Quadrangle_2D");
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool StdMeshers_Quadrangle_2D::CheckHypothesis
-                         (SMESH_Mesh& aMesh,
-                          const TopoDS_Shape& aShape,
-                          SMESH_Hypothesis::Hypothesis_Status& aStatus)
-{
-  //MESSAGE("StdMeshers_Quadrangle_2D::CheckHypothesis");
-
-  bool isOk = true;
-  aStatus = SMESH_Hypothesis::HYP_OK;
-
-  // nothing to check
-
-  return isOk;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
-                                        const TopoDS_Shape& aShape) throw (SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  //MESSAGE("StdMeshers_Quadrangle_2D::Compute");
-  SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
-  aMesh.GetSubMesh(aShape);
-
-  FaceQuadStruct *quad = CheckAnd2Dcompute(aMesh, aShape);
-  if (!quad)
-    return false;
-
-  // --- compute 3D values on points, store points & quadrangles
-
-  int nbdown  = quad->nbPts[0];
-  int nbup    = quad->nbPts[2];
-//  bool isDownOut = (nbdown > nbup);
-//  bool isUpOut   = (nbdown < nbup);
-
-  int nbright = quad->nbPts[1];
-  int nbleft  = quad->nbPts[3];
-//  bool isRightOut = (nbright > nbleft);
-//  bool isLeftOut  = (nbright < nbleft);
-
-  int nbhoriz  = Min(nbdown, nbup);
-  int nbvertic = Min(nbright, nbleft);
-
-  int nbVertices = nbhoriz * nbvertic;
-  int nbQuad = (nbhoriz - 1) * (nbvertic - 1);
-  //SCRUTE(nbVertices);
-  //SCRUTE(nbQuad);
-
-  //   const TopoDS_Face& FF = TopoDS::Face(aShape);
-  //   bool faceIsForward = (FF.Orientation() == TopAbs_FORWARD);
-  //   TopoDS_Face F = TopoDS::Face(FF.Oriented(TopAbs_FORWARD));
-  const TopoDS_Face& F = TopoDS::Face(aShape);
-  bool faceIsForward = (F.Orientation() == TopAbs_FORWARD);
-  Handle(Geom_Surface) S = BRep_Tool::Surface(F);
-
-  // internal mesh nodes
-  int i, j;
-  for (i = 1; i < nbhoriz - 1; i++) {
-    for (j = 1; j < nbvertic - 1; j++) {
-      int ij = j * nbhoriz + i;
-      double u = quad->uv_grid[ij].u;
-      double v = quad->uv_grid[ij].v;
-      gp_Pnt P = S->Value(u, v);
-      SMDS_MeshNode * node = meshDS->AddNode(P.X(), P.Y(), P.Z());
-      meshDS->SetNodeOnFace(node, F);
-      quad->uv_grid[ij].node = node;
-      SMDS_FacePosition* fpos =
-        dynamic_cast<SMDS_FacePosition*>(node->GetPosition().get());
-      fpos->SetUParameter(u);
-      fpos->SetVParameter(v);
-    }
-  }
-
-  // mesh faces
-
-  //             [2]
-  //      --.--.--.--.--.--  nbvertic
-  //     |                 | ^
-  //     |                 | ^
-  // [3] |                 | ^ j  [1]
-  //     |                 | ^
-  //     |                 | ^
-  //      ---.----.----.---  0
-  //     0 > > > > > > > > nbhoriz
-  //              i
-  //             [0]
-
-  i = 0;
-  int ilow = 0;
-  int iup = nbhoriz - 1;
-  if (quad->isEdgeOut[3]) { ilow++; } else { if (quad->isEdgeOut[1]) iup--; }
-
-  int jlow = 0;
-  int jup = nbvertic - 1;
-  if (quad->isEdgeOut[0]) { jlow++; } else { if (quad->isEdgeOut[2]) jup--; }
-
-  // regular quadrangles
-  //   bool isQuadForward = ( faceIsForward == quad->isEdgeForward[0]);
-  for (i = ilow; i < iup; i++) {
-    for (j = jlow; j < jup; j++) {
-      const SMDS_MeshNode *a, *b, *c, *d;
-      a = quad->uv_grid[j * nbhoriz + i].node;
-      b = quad->uv_grid[j * nbhoriz + i + 1].node;
-      c = quad->uv_grid[(j + 1) * nbhoriz + i + 1].node;
-      d = quad->uv_grid[(j + 1) * nbhoriz + i].node;
-      //  if (isQuadForward) faceId = meshDS->AddFace(a,b,c,d);
-      //  else faceId = meshDS->AddFace(a,d,c,b);
-      SMDS_MeshFace * face = meshDS->AddFace(a, b, c, d);
-      meshDS->SetMeshElementOnShape(face, F);
-    }
-  }
-
-  UVPtStruct *uv_e0 = quad->uv_edges[0];
-  UVPtStruct *uv_e1 = quad->uv_edges[1];
-  UVPtStruct *uv_e2 = quad->uv_edges[2];
-  UVPtStruct *uv_e3 = quad->uv_edges[3];
-
-  double eps = Precision::Confusion();
-
-  // Boundary quadrangles
-
-  if (quad->isEdgeOut[0]) {
-    // Down edge is out
-    // 
-    // |___|___|___|___|___|___|
-    // |   |   |   |   |   |   |
-    // |___|___|___|___|___|___|
-    // |   |   |   |   |   |   |
-    // |___|___|___|___|___|___| __ first row of the regular grid
-    // .  .  .  .  .  .  .  .  . __ down edge nodes
-    // 
-    // >->->->->->->->->->->->-> -- direction of processing
-
-    int g = 0; // number of last processed node in the regular grid
-
-    // number of last node of the down edge to be processed
-    int stop = nbdown - 1;
-    // if right edge is out, we will stop at a node, previous to the last one
-    if (quad->isEdgeOut[1]) stop--;
-
-    // for each node of the down edge find nearest node
-    // in the first row of the regular grid and link them
-    for (i = 0; i < stop; i++) {
-      const SMDS_MeshNode *a, *b, *c, *d;
-      a = uv_e0[i].node;
-      b = uv_e0[i + 1].node;
-      gp_Pnt pb (b->X(), b->Y(), b->Z());
-
-      // find node c in the regular grid, which will be linked with node b
-      int near = g;
-      if (i == stop - 1) {
-        // right bound reached, link with the rightmost node
-        near = iup;
-        c = quad->uv_grid[nbhoriz + iup].node;
-      } else {
-        // find in the grid node c, nearest to the b
-        double mind = RealLast();
-        for (int k = g; k <= iup; k++) {
-
-          const SMDS_MeshNode *nk;
-          if (k < ilow) // this can be, if left edge is out
-            nk = uv_e3[1].node; // get node from the left edge
-          else
-            nk = quad->uv_grid[nbhoriz + k].node; // get one of middle nodes
-
-          gp_Pnt pnk (nk->X(), nk->Y(), nk->Z());
-          double dist = pb.Distance(pnk);
-          if (dist < mind - eps) {
-            c = nk;
-            near = k;
-            mind = dist;
-          } else {
-            break;
-          }
-        }
-      }
-
-      if (near == g) { // make triangle
-        SMDS_MeshFace* face = meshDS->AddFace(a, b, c);
-        meshDS->SetMeshElementOnShape(face, F);
-      } else { // make quadrangle
-        if (near - 1 < ilow)
-          d = uv_e3[1].node;
-        else
-          d = quad->uv_grid[nbhoriz + near - 1].node;
-        SMDS_MeshFace* face = meshDS->AddFace(a, b, c, d);
-        meshDS->SetMeshElementOnShape(face, F);
-
-        // if node d is not at position g - make additional triangles
-        if (near - 1 > g) {
-          for (int k = near - 1; k > g; k--) {
-            c = quad->uv_grid[nbhoriz + k].node;
-            if (k - 1 < ilow)
-              d = uv_e3[1].node;
-            else
-              d = quad->uv_grid[nbhoriz + k - 1].node;
-            SMDS_MeshFace* face = meshDS->AddFace(a, c, d);
-            meshDS->SetMeshElementOnShape(face, F);
-          }
-        }
-        g = near;
-      }
-    }
-  } else {
-    if (quad->isEdgeOut[2]) {
-      // Up edge is out
-      // 
-      // <-<-<-<-<-<-<-<-<-<-<-<-< -- direction of processing
-      // 
-      // .  .  .  .  .  .  .  .  . __ up edge nodes
-      //  ___ ___ ___ ___ ___ ___  __ first row of the regular grid
-      // |   |   |   |   |   |   |
-      // |___|___|___|___|___|___|
-      // |   |   |   |   |   |   |
-      // |___|___|___|___|___|___|
-      // |   |   |   |   |   |   |
-
-      int g = nbhoriz - 1; // last processed node in the regular grid
-
-      int stop = 0;
-      // if left edge is out, we will stop at a second node
-      if (quad->isEdgeOut[3]) stop++;
-
-      // for each node of the up edge find nearest node
-      // in the first row of the regular grid and link them
-      for (i = nbup - 1; i > stop; i--) {
-        const SMDS_MeshNode *a, *b, *c, *d;
-        a = uv_e2[i].node;
-        b = uv_e2[i - 1].node;
-        gp_Pnt pb (b->X(), b->Y(), b->Z());
-
-        // find node c in the grid, which will be linked with node b
-        int near = g;
-        if (i == stop + 1) { // left bound reached, link with the leftmost node
-          c = quad->uv_grid[nbhoriz*(nbvertic - 2) + ilow].node;
-          near = ilow;
-        } else {
-          // find node c in the grid, nearest to the b
-          double mind = RealLast();
-          for (int k = g; k >= ilow; k--) {
-            const SMDS_MeshNode *nk;
-            if (k > iup)
-              nk = uv_e1[nbright - 2].node;
-            else
-              nk = quad->uv_grid[nbhoriz*(nbvertic - 2) + k].node;
-            gp_Pnt pnk (nk->X(), nk->Y(), nk->Z());
-            double dist = pb.Distance(pnk);
-            if (dist < mind - eps) {
-              c = nk;
-              near = k;
-              mind = dist;
-            } else {
-              break;
-            }
-          }
-        }
-
-        if (near == g) { // make triangle
-          SMDS_MeshFace* face = meshDS->AddFace(a, b, c);
-          meshDS->SetMeshElementOnShape(face, F);
-        } else { // make quadrangle
-          if (near + 1 > iup)
-            d = uv_e1[nbright - 2].node;
-          else
-            d = quad->uv_grid[nbhoriz*(nbvertic - 2) + near + 1].node;
-          SMDS_MeshFace* face = meshDS->AddFace(a, b, c, d);
-          meshDS->SetMeshElementOnShape(face, F);
-
-          if (near + 1 < g) { // if d not is at g - make additional triangles
-            for (int k = near + 1; k < g; k++) {
-              c = quad->uv_grid[nbhoriz*(nbvertic - 2) + k].node;
-              if (k + 1 > iup)
-                d = uv_e1[nbright - 2].node;
-              else
-                d = quad->uv_grid[nbhoriz*(nbvertic - 2) + k + 1].node;
-              SMDS_MeshFace* face = meshDS->AddFace(a, c, d);
-              meshDS->SetMeshElementOnShape(face, F);
-            }
-          }
-          g = near;
-        }
-      }
-    }
-  }
-
-  // right or left boundary quadrangles
-  if (quad->isEdgeOut[1]) {
-//    MESSAGE("right edge is out");
-    int g = 0; // last processed node in the grid
-    int stop = nbright - 1;
-    if (quad->isEdgeOut[2]) stop--;
-    for (i = 0; i < stop; i++) {
-      const SMDS_MeshNode *a, *b, *c, *d;
-      a = uv_e1[i].node;
-      b = uv_e1[i + 1].node;
-      gp_Pnt pb (b->X(), b->Y(), b->Z());
-
-      // find node c in the grid, nearest to the b
-      int near = g;
-      if (i == stop - 1) { // up bondary reached
-        c = quad->uv_grid[nbhoriz*(jup + 1) - 2].node;
-        near = jup;
-      } else {
-        double mind = RealLast();
-        for (int k = g; k <= jup; k++) {
-          const SMDS_MeshNode *nk;
-          if (k < jlow)
-            nk = uv_e0[nbdown - 2].node;
-          else
-            nk = quad->uv_grid[nbhoriz*(k + 1) - 2].node;
-          gp_Pnt pnk (nk->X(), nk->Y(), nk->Z());
-          double dist = pb.Distance(pnk);
-          if (dist < mind - eps) {
-            c = nk;
-            near = k;
-            mind = dist;
-          } else {
-            break;
-          }
-        }
-      }
-
-      if (near == g) { // make triangle
-        SMDS_MeshFace* face = meshDS->AddFace(a, b, c);
-        meshDS->SetMeshElementOnShape(face, F);
-      } else { // make quadrangle
-        if (near - 1 < jlow)
-          d = uv_e0[nbdown - 2].node;
-        else
-          d = quad->uv_grid[nbhoriz*near - 2].node;
-        SMDS_MeshFace* face = meshDS->AddFace(a, b, c, d);
-        meshDS->SetMeshElementOnShape(face, F);
-
-        if (near - 1 > g) { // if d not is at g - make additional triangles
-          for (int k = near - 1; k > g; k--) {
-            c = quad->uv_grid[nbhoriz*(k + 1) - 2].node;
-            if (k - 1 < jlow)
-              d = uv_e0[nbdown - 2].node;
-            else
-              d = quad->uv_grid[nbhoriz*k - 2].node;
-            SMDS_MeshFace* face = meshDS->AddFace(a, c, d);
-            meshDS->SetMeshElementOnShape(face, F);
-          }
-        }
-        g = near;
-      }
-    }
-  } else {
-    if (quad->isEdgeOut[3]) {
-//      MESSAGE("left edge is out");
-      int g = nbvertic - 1; // last processed node in the grid
-      int stop = 0;
-      if (quad->isEdgeOut[0]) stop++;
-      for (i = nbleft - 1; i > stop; i--) {
-        const SMDS_MeshNode *a, *b, *c, *d;
-        a = uv_e3[i].node;
-        b = uv_e3[i - 1].node;
-        gp_Pnt pb (b->X(), b->Y(), b->Z());
-
-        // find node c in the grid, nearest to the b
-        int near = g;
-        if (i == stop + 1) { // down bondary reached
-          c = quad->uv_grid[nbhoriz*jlow + 1].node;
-          near = jlow;
-        } else {
-          double mind = RealLast();
-          for (int k = g; k >= jlow; k--) {
-            const SMDS_MeshNode *nk;
-            if (k > jup)
-              nk = uv_e2[1].node;
-            else
-              nk = quad->uv_grid[nbhoriz*k + 1].node;
-            gp_Pnt pnk (nk->X(), nk->Y(), nk->Z());
-            double dist = pb.Distance(pnk);
-            if (dist < mind - eps) {
-              c = nk;
-              near = k;
-              mind = dist;
-            } else {
-              break;
-            }
-          }
-        }
-
-        if (near == g) { // make triangle
-          SMDS_MeshFace* face = meshDS->AddFace(a, b, c);
-          meshDS->SetMeshElementOnShape(face, F);
-        } else { // make quadrangle
-          if (near + 1 > jup)
-            d = uv_e2[1].node;
-          else
-            d = quad->uv_grid[nbhoriz*(near + 1) + 1].node;
-          SMDS_MeshFace* face = meshDS->AddFace(a, b, c, d);
-          meshDS->SetMeshElementOnShape(face, F);
-
-          if (near + 1 < g) { // if d not is at g - make additional triangles
-            for (int k = near + 1; k < g; k++) {
-              c = quad->uv_grid[nbhoriz*k + 1].node;
-              if (k + 1 > jup)
-                d = uv_e2[1].node;
-              else
-                d = quad->uv_grid[nbhoriz*(k + 1) + 1].node;
-              SMDS_MeshFace* face = meshDS->AddFace(a, c, d);
-              meshDS->SetMeshElementOnShape(face, F);
-            }
-          }
-          g = near;
-        }
-      }
-    }
-  }
-
-  QuadDelete(quad);
-  bool isOk = true;
-  return isOk;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-FaceQuadStruct *StdMeshers_Quadrangle_2D::CheckAnd2Dcompute
-  (SMESH_Mesh & aMesh, const TopoDS_Shape & aShape) throw(SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-//  MESSAGE("StdMeshers_Quadrangle_2D::CheckAnd2Dcompute");
-
-  SMESH_subMesh *theSubMesh = aMesh.GetSubMesh(aShape);
-
-  //   const TopoDS_Face& FF = TopoDS::Face(aShape);
-  //   bool faceIsForward = (FF.Orientation() == TopAbs_FORWARD);
-  //   TopoDS_Face F = TopoDS::Face(FF.Oriented(TopAbs_FORWARD));
-  const TopoDS_Face & F = TopoDS::Face(aShape);
-  bool faceIsForward = (F.Orientation() == TopAbs_FORWARD);
-
-  // verify 1 wire only, with 4 edges
-
-  if (NumberOfWires(F) != 1)
-  {
-    MESSAGE("only 1 wire by face (quadrangles)");
-    return 0;
-    //throw SALOME_Exception(LOCALIZED("only 1 wire by face (quadrangles)"));
-  }
-  //   const TopoDS_Wire WW = BRepTools::OuterWire(F);
-  //   TopoDS_Wire W = TopoDS::Wire(WW.Oriented(TopAbs_FORWARD));
-  const TopoDS_Wire& W = BRepTools::OuterWire(F);
-  BRepTools_WireExplorer wexp (W, F);
-
-  FaceQuadStruct *quad = new FaceQuadStruct;
-  for (int i = 0; i < 4; i++)
-    quad->uv_edges[i] = 0;
-  quad->uv_grid = 0;
-
-  int nbEdges = 0;
-  for (wexp.Init(W, F); wexp.More(); wexp.Next())
-  {
-    //       const TopoDS_Edge& EE = wexp.Current();
-    //       TopoDS_Edge E = TopoDS::Edge(EE.Oriented(TopAbs_FORWARD));
-    const TopoDS_Edge& E = wexp.Current();
-    int nb = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
-    if (nbEdges < 4)
-    {
-      quad->edge[nbEdges] = E;
-      quad->nbPts[nbEdges] = nb + 2; // internal points + 2 extrema
-    }
-    nbEdges++;
-  }
-
-  if (nbEdges != 4)
-  {
-    MESSAGE("face must have 4 edges /quadrangles");
-    QuadDelete(quad);
-    return 0;
-    //throw SALOME_Exception(LOCALIZED("face must have 4 edges /quadrangles"));
-  }
-
-//  if (quad->nbPts[0] != quad->nbPts[2]) {
-//    MESSAGE("different point number-opposed edge");
-//    QuadDelete(quad);
-//    return 0;
-//    //throw SALOME_Exception(LOCALIZED("different point number-opposed edge"));
-//  }
-//
-//  if (quad->nbPts[1] != quad->nbPts[3]) {
-//    MESSAGE("different point number-opposed edge");
-//    QuadDelete(quad);
-//    return 0;
-//    //throw SALOME_Exception(LOCALIZED("different point number-opposed edge"));
-//  }
-
-  // set normalized grid on unit square in parametric domain
-
-  SetNormalizedGrid(aMesh, F, quad);
-
-  return quad;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void StdMeshers_Quadrangle_2D::QuadDelete (FaceQuadStruct * quad)
-{
-  //MESSAGE("StdMeshers_Quadrangle_2D::QuadDelete");
-  if (quad)
-  {
-    for (int i = 0; i < 4; i++)
-    {
-      if (quad->uv_edges[i])
-        delete [] quad->uv_edges[i];
-      quad->edge[i].Nullify();
-    }
-    if (quad->uv_grid)
-      delete [] quad->uv_grid;
-    delete quad;
-  }
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void StdMeshers_Quadrangle_2D::SetNormalizedGrid (SMESH_Mesh & aMesh,
-                                                  const TopoDS_Shape& aShape,
-                                                  FaceQuadStruct* quad) throw (SALOME_Exception)
-{
-  Unexpect aCatch(SalomeException);
-  // Algorithme décrit dans "Génération automatique de maillages"
-  // P.L. GEORGE, MASSON, Â§ 6.4.1 p. 84-85
-  // traitement dans le domaine paramétrique 2d u,v
-  // transport - projection sur le carré unité
-
-//  MESSAGE("StdMeshers_Quadrangle_2D::SetNormalizedGrid");
-  const TopoDS_Face& F = TopoDS::Face(aShape);
-
-  // 1 --- find orientation of the 4 edges, by test on extrema
-
-  //      max             min                    0     x1     1
-  //     |<----north-2-------^                a3 -------------> a2
-  //     |                   |                   ^1          1^
-  //    west-3            east-1 =right          |            |
-  //     |                   |         ==>       |            |
-  //  y0 |                   | y1                |            |
-  //     |                   |                   |0          0|
-  //     v----south-0-------->                a0 -------------> a1
-  //      min             max                    0     x0     1
-  //             =down
-  //
-
-  Handle(Geom2d_Curve) c2d[4];
-  gp_Pnt2d pf[4];
-  gp_Pnt2d pl[4];
-  for (int i = 0; i < 4; i++)
-  {
-    c2d[i] = BRep_Tool::CurveOnSurface(quad->edge[i], F,
-                                       quad->first[i], quad->last[i]);
-    pf[i] = c2d[i]->Value(quad->first[i]);
-    pl[i] = c2d[i]->Value(quad->last[i]);
-    quad->isEdgeForward[i] = false;
-  }
-
-  double eps2d = 1.e-3; // *** utiliser plutot TopExp::CommonVertex, puis
-  // distances si piece fausse
-//  int i = 0;
-  if ((pf[1].Distance(pl[0]) < eps2d) || (pl[1].Distance(pl[0]) < eps2d))
-  {
-    quad->isEdgeForward[0] = true;
-  } else {
-    double tmp = quad->first[0];
-    quad->first[0] = quad->last[0];
-    quad->last[0] = tmp;
-    pf[0] = c2d[0]->Value(quad->first[0]);
-    pl[0] = c2d[0]->Value(quad->last[0]);
-  }
-
-  for (int i = 1; i < 4; i++)
-  {
-    quad->isEdgeForward[i] = (pf[i].Distance(pl[i - 1]) < eps2d);
-    if (!quad->isEdgeForward[i])
-    {
-      double tmp = quad->first[i];
-      quad->first[i] = quad->last[i];
-      quad->last[i] = tmp;
-      pf[i] = c2d[i]->Value(quad->first[i]);
-      pl[i] = c2d[i]->Value(quad->last[i]);
-      //SCRUTE(pf[i].Distance(pl[i-1]));
-      ASSERT(pf[i].Distance(pl[i - 1]) < eps2d);
-    }
-  }
-  //SCRUTE(pf[0].Distance(pl[3]));
-  ASSERT(pf[0].Distance(pl[3]) < eps2d);
-
-//   for (int i=0; i<4; i++)
-//     {
-//       SCRUTE(quad->isEdgeForward[i]);
-//       MESSAGE(" -first "<<i<<" "<<pf[i].X()<<" "<<pf[i].Y());
-//       MESSAGE(" -last  "<<i<<" "<<pl[i].X()<<" "<<pl[i].Y());
-//     }
-
-  // 2 --- load 2d edge points (u,v) with orientation and value on unit square
-
-  bool loadOk = true;
-  for (int i = 0; i < 2; i++)
-  {
-    quad->uv_edges[i] = LoadEdgePoints(aMesh, F, quad->edge[i],
-                                       quad->first[i], quad->last[i]);
-    if (!quad->uv_edges[i]) loadOk = false;
-    //    quad->isEdgeForward[i]);
-  }
-
-  for (int i = 2; i < 4; i++)
-  {
-    quad->uv_edges[i] = LoadEdgePoints(aMesh, F, quad->edge[i],
-                                       quad->last[i], quad->first[i]);
-    if (!quad->uv_edges[i]) loadOk = false;
-    //    !quad->isEdgeForward[i]);
-  }
-
-  if (!loadOk)
-  {
-//    MESSAGE("StdMeshers_Quadrangle_2D::SetNormalizedGrid - LoadEdgePoints failed");
-    QuadDelete( quad );
-    quad = 0;
-    return;
-  }
-  // 3 --- 2D normalized values on unit square [0..1][0..1]
-
-//  int nbdown = quad->nbPts[0];
-//  int nbright = quad->nbPts[1];
-  int nbhoriz  = Min(quad->nbPts[0], quad->nbPts[2]);
-  int nbvertic = Min(quad->nbPts[1], quad->nbPts[3]);
-//  MESSAGE("nbhoriz, nbvertic = " << nbhoriz << nbvertic);
-
-  quad->isEdgeOut[0] = (quad->nbPts[0] > quad->nbPts[2]);
-  quad->isEdgeOut[1] = (quad->nbPts[1] > quad->nbPts[3]);
-  quad->isEdgeOut[2] = (quad->nbPts[2] > quad->nbPts[0]);
-  quad->isEdgeOut[3] = (quad->nbPts[3] > quad->nbPts[1]);
-
-  quad->uv_grid = new UVPtStruct[nbvertic * nbhoriz];
-
-  UVPtStruct *uv_grid = quad->uv_grid;
-  UVPtStruct *uv_e0 = quad->uv_edges[0];
-  UVPtStruct *uv_e1 = quad->uv_edges[1];
-  UVPtStruct *uv_e2 = quad->uv_edges[2];
-  UVPtStruct *uv_e3 = quad->uv_edges[3];
-
-  // nodes Id on "in" edges
-  if (! quad->isEdgeOut[0]) {
-    int j = 0;
-    for (int i = 0; i < nbhoriz; i++) { // down
-      int ij = j * nbhoriz + i;
-      uv_grid[ij].node = uv_e0[i].node;
-    }
-  }
-  if (! quad->isEdgeOut[1]) {
-    int i = nbhoriz - 1;
-    for (int j = 0; j < nbvertic; j++) { // right
-      int ij = j * nbhoriz + i;
-      uv_grid[ij].node = uv_e1[j].node;
-    }
-  }
-  if (! quad->isEdgeOut[2]) {
-    int j = nbvertic - 1;
-    for (int i = 0; i < nbhoriz; i++) { // up
-      int ij = j * nbhoriz + i;
-      uv_grid[ij].node = uv_e2[i].node;
-    }
-  }
-  if (! quad->isEdgeOut[3]) {
-    int i = 0;
-    for (int j = 0; j < nbvertic; j++) { // left
-      int ij = j * nbhoriz + i;
-      uv_grid[ij].node = uv_e3[j].node;
-    }
-  }
-
-  // falsificate "out" edges
-  if (quad->isEdgeOut[0]) // down
-    uv_e0 = MakeEdgePoints
-      (aMesh, F, quad->edge[0], quad->first[0], quad->last[0], nbhoriz - 1);
-  else if (quad->isEdgeOut[2]) // up
-    uv_e2 = MakeEdgePoints
-      (aMesh, F, quad->edge[2], quad->last[2], quad->first[2], nbhoriz - 1);
-
-  if (quad->isEdgeOut[1]) // right
-    uv_e1 = MakeEdgePoints
-      (aMesh, F, quad->edge[1], quad->first[1], quad->last[1], nbvertic - 1);
-  else if (quad->isEdgeOut[3]) // left
-    uv_e3 = MakeEdgePoints
-      (aMesh, F, quad->edge[3], quad->last[3], quad->first[3], nbvertic - 1);
-
-  // normalized 2d values on grid
-  for (int i = 0; i < nbhoriz; i++)
-  {
-    for (int j = 0; j < nbvertic; j++)
-    {
-      int ij = j * nbhoriz + i;
-      // --- droite i cste : x = x0 + y(x1-x0)
-      double x0 = uv_e0[i].normParam;  // bas - sud
-      double x1 = uv_e2[i].normParam;  // haut - nord
-      // --- droite j cste : y = y0 + x(y1-y0)
-      double y0 = uv_e3[j].normParam;  // gauche-ouest
-      double y1 = uv_e1[j].normParam;  // droite - est
-      // --- intersection : x=x0+(y0+x(y1-y0))(x1-x0)
-      double x = (x0 + y0 * (x1 - x0)) / (1 - (y1 - y0) * (x1 - x0));
-      double y = y0 + x * (y1 - y0);
-      uv_grid[ij].x = x;
-      uv_grid[ij].y = y;
-      //MESSAGE("-xy-01 "<<x0<<" "<<x1<<" "<<y0<<" "<<y1);
-      //MESSAGE("-xy-norm "<<i<<" "<<j<<" "<<x<<" "<<y);
-    }
-  }
-
-  // 4 --- projection on 2d domain (u,v)
-  gp_Pnt2d a0 = pf[0];
-  gp_Pnt2d a1 = pf[1];
-  gp_Pnt2d a2 = pf[2];
-  gp_Pnt2d a3 = pf[3];
-
-  for (int i = 0; i < nbhoriz; i++)
-  {
-    for (int j = 0; j < nbvertic; j++)
-    {
-      int ij = j * nbhoriz + i;
-      double x = uv_grid[ij].x;
-      double y = uv_grid[ij].y;
-      double param_0 = uv_e0[0].param + x * (uv_e0[nbhoriz - 1].param - uv_e0[0].param); // sud
-      double param_2 = uv_e2[0].param + x * (uv_e2[nbhoriz - 1].param - uv_e2[0].param); // nord
-      double param_1 = uv_e1[0].param + y * (uv_e1[nbvertic - 1].param - uv_e1[0].param); // est
-      double param_3 = uv_e3[0].param + y * (uv_e3[nbvertic - 1].param - uv_e3[0].param); // ouest
-
-      //MESSAGE("params "<<param_0<<" "<<param_1<<" "<<param_2<<" "<<param_3);
-      gp_Pnt2d p0 = c2d[0]->Value(param_0);
-      gp_Pnt2d p1 = c2d[1]->Value(param_1);
-      gp_Pnt2d p2 = c2d[2]->Value(param_2);
-      gp_Pnt2d p3 = c2d[3]->Value(param_3);
-
-      double u = (1 - y) * p0.X() + x * p1.X() + y * p2.X() + (1 - x) * p3.X();
-      double v = (1 - y) * p0.Y() + x * p1.Y() + y * p2.Y() + (1 - x) * p3.Y();
-
-      u -= (1 - x) * (1 - y) * a0.X() + x * (1 - y) * a1.X() +
-        x * y * a2.X() + (1 - x) * y * a3.X();
-      v -= (1 - x) * (1 - y) * a0.Y() + x * (1 - y) * a1.Y() +
-        x * y * a2.Y() + (1 - x) * y * a3.Y();
-
-      uv_grid[ij].u = u;
-      uv_grid[ij].v = v;
-
-      //MESSAGE("-uv- "<<i<<" "<<j<<" "<<uv_grid[ij].u<<" "<<uv_grid[ij].v);
-    }
-  }
-}
-
-//=============================================================================
-/*!
- *  LoadEdgePoints
- */
-//=============================================================================
-UVPtStruct* StdMeshers_Quadrangle_2D::LoadEdgePoints (SMESH_Mesh & aMesh,
-                                                      const TopoDS_Face& F,
-                                                      const TopoDS_Edge& E,
-                                                      double first, double last)
-//                        bool isForward)
-{
-  //MESSAGE("StdMeshers_Quadrangle_2D::LoadEdgePoints");
-
-  SMDS_Mesh* meshDS = aMesh.GetMeshDS();
-
-  // --- IDNodes of first and last Vertex
-
-  TopoDS_Vertex VFirst, VLast;
-  TopExp::Vertices(E, VFirst, VLast); // corresponds to f and l
-
-  ASSERT(!VFirst.IsNull());
-  SMDS_NodeIteratorPtr lid = aMesh.GetSubMesh(VFirst)->GetSubMeshDS()->GetNodes();
-  if (!lid->more())
-  {
-    MESSAGE ( "NO NODE BUILT ON VERTEX" );
-    return 0;
-  }
-  const SMDS_MeshNode* idFirst = lid->next();
-
-  ASSERT(!VLast.IsNull());
-  lid = aMesh.GetSubMesh(VLast)->GetSubMeshDS()->GetNodes();
-  if (!lid->more())
-  {
-    MESSAGE ( "NO NODE BUILT ON VERTEX" );
-    return 0;
-  }
-  const SMDS_MeshNode* idLast = lid->next();
-
-  // --- edge internal IDNodes (relies on good order storage, not checked)
-
-  map<double, const SMDS_MeshNode *> params;
-  SMDS_NodeIteratorPtr ite = aMesh.GetSubMesh(E)->GetSubMeshDS()->GetNodes();
-
-  while(ite->more())
-  {
-    const SMDS_MeshNode* node = ite->next();
-    const SMDS_EdgePosition* epos =
-      static_cast<const SMDS_EdgePosition*>(node->GetPosition().get());
-    double param = epos->GetUParameter();
-    params[param] = node;
-  }
-
-  int nbPoints = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
-  if (nbPoints != params.size())
-  {
-    MESSAGE( "BAD NODE ON EDGE POSITIONS" );
-    return 0;
-  }
-  UVPtStruct* uvslf = new UVPtStruct[nbPoints + 2];
-
-  double f, l;
-  Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
-
-  bool isForward = (((l - f) * (last - first)) > 0);
-  double paramin = 0;
-  double paramax = 0;
-  if (isForward)
-  {
-    paramin = f;
-    paramax = l;
-    gp_Pnt2d p = C2d->Value(f);        // first point = Vertex Forward
-    uvslf[0].x = p.X();
-    uvslf[0].y = p.Y();
-    uvslf[0].param = f;
-    uvslf[0].node = idFirst;
-    //MESSAGE("__ f "<<f<<" "<<uvslf[0].x <<" "<<uvslf[0].y);
-    map < double, const SMDS_MeshNode* >::iterator itp = params.begin();
-    for (int i = 1; i <= nbPoints; i++)        // nbPoints internal
-    {
-      double param = (*itp).first;
-      gp_Pnt2d p = C2d->Value(param);
-      uvslf[i].x = p.X();
-      uvslf[i].y = p.Y();
-      uvslf[i].param = param;
-      uvslf[i].node = (*itp).second;
-      //MESSAGE("__ "<<i<<" "<<param<<" "<<uvslf[i].x <<" "<<uvslf[i].y);
-      itp++;
-    }
-    p = C2d->Value(l);         // last point = Vertex Reversed
-    uvslf[nbPoints + 1].x = p.X();
-    uvslf[nbPoints + 1].y = p.Y();
-    uvslf[nbPoints + 1].param = l;
-    uvslf[nbPoints + 1].node = idLast;
-    //MESSAGE("__ l "<<l<<" "<<uvslf[nbPoints+1].x <<" "<<uvslf[nbPoints+1].y);
-  } else
-  {
-    paramin = l;
-    paramax = f;
-    gp_Pnt2d p = C2d->Value(l);        // first point = Vertex Reversed
-    uvslf[0].x = p.X();
-    uvslf[0].y = p.Y();
-    uvslf[0].param = l;
-    uvslf[0].node = idLast;
-    //MESSAGE("__ l "<<l<<" "<<uvslf[0].x <<" "<<uvslf[0].y);
-    map < double, const SMDS_MeshNode* >::reverse_iterator itp = params.rbegin();
-
-    for (int j = nbPoints; j >= 1; j--)        // nbPoints internal
-    {
-      double param = (*itp).first;
-      int i = nbPoints + 1 - j;
-      gp_Pnt2d p = C2d->Value(param);
-      uvslf[i].x = p.X();
-      uvslf[i].y = p.Y();
-      uvslf[i].param = param;
-      uvslf[i].node = (*itp).second;
-      //MESSAGE("__ "<<i<<" "<<param<<" "<<uvslf[i].x <<" "<<uvslf[i].y);
-      itp++;
-    }
-    p = C2d->Value(f);         // last point = Vertex Forward
-    uvslf[nbPoints + 1].x = p.X();
-    uvslf[nbPoints + 1].y = p.Y();
-    uvslf[nbPoints + 1].param = f;
-    uvslf[nbPoints + 1].node = idFirst;
-    //MESSAGE("__ f "<<f<<" "<<uvslf[nbPoints+1].x <<" "<<uvslf[nbPoints+1].y);
-  }
-
-  ASSERT(paramin != paramax);
-  for (int i = 0; i < nbPoints + 2; i++)
-  {
-    uvslf[i].normParam = (uvslf[i].param - paramin) / (paramax - paramin);
-    //SCRUTE(uvslf[i].normParam);
-  }
-
-  return uvslf;
-}
-
-//=============================================================================
-/*!
- *  MakeEdgePoints
- */
-//=============================================================================
-UVPtStruct* StdMeshers_Quadrangle_2D::MakeEdgePoints (SMESH_Mesh & aMesh,
-                                                      const TopoDS_Face& F,
-                                                      const TopoDS_Edge& E,
-                                                      double first, double last,
-                                                      int nb_segm)
-{
-//  MESSAGE("StdMeshers_Quadrangle_2D::MakeEdgePoints");
-
-  UVPtStruct* uvslf = new UVPtStruct[nb_segm + 1];
-  list<double> params;
-
-  // --- edge internal points
-  double fi, li;
-  Handle(Geom_Curve) Curve = BRep_Tool::Curve(E, fi, li);
-  if (!Curve.IsNull()) {
-    try {
-      GeomAdaptor_Curve C3d (Curve);
-      double length = EdgeLength(E);
-      double eltSize = length / nb_segm;
-      GCPnts_UniformAbscissa Discret (C3d, eltSize, fi, li);
-      if (!Discret.IsDone()) return false;
-      int NbPoints = Discret.NbPoints();
-      for (int i = 1; i <= NbPoints; i++) {
-        double param = Discret.Parameter(i);
-        params.push_back(param);
-      }
-    }
-    catch (Standard_Failure) {
-      return 0;
-    }
-  }
-  else
-  {
-    // Edge is a degenerated Edge
-    BRep_Tool::Range(E, fi, li);
-    double du = (li - fi) / nb_segm;
-    for (int i = 1; i <= nb_segm + 1; i++)
-    {
-      double param = fi + (i - 1) * du;
-      params.push_back(param);
-    }
-  }
-
-  double f, l;
-  Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
-  ASSERT(f != l);
-
-  bool isForward = (((l - f) * (last - first)) > 0);
-  if (isForward) {
-    list<double>::iterator itU = params.begin();
-    for (int i = 0; i <= nb_segm; i++) // nbPoints internal
-    {
-      double param = *itU;
-      gp_Pnt2d p = C2d->Value(param);
-      uvslf[i].x = p.X();
-      uvslf[i].y = p.Y();
-      uvslf[i].param = param;
-      uvslf[i].normParam = (param - f) / (l - f);
-      itU++;
-    }
-  } else {
-    list<double>::reverse_iterator itU = params.rbegin();
-    for (int j = nb_segm; j >= 0; j--) // nbPoints internal
-    {
-      double param = *itU;
-      int i = nb_segm - j;
-      gp_Pnt2d p = C2d->Value(param);
-      uvslf[i].x = p.X();
-      uvslf[i].y = p.Y();
-      uvslf[i].param = param;
-      uvslf[i].normParam = (param - l) / (f - l);
-      itU++;
-    }
-  }
-
-  return uvslf;
-}
-
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & StdMeshers_Quadrangle_2D::SaveTo(ostream & save)
-{
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & StdMeshers_Quadrangle_2D::LoadFrom(istream & load)
-{
-  return load;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator <<(ostream & save, StdMeshers_Quadrangle_2D & hyp)
-{
-  return hyp.SaveTo( save );
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >>(istream & load, StdMeshers_Quadrangle_2D & hyp)
-{
-  return hyp.LoadFrom( load );
-}
diff --git a/src/StdMeshers/StdMeshers_Quadrangle_2D.hxx b/src/StdMeshers/StdMeshers_Quadrangle_2D.hxx
deleted file mode 100644 (file)
index b54edea..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Quadrangle_2D.hxx
-//           Moved here from SMESH_Quadrangle_2D.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_QUADRANGLE_2D_HXX_
-#define _SMESH_QUADRANGLE_2D_HXX_
-
-#include "SMESH_2D_Algo.hxx"
-#include "SMESH_Mesh.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-class SMDS_MeshNode;
-
-typedef struct uvPtStruct
-{
-  double param;
-  double normParam;
-  double u; // original 2d parameter
-  double v;
-  double x; // 2d parameter, normalized [0,1]
-  double y; 
-  const SMDS_MeshNode * node;
-} UVPtStruct;
-
-typedef struct faceQuadStruct
-{
-  int nbPts[4];
-  TopoDS_Edge edge[4];
-  double first[4];
-  double last[4];
-  bool isEdgeForward[4];
-  bool isEdgeOut[4]; // true, if an edge has more nodes, than the opposite
-  UVPtStruct* uv_edges[4];
-  UVPtStruct* uv_grid;
-} FaceQuadStruct;
-
-class StdMeshers_Quadrangle_2D:
-  public SMESH_2D_Algo
-{
-public:
-  StdMeshers_Quadrangle_2D(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~StdMeshers_Quadrangle_2D();
-
-  virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
-                               const TopoDS_Shape& aShape,
-                               SMESH_Hypothesis::Hypothesis_Status& aStatus);
-
-  virtual bool Compute(SMESH_Mesh& aMesh,
-                      const TopoDS_Shape& aShape)
-    throw (SALOME_Exception);
-
-  FaceQuadStruct* CheckAnd2Dcompute(SMESH_Mesh& aMesh,
-                                   const TopoDS_Shape& aShape)
-    throw (SALOME_Exception);
-
-  static void QuadDelete(FaceQuadStruct* quad);
-
-  ostream & SaveTo(ostream & save);
-  istream & LoadFrom(istream & load);
-  friend ostream & operator << (ostream & save, StdMeshers_Quadrangle_2D & hyp);
-  friend istream & operator >> (istream & load, StdMeshers_Quadrangle_2D & hyp);
-
-protected:
-
-  void SetNormalizedGrid(SMESH_Mesh& aMesh,
-                        const TopoDS_Shape& aShape,
-                        FaceQuadStruct* quad)
-    throw (SALOME_Exception);
-
-  UVPtStruct* LoadEdgePoints(SMESH_Mesh& aMesh,
-                            const TopoDS_Face& F, const TopoDS_Edge& E,
-                            double first, double last);
-
-  UVPtStruct* MakeEdgePoints(SMESH_Mesh& aMesh,
-                            const TopoDS_Face& F, const TopoDS_Edge& E,
-                            double first, double last, int nb_segm);
-};
-
-#endif
diff --git a/src/StdMeshers/StdMeshers_Regular_1D.cxx b/src/StdMeshers/StdMeshers_Regular_1D.cxx
deleted file mode 100644 (file)
index be3e69f..0000000
+++ /dev/null
@@ -1,885 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Regular_1D.cxx
-//           Moved here from SMESH_Regular_1D.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-
-#include "StdMeshers_Regular_1D.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_Mesh.hxx"
-
-#include "StdMeshers_LocalLength.hxx"
-#include "StdMeshers_NumberOfSegments.hxx"
-#include "StdMeshers_Arithmetic1D.hxx"
-#include "StdMeshers_StartEndLength.hxx"
-#include "StdMeshers_Deflection1D.hxx"
-
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_EdgePosition.hxx"
-#include "SMESH_subMesh.hxx"
-
-#include "Utils_SALOME_Exception.hxx"
-#include "utilities.h"
-
-#include <BRep_Tool.hxx>
-#include <TopoDS_Edge.hxx>
-#include <TopoDS_Shape.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <GeomAdaptor_Curve.hxx>
-#include <GCPnts_AbscissaPoint.hxx>
-#include <GCPnts_UniformAbscissa.hxx>
-#include <GCPnts_UniformDeflection.hxx>
-#include <Standard_ErrorHandler.hxx>
-#include <Precision.hxx>
-#include <Expr_GeneralExpression.hxx>
-#include <Expr_NamedUnknown.hxx>
-#include <Expr_Array1OfNamedUnknown.hxx>
-#include <TColStd_Array1OfReal.hxx>
-#include <ExprIntrp_GenExp.hxx>
-
-#include <string>
-#include <math.h>
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_Regular_1D::StdMeshers_Regular_1D(int hypId, int studyId,
-       SMESH_Gen * gen):SMESH_1D_Algo(hypId, studyId, gen)
-{
-       MESSAGE("StdMeshers_Regular_1D::StdMeshers_Regular_1D");
-       _name = "Regular_1D";
-       _shapeType = (1 << TopAbs_EDGE);
-
-       _compatibleHypothesis.push_back("LocalLength");
-       _compatibleHypothesis.push_back("NumberOfSegments");
-       _compatibleHypothesis.push_back("StartEndLength");
-       _compatibleHypothesis.push_back("Deflection1D");
-       _compatibleHypothesis.push_back("Arithmetic1D");
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_Regular_1D::~StdMeshers_Regular_1D()
-{
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool StdMeshers_Regular_1D::CheckHypothesis
-                         (SMESH_Mesh& aMesh,
-                          const TopoDS_Shape& aShape,
-                          SMESH_Hypothesis::Hypothesis_Status& aStatus)
-{
-  _hypType = NONE;
-
-  const list <const SMESHDS_Hypothesis * >&hyps = GetUsedHypothesis(aMesh, aShape);
-  if (hyps.size() == 0)
-  {
-    aStatus = SMESH_Hypothesis::HYP_MISSING;
-    return false;  // can't work without a hypothesis
-  }
-
-  // use only the first hypothesis
-  const SMESHDS_Hypothesis *theHyp = hyps.front();
-
-  string hypName = theHyp->GetName();
-
-  if (hypName == "LocalLength")
-  {
-    const StdMeshers_LocalLength * hyp =
-      dynamic_cast <const StdMeshers_LocalLength * >(theHyp);
-    ASSERT(hyp);
-    _value[ BEG_LENGTH_IND ] = _value[ END_LENGTH_IND ] = hyp->GetLength();
-    ASSERT( _value[ BEG_LENGTH_IND ] > 0 );
-    _hypType = LOCAL_LENGTH;
-    aStatus = SMESH_Hypothesis::HYP_OK;
-  }
-
-  else if (hypName == "NumberOfSegments")
-  {
-    const StdMeshers_NumberOfSegments * hyp =
-      dynamic_cast <const StdMeshers_NumberOfSegments * >(theHyp);
-    ASSERT(hyp);
-    _ivalue[ NB_SEGMENTS_IND  ] = hyp->GetNumberOfSegments();
-    ASSERT( _ivalue[ NB_SEGMENTS_IND ] > 0 );
-    _ivalue[ DISTR_TYPE_IND ] = (int) hyp->GetDistrType();
-    switch (_ivalue[ DISTR_TYPE_IND ])
-    {
-    case StdMeshers_NumberOfSegments::DT_Scale:
-      _value[ SCALE_FACTOR_IND ] = hyp->GetScaleFactor();
-      break;
-    case StdMeshers_NumberOfSegments::DT_TabFunc:
-      _vvalue[ TAB_FUNC_IND ] = hyp->GetTableFunction();
-      break;
-    case StdMeshers_NumberOfSegments::DT_ExprFunc:
-      _svalue[ EXPR_FUNC_IND ] = hyp->GetExpressionFunction();
-      break;
-    case StdMeshers_NumberOfSegments::DT_Regular:
-      break;
-    default:
-      ASSERT(0);
-      break;
-    }
-    if (_ivalue[ DISTR_TYPE_IND ] == StdMeshers_NumberOfSegments::DT_TabFunc ||
-        _ivalue[ DISTR_TYPE_IND ] == StdMeshers_NumberOfSegments::DT_ExprFunc)
-      _ivalue[ EXP_MODE_IND ] = (int) hyp->IsExponentMode();
-    _hypType = NB_SEGMENTS;
-    aStatus = SMESH_Hypothesis::HYP_OK;
-  }
-
-  else if (hypName == "Arithmetic1D")
-  {
-    const StdMeshers_Arithmetic1D * hyp =
-      dynamic_cast <const StdMeshers_Arithmetic1D * >(theHyp);
-    ASSERT(hyp);
-    _value[ BEG_LENGTH_IND ] = hyp->GetLength( true );
-    _value[ END_LENGTH_IND ] = hyp->GetLength( false );
-    ASSERT( _value[ BEG_LENGTH_IND ] > 0 && _value[ END_LENGTH_IND ] > 0 );
-    _hypType = ARITHMETIC_1D;
-    aStatus = SMESH_Hypothesis::HYP_OK;
-  }
-
-  else if (hypName == "StartEndLength")
-  {
-    const StdMeshers_StartEndLength * hyp =
-      dynamic_cast <const StdMeshers_StartEndLength * >(theHyp);
-    ASSERT(hyp);
-    _value[ BEG_LENGTH_IND ] = hyp->GetLength( true );
-    _value[ END_LENGTH_IND ] = hyp->GetLength( false );
-    ASSERT( _value[ BEG_LENGTH_IND ] > 0 && _value[ END_LENGTH_IND ] > 0 );
-    _hypType = BEG_END_LENGTH;
-    aStatus = SMESH_Hypothesis::HYP_OK;
-  }
-
-  else if (hypName == "Deflection1D")
-  {
-    const StdMeshers_Deflection1D * hyp =
-      dynamic_cast <const StdMeshers_Deflection1D * >(theHyp);
-    ASSERT(hyp);
-    _value[ DEFLECTION_IND ] = hyp->GetDeflection();
-    ASSERT( _value[ DEFLECTION_IND ] > 0 );
-    _hypType = DEFLECTION;
-    aStatus = SMESH_Hypothesis::HYP_OK;
-  }
-  else
-    aStatus = SMESH_Hypothesis::HYP_INCOMPATIBLE;
-
-  return ( _hypType != NONE );
-}
-
-//=======================================================================
-//function : compensateError
-//purpose  : adjust theParams so that the last segment length == an
-//=======================================================================
-
-static void compensateError(double a1, double an,
-                            double U1, double Un,
-                            double             length,
-                            GeomAdaptor_Curve& C3d,
-                            list<double> &     theParams)
-{
-  int i, nPar = theParams.size();
-  if ( a1 + an < length && nPar > 1 )
-  {
-    list<double>::reverse_iterator itU = theParams.rbegin();
-    double Ul = *itU++;
-    // dist from the last point to the edge end <Un>, it should be equal <an>
-    double Ln = GCPnts_AbscissaPoint::Length( C3d, Ul, Un );
-    double dLn = an - Ln; // error of <an>
-    if ( Abs( dLn ) <= Precision::Confusion() )
-      return;
-    double dU = Abs( Ul - *itU ); // parametric length of the last but one segment
-    double dUn = dLn * Abs( Un - U1 ) / length; // parametric error of <an>
-    if ( dUn < 0.5 * dU ) { // last segment is a bit shorter than it should
-      dUn = -dUn; // move the last parameter to the edge beginning
-    }
-    else {  // last segment is much shorter than it should -> remove the last param and
-      theParams.pop_back(); nPar--; // move the rest points toward the edge end
-      Ln = GCPnts_AbscissaPoint::Length( C3d, theParams.back(), Un );
-      dUn = ( an - Ln ) * Abs( Un - U1 ) / length;
-      if ( dUn < 0.5 * dU )
-        dUn = -dUn;
-    }
-    if ( U1 > Un )
-      dUn = -dUn;
-    double q  = dUn / ( nPar - 1 );
-    for ( itU = theParams.rbegin(), i = 1; i < nPar; itU++, i++ ) {
-      (*itU) += dUn;
-      dUn -= q;
-    }
-  }
-}
-
-/*!
- * \brief This class provides interface for a density function
- */
-class Function
-{
-public:
-  Function(bool expMode) : _expMode(expMode) {}
-  double operator() (double t) const;
-  virtual bool IsReady() const = 0;
-protected:
-  virtual double compute(double t) const = 0;
-private:
-  bool _expMode;
-};
-
-/*!
- * \brief This class provides computation of density function given by a table
- */
-class TabFunction: public Function
-{
-public:
-  TabFunction(const vector<double>& table, bool expMode);
-  virtual bool IsReady() const;
-protected:
-  virtual double compute(double t) const;
-private:
-  const vector<double>& _table;
-};
-
-/*!
- * \brief This class provides computation of density function given by an expression
- */
-class ExprFunction: public Function
-{
-public:
-  ExprFunction(const char* expr, bool expMode);
-  virtual bool IsReady() const;
-protected:
-  virtual double compute(double t) const;
-private:
-  Handle(Expr_GeneralExpression) _expression;
-  Expr_Array1OfNamedUnknown _var;
-  mutable TColStd_Array1OfReal _val;
-};
-
-double Function::operator() (double t) const
-{
-  double res = compute(t);
-  if (_expMode)
-    res = pow(10, res);
-  return res;
-}
-
-TabFunction::TabFunction(const vector<double>& table, bool expMode)
-  : Function(expMode),
-    _table(table)
-{
-}
-
-bool TabFunction::IsReady() const
-{
-  return true;
-}
-
-double TabFunction::compute (double t) const
-{
-  //find place of <t> in table
-  int i;
-  for (i=0; i < _table.size()/2; i++)
-    if (_table[i*2] > t)
-      break;
-  if (i >= _table.size()/2)
-    i = _table.size()/2 - 1;
-
-  if (i == 0)
-    return _table[1];
-
-  // interpolate function value on found interval
-  // (t - x[i-1]) / (x[i] - x[i-1]) = (y - f[i-1]) / (f[i] - f[i-1])
-  // => y = f[i-1] + (f[i] - f[i-1]) * (t - x[i-1]) / (x[i] - x[i-1])
-  double x1 = _table[(i-1)*2];
-  double x2 = _table[i*2];
-  double y1 = _table[(i-1)*2+1];
-  double y2 = _table[i*2+1];
-  if (x2 - x1 < Precision::Confusion())
-    throw SALOME_Exception("TabFunction::compute : confused points");
-  return y1 + (y2 - y1) * ((t - x1) / (x2 - x1));
-}
-
-ExprFunction::ExprFunction(const char* expr, bool expMode)
-  : Function(expMode),
-    _var(1,1),
-    _val(1,1)
-{
-  Handle( ExprIntrp_GenExp ) gen = ExprIntrp_GenExp::Create();
-  gen->Process(TCollection_AsciiString((char*)expr));
-  if (gen->IsDone())
-  {
-    _expression = gen->Expression();
-    _var(1) = new Expr_NamedUnknown("t");
-  }
-}
-
-bool ExprFunction::IsReady() const
-{
-  return !_expression.IsNull();
-}
-
-double ExprFunction::compute (double t) const
-{
-  ASSERT(!_expression.IsNull());
-  _val(1) = t;
-  return _expression->Evaluate(_var, _val);
-}
-
-//================================================================================
-/*!
- * \brief Compute next abscissa when two previous ones are given
-  * \param sm2 - before previous abscissa
-  * \param sm1 - previous abscissa
-  * \param func - function of density
-  * \param reverse - the direction of next abscissa, increase (0) or decrease (1)
-  * \retval double - the new abscissa
- * 
- * The abscissa s is given by the formulae
- *
- * ....|--------|----------------|.....
- *    sm2      sm1               s
- *
- *    func(sm2) / func(sm1)  = (sm1-sm2) / (s-sm1)
- * => (s-sm1) * func(sm2) = (sm1-sm2) * func(sm1)
- * => s = sm1 + (sm1-sm2) * func(sm1) / func(sm2)
- */
-//================================================================================
-
-static double nextAbscissa(double sm2, double sm1, const Function& func, int reverse)
-{
-  if (reverse)
-  {
-    sm1 = 1.0 - sm1;
-    sm2 = 1.0 - sm2;
-  }
-  return sm1 + (sm1-sm2) * func(sm1) / func(sm2);
-}
-
-//================================================================================
-/*!
- * \brief Compute distribution of points on a curve following the law of a function
-  * \param C3d - the curve to discretize
-  * \param first - the first parameter on the curve 
-  * \param last - the last parameter on the curve 
-  * \param theReverse - flag indicating that the curve must be reversed
-  * \param nbSeg - number of output segments
-  * \param func - the function f(t)
-  * \param theParams - output points
-  * \retval bool  - true if success
- */
-//================================================================================
-
-static bool computeParamByFunc(Adaptor3d_Curve& C3d, double first, double last,
-                               double length, bool theReverse, 
-                               int nbSeg, const Function& func,
-                               list<double>& theParams)
-{
-  if (!func.IsReady())
-    return false;
-  vector<double> xxx[2];
-  int nbPnt = 1 + nbSeg;
-  int rev, i;
-  for (rev=0; rev < 2; rev++)
-  {
-    // curv abscisses initialisation
-    vector<double> x(nbPnt, 0.);
-    // the first abscissa is 0.0
-
-    // The aim of the algorithm is to find a second abscisse x[1] such as the last
-    // one x[nbSeg] is very close to 1.0 with the epsilon precision
-
-    double x1_too_small = 0.0;
-    double x1_too_large = RealLast();
-    double x1 = 1.0/nbSeg;
-    while (1)
-    {
-      x[1] = x1;
-
-      // Check if the abscissa of the point 2 to N-1
-      // are in the segment ...
-
-      bool ok = true;
-      for (i=2; i <= nbSeg; i++)
-      {
-        x[i] = nextAbscissa(x[i-2], x[i-1], func, rev);
-        if (x[i] - 1.0 > Precision::Confusion())
-        {
-          x[nbSeg] = x[i];
-          ok = false;
-          break;
-        }
-      }
-      if (!ok)
-      {
-        // The segments are to large
-        // Decrease x1 ...
-        x1_too_large = x1;
-        x1 = (x1_too_small+x1_too_large)/2;
-        continue;
-      }
-
-      // Look at the abscissa of the point N
-      // which is to be close to 1.0
-
-      // break condition --> algo converged !!
-
-      if (1.0 - x[nbSeg] < Precision::Confusion())
-        break;
-
-      // not ok ...
-
-      x1_too_small = x1;
-
-      // Modify x1 value
-
-      if (x1_too_large > 1e100)
-        x1 = 2*x1;
-      else
-        x1 = (x1_too_small+x1_too_large)/2;
-    }
-    xxx[rev] = x;
-  }
-
-  // average
-  vector<double> x(nbPnt, 0.);
-  for (i=0; i < nbPnt; i++)
-    x[i] = (xxx[0][i] + (1.0 - xxx[1][nbPnt-i])) / 2;
-
-  // apply parameters in range [0,1] to the space of the curve
-  double prevU = first;
-  double sign = 1.;
-  if (theReverse)
-  {
-    prevU = last;
-    sign = -1.;
-  }
-  for (i = 1; i < nbSeg; i++)
-  {
-    double curvLength = length * (x[i] - x[i-1]) * sign;
-    GCPnts_AbscissaPoint Discret( C3d, curvLength, prevU );
-    if ( !Discret.IsDone() )
-      return false;
-    double U = Discret.Parameter();
-    if ( U > first && U < last )
-      theParams.push_back( U );
-    else
-      return false;
-    prevU = U;
-  }
-  return false;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-bool StdMeshers_Regular_1D::computeInternalParameters(const TopoDS_Edge& theEdge,
-                                                      list<double> &     theParams,
-                                                      const bool         theReverse) const
-{
-  theParams.clear();
-
-  double f, l;
-  Handle(Geom_Curve) Curve = BRep_Tool::Curve(theEdge, f, l);
-  GeomAdaptor_Curve C3d(Curve);
-
-  double length = EdgeLength(theEdge);
-
-  switch( _hypType )
-  {
-  case LOCAL_LENGTH:
-  case NB_SEGMENTS: {
-
-    double eltSize = 1;
-    if ( _hypType == LOCAL_LENGTH )
-    {
-      // Local Length hypothesis
-      double nbseg = ceil(length / _value[ BEG_LENGTH_IND ]); // integer sup
-      if (nbseg <= 0)
-        nbseg = 1;                        // degenerated edge
-      eltSize = length / nbseg;
-    }
-    else
-    {
-      // Number Of Segments hypothesis
-      switch (_ivalue[ DISTR_TYPE_IND ])
-      {
-      case StdMeshers_NumberOfSegments::DT_Scale:
-        {
-          double scale = _value[ SCALE_FACTOR_IND ];
-          if ( theReverse )
-            scale = 1. / scale;
-          double alpha = pow( scale , 1.0 / (_ivalue[ NB_SEGMENTS_IND ] - 1));
-          double factor = (l - f) / (1 - pow( alpha,_ivalue[ NB_SEGMENTS_IND ]));
-
-          int i, NbPoints = 1 + _ivalue[ NB_SEGMENTS_IND ];
-          for ( i = 2; i < NbPoints; i++ )
-          {
-            double param = f + factor * (1 - pow(alpha, i - 1));
-            theParams.push_back( param );
-          }
-          return true;
-        }
-        break;
-      case StdMeshers_NumberOfSegments::DT_TabFunc:
-        {
-          TabFunction func(_vvalue[ TAB_FUNC_IND ], (bool)_ivalue[ EXP_MODE_IND ]);
-          return computeParamByFunc(C3d, f, l, length, theReverse,
-                                    _ivalue[ NB_SEGMENTS_IND ], func,
-                                    theParams);
-        }
-        break;
-      case StdMeshers_NumberOfSegments::DT_ExprFunc:
-        {
-          ExprFunction func(_svalue[ EXPR_FUNC_IND ].c_str(), (bool)_ivalue[ EXP_MODE_IND ]);
-          return computeParamByFunc(C3d, f, l, length, theReverse,
-                                    _ivalue[ NB_SEGMENTS_IND ], func,
-                                    theParams);
-        }
-        break;
-      case StdMeshers_NumberOfSegments::DT_Regular:
-        eltSize = length / _ivalue[ NB_SEGMENTS_IND ];
-        break;
-      default:
-        return false;
-      }
-    }
-
-    GCPnts_UniformAbscissa Discret(C3d, eltSize, f, l);
-    if ( !Discret.IsDone() )
-      return false;
-
-    int NbPoints = Discret.NbPoints();
-    for ( int i = 2; i < NbPoints; i++ )
-    {
-      double param = Discret.Parameter(i);
-      theParams.push_back( param );
-    }
-    return true;
-  }
-
-  case BEG_END_LENGTH: {
-
-    // geometric progression: SUM(n) = ( a1 - an * q ) / ( 1 - q ) = length
-
-    double a1 = _value[ BEG_LENGTH_IND ];
-    double an = _value[ END_LENGTH_IND ];
-    double q  = ( length - a1 ) / ( length - an );
-
-    double U1 = theReverse ? l : f;
-    double Un = theReverse ? f : l;
-    double param = U1;
-    double eltSize = theReverse ? -a1 : a1;
-    while ( 1 ) {
-      // computes a point on a curve <C3d> at the distance <eltSize>
-      // from the point of parameter <param>.
-      GCPnts_AbscissaPoint Discret( C3d, eltSize, param );
-      if ( !Discret.IsDone() ) break;
-      param = Discret.Parameter();
-      if ( param > f && param < l )
-        theParams.push_back( param );
-      else
-        break;
-      eltSize *= q;
-    }
-    compensateError( a1, an, U1, Un, length, C3d, theParams );
-    return true;
-  }
-
-  case ARITHMETIC_1D: {
-
-    // arithmetic progression: SUM(n) = ( an - a1 + q ) * ( a1 + an ) / ( 2 * q ) = length
-
-    double a1 = _value[ BEG_LENGTH_IND ];
-    double an = _value[ END_LENGTH_IND ];
-
-    double  q = ( an - a1 ) / ( 2 *length/( a1 + an ) - 1 );
-    int     n = int( 1 + ( an - a1 ) / q );
-
-    double U1 = theReverse ? l : f;
-    double Un = theReverse ? f : l;
-    double param = U1;
-    double eltSize = a1;
-    if ( theReverse ) {
-      eltSize = -eltSize;
-      q = -q;
-    }
-    while ( n-- > 0 && eltSize * ( Un - U1 ) > 0 ) {
-      // computes a point on a curve <C3d> at the distance <eltSize>
-      // from the point of parameter <param>.
-      GCPnts_AbscissaPoint Discret( C3d, eltSize, param );
-      if ( !Discret.IsDone() ) break;
-      param = Discret.Parameter();
-      if ( param > f && param < l )
-        theParams.push_back( param );
-      else
-        break;
-      eltSize += q;
-    }
-    compensateError( a1, an, U1, Un, length, C3d, theParams );
-
-    return true;
-  }
-
-  case DEFLECTION: {
-
-    GCPnts_UniformDeflection Discret(C3d, _value[ DEFLECTION_IND ], true);
-    if ( !Discret.IsDone() )
-      return false;
-
-    int NbPoints = Discret.NbPoints();
-    for ( int i = 2; i < NbPoints; i++ )
-    {
-      double param = Discret.Parameter(i);
-      theParams.push_back( param );
-    }
-    return true;
-    
-  }
-
-  default:;
-  }
-
-  return false;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
-{
-  MESSAGE("StdMeshers_Regular_1D::Compute");
-
-  if ( _hypType == NONE )
-    return false;
-
-  SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
-  aMesh.GetSubMesh(aShape);
-
-  const TopoDS_Edge & EE = TopoDS::Edge(aShape);
-  TopoDS_Edge E = TopoDS::Edge(EE.Oriented(TopAbs_FORWARD));
-
-  double f, l;
-  Handle(Geom_Curve) Curve = BRep_Tool::Curve(E, f, l);
-
-  TopoDS_Vertex VFirst, VLast;
-  TopExp::Vertices(E, VFirst, VLast);   // Vfirst corresponds to f and Vlast to l
-
-  ASSERT(!VFirst.IsNull());
-  SMDS_NodeIteratorPtr lid= aMesh.GetSubMesh(VFirst)->GetSubMeshDS()->GetNodes();
-  if (!lid->more())
-  {
-    MESSAGE (" NO NODE BUILT ON VERTEX ");
-    return false;
-  }
-  const SMDS_MeshNode * idFirst = lid->next();
-
-  ASSERT(!VLast.IsNull());
-  lid=aMesh.GetSubMesh(VLast)->GetSubMeshDS()->GetNodes();
-  if (!lid->more())
-  {
-    MESSAGE (" NO NODE BUILT ON VERTEX ");
-    return false;
-  }
-  const SMDS_MeshNode * idLast = lid->next();
-
-  if (!Curve.IsNull())
-  {
-    list< double > params;
-    bool reversed = false;
-    if ( !_mainEdge.IsNull() )
-      reversed = aMesh.IsReversedInChain( EE, _mainEdge );
-    try {
-      if ( ! computeInternalParameters( E, params, reversed ))
-        return false;
-    }
-    catch ( Standard_Failure ) {
-      return false;
-    }
-
-    // edge extrema (indexes : 1 & NbPoints) already in SMDS (TopoDS_Vertex)
-    // only internal nodes receive an edge position with param on curve
-
-    const SMDS_MeshNode * idPrev = idFirst;
-    
-    for (list<double>::iterator itU = params.begin(); itU != params.end(); itU++)
-    {
-      double param = *itU;
-      gp_Pnt P = Curve->Value(param);
-
-      //Add the Node in the DataStructure
-      SMDS_MeshNode * node = meshDS->AddNode(P.X(), P.Y(), P.Z());
-      meshDS->SetNodeOnEdge(node, E);
-
-      // **** edgePosition associe au point = param. 
-      SMDS_EdgePosition* epos =
-        dynamic_cast<SMDS_EdgePosition *>(node->GetPosition().get());
-      epos->SetUParameter(param);
-
-      SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, node);
-      meshDS->SetMeshElementOnShape(edge, E);
-      idPrev = node;
-    }
-    SMDS_MeshEdge* edge = meshDS->AddEdge(idPrev, idLast);
-    meshDS->SetMeshElementOnShape(edge, E);
-  }
-  else
-  {
-    // Edge is a degenerated Edge : We put n = 5 points on the edge.
-    int NbPoints = 5;
-    BRep_Tool::Range(E, f, l);
-    double du = (l - f) / (NbPoints - 1);
-    //MESSAGE("************* Degenerated edge! *****************");
-
-    TopoDS_Vertex V1, V2;
-    TopExp::Vertices(E, V1, V2);
-    gp_Pnt P = BRep_Tool::Pnt(V1);
-
-    const SMDS_MeshNode * idPrev = idFirst;
-    for (int i = 2; i < NbPoints; i++)
-    {
-      double param = f + (i - 1) * du;
-      SMDS_MeshNode * node = meshDS->AddNode(P.X(), P.Y(), P.Z());
-      meshDS->SetNodeOnEdge(node, E);
-
-      SMDS_EdgePosition* epos =
-        dynamic_cast<SMDS_EdgePosition*>(node->GetPosition().get());
-      epos->SetUParameter(param);
-
-      SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, node);
-      meshDS->SetMeshElementOnShape(edge, E);
-      idPrev = node;
-    }
-    SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, idLast);
-    meshDS->SetMeshElementOnShape(edge, E);
-  }
-  return true;
-}
-
-//=============================================================================
-/*!
- *  See comments in SMESH_Algo.cxx
- */
-//=============================================================================
-
-const list <const SMESHDS_Hypothesis *> & StdMeshers_Regular_1D::GetUsedHypothesis(
-       SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
-{
-  _usedHypList.clear();
-  _usedHypList = GetAppliedHypothesis(aMesh, aShape);  // copy
-  int nbHyp = _usedHypList.size();
-  _mainEdge.Nullify();
-  if (nbHyp == 0)
-  {
-    // Check, if propagated from some other edge
-    if (aShape.ShapeType() == TopAbs_EDGE &&
-        aMesh.IsPropagatedHypothesis(aShape, _mainEdge))
-    {
-      // Propagation of 1D hypothesis from <aMainEdge> on this edge
-      //_usedHypList = GetAppliedHypothesis(aMesh, _mainEdge); // copy
-      // use a general method in order not to nullify _mainEdge
-      _usedHypList = SMESH_Algo::GetUsedHypothesis(aMesh, _mainEdge);  // copy
-      nbHyp = _usedHypList.size();
-    }
-  }
-  if (nbHyp == 0)
-  {
-    TopTools_ListIteratorOfListOfShape ancIt( aMesh.GetAncestors( aShape ));
-    for (; ancIt.More(); ancIt.Next())
-    {
-      const TopoDS_Shape& ancestor = ancIt.Value();
-      _usedHypList = GetAppliedHypothesis(aMesh, ancestor);    // copy
-      nbHyp = _usedHypList.size();
-      if (nbHyp == 1)
-        break;
-    }
-  }
-  if (nbHyp > 1)
-    _usedHypList.clear();      //only one compatible hypothesis allowed
-  return _usedHypList;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & StdMeshers_Regular_1D::SaveTo(ostream & save)
-{
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & StdMeshers_Regular_1D::LoadFrom(istream & load)
-{
-  return load;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator <<(ostream & save, StdMeshers_Regular_1D & hyp)
-{
-  return hyp.SaveTo( save );
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >>(istream & load, StdMeshers_Regular_1D & hyp)
-{
-  return hyp.LoadFrom( load );
-}
diff --git a/src/StdMeshers/StdMeshers_Regular_1D.hxx b/src/StdMeshers/StdMeshers_Regular_1D.hxx
deleted file mode 100644 (file)
index b02e210..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Regular_1D.hxx
-//           Moved here from SMESH_Regular_1D.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_REGULAR_1D_HXX_
-#define _SMESH_REGULAR_1D_HXX_
-
-#include "SMESH_1D_Algo.hxx"
-
-class TopoDS_Edge;
-
-class StdMeshers_Regular_1D:
-  public SMESH_1D_Algo
-{
-public:
-  StdMeshers_Regular_1D(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~StdMeshers_Regular_1D();
-
-  virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
-                               const TopoDS_Shape& aShape,
-                               SMESH_Hypothesis::Hypothesis_Status& aStatus);
-
-  virtual bool Compute(SMESH_Mesh& aMesh,
-                      const TopoDS_Shape& aShape);
-
-  virtual const std::list <const SMESHDS_Hypothesis *> &
-    GetUsedHypothesis(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape);
-
-  ostream & SaveTo(ostream & save);
-  istream & LoadFrom(istream & load);
-  friend ostream & operator << (ostream & save, StdMeshers_Regular_1D & hyp);
-  friend istream & operator >> (istream & load, StdMeshers_Regular_1D & hyp);
-
-protected:
-
-  virtual bool computeInternalParameters (const TopoDS_Edge&    theEdge,
-                                          std::list< double > & theParameters,
-                                          const bool            theReverse) const;
-
-  enum HypothesisType { LOCAL_LENGTH, NB_SEGMENTS, BEG_END_LENGTH, DEFLECTION, ARITHMETIC_1D, NONE };
-
-  enum ValueIndex {
-    SCALE_FACTOR_IND = 0,
-    BEG_LENGTH_IND   = 0,
-    END_LENGTH_IND   = 1,
-    DEFLECTION_IND   = 0
-    };
-
-  enum IValueIndex {
-    NB_SEGMENTS_IND  = 0,
-    DISTR_TYPE_IND   = 1,
-    EXP_MODE_IND     = 2
-  };
-
-  enum VValueIndex {
-    TAB_FUNC_IND  = 0
-  };
-
-  enum SValueIndex {
-    EXPR_FUNC_IND  = 0
-  };
-
-  HypothesisType _hypType;
-
-  double _value[2];
-  int    _ivalue[3];
-  std::vector<double> _vvalue[1];
-  std::string         _svalue[1];
-
-  // a source of propagated hypothesis, is set by CheckHypothesis()
-  // always called before Compute()
-  TopoDS_Shape _mainEdge;
-};
-
-#endif
diff --git a/src/StdMeshers/StdMeshers_StartEndLength.cxx b/src/StdMeshers/StdMeshers_StartEndLength.cxx
deleted file mode 100644 (file)
index 1d70162..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-//  SMESH StdMeshers_StartEndLength : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_StartEndLength.cxx
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-
-#include "StdMeshers_StartEndLength.hxx"
-#include "utilities.h"
-
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_StartEndLength::StdMeshers_StartEndLength(int         hypId,
-                                                     int         studyId,
-                                                     SMESH_Gen * gen)
-     :SMESH_Hypothesis(hypId, studyId, gen)
-{
-  _begLength = 1.;
-  _endLength = 1.;
-  _name = "StartEndLength";
-  _param_algo_dim = 1; // is used by SMESH_Regular_1D
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_StartEndLength::~StdMeshers_StartEndLength()
-{
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void StdMeshers_StartEndLength::SetLength(double length, bool isStartLength)
-     throw(SALOME_Exception)
-{
-  if ( (isStartLength ? _begLength : _endLength) != length ) {
-    if (length <= 0)
-      throw SALOME_Exception(LOCALIZED("length must be positive"));
-    if ( isStartLength )
-      _begLength = length;
-    else
-      _endLength = length;
-
-    NotifySubMeshesHypothesisModification();
-  }
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-double StdMeshers_StartEndLength::GetLength(bool isStartLength) const
-{
-  return isStartLength ? _begLength : _endLength;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & StdMeshers_StartEndLength::SaveTo(ostream & save)
-{
-  save << _begLength << " " <<_endLength;
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & StdMeshers_StartEndLength::LoadFrom(istream & load)
-{
-  bool isOK = true;
-  isOK = (load >> _begLength);
-  if (!isOK)
-    load.clear(ios::badbit | load.rdstate());
-  isOK = (load >> _endLength);
-  if (!isOK)
-    load.clear(ios::badbit | load.rdstate());
-  return load;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator <<(ostream & save, StdMeshers_StartEndLength & hyp)
-{
-  return hyp.SaveTo( save );
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >>(istream & load, StdMeshers_StartEndLength & hyp)
-{
-  return hyp.LoadFrom( load );
-}
diff --git a/src/StdMeshers/StdMeshers_StartEndLength.hxx b/src/StdMeshers/StdMeshers_StartEndLength.hxx
deleted file mode 100644 (file)
index 05bd2e0..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-//  SMESH StdMeshers : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_StartEndLength.hxx
-//  Module : SMESH
-//  $Header$
-
-#ifndef _STDMESHERS_STARTENDLENGTH_HXX_
-#define _STDMESHERS_STARTENDLENGTH_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-class StdMeshers_StartEndLength:public SMESH_Hypothesis
-{
- public:
-  StdMeshers_StartEndLength(int hypId, int studyId, SMESH_Gen * gen);
-  virtual ~ StdMeshers_StartEndLength();
-
-  void SetLength(double length, bool isStartLength) throw(SALOME_Exception);
-
-  double GetLength(bool isStartLength) const;
-  
-  virtual ostream & SaveTo(ostream & save);
-  virtual istream & LoadFrom(istream & load);
-  friend ostream & operator <<(ostream & save, StdMeshers_StartEndLength & hyp);
-  friend istream & operator >>(istream & load, StdMeshers_StartEndLength & hyp);
-
- protected:
-  double _begLength, _endLength;
-};
-
-#endif
diff --git a/src/StdMeshersGUI/Makefile.in b/src/StdMeshersGUI/Makefile.in
deleted file mode 100644 (file)
index 9e0d503..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-#  SMESH StdMeshersGUI : GUI for StdMeshers plugin
-#
-#  Copyright (C) 2003  CEA
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-#
-#
-#
-#  File   : Makefile.in
-#  Author : Julia DOROVSKIKH
-#  Module : SMESH
-#  $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@top_srcdir@/idl:$(top_builddir)/idl:${KERNEL_ROOT_DIR}/idl/salome:${MED_ROOT_DIR}/idl/salome
-
-
-@COMMENCE@
-
-# .po files to transform in .qm
- PO_FILES = \
-       StdMeshers_images.po \
-       StdMeshers_msg_en.po
-
-# Libraries targets
-LIB = libStdMeshersGUI.la
-LIB_SRC = \
-       StdMeshersGUI.cxx \
-       StdMeshersGUI_CreateHypothesisDlg.cxx \
-       StdMeshersGUI_CreateStdHypothesisDlg.cxx \
-       StdMeshersGUI_Parameters.cxx
-
-LIB_MOC = \
-       StdMeshersGUI_CreateHypothesisDlg.h \
-       StdMeshersGUI_CreateStdHypothesisDlg.h 
-
-EXPORT_HEADERS = StdMeshersGUI_CreateHypothesisDlg.h \
-                StdMeshersGUI_Parameters.h
-
-LIB_CLIENT_IDL = \
-       SALOME_Exception.idl \
-       SMESH_Hypothesis.idl \
-       SMESH_BasicHypothesis.idl
-
-## pb in dependencies search
-LIB_CLIENT_IDL += \
-       SALOME_GenericObj.idl \
-       SALOME_Component.idl \
-       GEOM_Gen.idl
-
-LIB_SERVER_IDL = 
-
-# additionnal information to compil and link file
-
-CPPFLAGS += $(QT_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(OCC_INCLUDES) $(PYTHON_INCLUDES) \
-            -I${KERNEL_ROOT_DIR}/include/salome -I${GUI_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome \
-            $(BOOST_CPPFLAGS)
-CXXFLAGS += -I${KERNEL_ROOT_DIR}/include/salome -I${GUI_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome
-#$(OCC_CXXFLAGS)
-
-LDFLAGS += -lSMESH -lVTKViewer -lSalomeApp -lSMESHObject -lSMESHFiltersSelection $(OCC_KERNEL_LIBS) -lTKBO -L${KERNEL_ROOT_DIR}/lib/salome -L${GEOM_ROOT_DIR}/lib/salome -L${GUI_ROOT_DIR}/lib/salome
-
-@CONCLUDE@
diff --git a/src/StdMeshersGUI/StdMeshersGUI.cxx b/src/StdMeshersGUI/StdMeshersGUI.cxx
deleted file mode 100644 (file)
index fa48527..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-//  SMESH StdMeshersGUI : GUI for plugged-in meshers
-//
-//  Copyright (C) 2003  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : StdMeshersGUI.cxx
-//  Author : Julia DOROVSKIKH
-//  Module : SMESH
-//  $Header$
-
-#include "SALOMEconfig.h"
-#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_Hypotheses.h"
-#include "SMESHGUI_HypothesesUtils.h"
-
-#include "SMESHGUI_aParameterDlg.h"
-#include "StdMeshersGUI_Parameters.h"
-#include "StdMeshersGUI_CreateStdHypothesisDlg.h"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_ResourceMgr.h"
-
-#include <SalomeApp_Tools.h>
-
-#include <qobject.h>
-
-#include "utilities.h"
-
-using namespace std;
-
-//=============================================================================
-/*! class HypothesisCreator
- *
- */
-//=============================================================================
-class StdMeshersGUI_HypothesisCreator : public SMESHGUI_GenericHypothesisCreator
-{
- public:
-  StdMeshersGUI_HypothesisCreator (const QString& aHypType,
-                                   const QString& aServerLibName,
-                                   SMESHGUI* aSMESHGUI)
-    : myHypType(aHypType),
-    myServerLibName(aServerLibName),
-    mySMESHGUI(aSMESHGUI) {}
-
-  virtual void CreateHypothesis (const bool isAlgo, QWidget* parent = 0);
-  virtual void EditHypothesis (SMESH::SMESH_Hypothesis_ptr theHyp);
-
- private:
-  QString   myHypType;
-  QString   myServerLibName;
-  SMESHGUI* mySMESHGUI;
-};
-
-//=============================================================================
-/*! HypothesisCreator::CreateHypothesis
- *
- */
-//=============================================================================
-void StdMeshersGUI_HypothesisCreator::CreateHypothesis
-                                      (bool isAlgo, QWidget* parent)
-{
-  MESSAGE("StdMeshersGUI_HypothesisCreator::CreateHypothesis");
-
-  // Get default name for hypothesis/algorithm creation
-  char* sHypType = (char*)myHypType.latin1();
-  HypothesisData* aHypData = SMESH::GetHypothesisData(sHypType);
-  QString aHypName;
-  if (aHypData)
-    aHypName = aHypData->Label;
-  else
-    aHypName = myHypType;
-
-  // Create hypothesis/algorithm
-  if (isAlgo)
-  {
-    SMESH::CreateHypothesis(myHypType, aHypName, isAlgo);
-  }
-  else
-  {
-    if ( StdMeshersGUI_Parameters::HasParameters( myHypType ))
-    {
-      // Show Dialog for hypothesis creation
-      StdMeshersGUI_CreateStdHypothesisDlg *aDlg =
-          new StdMeshersGUI_CreateStdHypothesisDlg(myHypType, parent, "");
-      /* Move widget on the botton right corner of main widget */
-//       int x, y ;
-//       mySMESHGUI->DefineDlgPosition( aDlg, x, y ) ;
-//       aDlg->move( x, y ) ;
-      aDlg->exec() ; /* displays Dialog */
-    }
-    else
-      SMESH::CreateHypothesis(myHypType, aHypName, isAlgo); // without GUI
-  }
-}
-
-//=============================================================================
-/*! HypothesisCreator::EditHypothesis
- *
- */
-//=============================================================================
-void StdMeshersGUI_HypothesisCreator::EditHypothesis
-                                      (SMESH::SMESH_Hypothesis_ptr theHyp)
-{
-  MESSAGE("StdMeshersGUI_HypothesisCreator::EditHypothesis");
-
-  SMESH::SObjectList listSOmesh = SMESH::GetMeshesUsingAlgoOrHypothesis(theHyp);
-
-  list<SMESHGUI_aParameterPtr> paramList;
-  StdMeshersGUI_Parameters::GetParameters( theHyp, paramList );
-
-  bool modified = false;
-  if ( SMESHGUI_aParameterDlg::Parameters( SMESHGUI::GetSMESHGUI(), paramList, QObject::tr("SMESH_VALUE")) )
-  {
-    try
-    {
-      modified = StdMeshersGUI_Parameters::SetParameters( theHyp, paramList );
-    }
-    catch (const SALOME::SALOME_Exception& S_ex)
-    {
-      SalomeApp_Tools::QtCatchCorbaException(S_ex);
-      return;
-    }    
-  }
-
-  if ( modified ) {
-    //set new Attribute Comment for hypothesis which parameters were modified
-    QString aParams = "";
-    StdMeshersGUI_Parameters::GetParameters( theHyp, paramList, aParams );
-    _PTR(SObject) SHyp = SMESH::FindSObject(theHyp);
-    if (SHyp)
-      if (!aParams.isEmpty()) {
-       SMESH::SetValue(SHyp, aParams);
-       //mySMESHGUI->GetActiveStudy()->updateObjBrowser(true);
-      }    
-
-    if ( listSOmesh.size() > 0 ) {
-      _PTR(SObject) submSO = listSOmesh[0];
-      SMESH::SMESH_Mesh_var aMesh =
-        SMESH::SObjectToInterface<SMESH::SMESH_Mesh>(submSO);
-      SMESH::SMESH_subMesh_var aSubMesh =
-        SMESH::SObjectToInterface<SMESH::SMESH_subMesh>(submSO);
-      if ( !aSubMesh->_is_nil() )
-        aMesh = aSubMesh->GetFather();
-      _PTR(SObject) meshSO = SMESH::FindSObject( aMesh );
-      SMESH::ModifiedMesh( meshSO, false);
-    }
-  }
-}
-
-//=============================================================================
-/*! GetHypothesisCreator
- *
- */
-//=============================================================================
-extern "C"
-{
-  SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator
-    (QString aHypType, QString aServerLibName, SMESHGUI* aSMESHGUI)
-    {
-      return new StdMeshersGUI_HypothesisCreator
-        (aHypType, aServerLibName, aSMESHGUI);
-    }
-}
diff --git a/src/StdMeshersGUI/StdMeshersGUI_CreateHypothesisDlg.cxx b/src/StdMeshersGUI/StdMeshersGUI_CreateHypothesisDlg.cxx
deleted file mode 100644 (file)
index d399b59..0000000
+++ /dev/null
@@ -1,435 +0,0 @@
-//  SMESH StdMeshersGUI : GUI for StdMeshers plugin
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshersGUI_CreateHypothesisDlg.cxx
-//           Moved here from SMESHGUI_CreateHypothesisDlg.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#include "StdMeshersGUI_CreateHypothesisDlg.h"
-#include "StdMeshersGUI_Parameters.h"
-#include "SMESHGUI.h"
-#include "SMESHGUI_SpinBox.h"
-#include "SMESHGUI_Hypotheses.h"
-#include "SMESHGUI_HypothesesUtils.h"
-#include "SMESHGUI_Utils.h"
-
-#include "SUIT_Application.h"
-#include "SUIT_Desktop.h"
-#include "SUIT_MessageBox.h"
-#include "SUIT_OverrideCursor.h"
-#include "utilities.h"
-
-#include "SalomeApp_Tools.h"
-#include "SalomeApp_Application.h"
-
-#include "OB_Browser.h"
-
-// QT Includes
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qlayout.h>
-#include <qpixmap.h>
-#include <qspinbox.h>
-#include <qtextedit.h>
-#include <qcombobox.h>
-#include <qcheckbox.h>
-
-using namespace std;
-
-//=================================================================================
-// class    : StdMeshersGUI_CreateHypothesisDlg()
-// purpose  : Constructs a StdMeshersGUI_CreateHypothesisDlg which is a child of 'parent', with the 
-//            name 'name' and widget flags set to 'f'.
-//            The dialog will by default be modeless, unless you set 'modal' to
-//            TRUE to construct a modal dialog.
-//=================================================================================
-StdMeshersGUI_CreateHypothesisDlg::StdMeshersGUI_CreateHypothesisDlg (const QString& hypType,
-                                                                      QWidget* parent,
-                                                                      const char* name,
-                                                                      bool modal,
-                                                                      WFlags /*fl*/)
-     : QDialog (parent, name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose), myHypType( hypType )
-{
-}
-
-//=======================================================================
-//function : CreateDlgLayout
-//purpose  : 
-//=======================================================================
-
-void StdMeshersGUI_CreateHypothesisDlg::CreateDlgLayout(const QString & theCaption,
-                                                        const QPixmap & theHypIcon,
-                                                        const QString & theHypTypeName)
-{
-  setCaption( theCaption );
-
-  setSizeGripEnabled( TRUE );
-  QVBoxLayout* StdMeshersGUI_CreateHypothesisDlgLayout = new QVBoxLayout( this ); 
-  StdMeshersGUI_CreateHypothesisDlgLayout->setSpacing( 6 );
-  StdMeshersGUI_CreateHypothesisDlgLayout->setMargin( 11 );
-
-  /***************************************************************/
-  QFrame* titFrame = new QFrame( this );
-  QHBoxLayout* titLay = new QHBoxLayout( titFrame, 0, 0 );
-  
-  iconLabel = new QLabel( titFrame );
-  iconLabel->setPixmap( theHypIcon );
-  iconLabel->setScaledContents( false );
-  iconLabel->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
-  typeLabel = new QLabel( titFrame );
-  typeLabel->setText( theHypTypeName );
-  titLay->addWidget( iconLabel, 0 );
-  titLay->addWidget( typeLabel, 0 );
-  titLay->addStretch( 1 );
-  
-  StdMeshersGUI_CreateHypothesisDlgLayout->addWidget( titFrame, 0);
-    
-  /***************************************************************/
-  GroupC1 = new QGroupBox( this, "GroupC1" );
-  GroupC1->setTitle( tr( "SMESH_ARGUMENTS"  ) );
-  GroupC1->setColumnLayout(0, Qt::Vertical );
-  GroupC1->layout()->setSpacing( 0 );
-  GroupC1->layout()->setMargin( 0 );
-  QGridLayout* GroupC1Layout = new QGridLayout( GroupC1->layout() );
-  GroupC1Layout->setAlignment( Qt::AlignTop );
-  GroupC1Layout->setSpacing( 6 );
-  GroupC1Layout->setMargin( 11 );
-
-  TextLabel_NameHypothesis = new QLabel( GroupC1, "TextLabel_NameHypothesis" );
-  TextLabel_NameHypothesis->setText( tr( "SMESH_NAME"  ) );
-  GroupC1Layout->addWidget( TextLabel_NameHypothesis, 0, 0 );
-
-  LineEdit_NameHypothesis = new QLineEdit( GroupC1, "LineEdit_NameHypothesis" );
-  GroupC1Layout->addWidget( LineEdit_NameHypothesis, 0, 1 );
-
-  myParamMap.clear();
-  std::list<SMESHGUI_aParameterPtr> aParamList;
-  GetParameters( myHypType, aParamList );
-  ASSERT( !aParamList.empty() );
-
-  /* Spin boxes with labels */
-  list<SMESHGUI_aParameterPtr>::iterator paramIt = aParamList.begin();
-  for ( int row = 1; paramIt != aParamList.end(); paramIt++ , row++ )
-  {
-    SMESHGUI_aParameterPtr param = (*paramIt);
-    QLabel * label = new QLabel( GroupC1, "TextLabel" );
-    GroupC1Layout->addWidget( label, row, 0 );
-    label->setText( param->Label() );
-    QWidget* aWidget = param->CreateWidget( GroupC1 );
-
-    if ( aWidget ) {
-      GroupC1Layout->addWidget( aWidget, row, 1 );
-      aWidget->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ) );
-      aWidget->setMinimumSize( 150, 0 );
-
-      QString sig = param->sigValueChanged();
-      if( !sig.isEmpty() && param->GetType()!=SMESHGUI_aParameter::TABLE )
-        connect( aWidget, sig.latin1(), this, SLOT( onValueChanged() ) );
-         
-      param->InitializeWidget( aWidget );
-
-      ParamInfo info;
-      info.editor = aWidget;
-      info.label = label;
-      info.order = row-1;
-      
-      myParamMap.insert( param, info );
-    }
-  }
-  
-  StdMeshersGUI_CreateHypothesisDlgLayout->addWidget( GroupC1, 1 );
-
-  /***************************************************************/
-  GroupButtons = new QGroupBox( this, "GroupButtons" );
-  GroupButtons->setColumnLayout(0, Qt::Vertical );
-  GroupButtons->layout()->setSpacing( 0 );
-  GroupButtons->layout()->setMargin( 0 );
-  QGridLayout* GroupButtonsLayout = new QGridLayout( GroupButtons->layout() );
-  GroupButtonsLayout->setAlignment( Qt::AlignTop );
-  GroupButtonsLayout->setSpacing( 6 );
-  GroupButtonsLayout->setMargin( 11 );
-  buttonOk = new QPushButton( GroupButtons, "buttonOk" );
-  buttonOk->setText( tr( "SMESH_BUT_OK"  ) );
-  buttonOk->setAutoDefault( TRUE );
-  buttonOk->setDefault( TRUE );
-  GroupButtonsLayout->addWidget( buttonOk, 0, 0 );
-  buttonApply = new QPushButton( GroupButtons, "buttonApply" );
-  buttonApply->setText( tr( "SMESH_BUT_APPLY"  ) );
-  buttonApply->setAutoDefault( TRUE );
-  GroupButtonsLayout->addWidget( buttonApply, 0, 1 );
-  QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
-  GroupButtonsLayout->addItem( spacer, 0, 2 );
-  buttonCancel = new QPushButton( GroupButtons, "buttonCancel" );
-  buttonCancel->setText( tr( "SMESH_BUT_CLOSE"  ) );
-  buttonCancel->setAutoDefault( TRUE );
-  GroupButtonsLayout->addWidget( buttonCancel, 0, 3 );
-  StdMeshersGUI_CreateHypothesisDlgLayout->addWidget( GroupButtons, 0 );
-
-  /***************************************************************/
-  Init() ;
-}
-
-
-//=================================================================================
-// function : ~StdMeshersGUI_CreateHypothesisDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-StdMeshersGUI_CreateHypothesisDlg::~StdMeshersGUI_CreateHypothesisDlg()
-{
-    // no need to delete child widgets, Qt does it all for us
-}
-
-
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void StdMeshersGUI_CreateHypothesisDlg::Init()
-{
-  ParameterMap::const_iterator anIt = myParamMap.begin(),
-                               aLast = myParamMap.end();
-  for( ; anIt!=aLast; anIt++ )
-    UpdateShown( anIt.key() );
-   
-  mySMESHGUI = SMESHGUI::GetSMESHGUI() ;
-
-  char* sHypType = const_cast<char*>(myHypType.latin1());
-  HypothesisData* aHypData = SMESH::GetHypothesisData(sHypType);
-  LineEdit_NameHypothesis->setText( aHypData ? aHypData->Label : QString("") );
-
-  mySMESHGUI->SetActiveDialogBox( (QDialog*)this );
-
-  /* signals and slots connections */
-  connect( buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()) );
-  connect( buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()) ) ;
-  connect( buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()) );
-
-  connect( mySMESHGUI, SIGNAL ( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ) ;  
-  connect( mySMESHGUI, SIGNAL ( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ) ;
-
-  /* Move widget on the botton right corner of main widget */
-  int x, y ;
-  mySMESHGUI->DefineDlgPosition( this, x, y ) ;
-  this->move( x, y ) ;
-  this->show() ; /* displays Dialog */
-}
-
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  :
-//=================================================================================
-void StdMeshersGUI_CreateHypothesisDlg::ClickOnOk()
-{
-  if ( ClickOnApply() )
-    ClickOnCancel() ;
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-bool StdMeshersGUI_CreateHypothesisDlg::ClickOnApply()
-{
-  if ( !mySMESHGUI || mySMESHGUI->isActiveStudyLocked() )
-    return false;
-
-  QString myHypName = LineEdit_NameHypothesis->text().stripWhiteSpace();
-  if ( myHypName.isEmpty() ) {
-    SUIT_MessageBox::warn1 (this, tr( "SMESH_WRN_WARNING" ),
-                           tr( "SMESH_WRN_EMPTY_NAME" ), tr( "SMESH_BUT_OK" ) );
-    return false;
-  }
-
-  SUIT_OverrideCursor wc;
-
-  SMESH::SMESH_Hypothesis_var Hyp = SMESH::SMESH_Hypothesis::_narrow
-      ( SMESH::CreateHypothesis( myHypType, myHypName, false ) ); // isAlgorithm
-  
-  try {
-
-    list<SMESHGUI_aParameterPtr> aParamList;
-    ParameterMap::const_iterator anIt = myParamMap.begin(),
-                                 aLast = myParamMap.end();
-    for( int i=0; i<myParamMap.count(); i++ )
-      for( anIt=myParamMap.begin(); anIt!=aLast; anIt++ )
-        if( (*anIt).order==i )
-        {
-          anIt.key()->TakeValue( anIt.data().editor );
-          aParamList.push_back( anIt.key() );
-         break;
-        }
-
-    SetParameters( Hyp, aParamList );
-
-    //set new Attribute Comment for hypothesis which parameters were set
-    QString aParams = "";
-    StdMeshersGUI_Parameters::GetParameters( Hyp.in(), aParamList, aParams );
-    _PTR(SObject) SHyp = SMESH::FindSObject(Hyp.in());
-    if (SHyp)
-      if (!aParams.isEmpty())
-      {
-        SMESH::SetValue(SHyp, aParams);
-        mySMESHGUI->getApp()->objectBrowser()->updateTree();
-      }
-  }
-  catch (const SALOME::SALOME_Exception& S_ex)
-  {
-    wc.suspend();
-
-    _PTR(SObject) SHyp = SMESH::FindSObject(Hyp.in());
-    _PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
-    if( aStudy && !aStudy->GetProperties()->IsLocked() )
-    {
-      _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
-      aBuilder->RemoveObjectWithChildren( SHyp );
-      mySMESHGUI->updateObjBrowser( true, 0 );
-    }
-    
-    SalomeApp_Tools::QtCatchCorbaException(S_ex);
-    return false;
-  }
-  return true;
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void StdMeshersGUI_CreateHypothesisDlg::ClickOnCancel()
-{
-  close();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void StdMeshersGUI_CreateHypothesisDlg::DeactivateActiveDialog()
-{
-//   iconLabel->setEnabled(false) ;
-//   typeLabel->setEnabled(false) ;
-//   GroupC1->setEnabled(false) ;
-//   GroupButtons->setEnabled(false) ;
-  setEnabled(false);
-}
-
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void StdMeshersGUI_CreateHypothesisDlg::ActivateThisDialog()
-{
-  if (! isEnabled() ) {
-    mySMESHGUI->EmitSignalDeactivateDialog() ;   
-//     iconLabel->setEnabled(true) ;
-//     typeLabel->setEnabled(true) ;
-//     GroupC1->setEnabled(true) ;
-//     GroupButtons->setEnabled(true) ;
-    setEnabled(true) ;
-  }
-}
-
-
-//=================================================================================
-// function : enterEvent()
-// purpose  :
-//=================================================================================
-void StdMeshersGUI_CreateHypothesisDlg::enterEvent(QEvent* e)
-{
-  ActivateThisDialog() ;
-}
-
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void StdMeshersGUI_CreateHypothesisDlg::closeEvent( QCloseEvent* e )
-{
-  mySMESHGUI->ResetState();
-  QDialog::closeEvent( e );
-}
-
-//=================================================================================
-// function : onValueChanged()
-// purpose  :
-//=================================================================================
-void StdMeshersGUI_CreateHypothesisDlg::onValueChanged()
-{
-  if( sender()->inherits( "QWidget" ) )
-  {
-    QWidget* w = ( QWidget* )sender();
-
-    SMESHGUI_aParameterPtr param;
-
-    ParameterMap::const_iterator anIt = myParamMap.begin(),
-                                 aLast = myParamMap.end();
-    for( ; anIt!=aLast; anIt++ )
-      if( anIt.data().editor == w )
-      {
-        param = anIt.key();
-        param->TakeValue( w );
-        UpdateShown( param );
-        break;
-      }
-  }
-}
-
-//=================================================================================
-// function : UpdateShown()
-// purpose  :
-//=================================================================================
-void StdMeshersGUI_CreateHypothesisDlg::UpdateShown( const SMESHGUI_aParameterPtr param )
-{
-  SMESHGUI_dependParameter* depPar = dynamic_cast<SMESHGUI_enumParameter*>( param.get() );
-  if( !depPar )
-    depPar = dynamic_cast<SMESHGUI_boolParameter*>( param.get() );
-
-  if( !depPar )
-    return;
-
-  SMESHGUI_dependParameter::ShownMap& map = depPar->shownMap();
-  if( map.isEmpty() )
-    return;
-
-  int val;
-  depPar->TakeValue( myParamMap[ param ].editor );
-  depPar->GetNewInt( val );
-  
-  bool hasValue = map.contains( val );
-
-  ParameterMap::const_iterator anIt = myParamMap.begin(),
-                                aLast = myParamMap.end();
-  for( ; anIt!=aLast; anIt++ )
-  {
-    bool shown = hasValue && map[ val ].contains( (*anIt).order );
-    (*anIt).editor->setShown( shown );
-    (*anIt).label->setShown( shown );
-  }
-}
diff --git a/src/StdMeshersGUI/StdMeshersGUI_CreateHypothesisDlg.h b/src/StdMeshersGUI/StdMeshersGUI_CreateHypothesisDlg.h
deleted file mode 100644 (file)
index 3230f8e..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshersGUI_CreateHypothesisDlg.h
-//  Module : SMESH
-//  $Header$
-
-#ifndef DIALOGBOX_CreateHypothesisDlg_H
-#define DIALOGBOX_CreateHypothesisDlg_H
-
-// QT Includes
-#include <qdialog.h>
-#include <qmap.h>
-#include <qpair.h>
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
-
-#include "SMESHGUI_aParameter.h"
-
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class SMESHGUI;
-class SMESHGUI_SpinBox;
-
-//=================================================================================
-// class    : StdMeshersGUI_CreateHypothesisDlg
-// purpose  :
-//=================================================================================
-class StdMeshersGUI_CreateHypothesisDlg : public QDialog
-{ 
-    Q_OBJECT
-
-public:
-    StdMeshersGUI_CreateHypothesisDlg (const QString& hypType,
-                                      QWidget*       parent = 0,
-                                      const char*    name = 0,
-                                      bool           modal = FALSE,
-                                      WFlags         fl = 0);
-    ~StdMeshersGUI_CreateHypothesisDlg ();
-
-protected:
-
-    void CreateDlgLayout(const QString & caption,
-                        const QPixmap & hypIcon,
-                        const QString & hypTypeName);
-
-    virtual void GetParameters( const QString& hypType,
-                                std::list<SMESHGUI_aParameterPtr>& ) = 0;
-
-    virtual bool SetParameters( SMESH::SMESH_Hypothesis_ptr theHyp,
-                                                 const std::list<SMESHGUI_aParameterPtr> & params ) = 0;
-
-protected slots:
-    virtual void onValueChanged();
-    
-private:
-    void UpdateShown( const SMESHGUI_aParameterPtr );
-    void Init() ;
-    void closeEvent( QCloseEvent* e ) ;
-    void enterEvent ( QEvent * ) ;
-
-    SMESHGUI*  mySMESHGUI;
-    QString    myHypType;
-
-    typedef struct 
-    {
-      QWidget* editor;
-      QLabel*  label;
-      int      order;
-      
-    } ParamInfo;
-    
-    typedef QMap< SMESHGUI_aParameterPtr, ParamInfo > ParameterMap;
-    ParameterMap      myParamMap;
-
-    QLabel*           iconLabel;
-    QLabel*           typeLabel;
-    QGroupBox*        GroupC1;
-    QLabel*           TextLabel_NameHypothesis ;
-    QLineEdit*        LineEdit_NameHypothesis ;
-    QLabel*           TextLabel_Length ;
-    QGroupBox*        GroupButtons;
-    QPushButton*      buttonOk;
-    QPushButton*      buttonApply;
-    QPushButton*      buttonCancel;
-
-private slots:
-
-    void ClickOnOk();
-    void ClickOnCancel();
-    bool ClickOnApply();
-    void DeactivateActiveDialog() ;
-    void ActivateThisDialog() ;
-};
-
-#endif // DIALOGBOX_LOCAL_LENGTH_H
diff --git a/src/StdMeshersGUI/StdMeshersGUI_CreateStdHypothesisDlg.cxx b/src/StdMeshersGUI/StdMeshersGUI_CreateStdHypothesisDlg.cxx
deleted file mode 100644 (file)
index 5426001..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-//  SMESH StdMeshersGUI : GUI for StdMeshers plugin
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshersGUI_CreateStdHypothesisDlg.cxx
-//           Moved here from SMESHGUI_CreateStdHypothesisDlg.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshersGUI_CreateStdHypothesisDlg.h"
-#include "StdMeshersGUI_Parameters.h"
-#include "SMESHGUI.h"
-#include "SMESHGUI_Hypotheses.h"
-
-#include "utilities.h"
-
-#include "SUIT_MessageBox.h"
-#include "SUIT_ResourceMgr.h"
-#include "SUIT_OverrideCursor.h"
-#include "SUIT_Desktop.h"
-
-//=================================================================================
-// class    : StdMeshersGUI_CreateStdHypothesisDlg()
-// purpose  : 
-//=================================================================================
-StdMeshersGUI_CreateStdHypothesisDlg::StdMeshersGUI_CreateStdHypothesisDlg (const QString& hypType,
-                                                                            QWidget* parent,
-                                                                            const char* name,
-                                                                            bool /*modal*/,
-                                                                            WFlags fl)
-     : StdMeshersGUI_CreateHypothesisDlg (hypType, parent, name, true, fl)
-{
-  QString hypTypeStr;
-  if (hypType.compare("LocalLength") == 0)
-    hypTypeStr = "LOCAL_LENGTH";
-  else if (hypType.compare("NumberOfSegments") == 0)
-    hypTypeStr = "NB_SEGMENTS";
-  else if (hypType.compare("MaxElementArea") == 0)
-    hypTypeStr = "MAX_ELEMENT_AREA";
-  else if (hypType.compare("MaxElementVolume") == 0)
-    hypTypeStr = "MAX_ELEMENT_VOLUME";
-  else if (hypType.compare("StartEndLength") == 0)
-    hypTypeStr = "START_END_LENGTH";
-  else if (hypType.compare("Deflection1D") == 0)
-    hypTypeStr = "DEFLECTION1D";
-  else if (hypType.compare("Arithmetic1D") == 0)
-    hypTypeStr = "ARITHMETIC_1D";
-  else
-    return;
-
-  QString caption( tr ( QString( "SMESH_%1_TITLE" ).arg( hypTypeStr )));
-  QString hypTypeName( tr ( QString( "SMESH_%1_HYPOTHESIS" ).arg( hypTypeStr )));
-  QString hypIconName( tr ( QString( "ICON_DLG_%1" ).arg( hypTypeStr )));
-
-  CreateDlgLayout(caption,
-                  SMESHGUI::resourceMgr()->loadPixmap( "SMESH", hypIconName ),
-                  hypTypeName);
-}
-
-//=================================================================================
-// function : ~StdMeshersGUI_CreateStdHypothesisDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-StdMeshersGUI_CreateStdHypothesisDlg::~StdMeshersGUI_CreateStdHypothesisDlg()
-{
-    // no need to delete child widgets, Qt does it all for us
-}
-//=================================================================================
-// function : FillParameters()
-// purpose  :
-//=================================================================================
-void StdMeshersGUI_CreateStdHypothesisDlg::GetParameters
-  (const QString &                     hypType,
-   std::list<SMESHGUI_aParameterPtr> & params)
-{
-  StdMeshersGUI_Parameters::GetParameters( hypType, params );
-}
-
-//=================================================================================
-// function : SetParameters()
-// purpose  :
-//=================================================================================
-bool StdMeshersGUI_CreateStdHypothesisDlg::SetParameters
-  (SMESH::SMESH_Hypothesis_ptr theHyp, const list<SMESHGUI_aParameterPtr> & params)
-{
-  StdMeshersGUI_Parameters::SetParameters( theHyp, params );
-  return true;
-}
diff --git a/src/StdMeshersGUI/StdMeshersGUI_CreateStdHypothesisDlg.h b/src/StdMeshersGUI/StdMeshersGUI_CreateStdHypothesisDlg.h
deleted file mode 100644 (file)
index 027c88a..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshersGUI_CreateStdHypothesisDlg.h
-//           Moved here from SMESHGUI_CreateStdHypothesisDlg.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef DIALOGBOX_CreateStdHypothesisDlg_H
-#define DIALOGBOX_CreateStdHypothesisDlg_H
-
-#include "StdMeshersGUI_CreateHypothesisDlg.h"
-
-//=================================================================================
-// class    : StdMeshersGUI_CreateStdHypothesisDlg
-// purpose  :
-//=================================================================================
-class StdMeshersGUI_CreateStdHypothesisDlg : public StdMeshersGUI_CreateHypothesisDlg
-{ 
-  Q_OBJECT
-
- public:
-    StdMeshersGUI_CreateStdHypothesisDlg (const QString& hypType,
-                                         QWidget* parent = 0,
-                                         const char* name = 0,
-                                         bool modal = FALSE,
-                                         WFlags fl = 0);
-    ~StdMeshersGUI_CreateStdHypothesisDlg ();
-
- private:
-  virtual void GetParameters(const QString &                     hypType,
-                            std::list<SMESHGUI_aParameterPtr> & params);
-  
-  virtual bool SetParameters(SMESH::SMESH_Hypothesis_ptr               theHyp,
-                            const std::list<SMESHGUI_aParameterPtr> & params);
-};
-
-#endif
diff --git a/src/StdMeshersGUI/StdMeshersGUI_Parameters.cxx b/src/StdMeshersGUI/StdMeshersGUI_Parameters.cxx
deleted file mode 100644 (file)
index 7d52876..0000000
+++ /dev/null
@@ -1,479 +0,0 @@
-//  SMESH StdMeshersGUI : GUI for standard meshers
-//
-//  Copyright (C) 2003  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : StdMeshersGUI_Parameters.cxx
-//  Module : SMESH
-//  $Header$
-
-#include "StdMeshersGUI_Parameters.h"
-
-//#include "SMESHGUI_SpinBox.h" // for the sake of COORD_MAX, COORD_MIN definition
-
-#include <qobject.h>
-
-using namespace std;
-
-#define VALUE_MAX   1.0e+15 // COORD_MAX
-#define VALUE_MAX_2 (VALUE_MAX*VALUE_MAX)
-#define VALUE_MAX_3 (VALUE_MAX*VALUE_MAX*VALUE_MAX)
-
-#define VALUE_SMALL   1.0e-15
-#define VALUE_SMALL_2 (VALUE_SMALL*VALUE_SMALL)
-#define VALUE_SMALL_3 (VALUE_SMALL*VALUE_SMALL*VALUE_SMALL)
-
-//=======================================================================
-//function : HasParameters
-//purpose  : 
-//=======================================================================
-
-bool StdMeshersGUI_Parameters::HasParameters (const QString& hypType)
-{
-  return ((hypType.compare("LocalLength") == 0) ||
-          (hypType.compare("NumberOfSegments") == 0) ||
-          (hypType.compare("MaxElementArea") == 0) ||
-          (hypType.compare("MaxElementVolume") == 0) ||
-          (hypType.compare("StartEndLength") == 0) ||
-          (hypType.compare("Deflection1D") == 0) ||
-         (hypType.compare("Arithmetic1D") == 0));
-}
-
-//=======================================================================
-//function : SetInitValue
-//purpose  : 
-//=======================================================================
-
-void StdMeshersGUI_Parameters::SetInitValue(SMESHGUI_aParameterPtr param,
-                                            int                    initValue)
-{
-  SMESHGUI_intParameter* p = dynamic_cast<SMESHGUI_intParameter*>(param.get());
-  if ( p )
-  {
-    p->InitValue() = initValue;
-    return;
-  }
-  
-  SMESHGUI_enumParameter* q = dynamic_cast<SMESHGUI_enumParameter*>(param.get());
-  if( q )
-  {
-    q->InitValue() = initValue;
-    return;
-  }
-
-  SMESHGUI_boolParameter* b = dynamic_cast<SMESHGUI_boolParameter*>(param.get());
-  if( b )
-  {
-    b->InitValue() = (bool)initValue;
-    return;
-  }
-}
-
-//=======================================================================
-//function : SetInitValue
-//purpose  : 
-//=======================================================================
-
-void StdMeshersGUI_Parameters::SetInitValue(SMESHGUI_aParameterPtr param,
-                                            double                 initValue)
-{
-  SMESHGUI_doubleParameter* p = dynamic_cast<SMESHGUI_doubleParameter*>(param.get());
-  if ( p ) p->InitValue() = initValue;
-}
-
-//=======================================================================
-//function : SetInitValue
-//purpose  : 
-//=======================================================================
-
-void StdMeshersGUI_Parameters::SetInitValue(SMESHGUI_aParameterPtr param,
-                                            const char*            initValue)
-{
-  SMESHGUI_strParameter* p = dynamic_cast<SMESHGUI_strParameter*>(param.get());
-  if ( p ) p->InitValue() = initValue;
-}
-
-//=======================================================================
-//function : SetInitValue
-//purpose  :
-//=======================================================================
-void StdMeshersGUI_Parameters::SetInitValue( SMESHGUI_aParameterPtr param,
-                                             SMESH::double_array&   initValue)
-{
-  SMESHGUI_tableParameter* p = dynamic_cast<SMESHGUI_tableParameter*>(param.get());
-  if( p )
-  {
-    p->setRowCount( initValue.length()/2 );
-    p->setData( initValue );
-  }
-}
-
-//=======================================================================
-//function : GetParameters
-//purpose  : 
-//=======================================================================
-
-// SMESHGUI_doubleParameter( initValue, label, bottom, top, step, decimals )
-#define DOUBLE_PARAM(v,l,b,t,s,d) SMESHGUI_aParameterPtr(new SMESHGUI_doubleParameter(v,l,b,t,s,d))
-#define INT_PARAM(v,l,b,t) SMESHGUI_aParameterPtr(new SMESHGUI_intParameter(v,l,b,t))
-#define ENUM_PARAM(v,i,l) SMESHGUI_aParameterPtr(new SMESHGUI_enumParameter(v,i,l))
-#define STR_PARAM(i,l) SMESHGUI_aParameterPtr(new SMESHGUI_strParameter(i,l))
-#define BOOL_PARAM(i,l) SMESHGUI_aParameterPtr(new SMESHGUI_boolParameter(i,l))
-
-void StdMeshersGUI_Parameters::GetParameters (const QString&                 hypType,
-                                              list<SMESHGUI_aParameterPtr> & paramList )
-{
-  paramList.clear();
-
-  if (hypType.compare("LocalLength") == 0)
-  {
-    paramList.push_back( DOUBLE_PARAM (1.0,
-                                       QObject::tr("SMESH_LOCAL_LENGTH_PARAM"),
-                                       VALUE_SMALL, VALUE_MAX, 1.0, 6));
-  }
-  else if (hypType.compare("NumberOfSegments") == 0)
-  {
-    //0-th parameter in list
-    paramList.push_back ( INT_PARAM (3,
-                                     QObject::tr("SMESH_NB_SEGMENTS_PARAM"),
-                                     1, 9999 ));
-    QStringList types;
-    types.append( QObject::tr( "SMESH_DISTR_REGULAR" ) );
-    types.append( QObject::tr( "SMESH_DISTR_SCALE"   ) );
-    types.append( QObject::tr( "SMESH_DISTR_TAB"     ) );
-    types.append( QObject::tr( "SMESH_DISTR_EXPR"    ) );
-    //string description of distribution types
-
-    SMESHGUI_enumParameter* type = new SMESHGUI_enumParameter( types, 0, QObject::tr( "SMESH_DISTR_TYPE" ) );
-    SMESHGUI_dependParameter::ShownMap& aMap = type->shownMap();
-    aMap[0].append( 0 ); // if DistrType=0 (regular), then number of segments and types are shown (0-th and 1-th)
-    aMap[0].append( 1 );
-    aMap[1].append( 0 ); // if DistrType=1 (scale), then number of segments, types and scale are shown
-    aMap[1].append( 1 );
-    aMap[1].append( 2 );
-    aMap[2].append( 0 ); // if DistrType=2 (table), then number of segments, types, table and exponent are shown
-    aMap[2].append( 1 );
-    aMap[2].append( 3 );
-    aMap[2].append( 5 );
-    aMap[3].append( 0 ); // if DistrType=3 (expression), then number of segments, types, expression and exponent are shown
-    aMap[3].append( 1 );
-    aMap[3].append( 4 );
-    aMap[3].append( 5 );
-    //1-th parameter in list
-    paramList.push_back ( SMESHGUI_aParameterPtr( type ) );
-
-    //2-th parameter in list
-    paramList.push_back ( DOUBLE_PARAM (1.0,
-                                     QObject::tr("SMESH_NB_SEGMENTS_SCALE_PARAM"),
-                                     VALUE_SMALL, VALUE_MAX, 0.1, 6 ));
-    SMESHGUI_tableParameter* tab = new SMESHGUI_tableParameter( 0.0, QObject::tr( "SMESH_TAB_FUNC" ) );
-    tab->setRowCount( 5 );
-    tab->setColCount( 2 );
-    //default size of table: 5x2
-    
-    tab->setColName( 0, "t" );
-    tab->setColName( 1, "f(t)" );    
-    tab->setValidator( 0, 0.0, 1.0, 3 );
-    tab->setValidator( 1, 1E-7, 1E+300, 3 );
-    tab->setEditRows( true );
-
-    //3-th parameter in list
-    paramList.push_back ( SMESHGUI_aParameterPtr( tab ) );
-
-    //4-th parameter in list
-    paramList.push_back ( STR_PARAM ( "", QObject::tr( "SMESH_EXPR_FUNC" ) ) );
-
-    //5-th parameter in list
-    paramList.push_back ( BOOL_PARAM ( false, QObject::tr( "SMESH_EXP_MODE" ) ) );
-  }
-  else if (hypType.compare("Arithmetic1D") == 0)
-  {
-    paramList.push_back( DOUBLE_PARAM ( 1.0,
-                                      QObject::tr("SMESH_START_LENGTH_PARAM"), 
-                                      VALUE_SMALL, VALUE_MAX, 1, 6));
-    paramList.push_back( DOUBLE_PARAM ( 10.0,
-                                       QObject::tr("SMESH_END_LENGTH_PARAM"),
-                                       VALUE_SMALL, VALUE_MAX, 1, 6));
-  }
-  else if (hypType.compare("MaxElementArea") == 0)
-  {
-    paramList.push_back( DOUBLE_PARAM (1.0,
-                                       QObject::tr("SMESH_MAX_ELEMENT_AREA_PARAM"), 
-                                       VALUE_SMALL_2, VALUE_MAX_2, 1.0, 6));
-  }
-  else if (hypType.compare("MaxElementVolume") == 0)
-  {
-    paramList.push_back( DOUBLE_PARAM ( 1.0,
-                                       QObject::tr("SMESH_MAX_ELEMENT_VOLUME_PARAM"), 
-                                       VALUE_SMALL_3, VALUE_MAX_3, 1.0, 6));
-  }
-  else if (hypType.compare("StartEndLength") == 0)
-  {
-    paramList.push_back( DOUBLE_PARAM ( 1.0,
-                                      QObject::tr("SMESH_START_LENGTH_PARAM"), 
-                                      VALUE_SMALL, VALUE_MAX, 1, 6));
-    paramList.push_back( DOUBLE_PARAM ( 10.0,
-                                       QObject::tr("SMESH_END_LENGTH_PARAM"),
-                                       VALUE_SMALL, VALUE_MAX, 1, 6));
-  }
-  else if (hypType.compare("Deflection1D") == 0)
-  {
-    paramList.push_back( DOUBLE_PARAM ( 1.0,
-                                       QObject::tr("SMESH_DEFLECTION1D_PARAM"), 
-                                       VALUE_SMALL, VALUE_MAX, 1, 6));
-  }
-}
-  
-//=======================================================================
-//function : GetParameters
-//purpose  : 
-//=======================================================================
-
-void StdMeshersGUI_Parameters::GetParameters (SMESH::SMESH_Hypothesis_ptr    theHyp,
-                                              list<SMESHGUI_aParameterPtr> & paramList )
-{
-  paramList.clear();
-
-  if (theHyp->_is_nil()) return;
-
-  QString hypType = theHyp->GetName();
-  GetParameters( hypType, paramList ); // get default parameters
-  if ( paramList.empty() )
-    return;
-
-  // set current values
-  if (hypType.compare("LocalLength") == 0)
-  {
-    StdMeshers::StdMeshers_LocalLength_var LL =
-      StdMeshers::StdMeshers_LocalLength::_narrow(theHyp);
-    SetInitValue( paramList.front(), LL->GetLength() );
-  }
-  else if (hypType.compare("NumberOfSegments") == 0)
-  {
-    StdMeshers::StdMeshers_NumberOfSegments_var NOS =
-      StdMeshers::StdMeshers_NumberOfSegments::_narrow(theHyp);
-      
-    list<SMESHGUI_aParameterPtr>::iterator anIt = paramList.begin();
-    SetInitValue( *anIt, (int) NOS->GetNumberOfSegments()); anIt++;
-    int DType = (int) NOS->GetDistrType();
-    SetInitValue( *anIt, DType ); anIt++;
-    
-    if( DType==1 )
-      SetInitValue( *anIt, NOS->GetScaleFactor());
-    anIt++;
-
-    if( DType==2 )
-    {
-      SMESH::double_array* tab_func = NOS->GetTableFunction();
-      SetInitValue( *anIt, *tab_func );
-      delete tab_func;
-    }
-    anIt++;
-
-    if( DType==3 )
-    {
-      char* expr_func = NOS->GetExpressionFunction();
-      SetInitValue( *anIt, expr_func );
-      delete expr_func;
-    }
-    anIt++;
-
-    if( DType==2 || DType==3 )
-      SetInitValue( *anIt, (bool)NOS->IsExponentMode());
-  }
-  else if (hypType.compare("Arithmetic1D") == 0)
-  {
-    StdMeshers::StdMeshers_Arithmetic1D_var hyp =
-      StdMeshers::StdMeshers_Arithmetic1D::_narrow(theHyp);
-    SetInitValue( paramList.front(), hyp->GetLength( true )) ;
-    SetInitValue( paramList.back(), hyp->GetLength( false )) ;
-  }
-  else if (hypType.compare("MaxElementArea") == 0)
-  {
-    StdMeshers::StdMeshers_MaxElementArea_var MEA =
-      StdMeshers::StdMeshers_MaxElementArea::_narrow(theHyp);
-    SetInitValue( paramList.front(), MEA->GetMaxElementArea() );
-  }
-  else if (hypType.compare("MaxElementVolume") == 0)
-  {
-    StdMeshers::StdMeshers_MaxElementVolume_var MEV =
-      StdMeshers::StdMeshers_MaxElementVolume::_narrow(theHyp);
-    SetInitValue( paramList.front(), MEV->GetMaxElementVolume() );
-  }
-  else if (hypType.compare("StartEndLength") == 0)
-  {
-    StdMeshers::StdMeshers_StartEndLength_var hyp =
-      StdMeshers::StdMeshers_StartEndLength::_narrow(theHyp);
-    SetInitValue( paramList.front(), hyp->GetLength( true ));
-    SetInitValue( paramList.back(),  hyp->GetLength( false ));
-  }
-  else if (hypType.compare("Deflection1D") == 0)
-  {
-    StdMeshers::StdMeshers_Deflection1D_var hyp =
-      StdMeshers::StdMeshers_Deflection1D::_narrow(theHyp);
-    SetInitValue( paramList.back(),  hyp->GetDeflection()) ;
-  }
-}
-
-//=======================================================================
-//function : GetParameters
-//purpose  : 
-//=======================================================================  
-void StdMeshersGUI_Parameters::GetParameters (SMESH::SMESH_Hypothesis_ptr         hyp,
-                                             list<SMESHGUI_aParameterPtr> &      paramList,
-                                             QString&                            params)
-{
-  params = "";
-  list<SMESHGUI_aParameterPtr>::iterator paramIt = paramList.begin();
-  for ( ; paramIt != paramList.end(); paramIt++) {
-    if (params.compare("")) params += " ; ";
-
-    SMESHGUI_aParameter::Type t = (*paramIt)->GetType();
-    if( t==SMESHGUI_aParameter::DOUBLE )
-    {
-      double aDoubleValue = 0.;
-      (*paramIt)->GetNewDouble(aDoubleValue);
-      params += QString::number(aDoubleValue);
-    }
-    else if( t==SMESHGUI_aParameter::STRING || t==SMESHGUI_aParameter::ENUM )
-    {
-      QString aStrValue( "" );
-      (*paramIt)->GetNewText(aStrValue);
-      params += aStrValue.simplifyWhiteSpace();
-    }
-    else if( t==SMESHGUI_aParameter::TABLE )
-    {
-      params += "TABLE";
-    }
-    else
-    {
-      int aIntValue = 0;
-      (*paramIt)->GetNewInt(aIntValue);
-      params += QString::number(aIntValue);
-    }
-  }
-}
-
-//=======================================================================
-//function : SetParameters
-//purpose  : 
-//=======================================================================
-
-bool StdMeshersGUI_Parameters::SetParameters(SMESH::SMESH_Hypothesis_ptr          theHyp,
-                                             const list<SMESHGUI_aParameterPtr> & paramList )
-{
-  if (theHyp->_is_nil() || paramList.empty()) return false;
-
-  bool modified = false;
-
-  QString hypType = theHyp->GetName();
-
-  if (hypType.compare("LocalLength") == 0)
-  {
-    StdMeshers::StdMeshers_LocalLength_var LL =
-      StdMeshers::StdMeshers_LocalLength::_narrow(theHyp);
-    double length = LL->GetLength();
-    modified = paramList.front()->GetNewDouble( length );
-    LL->SetLength(length);
-  }
-  else if (hypType.compare("NumberOfSegments") == 0)
-  {
-    StdMeshers::StdMeshers_NumberOfSegments_var NOS =
-      StdMeshers::StdMeshers_NumberOfSegments::_narrow(theHyp);
-
-    list<SMESHGUI_aParameterPtr>::const_iterator anIt = paramList.begin();
-    int NbSeg, DType;
-    double Scale;
-    SMESH::double_array TabF;
-    QString exprF;
-    int expType;
-
-    modified = (*anIt)->GetNewInt( NbSeg ); anIt++;
-    modified = (*anIt)->GetNewInt( DType ) || modified; anIt++;
-    modified = (*anIt)->GetNewDouble( Scale ) || modified; anIt++;
-    SMESHGUI_aParameterPtr p = *anIt;
-    ((SMESHGUI_tableParameter*)p.get())->data( TabF ); anIt++; modified = true;
-    modified = (*anIt)->GetNewText( exprF ) || modified; anIt++;
-    modified = (*anIt)->GetNewInt( expType ) || modified;
-    
-    NOS->SetNumberOfSegments( NbSeg );
-    NOS->SetDistrType( DType );
-    if( DType==1 )
-      NOS->SetScaleFactor( Scale );
-    if( DType==2 )
-      NOS->SetTableFunction( TabF );
-    if( DType==3 )
-      NOS->SetExpressionFunction( CORBA::string_dup( exprF.latin1() ) );
-    if( DType==2 || DType==3 )
-      NOS->SetExponentMode( (bool)expType );
-  }
-  else if (hypType.compare("Arithmetic1D") == 0)
-  {
-    if ( paramList.size() != 2 )
-      return false;
-    StdMeshers::StdMeshers_Arithmetic1D_var hyp =
-      StdMeshers::StdMeshers_Arithmetic1D::_narrow(theHyp);
-    double begLength = hyp->GetLength( true ) ;
-    double endLength = hyp->GetLength( false ) ;
-    modified = paramList.front()->GetNewDouble( begLength );
-    modified = paramList.back()->GetNewDouble( endLength ) || modified;
-    hyp->SetLength( begLength, true );
-    hyp->SetLength( endLength, false );
-  }
-  else if (hypType.compare("MaxElementArea") == 0)
-  {
-    StdMeshers::StdMeshers_MaxElementArea_var MEA =
-      StdMeshers::StdMeshers_MaxElementArea::_narrow(theHyp);
-    double MaxArea = MEA->GetMaxElementArea();
-    modified = paramList.front()->GetNewDouble( MaxArea );
-    MEA->SetMaxElementArea(MaxArea);
-  }
-  else if (hypType.compare("MaxElementVolume") == 0)
-  {
-    StdMeshers::StdMeshers_MaxElementVolume_var MEV =
-      StdMeshers::StdMeshers_MaxElementVolume::_narrow(theHyp);
-    double MaxVolume = MEV->GetMaxElementVolume() ;
-    modified = paramList.front()->GetNewDouble( MaxVolume );
-    MEV->SetMaxElementVolume(MaxVolume);
-  }
-  else if (hypType.compare("StartEndLength") == 0)
-  {
-    if ( paramList.size() != 2 )
-      return false;
-    StdMeshers::StdMeshers_StartEndLength_var hyp =
-      StdMeshers::StdMeshers_StartEndLength::_narrow(theHyp);
-    double begLength = hyp->GetLength( true ) ;
-    double endLength = hyp->GetLength( false ) ;
-    modified = paramList.front()->GetNewDouble( begLength );
-    modified = paramList.back()->GetNewDouble( endLength ) || modified;
-    hyp->SetLength( begLength, true );
-    hyp->SetLength( endLength, false );
-  }
-  else if (hypType.compare("Deflection1D") == 0)
-  {
-    StdMeshers::StdMeshers_Deflection1D_var hyp =
-      StdMeshers::StdMeshers_Deflection1D::_narrow(theHyp);
-    double value = hyp->GetDeflection() ;
-    modified = paramList.front()->GetNewDouble( value );
-    hyp->SetDeflection( value );
-  }
-  return modified ;
-}
-  
diff --git a/src/StdMeshersGUI/StdMeshersGUI_Parameters.h b/src/StdMeshersGUI/StdMeshersGUI_Parameters.h
deleted file mode 100644 (file)
index 40be46f..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-//  SMESH StdMeshersGUI : GUI for standard meshers
-//
-//  Copyright (C) 2003  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : StdMeshersGUI_Parameters.h
-//  Module : SMESH
-//  $Header$
-
-#ifndef STDMESHERSGUI_PARAMETERS_H
-#define STDMESHERSGUI_PARAMETERS_H
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-#include "SMESHGUI_aParameter.h"
-
-#include <list>
-#include <vector>
-
-class StdMeshersGUI_Parameters
-{
- public:
-  static bool HasParameters (const QString& hypType);
-  
-  static void GetParameters (const QString&                      hypType,
-                            std::list<SMESHGUI_aParameterPtr> & params );
-  
-  static void GetParameters (SMESH::SMESH_Hypothesis_ptr         hyp,
-                            std::list<SMESHGUI_aParameterPtr> & params );
-  static void GetParameters (SMESH::SMESH_Hypothesis_ptr         hyp,
-                            std::list<SMESHGUI_aParameterPtr> & paramList,
-                            QString&                            params);
-  
-  static bool SetParameters(SMESH::SMESH_Hypothesis_ptr               hyp,
-                           const std::list<SMESHGUI_aParameterPtr> & params );
-
-  static void SetInitValue(SMESHGUI_aParameterPtr param,
-                           int                    initValue);
-  static void SetInitValue(SMESHGUI_aParameterPtr param,
-                           double                 initValue);
-  static void SetInitValue(SMESHGUI_aParameterPtr param,
-                           const char*            initValue);
-  static void SetInitValue(SMESHGUI_aParameterPtr param,
-                           SMESH::double_array&   initValue);
-};
-#endif
diff --git a/src/StdMeshersGUI/StdMeshers_icons.po b/src/StdMeshersGUI/StdMeshers_icons.po
deleted file mode 100644 (file)
index 64fe984..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-# This is a Qt message file in .po format.  Each msgid starts with
-# a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
-# would be translated to "Pub", not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2002-05-28 10:57:43 AM CEST\n"
-"PO-Revision-Date: YYYY-MM-DD\n"
-"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-
-#Select Icon
-msgid "ICON_SELECT"
-msgstr "select1.png"
-
-
-#-----------------------------------------------------------
-# Hypothesis
-#-----------------------------------------------------------
-
-#Hypo Local Length
-msgid "ICON_DLG_LOCAL_LENGTH"
-msgstr "mesh_hypo_length.png"
-
-#Hypo Nb Segments
-msgid "ICON_DLG_NB_SEGMENTS"
-msgstr "mesh_hypo_segment.png"
-
-#Hypo Max Area
-msgid "ICON_DLG_MAX_ELEMENT_AREA"
-msgstr "mesh_hypo_area.png"
-
-#Hypo Max Volume
-msgid "ICON_DLG_MAX_ELEMENT_VOLUME"
-msgstr "mesh_hypo_volume.png"
-
-#Hypo Start End Length
-msgid "ICON_DLG_START_END_LENGTH"
-msgstr "mesh_hypo_length.png"
-
-#Hypo deflection 1D
-msgid "ICON_DLG_DEFLECTION1D"
-msgstr "mesh_hypo_length.png"
-
-#Hypo Geometric 1D
-msgid "ICON_DLG_GEOMETRIC_1D"
-msgstr "mesh_hypo_length.png"
-
-#Hypo Arithmetic 1D
-msgid "ICON_DLG_ARITHMETIC_1D"
-msgstr "mesh_hypo_length.png"
-
-
-#-----------------------------------------------------------
-# ObjectBrowser
-#-----------------------------------------------------------
-
-#mesh_tree_algo_regular
-msgid "ICON_SMESH_TREE_ALGO_Regular_1D"
-msgstr "mesh_tree_algo_regular.png"
-
-#mesh_tree_algo_hexa
-msgid "ICON_SMESH_TREE_ALGO_Hexa_3D"
-msgstr "mesh_tree_algo_hexa.png"
-
-#mesh_tree_algo_mefisto
-msgid "ICON_SMESH_TREE_ALGO_MEFISTO_2D"
-msgstr "mesh_tree_algo_mefisto.png"
-
-#mesh_tree_algo_quad
-msgid "ICON_SMESH_TREE_ALGO_Quadrangle_2D"
-msgstr "mesh_tree_algo_quad.png"
-
-#mesh_tree_hypo_area
-msgid "ICON_SMESH_TREE_HYPO_MaxElementArea"
-msgstr "mesh_tree_hypo_area.png"
-
-#mesh_tree_hypo_length
-msgid "ICON_SMESH_TREE_HYPO_LocalLength"
-msgstr "mesh_tree_hypo_length.png"
-
-#mesh_tree_hypo_segment
-msgid "ICON_SMESH_TREE_HYPO_NumberOfSegments"
-msgstr "mesh_tree_hypo_segment.png"
-
-#mesh_tree_hypo_volume
-msgid "ICON_SMESH_TREE_HYPO_MaxElementVolume"
-msgstr "mesh_tree_hypo_volume.png"
-
-#mesh_tree_hypo_length
-msgid "ICON_SMESH_TREE_HYPO_LengthFromEdges"
-msgstr "mesh_tree_hypo_length.png"
-
-#mesh_tree_hypo_nonconform
-msgid "ICON_SMESH_TREE_HYPO_NotConformAllowed"
-msgstr "mesh_tree_hypo_length.png"
-
-#mesh_tree_hypo_start_end_length
-msgid "ICON_SMESH_TREE_HYPO_StartEndLength"
-msgstr "mesh_tree_hypo_length.png"
-
-#mesh_tree_hypo_deflection1d
-msgid "ICON_SMESH_TREE_HYPO_Deflection1D"
-msgstr "mesh_tree_hypo_length.png"
-
-#mesh_tree_hypo_Arithmetic1d
-msgid "ICON_SMESH_TREE_HYPO_Arithmetic1D"
-msgstr "mesh_tree_hypo_length.png"
-
-#mesh_tree_hypo_propagation
-msgid "ICON_SMESH_TREE_HYPO_Propagation"
-msgstr "mesh_tree_hypo_length.png"
diff --git a/src/StdMeshersGUI/StdMeshers_images.po b/src/StdMeshersGUI/StdMeshers_images.po
deleted file mode 100644 (file)
index 64fe984..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-# This is a Qt message file in .po format.  Each msgid starts with
-# a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
-# would be translated to "Pub", not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2002-05-28 10:57:43 AM CEST\n"
-"PO-Revision-Date: YYYY-MM-DD\n"
-"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-
-#Select Icon
-msgid "ICON_SELECT"
-msgstr "select1.png"
-
-
-#-----------------------------------------------------------
-# Hypothesis
-#-----------------------------------------------------------
-
-#Hypo Local Length
-msgid "ICON_DLG_LOCAL_LENGTH"
-msgstr "mesh_hypo_length.png"
-
-#Hypo Nb Segments
-msgid "ICON_DLG_NB_SEGMENTS"
-msgstr "mesh_hypo_segment.png"
-
-#Hypo Max Area
-msgid "ICON_DLG_MAX_ELEMENT_AREA"
-msgstr "mesh_hypo_area.png"
-
-#Hypo Max Volume
-msgid "ICON_DLG_MAX_ELEMENT_VOLUME"
-msgstr "mesh_hypo_volume.png"
-
-#Hypo Start End Length
-msgid "ICON_DLG_START_END_LENGTH"
-msgstr "mesh_hypo_length.png"
-
-#Hypo deflection 1D
-msgid "ICON_DLG_DEFLECTION1D"
-msgstr "mesh_hypo_length.png"
-
-#Hypo Geometric 1D
-msgid "ICON_DLG_GEOMETRIC_1D"
-msgstr "mesh_hypo_length.png"
-
-#Hypo Arithmetic 1D
-msgid "ICON_DLG_ARITHMETIC_1D"
-msgstr "mesh_hypo_length.png"
-
-
-#-----------------------------------------------------------
-# ObjectBrowser
-#-----------------------------------------------------------
-
-#mesh_tree_algo_regular
-msgid "ICON_SMESH_TREE_ALGO_Regular_1D"
-msgstr "mesh_tree_algo_regular.png"
-
-#mesh_tree_algo_hexa
-msgid "ICON_SMESH_TREE_ALGO_Hexa_3D"
-msgstr "mesh_tree_algo_hexa.png"
-
-#mesh_tree_algo_mefisto
-msgid "ICON_SMESH_TREE_ALGO_MEFISTO_2D"
-msgstr "mesh_tree_algo_mefisto.png"
-
-#mesh_tree_algo_quad
-msgid "ICON_SMESH_TREE_ALGO_Quadrangle_2D"
-msgstr "mesh_tree_algo_quad.png"
-
-#mesh_tree_hypo_area
-msgid "ICON_SMESH_TREE_HYPO_MaxElementArea"
-msgstr "mesh_tree_hypo_area.png"
-
-#mesh_tree_hypo_length
-msgid "ICON_SMESH_TREE_HYPO_LocalLength"
-msgstr "mesh_tree_hypo_length.png"
-
-#mesh_tree_hypo_segment
-msgid "ICON_SMESH_TREE_HYPO_NumberOfSegments"
-msgstr "mesh_tree_hypo_segment.png"
-
-#mesh_tree_hypo_volume
-msgid "ICON_SMESH_TREE_HYPO_MaxElementVolume"
-msgstr "mesh_tree_hypo_volume.png"
-
-#mesh_tree_hypo_length
-msgid "ICON_SMESH_TREE_HYPO_LengthFromEdges"
-msgstr "mesh_tree_hypo_length.png"
-
-#mesh_tree_hypo_nonconform
-msgid "ICON_SMESH_TREE_HYPO_NotConformAllowed"
-msgstr "mesh_tree_hypo_length.png"
-
-#mesh_tree_hypo_start_end_length
-msgid "ICON_SMESH_TREE_HYPO_StartEndLength"
-msgstr "mesh_tree_hypo_length.png"
-
-#mesh_tree_hypo_deflection1d
-msgid "ICON_SMESH_TREE_HYPO_Deflection1D"
-msgstr "mesh_tree_hypo_length.png"
-
-#mesh_tree_hypo_Arithmetic1d
-msgid "ICON_SMESH_TREE_HYPO_Arithmetic1D"
-msgstr "mesh_tree_hypo_length.png"
-
-#mesh_tree_hypo_propagation
-msgid "ICON_SMESH_TREE_HYPO_Propagation"
-msgstr "mesh_tree_hypo_length.png"
diff --git a/src/StdMeshersGUI/StdMeshers_msg_en.po b/src/StdMeshersGUI/StdMeshers_msg_en.po
deleted file mode 100644 (file)
index 177b701..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-# This is a Qt message file in .po format.  Each msgid starts with
-# a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
-# would be translated to "Pub", not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2002-05-28 10:46:48 AM CEST\n"
-"PO-Revision-Date: YYYY-MM-DD\n"
-"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-
-# -------------- Local Length --------------
-
-msgid "SMESH_LOCAL_LENGTH_HYPOTHESIS"
-msgstr "Average Length"
-
-msgid "SMESH_LOCAL_LENGTH_PARAM"
-msgstr "Length"
-
-msgid "SMESH_LOCAL_LENGTH_TITLE"
-msgstr "Hypothesis Construction"
-
-# ----------- Number of Segments -----------
-
-msgid "SMESH_NB_SEGMENTS_HYPOTHESIS"
-msgstr "Number of Segments"
-
-msgid "SMESH_NB_SEGMENTS_PARAM"
-msgstr "Number of Segments"
-
-msgid "SMESH_DISTR_TYPE"
-msgstr "Type of distribution"
-
-msgid "SMESH_DISTR_REGULAR"
-msgstr "Equidistant distribution"
-
-msgid "SMESH_DISTR_SCALE"
-msgstr "Scale distribution"
-
-msgid "SMESH_DISTR_TAB"
-msgstr "Distribution with table density"
-
-msgid "SMESH_DISTR_EXPR"
-msgstr "Distribution with analitic density"
-
-msgid "SMESH_NB_SEGMENTS_SCALE_PARAM"
-msgstr "Scale Factor"
-
-msgid "SMESH_TAB_FUNC"
-msgstr "Table function"
-
-msgid "SMESH_EXPR_FUNC"
-msgstr "Density function f(t) = "
-
-msgid "SMESH_EXP_MODE"
-msgstr "Exponent mode "
-
-msgid "SMESH_NB_SEGMENTS_TITLE"
-msgstr "Hypothesis Construction"
-
-# ----------- Max. Element Area ------------
-
-msgid "SMESH_MAX_ELEMENT_AREA_PARAM"
-msgstr "Max. Area"
-
-msgid "SMESH_MAX_ELEMENT_AREA_HYPOTHESIS"
-msgstr "Max. Element Area"
-
-msgid "SMESH_MAX_ELEMENT_AREA_TITLE"
-msgstr "Hypothesis Construction"
-
-# ---------- Max. Element Volume -----------
-
-msgid "SMESH_MAX_ELEMENT_VOLUME_PARAM"
-msgstr "Max. Volume"
-
-msgid "SMESH_MAX_ELEMENT_VOLUME_HYPOTHESIS"
-msgstr "Max. Element Volume"
-
-msgid "SMESH_MAX_ELEMENT_VOLUME_TITLE"
-msgstr "Hypothesis Construction"
-
-
-# -------------- Start and End Length --------------
-
-msgid "SMESH_START_LENGTH_PARAM"
-msgstr "Start Length"
-
-msgid "SMESH_END_LENGTH_PARAM"
-msgstr "End Length"
-
-msgid "SMESH_START_END_LENGTH_HYPOTHESIS"
-msgstr "Start and EndLocal Length"
-
-msgid "SMESH_START_END_LENGTH_TITLE"
-msgstr "Hypothesis Construction"
-
-# -------------- Deflection 1D --------------
-
-msgid "SMESH_DEFLECTION1D_HYPOTHESIS"
-msgstr "Deflection 1D"
-
-msgid "SMESH_DEFLECTION1D_PARAM"
-msgstr "Deflection"
-
-msgid "SMESH_DEFLECTION1D_TITLE"
-msgstr "Hypothesis Construction"
-
-# -------------- Arithmetic 1D --------------
-
-msgid "SMESH_ARITHMETIC_1D_HYPOTHESIS"
-msgstr "Arithmetic 1D"
-
-msgid "SMESH_ARITHMETIC_1D_PARAM"
-msgstr "Arithmetic Reason"
-
-msgid "SMESH_ARITHMETIC_1D_TITLE"
-msgstr "Hypothesis Construction"
diff --git a/src/StdMeshers_I/Makefile.in b/src/StdMeshers_I/Makefile.in
deleted file mode 100644 (file)
index 6b50f0c..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-#  SMESH StdMeshers_I : idl implementation based on 'StdMeshersPlugin' unit's classes
-#
-#  Copyright (C) 2003  CEA
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-#
-#
-#
-#  File   : Makefile.in
-#  Author : Julia DOROVSKIKH
-#  Module : SMESH
-#  $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@top_srcdir@/idl:$(top_builddir)/idl
-
-
-@COMMENCE@
-
-# EXPORT_PYSCRIPTS = smeshpy.py SMESH_test.py
-
-# header files  
-EXPORT_HEADERS = \
-       StdMeshers_LocalLength_i.hxx \
-       StdMeshers_StartEndLength_i.hxx \
-       StdMeshers_Arithmetic1D_i.hxx \
-       StdMeshers_NumberOfSegments_i.hxx \
-       StdMeshers_Deflection1D_i.hxx \
-       StdMeshers_Propagation_i.hxx \
-       StdMeshers_LengthFromEdges_i.hxx \
-       StdMeshers_MaxElementArea_i.hxx \
-       StdMeshers_MaxElementVolume_i.hxx \
-       StdMeshers_NotConformAllowed_i.hxx \
-       StdMeshers_Regular_1D_i.hxx \
-       StdMeshers_Quadrangle_2D_i.hxx \
-       StdMeshers_MEFISTO_2D_i.hxx \
-       StdMeshers_Hexa_3D_i.hxx
-
-# Libraries targets
-
-LIB= libStdMeshersEngine.la
-
-LIB_SRC = \
-       StdMeshers_i.cxx \
-        StdMeshers_LocalLength_i.cxx \
-       StdMeshers_StartEndLength_i.cxx \
-       StdMeshers_Arithmetic1D_i.cxx \
-       StdMeshers_NumberOfSegments_i.cxx \
-       StdMeshers_Deflection1D_i.cxx \
-        StdMeshers_Propagation_i.cxx \
-        StdMeshers_LengthFromEdges_i.cxx \
-       StdMeshers_MaxElementArea_i.cxx \
-        StdMeshers_MaxElementVolume_i.cxx \
-       StdMeshers_NotConformAllowed_i.cxx \
-        StdMeshers_Regular_1D_i.cxx \
-        StdMeshers_Quadrangle_2D_i.cxx \
-        StdMeshers_MEFISTO_2D_i.cxx \
-       StdMeshers_Hexa_3D_i.cxx
-
-LIB_SERVER_IDL = SMESH_BasicHypothesis.idl
-
-LIB_CLIENT_IDL = \
-       SALOMEDS.idl SALOME_Exception.idl \
-       GEOM_Gen.idl MED.idl SALOMEDS_Attributes.idl \
-       SMESH_Gen.idl SMESH_Hypothesis.idl SMESH_Group.idl \
-       SALOME_Comm.idl
-
-# Executables targets
-BIN = 
-BIN_SRC = 
-
-# additionnal information to compil and link file
-CPPFLAGS+= $(OCC_INCLUDES) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \
-           -I${GEOM_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS)
-CXXFLAGS+= $(OCC_CXXFLAGS) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome
-
-#IDLCXXFLAGS+= -Wbtp
-
-#LDFLAGS+= $(HDF5_LIBS) -lStdMeshers -lSMESHEngine -lSalomeLifeCycleCORBA -L${KERNEL_ROOT_DIR}/lib/salome -L${GEOM_ROOT_DIR}/lib/salome -lSalomeGenericObj
-LDFLAGS+= $(HDF5_LIBS) -lStdMeshers -lSMESHEngine -L${KERNEL_ROOT_DIR}/lib/salome
-
-@CONCLUDE@
diff --git a/src/StdMeshers_I/StdMeshers_Arithmetic1D_i.cxx b/src/StdMeshers_I/StdMeshers_Arithmetic1D_i.cxx
deleted file mode 100644 (file)
index 9c39bc7..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Arithmetic1D_i.cxx
-//  Author : Damien COQUERET, OCC
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_Arithmetic1D_i.hxx"
-#include "SMESH_Gen_i.hxx"
-#include "SMESH_Gen.hxx"
-
-#include "Utils_CorbaException.hxx"
-#include "utilities.h"
-
-#include <TCollection_AsciiString.hxx>
-
-//=============================================================================
-/*!
- *  StdMeshers_Arithmetic1D_i::StdMeshers_Arithmetic1D_i
- *
- *  Constructor
- */
-//=============================================================================
-
-StdMeshers_Arithmetic1D_i::StdMeshers_Arithmetic1D_i( PortableServer::POA_ptr thePOA,
-                                                   int                     theStudyId,
-                                                   ::SMESH_Gen*            theGenImpl )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA )
-{
-  MESSAGE( "StdMeshers_Arithmetic1D_i::StdMeshers_Arithmetic1D_i" );
-  myBaseImpl = new ::StdMeshers_Arithmetic1D( theGenImpl->GetANewId(),
-                                            theStudyId,
-                                            theGenImpl );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_Arithmetic1D_i::~StdMeshers_Arithmetic1D_i
- *
- *  Destructor
- */
-//=============================================================================
-
-StdMeshers_Arithmetic1D_i::~StdMeshers_Arithmetic1D_i()
-{
-  MESSAGE( "StdMeshers_Arithmetic1D_i::~StdMeshers_Arithmetic1D_i" );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_Arithmetic1D_i::SetLength
- *
- *  Set length
- */
-//=============================================================================
-
-void StdMeshers_Arithmetic1D_i::SetLength(CORBA::Double theLength,
-                                         CORBA::Boolean theIsStart )
-     throw ( SALOME::SALOME_Exception )
-{
-  MESSAGE( "StdMeshers_StartEndLength_i::SetLength" );
-  ASSERT( myBaseImpl );
-  try {
-    this->GetImpl()->SetLength( theLength, theIsStart );
-  }
-  catch ( SALOME_Exception& S_ex ) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
-                                 SALOME::BAD_PARAM );
-  }
-
-  // Update Python script
-  TCollection_AsciiString aStr, aStrLen ((double)theLength), aStrFlag ((int)theIsStart);
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".SetLength(";
-  aStr += aStrLen + ", " + aStrFlag + ")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_Arithmetic1D_i::GetLength
- *
- *  Get length
- */
-//=============================================================================
-
-CORBA::Double StdMeshers_Arithmetic1D_i::GetLength( CORBA::Boolean theIsStart)
-{
-  MESSAGE( "StdMeshers_StartEndLength_i::GetLength" );
-  ASSERT( myBaseImpl );
-  return this->GetImpl()->GetLength( theIsStart );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_Arithmetic1D_i::GetImpl
- *
- *  Get implementation
- */
-//=============================================================================
-
-::StdMeshers_Arithmetic1D* StdMeshers_Arithmetic1D_i::GetImpl()
-{
-  MESSAGE( "StdMeshers_Arithmetic1D_i::GetImpl" );
-  return ( ::StdMeshers_Arithmetic1D* )myBaseImpl;
-}
-
-//================================================================================
-/*!
- * \brief Verify whether hypothesis supports given entity type 
-  * \param type - dimension (see SMESH::Dimension enumeration)
-  * \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise
- * 
- * Verify whether hypothesis supports given entity type (see SMESH::Dimension enumeration)
- */
-//================================================================================  
-CORBA::Boolean StdMeshers_Arithmetic1D_i::IsDimSupported( SMESH::Dimension type )
-{
-  return type == SMESH::DIM_1D;
-}
-
diff --git a/src/StdMeshers_I/StdMeshers_Arithmetic1D_i.hxx b/src/StdMeshers_I/StdMeshers_Arithmetic1D_i.hxx
deleted file mode 100644 (file)
index 090f0a7..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Arithmetic1D_i.hxx
-//  Author : Damien COQUERET, OCC
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_ARITHMETIC1D_I_HXX_
-#define _SMESH_ARITHMETIC1D_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
-
-#include "SMESH_Hypothesis_i.hxx"
-#include "StdMeshers_Arithmetic1D.hxx"
-
-// ======================================================
-// Arithmetic 1D hypothesis
-// ======================================================
-class StdMeshers_Arithmetic1D_i:
-  public virtual POA_StdMeshers::StdMeshers_Arithmetic1D,
-  public virtual SMESH_Hypothesis_i
-{
-public:
-  // Constructor
-  StdMeshers_Arithmetic1D_i( PortableServer::POA_ptr thePOA,
-                            int                     theStudyId,
-                           ::SMESH_Gen*            theGenImpl );
-  // Destructor
-  virtual ~StdMeshers_Arithmetic1D_i();
-
-  // Set length
-  void SetLength( CORBA::Double theLength, CORBA::Boolean theIsStart )
-    throw ( SALOME::SALOME_Exception );
-  // Get length
-  CORBA::Double GetLength(CORBA::Boolean theIsStart);
-
-  // Get implementation
-  ::StdMeshers_Arithmetic1D* GetImpl();
-  
-  // Verify whether hypothesis supports given entity type 
-  CORBA::Boolean IsDimSupported( SMESH::Dimension type );
-};
-
-#endif
diff --git a/src/StdMeshers_I/StdMeshers_Deflection1D_i.cxx b/src/StdMeshers_I/StdMeshers_Deflection1D_i.cxx
deleted file mode 100644 (file)
index 0f3f4a9..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Deflection1D_i.cxx
-//           Moved here from SMESH_LocalLength_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_Deflection1D_i.hxx"
-#include "SMESH_Gen_i.hxx"
-#include "SMESH_Gen.hxx"
-
-#include "Utils_CorbaException.hxx"
-#include "utilities.h"
-
-#include <TCollection_AsciiString.hxx>
-
-//=============================================================================
-/*!
- *  StdMeshers_Deflection1D_i::StdMeshers_Deflection1D_i
- *
- *  Constructor
- */
-//=============================================================================
-
-StdMeshers_Deflection1D_i::StdMeshers_Deflection1D_i( PortableServer::POA_ptr thePOA,
-                                         int                     theStudyId,
-                                         ::SMESH_Gen*            theGenImpl )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA )
-{
-  MESSAGE( "StdMeshers_Deflection1D_i::StdMeshers_Deflection1D_i" );
-  myBaseImpl = new ::StdMeshers_Deflection1D( theGenImpl->GetANewId(),
-                                       theStudyId,
-                                       theGenImpl );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_Deflection1D_i::~StdMeshers_Deflection1D_i
- *
- *  Destructor
- */
-//=============================================================================
-
-StdMeshers_Deflection1D_i::~StdMeshers_Deflection1D_i()
-{
-  MESSAGE( "StdMeshers_Deflection1D_i::~StdMeshers_Deflection1D_i" );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_Deflection1D_i::SetDeflection
- *
- *  Set deflection
- */
-//=============================================================================
-
-void StdMeshers_Deflection1D_i::SetDeflection( CORBA::Double theValue )
-     throw ( SALOME::SALOME_Exception )
-{
-  MESSAGE( "StdMeshers_Deflection1D_i::SetDeflection" );
-  ASSERT( myBaseImpl );
-  try {
-    this->GetImpl()->SetDeflection( theValue );
-  }
-  catch ( SALOME_Exception& S_ex ) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
-                                 SALOME::BAD_PARAM );
-  }
-
-  // Update Python script
-  TCollection_AsciiString aStr, aStrVal ((double)theValue);
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".SetDeflection(";
-  aStr += aStrVal + ")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_Deflection1D_i::GetDeflection
- *
- *  Get deflection
- */
-//=============================================================================
-
-CORBA::Double StdMeshers_Deflection1D_i::GetDeflection()
-{
-  MESSAGE( "StdMeshers_Deflection1D_i::GetDeflection" );
-  ASSERT( myBaseImpl );
-  return this->GetImpl()->GetDeflection();
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_Deflection1D_i::GetImpl
- *
- *  Get implementation
- */
-//=============================================================================
-
-::StdMeshers_Deflection1D* StdMeshers_Deflection1D_i::GetImpl()
-{
-  MESSAGE( "StdMeshers_Deflection1D_i::GetImpl" );
-  return ( ::StdMeshers_Deflection1D* )myBaseImpl;
-}
-
-//================================================================================
-/*!
- * \brief Verify whether hypothesis supports given entity type 
-  * \param type - dimension (see SMESH::Dimension enumeration)
-  * \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise
- * 
- * Verify whether hypothesis supports given entity type (see SMESH::Dimension enumeration)
- */
-//================================================================================  
-CORBA::Boolean StdMeshers_Deflection1D_i::IsDimSupported( SMESH::Dimension type )
-{
-  return type == SMESH::DIM_1D;
-}
-
diff --git a/src/StdMeshers_I/StdMeshers_Deflection1D_i.hxx b/src/StdMeshers_I/StdMeshers_Deflection1D_i.hxx
deleted file mode 100644 (file)
index 138b1d9..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Deflection1D_i.hxx
-//           Moved here from SMESH_LocalLength_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_Deflection1D_I_HXX_
-#define _SMESH_Deflection1D_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
-
-#include "SMESH_Hypothesis_i.hxx"
-#include "StdMeshers_Deflection1D.hxx"
-
-class SMESH_Gen;
-
-// ======================================================
-// Local Length hypothesis
-// ======================================================
-class StdMeshers_Deflection1D_i:
-  public virtual POA_StdMeshers::StdMeshers_Deflection1D,
-  public virtual SMESH_Hypothesis_i
-{
-public:
-  // Constructor
-  StdMeshers_Deflection1D_i( PortableServer::POA_ptr thePOA,
-                       int                     theStudyId,
-                       ::SMESH_Gen*            theGenImpl );
-  // Destructor
-  virtual ~StdMeshers_Deflection1D_i();
-
-  // Set deflection
-  void SetDeflection( CORBA::Double theLength )
-    throw ( SALOME::SALOME_Exception );
-  // Get deflection
-  CORBA::Double GetDeflection();
-
-  // Get implementation
-  ::StdMeshers_Deflection1D* GetImpl();
-  
-  // Verify whether hypothesis supports given entity type 
-  CORBA::Boolean IsDimSupported( SMESH::Dimension type );
-};
-
-#endif
-
diff --git a/src/StdMeshers_I/StdMeshers_Hexa_3D_i.cxx b/src/StdMeshers_I/StdMeshers_Hexa_3D_i.cxx
deleted file mode 100644 (file)
index 0ca4839..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Hexa_3D_i.cxx
-//           Moved here from SMESH_Hexa_3D_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_Hexa_3D_i.hxx"
-#include "SMESH_Gen.hxx"
-
-#include "Utils_CorbaException.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  StdMeshers_Hexa_3D_i::StdMeshers_Hexa_3D_i
- *
- *  Constructor
- */
-//=============================================================================
-
-StdMeshers_Hexa_3D_i::StdMeshers_Hexa_3D_i( PortableServer::POA_ptr thePOA,
-                                 int                     theStudyId,
-                                 ::SMESH_Gen*            theGenImpl )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA ), 
-       SMESH_Algo_i( thePOA ),
-       SMESH_3D_Algo_i( thePOA )
-{
-  MESSAGE( "StdMeshers_Hexa_3D_i::StdMeshers_Hexa_3D_i" );
-  myBaseImpl = new ::StdMeshers_Hexa_3D( theGenImpl->GetANewId(),
-                                   theStudyId,
-                                   theGenImpl );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_Hexa_3D_i::~StdMeshers_Hexa_3D_i
- *
- *  Destructor
- */
-//=============================================================================
-
-StdMeshers_Hexa_3D_i::~StdMeshers_Hexa_3D_i()
-{
-  MESSAGE( "StdMeshers_Hexa_3D_i::~StdMeshers_Hexa_3D_i" );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_Hexa_3D_i::GetImpl
- *
- *  Get implementation
- */
-//=============================================================================
-
-::StdMeshers_Hexa_3D* StdMeshers_Hexa_3D_i::GetImpl()
-{
-  MESSAGE( "StdMeshers_Hexa_3D_i::GetImpl" );
-  return ( ::StdMeshers_Hexa_3D* )myBaseImpl;
-}
diff --git a/src/StdMeshers_I/StdMeshers_Hexa_3D_i.hxx b/src/StdMeshers_I/StdMeshers_Hexa_3D_i.hxx
deleted file mode 100644 (file)
index 91bcabd..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Hexa_3D_i.hxx
-//           Moved here from SMESH_Hexa_3D_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_HEXA_3D_I_HXX_
-#define _SMESH_HEXA_3D_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
-
-#include "SMESH_3D_Algo_i.hxx"
-#include "StdMeshers_Hexa_3D.hxx"
-
-class SMESH_Gen;
-
-// ======================================================
-// Hexaedron 3d algorithm
-// ======================================================
-class StdMeshers_Hexa_3D_i:
-  public virtual POA_StdMeshers::StdMeshers_Hexa_3D,
-  public virtual SMESH_3D_Algo_i
-{
-public:
-  // Constructor
-  StdMeshers_Hexa_3D_i( PortableServer::POA_ptr thePOA,
-                   int                     theStudyId,
-                  ::SMESH_Gen*            theGenImpl );
-
-  // Destructor
-  virtual ~StdMeshers_Hexa_3D_i();
-
-  // Get implementation
-  ::StdMeshers_Hexa_3D* GetImpl();
-};
-
-#endif
diff --git a/src/StdMeshers_I/StdMeshers_LengthFromEdges_i.cxx b/src/StdMeshers_I/StdMeshers_LengthFromEdges_i.cxx
deleted file mode 100644 (file)
index 35d871c..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_LengthFromEdges_i.cxx
-//           Moved here from SMESH_LengthFromEdges_i.cxx
-//  Author : Nadir BOUHAMOU CEA/DEN, Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_LengthFromEdges_i.hxx"
-#include "SMESH_Gen.hxx"
-
-#include "Utils_CorbaException.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  StdMeshers_LengthFromEdges_i::StdMeshers_LengthFromEdges_i
- *
- *  Constructor
- */
-//=============================================================================
-
-StdMeshers_LengthFromEdges_i::StdMeshers_LengthFromEdges_i( PortableServer::POA_ptr thePOA,
-                                                 int                     theStudyId,
-                                                 ::SMESH_Gen*            theGenImpl )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA )
-{
-  MESSAGE( "StdMeshers_LengthFromEdges_i::StdMeshers_LengthFromEdges_i" );
-  myBaseImpl = new ::StdMeshers_LengthFromEdges( theGenImpl->GetANewId(),
-                                           theStudyId,
-                                           theGenImpl );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_LengthFromEdges_i::~StdMeshers_LengthFromEdges_i
- *
- *  Destructor
- */
-//=============================================================================
-
-StdMeshers_LengthFromEdges_i::~StdMeshers_LengthFromEdges_i()
-{
-  MESSAGE( "StdMeshers_LengthFromEdges_i::~StdMeshers_LengthFromEdges_i" );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_LengthFromEdges_i::SetMode
- *
- *  Set mode
- */
-//=============================================================================
-
-void StdMeshers_LengthFromEdges_i::SetMode( CORBA::Long theMode )
-  throw (SALOME::SALOME_Exception)
-{
-  MESSAGE( "StdMeshers_LengthFromEdges_i::SetMode" );
-  ASSERT( myBaseImpl );
-  try {
-    this->GetImpl()->SetMode( theMode );
-  }
-  catch ( SALOME_Exception& S_ex ) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
-                                 SALOME::BAD_PARAM );
-  }
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_LengthFromEdges_i::GetMode
- *
- *  Get mode
- */
-//=============================================================================
-
-CORBA::Long StdMeshers_LengthFromEdges_i::GetMode()
-{
-  MESSAGE( "StdMeshers_LengthFromEdges_i::GetMode" );
-  ASSERT( myBaseImpl );
-  return this->GetImpl()->GetMode();
-}
-
-
-//=============================================================================
-/*!
- *  StdMeshers_LengthFromEdges_i::GetImpl
- *
- *  Get implementation
- */
-//=============================================================================
-
-::StdMeshers_LengthFromEdges* StdMeshers_LengthFromEdges_i::GetImpl()
-{
-  MESSAGE( "StdMeshers_LengthFromEdges_i::GetImpl" );
-  return ( ::StdMeshers_LengthFromEdges* )myBaseImpl;
-}
-
-//================================================================================
-/*!
- * \brief Verify whether hypothesis supports given entity type 
-  * \param type - dimension (see SMESH::Dimension enumeration)
-  * \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise
- * 
- * Verify whether hypothesis supports given entity type (see SMESH::Dimension enumeration)
- */
-//================================================================================  
-CORBA::Boolean StdMeshers_LengthFromEdges_i::IsDimSupported( SMESH::Dimension type )
-{
-  return type == SMESH::DIM_2D;
-}
-
diff --git a/src/StdMeshers_I/StdMeshers_LengthFromEdges_i.hxx b/src/StdMeshers_I/StdMeshers_LengthFromEdges_i.hxx
deleted file mode 100644 (file)
index 1075278..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_LengthFromEdges_i.hxx
-//           Moved here from SMESH_LengthFromEdges_i.hxx
-//  Author : Nadir BOUHAMOU CEA/DEN, Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_LENGTHFROMEDGES_I_HXX_
-#define _SMESH_LENGTHFROMEDGES_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
-
-#include "SMESH_Hypothesis_i.hxx"
-#include "StdMeshers_LengthFromEdges.hxx"
-
-// ======================================================
-// Length from edges hypothesis
-// ======================================================
-class StdMeshers_LengthFromEdges_i:
-  public virtual POA_StdMeshers::StdMeshers_LengthFromEdges,
-  public virtual SMESH_Hypothesis_i
-{
-public:
-  // Constructor
-  StdMeshers_LengthFromEdges_i( PortableServer::POA_ptr thePOA,
-                           int                     theStudyId,
-                           ::SMESH_Gen*            theGenImpl );
-  // Destructor
-  virtual ~StdMeshers_LengthFromEdges_i();
-
-  // Set mode
-  void SetMode( CORBA::Long theMode )
-    throw ( SALOME::SALOME_Exception );
-  // Get mode
-  CORBA::Long GetMode();
-
-  // Get implementation
-  ::StdMeshers_LengthFromEdges* GetImpl();
-  
-  // Verify whether hypothesis supports given entity type 
-  CORBA::Boolean IsDimSupported( SMESH::Dimension type );
-};
-
-#endif
-
diff --git a/src/StdMeshers_I/StdMeshers_LocalLength_i.cxx b/src/StdMeshers_I/StdMeshers_LocalLength_i.cxx
deleted file mode 100644 (file)
index a37b8e1..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_LocalLength_i.cxx
-//           Moved here from SMESH_LocalLength_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_LocalLength_i.hxx"
-#include "SMESH_Gen_i.hxx"
-#include "SMESH_Gen.hxx"
-
-#include "Utils_CorbaException.hxx"
-#include "utilities.h"
-
-#include <TCollection_AsciiString.hxx>
-
-//=============================================================================
-/*!
- *  StdMeshers_LocalLength_i::StdMeshers_LocalLength_i
- *
- *  Constructor
- */
-//=============================================================================
-
-StdMeshers_LocalLength_i::StdMeshers_LocalLength_i( PortableServer::POA_ptr thePOA,
-                                         int                     theStudyId,
-                                         ::SMESH_Gen*            theGenImpl )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA )
-{
-  MESSAGE( "StdMeshers_LocalLength_i::StdMeshers_LocalLength_i" );
-  myBaseImpl = new ::StdMeshers_LocalLength( theGenImpl->GetANewId(),
-                                       theStudyId,
-                                       theGenImpl );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_LocalLength_i::~StdMeshers_LocalLength_i
- *
- *  Destructor
- */
-//=============================================================================
-
-StdMeshers_LocalLength_i::~StdMeshers_LocalLength_i()
-{
-  MESSAGE( "StdMeshers_LocalLength_i::~StdMeshers_LocalLength_i" );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_LocalLength_i::SetLength
- *
- *  Set length
- */
-//=============================================================================
-
-void StdMeshers_LocalLength_i::SetLength( CORBA::Double theLength )
-     throw ( SALOME::SALOME_Exception )
-{
-  MESSAGE( "StdMeshers_LocalLength_i::SetLength" );
-  ASSERT( myBaseImpl );
-  try {
-    this->GetImpl()->SetLength( theLength );
-  }
-  catch ( SALOME_Exception& S_ex ) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
-                                 SALOME::BAD_PARAM );
-  }
-
-  // Update Python script
-  TCollection_AsciiString aStr, aStrLen ((double)theLength);
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".SetLength(";
-  aStr += aStrLen + ")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_LocalLength_i::GetLength
- *
- *  Get length
- */
-//=============================================================================
-
-CORBA::Double StdMeshers_LocalLength_i::GetLength()
-{
-  MESSAGE( "StdMeshers_LocalLength_i::GetLength" );
-  ASSERT( myBaseImpl );
-  return this->GetImpl()->GetLength();
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_LocalLength_i::GetImpl
- *
- *  Get implementation
- */
-//=============================================================================
-
-::StdMeshers_LocalLength* StdMeshers_LocalLength_i::GetImpl()
-{
-  MESSAGE( "StdMeshers_LocalLength_i::GetImpl" );
-  return ( ::StdMeshers_LocalLength* )myBaseImpl;
-}
-
-//================================================================================
-/*!
- * \brief Verify whether hypothesis supports given entity type 
-  * \param type - dimension (see SMESH::Dimension enumeration)
-  * \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise
- * 
- * Verify whether hypothesis supports given entity type (see SMESH::Dimension enumeration)
- */
-//================================================================================  
-CORBA::Boolean StdMeshers_LocalLength_i::IsDimSupported( SMESH::Dimension type )
-{
-  return type == SMESH::DIM_1D;
-}
-
diff --git a/src/StdMeshers_I/StdMeshers_LocalLength_i.hxx b/src/StdMeshers_I/StdMeshers_LocalLength_i.hxx
deleted file mode 100644 (file)
index f0b6b21..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_LocalLength_i.hxx
-//           Moved here from SMESH_LocalLength_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_LOCALLENGTH_I_HXX_
-#define _SMESH_LOCALLENGTH_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
-
-#include "SMESH_Hypothesis_i.hxx"
-#include "StdMeshers_LocalLength.hxx"
-
-class SMESH_Gen;
-
-// ======================================================
-// Local Length hypothesis
-// ======================================================
-class StdMeshers_LocalLength_i:
-  public virtual POA_StdMeshers::StdMeshers_LocalLength,
-  public virtual SMESH_Hypothesis_i
-{
-public:
-  // Constructor
-  StdMeshers_LocalLength_i( PortableServer::POA_ptr thePOA,
-                       int                     theStudyId,
-                       ::SMESH_Gen*            theGenImpl );
-  // Destructor
-  virtual ~StdMeshers_LocalLength_i();
-
-  // Set length
-  void SetLength( CORBA::Double theLength )
-    throw ( SALOME::SALOME_Exception );
-  // Get length
-  CORBA::Double GetLength();
-
-  // Get implementation
-  ::StdMeshers_LocalLength* GetImpl();
-  
-  // Verify whether hypothesis supports given entity type 
-  CORBA::Boolean IsDimSupported( SMESH::Dimension type );
-};
-
-#endif
-
diff --git a/src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.cxx b/src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.cxx
deleted file mode 100644 (file)
index efcc37c..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_MEFISTO_2D_i.cxx
-//           Moved here from SMESH_MEFISTO_2D_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_MEFISTO_2D_i.hxx"
-#include "SMESH_Gen.hxx"
-
-#include "Utils_CorbaException.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  StdMeshers_MEFISTO_2D_i::StdMeshers_MEFISTO_2D_i
- *
- *  Constructor
- */
-//=============================================================================
-
-StdMeshers_MEFISTO_2D_i::StdMeshers_MEFISTO_2D_i( PortableServer::POA_ptr thePOA,
-                                       int                     theStudyId,
-                                       ::SMESH_Gen*            theGenImpl )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA ), 
-       SMESH_Algo_i( thePOA ),
-       SMESH_2D_Algo_i( thePOA )
-{
-  MESSAGE( "StdMeshers_MEFISTO_2D_i::StdMeshers_MEFISTO_2D_i" );
-  myBaseImpl = new ::StdMeshers_MEFISTO_2D( theGenImpl->GetANewId(),
-                                      theStudyId,
-                                      theGenImpl );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_MEFISTO_2D_i::~StdMeshers_MEFISTO_2D_i
- *
- *  Destructor
- */
-//=============================================================================
-
-StdMeshers_MEFISTO_2D_i::~StdMeshers_MEFISTO_2D_i()
-{
-  MESSAGE( "StdMeshers_MEFISTO_2D_i::~StdMeshers_MEFISTO_2D_i" );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_MEFISTO_2D_i::GetImpl
- *
- *  Get implementation
- */
-//=============================================================================
-
-::StdMeshers_MEFISTO_2D* StdMeshers_MEFISTO_2D_i::GetImpl()
-{
-  MESSAGE( "StdMeshers_MEFISTO_2D_i::GetImpl" );
-  return ( ::StdMeshers_MEFISTO_2D* )myBaseImpl;
-}
-
diff --git a/src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.hxx b/src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.hxx
deleted file mode 100644 (file)
index d7021df..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_MEFISTO_2D_i.hxx
-//           Moved here from SMESH_MEFISTO_2D_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _StdMeshers_MEFISTO_2D_I_HXX_
-#define _StdMeshers_MEFISTO_2D_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
-
-#include "SMESH_2D_Algo_i.hxx"
-#include "StdMeshers_MEFISTO_2D.hxx"
-
-class SMESH_Gen;
-
-// ======================================================
-// Triangle (MEFISTO) 2d algorithm
-// ======================================================
-class StdMeshers_MEFISTO_2D_i:
-  public virtual POA_StdMeshers::StdMeshers_MEFISTO_2D,
-  public virtual SMESH_2D_Algo_i
-{
-public:
-  // Constructor
-  StdMeshers_MEFISTO_2D_i( PortableServer::POA_ptr thePOA,
-                      int                     theStudyId,
-                     ::SMESH_Gen*            theGenImpl );
-
-  // Destructor
-  virtual ~StdMeshers_MEFISTO_2D_i();
-
-  // Get implementation
-  ::StdMeshers_MEFISTO_2D* GetImpl();
-};
-
-#endif
diff --git a/src/StdMeshers_I/StdMeshers_MaxElementArea_i.cxx b/src/StdMeshers_I/StdMeshers_MaxElementArea_i.cxx
deleted file mode 100644 (file)
index c7ab795..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_MaxElementArea_i.cxx
-//           Moved here from SMESH_MaxElementArea_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_MaxElementArea_i.hxx"
-#include "SMESH_Gen_i.hxx"
-#include "SMESH_Gen.hxx"
-
-#include "Utils_CorbaException.hxx"
-#include "utilities.h"
-
-#include <TCollection_AsciiString.hxx>
-
-//=============================================================================
-/*!
- *  StdMeshers_MaxElementArea_i::StdMeshers_MaxElementArea_i
- *
- *  Constructor
- */
-//=============================================================================
-
-StdMeshers_MaxElementArea_i::StdMeshers_MaxElementArea_i( PortableServer::POA_ptr thePOA,
-                                               int                     theStudyId,
-                                               ::SMESH_Gen*            theGenImpl )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA ) 
-{
-  MESSAGE( "StdMeshers_MaxElementArea_i::StdMeshers_MaxElementArea_i" );
-  myBaseImpl = new ::StdMeshers_MaxElementArea( theGenImpl->GetANewId(),
-                                          theStudyId,
-                                          theGenImpl );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_MaxElementArea_i::~StdMeshers_MaxElementArea_i
- *
- *  Destructor
- */
-//=============================================================================
-
-StdMeshers_MaxElementArea_i::~StdMeshers_MaxElementArea_i()
-{
-  MESSAGE( "StdMeshers_MaxElementArea_i::~StdMeshers_MaxElementArea_i" );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_MaxElementArea_i::SetMaxElementArea
- *
- *  Set maximum element area 
- */
-//=============================================================================
-
-void StdMeshers_MaxElementArea_i::SetMaxElementArea( CORBA::Double theArea )
-     throw ( SALOME::SALOME_Exception )
-{
-  MESSAGE( "StdMeshers_MaxElementArea_i::SetMaxElementArea" );
-  ASSERT( myBaseImpl );
-  try {
-    this->GetImpl()->SetMaxArea( theArea );
-  }
-  catch (SALOME_Exception& S_ex) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
-                                 SALOME::BAD_PARAM );
-  }
-
-  // Update Python script
-  TCollection_AsciiString aStr, aStrArea ((double)theArea);
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".SetMaxElementArea(";
-  aStr += aStrArea + ")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_MaxElementArea_i::GetMaxElementArea
- *
- *  Get maximum element area 
- */
-//=============================================================================
-
-CORBA::Double StdMeshers_MaxElementArea_i::GetMaxElementArea()
-{
-  MESSAGE( "StdMeshers_MaxElementArea_i::GetMaxElementArea" );
-  ASSERT( myBaseImpl );
-  return this->GetImpl()->GetMaxArea();
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_MaxElementArea_i::GetImpl
- *
- *  Get implementation
- */
-//=============================================================================
-
-::StdMeshers_MaxElementArea* StdMeshers_MaxElementArea_i::GetImpl()
-{
-  MESSAGE( "StdMeshers_MaxElementArea_i::GetImpl" );
-  return ( ::StdMeshers_MaxElementArea* )myBaseImpl;
-}
-
-//================================================================================
-/*!
- * \brief Verify whether hypothesis supports given entity type 
-  * \param type - dimension (see SMESH::Dimension enumeration)
-  * \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise
- * 
- * Verify whether hypothesis supports given entity type (see SMESH::Dimension enumeration)
- */
-//================================================================================  
-CORBA::Boolean StdMeshers_MaxElementArea_i::IsDimSupported( SMESH::Dimension type )
-{
-  return type == SMESH::DIM_2D;
-}
-
diff --git a/src/StdMeshers_I/StdMeshers_MaxElementArea_i.hxx b/src/StdMeshers_I/StdMeshers_MaxElementArea_i.hxx
deleted file mode 100644 (file)
index 39dde76..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_MaxElementArea_i.hxx
-//           Moved here from SMESH_MaxElementArea_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_MAXELEMENTAREA_I_HXX_
-#define _SMESH_MAXELEMENTAREA_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
-
-#include "SMESH_Hypothesis_i.hxx"
-#include "StdMeshers_MaxElementArea.hxx"
-
-// ======================================================
-// Maximum Element Area hypothesis
-// ======================================================
-class StdMeshers_MaxElementArea_i:
-  public virtual POA_StdMeshers::StdMeshers_MaxElementArea,
-  public virtual SMESH_Hypothesis_i
-{
-public:
-  // Constructor
-  StdMeshers_MaxElementArea_i( PortableServer::POA_ptr thePOA,
-                          int                     theStudyId,
-                         ::SMESH_Gen*            theGenImpl );
-  // Destructor
-  virtual ~StdMeshers_MaxElementArea_i();
-
-  // Set maximum element area 
-  void SetMaxElementArea( CORBA::Double theArea )
-    throw ( SALOME::SALOME_Exception );
-  // Get maximum element area 
-  CORBA::Double GetMaxElementArea();
-
-  // Get implementation
-  ::StdMeshers_MaxElementArea* GetImpl();
-  
-  // Verify whether hypothesis supports given entity type 
-  CORBA::Boolean IsDimSupported( SMESH::Dimension type );
-};
-
-#endif
diff --git a/src/StdMeshers_I/StdMeshers_MaxElementVolume_i.cxx b/src/StdMeshers_I/StdMeshers_MaxElementVolume_i.cxx
deleted file mode 100644 (file)
index d8686ab..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_MaxElementVolume_i.cxx
-//           Moved here from SMESH_MaxElementVolume_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_MaxElementVolume_i.hxx"
-#include "SMESH_Gen_i.hxx"
-#include "SMESH_Gen.hxx"
-
-#include "Utils_CorbaException.hxx"
-#include "utilities.h"
-
-#include <TCollection_AsciiString.hxx>
-
-//=============================================================================
-/*!
- *  StdMeshers_MaxElementVolume_i::StdMeshers_MaxElementVolume_i
- *
- *  Constructor
- */
-//=============================================================================
-
-StdMeshers_MaxElementVolume_i::StdMeshers_MaxElementVolume_i( PortableServer::POA_ptr thePOA,
-                                                   int                     theStudyId,
-                                                   ::SMESH_Gen*            theGenImpl )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA )
-{
-  MESSAGE( "StdMeshers_MaxElementVolume_i::StdMeshers_MaxElementVolume_i" );
-  myBaseImpl = new ::StdMeshers_MaxElementVolume( theGenImpl->GetANewId(),
-                                            theStudyId,
-                                            theGenImpl );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_MaxElementVolume_i::~StdMeshers_MaxElementVolume_i
- *
- *  Destructor
- */
-//=============================================================================
-
-StdMeshers_MaxElementVolume_i::~StdMeshers_MaxElementVolume_i()
-{
-  MESSAGE( "StdMeshers_MaxElementVolume_i::~StdMeshers_MaxElementVolume_i()" );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_MaxElementVolume_i::SetMaxElementVolume
- *
- *  Set maximum element volume 
- */
-//=============================================================================
-
-void StdMeshers_MaxElementVolume_i::SetMaxElementVolume( CORBA::Double theVolume )
-     throw ( SALOME::SALOME_Exception )
-{
-  MESSAGE( "StdMeshers_MaxElementVolume_i::SetMaxElementVolume" );
-  ASSERT( myBaseImpl );
-  try {
-    this->GetImpl()->SetMaxVolume( theVolume );
-  }
-  catch (SALOME_Exception& S_ex) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
-                                 SALOME::BAD_PARAM );
-  }
-
-  // Update Python script
-  TCollection_AsciiString aStr, aStrVol ((double)theVolume);
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".SetMaxElementVolume(";
-  aStr += aStrVol + ")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_MaxElementVolume_i::GetMaxElementVolume
- *
- *  Get maximum element volume 
- */
-//=============================================================================
-
-CORBA::Double StdMeshers_MaxElementVolume_i::GetMaxElementVolume()
-{
-  MESSAGE( "StdMeshers_MaxElementVolume_i::GetMaxElementVolume" );
-  ASSERT( myBaseImpl );
-  return this->GetImpl()->GetMaxVolume();
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_MaxElementVolume_i::GetImpl
- *
- *  Get implementation
- */
-//=============================================================================
-
-::StdMeshers_MaxElementVolume* StdMeshers_MaxElementVolume_i::GetImpl()
-{
-  MESSAGE( "StdMeshers_MaxElementVolume_i::GetImpl" );
-  return ( ::StdMeshers_MaxElementVolume* )myBaseImpl;
-}
-
-//================================================================================
-/*!
- * \brief Verify whether hypothesis supports given entity type 
-  * \param type - dimension (see SMESH::Dimension enumeration)
-  * \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise
- * 
- * Verify whether hypothesis supports given entity type (see SMESH::Dimension enumeration)
- */
-//================================================================================  
-CORBA::Boolean StdMeshers_MaxElementVolume_i::IsDimSupported( SMESH::Dimension type )
-{
-  return type == SMESH::DIM_3D;
-}
-
diff --git a/src/StdMeshers_I/StdMeshers_MaxElementVolume_i.hxx b/src/StdMeshers_I/StdMeshers_MaxElementVolume_i.hxx
deleted file mode 100644 (file)
index 928fab5..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_MaxElementVolume_i.hxx
-//           Moved here from SMESH_MaxElementVolume_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_MAXELEMENTVOLUME_I_HXX_
-#define _SMESH_MAXELEMENTVOLUME_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
-
-#include "SMESH_Hypothesis_i.hxx"
-#include "StdMeshers_MaxElementVolume.hxx"
-
-// ======================================================
-// Maximum Element Volume hypothesis
-// ======================================================
-class StdMeshers_MaxElementVolume_i:
-  public virtual POA_StdMeshers::StdMeshers_MaxElementVolume,
-  public virtual SMESH_Hypothesis_i
-{
-public:
-  // Constructor
-  StdMeshers_MaxElementVolume_i( PortableServer::POA_ptr thePOA,
-                            int                     theStudyId,
-                            ::SMESH_Gen*            theGenImpl );
-  // Destructor
-  virtual ~StdMeshers_MaxElementVolume_i();
-
-  // Set maximum element volume
-  void SetMaxElementVolume( CORBA::Double theVolume )
-    throw (SALOME::SALOME_Exception);
-  // Get maximum element volume
-  CORBA::Double GetMaxElementVolume();
-
-  // Get implementation
-  ::StdMeshers_MaxElementVolume* GetImpl();
-  
-  // Verify whether hypothesis supports given entity type 
-  CORBA::Boolean IsDimSupported( SMESH::Dimension type );
-};
-
-#endif
diff --git a/src/StdMeshers_I/StdMeshers_NotConformAllowed_i.cxx b/src/StdMeshers_I/StdMeshers_NotConformAllowed_i.cxx
deleted file mode 100644 (file)
index 8940cf7..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-//  SMESH StdMeshers_I : idl implementation based on 'SMESH' unit's classes
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_NotConformAllowed_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-using namespace std;
-#include "StdMeshers_NotConformAllowed_i.hxx"
-#include "SMESH_Gen.hxx"
-
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  Constructor: 
- *  _name is related to the class name: prefix = SMESH_ ; suffix = _i .
- */
-//=============================================================================
-
-StdMeshers_NotConformAllowed_i::StdMeshers_NotConformAllowed_i
-                                (PortableServer::POA_ptr thePOA,
-                                 int                     studyId,
-                                 ::SMESH_Gen*            genImpl)
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA )
-{
-  MESSAGE("StdMeshers_NotConformAllowed_i::StdMeshers_NotConformAllowed_i");
-  myBaseImpl = new ::StdMeshers_NotConformAllowed(genImpl->GetANewId(),
-                                                  studyId,
-                                                  genImpl);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-StdMeshers_NotConformAllowed_i::~StdMeshers_NotConformAllowed_i()
-{
-}
-
-//================================================================================
-/*!
- * \brief Verify whether hypothesis supports given entity type 
-  * \param type - dimension (see SMESH::Dimension enumeration)
-  * \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise
- * 
- * Verify whether hypothesis supports given entity type (see SMESH::Dimension enumeration)
- */
-//================================================================================  
-CORBA::Boolean StdMeshers_NotConformAllowed_i::IsDimSupported( SMESH::Dimension /*type*/ )
-{
-  return true;
-}
-
-
-
diff --git a/src/StdMeshers_I/StdMeshers_NotConformAllowed_i.hxx b/src/StdMeshers_I/StdMeshers_NotConformAllowed_i.hxx
deleted file mode 100644 (file)
index ceddb32..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-//  SMESH StdMeshers_I : idl implementation based on 'SMESH' unit's classes
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_NotConformAllowed_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _StdMeshers_NotConformAllowed_I_HXX_
-#define _StdMeshers_NotConformAllowed_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
-
-#include "SMESH_Hypothesis_i.hxx"
-
-#include "StdMeshers_NotConformAllowed.hxx"
-
-class StdMeshers_NotConformAllowed_i:
-  public POA_StdMeshers::StdMeshers_NotConformAllowed,
-  public SMESH_Hypothesis_i
-{
-public:
-  StdMeshers_NotConformAllowed_i(PortableServer::POA_ptr thePOA,
-                                 int studyId,
-                                 ::SMESH_Gen* genImpl);
-  virtual ~StdMeshers_NotConformAllowed_i();
-  
-  // Verify whether hypothesis supports given entity type 
-  CORBA::Boolean IsDimSupported( SMESH::Dimension type );
-
-protected:
-  ::StdMeshers_NotConformAllowed* _impl;
-};
-
-#endif
-
diff --git a/src/StdMeshers_I/StdMeshers_NumberOfSegments_i.cxx b/src/StdMeshers_I/StdMeshers_NumberOfSegments_i.cxx
deleted file mode 100644 (file)
index 69d5073..0000000
+++ /dev/null
@@ -1,348 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_NumberOfSegments_i.cxx
-//           Moved here from SMESH_NumberOfSegments_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_NumberOfSegments_i.hxx"
-#include "SMESH_Gen_i.hxx"
-#include "SMESH_Gen.hxx"
-
-#include "Utils_CorbaException.hxx"
-#include "utilities.h"
-
-#include <TCollection_AsciiString.hxx>
-
-//=============================================================================
-/*!
- *  StdMeshers_NumberOfSegments_i::StdMeshers_NumberOfSegments_i
- *
- *  Constructor
- */
-//=============================================================================
-
-StdMeshers_NumberOfSegments_i::StdMeshers_NumberOfSegments_i( PortableServer::POA_ptr thePOA,
-                                                   int                     theStudyId,
-                                                   ::SMESH_Gen*            theGenImpl )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA )
-{
-  MESSAGE( "StdMeshers_NumberOfSegments_i::StdMeshers_NumberOfSegments_i" );
-  myBaseImpl = new ::StdMeshers_NumberOfSegments( theGenImpl->GetANewId(),
-                                            theStudyId,
-                                            theGenImpl );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_NumberOfSegments_i::~StdMeshers_NumberOfSegments_i
- *
- *  Destructor
- */
-//=============================================================================
-
-StdMeshers_NumberOfSegments_i::~StdMeshers_NumberOfSegments_i()
-{
-  MESSAGE( "StdMeshers_NumberOfSegments_i::~StdMeshers_NumberOfSegments_i" );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_NumberOfSegments_i::SetNumberOfSegments
- *
- *  Set number of segments
- */
-//=============================================================================
-
-void StdMeshers_NumberOfSegments_i::SetNumberOfSegments( CORBA::Long theSegmentsNumber )
-     throw ( SALOME::SALOME_Exception )
-{
-  MESSAGE( "StdMeshers_NumberOfSegments_i::SetNumberOfSegments" );
-  ASSERT( myBaseImpl );
-  try {
-    this->GetImpl()->SetNumberOfSegments( theSegmentsNumber );
-  }
-  catch (SALOME_Exception& S_ex) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
-                                 SALOME::BAD_PARAM );
-  }
-
-  // Update Python script
-  TCollection_AsciiString aStr, aStrNb ((int)theSegmentsNumber);
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".SetNumberOfSegments(";
-  aStr += aStrNb + ")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_NumberOfSegments_i::GetNumberOfSegments
- *
- *  Get number of segments
- */
-//=============================================================================
-
-CORBA::Long StdMeshers_NumberOfSegments_i::GetNumberOfSegments()
-{
-  MESSAGE( "StdMeshers_NumberOfSegments_i::GetNumberOfSegments" );
-  ASSERT( myBaseImpl );
-  return this->GetImpl()->GetNumberOfSegments();
-}
-
-//=============================================================================
-/*!
- */
-//=============================================================================
-
-void StdMeshers_NumberOfSegments_i::SetDistrType(CORBA::Long typ)
-  throw ( SALOME::SALOME_Exception )
-{
-  MESSAGE( "StdMeshers_NumberOfSegments_i::SetDistrType" );
-  ASSERT( myBaseImpl );
-  try {
-    this->GetImpl()->SetDistrType( (::StdMeshers_NumberOfSegments::DistrType) typ );
-  }
-  catch ( SALOME_Exception& S_ex ) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
-                                 SALOME::BAD_PARAM );
-  }
-}
-
-//=============================================================================
-/*!
- */
-//=============================================================================
-
-CORBA::Long StdMeshers_NumberOfSegments_i::GetDistrType()
-{
-  MESSAGE( "StdMeshers_NumberOfSegments_i::GetDistrType" );
-  ASSERT( myBaseImpl );
-  return this->GetImpl()->GetDistrType();
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_NumberOfSegments_i::SetScaleFactor
- *
- *  Set scalar factor
- */
-//=============================================================================
-
-void StdMeshers_NumberOfSegments_i::SetScaleFactor( CORBA::Double theScaleFactor )
-     throw ( SALOME::SALOME_Exception )
-{
-  MESSAGE( "StdMeshers_NumberOfSegments_i::SetScaleFactor" );
-  ASSERT( myBaseImpl );
-  try {
-    this->GetImpl()->SetScaleFactor( theScaleFactor );
-  }
-  catch ( SALOME_Exception& S_ex ) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
-                                 SALOME::BAD_PARAM );
-  }
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_NumberOfSegments_i::GetScaleFactor
- *
- *  Get scalar factor
- */
-//=============================================================================
-
-CORBA::Double StdMeshers_NumberOfSegments_i::GetScaleFactor()
-  throw ( SALOME::SALOME_Exception )
-{
-  MESSAGE( "StdMeshers_NumberOfSegments_i::GetScaleFactor" );
-  ASSERT( myBaseImpl );
-  double scale;
-  try {
-    scale = this->GetImpl()->GetScaleFactor();
-  }
-  catch ( SALOME_Exception& S_ex ) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
-                                 SALOME::BAD_PARAM );
-  }
-  return scale;
-}
-
-//=============================================================================
-/*!
- */
-//=============================================================================
-
-void StdMeshers_NumberOfSegments_i::SetTableFunction(const SMESH::double_array& table)
-  throw ( SALOME::SALOME_Exception )
-{
-  MESSAGE( "StdMeshers_NumberOfSegments_i::SetTableFunction" );
-  ASSERT( myBaseImpl );
-  std::vector<double> tbl( table.length() );
-  for (int i = 0; i < table.length(); i++)
-    tbl[i] = table[i];
-  try {
-    this->GetImpl()->SetTableFunction( tbl );
-  }
-  catch ( SALOME_Exception& S_ex ) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
-                                 SALOME::BAD_PARAM );
-  }
-}
-
-//=============================================================================
-/*!
- */
-//=============================================================================
-
-SMESH::double_array* StdMeshers_NumberOfSegments_i::GetTableFunction()
-  throw ( SALOME::SALOME_Exception )
-{
-  MESSAGE( "StdMeshers_NumberOfSegments_i::GetTableFunction" );
-  ASSERT( myBaseImpl );
-  const std::vector<double>* tbl;
-  try {
-    tbl = &this->GetImpl()->GetTableFunction();
-  }
-  catch ( SALOME_Exception& S_ex ) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
-                                 SALOME::BAD_PARAM );
-  }
-  SMESH::double_array_var aRes = new SMESH::double_array();
-  aRes->length(tbl->size());
-  for (int i = 0; i < tbl->size(); i++)
-    aRes[i] = (*tbl)[i];
-  return aRes._retn();
-}
-
-//=============================================================================
-/*!
- */
-//=============================================================================
-
-void StdMeshers_NumberOfSegments_i::SetExpressionFunction(const char* expr)
-  throw ( SALOME::SALOME_Exception )
-{
-  MESSAGE( "StdMeshers_NumberOfSegments_i::SetExpressionFunction" );
-  ASSERT( myBaseImpl );
-  try {
-    this->GetImpl()->SetExpressionFunction( expr );
-  }
-  catch ( SALOME_Exception& S_ex ) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
-                                 SALOME::BAD_PARAM );
-  }
-}
-
-//=============================================================================
-/*!
- */
-//=============================================================================
-
-char* StdMeshers_NumberOfSegments_i::GetExpressionFunction()
-  throw ( SALOME::SALOME_Exception )
-{
-  MESSAGE( "StdMeshers_NumberOfSegments_i::GetExpressionFunction" );
-  ASSERT( myBaseImpl );
-  const char* expr;
-  try {
-    expr = this->GetImpl()->GetExpressionFunction();
-  }
-  catch ( SALOME_Exception& S_ex ) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
-                                 SALOME::BAD_PARAM );
-  }
-  return CORBA::string_dup(expr);
-}
-
-//=============================================================================
-/*!
- */
-//=============================================================================
-
-void StdMeshers_NumberOfSegments_i::SetExponentMode(CORBA::Boolean isExp)
-  throw ( SALOME::SALOME_Exception )
-{
-  MESSAGE( "StdMeshers_NumberOfSegments_i::SetExponentMode" );
-  ASSERT( myBaseImpl );
-  try {
-    this->GetImpl()->SetExponentMode( isExp );
-  }
-  catch ( SALOME_Exception& S_ex ) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
-                                 SALOME::BAD_PARAM );
-  }
-}
-
-//=============================================================================
-/*!
- */
-//=============================================================================
-
-CORBA::Boolean StdMeshers_NumberOfSegments_i::IsExponentMode()
-  throw ( SALOME::SALOME_Exception )
-{
-  MESSAGE( "StdMeshers_NumberOfSegments_i::IsExponentMode" );
-  ASSERT( myBaseImpl );
-  bool isExp;
-  try {
-    isExp = this->GetImpl()->IsExponentMode();
-  }
-  catch ( SALOME_Exception& S_ex ) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
-                                 SALOME::BAD_PARAM );
-  }
-  return isExp;
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_NumberOfSegments_i::GetImpl
- *
- *  Get implementation
- */
-//=============================================================================
-
-::StdMeshers_NumberOfSegments* StdMeshers_NumberOfSegments_i::GetImpl()
-{
-  MESSAGE( "StdMeshers_NumberOfSegments_i::GetImpl" );
-  return ( ::StdMeshers_NumberOfSegments* )myBaseImpl;
-}
-
-//================================================================================
-/*!
- * \brief Verify whether hypothesis supports given entity type 
-  * \param type - dimension (see SMESH::Dimension enumeration)
-  * \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise
- * 
- * Verify whether hypothesis supports given entity type (see SMESH::Dimension enumeration)
- */
-//================================================================================  
-CORBA::Boolean StdMeshers_NumberOfSegments_i::IsDimSupported( SMESH::Dimension type )
-{
-  return type == SMESH::DIM_1D;
-}
-
diff --git a/src/StdMeshers_I/StdMeshers_NumberOfSegments_i.hxx b/src/StdMeshers_I/StdMeshers_NumberOfSegments_i.hxx
deleted file mode 100644 (file)
index 270980f..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_NumberOfSegments_i.hxx
-//           Moved here from SMESH_NumberOfSegments_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_NUMBEROFSEGMENTS_I_HXX_
-#define _SMESH_NUMBEROFSEGMENTS_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
-
-#include "SMESH_Hypothesis_i.hxx"
-#include "StdMeshers_NumberOfSegments.hxx"
-
-// ======================================================
-// Number of segments hypothesis
-// ======================================================
-class StdMeshers_NumberOfSegments_i:
-  public virtual POA_StdMeshers::StdMeshers_NumberOfSegments,
-  public virtual SMESH_Hypothesis_i
-{
-public:
-  // Constructor
-  StdMeshers_NumberOfSegments_i( PortableServer::POA_ptr thePOA,
-                            int                     theStudyId,
-                           ::SMESH_Gen*            theGenImpl );
-  // Destructor
-  virtual ~StdMeshers_NumberOfSegments_i();
-
-  // Set number of segments
-  void SetNumberOfSegments( CORBA::Long theSegmentsNumber )
-    throw ( SALOME::SALOME_Exception );
-  // Get number of segments
-  CORBA::Long GetNumberOfSegments();
-
-  // Set distribution type
-  void SetDistrType(CORBA::Long typ)
-    throw ( SALOME::SALOME_Exception );
-  // Get distribution type
-  CORBA::Long GetDistrType();
-
-  // Set scalar factor
-  void SetScaleFactor( CORBA::Double theScaleFactor )
-    throw ( SALOME::SALOME_Exception );
-  // Get scalar factor
-  CORBA::Double GetScaleFactor()
-    throw ( SALOME::SALOME_Exception );
-
-  // Set table function for distribution DT_TabFunc
-  void SetTableFunction(const SMESH::double_array& table)
-    throw ( SALOME::SALOME_Exception );
-  // Get table function for distribution DT_TabFunc
-  SMESH::double_array* GetTableFunction()
-    throw ( SALOME::SALOME_Exception );
-
-  // Set expression function for distribution DT_ExprFunc
-  void SetExpressionFunction(const char* expr)
-    throw ( SALOME::SALOME_Exception );
-  // Get expression function for distribution DT_ExprFunc
-  char* GetExpressionFunction()
-    throw ( SALOME::SALOME_Exception );
-
-  // Set the exponent mode on/off
-  void SetExponentMode(CORBA::Boolean isExp)
-    throw ( SALOME::SALOME_Exception );
-  // Returns true if the exponent mode is set
-  CORBA::Boolean IsExponentMode()
-    throw ( SALOME::SALOME_Exception );
-
-  // Get implementation
-  ::StdMeshers_NumberOfSegments* GetImpl();
-  
-  // Verify whether hypothesis supports given entity type 
-  CORBA::Boolean IsDimSupported( SMESH::Dimension type );
-};
-
-#endif
diff --git a/src/StdMeshers_I/StdMeshers_Propagation_i.cxx b/src/StdMeshers_I/StdMeshers_Propagation_i.cxx
deleted file mode 100644 (file)
index 4e03874..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : StdMeshers_Propagation_i.cxx
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_Propagation_i.hxx"
-#include "SMESH_Gen.hxx"
-
-#include "Utils_CorbaException.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  StdMeshers_Propagation_i::StdMeshers_Propagation_i
- *
- *  Constructor
- */
-//=============================================================================
-StdMeshers_Propagation_i::StdMeshers_Propagation_i (PortableServer::POA_ptr thePOA,
-                                                    int                     theStudyId,
-                                                    ::SMESH_Gen*            theGenImpl )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA )
-{
-  MESSAGE( "StdMeshers_Propagation_i::StdMeshers_Propagation_i" );
-  myBaseImpl = new ::StdMeshers_Propagation(theGenImpl->GetANewId(),
-                                            theStudyId,
-                                            theGenImpl);
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_Propagation_i::~StdMeshers_Propagation_i
- *
- *  Destructor
- */
-//=============================================================================
-StdMeshers_Propagation_i::~StdMeshers_Propagation_i()
-{
-  MESSAGE( "StdMeshers_Propagation_i::~StdMeshers_Propagation_i" );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_Propagation_i::GetImpl
- *
- *  Get implementation
- */
-//=============================================================================
-::StdMeshers_Propagation* StdMeshers_Propagation_i::GetImpl()
-{
-  MESSAGE( "StdMeshers_Propagation_i::GetImpl" );
-  return ( ::StdMeshers_Propagation* )myBaseImpl;
-}
-
-//================================================================================
-/*!
- * \brief Verify whether hypothesis supports given entity type 
-  * \param type - dimension (see SMESH::Dimension enumeration)
-  * \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise
- * 
- * Verify whether hypothesis supports given entity type (see SMESH::Dimension enumeration)
- */
-//================================================================================  
-CORBA::Boolean StdMeshers_Propagation_i::IsDimSupported( SMESH::Dimension type )
-{
-  return type == SMESH::DIM_1D;
-}
-
diff --git a/src/StdMeshers_I/StdMeshers_Propagation_i.hxx b/src/StdMeshers_I/StdMeshers_Propagation_i.hxx
deleted file mode 100644 (file)
index ca130bc..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  CEA
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : StdMeshers_Propagation_i.hxx
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_PROPAGATION_I_HXX_
-#define _SMESH_PROPAGATION_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
-
-#include "SMESH_Hypothesis_i.hxx"
-#include "StdMeshers_Propagation.hxx"
-
-class SMESH_Gen;
-
-// ======================================================
-// Propagation hypothesis
-// ======================================================
-class StdMeshers_Propagation_i:
-  public virtual POA_StdMeshers::StdMeshers_Propagation,
-  public virtual SMESH_Hypothesis_i
-{
-public:
-  // Constructor
-  StdMeshers_Propagation_i (PortableServer::POA_ptr thePOA,
-                            int                     theStudyId,
-                            ::SMESH_Gen*            theGenImpl);
-  // Destructor
-  virtual ~StdMeshers_Propagation_i();
-
-  // Get implementation
-  ::StdMeshers_Propagation* GetImpl();
-  
-  // Verify whether hypothesis supports given entity type 
-  CORBA::Boolean IsDimSupported( SMESH::Dimension type );
-};
-
-#endif
diff --git a/src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.cxx b/src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.cxx
deleted file mode 100644 (file)
index 059eac9..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Quadrangle_2D_i.cxx
-//           Moved here from SMESH_Quadrangle_2D_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_Quadrangle_2D_i.hxx"
-#include "SMESH_Gen.hxx"
-
-#include "Utils_CorbaException.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  StdMeshers_Quadrangle_2D_i::StdMeshers_Quadrangle_2D_i
- *
- *  Constructor
- */
-//=============================================================================
-
-StdMeshers_Quadrangle_2D_i::StdMeshers_Quadrangle_2D_i( PortableServer::POA_ptr thePOA,
-                                             int                     theStudyId,
-                                             ::SMESH_Gen*            theGenImpl )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA ), 
-       SMESH_Algo_i( thePOA ),
-       SMESH_2D_Algo_i( thePOA )
-{
-  MESSAGE( "StdMeshers_Quadrangle_2D_i::StdMeshers_Quadrangle_2D_i" );
-  myBaseImpl = new ::StdMeshers_Quadrangle_2D( theGenImpl->GetANewId(),
-                                         theStudyId,
-                                         theGenImpl );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_Quadrangle_2D_i::~StdMeshers_Quadrangle_2D_i
- *
- *  Destructor
- *  
- */
-//=============================================================================
-
-StdMeshers_Quadrangle_2D_i::~StdMeshers_Quadrangle_2D_i()
-{
-  MESSAGE( "StdMeshers_Quadrangle_2D_i::~StdMeshers_Quadrangle_2D_i" );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_Quadrangle_2D_i::GetImpl
- *
- *  Get implementation
- */
-//=============================================================================
-
-::StdMeshers_Quadrangle_2D* StdMeshers_Quadrangle_2D_i::GetImpl()
-{
-  MESSAGE( "StdMeshers_Quadrangle_2D_i::GetImpl" );
-  return ( ::StdMeshers_Quadrangle_2D* )myBaseImpl;
-}
-
diff --git a/src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.hxx b/src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.hxx
deleted file mode 100644 (file)
index a8c1e28..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Quadrangle_2D_i.hxx
-//           Moved here from SMESH_Quadrangle_2D_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_QUADRANGLE_2D_I_HXX_
-#define _SMESH_QUADRANGLE_2D_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
-
-#include "SMESH_2D_Algo_i.hxx"
-#include "StdMeshers_Quadrangle_2D.hxx"
-
-class SMESH_Gen;
-
-// ======================================================
-// Quadrangle (Mapping) 2d algorithm
-// ======================================================
-class StdMeshers_Quadrangle_2D_i:
-  public virtual POA_StdMeshers::StdMeshers_Quadrangle_2D,
-  public virtual SMESH_2D_Algo_i
-{
-public:
-  // Constructor
-  StdMeshers_Quadrangle_2D_i( PortableServer::POA_ptr thePOA,
-                         int                     theStudyId,
-                        ::SMESH_Gen*            theGenImpl );
-
-  // Destructor
-  virtual ~StdMeshers_Quadrangle_2D_i();
-
-  // Get implementation
-  ::StdMeshers_Quadrangle_2D* GetImpl();
-};
-
-#endif
diff --git a/src/StdMeshers_I/StdMeshers_Regular_1D_i.cxx b/src/StdMeshers_I/StdMeshers_Regular_1D_i.cxx
deleted file mode 100644 (file)
index 24f322c..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Regular_1D_i.cxx
-//           Moved here from SMESH_Regular_1D_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_Regular_1D_i.hxx"
-#include "SMESH_Gen.hxx"
-
-#include "Utils_CorbaException.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  StdMeshers_Regular_1D_i::StdMeshers_Regular_1D_i
- *
- *  Constructor
- */
-//=============================================================================
-
-StdMeshers_Regular_1D_i::StdMeshers_Regular_1D_i( PortableServer::POA_ptr thePOA,
-                                       int                     theStudyId,
-                                       ::SMESH_Gen*            theGenImpl )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA ), 
-       SMESH_Algo_i( thePOA ),
-       SMESH_1D_Algo_i( thePOA )
-{
-  MESSAGE( "StdMeshers_Regular_1D_i::StdMeshers_Regular_1D_i" );
-  myBaseImpl = new ::StdMeshers_Regular_1D( theGenImpl->GetANewId(),
-                                      theStudyId,
-                                      theGenImpl );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_Regular_1D_i::~StdMeshers_Regular_1D_i
- *
- *  Destructor
- */
-//=============================================================================
-
-StdMeshers_Regular_1D_i::~StdMeshers_Regular_1D_i()
-{
-  MESSAGE( "StdMeshers_Regular_1D_i::~StdMeshers_Regular_1D_i" );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_Regular_1D_i::GetImpl
- *
- *  Get implementation
- */
-//=============================================================================
-
-::StdMeshers_Regular_1D* StdMeshers_Regular_1D_i::GetImpl()
-{
-  MESSAGE( "StdMeshers_Regular_1D_i::GetImpl" );
-  return ( ::StdMeshers_Regular_1D* )myBaseImpl;
-}
-
diff --git a/src/StdMeshers_I/StdMeshers_Regular_1D_i.hxx b/src/StdMeshers_I/StdMeshers_Regular_1D_i.hxx
deleted file mode 100644 (file)
index 3231532..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_Regular_1D_i.hxx
-//           Moved here from SMESH_Regular_1D_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_REGULAR_1D_I_HXX_
-#define _SMESH_REGULAR_1D_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
-
-#include "SMESH_1D_Algo_i.hxx"
-#include "StdMeshers_Regular_1D.hxx"
-
-// ======================================================
-// Wire Discretization 1d algorithm
-// ======================================================
-class StdMeshers_Regular_1D_i:
-  public virtual POA_StdMeshers::StdMeshers_Regular_1D,
-  public virtual SMESH_1D_Algo_i
-{
-public:
-  // Constructor
-  StdMeshers_Regular_1D_i( PortableServer::POA_ptr thePOA,
-                      int                     theStudyId,
-                     ::SMESH_Gen*            theGenImpl );
-  // Destructor
-  virtual ~StdMeshers_Regular_1D_i();
-  // Get implementation
-  ::StdMeshers_Regular_1D* GetImpl();
-};
-
-#endif
diff --git a/src/StdMeshers_I/StdMeshers_StartEndLength_i.cxx b/src/StdMeshers_I/StdMeshers_StartEndLength_i.cxx
deleted file mode 100644 (file)
index 56ce6f5..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_StartEndLength_i.cxx
-//           Moved here from SMESH_LocalLength_i.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "StdMeshers_StartEndLength_i.hxx"
-#include "SMESH_Gen_i.hxx"
-#include "SMESH_Gen.hxx"
-
-#include "Utils_CorbaException.hxx"
-#include "utilities.h"
-
-#include <TCollection_AsciiString.hxx>
-
-//=============================================================================
-/*!
- *  StdMeshers_StartEndLength_i::StdMeshers_StartEndLength_i
- *
- *  Constructor
- */
-//=============================================================================
-
-StdMeshers_StartEndLength_i::StdMeshers_StartEndLength_i( PortableServer::POA_ptr thePOA,
-                                                         int                     theStudyId,
-                                                         ::SMESH_Gen*            theGenImpl )
-     : SALOME::GenericObj_i( thePOA ), 
-       SMESH_Hypothesis_i( thePOA )
-{
-  MESSAGE( "StdMeshers_StartEndLength_i::StdMeshers_StartEndLength_i" );
-  myBaseImpl = new ::StdMeshers_StartEndLength( theGenImpl->GetANewId(),
-                                               theStudyId,
-                                               theGenImpl );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_StartEndLength_i::~StdMeshers_StartEndLength_i
- *
- *  Destructor
- */
-//=============================================================================
-
-StdMeshers_StartEndLength_i::~StdMeshers_StartEndLength_i()
-{
-  MESSAGE( "StdMeshers_StartEndLength_i::~StdMeshers_StartEndLength_i" );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_StartEndLength_i::SetLength
- *
- *  Set length
- */
-//=============================================================================
-
-void StdMeshers_StartEndLength_i::SetLength(CORBA::Double theLength,
-                                            CORBA::Boolean theIsStart )
-     throw ( SALOME::SALOME_Exception )
-{
-  MESSAGE( "StdMeshers_StartEndLength_i::SetLength" );
-  ASSERT( myBaseImpl );
-  try {
-    this->GetImpl()->SetLength( theLength, theIsStart );
-  }
-  catch ( SALOME_Exception& S_ex ) {
-    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
-                                 SALOME::BAD_PARAM );
-  }
-
-  // Update Python script
-  TCollection_AsciiString aStr, aStrLen ((double)theLength), aStrFlag ((int)theIsStart);
-  SMESH_Gen_i::AddObject(aStr, _this()) += ".SetLength(";
-  aStr += aStrLen + ", " + aStrFlag + ")";
-
-  SMESH_Gen_i::AddToCurrentPyScript(aStr);
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_StartEndLength_i::GetLength
- *
- *  Get length
- */
-//=============================================================================
-
-CORBA::Double StdMeshers_StartEndLength_i::GetLength( CORBA::Boolean theIsStart)
-{
-  MESSAGE( "StdMeshers_StartEndLength_i::GetLength" );
-  ASSERT( myBaseImpl );
-  return this->GetImpl()->GetLength( theIsStart );
-}
-
-//=============================================================================
-/*!
- *  StdMeshers_StartEndLength_i::GetImpl
- *
- *  Get implementation
- */
-//=============================================================================
-
-::StdMeshers_StartEndLength* StdMeshers_StartEndLength_i::GetImpl()
-{
-  MESSAGE( "StdMeshers_StartEndLength_i::GetImpl" );
-  return ( ::StdMeshers_StartEndLength* )myBaseImpl;
-}
-
-//================================================================================
-/*!
- * \brief Verify whether hypothesis supports given entity type 
-  * \param type - dimension (see SMESH::Dimension enumeration)
-  * \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise
- * 
- * Verify whether hypothesis supports given entity type (see SMESH::Dimension enumeration)
- */
-//================================================================================  
-CORBA::Boolean StdMeshers_StartEndLength_i::IsDimSupported( SMESH::Dimension type )
-{
-  return type == SMESH::DIM_1D;
-}
-
diff --git a/src/StdMeshers_I/StdMeshers_StartEndLength_i.hxx b/src/StdMeshers_I/StdMeshers_StartEndLength_i.hxx
deleted file mode 100644 (file)
index d937f93..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : StdMeshers_StartEndLength_i.hxx
-//           Moved here from SMESH_LocalLength_i.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_StartEndLength_I_HXX_
-#define _SMESH_StartEndLength_I_HXX_
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
-
-#include "SMESH_Hypothesis_i.hxx"
-#include "StdMeshers_StartEndLength.hxx"
-
-class SMESH_Gen;
-
-// ======================================================
-// Local Length hypothesis
-// ======================================================
-class StdMeshers_StartEndLength_i:
-  public virtual POA_StdMeshers::StdMeshers_StartEndLength,
-  public virtual SMESH_Hypothesis_i
-{
-public:
-  // Constructor
-  StdMeshers_StartEndLength_i(PortableServer::POA_ptr thePOA,
-                              int                     theStudyId,
-                              ::SMESH_Gen*            theGenImpl );
-  // Destructor
-  virtual ~StdMeshers_StartEndLength_i();
-
-  // Set length
-  void SetLength( CORBA::Double theLength, CORBA::Boolean theIsStart )
-    throw ( SALOME::SALOME_Exception );
-  // Get length
-  CORBA::Double GetLength(CORBA::Boolean theIsStart);
-
-  // Get implementation
-  ::StdMeshers_StartEndLength* GetImpl();
-  
-  // Verify whether hypothesis supports given entity type 
-  CORBA::Boolean IsDimSupported( SMESH::Dimension type );
-};
-
-#endif
-
diff --git a/src/StdMeshers_I/StdMeshers_i.cxx b/src/StdMeshers_I/StdMeshers_i.cxx
deleted file mode 100644 (file)
index f045bbe..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-//  SMESH StdMeshers : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  CEA
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : StdMeshers_i.cxx
-//  Author : Julia DOROVSKIKH
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "SMESH_Gen_i.hxx"
-
-#include "utilities.h"
-
-#include "StdMeshers_LocalLength_i.hxx"
-#include "StdMeshers_StartEndLength_i.hxx"
-#include "StdMeshers_Arithmetic1D_i.hxx"
-#include "StdMeshers_NumberOfSegments_i.hxx"
-#include "StdMeshers_Deflection1D_i.hxx"
-#include "StdMeshers_Propagation_i.hxx"
-#include "StdMeshers_LengthFromEdges_i.hxx"
-#include "StdMeshers_MaxElementArea_i.hxx"
-#include "StdMeshers_MaxElementVolume_i.hxx"
-#include "StdMeshers_NotConformAllowed_i.hxx"
-
-#include "StdMeshers_Regular_1D_i.hxx"
-#include "StdMeshers_MEFISTO_2D_i.hxx"
-#include "StdMeshers_Quadrangle_2D_i.hxx"
-#include "StdMeshers_Hexa_3D_i.hxx"
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-extern "C"
-{
-  GenericHypothesisCreator_i* GetHypothesisCreator (const char* aHypName)
-  {
-    MESSAGE("Get HypothesisCreator for " << aHypName);
-
-    GenericHypothesisCreator_i* aCreator = 0;
-
-    // Hypotheses
-    if      (strcmp(aHypName, "LocalLength") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_LocalLength_i>;
-    else if (strcmp(aHypName, "NumberOfSegments") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_NumberOfSegments_i>;
-    else if (strcmp(aHypName, "LengthFromEdges") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_LengthFromEdges_i>;
-    else if (strcmp(aHypName, "NotConformAllowed") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_NotConformAllowed_i>;
-    else if (strcmp(aHypName, "Propagation") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_Propagation_i>;
-    else if (strcmp(aHypName, "MaxElementArea") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_MaxElementArea_i>;
-    else if (strcmp(aHypName, "MaxElementVolume") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_MaxElementVolume_i>;
-    else if (strcmp(aHypName, "StartEndLength") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_StartEndLength_i>;
-    else if (strcmp(aHypName, "Deflection1D") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_Deflection1D_i>;
-    else if (strcmp(aHypName, "Arithmetic1D") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_Arithmetic1D_i>;
-
-    // Algorithms
-    else if (strcmp(aHypName, "Regular_1D") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_Regular_1D_i>;
-    else if (strcmp(aHypName, "MEFISTO_2D") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_MEFISTO_2D_i>;
-    else if (strcmp(aHypName, "Quadrangle_2D") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_Quadrangle_2D_i>;
-    else if (strcmp(aHypName, "Hexa_3D") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_Hexa_3D_i>;
-    else ;
-
-    return aCreator;
-  }
-}